From 5fe0a50c994eba113d9cbba6917e7fe96adbbeb8 Mon Sep 17 00:00:00 2001 From: Romain Guy Date: Tue, 4 Apr 2023 10:06:57 -0700 Subject: [PATCH] Update spirv-cross to fix build failures with recent versions of clang (#6707) --- third_party/spirv-cross/.clang-format | 3 + .../spirv-cross/.github/workflows/main.yml | 20 +- third_party/spirv-cross/.gitignore | 4 + third_party/spirv-cross/.reuse/dep5 | 11 + third_party/spirv-cross/.travis.yml | 72 - third_party/spirv-cross/CMakeLists.txt | 6 +- third_party/spirv-cross/CODE_OF_CONDUCT.adoc | 11 + third_party/spirv-cross/CODE_OF_CONDUCT.md | 1 - third_party/spirv-cross/GLSL.std.450.h | 29 +- .../spirv-cross/LICENSES/Apache-2.0.txt | 208 + .../spirv-cross/LICENSES/CC-BY-4.0.txt | 324 ++ .../LICENSES/LicenseRef-KhronosFreeUse.txt | 23 + third_party/spirv-cross/LICENSES/MIT.txt | 19 + third_party/spirv-cross/Makefile | 3 + third_party/spirv-cross/Package.swift | 72 + third_party/spirv-cross/README.md | 56 +- third_party/spirv-cross/appveyor.yml | 2 + .../spirv-cross/build_glslang_spirv_tools.sh | 2 + .../checkout_glslang_spirv_tools.sh | 17 +- third_party/spirv-cross/cmake/gitversion.in.h | 3 + third_party/spirv-cross/format_all.sh | 2 + third_party/spirv-cross/gn/BUILD.gn | 3 +- .../include/spirv_cross/barrier.hpp | 1 + .../include/spirv_cross/external_interface.h | 1 + .../spirv-cross/include/spirv_cross/image.hpp | 1 + .../spirv_cross/internal_interface.hpp | 1 + .../include/spirv_cross/sampler.hpp | 1 + .../include/spirv_cross/thread_group.hpp | 1 + third_party/spirv-cross/main.cpp | 299 +- .../pkg-config/spirv-cross-c-shared.pc.in | 3 + .../asm/comp/access-chain-invalidate.asm.comp | 19 - .../asm/comp/atomic-decrement.asm.comp | 22 - .../asm/comp/atomic-increment.asm.comp | 22 - .../asm/comp/bitcast_icmp.asm.comp | 28 - .../asm/comp/block-name-alias-global.asm.comp | 39 - .../asm/comp/control-flow-hints.asm.comp | 41 - .../comp/global-parameter-name-alias.asm.comp | 9 - .../asm/comp/nmin-max-clamp.asm.comp | 87 - .../asm/frag/cbuffer-stripped.asm.frag | 26 - .../asm/frag/combined-sampler-reuse.asm.frag | 30 - .../asm/frag/empty-struct.asm.frag | 8 - .../opt/shaders-hlsl/asm/frag/frem.asm.frag | 29 - .../asm/frag/function-overload-alias.asm.frag | 19 - .../asm/frag/image-extract-reuse.asm.frag | 31 - .../asm/frag/implicit-read-dep-phi.asm.frag | 57 - .../asm/frag/inf-nan-constant.asm.frag | 19 - .../asm/frag/line-directive.line.asm.frag | 93 - .../frag/lut-promotion-initializer.asm.frag | 57 - ...d-unpack-uint2.fxconly.nofxc.sm60.asm.frag | 33 - .../asm/frag/pass-by-value.asm.frag | 25 - .../asm/frag/sample-and-compare.asm.frag | 30 - .../frag/single-function-private-lut.asm.frag | 63 - .../opt/shaders-hlsl/asm/frag/srem.asm.frag | 29 - .../storage-class-output-initializer.asm.frag | 23 - .../asm/frag/texel-fetch-no-lod.asm.frag | 30 - .../asm/frag/texture-sampling-fp16.asm.frag | 29 - .../asm/frag/unknown-depth-state.asm.frag | 31 - .../asm/frag/unreachable.asm.frag | 40 - ...act-transposed-matrix-from-struct.asm.vert | 45 - .../vert/spec-constant-op-composite.asm.vert | 46 - .../vert/uint-vertex-id-instance-id.asm.vert | 28 - .../asm/vert/vertex-id-instance-id.asm.vert | 28 - .../comp/access-chain-load-composite.comp | 108 - .../opt/shaders-hlsl/comp/access-chains.comp | 23 - .../comp/access-chains.force-uav.comp | 23 - .../shaders-hlsl/comp/address-buffers.comp | 17 - .../opt/shaders-hlsl/comp/atomic.comp | 91 - .../opt/shaders-hlsl/comp/barriers.comp | 26 - .../opt/shaders-hlsl/comp/builtins.comp | 11 - .../comp/composite-array-initialization.comp | 50 - .../shaders-hlsl/comp/globallycoherent.comp | 18 - .../opt/shaders-hlsl/comp/image.comp | 66 - .../comp/image.nonwritable-uav-texture.comp | 66 - .../opt/shaders-hlsl/comp/inverse.comp | 124 - .../comp/num-workgroups-alone.comp | 19 - .../comp/num-workgroups-with-builtins.comp | 26 - .../opt/shaders-hlsl/comp/outer-product.comp | 50 - .../opt/shaders-hlsl/comp/rmw-matrix.comp | 22 - .../shaders-hlsl/comp/rwbuffer-matrix.comp | 93 - ...alar-std450-distance-length-normalize.comp | 16 - .../opt/shaders-hlsl/comp/shared.comp | 29 - .../comp/spec-constant-op-member-array.comp | 51 - .../comp/spec-constant-work-group-size.comp | 43 - .../shaders-hlsl/comp/ssbo-array-length.comp | 17 - .../opt/shaders-hlsl/comp/ssbo-array.comp | 11 - .../frag/array-lut-no-loop-variable.frag | 34 - .../frag/basic-color-3comp.sm30.frag | 26 - .../frag/basic-color-3comp.sm50.frag | 26 - .../opt/shaders-hlsl/frag/basic.frag | 32 - .../shaders-hlsl/frag/bit-conversions.frag | 26 - .../opt/shaders-hlsl/frag/boolean-mix.frag | 27 - .../opt/shaders-hlsl/frag/builtins.frag | 34 - .../shaders-hlsl/frag/bvec-operations.frag | 29 - .../shaders-hlsl/frag/clip-cull-distance.frag | 30 - .../combined-texture-sampler-parameter.frag | 24 - .../frag/combined-texture-sampler-shadow.frag | 23 - .../complex-expression-in-access-chain.frag | 38 - .../frag/constant-composites.frag | 38 - .../control-dependent-in-branch.desktop.frag | 55 - .../shaders-hlsl/frag/demote-to-helper.frag | 9 - .../shaders-hlsl/frag/depth-greater-than.frag | 19 - .../shaders-hlsl/frag/depth-less-than.frag | 19 - .../frag/dual-source-blending.frag | 23 - .../frag/early-fragment-test.frag | 9 - .../frag/for-loop-continue-control-flow.frag | 25 - .../opt/shaders-hlsl/frag/fp16-packing.frag | 44 - .../opt/shaders-hlsl/frag/front-facing.frag | 39 - .../frag/image-query-selective.frag | 8 - .../shaders-hlsl/frag/image-query-uav.frag | 8 - ...age-query-uav.nonwritable-uav-texture.frag | 8 - .../opt/shaders-hlsl/frag/image-query.frag | 8 - .../frag/input-attachment-ms.frag | 33 - .../shaders-hlsl/frag/input-attachment.frag | 30 - .../opt/shaders-hlsl/frag/io-block.frag | 28 - .../frag/legacy-tex-modifiers.sm30.frag | 32 - .../opt/shaders-hlsl/frag/lut-promotion.frag | 55 - .../opt/shaders-hlsl/frag/matrix-input.frag | 26 - .../reference/opt/shaders-hlsl/frag/mod.frag | 67 - .../reference/opt/shaders-hlsl/frag/mrt.frag | 31 - .../opt/shaders-hlsl/frag/no-return.frag | 8 - .../opt/shaders-hlsl/frag/no-return2.frag | 16 - ...orm-qualifier.nonuniformresource.sm51.frag | 105 - .../frag/partial-write-preserve.frag | 8 - .../pixel-interlock-ordered.sm51.fxconly.frag | 24 - .../shaders-hlsl/frag/point-coord-compat.frag | 19 - .../shaders-hlsl/frag/query-lod.desktop.frag | 31 - .../readonly-coherent-ssbo.force-uav.frag | 21 - .../frag/readonly-coherent-ssbo.frag | 21 - .../opt/shaders-hlsl/frag/resources.frag | 41 - .../frag/row-major-layout-in-struct.frag | 38 - .../frag/sample-cmp-level-zero.frag | 40 - .../frag/sample-mask-in-and-out.frag | 30 - .../opt/shaders-hlsl/frag/sample-mask-in.frag | 32 - .../shaders-hlsl/frag/sample-mask-out.frag | 23 - .../opt/shaders-hlsl/frag/sampler-array.frag | 31 - .../frag/sampler-image-arrays.frag | 39 - .../frag/scalar-refract-reflect.frag | 49 - .../separate-combined-fake-overload.sm30.frag | 22 - .../frag/spec-constant-block-size.frag | 37 - .../frag/spec-constant-ternary.frag | 26 - .../frag/switch-unsigned-case.frag | 38 - .../opt/shaders-hlsl/frag/swizzle-scalar.frag | 41 - .../shaders-hlsl/frag/tex-sampling-ms.frag | 34 - .../opt/shaders-hlsl/frag/tex-sampling.frag | 71 - .../shaders-hlsl/frag/tex-sampling.sm30.frag | 54 - .../shaders-hlsl/frag/texel-fetch-offset.frag | 32 - .../frag/texture-proj-shadow.frag | 51 - .../texture-size-combined-image-sampler.frag | 30 - .../opt/shaders-hlsl/frag/unary-enclose.frag | 29 - .../frag/unorm-snorm-packing.frag | 109 - .../shaders-hlsl/frag/various-glsl-ops.frag | 26 - .../opt/shaders-hlsl/vert/basic.vert | 39 - .../shaders-hlsl/vert/clip-cull-distance.vert | 28 - .../opt/shaders-hlsl/vert/instancing.vert | 28 - .../opt/shaders-hlsl/vert/invariant.vert | 40 - .../opt/shaders-hlsl/vert/locations.vert | 73 - .../shaders-hlsl/vert/matrix-attribute.vert | 35 - .../opt/shaders-hlsl/vert/matrix-output.vert | 23 - .../opt/shaders-hlsl/vert/no-contraction.vert | 39 - .../opt/shaders-hlsl/vert/no-input.vert | 18 - .../shaders-hlsl/vert/point-size-compat.vert | 20 - .../opt/shaders-hlsl/vert/qualifiers.vert | 50 - .../vert/read-from-row-major-array.vert | 36 - .../opt/shaders-hlsl/vert/return-array.vert | 29 - .../shaders-hlsl/vert/sampler-buffers.vert | 22 - .../vert/struct-composite-decl.vert | 44 - .../opt/shaders-hlsl/vert/texture_buffer.vert | 21 - .../amd/shader_trinary_minmax.msl21.comp | 11 - .../asm/comp/atomic-decrement.asm.comp | 27 - .../asm/comp/atomic-increment.asm.comp | 27 - .../asm/comp/bitcast_iadd.asm.comp | 29 - .../asm/comp/bitcast_icmp.asm.comp | 29 - .../shaders-msl/asm/comp/bitcast_sar.asm.comp | 31 - .../asm/comp/bitcast_sdiv.asm.comp | 31 - .../shaders-msl/asm/comp/bitcast_slr.asm.comp | 31 - .../asm/comp/block-name-alias-global.asm.comp | 46 - .../comp/buffer-write-relative-addr.asm.comp | 29 - .../asm/comp/buffer-write.asm.comp | 24 - .../comp/global-parameter-name-alias.asm.comp | 9 - ...e-load-store-short-vector.invalid.asm.comp | 22 - .../asm/comp/multiple-entry.asm.comp | 29 - .../shaders-msl/asm/comp/quantize.asm.comp | 21 - .../asm/comp/relaxed-block-layout.asm.comp | 22 - ...specialization-constant-workgroup.asm.comp | 21 - .../struct-resource-name-aliasing.asm.comp | 16 - .../asm/comp/variable-pointers-2.asm.comp | 51 - ...ariable-pointers-store-forwarding.asm.comp | 25 - .../vector-builtin-type-cast-func.asm.comp | 28 - .../comp/vector-builtin-type-cast.asm.comp | 28 - .../asm/frag/combined-sampler-reuse.asm.frag | 23 - .../asm/frag/default-member-names.asm.frag | 19 - .../frag/descriptor-array-unnamed.asm.frag | 48 - ...isable-renamed-output.frag-output.asm.frag | 35 - .../asm/frag/empty-struct.asm.frag | 9 - .../extract-packed-from-composite.asm.frag | 30 - .../opt/shaders-msl/asm/frag/frem.asm.frag | 23 - .../asm/frag/function-overload-alias.asm.frag | 17 - .../asm/frag/image-extract-reuse.asm.frag | 17 - .../asm/frag/implicit-read-dep-phi.asm.frag | 50 - .../asm/frag/inf-nan-constant.asm.frag | 17 - .../interpolation-qualifiers-struct.asm.frag | 47 - .../asm/frag/line-directive.line.asm.frag | 89 - .../asm/frag/locations-components.asm.frag | 35 - .../frag/lut-promotion-initializer.asm.frag | 94 - .../asm/frag/min-lod.msl22.asm.frag | 22 - .../asm/frag/op-constant-null.asm.frag | 17 - .../asm/frag/op-image-sampled-image.asm.frag | 22 - .../asm/frag/pass-by-value.asm.frag | 22 - .../asm/frag/phi-loop-variable.asm.frag | 9 - .../pull-model-interpolation.asm.msl23.frag | 181 - .../asm/frag/sample-and-compare.asm.frag | 22 - .../frag/single-function-private-lut.asm.frag | 79 - .../opt/shaders-msl/asm/frag/srem.asm.frag | 23 - .../storage-class-output-initializer.asm.frag | 65 - .../asm/frag/texel-fetch-no-lod.asm.frag | 17 - .../asm/frag/texture-atomics.asm.frag | 121 - ...re-atomics.asm.graphics-robust-access.frag | 122 - .../asm/frag/texture-sampling-fp16.asm.frag | 22 - .../asm/frag/undef-variable-store.asm.frag | 17 - .../asm/frag/unknown-depth-state.asm.frag | 22 - .../asm/frag/unord-relational-op.asm.frag | 22 - .../shaders-msl/asm/frag/unreachable.asm.frag | 36 - .../asm/frag/vector-shuffle-oom.asm.frag | 282 -- .../asm/tesc/tess-level-overrun.asm.tesc | 23 - .../tess-level-overrun.multi-patch.asm.tesc | 24 - .../asm/tese/unnamed-builtin-array.asm.tese | 72 - .../clip-distance-plain-variable.asm.vert | 29 - ...ce-plain-variable.no-user-varying.asm.vert | 25 - .../asm/vert/copy-memory-interface.asm.vert | 25 - ...act-transposed-matrix-from-struct.asm.vert | 35 - .../asm/vert/fake-builtin-input.asm.vert | 23 - .../asm/vert/invariant.msl21.asm.vert | 17 - .../asm/vert/packed-bool-to-uint.asm.vert | 38 - .../packed-bool2-to-packed_uint2.asm.vert | 38 - .../asm/vert/packing-test.asm.vert | 9 - .../vert/spec-constant-op-composite.asm.vert | 35 - .../vert/uint-vertex-id-instance-id.asm.vert | 17 - .../access-private-workgroup-in-function.comp | 11 - ...ffers-discrete.msl2.argument.discrete.comp | 42 - ...rs-image-load-store.ios.msl2.argument.comp | 11 - ...uffers-image-load-store.msl2.argument.comp | 17 - .../opt/shaders-msl/comp/array-length.comp | 31 - .../array-length.msl2.argument.discrete.comp | 56 - .../opt/shaders-msl/comp/atomic.comp | 72 - .../opt/shaders-msl/comp/barriers.comp | 22 - .../reference/opt/shaders-msl/comp/basic.comp | 35 - .../shaders-msl/comp/basic.dispatchbase.comp | 38 - .../comp/basic.dispatchbase.msl11.comp | 36 - .../comp/basic.inline-block.msl2.comp | 53 - .../opt/shaders-msl/comp/builtins.comp | 11 - .../comp/cfg-preserve-parameter.comp | 9 - .../opt/shaders-msl/comp/coherent-block.comp | 17 - .../opt/shaders-msl/comp/coherent-image.comp | 17 - .../complex-composite-constant-array.comp | 59 - .../shaders-msl/comp/complex-type-alias.comp | 56 - .../comp/composite-array-initialization.comp | 79 - ...ray-initialization.force-native-array.comp | 148 - .../shaders-msl/comp/composite-construct.comp | 67 - .../comp/copy-array-of-arrays.comp | 20 - ...py-array-of-arrays.force-native-array.comp | 20 - .../opt/shaders-msl/comp/culling.comp | 35 - .../opt/shaders-msl/comp/defer-parens.comp | 24 - .../opt/shaders-msl/comp/dowhile.comp | 42 - .../comp/force-recompile-hooks.swizzle.comp | 73 - .../opt/shaders-msl/comp/functions.comp | 9 - ...vocation-id-writable-ssbo-in-function.comp | 26 - .../comp/global-invocation-id.comp | 26 - ...omic-automatic-bindings.argument.msl2.comp | 37 - .../comp/image-atomic-automatic-bindings.comp | 28 - .../comp/image-cube-array-load-store.comp | 12 - .../reference/opt/shaders-msl/comp/image.comp | 13 - .../opt/shaders-msl/comp/insert.comp | 28 - .../opt/shaders-msl/comp/inverse.comp | 130 - .../shaders-msl/comp/local-invocation-id.comp | 26 - .../comp/local-invocation-index.comp | 26 - .../reference/opt/shaders-msl/comp/mat3.comp | 17 - .../reference/opt/shaders-msl/comp/mod.comp | 33 - .../reference/opt/shaders-msl/comp/modf.comp | 24 - .../opt/shaders-msl/comp/outer-product.comp | 40 - .../opt/shaders-msl/comp/packing-test-1.comp | 28 - .../opt/shaders-msl/comp/packing-test-2.comp | 28 - .../opt/shaders-msl/comp/read-write-only.comp | 31 - .../opt/shaders-msl/comp/rmw-matrix.comp | 24 - .../opt/shaders-msl/comp/rmw-opt.comp | 27 - ...alar-std450-distance-length-normalize.comp | 25 - .../comp/shared-array-of-arrays.comp | 20 - .../opt/shaders-msl/comp/shared.comp | 25 - .../comp/spec-constant-op-member-array.comp | 49 - .../comp/spec-constant-work-group-size.comp | 75 - .../storage-buffer-std140-vector-array.comp | 91 - .../opt/shaders-msl/comp/struct-layout.comp | 27 - .../opt/shaders-msl/comp/struct-nested.comp | 27 - .../opt/shaders-msl/comp/struct-packing.comp | 152 - .../opt/shaders-msl/comp/torture-loop.comp | 44 - .../opt/shaders-msl/comp/type-alias.comp | 37 - .../reference/opt/shaders-msl/comp/udiv.comp | 22 - .../opt/shaders-msl/comp/writable-ssbo.comp | 26 - .../comp/extended-arithmetic.desktop.comp | 179 - .../desktop-only/frag/image-ms.desktop.frag | 11 - .../frag/query-levels.desktop.frag | 17 - .../frag/sampler-ms-query.desktop.frag | 17 - .../tesc/arrayed-output.desktop.sso.tesc | 85 - .../tesc/basic.desktop.sso.multi-patch.tesc | 39 - .../desktop-only/tesc/basic.desktop.sso.tesc | 39 - .../struct-copy.desktop.sso.multi-patch.tesc | 36 - .../tesc/struct-copy.desktop.sso.tesc | 40 - .../tese/triangle.desktop.sso.tese | 27 - .../desktop-only/vert/basic.desktop.sso.vert | 30 - ...ull-distance..no-user-varying.desktop.vert | 20 - .../vert/clip-cull-distance.desktop.vert | 24 - ...ader-draw-parameters.desktop.for-tess.vert | 20 - .../vert/shader-draw-parameters.desktop.vert | 17 - .../shaders-msl/flatten/basic.flatten.vert | 30 - .../flatten/multiindex.flatten.vert | 27 - .../flatten/push-constant.flatten.vert | 32 - .../shaders-msl/flatten/rowmajor.flatten.vert | 29 - .../shaders-msl/flatten/struct.flatten.vert | 40 - .../shaders-msl/flatten/swizzle.flatten.vert | 47 - .../shaders-msl/flatten/types.flatten.frag | 35 - .../frag/argument-buffers.msl2.argument.frag | 73 - .../shaders-msl/frag/array-component-io.frag | 99 - .../frag/array-lut-no-loop-variable.frag | 66 - .../shaders-msl/frag/array-of-array-lut.frag | 68 - ...niform.msl2.argument.discrete.swizzle.frag | 105 - ...zzle-nonconstant-uniform.msl2.swizzle.frag | 96 - ...wizzle.msl2.argument.discrete.swizzle.frag | 97 - ...array-of-texture-swizzle.msl2.swizzle.frag | 86 - .../frag/barycentric-nv-nopersp.msl22.frag | 28 - .../frag/barycentric-nv.msl22.frag | 28 - .../shaders-msl/frag/basic.force-sample.frag | 23 - .../reference/opt/shaders-msl/frag/basic.frag | 23 - .../binary-func-unpack-pack-arguments.frag | 28 - .../frag/binary-unpack-pack-arguments.frag | 28 - .../shaders-msl/frag/bitcasting.1d-as-2d.frag | 26 - .../opt/shaders-msl/frag/bitcasting.frag | 26 - .../shaders-msl/frag/buffer-read-write.frag | 27 - ...ead-write.texture-buffer-native.msl21.frag | 18 - .../opt/shaders-msl/frag/builtins.frag | 24 - .../frag/clip-distance-varying.frag | 67 - .../complex-expression-in-access-chain.frag | 29 - .../composite-extract-forced-temporary.frag | 24 - .../opt/shaders-msl/frag/constant-array.frag | 76 - .../shaders-msl/frag/constant-composites.frag | 74 - .../control-dependent-in-branch.desktop.frag | 45 - .../frag/cull-distance-varying.frag | 67 - .../shaders-msl/frag/depth-greater-than.frag | 17 - .../opt/shaders-msl/frag/depth-less-than.frag | 17 - .../frag/disable-frag-output.frag-output.frag | 35 - .../frag/dual-source-blending.frag | 19 - .../frag/early-fragment-tests.frag | 17 - .../opt/shaders-msl/frag/false-loop-init.frag | 28 - .../opt/shaders-msl/frag/flush_params.frag | 17 - .../frag/for-loop-continue-control-flow.frag | 23 - .../opt/shaders-msl/frag/for-loop-init.frag | 71 - .../opt/shaders-msl/frag/fp16-packing.frag | 25 - ...agment-component-padding.pad-fragment.frag | 76 - .../opt/shaders-msl/frag/front-facing.frag | 30 - .../opt/shaders-msl/frag/gather-dref.frag | 22 - .../opt/shaders-msl/frag/gather-offset.frag | 17 - .../frag/helper-invocation.msl21.frag | 32 - ....device-argument-buffer.argument.msl2.frag | 44 - .../shaders-msl/frag/illegal-name-test-0.frag | 17 - .../frag/image-query-lod.msl22.frag | 70 - .../opt/shaders-msl/frag/in_block.frag | 32 - .../opt/shaders-msl/frag/in_mat.frag | 37 - ...t-attachment-ms.arrayed-subpass.msl21.frag | 18 - .../shaders-msl/frag/input-attachment-ms.frag | 18 - .../input-attachment-ms.multiview.msl21.frag | 19 - .../input-attachment.arrayed-subpass.frag | 17 - .../shaders-msl/frag/input-attachment.frag | 17 - .../frag/input-attachment.multiview.frag | 18 - .../frag/interpolation-qualifiers-block.frag | 47 - .../frag/interpolation-qualifiers.frag | 28 - .../opt/shaders-msl/frag/lut-promotion.frag | 92 - .../reference/opt/shaders-msl/frag/mix.frag | 28 - .../opt/shaders-msl/frag/mrt-array.frag | 82 - .../frag/nonuniform-qualifier.msl2.frag | 53 - .../packed-expression-vector-shuffle.frag | 23 - .../opt/shaders-msl/frag/packing-test-3.frag | 28 - ...pixel-interlock-ordered.msl2.argument.frag | 53 - .../frag/pixel-interlock-ordered.msl2.frag | 41 - .../reference/opt/shaders-msl/frag/pls.frag | 31 - .../frag/post-depth-coverage.ios.msl2.frag | 17 - .../frag/post-depth-coverage.msl23.frag | 17 - ...rivate-variable-prototype-declaration.frag | 17 - .../read-cull-clip-distance-in-function.frag | 72 - .../opt/shaders-msl/frag/readonly-ssbo.frag | 22 - ...e-depth-propagate-state-from-resource.frag | 23 - .../sample-depth-separate-image-sampler.frag | 17 - ...ple-mask-in-and-out.fixed-sample-mask.frag | 20 - ...ample-mask-not-used.fixed-sample-mask.frag | 19 - .../frag/sample-mask.fixed-sample-mask.frag | 20 - .../opt/shaders-msl/frag/sample-mask.frag | 19 - .../frag/sample-position-func.frag | 23 - .../opt/shaders-msl/frag/sample-position.frag | 18 - .../sample-rate-frag-coord-sample-id.frag | 19 - .../sample-rate-frag-coord-sample-input.frag | 24 - .../sample-rate-frag-coord-sample-pos.frag | 19 - .../sample-rate-frag-coord.force-sample.frag | 18 - .../frag/sampler-1d-lod.1d-as-2d.frag | 22 - .../opt/shaders-msl/frag/sampler-1d-lod.frag | 22 - .../sampler-compare-bias.msl23.1d-as-2d.frag | 22 - .../sampler-compare-cascade-gradient.frag | 22 - .../sampler-compare-cascade-gradient.ios.frag | 22 - ...ampler-compare-cascade-gradient.msl23.frag | 22 - .../frag/sampler-image-arrays.msl2.frag | 28 - .../opt/shaders-msl/frag/sampler-ms.frag | 18 - .../opt/shaders-msl/frag/sampler.frag | 23 - .../frag/scalar-refract-reflect.frag | 49 - .../frag/separate-image-sampler-argument.frag | 17 - .../frag/shader-arithmetic-8bit.frag | 53 - .../frag/spec-constant-block-size.frag | 32 - .../frag/spec-constant-ternary.frag | 22 - .../frag/stencil-export.msl21.frag | 22 - .../frag/subgroup-builtins.msl22.frag | 18 - .../frag/subgroup-globals-extract.msl22.frag | 56 - .../frag/switch-unsigned-case.frag | 35 - .../opt/shaders-msl/frag/swizzle.frag | 30 - .../frag/texel-fetch-offset.1d-as-2d.frag | 18 - .../shaders-msl/frag/texel-fetch-offset.frag | 19 - .../shaders-msl/frag/texture-cube-array.frag | 22 - ...ure-cube-array.ios.emulate-cube-array.frag | 58 - .../frag/texture-multisample-array.msl21.frag | 23 - .../shaders-msl/frag/texture-proj-shadow.frag | 29 - .../opt/shaders-msl/frag/ubo_layout.frag | 37 - .../opt/shaders-msl/frag/unary-enclose.frag | 22 - .../frag/vecsize-mismatch.shader-inputs.frag | 75 - .../frag/write-depth-in-function.frag | 19 - .../intel/shader-integer-functions2.asm.comp | 31 - .../legacy/vert/transpose.legacy.vert | 29 - ...rays.mask-location-0.msl2.multi-patch.tesc | 188 - .../copy-arrays.mask-location-0.msl2.tesc | 191 - ...rays.mask-location-1.msl2.multi-patch.tesc | 79 - .../copy-arrays.mask-location-1.msl2.tesc | 83 - ...utputs-block.mask-location-0.for-tess.vert | 35 - ...te-outputs-block.mask-location-0.msl2.tesc | 41 - ...lock.mask-location-0.multi-patch.msl2.tesc | 44 - .../write-outputs-block.mask-location-0.vert | 34 - ...utputs-block.mask-location-1.for-tess.vert | 35 - ...te-outputs-block.mask-location-1.msl2.tesc | 41 - ...lock.mask-location-1.multi-patch.msl2.tesc | 44 - .../write-outputs-block.mask-location-1.vert | 34 - .../write-outputs.mask-clip-distance.vert | 67 - ...rite-outputs.mask-location-0.for-tess.vert | 68 - .../write-outputs.mask-location-0.msl2.tesc | 34 - ...e-outputs.mask-location-0.multi-patch.tesc | 81 - .../write-outputs.mask-location-0.tesc | 78 - .../write-outputs.mask-location-0.vert | 30 - ...rite-outputs.mask-location-1.for-tess.vert | 68 - .../write-outputs.mask-location-1.msl2.tesc | 33 - ...e-outputs.mask-location-1.multi-patch.tesc | 40 - .../write-outputs.mask-location-1.tesc | 37 - .../write-outputs.mask-location-1.vert | 30 - ...rite-outputs.mask-point-size.for-tess.vert | 68 - ...e-outputs.mask-point-size.multi-patch.tesc | 89 - .../write-outputs.mask-point-size.tesc | 86 - .../write-outputs.mask-point-size.vert | 30 - ...ite-outputs.mask-position.multi-patch.tesc | 89 - .../masking/write-outputs.mask-position.tesc | 86 - .../shaders-msl/tesc/basic.multi-patch.tesc | 23 - .../reference/opt/shaders-msl/tesc/basic.tesc | 22 - ...control-point-inout-types.multi-patch.tesc | 128 - .../complex-control-point-inout-types.tesc | 132 - .../tesc/complex-patch-out-types.tesc | 107 - ...rol-point-array-of-matrix.multi-patch.tesc | 68 - .../load-control-point-array-of-matrix.tesc | 73 - ...rol-point-array-of-struct.multi-patch.tesc | 76 - .../load-control-point-array-of-struct.tesc | 84 - .../load-control-point-array.multi-patch.tesc | 69 - .../tesc/load-control-point-array.tesc | 70 - .../tesc/matrix-output.multi-patch.tesc | 41 - .../tesc/reload-tess-level.multi-patch.tesc | 35 - .../shaders-msl/tesc/reload-tess-level.tesc | 35 - .../tesc/struct-output.multi-patch.tesc | 48 - .../tesc/water_tess.multi-patch.tesc | 91 - .../opt/shaders-msl/tesc/water_tess.tesc | 93 - .../opt/shaders-msl/tese/input-array.tese | 28 - .../opt/shaders-msl/tese/input-types.tese | 76 - .../load-control-point-array-of-matrix.tese | 85 - .../tese/load-control-point-array.tese | 78 - .../opt/shaders-msl/tese/quad.domain.tese | 73 - .../reference/opt/shaders-msl/tese/quad.tese | 72 - .../read-tess-level-in-func-quad.msl2.tese | 72 - .../tese/read-tess-level-in-func.msl2.tese | 69 - .../shaders-msl/tese/set-from-function.tese | 55 - .../shaders-msl/tese/triangle-tess-level.tese | 69 - .../opt/shaders-msl/tese/triangle.tese | 17 - .../opt/shaders-msl/tese/water_tess.tese | 45 - .../vert/array-component-io.for-tess.vert | 98 - .../shaders-msl/vert/array-component-io.vert | 100 - .../opt/shaders-msl/vert/basic.capture.vert | 29 - .../opt/shaders-msl/vert/basic.for-tess.vert | 31 - .../reference/opt/shaders-msl/vert/basic.vert | 30 - .../clip-distance-block.no-user-varying.vert | 25 - .../shaders-msl/vert/clip-distance-block.vert | 29 - .../opt/shaders-msl/vert/copy.flatten.vert | 45 - .../opt/shaders-msl/vert/dynamic.flatten.vert | 45 - .../vert/float-math.invariant-float-math.vert | 137 - .../opt/shaders-msl/vert/float-math.vert | 88 - .../opt/shaders-msl/vert/functions.vert | 122 - .../shaders-msl/vert/implicit-position-1.vert | 18 - .../shaders-msl/vert/implicit-position-2.vert | 9 - .../shaders-msl/vert/in_out_array_mat.vert | 108 - .../interface-block-block-composites.frag | 99 - .../interface-block-block-composites.vert | 105 - .../vert/interpolation-qualifiers-block.vert | 55 - .../vert/interpolation-qualifiers.vert | 36 - .../opt/shaders-msl/vert/invariant.msl21.vert | 26 - .../vert/leaf-function.capture.vert | 29 - .../vert/leaf-function.for-tess.vert | 31 - .../opt/shaders-msl/vert/no-contraction.vert | 88 - .../no-disable-vertex-out.frag-output.vert | 28 - .../vert/no_stage_out.for-tess.vert | 23 - .../opt/shaders-msl/vert/no_stage_out.vert | 20 - .../vert/no_stage_out.write_buff.vert | 37 - .../vert/no_stage_out.write_buff_atomic.vert | 30 - .../vert/no_stage_out.write_tex.vert | 27 - .../opt/shaders-msl/vert/out_block.vert | 41 - .../shaders-msl/vert/packed-bool-to-uint.vert | 38 - .../vert/packed-bool2-to-packed_uint2.vert | 38 - .../opt/shaders-msl/vert/packed_matrix.vert | 48 - .../opt/shaders-msl/vert/pointsize.vert | 33 - .../vert/read-from-row-major-array.vert | 29 - .../vert/resource-arrays-leaf.ios.vert | 42 - .../shaders-msl/vert/resource-arrays.ios.vert | 42 - .../vert/return-array.force-native-array.vert | 22 - .../opt/shaders-msl/vert/return-array.vert | 22 - .../shaders-msl/vert/set_builtin_in_func.vert | 19 - .../opt/shaders-msl/vert/sign-int-types.vert | 60 - .../signedness-mismatch.shader-inputs.vert | 74 - ...re_buffer.texture-buffer-native.msl21.vert | 17 - .../opt/shaders-msl/vert/texture_buffer.vert | 26 - .../opt/shaders-msl/vert/ubo.alignment.vert | 38 - .../reference/opt/shaders-msl/vert/ubo.vert | 30 - ...asic.multiview.no-layered.nocompat.vk.frag | 73 - .../frag/basic.multiview.nocompat.vk.frag | 73 - ...lper-forwarding.asm.vk.nocompat.msl23.frag | 22 - .../demote-to-helper.vk.nocompat.msl23.frag | 11 - ...emote-to-helper.vk.nocompat.msl23.ios.frag | 11 - .../vulkan/frag/push-constant.vk.frag | 28 - .../vulkan/frag/spec-constant.msl11.vk.frag | 26 - .../vulkan/frag/spec-constant.vk.frag | 22 - ...oup.multiview.viewfromdev.nocompat.vk.vert | 19 - .../vulkan/vert/device-group.nocompat.vk.vert | 18 - ...view.multiview.no-layered.nocompat.vk.vert | 28 - .../vert/multiview.multiview.nocompat.vk.vert | 31 - .../vulkan/vert/multiview.nocompat.vk.vert | 29 - .../vulkan/vert/small-storage.vk.vert | 48 - .../vulkan/vert/vulkan-vertex.vk.vert | 17 - .../asm/frag/depth-compare.asm.frag | 314 -- .../asm/frag/global-constant-arrays.asm.frag | 1141 ----- .../padded-float-array-member-defef.asm.frag | 1190 ------ .../asm/frag/sample-mask-not-array.asm.frag | 503 --- ...bpass-input.ios.framebuffer-fetch.asm.frag | 214 - ...ass-input.msl23.framebuffer-fetch.asm.frag | 214 - .../texture-atomics.asm.argument.msl2.frag | 84 - .../asm/frag/texture-atomics.asm.frag | 76 - ...re-atomics.asm.graphics-robust-access.frag | 77 - .../asm/tesc/hs-incorrect-base-type.asm.tesc | 399 -- .../asm/tesc/hs-input-array-access.asm.tesc | 467 --- .../asm/tesc/hs-texcoord-array.asm.tesc | 411 -- .../tess-factor-must-be-threadgroup.asm.tesc | 178 - .../asm/tese/ds-double-gl-in-deref.asm.tese | 419 -- .../asm/tese/ds-patch-input-fixes.asm.tese | 417 -- .../asm/tese/ds-patch-inputs.asm.tese | 216 - .../asm/tese/ds-texcoord-array.asm.tese | 318 -- .../asm/vert/array-missing-copies.asm.vert | 457 -- .../asm/vert/texture-buffer.asm.vert | 387 -- .../reference/opt/shaders/amd/gcn_shader.comp | 9 - .../opt/shaders/amd/shader_ballot.comp | 27 - .../opt/shaders/amd/shader_group_vote.comp | 14 - .../shaders/amd/shader_trinary_minmax.comp | 8 - .../asm/comp/atomic-decrement.asm.comp | 16 - .../asm/comp/atomic-increment.asm.comp | 16 - .../shaders/asm/comp/bitcast_iadd.asm.comp | 27 - .../shaders/asm/comp/bitcast_icmp.asm.comp | 27 - .../shaders/asm/comp/bitcast_iequal.asm.comp | 33 - .../opt/shaders/asm/comp/bitcast_sar.asm.comp | 29 - .../shaders/asm/comp/bitcast_sdiv.asm.comp | 29 - .../opt/shaders/asm/comp/bitcast_slr.asm.comp | 29 - .../asm/comp/block-name-alias-global.asm.comp | 37 - .../asm/comp/builtin-compute-bitcast.asm.comp | 13 - .../asm/comp/decoration-group.asm.comp | 38 - .../comp/global-parameter-name-alias.asm.comp | 7 - .../asm/comp/hlsl-functionality.asm.comp | 19 - .../opt/shaders/asm/comp/logical.asm.comp | 7 - .../shaders/asm/comp/multiple-entry.asm.comp | 27 - .../shaders/asm/comp/nmin-max-clamp.asm.comp | 47 - .../opt/shaders/asm/comp/op-phi-swap.asm.comp | 39 - .../opt/shaders/asm/comp/quantize.asm.comp | 19 - .../asm/comp/recompile-block-naming.asm.comp | 35 - ...specialization-constant-workgroup.asm.comp | 21 - .../asm/comp/switch-break-ladder.asm.comp | 71 - .../frag/combined-sampler-reuse.vk.asm.frag | 13 - .../combined-sampler-reuse.vk.asm.frag.vk | 14 - .../frag/complex-name-workarounds.asm.frag | 15 - ...osite-construct-struct-no-swizzle.asm.frag | 12 - .../asm/frag/default-member-names.asm.frag | 11 - .../frag/do-while-statement-fallback.asm.frag | 9 - .../shaders/asm/frag/empty-struct.asm.frag | 6 - .../frag/for-loop-phi-only-continue.asm.frag | 17 - .../opt/shaders/asm/frag/frem.asm.frag | 13 - .../asm/frag/function-overload-alias.asm.frag | 11 - .../hlsl-sample-cmp-level-zero-cube.asm.frag | 11 - .../frag/hlsl-sample-cmp-level-zero.asm.frag | 14 - .../asm/frag/image-extract-reuse.asm.frag | 11 - .../frag/image-fetch-no-sampler.asm.vk.frag | 13 - .../image-fetch-no-sampler.asm.vk.frag.vk | 14 - ...etch-no-sampler.no-samplerless.asm.vk.frag | 13 - ...h-no-sampler.no-samplerless.asm.vk.frag.vk | 14 - ...uery-no-sampler.no-samplerless.vk.asm.frag | 6 - ...y-no-sampler.no-samplerless.vk.asm.frag.vk | 6 - .../frag/image-query-no-sampler.vk.asm.frag | 6 - .../image-query-no-sampler.vk.asm.frag.vk | 6 - .../asm/frag/implicit-read-dep-phi.asm.frag | 40 - .../asm/frag/inf-nan-constant-double.asm.frag | 11 - .../asm/frag/inf-nan-constant.asm.frag | 11 - .../shaders/asm/frag/invalidation.asm.frag | 11 - .../asm/frag/line-directive.line.asm.frag | 78 - .../asm/frag/locations-components.asm.frag | 23 - ...op-body-dominator-continue-access.asm.frag | 70 - .../asm/frag/loop-header-to-continue.asm.frag | 45 - .../frag/lut-promotion-initializer.asm.frag | 42 - .../asm/frag/multi-for-loop-init.asm.frag | 22 - .../asm/frag/op-constant-null.asm.frag | 11 - .../frag/op-phi-swap-continue-block.asm.frag | 29 - .../asm/frag/pack-and-unpack-uint2.asm.frag | 11 - .../shaders/asm/frag/pass-by-value.asm.frag | 16 - .../asm/frag/phi-loop-variable.asm.frag | 6 - .../asm/frag/sample-and-compare.asm.frag | 13 - ...pler-buffer-array-without-sampler.asm.frag | 18 - .../sampler-buffer-without-sampler.asm.frag | 13 - .../frag/single-function-private-lut.asm.frag | 23 - .../opt/shaders/asm/frag/srem.asm.frag | 13 - .../storage-class-output-initializer.asm.frag | 13 - .../struct-composite-extract-swizzle.asm.frag | 21 - .../frag/switch-label-shared-block.asm.frag | 32 - .../asm/frag/temporary-name-alias.asm.frag | 6 - .../asm/frag/temporary-phi-hoisting.asm.frag | 27 - .../asm/frag/texel-fetch-no-lod.asm.frag | 11 - .../frag/texture-sampling-fp16.asm.vk.frag | 19 - .../frag/texture-sampling-fp16.asm.vk.frag.vk | 20 - .../asm/frag/undef-variable-store.asm.frag | 9 - .../asm/frag/unknown-depth-state.asm.vk.frag | 13 - .../frag/unknown-depth-state.asm.vk.frag.vk | 14 - .../opt/shaders/asm/frag/unreachable.asm.frag | 24 - .../asm/frag/vector-shuffle-oom.asm.frag | 277 -- .../asm/geom/block-name-namespace.asm.geom | 32 - .../inout-split-access-chain-handle.asm.geom | 9 - .../geom/split-access-chain-input.asm.geom | 9 - .../asm/geom/unroll-glposition-load.asm.geom | 22 - .../asm/tese/unroll-input-array-load.asm.tese | 17 - .../opt/shaders/asm/vert/empty-io.asm.vert | 15 - ...act-transposed-matrix-from-struct.asm.vert | 30 - .../asm/vert/global-builtin.sso.asm.vert | 20 - .../shaders/asm/vert/invariant-block.asm.vert | 9 - .../asm/vert/invariant-block.sso.asm.vert | 17 - .../opt/shaders/asm/vert/invariant.asm.vert | 9 - .../shaders/asm/vert/invariant.sso.asm.vert | 14 - .../spec-constant-op-composite.asm.vk.vert | 30 - .../spec-constant-op-composite.asm.vk.vert.vk | 24 - .../vert/uint-vertex-id-instance-id.asm.vert | 16 - .../reference/opt/shaders/comp/atomic.comp | 49 - .../opt/shaders/comp/bake_gradient.comp | 26 - .../reference/opt/shaders/comp/barriers.comp | 22 - .../reference/opt/shaders/comp/basic.comp | 28 - .../reference/opt/shaders/comp/casts.comp | 18 - .../shaders/comp/cfg-preserve-parameter.comp | 7 - .../reference/opt/shaders/comp/cfg.comp | 44 - .../opt/shaders/comp/coherent-block.comp | 13 - .../opt/shaders/comp/coherent-image.comp | 15 - .../comp/composite-array-initialization.comp | 27 - .../opt/shaders/comp/composite-construct.comp | 18 - .../reference/opt/shaders/comp/culling.comp | 28 - .../opt/shaders/comp/defer-parens.comp | 20 - .../reference/opt/shaders/comp/dowhile.comp | 38 - .../opt/shaders/comp/generate_height.comp | 56 - .../reference/opt/shaders/comp/image.comp | 12 - .../reference/opt/shaders/comp/insert.comp | 24 - .../reference/opt/shaders/comp/mat3.comp | 13 - .../reference/opt/shaders/comp/mod.comp | 20 - .../reference/opt/shaders/comp/modf.comp | 20 - .../opt/shaders/comp/outer-product.comp | 36 - .../opt/shaders/comp/read-write-only.comp | 27 - .../opt/shaders/comp/rmw-matrix.comp | 20 - .../reference/opt/shaders/comp/rmw-opt.comp | 23 - ...alar-std450-distance-length-normalize.comp | 19 - .../reference/opt/shaders/comp/shared.comp | 22 - .../opt/shaders/comp/ssbo-array-length.comp | 14 - .../opt/shaders/comp/ssbo-array.comp | 13 - .../opt/shaders/comp/struct-layout.comp | 23 - .../opt/shaders/comp/struct-packing.comp | 104 - .../opt/shaders/comp/torture-loop.comp | 40 - .../opt/shaders/comp/type-alias.comp | 33 - .../reference/opt/shaders/comp/udiv.comp | 18 - .../desktop-only/comp/enhanced-layouts.comp | 40 - .../comp/extended-arithmetic.desktop.comp | 159 - .../desktop-only/comp/fp64.desktop.comp | 63 - .../image-formats.desktop.noeliminate.comp | 7 - .../desktop-only/comp/int64.desktop.comp | 52 - .../frag/clip-cull-distance.desktop.frag | 12 - .../control-dependent-in-branch.desktop.frag | 37 - .../frag/depth-greater-than.desktop.frag | 9 - .../frag/depth-less-than.desktop.frag | 9 - .../frag/dual-source-blending.desktop.frag | 11 - .../frag/hlsl-uav-block-alias.asm.frag | 19 - .../desktop-only/frag/image-ms.desktop.frag | 12 - .../frag/image-query.desktop.frag | 6 - .../shaders/desktop-only/frag/image-size.frag | 12 - .../image-size.no-qualifier-deduction.frag | 12 - .../frag/in-block-qualifiers.frag | 21 - .../frag/layout-component.desktop.frag | 16 - .../frag/query-levels.desktop.frag | 11 - .../desktop-only/frag/query-lod.desktop.frag | 12 - .../frag/sampler-ms-query.desktop.frag | 14 - .../frag/stencil-export.desktop.frag | 13 - .../frag/texture-proj-shadow.desktop.frag | 26 - .../desktop-only/geom/basic.desktop.sso.geom | 36 - .../geom/viewport-index.desktop.geom | 9 - .../desktop-only/tesc/basic.desktop.sso.tesc | 27 - .../tese/triangle.desktop.sso.tese | 18 - .../desktop-only/vert/basic.desktop.sso.vert | 22 - .../vert/clip-cull-distance.desktop.sso.vert | 20 - .../vert/clip-cull-distance.desktop.vert | 15 - .../vert/out-block-qualifiers.vert | 27 - ...shader-draw-parameters-450.desktop.vk.vert | 24 - ...der-draw-parameters-450.desktop.vk.vert.vk | 8 - .../shader-draw-parameters.desktop.vk.vert | 24 - .../shader-draw-parameters.desktop.vk.vert.vk | 7 - .../opt/shaders/flatten/array.flatten.vert | 10 - .../opt/shaders/flatten/basic.flatten.vert | 13 - .../opt/shaders/flatten/copy.flatten.vert | 27 - .../opt/shaders/flatten/dynamic.flatten.vert | 27 - .../flatten/matrix-conversion.flatten.frag | 14 - .../shaders/flatten/matrixindex.flatten.vert | 19 - .../shaders/flatten/multiindex.flatten.vert | 10 - .../flatten/push-constant.flatten.vert | 13 - .../opt/shaders/flatten/rowmajor.flatten.vert | 10 - .../opt/shaders/flatten/struct.flatten.vert | 22 - .../flatten/struct.rowmajor.flatten.vert | 21 - .../opt/shaders/flatten/swizzle.flatten.vert | 21 - .../opt/shaders/flatten/types.flatten.frag | 14 - .../frag/array-lut-no-loop-variable.frag | 19 - .../avoid-expression-lowering-to-loop.frag | 29 - .../opt/shaders/frag/barycentric-nv.frag | 19 - .../reference/opt/shaders/frag/basic.frag | 15 - .../complex-expression-in-access-chain.frag | 21 - .../composite-extract-forced-temporary.frag | 16 - .../opt/shaders/frag/constant-array.frag | 22 - .../opt/shaders/frag/constant-composites.frag | 23 - .../opt/shaders/frag/false-loop-init.frag | 18 - .../opt/shaders/frag/flush_params.frag | 11 - .../frag/for-loop-continue-control-flow.frag | 15 - .../opt/shaders/frag/for-loop-init.frag | 65 - .../opt/shaders/frag/frexp-modf.frag | 33 - .../opt/shaders/frag/front-facing.frag | 20 - .../opt/shaders/frag/gather-dref.frag | 14 - .../reference/opt/shaders/frag/ground.frag | 35 - .../opt/shaders/frag/helper-invocation.frag | 23 - ...temporary-use-continue-block-as-value.frag | 28 - .../frag/image-load-store-uint-coord.asm.frag | 17 - ...-loop-dominated-variable-preservation.frag | 11 - .../loop-dominator-and-switch-default.frag | 56 - .../opt/shaders/frag/lut-promotion.frag | 41 - .../reference/opt/shaders/frag/mix.frag | 18 - .../shaders/frag/partial-write-preserve.frag | 8 - .../shaders/frag/pixel-interlock-ordered.frag | 23 - .../frag/pixel-interlock-unordered.frag | 23 - .../reference/opt/shaders/frag/pls.frag | 21 - .../shaders/frag/post-depth-coverage-es.frag | 14 - .../opt/shaders/frag/post-depth-coverage.frag | 15 - .../opt/shaders/frag/round-even.frag | 12 - .../reference/opt/shaders/frag/round.frag | 12 - .../frag/sample-interlock-ordered.frag | 23 - .../frag/sample-interlock-unordered.frag | 23 - .../opt/shaders/frag/sample-parameter.frag | 13 - .../opt/shaders/frag/sampler-ms.frag | 14 - .../opt/shaders/frag/sampler-proj.frag | 16 - .../reference/opt/shaders/frag/sampler.frag | 15 - .../shaders/frag/scalar-refract-reflect.frag | 13 - .../frag/selection-block-dominator.frag | 19 - .../frag/struct-type-unrelated-alias.frag | 9 - .../shaders/frag/switch-unsigned-case.frag | 29 - .../reference/opt/shaders/frag/swizzle.frag | 22 - .../opt/shaders/frag/texel-fetch-offset.frag | 15 - .../frag/ubo-load-row-major-workaround.frag | 46 - .../opt/shaders/frag/ubo_layout.frag | 26 - .../opt/shaders/frag/unary-enclose.frag | 12 - .../reference/opt/shaders/geom/basic.geom | 27 - .../shaders/geom/geometry-passthrough.geom | 27 - .../opt/shaders/geom/lines-adjacency.geom | 26 - .../reference/opt/shaders/geom/lines.geom | 23 - .../opt/shaders/geom/multi-stream.geom | 14 - .../reference/opt/shaders/geom/points.geom | 26 - .../opt/shaders/geom/single-invocation.geom | 26 - .../geom/transform-feedback-streams.geom | 26 - .../opt/shaders/geom/triangles-adjacency.geom | 26 - .../reference/opt/shaders/geom/triangles.geom | 26 - .../legacy/fragment/explicit-lod.legacy.frag | 12 - .../legacy/fragment/explicit-lod.legacy.vert | 11 - .../shaders/legacy/fragment/fma.legacy.frag | 13 - .../legacy/fragment/io-blocks.legacy.frag | 12 - .../multiple-struct-flattening.legacy.frag | 36 - .../shaders/legacy/fragment/round.legacy.frag | 13 - .../fragment/struct-varying.legacy.frag | 18 - .../legacy/fragment/switch.legacy.frag | 77 - .../legacy/vert/implicit-lod.legacy.vert | 9 - .../shaders/legacy/vert/io-block.legacy.vert | 13 - .../struct-flatten-inner-array.legacy.vert | 17 - ...flatten-stores-multi-dimension.legacy.vert | 49 - .../legacy/vert/struct-varying.legacy.vert | 24 - .../legacy/vert/switch-nested.legacy.vert | 43 - .../shaders/legacy/vert/transpose.legacy.vert | 29 - .../reference/opt/shaders/tesc/basic.tesc | 17 - .../opt/shaders/tesc/water_tess.tesc | 79 - .../reference/opt/shaders/tese/ccw.tese | 9 - .../reference/opt/shaders/tese/cw.tese | 9 - .../reference/opt/shaders/tese/equal.tese | 9 - .../opt/shaders/tese/fractional_even.tese | 9 - .../opt/shaders/tese/fractional_odd.tese | 9 - .../opt/shaders/tese/input-array.tese | 11 - .../reference/opt/shaders/tese/line.tese | 9 - .../opt/shaders/tese/load-array-of-array.tese | 10 - .../opt/shaders/tese/patch-input-array.tese | 10 - .../reference/opt/shaders/tese/triangle.tese | 9 - .../opt/shaders/tese/water_tess.tese | 36 - .../reference/opt/shaders/vert/basic.vert | 17 - .../reference/opt/shaders/vert/ground.vert | 94 - .../reference/opt/shaders/vert/invariant.vert | 19 - .../opt/shaders/vert/no-contraction.vert | 18 - .../reference/opt/shaders/vert/ocean.vert | 126 - .../vert/read-from-row-major-array.vert | 18 - .../opt/shaders/vert/return-array.vert | 9 - .../opt/shaders/vert/texture_buffer.vert | 11 - .../vert/transform-feedback-decorations.vert | 22 - .../reference/opt/shaders/vert/ubo.vert | 17 - ...ay-of-buffer-reference.nocompat.vk.comp.vk | 25 - ...ffer-reference-bitcast.nocompat.vk.comp.vk | 26 - ...-reference-decorations.nocompat.vk.comp.vk | 35 - .../comp/buffer-reference.nocompat.vk.comp.vk | 35 - .../spec-constant-op-member-array.vk.comp | 47 - .../spec-constant-op-member-array.vk.comp.vk | 35 - .../spec-constant-work-group-size.vk.comp | 34 - .../spec-constant-work-group-size.vk.comp.vk | 24 - .../combined-texture-sampler-shadow.vk.frag | 14 - ...combined-texture-sampler-shadow.vk.frag.vk | 15 - .../frag/combined-texture-sampler.vk.frag | 17 - .../frag/combined-texture-sampler.vk.frag.vk | 17 - ...-helper-forwarding.asm.vk.nocompat.frag.vk | 15 - .../frag/demote-to-helper.vk.nocompat.frag.vk | 9 - .../vulkan/frag/desktop-mediump.vk.frag | 12 - .../vulkan/frag/desktop-mediump.vk.frag.vk | 12 - .../vulkan/frag/input-attachment-ms.vk.frag | 12 - .../frag/input-attachment-ms.vk.frag.vk | 12 - .../vulkan/frag/input-attachment.vk.frag | 14 - .../vulkan/frag/input-attachment.vk.frag.vk | 14 - .../nonuniform-qualifier.vk.nocompat.frag.vk | 58 - .../push-constant-as-ubo.push-ubo.vk.frag | 14 - .../push-constant-as-ubo.push-ubo.vk.frag.vk | 14 - .../shaders/vulkan/frag/push-constant.vk.frag | 20 - .../vulkan/frag/push-constant.vk.frag.vk | 18 - .../separate-combined-fake-overload.vk.frag | 12 - ...separate-combined-fake-overload.vk.frag.vk | 13 - .../separate-sampler-texture-array.vk.frag | 19 - .../separate-sampler-texture-array.vk.frag.vk | 20 - .../frag/separate-sampler-texture.vk.frag | 19 - .../frag/separate-sampler-texture.vk.frag.vk | 20 - ...shader-arithmetic-8bit.nocompat.vk.frag.vk | 43 - .../frag/spec-constant-block-size.vk.frag | 22 - .../frag/spec-constant-block-size.vk.frag.vk | 19 - .../vulkan/frag/spec-constant-ternary.vk.frag | 16 - .../frag/spec-constant-ternary.vk.frag.vk | 13 - ...terminators.khr.spv14.nocompat.vk.rahit.vk | 17 - .../rahit/terminators.nocompat.vk.rahit.vk | 17 - ...ng-callable.khr.spv14.nocompat.vk.rcall.vk | 10 - ...ibute_block.khr.spv14.nocompat.vk.rchit.vk | 24 - .../hit_attribute_block.nocompat.vk.rchit.vk | 24 - ...in_function.khr.spv14.nocompat.vk.rchit.vk | 24 - ...ute_block_in_function.nocompat.vk.rchit.vk | 24 - ...ibute_plain.khr.spv14.nocompat.vk.rchit.vk | 11 - .../hit_attribute_plain.nocompat.vk.rchit.vk | 11 - ...bute_struct.khr.spv14.nocompat.vk.rchit.vk | 17 - .../hit_attribute_struct.nocompat.vk.rchit.vk | 17 - .../hit_kind.khr.spv14.nocompat.vk.rchit.vk | 10 - .../rchit/hit_kind.nocompat.vk.rchit.vk | 10 - .../hit_t.khr.spv14.nocompat.vk.rchit.vk | 10 - .../vulkan/rchit/hit_t.nocompat.vk.rchit.vk | 10 - ...g_ray_flags.khr.spv14.nocompat.vk.rchit.vk | 10 - .../incoming_ray_flags.nocompat.vk.rchit.vk | 10 - ...e_custom_id.khr.spv14.nocompat.vk.rchit.vk | 10 - .../instance_custom_id.nocompat.vk.rchit.vk | 10 - ...instance_id.khr.spv14.nocompat.vk.rchit.vk | 10 - .../rchit/instance_id.nocompat.vk.rchit.vk | 10 - ...y_direction.khr.spv14.nocompat.vk.rchit.vk | 10 - .../object_ray_direction.nocompat.vk.rchit.vk | 10 - ..._ray_origin.khr.spv14.nocompat.vk.rchit.vk | 10 - .../object_ray_origin.nocompat.vk.rchit.vk | 10 - ...ct_to_world.khr.spv14.nocompat.vk.rchit.vk | 10 - .../object_to_world.nocompat.vk.rchit.vk | 10 - .../payloads.khr.spv14.nocompat.vk.rchit.vk | 15 - .../rchit/payloads.nocompat.vk.rchit.vk | 15 - ...rimitive_id.khr.spv14.nocompat.vk.rchit.vk | 10 - .../rchit/primitive_id.nocompat.vk.rchit.vk | 10 - .../ray_tmax.khr.spv14.nocompat.vk.rchit.vk | 10 - .../rchit/ray_tmax.nocompat.vk.rchit.vk | 10 - .../ray_tmin.khr.spv14.nocompat.vk.rchit.vk | 10 - .../rchit/ray_tmin.nocompat.vk.rchit.vk | 10 - ...ray_tracing.khr.spv14.nocompat.vk.rchit.vk | 10 - .../rchit/ray_tracing.nocompat.vk.rchit.vk | 10 - ...y_direction.khr.spv14.nocompat.vk.rchit.vk | 10 - .../world_ray_direction.nocompat.vk.rchit.vk | 10 - ..._ray_origin.khr.spv14.nocompat.vk.rchit.vk | 10 - .../world_ray_origin.nocompat.vk.rchit.vk | 10 - ...d_to_object.khr.spv14.nocompat.vk.rchit.vk | 10 - .../world_to_object.nocompat.vk.rchit.vk | 10 - .../convert-u-to-as.spv14.vk.nocompat.rgen.vk | 15 - ...ute_callable.nocompat.khr.spv14.vk.rgen.vk | 15 - .../rgen/execute_callable.nocompat.vk.rgen.vk | 15 - .../launch_id.khr.spv14.nocompat.vk.rgen.vk | 10 - .../vulkan/rgen/launch_id.nocompat.vk.rgen.vk | 10 - .../launch_size.khr.spv14.nocompat.vk.rgen.vk | 10 - .../rgen/launch_size.nocompat.vk.rgen.vk | 10 - .../payloads.khr.spv14.nocompat.vk.rgen.vk | 31 - .../vulkan/rgen/payloads.nocompat.vk.rgen.vk | 31 - .../pure_call.khr.spv14.nocompat.vk.rgen.vk | 13 - .../vulkan/rgen/pure_call.nocompat.vk.rgen.vk | 12 - .../ray_tracing.khr.spv14.nocompat.vk.rgen.vk | 15 - .../rgen/ray_tracing.nocompat.vk.rgen.vk | 15 - ...ecord_buffer.khr.spv14.nocompat.vk.rgen.vk | 17 - .../shader_record_buffer.nocompat.vk.rgen.vk | 16 - ...intersection.khr.spv14.nocompat.vk.rint.vk | 8 - .../report-intersection.nocompat.vk.rint.vk | 8 - ...ray_tracing.khr.spv14.nocompat.vk.rmiss.vk | 10 - .../rmiss/ray_tracing.nocompat.vk.rmiss.vk | 10 - ...ce_incoming.khr.spv14.nocompat.vk.rmiss.vk | 11 - .../vert/device-group.nocompat.vk.vert.vk | 8 - .../vulkan/vert/multiview.nocompat.vk.vert.vk | 15 - .../shaders/vulkan/vert/small-storage.vk.vert | 61 - .../vulkan/vert/small-storage.vk.vert.vk | 55 - .../shaders/vulkan/vert/vulkan-vertex.vk.vert | 16 - .../vulkan/vert/vulkan-vertex.vk.vert.vk | 7 - ...access-chain-load-store-composite.asm.comp | 75 - ...ased-struct-divergent-member-name.asm.comp | 22 - .../asm/comp/atomic-load-store.asm.comp | 18 - .../asm/comp/atomic-result-temporary.asm.comp | 24 - .../comp/bitfield-signed-operations.asm.comp | 105 - .../asm/comp/bitscan.asm.comp | 25 - ...onuniform.asm.sm51.nonuniformresource.comp | 21 - .../comp/constant-composite-undef.asm.comp | 14 - ...-in-entry-point.noeliminate.spv14.asm.comp | 11 - .../asm/comp/glsl-signed-operations.asm.comp | 45 - ....std450.frexp-modf-struct.fxconly.asm.comp | 31 - ...onuniform.asm.sm51.nonuniformresource.comp | 21 - ...lization-constant-workgroup.nofxc.asm.comp | 22 - .../comp/storage-buffer-basic.nofxc.asm.comp | 32 - .../asm/frag/empty-struct-in-struct.asm.frag | 37 - .../asm/frag/image-fetch-uint-coord.asm.frag | 28 - ...andling-2.nonuniformresource.sm51.asm.frag | 37 - ...opagation.nonuniformresource.sm51.asm.frag | 52 - ...form-ssbo.sm51.nonuniformresource.asm.frag | 39 - .../frag/only-initializer-frag-depth.asm.frag | 17 - .../asm/frag/phi.zero-initialize.asm.frag | 45 - ...-interlock-callstack.sm51.fxconly.asm.frag | 33 - ...terlock-control-flow.sm51.fxconly.asm.frag | 43 - ...lock-split-functions.sm51.fxconly.asm.frag | 43 - .../reserved-function-identifier.asm.frag | 31 - ...element-array-matrix-rule.invalid.asm.frag | 42 - ...rithmetic-cast.invalid.nofxc.sm60.asm.frag | 30 - ...ch-block-case-fallthrough.asm.invalid.frag | 82 - .../asm/frag/unordered-compare.asm.frag | 51 - .../frag/vector-shuffle-undef-index.asm.frag | 28 - .../asm/temporary.zero-initialize.asm.frag | 44 - .../vert/block-struct-initializer.asm.vert | 35 - .../vert/builtin-output-initializer.asm.vert | 28 - .../asm/vert/complex-link-by-name.asm.vert | 54 - .../asm/vert/empty-struct-composite.asm.vert | 15 - .../shaders-hlsl-no-opt/comp/bitfield.comp | 113 - .../comp/glsl.std450.fxconly.comp | 297 -- .../comp/illegal-struct-name.asm.comp | 22 - .../subgroups-boolean.invalid.nofxc.sm60.comp | 28 - .../comp/subgroups.invalid.nofxc.sm60.comp | 102 - .../frag/cbuffer-packing-straddle.frag | 56 - .../constant-buffer-array.invalid.sm51.frag | 44 - .../frag/fp16.invalid.desktop.frag | 179 - .../shaders-hlsl-no-opt/frag/frag-coord.frag | 27 - ...types.fxconly.nofxc.sm62.native-16bit.frag | 79 - ...m-constructor.sm51.nonuniformresource.frag | 32 - ...terlock-simple-callstack.sm51.fxconly.frag | 33 - .../frag/spec-constant.frag | 142 - .../frag/ubo-offset-out-of-order.frag | 33 - .../frag/variables.zero-initialize.frag | 45 - .../block-io-auto-location-assignment.vert | 37 - ...rix-input.flatten-matrix-vertex-input.vert | 51 - .../vert/pass-array-by-value.vert | 48 - .../asm/comp/access-chain-invalidate.asm.comp | 19 - .../asm/comp/atomic-decrement.asm.comp | 24 - .../asm/comp/atomic-increment.asm.comp | 24 - .../asm/comp/bitcast_icmp.asm.comp | 28 - .../asm/comp/block-name-alias-global.asm.comp | 39 - .../asm/comp/control-flow-hints.asm.comp | 41 - .../comp/global-parameter-name-alias.asm.comp | 33 - .../asm/comp/nmin-max-clamp.asm.comp | 84 - .../asm/frag/cbuffer-stripped.asm.frag | 32 - .../asm/frag/combined-sampler-reuse.asm.frag | 30 - .../asm/frag/empty-struct.asm.frag | 27 - .../shaders-hlsl/asm/frag/frem.asm.frag | 29 - .../asm/frag/function-overload-alias.asm.frag | 47 - .../asm/frag/image-extract-reuse.asm.frag | 31 - .../asm/frag/implicit-read-dep-phi.asm.frag | 56 - .../asm/frag/inf-nan-constant.asm.frag | 19 - .../asm/frag/line-directive.line.asm.frag | 86 - .../frag/lut-promotion-initializer.asm.frag | 55 - ...d-unpack-uint2.fxconly.nofxc.sm60.asm.frag | 34 - .../asm/frag/pass-by-value.asm.frag | 30 - .../asm/frag/sample-and-compare.asm.frag | 30 - .../frag/single-function-private-lut.asm.frag | 66 - .../shaders-hlsl/asm/frag/srem.asm.frag | 29 - .../storage-class-output-initializer.asm.frag | 23 - .../asm/frag/texel-fetch-no-lod.asm.frag | 30 - .../asm/frag/texture-sampling-fp16.asm.frag | 29 - .../asm/frag/unknown-depth-state.asm.frag | 41 - .../asm/frag/unreachable.asm.frag | 44 - ...act-transposed-matrix-from-struct.asm.vert | 67 - .../vert/spec-constant-op-composite.asm.vert | 50 - .../vert/uint-vertex-id-instance-id.asm.vert | 37 - .../asm/vert/vertex-id-instance-id.asm.vert | 28 - .../comp/access-chain-load-composite.comp | 164 - .../shaders-hlsl/comp/access-chains.comp | 23 - .../comp/access-chains.force-uav.comp | 23 - .../shaders-hlsl/comp/address-buffers.comp | 17 - .../reference/shaders-hlsl/comp/atomic.comp | 91 - .../reference/shaders-hlsl/comp/barriers.comp | 81 - .../reference/shaders-hlsl/comp/builtins.comp | 32 - .../comp/composite-array-initialization.comp | 63 - .../shaders-hlsl/comp/globallycoherent.comp | 20 - .../reference/shaders-hlsl/comp/image.comp | 73 - .../comp/image.nonwritable-uav-texture.comp | 73 - .../reference/shaders-hlsl/comp/inverse.comp | 124 - .../comp/num-workgroups-alone.comp | 19 - .../comp/num-workgroups-with-builtins.comp | 26 - .../shaders-hlsl/comp/outer-product.comp | 50 - .../shaders-hlsl/comp/rmw-matrix.comp | 22 - .../shaders-hlsl/comp/rwbuffer-matrix.comp | 139 - ...alar-std450-distance-length-normalize.comp | 16 - .../reference/shaders-hlsl/comp/shared.comp | 31 - .../comp/spec-constant-op-member-array.comp | 51 - .../comp/spec-constant-work-group-size.comp | 43 - .../shaders-hlsl/comp/ssbo-array-length.comp | 17 - .../shaders-hlsl/comp/ssbo-array.comp | 13 - .../frag/array-lut-no-loop-variable.frag | 30 - .../frag/basic-color-3comp.sm30.frag | 26 - .../frag/basic-color-3comp.sm50.frag | 26 - .../reference/shaders-hlsl/frag/basic.frag | 32 - .../shaders-hlsl/frag/bit-conversions.frag | 27 - .../shaders-hlsl/frag/boolean-mix.frag | 27 - .../reference/shaders-hlsl/frag/builtins.frag | 34 - .../shaders-hlsl/frag/bvec-operations.frag | 29 - .../shaders-hlsl/frag/clip-cull-distance.frag | 30 - .../combined-texture-sampler-parameter.frag | 44 - .../frag/combined-texture-sampler-shadow.frag | 40 - .../complex-expression-in-access-chain.frag | 41 - .../frag/constant-composites.frag | 38 - .../control-dependent-in-branch.desktop.frag | 56 - .../shaders-hlsl/frag/demote-to-helper.frag | 9 - .../shaders-hlsl/frag/depth-greater-than.frag | 19 - .../shaders-hlsl/frag/depth-less-than.frag | 19 - .../frag/dual-source-blending.frag | 23 - .../frag/early-fragment-test.frag | 9 - .../frag/for-loop-continue-control-flow.frag | 44 - .../shaders-hlsl/frag/fp16-packing.frag | 44 - .../shaders-hlsl/frag/front-facing.frag | 39 - .../frag/image-query-selective.frag | 146 - .../shaders-hlsl/frag/image-query-uav.frag | 64 - ...age-query-uav.nonwritable-uav-texture.frag | 63 - .../shaders-hlsl/frag/image-query.frag | 132 - .../frag/input-attachment-ms.frag | 39 - .../shaders-hlsl/frag/input-attachment.frag | 35 - .../reference/shaders-hlsl/frag/io-block.frag | 28 - .../frag/legacy-tex-modifiers.sm30.frag | 32 - .../shaders-hlsl/frag/lut-promotion.frag | 55 - .../shaders-hlsl/frag/matrix-input.frag | 26 - .../reference/shaders-hlsl/frag/mod.frag | 71 - .../reference/shaders-hlsl/frag/mrt.frag | 31 - .../shaders-hlsl/frag/no-return.frag | 8 - .../shaders-hlsl/frag/no-return2.frag | 17 - ...orm-qualifier.nonuniformresource.sm51.frag | 115 - .../frag/partial-write-preserve.frag | 76 - .../pixel-interlock-ordered.sm51.fxconly.frag | 24 - .../shaders-hlsl/frag/point-coord-compat.frag | 19 - .../shaders-hlsl/frag/query-lod.desktop.frag | 31 - .../readonly-coherent-ssbo.force-uav.frag | 21 - .../frag/readonly-coherent-ssbo.frag | 21 - .../shaders-hlsl/frag/resources.frag | 44 - .../frag/row-major-layout-in-struct.frag | 47 - .../frag/sample-cmp-level-zero.frag | 51 - .../frag/sample-mask-in-and-out.frag | 30 - .../shaders-hlsl/frag/sample-mask-in.frag | 32 - .../shaders-hlsl/frag/sample-mask-out.frag | 23 - .../shaders-hlsl/frag/sampler-array.frag | 45 - .../frag/sampler-image-arrays.frag | 54 - .../frag/scalar-refract-reflect.frag | 49 - .../separate-combined-fake-overload.sm30.frag | 32 - .../frag/spec-constant-block-size.frag | 37 - .../frag/spec-constant-ternary.frag | 26 - .../frag/switch-unsigned-case.frag | 38 - .../shaders-hlsl/frag/swizzle-scalar.frag | 41 - .../shaders-hlsl/frag/tex-sampling-ms.frag | 33 - .../shaders-hlsl/frag/tex-sampling.frag | 106 - .../shaders-hlsl/frag/tex-sampling.sm30.frag | 83 - .../shaders-hlsl/frag/texel-fetch-offset.frag | 31 - .../frag/texture-proj-shadow.frag | 51 - .../texture-size-combined-image-sampler.frag | 30 - .../shaders-hlsl/frag/unary-enclose.frag | 32 - .../frag/unorm-snorm-packing.frag | 109 - .../shaders-hlsl/frag/various-glsl-ops.frag | 28 - .../reference/shaders-hlsl/vert/basic.vert | 39 - .../shaders-hlsl/vert/clip-cull-distance.vert | 28 - .../shaders-hlsl/vert/instancing.vert | 28 - .../shaders-hlsl/vert/invariant.vert | 40 - .../shaders-hlsl/vert/locations.vert | 75 - .../shaders-hlsl/vert/matrix-attribute.vert | 35 - .../shaders-hlsl/vert/matrix-output.vert | 23 - .../shaders-hlsl/vert/no-contraction.vert | 45 - .../reference/shaders-hlsl/vert/no-input.vert | 18 - .../shaders-hlsl/vert/point-size-compat.vert | 20 - .../shaders-hlsl/vert/qualifiers.vert | 50 - .../vert/read-from-row-major-array.vert | 65 - .../shaders-hlsl/vert/return-array.vert | 48 - .../shaders-hlsl/vert/sampler-buffers.vert | 27 - .../vert/struct-composite-decl.vert | 50 - .../shaders-hlsl/vert/texture_buffer.vert | 21 - ...ased-struct-divergent-member-name.asm.comp | 38 - .../comp/arithmetic-conversion-signs.asm.comp | 42 - .../asm/comp/atomic-load-store.asm.comp | 23 - .../asm/comp/atomic-result-temporary.asm.comp | 23 - .../asm/comp/bitcast-fp16-fp32.asm.comp | 21 - .../comp/bitfield-signed-operations.asm.comp | 29 - .../asm/comp/bitscan.asm.comp | 53 - ...composite-construct-buffer-struct.asm.comp | 22 - .../comp/constant-composite-undef.asm.comp | 17 - .../asm/comp/copy-logical-2.spv14.asm.comp | 60 - .../asm/comp/copy-logical.spv14.asm.comp | 47 - .../comp/device-array-load-temporary.asm.comp | 174 - ...load-temporary.force-native-array.asm.comp | 135 - .../device-constant-array-load-store.asm.comp | 179 - ...ray-load-store.force-native-array.asm.comp | 140 - ...-in-entry-point.noeliminate.spv14.asm.comp | 23 - .../asm/comp/glsl-signed-operations.asm.comp | 73 - .../glsl.std450.frexp-modf-struct.asm.comp | 35 - .../storage-buffer-basic.invalid.asm.comp | 22 - .../storage-buffer-pointer-argument.asm.comp | 28 - .../asm/comp/variable-pointers.asm.comp | 74 - ...omponent-insert-packed-expression.asm.frag | 34 - .../asm/frag/empty-struct-in-struct.asm.frag | 35 - ...xup-entry-point-identifier.nomain.asm.frag | 17 - .../asm/frag/image-fetch-uint-coord.asm.frag | 22 - .../asm/frag/image-gather.asm.frag | 22 - ...mage-type-normal-comparison-usage.asm.frag | 31 - ...nput-attachment-unused-frag-coord.asm.frag | 25 - ...-frexp-scalar-access-chain-output.asm.frag | 17 - .../frag/only-initializer-frag-depth.asm.frag | 17 - .../asm/frag/phi.zero-initialize.asm.frag | 41 - .../pixel-interlock-callstack.msl2.asm.frag | 37 - ...pixel-interlock-control-flow.msl2.asm.frag | 52 - ...el-interlock-split-functions.msl2.asm.frag | 49 - .../private-initializer-direct-store.asm.frag | 19 - .../reserved-function-identifier.asm.frag | 33 - .../subgroup-arithmetic-cast.msl21.asm.frag | 30 - ...ch-block-case-fallthrough.asm.invalid.frag | 75 - .../asm/frag/texture-access.swizzle.asm.frag | 190 - .../frag/vector-shuffle-undef-index.asm.frag | 24 - ...lizers-block.mask-location-0.msl2.asm.tesc | 82 - ....mask-location-0.multi-patch.msl2.asm.tesc | 85 - ...lizers-block.mask-location-1.msl2.asm.tesc | 81 - ....mask-location-1.multi-patch.msl2.asm.tesc | 84 - ...lizers-block.mask-point-size.msl2.asm.tesc | 100 - ....mask-point-size.multi-patch.msl2.asm.tesc | 103 - ...ializers-block.mask-position.msl2.asm.tesc | 100 - ...ck.mask-position.multi-patch.msl2.asm.tesc | 103 - ...initializers.mask-location-0.msl2.asm.tesc | 90 - ....mask-location-0.msl2.multi-patch.asm.tesc | 93 - .../initializers.mask-location-1.asm.tesc | 89 - ...izers.mask-location-1.multi-patch.asm.tesc | 92 - ...initializers.mask-point-size.msl2.asm.tesc | 90 - ....mask-point-size.msl2.multi-patch.asm.tesc | 93 - .../initializers.mask-position.msl2.asm.tesc | 90 - ...rs.mask-position.msl2.multi-patch.asm.tesc | 93 - .../composite-extract-row-major.asm.comp | 16 - .../load-packed-no-forwarding-2.asm.comp | 19 - .../load-packed-no-forwarding-3.asm.comp | 20 - .../load-packed-no-forwarding-4.asm.comp | 20 - .../load-packed-no-forwarding-5.asm.comp | 20 - .../load-packed-no-forwarding.asm.comp | 23 - .../packed-vector-extract-insert.asm.comp | 21 - .../row-major-split-access-chain.asm.comp | 16 - .../asm/packing/scalar-array-float2.asm.frag | 24 - .../scalar-array-float3-one-element.asm.frag | 23 - .../asm/packing/scalar-array-float3.asm.frag | 24 - ...scalar-float2x2-col-major.invalid.asm.frag | 24 - .../scalar-float2x2-row-major.asm.frag | 24 - ...scalar-float2x3-col-major.invalid.asm.frag | 24 - .../scalar-float2x3-row-major.asm.frag | 24 - ...scalar-float3x2-col-major.invalid.asm.frag | 24 - .../scalar-float3x2-row-major.asm.frag | 24 - ...scalar-float3x3-col-major.invalid.asm.frag | 24 - .../scalar-float3x3-row-major.asm.frag | 24 - .../asm/temporary.zero-initialize.asm.frag | 38 - .../array-control-point-initializer.asm.tesc | 65 - .../block-control-point-initializer.asm.tesc | 70 - ...builtin-control-point-initializer.asm.tesc | 80 - ...mposite-control-point-initializer.asm.tesc | 69 - .../tesc/copy-memory-control-point.asm.tesc | 125 - .../asm/tesc/copy-tess-level-tri.asm.tesc | 68 - .../plain-control-point-initializer.asm.tesc | 62 - ...input-array-builtin-array.invalid.asm.tesc | 141 - ...builtin-array.invalid.multi-patch.asm.tesc | 140 - .../tesc/tess-level-initializer-quad.asm.tesc | 78 - .../tess-level-initializer-triangle.asm.tesc | 72 - ...-level-read-write-in-function-tri.asm.tesc | 35 - .../asm/tese/copy-tess-level.asm.msl2.tese | 73 - .../asm/tese/split-access-chain.asm.tese | 28 - .../vert/block-struct-initializer.asm.vert | 39 - .../vert/builtin-output-initializer.asm.vert | 20 - ...omposite-extract-physical-type-id.asm.vert | 31 - .../asm/vert/duplicate-view-index.asm.vert | 19 - .../asm/vert/empty-struct-composite.asm.vert | 13 - .../op-load-forced-temporary-array.asm.frag | 76 - .../asm/vert/pointer-to-pointer.asm.vert | 20 - .../comp/array-copy-threadgroup-memory.comp | 172 - .../basic.dynamic-buffer.msl2.invalid.comp | 90 - .../comp/bitcast-16bit-1.invalid.comp | 26 - .../comp/bitcast-16bit-2.invalid.comp | 31 - .../shaders-msl-no-opt/comp/bitfield.comp | 47 - .../shaders-msl-no-opt/comp/glsl.std450.comp | 289 -- .../comp/illegal-struct-name.asm.comp | 29 - .../comp/int64.invalid.msl22.comp | 106 - .../shaders-msl-no-opt/comp/loop.comp | 91 - .../shaders-msl-no-opt/comp/return.comp | 39 - ...std140-array-load-composite-construct.comp | 18 - ...ct-packing-scalar.nocompat.invalid.vk.comp | 151 - ...pat.invalid.vk.msl12.emulate-subgroup.comp | 30 - .../subgroups.nocompat.invalid.vk.msl21.comp | 327 -- ...ompat.invalid.vk.msl21.fixed-subgroup.comp | 322 -- ...bgroups.nocompat.invalid.vk.msl21.ios.comp | 151 - ...bgroups.nocompat.invalid.vk.msl22.ios.comp | 282 -- ...ps.nocompat.invalid.vk.msl23.ios.simd.comp | 316 -- .../components/fragment-input-component.frag | 23 - .../components/fragment-output-component.frag | 25 - ...ragment-output-component.pad-fragment.frag | 22 - .../components/vertex-input-component.vert | 28 - .../components/vertex-output-component.vert | 26 - .../frag/16bit-constants.invalid.frag | 21 - ...e-to-helper.vk.nocompat.msl21.invalid.frag | 11 - .../frag/depth-image-gather.asm.frag | 22 - ....msl2.argument..force-active.discrete.frag | 31 - .../frag/fp16.desktop.invalid.frag | 185 - .../shaders-msl-no-opt/frag/image-gather.frag | 24 - .../frag/in_block_assign.frag | 31 - .../frag/min-max-clamp.invalid.asm.frag | 69 - .../frag/nonuniform-constructor.msl2.frag | 23 - ...pixel-interlock-simple-callstack.msl2.frag | 37 - ...layout-ubo-std430.vk.nocompat.invalid.frag | 36 - .../shadow-compare-global-alias.invalid.frag | 57 - .../subgroups.nocompat.invalid.vk.msl22.frag | 314 -- ...-fallback.msl20.ios.framebuffer-fetch.frag | 17 - ...ndex-fallback.msl23.framebuffer-fetch.frag | 17 - ...nction-argument.framebuffer-fetch.ios.frag | 37 - ...tion-argument.framebuffer-fetch.msl23.frag | 37 - ...ding.framebuffer-fetch.msl23.argument.frag | 23 - ...ation-binding.framebuffer-fetch.msl23.frag | 17 - ...g.ios.framebuffer-fetch.msl2.argument.frag | 23 - ...on-binding.ios.framebuffer-fetch.msl2.frag | 17 - .../frag/texture-access-int.swizzle.frag | 148 - .../frag/texture-access-leaf.swizzle.frag | 197 - .../frag/texture-access-uint.swizzle.frag | 148 - .../frag/texture-access.swizzle.frag | 190 - ...le-structs-access-chain.argument.msl2.frag | 32 - ...o-array-multiple-structs-access-chain.frag | 33 - .../frag/ubo-offset-out-of-order.frag | 28 - .../frag/variables.zero-initialize.frag | 40 - .../packing/array-of-vec3.comp | 17 - .../packing/array-of-vec4.comp | 17 - .../packing/isolated-scalar-access.comp | 26 - .../packing/load-store-col-rows.comp | 76 - .../packing/matrix-2x2-scalar.comp | 86 - .../packing/matrix-2x2-std140.comp | 92 - .../packing/matrix-2x2-std430.comp | 86 - .../packing/matrix-2x3-scalar.comp | 92 - .../packing/matrix-2x3-std140.comp | 93 - .../packing/matrix-2x3-std430.comp | 87 - .../packing/matrix-2x4-scalar.comp | 88 - .../packing/matrix-2x4-std140.comp | 97 - .../packing/matrix-2x4-std430.comp | 88 - .../packing/matrix-3x2-scalar.comp | 91 - .../packing/matrix-3x2-std140.comp | 92 - .../packing/matrix-3x2-std430.comp | 86 - .../packing/matrix-3x3-scalar.comp | 102 - .../packing/matrix-3x3-std140.comp | 87 - .../packing/matrix-3x3-std430.comp | 87 - .../packing/matrix-3x4-scalar.comp | 99 - .../packing/matrix-3x4-std140.comp | 88 - .../packing/matrix-3x4-std430.comp | 88 - .../packing/matrix-4x2-scalar.comp | 86 - .../packing/matrix-4x2-std140.comp | 95 - .../packing/matrix-4x2-std430.comp | 86 - .../packing/matrix-4x3-scalar.comp | 98 - .../packing/matrix-4x3-std140.comp | 87 - .../packing/matrix-4x3-std430.comp | 87 - .../packing/matrix-4x4-scalar.comp | 88 - .../packing/matrix-4x4-std140.comp | 88 - .../packing/matrix-4x4-std430.comp | 88 - .../packing/matrix-multiply-row-major.comp | 21 - .../matrix-multiply-unpacked-col-major-2.comp | 25 - .../matrix-multiply-unpacked-col-major.comp | 23 - .../matrix-multiply-unpacked-row-major-2.comp | 25 - .../matrix-multiply-unpacked-row-major.comp | 23 - .../packing/member-padding.comp | 21 - .../packing/std140-array-of-vectors.comp | 42 - .../packing/struct-alignment.comp | 27 - .../struct-packing-array-of-scalar.comp | 22 - .../packing/struct-packing-recursive.comp | 33 - .../packing/struct-packing.comp | 29 - .../struct-size-padding-array-of-array.comp | 54 - .../packing/struct-size-padding.comp | 54 - .../tesc/copy-tess-level.tesc | 70 - .../passthrough-clip-cull.multi-patch.tesc | 71 - ...ess-level-read-write-in-function-quad.tesc | 37 - ...-input-automatic-attribute-assignment.tese | 80 - .../tese/load-clip-cull.msl2.tese | 37 - .../vert/cull-distance.for-tess.vert | 62 - .../vert/functions_nested.vert | 199 - .../vert/layer.msl11.invalid.vert | 24 - ...ass-array-by-value.force-native-array.vert | 157 - .../vert/pass-array-by-value.vert | 87 - .../vert/uninitialized-vertex-output.vert | 18 - .../vert/unused-subgroup-builtin.msl22.vert | 9 - .../vert/viewport-index.msl2.invalid.vert | 24 - .../texture-access-function.swizzle.vk.frag | 204 - .../amd/shader_trinary_minmax.msl21.comp | 14 - .../asm/comp/atomic-decrement.asm.comp | 29 - .../asm/comp/atomic-increment.asm.comp | 29 - .../asm/comp/bitcast_iadd.asm.comp | 29 - .../asm/comp/bitcast_icmp.asm.comp | 29 - .../shaders-msl/asm/comp/bitcast_sar.asm.comp | 31 - .../asm/comp/bitcast_sdiv.asm.comp | 31 - .../shaders-msl/asm/comp/bitcast_slr.asm.comp | 31 - .../asm/comp/block-name-alias-global.asm.comp | 46 - .../comp/buffer-write-relative-addr.asm.comp | 32 - .../asm/comp/buffer-write.asm.comp | 24 - .../comp/global-parameter-name-alias.asm.comp | 33 - ...e-load-store-short-vector.invalid.asm.comp | 22 - .../asm/comp/multiple-entry.asm.comp | 29 - .../shaders-msl/asm/comp/quantize.asm.comp | 21 - .../asm/comp/relaxed-block-layout.asm.comp | 22 - ...specialization-constant-workgroup.asm.comp | 21 - .../struct-resource-name-aliasing.asm.comp | 24 - .../asm/comp/variable-pointers-2.asm.comp | 63 - ...ariable-pointers-store-forwarding.asm.comp | 32 - .../vector-builtin-type-cast-func.asm.comp | 34 - .../comp/vector-builtin-type-cast.asm.comp | 24 - .../asm/frag/combined-sampler-reuse.asm.frag | 23 - .../asm/frag/default-member-names.asm.frag | 40 - .../frag/descriptor-array-unnamed.asm.frag | 48 - ...isable-renamed-output.frag-output.asm.frag | 35 - .../asm/frag/empty-struct.asm.frag | 29 - .../extract-packed-from-composite.asm.frag | 49 - .../shaders-msl/asm/frag/frem.asm.frag | 23 - .../asm/frag/function-overload-alias.asm.frag | 51 - .../asm/frag/image-extract-reuse.asm.frag | 17 - .../asm/frag/implicit-read-dep-phi.asm.frag | 49 - .../asm/frag/inf-nan-constant.asm.frag | 17 - .../interpolation-qualifiers-struct.asm.frag | 47 - .../asm/frag/line-directive.line.asm.frag | 85 - .../asm/frag/locations-components.asm.frag | 37 - .../frag/lut-promotion-initializer.asm.frag | 92 - .../asm/frag/min-lod.msl22.asm.frag | 22 - .../asm/frag/op-constant-null.asm.frag | 70 - .../asm/frag/op-image-sampled-image.asm.frag | 25 - .../asm/frag/pass-by-value.asm.frag | 30 - .../asm/frag/phi-loop-variable.asm.frag | 12 - .../pull-model-interpolation.asm.msl23.frag | 187 - .../asm/frag/sample-and-compare.asm.frag | 22 - .../frag/single-function-private-lut.asm.frag | 82 - .../shaders-msl/asm/frag/srem.asm.frag | 23 - .../storage-class-output-initializer.asm.frag | 65 - .../asm/frag/texel-fetch-no-lod.asm.frag | 17 - .../asm/frag/texture-atomics.asm.frag | 121 - ...re-atomics.asm.graphics-robust-access.frag | 121 - .../asm/frag/texture-sampling-fp16.asm.frag | 22 - .../asm/frag/undef-variable-store.asm.frag | 37 - .../asm/frag/unknown-depth-state.asm.frag | 36 - .../asm/frag/unord-relational-op.asm.frag | 58 - .../shaders-msl/asm/frag/unreachable.asm.frag | 40 - .../asm/frag/vector-shuffle-oom.asm.frag | 351 -- .../asm/tesc/tess-level-overrun.asm.tesc | 23 - .../tess-level-overrun.multi-patch.asm.tesc | 24 - .../asm/tese/unnamed-builtin-array.asm.tese | 72 - .../clip-distance-plain-variable.asm.vert | 49 - ...ce-plain-variable.no-user-varying.asm.vert | 45 - .../asm/vert/copy-memory-interface.asm.vert | 25 - ...act-transposed-matrix-from-struct.asm.vert | 66 - .../asm/vert/fake-builtin-input.asm.vert | 23 - .../asm/vert/invariant.msl21.asm.vert | 26 - .../asm/vert/packed-bool-to-uint.asm.vert | 38 - .../packed-bool2-to-packed_uint2.asm.vert | 38 - .../asm/vert/packing-test.asm.vert | 19 - .../vert/spec-constant-op-composite.asm.vert | 37 - .../vert/uint-vertex-id-instance-id.asm.vert | 29 - .../access-private-workgroup-in-function.comp | 38 - ...ffers-discrete.msl2.argument.discrete.comp | 42 - ...rs-image-load-store.ios.msl2.argument.comp | 11 - ...uffers-image-load-store.msl2.argument.comp | 17 - .../shaders-msl/comp/array-length.comp | 39 - .../array-length.msl2.argument.discrete.comp | 68 - .../reference/shaders-msl/comp/atomic.comp | 72 - .../reference/shaders-msl/comp/barriers.comp | 90 - .../reference/shaders-msl/comp/basic.comp | 36 - .../shaders-msl/comp/basic.dispatchbase.comp | 41 - .../comp/basic.dispatchbase.msl11.comp | 39 - .../comp/basic.inline-block.msl2.comp | 54 - .../reference/shaders-msl/comp/builtins.comp | 17 - .../comp/cfg-preserve-parameter.comp | 82 - .../shaders-msl/comp/coherent-block.comp | 17 - .../shaders-msl/comp/coherent-image.comp | 17 - .../complex-composite-constant-array.comp | 65 - .../shaders-msl/comp/complex-type-alias.comp | 69 - .../comp/composite-array-initialization.comp | 89 - ...ray-initialization.force-native-array.comp | 158 - .../shaders-msl/comp/composite-construct.comp | 76 - .../comp/copy-array-of-arrays.comp | 79 - ...py-array-of-arrays.force-native-array.comp | 364 -- .../reference/shaders-msl/comp/culling.comp | 36 - .../shaders-msl/comp/defer-parens.comp | 25 - .../reference/shaders-msl/comp/dowhile.comp | 31 - .../comp/force-recompile-hooks.swizzle.comp | 74 - .../reference/shaders-msl/comp/functions.comp | 19 - ...vocation-id-writable-ssbo-in-function.comp | 32 - .../comp/global-invocation-id.comp | 26 - ...omic-automatic-bindings.argument.msl2.comp | 38 - .../comp/image-atomic-automatic-bindings.comp | 29 - .../comp/image-cube-array-load-store.comp | 14 - .../reference/shaders-msl/comp/image.comp | 13 - .../reference/shaders-msl/comp/insert.comp | 23 - .../reference/shaders-msl/comp/inverse.comp | 130 - .../shaders-msl/comp/local-invocation-id.comp | 26 - .../comp/local-invocation-index.comp | 26 - .../reference/shaders-msl/comp/mat3.comp | 18 - .../reference/shaders-msl/comp/mod.comp | 37 - .../reference/shaders-msl/comp/modf.comp | 26 - .../shaders-msl/comp/outer-product.comp | 40 - .../shaders-msl/comp/packing-test-1.comp | 38 - .../shaders-msl/comp/packing-test-2.comp | 29 - .../shaders-msl/comp/read-write-only.comp | 31 - .../shaders-msl/comp/rmw-matrix.comp | 24 - .../reference/shaders-msl/comp/rmw-opt.comp | 31 - ...alar-std450-distance-length-normalize.comp | 25 - .../comp/shared-array-of-arrays.comp | 33 - .../reference/shaders-msl/comp/shared.comp | 27 - .../comp/spec-constant-op-member-array.comp | 49 - .../comp/spec-constant-work-group-size.comp | 75 - .../storage-buffer-std140-vector-array.comp | 96 - .../shaders-msl/comp/struct-layout.comp | 28 - .../shaders-msl/comp/struct-nested.comp | 39 - .../shaders-msl/comp/struct-packing.comp | 152 - .../shaders-msl/comp/torture-loop.comp | 53 - .../shaders-msl/comp/type-alias.comp | 67 - .../reference/shaders-msl/comp/udiv.comp | 22 - .../shaders-msl/comp/writable-ssbo.comp | 26 - .../comp/extended-arithmetic.desktop.comp | 179 - .../desktop-only/frag/image-ms.desktop.frag | 13 - .../frag/query-levels.desktop.frag | 17 - .../frag/sampler-ms-query.desktop.frag | 17 - .../tesc/arrayed-output.desktop.sso.tesc | 85 - .../tesc/basic.desktop.sso.multi-patch.tesc | 47 - .../desktop-only/tesc/basic.desktop.sso.tesc | 47 - .../struct-copy.desktop.sso.multi-patch.tesc | 36 - .../tesc/struct-copy.desktop.sso.tesc | 40 - .../tese/triangle.desktop.sso.tese | 27 - .../desktop-only/vert/basic.desktop.sso.vert | 30 - ...ull-distance..no-user-varying.desktop.vert | 20 - .../vert/clip-cull-distance.desktop.vert | 24 - ...ader-draw-parameters.desktop.for-tess.vert | 20 - .../vert/shader-draw-parameters.desktop.vert | 17 - .../shaders-msl/flatten/basic.flatten.vert | 30 - .../flatten/multiindex.flatten.vert | 27 - .../flatten/push-constant.flatten.vert | 32 - .../shaders-msl/flatten/rowmajor.flatten.vert | 30 - .../shaders-msl/flatten/struct.flatten.vert | 40 - .../shaders-msl/flatten/swizzle.flatten.vert | 47 - .../shaders-msl/flatten/types.flatten.frag | 35 - .../frag/argument-buffers.msl2.argument.frag | 96 - .../shaders-msl/frag/array-component-io.frag | 99 - .../frag/array-lut-no-loop-variable.frag | 62 - .../shaders-msl/frag/array-of-array-lut.frag | 68 - ...niform.msl2.argument.discrete.swizzle.frag | 117 - ...zzle-nonconstant-uniform.msl2.swizzle.frag | 108 - ...wizzle.msl2.argument.discrete.swizzle.frag | 114 - ...array-of-texture-swizzle.msl2.swizzle.frag | 98 - .../frag/barycentric-nv-nopersp.msl22.frag | 31 - .../frag/barycentric-nv.msl22.frag | 31 - .../shaders-msl/frag/basic.force-sample.frag | 23 - .../reference/shaders-msl/frag/basic.frag | 23 - .../binary-func-unpack-pack-arguments.frag | 28 - .../frag/binary-unpack-pack-arguments.frag | 28 - .../shaders-msl/frag/bitcasting.1d-as-2d.frag | 30 - .../shaders-msl/frag/bitcasting.frag | 30 - .../shaders-msl/frag/buffer-read-write.frag | 27 - ...ead-write.texture-buffer-native.msl21.frag | 18 - .../reference/shaders-msl/frag/builtins.frag | 24 - .../frag/clip-distance-varying.frag | 67 - .../complex-expression-in-access-chain.frag | 32 - .../composite-extract-forced-temporary.frag | 23 - .../shaders-msl/frag/constant-array.frag | 83 - .../shaders-msl/frag/constant-composites.frag | 74 - .../control-dependent-in-branch.desktop.frag | 45 - .../frag/cull-distance-varying.frag | 67 - .../shaders-msl/frag/depth-greater-than.frag | 17 - .../shaders-msl/frag/depth-less-than.frag | 17 - .../frag/disable-frag-output.frag-output.frag | 35 - .../frag/dual-source-blending.frag | 19 - .../frag/early-fragment-tests.frag | 17 - .../shaders-msl/frag/false-loop-init.frag | 35 - .../shaders-msl/frag/flush_params.frag | 40 - .../frag/for-loop-continue-control-flow.frag | 42 - .../shaders-msl/frag/for-loop-init.frag | 58 - .../shaders-msl/frag/fp16-packing.frag | 25 - ...agment-component-padding.pad-fragment.frag | 82 - .../shaders-msl/frag/front-facing.frag | 30 - .../shaders-msl/frag/gather-dref.frag | 22 - .../shaders-msl/frag/gather-offset.frag | 17 - .../frag/helper-invocation.msl21.frag | 40 - ....device-argument-buffer.argument.msl2.frag | 58 - .../shaders-msl/frag/illegal-name-test-0.frag | 21 - .../frag/image-query-lod.msl22.frag | 78 - .../reference/shaders-msl/frag/in_block.frag | 32 - .../reference/shaders-msl/frag/in_mat.frag | 37 - ...t-attachment-ms.arrayed-subpass.msl21.frag | 27 - .../shaders-msl/frag/input-attachment-ms.frag | 27 - .../input-attachment-ms.multiview.msl21.frag | 28 - .../input-attachment.arrayed-subpass.frag | 25 - .../shaders-msl/frag/input-attachment.frag | 25 - .../frag/input-attachment.multiview.frag | 26 - .../frag/interpolation-qualifiers-block.frag | 47 - .../frag/interpolation-qualifiers.frag | 28 - .../shaders-msl/frag/lut-promotion.frag | 92 - .../reference/shaders-msl/frag/mix.frag | 30 - .../reference/shaders-msl/frag/mrt-array.frag | 94 - .../frag/nonuniform-qualifier.msl2.frag | 56 - .../packed-expression-vector-shuffle.frag | 25 - .../shaders-msl/frag/packing-test-3.frag | 55 - ...pixel-interlock-ordered.msl2.argument.frag | 53 - .../frag/pixel-interlock-ordered.msl2.frag | 41 - .../reference/shaders-msl/frag/pls.frag | 31 - .../frag/post-depth-coverage.ios.msl2.frag | 17 - .../frag/post-depth-coverage.msl23.frag | 17 - ...rivate-variable-prototype-declaration.frag | 41 - .../read-cull-clip-distance-in-function.frag | 78 - .../shaders-msl/frag/readonly-ssbo.frag | 30 - ...e-depth-propagate-state-from-resource.frag | 43 - .../sample-depth-separate-image-sampler.frag | 31 - ...ple-mask-in-and-out.fixed-sample-mask.frag | 20 - ...ample-mask-not-used.fixed-sample-mask.frag | 19 - .../frag/sample-mask.fixed-sample-mask.frag | 20 - .../shaders-msl/frag/sample-mask.frag | 19 - .../frag/sample-position-func.frag | 32 - .../shaders-msl/frag/sample-position.frag | 18 - .../sample-rate-frag-coord-sample-id.frag | 19 - .../sample-rate-frag-coord-sample-input.frag | 24 - .../sample-rate-frag-coord-sample-pos.frag | 19 - .../sample-rate-frag-coord.force-sample.frag | 18 - .../frag/sampler-1d-lod.1d-as-2d.frag | 22 - .../shaders-msl/frag/sampler-1d-lod.frag | 22 - .../sampler-compare-bias.msl23.1d-as-2d.frag | 22 - .../sampler-compare-cascade-gradient.frag | 22 - .../sampler-compare-cascade-gradient.ios.frag | 22 - ...ampler-compare-cascade-gradient.msl23.frag | 22 - .../frag/sampler-image-arrays.msl2.frag | 48 - .../shaders-msl/frag/sampler-ms.frag | 18 - .../reference/shaders-msl/frag/sampler.frag | 32 - .../frag/scalar-refract-reflect.frag | 49 - .../frag/separate-image-sampler-argument.frag | 25 - .../frag/shader-arithmetic-8bit.frag | 102 - .../frag/spec-constant-block-size.frag | 32 - .../frag/spec-constant-ternary.frag | 22 - .../frag/stencil-export.msl21.frag | 30 - .../frag/subgroup-builtins.msl22.frag | 18 - .../frag/subgroup-globals-extract.msl22.frag | 86 - .../frag/switch-unsigned-case.frag | 35 - .../reference/shaders-msl/frag/swizzle.frag | 28 - .../frag/texel-fetch-offset.1d-as-2d.frag | 18 - .../shaders-msl/frag/texel-fetch-offset.frag | 18 - .../shaders-msl/frag/texture-cube-array.frag | 25 - ...ure-cube-array.ios.emulate-cube-array.frag | 61 - .../frag/texture-multisample-array.msl21.frag | 23 - .../shaders-msl/frag/texture-proj-shadow.frag | 29 - .../shaders-msl/frag/ubo_layout.frag | 37 - .../shaders-msl/frag/unary-enclose.frag | 26 - .../frag/vecsize-mismatch.shader-inputs.frag | 75 - .../frag/write-depth-in-function.frag | 27 - .../intel/shader-integer-functions2.asm.comp | 31 - .../legacy/vert/transpose.legacy.vert | 33 - ...rays.mask-location-0.msl2.multi-patch.tesc | 188 - .../copy-arrays.mask-location-0.msl2.tesc | 191 - ...rays.mask-location-1.msl2.multi-patch.tesc | 79 - .../copy-arrays.mask-location-1.msl2.tesc | 83 - ...utputs-block.mask-location-0.for-tess.vert | 35 - ...te-outputs-block.mask-location-0.msl2.tesc | 49 - ...lock.mask-location-0.multi-patch.msl2.tesc | 52 - .../write-outputs-block.mask-location-0.vert | 34 - ...utputs-block.mask-location-1.for-tess.vert | 35 - ...te-outputs-block.mask-location-1.msl2.tesc | 49 - ...lock.mask-location-1.multi-patch.msl2.tesc | 52 - .../write-outputs-block.mask-location-1.vert | 34 - .../write-outputs.mask-clip-distance.vert | 73 - ...rite-outputs.mask-location-0.for-tess.vert | 74 - .../write-outputs.mask-location-0.msl2.tesc | 42 - ...e-outputs.mask-location-0.multi-patch.tesc | 87 - .../write-outputs.mask-location-0.tesc | 84 - .../write-outputs.mask-location-0.vert | 38 - ...rite-outputs.mask-location-1.for-tess.vert | 74 - .../write-outputs.mask-location-1.msl2.tesc | 41 - ...e-outputs.mask-location-1.multi-patch.tesc | 48 - .../write-outputs.mask-location-1.tesc | 45 - .../write-outputs.mask-location-1.vert | 38 - ...rite-outputs.mask-point-size.for-tess.vert | 74 - ...e-outputs.mask-point-size.multi-patch.tesc | 95 - .../write-outputs.mask-point-size.tesc | 92 - .../write-outputs.mask-point-size.vert | 38 - ...ite-outputs.mask-position.multi-patch.tesc | 95 - .../masking/write-outputs.mask-position.tesc | 92 - .../shaders-msl/tesc/basic.multi-patch.tesc | 23 - .../reference/shaders-msl/tesc/basic.tesc | 22 - ...control-point-inout-types.multi-patch.tesc | 134 - .../complex-control-point-inout-types.tesc | 138 - .../tesc/complex-patch-out-types.tesc | 113 - ...rol-point-array-of-matrix.multi-patch.tesc | 68 - .../load-control-point-array-of-matrix.tesc | 73 - ...rol-point-array-of-struct.multi-patch.tesc | 76 - .../load-control-point-array-of-struct.tesc | 86 - .../load-control-point-array.multi-patch.tesc | 69 - .../tesc/load-control-point-array.tesc | 70 - .../tesc/matrix-output.multi-patch.tesc | 39 - .../tesc/reload-tess-level.multi-patch.tesc | 35 - .../shaders-msl/tesc/reload-tess-level.tesc | 35 - .../tesc/struct-output.multi-patch.tesc | 45 - .../tesc/water_tess.multi-patch.tesc | 135 - .../shaders-msl/tesc/water_tess.tesc | 137 - .../shaders-msl/tese/input-array.tese | 36 - .../shaders-msl/tese/input-types.tese | 87 - .../load-control-point-array-of-matrix.tese | 84 - .../tese/load-control-point-array.tese | 81 - .../shaders-msl/tese/quad.domain.tese | 73 - .../reference/shaders-msl/tese/quad.tese | 78 - .../read-tess-level-in-func-quad.msl2.tese | 78 - .../tese/read-tess-level-in-func.msl2.tese | 75 - .../shaders-msl/tese/set-from-function.tese | 63 - .../shaders-msl/tese/triangle-tess-level.tese | 69 - .../reference/shaders-msl/tese/triangle.tese | 17 - .../shaders-msl/tese/water_tess.tese | 75 - .../vert/array-component-io.for-tess.vert | 98 - .../shaders-msl/vert/array-component-io.vert | 100 - .../shaders-msl/vert/basic.capture.vert | 29 - .../shaders-msl/vert/basic.for-tess.vert | 31 - .../reference/shaders-msl/vert/basic.vert | 30 - .../clip-distance-block.no-user-varying.vert | 25 - .../shaders-msl/vert/clip-distance-block.vert | 29 - .../shaders-msl/vert/copy.flatten.vert | 54 - .../shaders-msl/vert/dynamic.flatten.vert | 43 - .../vert/float-math.invariant-float-math.vert | 136 - .../shaders-msl/vert/float-math.vert | 87 - .../reference/shaders-msl/vert/functions.vert | 122 - .../shaders-msl/vert/implicit-position-1.vert | 18 - .../shaders-msl/vert/implicit-position-2.vert | 9 - .../shaders-msl/vert/in_out_array_mat.vert | 119 - .../interface-block-block-composites.frag | 97 - .../interface-block-block-composites.vert | 105 - .../vert/interpolation-qualifiers-block.vert | 55 - .../vert/interpolation-qualifiers.vert | 36 - .../shaders-msl/vert/invariant.msl21.vert | 26 - .../vert/leaf-function.capture.vert | 37 - .../vert/leaf-function.for-tess.vert | 39 - .../shaders-msl/vert/no-contraction.vert | 92 - .../no-disable-vertex-out.frag-output.vert | 28 - .../vert/no_stage_out.for-tess.vert | 23 - .../shaders-msl/vert/no_stage_out.vert | 20 - .../vert/no_stage_out.write_buff.vert | 35 - .../vert/no_stage_out.write_buff_atomic.vert | 31 - .../vert/no_stage_out.write_tex.vert | 25 - .../reference/shaders-msl/vert/out_block.vert | 41 - .../shaders-msl/vert/packed-bool-to-uint.vert | 38 - .../vert/packed-bool2-to-packed_uint2.vert | 38 - .../shaders-msl/vert/packed_matrix.vert | 55 - .../reference/shaders-msl/vert/pointsize.vert | 33 - .../vert/read-from-row-major-array.vert | 63 - .../vert/resource-arrays-leaf.ios.vert | 50 - .../shaders-msl/vert/resource-arrays.ios.vert | 42 - .../vert/return-array.force-native-array.vert | 154 - .../shaders-msl/vert/return-array.vert | 81 - .../shaders-msl/vert/set_builtin_in_func.vert | 27 - .../shaders-msl/vert/sign-int-types.vert | 60 - .../signedness-mismatch.shader-inputs.vert | 74 - ...re_buffer.texture-buffer-native.msl21.vert | 17 - .../shaders-msl/vert/texture_buffer.vert | 26 - .../shaders-msl/vert/ubo.alignment.vert | 38 - .../reference/shaders-msl/vert/ubo.vert | 30 - ...asic.multiview.no-layered.nocompat.vk.frag | 73 - .../frag/basic.multiview.nocompat.vk.frag | 73 - ...lper-forwarding.asm.vk.nocompat.msl23.frag | 22 - .../demote-to-helper.vk.nocompat.msl23.frag | 12 - ...emote-to-helper.vk.nocompat.msl23.ios.frag | 12 - .../vulkan/frag/push-constant.vk.frag | 28 - .../vulkan/frag/spec-constant.msl11.vk.frag | 126 - .../vulkan/frag/spec-constant.vk.frag | 110 - ...oup.multiview.viewfromdev.nocompat.vk.vert | 19 - .../vulkan/vert/device-group.nocompat.vk.vert | 18 - ...view.multiview.no-layered.nocompat.vk.vert | 28 - .../vert/multiview.multiview.nocompat.vk.vert | 31 - .../vulkan/vert/multiview.nocompat.vk.vert | 29 - .../vulkan/vert/small-storage.vk.vert | 48 - .../vulkan/vert/vulkan-vertex.vk.vert | 17 - ...ss-chain-dominator-in-loop-body-2.asm.comp | 30 - ...cess-chain-dominator-in-loop-body.asm.comp | 27 - ...ess-tracking-function-call-result.asm.comp | 24 - ...ased-struct-divergent-member-name.asm.comp | 25 - ...c-conversion-signs.asm.nocompat.vk.comp.vk | 46 - .../asm/comp/atomic-load-store.asm.comp | 16 - .../asm/comp/atomic-result-temporary.asm.comp | 18 - .../asm/comp/bitcast-fp16-fp32.asm.vk.comp | 24 - .../asm/comp/bitcast-fp16-fp32.asm.vk.comp.vk | 25 - .../comp/bitfield-signed-operations.asm.comp | 27 - .../shaders-no-opt/asm/comp/bitscan.asm.comp | 27 - ...-atomic-nonuniform.vk.nocompat.asm.comp.vk | 15 - ...aliased-block-name.nocompat.vk.asm.comp.vk | 35 - ...thesized-pointer-2.asm.nocompat.vk.comp.vk | 21 - ...ynthesized-pointer.asm.nocompat.vk.comp.vk | 21 - .../comp/constant-composite-undef.asm.comp | 15 - .../asm/comp/copy-logical.spv14.asm.comp | 45 - ...-in-entry-point.noeliminate.spv14.asm.comp | 7 - .../extended-debug-extinst.invalid.asm.comp | 18 - .../asm/comp/glsl-signed-operations.asm.comp | 47 - .../glsl.std450.frexp-modf-struct.asm.comp | 33 - ...-atomic-nonuniform.vk.nocompat.asm.comp.vk | 12 - .../loop-variable-with-initializer.asm.comp | 12 - ...m-bracket-handling.vk.nocompat.asm.comp.vk | 55 - ...porary-copy-loop-variable.asm.invalid.comp | 20 - .../spec-constant-op-convert-sign.asm.comp | 33 - .../asm/comp/storage-buffer-basic.asm.comp | 28 - .../array-builtin-bitcast-load-store.asm.frag | 28 - ...ge-sampler-dxc-min16float.asm.invalid.frag | 28 - ...pure-function-call.vk.nocompat.asm.frag.vk | 22 - .../discard-impure-function-call.asm.frag | 21 - .../do-while-continue-phi.asm.invalid.frag | 37 - .../frag/do-while-loop-inverted-test.asm.frag | 13 - .../early-conditional-return-switch.asm.frag | 67 - .../asm/frag/empty-struct-in-struct.asm.frag | 31 - ...ated-merge-block-inverted.asm.invalid.frag | 11 - ...-merge-block-non-inverted.asm.invalid.frag | 11 - .../asm/frag/for-loop-inverted-test.asm.frag | 11 - .../asm/frag/image-fetch-uint-coord.asm.frag | 12 - .../inliner-dominator-inside-loop.asm.frag | 230 - .../asm/frag/ldexp-uint-exponent.asm.frag | 11 - .../loop-merge-to-continue.asm.invalid.frag | 17 - ...bracket-handling-2.vk.nocompat.asm.frag.vk | 20 - ...lifier-propagation.vk.nocompat.asm.frag.vk | 37 - .../nonuniform-ssbo.nocompat.vk.asm.frag.vk | 24 - .../frag/only-initializer-frag-depth.asm.frag | 8 - .../opaque-id-literal-alias.preserve.asm.frag | 20 - .../asm/frag/out-of-order-struct-id.asm.frag | 25 - .../asm/frag/phi.zero-initialize.asm.frag | 29 - .../frag/pixel-interlock-callstack.asm.frag | 39 - .../pixel-interlock-control-flow.asm.frag | 53 - .../pixel-interlock-split-functions.asm.frag | 49 - .../reserved-function-identifier.asm.frag | 21 - .../asm/frag/reserved-identifiers.asm.frag | 17 - ...lection-merge-to-continue.asm.invalid.frag | 21 - ...exture-feedback-uint-code.asm.desktop.frag | 23 - ...up-arithmetic-cast.nocompat.vk.asm.frag.vk | 24 - .../asm/frag/subgroup-ballot-only.vk.asm.frag | 32 - .../frag/subgroup-ballot-only.vk.asm.frag.vk | 15 - ...ch-block-case-fallthrough.asm.invalid.frag | 63 - .../switch-merge-to-continue.asm.invalid.frag | 30 - ...tch-single-case-multiple-exit-cfg.asm.frag | 26 - .../asm/frag/unordered-compare.asm.frag | 33 - ...tor-extract-dynamic-spec-constant.asm.frag | 27 - .../frag/vector-shuffle-undef-index.asm.frag | 12 - .../frag/while-loop-inverted-test.asm.frag | 13 - .../geom/store-uint-layer.invalid.asm.geom | 41 - .../loop-header-self-continue-break.asm.comp | 89 - ...n-nonuniform.spv14.vk.nocompat.asm.rgen.vk | 19 - .../asm/temporary.zero-initialize.asm.frag | 28 - ...array-of-block-output-initializer.asm.tesc | 82 - .../tesc/copy-memory-control-point.asm.tesc | 73 - ...input-array-builtin-array.invalid.asm.tesc | 79 - .../asm/tesc/tess-level-initializer.asm.tesc | 24 - .../vert/block-struct-initializer.asm.vert | 24 - .../vert/builtin-output-initializer.asm.vert | 14 - .../asm/vert/complex-link-by-name.asm.vert | 35 - ...by-name.force-flattened-io.legacy.asm.vert | 33 - .../vert/constant-composite-extract.asm.vert | 7 - .../asm/vert/empty-struct-composite.asm.vert | 13 - .../asm/vert/semantic-decoration.asm.vert | 25 - .../comp/bitcast-16bit-1.invalid.comp | 36 - .../comp/bitcast-16bit-2.invalid.comp | 41 - .../shaders-no-opt/comp/bitfield.comp | 19 - .../shaders-no-opt/comp/glsl.std450.comp | 112 - .../comp/illegal-struct-name.asm.comp | 22 - .../comp/image-load-formatted.comp | 12 - .../comp/inout-struct.invalid.comp | 65 - .../reference/shaders-no-opt/comp/loop.comp | 82 - .../reference/shaders-no-opt/comp/return.comp | 35 - ...ballot_nonuniform_invocations.invalid.comp | 11 - .../specialization-constant-evaluation.comp | 321 -- ...packing-scalar.nocompat.invalid.vk.comp.vk | 105 - .../subgroups.nocompat.invalid.vk.comp.vk | 116 - .../comp/subgroups_basicvoteballot.vk.comp | 401 -- .../comp/subgroups_basicvoteballot.vk.comp.vk | 45 - .../frag/16bit-constants.invalid.frag | 27 - .../frag/fp16.invalid.desktop.frag | 159 - .../frag/frag-fully-covered.frag | 14 - ...h_subpassInput.vk.nocompat.invalid.frag.vk | 11 - .../shaders-no-opt/frag/fs.invalid.frag | 15 - .../shaders-no-opt/frag/image-gather.frag | 15 - ...mensional.desktop.invalid.flatten_dim.frag | 24 - ...nonuniform-constructor.vk.nocompat.frag.vk | 15 - .../pixel-interlock-simple-callstack.frag | 34 - ...out-ubo-std430.vk.nocompat.invalid.frag.vk | 24 - .../frag/sparse-texture-clamp.desktop.frag | 46 - .../frag/sparse-texture-feedback.desktop.frag | 105 - ...pass-input.framebuffer-fetch.nocompat.frag | 18 - ...ocompat.framebuffer-fetch-noncoherent.frag | 18 - ...put.framebuffer-fetch.nocompat.legacy.frag | 16 - ....legacy.framebuffer-fetch-noncoherent.frag | 16 - .../frag/variables.zero-initialize.frag | 28 - ...gle-case-multiple-exit-cfg.legacy.asm.frag | 24 - .../vert/io-blocks.force-flattened-io.vert | 25 - .../vert/pass-array-by-value.vert | 27 - .../frag/shading-rate.vk.nocompat.frag.vk | 10 - .../vulkan/frag/spec-constant.vk.frag | 131 - .../vulkan/frag/spec-constant.vk.frag.vk | 107 - ...bo-offset-out-of-order.vk.nocompat.frag.vk | 16 - ...primitive-shading-rate.vk.nocompat.vert.vk | 9 - .../aliased-entry-point-names.asm.multi.json | 55 - ...to-array-of-physical-pointer.asm.comp.json | 71 - .../asm/op-source-glsl-ssbo-1.asm.comp.json | 46 - .../asm/op-source-glsl-ssbo-2.asm.comp.json | 70 - .../asm/op-source-hlsl-uav-1.asm.comp.json | 46 - .../asm/op-source-hlsl-uav-2.asm.comp.json | 53 - .../asm/op-source-none-ssbo-1.asm.comp.json | 46 - .../asm/op-source-none-ssbo-2.asm.comp.json | 70 - .../asm/op-source-none-uav-1.asm.comp.json | 46 - .../asm/op-source-none-uav-2.asm.comp.json | 53 - .../comp/array-of-physical-pointer.comp.json | 66 - .../function-pointer.invalid.asm.comp.json | 18 - .../comp/physical-pointer.comp.json | 55 - .../comp/struct-layout.comp.json | 83 - .../comp/struct-packing.comp.json | 590 --- .../workgroup-size-spec-constant.comp.json | 62 - ...mbined-texture-sampler-shadow.vk.frag.json | 37 - .../combined-texture-sampler.vk.frag.json | 50 - .../image-load-store-uint-coord.asm.frag.json | 47 - .../frag/input-attachment-ms.vk.frag.json | 31 - .../frag/input-attachment.vk.frag.json | 31 - .../frag/push-constant.vk.frag.json | 46 - ...eparate-sampler-texture-array.vk.frag.json | 85 - .../frag/spec-constant.vk.frag.json | 90 - .../rgen/acceleration_structure.vk.rgen.json | 16 - .../vert/array-size-reflection.vert.json | 78 - .../vert/read-from-row-major-array.vert.json | 67 - .../vert/stride-reflection.vert.json | 96 - .../vert/texture_buffer.vert.json | 40 - ...schain-invalid-expression.asm.invalid.frag | 369 -- .../frag/array-copy-error.asm.invalid.frag | 353 -- .../phi-variable-declaration.asm.invalid.frag | 353 -- ...-accesschain-writethrough.asm.invalid.vert | 122 - .../asm/frag/depth-compare.asm.frag | 314 -- .../asm/frag/global-constant-arrays.asm.frag | 1365 ------ .../padded-float-array-member-defef.asm.frag | 1414 ------- .../asm/frag/sample-mask-not-array.asm.frag | 503 --- ...bpass-input.ios.framebuffer-fetch.asm.frag | 214 - ...ass-input.msl23.framebuffer-fetch.asm.frag | 214 - .../texture-atomics.asm.argument.msl2.frag | 130 - .../asm/frag/texture-atomics.asm.frag | 122 - ...re-atomics.asm.graphics-robust-access.frag | 122 - .../asm/tesc/hs-incorrect-base-type.asm.tesc | 399 -- .../asm/tesc/hs-input-array-access.asm.tesc | 467 --- .../asm/tesc/hs-texcoord-array.asm.tesc | 411 -- .../tess-factor-must-be-threadgroup.asm.tesc | 178 - .../asm/tese/ds-double-gl-in-deref.asm.tese | 420 -- .../asm/tese/ds-patch-input-fixes.asm.tese | 417 -- .../asm/tese/ds-patch-inputs.asm.tese | 217 - .../asm/tese/ds-texcoord-array.asm.tese | 318 -- .../asm/vert/array-missing-copies.asm.vert | 466 --- .../asm/vert/texture-buffer.asm.vert | 387 -- .../reference/shaders/amd/gcn_shader.comp | 12 - .../reference/shaders/amd/shader_ballot.comp | 32 - .../shaders/amd/shader_group_vote.comp | 18 - .../shaders/amd/shader_trinary_minmax.comp | 11 - .../asm/comp/atomic-decrement.asm.comp | 18 - .../asm/comp/atomic-increment.asm.comp | 18 - .../shaders/asm/comp/bitcast_iadd.asm.comp | 27 - .../shaders/asm/comp/bitcast_icmp.asm.comp | 27 - .../shaders/asm/comp/bitcast_iequal.asm.comp | 33 - .../shaders/asm/comp/bitcast_sar.asm.comp | 29 - .../shaders/asm/comp/bitcast_sdiv.asm.comp | 29 - .../shaders/asm/comp/bitcast_slr.asm.comp | 29 - .../asm/comp/block-name-alias-global.asm.comp | 37 - .../asm/comp/builtin-compute-bitcast.asm.comp | 13 - .../asm/comp/decoration-group.asm.comp | 38 - .../comp/global-parameter-name-alias.asm.comp | 27 - .../asm/comp/hlsl-functionality.asm.comp | 24 - .../shaders/asm/comp/logical.asm.comp | 56 - .../shaders/asm/comp/multiple-entry.asm.comp | 27 - .../shaders/asm/comp/nmin-max-clamp.asm.comp | 44 - .../shaders/asm/comp/op-phi-swap.asm.comp | 40 - .../shaders/asm/comp/quantize.asm.comp | 19 - .../asm/comp/recompile-block-naming.asm.comp | 36 - ...specialization-constant-workgroup.asm.comp | 21 - .../asm/comp/switch-break-ladder.asm.comp | 64 - .../frag/combined-sampler-reuse.vk.asm.frag | 13 - .../combined-sampler-reuse.vk.asm.frag.vk | 14 - .../frag/complex-name-workarounds.asm.frag | 28 - ...osite-construct-struct-no-swizzle.asm.frag | 19 - .../asm/frag/default-member-names.asm.frag | 32 - .../frag/do-while-statement-fallback.asm.frag | 58 - .../shaders/asm/frag/empty-struct.asm.frag | 25 - .../frag/for-loop-phi-only-continue.asm.frag | 18 - .../reference/shaders/asm/frag/frem.asm.frag | 13 - .../asm/frag/function-overload-alias.asm.frag | 39 - .../hlsl-sample-cmp-level-zero-cube.asm.frag | 17 - .../frag/hlsl-sample-cmp-level-zero.asm.frag | 27 - .../asm/frag/image-extract-reuse.asm.frag | 11 - .../frag/image-fetch-no-sampler.asm.vk.frag | 38 - .../image-fetch-no-sampler.asm.vk.frag.vk | 37 - ...etch-no-sampler.no-samplerless.asm.vk.frag | 38 - ...h-no-sampler.no-samplerless.asm.vk.frag.vk | 37 - ...uery-no-sampler.no-samplerless.vk.asm.frag | 13 - ...y-no-sampler.no-samplerless.vk.asm.frag.vk | 14 - .../frag/image-query-no-sampler.vk.asm.frag | 13 - .../image-query-no-sampler.vk.asm.frag.vk | 14 - .../asm/frag/implicit-read-dep-phi.asm.frag | 39 - .../asm/frag/inf-nan-constant-double.asm.frag | 11 - .../asm/frag/inf-nan-constant.asm.frag | 11 - .../shaders/asm/frag/invalidation.asm.frag | 15 - .../asm/frag/line-directive.line.asm.frag | 71 - .../asm/frag/locations-components.asm.frag | 25 - ...op-body-dominator-continue-access.asm.frag | 50 - .../asm/frag/loop-header-to-continue.asm.frag | 45 - .../frag/lut-promotion-initializer.asm.frag | 40 - .../asm/frag/multi-for-loop-init.asm.frag | 19 - .../asm/frag/op-constant-null.asm.frag | 23 - .../frag/op-phi-swap-continue-block.asm.frag | 24 - .../asm/frag/pack-and-unpack-uint2.asm.frag | 12 - .../shaders/asm/frag/pass-by-value.asm.frag | 21 - .../asm/frag/phi-loop-variable.asm.frag | 9 - .../asm/frag/sample-and-compare.asm.frag | 13 - ...pler-buffer-array-without-sampler.asm.frag | 28 - .../sampler-buffer-without-sampler.asm.frag | 20 - .../frag/single-function-private-lut.asm.frag | 26 - .../reference/shaders/asm/frag/srem.asm.frag | 13 - .../storage-class-output-initializer.asm.frag | 13 - .../struct-composite-extract-swizzle.asm.frag | 21 - .../frag/switch-label-shared-block.asm.frag | 32 - .../asm/frag/temporary-name-alias.asm.frag | 10 - .../asm/frag/temporary-phi-hoisting.asm.frag | 26 - .../asm/frag/texel-fetch-no-lod.asm.frag | 11 - .../frag/texture-sampling-fp16.asm.vk.frag | 19 - .../frag/texture-sampling-fp16.asm.vk.frag.vk | 20 - .../asm/frag/undef-variable-store.asm.frag | 29 - .../asm/frag/unknown-depth-state.asm.vk.frag | 23 - .../frag/unknown-depth-state.asm.vk.frag.vk | 24 - .../shaders/asm/frag/unreachable.asm.frag | 28 - .../asm/frag/vector-shuffle-oom.asm.frag | 316 -- .../asm/geom/block-name-namespace.asm.geom | 33 - .../inout-split-access-chain-handle.asm.geom | 23 - .../geom/split-access-chain-input.asm.geom | 9 - .../asm/geom/unroll-glposition-load.asm.geom | 35 - .../asm/tese/unroll-input-array-load.asm.tese | 48 - .../shaders/asm/vert/empty-io.asm.vert | 35 - ...act-transposed-matrix-from-struct.asm.vert | 52 - .../asm/vert/global-builtin.sso.asm.vert | 35 - .../shaders/asm/vert/invariant-block.asm.vert | 9 - .../asm/vert/invariant-block.sso.asm.vert | 17 - .../shaders/asm/vert/invariant.asm.vert | 15 - .../shaders/asm/vert/invariant.sso.asm.vert | 20 - .../spec-constant-op-composite.asm.vk.vert | 34 - .../spec-constant-op-composite.asm.vk.vert.vk | 25 - .../vert/uint-vertex-id-instance-id.asm.vert | 25 - .../reference/shaders/comp/atomic.comp | 49 - .../reference/shaders/comp/bake_gradient.comp | 39 - .../reference/shaders/comp/barriers.comp | 77 - .../reference/shaders/comp/basic.comp | 29 - .../reference/shaders/comp/casts.comp | 19 - .../shaders/comp/cfg-preserve-parameter.comp | 74 - .../reference/shaders/comp/cfg.comp | 81 - .../shaders/comp/coherent-block.comp | 13 - .../shaders/comp/coherent-image.comp | 15 - .../comp/composite-array-initialization.comp | 38 - .../shaders/comp/composite-construct.comp | 40 - .../reference/shaders/comp/culling.comp | 29 - .../reference/shaders/comp/defer-parens.comp | 21 - .../reference/shaders/comp/dowhile.comp | 29 - .../shaders/comp/generate_height.comp | 95 - .../reference/shaders/comp/image.comp | 12 - .../reference/shaders/comp/insert.comp | 19 - .../reference/shaders/comp/mat3.comp | 14 - .../reference/shaders/comp/mod.comp | 24 - .../reference/shaders/comp/modf.comp | 22 - .../reference/shaders/comp/outer-product.comp | 36 - .../shaders/comp/read-write-only.comp | 27 - .../reference/shaders/comp/rmw-matrix.comp | 20 - .../reference/shaders/comp/rmw-opt.comp | 27 - ...alar-std450-distance-length-normalize.comp | 19 - .../reference/shaders/comp/shared.comp | 24 - .../shaders/comp/ssbo-array-length.comp | 14 - .../reference/shaders/comp/ssbo-array.comp | 14 - .../reference/shaders/comp/struct-layout.comp | 24 - .../shaders/comp/struct-packing.comp | 104 - .../reference/shaders/comp/torture-loop.comp | 49 - .../reference/shaders/comp/type-alias.comp | 49 - .../reference/shaders/comp/udiv.comp | 18 - .../desktop-only/comp/enhanced-layouts.comp | 40 - .../comp/extended-arithmetic.desktop.comp | 159 - .../desktop-only/comp/fp64.desktop.comp | 83 - .../image-formats.desktop.noeliminate.comp | 47 - .../desktop-only/comp/int64.desktop.comp | 52 - .../frag/clip-cull-distance.desktop.frag | 12 - .../control-dependent-in-branch.desktop.frag | 37 - .../frag/depth-greater-than.desktop.frag | 9 - .../frag/depth-less-than.desktop.frag | 9 - .../frag/dual-source-blending.desktop.frag | 11 - .../frag/hlsl-uav-block-alias.asm.frag | 24 - .../desktop-only/frag/image-ms.desktop.frag | 13 - .../frag/image-query.desktop.frag | 53 - .../shaders/desktop-only/frag/image-size.frag | 12 - .../image-size.no-qualifier-deduction.frag | 12 - .../frag/in-block-qualifiers.frag | 21 - .../frag/layout-component.desktop.frag | 16 - .../frag/query-levels.desktop.frag | 11 - .../desktop-only/frag/query-lod.desktop.frag | 12 - .../frag/sampler-ms-query.desktop.frag | 14 - .../frag/stencil-export.desktop.frag | 13 - .../frag/texture-proj-shadow.desktop.frag | 26 - .../desktop-only/geom/basic.desktop.sso.geom | 35 - .../geom/viewport-index.desktop.geom | 9 - .../desktop-only/tesc/basic.desktop.sso.tesc | 27 - .../tese/triangle.desktop.sso.tese | 18 - .../desktop-only/vert/basic.desktop.sso.vert | 22 - .../vert/clip-cull-distance.desktop.sso.vert | 20 - .../vert/clip-cull-distance.desktop.vert | 15 - .../vert/out-block-qualifiers.vert | 27 - ...shader-draw-parameters-450.desktop.vk.vert | 24 - ...der-draw-parameters-450.desktop.vk.vert.vk | 8 - .../shader-draw-parameters.desktop.vk.vert | 24 - .../shader-draw-parameters.desktop.vk.vert.vk | 7 - .../shaders/flatten/array.flatten.vert | 12 - .../shaders/flatten/basic.flatten.vert | 13 - .../shaders/flatten/copy.flatten.vert | 30 - .../shaders/flatten/dynamic.flatten.vert | 25 - .../flatten/matrix-conversion.flatten.frag | 14 - .../shaders/flatten/matrixindex.flatten.vert | 19 - .../shaders/flatten/multiindex.flatten.vert | 10 - .../flatten/push-constant.flatten.vert | 13 - .../shaders/flatten/rowmajor.flatten.vert | 11 - .../shaders/flatten/struct.flatten.vert | 22 - .../flatten/struct.rowmajor.flatten.vert | 26 - .../shaders/flatten/swizzle.flatten.vert | 21 - .../shaders/flatten/types.flatten.frag | 14 - .../frag/array-lut-no-loop-variable.frag | 15 - .../avoid-expression-lowering-to-loop.frag | 26 - .../shaders/frag/barycentric-nv.frag | 20 - .../reference/shaders/frag/basic.frag | 15 - .../complex-expression-in-access-chain.frag | 24 - .../composite-extract-forced-temporary.frag | 15 - .../shaders/frag/constant-array.frag | 29 - .../shaders/frag/constant-composites.frag | 23 - .../shaders/frag/false-loop-init.frag | 25 - .../reference/shaders/frag/flush_params.frag | 30 - .../frag/for-loop-continue-control-flow.frag | 34 - .../reference/shaders/frag/for-loop-init.frag | 52 - .../reference/shaders/frag/frexp-modf.frag | 43 - .../reference/shaders/frag/front-facing.frag | 20 - .../reference/shaders/frag/gather-dref.frag | 14 - .../reference/shaders/frag/ground.frag | 62 - .../shaders/frag/helper-invocation.frag | 28 - ...temporary-use-continue-block-as-value.frag | 31 - .../frag/image-load-store-uint-coord.asm.frag | 26 - ...-loop-dominated-variable-preservation.frag | 30 - .../loop-dominator-and-switch-default.frag | 50 - .../reference/shaders/frag/lut-promotion.frag | 40 - .../reference/shaders/frag/mix.frag | 20 - .../shaders/frag/partial-write-preserve.frag | 109 - .../shaders/frag/pixel-interlock-ordered.frag | 23 - .../frag/pixel-interlock-unordered.frag | 23 - .../reference/shaders/frag/pls.frag | 21 - .../shaders/frag/post-depth-coverage-es.frag | 14 - .../shaders/frag/post-depth-coverage.frag | 15 - .../reference/shaders/frag/round-even.frag | 12 - .../reference/shaders/frag/round.frag | 12 - .../frag/sample-interlock-ordered.frag | 23 - .../frag/sample-interlock-unordered.frag | 23 - .../shaders/frag/sample-parameter.frag | 13 - .../reference/shaders/frag/sampler-ms.frag | 14 - .../reference/shaders/frag/sampler-proj.frag | 16 - .../reference/shaders/frag/sampler.frag | 21 - .../shaders/frag/scalar-refract-reflect.frag | 13 - .../frag/selection-block-dominator.frag | 20 - .../frag/struct-type-unrelated-alias.frag | 18 - .../shaders/frag/switch-unsigned-case.frag | 29 - .../reference/shaders/frag/swizzle.frag | 20 - .../shaders/frag/texel-fetch-offset.frag | 14 - .../frag/ubo-load-row-major-workaround.frag | 48 - .../reference/shaders/frag/ubo_layout.frag | 26 - .../reference/shaders/frag/unary-enclose.frag | 16 - .../reference/shaders/geom/basic.geom | 26 - .../shaders/geom/geometry-passthrough.geom | 27 - .../shaders/geom/lines-adjacency.geom | 26 - .../reference/shaders/geom/lines.geom | 23 - .../reference/shaders/geom/multi-stream.geom | 14 - .../reference/shaders/geom/points.geom | 26 - .../shaders/geom/single-invocation.geom | 26 - .../geom/transform-feedback-streams.geom | 26 - .../shaders/geom/triangles-adjacency.geom | 26 - .../reference/shaders/geom/triangles.geom | 26 - .../legacy/fragment/explicit-lod.legacy.frag | 12 - .../legacy/fragment/explicit-lod.legacy.vert | 11 - .../shaders/legacy/fragment/fma.legacy.frag | 13 - .../legacy/fragment/io-blocks.legacy.frag | 12 - .../multiple-struct-flattening.legacy.frag | 39 - .../shaders/legacy/fragment/round.legacy.frag | 13 - .../fragment/struct-varying.legacy.frag | 22 - .../legacy/fragment/switch.legacy.frag | 78 - .../legacy/vert/implicit-lod.legacy.vert | 9 - .../shaders/legacy/vert/io-block.legacy.vert | 13 - .../struct-flatten-inner-array.legacy.vert | 18 - ...flatten-stores-multi-dimension.legacy.vert | 49 - .../legacy/vert/struct-varying.legacy.vert | 26 - .../legacy/vert/switch-nested.legacy.vert | 41 - .../shaders/legacy/vert/transpose.legacy.vert | 37 - .../reference/shaders/tesc/basic.tesc | 17 - .../reference/shaders/tesc/water_tess.tesc | 116 - .../reference/shaders/tese/ccw.tese | 9 - .../reference/shaders/tese/cw.tese | 9 - .../reference/shaders/tese/equal.tese | 9 - .../shaders/tese/fractional_even.tese | 9 - .../shaders/tese/fractional_odd.tese | 9 - .../reference/shaders/tese/input-array.tese | 11 - .../reference/shaders/tese/line.tese | 9 - .../shaders/tese/load-array-of-array.tese | 16 - .../shaders/tese/patch-input-array.tese | 10 - .../reference/shaders/tese/triangle.tese | 9 - .../reference/shaders/tese/water_tess.tese | 61 - .../reference/shaders/vert/basic.vert | 17 - .../reference/shaders/vert/ground.vert | 116 - .../reference/shaders/vert/invariant.vert | 19 - .../shaders/vert/no-contraction.vert | 24 - .../reference/shaders/vert/ocean.vert | 140 - .../vert/read-from-row-major-array.vert | 47 - .../reference/shaders/vert/return-array.vert | 23 - .../shaders/vert/texture_buffer.vert | 11 - .../vert/transform-feedback-decorations.vert | 22 - .../reference/shaders/vert/ubo.vert | 17 - ...ay-of-buffer-reference.nocompat.vk.comp.vk | 25 - ...ffer-reference-bitcast.nocompat.vk.comp.vk | 26 - ...-reference-decorations.nocompat.vk.comp.vk | 35 - .../comp/buffer-reference.nocompat.vk.comp.vk | 56 - .../spec-constant-op-member-array.vk.comp | 47 - .../spec-constant-op-member-array.vk.comp.vk | 35 - .../spec-constant-work-group-size.vk.comp | 34 - .../spec-constant-work-group-size.vk.comp.vk | 24 - .../combined-texture-sampler-shadow.vk.frag | 31 - ...combined-texture-sampler-shadow.vk.frag.vk | 32 - .../frag/combined-texture-sampler.vk.frag | 48 - .../frag/combined-texture-sampler.vk.frag.vk | 48 - ...-helper-forwarding.asm.vk.nocompat.frag.vk | 15 - .../frag/demote-to-helper.vk.nocompat.frag.vk | 10 - .../vulkan/frag/desktop-mediump.vk.frag | 12 - .../vulkan/frag/desktop-mediump.vk.frag.vk | 12 - .../vulkan/frag/input-attachment-ms.vk.frag | 12 - .../frag/input-attachment-ms.vk.frag.vk | 12 - .../vulkan/frag/input-attachment.vk.frag | 14 - .../vulkan/frag/input-attachment.vk.frag.vk | 14 - .../nonuniform-qualifier.vk.nocompat.frag.vk | 68 - .../push-constant-as-ubo.push-ubo.vk.frag | 14 - .../push-constant-as-ubo.push-ubo.vk.frag.vk | 14 - .../shaders/vulkan/frag/push-constant.vk.frag | 20 - .../vulkan/frag/push-constant.vk.frag.vk | 18 - .../separate-combined-fake-overload.vk.frag | 22 - ...separate-combined-fake-overload.vk.frag.vk | 23 - .../separate-sampler-texture-array.vk.frag | 44 - .../separate-sampler-texture-array.vk.frag.vk | 45 - .../frag/separate-sampler-texture.vk.frag | 37 - .../frag/separate-sampler-texture.vk.frag.vk | 38 - ...shader-arithmetic-8bit.nocompat.vk.frag.vk | 88 - .../frag/spec-constant-block-size.vk.frag | 22 - .../frag/spec-constant-block-size.vk.frag.vk | 19 - .../vulkan/frag/spec-constant-ternary.vk.frag | 16 - .../frag/spec-constant-ternary.vk.frag.vk | 13 - ...terminators.khr.spv14.nocompat.vk.rahit.vk | 22 - .../rahit/terminators.nocompat.vk.rahit.vk | 22 - ...ng-callable.khr.spv14.nocompat.vk.rcall.vk | 10 - ...ibute_block.khr.spv14.nocompat.vk.rchit.vk | 24 - .../hit_attribute_block.nocompat.vk.rchit.vk | 24 - ...in_function.khr.spv14.nocompat.vk.rchit.vk | 29 - ...ute_block_in_function.nocompat.vk.rchit.vk | 29 - ...ibute_plain.khr.spv14.nocompat.vk.rchit.vk | 11 - .../hit_attribute_plain.nocompat.vk.rchit.vk | 11 - ...bute_struct.khr.spv14.nocompat.vk.rchit.vk | 17 - .../hit_attribute_struct.nocompat.vk.rchit.vk | 17 - .../hit_kind.khr.spv14.nocompat.vk.rchit.vk | 10 - .../rchit/hit_kind.nocompat.vk.rchit.vk | 10 - .../hit_t.khr.spv14.nocompat.vk.rchit.vk | 10 - .../vulkan/rchit/hit_t.nocompat.vk.rchit.vk | 10 - ...g_ray_flags.khr.spv14.nocompat.vk.rchit.vk | 10 - .../incoming_ray_flags.nocompat.vk.rchit.vk | 10 - ...e_custom_id.khr.spv14.nocompat.vk.rchit.vk | 10 - .../instance_custom_id.nocompat.vk.rchit.vk | 10 - ...instance_id.khr.spv14.nocompat.vk.rchit.vk | 10 - .../rchit/instance_id.nocompat.vk.rchit.vk | 10 - ...y_direction.khr.spv14.nocompat.vk.rchit.vk | 10 - .../object_ray_direction.nocompat.vk.rchit.vk | 10 - ..._ray_origin.khr.spv14.nocompat.vk.rchit.vk | 10 - .../object_ray_origin.nocompat.vk.rchit.vk | 10 - ...ct_to_world.khr.spv14.nocompat.vk.rchit.vk | 10 - .../object_to_world.nocompat.vk.rchit.vk | 10 - .../payloads.khr.spv14.nocompat.vk.rchit.vk | 20 - .../rchit/payloads.nocompat.vk.rchit.vk | 20 - ...rimitive_id.khr.spv14.nocompat.vk.rchit.vk | 10 - .../rchit/primitive_id.nocompat.vk.rchit.vk | 10 - .../ray_tmax.khr.spv14.nocompat.vk.rchit.vk | 10 - .../rchit/ray_tmax.nocompat.vk.rchit.vk | 10 - .../ray_tmin.khr.spv14.nocompat.vk.rchit.vk | 10 - .../rchit/ray_tmin.nocompat.vk.rchit.vk | 10 - ...ray_tracing.khr.spv14.nocompat.vk.rchit.vk | 10 - .../rchit/ray_tracing.nocompat.vk.rchit.vk | 10 - ...y_direction.khr.spv14.nocompat.vk.rchit.vk | 10 - .../world_ray_direction.nocompat.vk.rchit.vk | 10 - ..._ray_origin.khr.spv14.nocompat.vk.rchit.vk | 10 - .../world_ray_origin.nocompat.vk.rchit.vk | 10 - ...d_to_object.khr.spv14.nocompat.vk.rchit.vk | 10 - .../world_to_object.nocompat.vk.rchit.vk | 10 - .../convert-u-to-as.spv14.vk.nocompat.rgen.vk | 17 - ...ute_callable.nocompat.khr.spv14.vk.rgen.vk | 17 - .../rgen/execute_callable.nocompat.vk.rgen.vk | 17 - .../launch_id.khr.spv14.nocompat.vk.rgen.vk | 10 - .../vulkan/rgen/launch_id.nocompat.vk.rgen.vk | 10 - .../launch_size.khr.spv14.nocompat.vk.rgen.vk | 10 - .../rgen/launch_size.nocompat.vk.rgen.vk | 10 - .../payloads.khr.spv14.nocompat.vk.rgen.vk | 47 - .../vulkan/rgen/payloads.nocompat.vk.rgen.vk | 47 - .../pure_call.khr.spv14.nocompat.vk.rgen.vk | 21 - .../vulkan/rgen/pure_call.nocompat.vk.rgen.vk | 21 - .../ray_tracing.khr.spv14.nocompat.vk.rgen.vk | 17 - .../rgen/ray_tracing.nocompat.vk.rgen.vk | 17 - ...ecord_buffer.khr.spv14.nocompat.vk.rgen.vk | 17 - .../shader_record_buffer.nocompat.vk.rgen.vk | 17 - ...intersection.khr.spv14.nocompat.vk.rint.vk | 13 - .../report-intersection.nocompat.vk.rint.vk | 13 - ...ray_tracing.khr.spv14.nocompat.vk.rmiss.vk | 10 - .../rmiss/ray_tracing.nocompat.vk.rmiss.vk | 10 - ...ce_incoming.khr.spv14.nocompat.vk.rmiss.vk | 13 - .../vert/device-group.nocompat.vk.vert.vk | 8 - .../vulkan/vert/multiview.nocompat.vk.vert.vk | 15 - .../shaders/vulkan/vert/small-storage.vk.vert | 61 - .../vulkan/vert/small-storage.vk.vert.vk | 55 - .../shaders/vulkan/vert/vulkan-vertex.vk.vert | 16 - .../vulkan/vert/vulkan-vertex.vk.vert.vk | 7 - third_party/spirv-cross/samples/cpp/Makefile | 28 - .../spirv-cross/samples/cpp/atomics.comp | 29 - .../spirv-cross/samples/cpp/atomics.cpp | 90 - .../spirv-cross/samples/cpp/multiply.comp | 22 - .../spirv-cross/samples/cpp/multiply.cpp | 91 - .../spirv-cross/samples/cpp/shared.comp | 36 - .../spirv-cross/samples/cpp/shared.cpp | 89 - ...access-chain-load-store-composite.asm.comp | 118 - ...ased-struct-divergent-member-name.asm.comp | 77 - .../asm/comp/atomic-load-store.asm.comp | 48 - .../asm/comp/atomic-result-temporary.asm.comp | 59 - .../comp/bitfield-signed-operations.asm.comp | 97 - .../asm/comp/bitscan.asm.comp | 72 - ...onuniform.asm.sm51.nonuniformresource.comp | 53 - .../comp/constant-composite-undef.asm.comp | 40 - ...-in-entry-point.noeliminate.spv14.asm.comp | 59 - .../asm/comp/glsl-signed-operations.asm.comp | 123 - ....std450.frexp-modf-struct.fxconly.asm.comp | 55 - ...onuniform.asm.sm51.nonuniformresource.comp | 55 - ...lization-constant-workgroup.nofxc.asm.comp | 47 - .../comp/storage-buffer-basic.nofxc.asm.comp | 57 - .../asm/frag/empty-struct-in-struct.asm.frag | 61 - .../asm/frag/image-fetch-uint-coord.asm.frag | 44 - ...andling-2.nonuniformresource.sm51.asm.frag | 96 - ...opagation.nonuniformresource.sm51.asm.frag | 159 - ...form-ssbo.sm51.nonuniformresource.asm.frag | 99 - .../frag/only-initializer-frag-depth.asm.frag | 25 - .../asm/frag/phi.zero-initialize.asm.frag | 69 - ...-interlock-callstack.sm51.fxconly.asm.frag | 89 - ...terlock-control-flow.sm51.fxconly.asm.frag | 121 - ...lock-split-functions.sm51.fxconly.asm.frag | 102 - .../reserved-function-identifier.asm.frag | 60 - ...element-array-matrix-rule.invalid.asm.frag | 77 - ...rithmetic-cast.invalid.nofxc.sm60.asm.frag | 65 - ...ch-block-case-fallthrough.asm.invalid.frag | 80 - .../asm/frag/unordered-compare.asm.frag | 177 - .../frag/vector-shuffle-undef-index.asm.frag | 42 - .../asm/temporary.zero-initialize.asm.frag | 93 - .../vert/block-struct-initializer.asm.vert | 37 - .../vert/builtin-output-initializer.asm.vert | 44 - .../asm/vert/complex-link-by-name.asm.vert | 119 - .../asm/vert/empty-struct-composite.asm.vert | 36 - .../shaders-hlsl-no-opt/comp/bitfield.comp | 44 - .../comp/glsl.std450.fxconly.comp | 130 - .../comp/illegal-struct-name.asm.comp | 62 - .../subgroups-boolean.invalid.nofxc.sm60.comp | 30 - .../comp/subgroups.invalid.nofxc.sm60.comp | 138 - .../frag/cbuffer-packing-straddle.frag | 50 - .../constant-buffer-array.invalid.sm51.frag | 32 - .../frag/fp16.invalid.desktop.frag | 156 - .../shaders-hlsl-no-opt/frag/frag-coord.frag | 8 - ...types.fxconly.nofxc.sm62.native-16bit.frag | 72 - ...m-constructor.sm51.nonuniformresource.frag | 14 - ...terlock-simple-callstack.sm51.fxconly.frag | 31 - .../frag/spec-constant.frag | 80 - .../frag/ubo-offset-out-of-order.frag | 16 - .../frag/variables.zero-initialize.frag | 21 - .../block-io-auto-location-assignment.vert | 31 - ...rix-input.flatten-matrix-vertex-input.vert | 13 - .../vert/pass-array-by-value.vert | 26 - .../asm/comp/access-chain-invalidate.asm.comp | 61 - .../asm/comp/atomic-decrement.asm.comp | 71 - .../asm/comp/atomic-increment.asm.comp | 71 - .../asm/comp/bitcast_icmp.asm.comp | 101 - .../asm/comp/block-name-alias-global.asm.comp | 119 - .../asm/comp/control-flow-hints.asm.comp | 146 - .../comp/global-parameter-name-alias.asm.comp | 102 - .../asm/comp/nmin-max-clamp.asm.comp | 203 - .../asm/frag/cbuffer-stripped.asm.frag | 55 - .../asm/frag/combined-sampler-reuse.asm.frag | 57 - .../asm/frag/empty-struct.asm.frag | 55 - .../shaders-hlsl/asm/frag/frem.asm.frag | 41 - .../asm/frag/function-overload-alias.asm.frag | 153 - .../asm/frag/image-extract-reuse.asm.frag | 41 - .../asm/frag/implicit-read-dep-phi.asm.frag | 81 - .../asm/frag/inf-nan-constant.asm.frag | 29 - .../asm/frag/line-directive.line.asm.frag | 221 - .../frag/lut-promotion-initializer.asm.frag | 195 - ...d-unpack-uint2.fxconly.nofxc.sm60.asm.frag | 55 - .../asm/frag/pass-by-value.asm.frag | 51 - .../asm/frag/sample-and-compare.asm.frag | 61 - .../frag/single-function-private-lut.asm.frag | 86 - .../shaders-hlsl/asm/frag/srem.asm.frag | 43 - .../storage-class-output-initializer.asm.frag | 41 - .../asm/frag/texel-fetch-no-lod.asm.frag | 46 - .../asm/frag/texture-sampling-fp16.asm.frag | 47 - .../asm/frag/unknown-depth-state.asm.frag | 71 - .../asm/frag/unreachable.asm.frag | 61 - ...act-transposed-matrix-from-struct.asm.vert | 141 - .../vert/spec-constant-op-composite.asm.vert | 98 - .../vert/uint-vertex-id-instance-id.asm.vert | 65 - .../asm/vert/vertex-id-instance-id.asm.vert | 53 - .../comp/access-chain-load-composite.comp | 35 - .../shaders-hlsl/comp/access-chains.comp | 24 - .../comp/access-chains.force-uav.comp | 24 - .../shaders-hlsl/comp/address-buffers.comp | 23 - .../spirv-cross/shaders-hlsl/comp/atomic.comp | 66 - .../shaders-hlsl/comp/barriers.comp | 79 - .../shaders-hlsl/comp/builtins.comp | 11 - .../comp/composite-array-initialization.comp | 29 - .../shaders-hlsl/comp/globallycoherent.comp | 25 - .../spirv-cross/shaders-hlsl/comp/image.comp | 77 - .../comp/image.nonwritable-uav-texture.comp | 77 - .../shaders-hlsl/comp/inverse.comp | 23 - .../comp/num-workgroups-alone.comp | 13 - .../comp/num-workgroups-with-builtins.comp | 13 - .../shaders-hlsl/comp/outer-product.comp | 37 - .../shaders-hlsl/comp/rmw-matrix.comp | 20 - .../shaders-hlsl/comp/rwbuffer-matrix.comp | 104 - ...alar-std450-distance-length-normalize.comp | 18 - .../spirv-cross/shaders-hlsl/comp/shared.comp | 27 - .../comp/spec-constant-op-member-array.comp | 33 - .../comp/spec-constant-work-group-size.comp | 19 - .../shaders-hlsl/comp/ssbo-array-length.comp | 12 - .../shaders-hlsl/comp/ssbo-array.comp | 29 - .../frag/array-lut-no-loop-variable.frag | 13 - .../frag/basic-color-3comp.sm30.frag | 11 - .../frag/basic-color-3comp.sm50.frag | 11 - .../spirv-cross/shaders-hlsl/frag/basic.frag | 13 - .../shaders-hlsl/frag/bit-conversions.frag | 12 - .../shaders-hlsl/frag/boolean-mix.frag | 10 - .../shaders-hlsl/frag/builtins.frag | 11 - .../shaders-hlsl/frag/bvec-operations.frag | 13 - .../shaders-hlsl/frag/clip-cull-distance.frag | 12 - .../combined-texture-sampler-parameter.frag | 31 - .../frag/combined-texture-sampler-shadow.frag | 29 - .../complex-expression-in-access-chain.frag | 29 - .../frag/constant-composites.frag | 20 - .../control-dependent-in-branch.desktop.frag | 36 - .../shaders-hlsl/frag/demote-to-helper.frag | 7 - .../shaders-hlsl/frag/depth-greater-than.frag | 8 - .../shaders-hlsl/frag/depth-less-than.frag | 8 - .../frag/dual-source-blending.frag | 10 - .../frag/early-fragment-test.frag | 7 - .../frag/for-loop-continue-control-flow.frag | 11 - .../shaders-hlsl/frag/fp16-packing.frag | 12 - .../shaders-hlsl/frag/front-facing.frag | 14 - .../frag/image-query-selective.frag | 35 - .../shaders-hlsl/frag/image-query-uav.frag | 18 - ...age-query-uav.nonwritable-uav-texture.frag | 18 - .../shaders-hlsl/frag/image-query.frag | 33 - .../frag/input-attachment-ms.frag | 15 - .../shaders-hlsl/frag/input-attachment.frag | 16 - .../shaders-hlsl/frag/io-block.frag | 16 - .../frag/legacy-tex-modifiers.sm30.frag | 13 - .../shaders-hlsl/frag/lut-promotion.frag | 44 - .../shaders-hlsl/frag/matrix-input.frag | 9 - .../spirv-cross/shaders-hlsl/frag/mod.frag | 22 - .../spirv-cross/shaders-hlsl/frag/mrt.frag | 15 - .../shaders-hlsl/frag/no-return.frag | 5 - .../shaders-hlsl/frag/no-return2.frag | 9 - ...orm-qualifier.nonuniformresource.sm51.frag | 52 - .../frag/partial-write-preserve.frag | 64 - .../pixel-interlock-ordered.sm51.fxconly.frag | 36 - .../shaders-hlsl/frag/point-coord-compat.frag | 10 - .../shaders-hlsl/frag/query-lod.desktop.frag | 10 - .../readonly-coherent-ssbo.force-uav.frag | 12 - .../frag/readonly-coherent-ssbo.frag | 12 - .../shaders-hlsl/frag/resources.frag | 27 - .../frag/row-major-layout-in-struct.frag | 29 - .../frag/sample-cmp-level-zero.frag | 27 - .../frag/sample-mask-in-and-out.frag | 9 - .../shaders-hlsl/frag/sample-mask-in.frag | 11 - .../shaders-hlsl/frag/sample-mask-out.frag | 9 - .../shaders-hlsl/frag/sampler-array.frag | 28 - .../frag/sampler-image-arrays.frag | 33 - .../frag/scalar-refract-reflect.frag | 11 - .../separate-combined-fake-overload.sm30.frag | 21 - .../frag/spec-constant-block-size.frag | 17 - .../frag/spec-constant-ternary.frag | 9 - .../frag/switch-unsigned-case.frag | 26 - .../shaders-hlsl/frag/swizzle-scalar.frag | 16 - .../shaders-hlsl/frag/tex-sampling-ms.frag | 16 - .../shaders-hlsl/frag/tex-sampling.frag | 81 - .../shaders-hlsl/frag/texel-fetch-offset.frag | 10 - .../frag/texture-proj-shadow.frag | 21 - .../texture-size-combined-image-sampler.frag | 9 - .../shaders-hlsl/frag/unary-enclose.frag | 15 - .../frag/unorm-snorm-packing.frag | 24 - .../shaders-hlsl/frag/various-glsl-ops.frag | 17 - .../spirv-cross/shaders-hlsl/vert/basic.vert | 15 - .../shaders-hlsl/vert/clip-cull-distance.vert | 11 - .../shaders-hlsl/vert/instancing.vert | 6 - .../shaders-hlsl/vert/invariant.vert | 13 - .../shaders-hlsl/vert/locations.vert | 51 - .../shaders-hlsl/vert/matrix-attribute.vert | 9 - .../shaders-hlsl/vert/matrix-output.vert | 9 - .../shaders-hlsl/vert/no-contraction.vert | 15 - .../shaders-hlsl/vert/no-input.vert | 6 - .../shaders-hlsl/vert/point-size-compat.vert | 7 - .../shaders-hlsl/vert/qualifiers.vert | 27 - .../vert/read-from-row-major-array.vert | 20 - .../shaders-hlsl/vert/return-array.vert | 22 - .../shaders-hlsl/vert/sampler-buffers.vert | 17 - .../vert/struct-composite-decl.vert | 26 - .../shaders-hlsl/vert/texture_buffer.vert | 9 - ...ased-struct-divergent-member-name.asm.comp | 77 - .../comp/arithmetic-conversion-signs.asm.comp | 131 - .../asm/comp/atomic-load-store.asm.comp | 48 - .../asm/comp/atomic-result-temporary.asm.comp | 59 - .../asm/comp/bitcast-fp16-fp32.asm.comp | 63 - .../comp/bitfield-signed-operations.asm.comp | 97 - .../asm/comp/bitscan.asm.comp | 72 - ...composite-construct-buffer-struct.asm.comp | 54 - .../comp/constant-composite-undef.asm.comp | 40 - .../asm/comp/copy-logical-2.spv14.asm.comp | 81 - .../asm/comp/copy-logical.spv14.asm.comp | 69 - .../comp/device-array-load-temporary.asm.comp | 53 - ...load-temporary.force-native-array.asm.comp | 53 - .../device-constant-array-load-store.asm.comp | 81 - ...ray-load-store.force-native-array.asm.comp | 81 - ...-in-entry-point.noeliminate.spv14.asm.comp | 59 - .../asm/comp/glsl-signed-operations.asm.comp | 123 - .../glsl.std450.frexp-modf-struct.asm.comp | 55 - .../storage-buffer-basic.invalid.asm.comp | 58 - .../storage-buffer-pointer-argument.asm.comp | 63 - .../asm/comp/variable-pointers.asm.comp | 152 - ...omponent-insert-packed-expression.asm.frag | 70 - .../asm/frag/empty-struct-in-struct.asm.frag | 61 - ...xup-entry-point-identifier.nomain.asm.frag | 27 - .../asm/frag/image-fetch-uint-coord.asm.frag | 44 - .../asm/frag/image-gather.asm.frag | 74 - ...mage-type-normal-comparison-usage.asm.frag | 76 - ...nput-attachment-unused-frag-coord.asm.frag | 74 - ...-frexp-scalar-access-chain-output.asm.frag | 36 - .../frag/only-initializer-frag-depth.asm.frag | 25 - .../asm/frag/phi.zero-initialize.asm.frag | 69 - .../pixel-interlock-callstack.msl2.asm.frag | 89 - ...pixel-interlock-control-flow.msl2.asm.frag | 121 - ...el-interlock-split-functions.msl2.asm.frag | 102 - .../private-initializer-direct-store.asm.frag | 32 - .../reserved-function-identifier.asm.frag | 60 - .../subgroup-arithmetic-cast.msl21.asm.frag | 65 - ...ch-block-case-fallthrough.asm.invalid.frag | 80 - .../asm/frag/texture-access.swizzle.asm.frag | 364 -- .../frag/vector-shuffle-undef-index.asm.frag | 42 - ...lizers-block.mask-location-0.msl2.asm.tesc | 85 - ....mask-location-0.multi-patch.msl2.asm.tesc | 85 - ...lizers-block.mask-location-1.msl2.asm.tesc | 85 - ....mask-location-1.multi-patch.msl2.asm.tesc | 85 - ...lizers-block.mask-point-size.msl2.asm.tesc | 86 - ....mask-point-size.multi-patch.msl2.asm.tesc | 86 - ...ializers-block.mask-position.msl2.asm.tesc | 86 - ...ck.mask-position.multi-patch.msl2.asm.tesc | 86 - ...initializers.mask-location-0.msl2.asm.tesc | 76 - ....mask-location-0.msl2.multi-patch.asm.tesc | 76 - .../initializers.mask-location-1.asm.tesc | 76 - ...izers.mask-location-1.multi-patch.asm.tesc | 76 - ...initializers.mask-point-size.msl2.asm.tesc | 76 - ....mask-point-size.msl2.multi-patch.asm.tesc | 76 - .../initializers.mask-position.msl2.asm.tesc | 76 - ...rs.mask-position.msl2.multi-patch.asm.tesc | 76 - .../composite-extract-row-major.asm.comp | 48 - .../load-packed-no-forwarding-2.asm.comp | 56 - .../load-packed-no-forwarding-3.asm.comp | 48 - .../load-packed-no-forwarding-4.asm.comp | 61 - .../load-packed-no-forwarding-5.asm.comp | 54 - .../load-packed-no-forwarding.asm.comp | 56 - .../packed-vector-extract-insert.asm.comp | 57 - .../row-major-split-access-chain.asm.comp | 48 - .../asm/packing/scalar-array-float2.asm.frag | 54 - .../scalar-array-float3-one-element.asm.frag | 51 - .../asm/packing/scalar-array-float3.asm.frag | 54 - ...scalar-float2x2-col-major.invalid.asm.frag | 56 - .../scalar-float2x2-row-major.asm.frag | 56 - ...scalar-float2x3-col-major.invalid.asm.frag | 56 - .../scalar-float2x3-row-major.asm.frag | 56 - ...scalar-float3x2-col-major.invalid.asm.frag | 56 - .../scalar-float3x2-row-major.asm.frag | 56 - ...scalar-float3x3-col-major.invalid.asm.frag | 56 - .../scalar-float3x3-row-major.asm.frag | 56 - .../asm/temporary.zero-initialize.asm.frag | 93 - .../array-control-point-initializer.asm.tesc | 80 - .../block-control-point-initializer.asm.tesc | 70 - ...builtin-control-point-initializer.asm.tesc | 65 - ...mposite-control-point-initializer.asm.tesc | 69 - .../tesc/copy-memory-control-point.asm.tesc | 199 - .../asm/tesc/copy-tess-level-tri.asm.tesc | 82 - .../plain-control-point-initializer.asm.tesc | 63 - ...input-array-builtin-array.invalid.asm.tesc | 248 -- ...builtin-array.invalid.multi-patch.asm.tesc | 248 -- .../tesc/tess-level-initializer-quad.asm.tesc | 88 - .../tess-level-initializer-triangle.asm.tesc | 88 - ...-level-read-write-in-function-tri.asm.tesc | 109 - .../asm/tese/copy-tess-level.asm.msl2.tese | 58 - .../asm/tese/split-access-chain.asm.tese | 35 - .../vert/block-struct-initializer.asm.vert | 43 - .../vert/builtin-output-initializer.asm.vert | 39 - ...omposite-extract-physical-type-id.asm.vert | 63 - .../asm/vert/duplicate-view-index.asm.vert | 66 - .../asm/vert/empty-struct-composite.asm.vert | 36 - .../op-load-forced-temporary-array.asm.frag | 60 - .../asm/vert/pointer-to-pointer.asm.vert | 34 - .../comp/array-copy-threadgroup-memory.comp | 18 - .../basic.dynamic-buffer.msl2.invalid.comp | 27 - .../comp/bitcast-16bit-1.invalid.comp | 23 - .../comp/bitcast-16bit-2.invalid.comp | 26 - .../shaders-msl-no-opt/comp/bitfield.comp | 23 - .../shaders-msl-no-opt/comp/glsl.std450.comp | 129 - .../comp/illegal-struct-name.asm.comp | 62 - .../comp/int64.invalid.msl22.comp | 65 - .../shaders-msl-no-opt/comp/loop.comp | 98 - .../shaders-msl-no-opt/comp/return.comp | 33 - ...std140-array-load-composite-construct.comp | 13 - ...ct-packing-scalar.nocompat.invalid.vk.comp | 100 - ...pat.invalid.vk.msl12.emulate-subgroup.comp | 25 - .../subgroups.nocompat.invalid.vk.msl21.comp | 145 - ...ompat.invalid.vk.msl21.fixed-subgroup.comp | 138 - ...bgroups.nocompat.invalid.vk.msl21.ios.comp | 49 - ...bgroups.nocompat.invalid.vk.msl22.ios.comp | 79 - ...ps.nocompat.invalid.vk.msl23.ios.simd.comp | 138 - .../components/fragment-input-component.frag | 10 - .../components/fragment-output-component.frag | 12 - ...ragment-output-component.pad-fragment.frag | 10 - .../components/vertex-input-component.vert | 11 - .../components/vertex-output-component.vert | 12 - .../frag/16bit-constants.invalid.frag | 14 - ...e-to-helper.vk.nocompat.msl21.invalid.frag | 8 - .../frag/depth-image-gather.asm.frag | 72 - ....msl2.argument..force-active.discrete.frag | 15 - .../frag/fp16.desktop.invalid.frag | 151 - .../shaders-msl-no-opt/frag/image-gather.frag | 14 - .../frag/in_block_assign.frag | 16 - .../frag/min-max-clamp.invalid.asm.frag | 293 -- .../frag/nonuniform-constructor.msl2.frag | 14 - ...pixel-interlock-simple-callstack.msl2.frag | 31 - ...layout-ubo-std430.vk.nocompat.invalid.frag | 23 - .../shadow-compare-global-alias.invalid.frag | 38 - .../subgroups.nocompat.invalid.vk.msl22.frag | 131 - ...-fallback.msl20.ios.framebuffer-fetch.frag | 9 - ...ndex-fallback.msl23.framebuffer-fetch.frag | 9 - ...nction-argument.framebuffer-fetch.ios.frag | 24 - ...tion-argument.framebuffer-fetch.msl23.frag | 24 - ...ding.framebuffer-fetch.msl23.argument.frag | 12 - ...ation-binding.framebuffer-fetch.msl23.frag | 12 - ...g.ios.framebuffer-fetch.msl2.argument.frag | 12 - ...on-binding.ios.framebuffer-fetch.msl2.frag | 12 - .../frag/texture-access-int.swizzle.frag | 53 - .../frag/texture-access-leaf.swizzle.frag | 86 - .../frag/texture-access-uint.swizzle.frag | 53 - .../frag/texture-access.swizzle.frag | 79 - ...le-structs-access-chain.argument.msl2.frag | 18 - ...o-array-multiple-structs-access-chain.frag | 18 - .../frag/ubo-offset-out-of-order.frag | 16 - .../frag/variables.zero-initialize.frag | 21 - .../packing/array-of-vec3.comp | 13 - .../packing/array-of-vec4.comp | 13 - .../packing/isolated-scalar-access.comp | 25 - .../packing/load-store-col-rows.comp | 59 - .../packing/matrix-2x2-scalar.comp | 86 - .../packing/matrix-2x2-std140.comp | 85 - .../packing/matrix-2x2-std430.comp | 85 - .../packing/matrix-2x3-scalar.comp | 86 - .../packing/matrix-2x3-std140.comp | 85 - .../packing/matrix-2x3-std430.comp | 85 - .../packing/matrix-2x4-scalar.comp | 86 - .../packing/matrix-2x4-std140.comp | 85 - .../packing/matrix-2x4-std430.comp | 85 - .../packing/matrix-3x2-scalar.comp | 86 - .../packing/matrix-3x2-std140.comp | 85 - .../packing/matrix-3x2-std430.comp | 85 - .../packing/matrix-3x3-scalar.comp | 86 - .../packing/matrix-3x3-std140.comp | 85 - .../packing/matrix-3x3-std430.comp | 85 - .../packing/matrix-3x4-scalar.comp | 86 - .../packing/matrix-3x4-std140.comp | 85 - .../packing/matrix-3x4-std430.comp | 85 - .../packing/matrix-4x2-scalar.comp | 86 - .../packing/matrix-4x2-std140.comp | 85 - .../packing/matrix-4x2-std430.comp | 85 - .../packing/matrix-4x3-scalar.comp | 86 - .../packing/matrix-4x3-std140.comp | 85 - .../packing/matrix-4x3-std430.comp | 85 - .../packing/matrix-4x4-scalar.comp | 86 - .../packing/matrix-4x4-std140.comp | 85 - .../packing/matrix-4x4-std430.comp | 85 - .../packing/matrix-multiply-row-major.comp | 16 - .../matrix-multiply-unpacked-col-major-2.comp | 19 - .../matrix-multiply-unpacked-col-major.comp | 18 - .../matrix-multiply-unpacked-row-major-2.comp | 19 - .../matrix-multiply-unpacked-row-major.comp | 18 - .../packing/member-padding.comp | 14 - .../packing/std140-array-of-vectors.comp | 47 - .../packing/struct-alignment.comp | 22 - .../struct-packing-array-of-scalar.comp | 18 - .../packing/struct-packing-recursive.comp | 29 - .../packing/struct-packing.comp | 27 - .../struct-size-padding-array-of-array.comp | 45 - .../packing/struct-size-padding.comp | 45 - .../tesc/copy-tess-level.tesc | 12 - .../passthrough-clip-cull.multi-patch.tesc | 22 - ...ess-level-read-write-in-function-quad.tesc | 24 - ...-input-automatic-attribute-assignment.tese | 10 - .../tese/load-clip-cull.msl2.tese | 19 - .../vert/cull-distance.for-tess.vert | 10 - .../vert/functions_nested.vert | 132 - .../vert/layer.msl11.invalid.vert | 10 - ...ass-array-by-value.force-native-array.vert | 26 - .../vert/pass-array-by-value.vert | 26 - .../vert/uninitialized-vertex-output.vert | 8 - .../vert/unused-subgroup-builtin.msl22.vert | 7 - .../vert/viewport-index.msl2.invalid.vert | 10 - .../texture-access-function.swizzle.vk.frag | 90 - .../amd/shader_trinary_minmax.msl21.comp | 11 - .../asm/comp/atomic-decrement.asm.comp | 71 - .../asm/comp/atomic-increment.asm.comp | 71 - .../asm/comp/bitcast_iadd.asm.comp | 79 - .../asm/comp/bitcast_icmp.asm.comp | 101 - .../shaders-msl/asm/comp/bitcast_sar.asm.comp | 77 - .../asm/comp/bitcast_sdiv.asm.comp | 77 - .../shaders-msl/asm/comp/bitcast_slr.asm.comp | 77 - .../asm/comp/block-name-alias-global.asm.comp | 119 - .../comp/buffer-write-relative-addr.asm.comp | 93 - .../asm/comp/buffer-write.asm.comp | 59 - .../comp/global-parameter-name-alias.asm.comp | 102 - ...e-load-store-short-vector.invalid.asm.comp | 75 - .../asm/comp/multiple-entry.asm.comp | 98 - .../shaders-msl/asm/comp/quantize.asm.comp | 67 - .../asm/comp/relaxed-block-layout.asm.comp | 108 - ...specialization-constant-workgroup.asm.comp | 47 - .../struct-resource-name-aliasing.asm.comp | 49 - .../asm/comp/variable-pointers-2.asm.comp | 117 - ...ariable-pointers-store-forwarding.asm.comp | 75 - .../vector-builtin-type-cast-func.asm.comp | 147 - .../comp/vector-builtin-type-cast.asm.comp | 128 - .../asm/frag/combined-sampler-reuse.asm.frag | 57 - .../asm/frag/default-member-names.asm.frag | 57 - .../frag/descriptor-array-unnamed.asm.frag | 63 - ...isable-renamed-output.frag-output.asm.frag | 83 - .../asm/frag/empty-struct.asm.frag | 55 - .../extract-packed-from-composite.asm.frag | 108 - .../shaders-msl/asm/frag/frem.asm.frag | 41 - .../asm/frag/function-overload-alias.asm.frag | 153 - .../asm/frag/image-extract-reuse.asm.frag | 41 - .../asm/frag/implicit-read-dep-phi.asm.frag | 81 - .../asm/frag/inf-nan-constant.asm.frag | 29 - .../interpolation-qualifiers-struct.asm.frag | 85 - .../asm/frag/line-directive.line.asm.frag | 221 - .../asm/frag/locations-components.asm.frag | 103 - .../frag/lut-promotion-initializer.asm.frag | 195 - .../asm/frag/min-lod.msl22.asm.frag | 42 - .../asm/frag/op-constant-null.asm.frag | 85 - .../asm/frag/op-image-sampled-image.asm.frag | 82 - .../asm/frag/pass-by-value.asm.frag | 51 - .../asm/frag/phi-loop-variable.asm.frag | 71 - .../pull-model-interpolation.asm.msl23.frag | 425 -- .../asm/frag/sample-and-compare.asm.frag | 61 - .../frag/single-function-private-lut.asm.frag | 86 - .../shaders-msl/asm/frag/srem.asm.frag | 43 - .../storage-class-output-initializer.asm.frag | 41 - .../asm/frag/texel-fetch-no-lod.asm.frag | 46 - .../asm/frag/texture-sampling-fp16.asm.frag | 47 - .../asm/frag/undef-variable-store.asm.frag | 85 - .../asm/frag/unknown-depth-state.asm.frag | 71 - .../asm/frag/unord-relational-op.asm.frag | 205 - .../shaders-msl/asm/frag/unreachable.asm.frag | 61 - .../asm/frag/vector-shuffle-oom.asm.frag | 886 ---- .../asm/tesc/tess-level-overrun.asm.tesc | 102 - .../tess-level-overrun.multi-patch.asm.tesc | 102 - .../asm/tese/unnamed-builtin-array.asm.tese | 96 - .../clip-distance-plain-variable.asm.vert | 91 - ...ce-plain-variable.no-user-varying.asm.vert | 91 - .../asm/vert/copy-memory-interface.asm.vert | 33 - ...act-transposed-matrix-from-struct.asm.vert | 141 - .../asm/vert/fake-builtin-input.asm.vert | 55 - .../asm/vert/invariant.msl21.asm.vert | 34 - .../asm/vert/packed-bool-to-uint.asm.vert | 111 - .../packed-bool2-to-packed_uint2.asm.vert | 113 - .../asm/vert/packing-test.asm.vert | 43 - .../vert/spec-constant-op-composite.asm.vert | 98 - .../vert/uint-vertex-id-instance-id.asm.vert | 65 - .../access-private-workgroup-in-function.comp | 31 - ...ffers-discrete.msl2.argument.discrete.comp | 27 - ...rs-image-load-store.ios.msl2.argument.comp | 10 - ...uffers-image-load-store.msl2.argument.comp | 10 - .../shaders-msl/comp/array-length.comp | 22 - .../array-length.msl2.argument.discrete.comp | 38 - .../spirv-cross/shaders-msl/comp/atomic.comp | 56 - .../shaders-msl/comp/barriers.comp | 79 - .../spirv-cross/shaders-msl/comp/basic.comp | 28 - .../shaders-msl/comp/basic.dispatchbase.comp | 29 - .../comp/basic.dispatchbase.msl11.comp | 29 - .../comp/basic.inline-block.msl2.comp | 37 - .../shaders-msl/comp/builtins.comp | 12 - .../comp/cfg-preserve-parameter.comp | 54 - .../shaders-msl/comp/coherent-block.comp | 12 - .../shaders-msl/comp/coherent-image.comp | 14 - .../complex-composite-constant-array.comp | 19 - .../shaders-msl/comp/complex-type-alias.comp | 41 - .../comp/composite-array-initialization.comp | 28 - ...ray-initialization.force-native-array.comp | 28 - .../shaders-msl/comp/composite-construct.comp | 31 - .../comp/copy-array-of-arrays.comp | 21 - ...py-array-of-arrays.force-native-array.comp | 21 - .../spirv-cross/shaders-msl/comp/culling.comp | 26 - .../shaders-msl/comp/defer-parens.comp | 30 - .../spirv-cross/shaders-msl/comp/dowhile.comp | 31 - .../comp/force-recompile-hooks.swizzle.comp | 9 - .../shaders-msl/comp/functions.comp | 12 - ...vocation-id-writable-ssbo-in-function.comp | 12 - .../comp/global-invocation-id.comp | 9 - ...omic-automatic-bindings.argument.msl2.comp | 16 - .../comp/image-atomic-automatic-bindings.comp | 16 - .../comp/image-cube-array-load-store.comp | 13 - .../spirv-cross/shaders-msl/comp/image.comp | 12 - .../spirv-cross/shaders-msl/comp/insert.comp | 18 - .../spirv-cross/shaders-msl/comp/inverse.comp | 23 - .../shaders-msl/comp/local-invocation-id.comp | 9 - .../comp/local-invocation-index.comp | 9 - .../spirv-cross/shaders-msl/comp/mat3.comp | 14 - .../spirv-cross/shaders-msl/comp/mod.comp | 26 - .../spirv-cross/shaders-msl/comp/modf.comp | 23 - .../shaders-msl/comp/outer-product.comp | 37 - .../shaders-msl/comp/packing-test-1.comp | 18 - .../shaders-msl/comp/packing-test-2.comp | 16 - .../shaders-msl/comp/read-write-only.comp | 26 - .../shaders-msl/comp/rmw-matrix.comp | 20 - .../spirv-cross/shaders-msl/comp/rmw-opt.comp | 27 - ...alar-std450-distance-length-normalize.comp | 20 - .../comp/shared-array-of-arrays.comp | 29 - .../spirv-cross/shaders-msl/comp/shared.comp | 27 - .../comp/spec-constant-op-member-array.comp | 33 - .../comp/spec-constant-work-group-size.comp | 17 - .../storage-buffer-std140-vector-array.comp | 30 - .../shaders-msl/comp/struct-layout.comp | 24 - .../shaders-msl/comp/struct-nested.comp | 20 - .../shaders-msl/comp/struct-packing.comp | 77 - .../shaders-msl/comp/torture-loop.comp | 40 - .../shaders-msl/comp/type-alias.comp | 45 - .../spirv-cross/shaders-msl/comp/udiv.comp | 17 - .../shaders-msl/comp/writable-ssbo.comp | 9 - .../comp/extended-arithmetic.desktop.comp | 41 - .../desktop-only/frag/image-ms.desktop.frag | 13 - .../frag/query-levels.desktop.frag | 11 - .../frag/sampler-ms-query.desktop.frag | 12 - .../tesc/arrayed-output.desktop.sso.tesc | 27 - .../tesc/basic.desktop.sso.multi-patch.tesc | 32 - .../desktop-only/tesc/basic.desktop.sso.tesc | 32 - .../struct-copy.desktop.sso.multi-patch.tesc | 22 - .../tesc/struct-copy.desktop.sso.tesc | 22 - .../tese/triangle.desktop.sso.tese | 22 - .../desktop-only/vert/basic.desktop.sso.vert | 20 - ...ull-distance..no-user-varying.desktop.vert | 10 - .../vert/clip-cull-distance.desktop.vert | 10 - ...ader-draw-parameters.desktop.for-tess.vert | 11 - .../vert/shader-draw-parameters.desktop.vert | 11 - .../shaders-msl/flatten/basic.flatten.vert | 16 - .../flatten/multiindex.flatten.vert | 13 - .../flatten/push-constant.flatten.vert | 17 - .../shaders-msl/flatten/rowmajor.flatten.vert | 16 - .../shaders-msl/flatten/struct.flatten.vert | 30 - .../shaders-msl/flatten/swizzle.flatten.vert | 47 - .../shaders-msl/flatten/types.flatten.frag | 27 - .../frag/argument-buffers.msl2.argument.frag | 61 - .../shaders-msl/frag/array-component-io.frag | 21 - .../frag/array-lut-no-loop-variable.frag | 13 - .../shaders-msl/frag/array-of-array-lut.frag | 12 - ...niform.msl2.argument.discrete.swizzle.frag | 34 - ...zzle-nonconstant-uniform.msl2.swizzle.frag | 34 - ...wizzle.msl2.argument.discrete.swizzle.frag | 31 - ...array-of-texture-swizzle.msl2.swizzle.frag | 23 - .../frag/barycentric-nv-nopersp.msl22.frag | 17 - .../frag/barycentric-nv.msl22.frag | 17 - .../shaders-msl/frag/basic.force-sample.frag | 13 - .../spirv-cross/shaders-msl/frag/basic.frag | 13 - .../binary-func-unpack-pack-arguments.frag | 15 - .../frag/binary-unpack-pack-arguments.frag | 15 - .../shaders-msl/frag/bitcasting.1d-as-2d.frag | 23 - .../shaders-msl/frag/bitcasting.frag | 24 - .../shaders-msl/frag/buffer-read-write.frag | 12 - ...ead-write.texture-buffer-native.msl21.frag | 12 - .../shaders-msl/frag/builtins.frag | 11 - .../frag/clip-distance-varying.frag | 10 - .../complex-expression-in-access-chain.frag | 29 - .../composite-extract-forced-temporary.frag | 11 - .../shaders-msl/frag/constant-array.frag | 21 - .../shaders-msl/frag/constant-composites.frag | 20 - .../control-dependent-in-branch.desktop.frag | 34 - .../frag/cull-distance-varying.frag | 10 - .../shaders-msl/frag/depth-greater-than.frag | 7 - .../shaders-msl/frag/depth-less-than.frag | 7 - .../frag/disable-frag-output.frag-output.frag | 25 - .../frag/dual-source-blending.frag | 10 - .../frag/early-fragment-tests.frag | 9 - .../shaders-msl/frag/false-loop-init.frag | 19 - .../shaders-msl/frag/flush_params.frag | 27 - .../frag/for-loop-continue-control-flow.frag | 11 - .../shaders-msl/frag/for-loop-init.frag | 52 - .../shaders-msl/frag/fp16-packing.frag | 12 - ...agment-component-padding.pad-fragment.frag | 18 - .../shaders-msl/frag/front-facing.frag | 14 - .../shaders-msl/frag/gather-dref.frag | 11 - .../shaders-msl/frag/gather-offset.frag | 9 - .../frag/helper-invocation.msl21.frag | 21 - ....device-argument-buffer.argument.msl2.frag | 26 - .../shaders-msl/frag/illegal-name-test-0.frag | 12 - .../frag/image-query-lod.msl22.frag | 33 - .../shaders-msl/frag/in_block.frag | 14 - .../spirv-cross/shaders-msl/frag/in_mat.frag | 19 - ...t-attachment-ms.arrayed-subpass.msl21.frag | 15 - .../shaders-msl/frag/input-attachment-ms.frag | 15 - .../input-attachment-ms.multiview.msl21.frag | 15 - .../input-attachment.arrayed-subpass.frag | 16 - .../shaders-msl/frag/input-attachment.frag | 16 - .../frag/input-attachment.multiview.frag | 16 - .../frag/interpolation-qualifiers-block.frag | 19 - .../frag/interpolation-qualifiers.frag | 15 - .../shaders-msl/frag/lut-promotion.frag | 44 - .../spirv-cross/shaders-msl/frag/mix.frag | 20 - .../shaders-msl/frag/mrt-array.frag | 24 - .../frag/nonuniform-qualifier.msl2.frag | 28 - .../packed-expression-vector-shuffle.frag | 15 - .../shaders-msl/frag/packing-test-3.frag | 36 - ...pixel-interlock-ordered.msl2.argument.frag | 36 - .../frag/pixel-interlock-ordered.msl2.frag | 36 - .../spirv-cross/shaders-msl/frag/pls.frag | 20 - .../frag/post-depth-coverage.ios.msl2.frag | 11 - .../frag/post-depth-coverage.msl23.frag | 11 - ...rivate-variable-prototype-declaration.frag | 20 - .../read-cull-clip-distance-in-function.frag | 20 - .../shaders-msl/frag/readonly-ssbo.frag | 16 - ...e-depth-propagate-state-from-resource.frag | 29 - .../sample-depth-separate-image-sampler.frag | 22 - ...ple-mask-in-and-out.fixed-sample-mask.frag | 10 - ...ample-mask-not-used.fixed-sample-mask.frag | 8 - .../frag/sample-mask.fixed-sample-mask.frag | 10 - .../shaders-msl/frag/sample-mask.frag | 10 - .../frag/sample-position-func.frag | 15 - .../shaders-msl/frag/sample-position.frag | 8 - .../sample-rate-frag-coord-sample-id.frag | 10 - .../sample-rate-frag-coord-sample-input.frag | 11 - .../sample-rate-frag-coord-sample-pos.frag | 10 - .../sample-rate-frag-coord.force-sample.frag | 10 - .../frag/sampler-1d-lod.1d-as-2d.frag | 12 - .../shaders-msl/frag/sampler-1d-lod.frag | 12 - .../sampler-compare-bias.msl23.1d-as-2d.frag | 11 - .../sampler-compare-cascade-gradient.frag | 11 - .../sampler-compare-cascade-gradient.ios.frag | 11 - ...ampler-compare-cascade-gradient.msl23.frag | 11 - .../frag/sampler-image-arrays.msl2.frag | 33 - .../shaders-msl/frag/sampler-ms.frag | 16 - .../spirv-cross/shaders-msl/frag/sampler.frag | 18 - .../frag/scalar-refract-reflect.frag | 11 - .../frag/separate-image-sampler-argument.frag | 16 - .../frag/shader-arithmetic-8bit.frag | 88 - .../frag/spec-constant-block-size.frag | 17 - .../frag/spec-constant-ternary.frag | 9 - .../frag/stencil-export.msl21.frag | 17 - .../frag/subgroup-builtins.msl22.frag | 10 - .../frag/subgroup-globals-extract.msl22.frag | 30 - .../frag/switch-unsigned-case.frag | 26 - .../spirv-cross/shaders-msl/frag/swizzle.frag | 17 - .../frag/texel-fetch-offset.1d-as-2d.frag | 10 - .../shaders-msl/frag/texel-fetch-offset.frag | 10 - .../shaders-msl/frag/texture-cube-array.frag | 16 - ...ure-cube-array.ios.emulate-cube-array.frag | 16 - .../frag/texture-multisample-array.msl21.frag | 10 - .../shaders-msl/frag/texture-proj-shadow.frag | 19 - .../shaders-msl/frag/ubo_layout.frag | 24 - .../shaders-msl/frag/unary-enclose.frag | 15 - .../frag/vecsize-mismatch.shader-inputs.frag | 17 - .../frag/write-depth-in-function.frag | 14 - .../intel/shader-integer-functions2.asm.comp | 137 - .../legacy/vert/transpose.legacy.vert | 20 - ...rays.mask-location-0.msl2.multi-patch.tesc | 17 - .../copy-arrays.mask-location-0.msl2.tesc | 17 - ...rays.mask-location-1.msl2.multi-patch.tesc | 17 - .../copy-arrays.mask-location-1.msl2.tesc | 17 - ...utputs-block.mask-location-0.for-tess.vert | 16 - ...te-outputs-block.mask-location-0.msl2.tesc | 28 - ...lock.mask-location-0.multi-patch.msl2.tesc | 28 - .../write-outputs-block.mask-location-0.vert | 16 - ...utputs-block.mask-location-1.for-tess.vert | 16 - ...te-outputs-block.mask-location-1.msl2.tesc | 28 - ...lock.mask-location-1.multi-patch.msl2.tesc | 28 - .../write-outputs-block.mask-location-1.vert | 16 - .../write-outputs.mask-clip-distance.vert | 21 - ...rite-outputs.mask-location-0.for-tess.vert | 21 - .../write-outputs.mask-location-0.msl2.tesc | 26 - ...e-outputs.mask-location-0.multi-patch.tesc | 29 - .../write-outputs.mask-location-0.tesc | 29 - .../write-outputs.mask-location-0.vert | 21 - ...rite-outputs.mask-location-1.for-tess.vert | 21 - .../write-outputs.mask-location-1.msl2.tesc | 26 - ...e-outputs.mask-location-1.multi-patch.tesc | 29 - .../write-outputs.mask-location-1.tesc | 29 - .../write-outputs.mask-location-1.vert | 21 - ...rite-outputs.mask-point-size.for-tess.vert | 21 - ...e-outputs.mask-point-size.multi-patch.tesc | 29 - .../write-outputs.mask-point-size.tesc | 29 - .../write-outputs.mask-point-size.vert | 21 - ...ite-outputs.mask-position.multi-patch.tesc | 29 - .../masking/write-outputs.mask-position.tesc | 29 - .../shaders-msl/tesc/basic.multi-patch.tesc | 17 - .../spirv-cross/shaders-msl/tesc/basic.tesc | 17 - ...control-point-inout-types.multi-patch.tesc | 70 - .../complex-control-point-inout-types.tesc | 68 - .../tesc/complex-patch-out-types.tesc | 55 - ...rol-point-array-of-matrix.multi-patch.tesc | 12 - .../load-control-point-array-of-matrix.tesc | 12 - ...rol-point-array-of-struct.multi-patch.tesc | 21 - .../load-control-point-array-of-struct.tesc | 21 - .../load-control-point-array.multi-patch.tesc | 12 - .../tesc/load-control-point-array.tesc | 12 - .../tesc/matrix-output.multi-patch.tesc | 28 - .../tesc/reload-tess-level.multi-patch.tesc | 17 - .../shaders-msl/tesc/reload-tess-level.tesc | 17 - .../tesc/struct-output.multi-patch.tesc | 36 - .../tesc/water_tess.multi-patch.tesc | 115 - .../shaders-msl/tesc/water_tess.tesc | 115 - .../shaders-msl/tese/input-array.tese | 15 - .../shaders-msl/tese/input-types.tese | 75 - .../load-control-point-array-of-matrix.tese | 13 - .../tese/load-control-point-array.tese | 13 - .../shaders-msl/tese/quad.domain.tese | 12 - .../spirv-cross/shaders-msl/tese/quad.tese | 17 - .../read-tess-level-in-func-quad.msl2.tese | 17 - .../tese/read-tess-level-in-func.msl2.tese | 17 - .../shaders-msl/tese/set-from-function.tese | 36 - .../shaders-msl/tese/triangle-tess-level.tese | 13 - .../shaders-msl/tese/triangle.tese | 10 - .../shaders-msl/tese/water_tess.tese | 65 - .../vert/array-component-io.for-tess.vert | 21 - .../shaders-msl/vert/array-component-io.vert | 21 - .../shaders-msl/vert/basic.capture.vert | 17 - .../shaders-msl/vert/basic.for-tess.vert | 17 - .../spirv-cross/shaders-msl/vert/basic.vert | 17 - .../clip-distance-block.no-user-varying.vert | 15 - .../shaders-msl/vert/clip-distance-block.vert | 15 - .../shaders-msl/vert/copy.flatten.vert | 34 - .../shaders-msl/vert/dynamic.flatten.vert | 33 - .../vert/float-math.invariant-float-math.vert | 25 - .../shaders-msl/vert/float-math.vert | 25 - .../shaders-msl/vert/functions.vert | 28 - .../shaders-msl/vert/implicit-position-1.vert | 6 - .../shaders-msl/vert/implicit-position-2.vert | 4 - .../shaders-msl/vert/in_out_array_mat.vert | 41 - .../interface-block-block-composites.frag | 17 - .../interface-block-block-composites.vert | 22 - .../vert/interpolation-qualifiers-block.vert | 26 - .../vert/interpolation-qualifiers.vert | 22 - .../shaders-msl/vert/invariant.msl21.vert | 11 - .../vert/leaf-function.capture.vert | 22 - .../vert/leaf-function.for-tess.vert | 22 - .../shaders-msl/vert/no-contraction.vert | 15 - .../no-disable-vertex-out.frag-output.vert | 16 - .../vert/no_stage_out.for-tess.vert | 14 - .../shaders-msl/vert/no_stage_out.vert | 14 - .../vert/no_stage_out.write_buff.vert | 23 - .../vert/no_stage_out.write_buff_atomic.vert | 15 - .../vert/no_stage_out.write_tex.vert | 16 - .../shaders-msl/vert/out_block.vert | 22 - .../shaders-msl/vert/packed-bool-to-uint.vert | 22 - .../vert/packed-bool2-to-packed_uint2.vert | 22 - .../shaders-msl/vert/packed_matrix.vert | 41 - .../shaders-msl/vert/pointsize.vert | 15 - .../vert/read-from-row-major-array.vert | 20 - .../vert/resource-arrays-leaf.ios.vert | 27 - .../shaders-msl/vert/resource-arrays.ios.vert | 23 - .../vert/return-array.force-native-array.vert | 22 - .../shaders-msl/vert/return-array.vert | 22 - .../shaders-msl/vert/set_builtin_in_func.vert | 12 - .../shaders-msl/vert/sign-int-types.vert | 38 - .../signedness-mismatch.shader-inputs.vert | 14 - ...re_buffer.texture-buffer-native.msl21.vert | 10 - .../shaders-msl/vert/texture_buffer.vert | 10 - .../shaders-msl/vert/ubo.alignment.vert | 23 - .../spirv-cross/shaders-msl/vert/ubo.vert | 16 - ...asic.multiview.no-layered.nocompat.vk.frag | 14 - .../frag/basic.multiview.nocompat.vk.frag | 14 - ...lper-forwarding.asm.vk.nocompat.msl23.frag | 41 - .../demote-to-helper.vk.nocompat.msl23.frag | 8 - ...emote-to-helper.vk.nocompat.msl23.ios.frag | 8 - .../vulkan/frag/push-constant.vk.frag | 16 - .../vulkan/frag/spec-constant.msl11.vk.frag | 67 - .../vulkan/frag/spec-constant.vk.frag | 67 - ...oup.multiview.viewfromdev.nocompat.vk.vert | 8 - .../vulkan/vert/device-group.nocompat.vk.vert | 7 - ...view.multiview.no-layered.nocompat.vk.vert | 14 - .../vert/multiview.multiview.nocompat.vk.vert | 14 - .../vulkan/vert/multiview.nocompat.vk.vert | 14 - .../vulkan/vert/small-storage.vk.vert | 38 - .../vulkan/vert/vulkan-vertex.vk.vert | 6 - ...ss-chain-dominator-in-loop-body-2.asm.comp | 55 - ...cess-chain-dominator-in-loop-body.asm.comp | 54 - ...ess-tracking-function-call-result.asm.comp | 54 - ...ased-struct-divergent-member-name.asm.comp | 77 - ...etic-conversion-signs.asm.nocompat.vk.comp | 143 - .../asm/comp/atomic-load-store.asm.comp | 48 - .../asm/comp/atomic-result-temporary.asm.comp | 59 - .../asm/comp/bitcast-fp16-fp32.asm.vk.comp | 63 - .../comp/bitfield-signed-operations.asm.comp | 97 - .../shaders-no-opt/asm/comp/bitscan.asm.comp | 72 - ...fer-atomic-nonuniform.vk.nocompat.asm.comp | 53 - ...ce-aliased-block-name.nocompat.vk.asm.comp | 110 - ...synthesized-pointer-2.asm.nocompat.vk.comp | 44 - ...e-synthesized-pointer.asm.nocompat.vk.comp | 51 - .../comp/constant-composite-undef.asm.comp | 40 - .../asm/comp/copy-logical.spv14.asm.comp | 69 - ...-in-entry-point.noeliminate.spv14.asm.comp | 59 - .../extended-debug-extinst.invalid.asm.comp | 67 - .../asm/comp/glsl-signed-operations.asm.comp | 123 - .../glsl.std450.frexp-modf-struct.asm.comp | 55 - ...age-atomic-nonuniform.vk.nocompat.asm.comp | 55 - .../loop-variable-with-initializer.asm.comp | 31 - ...form-bracket-handling.vk.nocompat.asm.comp | 299 -- ...porary-copy-loop-variable.asm.invalid.comp | 68 - .../spec-constant-op-convert-sign.asm.comp | 63 - .../asm/comp/storage-buffer-basic.asm.comp | 57 - .../array-builtin-bitcast-load-store.asm.frag | 57 - ...ge-sampler-dxc-min16float.asm.invalid.frag | 95 - ...-impure-function-call.vk.nocompat.asm.frag | 63 - .../discard-impure-function-call.asm.frag | 59 - .../do-while-continue-phi.asm.invalid.frag | 64 - .../frag/do-while-loop-inverted-test.asm.frag | 51 - .../early-conditional-return-switch.asm.frag | 133 - .../asm/frag/empty-struct-in-struct.asm.frag | 61 - ...ated-merge-block-inverted.asm.invalid.frag | 37 - ...-merge-block-non-inverted.asm.invalid.frag | 37 - .../asm/frag/for-loop-inverted-test.asm.frag | 35 - .../asm/frag/image-fetch-uint-coord.asm.frag | 44 - .../inliner-dominator-inside-loop.asm.frag | 646 --- .../asm/frag/ldexp-uint-exponent.asm.frag | 36 - .../loop-merge-to-continue.asm.invalid.frag | 85 - ...rm-bracket-handling-2.vk.nocompat.asm.frag | 96 - ...qualifier-propagation.vk.nocompat.asm.frag | 159 - .../frag/nonuniform-ssbo.nocompat.vk.asm.frag | 99 - .../frag/only-initializer-frag-depth.asm.frag | 25 - .../opaque-id-literal-alias.preserve.asm.frag | 78 - .../asm/frag/out-of-order-struct-id.asm.frag | 54 - .../asm/frag/phi.zero-initialize.asm.frag | 69 - .../frag/pixel-interlock-callstack.asm.frag | 89 - .../pixel-interlock-control-flow.asm.frag | 121 - .../pixel-interlock-split-functions.asm.frag | 102 - .../reserved-function-identifier.asm.frag | 60 - .../asm/frag/reserved-identifiers.asm.frag | 51 - ...lection-merge-to-continue.asm.invalid.frag | 85 - ...exture-feedback-uint-code.asm.desktop.frag | 57 - ...group-arithmetic-cast.nocompat.vk.asm.frag | 65 - .../asm/frag/subgroup-ballot-only.vk.asm.frag | 52 - ...ch-block-case-fallthrough.asm.invalid.frag | 80 - .../switch-merge-to-continue.asm.invalid.frag | 85 - ...tch-single-case-multiple-exit-cfg.asm.frag | 57 - .../asm/frag/unordered-compare.asm.frag | 177 - ...tor-extract-dynamic-spec-constant.asm.frag | 49 - .../frag/vector-shuffle-undef-index.asm.frag | 42 - .../frag/while-loop-inverted-test.asm.frag | 53 - .../geom/store-uint-layer.invalid.asm.geom | 130 - .../loop-header-self-continue-break.asm.comp | 109 - ...tion-nonuniform.spv14.vk.nocompat.asm.rgen | 112 - .../asm/temporary.zero-initialize.asm.frag | 93 - ...array-of-block-output-initializer.asm.tesc | 101 - .../tesc/copy-memory-control-point.asm.tesc | 199 - ...input-array-builtin-array.invalid.asm.tesc | 248 -- .../asm/tesc/tess-level-initializer.asm.tesc | 87 - .../vert/block-struct-initializer.asm.vert | 37 - .../vert/builtin-output-initializer.asm.vert | 44 - .../asm/vert/complex-link-by-name.asm.vert | 119 - ...by-name.force-flattened-io.legacy.asm.vert | 119 - .../vert/constant-composite-extract.asm.vert | 66 - .../asm/vert/empty-struct-composite.asm.vert | 36 - .../asm/vert/semantic-decoration.asm.vert | 68 - .../comp/bitcast-16bit-1.invalid.comp | 23 - .../comp/bitcast-16bit-2.invalid.comp | 26 - .../shaders-no-opt/comp/bitfield.comp | 21 - .../shaders-no-opt/comp/glsl.std450.comp | 129 - .../comp/illegal-struct-name.asm.comp | 62 - .../comp/image-load-formatted.comp | 11 - .../comp/inout-struct.invalid.comp | 55 - .../spirv-cross/shaders-no-opt/comp/loop.comp | 98 - .../shaders-no-opt/comp/return.comp | 33 - ...ballot_nonuniform_invocations.invalid.comp | 9 - .../specialization-constant-evaluation.comp | 123 - ...ct-packing-scalar.nocompat.invalid.vk.comp | 88 - .../comp/subgroups.nocompat.invalid.vk.comp | 132 - .../comp/subgroups_basicvoteballot.vk.comp | 49 - .../frag/16bit-constants.invalid.frag | 14 - .../frag/fp16.invalid.desktop.frag | 151 - .../frag/frag-fully-covered.frag | 11 - ...etch_subpassInput.vk.nocompat.invalid.frag | 10 - .../shaders-no-opt/frag/fs.invalid.frag | 14 - .../shaders-no-opt/frag/image-gather.frag | 14 - ...mensional.desktop.invalid.flatten_dim.frag | 18 - .../nonuniform-constructor.vk.nocompat.frag | 14 - .../pixel-interlock-simple-callstack.frag | 31 - ...layout-ubo-std430.vk.nocompat.invalid.frag | 23 - .../frag/sparse-texture-clamp.desktop.frag | 23 - .../frag/sparse-texture-feedback.desktop.frag | 31 - ...pass-input.framebuffer-fetch.nocompat.frag | 12 - ...ocompat.framebuffer-fetch-noncoherent.frag | 12 - ...put.framebuffer-fetch.nocompat.legacy.frag | 12 - ....legacy.framebuffer-fetch-noncoherent.frag | 12 - .../frag/variables.zero-initialize.frag | 21 - ...gle-case-multiple-exit-cfg.legacy.asm.frag | 57 - .../vert/io-blocks.force-flattened-io.vert | 25 - .../vert/pass-array-by-value.vert | 26 - .../vulkan/frag/shading-rate.vk.nocompat.frag | 9 - .../vulkan/frag/spec-constant.vk.frag | 77 - .../ubo-offset-out-of-order.vk.nocompat.frag | 16 - .../primitive-shading-rate.vk.nocompat.vert | 8 - .../spirv-cross/shaders-other/README.md | 4 - .../aliased-entry-point-names.asm | 60 - .../asm/aliased-entry-point-names.asm.multi | 60 - ...nter-to-array-of-physical-pointer.asm.comp | 51 - .../asm/op-source-glsl-ssbo-1.asm.comp | 53 - .../asm/op-source-glsl-ssbo-2.asm.comp | 65 - .../asm/op-source-hlsl-uav-1.asm.comp | 48 - .../asm/op-source-hlsl-uav-2.asm.comp | 54 - .../asm/op-source-none-ssbo-1.asm.comp | 52 - .../asm/op-source-none-ssbo-2.asm.comp | 64 - .../asm/op-source-none-uav-1.asm.comp | 47 - .../asm/op-source-none-uav-2.asm.comp | 53 - .../comp/array-of-physical-pointer.comp | 15 - .../comp/function-pointer.invalid.asm.comp | 19 - .../comp/physical-pointer.comp | 15 - .../comp/struct-layout.comp | 24 - .../comp/struct-packing.comp | 87 - .../comp/workgroup-size-spec-constant.comp | 13 - .../combined-texture-sampler-shadow.vk.frag | 29 - .../frag/combined-texture-sampler.vk.frag | 47 - .../frag/image-load-store-uint-coord.asm.frag | 103 - .../frag/input-attachment-ms.vk.frag | 10 - .../frag/input-attachment.vk.frag | 11 - .../frag/push-constant.vk.frag | 16 - .../separate-sampler-texture-array.vk.frag | 42 - .../frag/spec-constant.vk.frag | 78 - .../rgen/acceleration_structure.vk.rgen | 9 - .../vert/array-size-reflection.vert | 13 - .../vert/read-from-row-major-array.vert | 20 - .../vert/stride-reflection.vert | 14 - .../vert/texture_buffer.vert | 10 - ...schain-invalid-expression.asm.invalid.frag | 1087 ----- .../frag/array-copy-error.asm.invalid.frag | 878 ---- .../phi-variable-declaration.asm.invalid.frag | 878 ---- ...-accesschain-writethrough.asm.invalid.vert | 259 -- .../asm/frag/depth-compare.asm.frag | 961 ----- .../asm/frag/global-constant-arrays.asm.frag | 3556 ---------------- .../padded-float-array-member-defef.asm.frag | 3694 ----------------- .../asm/frag/sample-mask-not-array.asm.frag | 1230 ------ ...bpass-input.ios.framebuffer-fetch.asm.frag | 589 --- ...ass-input.msl23.framebuffer-fetch.asm.frag | 589 --- .../texture-atomics.asm.argument.msl2.frag | 242 -- .../asm/frag/texture-atomics.asm.frag | 242 -- ...re-atomics.asm.graphics-robust-access.frag | 242 -- .../asm/tesc/hs-incorrect-base-type.asm.tesc | 1158 ------ .../asm/tesc/hs-input-array-access.asm.tesc | 1264 ------ .../asm/tesc/hs-texcoord-array.asm.tesc | 1144 ----- .../tess-factor-must-be-threadgroup.asm.tesc | 352 -- .../asm/tese/ds-double-gl-in-deref.asm.tese | 1046 ----- .../asm/tese/ds-patch-input-fixes.asm.tese | 1175 ------ .../asm/tese/ds-patch-inputs.asm.tese | 547 --- .../asm/tese/ds-texcoord-array.asm.tese | 715 ---- .../asm/vert/array-missing-copies.asm.vert | 1131 ----- .../asm/vert/texture-buffer.asm.vert | 1054 ----- .../spirv-cross/shaders/amd/gcn_shader.comp | 13 - .../shaders/amd/shader_ballot.comp | 33 - .../shaders/amd/shader_group_vote.comp | 18 - .../shaders/amd/shader_trinary_minmax.comp | 11 - .../asm/comp/atomic-decrement.asm.comp | 71 - .../asm/comp/atomic-increment.asm.comp | 71 - .../shaders/asm/comp/bitcast_iadd.asm.comp | 79 - .../shaders/asm/comp/bitcast_icmp.asm.comp | 101 - .../shaders/asm/comp/bitcast_iequal.asm.comp | 90 - .../shaders/asm/comp/bitcast_sar.asm.comp | 77 - .../shaders/asm/comp/bitcast_sdiv.asm.comp | 77 - .../shaders/asm/comp/bitcast_slr.asm.comp | 77 - .../asm/comp/block-name-alias-global.asm.comp | 119 - .../asm/comp/builtin-compute-bitcast.asm.comp | 50 - .../asm/comp/decoration-group.asm.comp | 99 - .../comp/global-parameter-name-alias.asm.comp | 102 - .../asm/comp/hlsl-functionality.asm.comp | 64 - .../shaders/asm/comp/logical.asm.comp | 191 - .../shaders/asm/comp/multiple-entry.asm.comp | 98 - .../shaders/asm/comp/nmin-max-clamp.asm.comp | 203 - .../shaders/asm/comp/op-phi-swap.asm.comp | 63 - .../shaders/asm/comp/quantize.asm.comp | 67 - .../asm/comp/recompile-block-naming.asm.comp | 140 - ...specialization-constant-workgroup.asm.comp | 47 - .../asm/comp/switch-break-ladder.asm.comp | 92 - .../frag/combined-sampler-reuse.vk.asm.frag | 57 - .../frag/complex-name-workarounds.asm.frag | 81 - ...osite-construct-struct-no-swizzle.asm.frag | 51 - .../asm/frag/default-member-names.asm.frag | 57 - .../frag/do-while-statement-fallback.asm.frag | 76 - .../shaders/asm/frag/empty-struct.asm.frag | 55 - .../frag/for-loop-phi-only-continue.asm.frag | 48 - .../shaders/asm/frag/frem.asm.frag | 41 - .../asm/frag/function-overload-alias.asm.frag | 153 - .../hlsl-sample-cmp-level-zero-cube.asm.frag | 60 - .../frag/hlsl-sample-cmp-level-zero.asm.frag | 115 - .../asm/frag/image-extract-reuse.asm.frag | 41 - .../frag/image-fetch-no-sampler.asm.vk.frag | 163 - ...etch-no-sampler.no-samplerless.asm.vk.frag | 163 - ...uery-no-sampler.no-samplerless.vk.asm.frag | 57 - .../frag/image-query-no-sampler.vk.asm.frag | 57 - .../asm/frag/implicit-read-dep-phi.asm.frag | 81 - .../asm/frag/inf-nan-constant-double.asm.frag | 41 - .../asm/frag/inf-nan-constant.asm.frag | 29 - .../shaders/asm/frag/invalidation.asm.frag | 46 - .../asm/frag/line-directive.line.asm.frag | 221 - .../asm/frag/locations-components.asm.frag | 103 - ...op-body-dominator-continue-access.asm.frag | 190 - .../asm/frag/loop-header-to-continue.asm.frag | 132 - .../frag/lut-promotion-initializer.asm.frag | 195 - .../asm/frag/multi-for-loop-init.asm.frag | 111 - .../asm/frag/op-constant-null.asm.frag | 85 - .../frag/op-phi-swap-continue-block.asm.frag | 69 - .../asm/frag/pack-and-unpack-uint2.asm.frag | 55 - .../shaders/asm/frag/pass-by-value.asm.frag | 51 - .../asm/frag/phi-loop-variable.asm.frag | 71 - .../asm/frag/sample-and-compare.asm.frag | 61 - ...pler-buffer-array-without-sampler.asm.frag | 86 - .../sampler-buffer-without-sampler.asm.frag | 62 - .../frag/single-function-private-lut.asm.frag | 86 - .../shaders/asm/frag/srem.asm.frag | 43 - .../storage-class-output-initializer.asm.frag | 41 - .../struct-composite-extract-swizzle.asm.frag | 55 - .../frag/switch-label-shared-block.asm.frag | 45 - .../asm/frag/temporary-name-alias.asm.frag | 47 - .../asm/frag/temporary-phi-hoisting.asm.frag | 76 - .../asm/frag/texel-fetch-no-lod.asm.frag | 46 - .../frag/texture-sampling-fp16.asm.vk.frag | 47 - .../asm/frag/undef-variable-store.asm.frag | 85 - .../asm/frag/unknown-depth-state.asm.vk.frag | 71 - .../shaders/asm/frag/unreachable.asm.frag | 61 - .../asm/frag/vector-shuffle-oom.asm.frag | 886 ---- .../asm/geom/block-name-namespace.asm.geom | 103 - .../inout-split-access-chain-handle.asm.geom | 90 - .../geom/split-access-chain-input.asm.geom | 52 - .../asm/geom/unroll-glposition-load.asm.geom | 102 - .../asm/tese/unroll-input-array-load.asm.tese | 131 - .../shaders/asm/vert/empty-io.asm.vert | 70 - ...act-transposed-matrix-from-struct.asm.vert | 141 - .../asm/vert/global-builtin.sso.asm.vert | 68 - .../shaders/asm/vert/invariant-block.asm.vert | 44 - .../asm/vert/invariant-block.sso.asm.vert | 44 - .../shaders/asm/vert/invariant.asm.vert | 34 - .../shaders/asm/vert/invariant.sso.asm.vert | 34 - .../spec-constant-op-composite.asm.vk.vert | 98 - .../vert/uint-vertex-id-instance-id.asm.vert | 65 - .../spirv-cross/shaders/comp/atomic.comp | 56 - .../shaders/comp/bake_gradient.comp | 55 - .../spirv-cross/shaders/comp/barriers.comp | 79 - .../spirv-cross/shaders/comp/basic.comp | 28 - .../spirv-cross/shaders/comp/casts.comp | 18 - .../shaders/comp/cfg-preserve-parameter.comp | 54 - third_party/spirv-cross/shaders/comp/cfg.comp | 91 - .../shaders/comp/coherent-block.comp | 12 - .../shaders/comp/coherent-image.comp | 14 - .../comp/composite-array-initialization.comp | 29 - .../shaders/comp/composite-construct.comp | 40 - .../spirv-cross/shaders/comp/culling.comp | 26 - .../shaders/comp/defer-parens.comp | 30 - .../spirv-cross/shaders/comp/dowhile.comp | 31 - .../shaders/comp/generate_height.comp | 97 - .../spirv-cross/shaders/comp/image.comp | 12 - .../spirv-cross/shaders/comp/insert.comp | 18 - .../spirv-cross/shaders/comp/mat3.comp | 14 - third_party/spirv-cross/shaders/comp/mod.comp | 26 - .../spirv-cross/shaders/comp/modf.comp | 23 - .../shaders/comp/outer-product.comp | 37 - .../shaders/comp/read-write-only.comp | 26 - .../spirv-cross/shaders/comp/rmw-matrix.comp | 20 - .../spirv-cross/shaders/comp/rmw-opt.comp | 27 - ...alar-std450-distance-length-normalize.comp | 18 - .../spirv-cross/shaders/comp/shared.comp | 27 - .../shaders/comp/ssbo-array-length.comp | 12 - .../spirv-cross/shaders/comp/ssbo-array.comp | 14 - .../shaders/comp/struct-layout.comp | 24 - .../shaders/comp/struct-packing.comp | 86 - .../shaders/comp/torture-loop.comp | 40 - .../spirv-cross/shaders/comp/type-alias.comp | 45 - .../spirv-cross/shaders/comp/udiv.comp | 17 - .../desktop-only/comp/enhanced-layouts.comp | 39 - .../comp/extended-arithmetic.desktop.comp | 41 - .../desktop-only/comp/fp64.desktop.comp | 91 - .../image-formats.desktop.noeliminate.comp | 48 - .../desktop-only/comp/int64.desktop.comp | 55 - .../frag/clip-cull-distance.desktop.frag | 12 - .../control-dependent-in-branch.desktop.frag | 36 - .../frag/depth-greater-than.desktop.frag | 8 - .../frag/depth-less-than.desktop.frag | 8 - .../frag/dual-source-blending.desktop.frag | 10 - .../frag/hlsl-uav-block-alias.asm.frag | 56 - .../desktop-only/frag/image-ms.desktop.frag | 12 - .../frag/image-query.desktop.frag | 56 - .../shaders/desktop-only/frag/image-size.frag | 10 - .../image-size.no-qualifier-deduction.frag | 10 - .../frag/in-block-qualifiers.frag | 20 - .../frag/layout-component.desktop.frag | 14 - .../frag/query-levels.desktop.frag | 9 - .../desktop-only/frag/query-lod.desktop.frag | 10 - .../frag/sampler-ms-query.desktop.frag | 17 - .../frag/stencil-export.desktop.frag | 11 - .../frag/texture-proj-shadow.desktop.frag | 21 - .../desktop-only/geom/basic.desktop.sso.geom | 37 - .../geom/viewport-index.desktop.geom | 11 - .../desktop-only/tesc/basic.desktop.sso.tesc | 28 - .../tese/triangle.desktop.sso.tese | 22 - .../desktop-only/vert/basic.desktop.sso.vert | 20 - .../vert/clip-cull-distance.desktop.sso.vert | 13 - .../vert/clip-cull-distance.desktop.vert | 13 - .../vert/out-block-qualifiers.vert | 26 - ...shader-draw-parameters-450.desktop.vk.vert | 12 - .../shader-draw-parameters.desktop.vk.vert | 11 - .../shaders/flatten/array.flatten.vert | 19 - .../shaders/flatten/basic.flatten.vert | 16 - .../shaders/flatten/copy.flatten.vert | 34 - .../shaders/flatten/dynamic.flatten.vert | 33 - .../flatten/matrix-conversion.flatten.frag | 14 - .../shaders/flatten/matrixindex.flatten.vert | 25 - .../shaders/flatten/multiindex.flatten.vert | 13 - .../flatten/push-constant.flatten.vert | 17 - .../shaders/flatten/rowmajor.flatten.vert | 16 - .../shaders/flatten/struct.flatten.vert | 30 - .../flatten/struct.rowmajor.flatten.vert | 26 - .../shaders/flatten/swizzle.flatten.vert | 47 - .../shaders/flatten/types.flatten.frag | 27 - .../frag/array-lut-no-loop-variable.frag | 13 - .../avoid-expression-lowering-to-loop.frag | 23 - .../shaders/frag/barycentric-nv.frag | 18 - .../spirv-cross/shaders/frag/basic.frag | 13 - .../complex-expression-in-access-chain.frag | 29 - .../composite-extract-forced-temporary.frag | 11 - .../shaders/frag/constant-array.frag | 21 - .../shaders/frag/constant-composites.frag | 20 - .../shaders/frag/false-loop-init.frag | 19 - .../shaders/frag/flush_params.frag | 27 - .../frag/for-loop-continue-control-flow.frag | 11 - .../shaders/frag/for-loop-init.frag | 52 - .../spirv-cross/shaders/frag/frexp-modf.frag | 24 - .../shaders/frag/front-facing.frag | 14 - .../spirv-cross/shaders/frag/gather-dref.frag | 11 - .../spirv-cross/shaders/frag/ground.frag | 162 - .../shaders/frag/helper-invocation.frag | 21 - ...temporary-use-continue-block-as-value.frag | 24 - .../frag/image-load-store-uint-coord.asm.frag | 103 - ...-loop-dominated-variable-preservation.frag | 24 - .../loop-dominator-and-switch-default.frag | 34 - .../shaders/frag/lut-promotion.frag | 44 - third_party/spirv-cross/shaders/frag/mix.frag | 20 - .../shaders/frag/partial-write-preserve.frag | 95 - .../shaders/frag/pixel-interlock-ordered.frag | 22 - .../frag/pixel-interlock-unordered.frag | 22 - third_party/spirv-cross/shaders/frag/pls.frag | 20 - .../shaders/frag/post-depth-coverage-es.frag | 13 - .../shaders/frag/post-depth-coverage.frag | 11 - .../spirv-cross/shaders/frag/round-even.frag | 11 - .../spirv-cross/shaders/frag/round.frag | 11 - .../frag/sample-interlock-ordered.frag | 22 - .../frag/sample-interlock-unordered.frag | 22 - .../shaders/frag/sample-parameter.frag | 11 - .../spirv-cross/shaders/frag/sampler-ms.frag | 16 - .../shaders/frag/sampler-proj.frag | 12 - .../spirv-cross/shaders/frag/sampler.frag | 18 - .../shaders/frag/scalar-refract-reflect.frag | 11 - .../frag/selection-block-dominator.frag | 18 - .../frag/struct-type-unrelated-alias.frag | 19 - .../shaders/frag/switch-unsigned-case.frag | 26 - .../spirv-cross/shaders/frag/swizzle.frag | 17 - .../shaders/frag/texel-fetch-offset.frag | 10 - .../frag/ubo-load-row-major-workaround.frag | 44 - .../spirv-cross/shaders/frag/ubo_layout.frag | 24 - .../shaders/frag/unary-enclose.frag | 15 - .../spirv-cross/shaders/geom/basic.geom | 28 - .../shaders/geom/geometry-passthrough.geom | 28 - .../shaders/geom/lines-adjacency.geom | 28 - .../spirv-cross/shaders/geom/lines.geom | 24 - .../shaders/geom/multi-stream.geom | 15 - .../spirv-cross/shaders/geom/points.geom | 28 - .../shaders/geom/single-invocation.geom | 28 - .../geom/transform-feedback-streams.geom | 24 - .../shaders/geom/triangles-adjacency.geom | 28 - .../spirv-cross/shaders/geom/triangles.geom | 28 - .../legacy/fragment/explicit-lod.legacy.frag | 12 - .../legacy/fragment/explicit-lod.legacy.vert | 12 - .../shaders/legacy/fragment/fma.legacy.frag | 11 - .../legacy/fragment/io-blocks.legacy.frag | 16 - .../multiple-struct-flattening.legacy.frag | 37 - .../shaders/legacy/fragment/round.legacy.frag | 11 - .../fragment/struct-varying.legacy.frag | 25 - .../legacy/fragment/switch.legacy.frag | 43 - .../legacy/vert/implicit-lod.legacy.vert | 8 - .../shaders/legacy/vert/io-block.legacy.vert | 17 - .../struct-flatten-inner-array.legacy.vert | 15 - ...flatten-stores-multi-dimension.legacy.vert | 40 - .../legacy/vert/struct-varying.legacy.vert | 33 - .../legacy/vert/switch-nested.legacy.vert | 28 - .../shaders/legacy/vert/transpose.legacy.vert | 32 - .../spirv-cross/shaders/tesc/basic.tesc | 17 - .../spirv-cross/shaders/tesc/water_tess.tesc | 115 - third_party/spirv-cross/shaders/tese/ccw.tese | 10 - third_party/spirv-cross/shaders/tese/cw.tese | 10 - .../spirv-cross/shaders/tese/equal.tese | 10 - .../shaders/tese/fractional_even.tese | 10 - .../shaders/tese/fractional_odd.tese | 10 - .../spirv-cross/shaders/tese/input-array.tese | 10 - .../spirv-cross/shaders/tese/line.tese | 10 - .../shaders/tese/load-array-of-array.tese | 10 - .../shaders/tese/patch-input-array.tese | 9 - .../spirv-cross/shaders/tese/triangle.tese | 10 - .../spirv-cross/shaders/tese/water_tess.tese | 65 - .../spirv-cross/shaders/vert/basic.vert | 16 - .../spirv-cross/shaders/vert/ground.vert | 202 - .../spirv-cross/shaders/vert/invariant.vert | 13 - .../shaders/vert/no-contraction.vert | 15 - .../spirv-cross/shaders/vert/ocean.vert | 200 - .../vert/read-from-row-major-array.vert | 20 - .../shaders/vert/return-array.vert | 22 - .../shaders/vert/texture_buffer.vert | 10 - .../vert/transform-feedback-decorations.vert | 20 - third_party/spirv-cross/shaders/vert/ubo.vert | 16 - ...array-of-buffer-reference.nocompat.vk.comp | 23 - .../buffer-reference-bitcast.nocompat.vk.comp | 22 - ...fer-reference-decorations.nocompat.vk.comp | 31 - .../comp/buffer-reference.nocompat.vk.comp | 40 - .../spec-constant-op-member-array.vk.comp | 33 - .../spec-constant-work-group-size.vk.comp | 17 - .../combined-texture-sampler-shadow.vk.frag | 29 - .../frag/combined-texture-sampler.vk.frag | 47 - ...-to-helper-forwarding.asm.vk.nocompat.frag | 41 - .../frag/demote-to-helper.vk.nocompat.frag | 8 - .../vulkan/frag/desktop-mediump.vk.frag | 11 - .../vulkan/frag/input-attachment-ms.vk.frag | 10 - .../vulkan/frag/input-attachment.vk.frag | 11 - .../nonuniform-qualifier.vk.nocompat.frag | 52 - .../push-constant-as-ubo.push-ubo.vk.frag | 13 - .../shaders/vulkan/frag/push-constant.vk.frag | 16 - .../separate-combined-fake-overload.vk.frag | 21 - .../separate-sampler-texture-array.vk.frag | 42 - .../frag/separate-sampler-texture.vk.frag | 36 - .../shader-arithmetic-8bit.nocompat.vk.frag | 88 - .../frag/spec-constant-block-size.vk.frag | 17 - .../vulkan/frag/spec-constant-ternary.vk.frag | 9 - .../terminators.khr.spv14.nocompat.vk.rahit | 17 - .../rahit/terminators.nocompat.vk.rahit | 17 - ...oming-callable.khr.spv14.nocompat.vk.rcall | 9 - ...ttribute_block.khr.spv14.nocompat.vk.rchit | 11 - .../hit_attribute_block.nocompat.vk.rchit | 11 - ...ck_in_function.khr.spv14.nocompat.vk.rchit | 16 - ...ribute_block_in_function.nocompat.vk.rchit | 16 - ...ttribute_plain.khr.spv14.nocompat.vk.rchit | 10 - .../hit_attribute_plain.nocompat.vk.rchit | 10 - ...tribute_struct.khr.spv14.nocompat.vk.rchit | 12 - .../hit_attribute_struct.nocompat.vk.rchit | 12 - .../hit_kind.khr.spv14.nocompat.vk.rchit | 9 - .../vulkan/rchit/hit_kind.nocompat.vk.rchit | 9 - .../rchit/hit_t.khr.spv14.nocompat.vk.rchit | 9 - .../vulkan/rchit/hit_t.nocompat.vk.rchit | 9 - ...ming_ray_flags.khr.spv14.nocompat.vk.rchit | 9 - .../incoming_ray_flags.nocompat.vk.rchit | 9 - ...ance_custom_id.khr.spv14.nocompat.vk.rchit | 9 - .../instance_custom_id.nocompat.vk.rchit | 9 - .../instance_id.khr.spv14.nocompat.vk.rchit | 9 - .../rchit/instance_id.nocompat.vk.rchit | 9 - ..._ray_direction.khr.spv14.nocompat.vk.rchit | 9 - .../object_ray_direction.nocompat.vk.rchit | 9 - ...ect_ray_origin.khr.spv14.nocompat.vk.rchit | 9 - .../rchit/object_ray_origin.nocompat.vk.rchit | 9 - ...bject_to_world.khr.spv14.nocompat.vk.rchit | 9 - .../rchit/object_to_world.nocompat.vk.rchit | 9 - .../payloads.khr.spv14.nocompat.vk.rchit | 19 - .../vulkan/rchit/payloads.nocompat.vk.rchit | 19 - .../primitive_id.khr.spv14.nocompat.vk.rchit | 9 - .../rchit/primitive_id.nocompat.vk.rchit | 9 - .../ray_tmax.khr.spv14.nocompat.vk.rchit | 9 - .../vulkan/rchit/ray_tmax.nocompat.vk.rchit | 9 - .../ray_tmin.khr.spv14.nocompat.vk.rchit | 9 - .../vulkan/rchit/ray_tmin.nocompat.vk.rchit | 9 - .../ray_tracing.khr.spv14.nocompat.vk.rchit | 9 - .../rchit/ray_tracing.nocompat.vk.rchit | 9 - ..._ray_direction.khr.spv14.nocompat.vk.rchit | 9 - .../world_ray_direction.nocompat.vk.rchit | 9 - ...rld_ray_origin.khr.spv14.nocompat.vk.rchit | 9 - .../rchit/world_ray_origin.nocompat.vk.rchit | 9 - ...orld_to_object.khr.spv14.nocompat.vk.rchit | 9 - .../rchit/world_to_object.nocompat.vk.rchit | 9 - .../convert-u-to-as.spv14.vk.nocompat.rgen | 16 - ...xecute_callable.nocompat.khr.spv14.vk.rgen | 16 - .../rgen/execute_callable.nocompat.vk.rgen | 16 - .../rgen/launch_id.khr.spv14.nocompat.vk.rgen | 9 - .../vulkan/rgen/launch_id.nocompat.vk.rgen | 9 - .../launch_size.khr.spv14.nocompat.vk.rgen | 9 - .../vulkan/rgen/launch_size.nocompat.vk.rgen | 9 - .../rgen/payloads.khr.spv14.nocompat.vk.rgen | 49 - .../vulkan/rgen/payloads.nocompat.vk.rgen | 49 - .../rgen/pure_call.khr.spv14.nocompat.vk.rgen | 18 - .../vulkan/rgen/pure_call.nocompat.vk.rgen | 18 - .../ray_tracing.khr.spv14.nocompat.vk.rgen | 16 - .../vulkan/rgen/ray_tracing.nocompat.vk.rgen | 16 - ...r_record_buffer.khr.spv14.nocompat.vk.rgen | 16 - .../shader_record_buffer.nocompat.vk.rgen | 16 - ...rt-intersection.khr.spv14.nocompat.vk.rint | 12 - .../rint/report-intersection.nocompat.vk.rint | 12 - .../ray_tracing.khr.spv14.nocompat.vk.rmiss | 9 - .../rmiss/ray_tracing.nocompat.vk.rmiss | 9 - ...trace_incoming.khr.spv14.nocompat.vk.rmiss | 12 - .../vulkan/vert/device-group.nocompat.vk.vert | 7 - .../vulkan/vert/multiview.nocompat.vk.vert | 14 - .../shaders/vulkan/vert/small-storage.vk.vert | 46 - .../shaders/vulkan/vert/vulkan-vertex.vk.vert | 6 - third_party/spirv-cross/spirv.h | 392 +- third_party/spirv-cross/spirv.hpp | 392 +- third_party/spirv-cross/spirv_cfg.cpp | 46 +- third_party/spirv-cross/spirv_cfg.hpp | 7 +- third_party/spirv-cross/spirv_common.hpp | 104 +- third_party/spirv-cross/spirv_common.hpp.orig | 1921 +++++++++ third_party/spirv-cross/spirv_cpp.cpp | 9 +- third_party/spirv-cross/spirv_cpp.hpp | 2 +- third_party/spirv-cross/spirv_cross.cpp | 666 ++- third_party/spirv-cross/spirv_cross.hpp | 60 +- third_party/spirv-cross/spirv_cross_c.cpp | 238 +- third_party/spirv-cross/spirv_cross_c.h | 107 +- .../spirv-cross/spirv_cross_containers.hpp | 26 +- .../spirv_cross_error_handling.hpp | 2 +- .../spirv-cross/spirv_cross_parsed_ir.cpp | 54 +- .../spirv-cross/spirv_cross_parsed_ir.hpp | 13 +- third_party/spirv-cross/spirv_cross_util.cpp | 2 +- third_party/spirv-cross/spirv_cross_util.hpp | 2 +- third_party/spirv-cross/spirv_glsl.cpp | 3182 +++++++++++--- third_party/spirv-cross/spirv_glsl.hpp | 120 +- third_party/spirv-cross/spirv_hlsl.cpp | 1390 +++++-- third_party/spirv-cross/spirv_hlsl.hpp | 42 +- third_party/spirv-cross/spirv_msl.cpp | 3264 +++++++++++---- third_party/spirv-cross/spirv_msl.hpp | 226 +- third_party/spirv-cross/spirv_parser.cpp | 157 +- third_party/spirv-cross/spirv_parser.hpp | 4 +- third_party/spirv-cross/spirv_reflect.cpp | 26 +- third_party/spirv-cross/spirv_reflect.hpp | 2 +- third_party/spirv-cross/test_shaders.py | 182 +- third_party/spirv-cross/test_shaders.sh | 4 +- .../spirv-cross/tests-other/c_api_test.c | 189 - .../spirv-cross/tests-other/c_api_test.spv | Bin 1268 -> 0 bytes .../tests-other/hlsl_resource_binding.spv | Bin 796 -> 0 bytes .../tests-other/hlsl_resource_bindings.cpp | 89 - .../tests-other/hlsl_wave_mask.cpp | 73 - .../tests-other/msl_constexpr_test.cpp | 133 - .../tests-other/msl_constexpr_test.spv | Bin 1656 -> 0 bytes .../tests-other/msl_resource_binding.spv | Bin 1424 -> 0 bytes .../tests-other/msl_resource_bindings.cpp | 86 - .../tests-other/msl_ycbcr_conversion_test.cpp | 103 - .../tests-other/msl_ycbcr_conversion_test.spv | Bin 728 -> 0 bytes .../msl_ycbcr_conversion_test_2.spv | Bin 840 -> 0 bytes .../spirv-cross/tests-other/small_vector.cpp | 226 - .../spirv-cross/tests-other/typed_id_test.cpp | 49 - .../tnt/0002-localeconv-api-level-check.patch | 33 + third_party/spirv-cross/tnt/README.md | 11 +- .../spirv-cross/update_test_shaders.sh | 2 + 3614 files changed, 11736 insertions(+), 190192 deletions(-) create mode 100644 third_party/spirv-cross/.reuse/dep5 delete mode 100644 third_party/spirv-cross/.travis.yml create mode 100644 third_party/spirv-cross/CODE_OF_CONDUCT.adoc delete mode 100644 third_party/spirv-cross/CODE_OF_CONDUCT.md create mode 100644 third_party/spirv-cross/LICENSES/Apache-2.0.txt create mode 100644 third_party/spirv-cross/LICENSES/CC-BY-4.0.txt create mode 100644 third_party/spirv-cross/LICENSES/LicenseRef-KhronosFreeUse.txt create mode 100644 third_party/spirv-cross/LICENSES/MIT.txt create mode 100644 third_party/spirv-cross/Package.swift delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/asm/comp/access-chain-invalidate.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/asm/comp/atomic-decrement.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/asm/comp/atomic-increment.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/asm/comp/bitcast_icmp.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/asm/comp/block-name-alias-global.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/asm/comp/control-flow-hints.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/asm/comp/global-parameter-name-alias.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/asm/comp/nmin-max-clamp.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/cbuffer-stripped.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/combined-sampler-reuse.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/empty-struct.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/frem.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/function-overload-alias.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/image-extract-reuse.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/implicit-read-dep-phi.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/inf-nan-constant.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/line-directive.line.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/lut-promotion-initializer.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/pack-and-unpack-uint2.fxconly.nofxc.sm60.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/pass-by-value.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/sample-and-compare.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/single-function-private-lut.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/srem.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/storage-class-output-initializer.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/texel-fetch-no-lod.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/texture-sampling-fp16.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/unknown-depth-state.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/unreachable.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/asm/vert/extract-transposed-matrix-from-struct.asm.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/asm/vert/spec-constant-op-composite.asm.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/asm/vert/uint-vertex-id-instance-id.asm.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/asm/vert/vertex-id-instance-id.asm.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/comp/access-chain-load-composite.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/comp/access-chains.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/comp/access-chains.force-uav.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/comp/address-buffers.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/comp/atomic.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/comp/barriers.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/comp/builtins.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/comp/composite-array-initialization.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/comp/globallycoherent.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/comp/image.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/comp/image.nonwritable-uav-texture.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/comp/inverse.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/comp/num-workgroups-alone.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/comp/num-workgroups-with-builtins.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/comp/outer-product.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/comp/rmw-matrix.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/comp/rwbuffer-matrix.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/comp/scalar-std450-distance-length-normalize.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/comp/shared.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/comp/spec-constant-op-member-array.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/comp/spec-constant-work-group-size.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/comp/ssbo-array-length.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/comp/ssbo-array.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/array-lut-no-loop-variable.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/basic-color-3comp.sm30.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/basic-color-3comp.sm50.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/basic.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/bit-conversions.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/boolean-mix.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/builtins.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/bvec-operations.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/clip-cull-distance.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/combined-texture-sampler-parameter.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/combined-texture-sampler-shadow.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/complex-expression-in-access-chain.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/constant-composites.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/control-dependent-in-branch.desktop.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/demote-to-helper.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/depth-greater-than.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/depth-less-than.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/dual-source-blending.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/early-fragment-test.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/for-loop-continue-control-flow.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/fp16-packing.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/front-facing.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/image-query-selective.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/image-query-uav.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/image-query-uav.nonwritable-uav-texture.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/image-query.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/input-attachment-ms.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/input-attachment.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/io-block.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/legacy-tex-modifiers.sm30.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/lut-promotion.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/matrix-input.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/mod.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/mrt.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/no-return.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/no-return2.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/nonuniform-qualifier.nonuniformresource.sm51.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/partial-write-preserve.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/pixel-interlock-ordered.sm51.fxconly.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/point-coord-compat.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/query-lod.desktop.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/readonly-coherent-ssbo.force-uav.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/readonly-coherent-ssbo.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/resources.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/row-major-layout-in-struct.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/sample-cmp-level-zero.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/sample-mask-in-and-out.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/sample-mask-in.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/sample-mask-out.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/sampler-array.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/sampler-image-arrays.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/scalar-refract-reflect.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/separate-combined-fake-overload.sm30.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/spec-constant-block-size.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/spec-constant-ternary.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/switch-unsigned-case.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/swizzle-scalar.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/tex-sampling-ms.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/tex-sampling.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/tex-sampling.sm30.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/texel-fetch-offset.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/texture-proj-shadow.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/texture-size-combined-image-sampler.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/unary-enclose.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/unorm-snorm-packing.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/frag/various-glsl-ops.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/vert/basic.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/vert/clip-cull-distance.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/vert/instancing.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/vert/invariant.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/vert/locations.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/vert/matrix-attribute.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/vert/matrix-output.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/vert/no-contraction.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/vert/no-input.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/vert/point-size-compat.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/vert/qualifiers.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/vert/read-from-row-major-array.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/vert/return-array.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/vert/sampler-buffers.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/vert/struct-composite-decl.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-hlsl/vert/texture_buffer.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/amd/shader_trinary_minmax.msl21.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/atomic-decrement.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/atomic-increment.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/bitcast_iadd.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/bitcast_icmp.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/bitcast_sar.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/bitcast_sdiv.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/bitcast_slr.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/block-name-alias-global.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/buffer-write-relative-addr.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/buffer-write.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/global-parameter-name-alias.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/image-load-store-short-vector.invalid.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/multiple-entry.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/quantize.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/relaxed-block-layout.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/specialization-constant-workgroup.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/struct-resource-name-aliasing.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/variable-pointers-2.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/variable-pointers-store-forwarding.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/vector-builtin-type-cast-func.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/vector-builtin-type-cast.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/combined-sampler-reuse.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/default-member-names.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/descriptor-array-unnamed.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/disable-renamed-output.frag-output.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/empty-struct.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/extract-packed-from-composite.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/frem.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/function-overload-alias.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/image-extract-reuse.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/implicit-read-dep-phi.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/inf-nan-constant.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/interpolation-qualifiers-struct.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/line-directive.line.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/locations-components.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/lut-promotion-initializer.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/min-lod.msl22.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/op-constant-null.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/op-image-sampled-image.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/pass-by-value.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/phi-loop-variable.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/pull-model-interpolation.asm.msl23.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/sample-and-compare.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/single-function-private-lut.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/srem.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/storage-class-output-initializer.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/texel-fetch-no-lod.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/texture-atomics.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/texture-atomics.asm.graphics-robust-access.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/texture-sampling-fp16.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/undef-variable-store.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/unknown-depth-state.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/unord-relational-op.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/unreachable.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/vector-shuffle-oom.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/tesc/tess-level-overrun.asm.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/tesc/tess-level-overrun.multi-patch.asm.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/tese/unnamed-builtin-array.asm.tese delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/clip-distance-plain-variable.asm.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/clip-distance-plain-variable.no-user-varying.asm.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/copy-memory-interface.asm.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/extract-transposed-matrix-from-struct.asm.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/fake-builtin-input.asm.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/invariant.msl21.asm.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/packed-bool-to-uint.asm.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/packed-bool2-to-packed_uint2.asm.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/packing-test.asm.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/spec-constant-op-composite.asm.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/uint-vertex-id-instance-id.asm.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/access-private-workgroup-in-function.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/argument-buffers-discrete.msl2.argument.discrete.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/argument-buffers-image-load-store.ios.msl2.argument.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/argument-buffers-image-load-store.msl2.argument.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/array-length.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/array-length.msl2.argument.discrete.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/atomic.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/barriers.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/basic.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/basic.dispatchbase.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/basic.dispatchbase.msl11.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/basic.inline-block.msl2.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/builtins.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/cfg-preserve-parameter.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/coherent-block.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/coherent-image.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/complex-composite-constant-array.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/complex-type-alias.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/composite-array-initialization.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/composite-array-initialization.force-native-array.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/composite-construct.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/copy-array-of-arrays.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/copy-array-of-arrays.force-native-array.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/culling.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/defer-parens.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/dowhile.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/force-recompile-hooks.swizzle.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/functions.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/global-invocation-id-writable-ssbo-in-function.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/global-invocation-id.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/image-atomic-automatic-bindings.argument.msl2.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/image-atomic-automatic-bindings.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/image-cube-array-load-store.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/image.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/insert.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/inverse.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/local-invocation-id.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/local-invocation-index.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/mat3.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/mod.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/modf.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/outer-product.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/packing-test-1.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/packing-test-2.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/read-write-only.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/rmw-matrix.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/rmw-opt.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/scalar-std450-distance-length-normalize.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/shared-array-of-arrays.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/shared.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/spec-constant-op-member-array.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/spec-constant-work-group-size.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/storage-buffer-std140-vector-array.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/struct-layout.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/struct-nested.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/struct-packing.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/torture-loop.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/type-alias.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/udiv.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/comp/writable-ssbo.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/comp/extended-arithmetic.desktop.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/frag/image-ms.desktop.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/frag/query-levels.desktop.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/frag/sampler-ms-query.desktop.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/tesc/arrayed-output.desktop.sso.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/tesc/basic.desktop.sso.multi-patch.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/tesc/basic.desktop.sso.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/tesc/struct-copy.desktop.sso.multi-patch.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/tesc/struct-copy.desktop.sso.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/tese/triangle.desktop.sso.tese delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/vert/basic.desktop.sso.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/vert/clip-cull-distance..no-user-varying.desktop.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/vert/clip-cull-distance.desktop.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/vert/shader-draw-parameters.desktop.for-tess.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/vert/shader-draw-parameters.desktop.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/flatten/basic.flatten.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/flatten/multiindex.flatten.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/flatten/push-constant.flatten.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/flatten/rowmajor.flatten.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/flatten/struct.flatten.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/flatten/swizzle.flatten.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/flatten/types.flatten.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/argument-buffers.msl2.argument.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/array-component-io.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/array-lut-no-loop-variable.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/array-of-array-lut.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/array-of-texture-swizzle-nonconstant-uniform.msl2.argument.discrete.swizzle.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/array-of-texture-swizzle-nonconstant-uniform.msl2.swizzle.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/array-of-texture-swizzle.msl2.argument.discrete.swizzle.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/array-of-texture-swizzle.msl2.swizzle.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/barycentric-nv-nopersp.msl22.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/barycentric-nv.msl22.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/basic.force-sample.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/basic.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/binary-func-unpack-pack-arguments.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/binary-unpack-pack-arguments.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/bitcasting.1d-as-2d.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/bitcasting.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/buffer-read-write.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/buffer-read-write.texture-buffer-native.msl21.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/builtins.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/clip-distance-varying.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/complex-expression-in-access-chain.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/composite-extract-forced-temporary.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/constant-array.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/constant-composites.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/control-dependent-in-branch.desktop.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/cull-distance-varying.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/depth-greater-than.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/depth-less-than.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/disable-frag-output.frag-output.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/dual-source-blending.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/early-fragment-tests.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/false-loop-init.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/flush_params.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/for-loop-continue-control-flow.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/for-loop-init.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/fp16-packing.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/fragment-component-padding.pad-fragment.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/front-facing.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/gather-dref.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/gather-offset.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/helper-invocation.msl21.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/huge-argument-buffer.device-argument-buffer.argument.msl2.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/illegal-name-test-0.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/image-query-lod.msl22.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/in_block.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/in_mat.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/input-attachment-ms.arrayed-subpass.msl21.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/input-attachment-ms.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/input-attachment-ms.multiview.msl21.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/input-attachment.arrayed-subpass.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/input-attachment.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/input-attachment.multiview.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/interpolation-qualifiers-block.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/interpolation-qualifiers.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/lut-promotion.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/mix.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/mrt-array.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/nonuniform-qualifier.msl2.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/packed-expression-vector-shuffle.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/packing-test-3.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/pixel-interlock-ordered.msl2.argument.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/pixel-interlock-ordered.msl2.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/pls.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/post-depth-coverage.ios.msl2.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/post-depth-coverage.msl23.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/private-variable-prototype-declaration.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/read-cull-clip-distance-in-function.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/readonly-ssbo.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-depth-propagate-state-from-resource.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-depth-separate-image-sampler.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-mask-in-and-out.fixed-sample-mask.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-mask-not-used.fixed-sample-mask.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-mask.fixed-sample-mask.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-mask.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-position-func.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-position.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-rate-frag-coord-sample-id.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-rate-frag-coord-sample-input.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-rate-frag-coord-sample-pos.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-rate-frag-coord.force-sample.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/sampler-1d-lod.1d-as-2d.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/sampler-1d-lod.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/sampler-compare-bias.msl23.1d-as-2d.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/sampler-compare-cascade-gradient.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/sampler-compare-cascade-gradient.ios.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/sampler-compare-cascade-gradient.msl23.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/sampler-image-arrays.msl2.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/sampler-ms.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/sampler.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/scalar-refract-reflect.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/separate-image-sampler-argument.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/shader-arithmetic-8bit.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/spec-constant-block-size.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/spec-constant-ternary.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/stencil-export.msl21.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/subgroup-builtins.msl22.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/subgroup-globals-extract.msl22.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/switch-unsigned-case.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/swizzle.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/texel-fetch-offset.1d-as-2d.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/texel-fetch-offset.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/texture-cube-array.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/texture-cube-array.ios.emulate-cube-array.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/texture-multisample-array.msl21.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/texture-proj-shadow.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/ubo_layout.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/unary-enclose.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/vecsize-mismatch.shader-inputs.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/frag/write-depth-in-function.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/intel/shader-integer-functions2.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/legacy/vert/transpose.legacy.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/masking/copy-arrays.mask-location-0.msl2.multi-patch.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/masking/copy-arrays.mask-location-0.msl2.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/masking/copy-arrays.mask-location-1.msl2.multi-patch.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/masking/copy-arrays.mask-location-1.msl2.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-0.for-tess.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-0.msl2.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-0.multi-patch.msl2.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-0.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-1.for-tess.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-1.msl2.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-1.multi-patch.msl2.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-1.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-clip-distance.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-0.for-tess.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-0.msl2.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-0.multi-patch.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-0.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-0.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-1.for-tess.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-1.msl2.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-1.multi-patch.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-1.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-1.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-point-size.for-tess.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-point-size.multi-patch.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-point-size.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-point-size.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-position.multi-patch.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-position.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/tesc/basic.multi-patch.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/tesc/basic.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/tesc/complex-control-point-inout-types.multi-patch.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/tesc/complex-control-point-inout-types.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/tesc/complex-patch-out-types.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/tesc/load-control-point-array-of-matrix.multi-patch.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/tesc/load-control-point-array-of-matrix.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/tesc/load-control-point-array-of-struct.multi-patch.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/tesc/load-control-point-array-of-struct.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/tesc/load-control-point-array.multi-patch.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/tesc/load-control-point-array.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/tesc/matrix-output.multi-patch.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/tesc/reload-tess-level.multi-patch.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/tesc/reload-tess-level.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/tesc/struct-output.multi-patch.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/tesc/water_tess.multi-patch.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/tesc/water_tess.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/tese/input-array.tese delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/tese/input-types.tese delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/tese/load-control-point-array-of-matrix.tese delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/tese/load-control-point-array.tese delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/tese/quad.domain.tese delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/tese/quad.tese delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/tese/read-tess-level-in-func-quad.msl2.tese delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/tese/read-tess-level-in-func.msl2.tese delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/tese/set-from-function.tese delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/tese/triangle-tess-level.tese delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/tese/triangle.tese delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/tese/water_tess.tese delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/array-component-io.for-tess.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/array-component-io.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/basic.capture.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/basic.for-tess.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/basic.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/clip-distance-block.no-user-varying.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/clip-distance-block.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/copy.flatten.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/dynamic.flatten.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/float-math.invariant-float-math.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/float-math.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/functions.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/implicit-position-1.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/implicit-position-2.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/in_out_array_mat.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/interface-block-block-composites.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/interface-block-block-composites.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/interpolation-qualifiers-block.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/interpolation-qualifiers.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/invariant.msl21.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/leaf-function.capture.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/leaf-function.for-tess.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/no-contraction.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/no-disable-vertex-out.frag-output.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/no_stage_out.for-tess.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/no_stage_out.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/no_stage_out.write_buff.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/no_stage_out.write_buff_atomic.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/no_stage_out.write_tex.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/out_block.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/packed-bool-to-uint.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/packed-bool2-to-packed_uint2.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/packed_matrix.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/pointsize.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/read-from-row-major-array.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/resource-arrays-leaf.ios.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/resource-arrays.ios.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/return-array.force-native-array.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/return-array.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/set_builtin_in_func.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/sign-int-types.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/signedness-mismatch.shader-inputs.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/texture_buffer.texture-buffer-native.msl21.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/texture_buffer.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/ubo.alignment.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vert/ubo.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vulkan/frag/basic.multiview.no-layered.nocompat.vk.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vulkan/frag/basic.multiview.nocompat.vk.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vulkan/frag/demote-to-helper-forwarding.asm.vk.nocompat.msl23.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vulkan/frag/demote-to-helper.vk.nocompat.msl23.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vulkan/frag/demote-to-helper.vk.nocompat.msl23.ios.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vulkan/frag/push-constant.vk.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vulkan/frag/spec-constant.msl11.vk.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vulkan/frag/spec-constant.vk.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vulkan/vert/device-group.multiview.viewfromdev.nocompat.vk.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vulkan/vert/device-group.nocompat.vk.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vulkan/vert/multiview.multiview.no-layered.nocompat.vk.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vulkan/vert/multiview.multiview.nocompat.vk.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vulkan/vert/multiview.nocompat.vk.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vulkan/vert/small-storage.vk.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-msl/vulkan/vert/vulkan-vertex.vk.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-ue4/asm/frag/depth-compare.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-ue4/asm/frag/global-constant-arrays.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-ue4/asm/frag/padded-float-array-member-defef.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-ue4/asm/frag/sample-mask-not-array.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-ue4/asm/frag/subpass-input.ios.framebuffer-fetch.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-ue4/asm/frag/subpass-input.msl23.framebuffer-fetch.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-ue4/asm/frag/texture-atomics.asm.argument.msl2.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-ue4/asm/frag/texture-atomics.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-ue4/asm/frag/texture-atomics.asm.graphics-robust-access.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders-ue4/asm/tesc/hs-incorrect-base-type.asm.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-ue4/asm/tesc/hs-input-array-access.asm.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-ue4/asm/tesc/hs-texcoord-array.asm.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.asm.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders-ue4/asm/tese/ds-double-gl-in-deref.asm.tese delete mode 100644 third_party/spirv-cross/reference/opt/shaders-ue4/asm/tese/ds-patch-input-fixes.asm.tese delete mode 100644 third_party/spirv-cross/reference/opt/shaders-ue4/asm/tese/ds-patch-inputs.asm.tese delete mode 100644 third_party/spirv-cross/reference/opt/shaders-ue4/asm/tese/ds-texcoord-array.asm.tese delete mode 100644 third_party/spirv-cross/reference/opt/shaders-ue4/asm/vert/array-missing-copies.asm.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders-ue4/asm/vert/texture-buffer.asm.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/amd/gcn_shader.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/amd/shader_ballot.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/amd/shader_group_vote.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/amd/shader_trinary_minmax.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/comp/atomic-decrement.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/comp/atomic-increment.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/comp/bitcast_iadd.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/comp/bitcast_icmp.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/comp/bitcast_iequal.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/comp/bitcast_sar.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/comp/bitcast_sdiv.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/comp/bitcast_slr.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/comp/block-name-alias-global.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/comp/builtin-compute-bitcast.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/comp/decoration-group.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/comp/global-parameter-name-alias.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/comp/hlsl-functionality.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/comp/logical.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/comp/multiple-entry.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/comp/nmin-max-clamp.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/comp/op-phi-swap.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/comp/quantize.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/comp/recompile-block-naming.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/comp/specialization-constant-workgroup.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/comp/switch-break-ladder.asm.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/combined-sampler-reuse.vk.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/combined-sampler-reuse.vk.asm.frag.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/complex-name-workarounds.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/composite-construct-struct-no-swizzle.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/default-member-names.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/do-while-statement-fallback.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/empty-struct.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/for-loop-phi-only-continue.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/frem.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/function-overload-alias.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/hlsl-sample-cmp-level-zero-cube.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/hlsl-sample-cmp-level-zero.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/image-extract-reuse.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/image-fetch-no-sampler.asm.vk.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/image-fetch-no-sampler.asm.vk.frag.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/image-fetch-no-sampler.no-samplerless.asm.vk.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/image-fetch-no-sampler.no-samplerless.asm.vk.frag.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/image-query-no-sampler.no-samplerless.vk.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/image-query-no-sampler.no-samplerless.vk.asm.frag.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/image-query-no-sampler.vk.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/image-query-no-sampler.vk.asm.frag.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/implicit-read-dep-phi.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/inf-nan-constant-double.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/inf-nan-constant.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/invalidation.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/line-directive.line.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/locations-components.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/loop-body-dominator-continue-access.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/loop-header-to-continue.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/lut-promotion-initializer.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/multi-for-loop-init.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/op-constant-null.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/op-phi-swap-continue-block.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/pack-and-unpack-uint2.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/pass-by-value.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/phi-loop-variable.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/sample-and-compare.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/sampler-buffer-array-without-sampler.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/sampler-buffer-without-sampler.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/single-function-private-lut.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/srem.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/storage-class-output-initializer.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/struct-composite-extract-swizzle.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/switch-label-shared-block.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/temporary-name-alias.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/temporary-phi-hoisting.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/texel-fetch-no-lod.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/texture-sampling-fp16.asm.vk.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/texture-sampling-fp16.asm.vk.frag.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/undef-variable-store.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/unknown-depth-state.asm.vk.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/unknown-depth-state.asm.vk.frag.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/unreachable.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/frag/vector-shuffle-oom.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/geom/block-name-namespace.asm.geom delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/geom/inout-split-access-chain-handle.asm.geom delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/geom/split-access-chain-input.asm.geom delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/geom/unroll-glposition-load.asm.geom delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/tese/unroll-input-array-load.asm.tese delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/vert/empty-io.asm.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/vert/extract-transposed-matrix-from-struct.asm.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/vert/global-builtin.sso.asm.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/vert/invariant-block.asm.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/vert/invariant-block.sso.asm.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/vert/invariant.asm.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/vert/invariant.sso.asm.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/vert/spec-constant-op-composite.asm.vk.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/vert/spec-constant-op-composite.asm.vk.vert.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/asm/vert/uint-vertex-id-instance-id.asm.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/comp/atomic.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/comp/bake_gradient.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/comp/barriers.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/comp/basic.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/comp/casts.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/comp/cfg-preserve-parameter.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/comp/cfg.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/comp/coherent-block.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/comp/coherent-image.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/comp/composite-array-initialization.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/comp/composite-construct.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/comp/culling.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/comp/defer-parens.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/comp/dowhile.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/comp/generate_height.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/comp/image.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/comp/insert.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/comp/mat3.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/comp/mod.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/comp/modf.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/comp/outer-product.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/comp/read-write-only.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/comp/rmw-matrix.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/comp/rmw-opt.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/comp/scalar-std450-distance-length-normalize.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/comp/shared.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/comp/ssbo-array-length.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/comp/ssbo-array.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/comp/struct-layout.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/comp/struct-packing.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/comp/torture-loop.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/comp/type-alias.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/comp/udiv.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/desktop-only/comp/enhanced-layouts.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/desktop-only/comp/extended-arithmetic.desktop.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/desktop-only/comp/fp64.desktop.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/desktop-only/comp/image-formats.desktop.noeliminate.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/desktop-only/comp/int64.desktop.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/clip-cull-distance.desktop.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/control-dependent-in-branch.desktop.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/depth-greater-than.desktop.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/depth-less-than.desktop.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/dual-source-blending.desktop.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/hlsl-uav-block-alias.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/image-ms.desktop.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/image-query.desktop.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/image-size.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/image-size.no-qualifier-deduction.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/in-block-qualifiers.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/layout-component.desktop.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/query-levels.desktop.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/query-lod.desktop.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/sampler-ms-query.desktop.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/stencil-export.desktop.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/texture-proj-shadow.desktop.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/desktop-only/geom/basic.desktop.sso.geom delete mode 100644 third_party/spirv-cross/reference/opt/shaders/desktop-only/geom/viewport-index.desktop.geom delete mode 100644 third_party/spirv-cross/reference/opt/shaders/desktop-only/tesc/basic.desktop.sso.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders/desktop-only/tese/triangle.desktop.sso.tese delete mode 100644 third_party/spirv-cross/reference/opt/shaders/desktop-only/vert/basic.desktop.sso.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/desktop-only/vert/clip-cull-distance.desktop.sso.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/desktop-only/vert/clip-cull-distance.desktop.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/desktop-only/vert/out-block-qualifiers.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/desktop-only/vert/shader-draw-parameters-450.desktop.vk.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/desktop-only/vert/shader-draw-parameters-450.desktop.vk.vert.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/desktop-only/vert/shader-draw-parameters.desktop.vk.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/desktop-only/vert/shader-draw-parameters.desktop.vk.vert.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/flatten/array.flatten.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/flatten/basic.flatten.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/flatten/copy.flatten.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/flatten/dynamic.flatten.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/flatten/matrix-conversion.flatten.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/flatten/matrixindex.flatten.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/flatten/multiindex.flatten.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/flatten/push-constant.flatten.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/flatten/rowmajor.flatten.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/flatten/struct.flatten.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/flatten/struct.rowmajor.flatten.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/flatten/swizzle.flatten.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/flatten/types.flatten.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/array-lut-no-loop-variable.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/avoid-expression-lowering-to-loop.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/barycentric-nv.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/basic.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/complex-expression-in-access-chain.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/composite-extract-forced-temporary.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/constant-array.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/constant-composites.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/false-loop-init.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/flush_params.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/for-loop-continue-control-flow.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/for-loop-init.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/frexp-modf.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/front-facing.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/gather-dref.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/ground.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/helper-invocation.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/hoisted-temporary-use-continue-block-as-value.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/image-load-store-uint-coord.asm.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/inside-loop-dominated-variable-preservation.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/loop-dominator-and-switch-default.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/lut-promotion.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/mix.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/partial-write-preserve.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/pixel-interlock-ordered.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/pixel-interlock-unordered.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/pls.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/post-depth-coverage-es.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/post-depth-coverage.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/round-even.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/round.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/sample-interlock-ordered.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/sample-interlock-unordered.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/sample-parameter.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/sampler-ms.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/sampler-proj.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/sampler.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/scalar-refract-reflect.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/selection-block-dominator.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/struct-type-unrelated-alias.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/switch-unsigned-case.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/swizzle.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/texel-fetch-offset.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/ubo-load-row-major-workaround.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/ubo_layout.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/frag/unary-enclose.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/geom/basic.geom delete mode 100644 third_party/spirv-cross/reference/opt/shaders/geom/geometry-passthrough.geom delete mode 100644 third_party/spirv-cross/reference/opt/shaders/geom/lines-adjacency.geom delete mode 100644 third_party/spirv-cross/reference/opt/shaders/geom/lines.geom delete mode 100644 third_party/spirv-cross/reference/opt/shaders/geom/multi-stream.geom delete mode 100644 third_party/spirv-cross/reference/opt/shaders/geom/points.geom delete mode 100644 third_party/spirv-cross/reference/opt/shaders/geom/single-invocation.geom delete mode 100644 third_party/spirv-cross/reference/opt/shaders/geom/transform-feedback-streams.geom delete mode 100644 third_party/spirv-cross/reference/opt/shaders/geom/triangles-adjacency.geom delete mode 100644 third_party/spirv-cross/reference/opt/shaders/geom/triangles.geom delete mode 100644 third_party/spirv-cross/reference/opt/shaders/legacy/fragment/explicit-lod.legacy.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/legacy/fragment/explicit-lod.legacy.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/legacy/fragment/fma.legacy.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/legacy/fragment/io-blocks.legacy.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/legacy/fragment/multiple-struct-flattening.legacy.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/legacy/fragment/round.legacy.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/legacy/fragment/struct-varying.legacy.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/legacy/fragment/switch.legacy.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/legacy/vert/implicit-lod.legacy.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/legacy/vert/io-block.legacy.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/legacy/vert/struct-flatten-inner-array.legacy.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/legacy/vert/struct-flatten-stores-multi-dimension.legacy.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/legacy/vert/struct-varying.legacy.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/legacy/vert/switch-nested.legacy.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/legacy/vert/transpose.legacy.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/tesc/basic.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders/tesc/water_tess.tesc delete mode 100644 third_party/spirv-cross/reference/opt/shaders/tese/ccw.tese delete mode 100644 third_party/spirv-cross/reference/opt/shaders/tese/cw.tese delete mode 100644 third_party/spirv-cross/reference/opt/shaders/tese/equal.tese delete mode 100644 third_party/spirv-cross/reference/opt/shaders/tese/fractional_even.tese delete mode 100644 third_party/spirv-cross/reference/opt/shaders/tese/fractional_odd.tese delete mode 100644 third_party/spirv-cross/reference/opt/shaders/tese/input-array.tese delete mode 100644 third_party/spirv-cross/reference/opt/shaders/tese/line.tese delete mode 100644 third_party/spirv-cross/reference/opt/shaders/tese/load-array-of-array.tese delete mode 100644 third_party/spirv-cross/reference/opt/shaders/tese/patch-input-array.tese delete mode 100644 third_party/spirv-cross/reference/opt/shaders/tese/triangle.tese delete mode 100644 third_party/spirv-cross/reference/opt/shaders/tese/water_tess.tese delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vert/basic.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vert/ground.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vert/invariant.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vert/no-contraction.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vert/ocean.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vert/read-from-row-major-array.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vert/return-array.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vert/texture_buffer.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vert/transform-feedback-decorations.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vert/ubo.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/comp/array-of-buffer-reference.nocompat.vk.comp.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/comp/buffer-reference-bitcast.nocompat.vk.comp.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/comp/buffer-reference-decorations.nocompat.vk.comp.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/comp/buffer-reference.nocompat.vk.comp.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/comp/spec-constant-op-member-array.vk.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/comp/spec-constant-op-member-array.vk.comp.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/comp/spec-constant-work-group-size.vk.comp delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/comp/spec-constant-work-group-size.vk.comp.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/frag/combined-texture-sampler-shadow.vk.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/frag/combined-texture-sampler-shadow.vk.frag.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/frag/combined-texture-sampler.vk.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/frag/combined-texture-sampler.vk.frag.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/frag/demote-to-helper-forwarding.asm.vk.nocompat.frag.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/frag/demote-to-helper.vk.nocompat.frag.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/frag/desktop-mediump.vk.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/frag/desktop-mediump.vk.frag.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/frag/input-attachment-ms.vk.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/frag/input-attachment-ms.vk.frag.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/frag/input-attachment.vk.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/frag/input-attachment.vk.frag.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/frag/nonuniform-qualifier.vk.nocompat.frag.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/frag/push-constant-as-ubo.push-ubo.vk.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/frag/push-constant-as-ubo.push-ubo.vk.frag.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/frag/push-constant.vk.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/frag/push-constant.vk.frag.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/frag/separate-combined-fake-overload.vk.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/frag/separate-combined-fake-overload.vk.frag.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/frag/separate-sampler-texture-array.vk.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/frag/separate-sampler-texture-array.vk.frag.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/frag/separate-sampler-texture.vk.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/frag/separate-sampler-texture.vk.frag.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/frag/shader-arithmetic-8bit.nocompat.vk.frag.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/frag/spec-constant-block-size.vk.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/frag/spec-constant-block-size.vk.frag.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/frag/spec-constant-ternary.vk.frag delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/frag/spec-constant-ternary.vk.frag.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rahit/terminators.khr.spv14.nocompat.vk.rahit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rahit/terminators.nocompat.vk.rahit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rcall/incoming-callable.khr.spv14.nocompat.vk.rcall.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_attribute_block.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_attribute_block.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_attribute_block_in_function.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_attribute_block_in_function.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_attribute_plain.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_attribute_plain.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_attribute_struct.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_attribute_struct.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_kind.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_kind.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_t.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_t.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/incoming_ray_flags.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/incoming_ray_flags.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/instance_custom_id.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/instance_custom_id.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/instance_id.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/instance_id.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/object_ray_direction.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/object_ray_direction.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/object_ray_origin.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/object_ray_origin.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/object_to_world.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/object_to_world.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/payloads.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/payloads.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/primitive_id.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/primitive_id.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/ray_tmax.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/ray_tmax.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/ray_tmin.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/ray_tmin.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/ray_tracing.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/ray_tracing.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/world_ray_direction.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/world_ray_direction.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/world_ray_origin.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/world_ray_origin.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/world_to_object.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/world_to_object.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/convert-u-to-as.spv14.vk.nocompat.rgen.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/execute_callable.nocompat.khr.spv14.vk.rgen.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/execute_callable.nocompat.vk.rgen.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/launch_id.khr.spv14.nocompat.vk.rgen.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/launch_id.nocompat.vk.rgen.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/launch_size.khr.spv14.nocompat.vk.rgen.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/launch_size.nocompat.vk.rgen.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/payloads.khr.spv14.nocompat.vk.rgen.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/payloads.nocompat.vk.rgen.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/pure_call.khr.spv14.nocompat.vk.rgen.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/pure_call.nocompat.vk.rgen.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/ray_tracing.khr.spv14.nocompat.vk.rgen.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/ray_tracing.nocompat.vk.rgen.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/shader_record_buffer.khr.spv14.nocompat.vk.rgen.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/shader_record_buffer.nocompat.vk.rgen.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rint/report-intersection.khr.spv14.nocompat.vk.rint.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rint/report-intersection.nocompat.vk.rint.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rmiss/ray_tracing.khr.spv14.nocompat.vk.rmiss.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rmiss/ray_tracing.nocompat.vk.rmiss.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/rmiss/ray_tracing_trace_incoming.khr.spv14.nocompat.vk.rmiss.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/vert/device-group.nocompat.vk.vert.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/vert/multiview.nocompat.vk.vert.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/vert/small-storage.vk.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/vert/small-storage.vk.vert.vk delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/vert/vulkan-vertex.vk.vert delete mode 100644 third_party/spirv-cross/reference/opt/shaders/vulkan/vert/vulkan-vertex.vk.vert.vk delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/access-chain-load-store-composite.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/aliased-struct-divergent-member-name.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/atomic-load-store.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/atomic-result-temporary.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/bitfield-signed-operations.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/bitscan.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/buffer-atomic-nonuniform.asm.sm51.nonuniformresource.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/constant-composite-undef.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/eliminate-globals-not-in-entry-point.noeliminate.spv14.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/glsl-signed-operations.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/glsl.std450.frexp-modf-struct.fxconly.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/image-atomic-nonuniform.asm.sm51.nonuniformresource.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/specialization-constant-workgroup.nofxc.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/storage-buffer-basic.nofxc.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/empty-struct-in-struct.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/image-fetch-uint-coord.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/nonuniform-bracket-handling-2.nonuniformresource.sm51.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/nonuniform-qualifier-propagation.nonuniformresource.sm51.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/nonuniform-ssbo.sm51.nonuniformresource.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/only-initializer-frag-depth.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/phi.zero-initialize.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/pixel-interlock-callstack.sm51.fxconly.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/pixel-interlock-control-flow.sm51.fxconly.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/pixel-interlock-split-functions.sm51.fxconly.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/reserved-function-identifier.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/struct-packing-last-element-array-matrix-rule.invalid.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/subgroup-arithmetic-cast.invalid.nofxc.sm60.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/switch-block-case-fallthrough.asm.invalid.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/unordered-compare.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/vector-shuffle-undef-index.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/temporary.zero-initialize.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/vert/block-struct-initializer.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/vert/builtin-output-initializer.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/vert/complex-link-by-name.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/vert/empty-struct-composite.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/comp/bitfield.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/comp/glsl.std450.fxconly.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/comp/illegal-struct-name.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/comp/subgroups-boolean.invalid.nofxc.sm60.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/comp/subgroups.invalid.nofxc.sm60.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/cbuffer-packing-straddle.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/constant-buffer-array.invalid.sm51.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/fp16.invalid.desktop.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/frag-coord.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/native-16bit-types.fxconly.nofxc.sm62.native-16bit.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/nonuniform-constructor.sm51.nonuniformresource.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/pixel-interlock-simple-callstack.sm51.fxconly.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/spec-constant.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/ubo-offset-out-of-order.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/variables.zero-initialize.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/vert/block-io-auto-location-assignment.vert delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/vert/flatten-matrix-input.flatten-matrix-vertex-input.vert delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl-no-opt/vert/pass-array-by-value.vert delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/asm/comp/access-chain-invalidate.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/asm/comp/atomic-decrement.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/asm/comp/atomic-increment.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/asm/comp/bitcast_icmp.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/asm/comp/block-name-alias-global.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/asm/comp/control-flow-hints.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/asm/comp/global-parameter-name-alias.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/asm/comp/nmin-max-clamp.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/asm/frag/cbuffer-stripped.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/asm/frag/combined-sampler-reuse.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/asm/frag/empty-struct.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/asm/frag/frem.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/asm/frag/function-overload-alias.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/asm/frag/image-extract-reuse.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/asm/frag/implicit-read-dep-phi.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/asm/frag/inf-nan-constant.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/asm/frag/line-directive.line.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/asm/frag/lut-promotion-initializer.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/asm/frag/pack-and-unpack-uint2.fxconly.nofxc.sm60.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/asm/frag/pass-by-value.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/asm/frag/sample-and-compare.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/asm/frag/single-function-private-lut.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/asm/frag/srem.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/asm/frag/storage-class-output-initializer.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/asm/frag/texel-fetch-no-lod.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/asm/frag/texture-sampling-fp16.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/asm/frag/unknown-depth-state.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/asm/frag/unreachable.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/asm/vert/extract-transposed-matrix-from-struct.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/asm/vert/spec-constant-op-composite.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/asm/vert/uint-vertex-id-instance-id.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/asm/vert/vertex-id-instance-id.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/comp/access-chain-load-composite.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/comp/access-chains.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/comp/access-chains.force-uav.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/comp/address-buffers.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/comp/atomic.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/comp/barriers.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/comp/builtins.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/comp/composite-array-initialization.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/comp/globallycoherent.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/comp/image.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/comp/image.nonwritable-uav-texture.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/comp/inverse.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/comp/num-workgroups-alone.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/comp/num-workgroups-with-builtins.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/comp/outer-product.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/comp/rmw-matrix.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/comp/rwbuffer-matrix.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/comp/scalar-std450-distance-length-normalize.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/comp/shared.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/comp/spec-constant-op-member-array.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/comp/spec-constant-work-group-size.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/comp/ssbo-array-length.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/comp/ssbo-array.comp delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/array-lut-no-loop-variable.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/basic-color-3comp.sm30.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/basic-color-3comp.sm50.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/basic.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/bit-conversions.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/boolean-mix.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/builtins.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/bvec-operations.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/clip-cull-distance.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/combined-texture-sampler-parameter.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/combined-texture-sampler-shadow.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/complex-expression-in-access-chain.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/constant-composites.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/control-dependent-in-branch.desktop.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/demote-to-helper.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/depth-greater-than.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/depth-less-than.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/dual-source-blending.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/early-fragment-test.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/for-loop-continue-control-flow.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/fp16-packing.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/front-facing.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/image-query-selective.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/image-query-uav.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/image-query-uav.nonwritable-uav-texture.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/image-query.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/input-attachment-ms.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/input-attachment.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/io-block.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/legacy-tex-modifiers.sm30.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/lut-promotion.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/matrix-input.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/mod.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/mrt.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/no-return.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/no-return2.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/nonuniform-qualifier.nonuniformresource.sm51.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/partial-write-preserve.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/pixel-interlock-ordered.sm51.fxconly.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/point-coord-compat.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/query-lod.desktop.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/readonly-coherent-ssbo.force-uav.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/readonly-coherent-ssbo.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/resources.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/row-major-layout-in-struct.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/sample-cmp-level-zero.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/sample-mask-in-and-out.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/sample-mask-in.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/sample-mask-out.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/sampler-array.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/sampler-image-arrays.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/scalar-refract-reflect.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/separate-combined-fake-overload.sm30.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/spec-constant-block-size.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/spec-constant-ternary.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/switch-unsigned-case.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/swizzle-scalar.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/tex-sampling-ms.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/tex-sampling.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/tex-sampling.sm30.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/texel-fetch-offset.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/texture-proj-shadow.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/texture-size-combined-image-sampler.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/unary-enclose.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/unorm-snorm-packing.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/frag/various-glsl-ops.frag delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/vert/basic.vert delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/vert/clip-cull-distance.vert delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/vert/instancing.vert delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/vert/invariant.vert delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/vert/locations.vert delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/vert/matrix-attribute.vert delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/vert/matrix-output.vert delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/vert/no-contraction.vert delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/vert/no-input.vert delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/vert/point-size-compat.vert delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/vert/qualifiers.vert delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/vert/read-from-row-major-array.vert delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/vert/return-array.vert delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/vert/sampler-buffers.vert delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/vert/struct-composite-decl.vert delete mode 100644 third_party/spirv-cross/reference/shaders-hlsl/vert/texture_buffer.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/aliased-struct-divergent-member-name.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/arithmetic-conversion-signs.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/atomic-load-store.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/atomic-result-temporary.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/bitcast-fp16-fp32.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/bitfield-signed-operations.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/bitscan.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/composite-construct-buffer-struct.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/constant-composite-undef.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/copy-logical-2.spv14.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/copy-logical.spv14.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/device-array-load-temporary.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/device-array-load-temporary.force-native-array.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/device-constant-array-load-store.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/device-constant-array-load-store.force-native-array.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/eliminate-globals-not-in-entry-point.noeliminate.spv14.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/glsl-signed-operations.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/glsl.std450.frexp-modf-struct.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/storage-buffer-basic.invalid.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/storage-buffer-pointer-argument.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/variable-pointers.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/component-insert-packed-expression.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/empty-struct-in-struct.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/fixup-entry-point-identifier.nomain.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/image-fetch-uint-coord.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/image-gather.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/image-type-normal-comparison-usage.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/input-attachment-unused-frag-coord.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/modf-frexp-scalar-access-chain-output.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/only-initializer-frag-depth.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/phi.zero-initialize.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/pixel-interlock-callstack.msl2.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/pixel-interlock-control-flow.msl2.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/pixel-interlock-split-functions.msl2.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/private-initializer-direct-store.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/reserved-function-identifier.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/subgroup-arithmetic-cast.msl21.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/switch-block-case-fallthrough.asm.invalid.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/texture-access.swizzle.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/vector-shuffle-undef-index.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers-block.mask-location-0.msl2.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers-block.mask-location-0.multi-patch.msl2.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers-block.mask-location-1.msl2.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers-block.mask-location-1.multi-patch.msl2.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers-block.mask-point-size.msl2.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers-block.mask-point-size.multi-patch.msl2.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers-block.mask-position.msl2.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers-block.mask-position.multi-patch.msl2.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers.mask-location-0.msl2.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers.mask-location-0.msl2.multi-patch.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers.mask-location-1.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers.mask-location-1.multi-patch.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers.mask-point-size.msl2.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers.mask-point-size.msl2.multi-patch.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers.mask-position.msl2.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers.mask-position.msl2.multi-patch.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/composite-extract-row-major.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding-2.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding-3.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding-4.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding-5.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/packed-vector-extract-insert.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/row-major-split-access-chain.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-array-float2.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-array-float3-one-element.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-array-float3.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-float2x2-col-major.invalid.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-float2x2-row-major.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-float2x3-col-major.invalid.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-float2x3-row-major.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-float3x2-col-major.invalid.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-float3x2-row-major.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-float3x3-col-major.invalid.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-float3x3-row-major.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/temporary.zero-initialize.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/array-control-point-initializer.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/block-control-point-initializer.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/builtin-control-point-initializer.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/composite-control-point-initializer.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/copy-memory-control-point.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/copy-tess-level-tri.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/plain-control-point-initializer.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/tess-fixed-input-array-builtin-array.invalid.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/tess-fixed-input-array-builtin-array.invalid.multi-patch.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/tess-level-initializer-quad.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/tess-level-initializer-triangle.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/tess-level-read-write-in-function-tri.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tese/copy-tess-level.asm.msl2.tese delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tese/split-access-chain.asm.tese delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/vert/block-struct-initializer.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/vert/builtin-output-initializer.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/vert/composite-extract-physical-type-id.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/vert/duplicate-view-index.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/vert/empty-struct-composite.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/vert/op-load-forced-temporary-array.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/asm/vert/pointer-to-pointer.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/comp/array-copy-threadgroup-memory.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/comp/basic.dynamic-buffer.msl2.invalid.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/comp/bitcast-16bit-1.invalid.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/comp/bitcast-16bit-2.invalid.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/comp/bitfield.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/comp/glsl.std450.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/comp/illegal-struct-name.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/comp/int64.invalid.msl22.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/comp/loop.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/comp/return.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/comp/std140-array-load-composite-construct.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/comp/struct-packing-scalar.nocompat.invalid.vk.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl12.emulate-subgroup.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl21.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl21.fixed-subgroup.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl21.ios.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl22.ios.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl23.ios.simd.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/components/fragment-input-component.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/components/fragment-output-component.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/components/fragment-output-component.pad-fragment.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/components/vertex-input-component.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/components/vertex-output-component.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/frag/16bit-constants.invalid.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/frag/demote-to-helper.vk.nocompat.msl21.invalid.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/frag/depth-image-gather.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/frag/force-active-resources.msl2.argument..force-active.discrete.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/frag/fp16.desktop.invalid.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/frag/image-gather.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/frag/in_block_assign.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/frag/min-max-clamp.invalid.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/frag/nonuniform-constructor.msl2.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/frag/pixel-interlock-simple-callstack.msl2.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/frag/scalar-block-layout-ubo-std430.vk.nocompat.invalid.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/frag/shadow-compare-global-alias.invalid.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/frag/subgroups.nocompat.invalid.vk.msl22.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/frag/subpass-input-attachment-index-fallback.msl20.ios.framebuffer-fetch.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/frag/subpass-input-attachment-index-fallback.msl23.framebuffer-fetch.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/frag/subpass-input-function-argument.framebuffer-fetch.ios.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/frag/subpass-input-function-argument.framebuffer-fetch.msl23.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/frag/subpass-input.decoration-binding.framebuffer-fetch.msl23.argument.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/frag/subpass-input.decoration-binding.framebuffer-fetch.msl23.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/frag/subpass-input.decoration-binding.ios.framebuffer-fetch.msl2.argument.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/frag/subpass-input.decoration-binding.ios.framebuffer-fetch.msl2.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/frag/texture-access-int.swizzle.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/frag/texture-access-leaf.swizzle.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/frag/texture-access-uint.swizzle.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/frag/texture-access.swizzle.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/frag/ubo-array-multiple-structs-access-chain.argument.msl2.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/frag/ubo-array-multiple-structs-access-chain.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/frag/ubo-offset-out-of-order.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/frag/variables.zero-initialize.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/array-of-vec3.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/array-of-vec4.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/isolated-scalar-access.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/load-store-col-rows.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-2x2-scalar.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-2x2-std140.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-2x2-std430.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-2x3-scalar.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-2x3-std140.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-2x3-std430.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-2x4-scalar.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-2x4-std140.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-2x4-std430.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-3x2-scalar.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-3x2-std140.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-3x2-std430.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-3x3-scalar.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-3x3-std140.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-3x3-std430.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-3x4-scalar.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-3x4-std140.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-3x4-std430.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-4x2-scalar.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-4x2-std140.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-4x2-std430.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-4x3-scalar.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-4x3-std140.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-4x3-std430.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-4x4-scalar.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-4x4-std140.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-4x4-std430.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-multiply-row-major.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-multiply-unpacked-col-major-2.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-multiply-unpacked-col-major.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-multiply-unpacked-row-major-2.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-multiply-unpacked-row-major.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/member-padding.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/std140-array-of-vectors.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/struct-alignment.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/struct-packing-array-of-scalar.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/struct-packing-recursive.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/struct-packing.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/struct-size-padding-array-of-array.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/packing/struct-size-padding.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/tesc/copy-tess-level.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/tesc/passthrough-clip-cull.multi-patch.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/tesc/tess-level-read-write-in-function-quad.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/tese/builtin-input-automatic-attribute-assignment.tese delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/tese/load-clip-cull.msl2.tese delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/vert/cull-distance.for-tess.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/vert/functions_nested.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/vert/layer.msl11.invalid.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/vert/pass-array-by-value.force-native-array.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/vert/pass-array-by-value.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/vert/uninitialized-vertex-output.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/vert/unused-subgroup-builtin.msl22.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/vert/viewport-index.msl2.invalid.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl-no-opt/vulkan/frag/texture-access-function.swizzle.vk.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/amd/shader_trinary_minmax.msl21.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/comp/atomic-decrement.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/comp/atomic-increment.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/comp/bitcast_iadd.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/comp/bitcast_icmp.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/comp/bitcast_sar.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/comp/bitcast_sdiv.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/comp/bitcast_slr.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/comp/block-name-alias-global.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/comp/buffer-write-relative-addr.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/comp/buffer-write.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/comp/global-parameter-name-alias.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/comp/image-load-store-short-vector.invalid.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/comp/multiple-entry.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/comp/quantize.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/comp/relaxed-block-layout.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/comp/specialization-constant-workgroup.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/comp/struct-resource-name-aliasing.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/comp/variable-pointers-2.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/comp/variable-pointers-store-forwarding.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/comp/vector-builtin-type-cast-func.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/comp/vector-builtin-type-cast.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/frag/combined-sampler-reuse.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/frag/default-member-names.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/frag/descriptor-array-unnamed.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/frag/disable-renamed-output.frag-output.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/frag/empty-struct.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/frag/extract-packed-from-composite.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/frag/frem.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/frag/function-overload-alias.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/frag/image-extract-reuse.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/frag/implicit-read-dep-phi.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/frag/inf-nan-constant.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/frag/interpolation-qualifiers-struct.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/frag/line-directive.line.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/frag/locations-components.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/frag/lut-promotion-initializer.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/frag/min-lod.msl22.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/frag/op-constant-null.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/frag/op-image-sampled-image.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/frag/pass-by-value.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/frag/phi-loop-variable.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/frag/pull-model-interpolation.asm.msl23.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/frag/sample-and-compare.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/frag/single-function-private-lut.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/frag/srem.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/frag/storage-class-output-initializer.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/frag/texel-fetch-no-lod.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/frag/texture-atomics.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/frag/texture-atomics.asm.graphics-robust-access.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/frag/texture-sampling-fp16.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/frag/undef-variable-store.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/frag/unknown-depth-state.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/frag/unord-relational-op.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/frag/unreachable.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/frag/vector-shuffle-oom.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/tesc/tess-level-overrun.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/tesc/tess-level-overrun.multi-patch.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/tese/unnamed-builtin-array.asm.tese delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/vert/clip-distance-plain-variable.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/vert/clip-distance-plain-variable.no-user-varying.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/vert/copy-memory-interface.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/vert/extract-transposed-matrix-from-struct.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/vert/fake-builtin-input.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/vert/invariant.msl21.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/vert/packed-bool-to-uint.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/vert/packed-bool2-to-packed_uint2.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/vert/packing-test.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/vert/spec-constant-op-composite.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/asm/vert/uint-vertex-id-instance-id.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/access-private-workgroup-in-function.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/argument-buffers-discrete.msl2.argument.discrete.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/argument-buffers-image-load-store.ios.msl2.argument.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/argument-buffers-image-load-store.msl2.argument.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/array-length.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/array-length.msl2.argument.discrete.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/atomic.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/barriers.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/basic.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/basic.dispatchbase.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/basic.dispatchbase.msl11.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/basic.inline-block.msl2.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/builtins.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/cfg-preserve-parameter.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/coherent-block.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/coherent-image.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/complex-composite-constant-array.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/complex-type-alias.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/composite-array-initialization.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/composite-array-initialization.force-native-array.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/composite-construct.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/copy-array-of-arrays.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/copy-array-of-arrays.force-native-array.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/culling.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/defer-parens.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/dowhile.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/force-recompile-hooks.swizzle.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/functions.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/global-invocation-id-writable-ssbo-in-function.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/global-invocation-id.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/image-atomic-automatic-bindings.argument.msl2.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/image-atomic-automatic-bindings.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/image-cube-array-load-store.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/image.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/insert.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/inverse.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/local-invocation-id.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/local-invocation-index.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/mat3.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/mod.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/modf.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/outer-product.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/packing-test-1.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/packing-test-2.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/read-write-only.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/rmw-matrix.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/rmw-opt.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/scalar-std450-distance-length-normalize.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/shared-array-of-arrays.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/shared.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/spec-constant-op-member-array.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/spec-constant-work-group-size.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/storage-buffer-std140-vector-array.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/struct-layout.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/struct-nested.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/struct-packing.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/torture-loop.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/type-alias.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/udiv.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/comp/writable-ssbo.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/desktop-only/comp/extended-arithmetic.desktop.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/desktop-only/frag/image-ms.desktop.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/desktop-only/frag/query-levels.desktop.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/desktop-only/frag/sampler-ms-query.desktop.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/desktop-only/tesc/arrayed-output.desktop.sso.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/desktop-only/tesc/basic.desktop.sso.multi-patch.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/desktop-only/tesc/basic.desktop.sso.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/desktop-only/tesc/struct-copy.desktop.sso.multi-patch.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/desktop-only/tesc/struct-copy.desktop.sso.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/desktop-only/tese/triangle.desktop.sso.tese delete mode 100644 third_party/spirv-cross/reference/shaders-msl/desktop-only/vert/basic.desktop.sso.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/desktop-only/vert/clip-cull-distance..no-user-varying.desktop.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/desktop-only/vert/clip-cull-distance.desktop.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/desktop-only/vert/shader-draw-parameters.desktop.for-tess.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/desktop-only/vert/shader-draw-parameters.desktop.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/flatten/basic.flatten.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/flatten/multiindex.flatten.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/flatten/push-constant.flatten.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/flatten/rowmajor.flatten.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/flatten/struct.flatten.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/flatten/swizzle.flatten.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/flatten/types.flatten.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/argument-buffers.msl2.argument.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/array-component-io.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/array-lut-no-loop-variable.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/array-of-array-lut.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/array-of-texture-swizzle-nonconstant-uniform.msl2.argument.discrete.swizzle.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/array-of-texture-swizzle-nonconstant-uniform.msl2.swizzle.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/array-of-texture-swizzle.msl2.argument.discrete.swizzle.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/array-of-texture-swizzle.msl2.swizzle.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/barycentric-nv-nopersp.msl22.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/barycentric-nv.msl22.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/basic.force-sample.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/basic.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/binary-func-unpack-pack-arguments.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/binary-unpack-pack-arguments.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/bitcasting.1d-as-2d.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/bitcasting.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/buffer-read-write.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/buffer-read-write.texture-buffer-native.msl21.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/builtins.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/clip-distance-varying.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/complex-expression-in-access-chain.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/composite-extract-forced-temporary.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/constant-array.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/constant-composites.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/control-dependent-in-branch.desktop.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/cull-distance-varying.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/depth-greater-than.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/depth-less-than.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/disable-frag-output.frag-output.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/dual-source-blending.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/early-fragment-tests.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/false-loop-init.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/flush_params.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/for-loop-continue-control-flow.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/for-loop-init.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/fp16-packing.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/fragment-component-padding.pad-fragment.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/front-facing.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/gather-dref.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/gather-offset.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/helper-invocation.msl21.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/huge-argument-buffer.device-argument-buffer.argument.msl2.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/illegal-name-test-0.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/image-query-lod.msl22.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/in_block.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/in_mat.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/input-attachment-ms.arrayed-subpass.msl21.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/input-attachment-ms.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/input-attachment-ms.multiview.msl21.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/input-attachment.arrayed-subpass.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/input-attachment.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/input-attachment.multiview.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/interpolation-qualifiers-block.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/interpolation-qualifiers.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/lut-promotion.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/mix.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/mrt-array.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/nonuniform-qualifier.msl2.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/packed-expression-vector-shuffle.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/packing-test-3.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/pixel-interlock-ordered.msl2.argument.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/pixel-interlock-ordered.msl2.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/pls.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/post-depth-coverage.ios.msl2.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/post-depth-coverage.msl23.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/private-variable-prototype-declaration.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/read-cull-clip-distance-in-function.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/readonly-ssbo.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/sample-depth-propagate-state-from-resource.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/sample-depth-separate-image-sampler.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/sample-mask-in-and-out.fixed-sample-mask.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/sample-mask-not-used.fixed-sample-mask.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/sample-mask.fixed-sample-mask.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/sample-mask.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/sample-position-func.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/sample-position.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/sample-rate-frag-coord-sample-id.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/sample-rate-frag-coord-sample-input.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/sample-rate-frag-coord-sample-pos.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/sample-rate-frag-coord.force-sample.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/sampler-1d-lod.1d-as-2d.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/sampler-1d-lod.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/sampler-compare-bias.msl23.1d-as-2d.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/sampler-compare-cascade-gradient.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/sampler-compare-cascade-gradient.ios.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/sampler-compare-cascade-gradient.msl23.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/sampler-image-arrays.msl2.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/sampler-ms.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/sampler.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/scalar-refract-reflect.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/separate-image-sampler-argument.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/shader-arithmetic-8bit.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/spec-constant-block-size.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/spec-constant-ternary.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/stencil-export.msl21.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/subgroup-builtins.msl22.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/subgroup-globals-extract.msl22.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/switch-unsigned-case.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/swizzle.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/texel-fetch-offset.1d-as-2d.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/texel-fetch-offset.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/texture-cube-array.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/texture-cube-array.ios.emulate-cube-array.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/texture-multisample-array.msl21.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/texture-proj-shadow.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/ubo_layout.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/unary-enclose.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/vecsize-mismatch.shader-inputs.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/frag/write-depth-in-function.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/intel/shader-integer-functions2.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-msl/legacy/vert/transpose.legacy.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/masking/copy-arrays.mask-location-0.msl2.multi-patch.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/masking/copy-arrays.mask-location-0.msl2.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/masking/copy-arrays.mask-location-1.msl2.multi-patch.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/masking/copy-arrays.mask-location-1.msl2.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/masking/write-outputs-block.mask-location-0.for-tess.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/masking/write-outputs-block.mask-location-0.msl2.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/masking/write-outputs-block.mask-location-0.multi-patch.msl2.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/masking/write-outputs-block.mask-location-0.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/masking/write-outputs-block.mask-location-1.for-tess.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/masking/write-outputs-block.mask-location-1.msl2.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/masking/write-outputs-block.mask-location-1.multi-patch.msl2.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/masking/write-outputs-block.mask-location-1.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-clip-distance.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-0.for-tess.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-0.msl2.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-0.multi-patch.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-0.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-0.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-1.for-tess.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-1.msl2.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-1.multi-patch.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-1.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-1.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-point-size.for-tess.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-point-size.multi-patch.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-point-size.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-point-size.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-position.multi-patch.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-position.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/tesc/basic.multi-patch.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/tesc/basic.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/tesc/complex-control-point-inout-types.multi-patch.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/tesc/complex-control-point-inout-types.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/tesc/complex-patch-out-types.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/tesc/load-control-point-array-of-matrix.multi-patch.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/tesc/load-control-point-array-of-matrix.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/tesc/load-control-point-array-of-struct.multi-patch.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/tesc/load-control-point-array-of-struct.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/tesc/load-control-point-array.multi-patch.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/tesc/load-control-point-array.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/tesc/matrix-output.multi-patch.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/tesc/reload-tess-level.multi-patch.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/tesc/reload-tess-level.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/tesc/struct-output.multi-patch.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/tesc/water_tess.multi-patch.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/tesc/water_tess.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-msl/tese/input-array.tese delete mode 100644 third_party/spirv-cross/reference/shaders-msl/tese/input-types.tese delete mode 100644 third_party/spirv-cross/reference/shaders-msl/tese/load-control-point-array-of-matrix.tese delete mode 100644 third_party/spirv-cross/reference/shaders-msl/tese/load-control-point-array.tese delete mode 100644 third_party/spirv-cross/reference/shaders-msl/tese/quad.domain.tese delete mode 100644 third_party/spirv-cross/reference/shaders-msl/tese/quad.tese delete mode 100644 third_party/spirv-cross/reference/shaders-msl/tese/read-tess-level-in-func-quad.msl2.tese delete mode 100644 third_party/spirv-cross/reference/shaders-msl/tese/read-tess-level-in-func.msl2.tese delete mode 100644 third_party/spirv-cross/reference/shaders-msl/tese/set-from-function.tese delete mode 100644 third_party/spirv-cross/reference/shaders-msl/tese/triangle-tess-level.tese delete mode 100644 third_party/spirv-cross/reference/shaders-msl/tese/triangle.tese delete mode 100644 third_party/spirv-cross/reference/shaders-msl/tese/water_tess.tese delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/array-component-io.for-tess.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/array-component-io.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/basic.capture.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/basic.for-tess.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/basic.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/clip-distance-block.no-user-varying.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/clip-distance-block.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/copy.flatten.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/dynamic.flatten.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/float-math.invariant-float-math.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/float-math.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/functions.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/implicit-position-1.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/implicit-position-2.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/in_out_array_mat.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/interface-block-block-composites.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/interface-block-block-composites.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/interpolation-qualifiers-block.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/interpolation-qualifiers.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/invariant.msl21.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/leaf-function.capture.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/leaf-function.for-tess.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/no-contraction.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/no-disable-vertex-out.frag-output.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/no_stage_out.for-tess.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/no_stage_out.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/no_stage_out.write_buff.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/no_stage_out.write_buff_atomic.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/no_stage_out.write_tex.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/out_block.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/packed-bool-to-uint.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/packed-bool2-to-packed_uint2.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/packed_matrix.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/pointsize.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/read-from-row-major-array.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/resource-arrays-leaf.ios.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/resource-arrays.ios.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/return-array.force-native-array.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/return-array.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/set_builtin_in_func.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/sign-int-types.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/signedness-mismatch.shader-inputs.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/texture_buffer.texture-buffer-native.msl21.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/texture_buffer.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/ubo.alignment.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vert/ubo.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vulkan/frag/basic.multiview.no-layered.nocompat.vk.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vulkan/frag/basic.multiview.nocompat.vk.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vulkan/frag/demote-to-helper-forwarding.asm.vk.nocompat.msl23.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vulkan/frag/demote-to-helper.vk.nocompat.msl23.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vulkan/frag/demote-to-helper.vk.nocompat.msl23.ios.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vulkan/frag/push-constant.vk.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vulkan/frag/spec-constant.msl11.vk.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vulkan/frag/spec-constant.vk.frag delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vulkan/vert/device-group.multiview.viewfromdev.nocompat.vk.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vulkan/vert/device-group.nocompat.vk.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vulkan/vert/multiview.multiview.no-layered.nocompat.vk.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vulkan/vert/multiview.multiview.nocompat.vk.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vulkan/vert/multiview.nocompat.vk.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vulkan/vert/small-storage.vk.vert delete mode 100644 third_party/spirv-cross/reference/shaders-msl/vulkan/vert/vulkan-vertex.vk.vert delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/comp/access-chain-dominator-in-loop-body-2.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/comp/access-chain-dominator-in-loop-body.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/comp/access-tracking-function-call-result.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/comp/aliased-struct-divergent-member-name.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/comp/arithmetic-conversion-signs.asm.nocompat.vk.comp.vk delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/comp/atomic-load-store.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/comp/atomic-result-temporary.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/comp/bitcast-fp16-fp32.asm.vk.comp delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/comp/bitcast-fp16-fp32.asm.vk.comp.vk delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/comp/bitfield-signed-operations.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/comp/bitscan.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/comp/buffer-atomic-nonuniform.vk.nocompat.asm.comp.vk delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/comp/buffer-reference-aliased-block-name.nocompat.vk.asm.comp.vk delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/comp/buffer-reference-synthesized-pointer-2.asm.nocompat.vk.comp.vk delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/comp/buffer-reference-synthesized-pointer.asm.nocompat.vk.comp.vk delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/comp/constant-composite-undef.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/comp/copy-logical.spv14.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/comp/eliminate-globals-not-in-entry-point.noeliminate.spv14.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/comp/extended-debug-extinst.invalid.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/comp/glsl-signed-operations.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/comp/glsl.std450.frexp-modf-struct.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/comp/image-atomic-nonuniform.vk.nocompat.asm.comp.vk delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/comp/loop-variable-with-initializer.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/comp/nonuniform-bracket-handling.vk.nocompat.asm.comp.vk delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/comp/phi-temporary-copy-loop-variable.asm.invalid.comp delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/comp/spec-constant-op-convert-sign.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/comp/storage-buffer-basic.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/array-builtin-bitcast-load-store.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/combined-image-sampler-dxc-min16float.asm.invalid.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/demote-impure-function-call.vk.nocompat.asm.frag.vk delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/discard-impure-function-call.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/do-while-continue-phi.asm.invalid.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/do-while-loop-inverted-test.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/early-conditional-return-switch.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/empty-struct-in-struct.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/for-loop-dedicated-merge-block-inverted.asm.invalid.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/for-loop-dedicated-merge-block-non-inverted.asm.invalid.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/for-loop-inverted-test.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/image-fetch-uint-coord.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/inliner-dominator-inside-loop.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/ldexp-uint-exponent.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/loop-merge-to-continue.asm.invalid.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/nonuniform-bracket-handling-2.vk.nocompat.asm.frag.vk delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/nonuniform-qualifier-propagation.vk.nocompat.asm.frag.vk delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/nonuniform-ssbo.nocompat.vk.asm.frag.vk delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/only-initializer-frag-depth.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/opaque-id-literal-alias.preserve.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/out-of-order-struct-id.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/phi.zero-initialize.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/pixel-interlock-callstack.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/pixel-interlock-control-flow.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/pixel-interlock-split-functions.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/reserved-function-identifier.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/reserved-identifiers.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/selection-merge-to-continue.asm.invalid.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/sparse-texture-feedback-uint-code.asm.desktop.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/subgroup-arithmetic-cast.nocompat.vk.asm.frag.vk delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/subgroup-ballot-only.vk.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/subgroup-ballot-only.vk.asm.frag.vk delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/switch-block-case-fallthrough.asm.invalid.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/switch-merge-to-continue.asm.invalid.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/switch-single-case-multiple-exit-cfg.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/unordered-compare.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/vector-extract-dynamic-spec-constant.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/vector-shuffle-undef-index.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/frag/while-loop-inverted-test.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/geom/store-uint-layer.invalid.asm.geom delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/loop-header-self-continue-break.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/rgen/acceleration-nonuniform.spv14.vk.nocompat.asm.rgen.vk delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/temporary.zero-initialize.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/tesc/array-of-block-output-initializer.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/tesc/copy-memory-control-point.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/tesc/tess-fixed-input-array-builtin-array.invalid.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/tesc/tess-level-initializer.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/vert/block-struct-initializer.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/vert/builtin-output-initializer.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/vert/complex-link-by-name.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/vert/complex-link-by-name.force-flattened-io.legacy.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/vert/constant-composite-extract.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/vert/empty-struct-composite.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/asm/vert/semantic-decoration.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/comp/bitcast-16bit-1.invalid.comp delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/comp/bitcast-16bit-2.invalid.comp delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/comp/bitfield.comp delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/comp/glsl.std450.comp delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/comp/illegal-struct-name.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/comp/image-load-formatted.comp delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/comp/inout-struct.invalid.comp delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/comp/loop.comp delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/comp/return.comp delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/comp/shader_ballot_nonuniform_invocations.invalid.comp delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/comp/specialization-constant-evaluation.comp delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/comp/struct-packing-scalar.nocompat.invalid.vk.comp.vk delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/comp/subgroups.nocompat.invalid.vk.comp.vk delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/comp/subgroups_basicvoteballot.vk.comp delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/comp/subgroups_basicvoteballot.vk.comp.vk delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/frag/16bit-constants.invalid.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/frag/fp16.invalid.desktop.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/frag/frag-fully-covered.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/frag/fragmentMaskFetch_subpassInput.vk.nocompat.invalid.frag.vk delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/frag/fs.invalid.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/frag/image-gather.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/frag/multi-dimensional.desktop.invalid.flatten_dim.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/frag/nonuniform-constructor.vk.nocompat.frag.vk delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/frag/pixel-interlock-simple-callstack.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/frag/scalar-block-layout-ubo-std430.vk.nocompat.invalid.frag.vk delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/frag/sparse-texture-clamp.desktop.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/frag/sparse-texture-feedback.desktop.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/frag/subpass-input.framebuffer-fetch.nocompat.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/frag/subpass-input.framebuffer-fetch.nocompat.framebuffer-fetch-noncoherent.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/frag/subpass-input.framebuffer-fetch.nocompat.legacy.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/frag/subpass-input.framebuffer-fetch.nocompat.legacy.framebuffer-fetch-noncoherent.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/frag/variables.zero-initialize.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/legacy/frag/switch-single-case-multiple-exit-cfg.legacy.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/vert/io-blocks.force-flattened-io.vert delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/vert/pass-array-by-value.vert delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/vulkan/frag/shading-rate.vk.nocompat.frag.vk delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/vulkan/frag/spec-constant.vk.frag delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/vulkan/frag/spec-constant.vk.frag.vk delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/vulkan/frag/ubo-offset-out-of-order.vk.nocompat.frag.vk delete mode 100644 third_party/spirv-cross/reference/shaders-no-opt/vulkan/vert/primitive-shading-rate.vk.nocompat.vert.vk delete mode 100644 third_party/spirv-cross/reference/shaders-reflection/asm/aliased-entry-point-names.asm.multi.json delete mode 100644 third_party/spirv-cross/reference/shaders-reflection/asm/comp/pointer-to-array-of-physical-pointer.asm.comp.json delete mode 100644 third_party/spirv-cross/reference/shaders-reflection/asm/op-source-glsl-ssbo-1.asm.comp.json delete mode 100644 third_party/spirv-cross/reference/shaders-reflection/asm/op-source-glsl-ssbo-2.asm.comp.json delete mode 100644 third_party/spirv-cross/reference/shaders-reflection/asm/op-source-hlsl-uav-1.asm.comp.json delete mode 100644 third_party/spirv-cross/reference/shaders-reflection/asm/op-source-hlsl-uav-2.asm.comp.json delete mode 100644 third_party/spirv-cross/reference/shaders-reflection/asm/op-source-none-ssbo-1.asm.comp.json delete mode 100644 third_party/spirv-cross/reference/shaders-reflection/asm/op-source-none-ssbo-2.asm.comp.json delete mode 100644 third_party/spirv-cross/reference/shaders-reflection/asm/op-source-none-uav-1.asm.comp.json delete mode 100644 third_party/spirv-cross/reference/shaders-reflection/asm/op-source-none-uav-2.asm.comp.json delete mode 100644 third_party/spirv-cross/reference/shaders-reflection/comp/array-of-physical-pointer.comp.json delete mode 100644 third_party/spirv-cross/reference/shaders-reflection/comp/function-pointer.invalid.asm.comp.json delete mode 100644 third_party/spirv-cross/reference/shaders-reflection/comp/physical-pointer.comp.json delete mode 100644 third_party/spirv-cross/reference/shaders-reflection/comp/struct-layout.comp.json delete mode 100644 third_party/spirv-cross/reference/shaders-reflection/comp/struct-packing.comp.json delete mode 100644 third_party/spirv-cross/reference/shaders-reflection/comp/workgroup-size-spec-constant.comp.json delete mode 100644 third_party/spirv-cross/reference/shaders-reflection/frag/combined-texture-sampler-shadow.vk.frag.json delete mode 100644 third_party/spirv-cross/reference/shaders-reflection/frag/combined-texture-sampler.vk.frag.json delete mode 100644 third_party/spirv-cross/reference/shaders-reflection/frag/image-load-store-uint-coord.asm.frag.json delete mode 100644 third_party/spirv-cross/reference/shaders-reflection/frag/input-attachment-ms.vk.frag.json delete mode 100644 third_party/spirv-cross/reference/shaders-reflection/frag/input-attachment.vk.frag.json delete mode 100644 third_party/spirv-cross/reference/shaders-reflection/frag/push-constant.vk.frag.json delete mode 100644 third_party/spirv-cross/reference/shaders-reflection/frag/separate-sampler-texture-array.vk.frag.json delete mode 100644 third_party/spirv-cross/reference/shaders-reflection/frag/spec-constant.vk.frag.json delete mode 100644 third_party/spirv-cross/reference/shaders-reflection/rgen/acceleration_structure.vk.rgen.json delete mode 100644 third_party/spirv-cross/reference/shaders-reflection/vert/array-size-reflection.vert.json delete mode 100644 third_party/spirv-cross/reference/shaders-reflection/vert/read-from-row-major-array.vert.json delete mode 100644 third_party/spirv-cross/reference/shaders-reflection/vert/stride-reflection.vert.json delete mode 100644 third_party/spirv-cross/reference/shaders-reflection/vert/texture_buffer.vert.json delete mode 100644 third_party/spirv-cross/reference/shaders-ue4-no-opt/asm/frag/accesschain-invalid-expression.asm.invalid.frag delete mode 100644 third_party/spirv-cross/reference/shaders-ue4-no-opt/asm/frag/array-copy-error.asm.invalid.frag delete mode 100644 third_party/spirv-cross/reference/shaders-ue4-no-opt/asm/frag/phi-variable-declaration.asm.invalid.frag delete mode 100644 third_party/spirv-cross/reference/shaders-ue4-no-opt/asm/vert/loop-accesschain-writethrough.asm.invalid.vert delete mode 100644 third_party/spirv-cross/reference/shaders-ue4/asm/frag/depth-compare.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-ue4/asm/frag/global-constant-arrays.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-ue4/asm/frag/padded-float-array-member-defef.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-ue4/asm/frag/sample-mask-not-array.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-ue4/asm/frag/subpass-input.ios.framebuffer-fetch.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-ue4/asm/frag/subpass-input.msl23.framebuffer-fetch.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-ue4/asm/frag/texture-atomics.asm.argument.msl2.frag delete mode 100644 third_party/spirv-cross/reference/shaders-ue4/asm/frag/texture-atomics.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders-ue4/asm/frag/texture-atomics.asm.graphics-robust-access.frag delete mode 100644 third_party/spirv-cross/reference/shaders-ue4/asm/tesc/hs-incorrect-base-type.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-ue4/asm/tesc/hs-input-array-access.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-ue4/asm/tesc/hs-texcoord-array.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.asm.tesc delete mode 100644 third_party/spirv-cross/reference/shaders-ue4/asm/tese/ds-double-gl-in-deref.asm.tese delete mode 100644 third_party/spirv-cross/reference/shaders-ue4/asm/tese/ds-patch-input-fixes.asm.tese delete mode 100644 third_party/spirv-cross/reference/shaders-ue4/asm/tese/ds-patch-inputs.asm.tese delete mode 100644 third_party/spirv-cross/reference/shaders-ue4/asm/tese/ds-texcoord-array.asm.tese delete mode 100644 third_party/spirv-cross/reference/shaders-ue4/asm/vert/array-missing-copies.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders-ue4/asm/vert/texture-buffer.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders/amd/gcn_shader.comp delete mode 100644 third_party/spirv-cross/reference/shaders/amd/shader_ballot.comp delete mode 100644 third_party/spirv-cross/reference/shaders/amd/shader_group_vote.comp delete mode 100644 third_party/spirv-cross/reference/shaders/amd/shader_trinary_minmax.comp delete mode 100644 third_party/spirv-cross/reference/shaders/asm/comp/atomic-decrement.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders/asm/comp/atomic-increment.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders/asm/comp/bitcast_iadd.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders/asm/comp/bitcast_icmp.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders/asm/comp/bitcast_iequal.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders/asm/comp/bitcast_sar.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders/asm/comp/bitcast_sdiv.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders/asm/comp/bitcast_slr.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders/asm/comp/block-name-alias-global.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders/asm/comp/builtin-compute-bitcast.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders/asm/comp/decoration-group.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders/asm/comp/global-parameter-name-alias.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders/asm/comp/hlsl-functionality.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders/asm/comp/logical.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders/asm/comp/multiple-entry.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders/asm/comp/nmin-max-clamp.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders/asm/comp/op-phi-swap.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders/asm/comp/quantize.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders/asm/comp/recompile-block-naming.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders/asm/comp/specialization-constant-workgroup.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders/asm/comp/switch-break-ladder.asm.comp delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/combined-sampler-reuse.vk.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/combined-sampler-reuse.vk.asm.frag.vk delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/complex-name-workarounds.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/composite-construct-struct-no-swizzle.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/default-member-names.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/do-while-statement-fallback.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/empty-struct.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/for-loop-phi-only-continue.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/frem.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/function-overload-alias.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/hlsl-sample-cmp-level-zero-cube.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/hlsl-sample-cmp-level-zero.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/image-extract-reuse.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/image-fetch-no-sampler.asm.vk.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/image-fetch-no-sampler.asm.vk.frag.vk delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/image-fetch-no-sampler.no-samplerless.asm.vk.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/image-fetch-no-sampler.no-samplerless.asm.vk.frag.vk delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/image-query-no-sampler.no-samplerless.vk.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/image-query-no-sampler.no-samplerless.vk.asm.frag.vk delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/image-query-no-sampler.vk.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/image-query-no-sampler.vk.asm.frag.vk delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/implicit-read-dep-phi.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/inf-nan-constant-double.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/inf-nan-constant.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/invalidation.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/line-directive.line.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/locations-components.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/loop-body-dominator-continue-access.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/loop-header-to-continue.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/lut-promotion-initializer.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/multi-for-loop-init.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/op-constant-null.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/op-phi-swap-continue-block.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/pack-and-unpack-uint2.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/pass-by-value.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/phi-loop-variable.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/sample-and-compare.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/sampler-buffer-array-without-sampler.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/sampler-buffer-without-sampler.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/single-function-private-lut.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/srem.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/storage-class-output-initializer.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/struct-composite-extract-swizzle.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/switch-label-shared-block.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/temporary-name-alias.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/temporary-phi-hoisting.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/texel-fetch-no-lod.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/texture-sampling-fp16.asm.vk.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/texture-sampling-fp16.asm.vk.frag.vk delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/undef-variable-store.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/unknown-depth-state.asm.vk.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/unknown-depth-state.asm.vk.frag.vk delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/unreachable.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/frag/vector-shuffle-oom.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/asm/geom/block-name-namespace.asm.geom delete mode 100644 third_party/spirv-cross/reference/shaders/asm/geom/inout-split-access-chain-handle.asm.geom delete mode 100644 third_party/spirv-cross/reference/shaders/asm/geom/split-access-chain-input.asm.geom delete mode 100644 third_party/spirv-cross/reference/shaders/asm/geom/unroll-glposition-load.asm.geom delete mode 100644 third_party/spirv-cross/reference/shaders/asm/tese/unroll-input-array-load.asm.tese delete mode 100644 third_party/spirv-cross/reference/shaders/asm/vert/empty-io.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders/asm/vert/extract-transposed-matrix-from-struct.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders/asm/vert/global-builtin.sso.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders/asm/vert/invariant-block.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders/asm/vert/invariant-block.sso.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders/asm/vert/invariant.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders/asm/vert/invariant.sso.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders/asm/vert/spec-constant-op-composite.asm.vk.vert delete mode 100644 third_party/spirv-cross/reference/shaders/asm/vert/spec-constant-op-composite.asm.vk.vert.vk delete mode 100644 third_party/spirv-cross/reference/shaders/asm/vert/uint-vertex-id-instance-id.asm.vert delete mode 100644 third_party/spirv-cross/reference/shaders/comp/atomic.comp delete mode 100644 third_party/spirv-cross/reference/shaders/comp/bake_gradient.comp delete mode 100644 third_party/spirv-cross/reference/shaders/comp/barriers.comp delete mode 100644 third_party/spirv-cross/reference/shaders/comp/basic.comp delete mode 100644 third_party/spirv-cross/reference/shaders/comp/casts.comp delete mode 100644 third_party/spirv-cross/reference/shaders/comp/cfg-preserve-parameter.comp delete mode 100644 third_party/spirv-cross/reference/shaders/comp/cfg.comp delete mode 100644 third_party/spirv-cross/reference/shaders/comp/coherent-block.comp delete mode 100644 third_party/spirv-cross/reference/shaders/comp/coherent-image.comp delete mode 100644 third_party/spirv-cross/reference/shaders/comp/composite-array-initialization.comp delete mode 100644 third_party/spirv-cross/reference/shaders/comp/composite-construct.comp delete mode 100644 third_party/spirv-cross/reference/shaders/comp/culling.comp delete mode 100644 third_party/spirv-cross/reference/shaders/comp/defer-parens.comp delete mode 100644 third_party/spirv-cross/reference/shaders/comp/dowhile.comp delete mode 100644 third_party/spirv-cross/reference/shaders/comp/generate_height.comp delete mode 100644 third_party/spirv-cross/reference/shaders/comp/image.comp delete mode 100644 third_party/spirv-cross/reference/shaders/comp/insert.comp delete mode 100644 third_party/spirv-cross/reference/shaders/comp/mat3.comp delete mode 100644 third_party/spirv-cross/reference/shaders/comp/mod.comp delete mode 100644 third_party/spirv-cross/reference/shaders/comp/modf.comp delete mode 100644 third_party/spirv-cross/reference/shaders/comp/outer-product.comp delete mode 100644 third_party/spirv-cross/reference/shaders/comp/read-write-only.comp delete mode 100644 third_party/spirv-cross/reference/shaders/comp/rmw-matrix.comp delete mode 100644 third_party/spirv-cross/reference/shaders/comp/rmw-opt.comp delete mode 100644 third_party/spirv-cross/reference/shaders/comp/scalar-std450-distance-length-normalize.comp delete mode 100644 third_party/spirv-cross/reference/shaders/comp/shared.comp delete mode 100644 third_party/spirv-cross/reference/shaders/comp/ssbo-array-length.comp delete mode 100644 third_party/spirv-cross/reference/shaders/comp/ssbo-array.comp delete mode 100644 third_party/spirv-cross/reference/shaders/comp/struct-layout.comp delete mode 100644 third_party/spirv-cross/reference/shaders/comp/struct-packing.comp delete mode 100644 third_party/spirv-cross/reference/shaders/comp/torture-loop.comp delete mode 100644 third_party/spirv-cross/reference/shaders/comp/type-alias.comp delete mode 100644 third_party/spirv-cross/reference/shaders/comp/udiv.comp delete mode 100644 third_party/spirv-cross/reference/shaders/desktop-only/comp/enhanced-layouts.comp delete mode 100644 third_party/spirv-cross/reference/shaders/desktop-only/comp/extended-arithmetic.desktop.comp delete mode 100644 third_party/spirv-cross/reference/shaders/desktop-only/comp/fp64.desktop.comp delete mode 100644 third_party/spirv-cross/reference/shaders/desktop-only/comp/image-formats.desktop.noeliminate.comp delete mode 100644 third_party/spirv-cross/reference/shaders/desktop-only/comp/int64.desktop.comp delete mode 100644 third_party/spirv-cross/reference/shaders/desktop-only/frag/clip-cull-distance.desktop.frag delete mode 100644 third_party/spirv-cross/reference/shaders/desktop-only/frag/control-dependent-in-branch.desktop.frag delete mode 100644 third_party/spirv-cross/reference/shaders/desktop-only/frag/depth-greater-than.desktop.frag delete mode 100644 third_party/spirv-cross/reference/shaders/desktop-only/frag/depth-less-than.desktop.frag delete mode 100644 third_party/spirv-cross/reference/shaders/desktop-only/frag/dual-source-blending.desktop.frag delete mode 100644 third_party/spirv-cross/reference/shaders/desktop-only/frag/hlsl-uav-block-alias.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/desktop-only/frag/image-ms.desktop.frag delete mode 100644 third_party/spirv-cross/reference/shaders/desktop-only/frag/image-query.desktop.frag delete mode 100644 third_party/spirv-cross/reference/shaders/desktop-only/frag/image-size.frag delete mode 100644 third_party/spirv-cross/reference/shaders/desktop-only/frag/image-size.no-qualifier-deduction.frag delete mode 100644 third_party/spirv-cross/reference/shaders/desktop-only/frag/in-block-qualifiers.frag delete mode 100644 third_party/spirv-cross/reference/shaders/desktop-only/frag/layout-component.desktop.frag delete mode 100644 third_party/spirv-cross/reference/shaders/desktop-only/frag/query-levels.desktop.frag delete mode 100644 third_party/spirv-cross/reference/shaders/desktop-only/frag/query-lod.desktop.frag delete mode 100644 third_party/spirv-cross/reference/shaders/desktop-only/frag/sampler-ms-query.desktop.frag delete mode 100644 third_party/spirv-cross/reference/shaders/desktop-only/frag/stencil-export.desktop.frag delete mode 100644 third_party/spirv-cross/reference/shaders/desktop-only/frag/texture-proj-shadow.desktop.frag delete mode 100644 third_party/spirv-cross/reference/shaders/desktop-only/geom/basic.desktop.sso.geom delete mode 100644 third_party/spirv-cross/reference/shaders/desktop-only/geom/viewport-index.desktop.geom delete mode 100644 third_party/spirv-cross/reference/shaders/desktop-only/tesc/basic.desktop.sso.tesc delete mode 100644 third_party/spirv-cross/reference/shaders/desktop-only/tese/triangle.desktop.sso.tese delete mode 100644 third_party/spirv-cross/reference/shaders/desktop-only/vert/basic.desktop.sso.vert delete mode 100644 third_party/spirv-cross/reference/shaders/desktop-only/vert/clip-cull-distance.desktop.sso.vert delete mode 100644 third_party/spirv-cross/reference/shaders/desktop-only/vert/clip-cull-distance.desktop.vert delete mode 100644 third_party/spirv-cross/reference/shaders/desktop-only/vert/out-block-qualifiers.vert delete mode 100644 third_party/spirv-cross/reference/shaders/desktop-only/vert/shader-draw-parameters-450.desktop.vk.vert delete mode 100644 third_party/spirv-cross/reference/shaders/desktop-only/vert/shader-draw-parameters-450.desktop.vk.vert.vk delete mode 100644 third_party/spirv-cross/reference/shaders/desktop-only/vert/shader-draw-parameters.desktop.vk.vert delete mode 100644 third_party/spirv-cross/reference/shaders/desktop-only/vert/shader-draw-parameters.desktop.vk.vert.vk delete mode 100644 third_party/spirv-cross/reference/shaders/flatten/array.flatten.vert delete mode 100644 third_party/spirv-cross/reference/shaders/flatten/basic.flatten.vert delete mode 100644 third_party/spirv-cross/reference/shaders/flatten/copy.flatten.vert delete mode 100644 third_party/spirv-cross/reference/shaders/flatten/dynamic.flatten.vert delete mode 100644 third_party/spirv-cross/reference/shaders/flatten/matrix-conversion.flatten.frag delete mode 100644 third_party/spirv-cross/reference/shaders/flatten/matrixindex.flatten.vert delete mode 100644 third_party/spirv-cross/reference/shaders/flatten/multiindex.flatten.vert delete mode 100644 third_party/spirv-cross/reference/shaders/flatten/push-constant.flatten.vert delete mode 100644 third_party/spirv-cross/reference/shaders/flatten/rowmajor.flatten.vert delete mode 100644 third_party/spirv-cross/reference/shaders/flatten/struct.flatten.vert delete mode 100644 third_party/spirv-cross/reference/shaders/flatten/struct.rowmajor.flatten.vert delete mode 100644 third_party/spirv-cross/reference/shaders/flatten/swizzle.flatten.vert delete mode 100644 third_party/spirv-cross/reference/shaders/flatten/types.flatten.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/array-lut-no-loop-variable.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/avoid-expression-lowering-to-loop.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/barycentric-nv.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/basic.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/complex-expression-in-access-chain.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/composite-extract-forced-temporary.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/constant-array.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/constant-composites.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/false-loop-init.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/flush_params.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/for-loop-continue-control-flow.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/for-loop-init.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/frexp-modf.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/front-facing.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/gather-dref.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/ground.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/helper-invocation.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/hoisted-temporary-use-continue-block-as-value.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/image-load-store-uint-coord.asm.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/inside-loop-dominated-variable-preservation.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/loop-dominator-and-switch-default.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/lut-promotion.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/mix.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/partial-write-preserve.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/pixel-interlock-ordered.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/pixel-interlock-unordered.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/pls.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/post-depth-coverage-es.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/post-depth-coverage.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/round-even.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/round.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/sample-interlock-ordered.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/sample-interlock-unordered.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/sample-parameter.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/sampler-ms.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/sampler-proj.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/sampler.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/scalar-refract-reflect.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/selection-block-dominator.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/struct-type-unrelated-alias.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/switch-unsigned-case.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/swizzle.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/texel-fetch-offset.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/ubo-load-row-major-workaround.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/ubo_layout.frag delete mode 100644 third_party/spirv-cross/reference/shaders/frag/unary-enclose.frag delete mode 100644 third_party/spirv-cross/reference/shaders/geom/basic.geom delete mode 100644 third_party/spirv-cross/reference/shaders/geom/geometry-passthrough.geom delete mode 100644 third_party/spirv-cross/reference/shaders/geom/lines-adjacency.geom delete mode 100644 third_party/spirv-cross/reference/shaders/geom/lines.geom delete mode 100644 third_party/spirv-cross/reference/shaders/geom/multi-stream.geom delete mode 100644 third_party/spirv-cross/reference/shaders/geom/points.geom delete mode 100644 third_party/spirv-cross/reference/shaders/geom/single-invocation.geom delete mode 100644 third_party/spirv-cross/reference/shaders/geom/transform-feedback-streams.geom delete mode 100644 third_party/spirv-cross/reference/shaders/geom/triangles-adjacency.geom delete mode 100644 third_party/spirv-cross/reference/shaders/geom/triangles.geom delete mode 100644 third_party/spirv-cross/reference/shaders/legacy/fragment/explicit-lod.legacy.frag delete mode 100644 third_party/spirv-cross/reference/shaders/legacy/fragment/explicit-lod.legacy.vert delete mode 100644 third_party/spirv-cross/reference/shaders/legacy/fragment/fma.legacy.frag delete mode 100644 third_party/spirv-cross/reference/shaders/legacy/fragment/io-blocks.legacy.frag delete mode 100644 third_party/spirv-cross/reference/shaders/legacy/fragment/multiple-struct-flattening.legacy.frag delete mode 100644 third_party/spirv-cross/reference/shaders/legacy/fragment/round.legacy.frag delete mode 100644 third_party/spirv-cross/reference/shaders/legacy/fragment/struct-varying.legacy.frag delete mode 100644 third_party/spirv-cross/reference/shaders/legacy/fragment/switch.legacy.frag delete mode 100644 third_party/spirv-cross/reference/shaders/legacy/vert/implicit-lod.legacy.vert delete mode 100644 third_party/spirv-cross/reference/shaders/legacy/vert/io-block.legacy.vert delete mode 100644 third_party/spirv-cross/reference/shaders/legacy/vert/struct-flatten-inner-array.legacy.vert delete mode 100644 third_party/spirv-cross/reference/shaders/legacy/vert/struct-flatten-stores-multi-dimension.legacy.vert delete mode 100644 third_party/spirv-cross/reference/shaders/legacy/vert/struct-varying.legacy.vert delete mode 100644 third_party/spirv-cross/reference/shaders/legacy/vert/switch-nested.legacy.vert delete mode 100644 third_party/spirv-cross/reference/shaders/legacy/vert/transpose.legacy.vert delete mode 100644 third_party/spirv-cross/reference/shaders/tesc/basic.tesc delete mode 100644 third_party/spirv-cross/reference/shaders/tesc/water_tess.tesc delete mode 100644 third_party/spirv-cross/reference/shaders/tese/ccw.tese delete mode 100644 third_party/spirv-cross/reference/shaders/tese/cw.tese delete mode 100644 third_party/spirv-cross/reference/shaders/tese/equal.tese delete mode 100644 third_party/spirv-cross/reference/shaders/tese/fractional_even.tese delete mode 100644 third_party/spirv-cross/reference/shaders/tese/fractional_odd.tese delete mode 100644 third_party/spirv-cross/reference/shaders/tese/input-array.tese delete mode 100644 third_party/spirv-cross/reference/shaders/tese/line.tese delete mode 100644 third_party/spirv-cross/reference/shaders/tese/load-array-of-array.tese delete mode 100644 third_party/spirv-cross/reference/shaders/tese/patch-input-array.tese delete mode 100644 third_party/spirv-cross/reference/shaders/tese/triangle.tese delete mode 100644 third_party/spirv-cross/reference/shaders/tese/water_tess.tese delete mode 100644 third_party/spirv-cross/reference/shaders/vert/basic.vert delete mode 100644 third_party/spirv-cross/reference/shaders/vert/ground.vert delete mode 100644 third_party/spirv-cross/reference/shaders/vert/invariant.vert delete mode 100644 third_party/spirv-cross/reference/shaders/vert/no-contraction.vert delete mode 100644 third_party/spirv-cross/reference/shaders/vert/ocean.vert delete mode 100644 third_party/spirv-cross/reference/shaders/vert/read-from-row-major-array.vert delete mode 100644 third_party/spirv-cross/reference/shaders/vert/return-array.vert delete mode 100644 third_party/spirv-cross/reference/shaders/vert/texture_buffer.vert delete mode 100644 third_party/spirv-cross/reference/shaders/vert/transform-feedback-decorations.vert delete mode 100644 third_party/spirv-cross/reference/shaders/vert/ubo.vert delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/comp/array-of-buffer-reference.nocompat.vk.comp.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/comp/buffer-reference-bitcast.nocompat.vk.comp.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/comp/buffer-reference-decorations.nocompat.vk.comp.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/comp/buffer-reference.nocompat.vk.comp.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/comp/spec-constant-op-member-array.vk.comp delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/comp/spec-constant-op-member-array.vk.comp.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/comp/spec-constant-work-group-size.vk.comp delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/comp/spec-constant-work-group-size.vk.comp.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/frag/combined-texture-sampler-shadow.vk.frag delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/frag/combined-texture-sampler-shadow.vk.frag.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/frag/combined-texture-sampler.vk.frag delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/frag/combined-texture-sampler.vk.frag.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/frag/demote-to-helper-forwarding.asm.vk.nocompat.frag.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/frag/demote-to-helper.vk.nocompat.frag.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/frag/desktop-mediump.vk.frag delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/frag/desktop-mediump.vk.frag.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/frag/input-attachment-ms.vk.frag delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/frag/input-attachment-ms.vk.frag.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/frag/input-attachment.vk.frag delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/frag/input-attachment.vk.frag.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/frag/nonuniform-qualifier.vk.nocompat.frag.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/frag/push-constant-as-ubo.push-ubo.vk.frag delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/frag/push-constant-as-ubo.push-ubo.vk.frag.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/frag/push-constant.vk.frag delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/frag/push-constant.vk.frag.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/frag/separate-combined-fake-overload.vk.frag delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/frag/separate-combined-fake-overload.vk.frag.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/frag/separate-sampler-texture-array.vk.frag delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/frag/separate-sampler-texture-array.vk.frag.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/frag/separate-sampler-texture.vk.frag delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/frag/separate-sampler-texture.vk.frag.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/frag/shader-arithmetic-8bit.nocompat.vk.frag.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/frag/spec-constant-block-size.vk.frag delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/frag/spec-constant-block-size.vk.frag.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/frag/spec-constant-ternary.vk.frag delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/frag/spec-constant-ternary.vk.frag.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rahit/terminators.khr.spv14.nocompat.vk.rahit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rahit/terminators.nocompat.vk.rahit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rcall/incoming-callable.khr.spv14.nocompat.vk.rcall.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_attribute_block.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_attribute_block.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_attribute_block_in_function.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_attribute_block_in_function.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_attribute_plain.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_attribute_plain.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_attribute_struct.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_attribute_struct.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_kind.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_kind.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_t.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_t.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/incoming_ray_flags.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/incoming_ray_flags.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/instance_custom_id.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/instance_custom_id.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/instance_id.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/instance_id.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/object_ray_direction.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/object_ray_direction.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/object_ray_origin.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/object_ray_origin.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/object_to_world.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/object_to_world.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/payloads.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/payloads.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/primitive_id.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/primitive_id.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/ray_tmax.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/ray_tmax.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/ray_tmin.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/ray_tmin.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/ray_tracing.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/ray_tracing.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/world_ray_direction.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/world_ray_direction.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/world_ray_origin.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/world_ray_origin.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/world_to_object.khr.spv14.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rchit/world_to_object.nocompat.vk.rchit.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rgen/convert-u-to-as.spv14.vk.nocompat.rgen.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rgen/execute_callable.nocompat.khr.spv14.vk.rgen.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rgen/execute_callable.nocompat.vk.rgen.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rgen/launch_id.khr.spv14.nocompat.vk.rgen.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rgen/launch_id.nocompat.vk.rgen.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rgen/launch_size.khr.spv14.nocompat.vk.rgen.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rgen/launch_size.nocompat.vk.rgen.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rgen/payloads.khr.spv14.nocompat.vk.rgen.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rgen/payloads.nocompat.vk.rgen.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rgen/pure_call.khr.spv14.nocompat.vk.rgen.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rgen/pure_call.nocompat.vk.rgen.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rgen/ray_tracing.khr.spv14.nocompat.vk.rgen.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rgen/ray_tracing.nocompat.vk.rgen.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rgen/shader_record_buffer.khr.spv14.nocompat.vk.rgen.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rgen/shader_record_buffer.nocompat.vk.rgen.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rint/report-intersection.khr.spv14.nocompat.vk.rint.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rint/report-intersection.nocompat.vk.rint.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rmiss/ray_tracing.khr.spv14.nocompat.vk.rmiss.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rmiss/ray_tracing.nocompat.vk.rmiss.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/rmiss/ray_tracing_trace_incoming.khr.spv14.nocompat.vk.rmiss.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/vert/device-group.nocompat.vk.vert.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/vert/multiview.nocompat.vk.vert.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/vert/small-storage.vk.vert delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/vert/small-storage.vk.vert.vk delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/vert/vulkan-vertex.vk.vert delete mode 100644 third_party/spirv-cross/reference/shaders/vulkan/vert/vulkan-vertex.vk.vert.vk delete mode 100644 third_party/spirv-cross/samples/cpp/Makefile delete mode 100644 third_party/spirv-cross/samples/cpp/atomics.comp delete mode 100644 third_party/spirv-cross/samples/cpp/atomics.cpp delete mode 100644 third_party/spirv-cross/samples/cpp/multiply.comp delete mode 100644 third_party/spirv-cross/samples/cpp/multiply.cpp delete mode 100644 third_party/spirv-cross/samples/cpp/shared.comp delete mode 100644 third_party/spirv-cross/samples/cpp/shared.cpp delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/access-chain-load-store-composite.asm.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/aliased-struct-divergent-member-name.asm.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/atomic-load-store.asm.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/atomic-result-temporary.asm.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/bitfield-signed-operations.asm.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/bitscan.asm.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/buffer-atomic-nonuniform.asm.sm51.nonuniformresource.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/constant-composite-undef.asm.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/eliminate-globals-not-in-entry-point.noeliminate.spv14.asm.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/glsl-signed-operations.asm.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/glsl.std450.frexp-modf-struct.fxconly.asm.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/image-atomic-nonuniform.asm.sm51.nonuniformresource.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/specialization-constant-workgroup.nofxc.asm.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/storage-buffer-basic.nofxc.asm.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/empty-struct-in-struct.asm.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/image-fetch-uint-coord.asm.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/nonuniform-bracket-handling-2.nonuniformresource.sm51.asm.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/nonuniform-qualifier-propagation.nonuniformresource.sm51.asm.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/nonuniform-ssbo.sm51.nonuniformresource.asm.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/only-initializer-frag-depth.asm.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/phi.zero-initialize.asm.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/pixel-interlock-callstack.sm51.fxconly.asm.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/pixel-interlock-control-flow.sm51.fxconly.asm.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/pixel-interlock-split-functions.sm51.fxconly.asm.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/reserved-function-identifier.asm.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/struct-packing-last-element-array-matrix-rule.invalid.asm.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/subgroup-arithmetic-cast.invalid.nofxc.sm60.asm.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/switch-block-case-fallthrough.asm.invalid.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/unordered-compare.asm.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/vector-shuffle-undef-index.asm.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/asm/temporary.zero-initialize.asm.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/asm/vert/block-struct-initializer.asm.vert delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/asm/vert/builtin-output-initializer.asm.vert delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/asm/vert/complex-link-by-name.asm.vert delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/asm/vert/empty-struct-composite.asm.vert delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/comp/bitfield.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/comp/glsl.std450.fxconly.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/comp/illegal-struct-name.asm.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/comp/subgroups-boolean.invalid.nofxc.sm60.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/comp/subgroups.invalid.nofxc.sm60.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/frag/cbuffer-packing-straddle.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/frag/constant-buffer-array.invalid.sm51.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/frag/fp16.invalid.desktop.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/frag/frag-coord.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/frag/native-16bit-types.fxconly.nofxc.sm62.native-16bit.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/frag/nonuniform-constructor.sm51.nonuniformresource.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/frag/pixel-interlock-simple-callstack.sm51.fxconly.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/frag/spec-constant.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/frag/ubo-offset-out-of-order.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/frag/variables.zero-initialize.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/vert/block-io-auto-location-assignment.vert delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/vert/flatten-matrix-input.flatten-matrix-vertex-input.vert delete mode 100644 third_party/spirv-cross/shaders-hlsl-no-opt/vert/pass-array-by-value.vert delete mode 100644 third_party/spirv-cross/shaders-hlsl/asm/comp/access-chain-invalidate.asm.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl/asm/comp/atomic-decrement.asm.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl/asm/comp/atomic-increment.asm.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl/asm/comp/bitcast_icmp.asm.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl/asm/comp/block-name-alias-global.asm.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl/asm/comp/control-flow-hints.asm.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl/asm/comp/global-parameter-name-alias.asm.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl/asm/comp/nmin-max-clamp.asm.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl/asm/frag/cbuffer-stripped.asm.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/asm/frag/combined-sampler-reuse.asm.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/asm/frag/empty-struct.asm.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/asm/frag/frem.asm.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/asm/frag/function-overload-alias.asm.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/asm/frag/image-extract-reuse.asm.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/asm/frag/implicit-read-dep-phi.asm.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/asm/frag/inf-nan-constant.asm.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/asm/frag/line-directive.line.asm.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/asm/frag/lut-promotion-initializer.asm.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/asm/frag/pack-and-unpack-uint2.fxconly.nofxc.sm60.asm.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/asm/frag/pass-by-value.asm.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/asm/frag/sample-and-compare.asm.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/asm/frag/single-function-private-lut.asm.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/asm/frag/srem.asm.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/asm/frag/storage-class-output-initializer.asm.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/asm/frag/texel-fetch-no-lod.asm.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/asm/frag/texture-sampling-fp16.asm.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/asm/frag/unknown-depth-state.asm.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/asm/frag/unreachable.asm.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/asm/vert/extract-transposed-matrix-from-struct.asm.vert delete mode 100644 third_party/spirv-cross/shaders-hlsl/asm/vert/spec-constant-op-composite.asm.vert delete mode 100644 third_party/spirv-cross/shaders-hlsl/asm/vert/uint-vertex-id-instance-id.asm.vert delete mode 100644 third_party/spirv-cross/shaders-hlsl/asm/vert/vertex-id-instance-id.asm.vert delete mode 100644 third_party/spirv-cross/shaders-hlsl/comp/access-chain-load-composite.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl/comp/access-chains.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl/comp/access-chains.force-uav.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl/comp/address-buffers.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl/comp/atomic.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl/comp/barriers.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl/comp/builtins.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl/comp/composite-array-initialization.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl/comp/globallycoherent.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl/comp/image.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl/comp/image.nonwritable-uav-texture.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl/comp/inverse.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl/comp/num-workgroups-alone.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl/comp/num-workgroups-with-builtins.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl/comp/outer-product.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl/comp/rmw-matrix.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl/comp/rwbuffer-matrix.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl/comp/scalar-std450-distance-length-normalize.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl/comp/shared.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl/comp/spec-constant-op-member-array.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl/comp/spec-constant-work-group-size.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl/comp/ssbo-array-length.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl/comp/ssbo-array.comp delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/array-lut-no-loop-variable.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/basic-color-3comp.sm30.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/basic-color-3comp.sm50.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/basic.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/bit-conversions.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/boolean-mix.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/builtins.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/bvec-operations.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/clip-cull-distance.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/combined-texture-sampler-parameter.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/combined-texture-sampler-shadow.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/complex-expression-in-access-chain.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/constant-composites.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/control-dependent-in-branch.desktop.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/demote-to-helper.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/depth-greater-than.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/depth-less-than.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/dual-source-blending.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/early-fragment-test.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/for-loop-continue-control-flow.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/fp16-packing.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/front-facing.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/image-query-selective.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/image-query-uav.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/image-query-uav.nonwritable-uav-texture.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/image-query.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/input-attachment-ms.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/input-attachment.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/io-block.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/legacy-tex-modifiers.sm30.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/lut-promotion.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/matrix-input.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/mod.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/mrt.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/no-return.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/no-return2.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/nonuniform-qualifier.nonuniformresource.sm51.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/partial-write-preserve.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/pixel-interlock-ordered.sm51.fxconly.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/point-coord-compat.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/query-lod.desktop.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/readonly-coherent-ssbo.force-uav.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/readonly-coherent-ssbo.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/resources.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/row-major-layout-in-struct.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/sample-cmp-level-zero.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/sample-mask-in-and-out.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/sample-mask-in.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/sample-mask-out.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/sampler-array.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/sampler-image-arrays.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/scalar-refract-reflect.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/separate-combined-fake-overload.sm30.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/spec-constant-block-size.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/spec-constant-ternary.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/switch-unsigned-case.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/swizzle-scalar.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/tex-sampling-ms.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/tex-sampling.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/texel-fetch-offset.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/texture-proj-shadow.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/texture-size-combined-image-sampler.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/unary-enclose.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/unorm-snorm-packing.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/frag/various-glsl-ops.frag delete mode 100644 third_party/spirv-cross/shaders-hlsl/vert/basic.vert delete mode 100644 third_party/spirv-cross/shaders-hlsl/vert/clip-cull-distance.vert delete mode 100644 third_party/spirv-cross/shaders-hlsl/vert/instancing.vert delete mode 100644 third_party/spirv-cross/shaders-hlsl/vert/invariant.vert delete mode 100644 third_party/spirv-cross/shaders-hlsl/vert/locations.vert delete mode 100644 third_party/spirv-cross/shaders-hlsl/vert/matrix-attribute.vert delete mode 100644 third_party/spirv-cross/shaders-hlsl/vert/matrix-output.vert delete mode 100644 third_party/spirv-cross/shaders-hlsl/vert/no-contraction.vert delete mode 100644 third_party/spirv-cross/shaders-hlsl/vert/no-input.vert delete mode 100644 third_party/spirv-cross/shaders-hlsl/vert/point-size-compat.vert delete mode 100644 third_party/spirv-cross/shaders-hlsl/vert/qualifiers.vert delete mode 100644 third_party/spirv-cross/shaders-hlsl/vert/read-from-row-major-array.vert delete mode 100644 third_party/spirv-cross/shaders-hlsl/vert/return-array.vert delete mode 100644 third_party/spirv-cross/shaders-hlsl/vert/sampler-buffers.vert delete mode 100644 third_party/spirv-cross/shaders-hlsl/vert/struct-composite-decl.vert delete mode 100644 third_party/spirv-cross/shaders-hlsl/vert/texture_buffer.vert delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/comp/aliased-struct-divergent-member-name.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/comp/arithmetic-conversion-signs.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/comp/atomic-load-store.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/comp/atomic-result-temporary.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/comp/bitcast-fp16-fp32.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/comp/bitfield-signed-operations.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/comp/bitscan.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/comp/composite-construct-buffer-struct.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/comp/constant-composite-undef.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/comp/copy-logical-2.spv14.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/comp/copy-logical.spv14.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/comp/device-array-load-temporary.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/comp/device-array-load-temporary.force-native-array.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/comp/device-constant-array-load-store.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/comp/device-constant-array-load-store.force-native-array.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/comp/eliminate-globals-not-in-entry-point.noeliminate.spv14.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/comp/glsl-signed-operations.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/comp/glsl.std450.frexp-modf-struct.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/comp/storage-buffer-basic.invalid.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/comp/storage-buffer-pointer-argument.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/comp/variable-pointers.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/frag/component-insert-packed-expression.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/frag/empty-struct-in-struct.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/frag/fixup-entry-point-identifier.nomain.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/frag/image-fetch-uint-coord.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/frag/image-gather.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/frag/image-type-normal-comparison-usage.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/frag/input-attachment-unused-frag-coord.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/frag/modf-frexp-scalar-access-chain-output.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/frag/only-initializer-frag-depth.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/frag/phi.zero-initialize.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/frag/pixel-interlock-callstack.msl2.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/frag/pixel-interlock-control-flow.msl2.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/frag/pixel-interlock-split-functions.msl2.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/frag/private-initializer-direct-store.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/frag/reserved-function-identifier.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/frag/subgroup-arithmetic-cast.msl21.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/frag/switch-block-case-fallthrough.asm.invalid.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/frag/texture-access.swizzle.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/frag/vector-shuffle-undef-index.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers-block.mask-location-0.msl2.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers-block.mask-location-0.multi-patch.msl2.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers-block.mask-location-1.msl2.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers-block.mask-location-1.multi-patch.msl2.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers-block.mask-point-size.msl2.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers-block.mask-point-size.multi-patch.msl2.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers-block.mask-position.msl2.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers-block.mask-position.multi-patch.msl2.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers.mask-location-0.msl2.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers.mask-location-0.msl2.multi-patch.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers.mask-location-1.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers.mask-location-1.multi-patch.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers.mask-point-size.msl2.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers.mask-point-size.msl2.multi-patch.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers.mask-position.msl2.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers.mask-position.msl2.multi-patch.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/packing/composite-extract-row-major.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding-2.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding-3.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding-4.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding-5.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/packing/packed-vector-extract-insert.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/packing/row-major-split-access-chain.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-array-float2.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-array-float3-one-element.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-array-float3.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-float2x2-col-major.invalid.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-float2x2-row-major.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-float2x3-col-major.invalid.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-float2x3-row-major.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-float3x2-col-major.invalid.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-float3x2-row-major.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-float3x3-col-major.invalid.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-float3x3-row-major.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/temporary.zero-initialize.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/array-control-point-initializer.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/block-control-point-initializer.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/builtin-control-point-initializer.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/composite-control-point-initializer.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/copy-memory-control-point.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/copy-tess-level-tri.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/plain-control-point-initializer.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/tess-fixed-input-array-builtin-array.invalid.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/tess-fixed-input-array-builtin-array.invalid.multi-patch.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/tess-level-initializer-quad.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/tess-level-initializer-triangle.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/tess-level-read-write-in-function-tri.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/tese/copy-tess-level.asm.msl2.tese delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/tese/split-access-chain.asm.tese delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/vert/block-struct-initializer.asm.vert delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/vert/builtin-output-initializer.asm.vert delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/vert/composite-extract-physical-type-id.asm.vert delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/vert/duplicate-view-index.asm.vert delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/vert/empty-struct-composite.asm.vert delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/vert/op-load-forced-temporary-array.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/asm/vert/pointer-to-pointer.asm.vert delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/comp/array-copy-threadgroup-memory.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/comp/basic.dynamic-buffer.msl2.invalid.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/comp/bitcast-16bit-1.invalid.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/comp/bitcast-16bit-2.invalid.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/comp/bitfield.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/comp/glsl.std450.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/comp/illegal-struct-name.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/comp/int64.invalid.msl22.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/comp/loop.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/comp/return.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/comp/std140-array-load-composite-construct.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/comp/struct-packing-scalar.nocompat.invalid.vk.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl12.emulate-subgroup.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl21.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl21.fixed-subgroup.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl21.ios.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl22.ios.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl23.ios.simd.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/components/fragment-input-component.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/components/fragment-output-component.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/components/fragment-output-component.pad-fragment.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/components/vertex-input-component.vert delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/components/vertex-output-component.vert delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/frag/16bit-constants.invalid.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/frag/demote-to-helper.vk.nocompat.msl21.invalid.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/frag/depth-image-gather.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/frag/force-active-resources.msl2.argument..force-active.discrete.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/frag/fp16.desktop.invalid.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/frag/image-gather.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/frag/in_block_assign.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/frag/min-max-clamp.invalid.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/frag/nonuniform-constructor.msl2.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/frag/pixel-interlock-simple-callstack.msl2.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/frag/scalar-block-layout-ubo-std430.vk.nocompat.invalid.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/frag/shadow-compare-global-alias.invalid.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/frag/subgroups.nocompat.invalid.vk.msl22.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/frag/subpass-input-attachment-index-fallback.msl20.ios.framebuffer-fetch.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/frag/subpass-input-attachment-index-fallback.msl23.framebuffer-fetch.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/frag/subpass-input-function-argument.framebuffer-fetch.ios.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/frag/subpass-input-function-argument.framebuffer-fetch.msl23.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/frag/subpass-input.decoration-binding.framebuffer-fetch.msl23.argument.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/frag/subpass-input.decoration-binding.framebuffer-fetch.msl23.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/frag/subpass-input.decoration-binding.ios.framebuffer-fetch.msl2.argument.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/frag/subpass-input.decoration-binding.ios.framebuffer-fetch.msl2.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/frag/texture-access-int.swizzle.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/frag/texture-access-leaf.swizzle.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/frag/texture-access-uint.swizzle.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/frag/texture-access.swizzle.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/frag/ubo-array-multiple-structs-access-chain.argument.msl2.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/frag/ubo-array-multiple-structs-access-chain.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/frag/ubo-offset-out-of-order.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/frag/variables.zero-initialize.frag delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/array-of-vec3.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/array-of-vec4.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/isolated-scalar-access.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/load-store-col-rows.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-2x2-scalar.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-2x2-std140.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-2x2-std430.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-2x3-scalar.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-2x3-std140.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-2x3-std430.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-2x4-scalar.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-2x4-std140.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-2x4-std430.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-3x2-scalar.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-3x2-std140.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-3x2-std430.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-3x3-scalar.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-3x3-std140.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-3x3-std430.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-3x4-scalar.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-3x4-std140.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-3x4-std430.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-4x2-scalar.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-4x2-std140.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-4x2-std430.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-4x3-scalar.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-4x3-std140.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-4x3-std430.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-4x4-scalar.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-4x4-std140.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-4x4-std430.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-multiply-row-major.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-multiply-unpacked-col-major-2.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-multiply-unpacked-col-major.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-multiply-unpacked-row-major-2.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-multiply-unpacked-row-major.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/member-padding.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/std140-array-of-vectors.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/struct-alignment.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/struct-packing-array-of-scalar.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/struct-packing-recursive.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/struct-packing.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/struct-size-padding-array-of-array.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/packing/struct-size-padding.comp delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/tesc/copy-tess-level.tesc delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/tesc/passthrough-clip-cull.multi-patch.tesc delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/tesc/tess-level-read-write-in-function-quad.tesc delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/tese/builtin-input-automatic-attribute-assignment.tese delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/tese/load-clip-cull.msl2.tese delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/vert/cull-distance.for-tess.vert delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/vert/functions_nested.vert delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/vert/layer.msl11.invalid.vert delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/vert/pass-array-by-value.force-native-array.vert delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/vert/pass-array-by-value.vert delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/vert/uninitialized-vertex-output.vert delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/vert/unused-subgroup-builtin.msl22.vert delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/vert/viewport-index.msl2.invalid.vert delete mode 100644 third_party/spirv-cross/shaders-msl-no-opt/vulkan/frag/texture-access-function.swizzle.vk.frag delete mode 100644 third_party/spirv-cross/shaders-msl/amd/shader_trinary_minmax.msl21.comp delete mode 100644 third_party/spirv-cross/shaders-msl/asm/comp/atomic-decrement.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl/asm/comp/atomic-increment.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl/asm/comp/bitcast_iadd.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl/asm/comp/bitcast_icmp.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl/asm/comp/bitcast_sar.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl/asm/comp/bitcast_sdiv.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl/asm/comp/bitcast_slr.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl/asm/comp/block-name-alias-global.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl/asm/comp/buffer-write-relative-addr.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl/asm/comp/buffer-write.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl/asm/comp/global-parameter-name-alias.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl/asm/comp/image-load-store-short-vector.invalid.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl/asm/comp/multiple-entry.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl/asm/comp/quantize.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl/asm/comp/relaxed-block-layout.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl/asm/comp/specialization-constant-workgroup.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl/asm/comp/struct-resource-name-aliasing.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl/asm/comp/variable-pointers-2.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl/asm/comp/variable-pointers-store-forwarding.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl/asm/comp/vector-builtin-type-cast-func.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl/asm/comp/vector-builtin-type-cast.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl/asm/frag/combined-sampler-reuse.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl/asm/frag/default-member-names.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl/asm/frag/descriptor-array-unnamed.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl/asm/frag/disable-renamed-output.frag-output.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl/asm/frag/empty-struct.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl/asm/frag/extract-packed-from-composite.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl/asm/frag/frem.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl/asm/frag/function-overload-alias.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl/asm/frag/image-extract-reuse.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl/asm/frag/implicit-read-dep-phi.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl/asm/frag/inf-nan-constant.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl/asm/frag/interpolation-qualifiers-struct.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl/asm/frag/line-directive.line.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl/asm/frag/locations-components.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl/asm/frag/lut-promotion-initializer.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl/asm/frag/min-lod.msl22.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl/asm/frag/op-constant-null.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl/asm/frag/op-image-sampled-image.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl/asm/frag/pass-by-value.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl/asm/frag/phi-loop-variable.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl/asm/frag/pull-model-interpolation.asm.msl23.frag delete mode 100644 third_party/spirv-cross/shaders-msl/asm/frag/sample-and-compare.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl/asm/frag/single-function-private-lut.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl/asm/frag/srem.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl/asm/frag/storage-class-output-initializer.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl/asm/frag/texel-fetch-no-lod.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl/asm/frag/texture-sampling-fp16.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl/asm/frag/undef-variable-store.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl/asm/frag/unknown-depth-state.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl/asm/frag/unord-relational-op.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl/asm/frag/unreachable.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl/asm/frag/vector-shuffle-oom.asm.frag delete mode 100644 third_party/spirv-cross/shaders-msl/asm/tesc/tess-level-overrun.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/asm/tesc/tess-level-overrun.multi-patch.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/asm/tese/unnamed-builtin-array.asm.tese delete mode 100644 third_party/spirv-cross/shaders-msl/asm/vert/clip-distance-plain-variable.asm.vert delete mode 100644 third_party/spirv-cross/shaders-msl/asm/vert/clip-distance-plain-variable.no-user-varying.asm.vert delete mode 100644 third_party/spirv-cross/shaders-msl/asm/vert/copy-memory-interface.asm.vert delete mode 100644 third_party/spirv-cross/shaders-msl/asm/vert/extract-transposed-matrix-from-struct.asm.vert delete mode 100644 third_party/spirv-cross/shaders-msl/asm/vert/fake-builtin-input.asm.vert delete mode 100644 third_party/spirv-cross/shaders-msl/asm/vert/invariant.msl21.asm.vert delete mode 100644 third_party/spirv-cross/shaders-msl/asm/vert/packed-bool-to-uint.asm.vert delete mode 100644 third_party/spirv-cross/shaders-msl/asm/vert/packed-bool2-to-packed_uint2.asm.vert delete mode 100644 third_party/spirv-cross/shaders-msl/asm/vert/packing-test.asm.vert delete mode 100644 third_party/spirv-cross/shaders-msl/asm/vert/spec-constant-op-composite.asm.vert delete mode 100644 third_party/spirv-cross/shaders-msl/asm/vert/uint-vertex-id-instance-id.asm.vert delete mode 100644 third_party/spirv-cross/shaders-msl/comp/access-private-workgroup-in-function.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/argument-buffers-discrete.msl2.argument.discrete.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/argument-buffers-image-load-store.ios.msl2.argument.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/argument-buffers-image-load-store.msl2.argument.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/array-length.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/array-length.msl2.argument.discrete.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/atomic.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/barriers.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/basic.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/basic.dispatchbase.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/basic.dispatchbase.msl11.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/basic.inline-block.msl2.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/builtins.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/cfg-preserve-parameter.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/coherent-block.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/coherent-image.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/complex-composite-constant-array.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/complex-type-alias.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/composite-array-initialization.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/composite-array-initialization.force-native-array.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/composite-construct.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/copy-array-of-arrays.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/copy-array-of-arrays.force-native-array.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/culling.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/defer-parens.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/dowhile.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/force-recompile-hooks.swizzle.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/functions.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/global-invocation-id-writable-ssbo-in-function.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/global-invocation-id.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/image-atomic-automatic-bindings.argument.msl2.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/image-atomic-automatic-bindings.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/image-cube-array-load-store.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/image.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/insert.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/inverse.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/local-invocation-id.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/local-invocation-index.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/mat3.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/mod.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/modf.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/outer-product.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/packing-test-1.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/packing-test-2.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/read-write-only.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/rmw-matrix.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/rmw-opt.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/scalar-std450-distance-length-normalize.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/shared-array-of-arrays.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/shared.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/spec-constant-op-member-array.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/spec-constant-work-group-size.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/storage-buffer-std140-vector-array.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/struct-layout.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/struct-nested.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/struct-packing.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/torture-loop.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/type-alias.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/udiv.comp delete mode 100644 third_party/spirv-cross/shaders-msl/comp/writable-ssbo.comp delete mode 100644 third_party/spirv-cross/shaders-msl/desktop-only/comp/extended-arithmetic.desktop.comp delete mode 100644 third_party/spirv-cross/shaders-msl/desktop-only/frag/image-ms.desktop.frag delete mode 100644 third_party/spirv-cross/shaders-msl/desktop-only/frag/query-levels.desktop.frag delete mode 100644 third_party/spirv-cross/shaders-msl/desktop-only/frag/sampler-ms-query.desktop.frag delete mode 100644 third_party/spirv-cross/shaders-msl/desktop-only/tesc/arrayed-output.desktop.sso.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/desktop-only/tesc/basic.desktop.sso.multi-patch.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/desktop-only/tesc/basic.desktop.sso.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/desktop-only/tesc/struct-copy.desktop.sso.multi-patch.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/desktop-only/tesc/struct-copy.desktop.sso.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/desktop-only/tese/triangle.desktop.sso.tese delete mode 100644 third_party/spirv-cross/shaders-msl/desktop-only/vert/basic.desktop.sso.vert delete mode 100644 third_party/spirv-cross/shaders-msl/desktop-only/vert/clip-cull-distance..no-user-varying.desktop.vert delete mode 100644 third_party/spirv-cross/shaders-msl/desktop-only/vert/clip-cull-distance.desktop.vert delete mode 100644 third_party/spirv-cross/shaders-msl/desktop-only/vert/shader-draw-parameters.desktop.for-tess.vert delete mode 100644 third_party/spirv-cross/shaders-msl/desktop-only/vert/shader-draw-parameters.desktop.vert delete mode 100644 third_party/spirv-cross/shaders-msl/flatten/basic.flatten.vert delete mode 100644 third_party/spirv-cross/shaders-msl/flatten/multiindex.flatten.vert delete mode 100644 third_party/spirv-cross/shaders-msl/flatten/push-constant.flatten.vert delete mode 100644 third_party/spirv-cross/shaders-msl/flatten/rowmajor.flatten.vert delete mode 100644 third_party/spirv-cross/shaders-msl/flatten/struct.flatten.vert delete mode 100644 third_party/spirv-cross/shaders-msl/flatten/swizzle.flatten.vert delete mode 100644 third_party/spirv-cross/shaders-msl/flatten/types.flatten.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/argument-buffers.msl2.argument.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/array-component-io.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/array-lut-no-loop-variable.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/array-of-array-lut.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/array-of-texture-swizzle-nonconstant-uniform.msl2.argument.discrete.swizzle.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/array-of-texture-swizzle-nonconstant-uniform.msl2.swizzle.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/array-of-texture-swizzle.msl2.argument.discrete.swizzle.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/array-of-texture-swizzle.msl2.swizzle.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/barycentric-nv-nopersp.msl22.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/barycentric-nv.msl22.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/basic.force-sample.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/basic.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/binary-func-unpack-pack-arguments.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/binary-unpack-pack-arguments.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/bitcasting.1d-as-2d.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/bitcasting.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/buffer-read-write.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/buffer-read-write.texture-buffer-native.msl21.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/builtins.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/clip-distance-varying.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/complex-expression-in-access-chain.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/composite-extract-forced-temporary.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/constant-array.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/constant-composites.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/control-dependent-in-branch.desktop.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/cull-distance-varying.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/depth-greater-than.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/depth-less-than.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/disable-frag-output.frag-output.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/dual-source-blending.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/early-fragment-tests.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/false-loop-init.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/flush_params.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/for-loop-continue-control-flow.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/for-loop-init.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/fp16-packing.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/fragment-component-padding.pad-fragment.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/front-facing.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/gather-dref.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/gather-offset.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/helper-invocation.msl21.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/huge-argument-buffer.device-argument-buffer.argument.msl2.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/illegal-name-test-0.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/image-query-lod.msl22.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/in_block.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/in_mat.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/input-attachment-ms.arrayed-subpass.msl21.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/input-attachment-ms.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/input-attachment-ms.multiview.msl21.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/input-attachment.arrayed-subpass.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/input-attachment.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/input-attachment.multiview.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/interpolation-qualifiers-block.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/interpolation-qualifiers.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/lut-promotion.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/mix.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/mrt-array.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/nonuniform-qualifier.msl2.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/packed-expression-vector-shuffle.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/packing-test-3.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/pixel-interlock-ordered.msl2.argument.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/pixel-interlock-ordered.msl2.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/pls.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/post-depth-coverage.ios.msl2.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/post-depth-coverage.msl23.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/private-variable-prototype-declaration.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/read-cull-clip-distance-in-function.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/readonly-ssbo.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/sample-depth-propagate-state-from-resource.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/sample-depth-separate-image-sampler.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/sample-mask-in-and-out.fixed-sample-mask.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/sample-mask-not-used.fixed-sample-mask.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/sample-mask.fixed-sample-mask.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/sample-mask.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/sample-position-func.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/sample-position.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/sample-rate-frag-coord-sample-id.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/sample-rate-frag-coord-sample-input.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/sample-rate-frag-coord-sample-pos.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/sample-rate-frag-coord.force-sample.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/sampler-1d-lod.1d-as-2d.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/sampler-1d-lod.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/sampler-compare-bias.msl23.1d-as-2d.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/sampler-compare-cascade-gradient.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/sampler-compare-cascade-gradient.ios.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/sampler-compare-cascade-gradient.msl23.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/sampler-image-arrays.msl2.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/sampler-ms.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/sampler.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/scalar-refract-reflect.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/separate-image-sampler-argument.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/shader-arithmetic-8bit.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/spec-constant-block-size.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/spec-constant-ternary.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/stencil-export.msl21.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/subgroup-builtins.msl22.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/subgroup-globals-extract.msl22.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/switch-unsigned-case.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/swizzle.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/texel-fetch-offset.1d-as-2d.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/texel-fetch-offset.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/texture-cube-array.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/texture-cube-array.ios.emulate-cube-array.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/texture-multisample-array.msl21.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/texture-proj-shadow.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/ubo_layout.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/unary-enclose.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/vecsize-mismatch.shader-inputs.frag delete mode 100644 third_party/spirv-cross/shaders-msl/frag/write-depth-in-function.frag delete mode 100644 third_party/spirv-cross/shaders-msl/intel/shader-integer-functions2.asm.comp delete mode 100644 third_party/spirv-cross/shaders-msl/legacy/vert/transpose.legacy.vert delete mode 100644 third_party/spirv-cross/shaders-msl/masking/copy-arrays.mask-location-0.msl2.multi-patch.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/masking/copy-arrays.mask-location-0.msl2.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/masking/copy-arrays.mask-location-1.msl2.multi-patch.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/masking/copy-arrays.mask-location-1.msl2.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/masking/write-outputs-block.mask-location-0.for-tess.vert delete mode 100644 third_party/spirv-cross/shaders-msl/masking/write-outputs-block.mask-location-0.msl2.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/masking/write-outputs-block.mask-location-0.multi-patch.msl2.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/masking/write-outputs-block.mask-location-0.vert delete mode 100644 third_party/spirv-cross/shaders-msl/masking/write-outputs-block.mask-location-1.for-tess.vert delete mode 100644 third_party/spirv-cross/shaders-msl/masking/write-outputs-block.mask-location-1.msl2.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/masking/write-outputs-block.mask-location-1.multi-patch.msl2.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/masking/write-outputs-block.mask-location-1.vert delete mode 100644 third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-clip-distance.vert delete mode 100644 third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-0.for-tess.vert delete mode 100644 third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-0.msl2.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-0.multi-patch.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-0.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-0.vert delete mode 100644 third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-1.for-tess.vert delete mode 100644 third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-1.msl2.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-1.multi-patch.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-1.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-1.vert delete mode 100644 third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-point-size.for-tess.vert delete mode 100644 third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-point-size.multi-patch.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-point-size.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-point-size.vert delete mode 100644 third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-position.multi-patch.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-position.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/tesc/basic.multi-patch.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/tesc/basic.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/tesc/complex-control-point-inout-types.multi-patch.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/tesc/complex-control-point-inout-types.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/tesc/complex-patch-out-types.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/tesc/load-control-point-array-of-matrix.multi-patch.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/tesc/load-control-point-array-of-matrix.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/tesc/load-control-point-array-of-struct.multi-patch.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/tesc/load-control-point-array-of-struct.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/tesc/load-control-point-array.multi-patch.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/tesc/load-control-point-array.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/tesc/matrix-output.multi-patch.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/tesc/reload-tess-level.multi-patch.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/tesc/reload-tess-level.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/tesc/struct-output.multi-patch.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/tesc/water_tess.multi-patch.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/tesc/water_tess.tesc delete mode 100644 third_party/spirv-cross/shaders-msl/tese/input-array.tese delete mode 100644 third_party/spirv-cross/shaders-msl/tese/input-types.tese delete mode 100644 third_party/spirv-cross/shaders-msl/tese/load-control-point-array-of-matrix.tese delete mode 100644 third_party/spirv-cross/shaders-msl/tese/load-control-point-array.tese delete mode 100644 third_party/spirv-cross/shaders-msl/tese/quad.domain.tese delete mode 100644 third_party/spirv-cross/shaders-msl/tese/quad.tese delete mode 100644 third_party/spirv-cross/shaders-msl/tese/read-tess-level-in-func-quad.msl2.tese delete mode 100644 third_party/spirv-cross/shaders-msl/tese/read-tess-level-in-func.msl2.tese delete mode 100644 third_party/spirv-cross/shaders-msl/tese/set-from-function.tese delete mode 100644 third_party/spirv-cross/shaders-msl/tese/triangle-tess-level.tese delete mode 100644 third_party/spirv-cross/shaders-msl/tese/triangle.tese delete mode 100644 third_party/spirv-cross/shaders-msl/tese/water_tess.tese delete mode 100644 third_party/spirv-cross/shaders-msl/vert/array-component-io.for-tess.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/array-component-io.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/basic.capture.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/basic.for-tess.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/basic.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/clip-distance-block.no-user-varying.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/clip-distance-block.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/copy.flatten.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/dynamic.flatten.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/float-math.invariant-float-math.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/float-math.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/functions.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/implicit-position-1.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/implicit-position-2.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/in_out_array_mat.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/interface-block-block-composites.frag delete mode 100644 third_party/spirv-cross/shaders-msl/vert/interface-block-block-composites.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/interpolation-qualifiers-block.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/interpolation-qualifiers.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/invariant.msl21.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/leaf-function.capture.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/leaf-function.for-tess.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/no-contraction.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/no-disable-vertex-out.frag-output.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/no_stage_out.for-tess.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/no_stage_out.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/no_stage_out.write_buff.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/no_stage_out.write_buff_atomic.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/no_stage_out.write_tex.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/out_block.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/packed-bool-to-uint.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/packed-bool2-to-packed_uint2.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/packed_matrix.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/pointsize.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/read-from-row-major-array.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/resource-arrays-leaf.ios.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/resource-arrays.ios.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/return-array.force-native-array.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/return-array.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/set_builtin_in_func.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/sign-int-types.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/signedness-mismatch.shader-inputs.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/texture_buffer.texture-buffer-native.msl21.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/texture_buffer.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/ubo.alignment.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vert/ubo.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vulkan/frag/basic.multiview.no-layered.nocompat.vk.frag delete mode 100644 third_party/spirv-cross/shaders-msl/vulkan/frag/basic.multiview.nocompat.vk.frag delete mode 100644 third_party/spirv-cross/shaders-msl/vulkan/frag/demote-to-helper-forwarding.asm.vk.nocompat.msl23.frag delete mode 100644 third_party/spirv-cross/shaders-msl/vulkan/frag/demote-to-helper.vk.nocompat.msl23.frag delete mode 100644 third_party/spirv-cross/shaders-msl/vulkan/frag/demote-to-helper.vk.nocompat.msl23.ios.frag delete mode 100644 third_party/spirv-cross/shaders-msl/vulkan/frag/push-constant.vk.frag delete mode 100644 third_party/spirv-cross/shaders-msl/vulkan/frag/spec-constant.msl11.vk.frag delete mode 100644 third_party/spirv-cross/shaders-msl/vulkan/frag/spec-constant.vk.frag delete mode 100644 third_party/spirv-cross/shaders-msl/vulkan/vert/device-group.multiview.viewfromdev.nocompat.vk.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vulkan/vert/device-group.nocompat.vk.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vulkan/vert/multiview.multiview.no-layered.nocompat.vk.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vulkan/vert/multiview.multiview.nocompat.vk.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vulkan/vert/multiview.nocompat.vk.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vulkan/vert/small-storage.vk.vert delete mode 100644 third_party/spirv-cross/shaders-msl/vulkan/vert/vulkan-vertex.vk.vert delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/comp/access-chain-dominator-in-loop-body-2.asm.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/comp/access-chain-dominator-in-loop-body.asm.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/comp/access-tracking-function-call-result.asm.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/comp/aliased-struct-divergent-member-name.asm.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/comp/arithmetic-conversion-signs.asm.nocompat.vk.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/comp/atomic-load-store.asm.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/comp/atomic-result-temporary.asm.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/comp/bitcast-fp16-fp32.asm.vk.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/comp/bitfield-signed-operations.asm.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/comp/bitscan.asm.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/comp/buffer-atomic-nonuniform.vk.nocompat.asm.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/comp/buffer-reference-aliased-block-name.nocompat.vk.asm.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/comp/buffer-reference-synthesized-pointer-2.asm.nocompat.vk.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/comp/buffer-reference-synthesized-pointer.asm.nocompat.vk.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/comp/constant-composite-undef.asm.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/comp/copy-logical.spv14.asm.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/comp/eliminate-globals-not-in-entry-point.noeliminate.spv14.asm.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/comp/extended-debug-extinst.invalid.asm.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/comp/glsl-signed-operations.asm.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/comp/glsl.std450.frexp-modf-struct.asm.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/comp/image-atomic-nonuniform.vk.nocompat.asm.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/comp/loop-variable-with-initializer.asm.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/comp/nonuniform-bracket-handling.vk.nocompat.asm.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/comp/phi-temporary-copy-loop-variable.asm.invalid.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/comp/spec-constant-op-convert-sign.asm.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/comp/storage-buffer-basic.asm.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/array-builtin-bitcast-load-store.asm.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/combined-image-sampler-dxc-min16float.asm.invalid.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/demote-impure-function-call.vk.nocompat.asm.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/discard-impure-function-call.asm.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/do-while-continue-phi.asm.invalid.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/do-while-loop-inverted-test.asm.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/early-conditional-return-switch.asm.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/empty-struct-in-struct.asm.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/for-loop-dedicated-merge-block-inverted.asm.invalid.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/for-loop-dedicated-merge-block-non-inverted.asm.invalid.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/for-loop-inverted-test.asm.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/image-fetch-uint-coord.asm.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/inliner-dominator-inside-loop.asm.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/ldexp-uint-exponent.asm.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/loop-merge-to-continue.asm.invalid.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/nonuniform-bracket-handling-2.vk.nocompat.asm.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/nonuniform-qualifier-propagation.vk.nocompat.asm.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/nonuniform-ssbo.nocompat.vk.asm.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/only-initializer-frag-depth.asm.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/opaque-id-literal-alias.preserve.asm.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/out-of-order-struct-id.asm.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/phi.zero-initialize.asm.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/pixel-interlock-callstack.asm.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/pixel-interlock-control-flow.asm.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/pixel-interlock-split-functions.asm.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/reserved-function-identifier.asm.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/reserved-identifiers.asm.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/selection-merge-to-continue.asm.invalid.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/sparse-texture-feedback-uint-code.asm.desktop.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/subgroup-arithmetic-cast.nocompat.vk.asm.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/subgroup-ballot-only.vk.asm.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/switch-block-case-fallthrough.asm.invalid.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/switch-merge-to-continue.asm.invalid.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/switch-single-case-multiple-exit-cfg.asm.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/unordered-compare.asm.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/vector-extract-dynamic-spec-constant.asm.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/vector-shuffle-undef-index.asm.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/frag/while-loop-inverted-test.asm.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/geom/store-uint-layer.invalid.asm.geom delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/loop-header-self-continue-break.asm.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/rgen/acceleration-nonuniform.spv14.vk.nocompat.asm.rgen delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/temporary.zero-initialize.asm.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/tesc/array-of-block-output-initializer.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/tesc/copy-memory-control-point.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/tesc/tess-fixed-input-array-builtin-array.invalid.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/tesc/tess-level-initializer.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/vert/block-struct-initializer.asm.vert delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/vert/builtin-output-initializer.asm.vert delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/vert/complex-link-by-name.asm.vert delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/vert/complex-link-by-name.force-flattened-io.legacy.asm.vert delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/vert/constant-composite-extract.asm.vert delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/vert/empty-struct-composite.asm.vert delete mode 100644 third_party/spirv-cross/shaders-no-opt/asm/vert/semantic-decoration.asm.vert delete mode 100644 third_party/spirv-cross/shaders-no-opt/comp/bitcast-16bit-1.invalid.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/comp/bitcast-16bit-2.invalid.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/comp/bitfield.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/comp/glsl.std450.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/comp/illegal-struct-name.asm.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/comp/image-load-formatted.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/comp/inout-struct.invalid.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/comp/loop.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/comp/return.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/comp/shader_ballot_nonuniform_invocations.invalid.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/comp/specialization-constant-evaluation.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/comp/struct-packing-scalar.nocompat.invalid.vk.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/comp/subgroups.nocompat.invalid.vk.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/comp/subgroups_basicvoteballot.vk.comp delete mode 100644 third_party/spirv-cross/shaders-no-opt/frag/16bit-constants.invalid.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/frag/fp16.invalid.desktop.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/frag/frag-fully-covered.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/frag/fragmentMaskFetch_subpassInput.vk.nocompat.invalid.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/frag/fs.invalid.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/frag/image-gather.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/frag/multi-dimensional.desktop.invalid.flatten_dim.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/frag/nonuniform-constructor.vk.nocompat.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/frag/pixel-interlock-simple-callstack.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/frag/scalar-block-layout-ubo-std430.vk.nocompat.invalid.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/frag/sparse-texture-clamp.desktop.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/frag/sparse-texture-feedback.desktop.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/frag/subpass-input.framebuffer-fetch.nocompat.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/frag/subpass-input.framebuffer-fetch.nocompat.framebuffer-fetch-noncoherent.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/frag/subpass-input.framebuffer-fetch.nocompat.legacy.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/frag/subpass-input.framebuffer-fetch.nocompat.legacy.framebuffer-fetch-noncoherent.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/frag/variables.zero-initialize.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/legacy/frag/switch-single-case-multiple-exit-cfg.legacy.asm.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/vert/io-blocks.force-flattened-io.vert delete mode 100644 third_party/spirv-cross/shaders-no-opt/vert/pass-array-by-value.vert delete mode 100644 third_party/spirv-cross/shaders-no-opt/vulkan/frag/shading-rate.vk.nocompat.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/vulkan/frag/spec-constant.vk.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/vulkan/frag/ubo-offset-out-of-order.vk.nocompat.frag delete mode 100644 third_party/spirv-cross/shaders-no-opt/vulkan/vert/primitive-shading-rate.vk.nocompat.vert delete mode 100644 third_party/spirv-cross/shaders-other/README.md delete mode 100644 third_party/spirv-cross/shaders-other/aliased-entry-point-names.asm delete mode 100644 third_party/spirv-cross/shaders-reflection/asm/aliased-entry-point-names.asm.multi delete mode 100644 third_party/spirv-cross/shaders-reflection/asm/comp/pointer-to-array-of-physical-pointer.asm.comp delete mode 100644 third_party/spirv-cross/shaders-reflection/asm/op-source-glsl-ssbo-1.asm.comp delete mode 100644 third_party/spirv-cross/shaders-reflection/asm/op-source-glsl-ssbo-2.asm.comp delete mode 100644 third_party/spirv-cross/shaders-reflection/asm/op-source-hlsl-uav-1.asm.comp delete mode 100644 third_party/spirv-cross/shaders-reflection/asm/op-source-hlsl-uav-2.asm.comp delete mode 100644 third_party/spirv-cross/shaders-reflection/asm/op-source-none-ssbo-1.asm.comp delete mode 100644 third_party/spirv-cross/shaders-reflection/asm/op-source-none-ssbo-2.asm.comp delete mode 100644 third_party/spirv-cross/shaders-reflection/asm/op-source-none-uav-1.asm.comp delete mode 100644 third_party/spirv-cross/shaders-reflection/asm/op-source-none-uav-2.asm.comp delete mode 100644 third_party/spirv-cross/shaders-reflection/comp/array-of-physical-pointer.comp delete mode 100644 third_party/spirv-cross/shaders-reflection/comp/function-pointer.invalid.asm.comp delete mode 100644 third_party/spirv-cross/shaders-reflection/comp/physical-pointer.comp delete mode 100644 third_party/spirv-cross/shaders-reflection/comp/struct-layout.comp delete mode 100644 third_party/spirv-cross/shaders-reflection/comp/struct-packing.comp delete mode 100644 third_party/spirv-cross/shaders-reflection/comp/workgroup-size-spec-constant.comp delete mode 100644 third_party/spirv-cross/shaders-reflection/frag/combined-texture-sampler-shadow.vk.frag delete mode 100644 third_party/spirv-cross/shaders-reflection/frag/combined-texture-sampler.vk.frag delete mode 100644 third_party/spirv-cross/shaders-reflection/frag/image-load-store-uint-coord.asm.frag delete mode 100644 third_party/spirv-cross/shaders-reflection/frag/input-attachment-ms.vk.frag delete mode 100644 third_party/spirv-cross/shaders-reflection/frag/input-attachment.vk.frag delete mode 100644 third_party/spirv-cross/shaders-reflection/frag/push-constant.vk.frag delete mode 100644 third_party/spirv-cross/shaders-reflection/frag/separate-sampler-texture-array.vk.frag delete mode 100644 third_party/spirv-cross/shaders-reflection/frag/spec-constant.vk.frag delete mode 100644 third_party/spirv-cross/shaders-reflection/rgen/acceleration_structure.vk.rgen delete mode 100644 third_party/spirv-cross/shaders-reflection/vert/array-size-reflection.vert delete mode 100644 third_party/spirv-cross/shaders-reflection/vert/read-from-row-major-array.vert delete mode 100644 third_party/spirv-cross/shaders-reflection/vert/stride-reflection.vert delete mode 100644 third_party/spirv-cross/shaders-reflection/vert/texture_buffer.vert delete mode 100644 third_party/spirv-cross/shaders-ue4-no-opt/asm/frag/accesschain-invalid-expression.asm.invalid.frag delete mode 100644 third_party/spirv-cross/shaders-ue4-no-opt/asm/frag/array-copy-error.asm.invalid.frag delete mode 100644 third_party/spirv-cross/shaders-ue4-no-opt/asm/frag/phi-variable-declaration.asm.invalid.frag delete mode 100644 third_party/spirv-cross/shaders-ue4-no-opt/asm/vert/loop-accesschain-writethrough.asm.invalid.vert delete mode 100644 third_party/spirv-cross/shaders-ue4/asm/frag/depth-compare.asm.frag delete mode 100644 third_party/spirv-cross/shaders-ue4/asm/frag/global-constant-arrays.asm.frag delete mode 100644 third_party/spirv-cross/shaders-ue4/asm/frag/padded-float-array-member-defef.asm.frag delete mode 100644 third_party/spirv-cross/shaders-ue4/asm/frag/sample-mask-not-array.asm.frag delete mode 100644 third_party/spirv-cross/shaders-ue4/asm/frag/subpass-input.ios.framebuffer-fetch.asm.frag delete mode 100644 third_party/spirv-cross/shaders-ue4/asm/frag/subpass-input.msl23.framebuffer-fetch.asm.frag delete mode 100644 third_party/spirv-cross/shaders-ue4/asm/frag/texture-atomics.asm.argument.msl2.frag delete mode 100644 third_party/spirv-cross/shaders-ue4/asm/frag/texture-atomics.asm.frag delete mode 100644 third_party/spirv-cross/shaders-ue4/asm/frag/texture-atomics.asm.graphics-robust-access.frag delete mode 100644 third_party/spirv-cross/shaders-ue4/asm/tesc/hs-incorrect-base-type.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-ue4/asm/tesc/hs-input-array-access.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-ue4/asm/tesc/hs-texcoord-array.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.asm.tesc delete mode 100644 third_party/spirv-cross/shaders-ue4/asm/tese/ds-double-gl-in-deref.asm.tese delete mode 100644 third_party/spirv-cross/shaders-ue4/asm/tese/ds-patch-input-fixes.asm.tese delete mode 100644 third_party/spirv-cross/shaders-ue4/asm/tese/ds-patch-inputs.asm.tese delete mode 100644 third_party/spirv-cross/shaders-ue4/asm/tese/ds-texcoord-array.asm.tese delete mode 100644 third_party/spirv-cross/shaders-ue4/asm/vert/array-missing-copies.asm.vert delete mode 100644 third_party/spirv-cross/shaders-ue4/asm/vert/texture-buffer.asm.vert delete mode 100644 third_party/spirv-cross/shaders/amd/gcn_shader.comp delete mode 100644 third_party/spirv-cross/shaders/amd/shader_ballot.comp delete mode 100644 third_party/spirv-cross/shaders/amd/shader_group_vote.comp delete mode 100644 third_party/spirv-cross/shaders/amd/shader_trinary_minmax.comp delete mode 100644 third_party/spirv-cross/shaders/asm/comp/atomic-decrement.asm.comp delete mode 100644 third_party/spirv-cross/shaders/asm/comp/atomic-increment.asm.comp delete mode 100644 third_party/spirv-cross/shaders/asm/comp/bitcast_iadd.asm.comp delete mode 100644 third_party/spirv-cross/shaders/asm/comp/bitcast_icmp.asm.comp delete mode 100644 third_party/spirv-cross/shaders/asm/comp/bitcast_iequal.asm.comp delete mode 100644 third_party/spirv-cross/shaders/asm/comp/bitcast_sar.asm.comp delete mode 100644 third_party/spirv-cross/shaders/asm/comp/bitcast_sdiv.asm.comp delete mode 100644 third_party/spirv-cross/shaders/asm/comp/bitcast_slr.asm.comp delete mode 100644 third_party/spirv-cross/shaders/asm/comp/block-name-alias-global.asm.comp delete mode 100644 third_party/spirv-cross/shaders/asm/comp/builtin-compute-bitcast.asm.comp delete mode 100644 third_party/spirv-cross/shaders/asm/comp/decoration-group.asm.comp delete mode 100644 third_party/spirv-cross/shaders/asm/comp/global-parameter-name-alias.asm.comp delete mode 100644 third_party/spirv-cross/shaders/asm/comp/hlsl-functionality.asm.comp delete mode 100644 third_party/spirv-cross/shaders/asm/comp/logical.asm.comp delete mode 100644 third_party/spirv-cross/shaders/asm/comp/multiple-entry.asm.comp delete mode 100644 third_party/spirv-cross/shaders/asm/comp/nmin-max-clamp.asm.comp delete mode 100644 third_party/spirv-cross/shaders/asm/comp/op-phi-swap.asm.comp delete mode 100644 third_party/spirv-cross/shaders/asm/comp/quantize.asm.comp delete mode 100644 third_party/spirv-cross/shaders/asm/comp/recompile-block-naming.asm.comp delete mode 100644 third_party/spirv-cross/shaders/asm/comp/specialization-constant-workgroup.asm.comp delete mode 100644 third_party/spirv-cross/shaders/asm/comp/switch-break-ladder.asm.comp delete mode 100644 third_party/spirv-cross/shaders/asm/frag/combined-sampler-reuse.vk.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/complex-name-workarounds.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/composite-construct-struct-no-swizzle.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/default-member-names.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/do-while-statement-fallback.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/empty-struct.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/for-loop-phi-only-continue.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/frem.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/function-overload-alias.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/hlsl-sample-cmp-level-zero-cube.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/hlsl-sample-cmp-level-zero.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/image-extract-reuse.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/image-fetch-no-sampler.asm.vk.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/image-fetch-no-sampler.no-samplerless.asm.vk.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/image-query-no-sampler.no-samplerless.vk.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/image-query-no-sampler.vk.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/implicit-read-dep-phi.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/inf-nan-constant-double.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/inf-nan-constant.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/invalidation.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/line-directive.line.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/locations-components.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/loop-body-dominator-continue-access.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/loop-header-to-continue.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/lut-promotion-initializer.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/multi-for-loop-init.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/op-constant-null.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/op-phi-swap-continue-block.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/pack-and-unpack-uint2.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/pass-by-value.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/phi-loop-variable.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/sample-and-compare.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/sampler-buffer-array-without-sampler.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/sampler-buffer-without-sampler.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/single-function-private-lut.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/srem.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/storage-class-output-initializer.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/struct-composite-extract-swizzle.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/switch-label-shared-block.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/temporary-name-alias.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/temporary-phi-hoisting.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/texel-fetch-no-lod.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/texture-sampling-fp16.asm.vk.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/undef-variable-store.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/unknown-depth-state.asm.vk.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/unreachable.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/frag/vector-shuffle-oom.asm.frag delete mode 100644 third_party/spirv-cross/shaders/asm/geom/block-name-namespace.asm.geom delete mode 100644 third_party/spirv-cross/shaders/asm/geom/inout-split-access-chain-handle.asm.geom delete mode 100644 third_party/spirv-cross/shaders/asm/geom/split-access-chain-input.asm.geom delete mode 100644 third_party/spirv-cross/shaders/asm/geom/unroll-glposition-load.asm.geom delete mode 100644 third_party/spirv-cross/shaders/asm/tese/unroll-input-array-load.asm.tese delete mode 100644 third_party/spirv-cross/shaders/asm/vert/empty-io.asm.vert delete mode 100644 third_party/spirv-cross/shaders/asm/vert/extract-transposed-matrix-from-struct.asm.vert delete mode 100644 third_party/spirv-cross/shaders/asm/vert/global-builtin.sso.asm.vert delete mode 100644 third_party/spirv-cross/shaders/asm/vert/invariant-block.asm.vert delete mode 100644 third_party/spirv-cross/shaders/asm/vert/invariant-block.sso.asm.vert delete mode 100644 third_party/spirv-cross/shaders/asm/vert/invariant.asm.vert delete mode 100644 third_party/spirv-cross/shaders/asm/vert/invariant.sso.asm.vert delete mode 100644 third_party/spirv-cross/shaders/asm/vert/spec-constant-op-composite.asm.vk.vert delete mode 100644 third_party/spirv-cross/shaders/asm/vert/uint-vertex-id-instance-id.asm.vert delete mode 100644 third_party/spirv-cross/shaders/comp/atomic.comp delete mode 100644 third_party/spirv-cross/shaders/comp/bake_gradient.comp delete mode 100644 third_party/spirv-cross/shaders/comp/barriers.comp delete mode 100644 third_party/spirv-cross/shaders/comp/basic.comp delete mode 100644 third_party/spirv-cross/shaders/comp/casts.comp delete mode 100644 third_party/spirv-cross/shaders/comp/cfg-preserve-parameter.comp delete mode 100644 third_party/spirv-cross/shaders/comp/cfg.comp delete mode 100644 third_party/spirv-cross/shaders/comp/coherent-block.comp delete mode 100644 third_party/spirv-cross/shaders/comp/coherent-image.comp delete mode 100644 third_party/spirv-cross/shaders/comp/composite-array-initialization.comp delete mode 100644 third_party/spirv-cross/shaders/comp/composite-construct.comp delete mode 100644 third_party/spirv-cross/shaders/comp/culling.comp delete mode 100644 third_party/spirv-cross/shaders/comp/defer-parens.comp delete mode 100644 third_party/spirv-cross/shaders/comp/dowhile.comp delete mode 100644 third_party/spirv-cross/shaders/comp/generate_height.comp delete mode 100644 third_party/spirv-cross/shaders/comp/image.comp delete mode 100644 third_party/spirv-cross/shaders/comp/insert.comp delete mode 100644 third_party/spirv-cross/shaders/comp/mat3.comp delete mode 100644 third_party/spirv-cross/shaders/comp/mod.comp delete mode 100644 third_party/spirv-cross/shaders/comp/modf.comp delete mode 100644 third_party/spirv-cross/shaders/comp/outer-product.comp delete mode 100644 third_party/spirv-cross/shaders/comp/read-write-only.comp delete mode 100644 third_party/spirv-cross/shaders/comp/rmw-matrix.comp delete mode 100644 third_party/spirv-cross/shaders/comp/rmw-opt.comp delete mode 100644 third_party/spirv-cross/shaders/comp/scalar-std450-distance-length-normalize.comp delete mode 100644 third_party/spirv-cross/shaders/comp/shared.comp delete mode 100644 third_party/spirv-cross/shaders/comp/ssbo-array-length.comp delete mode 100644 third_party/spirv-cross/shaders/comp/ssbo-array.comp delete mode 100644 third_party/spirv-cross/shaders/comp/struct-layout.comp delete mode 100644 third_party/spirv-cross/shaders/comp/struct-packing.comp delete mode 100644 third_party/spirv-cross/shaders/comp/torture-loop.comp delete mode 100644 third_party/spirv-cross/shaders/comp/type-alias.comp delete mode 100644 third_party/spirv-cross/shaders/comp/udiv.comp delete mode 100644 third_party/spirv-cross/shaders/desktop-only/comp/enhanced-layouts.comp delete mode 100644 third_party/spirv-cross/shaders/desktop-only/comp/extended-arithmetic.desktop.comp delete mode 100644 third_party/spirv-cross/shaders/desktop-only/comp/fp64.desktop.comp delete mode 100644 third_party/spirv-cross/shaders/desktop-only/comp/image-formats.desktop.noeliminate.comp delete mode 100644 third_party/spirv-cross/shaders/desktop-only/comp/int64.desktop.comp delete mode 100644 third_party/spirv-cross/shaders/desktop-only/frag/clip-cull-distance.desktop.frag delete mode 100644 third_party/spirv-cross/shaders/desktop-only/frag/control-dependent-in-branch.desktop.frag delete mode 100644 third_party/spirv-cross/shaders/desktop-only/frag/depth-greater-than.desktop.frag delete mode 100644 third_party/spirv-cross/shaders/desktop-only/frag/depth-less-than.desktop.frag delete mode 100644 third_party/spirv-cross/shaders/desktop-only/frag/dual-source-blending.desktop.frag delete mode 100644 third_party/spirv-cross/shaders/desktop-only/frag/hlsl-uav-block-alias.asm.frag delete mode 100644 third_party/spirv-cross/shaders/desktop-only/frag/image-ms.desktop.frag delete mode 100644 third_party/spirv-cross/shaders/desktop-only/frag/image-query.desktop.frag delete mode 100644 third_party/spirv-cross/shaders/desktop-only/frag/image-size.frag delete mode 100644 third_party/spirv-cross/shaders/desktop-only/frag/image-size.no-qualifier-deduction.frag delete mode 100644 third_party/spirv-cross/shaders/desktop-only/frag/in-block-qualifiers.frag delete mode 100644 third_party/spirv-cross/shaders/desktop-only/frag/layout-component.desktop.frag delete mode 100644 third_party/spirv-cross/shaders/desktop-only/frag/query-levels.desktop.frag delete mode 100644 third_party/spirv-cross/shaders/desktop-only/frag/query-lod.desktop.frag delete mode 100644 third_party/spirv-cross/shaders/desktop-only/frag/sampler-ms-query.desktop.frag delete mode 100644 third_party/spirv-cross/shaders/desktop-only/frag/stencil-export.desktop.frag delete mode 100644 third_party/spirv-cross/shaders/desktop-only/frag/texture-proj-shadow.desktop.frag delete mode 100644 third_party/spirv-cross/shaders/desktop-only/geom/basic.desktop.sso.geom delete mode 100644 third_party/spirv-cross/shaders/desktop-only/geom/viewport-index.desktop.geom delete mode 100644 third_party/spirv-cross/shaders/desktop-only/tesc/basic.desktop.sso.tesc delete mode 100644 third_party/spirv-cross/shaders/desktop-only/tese/triangle.desktop.sso.tese delete mode 100644 third_party/spirv-cross/shaders/desktop-only/vert/basic.desktop.sso.vert delete mode 100644 third_party/spirv-cross/shaders/desktop-only/vert/clip-cull-distance.desktop.sso.vert delete mode 100644 third_party/spirv-cross/shaders/desktop-only/vert/clip-cull-distance.desktop.vert delete mode 100644 third_party/spirv-cross/shaders/desktop-only/vert/out-block-qualifiers.vert delete mode 100644 third_party/spirv-cross/shaders/desktop-only/vert/shader-draw-parameters-450.desktop.vk.vert delete mode 100644 third_party/spirv-cross/shaders/desktop-only/vert/shader-draw-parameters.desktop.vk.vert delete mode 100644 third_party/spirv-cross/shaders/flatten/array.flatten.vert delete mode 100644 third_party/spirv-cross/shaders/flatten/basic.flatten.vert delete mode 100644 third_party/spirv-cross/shaders/flatten/copy.flatten.vert delete mode 100644 third_party/spirv-cross/shaders/flatten/dynamic.flatten.vert delete mode 100644 third_party/spirv-cross/shaders/flatten/matrix-conversion.flatten.frag delete mode 100644 third_party/spirv-cross/shaders/flatten/matrixindex.flatten.vert delete mode 100644 third_party/spirv-cross/shaders/flatten/multiindex.flatten.vert delete mode 100644 third_party/spirv-cross/shaders/flatten/push-constant.flatten.vert delete mode 100644 third_party/spirv-cross/shaders/flatten/rowmajor.flatten.vert delete mode 100644 third_party/spirv-cross/shaders/flatten/struct.flatten.vert delete mode 100644 third_party/spirv-cross/shaders/flatten/struct.rowmajor.flatten.vert delete mode 100644 third_party/spirv-cross/shaders/flatten/swizzle.flatten.vert delete mode 100644 third_party/spirv-cross/shaders/flatten/types.flatten.frag delete mode 100644 third_party/spirv-cross/shaders/frag/array-lut-no-loop-variable.frag delete mode 100644 third_party/spirv-cross/shaders/frag/avoid-expression-lowering-to-loop.frag delete mode 100644 third_party/spirv-cross/shaders/frag/barycentric-nv.frag delete mode 100644 third_party/spirv-cross/shaders/frag/basic.frag delete mode 100644 third_party/spirv-cross/shaders/frag/complex-expression-in-access-chain.frag delete mode 100644 third_party/spirv-cross/shaders/frag/composite-extract-forced-temporary.frag delete mode 100644 third_party/spirv-cross/shaders/frag/constant-array.frag delete mode 100644 third_party/spirv-cross/shaders/frag/constant-composites.frag delete mode 100644 third_party/spirv-cross/shaders/frag/false-loop-init.frag delete mode 100644 third_party/spirv-cross/shaders/frag/flush_params.frag delete mode 100644 third_party/spirv-cross/shaders/frag/for-loop-continue-control-flow.frag delete mode 100644 third_party/spirv-cross/shaders/frag/for-loop-init.frag delete mode 100644 third_party/spirv-cross/shaders/frag/frexp-modf.frag delete mode 100644 third_party/spirv-cross/shaders/frag/front-facing.frag delete mode 100644 third_party/spirv-cross/shaders/frag/gather-dref.frag delete mode 100755 third_party/spirv-cross/shaders/frag/ground.frag delete mode 100644 third_party/spirv-cross/shaders/frag/helper-invocation.frag delete mode 100644 third_party/spirv-cross/shaders/frag/hoisted-temporary-use-continue-block-as-value.frag delete mode 100644 third_party/spirv-cross/shaders/frag/image-load-store-uint-coord.asm.frag delete mode 100644 third_party/spirv-cross/shaders/frag/inside-loop-dominated-variable-preservation.frag delete mode 100644 third_party/spirv-cross/shaders/frag/loop-dominator-and-switch-default.frag delete mode 100644 third_party/spirv-cross/shaders/frag/lut-promotion.frag delete mode 100644 third_party/spirv-cross/shaders/frag/mix.frag delete mode 100644 third_party/spirv-cross/shaders/frag/partial-write-preserve.frag delete mode 100644 third_party/spirv-cross/shaders/frag/pixel-interlock-ordered.frag delete mode 100644 third_party/spirv-cross/shaders/frag/pixel-interlock-unordered.frag delete mode 100644 third_party/spirv-cross/shaders/frag/pls.frag delete mode 100644 third_party/spirv-cross/shaders/frag/post-depth-coverage-es.frag delete mode 100644 third_party/spirv-cross/shaders/frag/post-depth-coverage.frag delete mode 100644 third_party/spirv-cross/shaders/frag/round-even.frag delete mode 100644 third_party/spirv-cross/shaders/frag/round.frag delete mode 100644 third_party/spirv-cross/shaders/frag/sample-interlock-ordered.frag delete mode 100644 third_party/spirv-cross/shaders/frag/sample-interlock-unordered.frag delete mode 100644 third_party/spirv-cross/shaders/frag/sample-parameter.frag delete mode 100644 third_party/spirv-cross/shaders/frag/sampler-ms.frag delete mode 100644 third_party/spirv-cross/shaders/frag/sampler-proj.frag delete mode 100644 third_party/spirv-cross/shaders/frag/sampler.frag delete mode 100644 third_party/spirv-cross/shaders/frag/scalar-refract-reflect.frag delete mode 100644 third_party/spirv-cross/shaders/frag/selection-block-dominator.frag delete mode 100644 third_party/spirv-cross/shaders/frag/struct-type-unrelated-alias.frag delete mode 100644 third_party/spirv-cross/shaders/frag/switch-unsigned-case.frag delete mode 100644 third_party/spirv-cross/shaders/frag/swizzle.frag delete mode 100644 third_party/spirv-cross/shaders/frag/texel-fetch-offset.frag delete mode 100644 third_party/spirv-cross/shaders/frag/ubo-load-row-major-workaround.frag delete mode 100644 third_party/spirv-cross/shaders/frag/ubo_layout.frag delete mode 100644 third_party/spirv-cross/shaders/frag/unary-enclose.frag delete mode 100644 third_party/spirv-cross/shaders/geom/basic.geom delete mode 100644 third_party/spirv-cross/shaders/geom/geometry-passthrough.geom delete mode 100644 third_party/spirv-cross/shaders/geom/lines-adjacency.geom delete mode 100644 third_party/spirv-cross/shaders/geom/lines.geom delete mode 100644 third_party/spirv-cross/shaders/geom/multi-stream.geom delete mode 100644 third_party/spirv-cross/shaders/geom/points.geom delete mode 100644 third_party/spirv-cross/shaders/geom/single-invocation.geom delete mode 100644 third_party/spirv-cross/shaders/geom/transform-feedback-streams.geom delete mode 100644 third_party/spirv-cross/shaders/geom/triangles-adjacency.geom delete mode 100644 third_party/spirv-cross/shaders/geom/triangles.geom delete mode 100644 third_party/spirv-cross/shaders/legacy/fragment/explicit-lod.legacy.frag delete mode 100644 third_party/spirv-cross/shaders/legacy/fragment/explicit-lod.legacy.vert delete mode 100644 third_party/spirv-cross/shaders/legacy/fragment/fma.legacy.frag delete mode 100644 third_party/spirv-cross/shaders/legacy/fragment/io-blocks.legacy.frag delete mode 100644 third_party/spirv-cross/shaders/legacy/fragment/multiple-struct-flattening.legacy.frag delete mode 100644 third_party/spirv-cross/shaders/legacy/fragment/round.legacy.frag delete mode 100644 third_party/spirv-cross/shaders/legacy/fragment/struct-varying.legacy.frag delete mode 100644 third_party/spirv-cross/shaders/legacy/fragment/switch.legacy.frag delete mode 100644 third_party/spirv-cross/shaders/legacy/vert/implicit-lod.legacy.vert delete mode 100644 third_party/spirv-cross/shaders/legacy/vert/io-block.legacy.vert delete mode 100644 third_party/spirv-cross/shaders/legacy/vert/struct-flatten-inner-array.legacy.vert delete mode 100644 third_party/spirv-cross/shaders/legacy/vert/struct-flatten-stores-multi-dimension.legacy.vert delete mode 100644 third_party/spirv-cross/shaders/legacy/vert/struct-varying.legacy.vert delete mode 100644 third_party/spirv-cross/shaders/legacy/vert/switch-nested.legacy.vert delete mode 100644 third_party/spirv-cross/shaders/legacy/vert/transpose.legacy.vert delete mode 100644 third_party/spirv-cross/shaders/tesc/basic.tesc delete mode 100644 third_party/spirv-cross/shaders/tesc/water_tess.tesc delete mode 100644 third_party/spirv-cross/shaders/tese/ccw.tese delete mode 100644 third_party/spirv-cross/shaders/tese/cw.tese delete mode 100644 third_party/spirv-cross/shaders/tese/equal.tese delete mode 100644 third_party/spirv-cross/shaders/tese/fractional_even.tese delete mode 100644 third_party/spirv-cross/shaders/tese/fractional_odd.tese delete mode 100644 third_party/spirv-cross/shaders/tese/input-array.tese delete mode 100644 third_party/spirv-cross/shaders/tese/line.tese delete mode 100644 third_party/spirv-cross/shaders/tese/load-array-of-array.tese delete mode 100644 third_party/spirv-cross/shaders/tese/patch-input-array.tese delete mode 100644 third_party/spirv-cross/shaders/tese/triangle.tese delete mode 100644 third_party/spirv-cross/shaders/tese/water_tess.tese delete mode 100644 third_party/spirv-cross/shaders/vert/basic.vert delete mode 100755 third_party/spirv-cross/shaders/vert/ground.vert delete mode 100644 third_party/spirv-cross/shaders/vert/invariant.vert delete mode 100644 third_party/spirv-cross/shaders/vert/no-contraction.vert delete mode 100644 third_party/spirv-cross/shaders/vert/ocean.vert delete mode 100644 third_party/spirv-cross/shaders/vert/read-from-row-major-array.vert delete mode 100644 third_party/spirv-cross/shaders/vert/return-array.vert delete mode 100644 third_party/spirv-cross/shaders/vert/texture_buffer.vert delete mode 100644 third_party/spirv-cross/shaders/vert/transform-feedback-decorations.vert delete mode 100644 third_party/spirv-cross/shaders/vert/ubo.vert delete mode 100644 third_party/spirv-cross/shaders/vulkan/comp/array-of-buffer-reference.nocompat.vk.comp delete mode 100644 third_party/spirv-cross/shaders/vulkan/comp/buffer-reference-bitcast.nocompat.vk.comp delete mode 100644 third_party/spirv-cross/shaders/vulkan/comp/buffer-reference-decorations.nocompat.vk.comp delete mode 100644 third_party/spirv-cross/shaders/vulkan/comp/buffer-reference.nocompat.vk.comp delete mode 100644 third_party/spirv-cross/shaders/vulkan/comp/spec-constant-op-member-array.vk.comp delete mode 100644 third_party/spirv-cross/shaders/vulkan/comp/spec-constant-work-group-size.vk.comp delete mode 100644 third_party/spirv-cross/shaders/vulkan/frag/combined-texture-sampler-shadow.vk.frag delete mode 100644 third_party/spirv-cross/shaders/vulkan/frag/combined-texture-sampler.vk.frag delete mode 100644 third_party/spirv-cross/shaders/vulkan/frag/demote-to-helper-forwarding.asm.vk.nocompat.frag delete mode 100644 third_party/spirv-cross/shaders/vulkan/frag/demote-to-helper.vk.nocompat.frag delete mode 100644 third_party/spirv-cross/shaders/vulkan/frag/desktop-mediump.vk.frag delete mode 100644 third_party/spirv-cross/shaders/vulkan/frag/input-attachment-ms.vk.frag delete mode 100644 third_party/spirv-cross/shaders/vulkan/frag/input-attachment.vk.frag delete mode 100644 third_party/spirv-cross/shaders/vulkan/frag/nonuniform-qualifier.vk.nocompat.frag delete mode 100644 third_party/spirv-cross/shaders/vulkan/frag/push-constant-as-ubo.push-ubo.vk.frag delete mode 100644 third_party/spirv-cross/shaders/vulkan/frag/push-constant.vk.frag delete mode 100644 third_party/spirv-cross/shaders/vulkan/frag/separate-combined-fake-overload.vk.frag delete mode 100644 third_party/spirv-cross/shaders/vulkan/frag/separate-sampler-texture-array.vk.frag delete mode 100644 third_party/spirv-cross/shaders/vulkan/frag/separate-sampler-texture.vk.frag delete mode 100644 third_party/spirv-cross/shaders/vulkan/frag/shader-arithmetic-8bit.nocompat.vk.frag delete mode 100644 third_party/spirv-cross/shaders/vulkan/frag/spec-constant-block-size.vk.frag delete mode 100644 third_party/spirv-cross/shaders/vulkan/frag/spec-constant-ternary.vk.frag delete mode 100644 third_party/spirv-cross/shaders/vulkan/rahit/terminators.khr.spv14.nocompat.vk.rahit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rahit/terminators.nocompat.vk.rahit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rcall/incoming-callable.khr.spv14.nocompat.vk.rcall delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/hit_attribute_block.khr.spv14.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/hit_attribute_block.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/hit_attribute_block_in_function.khr.spv14.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/hit_attribute_block_in_function.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/hit_attribute_plain.khr.spv14.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/hit_attribute_plain.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/hit_attribute_struct.khr.spv14.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/hit_attribute_struct.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/hit_kind.khr.spv14.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/hit_kind.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/hit_t.khr.spv14.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/hit_t.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/incoming_ray_flags.khr.spv14.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/incoming_ray_flags.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/instance_custom_id.khr.spv14.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/instance_custom_id.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/instance_id.khr.spv14.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/instance_id.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/object_ray_direction.khr.spv14.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/object_ray_direction.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/object_ray_origin.khr.spv14.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/object_ray_origin.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/object_to_world.khr.spv14.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/object_to_world.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/payloads.khr.spv14.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/payloads.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/primitive_id.khr.spv14.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/primitive_id.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/ray_tmax.khr.spv14.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/ray_tmax.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/ray_tmin.khr.spv14.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/ray_tmin.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/ray_tracing.khr.spv14.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/ray_tracing.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/world_ray_direction.khr.spv14.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/world_ray_direction.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/world_ray_origin.khr.spv14.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/world_ray_origin.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/world_to_object.khr.spv14.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rchit/world_to_object.nocompat.vk.rchit delete mode 100644 third_party/spirv-cross/shaders/vulkan/rgen/convert-u-to-as.spv14.vk.nocompat.rgen delete mode 100644 third_party/spirv-cross/shaders/vulkan/rgen/execute_callable.nocompat.khr.spv14.vk.rgen delete mode 100644 third_party/spirv-cross/shaders/vulkan/rgen/execute_callable.nocompat.vk.rgen delete mode 100644 third_party/spirv-cross/shaders/vulkan/rgen/launch_id.khr.spv14.nocompat.vk.rgen delete mode 100644 third_party/spirv-cross/shaders/vulkan/rgen/launch_id.nocompat.vk.rgen delete mode 100644 third_party/spirv-cross/shaders/vulkan/rgen/launch_size.khr.spv14.nocompat.vk.rgen delete mode 100644 third_party/spirv-cross/shaders/vulkan/rgen/launch_size.nocompat.vk.rgen delete mode 100644 third_party/spirv-cross/shaders/vulkan/rgen/payloads.khr.spv14.nocompat.vk.rgen delete mode 100644 third_party/spirv-cross/shaders/vulkan/rgen/payloads.nocompat.vk.rgen delete mode 100644 third_party/spirv-cross/shaders/vulkan/rgen/pure_call.khr.spv14.nocompat.vk.rgen delete mode 100644 third_party/spirv-cross/shaders/vulkan/rgen/pure_call.nocompat.vk.rgen delete mode 100644 third_party/spirv-cross/shaders/vulkan/rgen/ray_tracing.khr.spv14.nocompat.vk.rgen delete mode 100644 third_party/spirv-cross/shaders/vulkan/rgen/ray_tracing.nocompat.vk.rgen delete mode 100644 third_party/spirv-cross/shaders/vulkan/rgen/shader_record_buffer.khr.spv14.nocompat.vk.rgen delete mode 100644 third_party/spirv-cross/shaders/vulkan/rgen/shader_record_buffer.nocompat.vk.rgen delete mode 100644 third_party/spirv-cross/shaders/vulkan/rint/report-intersection.khr.spv14.nocompat.vk.rint delete mode 100644 third_party/spirv-cross/shaders/vulkan/rint/report-intersection.nocompat.vk.rint delete mode 100644 third_party/spirv-cross/shaders/vulkan/rmiss/ray_tracing.khr.spv14.nocompat.vk.rmiss delete mode 100644 third_party/spirv-cross/shaders/vulkan/rmiss/ray_tracing.nocompat.vk.rmiss delete mode 100644 third_party/spirv-cross/shaders/vulkan/rmiss/ray_tracing_trace_incoming.khr.spv14.nocompat.vk.rmiss delete mode 100644 third_party/spirv-cross/shaders/vulkan/vert/device-group.nocompat.vk.vert delete mode 100644 third_party/spirv-cross/shaders/vulkan/vert/multiview.nocompat.vk.vert delete mode 100644 third_party/spirv-cross/shaders/vulkan/vert/small-storage.vk.vert delete mode 100644 third_party/spirv-cross/shaders/vulkan/vert/vulkan-vertex.vk.vert create mode 100644 third_party/spirv-cross/spirv_common.hpp.orig delete mode 100644 third_party/spirv-cross/tests-other/c_api_test.c delete mode 100644 third_party/spirv-cross/tests-other/c_api_test.spv delete mode 100644 third_party/spirv-cross/tests-other/hlsl_resource_binding.spv delete mode 100644 third_party/spirv-cross/tests-other/hlsl_resource_bindings.cpp delete mode 100644 third_party/spirv-cross/tests-other/hlsl_wave_mask.cpp delete mode 100644 third_party/spirv-cross/tests-other/msl_constexpr_test.cpp delete mode 100644 third_party/spirv-cross/tests-other/msl_constexpr_test.spv delete mode 100644 third_party/spirv-cross/tests-other/msl_resource_binding.spv delete mode 100644 third_party/spirv-cross/tests-other/msl_resource_bindings.cpp delete mode 100644 third_party/spirv-cross/tests-other/msl_ycbcr_conversion_test.cpp delete mode 100644 third_party/spirv-cross/tests-other/msl_ycbcr_conversion_test.spv delete mode 100644 third_party/spirv-cross/tests-other/msl_ycbcr_conversion_test_2.spv delete mode 100644 third_party/spirv-cross/tests-other/small_vector.cpp delete mode 100644 third_party/spirv-cross/tests-other/typed_id_test.cpp create mode 100644 third_party/spirv-cross/tnt/0002-localeconv-api-level-check.patch diff --git a/third_party/spirv-cross/.clang-format b/third_party/spirv-cross/.clang-format index 443f90b774..84552f330b 100755 --- a/third_party/spirv-cross/.clang-format +++ b/third_party/spirv-cross/.clang-format @@ -1,3 +1,6 @@ +# Copyright 2016-2021 The Khronos Group Inc. +# SPDX-License-Identifier: Apache-2.0 + # The style used for all options not specifically set in the configuration. BasedOnStyle: LLVM diff --git a/third_party/spirv-cross/.github/workflows/main.yml b/third_party/spirv-cross/.github/workflows/main.yml index 4ebca7229b..31fd114934 100644 --- a/third_party/spirv-cross/.github/workflows/main.yml +++ b/third_party/spirv-cross/.github/workflows/main.yml @@ -1,8 +1,11 @@ +# Copyright 2020-2021 The Khronos Group, Inc. +# SPDX-License-Identifier: Apache-2.0 + name: CI on: push: - branches: [ master ] + branches: [ main ] pull_request: types: [ opened, synchronize, reopened ] @@ -11,7 +14,7 @@ jobs: name: "Build ${{ matrix.platform }}" strategy: matrix: - platform: [windows-latest, ubuntu-16.04, ubuntu-18.04, ubuntu-20.04, macos-latest] + platform: [windows-latest, ubuntu-18.04, ubuntu-20.04, macos-latest] env: PARALLEL: -j 2 @@ -51,4 +54,17 @@ jobs: shell: bash working-directory: ${{github.workspace}}/build run: ctest --verbose -C Release + reuse: + name: "REUSE license check" + runs-on: ubuntu-latest + container: khronosgroup/docker-images:asciidoctor-spec + + steps: + - uses: actions/checkout@v2 + + # REUSE license checker + - name: license-check + run: | + reuse lint + diff --git a/third_party/spirv-cross/.gitignore b/third_party/spirv-cross/.gitignore index abd7189583..8e91b32a38 100644 --- a/third_party/spirv-cross/.gitignore +++ b/third_party/spirv-cross/.gitignore @@ -1,3 +1,6 @@ +# Copyright 2016-2021 The Khronos Group Inc. +# SPDX-License-Identifier: Apache-2.0 + *.o *.d *.txt @@ -18,3 +21,4 @@ *.vcxproj.user !CMakeLists.txt +!LICENSES/*.txt diff --git a/third_party/spirv-cross/.reuse/dep5 b/third_party/spirv-cross/.reuse/dep5 new file mode 100644 index 0000000000..cbdbbaed5a --- /dev/null +++ b/third_party/spirv-cross/.reuse/dep5 @@ -0,0 +1,11 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: SPIRV-Cross +Source: https://github.com/KhronosGroup/SPIRV-Cross + +Files: shaders*/* reference/* tests-other/* +Copyright: 2016-2021 The Khronos Group, Inc. +License: Apache-2.0 + +Files: spirv.h spirv.hpp GLSL.std.450.h +Copyright: 2016-2021 The Khronos Group, Inc. +License: LicenseRef-KhronosFreeUse diff --git a/third_party/spirv-cross/.travis.yml b/third_party/spirv-cross/.travis.yml deleted file mode 100644 index 7791336ede..0000000000 --- a/third_party/spirv-cross/.travis.yml +++ /dev/null @@ -1,72 +0,0 @@ -language: - - cpp - - python - -python: 3.9 - -matrix: - include: - - os: linux - dist: trusty - compiler: gcc - env: - - GENERATOR="Unix Makefiles" - - ARTIFACT=gcc-trusty-64bit - - os: linux - dist: trusty - compiler: clang - env: - - GENERATOR="Unix Makefiles" - - ARTIFACT=clang-trusty-64bit - - os: osx - compiler: clang - osx_image: xcode10 - env: - - GENERATOR="Unix Makefiles" - - ARTIFACT=clang-macos-64bit - - os: windows - before_install: - - choco install python3 - - export PATH="/c/Python39:/c/Python39/Scripts:$PATH" - env: - - GENERATOR="Visual Studio 15 2017" - - ARTIFACT=vs2017-32bit - - os: windows - before_install: - - choco install python3 - - export PATH="/c/Python39:/c/Python39/Scripts:$PATH" - env: - - GENERATOR="Visual Studio 15 2017 Win64" - - ARTIFACT=vs2017-64bit - -before_script: - - "./checkout_glslang_spirv_tools.sh" - -script: - - if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then PYTHON3=$(which python); fi - - if [[ "$TRAVIS_OS_NAME" != "windows" ]]; then PYTHON3=$(which python3); fi - - "./build_glslang_spirv_tools.sh Release" - - mkdir build - - cd build - - cmake .. -DSPIRV_CROSS_WERROR=ON -DSPIRV_CROSS_MISC_WARNINGS=ON -DSPIRV_CROSS_SHARED=ON -DCMAKE_INSTALL_PREFIX=output -DCMAKE_BUILD_TYPE=Release -G "${GENERATOR}" -DPYTHON_EXECUTABLE:FILEPATH="${PYTHON3}" -DSPIRV_CROSS_ENABLE_TESTS=ON - - cmake --build . --config Release - - cmake --build . --config Release --target install - - ctest --verbose -C Release - - cd .. - -before_deploy: - - REV=${ARTIFACT}-$(git rev-parse --short=10 HEAD) - - cd build/output - - tar cf spirv-cross-${REV}.tar * - - gzip spirv-cross-${REV}.tar - - cd ../.. - - export FILE_TO_UPLOAD=build/output/spirv-cross-${REV}.tar.gz - -deploy: - provider: releases - api_key: - secure: c7YEOyzhE19TFo76UnbLWk/kikRQxsHsOxzkOqN6Q2aL8joNRw5kmcG84rGd+Rf6isX62cykCzA6qHkyJCv9QTIzcyXnLju17rLvgib7cXDcseaq8x4mFvet2yUxCglthDpFY2M2LB0Aqws71lPeYIrKXa6hCFEh8jO3AWxnaor7O3RYfNZylM9d33HgH6KLT3sDx/cukwBstmKeg7EG9OUnrSvairkPW0W2+jlq3SXPlq/WeVhf8hQs3Yg0BluExGbmLOwe9EaeUpeGuJMyHRxXypnToQv1/KwoScKpap5tYxdNWiwRGZ4lYcmKrjAYVvilTioh654oX5LQpn34mE/oe8Ko9AaATkSaoiisRFp6meWtnB39oFBoL5Yn15DqLQpRXPr1AJsnBXSGAac3aDBO1j4MIqTHmYlYlfRw3n2ZsBaFaTZnv++438SNQ54nkivyoDTIWjoOmYa9+K4mQc3415RDdQmjZTJM+lu+GAlMmNBTVbfNvrbU55Usu9Lo6BZJKKdUMvdBB78kJ5FHvcBlL+eMgmk1pABQY0IZROCt7NztHcv1UmAxoWNxveSFs5glydPNNjNS8bogc4dzBGYG0KMmILbBHihVbY2toA1M9CMdDHdp+LucfDMmzECmYSEmlx0h8win+Jjb74/qpOhaXuUZ0NnzVgCOyeUYuMQ= - file: "${FILE_TO_UPLOAD}" - skip_cleanup: true - on: - tags: true diff --git a/third_party/spirv-cross/CMakeLists.txt b/third_party/spirv-cross/CMakeLists.txt index 39acf9a303..974c190287 100644 --- a/third_party/spirv-cross/CMakeLists.txt +++ b/third_party/spirv-cross/CMakeLists.txt @@ -1,4 +1,5 @@ # Copyright 2016-2021 Google Inc. +# SPDX-License-Identifier: Apache-2.0 OR MIT # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -16,7 +17,6 @@ # At your option, you may choose to accept this material under either: # 1. The Apache License, Version 2.0, found at , or # 2. The MIT License, found at . -# SPDX-License-Identifier: Apache-2.0 OR MIT. # cmake_minimum_required(VERSION 3.0) @@ -332,7 +332,7 @@ if (SPIRV_CROSS_STATIC) endif() set(spirv-cross-abi-major 0) -set(spirv-cross-abi-minor 47) +set(spirv-cross-abi-minor 56) set(spirv-cross-abi-patch 0) if (SPIRV_CROSS_SHARED) @@ -442,7 +442,7 @@ if (SPIRV_CROSS_CLI) target_compile_definitions(spirv-cross PRIVATE ${spirv-compiler-defines} HAVE_SPIRV_CROSS_GIT_VERSION) set_target_properties(spirv-cross PROPERTIES LINK_FLAGS "${spirv-cross-link-flags}") if (NOT SPIRV_CROSS_SKIP_INSTALL) - install(TARGETS spirv-cross RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + install(TARGETS spirv-cross DESTINATION ${CMAKE_INSTALL_BINDIR}) endif() target_link_libraries(spirv-cross PRIVATE spirv-cross-glsl diff --git a/third_party/spirv-cross/CODE_OF_CONDUCT.adoc b/third_party/spirv-cross/CODE_OF_CONDUCT.adoc new file mode 100644 index 0000000000..ca5e08b930 --- /dev/null +++ b/third_party/spirv-cross/CODE_OF_CONDUCT.adoc @@ -0,0 +1,11 @@ +// Copyright (c) 2016-2020 The Khronos Group Inc. +// +// SPDX-License-Identifier: CC-BY-4.0 + += Code of Conduct + +A reminder that this issue tracker is managed by the Khronos Group. +Interactions here should follow the +https://www.khronos.org/developers/code-of-conduct[Khronos Code of Conduct], +which prohibits aggressive or derogatory language. Please keep the +discussion friendly and civil. diff --git a/third_party/spirv-cross/CODE_OF_CONDUCT.md b/third_party/spirv-cross/CODE_OF_CONDUCT.md deleted file mode 100644 index a11610bd30..0000000000 --- a/third_party/spirv-cross/CODE_OF_CONDUCT.md +++ /dev/null @@ -1 +0,0 @@ -A reminder that this issue tracker is managed by the Khronos Group. Interactions here should follow the Khronos Code of Conduct (https://www.khronos.org/developers/code-of-conduct), which prohibits aggressive or derogatory language. Please keep the discussion friendly and civil. diff --git a/third_party/spirv-cross/GLSL.std.450.h b/third_party/spirv-cross/GLSL.std.450.h index 54cc00e9a8..2686fc4ea7 100644 --- a/third_party/spirv-cross/GLSL.std.450.h +++ b/third_party/spirv-cross/GLSL.std.450.h @@ -1,27 +1,10 @@ /* -** Copyright (c) 2014-2016 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a copy -** of this software and/or associated documentation files (the "Materials"), -** to deal in the Materials without restriction, including without limitation -** the rights to use, copy, modify, merge, publish, distribute, sublicense, -** and/or sell copies of the Materials, and to permit persons to whom the -** Materials are furnished to do so, subject to the following conditions: -** -** The above copyright notice and this permission notice shall be included in -** all copies or substantial portions of the Materials. -** -** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS -** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND -** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS -** IN THE MATERIALS. + * Copyright 2014-2016,2021 The Khronos Group, Inc. + * SPDX-License-Identifier: MIT + * + * MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS + * STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND + * HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ */ #ifndef GLSLstd450_H diff --git a/third_party/spirv-cross/LICENSES/Apache-2.0.txt b/third_party/spirv-cross/LICENSES/Apache-2.0.txt new file mode 100644 index 0000000000..4ed90b9522 --- /dev/null +++ b/third_party/spirv-cross/LICENSES/Apache-2.0.txt @@ -0,0 +1,208 @@ +Apache License + +Version 2.0, January 2004 + +http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, +AND DISTRIBUTION + + 1. Definitions. + + + +"License" shall mean the terms and conditions for use, reproduction, and distribution +as defined by Sections 1 through 9 of this document. + + + +"Licensor" shall mean the copyright owner or entity authorized by the copyright +owner that is granting the License. + + + +"Legal Entity" shall mean the union of the acting entity and all other entities +that control, are controlled by, or are under common control with that entity. +For the purposes of this definition, "control" means (i) the power, direct +or indirect, to cause the direction or management of such entity, whether +by contract or otherwise, or (ii) ownership of fifty percent (50%) or more +of the outstanding shares, or (iii) beneficial ownership of such entity. + + + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions +granted by this License. + + + +"Source" form shall mean the preferred form for making modifications, including +but not limited to software source code, documentation source, and configuration +files. + + + +"Object" form shall mean any form resulting from mechanical transformation +or translation of a Source form, including but not limited to compiled object +code, generated documentation, and conversions to other media types. + + + +"Work" shall mean the work of authorship, whether in Source or Object form, +made available under the License, as indicated by a copyright notice that +is included in or attached to the work (an example is provided in the Appendix +below). + + + +"Derivative Works" shall mean any work, whether in Source or Object form, +that is based on (or derived from) the Work and for which the editorial revisions, +annotations, elaborations, or other modifications represent, as a whole, an +original work of authorship. For the purposes of this License, Derivative +Works shall not include works that remain separable from, or merely link (or +bind by name) to the interfaces of, the Work and Derivative Works thereof. + + + +"Contribution" shall mean any work of authorship, including the original version +of the Work and any modifications or additions to that Work or Derivative +Works thereof, that is intentionally submitted to Licensor for inclusion in +the Work by the copyright owner or by an individual or Legal Entity authorized +to submit on behalf of the copyright owner. For the purposes of this definition, +"submitted" means any form of electronic, verbal, or written communication +sent to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, and +issue tracking systems that are managed by, or on behalf of, the Licensor +for the purpose of discussing and improving the Work, but excluding communication +that is conspicuously marked or otherwise designated in writing by the copyright +owner as "Not a Contribution." + + + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf +of whom a Contribution has been received by Licensor and subsequently incorporated +within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this +License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, +no-charge, royalty-free, irrevocable copyright license to reproduce, prepare +Derivative Works of, publicly display, publicly perform, sublicense, and distribute +the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this License, +each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, +no-charge, royalty-free, irrevocable (except as stated in this section) patent +license to make, have made, use, offer to sell, sell, import, and otherwise +transfer the Work, where such license applies only to those patent claims +licensable by such Contributor that are necessarily infringed by their Contribution(s) +alone or by combination of their Contribution(s) with the Work to which such +Contribution(s) was submitted. If You institute patent litigation against +any entity (including a cross-claim or counterclaim in a lawsuit) alleging +that the Work or a Contribution incorporated within the Work constitutes direct +or contributory patent infringement, then any patent licenses granted to You +under this License for that Work shall terminate as of the date such litigation +is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or +Derivative Works thereof in any medium, with or without modifications, and +in Source or Object form, provided that You meet the following conditions: + +(a) You must give any other recipients of the Work or Derivative Works a copy +of this License; and + +(b) You must cause any modified files to carry prominent notices stating that +You changed the files; and + +(c) You must retain, in the Source form of any Derivative Works that You distribute, +all copyright, patent, trademark, and attribution notices from the Source +form of the Work, excluding those notices that do not pertain to any part +of the Derivative Works; and + +(d) If the Work includes a "NOTICE" text file as part of its distribution, +then any Derivative Works that You distribute must include a readable copy +of the attribution notices contained within such NOTICE file, excluding those +notices that do not pertain to any part of the Derivative Works, in at least +one of the following places: within a NOTICE text file distributed as part +of the Derivative Works; within the Source form or documentation, if provided +along with the Derivative Works; or, within a display generated by the Derivative +Works, if and wherever such third-party notices normally appear. The contents +of the NOTICE file are for informational purposes only and do not modify the +License. You may add Your own attribution notices within Derivative Works +that You distribute, alongside or as an addendum to the NOTICE text from the +Work, provided that such additional attribution notices cannot be construed +as modifying the License. + +You may add Your own copyright statement to Your modifications and may provide +additional or different license terms and conditions for use, reproduction, +or distribution of Your modifications, or for any such Derivative Works as +a whole, provided Your use, reproduction, and distribution of the Work otherwise +complies with the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, any +Contribution intentionally submitted for inclusion in the Work by You to the +Licensor shall be under the terms and conditions of this License, without +any additional terms or conditions. Notwithstanding the above, nothing herein +shall supersede or modify the terms of any separate license agreement you +may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade names, +trademarks, service marks, or product names of the Licensor, except as required +for reasonable and customary use in describing the origin of the Work and +reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to +in writing, Licensor provides the Work (and each Contributor provides its +Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied, including, without limitation, any warranties +or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR +A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness +of using or redistributing the Work and assume any risks associated with Your +exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, whether +in tort (including negligence), contract, or otherwise, unless required by +applicable law (such as deliberate and grossly negligent acts) or agreed to +in writing, shall any Contributor be liable to You for damages, including +any direct, indirect, special, incidental, or consequential damages of any +character arising as a result of this License or out of the use or inability +to use the Work (including but not limited to damages for loss of goodwill, +work stoppage, computer failure or malfunction, or any and all other commercial +damages or losses), even if such Contributor has been advised of the possibility +of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the Work +or Derivative Works thereof, You may choose to offer, and charge a fee for, +acceptance of support, warranty, indemnity, or other liability obligations +and/or rights consistent with this License. However, in accepting such obligations, +You may act only on Your own behalf and on Your sole responsibility, not on +behalf of any other Contributor, and only if You agree to indemnify, defend, +and hold each Contributor harmless for any liability incurred by, or claims +asserted against, such Contributor by reason of your accepting any such warranty +or additional liability. END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + +To apply the Apache License to your work, attach the following boilerplate +notice, with the fields enclosed by brackets "[]" replaced with your own identifying +information. (Don't include the brackets!) The text should be enclosed in +the appropriate comment syntax for the file format. We also recommend that +a file or class name and description of purpose be included on the same "printed +page" as the copyright notice for easier identification within third-party +archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); + +you may not use this file except in compliance with the License. + +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software + +distributed under the License is distributed on an "AS IS" BASIS, + +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + +See the License for the specific language governing permissions and + +limitations under the License. diff --git a/third_party/spirv-cross/LICENSES/CC-BY-4.0.txt b/third_party/spirv-cross/LICENSES/CC-BY-4.0.txt new file mode 100644 index 0000000000..3f92dfc5fd --- /dev/null +++ b/third_party/spirv-cross/LICENSES/CC-BY-4.0.txt @@ -0,0 +1,324 @@ +Creative Commons Attribution 4.0 International Creative Commons Corporation +("Creative Commons") is not a law firm and does not provide legal services +or legal advice. Distribution of Creative Commons public licenses does not +create a lawyer-client or other relationship. Creative Commons makes its licenses +and related information available on an "as-is" basis. Creative Commons gives +no warranties regarding its licenses, any material licensed under their terms +and conditions, or any related information. Creative Commons disclaims all +liability for damages resulting from their use to the fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and conditions +that creators and other rights holders may use to share original works of +authorship and other material subject to copyright and certain other rights +specified in the public license below. The following considerations are for +informational purposes only, are not exhaustive, and do not form part of our +licenses. + +Considerations for licensors: Our public licenses are intended for use by +those authorized to give the public permission to use material in ways otherwise +restricted by copyright and certain other rights. Our licenses are irrevocable. +Licensors should read and understand the terms and conditions of the license +they choose before applying it. Licensors should also secure all rights necessary +before applying our licenses so that the public can reuse the material as +expected. Licensors should clearly mark any material not subject to the license. +This includes other CC-licensed material, or material used under an exception +or limitation to copyright. More considerations for licensors : wiki.creativecommons.org/Considerations_for_licensors + +Considerations for the public: By using one of our public licenses, a licensor +grants the public permission to use the licensed material under specified +terms and conditions. If the licensor's permission is not necessary for any +reason–for example, because of any applicable exception or limitation to copyright–then +that use is not regulated by the license. Our licenses grant only permissions +under copyright and certain other rights that a licensor has authority to +grant. Use of the licensed material may still be restricted for other reasons, +including because others have copyright or other rights in the material. A +licensor may make special requests, such as asking that all changes be marked +or described. Although not required by our licenses, you are encouraged to +respect those requests where reasonable. More considerations for the public +: wiki.creativecommons.org/Considerations_for_licensees Creative Commons Attribution +4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree to +be bound by the terms and conditions of this Creative Commons Attribution +4.0 International Public License ("Public License"). To the extent this Public +License may be interpreted as a contract, You are granted the Licensed Rights +in consideration of Your acceptance of these terms and conditions, and the +Licensor grants You such rights in consideration of benefits the Licensor +receives from making the Licensed Material available under these terms and +conditions. + +Section 1 – Definitions. + +a. Adapted Material means material subject to Copyright and Similar Rights +that is derived from or based upon the Licensed Material and in which the +Licensed Material is translated, altered, arranged, transformed, or otherwise +modified in a manner requiring permission under the Copyright and Similar +Rights held by the Licensor. For purposes of this Public License, where the +Licensed Material is a musical work, performance, or sound recording, Adapted +Material is always produced where the Licensed Material is synched in timed +relation with a moving image. + +b. Adapter's License means the license You apply to Your Copyright and Similar +Rights in Your contributions to Adapted Material in accordance with the terms +and conditions of this Public License. + +c. Copyright and Similar Rights means copyright and/or similar rights closely +related to copyright including, without limitation, performance, broadcast, +sound recording, and Sui Generis Database Rights, without regard to how the +rights are labeled or categorized. For purposes of this Public License, the +rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights. + +d. Effective Technological Measures means those measures that, in the absence +of proper authority, may not be circumvented under laws fulfilling obligations +under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, +and/or similar international agreements. + +e. Exceptions and Limitations means fair use, fair dealing, and/or any other +exception or limitation to Copyright and Similar Rights that applies to Your +use of the Licensed Material. + +f. Licensed Material means the artistic or literary work, database, or other +material to which the Licensor applied this Public License. + +g. Licensed Rights means the rights granted to You subject to the terms and +conditions of this Public License, which are limited to all Copyright and +Similar Rights that apply to Your use of the Licensed Material and that the +Licensor has authority to license. + +h. Licensor means the individual(s) or entity(ies) granting rights under this +Public License. + +i. Share means to provide material to the public by any means or process that +requires permission under the Licensed Rights, such as reproduction, public +display, public performance, distribution, dissemination, communication, or +importation, and to make material available to the public including in ways +that members of the public may access the material from a place and at a time +individually chosen by them. + +j. Sui Generis Database Rights means rights other than copyright resulting +from Directive 96/9/EC of the European Parliament and of the Council of 11 +March 1996 on the legal protection of databases, as amended and/or succeeded, +as well as other essentially equivalent rights anywhere in the world. + +k. You means the individual or entity exercising the Licensed Rights under +this Public License. Your has a corresponding meaning. + +Section 2 – Scope. + + a. License grant. + +1. Subject to the terms and conditions of this Public License, the Licensor +hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, +irrevocable license to exercise the Licensed Rights in the Licensed Material +to: + + A. reproduce and Share the Licensed Material, in whole or in part; and + + B. produce, reproduce, and Share Adapted Material. + +2. Exceptions and Limitations. For the avoidance of doubt, where Exceptions +and Limitations apply to Your use, this Public License does not apply, and +You do not need to comply with its terms and conditions. + + 3. Term. The term of this Public License is specified in Section 6(a). + +4. Media and formats; technical modifications allowed. The Licensor authorizes +You to exercise the Licensed Rights in all media and formats whether now known +or hereafter created, and to make technical modifications necessary to do +so. The Licensor waives and/or agrees not to assert any right or authority +to forbid You from making technical modifications necessary to exercise the +Licensed Rights, including technical modifications necessary to circumvent +Effective Technological Measures. For purposes of this Public License, simply +making modifications authorized by this Section 2(a)(4) never produces Adapted +Material. + + 5. Downstream recipients. + +A. Offer from the Licensor – Licensed Material. Every recipient of the Licensed +Material automatically receives an offer from the Licensor to exercise the +Licensed Rights under the terms and conditions of this Public License. + +B. No downstream restrictions. You may not offer or impose any additional +or different terms or conditions on, or apply any Effective Technological +Measures to, the Licensed Material if doing so restricts exercise of the Licensed +Rights by any recipient of the Licensed Material. + +6. No endorsement. Nothing in this Public License constitutes or may be construed +as permission to assert or imply that You are, or that Your use of the Licensed +Material is, connected with, or sponsored, endorsed, or granted official status +by, the Licensor or others designated to receive attribution as provided in +Section 3(a)(1)(A)(i). + + b. Other rights. + +1. Moral rights, such as the right of integrity, are not licensed under this +Public License, nor are publicity, privacy, and/or other similar personality +rights; however, to the extent possible, the Licensor waives and/or agrees +not to assert any such rights held by the Licensor to the limited extent necessary +to allow You to exercise the Licensed Rights, but not otherwise. + +2. Patent and trademark rights are not licensed under this Public License. + +3. To the extent possible, the Licensor waives any right to collect royalties +from You for the exercise of the Licensed Rights, whether directly or through +a collecting society under any voluntary or waivable statutory or compulsory +licensing scheme. In all other cases the Licensor expressly reserves any right +to collect such royalties. + +Section 3 – License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the following +conditions. + + a. Attribution. + +1. If You Share the Licensed Material (including in modified form), You must: + +A. retain the following if it is supplied by the Licensor with the Licensed +Material: + +i. identification of the creator(s) of the Licensed Material and any others +designated to receive attribution, in any reasonable manner requested by the +Licensor (including by pseudonym if designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of warranties; + +v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable; + +B. indicate if You modified the Licensed Material and retain an indication +of any previous modifications; and + +C. indicate the Licensed Material is licensed under this Public License, and +include the text of, or the URI or hyperlink to, this Public License. + +2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner +based on the medium, means, and context in which You Share the Licensed Material. +For example, it may be reasonable to satisfy the conditions by providing a +URI or hyperlink to a resource that includes the required information. + +3. If requested by the Licensor, You must remove any of the information required +by Section 3(a)(1)(A) to the extent reasonably practicable. + +4. If You Share Adapted Material You produce, the Adapter's License You apply +must not prevent recipients of the Adapted Material from complying with this +Public License. + +Section 4 – Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that apply to +Your use of the Licensed Material: + +a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, +reuse, reproduce, and Share all or a substantial portion of the contents of +the database; + +b. if You include all or a substantial portion of the database contents in +a database in which You have Sui Generis Database Rights, then the database +in which You have Sui Generis Database Rights (but not its individual contents) +is Adapted Material; and + +c. You must comply with the conditions in Section 3(a) if You Share all or +a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not replace +Your obligations under this Public License where the Licensed Rights include +other Copyright and Similar Rights. + +Section 5 – Disclaimer of Warranties and Limitation of Liability. + +a. Unless otherwise separately undertaken by the Licensor, to the extent possible, +the Licensor offers the Licensed Material as-is and as-available, and makes +no representations or warranties of any kind concerning the Licensed Material, +whether express, implied, statutory, or other. This includes, without limitation, +warranties of title, merchantability, fitness for a particular purpose, non-infringement, +absence of latent or other defects, accuracy, or the presence or absence of +errors, whether or not known or discoverable. Where disclaimers of warranties +are not allowed in full or in part, this disclaimer may not apply to You. + +b. To the extent possible, in no event will the Licensor be liable to You +on any legal theory (including, without limitation, negligence) or otherwise +for any direct, special, indirect, incidental, consequential, punitive, exemplary, +or other losses, costs, expenses, or damages arising out of this Public License +or use of the Licensed Material, even if the Licensor has been advised of +the possibility of such losses, costs, expenses, or damages. Where a limitation +of liability is not allowed in full or in part, this limitation may not apply +to You. + +c. The disclaimer of warranties and limitation of liability provided above +shall be interpreted in a manner that, to the extent possible, most closely +approximates an absolute disclaimer and waiver of all liability. + +Section 6 – Term and Termination. + +a. This Public License applies for the term of the Copyright and Similar Rights +licensed here. However, if You fail to comply with this Public License, then +Your rights under this Public License terminate automatically. + +b. Where Your right to use the Licensed Material has terminated under Section +6(a), it reinstates: + +1. automatically as of the date the violation is cured, provided it is cured +within 30 days of Your discovery of the violation; or + + 2. upon express reinstatement by the Licensor. + +c. For the avoidance of doubt, this Section 6(b) does not affect any right +the Licensor may have to seek remedies for Your violations of this Public +License. + +d. For the avoidance of doubt, the Licensor may also offer the Licensed Material +under separate terms or conditions or stop distributing the Licensed Material +at any time; however, doing so will not terminate this Public License. + + e. Sections 1, 5, 6, 7, and 8 survive termination of this Public License. + +Section 7 – Other Terms and Conditions. + +a. The Licensor shall not be bound by any additional or different terms or +conditions communicated by You unless expressly agreed. + +b. Any arrangements, understandings, or agreements regarding the Licensed +Material not stated herein are separate from and independent of the terms +and conditions of this Public License. + +Section 8 – Interpretation. + +a. For the avoidance of doubt, this Public License does not, and shall not +be interpreted to, reduce, limit, restrict, or impose conditions on any use +of the Licensed Material that could lawfully be made without permission under +this Public License. + +b. To the extent possible, if any provision of this Public License is deemed +unenforceable, it shall be automatically reformed to the minimum extent necessary +to make it enforceable. If the provision cannot be reformed, it shall be severed +from this Public License without affecting the enforceability of the remaining +terms and conditions. + +c. No term or condition of this Public License will be waived and no failure +to comply consented to unless expressly agreed to by the Licensor. + +d. Nothing in this Public License constitutes or may be interpreted as a limitation +upon, or waiver of, any privileges and immunities that apply to the Licensor +or You, including from the legal processes of any jurisdiction or authority. + +Creative Commons is not a party to its public licenses. Notwithstanding, Creative +Commons may elect to apply one of its public licenses to material it publishes +and in those instances will be considered the "Licensor." The text of the +Creative Commons public licenses is dedicated to the public domain under the +CC0 Public Domain Dedication. Except for the limited purpose of indicating +that material is shared under a Creative Commons public license or as otherwise +permitted by the Creative Commons policies published at creativecommons.org/policies, +Creative Commons does not authorize the use of the trademark "Creative Commons" +or any other trademark or logo of Creative Commons without its prior written +consent including, without limitation, in connection with any unauthorized +modifications to any of its public licenses or any other arrangements, understandings, +or agreements concerning use of licensed material. For the avoidance of doubt, +this paragraph does not form part of the public licenses. + +Creative Commons may be contacted at creativecommons.org. diff --git a/third_party/spirv-cross/LICENSES/LicenseRef-KhronosFreeUse.txt b/third_party/spirv-cross/LICENSES/LicenseRef-KhronosFreeUse.txt new file mode 100644 index 0000000000..430863bc98 --- /dev/null +++ b/third_party/spirv-cross/LICENSES/LicenseRef-KhronosFreeUse.txt @@ -0,0 +1,23 @@ +Copyright (c) 2014-2020 The Khronos Group Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and/or associated documentation files (the "Materials"), +to deal in the Materials without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Materials, and to permit persons to whom the +Materials are furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Materials. + +MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS +STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND +HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ + +THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS +IN THE MATERIALS. diff --git a/third_party/spirv-cross/LICENSES/MIT.txt b/third_party/spirv-cross/LICENSES/MIT.txt new file mode 100644 index 0000000000..204b93da48 --- /dev/null +++ b/third_party/spirv-cross/LICENSES/MIT.txt @@ -0,0 +1,19 @@ +MIT License Copyright (c) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS +OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/third_party/spirv-cross/Makefile b/third_party/spirv-cross/Makefile index 1f4e00b5ce..b44eb5e8c9 100644 --- a/third_party/spirv-cross/Makefile +++ b/third_party/spirv-cross/Makefile @@ -1,3 +1,6 @@ +# Copyright 2016-2021 The Khronos Group Inc. +# SPDX-License-Identifier: Apache-2.0 + TARGET := spirv-cross SOURCES := $(wildcard spirv_*.cpp) diff --git a/third_party/spirv-cross/Package.swift b/third_party/spirv-cross/Package.swift new file mode 100644 index 0000000000..99e601936a --- /dev/null +++ b/third_party/spirv-cross/Package.swift @@ -0,0 +1,72 @@ +// swift-tools-version:5.5 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +// Copyright 2016-2021 The Khronos Group Inc. +// SPDX-License-Identifier: Apache-2.0 + +import PackageDescription + +let package = Package( + name: "SPIRV-Cross", + products: [ + // Products define the executables and libraries a package produces, and make them visible to other packages. + .library( + name: "SPIRV-Cross", + targets: ["SPIRV-Cross"]), + ], + dependencies: [ + // Dependencies declare other packages that this package depends on. + // .package(url: /* package url */, from: "1.0.0"), + ], + targets: [ + // Targets are the basic building blocks of a package. A target can define a module or a test suite. + // Targets can depend on other targets in this package, and on products in packages this package depends on. + .target( + name: "SPIRV-Cross", + dependencies: [], + path: ".", + exclude: ["CMakeLists.txt", + "CODE_OF_CONDUCT.adoc", + "LICENSE", + "LICENSES", + "Makefile", + "README.md", + "appveyor.yml", + "build_glslang_spirv_tools.sh", + "checkout_glslang_spirv_tools.sh", + "cmake", + "format_all.sh", + "gn", + "main.cpp", + "pkg-config", + "reference", + "samples", + "shaders", + "shaders-hlsl", + "shaders-hlsl-no-opt", + "shaders-msl", + "shaders-msl-no-opt", + "shaders-no-opt", + "shaders-other", + "shaders-reflection", + "shaders-ue4", + "shaders-ue4-no-opt", + "test_shaders.py", + "test_shaders.sh", + "tests-other", + "update_test_shaders.sh"], + sources: ["spirv_cfg.cpp", + "spirv_cpp.cpp", + "spirv_cross.cpp", + "spirv_cross_c.cpp", + "spirv_cross_parsed_ir.cpp", + "spirv_cross_util.cpp", + "spirv_glsl.cpp", + "spirv_hlsl.cpp", + "spirv_msl.cpp", + "spirv_parser.cpp", + "spirv_reflect.cpp"], + publicHeadersPath: "."), + ], + cxxLanguageStandard: .cxx14 +) diff --git a/third_party/spirv-cross/README.md b/third_party/spirv-cross/README.md index 7d8990b035..3a89e6c2f8 100644 --- a/third_party/spirv-cross/README.md +++ b/third_party/spirv-cross/README.md @@ -1,17 +1,22 @@ + + # SPIRV-Cross SPIRV-Cross is a tool designed for parsing and converting SPIR-V to other shader languages. [![CI](https://github.com/KhronosGroup/SPIRV-Cross/actions/workflows/main.yml/badge.svg)](https://github.com/KhronosGroup/SPIRV-Cross/actions/workflows/main.yml) -[![Build Status](https://ci.appveyor.com/api/projects/status/github/KhronosGroup/SPIRV-Cross?svg=true&branch=master)](https://ci.appveyor.com/project/HansKristian-Work/SPIRV-Cross) +[![Build Status](https://ci.appveyor.com/api/projects/status/github/KhronosGroup/SPIRV-Cross?svg=true&branch=main)](https://ci.appveyor.com/project/HansKristian-Work/SPIRV-Cross) ## Features - Convert SPIR-V to readable, usable and efficient GLSL - Convert SPIR-V to readable, usable and efficient Metal Shading Language (MSL) - Convert SPIR-V to readable, usable and efficient HLSL + - Convert SPIR-V to a JSON reflection format - Convert SPIR-V to debuggable C++ [DEPRECATED] - - Convert SPIR-V to a JSON reflection format [EXPERIMENTAL] - Reflection API to simplify the creation of Vulkan pipeline layouts - Reflection API to modify and tweak OpDecorations - Supports "all" of vertex, fragment, tessellation, geometry and compute shaders. @@ -26,6 +31,10 @@ However, most missing features are expected to be "trivial" improvements at this SPIRV-Cross has been tested on Linux, iOS/OSX, Windows and Android. CMake is the main build system. +### NOTE: main branch rename + +On 2023-01-12, `master` was renamed to `main` as per Khronos policy. + ### Linux and macOS Building with CMake is recommended, as it is the only build system which is tested in continuous integration. @@ -52,6 +61,20 @@ The make and CMake build flavors offer the option to treat exceptions as asserti You can use `-DSPIRV_CROSS_STATIC=ON/OFF` `-DSPIRV_CROSS_SHARED=ON/OFF` `-DSPIRV_CROSS_CLI=ON/OFF` to control which modules are built (and installed). +### Installing SPIRV-Cross (vcpkg) + +Alternatively, you can build and install SPIRV-Cross using [vcpkg](https://github.com/Microsoft/vcpkg/) dependency manager: + +``` +git clone https://github.com/Microsoft/vcpkg.git +cd vcpkg +./bootstrap-vcpkg.sh +./vcpkg integrate install +./vcpkg install spirv-cross +``` + +The SPIRV-Cross port in vcpkg is kept up to date by Microsoft team members and community contributors. If the version is out of date, please [create an issue or pull request](https://github.com/Microsoft/vcpkg) on the vcpkg repository. + ## Usage ### Using the C++ API @@ -99,7 +122,7 @@ int main() spirv_cross::CompilerGLSL::Options options; options.version = 310; options.es = true; - glsl.set_options(options); + glsl.set_common_options(options); // Compile to GLSL, ready to give to GL driver. std::string source = glsl.compile(); @@ -376,10 +399,28 @@ for (auto &remap : compiler->get_combined_image_samplers()) If your target is Vulkan GLSL, `--vulkan-semantics` will emit separate image samplers as you'd expect. The command line client calls `Compiler::build_combined_image_samplers` automatically, but if you're calling the library, you'll need to do this yourself. -#### Descriptor sets (Vulkan GLSL) for backends which do not support them (HLSL/GLSL/Metal) +#### Descriptor sets (Vulkan GLSL) for backends which do not support them (pre HLSL 5.1 / GLSL) Descriptor sets are unique to Vulkan, so make sure that descriptor set + binding is remapped to a flat binding scheme (set always 0), so that other APIs can make sense of the bindings. -This can be done with `Compiler::set_decoration(id, spv::DecorationDescriptorSet)`. +This can be done with `Compiler::set_decoration(id, spv::DecorationDescriptorSet)`. For other backends like MSL and HLSL, descriptor sets +can be used, with some minor caveats, see below. + +##### MSL 2.0+ + +Metal supports indirect argument buffers (--msl-argument-buffers). In this case, descriptor sets become argument buffers, +and bindings are mapped to [[id(N)]] within the argument buffer. One quirk is that arrays of resources consume multiple ids, +where Vulkan does not. This can be worked around either from shader authoring stage +or remapping bindings as needed to avoid the overlap. +There is also a rich API to declare remapping schemes which is intended to work like +the pipeline layout in Vulkan. See `CompilerMSL::add_msl_resource_binding`. Remapping combined image samplers for example +must be split into two bindings in MSL, so it's possible to declare an id for the texture and sampler binding separately. + +##### HLSL - SM 5.1+ + +In SM 5.1+, descriptor set bindings are interpreted as register spaces directly. In HLSL however, arrays of resources consume +multiple binding slots where Vulkan does not, so there might be overlap if the SPIR-V was not authored with this in mind. +This can be worked around either from shader authoring stage (don't assign overlapping bindings) +or remap bindings in SPIRV-Cross as needed to avoid the overlap. #### Linking by name for targets which do not support explicit locations (legacy GLSL/ESSL) @@ -439,9 +480,6 @@ All pull requests should ensure that test output does not change unexpectedly. T ``` ./checkout_glslang_spirv_tools.sh # Checks out glslang and SPIRV-Tools at a fixed revision which matches the reference output. - # NOTE: Some users have reported problems cloning from git:// paths. To use https:// instead pass in - # $ PROTOCOL=https ./checkout_glslang_spirv_tools.sh - # instead. ./build_glslang_spirv_tools.sh # Builds glslang and SPIRV-Tools. ./test_shaders.sh # Runs over all changes and makes sure that there are no deltas compared to reference files. ``` @@ -465,7 +503,7 @@ to update the reference files and include these changes as part of the pull requ Always make sure you are running the correct version of glslangValidator as well as SPIRV-Tools when updating reference files. See `checkout_glslang_spirv_tools.sh` which revisions are currently expected. The revisions change regularly. -In short, the master branch should always be able to run `./test_shaders.py shaders` and friends without failure. +In short, the main branch should always be able to run `./test_shaders.py shaders` and friends without failure. SPIRV-Cross uses Travis CI to test all pull requests, so it is not strictly needed to perform testing yourself if you have problems running it locally. A pull request which does not pass testing on Travis will not be accepted however. diff --git a/third_party/spirv-cross/appveyor.yml b/third_party/spirv-cross/appveyor.yml index 2f427f1804..cc2fade271 100644 --- a/third_party/spirv-cross/appveyor.yml +++ b/third_party/spirv-cross/appveyor.yml @@ -1,3 +1,5 @@ +# Copyright 2016-2021 The Khronos Group Inc. +# SPDX-License-Identifier: Apache-2.0 environment: matrix: diff --git a/third_party/spirv-cross/build_glslang_spirv_tools.sh b/third_party/spirv-cross/build_glslang_spirv_tools.sh index fb4f7de218..f78640f35b 100644 --- a/third_party/spirv-cross/build_glslang_spirv_tools.sh +++ b/third_party/spirv-cross/build_glslang_spirv_tools.sh @@ -1,4 +1,6 @@ #!/bin/bash +# Copyright 2016-2021 The Khronos Group Inc. +# SPDX-License-Identifier: Apache-2.0 PROFILE=Release diff --git a/third_party/spirv-cross/checkout_glslang_spirv_tools.sh b/third_party/spirv-cross/checkout_glslang_spirv_tools.sh index 02024c441a..8842939583 100755 --- a/third_party/spirv-cross/checkout_glslang_spirv_tools.sh +++ b/third_party/spirv-cross/checkout_glslang_spirv_tools.sh @@ -1,14 +1,11 @@ #!/bin/bash +# Copyright 2016-2021 The Khronos Group Inc. +# SPDX-License-Identifier: Apache-2.0 -GLSLANG_REV=3de5cfe50edecd001e6d703555284d9b10b3dd57 -SPIRV_TOOLS_REV=f3ccb633dfd7c5de1f9f0a2d2e9d7a25f2478206 -SPIRV_HEADERS_REV=f027d53ded7e230e008d37c8b47ede7cd308e19d - -if [ -z $PROTOCOL ]; then - PROTOCOL=git -fi - -echo "Using protocol \"$PROTOCOL\" for checking out repositories. If this is problematic, try PROTOCOL=https $0." +GLSLANG_REV=06a7078ce74ab5c7801a165b8145859678831fb8 +SPIRV_TOOLS_REV=f62e121b0df5374d1f043d1fbda98467406af0b1 +SPIRV_HEADERS_REV=d13b52222c39a7e9a401b44646f0ca3a640fbd47 +PROTOCOL=https if [ -d external/glslang ]; then echo "Updating glslang to revision $GLSLANG_REV." @@ -41,7 +38,7 @@ fi if [ -d external/spirv-headers ]; then cd external/spirv-headers - git pull origin master + git fetch origin git checkout $SPIRV_HEADERS_REV cd ../.. else diff --git a/third_party/spirv-cross/cmake/gitversion.in.h b/third_party/spirv-cross/cmake/gitversion.in.h index 7135e283b2..bff73e964e 100644 --- a/third_party/spirv-cross/cmake/gitversion.in.h +++ b/third_party/spirv-cross/cmake/gitversion.in.h @@ -1,3 +1,6 @@ +// Copyright 2016-2021 The Khronos Group Inc. +// SPDX-License-Identifier: Apache-2.0 + #ifndef SPIRV_CROSS_GIT_VERSION_H_ #define SPIRV_CROSS_GIT_VERSION_H_ diff --git a/third_party/spirv-cross/format_all.sh b/third_party/spirv-cross/format_all.sh index fcfffc57f8..001c3c5dd4 100755 --- a/third_party/spirv-cross/format_all.sh +++ b/third_party/spirv-cross/format_all.sh @@ -1,4 +1,6 @@ #!/bin/bash +# Copyright 2016-2021 The Khronos Group Inc. +# SPDX-License-Identifier: Apache-2.0 #for file in spirv_*.{cpp,hpp} include/spirv_cross/*.{hpp,h} samples/cpp/*.cpp main.cpp for file in spirv_*.{cpp,hpp} main.cpp diff --git a/third_party/spirv-cross/gn/BUILD.gn b/third_party/spirv-cross/gn/BUILD.gn index 5b8071e98b..64d019eae5 100644 --- a/third_party/spirv-cross/gn/BUILD.gn +++ b/third_party/spirv-cross/gn/BUILD.gn @@ -1,4 +1,5 @@ # Copyright (C) 2019 Google, Inc. +# SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -39,7 +40,7 @@ source_set("spirv_cross_sources") { "../spirv_glsl.cpp", "../spirv_glsl.hpp", "../spirv_hlsl.cpp", - "../spirv_hlsl.hpp", + "../spirv_hlsl.hpp", "../spirv_msl.cpp", "../spirv_msl.hpp", "../spirv_parser.cpp", diff --git a/third_party/spirv-cross/include/spirv_cross/barrier.hpp b/third_party/spirv-cross/include/spirv_cross/barrier.hpp index bfcd228431..4ca7f4d77c 100644 --- a/third_party/spirv-cross/include/spirv_cross/barrier.hpp +++ b/third_party/spirv-cross/include/spirv_cross/barrier.hpp @@ -1,5 +1,6 @@ /* * Copyright 2015-2017 ARM Limited + * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/third_party/spirv-cross/include/spirv_cross/external_interface.h b/third_party/spirv-cross/include/spirv_cross/external_interface.h index 1d26f1e1e4..949654f5bf 100644 --- a/third_party/spirv-cross/include/spirv_cross/external_interface.h +++ b/third_party/spirv-cross/include/spirv_cross/external_interface.h @@ -1,5 +1,6 @@ /* * Copyright 2015-2017 ARM Limited + * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/third_party/spirv-cross/include/spirv_cross/image.hpp b/third_party/spirv-cross/include/spirv_cross/image.hpp index 73de894f88..a41ccdfbb4 100644 --- a/third_party/spirv-cross/include/spirv_cross/image.hpp +++ b/third_party/spirv-cross/include/spirv_cross/image.hpp @@ -1,5 +1,6 @@ /* * Copyright 2015-2017 ARM Limited + * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/third_party/spirv-cross/include/spirv_cross/internal_interface.hpp b/third_party/spirv-cross/include/spirv_cross/internal_interface.hpp index e56223dfdb..3ff7f8e258 100644 --- a/third_party/spirv-cross/include/spirv_cross/internal_interface.hpp +++ b/third_party/spirv-cross/include/spirv_cross/internal_interface.hpp @@ -1,5 +1,6 @@ /* * Copyright 2015-2017 ARM Limited + * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/third_party/spirv-cross/include/spirv_cross/sampler.hpp b/third_party/spirv-cross/include/spirv_cross/sampler.hpp index 542e11b444..0208480951 100644 --- a/third_party/spirv-cross/include/spirv_cross/sampler.hpp +++ b/third_party/spirv-cross/include/spirv_cross/sampler.hpp @@ -1,5 +1,6 @@ /* * Copyright 2015-2017 ARM Limited + * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/third_party/spirv-cross/include/spirv_cross/thread_group.hpp b/third_party/spirv-cross/include/spirv_cross/thread_group.hpp index 377f098b4f..b215581562 100644 --- a/third_party/spirv-cross/include/spirv_cross/thread_group.hpp +++ b/third_party/spirv-cross/include/spirv_cross/thread_group.hpp @@ -1,5 +1,6 @@ /* * Copyright 2015-2017 ARM Limited + * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/third_party/spirv-cross/main.cpp b/third_party/spirv-cross/main.cpp index 0da9644963..1f21c4c08d 100644 --- a/third_party/spirv-cross/main.cpp +++ b/third_party/spirv-cross/main.cpp @@ -1,5 +1,6 @@ /* * Copyright 2015-2021 Arm Limited + * SPDX-License-Identifier: Apache-2.0 OR MIT * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +19,6 @@ * At your option, you may choose to accept this material under either: * 1. The Apache License, Version 2.0, found at , or * 2. The MIT License, found at . - * SPDX-License-Identifier: Apache-2.0 OR MIT. */ #include "spirv_cpp.hpp" @@ -77,7 +77,7 @@ struct CLICallbacks struct CLIParser { CLIParser(CLICallbacks cbs_, int argc_, char *argv_[]) - : cbs(move(cbs_)) + : cbs(std::move(cbs_)) , argc(argc_) , argv(argv_) { @@ -400,6 +400,12 @@ static void print_resources(const Compiler &compiler, const char *tag, const Sma fprintf(stderr, " writeonly"); if (mask.get(DecorationNonWritable)) fprintf(stderr, " readonly"); + if (mask.get(DecorationRestrict)) + fprintf(stderr, " restrict"); + if (mask.get(DecorationCoherent)) + fprintf(stderr, " coherent"); + if (mask.get(DecorationVolatile)) + fprintf(stderr, " volatile"); if (is_sized_block) { fprintf(stderr, " (BlockSize : %u bytes)", block_size); @@ -530,6 +536,7 @@ static void print_resources(const Compiler &compiler, const ShaderResources &res print_resources(compiler, "push", res.push_constant_buffers); print_resources(compiler, "counters", res.atomic_counters); print_resources(compiler, "acceleration structures", res.acceleration_structures); + print_resources(compiler, "record buffers", res.shader_record_buffers); print_resources(compiler, spv::StorageClassInput, res.builtin_inputs); print_resources(compiler, spv::StorageClassOutput, res.builtin_outputs); } @@ -606,6 +613,12 @@ struct InterfaceVariableRename string variable_name; }; +struct HLSLVertexAttributeRemapNamed +{ + std::string name; + std::string semantic; +}; + struct CLIArguments { const char *input = nullptr; @@ -632,6 +645,7 @@ struct CLIArguments bool msl_pad_fragment_output = false; bool msl_domain_lower_left = false; bool msl_argument_buffers = false; + uint32_t msl_argument_buffers_tier = 0; // Tier 1 bool msl_texture_buffer_native = false; bool msl_framebuffer_fetch = false; bool msl_invariant_float_math = false; @@ -647,6 +661,7 @@ struct CLIArguments bool msl_enable_frag_stencil_ref_builtin = true; uint32_t msl_enable_frag_output_mask = 0xffffffff; bool msl_enable_clip_distance_user_varying = true; + bool msl_raw_buffer_tese_input = false; bool msl_multi_patch_workgroup = false; bool msl_vertex_for_tessellation = false; uint32_t msl_additional_fixed_sample_mask = 0xffffffff; @@ -658,21 +673,28 @@ struct CLIArguments bool msl_emulate_subgroups = false; uint32_t msl_fixed_subgroup_size = 0; bool msl_force_sample_rate_shading = false; + bool msl_manual_helper_invocation_updates = true; + bool msl_check_discarded_frag_stores = false; + bool msl_sample_dref_lod_array_as_grad = false; const char *msl_combined_sampler_suffix = nullptr; bool glsl_emit_push_constant_as_ubo = false; bool glsl_emit_ubo_as_plain_uniforms = false; bool glsl_force_flattened_io_blocks = false; + uint32_t glsl_ovr_multiview_view_count = 0; SmallVector> glsl_ext_framebuffer_fetch; bool glsl_ext_framebuffer_fetch_noncoherent = false; bool vulkan_glsl_disable_ext_samplerless_texture_functions = false; bool emit_line_directives = false; bool enable_storage_image_qualifier_deduction = true; bool force_zero_initialized_variables = false; + bool relax_nan_checks = false; + uint32_t force_recompile_max_debug_iterations = 3; SmallVector msl_discrete_descriptor_sets; SmallVector msl_device_argument_buffers; SmallVector> msl_dynamic_buffers; SmallVector> msl_inline_uniform_blocks; - SmallVector msl_shader_inputs; + SmallVector msl_shader_inputs; + SmallVector msl_shader_outputs; SmallVector pls_in; SmallVector pls_out; SmallVector remaps; @@ -680,6 +702,7 @@ struct CLIArguments SmallVector variable_type_remaps; SmallVector interface_variable_renames; SmallVector hlsl_attr_remap; + SmallVector hlsl_attr_remap_named; SmallVector> masked_stage_outputs; SmallVector masked_stage_builtins; string entry; @@ -699,7 +722,12 @@ struct CLIArguments bool msl = false; bool hlsl = false; bool hlsl_compat = false; + bool hlsl_support_nonzero_base = false; + bool hlsl_base_vertex_index_explicit_binding = false; + uint32_t hlsl_base_vertex_index_register_index = 0; + uint32_t hlsl_base_vertex_index_register_space = 0; + bool hlsl_force_storage_buffer_as_uav = false; bool hlsl_nonwritable_uav_texture_as_srv = false; bool hlsl_enable_16bit_types = false; @@ -779,6 +807,7 @@ static void print_help_glsl() "\t[--remap-variable-type ]:\n\t\tRemaps a variable type based on name.\n" "\t\tPrimary use case is supporting external samplers in ESSL for video rendering on Android where you could remap a texture to a YUV one.\n" "\t[--glsl-force-flattened-io-blocks]:\n\t\tAlways flatten I/O blocks and structs.\n" + "\t[--glsl-ovr-multiview-view-count count]:\n\t\tIn GL_OVR_multiview2, specify layout(num_views).\n" ); // clang-format on } @@ -788,10 +817,14 @@ static void print_help_hlsl() // clang-format off fprintf(stderr, "\nHLSL options:\n" "\t[--shader-model]:\n\t\tEnables a specific shader model, e.g. --shader-model 50 for SM 5.0.\n" + "\t[--flatten-ubo]:\n\t\tEmit UBOs as plain uniform arrays.\n" + "\t\tE.g.: uniform MyUBO { vec4 a; float b, c, d, e; }; will be emitted as uniform float4 MyUBO[2];\n" + "\t\tCaveat: You cannot mix and match floating-point and integer in the same UBO with this option.\n" "\t[--hlsl-enable-compat]:\n\t\tAllow point size and point coord to be used, even if they won't work as expected.\n" "\t\tPointSize is ignored, and PointCoord returns (0.5, 0.5).\n" "\t[--hlsl-support-nonzero-basevertex-baseinstance]:\n\t\tSupport base vertex and base instance by emitting a special cbuffer declared as:\n" "\t\tcbuffer SPIRV_Cross_VertexInfo { int SPIRV_Cross_BaseVertex; int SPIRV_Cross_BaseInstance; };\n" + "\t[--hlsl-basevertex-baseinstance-binding ]:\n\t\tAssign a fixed binding to SPIRV_Cross_VertexInfo.\n" "\t[--hlsl-auto-binding (push, cbv, srv, uav, sampler, all)]\n" "\t\tDo not emit any : register(#) bindings for specific resource types, and rely on HLSL compiler to assign something.\n" "\t[--hlsl-force-storage-buffer-as-uav]:\n\t\tAlways emit SSBOs as UAVs, even when marked as read-only.\n" @@ -802,6 +835,8 @@ static void print_help_hlsl() "\t\tShader must ensure that read/write state is consistent at all call sites.\n" "\t[--set-hlsl-vertex-input-semantic ]:\n\t\tEmits a specific vertex input semantic for a given location.\n" "\t\tOtherwise, TEXCOORD# is used as semantics, where # is location.\n" + "\t[--set-hlsl-named-vertex-input-semantic ]:\n\t\tEmits a specific vertex input semantic for a given name.\n" + "\t\tOpName reflection information must be intact.\n" "\t[--hlsl-enable-16bit-types]:\n\t\tEnables native use of half/int16_t/uint16_t and ByteAddressBuffer interaction with these types. Requires SM 6.2.\n" "\t[--hlsl-flatten-matrix-vertex-input-semantics]:\n\t\tEmits matrix vertex inputs with input semantics as if they were independent vectors, e.g. TEXCOORD{2,3,4} rather than matrix form TEXCOORD2_{0,1,2}.\n" ); @@ -823,8 +858,11 @@ static void print_help_msl() "\t[--msl-pad-fragment-output]:\n\t\tAlways emit color outputs as 4-component variables.\n" "\t\tIn Metal, the fragment shader must emit at least as many components as the render target format.\n" "\t[--msl-domain-lower-left]:\n\t\tUse a lower-left tessellation domain.\n" - "\t[--msl-argument-buffers]:\n\t\tEmit Indirect Argument buffers instead of plain bindings.\n" + "\t[--msl-argument-buffers]:\n\t\tEmit Metal argument buffers instead of discrete resource bindings.\n" "\t\tRequires MSL 2.0 to be enabled.\n" + "\t[--msl-argument-buffer-tier]:\n\t\tWhen using Metal argument buffers, indicate the Metal argument buffer tier level supported by the Metal platform.\n" + "\t\tUses same values as Metal MTLArgumentBuffersTier enumeration (0 = Tier1, 1 = Tier2).\n" + "\t\tSetting this value also enables msl-argument-buffers.\n" "\t[--msl-texture-buffer-native]:\n\t\tEnable native support for texel buffers. Otherwise, it is emulated as a normal texture.\n" "\t[--msl-framebuffer-fetch]:\n\t\tImplement subpass inputs with frame buffer fetch.\n" "\t\tEmits [[color(N)]] inputs in fragment stage.\n" @@ -857,16 +895,33 @@ static void print_help_msl() "\t[--msl-disable-frag-stencil-ref-builtin]:\n\t\tDisable FragStencilRef output. Useful if pipeline does not enable stencil output, as pipeline creation might otherwise fail.\n" "\t[--msl-enable-frag-output-mask ]:\n\t\tOnly selectively enable fragment outputs. Useful if pipeline does not enable fragment output for certain locations, as pipeline creation might otherwise fail.\n" "\t[--msl-no-clip-distance-user-varying]:\n\t\tDo not emit user varyings to emulate gl_ClipDistance in fragment shaders.\n" + "\t[--msl-add-shader-input ]:\n\t\tSpecify the format of the shader input at .\n" + "\t\t can be 'any32', 'any16', 'u16', 'u8', or 'other', to indicate a 32-bit opaque value, 16-bit opaque value, 16-bit unsigned integer, 8-bit unsigned integer, " + "or other-typed variable. is the vector length of the variable, which must be greater than or equal to that declared in the shader. can be 'vertex', " + "'primitive', or 'patch' to indicate a per-vertex, per-primitive, or per-patch variable.\n" + "\t\tUseful if shader stage interfaces don't match up, as pipeline creation might otherwise fail.\n" + "\t[--msl-add-shader-output ]:\n\t\tSpecify the format of the shader output at .\n" + "\t\t can be 'any32', 'any16', 'u16', 'u8', or 'other', to indicate a 32-bit opaque value, 16-bit opaque value, 16-bit unsigned integer, 8-bit unsigned integer, " + "or other-typed variable. is the vector length of the variable, which must be greater than or equal to that declared in the shader. can be 'vertex', " + "'primitive', or 'patch' to indicate a per-vertex, per-primitive, or per-patch variable.\n" + "\t\tUseful if shader stage interfaces don't match up, as pipeline creation might otherwise fail.\n" "\t[--msl-shader-input ]:\n\t\tSpecify the format of the shader input at .\n" "\t\t can be 'any32', 'any16', 'u16', 'u8', or 'other', to indicate a 32-bit opaque value, 16-bit opaque value, 16-bit unsigned integer, 8-bit unsigned integer, " - "or other-typed variable. is the vector length of the variable, which must be greater than or equal to that declared in the shader.\n" - "\t\tUseful if shader stage interfaces don't match up, as pipeline creation might otherwise fail.\n" + "or other-typed variable. is the vector length of the variable, which must be greater than or equal to that declared in the shader." + "\t\tEquivalent to --msl-add-shader-input with a rate of 'vertex'.\n" + "\t[--msl-shader-output ]:\n\t\tSpecify the format of the shader output at .\n" + "\t\t can be 'any32', 'any16', 'u16', 'u8', or 'other', to indicate a 32-bit opaque value, 16-bit opaque value, 16-bit unsigned integer, 8-bit unsigned integer, " + "or other-typed variable. is the vector length of the variable, which must be greater than or equal to that declared in the shader." + "\t\tEquivalent to --msl-add-shader-output with a rate of 'vertex'.\n" + "\t[--msl-raw-buffer-tese-input]:\n\t\tUse raw buffers for tessellation evaluation input.\n" + "\t\tThis allows the use of nested structures and arrays.\n" + "\t\tIn a future version of SPIRV-Cross, this will become the default.\n" "\t[--msl-multi-patch-workgroup]:\n\t\tUse the new style of tessellation control processing, where multiple patches are processed per workgroup.\n" - "\t\tThis should increase throughput by ensuring all the GPU's SIMD lanes are occupied, but it is not compatible with the old style.\n" - "\t\tIn addition, this style also passes input variables in buffers directly instead of using vertex attribute processing.\n" - "\t\tIn a future version of SPIRV-Cross, this will become the default.\n" + "\t\tThis should increase throughput by ensuring all the GPU's SIMD lanes are occupied, but it is not compatible with the old style.\n" + "\t\tIn addition, this style also passes input variables in buffers directly instead of using vertex attribute processing.\n" + "\t\tIn a future version of SPIRV-Cross, this will become the default.\n" "\t[--msl-vertex-for-tessellation]:\n\t\tWhen handling a vertex shader, marks it as one that will be used with a new-style tessellation control shader.\n" - "\t\tThe vertex shader is output to MSL as a compute kernel which outputs vertices to the buffer in the order they are received, rather than in index order as with --msl-capture-output normally.\n" + "\t\tThe vertex shader is output to MSL as a compute kernel which outputs vertices to the buffer in the order they are received, rather than in index order as with --msl-capture-output normally.\n" "\t[--msl-additional-fixed-sample-mask ]:\n" "\t\tSet an additional fixed sample mask. If the shader outputs a sample mask, then the final sample mask will be a bitwise AND of the two.\n" "\t[--msl-arrayed-subpass-input]:\n\t\tAssume that images of dimension SubpassData have multiple layers. Layered input attachments are accessed relative to BuiltInLayer.\n" @@ -886,6 +941,17 @@ static void print_help_msl() "\t\tIf 0, assume variable subgroup size as actually exposed by Metal.\n" "\t[--msl-force-sample-rate-shading]:\n\t\tForce fragment shaders to run per sample.\n" "\t\tThis adds a [[sample_id]] parameter if none is already present.\n" + "\t[--msl-no-manual-helper-invocation-updates]:\n\t\tDo not manually update the HelperInvocation builtin when a fragment is discarded.\n" + "\t\tSome Metal devices have a bug where simd_is_helper_thread() does not return true\n" + "\t\tafter the fragment is discarded. This behavior is required by Vulkan and SPIR-V, however.\n" + "\t[--msl-check-discarded-frag-stores]:\n\t\tAdd additional checks to resource stores in a fragment shader.\n" + "\t\tSome Metal devices have a bug where stores to resources from a fragment shader\n" + "\t\tcontinue to execute, even when the fragment is discarded. These checks\n" + "\t\tprevent these stores from executing.\n" + "\t[--msl-sample-dref-lod-array-as-grad]:\n\t\tUse a gradient instead of a level argument.\n" + "\t\tSome Metal devices have a bug where the level() argument to\n" + "\t\tdepth2d_array::sample_compare() in a fragment shader is biased by some\n" + "\t\tunknown amount. This prevents the bias from being added.\n" "\t[--msl-combined-sampler-suffix ]:\n\t\tUses a custom suffix for combined samplers.\n"); // clang-format on } @@ -895,7 +961,7 @@ static void print_help_common() // clang-format off fprintf(stderr, "\nCommon options:\n" "\t[--entry name]:\n\t\tUse a specific entry point. By default, the first entry point in the module is used.\n" - "\t[--stage ]:\n\t\tForces use of a certain shader stage.\n" + "\t[--stage ]:\n\t\tForces use of a certain shader stage.\n" "\t\tCan disambiguate the entry point if more than one entry point exists with same name, but different stage.\n" "\t[--emit-line-directives]:\n\t\tIf SPIR-V has OpLine directives, aim to emit those accurately in output code as well.\n" "\t[--rename-entry-point ]:\n\t\tRenames an entry point from what is declared in SPIR-V to code output.\n" @@ -913,6 +979,7 @@ static void print_help_common() "\t[--mask-stage-output-builtin ]:\n" "\t\tIf a stage output variable with matching builtin is active, " "optimize away the variable if it can affect cross-stage linking correctness.\n" + "\t[--relax-nan-checks]:\n\t\tRelax NaN checks for N{Clamp,Min,Max} and ordered vs. unordered compare instructions.\n" ); // clang-format on } @@ -930,6 +997,8 @@ static void print_help_obscure() "\t\tdo not attempt to analyze usage, and always emit read/write state.\n" "\t[--flatten-multidimensional-arrays]:\n\t\tDo not support multi-dimensional arrays and flatten them to one dimension.\n" "\t[--cpp-interface-name ]:\n\t\tEmit a specific class name in C++ codegen.\n" + "\t[--force-recompile-max-debug-iterations ]:\n\t\tAllow compilation loop to run for N loops.\n" + "\t\tCan be used to triage workarounds, but should not be used as a crutch, since it masks an implementation bug.\n" ); // clang-format on } @@ -1054,6 +1123,22 @@ static ExecutionModel stage_to_execution_model(const std::string &stage) return ExecutionModelTessellationEvaluation; else if (stage == "geom") return ExecutionModelGeometry; + else if (stage == "rgen") + return ExecutionModelRayGenerationKHR; + else if (stage == "rint") + return ExecutionModelIntersectionKHR; + else if (stage == "rahit") + return ExecutionModelAnyHitKHR; + else if (stage == "rchit") + return ExecutionModelClosestHitKHR; + else if (stage == "rmiss") + return ExecutionModelMissKHR; + else if (stage == "rcall") + return ExecutionModelCallableKHR; + else if (stage == "mesh") + return spv::ExecutionModelMeshEXT; + else if (stage == "task") + return spv::ExecutionModelTaskEXT; else SPIRV_CROSS_THROW("Invalid stage."); } @@ -1081,7 +1166,7 @@ static HLSLBindingFlags hlsl_resource_type_to_flag(const std::string &arg) static string compile_iteration(const CLIArguments &args, std::vector spirv_file) { - Parser spirv_parser(move(spirv_file)); + Parser spirv_parser(std::move(spirv_file)); spirv_parser.parse(); unique_ptr compiler; @@ -1090,13 +1175,13 @@ static string compile_iteration(const CLIArguments &args, std::vector if (args.cpp) { - compiler.reset(new CompilerCPP(move(spirv_parser.get_parsed_ir()))); + compiler.reset(new CompilerCPP(std::move(spirv_parser.get_parsed_ir()))); if (args.cpp_interface_name) static_cast(compiler.get())->set_interface_name(args.cpp_interface_name); } else if (args.msl) { - compiler.reset(new CompilerMSL(move(spirv_parser.get_parsed_ir()))); + compiler.reset(new CompilerMSL(std::move(spirv_parser.get_parsed_ir()))); auto *msl_comp = static_cast(compiler.get()); auto msl_opts = msl_comp->get_msl_options(); @@ -1114,6 +1199,7 @@ static string compile_iteration(const CLIArguments &args, std::vector msl_opts.pad_fragment_output_components = args.msl_pad_fragment_output; msl_opts.tess_domain_origin_lower_left = args.msl_domain_lower_left; msl_opts.argument_buffers = args.msl_argument_buffers; + msl_opts.argument_buffers_tier = static_cast(args.msl_argument_buffers_tier); msl_opts.texture_buffer_native = args.msl_texture_buffer_native; msl_opts.multiview = args.msl_multiview; msl_opts.multiview_layered_rendering = args.msl_multiview_layered_rendering; @@ -1126,6 +1212,7 @@ static string compile_iteration(const CLIArguments &args, std::vector msl_opts.enable_frag_stencil_ref_builtin = args.msl_enable_frag_stencil_ref_builtin; msl_opts.enable_frag_output_mask = args.msl_enable_frag_output_mask; msl_opts.enable_clip_distance_user_varying = args.msl_enable_clip_distance_user_varying; + msl_opts.raw_buffer_tese_input = args.msl_raw_buffer_tese_input; msl_opts.multi_patch_workgroup = args.msl_multi_patch_workgroup; msl_opts.vertex_for_tessellation = args.msl_vertex_for_tessellation; msl_opts.additional_fixed_sample_mask = args.msl_additional_fixed_sample_mask; @@ -1137,6 +1224,10 @@ static string compile_iteration(const CLIArguments &args, std::vector msl_opts.emulate_subgroups = args.msl_emulate_subgroups; msl_opts.fixed_subgroup_size = args.msl_fixed_subgroup_size; msl_opts.force_sample_rate_shading = args.msl_force_sample_rate_shading; + msl_opts.manual_helper_invocation_updates = args.msl_manual_helper_invocation_updates; + msl_opts.check_discarded_frag_stores = args.msl_check_discarded_frag_stores; + msl_opts.sample_dref_lod_array_as_grad = args.msl_sample_dref_lod_array_as_grad; + msl_opts.ios_support_base_vertex_instance = true; msl_comp->set_msl_options(msl_opts); for (auto &v : args.msl_discrete_descriptor_sets) msl_comp->add_discrete_descriptor_set(v); @@ -1149,17 +1240,19 @@ static string compile_iteration(const CLIArguments &args, std::vector msl_comp->add_inline_uniform_block(v.first, v.second); for (auto &v : args.msl_shader_inputs) msl_comp->add_msl_shader_input(v); + for (auto &v : args.msl_shader_outputs) + msl_comp->add_msl_shader_output(v); if (args.msl_combined_sampler_suffix) msl_comp->set_combined_sampler_suffix(args.msl_combined_sampler_suffix); } else if (args.hlsl) - compiler.reset(new CompilerHLSL(move(spirv_parser.get_parsed_ir()))); + compiler.reset(new CompilerHLSL(std::move(spirv_parser.get_parsed_ir()))); else { combined_image_samplers = !args.vulkan_semantics; if (!args.vulkan_semantics || args.vulkan_glsl_disable_ext_samplerless_texture_functions) build_dummy_sampler = true; - compiler.reset(new CompilerGLSL(move(spirv_parser.get_parsed_ir()))); + compiler.reset(new CompilerGLSL(std::move(spirv_parser.get_parsed_ir()))); } if (!args.variable_type_remaps.empty()) @@ -1170,7 +1263,7 @@ static string compile_iteration(const CLIArguments &args, std::vector out = remap.new_variable_type; }; - compiler->set_variable_type_remap_callback(move(remap_cb)); + compiler->set_variable_type_remap_callback(std::move(remap_cb)); } for (auto &masked : args.masked_stage_outputs) @@ -1279,9 +1372,12 @@ static string compile_iteration(const CLIArguments &args, std::vector opts.emit_push_constant_as_uniform_buffer = args.glsl_emit_push_constant_as_ubo; opts.emit_uniform_buffer_as_plain_uniforms = args.glsl_emit_ubo_as_plain_uniforms; opts.force_flattened_io_blocks = args.glsl_force_flattened_io_blocks; + opts.ovr_multiview_view_count = args.glsl_ovr_multiview_view_count; opts.emit_line_directives = args.emit_line_directives; opts.enable_storage_image_qualifier_deduction = args.enable_storage_image_qualifier_deduction; opts.force_zero_initialized_variables = args.force_zero_initialized_variables; + opts.relax_nan_checks = args.relax_nan_checks; + opts.force_recompile_max_debug_iterations = args.force_recompile_max_debug_iterations; compiler->set_common_options(opts); for (auto &fetch : args.glsl_ext_framebuffer_fetch) @@ -1316,6 +1412,10 @@ static string compile_iteration(const CLIArguments &args, std::vector build_dummy_sampler = true; } + // If we're explicitly renaming, we probably want that name to be output. + if (!args.entry_point_rename.empty()) + hlsl_opts.use_entry_point_name = true; + hlsl_opts.support_nonzero_base_vertex_base_instance = args.hlsl_support_nonzero_base; hlsl_opts.force_storage_buffer_as_uav = args.hlsl_force_storage_buffer_as_uav; hlsl_opts.nonwritable_uav_texture_as_srv = args.hlsl_nonwritable_uav_texture_as_srv; @@ -1323,6 +1423,12 @@ static string compile_iteration(const CLIArguments &args, std::vector hlsl_opts.flatten_matrix_vertex_input_semantics = args.hlsl_flatten_matrix_vertex_input_semantics; hlsl->set_hlsl_options(hlsl_opts); hlsl->set_resource_binding_flags(args.hlsl_binding_flags); + if (args.hlsl_base_vertex_index_explicit_binding) + { + hlsl->set_hlsl_aux_buffer_binding(HLSL_AUX_BINDING_BASE_VERTEX_INSTANCE, + args.hlsl_base_vertex_index_register_index, + args.hlsl_base_vertex_index_register_space); + } } if (build_dummy_sampler) @@ -1341,7 +1447,7 @@ static string compile_iteration(const CLIArguments &args, std::vector { auto active = compiler->get_active_interface_variables(); res = compiler->get_shader_resources(active); - compiler->set_enabled_interface_variables(move(active)); + compiler->set_enabled_interface_variables(std::move(active)); } else res = compiler->get_shader_resources(); @@ -1356,7 +1462,7 @@ static string compile_iteration(const CLIArguments &args, std::vector auto pls_inputs = remap_pls(args.pls_in, res.stage_inputs, &res.subpass_inputs); auto pls_outputs = remap_pls(args.pls_out, res.stage_outputs, nullptr); - compiler->remap_pixel_local_storage(move(pls_inputs), move(pls_outputs)); + compiler->remap_pixel_local_storage(std::move(pls_inputs), std::move(pls_outputs)); for (auto &ext : args.extensions) compiler->require_extension(ext); @@ -1403,18 +1509,29 @@ static string compile_iteration(const CLIArguments &args, std::vector if (args.hlsl) { auto *hlsl_compiler = static_cast(compiler.get()); - uint32_t new_builtin = hlsl_compiler->remap_num_workgroups_builtin(); - if (new_builtin) - { - hlsl_compiler->set_decoration(new_builtin, DecorationDescriptorSet, 0); - hlsl_compiler->set_decoration(new_builtin, DecorationBinding, 0); - } + hlsl_compiler->remap_num_workgroups_builtin(); } if (args.hlsl) { for (auto &remap : args.hlsl_attr_remap) static_cast(compiler.get())->add_vertex_attribute_remap(remap); + + for (auto &named_remap : args.hlsl_attr_remap_named) + { + auto itr = std::find_if(res.stage_inputs.begin(), res.stage_inputs.end(), [&](const Resource &input_res) { + return input_res.name == named_remap.name; + }); + + if (itr != res.stage_inputs.end()) + { + HLSLVertexAttributeRemap remap = { + compiler->get_decoration(itr->id, DecorationLocation), + named_remap.semantic, + }; + static_cast(compiler.get())->add_vertex_attribute_remap(remap); + } + } } auto ret = compiler->compile(); @@ -1470,6 +1587,7 @@ static int main_inner(int argc, char *argv[]) cbs.add("--glsl-emit-push-constant-as-ubo", [&args](CLIParser &) { args.glsl_emit_push_constant_as_ubo = true; }); cbs.add("--glsl-emit-ubo-as-plain-uniforms", [&args](CLIParser &) { args.glsl_emit_ubo_as_plain_uniforms = true; }); cbs.add("--glsl-force-flattened-io-blocks", [&args](CLIParser &) { args.glsl_force_flattened_io_blocks = true; }); + cbs.add("--glsl-ovr-multiview-view-count", [&args](CLIParser &parser) { args.glsl_ovr_multiview_view_count = parser.next_uint(); }); cbs.add("--glsl-remap-ext-framebuffer-fetch", [&args](CLIParser &parser) { uint32_t input_index = parser.next_uint(); uint32_t color_attachment = parser.next_uint(); @@ -1489,6 +1607,11 @@ static int main_inner(int argc, char *argv[]) cbs.add("--hlsl-enable-compat", [&args](CLIParser &) { args.hlsl_compat = true; }); cbs.add("--hlsl-support-nonzero-basevertex-baseinstance", [&args](CLIParser &) { args.hlsl_support_nonzero_base = true; }); + cbs.add("--hlsl-basevertex-baseinstance-binding", [&args](CLIParser &parser) { + args.hlsl_base_vertex_index_explicit_binding = true; + args.hlsl_base_vertex_index_register_index = parser.next_uint(); + args.hlsl_base_vertex_index_register_space = parser.next_uint(); + }); cbs.add("--hlsl-auto-binding", [&args](CLIParser &parser) { args.hlsl_binding_flags |= hlsl_resource_type_to_flag(parser.next_string()); }); @@ -1509,6 +1632,10 @@ static int main_inner(int argc, char *argv[]) cbs.add("--msl-pad-fragment-output", [&args](CLIParser &) { args.msl_pad_fragment_output = true; }); cbs.add("--msl-domain-lower-left", [&args](CLIParser &) { args.msl_domain_lower_left = true; }); cbs.add("--msl-argument-buffers", [&args](CLIParser &) { args.msl_argument_buffers = true; }); + cbs.add("--msl-argument-buffer-tier", [&args](CLIParser &parser) { + args.msl_argument_buffers_tier = parser.next_uint(); + args.msl_argument_buffers = true; + }); cbs.add("--msl-discrete-descriptor-set", [&args](CLIParser &parser) { args.msl_discrete_descriptor_sets.push_back(parser.next_uint()); }); cbs.add("--msl-device-argument-buffer", @@ -1548,24 +1675,93 @@ static int main_inner(int argc, char *argv[]) [&args](CLIParser &parser) { args.msl_enable_frag_output_mask = parser.next_hex_uint(); }); cbs.add("--msl-no-clip-distance-user-varying", [&args](CLIParser &) { args.msl_enable_clip_distance_user_varying = false; }); - cbs.add("--msl-shader-input", [&args](CLIParser &parser) { - MSLShaderInput input; + cbs.add("--msl-add-shader-input", [&args](CLIParser &parser) { + MSLShaderInterfaceVariable input; // Make sure next_uint() is called in-order. input.location = parser.next_uint(); const char *format = parser.next_value_string("other"); if (strcmp(format, "any32") == 0) - input.format = MSL_SHADER_INPUT_FORMAT_ANY32; + input.format = MSL_SHADER_VARIABLE_FORMAT_ANY32; else if (strcmp(format, "any16") == 0) - input.format = MSL_SHADER_INPUT_FORMAT_ANY16; + input.format = MSL_SHADER_VARIABLE_FORMAT_ANY16; else if (strcmp(format, "u16") == 0) - input.format = MSL_SHADER_INPUT_FORMAT_UINT16; + input.format = MSL_SHADER_VARIABLE_FORMAT_UINT16; else if (strcmp(format, "u8") == 0) - input.format = MSL_SHADER_INPUT_FORMAT_UINT8; + input.format = MSL_SHADER_VARIABLE_FORMAT_UINT8; else - input.format = MSL_SHADER_INPUT_FORMAT_OTHER; + input.format = MSL_SHADER_VARIABLE_FORMAT_OTHER; + input.vecsize = parser.next_uint(); + const char *rate = parser.next_value_string("vertex"); + if (strcmp(rate, "primitive") == 0) + input.rate = MSL_SHADER_VARIABLE_RATE_PER_PRIMITIVE; + else if (strcmp(rate, "patch") == 0) + input.rate = MSL_SHADER_VARIABLE_RATE_PER_PATCH; + else + input.rate = MSL_SHADER_VARIABLE_RATE_PER_VERTEX; + args.msl_shader_inputs.push_back(input); + }); + cbs.add("--msl-add-shader-output", [&args](CLIParser &parser) { + MSLShaderInterfaceVariable output; + // Make sure next_uint() is called in-order. + output.location = parser.next_uint(); + const char *format = parser.next_value_string("other"); + if (strcmp(format, "any32") == 0) + output.format = MSL_SHADER_VARIABLE_FORMAT_ANY32; + else if (strcmp(format, "any16") == 0) + output.format = MSL_SHADER_VARIABLE_FORMAT_ANY16; + else if (strcmp(format, "u16") == 0) + output.format = MSL_SHADER_VARIABLE_FORMAT_UINT16; + else if (strcmp(format, "u8") == 0) + output.format = MSL_SHADER_VARIABLE_FORMAT_UINT8; + else + output.format = MSL_SHADER_VARIABLE_FORMAT_OTHER; + output.vecsize = parser.next_uint(); + const char *rate = parser.next_value_string("vertex"); + if (strcmp(rate, "primitive") == 0) + output.rate = MSL_SHADER_VARIABLE_RATE_PER_PRIMITIVE; + else if (strcmp(rate, "patch") == 0) + output.rate = MSL_SHADER_VARIABLE_RATE_PER_PATCH; + else + output.rate = MSL_SHADER_VARIABLE_RATE_PER_VERTEX; + args.msl_shader_outputs.push_back(output); + }); + cbs.add("--msl-shader-input", [&args](CLIParser &parser) { + MSLShaderInterfaceVariable input; + // Make sure next_uint() is called in-order. + input.location = parser.next_uint(); + const char *format = parser.next_value_string("other"); + if (strcmp(format, "any32") == 0) + input.format = MSL_SHADER_VARIABLE_FORMAT_ANY32; + else if (strcmp(format, "any16") == 0) + input.format = MSL_SHADER_VARIABLE_FORMAT_ANY16; + else if (strcmp(format, "u16") == 0) + input.format = MSL_SHADER_VARIABLE_FORMAT_UINT16; + else if (strcmp(format, "u8") == 0) + input.format = MSL_SHADER_VARIABLE_FORMAT_UINT8; + else + input.format = MSL_SHADER_VARIABLE_FORMAT_OTHER; input.vecsize = parser.next_uint(); args.msl_shader_inputs.push_back(input); }); + cbs.add("--msl-shader-output", [&args](CLIParser &parser) { + MSLShaderInterfaceVariable output; + // Make sure next_uint() is called in-order. + output.location = parser.next_uint(); + const char *format = parser.next_value_string("other"); + if (strcmp(format, "any32") == 0) + output.format = MSL_SHADER_VARIABLE_FORMAT_ANY32; + else if (strcmp(format, "any16") == 0) + output.format = MSL_SHADER_VARIABLE_FORMAT_ANY16; + else if (strcmp(format, "u16") == 0) + output.format = MSL_SHADER_VARIABLE_FORMAT_UINT16; + else if (strcmp(format, "u8") == 0) + output.format = MSL_SHADER_VARIABLE_FORMAT_UINT8; + else + output.format = MSL_SHADER_VARIABLE_FORMAT_OTHER; + output.vecsize = parser.next_uint(); + args.msl_shader_outputs.push_back(output); + }); + cbs.add("--msl-raw-buffer-tese-input", [&args](CLIParser &) { args.msl_raw_buffer_tese_input = true; }); cbs.add("--msl-multi-patch-workgroup", [&args](CLIParser &) { args.msl_multi_patch_workgroup = true; }); cbs.add("--msl-vertex-for-tessellation", [&args](CLIParser &) { args.msl_vertex_for_tessellation = true; }); cbs.add("--msl-additional-fixed-sample-mask", @@ -1581,6 +1777,11 @@ static int main_inner(int argc, char *argv[]) cbs.add("--msl-fixed-subgroup-size", [&args](CLIParser &parser) { args.msl_fixed_subgroup_size = parser.next_uint(); }); cbs.add("--msl-force-sample-rate-shading", [&args](CLIParser &) { args.msl_force_sample_rate_shading = true; }); + cbs.add("--msl-no-manual-helper-invocation-updates", + [&args](CLIParser &) { args.msl_manual_helper_invocation_updates = false; }); + cbs.add("--msl-check-discarded-frag-stores", [&args](CLIParser &) { args.msl_check_discarded_frag_stores = true; }); + cbs.add("--msl-sample-dref-lod-array-as-grad", + [&args](CLIParser &) { args.msl_sample_dref_lod_array_as_grad = true; }); cbs.add("--msl-combined-sampler-suffix", [&args](CLIParser &parser) { args.msl_combined_sampler_suffix = parser.next_string(); }); @@ -1589,7 +1790,7 @@ static int main_inner(int argc, char *argv[]) auto old_name = parser.next_string(); auto new_name = parser.next_string(); auto model = stage_to_execution_model(parser.next_string()); - args.entry_point_rename.push_back({ old_name, new_name, move(model) }); + args.entry_point_rename.push_back({ old_name, new_name, std::move(model) }); }); cbs.add("--entry", [&args](CLIParser &parser) { args.entry = parser.next_string(); }); cbs.add("--stage", [&args](CLIParser &parser) { args.entry_stage = parser.next_string(); }); @@ -1598,20 +1799,26 @@ static int main_inner(int argc, char *argv[]) HLSLVertexAttributeRemap remap; remap.location = parser.next_uint(); remap.semantic = parser.next_string(); - args.hlsl_attr_remap.push_back(move(remap)); + args.hlsl_attr_remap.push_back(std::move(remap)); + }); + cbs.add("--set-hlsl-named-vertex-input-semantic", [&args](CLIParser &parser) { + HLSLVertexAttributeRemapNamed remap; + remap.name = parser.next_string(); + remap.semantic = parser.next_string(); + args.hlsl_attr_remap_named.push_back(std::move(remap)); }); cbs.add("--remap", [&args](CLIParser &parser) { string src = parser.next_string(); string dst = parser.next_string(); uint32_t components = parser.next_uint(); - args.remaps.push_back({ move(src), move(dst), components }); + args.remaps.push_back({ std::move(src), std::move(dst), components }); }); cbs.add("--remap-variable-type", [&args](CLIParser &parser) { string var_name = parser.next_string(); string new_type = parser.next_string(); - args.variable_type_remaps.push_back({ move(var_name), move(new_type) }); + args.variable_type_remaps.push_back({ std::move(var_name), std::move(new_type) }); }); cbs.add("--rename-interface-variable", [&args](CLIParser &parser) { @@ -1624,18 +1831,18 @@ static int main_inner(int argc, char *argv[]) uint32_t loc = parser.next_uint(); string var_name = parser.next_string(); - args.interface_variable_renames.push_back({ cls, loc, move(var_name) }); + args.interface_variable_renames.push_back({ cls, loc, std::move(var_name) }); }); cbs.add("--pls-in", [&args](CLIParser &parser) { auto fmt = pls_format(parser.next_string()); auto name = parser.next_string(); - args.pls_in.push_back({ move(fmt), move(name) }); + args.pls_in.push_back({ std::move(fmt), std::move(name) }); }); cbs.add("--pls-out", [&args](CLIParser &parser) { auto fmt = pls_format(parser.next_string()); auto name = parser.next_string(); - args.pls_out.push_back({ move(fmt), move(name) }); + args.pls_out.push_back({ std::move(fmt), std::move(name) }); }); cbs.add("--shader-model", [&args](CLIParser &parser) { args.shader_model = parser.next_uint(); @@ -1678,11 +1885,17 @@ static int main_inner(int argc, char *argv[]) args.masked_stage_builtins.push_back(masked_builtin); }); + cbs.add("--force-recompile-max-debug-iterations", [&](CLIParser &parser) { + args.force_recompile_max_debug_iterations = parser.next_uint(); + }); + + cbs.add("--relax-nan-checks", [&](CLIParser &) { args.relax_nan_checks = true; }); + cbs.default_handler = [&args](const char *value) { args.input = value; }; cbs.add("-", [&args](CLIParser &) { args.input = "-"; }); cbs.error_handler = [] { print_help(); }; - CLIParser parser{ move(cbs), argc - 1, argv + 1 }; + CLIParser parser{ std::move(cbs), argc - 1, argv + 1 }; if (!parser.parse()) return EXIT_FAILURE; else if (parser.ended_state) @@ -1702,10 +1915,10 @@ static int main_inner(int argc, char *argv[]) // Special case reflection because it has little to do with the path followed by code-outputting compilers if (!args.reflect.empty()) { - Parser spirv_parser(move(spirv_file)); + Parser spirv_parser(std::move(spirv_file)); spirv_parser.parse(); - CompilerReflection compiler(move(spirv_parser.get_parsed_ir())); + CompilerReflection compiler(std::move(spirv_parser.get_parsed_ir())); compiler.set_format(args.reflect); auto json = compiler.compile(); if (args.output) @@ -1718,7 +1931,7 @@ static int main_inner(int argc, char *argv[]) string compiled_output; if (args.iterations == 1) - compiled_output = compile_iteration(args, move(spirv_file)); + compiled_output = compile_iteration(args, std::move(spirv_file)); else { for (unsigned i = 0; i < args.iterations; i++) diff --git a/third_party/spirv-cross/pkg-config/spirv-cross-c-shared.pc.in b/third_party/spirv-cross/pkg-config/spirv-cross-c-shared.pc.in index 09678c53a5..4fb8a0aee9 100644 --- a/third_party/spirv-cross/pkg-config/spirv-cross-c-shared.pc.in +++ b/third_party/spirv-cross/pkg-config/spirv-cross-c-shared.pc.in @@ -1,3 +1,6 @@ +# Copyright 2020-2021 Hans-Kristian Arntzen +# SPDX-License-Identifier: Apache-2.0 + prefix=@CMAKE_INSTALL_PREFIX@ exec_prefix=${prefix} libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@ diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/comp/access-chain-invalidate.asm.comp b/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/comp/access-chain-invalidate.asm.comp deleted file mode 100644 index b8265fc99e..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/comp/access-chain-invalidate.asm.comp +++ /dev/null @@ -1,19 +0,0 @@ -RWByteAddressBuffer _4 : register(u0); - -void comp_main() -{ - uint _21 = _4.Load(_4.Load(0) * 4 + 4); - for (uint _23 = 0u; _23 < 64u; ) - { - _4.Store(_23 * 4 + 4, 0u); - _23++; - continue; - } - _4.Store(_4.Load(0) * 4 + 4, _21); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/comp/atomic-decrement.asm.comp b/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/comp/atomic-decrement.asm.comp deleted file mode 100644 index c534ceaba1..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/comp/atomic-decrement.asm.comp +++ /dev/null @@ -1,22 +0,0 @@ -RWByteAddressBuffer u0_counter : register(u1); -RWBuffer u0 : register(u0); - -static uint3 gl_GlobalInvocationID; -struct SPIRV_Cross_Input -{ - uint3 gl_GlobalInvocationID : SV_DispatchThreadID; -}; - -void comp_main() -{ - uint _29; - u0_counter.InterlockedAdd(0, -1, _29); - u0[asint(asfloat(_29))] = uint(int(gl_GlobalInvocationID.x)).x; -} - -[numthreads(4, 1, 1)] -void main(SPIRV_Cross_Input stage_input) -{ - gl_GlobalInvocationID = stage_input.gl_GlobalInvocationID; - comp_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/comp/atomic-increment.asm.comp b/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/comp/atomic-increment.asm.comp deleted file mode 100644 index 5e7d282d6e..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/comp/atomic-increment.asm.comp +++ /dev/null @@ -1,22 +0,0 @@ -RWByteAddressBuffer u0_counter : register(u1); -RWBuffer u0 : register(u0); - -static uint3 gl_GlobalInvocationID; -struct SPIRV_Cross_Input -{ - uint3 gl_GlobalInvocationID : SV_DispatchThreadID; -}; - -void comp_main() -{ - uint _29; - u0_counter.InterlockedAdd(0, 1, _29); - u0[asint(asfloat(_29))] = uint(int(gl_GlobalInvocationID.x)).x; -} - -[numthreads(4, 1, 1)] -void main(SPIRV_Cross_Input stage_input) -{ - gl_GlobalInvocationID = stage_input.gl_GlobalInvocationID; - comp_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/comp/bitcast_icmp.asm.comp b/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/comp/bitcast_icmp.asm.comp deleted file mode 100644 index 35143a486e..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/comp/bitcast_icmp.asm.comp +++ /dev/null @@ -1,28 +0,0 @@ -RWByteAddressBuffer _5 : register(u0); -RWByteAddressBuffer _6 : register(u1); - -void comp_main() -{ - bool4 _31 = bool4(int(_5.Load4(16).x) < int4(_5.Load4(0)).x, int(_5.Load4(16).y) < int4(_5.Load4(0)).y, int(_5.Load4(16).z) < int4(_5.Load4(0)).z, int(_5.Load4(16).w) < int4(_5.Load4(0)).w); - bool4 _32 = bool4(int(_5.Load4(16).x) <= int4(_5.Load4(0)).x, int(_5.Load4(16).y) <= int4(_5.Load4(0)).y, int(_5.Load4(16).z) <= int4(_5.Load4(0)).z, int(_5.Load4(16).w) <= int4(_5.Load4(0)).w); - bool4 _33 = bool4(_5.Load4(16).x < uint(int4(_5.Load4(0)).x), _5.Load4(16).y < uint(int4(_5.Load4(0)).y), _5.Load4(16).z < uint(int4(_5.Load4(0)).z), _5.Load4(16).w < uint(int4(_5.Load4(0)).w)); - bool4 _34 = bool4(_5.Load4(16).x <= uint(int4(_5.Load4(0)).x), _5.Load4(16).y <= uint(int4(_5.Load4(0)).y), _5.Load4(16).z <= uint(int4(_5.Load4(0)).z), _5.Load4(16).w <= uint(int4(_5.Load4(0)).w)); - bool4 _35 = bool4(int(_5.Load4(16).x) > int4(_5.Load4(0)).x, int(_5.Load4(16).y) > int4(_5.Load4(0)).y, int(_5.Load4(16).z) > int4(_5.Load4(0)).z, int(_5.Load4(16).w) > int4(_5.Load4(0)).w); - bool4 _36 = bool4(int(_5.Load4(16).x) >= int4(_5.Load4(0)).x, int(_5.Load4(16).y) >= int4(_5.Load4(0)).y, int(_5.Load4(16).z) >= int4(_5.Load4(0)).z, int(_5.Load4(16).w) >= int4(_5.Load4(0)).w); - bool4 _37 = bool4(_5.Load4(16).x > uint(int4(_5.Load4(0)).x), _5.Load4(16).y > uint(int4(_5.Load4(0)).y), _5.Load4(16).z > uint(int4(_5.Load4(0)).z), _5.Load4(16).w > uint(int4(_5.Load4(0)).w)); - bool4 _38 = bool4(_5.Load4(16).x >= uint(int4(_5.Load4(0)).x), _5.Load4(16).y >= uint(int4(_5.Load4(0)).y), _5.Load4(16).z >= uint(int4(_5.Load4(0)).z), _5.Load4(16).w >= uint(int4(_5.Load4(0)).w)); - _6.Store4(0, uint4(_31.x ? uint4(1u, 1u, 1u, 1u).x : uint4(0u, 0u, 0u, 0u).x, _31.y ? uint4(1u, 1u, 1u, 1u).y : uint4(0u, 0u, 0u, 0u).y, _31.z ? uint4(1u, 1u, 1u, 1u).z : uint4(0u, 0u, 0u, 0u).z, _31.w ? uint4(1u, 1u, 1u, 1u).w : uint4(0u, 0u, 0u, 0u).w)); - _6.Store4(0, uint4(_32.x ? uint4(1u, 1u, 1u, 1u).x : uint4(0u, 0u, 0u, 0u).x, _32.y ? uint4(1u, 1u, 1u, 1u).y : uint4(0u, 0u, 0u, 0u).y, _32.z ? uint4(1u, 1u, 1u, 1u).z : uint4(0u, 0u, 0u, 0u).z, _32.w ? uint4(1u, 1u, 1u, 1u).w : uint4(0u, 0u, 0u, 0u).w)); - _6.Store4(0, uint4(_33.x ? uint4(1u, 1u, 1u, 1u).x : uint4(0u, 0u, 0u, 0u).x, _33.y ? uint4(1u, 1u, 1u, 1u).y : uint4(0u, 0u, 0u, 0u).y, _33.z ? uint4(1u, 1u, 1u, 1u).z : uint4(0u, 0u, 0u, 0u).z, _33.w ? uint4(1u, 1u, 1u, 1u).w : uint4(0u, 0u, 0u, 0u).w)); - _6.Store4(0, uint4(_34.x ? uint4(1u, 1u, 1u, 1u).x : uint4(0u, 0u, 0u, 0u).x, _34.y ? uint4(1u, 1u, 1u, 1u).y : uint4(0u, 0u, 0u, 0u).y, _34.z ? uint4(1u, 1u, 1u, 1u).z : uint4(0u, 0u, 0u, 0u).z, _34.w ? uint4(1u, 1u, 1u, 1u).w : uint4(0u, 0u, 0u, 0u).w)); - _6.Store4(0, uint4(_35.x ? uint4(1u, 1u, 1u, 1u).x : uint4(0u, 0u, 0u, 0u).x, _35.y ? uint4(1u, 1u, 1u, 1u).y : uint4(0u, 0u, 0u, 0u).y, _35.z ? uint4(1u, 1u, 1u, 1u).z : uint4(0u, 0u, 0u, 0u).z, _35.w ? uint4(1u, 1u, 1u, 1u).w : uint4(0u, 0u, 0u, 0u).w)); - _6.Store4(0, uint4(_36.x ? uint4(1u, 1u, 1u, 1u).x : uint4(0u, 0u, 0u, 0u).x, _36.y ? uint4(1u, 1u, 1u, 1u).y : uint4(0u, 0u, 0u, 0u).y, _36.z ? uint4(1u, 1u, 1u, 1u).z : uint4(0u, 0u, 0u, 0u).z, _36.w ? uint4(1u, 1u, 1u, 1u).w : uint4(0u, 0u, 0u, 0u).w)); - _6.Store4(0, uint4(_37.x ? uint4(1u, 1u, 1u, 1u).x : uint4(0u, 0u, 0u, 0u).x, _37.y ? uint4(1u, 1u, 1u, 1u).y : uint4(0u, 0u, 0u, 0u).y, _37.z ? uint4(1u, 1u, 1u, 1u).z : uint4(0u, 0u, 0u, 0u).z, _37.w ? uint4(1u, 1u, 1u, 1u).w : uint4(0u, 0u, 0u, 0u).w)); - _6.Store4(0, uint4(_38.x ? uint4(1u, 1u, 1u, 1u).x : uint4(0u, 0u, 0u, 0u).x, _38.y ? uint4(1u, 1u, 1u, 1u).y : uint4(0u, 0u, 0u, 0u).y, _38.z ? uint4(1u, 1u, 1u, 1u).z : uint4(0u, 0u, 0u, 0u).z, _38.w ? uint4(1u, 1u, 1u, 1u).w : uint4(0u, 0u, 0u, 0u).w)); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/comp/block-name-alias-global.asm.comp b/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/comp/block-name-alias-global.asm.comp deleted file mode 100644 index e184e03c5c..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/comp/block-name-alias-global.asm.comp +++ /dev/null @@ -1,39 +0,0 @@ -struct A -{ - int a; - int b; -}; - -RWByteAddressBuffer C1 : register(u1); -cbuffer C2 : register(b2) -{ - A C2_1_Data[1024] : packoffset(c0); -}; - -RWByteAddressBuffer C3 : register(u0); -cbuffer B : register(b3) -{ - A C4_Data[1024] : packoffset(c0); -}; - - -static uint3 gl_GlobalInvocationID; -struct SPIRV_Cross_Input -{ - uint3 gl_GlobalInvocationID : SV_DispatchThreadID; -}; - -void comp_main() -{ - C1.Store(gl_GlobalInvocationID.x * 8 + 0, uint(C2_1_Data[gl_GlobalInvocationID.x].a)); - C1.Store(gl_GlobalInvocationID.x * 8 + 4, uint(C2_1_Data[gl_GlobalInvocationID.x].b)); - C3.Store(gl_GlobalInvocationID.x * 8 + 0, uint(C4_Data[gl_GlobalInvocationID.x].a)); - C3.Store(gl_GlobalInvocationID.x * 8 + 4, uint(C4_Data[gl_GlobalInvocationID.x].b)); -} - -[numthreads(1, 1, 1)] -void main(SPIRV_Cross_Input stage_input) -{ - gl_GlobalInvocationID = stage_input.gl_GlobalInvocationID; - comp_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/comp/control-flow-hints.asm.comp b/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/comp/control-flow-hints.asm.comp deleted file mode 100644 index 70df6baf0e..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/comp/control-flow-hints.asm.comp +++ /dev/null @@ -1,41 +0,0 @@ -RWByteAddressBuffer bar : register(u0); -RWByteAddressBuffer foo : register(u1); - -void comp_main() -{ - bar.Store4(0, asuint(asfloat(foo.Load4(0)))); - bar.Store4(16, asuint(asfloat(foo.Load4(16)))); - bar.Store4(32, asuint(asfloat(foo.Load4(32)))); - bar.Store4(48, asuint(asfloat(foo.Load4(48)))); - bar.Store4(64, asuint(asfloat(foo.Load4(64)))); - bar.Store4(80, asuint(asfloat(foo.Load4(80)))); - bar.Store4(96, asuint(asfloat(foo.Load4(96)))); - bar.Store4(112, asuint(asfloat(foo.Load4(112)))); - bar.Store4(128, asuint(asfloat(foo.Load4(128)))); - bar.Store4(144, asuint(asfloat(foo.Load4(144)))); - bar.Store4(160, asuint(asfloat(foo.Load4(160)))); - bar.Store4(176, asuint(asfloat(foo.Load4(176)))); - bar.Store4(192, asuint(asfloat(foo.Load4(192)))); - bar.Store4(208, asuint(asfloat(foo.Load4(208)))); - bar.Store4(224, asuint(asfloat(foo.Load4(224)))); - bar.Store4(240, asuint(asfloat(foo.Load4(240)))); - [loop] - for (int _137 = 0; _137 < 16; ) - { - bar.Store4((15 - _137) * 16 + 0, asuint(asfloat(foo.Load4(_137 * 16 + 0)))); - _137++; - continue; - } - [branch] - if (asfloat(bar.Load(160)) > 10.0f) - { - foo.Store4(320, asuint(5.0f.xxxx)); - } - foo.Store4(320, asuint(20.0f.xxxx)); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/comp/global-parameter-name-alias.asm.comp b/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/comp/global-parameter-name-alias.asm.comp deleted file mode 100644 index d8bce8d54b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/comp/global-parameter-name-alias.asm.comp +++ /dev/null @@ -1,9 +0,0 @@ -void comp_main() -{ -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/comp/nmin-max-clamp.asm.comp b/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/comp/nmin-max-clamp.asm.comp deleted file mode 100644 index 7acd67d0b7..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/comp/nmin-max-clamp.asm.comp +++ /dev/null @@ -1,87 +0,0 @@ -RWByteAddressBuffer _4 : register(u0); - -void comp_main() -{ - _4.Store(0, asuint(isnan(asfloat(_4.Load(96))) ? asfloat(_4.Load(48)) : (isnan(asfloat(_4.Load(48))) ? asfloat(_4.Load(96)) : min(asfloat(_4.Load(48)), asfloat(_4.Load(96)))))); - bool2 _146 = isnan(asfloat(_4.Load2(56))); - bool2 _147 = isnan(asfloat(_4.Load2(104))); - float2 _148 = min(asfloat(_4.Load2(56)), asfloat(_4.Load2(104))); - float2 _149 = float2(_146.x ? asfloat(_4.Load2(104)).x : _148.x, _146.y ? asfloat(_4.Load2(104)).y : _148.y); - _4.Store2(8, asuint(float2(_147.x ? asfloat(_4.Load2(56)).x : _149.x, _147.y ? asfloat(_4.Load2(56)).y : _149.y))); - bool3 _151 = isnan(asfloat(_4.Load3(64))); - bool3 _152 = isnan(asfloat(_4.Load3(112))); - float3 _153 = min(asfloat(_4.Load3(64)), asfloat(_4.Load3(112))); - float3 _154 = float3(_151.x ? asfloat(_4.Load3(112)).x : _153.x, _151.y ? asfloat(_4.Load3(112)).y : _153.y, _151.z ? asfloat(_4.Load3(112)).z : _153.z); - _4.Store3(16, asuint(float3(_152.x ? asfloat(_4.Load3(64)).x : _154.x, _152.y ? asfloat(_4.Load3(64)).y : _154.y, _152.z ? asfloat(_4.Load3(64)).z : _154.z))); - bool4 _156 = isnan(asfloat(_4.Load4(80))); - bool4 _157 = isnan(asfloat(_4.Load4(128))); - float4 _158 = min(asfloat(_4.Load4(80)), asfloat(_4.Load4(128))); - float4 _159 = float4(_156.x ? asfloat(_4.Load4(128)).x : _158.x, _156.y ? asfloat(_4.Load4(128)).y : _158.y, _156.z ? asfloat(_4.Load4(128)).z : _158.z, _156.w ? asfloat(_4.Load4(128)).w : _158.w); - _4.Store4(32, asuint(float4(_157.x ? asfloat(_4.Load4(80)).x : _159.x, _157.y ? asfloat(_4.Load4(80)).y : _159.y, _157.z ? asfloat(_4.Load4(80)).z : _159.z, _157.w ? asfloat(_4.Load4(80)).w : _159.w))); - _4.Store(0, asuint(isnan(asfloat(_4.Load(96))) ? asfloat(_4.Load(48)) : (isnan(asfloat(_4.Load(48))) ? asfloat(_4.Load(96)) : max(asfloat(_4.Load(48)), asfloat(_4.Load(96)))))); - bool2 _166 = isnan(asfloat(_4.Load2(56))); - bool2 _167 = isnan(asfloat(_4.Load2(104))); - float2 _168 = max(asfloat(_4.Load2(56)), asfloat(_4.Load2(104))); - float2 _169 = float2(_166.x ? asfloat(_4.Load2(104)).x : _168.x, _166.y ? asfloat(_4.Load2(104)).y : _168.y); - _4.Store2(8, asuint(float2(_167.x ? asfloat(_4.Load2(56)).x : _169.x, _167.y ? asfloat(_4.Load2(56)).y : _169.y))); - bool3 _171 = isnan(asfloat(_4.Load3(64))); - bool3 _172 = isnan(asfloat(_4.Load3(112))); - float3 _173 = max(asfloat(_4.Load3(64)), asfloat(_4.Load3(112))); - float3 _174 = float3(_171.x ? asfloat(_4.Load3(112)).x : _173.x, _171.y ? asfloat(_4.Load3(112)).y : _173.y, _171.z ? asfloat(_4.Load3(112)).z : _173.z); - _4.Store3(16, asuint(float3(_172.x ? asfloat(_4.Load3(64)).x : _174.x, _172.y ? asfloat(_4.Load3(64)).y : _174.y, _172.z ? asfloat(_4.Load3(64)).z : _174.z))); - bool4 _176 = isnan(asfloat(_4.Load4(80))); - bool4 _177 = isnan(asfloat(_4.Load4(128))); - float4 _178 = max(asfloat(_4.Load4(80)), asfloat(_4.Load4(128))); - float4 _179 = float4(_176.x ? asfloat(_4.Load4(128)).x : _178.x, _176.y ? asfloat(_4.Load4(128)).y : _178.y, _176.z ? asfloat(_4.Load4(128)).z : _178.z, _176.w ? asfloat(_4.Load4(128)).w : _178.w); - _4.Store4(32, asuint(float4(_177.x ? asfloat(_4.Load4(80)).x : _179.x, _177.y ? asfloat(_4.Load4(80)).y : _179.y, _177.z ? asfloat(_4.Load4(80)).z : _179.z, _177.w ? asfloat(_4.Load4(80)).w : _179.w))); - float _180 = isnan(asfloat(_4.Load(48))) ? asfloat(_4.Load(0)) : (isnan(asfloat(_4.Load(0))) ? asfloat(_4.Load(48)) : max(asfloat(_4.Load(0)), asfloat(_4.Load(48)))); - _4.Store(0, asuint(isnan(asfloat(_4.Load(96))) ? _180 : (isnan(_180) ? asfloat(_4.Load(96)) : min(_180, asfloat(_4.Load(96)))))); - bool2 _193 = isnan(asfloat(_4.Load2(8))); - bool2 _194 = isnan(asfloat(_4.Load2(56))); - float2 _195 = max(asfloat(_4.Load2(8)), asfloat(_4.Load2(56))); - float2 _196 = float2(_193.x ? asfloat(_4.Load2(56)).x : _195.x, _193.y ? asfloat(_4.Load2(56)).y : _195.y); - float2 _191 = float2(_194.x ? asfloat(_4.Load2(8)).x : _196.x, _194.y ? asfloat(_4.Load2(8)).y : _196.y); - bool2 _198 = isnan(_191); - bool2 _199 = isnan(asfloat(_4.Load2(104))); - float2 _200 = min(_191, asfloat(_4.Load2(104))); - float2 _201 = float2(_198.x ? asfloat(_4.Load2(104)).x : _200.x, _198.y ? asfloat(_4.Load2(104)).y : _200.y); - _4.Store2(8, asuint(float2(_199.x ? _191.x : _201.x, _199.y ? _191.y : _201.y))); - bool3 _204 = isnan(asfloat(_4.Load3(16))); - bool3 _205 = isnan(asfloat(_4.Load3(64))); - float3 _206 = max(asfloat(_4.Load3(16)), asfloat(_4.Load3(64))); - float3 _207 = float3(_204.x ? asfloat(_4.Load3(64)).x : _206.x, _204.y ? asfloat(_4.Load3(64)).y : _206.y, _204.z ? asfloat(_4.Load3(64)).z : _206.z); - float3 _202 = float3(_205.x ? asfloat(_4.Load3(16)).x : _207.x, _205.y ? asfloat(_4.Load3(16)).y : _207.y, _205.z ? asfloat(_4.Load3(16)).z : _207.z); - bool3 _209 = isnan(_202); - bool3 _210 = isnan(asfloat(_4.Load3(112))); - float3 _211 = min(_202, asfloat(_4.Load3(112))); - float3 _212 = float3(_209.x ? asfloat(_4.Load3(112)).x : _211.x, _209.y ? asfloat(_4.Load3(112)).y : _211.y, _209.z ? asfloat(_4.Load3(112)).z : _211.z); - _4.Store3(16, asuint(float3(_210.x ? _202.x : _212.x, _210.y ? _202.y : _212.y, _210.z ? _202.z : _212.z))); - bool4 _215 = isnan(asfloat(_4.Load4(32))); - bool4 _216 = isnan(asfloat(_4.Load4(80))); - float4 _217 = max(asfloat(_4.Load4(32)), asfloat(_4.Load4(80))); - float4 _218 = float4(_215.x ? asfloat(_4.Load4(80)).x : _217.x, _215.y ? asfloat(_4.Load4(80)).y : _217.y, _215.z ? asfloat(_4.Load4(80)).z : _217.z, _215.w ? asfloat(_4.Load4(80)).w : _217.w); - float4 _213 = float4(_216.x ? asfloat(_4.Load4(32)).x : _218.x, _216.y ? asfloat(_4.Load4(32)).y : _218.y, _216.z ? asfloat(_4.Load4(32)).z : _218.z, _216.w ? asfloat(_4.Load4(32)).w : _218.w); - bool4 _220 = isnan(_213); - bool4 _221 = isnan(asfloat(_4.Load4(128))); - float4 _222 = min(_213, asfloat(_4.Load4(128))); - float4 _223 = float4(_220.x ? asfloat(_4.Load4(128)).x : _222.x, _220.y ? asfloat(_4.Load4(128)).y : _222.y, _220.z ? asfloat(_4.Load4(128)).z : _222.z, _220.w ? asfloat(_4.Load4(128)).w : _222.w); - _4.Store4(32, asuint(float4(_221.x ? _213.x : _223.x, _221.y ? _213.y : _223.y, _221.z ? _213.z : _223.z, _221.w ? _213.w : _223.w))); - for (int _139 = 0; _139 < 2; ) - { - bool2 _225 = isnan(asfloat(_4.Load2(56))); - bool2 _226 = isnan(asfloat(_4.Load2(104))); - float2 _227 = min(asfloat(_4.Load2(56)), asfloat(_4.Load2(104))); - float2 _228 = float2(_225.x ? asfloat(_4.Load2(104)).x : _227.x, _225.y ? asfloat(_4.Load2(104)).y : _227.y); - _4.Store2(8, asuint(float2(_226.x ? asfloat(_4.Load2(56)).x : _228.x, _226.y ? asfloat(_4.Load2(56)).y : _228.y))); - float _229 = isnan(asfloat(_4.Load(56))) ? asfloat(_4.Load(0)) : (isnan(asfloat(_4.Load(0))) ? asfloat(_4.Load(56)) : max(asfloat(_4.Load(0)), asfloat(_4.Load(56)))); - _4.Store(0, asuint(isnan(asfloat(_4.Load(60))) ? _229 : (isnan(_229) ? asfloat(_4.Load(60)) : min(_229, asfloat(_4.Load(60)))))); - _139++; - continue; - } -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/cbuffer-stripped.asm.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/cbuffer-stripped.asm.frag deleted file mode 100644 index b410010d22..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/cbuffer-stripped.asm.frag +++ /dev/null @@ -1,26 +0,0 @@ -cbuffer _4_5 : register(b0) -{ - column_major float2x4 _5_m0 : packoffset(c0); - float4 _5_m1 : packoffset(c4); -}; - - -static float2 _3; - -struct SPIRV_Cross_Output -{ - float2 _3 : SV_Target0; -}; - -void frag_main() -{ - _3 = mul(_5_m0, _5_m1); -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output._3 = _3; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/combined-sampler-reuse.asm.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/combined-sampler-reuse.asm.frag deleted file mode 100644 index 3951fd511a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/combined-sampler-reuse.asm.frag +++ /dev/null @@ -1,30 +0,0 @@ -Texture2D uTex : register(t1); -SamplerState uSampler : register(s0); - -static float4 FragColor; -static float2 vUV; - -struct SPIRV_Cross_Input -{ - float2 vUV : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = uTex.Sample(uSampler, vUV); - FragColor += uTex.Sample(uSampler, vUV, int2(1, 1)); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vUV = stage_input.vUV; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/empty-struct.asm.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/empty-struct.asm.frag deleted file mode 100644 index 3b50282fe0..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/empty-struct.asm.frag +++ /dev/null @@ -1,8 +0,0 @@ -void frag_main() -{ -} - -void main() -{ - frag_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/frem.asm.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/frem.asm.frag deleted file mode 100644 index 67998c56a7..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/frem.asm.frag +++ /dev/null @@ -1,29 +0,0 @@ -static float4 FragColor; -static float4 vA; -static float4 vB; - -struct SPIRV_Cross_Input -{ - float4 vA : TEXCOORD0; - float4 vB : TEXCOORD1; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = fmod(vA, vB); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vA = stage_input.vA; - vB = stage_input.vB; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/function-overload-alias.asm.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/function-overload-alias.asm.frag deleted file mode 100644 index 93f8414e93..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/function-overload-alias.asm.frag +++ /dev/null @@ -1,19 +0,0 @@ -static float4 FragColor; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = 10.0f.xxxx; -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/image-extract-reuse.asm.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/image-extract-reuse.asm.frag deleted file mode 100644 index 2527d10fdc..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/image-extract-reuse.asm.frag +++ /dev/null @@ -1,31 +0,0 @@ -Texture2D uTexture : register(t0); -SamplerState _uTexture_sampler : register(s0); - -static int2 Size; - -struct SPIRV_Cross_Output -{ - int2 Size : SV_Target0; -}; - -uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) -{ - uint2 ret; - Tex.GetDimensions(Level, ret.x, ret.y, Param); - return ret; -} - -void frag_main() -{ - uint _19_dummy_parameter; - uint _20_dummy_parameter; - Size = int2(spvTextureSize(uTexture, uint(0), _19_dummy_parameter)) + int2(spvTextureSize(uTexture, uint(1), _20_dummy_parameter)); -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.Size = Size; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/implicit-read-dep-phi.asm.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/implicit-read-dep-phi.asm.frag deleted file mode 100644 index 67f14fccae..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/implicit-read-dep-phi.asm.frag +++ /dev/null @@ -1,57 +0,0 @@ -Texture2D uImage : register(t0); -SamplerState _uImage_sampler : register(s0); - -static float4 v0; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - float4 v0 : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - float phi; - float4 _36; - int _51; - _51 = 0; - phi = 1.0f; - _36 = float4(1.0f, 2.0f, 1.0f, 2.0f); - for (;;) - { - FragColor = _36; - if (_51 < 4) - { - if (v0[_51] > 0.0f) - { - float2 _48 = phi.xx; - _51++; - phi += 2.0f; - _36 = uImage.SampleLevel(_uImage_sampler, _48, 0.0f); - continue; - } - else - { - break; - } - } - else - { - break; - } - } -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - v0 = stage_input.v0; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/inf-nan-constant.asm.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/inf-nan-constant.asm.frag deleted file mode 100644 index d20cf995ac..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/inf-nan-constant.asm.frag +++ /dev/null @@ -1,19 +0,0 @@ -static float3 FragColor; - -struct SPIRV_Cross_Output -{ - float3 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = float3(asfloat(0x7f800000u), asfloat(0xff800000u), asfloat(0x7fc00000u)); -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/line-directive.line.asm.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/line-directive.line.asm.frag deleted file mode 100644 index 7fb40355a6..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/line-directive.line.asm.frag +++ /dev/null @@ -1,93 +0,0 @@ -static float FragColor; -static float vColor; - -struct SPIRV_Cross_Input -{ - float vColor : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float FragColor : SV_Target0; -}; - -#line 8 "test.frag" -void frag_main() -{ -#line 8 "test.frag" - FragColor = 1.0f; -#line 9 "test.frag" - FragColor = 2.0f; -#line 10 "test.frag" - if (vColor < 0.0f) - { -#line 12 "test.frag" - FragColor = 3.0f; - } - else - { -#line 16 "test.frag" - FragColor = 4.0f; - } -#line 19 "test.frag" - for (int _127 = 0; float(_127) < (40.0f + vColor); ) - { -#line 21 "test.frag" - FragColor += 0.20000000298023223876953125f; -#line 22 "test.frag" - FragColor += 0.300000011920928955078125f; -#line 19 "test.frag" - _127 += (int(vColor) + 5); - continue; - } -#line 25 "test.frag" - switch (int(vColor)) - { - case 0: - { -#line 28 "test.frag" - FragColor += 0.20000000298023223876953125f; -#line 29 "test.frag" - break; - } - case 1: - { -#line 32 "test.frag" - FragColor += 0.4000000059604644775390625f; -#line 33 "test.frag" - break; - } - default: - { -#line 36 "test.frag" - FragColor += 0.800000011920928955078125f; -#line 37 "test.frag" - break; - } - } - for (;;) - { -#line 42 "test.frag" - FragColor += (10.0f + vColor); -#line 43 "test.frag" -#line 42 "test.frag" -#line 43 "test.frag" - if (FragColor < 100.0f) - { - } - else - { - break; - } - } -#line 48 "test.frag" -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vColor = stage_input.vColor; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/lut-promotion-initializer.asm.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/lut-promotion-initializer.asm.frag deleted file mode 100644 index 5deae3a569..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/lut-promotion-initializer.asm.frag +++ /dev/null @@ -1,57 +0,0 @@ -static const float _46[16] = { 1.0f, 2.0f, 3.0f, 4.0f, 1.0f, 2.0f, 3.0f, 4.0f, 1.0f, 2.0f, 3.0f, 4.0f, 1.0f, 2.0f, 3.0f, 4.0f }; -static const float4 _76[4] = { 0.0f.xxxx, 1.0f.xxxx, 8.0f.xxxx, 5.0f.xxxx }; -static const float4 _90[4] = { 20.0f.xxxx, 30.0f.xxxx, 50.0f.xxxx, 60.0f.xxxx }; - -static float FragColor; -static int index; - -struct SPIRV_Cross_Input -{ - nointerpolation int index : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float FragColor : SV_Target0; -}; - -void frag_main() -{ - float4 foobar[4] = _76; - float4 baz[4] = _76; - FragColor = _46[index]; - if (index < 10) - { - FragColor += _46[index ^ 1]; - } - else - { - FragColor += _46[index & 1]; - } - bool _99 = index > 30; - if (_99) - { - FragColor += _76[index & 3].y; - } - else - { - FragColor += _76[index & 1].x; - } - if (_99) - { - foobar[1].z = 20.0f; - } - int _37 = index & 3; - FragColor += foobar[_37].z; - baz = _90; - FragColor += baz[_37].z; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - index = stage_input.index; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/pack-and-unpack-uint2.fxconly.nofxc.sm60.asm.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/pack-and-unpack-uint2.fxconly.nofxc.sm60.asm.frag deleted file mode 100644 index 0841b7cace..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/pack-and-unpack-uint2.fxconly.nofxc.sm60.asm.frag +++ /dev/null @@ -1,33 +0,0 @@ -static float4 FragColor; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -uint64_t spvPackUint2x32(uint2 value) -{ - return (uint64_t(value.y) << 32) | uint64_t(value.x); -} - -uint2 spvUnpackUint2x32(uint64_t value) -{ - uint2 Unpacked; - Unpacked.x = uint(value & 0xffffffff); - Unpacked.y = uint(value >> 32); - return Unpacked; -} - -void frag_main() -{ - uint2 unpacked = spvUnpackUint2x32(spvPackUint2x32(uint2(18u, 52u))); - FragColor = float4(float(unpacked.x), float(unpacked.y), 1.0f, 1.0f); -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/pass-by-value.asm.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/pass-by-value.asm.frag deleted file mode 100644 index 56ac1f22ac..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/pass-by-value.asm.frag +++ /dev/null @@ -1,25 +0,0 @@ -cbuffer Registers -{ - float registers_foo : packoffset(c0); -}; - - -static float FragColor; - -struct SPIRV_Cross_Output -{ - float FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = 10.0f + registers_foo; -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/sample-and-compare.asm.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/sample-and-compare.asm.frag deleted file mode 100644 index 41dfc08061..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/sample-and-compare.asm.frag +++ /dev/null @@ -1,30 +0,0 @@ -Texture2D g_Texture : register(t0); -SamplerState g_Sampler : register(s0); -SamplerComparisonState g_CompareSampler : register(s1); - -static float2 in_var_TEXCOORD0; -static float out_var_SV_Target; - -struct SPIRV_Cross_Input -{ - float2 in_var_TEXCOORD0 : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float out_var_SV_Target : SV_Target0; -}; - -void frag_main() -{ - out_var_SV_Target = g_Texture.Sample(g_Sampler, in_var_TEXCOORD0).x + g_Texture.SampleCmpLevelZero(g_CompareSampler, in_var_TEXCOORD0, 0.5f); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - in_var_TEXCOORD0 = stage_input.in_var_TEXCOORD0; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.out_var_SV_Target = out_var_SV_Target; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/single-function-private-lut.asm.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/single-function-private-lut.asm.frag deleted file mode 100644 index 269cecb302..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/single-function-private-lut.asm.frag +++ /dev/null @@ -1,63 +0,0 @@ -struct myType -{ - float data; -}; - -static const myType _18 = { 0.0f }; -static const myType _20 = { 1.0f }; -static const myType _21[5] = { { 0.0f }, { 1.0f }, { 0.0f }, { 1.0f }, { 0.0f } }; - -static float4 gl_FragCoord; -static float4 o_color; - -struct SPIRV_Cross_Input -{ - float4 gl_FragCoord : SV_Position; -}; - -struct SPIRV_Cross_Output -{ - float4 o_color : SV_Target0; -}; - -float mod(float x, float y) -{ - return x - y * floor(x / y); -} - -float2 mod(float2 x, float2 y) -{ - return x - y * floor(x / y); -} - -float3 mod(float3 x, float3 y) -{ - return x - y * floor(x / y); -} - -float4 mod(float4 x, float4 y) -{ - return x - y * floor(x / y); -} - -void frag_main() -{ - if (_21[int(mod(gl_FragCoord.x, 4.0f))].data > 0.0f) - { - o_color = float4(0.0f, 1.0f, 0.0f, 1.0f); - } - else - { - o_color = float4(1.0f, 0.0f, 0.0f, 1.0f); - } -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - gl_FragCoord = stage_input.gl_FragCoord; - gl_FragCoord.w = 1.0 / gl_FragCoord.w; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.o_color = o_color; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/srem.asm.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/srem.asm.frag deleted file mode 100644 index db5e717457..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/srem.asm.frag +++ /dev/null @@ -1,29 +0,0 @@ -static float4 FragColor; -static int4 vA; -static int4 vB; - -struct SPIRV_Cross_Input -{ - nointerpolation int4 vA : TEXCOORD0; - nointerpolation int4 vB : TEXCOORD1; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = float4(vA - vB * (vA / vB)); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vA = stage_input.vA; - vB = stage_input.vB; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/storage-class-output-initializer.asm.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/storage-class-output-initializer.asm.frag deleted file mode 100644 index 1905b5ea29..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/storage-class-output-initializer.asm.frag +++ /dev/null @@ -1,23 +0,0 @@ -static const float4 _20[2] = { float4(1.0f, 2.0f, 3.0f, 4.0f), 10.0f.xxxx }; - -static float4 FragColors[2] = _20; -static float4 FragColor = 5.0f.xxxx; - -struct SPIRV_Cross_Output -{ - float4 FragColors[2] : SV_Target0; - float4 FragColor : SV_Target2; -}; - -void frag_main() -{ -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColors = FragColors; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/texel-fetch-no-lod.asm.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/texel-fetch-no-lod.asm.frag deleted file mode 100644 index 74c12945bf..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/texel-fetch-no-lod.asm.frag +++ /dev/null @@ -1,30 +0,0 @@ -Texture2D uTexture : register(t0); -SamplerState _uTexture_sampler : register(s0); - -static float4 gl_FragCoord; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - float4 gl_FragCoord : SV_Position; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = uTexture.Load(int3(int2(gl_FragCoord.xy), 0)); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - gl_FragCoord = stage_input.gl_FragCoord; - gl_FragCoord.w = 1.0 / gl_FragCoord.w; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/texture-sampling-fp16.asm.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/texture-sampling-fp16.asm.frag deleted file mode 100644 index 322c86bed3..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/texture-sampling-fp16.asm.frag +++ /dev/null @@ -1,29 +0,0 @@ -Texture2D uTexture : register(t0); -SamplerState _uTexture_sampler : register(s0); - -static min16float4 FragColor; -static min16float2 UV; - -struct SPIRV_Cross_Input -{ - min16float2 UV : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - min16float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = min16float4(uTexture.Sample(_uTexture_sampler, UV)); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - UV = stage_input.UV; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/unknown-depth-state.asm.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/unknown-depth-state.asm.frag deleted file mode 100644 index 5b894de831..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/unknown-depth-state.asm.frag +++ /dev/null @@ -1,31 +0,0 @@ -Texture2D uShadow : register(t0); -SamplerComparisonState _uShadow_sampler : register(s0); -Texture2D uTexture : register(t1); -SamplerComparisonState uSampler : register(s2); - -static float3 vUV; -static float FragColor; - -struct SPIRV_Cross_Input -{ - float3 vUV : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = uShadow.SampleCmp(_uShadow_sampler, vUV.xy, vUV.z) + uTexture.SampleCmp(uSampler, vUV.xy, vUV.z); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vUV = stage_input.vUV; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/unreachable.asm.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/unreachable.asm.frag deleted file mode 100644 index 4a024c8ef1..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/frag/unreachable.asm.frag +++ /dev/null @@ -1,40 +0,0 @@ -static int counter; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - nointerpolation int counter : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - float4 _33; - for (;;) - { - if (counter == 10) - { - _33 = 10.0f.xxxx; - break; - } - else - { - _33 = 30.0f.xxxx; - break; - } - } - FragColor = _33; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - counter = stage_input.counter; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/vert/extract-transposed-matrix-from-struct.asm.vert b/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/vert/extract-transposed-matrix-from-struct.asm.vert deleted file mode 100644 index 54cfec96ce..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/vert/extract-transposed-matrix-from-struct.asm.vert +++ /dev/null @@ -1,45 +0,0 @@ -struct InstanceData -{ - column_major float4x4 MATRIX_MVP; - float4 Color; -}; - -cbuffer gInstanceData : register(b0) -{ - InstanceData gInstanceData_1_data[32] : packoffset(c0); -}; - - -static float4 gl_Position; -static int gl_InstanceIndex; -static float3 PosL; -static float4 _entryPointOutput_Color; - -struct SPIRV_Cross_Input -{ - float3 PosL : TEXCOORD0; - uint gl_InstanceIndex : SV_InstanceID; -}; - -struct SPIRV_Cross_Output -{ - float4 _entryPointOutput_Color : TEXCOORD0; - float4 gl_Position : SV_Position; -}; - -void vert_main() -{ - gl_Position = mul(float4(PosL, 1.0f), gInstanceData_1_data[uint(gl_InstanceIndex)].MATRIX_MVP); - _entryPointOutput_Color = gInstanceData_1_data[uint(gl_InstanceIndex)].Color; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - gl_InstanceIndex = int(stage_input.gl_InstanceIndex); - PosL = stage_input.PosL; - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - stage_output._entryPointOutput_Color = _entryPointOutput_Color; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/vert/spec-constant-op-composite.asm.vert b/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/vert/spec-constant-op-composite.asm.vert deleted file mode 100644 index 2cebffffa8..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/vert/spec-constant-op-composite.asm.vert +++ /dev/null @@ -1,46 +0,0 @@ -#ifndef SPIRV_CROSS_CONSTANT_ID_201 -#define SPIRV_CROSS_CONSTANT_ID_201 -10 -#endif -static const int _7 = SPIRV_CROSS_CONSTANT_ID_201; -static const int _20 = (_7 + 2); -#ifndef SPIRV_CROSS_CONSTANT_ID_202 -#define SPIRV_CROSS_CONSTANT_ID_202 100u -#endif -static const uint _8 = SPIRV_CROSS_CONSTANT_ID_202; -static const uint _25 = (_8 % 5u); -#ifndef SPIRV_CROSS_CONSTANT_ID_0 -#define SPIRV_CROSS_CONSTANT_ID_0 int4(20, 30, _20, _20) -#endif -static const int4 _30 = SPIRV_CROSS_CONSTANT_ID_0; -static const int2 _32 = int2(_30.y, _30.x); -static const int _33 = _30.y; - -static float4 gl_Position; -static int _4; - -struct SPIRV_Cross_Output -{ - nointerpolation int _4 : TEXCOORD0; - float4 gl_Position : SV_Position; -}; - -void vert_main() -{ - float4 _63 = 0.0f.xxxx; - _63.y = float(_20); - float4 _66 = _63; - _66.z = float(_25); - float4 _52 = _66 + float4(_30); - float2 _56 = _52.xy + float2(_32); - gl_Position = float4(_56.x, _56.y, _52.z, _52.w); - _4 = _33; -} - -SPIRV_Cross_Output main() -{ - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - stage_output._4 = _4; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/vert/uint-vertex-id-instance-id.asm.vert b/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/vert/uint-vertex-id-instance-id.asm.vert deleted file mode 100644 index 0d1e8cc534..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/vert/uint-vertex-id-instance-id.asm.vert +++ /dev/null @@ -1,28 +0,0 @@ -static float4 gl_Position; -static int gl_VertexIndex; -static int gl_InstanceIndex; -struct SPIRV_Cross_Input -{ - uint gl_VertexIndex : SV_VertexID; - uint gl_InstanceIndex : SV_InstanceID; -}; - -struct SPIRV_Cross_Output -{ - float4 gl_Position : SV_Position; -}; - -void vert_main() -{ - gl_Position = float(uint(gl_VertexIndex) + uint(gl_InstanceIndex)).xxxx; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - gl_VertexIndex = int(stage_input.gl_VertexIndex); - gl_InstanceIndex = int(stage_input.gl_InstanceIndex); - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/vert/vertex-id-instance-id.asm.vert b/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/vert/vertex-id-instance-id.asm.vert deleted file mode 100644 index 48b2df20d3..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/asm/vert/vertex-id-instance-id.asm.vert +++ /dev/null @@ -1,28 +0,0 @@ -static float4 gl_Position; -static int gl_VertexIndex; -static int gl_InstanceIndex; -struct SPIRV_Cross_Input -{ - uint gl_VertexIndex : SV_VertexID; - uint gl_InstanceIndex : SV_InstanceID; -}; - -struct SPIRV_Cross_Output -{ - float4 gl_Position : SV_Position; -}; - -void vert_main() -{ - gl_Position = float(gl_VertexIndex + gl_InstanceIndex).xxxx; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - gl_VertexIndex = int(stage_input.gl_VertexIndex); - gl_InstanceIndex = int(stage_input.gl_InstanceIndex); - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/access-chain-load-composite.comp b/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/access-chain-load-composite.comp deleted file mode 100644 index 778f62e83c..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/access-chain-load-composite.comp +++ /dev/null @@ -1,108 +0,0 @@ -struct Baz -{ - float c; -}; - -struct Bar -{ - float d[2][4]; - Baz baz[2]; -}; - -struct Foo -{ - column_major float2x2 a; - float2 b; - Bar c[5]; -}; - -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -RWByteAddressBuffer _31 : register(u0); - -void comp_main() -{ - Foo _36; - _36.a = asfloat(uint2x2(_31.Load(0), _31.Load(8), _31.Load(4), _31.Load(12))); - _36.b = asfloat(_31.Load2(16)); - [unroll] - for (int _4ident = 0; _4ident < 5; _4ident++) - { - [unroll] - for (int _5ident = 0; _5ident < 2; _5ident++) - { - [unroll] - for (int _6ident = 0; _6ident < 4; _6ident++) - { - _36.c[_4ident].d[_5ident][_6ident] = asfloat(_31.Load(_6ident * 4 + _5ident * 16 + _4ident * 40 + 24)); - } - } - [unroll] - for (int _7ident = 0; _7ident < 2; _7ident++) - { - _36.c[_4ident].baz[_7ident].c = asfloat(_31.Load(_7ident * 4 + _4ident * 40 + 56)); - } - } - float2x2 _234 = float2x2(_36.a[0] + 1.0f.xx, _36.a[1] + 1.0f.xx); - _31.Store(224, asuint(_234[0].x)); - _31.Store(228, asuint(_234[1].x)); - _31.Store(232, asuint(_234[0].y)); - _31.Store(236, asuint(_234[1].y)); - _31.Store2(240, asuint(_36.b + 2.0f.xx)); - _31.Store(248, asuint(_36.c[0].d[0][0])); - _31.Store(252, asuint(_36.c[0].d[0][1])); - _31.Store(256, asuint(_36.c[0].d[0][2])); - _31.Store(260, asuint(_36.c[0].d[0][3])); - _31.Store(264, asuint(_36.c[0].d[1][0])); - _31.Store(268, asuint(_36.c[0].d[1][1])); - _31.Store(272, asuint(_36.c[0].d[1][2])); - _31.Store(276, asuint(_36.c[0].d[1][3])); - _31.Store(280, asuint(_36.c[0].baz[0].c)); - _31.Store(284, asuint(_36.c[0].baz[1].c)); - _31.Store(288, asuint(_36.c[1].d[0][0])); - _31.Store(292, asuint(_36.c[1].d[0][1])); - _31.Store(296, asuint(_36.c[1].d[0][2])); - _31.Store(300, asuint(_36.c[1].d[0][3])); - _31.Store(304, asuint(_36.c[1].d[1][0])); - _31.Store(308, asuint(_36.c[1].d[1][1])); - _31.Store(312, asuint(_36.c[1].d[1][2])); - _31.Store(316, asuint(_36.c[1].d[1][3])); - _31.Store(320, asuint(_36.c[1].baz[0].c)); - _31.Store(324, asuint(_36.c[1].baz[1].c)); - _31.Store(328, asuint(_36.c[2].d[0][0])); - _31.Store(332, asuint(_36.c[2].d[0][1])); - _31.Store(336, asuint(_36.c[2].d[0][2])); - _31.Store(340, asuint(_36.c[2].d[0][3])); - _31.Store(344, asuint(_36.c[2].d[1][0])); - _31.Store(348, asuint(_36.c[2].d[1][1])); - _31.Store(352, asuint(_36.c[2].d[1][2])); - _31.Store(356, asuint(_36.c[2].d[1][3])); - _31.Store(360, asuint(_36.c[2].baz[0].c)); - _31.Store(364, asuint(_36.c[2].baz[1].c)); - _31.Store(368, asuint(_36.c[3].d[0][0])); - _31.Store(372, asuint(_36.c[3].d[0][1])); - _31.Store(376, asuint(_36.c[3].d[0][2])); - _31.Store(380, asuint(_36.c[3].d[0][3])); - _31.Store(384, asuint(_36.c[3].d[1][0])); - _31.Store(388, asuint(_36.c[3].d[1][1] + 5.0f)); - _31.Store(392, asuint(_36.c[3].d[1][2])); - _31.Store(396, asuint(_36.c[3].d[1][3])); - _31.Store(400, asuint(_36.c[3].baz[0].c)); - _31.Store(404, asuint(_36.c[3].baz[1].c)); - _31.Store(408, asuint(_36.c[4].d[0][0])); - _31.Store(412, asuint(_36.c[4].d[0][1])); - _31.Store(416, asuint(_36.c[4].d[0][2])); - _31.Store(420, asuint(_36.c[4].d[0][3])); - _31.Store(424, asuint(_36.c[4].d[1][0])); - _31.Store(428, asuint(_36.c[4].d[1][1])); - _31.Store(432, asuint(_36.c[4].d[1][2])); - _31.Store(436, asuint(_36.c[4].d[1][3])); - _31.Store(440, asuint(_36.c[4].baz[0].c)); - _31.Store(444, asuint(_36.c[4].baz[1].c)); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/access-chains.comp b/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/access-chains.comp deleted file mode 100644 index c748200b96..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/access-chains.comp +++ /dev/null @@ -1,23 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -RWByteAddressBuffer wo : register(u1); -ByteAddressBuffer ro : register(t0); - -static uint3 gl_GlobalInvocationID; -struct SPIRV_Cross_Input -{ - uint3 gl_GlobalInvocationID : SV_DispatchThreadID; -}; - -void comp_main() -{ - wo.Store4(gl_GlobalInvocationID.x * 64 + 272, asuint(asfloat(ro.Load4(gl_GlobalInvocationID.x * 64 + 160)))); - wo.Store4(gl_GlobalInvocationID.x * 16 + 480, asuint(asfloat(ro.Load4(gl_GlobalInvocationID.x * 16 + 480)))); -} - -[numthreads(1, 1, 1)] -void main(SPIRV_Cross_Input stage_input) -{ - gl_GlobalInvocationID = stage_input.gl_GlobalInvocationID; - comp_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/access-chains.force-uav.comp b/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/access-chains.force-uav.comp deleted file mode 100644 index 97d046d89a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/access-chains.force-uav.comp +++ /dev/null @@ -1,23 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -RWByteAddressBuffer wo : register(u1); -RWByteAddressBuffer ro : register(u0); - -static uint3 gl_GlobalInvocationID; -struct SPIRV_Cross_Input -{ - uint3 gl_GlobalInvocationID : SV_DispatchThreadID; -}; - -void comp_main() -{ - wo.Store4(gl_GlobalInvocationID.x * 64 + 272, asuint(asfloat(ro.Load4(gl_GlobalInvocationID.x * 64 + 160)))); - wo.Store4(gl_GlobalInvocationID.x * 16 + 480, asuint(asfloat(ro.Load4(gl_GlobalInvocationID.x * 16 + 480)))); -} - -[numthreads(1, 1, 1)] -void main(SPIRV_Cross_Input stage_input) -{ - gl_GlobalInvocationID = stage_input.gl_GlobalInvocationID; - comp_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/address-buffers.comp b/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/address-buffers.comp deleted file mode 100644 index 7f1c7975bc..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/address-buffers.comp +++ /dev/null @@ -1,17 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -RWByteAddressBuffer WriteOnly : register(u2); -ByteAddressBuffer ReadOnly : register(t0); -RWByteAddressBuffer ReadWrite : register(u1); - -void comp_main() -{ - WriteOnly.Store4(0, asuint(asfloat(ReadOnly.Load4(0)))); - ReadWrite.Store4(0, asuint(asfloat(ReadWrite.Load4(0)) + 10.0f.xxxx)); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/atomic.comp b/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/atomic.comp deleted file mode 100644 index e6ff891e8c..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/atomic.comp +++ /dev/null @@ -1,91 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -RWByteAddressBuffer ssbo : register(u2); -RWTexture2D uImage : register(u0); -RWTexture2D iImage : register(u1); - -groupshared int int_atomic; -groupshared uint uint_atomic; -groupshared int int_atomic_array[1]; -groupshared uint uint_atomic_array[1]; - -void comp_main() -{ - uint _19; - InterlockedAdd(uImage[int2(1, 5)], 1u, _19); - uint _27; - InterlockedAdd(uImage[int2(1, 5)], 1u, _27); - iImage[int2(1, 6)] = int(_27).x; - uint _32; - InterlockedOr(uImage[int2(1, 5)], 1u, _32); - uint _34; - InterlockedXor(uImage[int2(1, 5)], 1u, _34); - uint _36; - InterlockedAnd(uImage[int2(1, 5)], 1u, _36); - uint _38; - InterlockedMin(uImage[int2(1, 5)], 1u, _38); - uint _40; - InterlockedMax(uImage[int2(1, 5)], 1u, _40); - uint _44; - InterlockedCompareExchange(uImage[int2(1, 5)], 10u, 2u, _44); - int _47; - InterlockedAdd(iImage[int2(1, 6)], 1, _47); - int _49; - InterlockedOr(iImage[int2(1, 6)], 1, _49); - int _51; - InterlockedXor(iImage[int2(1, 6)], 1, _51); - int _53; - InterlockedAnd(iImage[int2(1, 6)], 1, _53); - int _55; - InterlockedMin(iImage[int2(1, 6)], 1, _55); - int _57; - InterlockedMax(iImage[int2(1, 6)], 1, _57); - int _61; - InterlockedCompareExchange(iImage[int2(1, 5)], 10, 2, _61); - uint _68; - ssbo.InterlockedAdd(0, 1u, _68); - uint _70; - ssbo.InterlockedOr(0, 1u, _70); - uint _72; - ssbo.InterlockedXor(0, 1u, _72); - uint _74; - ssbo.InterlockedAnd(0, 1u, _74); - uint _76; - ssbo.InterlockedMin(0, 1u, _76); - uint _78; - ssbo.InterlockedMax(0, 1u, _78); - uint _80; - ssbo.InterlockedExchange(0, 1u, _80); - uint _82; - ssbo.InterlockedCompareExchange(0, 10u, 2u, _82); - int _85; - ssbo.InterlockedAdd(4, 1, _85); - int _87; - ssbo.InterlockedOr(4, 1, _87); - int _89; - ssbo.InterlockedXor(4, 1, _89); - int _91; - ssbo.InterlockedAnd(4, 1, _91); - int _93; - ssbo.InterlockedMin(4, 1, _93); - int _95; - ssbo.InterlockedMax(4, 1, _95); - int _97; - ssbo.InterlockedExchange(4, 1, _97); - int _99; - ssbo.InterlockedCompareExchange(4, 10, 2, _99); - int _102; - InterlockedAdd(int_atomic, 10, _102); - uint _105; - InterlockedAdd(uint_atomic, 10u, _105); - int _110; - InterlockedAdd(int_atomic_array[0], 10, _110); - uint _115; - InterlockedAdd(uint_atomic_array[0], 10u, _115); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/barriers.comp b/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/barriers.comp deleted file mode 100644 index 7ac2a656f0..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/barriers.comp +++ /dev/null @@ -1,26 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(4u, 1u, 1u); - -void comp_main() -{ - GroupMemoryBarrier(); - AllMemoryBarrier(); - DeviceMemoryBarrier(); - DeviceMemoryBarrier(); - AllMemoryBarrier(); - GroupMemoryBarrierWithGroupSync(); - AllMemoryBarrier(); - GroupMemoryBarrierWithGroupSync(); - DeviceMemoryBarrier(); - GroupMemoryBarrierWithGroupSync(); - DeviceMemoryBarrier(); - GroupMemoryBarrierWithGroupSync(); - AllMemoryBarrier(); - GroupMemoryBarrierWithGroupSync(); - GroupMemoryBarrierWithGroupSync(); -} - -[numthreads(4, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/builtins.comp b/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/builtins.comp deleted file mode 100644 index 7f88aa798f..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/builtins.comp +++ /dev/null @@ -1,11 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(8u, 4u, 2u); - -void comp_main() -{ -} - -[numthreads(8, 4, 2)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/composite-array-initialization.comp b/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/composite-array-initialization.comp deleted file mode 100644 index e39f4d0683..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/composite-array-initialization.comp +++ /dev/null @@ -1,50 +0,0 @@ -struct Data -{ - float a; - float b; -}; - -#ifndef SPIRV_CROSS_CONSTANT_ID_0 -#define SPIRV_CROSS_CONSTANT_ID_0 4.0f -#endif -static const float X = SPIRV_CROSS_CONSTANT_ID_0; - -static const uint3 gl_WorkGroupSize = uint3(2u, 1u, 1u); - -static const Data _21 = { 1.0f, 2.0f }; -static const Data _24 = { 3.0f, 4.0f }; -static const Data _25[2] = { { 1.0f, 2.0f }, { 3.0f, 4.0f } }; -static const Data _30 = { 3.0f, 5.0f }; - -RWByteAddressBuffer _61 : register(u0); - -static uint3 gl_WorkGroupID; -static uint3 gl_LocalInvocationID; -static uint gl_LocalInvocationIndex; -struct SPIRV_Cross_Input -{ - uint3 gl_WorkGroupID : SV_GroupID; - uint3 gl_LocalInvocationID : SV_GroupThreadID; - uint gl_LocalInvocationIndex : SV_GroupIndex; -}; - -void comp_main() -{ - Data _28 = { X, 2.0f }; - Data _31[2] = { _28, _30 }; - Data data2[2] = _31; - if (gl_LocalInvocationIndex == 0u) - { - _61.Store(gl_WorkGroupID.x * 8 + 0, asuint(_25[gl_LocalInvocationID.x].a + data2[gl_LocalInvocationID.x].a)); - _61.Store(gl_WorkGroupID.x * 8 + 4, asuint(_25[gl_LocalInvocationID.x].b + data2[gl_LocalInvocationID.x].b)); - } -} - -[numthreads(2, 1, 1)] -void main(SPIRV_Cross_Input stage_input) -{ - gl_WorkGroupID = stage_input.gl_WorkGroupID; - gl_LocalInvocationID = stage_input.gl_LocalInvocationID; - gl_LocalInvocationIndex = stage_input.gl_LocalInvocationIndex; - comp_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/globallycoherent.comp b/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/globallycoherent.comp deleted file mode 100644 index b5f1e377ca..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/globallycoherent.comp +++ /dev/null @@ -1,18 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -globallycoherent RWByteAddressBuffer _29 : register(u3); -ByteAddressBuffer _33 : register(t2); -RWTexture2D uImageIn : register(u0); -globallycoherent RWTexture2D uImageOut : register(u1); - -void comp_main() -{ - uImageOut[int2(9, 7)] = uImageIn[int2(9, 7)].x; - _29.Store(0, asuint(asfloat(_33.Load(0)))); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/image.comp b/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/image.comp deleted file mode 100644 index e2f6b0a340..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/image.comp +++ /dev/null @@ -1,66 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -RWTexture2D uImageInF : register(u0); -RWTexture2D uImageOutF : register(u1); -RWTexture2D uImageInI : register(u2); -RWTexture2D uImageOutI : register(u3); -RWTexture2D uImageInU : register(u4); -RWTexture2D uImageOutU : register(u5); -RWBuffer uImageInBuffer : register(u6); -RWBuffer uImageOutBuffer : register(u7); -RWTexture2D uImageInF2 : register(u8); -RWTexture2D uImageOutF2 : register(u9); -RWTexture2D uImageInI2 : register(u10); -RWTexture2D uImageOutI2 : register(u11); -RWTexture2D uImageInU2 : register(u12); -RWTexture2D uImageOutU2 : register(u13); -RWBuffer uImageInBuffer2 : register(u14); -RWBuffer uImageOutBuffer2 : register(u15); -RWTexture2D uImageInF4 : register(u16); -RWTexture2D uImageOutF4 : register(u17); -RWTexture2D uImageInI4 : register(u18); -RWTexture2D uImageOutI4 : register(u19); -RWTexture2D uImageInU4 : register(u20); -RWTexture2D uImageOutU4 : register(u21); -RWBuffer uImageInBuffer4 : register(u22); -RWBuffer uImageOutBuffer4 : register(u23); -RWTexture2D uImageNoFmtF : register(u24); -RWTexture2D uImageNoFmtU : register(u25); -RWTexture2D uImageNoFmtI : register(u26); - -static uint3 gl_GlobalInvocationID; -struct SPIRV_Cross_Input -{ - uint3 gl_GlobalInvocationID : SV_DispatchThreadID; -}; - -void comp_main() -{ - int2 _23 = int2(gl_GlobalInvocationID.xy); - uImageOutF[_23] = uImageInF[_23].x; - uImageOutI[_23] = uImageInI[_23].x; - uImageOutU[_23] = uImageInU[_23].x; - int _74 = int(gl_GlobalInvocationID.x); - uImageOutBuffer[_74] = uImageInBuffer[_74].x; - uImageOutF2[_23] = uImageInF2[_23].xy; - uImageOutI2[_23] = uImageInI2[_23].xy; - uImageOutU2[_23] = uImageInU2[_23].xy; - float4 _135 = uImageInBuffer2[_74].xyyy; - uImageOutBuffer2[_74] = _135.xy; - uImageOutF4[_23] = uImageInF4[_23]; - int4 _165 = uImageInI4[_23]; - uImageOutI4[_23] = _165; - uint4 _180 = uImageInU4[_23]; - uImageOutU4[_23] = _180; - uImageOutBuffer4[_74] = uImageInBuffer4[_74]; - uImageNoFmtF[_23] = _135; - uImageNoFmtU[_23] = _180; - uImageNoFmtI[_23] = _165; -} - -[numthreads(1, 1, 1)] -void main(SPIRV_Cross_Input stage_input) -{ - gl_GlobalInvocationID = stage_input.gl_GlobalInvocationID; - comp_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/image.nonwritable-uav-texture.comp b/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/image.nonwritable-uav-texture.comp deleted file mode 100644 index 6c4a213995..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/image.nonwritable-uav-texture.comp +++ /dev/null @@ -1,66 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -Texture2D uImageInF : register(t0); -RWTexture2D uImageOutF : register(u1); -Texture2D uImageInI : register(t2); -RWTexture2D uImageOutI : register(u3); -Texture2D uImageInU : register(t4); -RWTexture2D uImageOutU : register(u5); -Buffer uImageInBuffer : register(t6); -RWBuffer uImageOutBuffer : register(u7); -Texture2D uImageInF2 : register(t8); -RWTexture2D uImageOutF2 : register(u9); -Texture2D uImageInI2 : register(t10); -RWTexture2D uImageOutI2 : register(u11); -Texture2D uImageInU2 : register(t12); -RWTexture2D uImageOutU2 : register(u13); -Buffer uImageInBuffer2 : register(t14); -RWBuffer uImageOutBuffer2 : register(u15); -Texture2D uImageInF4 : register(t16); -RWTexture2D uImageOutF4 : register(u17); -Texture2D uImageInI4 : register(t18); -RWTexture2D uImageOutI4 : register(u19); -Texture2D uImageInU4 : register(t20); -RWTexture2D uImageOutU4 : register(u21); -Buffer uImageInBuffer4 : register(t22); -RWBuffer uImageOutBuffer4 : register(u23); -RWTexture2D uImageNoFmtF : register(u24); -RWTexture2D uImageNoFmtU : register(u25); -RWTexture2D uImageNoFmtI : register(u26); - -static uint3 gl_GlobalInvocationID; -struct SPIRV_Cross_Input -{ - uint3 gl_GlobalInvocationID : SV_DispatchThreadID; -}; - -void comp_main() -{ - int2 _23 = int2(gl_GlobalInvocationID.xy); - uImageOutF[_23] = uImageInF[_23].x; - uImageOutI[_23] = uImageInI[_23].x; - uImageOutU[_23] = uImageInU[_23].x; - int _74 = int(gl_GlobalInvocationID.x); - uImageOutBuffer[_74] = uImageInBuffer[_74].x; - uImageOutF2[_23] = uImageInF2[_23].xy; - uImageOutI2[_23] = uImageInI2[_23].xy; - uImageOutU2[_23] = uImageInU2[_23].xy; - float4 _135 = uImageInBuffer2[_74]; - uImageOutBuffer2[_74] = _135.xy; - uImageOutF4[_23] = uImageInF4[_23]; - int4 _165 = uImageInI4[_23]; - uImageOutI4[_23] = _165; - uint4 _180 = uImageInU4[_23]; - uImageOutU4[_23] = _180; - uImageOutBuffer4[_74] = uImageInBuffer4[_74]; - uImageNoFmtF[_23] = _135; - uImageNoFmtU[_23] = _180; - uImageNoFmtI[_23] = _165; -} - -[numthreads(1, 1, 1)] -void main(SPIRV_Cross_Input stage_input) -{ - gl_GlobalInvocationID = stage_input.gl_GlobalInvocationID; - comp_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/inverse.comp b/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/inverse.comp deleted file mode 100644 index 698f647cec..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/inverse.comp +++ /dev/null @@ -1,124 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -RWByteAddressBuffer _15 : register(u0); -ByteAddressBuffer _20 : register(t1); - -// Returns the inverse of a matrix, by using the algorithm of calculating the classical -// adjoint and dividing by the determinant. The contents of the matrix are changed. -float2x2 spvInverse(float2x2 m) -{ - float2x2 adj; // The adjoint matrix (inverse after dividing by determinant) - - // Create the transpose of the cofactors, as the classical adjoint of the matrix. - adj[0][0] = m[1][1]; - adj[0][1] = -m[0][1]; - - adj[1][0] = -m[1][0]; - adj[1][1] = m[0][0]; - - // Calculate the determinant as a combination of the cofactors of the first row. - float det = (adj[0][0] * m[0][0]) + (adj[0][1] * m[1][0]); - - // Divide the classical adjoint matrix by the determinant. - // If determinant is zero, matrix is not invertable, so leave it unchanged. - return (det != 0.0f) ? (adj * (1.0f / det)) : m; -} - -// Returns the determinant of a 2x2 matrix. -float spvDet2x2(float a1, float a2, float b1, float b2) -{ - return a1 * b2 - b1 * a2; -} - -// Returns the inverse of a matrix, by using the algorithm of calculating the classical -// adjoint and dividing by the determinant. The contents of the matrix are changed. -float3x3 spvInverse(float3x3 m) -{ - float3x3 adj; // The adjoint matrix (inverse after dividing by determinant) - - // Create the transpose of the cofactors, as the classical adjoint of the matrix. - adj[0][0] = spvDet2x2(m[1][1], m[1][2], m[2][1], m[2][2]); - adj[0][1] = -spvDet2x2(m[0][1], m[0][2], m[2][1], m[2][2]); - adj[0][2] = spvDet2x2(m[0][1], m[0][2], m[1][1], m[1][2]); - - adj[1][0] = -spvDet2x2(m[1][0], m[1][2], m[2][0], m[2][2]); - adj[1][1] = spvDet2x2(m[0][0], m[0][2], m[2][0], m[2][2]); - adj[1][2] = -spvDet2x2(m[0][0], m[0][2], m[1][0], m[1][2]); - - adj[2][0] = spvDet2x2(m[1][0], m[1][1], m[2][0], m[2][1]); - adj[2][1] = -spvDet2x2(m[0][0], m[0][1], m[2][0], m[2][1]); - adj[2][2] = spvDet2x2(m[0][0], m[0][1], m[1][0], m[1][1]); - - // Calculate the determinant as a combination of the cofactors of the first row. - float det = (adj[0][0] * m[0][0]) + (adj[0][1] * m[1][0]) + (adj[0][2] * m[2][0]); - - // Divide the classical adjoint matrix by the determinant. - // If determinant is zero, matrix is not invertable, so leave it unchanged. - return (det != 0.0f) ? (adj * (1.0f / det)) : m; -} - -// Returns the determinant of a 3x3 matrix. -float spvDet3x3(float a1, float a2, float a3, float b1, float b2, float b3, float c1, float c2, float c3) -{ - return a1 * spvDet2x2(b2, b3, c2, c3) - b1 * spvDet2x2(a2, a3, c2, c3) + c1 * spvDet2x2(a2, a3, b2, b3); -} - -// Returns the inverse of a matrix, by using the algorithm of calculating the classical -// adjoint and dividing by the determinant. The contents of the matrix are changed. -float4x4 spvInverse(float4x4 m) -{ - float4x4 adj; // The adjoint matrix (inverse after dividing by determinant) - - // Create the transpose of the cofactors, as the classical adjoint of the matrix. - adj[0][0] = spvDet3x3(m[1][1], m[1][2], m[1][3], m[2][1], m[2][2], m[2][3], m[3][1], m[3][2], m[3][3]); - adj[0][1] = -spvDet3x3(m[0][1], m[0][2], m[0][3], m[2][1], m[2][2], m[2][3], m[3][1], m[3][2], m[3][3]); - adj[0][2] = spvDet3x3(m[0][1], m[0][2], m[0][3], m[1][1], m[1][2], m[1][3], m[3][1], m[3][2], m[3][3]); - adj[0][3] = -spvDet3x3(m[0][1], m[0][2], m[0][3], m[1][1], m[1][2], m[1][3], m[2][1], m[2][2], m[2][3]); - - adj[1][0] = -spvDet3x3(m[1][0], m[1][2], m[1][3], m[2][0], m[2][2], m[2][3], m[3][0], m[3][2], m[3][3]); - adj[1][1] = spvDet3x3(m[0][0], m[0][2], m[0][3], m[2][0], m[2][2], m[2][3], m[3][0], m[3][2], m[3][3]); - adj[1][2] = -spvDet3x3(m[0][0], m[0][2], m[0][3], m[1][0], m[1][2], m[1][3], m[3][0], m[3][2], m[3][3]); - adj[1][3] = spvDet3x3(m[0][0], m[0][2], m[0][3], m[1][0], m[1][2], m[1][3], m[2][0], m[2][2], m[2][3]); - - adj[2][0] = spvDet3x3(m[1][0], m[1][1], m[1][3], m[2][0], m[2][1], m[2][3], m[3][0], m[3][1], m[3][3]); - adj[2][1] = -spvDet3x3(m[0][0], m[0][1], m[0][3], m[2][0], m[2][1], m[2][3], m[3][0], m[3][1], m[3][3]); - adj[2][2] = spvDet3x3(m[0][0], m[0][1], m[0][3], m[1][0], m[1][1], m[1][3], m[3][0], m[3][1], m[3][3]); - adj[2][3] = -spvDet3x3(m[0][0], m[0][1], m[0][3], m[1][0], m[1][1], m[1][3], m[2][0], m[2][1], m[2][3]); - - adj[3][0] = -spvDet3x3(m[1][0], m[1][1], m[1][2], m[2][0], m[2][1], m[2][2], m[3][0], m[3][1], m[3][2]); - adj[3][1] = spvDet3x3(m[0][0], m[0][1], m[0][2], m[2][0], m[2][1], m[2][2], m[3][0], m[3][1], m[3][2]); - adj[3][2] = -spvDet3x3(m[0][0], m[0][1], m[0][2], m[1][0], m[1][1], m[1][2], m[3][0], m[3][1], m[3][2]); - adj[3][3] = spvDet3x3(m[0][0], m[0][1], m[0][2], m[1][0], m[1][1], m[1][2], m[2][0], m[2][1], m[2][2]); - - // Calculate the determinant as a combination of the cofactors of the first row. - float det = (adj[0][0] * m[0][0]) + (adj[0][1] * m[1][0]) + (adj[0][2] * m[2][0]) + (adj[0][3] * m[3][0]); - - // Divide the classical adjoint matrix by the determinant. - // If determinant is zero, matrix is not invertable, so leave it unchanged. - return (det != 0.0f) ? (adj * (1.0f / det)) : m; -} - -void comp_main() -{ - float2x2 _23 = asfloat(uint2x2(_20.Load2(0), _20.Load2(8))); - float2x2 _24 = spvInverse(_23); - _15.Store2(0, asuint(_24[0])); - _15.Store2(8, asuint(_24[1])); - float3x3 _29 = asfloat(uint3x3(_20.Load3(16), _20.Load3(32), _20.Load3(48))); - float3x3 _30 = spvInverse(_29); - _15.Store3(16, asuint(_30[0])); - _15.Store3(32, asuint(_30[1])); - _15.Store3(48, asuint(_30[2])); - float4x4 _35 = asfloat(uint4x4(_20.Load4(64), _20.Load4(80), _20.Load4(96), _20.Load4(112))); - float4x4 _36 = spvInverse(_35); - _15.Store4(64, asuint(_36[0])); - _15.Store4(80, asuint(_36[1])); - _15.Store4(96, asuint(_36[2])); - _15.Store4(112, asuint(_36[3])); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/num-workgroups-alone.comp b/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/num-workgroups-alone.comp deleted file mode 100644 index dc87dc84f8..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/num-workgroups-alone.comp +++ /dev/null @@ -1,19 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -RWByteAddressBuffer _10 : register(u0); -cbuffer SPIRV_Cross_NumWorkgroups : register(b0) -{ - uint3 SPIRV_Cross_NumWorkgroups_1_count : packoffset(c0); -}; - - -void comp_main() -{ - _10.Store3(0, SPIRV_Cross_NumWorkgroups_1_count); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/num-workgroups-with-builtins.comp b/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/num-workgroups-with-builtins.comp deleted file mode 100644 index 2e2ad55fdd..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/num-workgroups-with-builtins.comp +++ /dev/null @@ -1,26 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -RWByteAddressBuffer _10 : register(u0); -cbuffer SPIRV_Cross_NumWorkgroups : register(b0) -{ - uint3 SPIRV_Cross_NumWorkgroups_1_count : packoffset(c0); -}; - - -static uint3 gl_WorkGroupID; -struct SPIRV_Cross_Input -{ - uint3 gl_WorkGroupID : SV_GroupID; -}; - -void comp_main() -{ - _10.Store3(0, SPIRV_Cross_NumWorkgroups_1_count + gl_WorkGroupID); -} - -[numthreads(1, 1, 1)] -void main(SPIRV_Cross_Input stage_input) -{ - gl_WorkGroupID = stage_input.gl_WorkGroupID; - comp_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/outer-product.comp b/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/outer-product.comp deleted file mode 100644 index e58c02fe0b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/outer-product.comp +++ /dev/null @@ -1,50 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -RWByteAddressBuffer _21 : register(u0); -ByteAddressBuffer _26 : register(t1); - -void comp_main() -{ - float2x2 _32 = float2x2(asfloat(_26.Load2(0)) * asfloat(_26.Load2(0)).x, asfloat(_26.Load2(0)) * asfloat(_26.Load2(0)).y); - _21.Store2(0, asuint(_32[0])); - _21.Store2(8, asuint(_32[1])); - float2x3 _41 = float2x3(asfloat(_26.Load3(16)) * asfloat(_26.Load2(0)).x, asfloat(_26.Load3(16)) * asfloat(_26.Load2(0)).y); - _21.Store3(16, asuint(_41[0])); - _21.Store3(32, asuint(_41[1])); - float2x4 _50 = float2x4(asfloat(_26.Load4(32)) * asfloat(_26.Load2(0)).x, asfloat(_26.Load4(32)) * asfloat(_26.Load2(0)).y); - _21.Store4(48, asuint(_50[0])); - _21.Store4(64, asuint(_50[1])); - float3x2 _58 = float3x2(asfloat(_26.Load2(0)) * asfloat(_26.Load3(16)).x, asfloat(_26.Load2(0)) * asfloat(_26.Load3(16)).y, asfloat(_26.Load2(0)) * asfloat(_26.Load3(16)).z); - _21.Store2(80, asuint(_58[0])); - _21.Store2(88, asuint(_58[1])); - _21.Store2(96, asuint(_58[2])); - float3x3 _66 = float3x3(asfloat(_26.Load3(16)) * asfloat(_26.Load3(16)).x, asfloat(_26.Load3(16)) * asfloat(_26.Load3(16)).y, asfloat(_26.Load3(16)) * asfloat(_26.Load3(16)).z); - _21.Store3(112, asuint(_66[0])); - _21.Store3(128, asuint(_66[1])); - _21.Store3(144, asuint(_66[2])); - float3x4 _74 = float3x4(asfloat(_26.Load4(32)) * asfloat(_26.Load3(16)).x, asfloat(_26.Load4(32)) * asfloat(_26.Load3(16)).y, asfloat(_26.Load4(32)) * asfloat(_26.Load3(16)).z); - _21.Store4(160, asuint(_74[0])); - _21.Store4(176, asuint(_74[1])); - _21.Store4(192, asuint(_74[2])); - float4x2 _82 = float4x2(asfloat(_26.Load2(0)) * asfloat(_26.Load4(32)).x, asfloat(_26.Load2(0)) * asfloat(_26.Load4(32)).y, asfloat(_26.Load2(0)) * asfloat(_26.Load4(32)).z, asfloat(_26.Load2(0)) * asfloat(_26.Load4(32)).w); - _21.Store2(208, asuint(_82[0])); - _21.Store2(216, asuint(_82[1])); - _21.Store2(224, asuint(_82[2])); - _21.Store2(232, asuint(_82[3])); - float4x3 _90 = float4x3(asfloat(_26.Load3(16)) * asfloat(_26.Load4(32)).x, asfloat(_26.Load3(16)) * asfloat(_26.Load4(32)).y, asfloat(_26.Load3(16)) * asfloat(_26.Load4(32)).z, asfloat(_26.Load3(16)) * asfloat(_26.Load4(32)).w); - _21.Store3(240, asuint(_90[0])); - _21.Store3(256, asuint(_90[1])); - _21.Store3(272, asuint(_90[2])); - _21.Store3(288, asuint(_90[3])); - float4x4 _98 = float4x4(asfloat(_26.Load4(32)) * asfloat(_26.Load4(32)).x, asfloat(_26.Load4(32)) * asfloat(_26.Load4(32)).y, asfloat(_26.Load4(32)) * asfloat(_26.Load4(32)).z, asfloat(_26.Load4(32)) * asfloat(_26.Load4(32)).w); - _21.Store4(304, asuint(_98[0])); - _21.Store4(320, asuint(_98[1])); - _21.Store4(336, asuint(_98[2])); - _21.Store4(352, asuint(_98[3])); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/rmw-matrix.comp b/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/rmw-matrix.comp deleted file mode 100644 index 30ac03f84f..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/rmw-matrix.comp +++ /dev/null @@ -1,22 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -RWByteAddressBuffer _11 : register(u0); - -void comp_main() -{ - _11.Store(0, asuint(asfloat(_11.Load(0)) * asfloat(_11.Load(96)))); - _11.Store4(16, asuint(asfloat(_11.Load4(16)) * asfloat(_11.Load4(112)))); - float4x4 _35 = asfloat(uint4x4(_11.Load4(128), _11.Load4(144), _11.Load4(160), _11.Load4(176))); - float4x4 _37 = asfloat(uint4x4(_11.Load4(32), _11.Load4(48), _11.Load4(64), _11.Load4(80))); - float4x4 _38 = mul(_35, _37); - _11.Store4(32, asuint(_38[0])); - _11.Store4(48, asuint(_38[1])); - _11.Store4(64, asuint(_38[2])); - _11.Store4(80, asuint(_38[3])); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/rwbuffer-matrix.comp b/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/rwbuffer-matrix.comp deleted file mode 100644 index 09cbd2f49b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/rwbuffer-matrix.comp +++ /dev/null @@ -1,93 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -RWByteAddressBuffer _28 : register(u0); -cbuffer UBO : register(b1) -{ - int _68_index0 : packoffset(c0); - int _68_index1 : packoffset(c0.y); -}; - - -void comp_main() -{ - float4x4 _258 = asfloat(uint4x4(_28.Load(64), _28.Load(80), _28.Load(96), _28.Load(112), _28.Load(68), _28.Load(84), _28.Load(100), _28.Load(116), _28.Load(72), _28.Load(88), _28.Load(104), _28.Load(120), _28.Load(76), _28.Load(92), _28.Load(108), _28.Load(124))); - _28.Store4(0, asuint(_258[0])); - _28.Store4(16, asuint(_258[1])); - _28.Store4(32, asuint(_258[2])); - _28.Store4(48, asuint(_258[3])); - float2x2 _261 = asfloat(uint2x2(_28.Load(144), _28.Load(152), _28.Load(148), _28.Load(156))); - _28.Store2(128, asuint(_261[0])); - _28.Store2(136, asuint(_261[1])); - float2x3 _264 = asfloat(uint2x3(_28.Load(192), _28.Load(200), _28.Load(208), _28.Load(196), _28.Load(204), _28.Load(212))); - _28.Store3(160, asuint(_264[0])); - _28.Store3(176, asuint(_264[1])); - float3x2 _267 = asfloat(uint3x2(_28.Load(240), _28.Load(256), _28.Load(244), _28.Load(260), _28.Load(248), _28.Load(264))); - _28.Store2(216, asuint(_267[0])); - _28.Store2(224, asuint(_267[1])); - _28.Store2(232, asuint(_267[2])); - float4x4 _271 = asfloat(uint4x4(_28.Load4(0), _28.Load4(16), _28.Load4(32), _28.Load4(48))); - _28.Store(64, asuint(_271[0].x)); - _28.Store(68, asuint(_271[1].x)); - _28.Store(72, asuint(_271[2].x)); - _28.Store(76, asuint(_271[3].x)); - _28.Store(80, asuint(_271[0].y)); - _28.Store(84, asuint(_271[1].y)); - _28.Store(88, asuint(_271[2].y)); - _28.Store(92, asuint(_271[3].y)); - _28.Store(96, asuint(_271[0].z)); - _28.Store(100, asuint(_271[1].z)); - _28.Store(104, asuint(_271[2].z)); - _28.Store(108, asuint(_271[3].z)); - _28.Store(112, asuint(_271[0].w)); - _28.Store(116, asuint(_271[1].w)); - _28.Store(120, asuint(_271[2].w)); - _28.Store(124, asuint(_271[3].w)); - float2x2 _274 = asfloat(uint2x2(_28.Load2(128), _28.Load2(136))); - _28.Store(144, asuint(_274[0].x)); - _28.Store(148, asuint(_274[1].x)); - _28.Store(152, asuint(_274[0].y)); - _28.Store(156, asuint(_274[1].y)); - float2x3 _277 = asfloat(uint2x3(_28.Load3(160), _28.Load3(176))); - _28.Store(192, asuint(_277[0].x)); - _28.Store(196, asuint(_277[1].x)); - _28.Store(200, asuint(_277[0].y)); - _28.Store(204, asuint(_277[1].y)); - _28.Store(208, asuint(_277[0].z)); - _28.Store(212, asuint(_277[1].z)); - float3x2 _280 = asfloat(uint3x2(_28.Load2(216), _28.Load2(224), _28.Load2(232))); - _28.Store(240, asuint(_280[0].x)); - _28.Store(244, asuint(_280[1].x)); - _28.Store(248, asuint(_280[2].x)); - _28.Store(256, asuint(_280[0].y)); - _28.Store(260, asuint(_280[1].y)); - _28.Store(264, asuint(_280[2].y)); - _28.Store(_68_index0 * 4 + _68_index1 * 16 + 64, asuint(1.0f)); - _28.Store(_68_index0 * 4 + _68_index1 * 8 + 144, asuint(2.0f)); - _28.Store(_68_index0 * 4 + _68_index1 * 8 + 192, asuint(3.0f)); - _28.Store(_68_index0 * 4 + _68_index1 * 16 + 240, asuint(4.0f)); - _28.Store(_68_index0 * 4 + 64, asuint(1.0f.x)); - _28.Store(_68_index0 * 4 + 80, asuint(1.0f.xxxx.y)); - _28.Store(_68_index0 * 4 + 96, asuint(1.0f.xxxx.z)); - _28.Store(_68_index0 * 4 + 112, asuint(1.0f.xxxx.w)); - _28.Store(_68_index0 * 4 + 144, asuint(2.0f.x)); - _28.Store(_68_index0 * 4 + 152, asuint(2.0f.xx.y)); - _28.Store(_68_index0 * 4 + 192, asuint(3.0f.x)); - _28.Store(_68_index0 * 4 + 200, asuint(3.0f.xxx.y)); - _28.Store(_68_index0 * 4 + 208, asuint(3.0f.xxx.z)); - _28.Store(_68_index0 * 4 + 240, asuint(4.0f.x)); - _28.Store(_68_index0 * 4 + 256, asuint(4.0f.xx.y)); - _28.Store(_68_index0 * 16 + _68_index1 * 4 + 0, asuint(1.0f)); - _28.Store(_68_index0 * 8 + _68_index1 * 4 + 128, asuint(2.0f)); - _28.Store(_68_index0 * 16 + _68_index1 * 4 + 160, asuint(3.0f)); - _28.Store(_68_index0 * 8 + _68_index1 * 4 + 216, asuint(4.0f)); - _28.Store4(_68_index0 * 16 + 0, asuint(1.0f.xxxx)); - _28.Store2(_68_index0 * 8 + 128, asuint(2.0f.xx)); - _28.Store3(_68_index0 * 16 + 160, asuint(3.0f.xxx)); - _28.Store2(_68_index0 * 8 + 216, asuint(4.0f.xx)); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/scalar-std450-distance-length-normalize.comp b/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/scalar-std450-distance-length-normalize.comp deleted file mode 100644 index db2bbe9698..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/scalar-std450-distance-length-normalize.comp +++ /dev/null @@ -1,16 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -RWByteAddressBuffer _9 : register(u0); - -void comp_main() -{ - _9.Store(8, asuint(distance(asfloat(_9.Load(0)), asfloat(_9.Load(4))))); - _9.Store(12, asuint(length(asfloat(_9.Load(0))))); - _9.Store(16, asuint(sign(asfloat(_9.Load(0))))); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/shared.comp b/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/shared.comp deleted file mode 100644 index 9831302afd..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/shared.comp +++ /dev/null @@ -1,29 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(4u, 1u, 1u); - -ByteAddressBuffer _22 : register(t0); -RWByteAddressBuffer _44 : register(u1); - -static uint3 gl_GlobalInvocationID; -static uint gl_LocalInvocationIndex; -struct SPIRV_Cross_Input -{ - uint3 gl_GlobalInvocationID : SV_DispatchThreadID; - uint gl_LocalInvocationIndex : SV_GroupIndex; -}; - -groupshared float sShared[4]; - -void comp_main() -{ - sShared[gl_LocalInvocationIndex] = asfloat(_22.Load(gl_GlobalInvocationID.x * 4 + 0)); - GroupMemoryBarrierWithGroupSync(); - _44.Store(gl_GlobalInvocationID.x * 4 + 0, asuint(sShared[3u - gl_LocalInvocationIndex])); -} - -[numthreads(4, 1, 1)] -void main(SPIRV_Cross_Input stage_input) -{ - gl_GlobalInvocationID = stage_input.gl_GlobalInvocationID; - gl_LocalInvocationIndex = stage_input.gl_LocalInvocationIndex; - comp_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/spec-constant-op-member-array.comp b/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/spec-constant-op-member-array.comp deleted file mode 100644 index 4e7c5e6167..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/spec-constant-op-member-array.comp +++ /dev/null @@ -1,51 +0,0 @@ -#ifndef SPIRV_CROSS_CONSTANT_ID_0 -#define SPIRV_CROSS_CONSTANT_ID_0 100 -#endif -static const int a = SPIRV_CROSS_CONSTANT_ID_0; -#ifndef SPIRV_CROSS_CONSTANT_ID_1 -#define SPIRV_CROSS_CONSTANT_ID_1 200 -#endif -static const int b = SPIRV_CROSS_CONSTANT_ID_1; - -struct A -{ - int member0[a]; - int member1[b]; -}; - -struct B -{ - int member0[b]; - int member1[a]; -}; - -#ifndef SPIRV_CROSS_CONSTANT_ID_2 -#define SPIRV_CROSS_CONSTANT_ID_2 300 -#endif -static const int c = SPIRV_CROSS_CONSTANT_ID_2; -static const int d = (c + 50); -#ifndef SPIRV_CROSS_CONSTANT_ID_3 -#define SPIRV_CROSS_CONSTANT_ID_3 400 -#endif -static const int e = SPIRV_CROSS_CONSTANT_ID_3; -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -RWByteAddressBuffer _22 : register(u0); - -static uint3 gl_GlobalInvocationID; -struct SPIRV_Cross_Input -{ - uint3 gl_GlobalInvocationID : SV_DispatchThreadID; -}; - -void comp_main() -{ - _22.Store(gl_GlobalInvocationID.x * 4 + 2800, uint(int(_22.Load(gl_GlobalInvocationID.x * 4 + 2800)) + (int(_22.Load(gl_GlobalInvocationID.x * 4 + 2400)) + e))); -} - -[numthreads(1, 1, 1)] -void main(SPIRV_Cross_Input stage_input) -{ - gl_GlobalInvocationID = stage_input.gl_GlobalInvocationID; - comp_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/spec-constant-work-group-size.comp b/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/spec-constant-work-group-size.comp deleted file mode 100644 index 55ebf32bb6..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/spec-constant-work-group-size.comp +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef SPIRV_CROSS_CONSTANT_ID_1 -#define SPIRV_CROSS_CONSTANT_ID_1 2 -#endif -static const int b = SPIRV_CROSS_CONSTANT_ID_1; -#ifndef SPIRV_CROSS_CONSTANT_ID_0 -#define SPIRV_CROSS_CONSTANT_ID_0 1 -#endif -static const int a = SPIRV_CROSS_CONSTANT_ID_0; -static const uint _26 = (uint(a) + 0u); -#ifndef SPIRV_CROSS_CONSTANT_ID_10 -#define SPIRV_CROSS_CONSTANT_ID_10 1u -#endif -static const uint _27 = SPIRV_CROSS_CONSTANT_ID_10; -static const uint3 gl_WorkGroupSize = uint3(_27, 20u, 1u); -static const uint _32 = gl_WorkGroupSize.x; -static const uint _33 = (_26 + _32); -static const uint _34 = gl_WorkGroupSize.y; -static const uint _35 = (_33 + _34); -static const int _42 = (1 - a); - -RWByteAddressBuffer _23 : register(u0); - -static uint3 gl_GlobalInvocationID; -struct SPIRV_Cross_Input -{ - uint3 gl_GlobalInvocationID : SV_DispatchThreadID; -}; - -void comp_main() -{ - int spec_const_array_size[b]; - spec_const_array_size[0] = 10; - spec_const_array_size[1] = 40; - spec_const_array_size[a] = a; - _23.Store((_35 + gl_GlobalInvocationID.x) * 4 + 0, uint(b + spec_const_array_size[_42])); -} - -[numthreads(SPIRV_CROSS_CONSTANT_ID_10, 20, 1)] -void main(SPIRV_Cross_Input stage_input) -{ - gl_GlobalInvocationID = stage_input.gl_GlobalInvocationID; - comp_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/ssbo-array-length.comp b/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/ssbo-array-length.comp deleted file mode 100644 index 82657cacfc..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/ssbo-array-length.comp +++ /dev/null @@ -1,17 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -RWByteAddressBuffer _11 : register(u1); - -void comp_main() -{ - uint _14; - _11.GetDimensions(_14); - _14 = (_14 - 16) / 16; - _11.Store(0, uint(int(_14))); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/ssbo-array.comp b/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/ssbo-array.comp deleted file mode 100644 index ee202a2225..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/comp/ssbo-array.comp +++ /dev/null @@ -1,11 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -void comp_main() -{ -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/array-lut-no-loop-variable.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/array-lut-no-loop-variable.frag deleted file mode 100644 index 3adf7d9852..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/array-lut-no-loop-variable.frag +++ /dev/null @@ -1,34 +0,0 @@ -static const float _17[5] = { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f }; - -static float4 FragColor; -static float4 v0; - -struct SPIRV_Cross_Input -{ - float4 v0 : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - for (int _46 = 0; _46 < 4; ) - { - int _33 = _46 + 1; - FragColor += _17[_33].xxxx; - _46 = _33; - continue; - } -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - v0 = stage_input.v0; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/basic-color-3comp.sm30.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/basic-color-3comp.sm30.frag deleted file mode 100644 index d3697d650f..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/basic-color-3comp.sm30.frag +++ /dev/null @@ -1,26 +0,0 @@ -static float3 FragColor; -static float4 vColor; - -struct SPIRV_Cross_Input -{ - float4 vColor : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : COLOR0; -}; - -void frag_main() -{ - FragColor = vColor.xyz; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vColor = stage_input.vColor; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = float4(FragColor, 0.0); - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/basic-color-3comp.sm50.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/basic-color-3comp.sm50.frag deleted file mode 100644 index 52f6fed6c1..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/basic-color-3comp.sm50.frag +++ /dev/null @@ -1,26 +0,0 @@ -static float3 FragColor; -static float4 vColor; - -struct SPIRV_Cross_Input -{ - float4 vColor : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float3 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = vColor.xyz; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vColor = stage_input.vColor; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/basic.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/basic.frag deleted file mode 100644 index 6d067041c2..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/basic.frag +++ /dev/null @@ -1,32 +0,0 @@ -Texture2D uTex : register(t0); -SamplerState _uTex_sampler : register(s0); - -static float4 FragColor; -static float4 vColor; -static float2 vTex; - -struct SPIRV_Cross_Input -{ - float4 vColor : TEXCOORD0; - float2 vTex : TEXCOORD1; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = vColor * uTex.Sample(_uTex_sampler, vTex); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vColor = stage_input.vColor; - vTex = stage_input.vTex; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/bit-conversions.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/bit-conversions.frag deleted file mode 100644 index b60b2ebb4a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/bit-conversions.frag +++ /dev/null @@ -1,26 +0,0 @@ -static float2 value; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - float2 value : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = float4(1.0f, 0.0f, asfloat(asint(value.x)), 1.0f); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - value = stage_input.value; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/boolean-mix.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/boolean-mix.frag deleted file mode 100644 index f3e84898d6..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/boolean-mix.frag +++ /dev/null @@ -1,27 +0,0 @@ -static float2 FragColor; -static float2 x0; - -struct SPIRV_Cross_Input -{ - float2 x0 : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float2 FragColor : SV_Target0; -}; - -void frag_main() -{ - bool2 _27 = (x0.x > x0.y).xx; - FragColor = float2(_27.x ? float2(1.0f, 0.0f).x : float2(0.0f, 1.0f).x, _27.y ? float2(1.0f, 0.0f).y : float2(0.0f, 1.0f).y); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - x0 = stage_input.x0; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/builtins.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/builtins.frag deleted file mode 100644 index 8432c42f80..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/builtins.frag +++ /dev/null @@ -1,34 +0,0 @@ -static float4 gl_FragCoord; -static float gl_FragDepth; -static float4 FragColor; -static float4 vColor; - -struct SPIRV_Cross_Input -{ - float4 vColor : TEXCOORD0; - float4 gl_FragCoord : SV_Position; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; - float gl_FragDepth : SV_Depth; -}; - -void frag_main() -{ - FragColor = gl_FragCoord + vColor; - gl_FragDepth = 0.5f; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - gl_FragCoord = stage_input.gl_FragCoord; - gl_FragCoord.w = 1.0 / gl_FragCoord.w; - vColor = stage_input.vColor; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_FragDepth = gl_FragDepth; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/bvec-operations.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/bvec-operations.frag deleted file mode 100644 index 2770e97c0a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/bvec-operations.frag +++ /dev/null @@ -1,29 +0,0 @@ -static float2 value; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - float2 value : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -static bool _47; - -void frag_main() -{ - bool2 _25 = bool2(value.x == 0.0f, _47); - FragColor = float4(1.0f, 0.0f, float(bool2(!_25.x, !_25.y).x), float(bool2(value.x <= float2(1.5f, 0.5f).x, value.y <= float2(1.5f, 0.5f).y).x)); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - value = stage_input.value; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/clip-cull-distance.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/clip-cull-distance.frag deleted file mode 100644 index 52f1ac30b6..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/clip-cull-distance.frag +++ /dev/null @@ -1,30 +0,0 @@ -static float gl_ClipDistance[2]; -static float gl_CullDistance[1]; -static float FragColor; - -struct SPIRV_Cross_Input -{ - float2 gl_ClipDistance0 : SV_ClipDistance0; - float gl_CullDistance0 : SV_CullDistance0; -}; - -struct SPIRV_Cross_Output -{ - float FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = (gl_ClipDistance[0] + gl_CullDistance[0]) + gl_ClipDistance[1]; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - gl_ClipDistance[0] = stage_input.gl_ClipDistance0.x; - gl_ClipDistance[1] = stage_input.gl_ClipDistance0.y; - gl_CullDistance[0] = stage_input.gl_CullDistance0.x; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/combined-texture-sampler-parameter.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/combined-texture-sampler-parameter.frag deleted file mode 100644 index 18968cb193..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/combined-texture-sampler-parameter.frag +++ /dev/null @@ -1,24 +0,0 @@ -Texture2D uSampler : register(t0); -SamplerState _uSampler_sampler : register(s0); -Texture2D uSamplerShadow : register(t1); -SamplerComparisonState _uSamplerShadow_sampler : register(s1); - -static float FragColor; - -struct SPIRV_Cross_Output -{ - float FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = (uSampler.Sample(_uSampler_sampler, 1.0f.xx) + uSampler.Load(int3(int2(10, 10), 0))).x + uSamplerShadow.SampleCmp(_uSamplerShadow_sampler, 1.0f.xxx.xy, 1.0f); -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/combined-texture-sampler-shadow.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/combined-texture-sampler-shadow.frag deleted file mode 100644 index 6e8f833b34..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/combined-texture-sampler-shadow.frag +++ /dev/null @@ -1,23 +0,0 @@ -Texture2D uDepth : register(t2); -SamplerComparisonState uSampler : register(s0); -SamplerState uSampler1 : register(s1); - -static float FragColor; - -struct SPIRV_Cross_Output -{ - float FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = uDepth.SampleCmp(uSampler, 1.0f.xxx.xy, 1.0f) + uDepth.Sample(uSampler1, 1.0f.xx).x; -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/complex-expression-in-access-chain.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/complex-expression-in-access-chain.frag deleted file mode 100644 index 1de882445b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/complex-expression-in-access-chain.frag +++ /dev/null @@ -1,38 +0,0 @@ -RWByteAddressBuffer _34 : register(u0); -Texture2D Buf : register(t1); -SamplerState _Buf_sampler : register(s1); - -static float4 gl_FragCoord; -static int vIn; -static int vIn2; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - nointerpolation int vIn : TEXCOORD0; - nointerpolation int vIn2 : TEXCOORD1; - float4 gl_FragCoord : SV_Position; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - int _40 = Buf.Load(int3(int2(gl_FragCoord.xy), 0)).x % 16; - FragColor = (asfloat(_34.Load4(_40 * 16 + 0)) + asfloat(_34.Load4(_40 * 16 + 0))) + asfloat(_34.Load4(((vIn * vIn) + (vIn2 * vIn2)) * 16 + 0)); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - gl_FragCoord = stage_input.gl_FragCoord; - gl_FragCoord.w = 1.0 / gl_FragCoord.w; - vIn = stage_input.vIn; - vIn2 = stage_input.vIn2; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/constant-composites.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/constant-composites.frag deleted file mode 100644 index 306ca5cadb..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/constant-composites.frag +++ /dev/null @@ -1,38 +0,0 @@ -struct Foo -{ - float a; - float b; -}; - -static const float _16[4] = { 1.0f, 4.0f, 3.0f, 2.0f }; -static const Foo _24 = { 10.0f, 20.0f }; -static const Foo _27 = { 30.0f, 40.0f }; -static const Foo _28[2] = { { 10.0f, 20.0f }, { 30.0f, 40.0f } }; - -static float4 FragColor; -static int _line; - -struct SPIRV_Cross_Input -{ - nointerpolation int _line : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = _16[_line].xxxx; - FragColor += (_28[_line].a * _28[1 - _line].a).xxxx; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - _line = stage_input._line; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/control-dependent-in-branch.desktop.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/control-dependent-in-branch.desktop.frag deleted file mode 100644 index 1b314e13b9..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/control-dependent-in-branch.desktop.frag +++ /dev/null @@ -1,55 +0,0 @@ -Texture2D uSampler : register(t0); -SamplerState _uSampler_sampler : register(s0); - -static float4 FragColor; -static float4 vInput; - -struct SPIRV_Cross_Input -{ - float4 vInput : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = vInput; - float4 _23 = uSampler.Sample(_uSampler_sampler, vInput.xy); - float4 _26 = ddx(vInput); - float4 _29 = ddy(vInput); - float4 _32 = fwidth(vInput); - float4 _35 = ddx_coarse(vInput); - float4 _38 = ddy_coarse(vInput); - float4 _41 = fwidth(vInput); - float4 _44 = ddx_fine(vInput); - float4 _47 = ddy_fine(vInput); - float4 _50 = fwidth(vInput); - float _56_tmp = uSampler.CalculateLevelOfDetail(_uSampler_sampler, vInput.zw); - float2 _56 = _56_tmp.xx; - if (vInput.y > 10.0f) - { - FragColor += _23; - FragColor += _26; - FragColor += _29; - FragColor += _32; - FragColor += _35; - FragColor += _38; - FragColor += _41; - FragColor += _44; - FragColor += _47; - FragColor += _50; - FragColor += _56.xyxy; - } -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vInput = stage_input.vInput; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/demote-to-helper.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/demote-to-helper.frag deleted file mode 100644 index 743a4228ba..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/demote-to-helper.frag +++ /dev/null @@ -1,9 +0,0 @@ -void frag_main() -{ - discard; -} - -void main() -{ - frag_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/depth-greater-than.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/depth-greater-than.frag deleted file mode 100644 index b9f50db00a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/depth-greater-than.frag +++ /dev/null @@ -1,19 +0,0 @@ -static float gl_FragDepth; -struct SPIRV_Cross_Output -{ - float gl_FragDepth : SV_DepthGreaterEqual; -}; - -void frag_main() -{ - gl_FragDepth = 0.5f; -} - -[earlydepthstencil] -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_FragDepth = gl_FragDepth; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/depth-less-than.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/depth-less-than.frag deleted file mode 100644 index a702fd9f8e..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/depth-less-than.frag +++ /dev/null @@ -1,19 +0,0 @@ -static float gl_FragDepth; -struct SPIRV_Cross_Output -{ - float gl_FragDepth : SV_DepthLessEqual; -}; - -void frag_main() -{ - gl_FragDepth = 0.5f; -} - -[earlydepthstencil] -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_FragDepth = gl_FragDepth; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/dual-source-blending.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/dual-source-blending.frag deleted file mode 100644 index 961e800010..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/dual-source-blending.frag +++ /dev/null @@ -1,23 +0,0 @@ -static float4 FragColor0; -static float4 FragColor1; - -struct SPIRV_Cross_Output -{ - float4 FragColor0 : SV_Target0; - float4 FragColor1 : SV_Target1; -}; - -void frag_main() -{ - FragColor0 = 1.0f.xxxx; - FragColor1 = 2.0f.xxxx; -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor0 = FragColor0; - stage_output.FragColor1 = FragColor1; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/early-fragment-test.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/early-fragment-test.frag deleted file mode 100644 index ae2569d5cf..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/early-fragment-test.frag +++ /dev/null @@ -1,9 +0,0 @@ -void frag_main() -{ -} - -[earlydepthstencil] -void main() -{ - frag_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/for-loop-continue-control-flow.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/for-loop-continue-control-flow.frag deleted file mode 100644 index f37c1fcc4b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/for-loop-continue-control-flow.frag +++ /dev/null @@ -1,25 +0,0 @@ -static float4 FragColor; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = 0.0f.xxxx; - for (int _43 = 0; _43 < 3; ) - { - FragColor[_43] += float(_43); - _43++; - continue; - } -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/fp16-packing.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/fp16-packing.frag deleted file mode 100644 index 54b91e2aa5..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/fp16-packing.frag +++ /dev/null @@ -1,44 +0,0 @@ -static float2 FP32Out; -static uint FP16; -static uint FP16Out; -static float2 FP32; - -struct SPIRV_Cross_Input -{ - nointerpolation uint FP16 : TEXCOORD0; - nointerpolation float2 FP32 : TEXCOORD1; -}; - -struct SPIRV_Cross_Output -{ - float2 FP32Out : SV_Target0; - uint FP16Out : SV_Target1; -}; - -uint spvPackHalf2x16(float2 value) -{ - uint2 Packed = f32tof16(value); - return Packed.x | (Packed.y << 16); -} - -float2 spvUnpackHalf2x16(uint value) -{ - return f16tof32(uint2(value & 0xffff, value >> 16)); -} - -void frag_main() -{ - FP32Out = spvUnpackHalf2x16(FP16); - FP16Out = spvPackHalf2x16(FP32); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - FP16 = stage_input.FP16; - FP32 = stage_input.FP32; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FP32Out = FP32Out; - stage_output.FP16Out = FP16Out; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/front-facing.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/front-facing.frag deleted file mode 100644 index 4ed09a2bd1..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/front-facing.frag +++ /dev/null @@ -1,39 +0,0 @@ -static bool gl_FrontFacing; -static float4 FragColor; -static float4 vA; -static float4 vB; - -struct SPIRV_Cross_Input -{ - float4 vA : TEXCOORD0; - float4 vB : TEXCOORD1; - bool gl_FrontFacing : SV_IsFrontFace; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - if (gl_FrontFacing) - { - FragColor = vA; - } - else - { - FragColor = vB; - } -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - gl_FrontFacing = stage_input.gl_FrontFacing; - vA = stage_input.vA; - vB = stage_input.vB; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/image-query-selective.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/image-query-selective.frag deleted file mode 100644 index 3b50282fe0..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/image-query-selective.frag +++ /dev/null @@ -1,8 +0,0 @@ -void frag_main() -{ -} - -void main() -{ - frag_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/image-query-uav.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/image-query-uav.frag deleted file mode 100644 index 3b50282fe0..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/image-query-uav.frag +++ /dev/null @@ -1,8 +0,0 @@ -void frag_main() -{ -} - -void main() -{ - frag_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/image-query-uav.nonwritable-uav-texture.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/image-query-uav.nonwritable-uav-texture.frag deleted file mode 100644 index 3b50282fe0..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/image-query-uav.nonwritable-uav-texture.frag +++ /dev/null @@ -1,8 +0,0 @@ -void frag_main() -{ -} - -void main() -{ - frag_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/image-query.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/image-query.frag deleted file mode 100644 index 3b50282fe0..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/image-query.frag +++ /dev/null @@ -1,8 +0,0 @@ -void frag_main() -{ -} - -void main() -{ - frag_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/input-attachment-ms.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/input-attachment-ms.frag deleted file mode 100644 index 54cb1dd944..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/input-attachment-ms.frag +++ /dev/null @@ -1,33 +0,0 @@ -Texture2DMS uSubpass0 : register(t0); -Texture2DMS uSubpass1 : register(t1); - -static float4 gl_FragCoord; -static int gl_SampleID; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - float4 gl_FragCoord : SV_Position; - uint gl_SampleID : SV_SampleIndex; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = (uSubpass0.Load(int2(gl_FragCoord.xy), 1) + uSubpass1.Load(int2(gl_FragCoord.xy), 2)) + uSubpass0.Load(int2(gl_FragCoord.xy), gl_SampleID); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - gl_FragCoord = stage_input.gl_FragCoord; - gl_FragCoord.w = 1.0 / gl_FragCoord.w; - gl_SampleID = stage_input.gl_SampleID; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/input-attachment.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/input-attachment.frag deleted file mode 100644 index 34aaafcf3d..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/input-attachment.frag +++ /dev/null @@ -1,30 +0,0 @@ -Texture2D uSubpass0 : register(t0); -Texture2D uSubpass1 : register(t1); - -static float4 gl_FragCoord; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - float4 gl_FragCoord : SV_Position; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = uSubpass0.Load(int3(int2(gl_FragCoord.xy), 0)) + uSubpass1.Load(int3(int2(gl_FragCoord.xy), 0)); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - gl_FragCoord = stage_input.gl_FragCoord; - gl_FragCoord.w = 1.0 / gl_FragCoord.w; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/io-block.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/io-block.frag deleted file mode 100644 index 52c1f518bf..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/io-block.frag +++ /dev/null @@ -1,28 +0,0 @@ -static float4 FragColor; - -struct VertexOut -{ - float4 a : TEXCOORD1; - float4 b : TEXCOORD2; -}; - -static VertexOut _12; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = _12.a + _12.b; -} - -SPIRV_Cross_Output main(in VertexOut stage_input_12) -{ - _12 = stage_input_12; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/legacy-tex-modifiers.sm30.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/legacy-tex-modifiers.sm30.frag deleted file mode 100644 index 2af0e513b4..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/legacy-tex-modifiers.sm30.frag +++ /dev/null @@ -1,32 +0,0 @@ -uniform sampler2D uSampler; - -static float4 FragColor; -static float2 vUV; - -struct SPIRV_Cross_Input -{ - float2 vUV : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : COLOR0; -}; - -void frag_main() -{ - float3 _23 = float3(vUV, 5.0f); - FragColor = tex2Dproj(uSampler, float4(_23.xy, 0.0, _23.z)); - FragColor += tex2Dbias(uSampler, float4(vUV, 0.0, 3.0f)); - FragColor += tex2Dlod(uSampler, float4(vUV, 0.0, 2.0f)); - FragColor += tex2Dgrad(uSampler, vUV, 4.0f.xx, 5.0f.xx); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vUV = stage_input.vUV; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = float4(FragColor); - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/lut-promotion.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/lut-promotion.frag deleted file mode 100644 index 4d89d36eb5..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/lut-promotion.frag +++ /dev/null @@ -1,55 +0,0 @@ -static const float _16[16] = { 1.0f, 2.0f, 3.0f, 4.0f, 1.0f, 2.0f, 3.0f, 4.0f, 1.0f, 2.0f, 3.0f, 4.0f, 1.0f, 2.0f, 3.0f, 4.0f }; -static const float4 _60[4] = { 0.0f.xxxx, 1.0f.xxxx, 8.0f.xxxx, 5.0f.xxxx }; -static const float4 _104[4] = { 20.0f.xxxx, 30.0f.xxxx, 50.0f.xxxx, 60.0f.xxxx }; - -static float FragColor; -static int index; - -struct SPIRV_Cross_Input -{ - nointerpolation int index : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = _16[index]; - if (index < 10) - { - FragColor += _16[index ^ 1]; - } - else - { - FragColor += _16[index & 1]; - } - bool _63 = index > 30; - if (_63) - { - FragColor += _60[index & 3].y; - } - else - { - FragColor += _60[index & 1].x; - } - float4 foobar[4] = _60; - if (_63) - { - foobar[1].z = 20.0f; - } - int _91 = index & 3; - FragColor += foobar[_91].z; - FragColor += _104[_91].z; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - index = stage_input.index; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/matrix-input.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/matrix-input.frag deleted file mode 100644 index 92d87d396e..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/matrix-input.frag +++ /dev/null @@ -1,26 +0,0 @@ -static float4 FragColor; -static float4x4 m; - -struct SPIRV_Cross_Input -{ - float4x4 m : TEXCOORD1; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = ((m[0] + m[1]) + m[2]) + m[3]; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - m = stage_input.m; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/mod.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/mod.frag deleted file mode 100644 index 41ac930496..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/mod.frag +++ /dev/null @@ -1,67 +0,0 @@ -static float4 a4; -static float4 b4; -static float3 a3; -static float3 b3; -static float2 a2; -static float2 b2; -static float a1; -static float b1; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - float4 a4 : TEXCOORD0; - float3 a3 : TEXCOORD1; - float2 a2 : TEXCOORD2; - float a1 : TEXCOORD3; - float4 b4 : TEXCOORD4; - float3 b3 : TEXCOORD5; - float2 b2 : TEXCOORD6; - float b1 : TEXCOORD7; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -float mod(float x, float y) -{ - return x - y * floor(x / y); -} - -float2 mod(float2 x, float2 y) -{ - return x - y * floor(x / y); -} - -float3 mod(float3 x, float3 y) -{ - return x - y * floor(x / y); -} - -float4 mod(float4 x, float4 y) -{ - return x - y * floor(x / y); -} - -void frag_main() -{ - FragColor = ((mod(a4, b4) + mod(a3, b3).xyzx) + mod(a2, b2).xyxy) + mod(a1, b1).xxxx; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - a4 = stage_input.a4; - b4 = stage_input.b4; - a3 = stage_input.a3; - b3 = stage_input.b3; - a2 = stage_input.a2; - b2 = stage_input.b2; - a1 = stage_input.a1; - b1 = stage_input.b1; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/mrt.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/mrt.frag deleted file mode 100644 index e69e91196a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/mrt.frag +++ /dev/null @@ -1,31 +0,0 @@ -static float4 RT0; -static float4 RT1; -static float4 RT2; -static float4 RT3; - -struct SPIRV_Cross_Output -{ - float4 RT0 : SV_Target0; - float4 RT1 : SV_Target1; - float4 RT2 : SV_Target2; - float4 RT3 : SV_Target3; -}; - -void frag_main() -{ - RT0 = 1.0f.xxxx; - RT1 = 2.0f.xxxx; - RT2 = 3.0f.xxxx; - RT3 = 4.0f.xxxx; -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.RT0 = RT0; - stage_output.RT1 = RT1; - stage_output.RT2 = RT2; - stage_output.RT3 = RT3; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/no-return.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/no-return.frag deleted file mode 100644 index 3b50282fe0..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/no-return.frag +++ /dev/null @@ -1,8 +0,0 @@ -void frag_main() -{ -} - -void main() -{ - frag_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/no-return2.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/no-return2.frag deleted file mode 100644 index e9d7bbc8f9..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/no-return2.frag +++ /dev/null @@ -1,16 +0,0 @@ -static float4 vColor; - -struct SPIRV_Cross_Input -{ - float4 vColor : TEXCOORD0; -}; - -void frag_main() -{ -} - -void main(SPIRV_Cross_Input stage_input) -{ - vColor = stage_input.vColor; - frag_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/nonuniform-qualifier.nonuniformresource.sm51.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/nonuniform-qualifier.nonuniformresource.sm51.frag deleted file mode 100644 index f1b6bfafcb..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/nonuniform-qualifier.nonuniformresource.sm51.frag +++ /dev/null @@ -1,105 +0,0 @@ -struct UBO_1_1 -{ - float4 v[64]; -}; - -ConstantBuffer ubos[] : register(b2, space9); -RWByteAddressBuffer ssbos[] : register(u3, space10); -Texture2D uSamplers[] : register(t0, space0); -SamplerState uSamps[] : register(s1, space3); -Texture2D uCombinedSamplers[] : register(t4, space2); -SamplerState _uCombinedSamplers_sampler[] : register(s4, space2); -Texture2DMS uSamplersMS[] : register(t0, space1); -RWTexture2D uImages[] : register(u5, space7); -RWTexture2D uImagesU32[] : register(u5, space8); - -static int vIndex; -static float4 FragColor; -static float2 vUV; - -struct SPIRV_Cross_Input -{ - nointerpolation int vIndex : TEXCOORD0; - float2 vUV : TEXCOORD1; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) -{ - uint2 ret; - Tex.GetDimensions(Level, ret.x, ret.y, Param); - return ret; -} - -uint2 spvTextureSize(Texture2DMS Tex, uint Level, out uint Param) -{ - uint2 ret; - Tex.GetDimensions(ret.x, ret.y, Param); - return ret; -} - -uint2 spvImageSize(RWTexture2D Tex, out uint Param) -{ - uint2 ret; - Tex.GetDimensions(ret.x, ret.y); - Param = 0u; - return ret; -} - -void frag_main() -{ - int _22 = vIndex + 10; - int _32 = vIndex + 40; - FragColor = uSamplers[NonUniformResourceIndex(_22)].Sample(uSamps[NonUniformResourceIndex(_32)], vUV); - int _49 = _22; - FragColor = uCombinedSamplers[NonUniformResourceIndex(_49)].Sample(_uCombinedSamplers_sampler[NonUniformResourceIndex(_49)], vUV); - int _65 = vIndex + 20; - int _69 = _32; - FragColor += ubos[NonUniformResourceIndex(_65)].v[_69]; - int _83 = vIndex + 50; - int _88 = vIndex + 60; - FragColor += asfloat(ssbos[NonUniformResourceIndex(_83)].Load4(_88 * 16 + 16)); - int _100 = vIndex + 70; - ssbos[NonUniformResourceIndex(_88)].Store4(_100 * 16 + 16, asuint(20.0f.xxxx)); - int2 _111 = int2(vUV); - FragColor = uSamplers[NonUniformResourceIndex(_49)].Load(int3(_111, 0)); - int _116 = vIndex + 100; - uint _122; - ssbos[_116].InterlockedAdd(0, 100u, _122); - float _136_tmp = uSamplers[NonUniformResourceIndex(_22)].CalculateLevelOfDetail(uSamps[NonUniformResourceIndex(_32)], vUV); - float2 _136 = _136_tmp.xx; - float _143_tmp = uCombinedSamplers[NonUniformResourceIndex(_49)].CalculateLevelOfDetail(_uCombinedSamplers_sampler[NonUniformResourceIndex(_49)], vUV); - float2 _143 = _143_tmp.xx; - float2 _149 = FragColor.xy + (_136 + _143); - FragColor = float4(_149.x, _149.y, FragColor.z, FragColor.w); - int _157; - spvTextureSize(uSamplers[NonUniformResourceIndex(_65)], 0u, _157); - FragColor.x += float(int(_157)); - int _174; - spvTextureSize(uSamplersMS[NonUniformResourceIndex(_65)], 0u, _174); - FragColor.y += float(int(_174)); - uint _185_dummy_parameter; - float2 _189 = FragColor.xy + float2(int2(spvTextureSize(uSamplers[NonUniformResourceIndex(_65)], uint(0), _185_dummy_parameter))); - FragColor = float4(_189.x, _189.y, FragColor.z, FragColor.w); - FragColor += uImages[NonUniformResourceIndex(_83)][_111].xxxx; - uint _212_dummy_parameter; - float2 _216 = FragColor.xy + float2(int2(spvImageSize(uImages[NonUniformResourceIndex(_65)], _212_dummy_parameter))); - FragColor = float4(_216.x, _216.y, FragColor.z, FragColor.w); - uImages[NonUniformResourceIndex(_88)][_111] = 50.0f.x; - uint _242; - InterlockedAdd(uImagesU32[NonUniformResourceIndex(_100)][_111], 40u, _242); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vIndex = stage_input.vIndex; - vUV = stage_input.vUV; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/partial-write-preserve.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/partial-write-preserve.frag deleted file mode 100644 index 3b50282fe0..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/partial-write-preserve.frag +++ /dev/null @@ -1,8 +0,0 @@ -void frag_main() -{ -} - -void main() -{ - frag_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/pixel-interlock-ordered.sm51.fxconly.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/pixel-interlock-ordered.sm51.fxconly.frag deleted file mode 100644 index 8923f96a75..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/pixel-interlock-ordered.sm51.fxconly.frag +++ /dev/null @@ -1,24 +0,0 @@ -RWByteAddressBuffer _9 : register(u6, space0); -globallycoherent RasterizerOrderedByteAddressBuffer _42 : register(u3, space0); -RasterizerOrderedByteAddressBuffer _52 : register(u4, space0); -RWTexture2D img4 : register(u5, space0); -RasterizerOrderedTexture2D img : register(u0, space0); -RasterizerOrderedTexture2D img3 : register(u2, space0); -RasterizerOrderedTexture2D img2 : register(u1, space0); - -void frag_main() -{ - _9.Store(0, uint(0)); - img4[int2(1, 1)] = float4(1.0f, 0.0f, 0.0f, 1.0f); - img[int2(0, 0)] = img3[int2(0, 0)]; - uint _39; - InterlockedAdd(img2[int2(0, 0)], 1u, _39); - _42.Store(0, uint(int(_42.Load(0)) + 42)); - uint _55; - _42.InterlockedAnd(4, _52.Load(0), _55); -} - -void main() -{ - frag_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/point-coord-compat.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/point-coord-compat.frag deleted file mode 100644 index 629153982d..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/point-coord-compat.frag +++ /dev/null @@ -1,19 +0,0 @@ -static float2 FragColor; - -struct SPIRV_Cross_Output -{ - float2 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = float2(0.5f, 0.5f); -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/query-lod.desktop.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/query-lod.desktop.frag deleted file mode 100644 index a9d4bd83d9..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/query-lod.desktop.frag +++ /dev/null @@ -1,31 +0,0 @@ -Texture2D uSampler : register(t0); -SamplerState _uSampler_sampler : register(s0); - -static float4 FragColor; -static float2 vTexCoord; - -struct SPIRV_Cross_Input -{ - float2 vTexCoord : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - float _19_tmp = uSampler.CalculateLevelOfDetail(_uSampler_sampler, vTexCoord); - float2 _19 = _19_tmp.xx; - FragColor = _19.xyxy; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vTexCoord = stage_input.vTexCoord; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/readonly-coherent-ssbo.force-uav.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/readonly-coherent-ssbo.force-uav.frag deleted file mode 100644 index bbe3e4a7d3..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/readonly-coherent-ssbo.force-uav.frag +++ /dev/null @@ -1,21 +0,0 @@ -globallycoherent RWByteAddressBuffer _12 : register(u0); - -static float4 FragColor; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = asfloat(_12.Load4(0)); -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/readonly-coherent-ssbo.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/readonly-coherent-ssbo.frag deleted file mode 100644 index 02252f9cbc..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/readonly-coherent-ssbo.frag +++ /dev/null @@ -1,21 +0,0 @@ -ByteAddressBuffer _12 : register(t0); - -static float4 FragColor; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = asfloat(_12.Load4(0)); -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/resources.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/resources.frag deleted file mode 100644 index aac0d53a1d..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/resources.frag +++ /dev/null @@ -1,41 +0,0 @@ -cbuffer CBuffer : register(b3) -{ - float4 cbuf_a : packoffset(c0); -}; - -cbuffer PushMe -{ - float4 registers_d : packoffset(c0); -}; - -Texture2D uSampledImage : register(t4); -SamplerState _uSampledImage_sampler : register(s4); -Texture2D uTexture : register(t5); -SamplerState uSampler : register(s6); - -static float2 vTex; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - float2 vTex : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = (uSampledImage.Sample(_uSampledImage_sampler, vTex) + uTexture.Sample(uSampler, vTex)) + (cbuf_a + registers_d); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vTex = stage_input.vTex; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/row-major-layout-in-struct.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/row-major-layout-in-struct.frag deleted file mode 100644 index 7df0fd91d6..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/row-major-layout-in-struct.frag +++ /dev/null @@ -1,38 +0,0 @@ -struct Foo -{ - row_major float4x4 v; - row_major float4x4 w; -}; - -cbuffer UBO : register(b0) -{ - Foo _17_foo : packoffset(c0); -}; - - -static float4 FragColor; -static float4 vUV; - -struct SPIRV_Cross_Input -{ - float4 vUV : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = mul(mul(vUV, _17_foo.w), _17_foo.v); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vUV = stage_input.vUV; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/sample-cmp-level-zero.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/sample-cmp-level-zero.frag deleted file mode 100644 index c6539b1834..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/sample-cmp-level-zero.frag +++ /dev/null @@ -1,40 +0,0 @@ -Texture2D uSampler2D : register(t0); -SamplerComparisonState _uSampler2D_sampler : register(s0); -Texture2DArray uSampler2DArray : register(t1); -SamplerComparisonState _uSampler2DArray_sampler : register(s1); -TextureCube uSamplerCube : register(t2); -SamplerComparisonState _uSamplerCube_sampler : register(s2); -TextureCubeArray uSamplerCubeArray : register(t3); -SamplerComparisonState _uSamplerCubeArray_sampler : register(s3); - -static float3 vUVRef; -static float4 vDirRef; -static float FragColor; - -struct SPIRV_Cross_Input -{ - float3 vUVRef : TEXCOORD0; - float4 vDirRef : TEXCOORD1; -}; - -struct SPIRV_Cross_Output -{ - float FragColor : SV_Target0; -}; - -void frag_main() -{ - float4 _80 = vDirRef; - _80.z = vDirRef.w; - FragColor = (((((((uSampler2D.SampleCmp(_uSampler2D_sampler, vUVRef.xy, vUVRef.z, int2(-1, -1)) + uSampler2DArray.SampleCmp(_uSampler2DArray_sampler, vDirRef.xyz, vDirRef.w, int2(-1, -1))) + uSamplerCube.SampleCmp(_uSamplerCube_sampler, vDirRef.xyz, vDirRef.w)) + uSamplerCubeArray.SampleCmp(_uSamplerCubeArray_sampler, vDirRef, 0.5f)) + uSampler2D.SampleCmpLevelZero(_uSampler2D_sampler, vUVRef.xy, vUVRef.z, int2(-1, -1))) + uSampler2DArray.SampleCmpLevelZero(_uSampler2DArray_sampler, vDirRef.xyz, vDirRef.w, int2(-1, -1))) + uSamplerCube.SampleCmpLevelZero(_uSamplerCube_sampler, vDirRef.xyz, vDirRef.w)) + uSampler2D.SampleCmp(_uSampler2D_sampler, _80.xy / _80.z, vDirRef.z / _80.z, int2(1, 1))) + uSampler2D.SampleCmpLevelZero(_uSampler2D_sampler, _80.xy / _80.z, vDirRef.z / _80.z, int2(1, 1)); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vUVRef = stage_input.vUVRef; - vDirRef = stage_input.vDirRef; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/sample-mask-in-and-out.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/sample-mask-in-and-out.frag deleted file mode 100644 index 185a09821e..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/sample-mask-in-and-out.frag +++ /dev/null @@ -1,30 +0,0 @@ -static int gl_SampleMaskIn; -static int gl_SampleMask; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - uint gl_SampleMaskIn : SV_Coverage; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; - uint gl_SampleMask : SV_Coverage; -}; - -void frag_main() -{ - FragColor = 1.0f.xxxx; - gl_SampleMask = gl_SampleMaskIn; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - gl_SampleMaskIn = stage_input.gl_SampleMaskIn; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_SampleMask = gl_SampleMask; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/sample-mask-in.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/sample-mask-in.frag deleted file mode 100644 index 8f6cfaf9e5..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/sample-mask-in.frag +++ /dev/null @@ -1,32 +0,0 @@ -static int gl_SampleID; -static int gl_SampleMaskIn; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - uint gl_SampleID : SV_SampleIndex; - uint gl_SampleMaskIn : SV_Coverage; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - if ((gl_SampleMaskIn & (1 << gl_SampleID)) != 0) - { - FragColor = 1.0f.xxxx; - } -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - gl_SampleID = stage_input.gl_SampleID; - gl_SampleMaskIn = stage_input.gl_SampleMaskIn; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/sample-mask-out.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/sample-mask-out.frag deleted file mode 100644 index a966c03218..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/sample-mask-out.frag +++ /dev/null @@ -1,23 +0,0 @@ -static int gl_SampleMask; -static float4 FragColor; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; - uint gl_SampleMask : SV_Coverage; -}; - -void frag_main() -{ - FragColor = 1.0f.xxxx; - gl_SampleMask = 0; -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_SampleMask = gl_SampleMask; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/sampler-array.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/sampler-array.frag deleted file mode 100644 index 8ecdc6c3a8..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/sampler-array.frag +++ /dev/null @@ -1,31 +0,0 @@ -Texture2D uCombined[4] : register(t0); -SamplerState _uCombined_sampler[4] : register(s0); -Texture2D uTex[4] : register(t4); -SamplerState uSampler[4] : register(s8); -RWTexture2D uImage[8] : register(u12); - -static float4 gl_FragCoord; -static float2 vTex; -static int vIndex; - -struct SPIRV_Cross_Input -{ - float2 vTex : TEXCOORD0; - nointerpolation int vIndex : TEXCOORD1; - float4 gl_FragCoord : SV_Position; -}; - -void frag_main() -{ - int _72 = vIndex + 1; - uImage[vIndex][int2(gl_FragCoord.xy)] = ((uCombined[vIndex].Sample(_uCombined_sampler[vIndex], vTex) + uTex[vIndex].Sample(uSampler[vIndex], vTex)) + uCombined[_72].Sample(_uCombined_sampler[_72], vTex)) + uTex[_72].Sample(uSampler[_72], vTex); -} - -void main(SPIRV_Cross_Input stage_input) -{ - gl_FragCoord = stage_input.gl_FragCoord; - gl_FragCoord.w = 1.0 / gl_FragCoord.w; - vTex = stage_input.vTex; - vIndex = stage_input.vIndex; - frag_main(); -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/sampler-image-arrays.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/sampler-image-arrays.frag deleted file mode 100644 index b6d0e9421c..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/sampler-image-arrays.frag +++ /dev/null @@ -1,39 +0,0 @@ -Texture2D uSampler[4] : register(t0); -SamplerState _uSampler_sampler[4] : register(s0); -Texture2D uTextures[4] : register(t8); -SamplerState uSamplers[4] : register(s4); - -static int vIndex; -static float2 vTex; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - nointerpolation float2 vTex : TEXCOORD0; - nointerpolation int vIndex : TEXCOORD1; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = 0.0f.xxxx; - FragColor += uTextures[2].Sample(uSamplers[1], vTex); - FragColor += uSampler[vIndex].Sample(_uSampler_sampler[vIndex], vTex); - FragColor += uSampler[vIndex].Sample(_uSampler_sampler[vIndex], vTex + 0.100000001490116119384765625f.xx); - FragColor += uSampler[vIndex].Sample(_uSampler_sampler[vIndex], vTex + 0.20000000298023223876953125f.xx); - FragColor += uSampler[3].Sample(_uSampler_sampler[3], vTex + 0.300000011920928955078125f.xx); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vIndex = stage_input.vIndex; - vTex = stage_input.vTex; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/scalar-refract-reflect.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/scalar-refract-reflect.frag deleted file mode 100644 index 6c2d0be4f7..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/scalar-refract-reflect.frag +++ /dev/null @@ -1,49 +0,0 @@ -static float FragColor; -static float3 vRefract; - -struct SPIRV_Cross_Input -{ - float3 vRefract : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float FragColor : SV_Target0; -}; - -float spvReflect(float i, float n) -{ - return i - 2.0 * dot(n, i) * n; -} - -float spvRefract(float i, float n, float eta) -{ - float NoI = n * i; - float NoI2 = NoI * NoI; - float k = 1.0 - eta * eta * (1.0 - NoI2); - if (k < 0.0) - { - return 0.0; - } - else - { - return eta * i - (eta * NoI + sqrt(k)) * n; - } -} - -void frag_main() -{ - FragColor = spvRefract(vRefract.x, vRefract.y, vRefract.z); - FragColor += spvReflect(vRefract.x, vRefract.y); - FragColor += refract(vRefract.xy, vRefract.yz, vRefract.z).y; - FragColor += reflect(vRefract.xy, vRefract.zy).y; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vRefract = stage_input.vRefract; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/separate-combined-fake-overload.sm30.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/separate-combined-fake-overload.sm30.frag deleted file mode 100644 index faed40678a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/separate-combined-fake-overload.sm30.frag +++ /dev/null @@ -1,22 +0,0 @@ -uniform sampler2D uSamp; -uniform sampler2D SPIRV_Cross_CombineduTuS; - -static float4 FragColor; - -struct SPIRV_Cross_Output -{ - float4 FragColor : COLOR0; -}; - -void frag_main() -{ - FragColor = tex2D(uSamp, 0.5f.xx) + tex2D(SPIRV_Cross_CombineduTuS, 0.5f.xx); -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = float4(FragColor); - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/spec-constant-block-size.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/spec-constant-block-size.frag deleted file mode 100644 index 415886dd31..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/spec-constant-block-size.frag +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef SPIRV_CROSS_CONSTANT_ID_10 -#define SPIRV_CROSS_CONSTANT_ID_10 2 -#endif -static const int Value = SPIRV_CROSS_CONSTANT_ID_10; - -cbuffer SpecConstArray : register(b0) -{ - float4 _15_samples[Value] : packoffset(c0); -}; - - -static float4 FragColor; -static int Index; - -struct SPIRV_Cross_Input -{ - nointerpolation int Index : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = _15_samples[Index]; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - Index = stage_input.Index; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/spec-constant-ternary.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/spec-constant-ternary.frag deleted file mode 100644 index 942da54f04..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/spec-constant-ternary.frag +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef SPIRV_CROSS_CONSTANT_ID_0 -#define SPIRV_CROSS_CONSTANT_ID_0 10u -#endif -static const uint s = SPIRV_CROSS_CONSTANT_ID_0; -static const bool _13 = (s > 20u); -static const uint f = _13 ? 30u : 50u; - -static float FragColor; - -struct SPIRV_Cross_Output -{ - float FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = float(f); -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/switch-unsigned-case.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/switch-unsigned-case.frag deleted file mode 100644 index d7ec92f0aa..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/switch-unsigned-case.frag +++ /dev/null @@ -1,38 +0,0 @@ -cbuffer Buff : register(b0) -{ - uint _15_TestVal : packoffset(c0); -}; - - -static float4 fsout_Color; - -struct SPIRV_Cross_Output -{ - float4 fsout_Color : SV_Target0; -}; - -void frag_main() -{ - fsout_Color = 1.0f.xxxx; - switch (_15_TestVal) - { - case 0u: - { - fsout_Color = 0.100000001490116119384765625f.xxxx; - break; - } - case 1u: - { - fsout_Color = 0.20000000298023223876953125f.xxxx; - break; - } - } -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.fsout_Color = fsout_Color; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/swizzle-scalar.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/swizzle-scalar.frag deleted file mode 100644 index ab310b82f2..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/swizzle-scalar.frag +++ /dev/null @@ -1,41 +0,0 @@ -static float4 Float; -static float vFloat; -static int4 Int; -static int vInt; -static float4 Float2; -static int4 Int2; - -struct SPIRV_Cross_Input -{ - nointerpolation float vFloat : TEXCOORD0; - nointerpolation int vInt : TEXCOORD1; -}; - -struct SPIRV_Cross_Output -{ - float4 Float : SV_Target0; - int4 Int : SV_Target1; - float4 Float2 : SV_Target2; - int4 Int2 : SV_Target3; -}; - -void frag_main() -{ - Float = vFloat.xxxx * 2.0f; - Int = vInt.xxxx * int4(2, 2, 2, 2); - Float2 = 10.0f.xxxx; - Int2 = int4(10, 10, 10, 10); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vFloat = stage_input.vFloat; - vInt = stage_input.vInt; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.Float = Float; - stage_output.Int = Int; - stage_output.Float2 = Float2; - stage_output.Int2 = Int2; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/tex-sampling-ms.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/tex-sampling-ms.frag deleted file mode 100644 index d4dd78d890..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/tex-sampling-ms.frag +++ /dev/null @@ -1,34 +0,0 @@ -Texture2DMS uTex : register(t0); -SamplerState _uTex_sampler : register(s0); - -static float4 gl_FragCoord; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - float4 gl_FragCoord : SV_Position; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - int2 _22 = int2(gl_FragCoord.xy); - FragColor = uTex.Load(_22, 0); - FragColor += uTex.Load(_22, 1); - FragColor += uTex.Load(_22, 2); - FragColor += uTex.Load(_22, 3); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - gl_FragCoord = stage_input.gl_FragCoord; - gl_FragCoord.w = 1.0 / gl_FragCoord.w; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/tex-sampling.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/tex-sampling.frag deleted file mode 100644 index fd5681b65b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/tex-sampling.frag +++ /dev/null @@ -1,71 +0,0 @@ -Texture1D tex1d : register(t0); -SamplerState _tex1d_sampler : register(s0); -Texture2D tex2d : register(t1); -SamplerState _tex2d_sampler : register(s1); -Texture3D tex3d : register(t2); -SamplerState _tex3d_sampler : register(s2); -TextureCube texCube : register(t3); -SamplerState _texCube_sampler : register(s3); -Texture1D tex1dShadow : register(t4); -SamplerComparisonState _tex1dShadow_sampler : register(s4); -Texture2D tex2dShadow : register(t5); -SamplerComparisonState _tex2dShadow_sampler : register(s5); -TextureCube texCubeShadow : register(t6); -SamplerComparisonState _texCubeShadow_sampler : register(s6); -Texture1DArray tex1dArray : register(t7); -SamplerState _tex1dArray_sampler : register(s7); -Texture2DArray tex2dArray : register(t8); -SamplerState _tex2dArray_sampler : register(s8); -TextureCubeArray texCubeArray : register(t9); -SamplerState _texCubeArray_sampler : register(s9); -Texture2D separateTex2d : register(t12); -SamplerState samplerNonDepth : register(s11); -Texture2D separateTex2dDepth : register(t13); -SamplerComparisonState samplerDepth : register(s10); - -static float texCoord1d; -static float2 texCoord2d; -static float3 texCoord3d; -static float4 texCoord4d; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - float texCoord1d : TEXCOORD0; - float2 texCoord2d : TEXCOORD1; - float3 texCoord3d : TEXCOORD2; - float4 texCoord4d : TEXCOORD3; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - float2 _41 = float2(texCoord1d, 2.0f); - float3 _88 = float3(texCoord2d, 2.0f); - float4 _135 = float4(texCoord3d, 2.0f); - float4 _162 = (((((((((((((((((((tex1d.Sample(_tex1d_sampler, texCoord1d) + tex1d.Sample(_tex1d_sampler, texCoord1d, 1)) + tex1d.SampleLevel(_tex1d_sampler, texCoord1d, 2.0f)) + tex1d.SampleGrad(_tex1d_sampler, texCoord1d, 1.0f, 2.0f)) + tex1d.Sample(_tex1d_sampler, _41.x / _41.y)) + tex1d.SampleBias(_tex1d_sampler, texCoord1d, 1.0f)) + tex2d.Sample(_tex2d_sampler, texCoord2d)) + tex2d.Sample(_tex2d_sampler, texCoord2d, int2(1, 2))) + tex2d.SampleLevel(_tex2d_sampler, texCoord2d, 2.0f)) + tex2d.SampleGrad(_tex2d_sampler, texCoord2d, float2(1.0f, 2.0f), float2(3.0f, 4.0f))) + tex2d.Sample(_tex2d_sampler, _88.xy / _88.z)) + tex2d.SampleBias(_tex2d_sampler, texCoord2d, 1.0f)) + tex3d.Sample(_tex3d_sampler, texCoord3d)) + tex3d.Sample(_tex3d_sampler, texCoord3d, int3(1, 2, 3))) + tex3d.SampleLevel(_tex3d_sampler, texCoord3d, 2.0f)) + tex3d.SampleGrad(_tex3d_sampler, texCoord3d, float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f))) + tex3d.Sample(_tex3d_sampler, _135.xyz / _135.w)) + tex3d.SampleBias(_tex3d_sampler, texCoord3d, 1.0f)) + texCube.Sample(_texCube_sampler, texCoord3d)) + texCube.SampleLevel(_texCube_sampler, texCoord3d, 2.0f)) + texCube.SampleBias(_texCube_sampler, texCoord3d, 1.0f); - float4 _333 = _162; - _333.w = ((_162.w + tex1dShadow.SampleCmp(_tex1dShadow_sampler, float3(texCoord1d, 0.0f, 0.0f).x, 0.0f)) + tex2dShadow.SampleCmp(_tex2dShadow_sampler, float3(texCoord2d, 0.0f).xy, 0.0f)) + texCubeShadow.SampleCmp(_texCubeShadow_sampler, float4(texCoord3d, 0.0f).xyz, 0.0f); - float4 _243 = tex2d.GatherRed(_tex2d_sampler, texCoord2d); - float4 _269 = tex2d.GatherRed(_tex2d_sampler, texCoord2d, int2(1, 1)); - float4 _308 = ((((((((((((((_333 + tex1dArray.Sample(_tex1dArray_sampler, texCoord2d)) + tex2dArray.Sample(_tex2dArray_sampler, texCoord3d)) + texCubeArray.Sample(_texCubeArray_sampler, texCoord4d)) + _243) + _243) + tex2d.GatherGreen(_tex2d_sampler, texCoord2d)) + tex2d.GatherBlue(_tex2d_sampler, texCoord2d)) + tex2d.GatherAlpha(_tex2d_sampler, texCoord2d)) + _269) + _269) + tex2d.GatherGreen(_tex2d_sampler, texCoord2d, int2(1, 1))) + tex2d.GatherBlue(_tex2d_sampler, texCoord2d, int2(1, 1))) + tex2d.GatherAlpha(_tex2d_sampler, texCoord2d, int2(1, 1))) + tex2d.Load(int3(int2(1, 2), 0))) + separateTex2d.Sample(samplerNonDepth, texCoord2d); - float4 _336 = _308; - _336.w = _308.w + separateTex2dDepth.SampleCmp(samplerDepth, texCoord3d.xy, texCoord3d.z); - FragColor = _336; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - texCoord1d = stage_input.texCoord1d; - texCoord2d = stage_input.texCoord2d; - texCoord3d = stage_input.texCoord3d; - texCoord4d = stage_input.texCoord4d; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/tex-sampling.sm30.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/tex-sampling.sm30.frag deleted file mode 100644 index 4a2d9b68f6..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/tex-sampling.sm30.frag +++ /dev/null @@ -1,54 +0,0 @@ -uniform sampler1D tex1d; -uniform sampler2D tex2d; -uniform sampler3D tex3d; -uniform samplerCUBE texCube; -uniform sampler1D tex1dShadow; -uniform sampler2D tex2dShadow; - -static float texCoord1d; -static float2 texCoord2d; -static float3 texCoord3d; -static float4 FragColor; -static float4 texCoord4d; - -struct SPIRV_Cross_Input -{ - float texCoord1d : TEXCOORD0; - float2 texCoord2d : TEXCOORD1; - float3 texCoord3d : TEXCOORD2; - float4 texCoord4d : TEXCOORD3; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : COLOR0; -}; - -void frag_main() -{ - float2 _34 = float2(texCoord1d, 2.0f); - float3 _73 = float3(texCoord2d, 2.0f); - float4 _112 = float4(texCoord3d, 2.0f); - float4 _139 = ((((((((((((((((tex1D(tex1d, texCoord1d) + tex1Dlod(tex1d, float4(texCoord1d, 0.0, 0.0, 2.0f))) + tex1Dgrad(tex1d, texCoord1d, 1.0f, 2.0f)) + tex1Dproj(tex1d, float4(_34.x, 0.0, 0.0, _34.y))) + tex1Dbias(tex1d, float4(texCoord1d, 0.0, 0.0, 1.0f))) + tex2D(tex2d, texCoord2d)) + tex2Dlod(tex2d, float4(texCoord2d, 0.0, 2.0f))) + tex2Dgrad(tex2d, texCoord2d, float2(1.0f, 2.0f), float2(3.0f, 4.0f))) + tex2Dproj(tex2d, float4(_73.xy, 0.0, _73.z))) + tex2Dbias(tex2d, float4(texCoord2d, 0.0, 1.0f))) + tex3D(tex3d, texCoord3d)) + tex3Dlod(tex3d, float4(texCoord3d, 2.0f))) + tex3Dgrad(tex3d, texCoord3d, float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f))) + tex3Dproj(tex3d, float4(_112.xyz, _112.w))) + tex3Dbias(tex3d, float4(texCoord3d, 1.0f))) + texCUBE(texCube, texCoord3d)) + texCUBElod(texCube, float4(texCoord3d, 2.0f))) + texCUBEbias(texCube, float4(texCoord3d, 1.0f)); - float3 _147 = float3(texCoord1d, 0.0f, 0.0f); - float4 _171 = float4(texCoord1d, 0.0f, 0.0f, 2.0f); - _171.y = 2.0f; - float3 _194 = float3(texCoord2d, 0.0f); - float4 _219 = float4(texCoord2d, 0.0f, 2.0f); - _219.z = 2.0f; - float4 _264 = _139; - _264.w = (((((((_139.w + tex1Dproj(tex1dShadow, float4(_147.x, 0.0, 0.0f, 1.0)).x) + tex1Dlod(tex1dShadow, float4(_147.x, 0.0, 0.0f, 2.0f)).x) + tex1Dproj(tex1dShadow, float4(_171.x, 0.0, 0.0f, _171.y)).x) + tex1Dbias(tex1dShadow, float4(_147.x, 0.0, 0.0f, 1.0f)).x) + tex2Dproj(tex2dShadow, float4(_194.xy, 0.0f, 1.0)).x) + tex2Dlod(tex2dShadow, float4(_194.xy, 0.0f, 2.0f)).x) + tex2Dproj(tex2dShadow, float4(_219.xy, 0.0f, _219.z)).x) + tex2Dbias(tex2dShadow, float4(_194.xy, 0.0f, 1.0f)).x; - FragColor = _264; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - texCoord1d = stage_input.texCoord1d; - texCoord2d = stage_input.texCoord2d; - texCoord3d = stage_input.texCoord3d; - texCoord4d = stage_input.texCoord4d; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = float4(FragColor); - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/texel-fetch-offset.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/texel-fetch-offset.frag deleted file mode 100644 index 9bd27697c5..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/texel-fetch-offset.frag +++ /dev/null @@ -1,32 +0,0 @@ -Texture2D uTexture : register(t0); -SamplerState _uTexture_sampler : register(s0); - -static float4 gl_FragCoord; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - float4 gl_FragCoord : SV_Position; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - int2 _22 = int2(gl_FragCoord.xy); - FragColor = uTexture.Load(int3(_22, 0), int2(1, 1)); - FragColor += uTexture.Load(int3(_22, 0), int2(-1, 1)); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - gl_FragCoord = stage_input.gl_FragCoord; - gl_FragCoord.w = 1.0 / gl_FragCoord.w; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/texture-proj-shadow.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/texture-proj-shadow.frag deleted file mode 100644 index 07e06008a0..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/texture-proj-shadow.frag +++ /dev/null @@ -1,51 +0,0 @@ -Texture1D uShadow1D : register(t0); -SamplerComparisonState _uShadow1D_sampler : register(s0); -Texture2D uShadow2D : register(t1); -SamplerComparisonState _uShadow2D_sampler : register(s1); -Texture1D uSampler1D : register(t2); -SamplerState _uSampler1D_sampler : register(s2); -Texture2D uSampler2D : register(t3); -SamplerState _uSampler2D_sampler : register(s3); -Texture3D uSampler3D : register(t4); -SamplerState _uSampler3D_sampler : register(s4); - -static float FragColor; -static float4 vClip4; -static float2 vClip2; -static float3 vClip3; - -struct SPIRV_Cross_Input -{ - float3 vClip3 : TEXCOORD0; - float4 vClip4 : TEXCOORD1; - float2 vClip2 : TEXCOORD2; -}; - -struct SPIRV_Cross_Output -{ - float FragColor : SV_Target0; -}; - -void frag_main() -{ - float4 _20 = vClip4; - _20.y = vClip4.w; - FragColor = uShadow1D.SampleCmp(_uShadow1D_sampler, _20.x / _20.y, vClip4.z / _20.y); - float4 _30 = vClip4; - _30.z = vClip4.w; - FragColor = uShadow2D.SampleCmp(_uShadow2D_sampler, _30.xy / _30.z, vClip4.z / _30.z); - FragColor = uSampler1D.Sample(_uSampler1D_sampler, vClip2.x / vClip2.y).x; - FragColor = uSampler2D.Sample(_uSampler2D_sampler, vClip3.xy / vClip3.z).x; - FragColor = uSampler3D.Sample(_uSampler3D_sampler, vClip4.xyz / vClip4.w).x; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vClip4 = stage_input.vClip4; - vClip2 = stage_input.vClip2; - vClip3 = stage_input.vClip3; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/texture-size-combined-image-sampler.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/texture-size-combined-image-sampler.frag deleted file mode 100644 index dd2eb251fc..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/texture-size-combined-image-sampler.frag +++ /dev/null @@ -1,30 +0,0 @@ -Texture2D uTex : register(t0); -SamplerState uSampler : register(s1); - -static int2 FooOut; - -struct SPIRV_Cross_Output -{ - int2 FooOut : SV_Target0; -}; - -uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) -{ - uint2 ret; - Tex.GetDimensions(Level, ret.x, ret.y, Param); - return ret; -} - -void frag_main() -{ - uint _23_dummy_parameter; - FooOut = int2(spvTextureSize(uTex, uint(0), _23_dummy_parameter)); -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FooOut = FooOut; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/unary-enclose.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/unary-enclose.frag deleted file mode 100644 index 348b91c172..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/unary-enclose.frag +++ /dev/null @@ -1,29 +0,0 @@ -static float4 FragColor; -static float4 vIn; -static int4 vIn1; - -struct SPIRV_Cross_Input -{ - float4 vIn : TEXCOORD0; - nointerpolation int4 vIn1 : TEXCOORD1; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = vIn; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vIn = stage_input.vIn; - vIn1 = stage_input.vIn1; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/unorm-snorm-packing.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/unorm-snorm-packing.frag deleted file mode 100644 index 0dd9ed3fa8..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/unorm-snorm-packing.frag +++ /dev/null @@ -1,109 +0,0 @@ -static float4 FP32Out; -static uint UNORM8; -static uint SNORM8; -static uint UNORM16; -static uint SNORM16; -static uint UNORM8Out; -static float4 FP32; -static uint SNORM8Out; -static uint UNORM16Out; -static uint SNORM16Out; - -struct SPIRV_Cross_Input -{ - nointerpolation uint SNORM8 : TEXCOORD0; - nointerpolation uint UNORM8 : TEXCOORD1; - nointerpolation uint SNORM16 : TEXCOORD2; - nointerpolation uint UNORM16 : TEXCOORD3; - nointerpolation float4 FP32 : TEXCOORD4; -}; - -struct SPIRV_Cross_Output -{ - float4 FP32Out : SV_Target0; - uint UNORM8Out : SV_Target1; - uint SNORM8Out : SV_Target2; - uint UNORM16Out : SV_Target3; - uint SNORM16Out : SV_Target4; -}; - -uint spvPackUnorm4x8(float4 value) -{ - uint4 Packed = uint4(round(saturate(value) * 255.0)); - return Packed.x | (Packed.y << 8) | (Packed.z << 16) | (Packed.w << 24); -} - -float4 spvUnpackUnorm4x8(uint value) -{ - uint4 Packed = uint4(value & 0xff, (value >> 8) & 0xff, (value >> 16) & 0xff, value >> 24); - return float4(Packed) / 255.0; -} - -uint spvPackSnorm4x8(float4 value) -{ - int4 Packed = int4(round(clamp(value, -1.0, 1.0) * 127.0)) & 0xff; - return uint(Packed.x | (Packed.y << 8) | (Packed.z << 16) | (Packed.w << 24)); -} - -float4 spvUnpackSnorm4x8(uint value) -{ - int SignedValue = int(value); - int4 Packed = int4(SignedValue << 24, SignedValue << 16, SignedValue << 8, SignedValue) >> 24; - return clamp(float4(Packed) / 127.0, -1.0, 1.0); -} - -uint spvPackUnorm2x16(float2 value) -{ - uint2 Packed = uint2(round(saturate(value) * 65535.0)); - return Packed.x | (Packed.y << 16); -} - -float2 spvUnpackUnorm2x16(uint value) -{ - uint2 Packed = uint2(value & 0xffff, value >> 16); - return float2(Packed) / 65535.0; -} - -uint spvPackSnorm2x16(float2 value) -{ - int2 Packed = int2(round(clamp(value, -1.0, 1.0) * 32767.0)) & 0xffff; - return uint(Packed.x | (Packed.y << 16)); -} - -float2 spvUnpackSnorm2x16(uint value) -{ - int SignedValue = int(value); - int2 Packed = int2(SignedValue << 16, SignedValue) >> 16; - return clamp(float2(Packed) / 32767.0, -1.0, 1.0); -} - -void frag_main() -{ - FP32Out = spvUnpackUnorm4x8(UNORM8); - FP32Out = spvUnpackSnorm4x8(SNORM8); - float2 _21 = spvUnpackUnorm2x16(UNORM16); - FP32Out = float4(_21.x, _21.y, FP32Out.z, FP32Out.w); - float2 _26 = spvUnpackSnorm2x16(SNORM16); - FP32Out = float4(_26.x, _26.y, FP32Out.z, FP32Out.w); - UNORM8Out = spvPackUnorm4x8(FP32); - SNORM8Out = spvPackSnorm4x8(FP32); - UNORM16Out = spvPackUnorm2x16(FP32.xy); - SNORM16Out = spvPackSnorm2x16(FP32.zw); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - UNORM8 = stage_input.UNORM8; - SNORM8 = stage_input.SNORM8; - UNORM16 = stage_input.UNORM16; - SNORM16 = stage_input.SNORM16; - FP32 = stage_input.FP32; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FP32Out = FP32Out; - stage_output.UNORM8Out = UNORM8Out; - stage_output.SNORM8Out = SNORM8Out; - stage_output.UNORM16Out = UNORM16Out; - stage_output.SNORM16Out = SNORM16Out; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/various-glsl-ops.frag b/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/various-glsl-ops.frag deleted file mode 100644 index 0bc2fc1a96..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/frag/various-glsl-ops.frag +++ /dev/null @@ -1,26 +0,0 @@ -static float2 interpolant; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - float2 interpolant : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = float4(0.0f, 0.0f, 0.0f, EvaluateAttributeSnapped(interpolant, 0.100000001490116119384765625f.xx).x) + float4(0.0f, 0.0f, 0.0f, ddx_coarse(interpolant.x)); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - interpolant = stage_input.interpolant; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/basic.vert b/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/basic.vert deleted file mode 100644 index e0bcebf725..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/basic.vert +++ /dev/null @@ -1,39 +0,0 @@ -cbuffer UBO : register(b0) -{ - row_major float4x4 _16_uMVP : packoffset(c0); -}; - - -static float4 gl_Position; -static float4 aVertex; -static float3 vNormal; -static float3 aNormal; - -struct SPIRV_Cross_Input -{ - float4 aVertex : TEXCOORD0; - float3 aNormal : TEXCOORD1; -}; - -struct SPIRV_Cross_Output -{ - float3 vNormal : TEXCOORD0; - float4 gl_Position : SV_Position; -}; - -void vert_main() -{ - gl_Position = mul(aVertex, _16_uMVP); - vNormal = aNormal; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - aVertex = stage_input.aVertex; - aNormal = stage_input.aNormal; - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - stage_output.vNormal = vNormal; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/clip-cull-distance.vert b/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/clip-cull-distance.vert deleted file mode 100644 index 7e0d104acd..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/clip-cull-distance.vert +++ /dev/null @@ -1,28 +0,0 @@ -static float4 gl_Position; -static float gl_ClipDistance[2]; -static float gl_CullDistance[1]; -struct SPIRV_Cross_Output -{ - float4 gl_Position : SV_Position; - float2 gl_ClipDistance0 : SV_ClipDistance0; - float gl_CullDistance0 : SV_CullDistance0; -}; - -void vert_main() -{ - gl_Position = 1.0f.xxxx; - gl_ClipDistance[0] = 0.0f; - gl_ClipDistance[1] = 0.0f; - gl_CullDistance[0] = 4.0f; -} - -SPIRV_Cross_Output main() -{ - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - stage_output.gl_ClipDistance0.x = gl_ClipDistance[0]; - stage_output.gl_ClipDistance0.y = gl_ClipDistance[1]; - stage_output.gl_CullDistance0.x = gl_CullDistance[0]; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/instancing.vert b/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/instancing.vert deleted file mode 100644 index 48b2df20d3..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/instancing.vert +++ /dev/null @@ -1,28 +0,0 @@ -static float4 gl_Position; -static int gl_VertexIndex; -static int gl_InstanceIndex; -struct SPIRV_Cross_Input -{ - uint gl_VertexIndex : SV_VertexID; - uint gl_InstanceIndex : SV_InstanceID; -}; - -struct SPIRV_Cross_Output -{ - float4 gl_Position : SV_Position; -}; - -void vert_main() -{ - gl_Position = float(gl_VertexIndex + gl_InstanceIndex).xxxx; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - gl_VertexIndex = int(stage_input.gl_VertexIndex); - gl_InstanceIndex = int(stage_input.gl_InstanceIndex); - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/invariant.vert b/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/invariant.vert deleted file mode 100644 index 5473962686..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/invariant.vert +++ /dev/null @@ -1,40 +0,0 @@ -static float4 gl_Position; -static float4 vInput0; -static float4 vInput1; -static float4 vInput2; -static float4 vColor; - -struct SPIRV_Cross_Input -{ - float4 vInput0 : TEXCOORD0; - float4 vInput1 : TEXCOORD1; - float4 vInput2 : TEXCOORD2; -}; - -struct SPIRV_Cross_Output -{ - precise float4 vColor : TEXCOORD0; - precise float4 gl_Position : SV_Position; -}; - -void vert_main() -{ - float4 _20 = vInput1 * vInput2; - float4 _21 = vInput0 + _20; - gl_Position = _21; - float4 _27 = vInput0 - vInput1; - float4 _29 = _27 * vInput2; - vColor = _29; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vInput0 = stage_input.vInput0; - vInput1 = stage_input.vInput1; - vInput2 = stage_input.vInput2; - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - stage_output.vColor = vColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/locations.vert b/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/locations.vert deleted file mode 100644 index b007582c2a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/locations.vert +++ /dev/null @@ -1,73 +0,0 @@ -struct Foo -{ - float3 a; - float3 b; - float3 c; -}; - -static const Foo _71 = { 1.0f.xxx, 1.0f.xxx, 1.0f.xxx }; - -static float4 gl_Position; -static float4 Input2; -static float4 Input4; -static float4 Input0; -static float vLocation0; -static float vLocation1; -static float vLocation2[2]; -static Foo vLocation4; -static float vLocation9; - -struct VertexOut -{ - float3 color : TEXCOORD7; - float3 foo : TEXCOORD8; -}; - -static VertexOut vout; - -struct SPIRV_Cross_Input -{ - float4 Input0 : TEXCOORD0; - float4 Input2 : TEXCOORD2; - float4 Input4 : TEXCOORD4; -}; - -struct SPIRV_Cross_Output -{ - float vLocation0 : TEXCOORD0; - float vLocation1 : TEXCOORD1; - float vLocation2[2] : TEXCOORD2; - Foo vLocation4 : TEXCOORD4; - float vLocation9 : TEXCOORD9; - float4 gl_Position : SV_Position; -}; - -void vert_main() -{ - gl_Position = ((1.0f.xxxx + Input2) + Input4) + Input0; - vLocation0 = 0.0f; - vLocation1 = 1.0f; - vLocation2[0] = 2.0f; - vLocation2[1] = 2.0f; - vLocation4 = _71; - vLocation9 = 9.0f; - vout.color = 2.0f.xxx; - vout.foo = 4.0f.xxx; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input, out VertexOut stage_outputvout) -{ - Input2 = stage_input.Input2; - Input4 = stage_input.Input4; - Input0 = stage_input.Input0; - vert_main(); - stage_outputvout = vout; - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - stage_output.vLocation0 = vLocation0; - stage_output.vLocation1 = vLocation1; - stage_output.vLocation2 = vLocation2; - stage_output.vLocation4 = vLocation4; - stage_output.vLocation9 = vLocation9; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/matrix-attribute.vert b/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/matrix-attribute.vert deleted file mode 100644 index a3d0eef56e..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/matrix-attribute.vert +++ /dev/null @@ -1,35 +0,0 @@ -static float4 gl_Position; -static float4x4 m; -static float3 pos; - -struct SPIRV_Cross_Input -{ - float3 pos : TEXCOORD0; - float4 m_0 : TEXCOORD1_0; - float4 m_1 : TEXCOORD1_1; - float4 m_2 : TEXCOORD1_2; - float4 m_3 : TEXCOORD1_3; -}; - -struct SPIRV_Cross_Output -{ - float4 gl_Position : SV_Position; -}; - -void vert_main() -{ - gl_Position = mul(float4(pos, 1.0f), m); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - m[0] = stage_input.m_0; - m[1] = stage_input.m_1; - m[2] = stage_input.m_2; - m[3] = stage_input.m_3; - pos = stage_input.pos; - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/matrix-output.vert b/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/matrix-output.vert deleted file mode 100644 index dc776cb5ec..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/matrix-output.vert +++ /dev/null @@ -1,23 +0,0 @@ -static float4 gl_Position; -static float4x4 m; - -struct SPIRV_Cross_Output -{ - float4x4 m : TEXCOORD0; - float4 gl_Position : SV_Position; -}; - -void vert_main() -{ - gl_Position = 1.0f.xxxx; - m = float4x4(float4(1.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 1.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 1.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 1.0f)); -} - -SPIRV_Cross_Output main() -{ - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - stage_output.m = m; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/no-contraction.vert b/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/no-contraction.vert deleted file mode 100644 index 10763fbee5..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/no-contraction.vert +++ /dev/null @@ -1,39 +0,0 @@ -static float4 gl_Position; -static float4 vA; -static float4 vB; -static float4 vC; - -struct SPIRV_Cross_Input -{ - float4 vA : TEXCOORD0; - float4 vB : TEXCOORD1; - float4 vC : TEXCOORD2; -}; - -struct SPIRV_Cross_Output -{ - float4 gl_Position : SV_Position; -}; - -void vert_main() -{ - precise float4 _15 = vA * vB; - precise float4 _19 = vA + vB; - precise float4 _23 = vA - vB; - precise float4 _30 = _15 + vC; - precise float4 _34 = _15 + _19; - precise float4 _36 = _34 + _23; - precise float4 _38 = _36 + _30; - gl_Position = _38; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vA = stage_input.vA; - vB = stage_input.vB; - vC = stage_input.vC; - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/no-input.vert b/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/no-input.vert deleted file mode 100644 index c98544dbe8..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/no-input.vert +++ /dev/null @@ -1,18 +0,0 @@ -static float4 gl_Position; -struct SPIRV_Cross_Output -{ - float4 gl_Position : SV_Position; -}; - -void vert_main() -{ - gl_Position = 1.0f.xxxx; -} - -SPIRV_Cross_Output main() -{ - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/point-size-compat.vert b/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/point-size-compat.vert deleted file mode 100644 index 95f45d02f0..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/point-size-compat.vert +++ /dev/null @@ -1,20 +0,0 @@ -static float4 gl_Position; -static float gl_PointSize; -struct SPIRV_Cross_Output -{ - float4 gl_Position : SV_Position; -}; - -void vert_main() -{ - gl_Position = 1.0f.xxxx; - gl_PointSize = 1.0f; -} - -SPIRV_Cross_Output main() -{ - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/qualifiers.vert b/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/qualifiers.vert deleted file mode 100644 index 13ee2a8c1c..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/qualifiers.vert +++ /dev/null @@ -1,50 +0,0 @@ -static float4 gl_Position; -static float vFlat; -static float vCentroid; -static float vSample; -static float vNoperspective; - -struct Block -{ - nointerpolation float vFlat : TEXCOORD4; - centroid float vCentroid : TEXCOORD5; - sample float vSample : TEXCOORD6; - noperspective float vNoperspective : TEXCOORD7; -}; - -static Block vout; - -struct SPIRV_Cross_Output -{ - nointerpolation float vFlat : TEXCOORD0; - centroid float vCentroid : TEXCOORD1; - sample float vSample : TEXCOORD2; - noperspective float vNoperspective : TEXCOORD3; - float4 gl_Position : SV_Position; -}; - -void vert_main() -{ - gl_Position = 1.0f.xxxx; - vFlat = 0.0f; - vCentroid = 1.0f; - vSample = 2.0f; - vNoperspective = 3.0f; - vout.vFlat = 0.0f; - vout.vCentroid = 1.0f; - vout.vSample = 2.0f; - vout.vNoperspective = 3.0f; -} - -SPIRV_Cross_Output main(out Block stage_outputvout) -{ - vert_main(); - stage_outputvout = vout; - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - stage_output.vFlat = vFlat; - stage_output.vCentroid = vCentroid; - stage_output.vSample = vSample; - stage_output.vNoperspective = vNoperspective; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/read-from-row-major-array.vert b/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/read-from-row-major-array.vert deleted file mode 100644 index 03fa4f3351..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/read-from-row-major-array.vert +++ /dev/null @@ -1,36 +0,0 @@ -cbuffer Block : register(b0) -{ - column_major float2x3 _104_var[3][4] : packoffset(c0); -}; - - -static float4 gl_Position; -static float4 a_position; -static float v_vtxResult; - -struct SPIRV_Cross_Input -{ - float4 a_position : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float v_vtxResult : TEXCOORD0; - float4 gl_Position : SV_Position; -}; - -void vert_main() -{ - gl_Position = a_position; - v_vtxResult = ((float(abs(_104_var[0][0][0].x - 2.0f) < 0.0500000007450580596923828125f) * float(abs(_104_var[0][0][0].y - 6.0f) < 0.0500000007450580596923828125f)) * float(abs(_104_var[0][0][0].z - (-6.0f)) < 0.0500000007450580596923828125f)) * ((float(abs(_104_var[0][0][1].x) < 0.0500000007450580596923828125f) * float(abs(_104_var[0][0][1].y - 5.0f) < 0.0500000007450580596923828125f)) * float(abs(_104_var[0][0][1].z - 5.0f) < 0.0500000007450580596923828125f)); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - a_position = stage_input.a_position; - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - stage_output.v_vtxResult = v_vtxResult; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/return-array.vert b/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/return-array.vert deleted file mode 100644 index bd15755633..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/return-array.vert +++ /dev/null @@ -1,29 +0,0 @@ -static float4 gl_Position; -static float4 vInput0; -static float4 vInput1; - -struct SPIRV_Cross_Input -{ - float4 vInput0 : TEXCOORD0; - float4 vInput1 : TEXCOORD1; -}; - -struct SPIRV_Cross_Output -{ - float4 gl_Position : SV_Position; -}; - -void vert_main() -{ - gl_Position = 10.0f.xxxx + vInput1; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vInput0 = stage_input.vInput0; - vInput1 = stage_input.vInput1; - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/sampler-buffers.vert b/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/sampler-buffers.vert deleted file mode 100644 index 3652185443..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/sampler-buffers.vert +++ /dev/null @@ -1,22 +0,0 @@ -Buffer uFloatSampler : register(t1); -Buffer uIntSampler : register(t2); -Buffer uUintSampler : register(t3); - -static float4 gl_Position; -struct SPIRV_Cross_Output -{ - float4 gl_Position : SV_Position; -}; - -void vert_main() -{ - gl_Position = (uFloatSampler.Load(20) + asfloat(uIntSampler.Load(40))) + asfloat(uUintSampler.Load(60)); -} - -SPIRV_Cross_Output main() -{ - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/struct-composite-decl.vert b/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/struct-composite-decl.vert deleted file mode 100644 index 76bd349775..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/struct-composite-decl.vert +++ /dev/null @@ -1,44 +0,0 @@ -struct VOut -{ - float4 a; - float4 b; - float4 c; - float4 d; -}; - -static VOut vout; -static float4 a; -static float4 b; -static float4 c; -static float4 d; - -struct SPIRV_Cross_Input -{ - float4 a : TEXCOORD0; - float4 b : TEXCOORD1; - float4 c : TEXCOORD2; - float4 d : TEXCOORD3; -}; - -struct SPIRV_Cross_Output -{ - VOut vout : TEXCOORD0; -}; - -void vert_main() -{ - VOut _26 = { a, b, c, d }; - vout = _26; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - a = stage_input.a; - b = stage_input.b; - c = stage_input.c; - d = stage_input.d; - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.vout = vout; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/texture_buffer.vert b/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/texture_buffer.vert deleted file mode 100644 index 1c92f6fe65..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-hlsl/vert/texture_buffer.vert +++ /dev/null @@ -1,21 +0,0 @@ -Buffer uSamp : register(t4); -RWBuffer uSampo : register(u5); - -static float4 gl_Position; -struct SPIRV_Cross_Output -{ - float4 gl_Position : SV_Position; -}; - -void vert_main() -{ - gl_Position = uSamp.Load(10) + uSampo[100]; -} - -SPIRV_Cross_Output main() -{ - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/amd/shader_trinary_minmax.msl21.comp b/third_party/spirv-cross/reference/opt/shaders-msl/amd/shader_trinary_minmax.msl21.comp deleted file mode 100644 index 9c33c22ca8..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/amd/shader_trinary_minmax.msl21.comp +++ /dev/null @@ -1,11 +0,0 @@ -#include -#include - -using namespace metal; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(64u, 1u, 1u); - -kernel void main0() -{ -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/atomic-decrement.asm.comp b/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/atomic-decrement.asm.comp deleted file mode 100644 index 3dc6fffcf8..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/atomic-decrement.asm.comp +++ /dev/null @@ -1,27 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wunused-variable" - -#include -#include -#include - -using namespace metal; - -struct u0_counters -{ - uint c; -}; - -// Returns 2D texture coords corresponding to 1D texel buffer coords -static inline __attribute__((always_inline)) -uint2 spvTexelBufferCoord(uint tc) -{ - return uint2(tc % 4096, tc / 4096); -} - -kernel void main0(device u0_counters& u0_counter [[buffer(0)]], texture2d u0 [[texture(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - uint _29 = atomic_fetch_sub_explicit((device atomic_uint*)&u0_counter.c, 1, memory_order_relaxed); - u0.write(uint4(uint(int(gl_GlobalInvocationID.x))), spvTexelBufferCoord(as_type(as_type(_29)))); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/atomic-increment.asm.comp b/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/atomic-increment.asm.comp deleted file mode 100644 index 6f42bb9d2b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/atomic-increment.asm.comp +++ /dev/null @@ -1,27 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wunused-variable" - -#include -#include -#include - -using namespace metal; - -struct u0_counters -{ - uint c; -}; - -// Returns 2D texture coords corresponding to 1D texel buffer coords -static inline __attribute__((always_inline)) -uint2 spvTexelBufferCoord(uint tc) -{ - return uint2(tc % 4096, tc / 4096); -} - -kernel void main0(device u0_counters& u0_counter [[buffer(0)]], texture2d u0 [[texture(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - uint _29 = atomic_fetch_add_explicit((device atomic_uint*)&u0_counter.c, 1, memory_order_relaxed); - u0.write(uint4(uint(int(gl_GlobalInvocationID.x))), spvTexelBufferCoord(as_type(as_type(_29)))); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/bitcast_iadd.asm.comp b/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/bitcast_iadd.asm.comp deleted file mode 100644 index ad61d750d4..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/bitcast_iadd.asm.comp +++ /dev/null @@ -1,29 +0,0 @@ -#include -#include - -using namespace metal; - -struct _3 -{ - int4 _m0; - uint4 _m1; -}; - -struct _4 -{ - uint4 _m0; - int4 _m1; -}; - -kernel void main0(device _3& restrict _5 [[buffer(0)]], device _4& restrict _6 [[buffer(1)]]) -{ - _6._m0 = _5._m1 + uint4(_5._m0); - _6._m0 = uint4(_5._m0) + _5._m1; - _6._m0 = _5._m1 + _5._m1; - _6._m0 = uint4(_5._m0 + _5._m0); - _6._m1 = int4(_5._m1 + _5._m1); - _6._m1 = _5._m0 + _5._m0; - _6._m1 = int4(_5._m1) + _5._m0; - _6._m1 = _5._m0 + int4(_5._m1); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/bitcast_icmp.asm.comp b/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/bitcast_icmp.asm.comp deleted file mode 100644 index 31c71daa4b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/bitcast_icmp.asm.comp +++ /dev/null @@ -1,29 +0,0 @@ -#include -#include - -using namespace metal; - -struct _3 -{ - int4 _m0; - uint4 _m1; -}; - -struct _4 -{ - uint4 _m0; - int4 _m1; -}; - -kernel void main0(device _3& restrict _5 [[buffer(0)]], device _4& restrict _6 [[buffer(1)]]) -{ - _6._m0 = select(uint4(0u), uint4(1u), int4(_5._m1) < _5._m0); - _6._m0 = select(uint4(0u), uint4(1u), int4(_5._m1) <= _5._m0); - _6._m0 = select(uint4(0u), uint4(1u), _5._m1 < uint4(_5._m0)); - _6._m0 = select(uint4(0u), uint4(1u), _5._m1 <= uint4(_5._m0)); - _6._m0 = select(uint4(0u), uint4(1u), int4(_5._m1) > _5._m0); - _6._m0 = select(uint4(0u), uint4(1u), int4(_5._m1) >= _5._m0); - _6._m0 = select(uint4(0u), uint4(1u), _5._m1 > uint4(_5._m0)); - _6._m0 = select(uint4(0u), uint4(1u), _5._m1 >= uint4(_5._m0)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/bitcast_sar.asm.comp b/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/bitcast_sar.asm.comp deleted file mode 100644 index 4176830588..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/bitcast_sar.asm.comp +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include - -using namespace metal; - -struct _3 -{ - int4 _m0; - uint4 _m1; -}; - -struct _4 -{ - uint4 _m0; - int4 _m1; -}; - -kernel void main0(device _3& _5 [[buffer(0)]], device _4& _6 [[buffer(1)]]) -{ - int4 _22 = _5._m0; - uint4 _23 = _5._m1; - _6._m0 = uint4(int4(_23) >> _22); - _6._m0 = uint4(_22 >> int4(_23)); - _6._m0 = uint4(int4(_23) >> int4(_23)); - _6._m0 = uint4(_22 >> _22); - _6._m1 = int4(_23) >> int4(_23); - _6._m1 = _22 >> _22; - _6._m1 = int4(_23) >> _22; - _6._m1 = _22 >> int4(_23); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/bitcast_sdiv.asm.comp b/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/bitcast_sdiv.asm.comp deleted file mode 100644 index 6b80dff310..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/bitcast_sdiv.asm.comp +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include - -using namespace metal; - -struct _3 -{ - int4 _m0; - uint4 _m1; -}; - -struct _4 -{ - uint4 _m0; - int4 _m1; -}; - -kernel void main0(device _3& _5 [[buffer(0)]], device _4& _6 [[buffer(1)]]) -{ - int4 _22 = _5._m0; - uint4 _23 = _5._m1; - _6._m0 = uint4(int4(_23) / _22); - _6._m0 = uint4(_22 / int4(_23)); - _6._m0 = uint4(int4(_23) / int4(_23)); - _6._m0 = uint4(_22 / _22); - _6._m1 = int4(_23) / int4(_23); - _6._m1 = _22 / _22; - _6._m1 = int4(_23) / _22; - _6._m1 = _22 / int4(_23); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/bitcast_slr.asm.comp b/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/bitcast_slr.asm.comp deleted file mode 100644 index 1dfca39181..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/bitcast_slr.asm.comp +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include - -using namespace metal; - -struct _3 -{ - int4 _m0; - uint4 _m1; -}; - -struct _4 -{ - uint4 _m0; - int4 _m1; -}; - -kernel void main0(device _3& _5 [[buffer(0)]], device _4& _6 [[buffer(1)]]) -{ - int4 _22 = _5._m0; - uint4 _23 = _5._m1; - _6._m0 = _23 >> uint4(_22); - _6._m0 = uint4(_22) >> _23; - _6._m0 = _23 >> _23; - _6._m0 = uint4(_22) >> uint4(_22); - _6._m1 = int4(_23 >> _23); - _6._m1 = int4(uint4(_22) >> uint4(_22)); - _6._m1 = int4(_23 >> uint4(_22)); - _6._m1 = int4(uint4(_22) >> _23); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/block-name-alias-global.asm.comp b/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/block-name-alias-global.asm.comp deleted file mode 100644 index 6dcc14ea8d..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/block-name-alias-global.asm.comp +++ /dev/null @@ -1,46 +0,0 @@ -#include -#include - -using namespace metal; - -struct A -{ - int a; - int b; -}; - -struct A_1 -{ - A Data[1]; -}; - -struct A_2 -{ - int a; - int b; - char _m0_final_padding[8]; -}; - -struct A_3 -{ - A_2 Data[1024]; -}; - -struct B -{ - A Data[1]; -}; - -struct B_1 -{ - A_2 Data[1024]; -}; - -kernel void main0(device A_1& C1 [[buffer(0)]], constant A_3& C2 [[buffer(1)]], device B& C3 [[buffer(2)]], constant B_1& C4 [[buffer(3)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - C1.Data[gl_GlobalInvocationID.x].a = C2.Data[gl_GlobalInvocationID.x].a; - C1.Data[gl_GlobalInvocationID.x].b = C2.Data[gl_GlobalInvocationID.x].b; - C3.Data[gl_GlobalInvocationID.x].a = C4.Data[gl_GlobalInvocationID.x].a; - C3.Data[gl_GlobalInvocationID.x].b = C4.Data[gl_GlobalInvocationID.x].b; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/buffer-write-relative-addr.asm.comp b/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/buffer-write-relative-addr.asm.comp deleted file mode 100644 index bb51fd7b1c..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/buffer-write-relative-addr.asm.comp +++ /dev/null @@ -1,29 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct cb5_struct -{ - float4 _m0[5]; -}; - -// Returns 2D texture coords corresponding to 1D texel buffer coords -static inline __attribute__((always_inline)) -uint2 spvTexelBufferCoord(uint tc) -{ - return uint2(tc % 4096, tc / 4096); -} - -kernel void main0(constant cb5_struct& cb0_5 [[buffer(0)]], texture2d u0 [[texture(0)]], uint3 gl_LocalInvocationID [[thread_position_in_threadgroup]]) -{ - uint _44 = as_type(as_type(int(gl_LocalInvocationID.x) << 4)) >> 2u; - uint4 _51 = as_type(cb0_5._m0[uint(as_type(as_type(int(gl_LocalInvocationID.x)))) + 1u]); - u0.write(_51.xxxx, spvTexelBufferCoord(_44)); - u0.write(_51.yyyy, spvTexelBufferCoord((_44 + 1u))); - u0.write(_51.zzzz, spvTexelBufferCoord((_44 + 2u))); - u0.write(_51.wwww, spvTexelBufferCoord((_44 + 3u))); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/buffer-write.asm.comp b/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/buffer-write.asm.comp deleted file mode 100644 index 8c9e23aa06..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/buffer-write.asm.comp +++ /dev/null @@ -1,24 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct cb -{ - float value; -}; - -// Returns 2D texture coords corresponding to 1D texel buffer coords -static inline __attribute__((always_inline)) -uint2 spvTexelBufferCoord(uint tc) -{ - return uint2(tc % 4096, tc / 4096); -} - -kernel void main0(constant cb& _6 [[buffer(0)]], texture2d _buffer [[texture(0)]], uint3 gl_WorkGroupID [[threadgroup_position_in_grid]], uint gl_LocalInvocationIndex [[thread_index_in_threadgroup]]) -{ - _buffer.write(float4(_6.value), spvTexelBufferCoord(((32u * gl_WorkGroupID.x) + gl_LocalInvocationIndex))); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/global-parameter-name-alias.asm.comp b/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/global-parameter-name-alias.asm.comp deleted file mode 100644 index 59fc03a752..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/global-parameter-name-alias.asm.comp +++ /dev/null @@ -1,9 +0,0 @@ -#include -#include - -using namespace metal; - -kernel void main0() -{ -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/image-load-store-short-vector.invalid.asm.comp b/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/image-load-store-short-vector.invalid.asm.comp deleted file mode 100644 index fca572e36f..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/image-load-store-short-vector.invalid.asm.comp +++ /dev/null @@ -1,22 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -static inline __attribute__((always_inline)) -void _main(thread const uint3& id, thread texture2d TargetTexture) -{ - float2 loaded = TargetTexture.read(uint2(id.xy)).xy; - float2 storeTemp = loaded + float2(1.0); - TargetTexture.write(storeTemp.xyyy, uint2((id.xy + uint2(1u)))); -} - -kernel void main0(texture2d TargetTexture [[texture(0)]], uint3 gl_WorkGroupID [[threadgroup_position_in_grid]]) -{ - uint3 id = gl_WorkGroupID; - uint3 param = id; - _main(param, TargetTexture); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/multiple-entry.asm.comp b/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/multiple-entry.asm.comp deleted file mode 100644 index 25ccf623e7..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/multiple-entry.asm.comp +++ /dev/null @@ -1,29 +0,0 @@ -#include -#include - -using namespace metal; - -struct _6 -{ - int4 _m0; - uint4 _m1; -}; - -struct _7 -{ - uint4 _m0; - int4 _m1; -}; - -kernel void main0(device _6& restrict _8 [[buffer(0)]], device _7& restrict _9 [[buffer(1)]]) -{ - _9._m0 = _8._m1 + uint4(_8._m0); - _9._m0 = uint4(_8._m0) + _8._m1; - _9._m0 = _8._m1 + _8._m1; - _9._m0 = uint4(_8._m0 + _8._m0); - _9._m1 = int4(_8._m1 + _8._m1); - _9._m1 = _8._m0 + _8._m0; - _9._m1 = int4(_8._m1) + _8._m0; - _9._m1 = _8._m0 + int4(_8._m1); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/quantize.asm.comp b/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/quantize.asm.comp deleted file mode 100644 index 1839ec7a3b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/quantize.asm.comp +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO0 -{ - float scalar; - float2 vec2_val; - float3 vec3_val; - float4 vec4_val; -}; - -kernel void main0(device SSBO0& _4 [[buffer(0)]]) -{ - _4.scalar = float(half(_4.scalar)); - _4.vec2_val = float2(half2(_4.vec2_val)); - _4.vec3_val = float3(half3(_4.vec3_val)); - _4.vec4_val = float4(half4(_4.vec4_val)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/relaxed-block-layout.asm.comp b/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/relaxed-block-layout.asm.comp deleted file mode 100644 index 6728a4e2d3..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/relaxed-block-layout.asm.comp +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct foo -{ - uint bar; - packed_float3 baz; - uchar quux; - packed_uchar4 blah; - packed_half2 wibble; -}; - -kernel void main0(device foo& _8 [[buffer(0)]], uint3 gl_LocalInvocationID [[thread_position_in_threadgroup]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint3 gl_WorkGroupID [[threadgroup_position_in_grid]], uint3 gl_NumWorkGroups [[threadgroups_per_grid]]) -{ - _8.bar = gl_LocalInvocationID.x; - _8.baz = float3(gl_GlobalInvocationID); - _8.blah = uchar4(uint4(uint4(uchar4(_8.blah)).xyz + gl_WorkGroupID, 0u)); - _8.wibble = half2(float2(half2(_8.wibble)) * float2(gl_NumWorkGroups.xy)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/specialization-constant-workgroup.asm.comp b/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/specialization-constant-workgroup.asm.comp deleted file mode 100644 index 1e2880f4e8..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/specialization-constant-workgroup.asm.comp +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - float a; -}; - -constant uint _5_tmp [[function_constant(10)]]; -constant uint _5 = is_function_constant_defined(_5_tmp) ? _5_tmp : 9u; -constant uint _6_tmp [[function_constant(12)]]; -constant uint _6 = is_function_constant_defined(_6_tmp) ? _6_tmp : 4u; -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(_5, 20u, _6); - -kernel void main0(device SSBO& _4 [[buffer(0)]]) -{ - _4.a += 1.0; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/struct-resource-name-aliasing.asm.comp b/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/struct-resource-name-aliasing.asm.comp deleted file mode 100644 index 5b1f0a0361..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/struct-resource-name-aliasing.asm.comp +++ /dev/null @@ -1,16 +0,0 @@ -#include -#include - -using namespace metal; - -struct bufA -{ - uint _data[1]; -}; - -kernel void main0(device bufA& bufA_1 [[buffer(0)]], device bufA& bufB [[buffer(1)]]) -{ - bufA_1._data[0] = 0u; - bufB._data[0] = 0u; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/variable-pointers-2.asm.comp b/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/variable-pointers-2.asm.comp deleted file mode 100644 index a276b400c0..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/variable-pointers-2.asm.comp +++ /dev/null @@ -1,51 +0,0 @@ -#include -#include - -using namespace metal; - -struct foo -{ - int a[128]; - uint b; - float2 c; -}; - -struct bar -{ - int d; -}; - -kernel void main0(device foo& buf [[buffer(0)]], constant bar& cb [[buffer(1)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint3 gl_LocalInvocationID [[thread_position_in_threadgroup]]) -{ - bool _71 = cb.d != 0; - device foo* _72 = _71 ? &buf : nullptr; - device foo* _67 = _72; - device foo* _45 = _72; - thread uint3* _79 = _71 ? &gl_GlobalInvocationID : &gl_LocalInvocationID; - thread uint3* _74 = _79; - device int* _52; - device int* _55; - _52 = &_72->a[0u]; - _55 = &buf.a[0u]; - int _57; - int _58; - for (;;) - { - _57 = *_52; - _58 = *_55; - if (_57 != _58) - { - int _66 = (_57 + _58) + int((*_79).x); - *_52 = _66; - *_55 = _66; - _52 = &_52[1u]; - _55 = &_55[1u]; - continue; - } - else - { - break; - } - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/variable-pointers-store-forwarding.asm.comp b/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/variable-pointers-store-forwarding.asm.comp deleted file mode 100644 index e1861730f5..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/variable-pointers-store-forwarding.asm.comp +++ /dev/null @@ -1,25 +0,0 @@ -#include -#include - -using namespace metal; - -struct foo -{ - int a; -}; - -struct bar -{ - int b; -}; - -kernel void main0(device foo& x [[buffer(0)]], device bar& y [[buffer(1)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - device int* _47 = (gl_GlobalInvocationID.x != 0u) ? &x.a : &y.b; - device int* _40 = _47; - device int* _33 = _47; - int _37 = x.a; - *_47 = 0; - y.b = _37 + _37; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/vector-builtin-type-cast-func.asm.comp b/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/vector-builtin-type-cast-func.asm.comp deleted file mode 100644 index afbcadd0b9..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/vector-builtin-type-cast-func.asm.comp +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -using namespace metal; - -struct cb1_struct -{ - float4 _RESERVED_IDENTIFIER_FIXUP_m0[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(16u, 16u, 1u); - -kernel void main0(constant cb1_struct& cb0_1 [[buffer(0)]], texture2d u0 [[texture(0)]], uint3 gl_LocalInvocationID [[thread_position_in_threadgroup]]) -{ - int2 _46 = int2(u0.get_width(), u0.get_height()) >> int2(uint2(4u)); - int _98; - _98 = 0; - for (; _98 < _46.y; _98++) - { - for (int _99 = 0; _99 < _46.x; ) - { - u0.write(cb0_1._RESERVED_IDENTIFIER_FIXUP_m0[0].xxxx, uint2(((_46 * int3(gl_LocalInvocationID).xy) + int2(_98, _99)))); - _99++; - continue; - } - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/vector-builtin-type-cast.asm.comp b/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/vector-builtin-type-cast.asm.comp deleted file mode 100644 index e572525ebd..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/comp/vector-builtin-type-cast.asm.comp +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -using namespace metal; - -struct cb1_struct -{ - float4 _RESERVED_IDENTIFIER_FIXUP_m0[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(16u, 16u, 1u); - -kernel void main0(constant cb1_struct& cb0_1 [[buffer(0)]], texture2d u0 [[texture(0)]], uint3 gl_LocalInvocationID [[thread_position_in_threadgroup]]) -{ - int2 _40 = int2(u0.get_width(), u0.get_height()) >> int2(uint2(4u)); - int _80; - _80 = 0; - for (; _80 < _40.y; _80++) - { - for (int _81 = 0; _81 < _40.x; ) - { - u0.write(cb0_1._RESERVED_IDENTIFIER_FIXUP_m0[0].xxxx, uint2(((_40 * int3(gl_LocalInvocationID).xy) + int2(_80, _81)))); - _81++; - continue; - } - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/combined-sampler-reuse.asm.frag b/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/combined-sampler-reuse.asm.frag deleted file mode 100644 index 703dd0a951..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/combined-sampler-reuse.asm.frag +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float2 vUV [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texture2d uTex [[texture(0)]], sampler uSampler [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor = uTex.sample(uSampler, in.vUV); - out.FragColor += uTex.sample(uSampler, in.vUV, int2(1)); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/default-member-names.asm.frag b/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/default-member-names.asm.frag deleted file mode 100644 index 82b41d1a8a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/default-member-names.asm.frag +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include - -using namespace metal; - -constant float _49 = {}; - -struct main0_out -{ - float4 m_3 [[color(0)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - out.m_3 = float4(_49); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/descriptor-array-unnamed.asm.frag b/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/descriptor-array-unnamed.asm.frag deleted file mode 100644 index 1870f67194..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/descriptor-array-unnamed.asm.frag +++ /dev/null @@ -1,48 +0,0 @@ -#include -#include - -using namespace metal; - -struct _4 -{ - float4 _m0; -}; - -struct _6 -{ - int _m0; -}; - -struct _7 -{ - float4 _m0; -}; - -struct main0_out -{ - float4 m_3 [[color(0)]]; -}; - -fragment main0_out main0(const device _4* _5_0 [[buffer(0)]], const device _4* _5_1 [[buffer(1)]], const device _4* _5_2 [[buffer(2)]], const device _4* _5_3 [[buffer(3)]], constant _6& _20 [[buffer(4)]], constant _7* _8_0 [[buffer(5)]], constant _7* _8_1 [[buffer(6)]], constant _7* _8_2 [[buffer(7)]], constant _7* _8_3 [[buffer(8)]]) -{ - const device _4* _5[] = - { - _5_0, - _5_1, - _5_2, - _5_3, - }; - - constant _7* _8[] = - { - _8_0, - _8_1, - _8_2, - _8_3, - }; - - main0_out out = {}; - out.m_3 = _5[_20._m0]->_m0 + (_8[_20._m0]->_m0 * float4(0.20000000298023223876953125)); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/disable-renamed-output.frag-output.asm.frag b/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/disable-renamed-output.frag-output.asm.frag deleted file mode 100644 index b64ccabe6b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/disable-renamed-output.frag-output.asm.frag +++ /dev/null @@ -1,35 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 o1 [[color(1)]]; - float4 o3 [[color(3)]]; - float4 o6 [[color(6)]]; - float4 o7 [[color(7)]]; -}; - -fragment main0_out main0() -{ - float4 o0; - float4 o2; - float4 o4; - float4 o5; - float gl_FragDepth; - int gl_FragStencilRefARB; - main0_out out = {}; - o0 = float4(0.0, 0.0, 0.0, 1.0); - out.o1 = float4(1.0, 0.0, 0.0, 1.0); - o2 = float4(0.0, 1.0, 0.0, 1.0); - out.o3 = float4(0.0, 0.0, 1.0, 1.0); - o4 = float4(1.0, 0.0, 1.0, 0.5); - o5 = float4(0.25); - out.o6 = float4(0.75); - out.o7 = float4(1.0); - gl_FragDepth = 0.89999997615814208984375; - gl_FragStencilRefARB = uint(127); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/empty-struct.asm.frag b/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/empty-struct.asm.frag deleted file mode 100644 index 92ac1d9f83..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/empty-struct.asm.frag +++ /dev/null @@ -1,9 +0,0 @@ -#include -#include - -using namespace metal; - -fragment void main0() -{ -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/extract-packed-from-composite.asm.frag b/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/extract-packed-from-composite.asm.frag deleted file mode 100644 index 09f8ed8c0d..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/extract-packed-from-composite.asm.frag +++ /dev/null @@ -1,30 +0,0 @@ -#include -#include - -using namespace metal; - -struct Foo -{ - packed_float3 a; - float b; -}; - -struct buf -{ - Foo results[16]; - float4 bar; -}; - -struct main0_out -{ - float4 _entryPointOutput [[color(0)]]; -}; - -fragment main0_out main0(constant buf& _11 [[buffer(0)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - int _68 = int(gl_FragCoord.x) % 16; - out._entryPointOutput = float4(dot(float3(_11.results[_68].a), _11.bar.xyz), _11.results[_68].b, 0.0, 0.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/frem.asm.frag b/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/frem.asm.frag deleted file mode 100644 index ebc73d52df..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/frem.asm.frag +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 vA [[user(locn0)]]; - float4 vB [[user(locn1)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.FragColor = fmod(in.vA, in.vB); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/function-overload-alias.asm.frag b/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/function-overload-alias.asm.frag deleted file mode 100644 index 64edee8722..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/function-overload-alias.asm.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - out.FragColor = float4(10.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/image-extract-reuse.asm.frag b/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/image-extract-reuse.asm.frag deleted file mode 100644 index 0d691b306d..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/image-extract-reuse.asm.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - int2 Size [[color(0)]]; -}; - -fragment main0_out main0(texture2d uTexture [[texture(0)]], sampler uTextureSmplr [[sampler(0)]]) -{ - main0_out out = {}; - out.Size = int2(uTexture.get_width(), uTexture.get_height()) + int2(uTexture.get_width(1), uTexture.get_height(1)); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/implicit-read-dep-phi.asm.frag b/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/implicit-read-dep-phi.asm.frag deleted file mode 100644 index dd977a99da..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/implicit-read-dep-phi.asm.frag +++ /dev/null @@ -1,50 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 v0 [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texture2d uImage [[texture(0)]], sampler uImageSmplr [[sampler(0)]]) -{ - main0_out out = {}; - float phi; - float4 _36; - int _51; - _51 = 0; - phi = 1.0; - _36 = float4(1.0, 2.0, 1.0, 2.0); - for (;;) - { - out.FragColor = _36; - if (_51 < 4) - { - if (in.v0[_51] > 0.0) - { - float2 _48 = float2(phi); - _51++; - phi += 2.0; - _36 = uImage.sample(uImageSmplr, _48, level(0.0)); - continue; - } - else - { - break; - } - } - else - { - break; - } - } - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/inf-nan-constant.asm.frag b/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/inf-nan-constant.asm.frag deleted file mode 100644 index 8537dac19a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/inf-nan-constant.asm.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float3 FragColor [[color(0)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - out.FragColor = float3(as_type(0x7f800000u), as_type(0xff800000u), as_type(0x7fc00000u)); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/interpolation-qualifiers-struct.asm.frag b/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/interpolation-qualifiers-struct.asm.frag deleted file mode 100644 index 41472adac9..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/interpolation-qualifiers-struct.asm.frag +++ /dev/null @@ -1,47 +0,0 @@ -#include -#include - -using namespace metal; - -struct Input -{ - float2 v0; - float2 v1; - float3 v2; - float4 v3; - float v4; - float v5; - float v6; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float2 Input_v0 [[user(locn0)]]; - float2 Input_v1 [[user(locn1), center_no_perspective]]; - float3 Input_v2 [[user(locn2), centroid_perspective]]; - float4 Input_v3 [[user(locn3), centroid_no_perspective]]; - float Input_v4 [[user(locn4), sample_perspective]]; - float Input_v5 [[user(locn5), sample_no_perspective]]; - float Input_v6 [[user(locn6), flat]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - Input inp = {}; - inp.v0 = in.Input_v0; - inp.v1 = in.Input_v1; - inp.v2 = in.Input_v2; - inp.v3 = in.Input_v3; - inp.v4 = in.Input_v4; - inp.v5 = in.Input_v5; - inp.v6 = in.Input_v6; - out.FragColor = float4(inp.v0.x + inp.v1.y, inp.v2.xy, ((inp.v3.w * inp.v4) + inp.v5) - inp.v6); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/line-directive.line.asm.frag b/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/line-directive.line.asm.frag deleted file mode 100644 index 3634499f28..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/line-directive.line.asm.frag +++ /dev/null @@ -1,89 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -struct main0_in -{ - float vColor [[user(locn0)]]; -}; - -#line 8 "test.frag" -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; -#line 8 "test.frag" - out.FragColor = 1.0; -#line 9 "test.frag" - out.FragColor = 2.0; -#line 10 "test.frag" - if (in.vColor < 0.0) - { -#line 12 "test.frag" - out.FragColor = 3.0; - } - else - { -#line 16 "test.frag" - out.FragColor = 4.0; - } -#line 19 "test.frag" - for (int _127 = 0; float(_127) < (40.0 + in.vColor); ) - { -#line 21 "test.frag" - out.FragColor += 0.20000000298023223876953125; -#line 22 "test.frag" - out.FragColor += 0.300000011920928955078125; -#line 19 "test.frag" - _127 += (int(in.vColor) + 5); - continue; - } -#line 25 "test.frag" - switch (int(in.vColor)) - { - case 0: - { -#line 28 "test.frag" - out.FragColor += 0.20000000298023223876953125; -#line 29 "test.frag" - break; - } - case 1: - { -#line 32 "test.frag" - out.FragColor += 0.4000000059604644775390625; -#line 33 "test.frag" - break; - } - default: - { -#line 36 "test.frag" - out.FragColor += 0.800000011920928955078125; -#line 37 "test.frag" - break; - } - } - for (;;) - { -#line 42 "test.frag" - out.FragColor += (10.0 + in.vColor); -#line 43 "test.frag" -#line 42 "test.frag" -#line 43 "test.frag" - if (out.FragColor < 100.0) - { - } - else - { - break; - } - } -#line 48 "test.frag" - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/locations-components.asm.frag b/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/locations-components.asm.frag deleted file mode 100644 index 07ab82ac1f..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/locations-components.asm.frag +++ /dev/null @@ -1,35 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 o0 [[color(0)]]; -}; - -struct main0_in -{ - float2 m_2 [[user(locn1)]]; - float m_3 [[user(locn1_2)]]; - float m_4 [[user(locn2), flat]]; - uint m_5 [[user(locn2_1)]]; - uint m_6 [[user(locn2_2)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - float4 v1; - v1 = float4(in.m_2.x, in.m_2.y, v1.z, v1.w); - v1.z = in.m_3; - float4 v2; - v2.x = in.m_4; - v2.y = as_type(in.m_5); - v2.z = as_type(in.m_6); - out.o0.y = float(as_type(as_type(as_type(v2.y) + as_type(v2.z)))); - out.o0.x = v1.y + v2.x; - out.o0 = float4(out.o0.x, out.o0.y, v1.z, v1.x); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/lut-promotion-initializer.asm.frag b/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/lut-promotion-initializer.asm.frag deleted file mode 100644 index 726976631a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/lut-promotion-initializer.asm.frag +++ /dev/null @@ -1,94 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -constant spvUnsafeArray _46 = spvUnsafeArray({ 1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0, 4.0 }); -constant spvUnsafeArray _76 = spvUnsafeArray({ float4(0.0), float4(1.0), float4(8.0), float4(5.0) }); -constant spvUnsafeArray _90 = spvUnsafeArray({ float4(20.0), float4(30.0), float4(50.0), float4(60.0) }); - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -struct main0_in -{ - int index [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - spvUnsafeArray foobar = spvUnsafeArray({ float4(0.0), float4(1.0), float4(8.0), float4(5.0) }); - spvUnsafeArray baz = spvUnsafeArray({ float4(0.0), float4(1.0), float4(8.0), float4(5.0) }); - main0_out out = {}; - out.FragColor = _46[in.index]; - if (in.index < 10) - { - out.FragColor += _46[in.index ^ 1]; - } - else - { - out.FragColor += _46[in.index & 1]; - } - bool _99 = in.index > 30; - if (_99) - { - out.FragColor += _76[in.index & 3].y; - } - else - { - out.FragColor += _76[in.index & 1].x; - } - if (_99) - { - foobar[1].z = 20.0; - } - int _37 = in.index & 3; - out.FragColor += foobar[_37].z; - baz = _90; - out.FragColor += baz[_37].z; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/min-lod.msl22.asm.frag b/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/min-lod.msl22.asm.frag deleted file mode 100644 index 5193b2cda8..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/min-lod.msl22.asm.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float2 vUV [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texture2d uSampler [[texture(0)]], sampler uSamplerSmplr [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor = uSampler.sample(uSamplerSmplr, in.vUV, min_lod_clamp(4.0)); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/op-constant-null.asm.frag b/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/op-constant-null.asm.frag deleted file mode 100644 index e1badb517a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/op-constant-null.asm.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - out.FragColor = 0.0; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/op-image-sampled-image.asm.frag b/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/op-image-sampled-image.asm.frag deleted file mode 100644 index 45f0ca52f4..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/op-image-sampled-image.asm.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct push_cb -{ - float4 cb0[1]; -}; - -struct main0_out -{ - float4 o0 [[color(0)]]; -}; - -fragment main0_out main0(constant push_cb& _19 [[buffer(0)]], texture2d t0 [[texture(0)]], sampler dummy_sampler [[sampler(0)]]) -{ - main0_out out = {}; - out.o0 = t0.read(uint2(as_type(_19.cb0[0u].zw)) + uint2(int2(-1, -2)), as_type(0.0)); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/pass-by-value.asm.frag b/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/pass-by-value.asm.frag deleted file mode 100644 index 3858f6dac7..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/pass-by-value.asm.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct Registers -{ - float foo; -}; - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -fragment main0_out main0(constant Registers& registers [[buffer(0)]]) -{ - main0_out out = {}; - out.FragColor = 10.0 + registers.foo; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/phi-loop-variable.asm.frag b/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/phi-loop-variable.asm.frag deleted file mode 100644 index 92ac1d9f83..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/phi-loop-variable.asm.frag +++ /dev/null @@ -1,9 +0,0 @@ -#include -#include - -using namespace metal; - -fragment void main0() -{ -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/pull-model-interpolation.asm.msl23.frag b/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/pull-model-interpolation.asm.msl23.frag deleted file mode 100644 index a4017897db..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/pull-model-interpolation.asm.msl23.frag +++ /dev/null @@ -1,181 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct _13 -{ - float4 x; - float4 y; - float4 z; - spvUnsafeArray u; - spvUnsafeArray v; - spvUnsafeArray w; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - interpolant foo [[user(locn0)]]; - interpolant bar [[user(locn1)]]; - interpolant baz [[user(locn2)]]; - int sid [[user(locn3)]]; - interpolant a_0 [[user(locn4)]]; - interpolant a_1 [[user(locn5)]]; - interpolant b_0 [[user(locn6)]]; - interpolant b_1 [[user(locn7)]]; - interpolant c_0 [[user(locn8)]]; - interpolant c_1 [[user(locn9)]]; - interpolant m_13_x [[user(locn10)]]; - interpolant m_13_y [[user(locn11)]]; - interpolant m_13_z [[user(locn12)]]; - interpolant m_13_u_0 [[user(locn13)]]; - interpolant m_13_u_1 [[user(locn14)]]; - interpolant m_13_v_0 [[user(locn15)]]; - interpolant m_13_v_1 [[user(locn16)]]; - interpolant m_13_w_0 [[user(locn17)]]; - interpolant m_13_w_1 [[user(locn18)]]; - interpolant m_13_w_2 [[user(locn19)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], uint gl_SampleID [[sample_id]]) -{ - main0_out out = {}; - spvUnsafeArray a = {}; - _13 s = {}; - spvUnsafeArray b = {}; - spvUnsafeArray c = {}; - a[0] = in.a_0.interpolate_at_center(); - a[1] = in.a_1.interpolate_at_center(); - s.x = in.m_13_x.interpolate_at_center(); - s.y = in.m_13_y.interpolate_at_centroid(); - s.z = in.m_13_z.interpolate_at_sample(gl_SampleID); - s.u[0] = in.m_13_u_0.interpolate_at_centroid(); - s.u[1] = in.m_13_u_1.interpolate_at_centroid(); - s.v[0] = in.m_13_v_0.interpolate_at_sample(gl_SampleID); - s.v[1] = in.m_13_v_1.interpolate_at_sample(gl_SampleID); - s.w[0] = in.m_13_w_0.interpolate_at_center(); - s.w[1] = in.m_13_w_1.interpolate_at_center(); - s.w[2] = in.m_13_w_2.interpolate_at_center(); - b[0] = in.b_0.interpolate_at_centroid(); - b[1] = in.b_1.interpolate_at_centroid(); - c[0] = in.c_0.interpolate_at_sample(gl_SampleID); - c[1] = in.c_1.interpolate_at_sample(gl_SampleID); - out.FragColor = in.foo.interpolate_at_center(); - out.FragColor += in.foo.interpolate_at_centroid(); - out.FragColor += in.foo.interpolate_at_sample(in.sid); - out.FragColor += in.foo.interpolate_at_offset(float2(0.100000001490116119384765625) + 0.4375); - float3 _65 = out.FragColor.xyz + in.bar.interpolate_at_centroid(); - out.FragColor = float4(_65.x, _65.y, _65.z, out.FragColor.w); - float3 _71 = out.FragColor.xyz + in.bar.interpolate_at_centroid(); - out.FragColor = float4(_71.x, _71.y, _71.z, out.FragColor.w); - float3 _78 = out.FragColor.xyz + in.bar.interpolate_at_sample(in.sid); - out.FragColor = float4(_78.x, _78.y, _78.z, out.FragColor.w); - float3 _84 = out.FragColor.xyz + in.bar.interpolate_at_offset(float2(-0.100000001490116119384765625) + 0.4375); - out.FragColor = float4(_84.x, _84.y, _84.z, out.FragColor.w); - float2 _91 = out.FragColor.xy + b[0]; - out.FragColor = float4(_91.x, _91.y, out.FragColor.z, out.FragColor.w); - float2 _98 = out.FragColor.xy + in.b_1.interpolate_at_centroid(); - out.FragColor = float4(_98.x, _98.y, out.FragColor.z, out.FragColor.w); - float2 _105 = out.FragColor.xy + in.b_0.interpolate_at_sample(2); - out.FragColor = float4(_105.x, _105.y, out.FragColor.z, out.FragColor.w); - float2 _112 = out.FragColor.xy + in.b_1.interpolate_at_offset(float2(-0.100000001490116119384765625, 0.100000001490116119384765625) + 0.4375); - out.FragColor = float4(_112.x, _112.y, out.FragColor.z, out.FragColor.w); - float2 _119 = out.FragColor.xy + c[0]; - out.FragColor = float4(_119.x, _119.y, out.FragColor.z, out.FragColor.w); - float2 _127 = out.FragColor.xy + in.c_1.interpolate_at_centroid().xy; - out.FragColor = float4(_127.x, _127.y, out.FragColor.z, out.FragColor.w); - float2 _135 = out.FragColor.xy + in.c_0.interpolate_at_sample(2).yx; - out.FragColor = float4(_135.x, _135.y, out.FragColor.z, out.FragColor.w); - float2 _143 = out.FragColor.xy + in.c_1.interpolate_at_offset(float2(-0.100000001490116119384765625, 0.100000001490116119384765625) + 0.4375).xx; - out.FragColor = float4(_143.x, _143.y, out.FragColor.z, out.FragColor.w); - out.FragColor += s.x; - out.FragColor += in.m_13_x.interpolate_at_centroid(); - out.FragColor += in.m_13_x.interpolate_at_sample(in.sid); - out.FragColor += in.m_13_x.interpolate_at_offset(float2(0.100000001490116119384765625) + 0.4375); - out.FragColor += s.y; - out.FragColor += in.m_13_y.interpolate_at_centroid(); - out.FragColor += in.m_13_y.interpolate_at_sample(in.sid); - out.FragColor += in.m_13_y.interpolate_at_offset(float2(-0.100000001490116119384765625) + 0.4375); - float2 _184 = out.FragColor.xy + s.v[0]; - out.FragColor = float4(_184.x, _184.y, out.FragColor.z, out.FragColor.w); - float2 _191 = out.FragColor.xy + in.m_13_v_1.interpolate_at_centroid(); - out.FragColor = float4(_191.x, _191.y, out.FragColor.z, out.FragColor.w); - float2 _198 = out.FragColor.xy + in.m_13_v_0.interpolate_at_sample(2); - out.FragColor = float4(_198.x, _198.y, out.FragColor.z, out.FragColor.w); - float2 _205 = out.FragColor.xy + in.m_13_v_1.interpolate_at_offset(float2(-0.100000001490116119384765625, 0.100000001490116119384765625) + 0.4375); - out.FragColor = float4(_205.x, _205.y, out.FragColor.z, out.FragColor.w); - out.FragColor.x += s.w[0]; - out.FragColor.x += in.m_13_w_1.interpolate_at_centroid(); - out.FragColor.x += in.m_13_w_0.interpolate_at_sample(2); - out.FragColor.x += in.m_13_w_1.interpolate_at_offset(float2(-0.100000001490116119384765625, 0.100000001490116119384765625) + 0.4375); - float2 _328 = out.FragColor.xy + in.baz.interpolate_at_sample(gl_SampleID); - out.FragColor = float4(_328.x, _328.y, out.FragColor.z, out.FragColor.w); - out.FragColor.x += in.baz.interpolate_at_centroid().x; - out.FragColor.y += in.baz.interpolate_at_sample(3).y; - out.FragColor.z += in.baz.interpolate_at_offset(float2(-0.100000001490116119384765625, 0.100000001490116119384765625) + 0.4375).y; - float2 _353 = out.FragColor.xy + in.a_1.interpolate_at_centroid(); - out.FragColor = float4(_353.x, _353.y, out.FragColor.z, out.FragColor.w); - float2 _360 = out.FragColor.xy + in.a_0.interpolate_at_sample(2); - out.FragColor = float4(_360.x, _360.y, out.FragColor.z, out.FragColor.w); - float2 _367 = out.FragColor.xy + in.a_1.interpolate_at_offset(float2(-0.100000001490116119384765625, 0.100000001490116119384765625) + 0.4375); - out.FragColor = float4(_367.x, _367.y, out.FragColor.z, out.FragColor.w); - out.FragColor += s.z; - float2 _379 = out.FragColor.xy + in.m_13_z.interpolate_at_centroid().yy; - out.FragColor = float4(_379.x, _379.y, out.FragColor.z, out.FragColor.w); - float2 _387 = out.FragColor.yz + in.m_13_z.interpolate_at_sample(3).xy; - out.FragColor = float4(out.FragColor.x, _387.x, _387.y, out.FragColor.w); - float2 _395 = out.FragColor.zw + in.m_13_z.interpolate_at_offset(float2(-0.100000001490116119384765625, 0.100000001490116119384765625) + 0.4375).wx; - out.FragColor = float4(out.FragColor.x, out.FragColor.y, _395.x, _395.y); - out.FragColor += s.u[0]; - out.FragColor += in.m_13_u_1.interpolate_at_centroid(); - out.FragColor += in.m_13_u_0.interpolate_at_sample(2); - out.FragColor += in.m_13_u_1.interpolate_at_offset(float2(-0.100000001490116119384765625, 0.100000001490116119384765625) + 0.4375); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/sample-and-compare.asm.frag b/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/sample-and-compare.asm.frag deleted file mode 100644 index aed8fd382a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/sample-and-compare.asm.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float out_var_SV_Target [[color(0)]]; -}; - -struct main0_in -{ - float2 in_var_TEXCOORD0 [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], depth2d g_Texture [[texture(0)]], sampler g_Sampler [[sampler(0)]], sampler g_CompareSampler [[sampler(1)]]) -{ - main0_out out = {}; - out.out_var_SV_Target = float4(g_Texture.sample(g_Sampler, in.in_var_TEXCOORD0)).x + g_Texture.sample_compare(g_CompareSampler, in.in_var_TEXCOORD0, 0.5, level(0.0)); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/single-function-private-lut.asm.frag b/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/single-function-private-lut.asm.frag deleted file mode 100644 index 4c0ea901dd..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/single-function-private-lut.asm.frag +++ /dev/null @@ -1,79 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct myType -{ - float data; -}; - -struct main0_out -{ - float4 o_color [[color(0)]]; -}; - -// Implementation of the GLSL mod() function, which is slightly different than Metal fmod() -template -inline Tx mod(Tx x, Ty y) -{ - return x - y * floor(x / y); -} - -fragment main0_out main0(float4 gl_FragCoord [[position]]) -{ - spvUnsafeArray _21 = spvUnsafeArray({ myType{ 0.0 }, myType{ 1.0 }, myType{ 0.0 }, myType{ 1.0 }, myType{ 0.0 } }); - - main0_out out = {}; - if (_21[int(mod(gl_FragCoord.x, 4.0))].data > 0.0) - { - out.o_color = float4(0.0, 1.0, 0.0, 1.0); - } - else - { - out.o_color = float4(1.0, 0.0, 0.0, 1.0); - } - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/srem.asm.frag b/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/srem.asm.frag deleted file mode 100644 index f0cdd574de..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/srem.asm.frag +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - int4 vA [[user(locn0)]]; - int4 vB [[user(locn1)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.FragColor = float4(in.vA - in.vB * (in.vA / in.vB)); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/storage-class-output-initializer.asm.frag b/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/storage-class-output-initializer.asm.frag deleted file mode 100644 index d59013daaf..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/storage-class-output-initializer.asm.frag +++ /dev/null @@ -1,65 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -constant spvUnsafeArray _20 = spvUnsafeArray({ float4(1.0, 2.0, 3.0, 4.0), float4(10.0) }); - -struct main0_out -{ - float4 FragColors_0 [[color(0)]]; - float4 FragColors_1 [[color(1)]]; - float4 FragColor [[color(2)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - spvUnsafeArray FragColors = spvUnsafeArray({ float4(1.0, 2.0, 3.0, 4.0), float4(10.0) }); - out.FragColor = float4(5.0); - out.FragColors_0 = FragColors[0]; - out.FragColors_1 = FragColors[1]; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/texel-fetch-no-lod.asm.frag b/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/texel-fetch-no-lod.asm.frag deleted file mode 100644 index dd308c32ad..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/texel-fetch-no-lod.asm.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(texture2d uTexture [[texture(0)]], sampler uTextureSmplr [[sampler(0)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - out.FragColor = uTexture.read(uint2(int2(gl_FragCoord.xy)), 0); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/texture-atomics.asm.frag b/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/texture-atomics.asm.frag deleted file mode 100644 index ab5be64984..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/texture-atomics.asm.frag +++ /dev/null @@ -1,121 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" -#pragma clang diagnostic ignored "-Wunused-variable" - -#include -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct type_StructuredBuffer_v4float -{ - spvUnsafeArray _m0; -}; - -struct type_Globals -{ - uint2 ShadowTileListGroupSize; -}; - -constant float3 _70 = {}; - -struct main0_out -{ - float4 out_var_SV_Target0 [[color(0)]]; -}; - -struct main0_in -{ - uint in_var_TEXCOORD0 [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], const device type_StructuredBuffer_v4float& CulledObjectBoxBounds [[buffer(0)]], constant type_Globals& _Globals [[buffer(1)]], texture2d RWShadowTileNumCulledObjects [[texture(2)]], device atomic_uint* RWShadowTileNumCulledObjects_atomic [[buffer(2)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - uint2 _77 = uint2(gl_FragCoord.xy); - uint _78 = _77.y; - uint _83 = _77.x; - float2 _91 = float2(float(_83), float((_Globals.ShadowTileListGroupSize.y - 1u) - _78)); - float2 _93 = float2(_Globals.ShadowTileListGroupSize); - float2 _96 = ((_91 / _93) * float2(2.0)) - float2(1.0); - float2 _100 = (((_91 + float2(1.0)) / _93) * float2(2.0)) - float2(1.0); - float3 _102 = float3(_100.x, _100.y, _70.z); - _102.z = 1.0; - uint _103 = in.in_var_TEXCOORD0 * 5u; - uint _107 = _103 + 1u; - if (all(CulledObjectBoxBounds._m0[_107].xy > _96.xy) && all(CulledObjectBoxBounds._m0[_103].xyz < _102)) - { - float _122 = _96.x; - float _123 = _96.y; - spvUnsafeArray _73; - _73[0] = float3(_122, _123, -1000.0); - float _126 = _100.x; - _73[1] = float3(_126, _123, -1000.0); - float _129 = _100.y; - _73[2] = float3(_122, _129, -1000.0); - _73[3] = float3(_126, _129, -1000.0); - _73[4] = float3(_122, _123, 1.0); - _73[5] = float3(_126, _123, 1.0); - _73[6] = float3(_122, _129, 1.0); - _73[7] = float3(_126, _129, 1.0); - float3 _155; - float3 _158; - _155 = float3(-500000.0); - _158 = float3(500000.0); - for (int _160 = 0; _160 < 8; ) - { - float3 _166 = _73[_160] - (float3(0.5) * (CulledObjectBoxBounds._m0[_103].xyz + CulledObjectBoxBounds._m0[_107].xyz)); - float3 _170 = float3(dot(_166, CulledObjectBoxBounds._m0[_103 + 2u].xyz), dot(_166, CulledObjectBoxBounds._m0[_103 + 3u].xyz), dot(_166, CulledObjectBoxBounds._m0[_103 + 4u].xyz)); - _155 = fast::max(_155, _170); - _158 = fast::min(_158, _170); - _160++; - continue; - } - if (all(_158 < float3(1.0)) && all(_155 > float3(-1.0))) - { - uint _179 = atomic_fetch_add_explicit((device atomic_uint*)&RWShadowTileNumCulledObjects_atomic[(_78 * _Globals.ShadowTileListGroupSize.x) + _83], 1u, memory_order_relaxed); - } - } - out.out_var_SV_Target0 = float4(0.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/texture-atomics.asm.graphics-robust-access.frag b/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/texture-atomics.asm.graphics-robust-access.frag deleted file mode 100644 index ca5e3eadb7..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/texture-atomics.asm.graphics-robust-access.frag +++ /dev/null @@ -1,122 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" -#pragma clang diagnostic ignored "-Wunused-variable" - -#include -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct type_StructuredBuffer_v4float -{ - spvUnsafeArray _m0; -}; - -struct type_Globals -{ - uint2 ShadowTileListGroupSize; -}; - -constant float3 _70 = {}; - -struct main0_out -{ - float4 out_var_SV_Target0 [[color(0)]]; -}; - -struct main0_in -{ - uint in_var_TEXCOORD0 [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], constant uint* spvBufferSizeConstants [[buffer(25)]], const device type_StructuredBuffer_v4float& CulledObjectBoxBounds [[buffer(0)]], constant type_Globals& _Globals [[buffer(1)]], texture2d RWShadowTileNumCulledObjects [[texture(2)]], device atomic_uint* RWShadowTileNumCulledObjects_atomic [[buffer(2)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - constant uint& CulledObjectBoxBoundsBufferSize = spvBufferSizeConstants[0]; - uint2 _77 = uint2(gl_FragCoord.xy); - uint _78 = _77.y; - uint _83 = _77.x; - float2 _91 = float2(float(_83), float((_Globals.ShadowTileListGroupSize.y - 1u) - _78)); - float2 _93 = float2(_Globals.ShadowTileListGroupSize); - float2 _96 = ((_91 / _93) * float2(2.0)) - float2(1.0); - float2 _100 = (((_91 + float2(1.0)) / _93) * float2(2.0)) - float2(1.0); - float3 _102 = float3(_100.x, _100.y, _70.z); - _102.z = 1.0; - uint _103 = in.in_var_TEXCOORD0 * 5u; - uint _186 = clamp(_103 + 1u, 0u, ((CulledObjectBoxBoundsBufferSize - 0) / 16) - 1u); - if (all(CulledObjectBoxBounds._m0[_186].xy > _96.xy) && all(CulledObjectBoxBounds._m0[clamp(_103, 0u, ((CulledObjectBoxBoundsBufferSize - 0) / 16) - 1u)].xyz < _102)) - { - float _122 = _96.x; - float _123 = _96.y; - spvUnsafeArray _73; - _73[0] = float3(_122, _123, -1000.0); - float _126 = _100.x; - _73[1] = float3(_126, _123, -1000.0); - float _129 = _100.y; - _73[2] = float3(_122, _129, -1000.0); - _73[3] = float3(_126, _129, -1000.0); - _73[4] = float3(_122, _123, 1.0); - _73[5] = float3(_126, _123, 1.0); - _73[6] = float3(_122, _129, 1.0); - _73[7] = float3(_126, _129, 1.0); - float3 _155; - float3 _158; - _155 = float3(-500000.0); - _158 = float3(500000.0); - for (int _160 = 0; _160 < 8; ) - { - float3 _166 = _73[int(clamp(uint(_160), uint(0), uint(7)))] - (float3(0.5) * (CulledObjectBoxBounds._m0[clamp(_103, 0u, ((CulledObjectBoxBoundsBufferSize - 0) / 16) - 1u)].xyz + CulledObjectBoxBounds._m0[_186].xyz)); - float3 _170 = float3(dot(_166, CulledObjectBoxBounds._m0[clamp(_103 + 2u, 0u, ((CulledObjectBoxBoundsBufferSize - 0) / 16) - 1u)].xyz), dot(_166, CulledObjectBoxBounds._m0[clamp(_103 + 3u, 0u, ((CulledObjectBoxBoundsBufferSize - 0) / 16) - 1u)].xyz), dot(_166, CulledObjectBoxBounds._m0[clamp(_103 + 4u, 0u, ((CulledObjectBoxBoundsBufferSize - 0) / 16) - 1u)].xyz)); - _155 = fast::max(_155, _170); - _158 = fast::min(_158, _170); - _160++; - continue; - } - if (all(_158 < float3(1.0)) && all(_155 > float3(-1.0))) - { - uint _179 = atomic_fetch_add_explicit((device atomic_uint*)&RWShadowTileNumCulledObjects_atomic[(_78 * _Globals.ShadowTileListGroupSize.x) + _83], 1u, memory_order_relaxed); - } - } - out.out_var_SV_Target0 = float4(0.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/texture-sampling-fp16.asm.frag b/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/texture-sampling-fp16.asm.frag deleted file mode 100644 index 97345820b6..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/texture-sampling-fp16.asm.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - half4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - half2 UV [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texture2d uTexture [[texture(0)]], sampler uTextureSmplr [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor = half4(uTexture.sample(uTextureSmplr, float2(in.UV))); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/undef-variable-store.asm.frag b/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/undef-variable-store.asm.frag deleted file mode 100644 index a5380c51dc..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/undef-variable-store.asm.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 _entryPointOutput [[color(0)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - out._entryPointOutput = float4(1.0, 1.0, 0.0, 1.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/unknown-depth-state.asm.frag b/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/unknown-depth-state.asm.frag deleted file mode 100644 index dc87406538..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/unknown-depth-state.asm.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -struct main0_in -{ - float3 vUV [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], depth2d uShadow [[texture(0)]], depth2d uTexture [[texture(1)]], sampler uShadowSmplr [[sampler(0)]], sampler uSampler [[sampler(1)]]) -{ - main0_out out = {}; - out.FragColor = uShadow.sample_compare(uShadowSmplr, in.vUV.xy, in.vUV.z) + uTexture.sample_compare(uSampler, in.vUV.xy, in.vUV.z); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/unord-relational-op.asm.frag b/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/unord-relational-op.asm.frag deleted file mode 100644 index aee290f5a2..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/unord-relational-op.asm.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -constant float a_tmp [[function_constant(1)]]; -constant float a = is_function_constant_defined(a_tmp) ? a_tmp : 1.0; -constant float b_tmp [[function_constant(2)]]; -constant float b = is_function_constant_defined(b_tmp) ? b_tmp : 2.0; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - out.FragColor = float4(a + b); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/unreachable.asm.frag b/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/unreachable.asm.frag deleted file mode 100644 index 918a0b9c13..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/unreachable.asm.frag +++ /dev/null @@ -1,36 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - int counter [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - float4 _33; - for (;;) - { - if (in.counter == 10) - { - _33 = float4(10.0); - break; - } - else - { - _33 = float4(30.0); - break; - } - } - out.FragColor = _33; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/vector-shuffle-oom.asm.frag b/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/vector-shuffle-oom.asm.frag deleted file mode 100644 index ed2076d2cb..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/frag/vector-shuffle-oom.asm.frag +++ /dev/null @@ -1,282 +0,0 @@ -#include -#include - -using namespace metal; - -struct _28 -{ - float4 _m0; -}; - -struct _6 -{ - float4 _m0; - float _m1; - float4 _m2; -}; - -struct _10 -{ - float3 _m0; - packed_float3 _m1; - float _m2; - packed_float3 _m3; - float _m4; - packed_float3 _m5; - float _m6; - packed_float3 _m7; - float _m8; - packed_float3 _m9; - float _m10; - packed_float3 _m11; - float _m12; - float2 _m13; - float2 _m14; - packed_float3 _m15; - float _m16; - float _m17; - float _m18; - float _m19; - float _m20; - float4 _m21; - float4 _m22; - float4x4 _m23; - float4 _m24; -}; - -struct _18 -{ - float4x4 _m0; - float4x4 _m1; - float4x4 _m2; - float4x4 _m3; - float4 _m4; - float4 _m5; - float _m6; - float _m7; - float _m8; - float _m9; - packed_float3 _m10; - float _m11; - packed_float3 _m12; - float _m13; - packed_float3 _m14; - float _m15; - packed_float3 _m16; - float _m17; - float _m18; - float _m19; - float2 _m20; - float2 _m21; - float2 _m22; - float4 _m23; - float2 _m24; - float2 _m25; - float2 _m26; - char _m27_pad[8]; - packed_float3 _m27; - float _m28; - float _m29; - float _m30; - float _m31; - float _m32; - float2 _m33; - float _m34; - float _m35; - float3 _m36; - float4x4 _m37[2]; - float4 _m38[2]; -}; - -constant _28 _74 = {}; - -struct main0_out -{ - float4 m_5 [[color(0)]]; -}; - -fragment main0_out main0(constant _6& _7 [[buffer(0)]], constant _10& _11 [[buffer(1)]], constant _18& _19 [[buffer(2)]], texture2d _8 [[texture(0)]], texture2d _12 [[texture(1)]], texture2d _14 [[texture(2)]], sampler _9 [[sampler(0)]], sampler _13 [[sampler(1)]], sampler _15 [[sampler(2)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - float2 _82 = gl_FragCoord.xy * _19._m23.xy; - float4 _88 = _7._m2 * _7._m0.xyxy; - float2 _95 = _88.xy; - float2 _96 = _88.zw; - float2 _97 = fast::clamp(_82 + (float2(0.0, -2.0) * _7._m0.xy), _95, _96); - float3 _109 = float3(_11._m5) * fast::clamp(_8.sample(_9, _97, level(0.0)).w * _7._m1, 0.0, 1.0); - float4 _113 = _12.sample(_13, _97, level(0.0)); - float _114 = _113.y; - float3 _129; - if (_114 > 0.0) - { - _129 = _109 + (_14.sample(_15, _97, level(0.0)).xyz * fast::clamp(_114 * _113.z, 0.0, 1.0)); - } - else - { - _129 = _109; - } - float2 _144 = fast::clamp(_82 + (float2(-1.0) * _7._m0.xy), _95, _96); - float3 _156 = float3(_11._m5) * fast::clamp(_8.sample(_9, _144, level(0.0)).w * _7._m1, 0.0, 1.0); - float4 _160 = _12.sample(_13, _144, level(0.0)); - float _161 = _160.y; - float3 _176; - if (_161 > 0.0) - { - _176 = _156 + (_14.sample(_15, _144, level(0.0)).xyz * fast::clamp(_161 * _160.z, 0.0, 1.0)); - } - else - { - _176 = _156; - } - float2 _191 = fast::clamp(_82 + (float2(0.0, -1.0) * _7._m0.xy), _95, _96); - float3 _203 = float3(_11._m5) * fast::clamp(_8.sample(_9, _191, level(0.0)).w * _7._m1, 0.0, 1.0); - float4 _207 = _12.sample(_13, _191, level(0.0)); - float _208 = _207.y; - float3 _223; - if (_208 > 0.0) - { - _223 = _203 + (_14.sample(_15, _191, level(0.0)).xyz * fast::clamp(_208 * _207.z, 0.0, 1.0)); - } - else - { - _223 = _203; - } - float2 _238 = fast::clamp(_82 + (float2(1.0, -1.0) * _7._m0.xy), _95, _96); - float3 _250 = float3(_11._m5) * fast::clamp(_8.sample(_9, _238, level(0.0)).w * _7._m1, 0.0, 1.0); - float4 _254 = _12.sample(_13, _238, level(0.0)); - float _255 = _254.y; - float3 _270; - if (_255 > 0.0) - { - _270 = _250 + (_14.sample(_15, _238, level(0.0)).xyz * fast::clamp(_255 * _254.z, 0.0, 1.0)); - } - else - { - _270 = _250; - } - float2 _285 = fast::clamp(_82 + (float2(-2.0, 0.0) * _7._m0.xy), _95, _96); - float3 _297 = float3(_11._m5) * fast::clamp(_8.sample(_9, _285, level(0.0)).w * _7._m1, 0.0, 1.0); - float4 _301 = _12.sample(_13, _285, level(0.0)); - float _302 = _301.y; - float3 _317; - if (_302 > 0.0) - { - _317 = _297 + (_14.sample(_15, _285, level(0.0)).xyz * fast::clamp(_302 * _301.z, 0.0, 1.0)); - } - else - { - _317 = _297; - } - float2 _332 = fast::clamp(_82 + (float2(-1.0, 0.0) * _7._m0.xy), _95, _96); - float3 _344 = float3(_11._m5) * fast::clamp(_8.sample(_9, _332, level(0.0)).w * _7._m1, 0.0, 1.0); - float4 _348 = _12.sample(_13, _332, level(0.0)); - float _349 = _348.y; - float3 _364; - if (_349 > 0.0) - { - _364 = _344 + (_14.sample(_15, _332, level(0.0)).xyz * fast::clamp(_349 * _348.z, 0.0, 1.0)); - } - else - { - _364 = _344; - } - float2 _379 = fast::clamp(_82, _95, _96); - float3 _391 = float3(_11._m5) * fast::clamp(_8.sample(_9, _379, level(0.0)).w * _7._m1, 0.0, 1.0); - float4 _395 = _12.sample(_13, _379, level(0.0)); - float _396 = _395.y; - float3 _411; - if (_396 > 0.0) - { - _411 = _391 + (_14.sample(_15, _379, level(0.0)).xyz * fast::clamp(_396 * _395.z, 0.0, 1.0)); - } - else - { - _411 = _391; - } - float2 _426 = fast::clamp(_82 + (float2(1.0, 0.0) * _7._m0.xy), _95, _96); - float3 _438 = float3(_11._m5) * fast::clamp(_8.sample(_9, _426, level(0.0)).w * _7._m1, 0.0, 1.0); - float4 _442 = _12.sample(_13, _426, level(0.0)); - float _443 = _442.y; - float3 _458; - if (_443 > 0.0) - { - _458 = _438 + (_14.sample(_15, _426, level(0.0)).xyz * fast::clamp(_443 * _442.z, 0.0, 1.0)); - } - else - { - _458 = _438; - } - float2 _473 = fast::clamp(_82 + (float2(2.0, 0.0) * _7._m0.xy), _95, _96); - float3 _485 = float3(_11._m5) * fast::clamp(_8.sample(_9, _473, level(0.0)).w * _7._m1, 0.0, 1.0); - float4 _489 = _12.sample(_13, _473, level(0.0)); - float _490 = _489.y; - float3 _505; - if (_490 > 0.0) - { - _505 = _485 + (_14.sample(_15, _473, level(0.0)).xyz * fast::clamp(_490 * _489.z, 0.0, 1.0)); - } - else - { - _505 = _485; - } - float2 _520 = fast::clamp(_82 + (float2(-1.0, 1.0) * _7._m0.xy), _95, _96); - float3 _532 = float3(_11._m5) * fast::clamp(_8.sample(_9, _520, level(0.0)).w * _7._m1, 0.0, 1.0); - float4 _536 = _12.sample(_13, _520, level(0.0)); - float _537 = _536.y; - float3 _552; - if (_537 > 0.0) - { - _552 = _532 + (_14.sample(_15, _520, level(0.0)).xyz * fast::clamp(_537 * _536.z, 0.0, 1.0)); - } - else - { - _552 = _532; - } - float2 _567 = fast::clamp(_82 + (float2(0.0, 1.0) * _7._m0.xy), _95, _96); - float3 _579 = float3(_11._m5) * fast::clamp(_8.sample(_9, _567, level(0.0)).w * _7._m1, 0.0, 1.0); - float4 _583 = _12.sample(_13, _567, level(0.0)); - float _584 = _583.y; - float3 _599; - if (_584 > 0.0) - { - _599 = _579 + (_14.sample(_15, _567, level(0.0)).xyz * fast::clamp(_584 * _583.z, 0.0, 1.0)); - } - else - { - _599 = _579; - } - float2 _614 = fast::clamp(_82 + _7._m0.xy, _95, _96); - float3 _626 = float3(_11._m5) * fast::clamp(_8.sample(_9, _614, level(0.0)).w * _7._m1, 0.0, 1.0); - float4 _630 = _12.sample(_13, _614, level(0.0)); - float _631 = _630.y; - float3 _646; - if (_631 > 0.0) - { - _646 = _626 + (_14.sample(_15, _614, level(0.0)).xyz * fast::clamp(_631 * _630.z, 0.0, 1.0)); - } - else - { - _646 = _626; - } - float2 _661 = fast::clamp(_82 + (float2(0.0, 2.0) * _7._m0.xy), _95, _96); - float3 _673 = float3(_11._m5) * fast::clamp(_8.sample(_9, _661, level(0.0)).w * _7._m1, 0.0, 1.0); - float4 _677 = _12.sample(_13, _661, level(0.0)); - float _678 = _677.y; - float3 _693; - if (_678 > 0.0) - { - _693 = _673 + (_14.sample(_15, _661, level(0.0)).xyz * fast::clamp(_678 * _677.z, 0.0, 1.0)); - } - else - { - _693 = _673; - } - float3 _702 = (((((((((((((_129 * 0.5).xyz + (_176 * 0.5)).xyz + (_223 * 0.75)).xyz + (_270 * 0.5)).xyz + (_317 * 0.5)).xyz + (_364 * 0.75)).xyz + (_411 * 1.0)).xyz + (_458 * 0.75)).xyz + (_505 * 0.5)).xyz + (_552 * 0.5)).xyz + (_599 * 0.75)).xyz + (_646 * 0.5)).xyz + (_693 * 0.5)).xyz * float3(0.125); - _28 _704 = _74; - _704._m0 = float4(_702.x, _702.y, _702.z, float4(0.0).w); - _28 _705 = _704; - _705._m0.w = 1.0; - out.m_5 = _705._m0; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/tesc/tess-level-overrun.asm.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/asm/tesc/tess-level-overrun.asm.tesc deleted file mode 100644 index 6c9903e02b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/tesc/tess-level-overrun.asm.tesc +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace metal; - -struct TessLevels -{ - float inner0; - float inner1; - float outer0; - float outer1; - float outer2; - float outer3; -}; - -kernel void main0(const device TessLevels& sb_levels [[buffer(0)]], uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], constant uint* spvIndirectParams [[buffer(29)]], device MTLTriangleTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - spvTessLevel[gl_PrimitiveID].insideTessellationFactor = half(sb_levels.inner0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(sb_levels.outer0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(sb_levels.outer1); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(sb_levels.outer2); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/tesc/tess-level-overrun.multi-patch.asm.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/asm/tesc/tess-level-overrun.multi-patch.asm.tesc deleted file mode 100644 index 79395a4bbb..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/tesc/tess-level-overrun.multi-patch.asm.tesc +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include - -using namespace metal; - -struct TessLevels -{ - float inner0; - float inner1; - float outer0; - float outer1; - float outer2; - float outer3; -}; - -kernel void main0(const device TessLevels& sb_levels [[buffer(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]], constant uint* spvIndirectParams [[buffer(29)]], device MTLTriangleTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 1, spvIndirectParams[1] - 1); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor = half(sb_levels.inner0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(sb_levels.outer0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(sb_levels.outer1); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(sb_levels.outer2); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/tese/unnamed-builtin-array.asm.tese b/third_party/spirv-cross/reference/opt/shaders-msl/asm/tese/unnamed-builtin-array.asm.tese deleted file mode 100644 index 99803754d8..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/tese/unnamed-builtin-array.asm.tese +++ /dev/null @@ -1,72 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_patchIn -{ - float4 gl_TessLevelOuter [[attribute(0)]]; - float2 gl_TessLevelInner [[attribute(1)]]; -}; - -[[ patch(quad, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]], float2 gl_TessCoord [[position_in_patch]]) -{ - main0_out out = {}; - spvUnsafeArray gl_TessLevelInner = {}; - spvUnsafeArray gl_TessLevelOuter = {}; - gl_TessLevelInner[0] = patchIn.gl_TessLevelInner.x; - gl_TessLevelInner[1] = patchIn.gl_TessLevelInner.y; - gl_TessLevelOuter[0] = patchIn.gl_TessLevelOuter.x; - gl_TessLevelOuter[1] = patchIn.gl_TessLevelOuter.y; - gl_TessLevelOuter[2] = patchIn.gl_TessLevelOuter.z; - gl_TessLevelOuter[3] = patchIn.gl_TessLevelOuter.w; - out.gl_Position = float4(((gl_TessCoord.x * gl_TessLevelInner[0]) * gl_TessLevelOuter[0]) + (((1.0 - gl_TessCoord.x) * gl_TessLevelInner[0]) * gl_TessLevelOuter[2]), ((gl_TessCoord.y * gl_TessLevelInner[1]) * gl_TessLevelOuter[1]) + (((1.0 - gl_TessCoord.y) * gl_TessLevelInner[1]) * gl_TessLevelOuter[3]), 0.0, 1.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/clip-distance-plain-variable.asm.vert b/third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/clip-distance-plain-variable.asm.vert deleted file mode 100644 index 1528c8350d..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/clip-distance-plain-variable.asm.vert +++ /dev/null @@ -1,29 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; - float gl_ClipDistance [[clip_distance]] [2]; - float gl_ClipDistance_0 [[user(clip0)]]; - float gl_ClipDistance_1 [[user(clip1)]]; -}; - -struct main0_in -{ - float4 pos [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.gl_Position = in.pos; - out.gl_ClipDistance[0] = in.pos.x; - out.gl_ClipDistance[1] = in.pos.y; - out.gl_ClipDistance_0 = out.gl_ClipDistance[0]; - out.gl_ClipDistance_1 = out.gl_ClipDistance[1]; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/clip-distance-plain-variable.no-user-varying.asm.vert b/third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/clip-distance-plain-variable.no-user-varying.asm.vert deleted file mode 100644 index 1d6885958c..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/clip-distance-plain-variable.no-user-varying.asm.vert +++ /dev/null @@ -1,25 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; - float gl_ClipDistance [[clip_distance]] [2]; -}; - -struct main0_in -{ - float4 pos [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.gl_Position = in.pos; - out.gl_ClipDistance[0] = in.pos.x; - out.gl_ClipDistance[1] = in.pos.y; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/copy-memory-interface.asm.vert b/third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/copy-memory-interface.asm.vert deleted file mode 100644 index 63ab796e8e..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/copy-memory-interface.asm.vert +++ /dev/null @@ -1,25 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 o1 [[user(locn1)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 v0 [[attribute(0)]]; - float4 v1 [[attribute(1)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.gl_Position = in.v0; - out.o1 = in.v1; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/extract-transposed-matrix-from-struct.asm.vert b/third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/extract-transposed-matrix-from-struct.asm.vert deleted file mode 100644 index f1b7a87804..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/extract-transposed-matrix-from-struct.asm.vert +++ /dev/null @@ -1,35 +0,0 @@ -#include -#include - -using namespace metal; - -struct InstanceData -{ - float4x4 MATRIX_MVP; - float4 Color; -}; - -struct gInstanceData -{ - InstanceData _data[1]; -}; - -struct main0_out -{ - float4 _entryPointOutput_Color [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float3 PosL [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], const device gInstanceData& gInstanceData_1 [[buffer(0)]], uint gl_InstanceIndex [[instance_id]]) -{ - main0_out out = {}; - out.gl_Position = float4(in.PosL, 1.0) * gInstanceData_1._data[gl_InstanceIndex].MATRIX_MVP; - out._entryPointOutput_Color = gInstanceData_1._data[gl_InstanceIndex].Color; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/fake-builtin-input.asm.vert b/third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/fake-builtin-input.asm.vert deleted file mode 100644 index 3079ae9bcb..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/fake-builtin-input.asm.vert +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - half4 out_var_SV_Target [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float2 in_var_POSITION [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.gl_Position = float4(in.in_var_POSITION, 0.0, 1.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/invariant.msl21.asm.vert b/third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/invariant.msl21.asm.vert deleted file mode 100644 index 88ca455e15..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/invariant.msl21.asm.vert +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position, invariant]]; -}; - -vertex main0_out main0() -{ - main0_out out = {}; - out.gl_Position = float4(1.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/packed-bool-to-uint.asm.vert b/third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/packed-bool-to-uint.asm.vert deleted file mode 100644 index 1926ff9e14..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/packed-bool-to-uint.asm.vert +++ /dev/null @@ -1,38 +0,0 @@ -#include -#include - -using namespace metal; - -struct Struct -{ - uint flags[1]; -}; - -struct defaultUniformsVS -{ - Struct flags; - float4 uquad[4]; - float4x4 umatrix; -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 a_position [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant defaultUniformsVS& _9 [[buffer(0)]], uint gl_VertexIndex [[vertex_id]]) -{ - main0_out out = {}; - out.gl_Position = _9.umatrix * float4(_9.uquad[int(gl_VertexIndex)].x, _9.uquad[int(gl_VertexIndex)].y, in.a_position.z, in.a_position.w); - if (_9.flags.flags[0] != 0u) - { - out.gl_Position.z = 0.0; - } - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/packed-bool2-to-packed_uint2.asm.vert b/third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/packed-bool2-to-packed_uint2.asm.vert deleted file mode 100644 index ee20638574..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/packed-bool2-to-packed_uint2.asm.vert +++ /dev/null @@ -1,38 +0,0 @@ -#include -#include - -using namespace metal; - -struct Struct -{ - uint2 flags[1]; -}; - -struct defaultUniformsVS -{ - Struct flags; - float4 uquad[4]; - float4x4 umatrix; -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 a_position [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant defaultUniformsVS& _9 [[buffer(0)]], uint gl_VertexIndex [[vertex_id]]) -{ - main0_out out = {}; - out.gl_Position = _9.umatrix * float4(_9.uquad[int(gl_VertexIndex)].x, _9.uquad[int(gl_VertexIndex)].y, in.a_position.z, in.a_position.w); - if (_9.flags.flags[0].x != 0u) - { - out.gl_Position.z = 0.0; - } - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/packing-test.asm.vert b/third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/packing-test.asm.vert deleted file mode 100644 index 9e024c2095..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/packing-test.asm.vert +++ /dev/null @@ -1,9 +0,0 @@ -#include -#include - -using namespace metal; - -vertex void main0() -{ -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/spec-constant-op-composite.asm.vert b/third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/spec-constant-op-composite.asm.vert deleted file mode 100644 index ed5c5f9ad6..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/spec-constant-op-composite.asm.vert +++ /dev/null @@ -1,35 +0,0 @@ -#include -#include - -using namespace metal; - -constant int _7_tmp [[function_constant(201)]]; -constant int _7 = is_function_constant_defined(_7_tmp) ? _7_tmp : -10; -constant int _20 = (_7 + 2); -constant uint _8_tmp [[function_constant(202)]]; -constant uint _8 = is_function_constant_defined(_8_tmp) ? _8_tmp : 100u; -constant uint _25 = (_8 % 5u); -constant int4 _30 = int4(20, 30, _20, _20); -constant int2 _32 = int2(_30.y, _30.x); -constant int _33 = _30.y; - -struct main0_out -{ - int m_4 [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -vertex main0_out main0() -{ - main0_out out = {}; - float4 _63 = float4(0.0); - _63.y = float(_20); - float4 _66 = _63; - _66.z = float(_25); - float4 _52 = _66 + float4(_30); - float2 _56 = _52.xy + float2(_32); - out.gl_Position = float4(_56.x, _56.y, _52.z, _52.w); - out.m_4 = _33; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/uint-vertex-id-instance-id.asm.vert b/third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/uint-vertex-id-instance-id.asm.vert deleted file mode 100644 index d453aadef0..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/asm/vert/uint-vertex-id-instance-id.asm.vert +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -vertex main0_out main0(uint gl_VertexIndex [[vertex_id]], uint gl_InstanceIndex [[instance_id]]) -{ - main0_out out = {}; - out.gl_Position = float4(float(gl_VertexIndex + gl_InstanceIndex)); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/access-private-workgroup-in-function.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/access-private-workgroup-in-function.comp deleted file mode 100644 index e57b2ea171..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/access-private-workgroup-in-function.comp +++ /dev/null @@ -1,11 +0,0 @@ -#include -#include - -using namespace metal; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0() -{ -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/argument-buffers-discrete.msl2.argument.discrete.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/argument-buffers-discrete.msl2.argument.discrete.comp deleted file mode 100644 index 18cfd68c19..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/argument-buffers-discrete.msl2.argument.discrete.comp +++ /dev/null @@ -1,42 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO3 -{ - float4 v; -}; - -struct SSBO0 -{ - float4 v; -}; - -struct SSBO1 -{ - float4 v; -}; - -struct SSBO2 -{ - float4 v; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -struct spvDescriptorSetBuffer0 -{ - const device SSBO0* ssbo0 [[id(0)]]; -}; - -struct spvDescriptorSetBuffer1 -{ - const device SSBO1* ssbo1 [[id(0)]]; -}; - -kernel void main0(constant spvDescriptorSetBuffer0& spvDescriptorSet0 [[buffer(0)]], constant spvDescriptorSetBuffer1& spvDescriptorSet1 [[buffer(1)]], device SSBO3& ssbo3 [[buffer(2)]], const device SSBO2& ssbo2 [[buffer(3)]]) -{ - ssbo3.v = ((*spvDescriptorSet0.ssbo0).v + (*spvDescriptorSet1.ssbo1).v) + ssbo2.v; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/argument-buffers-image-load-store.ios.msl2.argument.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/argument-buffers-image-load-store.ios.msl2.argument.comp deleted file mode 100644 index 25a0233aec..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/argument-buffers-image-load-store.ios.msl2.argument.comp +++ /dev/null @@ -1,11 +0,0 @@ -#include -#include - -using namespace metal; - -kernel void main0(texture2d uImage [[texture(0)]], texture2d uImageRead [[texture(1)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - int2 _17 = int2(gl_GlobalInvocationID.xy); - uImage.write(uImageRead.read(uint2(_17)), uint2(_17)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/argument-buffers-image-load-store.msl2.argument.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/argument-buffers-image-load-store.msl2.argument.comp deleted file mode 100644 index 2f8067e55a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/argument-buffers-image-load-store.msl2.argument.comp +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct spvDescriptorSetBuffer0 -{ - texture2d uImage [[id(0)]]; - texture2d uImageRead [[id(1)]]; -}; - -kernel void main0(constant spvDescriptorSetBuffer0& spvDescriptorSet0 [[buffer(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - int2 _17 = int2(gl_GlobalInvocationID.xy); - spvDescriptorSet0.uImage.write(spvDescriptorSet0.uImageRead.read(uint2(_17)), uint2(_17)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/array-length.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/array-length.comp deleted file mode 100644 index 5a284b9666..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/array-length.comp +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - uint size; - float4 v[1]; -}; - -struct SSBO1 -{ - float bz[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(constant uint* spvBufferSizeConstants [[buffer(25)]], device SSBO& _14 [[buffer(0)]], device SSBO1* ssbos_0 [[buffer(1)]], device SSBO1* ssbos_1 [[buffer(2)]]) -{ - device SSBO1* ssbos[] = - { - ssbos_0, - ssbos_1, - }; - - constant uint& _14BufferSize = spvBufferSizeConstants[0]; - constant uint* ssbosBufferSize = &spvBufferSizeConstants[1]; - _14.size = uint(int((_14BufferSize - 16) / 16) + int((ssbosBufferSize[1] - 0) / 4)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/array-length.msl2.argument.discrete.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/array-length.msl2.argument.discrete.comp deleted file mode 100644 index d804e18767..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/array-length.msl2.argument.discrete.comp +++ /dev/null @@ -1,56 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - uint size; - float4 v[1]; -}; - -struct SSBO1 -{ - float bz[1]; -}; - -struct SSBO2 -{ - uint size2; - float4 w[1]; -}; - -struct SSBO3 -{ - float bz[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -struct spvDescriptorSetBuffer0 -{ - device SSBO* m_16 [[id(0)]]; - constant uint* spvBufferSizeConstants [[id(1)]]; -}; - -struct spvDescriptorSetBuffer1 -{ - device SSBO1* ssbos [[id(0)]][2]; - constant uint* spvBufferSizeConstants [[id(2)]]; -}; - -kernel void main0(constant spvDescriptorSetBuffer0& spvDescriptorSet0 [[buffer(0)]], constant spvDescriptorSetBuffer1& spvDescriptorSet1 [[buffer(1)]], constant uint* spvBufferSizeConstants [[buffer(25)]], device SSBO2& _38 [[buffer(2)]], device SSBO3* ssbos2_0 [[buffer(3)]], device SSBO3* ssbos2_1 [[buffer(4)]]) -{ - device SSBO3* ssbos2[] = - { - ssbos2_0, - ssbos2_1, - }; - - constant uint& spvDescriptorSet0_m_16BufferSize = spvDescriptorSet0.spvBufferSizeConstants[0]; - constant uint* spvDescriptorSet1_ssbosBufferSize = &spvDescriptorSet1.spvBufferSizeConstants[0]; - constant uint& _38BufferSize = spvBufferSizeConstants[2]; - constant uint* ssbos2BufferSize = &spvBufferSizeConstants[3]; - (*spvDescriptorSet0.m_16).size = ((uint(int((spvDescriptorSet0_m_16BufferSize - 16) / 16)) + uint(int((spvDescriptorSet1_ssbosBufferSize[1] - 0) / 4))) + uint(int((_38BufferSize - 16) / 16))) + uint(int((ssbos2BufferSize[0] - 0) / 4)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/atomic.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/atomic.comp deleted file mode 100644 index fca72bfcfe..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/atomic.comp +++ /dev/null @@ -1,72 +0,0 @@ -#pragma clang diagnostic ignored "-Wunused-variable" - -#include -#include -#include - -using namespace metal; - -struct SSBO -{ - uint u32; - int i32; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO& ssbo [[buffer(0)]]) -{ - threadgroup uint shared_u32; - threadgroup int shared_i32; - uint _16 = atomic_fetch_add_explicit((device atomic_uint*)&ssbo.u32, 1u, memory_order_relaxed); - uint _18 = atomic_fetch_or_explicit((device atomic_uint*)&ssbo.u32, 1u, memory_order_relaxed); - uint _20 = atomic_fetch_xor_explicit((device atomic_uint*)&ssbo.u32, 1u, memory_order_relaxed); - uint _22 = atomic_fetch_and_explicit((device atomic_uint*)&ssbo.u32, 1u, memory_order_relaxed); - uint _24 = atomic_fetch_min_explicit((device atomic_uint*)&ssbo.u32, 1u, memory_order_relaxed); - uint _26 = atomic_fetch_max_explicit((device atomic_uint*)&ssbo.u32, 1u, memory_order_relaxed); - uint _28 = atomic_exchange_explicit((device atomic_uint*)&ssbo.u32, 1u, memory_order_relaxed); - uint _32; - do - { - _32 = 10u; - } while (!atomic_compare_exchange_weak_explicit((device atomic_uint*)&ssbo.u32, &_32, 2u, memory_order_relaxed, memory_order_relaxed) && _32 == 10u); - int _36 = atomic_fetch_add_explicit((device atomic_int*)&ssbo.i32, 1, memory_order_relaxed); - int _38 = atomic_fetch_or_explicit((device atomic_int*)&ssbo.i32, 1, memory_order_relaxed); - int _40 = atomic_fetch_xor_explicit((device atomic_int*)&ssbo.i32, 1, memory_order_relaxed); - int _42 = atomic_fetch_and_explicit((device atomic_int*)&ssbo.i32, 1, memory_order_relaxed); - int _44 = atomic_fetch_min_explicit((device atomic_int*)&ssbo.i32, 1, memory_order_relaxed); - int _46 = atomic_fetch_max_explicit((device atomic_int*)&ssbo.i32, 1, memory_order_relaxed); - int _48 = atomic_exchange_explicit((device atomic_int*)&ssbo.i32, 1, memory_order_relaxed); - int _52; - do - { - _52 = 10; - } while (!atomic_compare_exchange_weak_explicit((device atomic_int*)&ssbo.i32, &_52, 2, memory_order_relaxed, memory_order_relaxed) && _52 == 10); - shared_u32 = 10u; - shared_i32 = 10; - uint _57 = atomic_fetch_add_explicit((threadgroup atomic_uint*)&shared_u32, 1u, memory_order_relaxed); - uint _58 = atomic_fetch_or_explicit((threadgroup atomic_uint*)&shared_u32, 1u, memory_order_relaxed); - uint _59 = atomic_fetch_xor_explicit((threadgroup atomic_uint*)&shared_u32, 1u, memory_order_relaxed); - uint _60 = atomic_fetch_and_explicit((threadgroup atomic_uint*)&shared_u32, 1u, memory_order_relaxed); - uint _61 = atomic_fetch_min_explicit((threadgroup atomic_uint*)&shared_u32, 1u, memory_order_relaxed); - uint _62 = atomic_fetch_max_explicit((threadgroup atomic_uint*)&shared_u32, 1u, memory_order_relaxed); - uint _63 = atomic_exchange_explicit((threadgroup atomic_uint*)&shared_u32, 1u, memory_order_relaxed); - uint _64; - do - { - _64 = 10u; - } while (!atomic_compare_exchange_weak_explicit((threadgroup atomic_uint*)&shared_u32, &_64, 2u, memory_order_relaxed, memory_order_relaxed) && _64 == 10u); - int _65 = atomic_fetch_add_explicit((threadgroup atomic_int*)&shared_i32, 1, memory_order_relaxed); - int _66 = atomic_fetch_or_explicit((threadgroup atomic_int*)&shared_i32, 1, memory_order_relaxed); - int _67 = atomic_fetch_xor_explicit((threadgroup atomic_int*)&shared_i32, 1, memory_order_relaxed); - int _68 = atomic_fetch_and_explicit((threadgroup atomic_int*)&shared_i32, 1, memory_order_relaxed); - int _69 = atomic_fetch_min_explicit((threadgroup atomic_int*)&shared_i32, 1, memory_order_relaxed); - int _70 = atomic_fetch_max_explicit((threadgroup atomic_int*)&shared_i32, 1, memory_order_relaxed); - int _71 = atomic_exchange_explicit((threadgroup atomic_int*)&shared_i32, 1, memory_order_relaxed); - int _72; - do - { - _72 = 10; - } while (!atomic_compare_exchange_weak_explicit((threadgroup atomic_int*)&shared_i32, &_72, 2, memory_order_relaxed, memory_order_relaxed) && _72 == 10); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/barriers.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/barriers.comp deleted file mode 100644 index 164cefd7bd..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/barriers.comp +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(4u, 1u, 1u); - -kernel void main0() -{ - threadgroup_barrier(mem_flags::mem_threadgroup); - threadgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup | mem_flags::mem_texture); - threadgroup_barrier(mem_flags::mem_texture); - threadgroup_barrier(mem_flags::mem_device); - threadgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup | mem_flags::mem_texture); - threadgroup_barrier(mem_flags::mem_threadgroup); - threadgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup | mem_flags::mem_texture); - threadgroup_barrier(mem_flags::mem_texture); - threadgroup_barrier(mem_flags::mem_device); - threadgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup | mem_flags::mem_texture); - threadgroup_barrier(mem_flags::mem_threadgroup); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/basic.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/basic.comp deleted file mode 100644 index dbb839f581..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/basic.comp +++ /dev/null @@ -1,35 +0,0 @@ -#pragma clang diagnostic ignored "-Wunused-variable" - -#include -#include -#include - -using namespace metal; - -struct SSBO -{ - float4 in_data[1]; -}; - -struct SSBO2 -{ - float4 out_data[1]; -}; - -struct SSBO3 -{ - uint counter; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(const device SSBO& _23 [[buffer(0)]], device SSBO2& _45 [[buffer(1)]], device SSBO3& _48 [[buffer(2)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - float4 _29 = _23.in_data[gl_GlobalInvocationID.x]; - if (dot(_29, float4(1.0, 5.0, 6.0, 2.0)) > 8.19999980926513671875) - { - uint _52 = atomic_fetch_add_explicit((device atomic_uint*)&_48.counter, 1u, memory_order_relaxed); - _45.out_data[_52] = _29; - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/basic.dispatchbase.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/basic.dispatchbase.comp deleted file mode 100644 index ebbc144c7b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/basic.dispatchbase.comp +++ /dev/null @@ -1,38 +0,0 @@ -#pragma clang diagnostic ignored "-Wunused-variable" - -#include -#include -#include - -using namespace metal; - -struct SSBO -{ - float4 in_data[1]; -}; - -struct SSBO2 -{ - float4 out_data[1]; -}; - -struct SSBO3 -{ - uint counter; -}; - -constant uint _59_tmp [[function_constant(10)]]; -constant uint _59 = is_function_constant_defined(_59_tmp) ? _59_tmp : 1u; -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(_59, 1u, 1u); - -kernel void main0(const device SSBO& _27 [[buffer(0)]], device SSBO2& _49 [[buffer(1)]], device SSBO3& _52 [[buffer(2)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint3 spvDispatchBase [[grid_origin]]) -{ - gl_GlobalInvocationID += spvDispatchBase * gl_WorkGroupSize; - float4 _33 = _27.in_data[gl_GlobalInvocationID.x]; - if (dot(_33, float4(1.0, 5.0, 6.0, 2.0)) > 8.19999980926513671875) - { - uint _56 = atomic_fetch_add_explicit((device atomic_uint*)&_52.counter, 1u, memory_order_relaxed); - _49.out_data[_56] = _33; - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/basic.dispatchbase.msl11.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/basic.dispatchbase.msl11.comp deleted file mode 100644 index 2d991f5db5..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/basic.dispatchbase.msl11.comp +++ /dev/null @@ -1,36 +0,0 @@ -#pragma clang diagnostic ignored "-Wunused-variable" - -#include -#include -#include - -using namespace metal; - -struct SSBO -{ - float4 in_data[1]; -}; - -struct SSBO2 -{ - float4 out_data[1]; -}; - -struct SSBO3 -{ - uint counter; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(constant uint3& spvDispatchBase [[buffer(29)]], const device SSBO& _27 [[buffer(0)]], device SSBO2& _49 [[buffer(1)]], device SSBO3& _52 [[buffer(2)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - gl_GlobalInvocationID += spvDispatchBase * gl_WorkGroupSize; - float4 _33 = _27.in_data[gl_GlobalInvocationID.x]; - if (dot(_33, float4(1.0, 5.0, 6.0, 2.0)) > 8.19999980926513671875) - { - uint _56 = atomic_fetch_add_explicit((device atomic_uint*)&_52.counter, 1u, memory_order_relaxed); - _49.out_data[_56] = _33; - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/basic.inline-block.msl2.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/basic.inline-block.msl2.comp deleted file mode 100644 index 902dfc92d9..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/basic.inline-block.msl2.comp +++ /dev/null @@ -1,53 +0,0 @@ -#include -#include - -using namespace metal; - -typedef packed_float4 packed_float4x4[4]; - -struct Baz -{ - int f; - int g; -}; - -struct X -{ - int x; - int y; - float z; -}; - -struct Foo -{ - int a; - int b; - packed_float4x4 c; - X x[2]; -}; - -struct Bar -{ - int d; - int e; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(3u, 3u, 2u); - -struct spvDescriptorSetBuffer0 -{ - constant Bar* m_38 [[id(0)]]; - Foo m_32 [[id(1)]]; -}; - -struct spvDescriptorSetBuffer1 -{ - device Baz* baz [[id(0)]][3]; -}; - -kernel void main0(constant spvDescriptorSetBuffer0& spvDescriptorSet0 [[buffer(0)]], constant spvDescriptorSetBuffer1& spvDescriptorSet1 [[buffer(1)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - spvDescriptorSet1.baz[gl_GlobalInvocationID.x]->f = spvDescriptorSet0.m_32.a + (*spvDescriptorSet0.m_38).d; - spvDescriptorSet1.baz[gl_GlobalInvocationID.x]->g = spvDescriptorSet0.m_32.b * (*spvDescriptorSet0.m_38).e; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/builtins.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/builtins.comp deleted file mode 100644 index 7576715df6..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/builtins.comp +++ /dev/null @@ -1,11 +0,0 @@ -#include -#include - -using namespace metal; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(8u, 4u, 2u); - -kernel void main0() -{ -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/cfg-preserve-parameter.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/cfg-preserve-parameter.comp deleted file mode 100644 index 59fc03a752..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/cfg-preserve-parameter.comp +++ /dev/null @@ -1,9 +0,0 @@ -#include -#include - -using namespace metal; - -kernel void main0() -{ -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/coherent-block.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/coherent-block.comp deleted file mode 100644 index 58bbacb7f0..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/coherent-block.comp +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - float4 value; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(volatile device SSBO& _10 [[buffer(0)]]) -{ - _10.value = float4(20.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/coherent-image.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/coherent-image.comp deleted file mode 100644 index 5090484464..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/coherent-image.comp +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - int4 value; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(volatile device SSBO& _10 [[buffer(0)]], texture2d uImage [[texture(0)]]) -{ - _10.value = uImage.read(uint2(int2(10))); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/complex-composite-constant-array.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/complex-composite-constant-array.comp deleted file mode 100644 index bd58c95a00..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/complex-composite-constant-array.comp +++ /dev/null @@ -1,59 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct SSBO -{ - float4x4 a; - uint index; -}; - -kernel void main0(device SSBO& _14 [[buffer(0)]]) -{ - spvUnsafeArray _32 = spvUnsafeArray({ float4x4(float4(1.0, 0.0, 0.0, 0.0), float4(0.0, 1.0, 0.0, 0.0), float4(0.0, 0.0, 1.0, 0.0), float4(0.0, 0.0, 0.0, 1.0)), float4x4(float4(2.0, 0.0, 0.0, 0.0), float4(0.0, 2.0, 0.0, 0.0), float4(0.0, 0.0, 2.0, 0.0), float4(0.0, 0.0, 0.0, 2.0)) }); - - _14.a = _32[_14.index]; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/complex-type-alias.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/complex-type-alias.comp deleted file mode 100644 index 43e1297585..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/complex-type-alias.comp +++ /dev/null @@ -1,56 +0,0 @@ -#include -#include - -using namespace metal; - -struct Foo0 -{ - float a; -}; - -struct Foo1 -{ - Foo0 a; -}; - -struct Foo2 -{ - Foo1 a; - float weight; -}; - -struct Foo0_1 -{ - float a; -}; - -struct Foo1_1 -{ - Foo0_1 a; -}; - -struct Foo2_1 -{ - Foo1_1 a; - float weight; -}; - -struct SSBO -{ - Foo2_1 outputs[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(8u, 8u, 1u); - -kernel void main0(device SSBO& _53 [[buffer(0)]], uint gl_LocalInvocationIndex [[thread_index_in_threadgroup]], uint3 gl_WorkGroupID [[threadgroup_position_in_grid]]) -{ - threadgroup Foo2 coeffs[64]; - coeffs[gl_LocalInvocationIndex] = Foo2{ Foo1{ Foo0{ 0.0 } }, 0.0 }; - threadgroup_barrier(mem_flags::mem_threadgroup); - if (gl_LocalInvocationIndex == 0u) - { - _53.outputs[gl_WorkGroupID.x].a.a.a = coeffs[0].a.a.a; - _53.outputs[gl_WorkGroupID.x].weight = coeffs[0].weight; - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/composite-array-initialization.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/composite-array-initialization.comp deleted file mode 100644 index 6181ae69b1..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/composite-array-initialization.comp +++ /dev/null @@ -1,79 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct Data -{ - float a; - float b; -}; - -constant float X_tmp [[function_constant(0)]]; -constant float X = is_function_constant_defined(X_tmp) ? X_tmp : 4.0; - -struct Data_1 -{ - float a; - float b; -}; - -struct SSBO -{ - Data_1 outdata[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(2u, 1u, 1u); - -kernel void main0(device SSBO& _53 [[buffer(0)]], uint3 gl_WorkGroupID [[threadgroup_position_in_grid]], uint3 gl_LocalInvocationID [[thread_position_in_threadgroup]]) -{ - spvUnsafeArray _25 = spvUnsafeArray({ Data{ 1.0, 2.0 }, Data{ 3.0, 4.0 } }); - - spvUnsafeArray _31 = spvUnsafeArray({ Data{ X, 2.0 }, Data{ 3.0, 5.0 } }); - spvUnsafeArray data2; - data2 = _31; - _53.outdata[gl_WorkGroupID.x].a = _25[gl_LocalInvocationID.x].a + data2[gl_LocalInvocationID.x].a; - _53.outdata[gl_WorkGroupID.x].b = _25[gl_LocalInvocationID.x].b + data2[gl_LocalInvocationID.x].b; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/composite-array-initialization.force-native-array.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/composite-array-initialization.force-native-array.comp deleted file mode 100644 index aa612ecd5a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/composite-array-initialization.force-native-array.comp +++ /dev/null @@ -1,148 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct Data -{ - float a; - float b; -}; - -constant float X_tmp [[function_constant(0)]]; -constant float X = is_function_constant_defined(X_tmp) ? X_tmp : 4.0; - -struct Data_1 -{ - float a; - float b; -}; - -struct SSBO -{ - Data_1 outdata[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(2u, 1u, 1u); - -template -inline void spvArrayCopyFromConstantToStack1(thread T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromConstantToThreadGroup1(threadgroup T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToStack1(thread T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToThreadGroup1(threadgroup T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToStack1(thread T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToThreadGroup1(threadgroup T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToDevice1(device T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromConstantToDevice1(device T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToDevice1(device T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToDevice1(device T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToStack1(thread T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToThreadGroup1(threadgroup T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -kernel void main0(device SSBO& _53 [[buffer(0)]], uint3 gl_WorkGroupID [[threadgroup_position_in_grid]], uint3 gl_LocalInvocationID [[thread_position_in_threadgroup]]) -{ - Data _25[2] = { Data{ 1.0, 2.0 }, Data{ 3.0, 4.0 } }; - - Data _31[2] = { Data{ X, 2.0 }, Data{ 3.0, 5.0 } }; - Data data2[2]; - spvArrayCopyFromStackToStack1(data2, _31); - _53.outdata[gl_WorkGroupID.x].a = _25[gl_LocalInvocationID.x].a + data2[gl_LocalInvocationID.x].a; - _53.outdata[gl_WorkGroupID.x].b = _25[gl_LocalInvocationID.x].b + data2[gl_LocalInvocationID.x].b; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/composite-construct.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/composite-construct.comp deleted file mode 100644 index 09e6fc7d95..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/composite-construct.comp +++ /dev/null @@ -1,67 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct SSBO0 -{ - float4 as[1]; -}; - -struct SSBO1 -{ - float4 bs[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO0& _16 [[buffer(0)]], device SSBO1& _32 [[buffer(1)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint gl_LocalInvocationIndex [[thread_index_in_threadgroup]]) -{ - spvUnsafeArray _37 = spvUnsafeArray({ _16.as[gl_GlobalInvocationID.x], _32.bs[gl_GlobalInvocationID.x] }); - spvUnsafeArray values; - values = _37; - _16.as[0] = values[gl_LocalInvocationIndex]; - _32.bs[1] = float4(40.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/copy-array-of-arrays.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/copy-array-of-arrays.comp deleted file mode 100644 index cb396cff20..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/copy-array-of-arrays.comp +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include - -using namespace metal; - -struct BUF -{ - int a; - float b; - float c; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device BUF& o [[buffer(0)]]) -{ - o.a = 4; - o.b = o.c; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/copy-array-of-arrays.force-native-array.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/copy-array-of-arrays.force-native-array.comp deleted file mode 100644 index cb396cff20..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/copy-array-of-arrays.force-native-array.comp +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include - -using namespace metal; - -struct BUF -{ - int a; - float b; - float c; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device BUF& o [[buffer(0)]]) -{ - o.a = 4; - o.b = o.c; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/culling.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/culling.comp deleted file mode 100644 index 55735475a7..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/culling.comp +++ /dev/null @@ -1,35 +0,0 @@ -#pragma clang diagnostic ignored "-Wunused-variable" - -#include -#include -#include - -using namespace metal; - -struct SSBO -{ - float in_data[1]; -}; - -struct SSBO2 -{ - float out_data[1]; -}; - -struct SSBO3 -{ - uint count; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(4u, 1u, 1u); - -kernel void main0(const device SSBO& _22 [[buffer(0)]], device SSBO2& _38 [[buffer(1)]], device SSBO3& _41 [[buffer(2)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - float _28 = _22.in_data[gl_GlobalInvocationID.x]; - if (_28 > 12.0) - { - uint _45 = atomic_fetch_add_explicit((device atomic_uint*)&_41.count, 1u, memory_order_relaxed); - _38.out_data[_45] = _28; - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/defer-parens.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/defer-parens.comp deleted file mode 100644 index 8c130e3a0c..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/defer-parens.comp +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - float4 data; - int index; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO& _13 [[buffer(0)]]) -{ - float4 _17 = _13.data; - float2 _28 = _17.yz + float2(10.0); - _13.data = float4(_17.x, _28, _17.w); - _13.data = (_17 + _17) + _17; - _13.data = _28.xxyy; - _13.data = float4(_28.y); - _13.data = float4((_17.zw + float2(10.0))[_13.index]); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/dowhile.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/dowhile.comp deleted file mode 100644 index b503c948ad..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/dowhile.comp +++ /dev/null @@ -1,42 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - float4x4 mvp; - float4 in_data[1]; -}; - -struct SSBO2 -{ - float4 out_data[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(const device SSBO& _28 [[buffer(0)]], device SSBO2& _52 [[buffer(1)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - float4 _59; - int _60; - _60 = 0; - _59 = _28.in_data[gl_GlobalInvocationID.x]; - float4 _42; - for (;;) - { - _42 = _28.mvp * _59; - int _44 = _60 + 1; - if (_44 < 16) - { - _60 = _44; - _59 = _42; - } - else - { - break; - } - } - _52.out_data[gl_GlobalInvocationID.x] = _42; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/force-recompile-hooks.swizzle.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/force-recompile-hooks.swizzle.comp deleted file mode 100644 index fbf4c4f7fc..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/force-recompile-hooks.swizzle.comp +++ /dev/null @@ -1,73 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -template struct spvRemoveReference { typedef T type; }; -template struct spvRemoveReference { typedef T type; }; -template struct spvRemoveReference { typedef T type; }; -template inline constexpr thread T&& spvForward(thread typename spvRemoveReference::type& x) -{ - return static_cast(x); -} -template inline constexpr thread T&& spvForward(thread typename spvRemoveReference::type&& x) -{ - return static_cast(x); -} - -enum class spvSwizzle : uint -{ - none = 0, - zero, - one, - red, - green, - blue, - alpha -}; - -template -inline T spvGetSwizzle(vec x, T c, spvSwizzle s) -{ - switch (s) - { - case spvSwizzle::none: - return c; - case spvSwizzle::zero: - return 0; - case spvSwizzle::one: - return 1; - case spvSwizzle::red: - return x.r; - case spvSwizzle::green: - return x.g; - case spvSwizzle::blue: - return x.b; - case spvSwizzle::alpha: - return x.a; - } -} - -// Wrapper function that swizzles texture samples and fetches. -template -inline vec spvTextureSwizzle(vec x, uint s) -{ - if (!s) - return x; - return vec(spvGetSwizzle(x, x.r, spvSwizzle((s >> 0) & 0xFF)), spvGetSwizzle(x, x.g, spvSwizzle((s >> 8) & 0xFF)), spvGetSwizzle(x, x.b, spvSwizzle((s >> 16) & 0xFF)), spvGetSwizzle(x, x.a, spvSwizzle((s >> 24) & 0xFF))); -} - -template -inline T spvTextureSwizzle(T x, uint s) -{ - return spvTextureSwizzle(vec(x, 0, 0, 1), s).x; -} - -kernel void main0(constant uint* spvSwizzleConstants [[buffer(30)]], texture2d foo [[texture(0)]], texture2d bar [[texture(1)]], sampler fooSmplr [[sampler(0)]]) -{ - constant uint& fooSwzl = spvSwizzleConstants[0]; - bar.write(spvTextureSwizzle(foo.sample(fooSmplr, float2(1.0), level(0.0)), fooSwzl), uint2(int2(0))); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/functions.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/functions.comp deleted file mode 100644 index 59fc03a752..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/functions.comp +++ /dev/null @@ -1,9 +0,0 @@ -#include -#include - -using namespace metal; - -kernel void main0() -{ -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/global-invocation-id-writable-ssbo-in-function.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/global-invocation-id-writable-ssbo-in-function.comp deleted file mode 100644 index 9900b59311..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/global-invocation-id-writable-ssbo-in-function.comp +++ /dev/null @@ -1,26 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct myBlock -{ - int a; - float b[1]; -}; - -// Implementation of the GLSL mod() function, which is slightly different than Metal fmod() -template -inline Tx mod(Tx x, Ty y) -{ - return x - y * floor(x / y); -} - -kernel void main0(device myBlock& myStorage [[buffer(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - myStorage.a = (myStorage.a + 1) % 256; - myStorage.b[gl_GlobalInvocationID.x] = mod(myStorage.b[gl_GlobalInvocationID.x] + 0.0199999995529651641845703125, 1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/global-invocation-id.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/global-invocation-id.comp deleted file mode 100644 index 9900b59311..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/global-invocation-id.comp +++ /dev/null @@ -1,26 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct myBlock -{ - int a; - float b[1]; -}; - -// Implementation of the GLSL mod() function, which is slightly different than Metal fmod() -template -inline Tx mod(Tx x, Ty y) -{ - return x - y * floor(x / y); -} - -kernel void main0(device myBlock& myStorage [[buffer(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - myStorage.a = (myStorage.a + 1) % 256; - myStorage.b[gl_GlobalInvocationID.x] = mod(myStorage.b[gl_GlobalInvocationID.x] + 0.0199999995529651641845703125, 1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/image-atomic-automatic-bindings.argument.msl2.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/image-atomic-automatic-bindings.argument.msl2.comp deleted file mode 100644 index 7dea8b71f6..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/image-atomic-automatic-bindings.argument.msl2.comp +++ /dev/null @@ -1,37 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wunused-variable" - -#include -#include -#include - -using namespace metal; - -struct SSBO -{ - float4 outdata; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -struct spvDescriptorSetBuffer0 -{ - texture2d uImage [[id(0)]]; - device atomic_uint* uImage_atomic [[id(1)]]; - device SSBO* m_31 [[id(2)]]; - texture2d uTexture [[id(3)]]; - sampler uTextureSmplr [[id(4)]]; -}; - -// The required alignment of a linear texture of R32Uint format. -constant uint spvLinearTextureAlignmentOverride [[function_constant(65535)]]; -constant uint spvLinearTextureAlignment = is_function_constant_defined(spvLinearTextureAlignmentOverride) ? spvLinearTextureAlignmentOverride : 4; -// Returns buffer coords corresponding to 2D texture coords for emulating 2D texture atomics -#define spvImage2DAtomicCoord(tc, tex) (((((tex).get_width() + spvLinearTextureAlignment / 4 - 1) & ~( spvLinearTextureAlignment / 4 - 1)) * (tc).y) + (tc).x) - -kernel void main0(constant spvDescriptorSetBuffer0& spvDescriptorSet0 [[buffer(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - uint _26 = atomic_fetch_add_explicit((device atomic_uint*)&spvDescriptorSet0.uImage_atomic[spvImage2DAtomicCoord(int2(gl_GlobalInvocationID.xy), spvDescriptorSet0.uImage)], 10u, memory_order_relaxed); - (*spvDescriptorSet0.m_31).outdata = spvDescriptorSet0.uTexture.sample(spvDescriptorSet0.uTextureSmplr, float2(gl_GlobalInvocationID.xy), level(0.0)) + float4(float(_26)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/image-atomic-automatic-bindings.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/image-atomic-automatic-bindings.comp deleted file mode 100644 index a2846474bc..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/image-atomic-automatic-bindings.comp +++ /dev/null @@ -1,28 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wunused-variable" - -#include -#include -#include - -using namespace metal; - -struct SSBO -{ - float4 outdata; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -// The required alignment of a linear texture of R32Uint format. -constant uint spvLinearTextureAlignmentOverride [[function_constant(65535)]]; -constant uint spvLinearTextureAlignment = is_function_constant_defined(spvLinearTextureAlignmentOverride) ? spvLinearTextureAlignmentOverride : 4; -// Returns buffer coords corresponding to 2D texture coords for emulating 2D texture atomics -#define spvImage2DAtomicCoord(tc, tex) (((((tex).get_width() + spvLinearTextureAlignment / 4 - 1) & ~( spvLinearTextureAlignment / 4 - 1)) * (tc).y) + (tc).x) - -kernel void main0(device SSBO& _31 [[buffer(1)]], texture2d uImage [[texture(0)]], device atomic_uint* uImage_atomic [[buffer(0)]], texture2d uTexture [[texture(1)]], sampler uTextureSmplr [[sampler(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - uint _26 = atomic_fetch_add_explicit((device atomic_uint*)&uImage_atomic[spvImage2DAtomicCoord(int2(gl_GlobalInvocationID.xy), uImage)], 10u, memory_order_relaxed); - _31.outdata = uTexture.sample(uTextureSmplr, float2(gl_GlobalInvocationID.xy), level(0.0)) + float4(float(_26)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/image-cube-array-load-store.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/image-cube-array-load-store.comp deleted file mode 100644 index 41c4dfc180..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/image-cube-array-load-store.comp +++ /dev/null @@ -1,12 +0,0 @@ -#include -#include - -using namespace metal; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(texturecube_array uImageIn [[texture(0)]], texturecube_array uImageOut [[texture(1)]]) -{ - uImageOut.write(uImageIn.read(uint2(int3(9, 7, 11).xy), uint(int3(9, 7, 11).z) % 6u, uint(int3(9, 7, 11).z) / 6u), uint2(int3(9, 7, 11).xy), uint(int3(9, 7, 11).z) % 6u, uint(int3(9, 7, 11).z) / 6u); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/image.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/image.comp deleted file mode 100644 index c875e78de0..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/image.comp +++ /dev/null @@ -1,13 +0,0 @@ -#include -#include - -using namespace metal; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(texture2d uImageIn [[texture(0)]], texture2d uImageOut [[texture(1)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - int2 _23 = int2(gl_GlobalInvocationID.xy); - uImageOut.write(uImageIn.read(uint2((_23 + int2(uImageIn.get_width(), uImageIn.get_height())))), uint2(_23)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/insert.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/insert.comp deleted file mode 100644 index 36b846e1e5..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/insert.comp +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - float4 out_data[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -constant float4 _53 = {}; - -kernel void main0(device SSBO& _27 [[buffer(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - float4 _46 = _53; - _46.x = 10.0; - float4 _48 = _46; - _48.y = 30.0; - float4 _50 = _48; - _50.z = 70.0; - float4 _52 = _50; - _52.w = 90.0; - _27.out_data[gl_GlobalInvocationID.x] = _52; - ((device float*)&_27.out_data[gl_GlobalInvocationID.x])[1u] = 20.0; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/inverse.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/inverse.comp deleted file mode 100644 index 33aed468f7..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/inverse.comp +++ /dev/null @@ -1,130 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct MatrixOut -{ - float2x2 m2out; - float3x3 m3out; - float4x4 m4out; -}; - -struct MatrixIn -{ - float2x2 m2in; - float3x3 m3in; - float4x4 m4in; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -// Returns the determinant of a 2x2 matrix. -static inline __attribute__((always_inline)) -float spvDet2x2(float a1, float a2, float b1, float b2) -{ - return a1 * b2 - b1 * a2; -} - -// Returns the determinant of a 3x3 matrix. -static inline __attribute__((always_inline)) -float spvDet3x3(float a1, float a2, float a3, float b1, float b2, float b3, float c1, float c2, float c3) -{ - return a1 * spvDet2x2(b2, b3, c2, c3) - b1 * spvDet2x2(a2, a3, c2, c3) + c1 * spvDet2x2(a2, a3, b2, b3); -} - -// Returns the inverse of a matrix, by using the algorithm of calculating the classical -// adjoint and dividing by the determinant. The contents of the matrix are changed. -static inline __attribute__((always_inline)) -float4x4 spvInverse4x4(float4x4 m) -{ - float4x4 adj; // The adjoint matrix (inverse after dividing by determinant) - - // Create the transpose of the cofactors, as the classical adjoint of the matrix. - adj[0][0] = spvDet3x3(m[1][1], m[1][2], m[1][3], m[2][1], m[2][2], m[2][3], m[3][1], m[3][2], m[3][3]); - adj[0][1] = -spvDet3x3(m[0][1], m[0][2], m[0][3], m[2][1], m[2][2], m[2][3], m[3][1], m[3][2], m[3][3]); - adj[0][2] = spvDet3x3(m[0][1], m[0][2], m[0][3], m[1][1], m[1][2], m[1][3], m[3][1], m[3][2], m[3][3]); - adj[0][3] = -spvDet3x3(m[0][1], m[0][2], m[0][3], m[1][1], m[1][2], m[1][3], m[2][1], m[2][2], m[2][3]); - - adj[1][0] = -spvDet3x3(m[1][0], m[1][2], m[1][3], m[2][0], m[2][2], m[2][3], m[3][0], m[3][2], m[3][3]); - adj[1][1] = spvDet3x3(m[0][0], m[0][2], m[0][3], m[2][0], m[2][2], m[2][3], m[3][0], m[3][2], m[3][3]); - adj[1][2] = -spvDet3x3(m[0][0], m[0][2], m[0][3], m[1][0], m[1][2], m[1][3], m[3][0], m[3][2], m[3][3]); - adj[1][3] = spvDet3x3(m[0][0], m[0][2], m[0][3], m[1][0], m[1][2], m[1][3], m[2][0], m[2][2], m[2][3]); - - adj[2][0] = spvDet3x3(m[1][0], m[1][1], m[1][3], m[2][0], m[2][1], m[2][3], m[3][0], m[3][1], m[3][3]); - adj[2][1] = -spvDet3x3(m[0][0], m[0][1], m[0][3], m[2][0], m[2][1], m[2][3], m[3][0], m[3][1], m[3][3]); - adj[2][2] = spvDet3x3(m[0][0], m[0][1], m[0][3], m[1][0], m[1][1], m[1][3], m[3][0], m[3][1], m[3][3]); - adj[2][3] = -spvDet3x3(m[0][0], m[0][1], m[0][3], m[1][0], m[1][1], m[1][3], m[2][0], m[2][1], m[2][3]); - - adj[3][0] = -spvDet3x3(m[1][0], m[1][1], m[1][2], m[2][0], m[2][1], m[2][2], m[3][0], m[3][1], m[3][2]); - adj[3][1] = spvDet3x3(m[0][0], m[0][1], m[0][2], m[2][0], m[2][1], m[2][2], m[3][0], m[3][1], m[3][2]); - adj[3][2] = -spvDet3x3(m[0][0], m[0][1], m[0][2], m[1][0], m[1][1], m[1][2], m[3][0], m[3][1], m[3][2]); - adj[3][3] = spvDet3x3(m[0][0], m[0][1], m[0][2], m[1][0], m[1][1], m[1][2], m[2][0], m[2][1], m[2][2]); - - // Calculate the determinant as a combination of the cofactors of the first row. - float det = (adj[0][0] * m[0][0]) + (adj[0][1] * m[1][0]) + (adj[0][2] * m[2][0]) + (adj[0][3] * m[3][0]); - - // Divide the classical adjoint matrix by the determinant. - // If determinant is zero, matrix is not invertable, so leave it unchanged. - return (det != 0.0f) ? (adj * (1.0f / det)) : m; -} - -// Returns the inverse of a matrix, by using the algorithm of calculating the classical -// adjoint and dividing by the determinant. The contents of the matrix are changed. -static inline __attribute__((always_inline)) -float3x3 spvInverse3x3(float3x3 m) -{ - float3x3 adj; // The adjoint matrix (inverse after dividing by determinant) - - // Create the transpose of the cofactors, as the classical adjoint of the matrix. - adj[0][0] = spvDet2x2(m[1][1], m[1][2], m[2][1], m[2][2]); - adj[0][1] = -spvDet2x2(m[0][1], m[0][2], m[2][1], m[2][2]); - adj[0][2] = spvDet2x2(m[0][1], m[0][2], m[1][1], m[1][2]); - - adj[1][0] = -spvDet2x2(m[1][0], m[1][2], m[2][0], m[2][2]); - adj[1][1] = spvDet2x2(m[0][0], m[0][2], m[2][0], m[2][2]); - adj[1][2] = -spvDet2x2(m[0][0], m[0][2], m[1][0], m[1][2]); - - adj[2][0] = spvDet2x2(m[1][0], m[1][1], m[2][0], m[2][1]); - adj[2][1] = -spvDet2x2(m[0][0], m[0][1], m[2][0], m[2][1]); - adj[2][2] = spvDet2x2(m[0][0], m[0][1], m[1][0], m[1][1]); - - // Calculate the determinant as a combination of the cofactors of the first row. - float det = (adj[0][0] * m[0][0]) + (adj[0][1] * m[1][0]) + (adj[0][2] * m[2][0]); - - // Divide the classical adjoint matrix by the determinant. - // If determinant is zero, matrix is not invertable, so leave it unchanged. - return (det != 0.0f) ? (adj * (1.0f / det)) : m; -} - -// Returns the inverse of a matrix, by using the algorithm of calculating the classical -// adjoint and dividing by the determinant. The contents of the matrix are changed. -static inline __attribute__((always_inline)) -float2x2 spvInverse2x2(float2x2 m) -{ - float2x2 adj; // The adjoint matrix (inverse after dividing by determinant) - - // Create the transpose of the cofactors, as the classical adjoint of the matrix. - adj[0][0] = m[1][1]; - adj[0][1] = -m[0][1]; - - adj[1][0] = -m[1][0]; - adj[1][1] = m[0][0]; - - // Calculate the determinant as a combination of the cofactors of the first row. - float det = (adj[0][0] * m[0][0]) + (adj[0][1] * m[1][0]); - - // Divide the classical adjoint matrix by the determinant. - // If determinant is zero, matrix is not invertable, so leave it unchanged. - return (det != 0.0f) ? (adj * (1.0f / det)) : m; -} - -kernel void main0(device MatrixOut& _15 [[buffer(0)]], const device MatrixIn& _20 [[buffer(1)]]) -{ - _15.m2out = spvInverse2x2(_20.m2in); - _15.m3out = spvInverse3x3(_20.m3in); - _15.m4out = spvInverse4x4(_20.m4in); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/local-invocation-id.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/local-invocation-id.comp deleted file mode 100644 index 362aaa30c8..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/local-invocation-id.comp +++ /dev/null @@ -1,26 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct myBlock -{ - int a; - float b[1]; -}; - -// Implementation of the GLSL mod() function, which is slightly different than Metal fmod() -template -inline Tx mod(Tx x, Ty y) -{ - return x - y * floor(x / y); -} - -kernel void main0(device myBlock& myStorage [[buffer(0)]], uint3 gl_LocalInvocationID [[thread_position_in_threadgroup]]) -{ - myStorage.a = (myStorage.a + 1) % 256; - myStorage.b[gl_LocalInvocationID.x] = mod(myStorage.b[gl_LocalInvocationID.x] + 0.0199999995529651641845703125, 1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/local-invocation-index.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/local-invocation-index.comp deleted file mode 100644 index f8c1550eab..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/local-invocation-index.comp +++ /dev/null @@ -1,26 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct myBlock -{ - int a; - float b[1]; -}; - -// Implementation of the GLSL mod() function, which is slightly different than Metal fmod() -template -inline Tx mod(Tx x, Ty y) -{ - return x - y * floor(x / y); -} - -kernel void main0(device myBlock& myStorage [[buffer(0)]], uint gl_LocalInvocationIndex [[thread_index_in_threadgroup]]) -{ - myStorage.a = (myStorage.a + 1) % 256; - myStorage.b[gl_LocalInvocationIndex] = mod(myStorage.b[gl_LocalInvocationIndex] + 0.0199999995529651641845703125, 1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/mat3.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/mat3.comp deleted file mode 100644 index 31351ba57b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/mat3.comp +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO2 -{ - float3x3 out_data[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO2& _22 [[buffer(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - _22.out_data[gl_GlobalInvocationID.x] = float3x3(float3(10.0), float3(20.0), float3(40.0)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/mod.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/mod.comp deleted file mode 100644 index e8c01f966c..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/mod.comp +++ /dev/null @@ -1,33 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBO -{ - float4 in_data[1]; -}; - -struct SSBO2 -{ - float4 out_data[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -// Implementation of the GLSL mod() function, which is slightly different than Metal fmod() -template -inline Tx mod(Tx x, Ty y) -{ - return x - y * floor(x / y); -} - -kernel void main0(const device SSBO& _23 [[buffer(0)]], device SSBO2& _33 [[buffer(1)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - _33.out_data[gl_GlobalInvocationID.x] = mod(_23.in_data[gl_GlobalInvocationID.x], _33.out_data[gl_GlobalInvocationID.x]); - _33.out_data[gl_GlobalInvocationID.x] = as_type(as_type(_23.in_data[gl_GlobalInvocationID.x]) % as_type(_33.out_data[gl_GlobalInvocationID.x])); - _33.out_data[gl_GlobalInvocationID.x] = as_type(as_type(_23.in_data[gl_GlobalInvocationID.x]) % as_type(_33.out_data[gl_GlobalInvocationID.x])); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/modf.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/modf.comp deleted file mode 100644 index df19cae502..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/modf.comp +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - float4 in_data[1]; -}; - -struct SSBO2 -{ - float4 out_data[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(const device SSBO& _23 [[buffer(0)]], device SSBO2& _35 [[buffer(1)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - float4 i; - float4 _31 = modf(_23.in_data[gl_GlobalInvocationID.x], i); - _35.out_data[gl_GlobalInvocationID.x] = _31; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/outer-product.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/outer-product.comp deleted file mode 100644 index e589642dbd..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/outer-product.comp +++ /dev/null @@ -1,40 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - float2x2 m22; - float2x3 m23; - float2x4 m24; - float3x2 m32; - float3x3 m33; - float3x4 m34; - float4x2 m42; - float4x3 m43; - float4x4 m44; -}; - -struct ReadSSBO -{ - float2 v2; - float3 v3; - float4 v4; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO& _21 [[buffer(0)]], const device ReadSSBO& _26 [[buffer(1)]]) -{ - _21.m22 = float2x2(_26.v2 * _26.v2.x, _26.v2 * _26.v2.y); - _21.m23 = float2x3(_26.v3 * _26.v2.x, _26.v3 * _26.v2.y); - _21.m24 = float2x4(_26.v4 * _26.v2.x, _26.v4 * _26.v2.y); - _21.m32 = float3x2(_26.v2 * _26.v3.x, _26.v2 * _26.v3.y, _26.v2 * _26.v3.z); - _21.m33 = float3x3(_26.v3 * _26.v3.x, _26.v3 * _26.v3.y, _26.v3 * _26.v3.z); - _21.m34 = float3x4(_26.v4 * _26.v3.x, _26.v4 * _26.v3.y, _26.v4 * _26.v3.z); - _21.m42 = float4x2(_26.v2 * _26.v4.x, _26.v2 * _26.v4.y, _26.v2 * _26.v4.z, _26.v2 * _26.v4.w); - _21.m43 = float4x3(_26.v3 * _26.v4.x, _26.v3 * _26.v4.y, _26.v3 * _26.v4.z, _26.v3 * _26.v4.w); - _21.m44 = float4x4(_26.v4 * _26.v4.x, _26.v4 * _26.v4.y, _26.v4 * _26.v4.z, _26.v4 * _26.v4.w); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/packing-test-1.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/packing-test-1.comp deleted file mode 100644 index 0649f57685..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/packing-test-1.comp +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -using namespace metal; - -struct T1 -{ - packed_float3 a; - float b; -}; - -struct Buffer0 -{ - T1 buf0[1]; -}; - -struct Buffer1 -{ - float buf1[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(32u, 1u, 1u); - -kernel void main0(device Buffer0& _15 [[buffer(0)]], device Buffer1& _34 [[buffer(1)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - _34.buf1[gl_GlobalInvocationID.x] = _15.buf0[0].b; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/packing-test-2.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/packing-test-2.comp deleted file mode 100644 index abce48a37b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/packing-test-2.comp +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -using namespace metal; - -struct T1 -{ - packed_float3 a; - float b; -}; - -struct Buffer0 -{ - T1 buf0[1]; -}; - -struct Buffer1 -{ - float buf1[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(32u, 1u, 1u); - -kernel void main0(device Buffer0& _14 [[buffer(0)]], device Buffer1& _24 [[buffer(1)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - _24.buf1[gl_GlobalInvocationID.x] = _14.buf0[0].b; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/read-write-only.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/read-write-only.comp deleted file mode 100644 index 0cf8d8e321..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/read-write-only.comp +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO2 -{ - float4 data4; - float4 data5; -}; - -struct SSBO0 -{ - float4 data0; - float4 data1; -}; - -struct SSBO1 -{ - float4 data2; - float4 data3; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO2& _10 [[buffer(0)]], const device SSBO0& _15 [[buffer(1)]], device SSBO1& _21 [[buffer(2)]]) -{ - _10.data4 = _15.data0 + _21.data2; - _10.data5 = _15.data1 + _21.data3; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/rmw-matrix.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/rmw-matrix.comp deleted file mode 100644 index b53a3a75c2..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/rmw-matrix.comp +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - float a; - float4 b; - float4x4 c; - float a1; - float4 b1; - float4x4 c1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO& _11 [[buffer(0)]]) -{ - _11.a *= _11.a1; - _11.b *= _11.b1; - _11.c = _11.c * _11.c1; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/rmw-opt.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/rmw-opt.comp deleted file mode 100644 index f93967da53..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/rmw-opt.comp +++ /dev/null @@ -1,27 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - int a; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO& _9 [[buffer(0)]]) -{ - _9.a += 10; - _9.a -= 10; - _9.a *= 10; - _9.a /= 10; - _9.a = _9.a << 2; - _9.a = _9.a >> 3; - _9.a &= 40; - _9.a ^= 10; - _9.a %= 40; - _9.a |= 1; - _9.a = 0; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/scalar-std450-distance-length-normalize.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/scalar-std450-distance-length-normalize.comp deleted file mode 100644 index 9bf8781774..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/scalar-std450-distance-length-normalize.comp +++ /dev/null @@ -1,25 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - float a; - float b; - float c; - float d; - float e; - float f; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO& _9 [[buffer(0)]]) -{ - _9.c = abs(_9.a - _9.b); - _9.d = abs(_9.a); - _9.e = sign(_9.a); - _9.f = abs((_9.a - 1.0) - (_9.b - 2.0)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/shared-array-of-arrays.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/shared-array-of-arrays.comp deleted file mode 100644 index ddb8c9629d..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/shared-array-of-arrays.comp +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - float out_data[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(4u, 4u, 1u); - -kernel void main0(device SSBO& _67 [[buffer(0)]], uint3 gl_LocalInvocationID [[thread_position_in_threadgroup]], uint gl_LocalInvocationIndex [[thread_index_in_threadgroup]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - threadgroup float foo[4][4]; - foo[gl_LocalInvocationID.x][gl_LocalInvocationID.y] = float(gl_LocalInvocationIndex); - threadgroup_barrier(mem_flags::mem_threadgroup); - _67.out_data[gl_GlobalInvocationID.x] = ((foo[gl_LocalInvocationID.x][0] + foo[gl_LocalInvocationID.x][1]) + foo[gl_LocalInvocationID.x][2]) + foo[gl_LocalInvocationID.x][3]; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/shared.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/shared.comp deleted file mode 100644 index 029ab539fd..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/shared.comp +++ /dev/null @@ -1,25 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - float in_data[1]; -}; - -struct SSBO2 -{ - float out_data[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(4u, 1u, 1u); - -kernel void main0(const device SSBO& _22 [[buffer(0)]], device SSBO2& _44 [[buffer(1)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint gl_LocalInvocationIndex [[thread_index_in_threadgroup]]) -{ - threadgroup float sShared[4]; - sShared[gl_LocalInvocationIndex] = _22.in_data[gl_GlobalInvocationID.x]; - threadgroup_barrier(mem_flags::mem_threadgroup); - _44.out_data[gl_GlobalInvocationID.x] = sShared[3u - gl_LocalInvocationIndex]; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/spec-constant-op-member-array.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/spec-constant-op-member-array.comp deleted file mode 100644 index 8f54f0528d..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/spec-constant-op-member-array.comp +++ /dev/null @@ -1,49 +0,0 @@ -#include -#include - -using namespace metal; - -#ifndef SPIRV_CROSS_CONSTANT_ID_0 -#define SPIRV_CROSS_CONSTANT_ID_0 100 -#endif -constant int a = SPIRV_CROSS_CONSTANT_ID_0; -#ifndef SPIRV_CROSS_CONSTANT_ID_1 -#define SPIRV_CROSS_CONSTANT_ID_1 200 -#endif -constant int b = SPIRV_CROSS_CONSTANT_ID_1; - -struct A -{ - int member0[a]; - int member1[b]; -}; - -struct B -{ - int member0[b]; - int member1[a]; -}; - -#ifndef SPIRV_CROSS_CONSTANT_ID_2 -#define SPIRV_CROSS_CONSTANT_ID_2 300 -#endif -constant int c = SPIRV_CROSS_CONSTANT_ID_2; -constant int d = (c + 50); - -struct SSBO -{ - A member_a; - B member_b; - int v[a]; - int w[d]; -}; - -constant int e_tmp [[function_constant(3)]]; -constant int e = is_function_constant_defined(e_tmp) ? e_tmp : 400; -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO& _22 [[buffer(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - _22.w[gl_GlobalInvocationID.x] += (_22.v[gl_GlobalInvocationID.x] + e); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/spec-constant-work-group-size.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/spec-constant-work-group-size.comp deleted file mode 100644 index de30edec15..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/spec-constant-work-group-size.comp +++ /dev/null @@ -1,75 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -#ifndef SPIRV_CROSS_CONSTANT_ID_1 -#define SPIRV_CROSS_CONSTANT_ID_1 2 -#endif -constant int b = SPIRV_CROSS_CONSTANT_ID_1; -constant int a_tmp [[function_constant(0)]]; -constant int a = is_function_constant_defined(a_tmp) ? a_tmp : 1; - -struct SSBO -{ - int v[1]; -}; - -constant uint _21 = (uint(a) + 0u); -constant uint _22_tmp [[function_constant(10)]]; -constant uint _22 = is_function_constant_defined(_22_tmp) ? _22_tmp : 1u; -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(_22, 20u, 1u); -constant uint _27 = gl_WorkGroupSize.x; -constant uint _28 = (_21 + _27); -constant uint _29 = gl_WorkGroupSize.y; -constant uint _30 = (_28 + _29); -constant int _32 = (1 - a); - -kernel void main0(device SSBO& _17 [[buffer(0)]]) -{ - spvUnsafeArray spec_const_array_size; - spec_const_array_size[a] = a; - _17.v[_30] = b + spec_const_array_size[_32]; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/storage-buffer-std140-vector-array.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/storage-buffer-std140-vector-array.comp deleted file mode 100644 index b584f307ef..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/storage-buffer-std140-vector-array.comp +++ /dev/null @@ -1,91 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct Sub -{ - float4 f[2]; - float4 f2[2]; - float3 f3[2]; - float4 f4[2]; -}; - -struct SSBO -{ - Sub sub[2]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO& _27 [[buffer(0)]], uint3 gl_WorkGroupID [[threadgroup_position_in_grid]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - spvUnsafeArray _155; - _155[0] = _27.sub[gl_WorkGroupID.x].f[0].x; - _155[1] = _27.sub[gl_WorkGroupID.x].f[1].x; - spvUnsafeArray _156; - _156[0] = _27.sub[gl_WorkGroupID.x].f2[0].xy; - _156[1] = _27.sub[gl_WorkGroupID.x].f2[1].xy; - spvUnsafeArray _157; - _157[0] = _27.sub[gl_WorkGroupID.x].f3[0]; - _157[1] = _27.sub[gl_WorkGroupID.x].f3[1]; - spvUnsafeArray _158; - _158[0] = _27.sub[gl_WorkGroupID.x].f4[0]; - _158[1] = _27.sub[gl_WorkGroupID.x].f4[1]; - _155[gl_GlobalInvocationID.x] += 1.0; - _156[gl_GlobalInvocationID.x] += float2(2.0); - _157[gl_GlobalInvocationID.x] += float3(3.0); - _158[gl_GlobalInvocationID.x] += float4(4.0); - (device float&)_27.sub[gl_WorkGroupID.x].f[0] = _155[0]; - (device float&)_27.sub[gl_WorkGroupID.x].f[1] = _155[1]; - (device float2&)_27.sub[gl_WorkGroupID.x].f2[0] = _156[0]; - (device float2&)_27.sub[gl_WorkGroupID.x].f2[1] = _156[1]; - _27.sub[gl_WorkGroupID.x].f3[0] = _157[0]; - _27.sub[gl_WorkGroupID.x].f3[1] = _157[1]; - _27.sub[gl_WorkGroupID.x].f4[0] = _158[0]; - _27.sub[gl_WorkGroupID.x].f4[1] = _158[1]; - (device float&)_27.sub[0].f[0] = _27.sub[0].f[0].x + 5.0; - (device float2&)_27.sub[0].f2[1] = _27.sub[0].f2[1].xy + float2(5.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/struct-layout.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/struct-layout.comp deleted file mode 100644 index 0445f5aef9..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/struct-layout.comp +++ /dev/null @@ -1,27 +0,0 @@ -#include -#include - -using namespace metal; - -struct Foo -{ - float4x4 m; -}; - -struct SSBO2 -{ - Foo out_data[1]; -}; - -struct SSBO -{ - Foo in_data[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO2& _23 [[buffer(0)]], const device SSBO& _30 [[buffer(1)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - _23.out_data[gl_GlobalInvocationID.x].m = _30.in_data[gl_GlobalInvocationID.x].m * _30.in_data[gl_GlobalInvocationID.x].m; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/struct-nested.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/struct-nested.comp deleted file mode 100644 index ad706c5909..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/struct-nested.comp +++ /dev/null @@ -1,27 +0,0 @@ -#include -#include - -using namespace metal; - -struct s1 -{ - int a; -}; - -struct s2 -{ - s1 b; -}; - -struct dstbuffer -{ - s2 test[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device dstbuffer& _19 [[buffer(0)]]) -{ - _19.test[0].b.a = 0; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/struct-packing.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/struct-packing.comp deleted file mode 100644 index dc1654399d..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/struct-packing.comp +++ /dev/null @@ -1,152 +0,0 @@ -#include -#include - -using namespace metal; - -struct S0 -{ - float2 a[1]; - float b; - char _m0_final_padding[4]; -}; - -struct S1 -{ - packed_float3 a; - float b; -}; - -struct S2 -{ - float3 a[1]; - float b; - char _m0_final_padding[12]; -}; - -struct S3 -{ - float2 a; - float b; -}; - -struct S4 -{ - float2 c; -}; - -struct Content -{ - S0 m0s[1]; - S1 m1s[1]; - S2 m2s[1]; - S0 m0; - S1 m1; - S2 m2; - S3 m3; - float m4; - S4 m3s[8]; - char _m0_final_padding[8]; -}; - -struct SSBO1 -{ - Content content; - Content content1[2]; - Content content2; - float2x2 m0; - float2x2 m1; - float2x3 m2[4]; - float3x2 m3; - float2x2 m4; - float2x2 m5[9]; - float3x2 m6[4][2]; - float2x3 m7; - float array[1]; -}; - -struct S0_1 -{ - float2 a[1]; - char _m1_pad[8]; - float b; - char _m0_final_padding[12]; -}; - -struct S1_1 -{ - packed_float3 a; - float b; -}; - -struct S2_1 -{ - float3 a[1]; - float b; - char _m0_final_padding[12]; -}; - -struct S3_1 -{ - float2 a; - float b; -}; - -struct S4_1 -{ - float2 c; - char _m0_final_padding[8]; -}; - -struct Content_1 -{ - S0_1 m0s[1]; - S1_1 m1s[1]; - S2_1 m2s[1]; - S0_1 m0; - S1_1 m1; - S2_1 m2; - S3_1 m3; - float m4; - char _m8_pad[8]; - S4_1 m3s[8]; -}; - -struct SSBO0 -{ - Content_1 content; - Content_1 content1[2]; - Content_1 content2; - float4 array[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO1& ssbo_430 [[buffer(0)]], device SSBO0& ssbo_140 [[buffer(1)]]) -{ - Content_1 _60 = ssbo_140.content; - ssbo_430.content.m0s[0].a[0] = _60.m0s[0].a[0]; - ssbo_430.content.m0s[0].b = _60.m0s[0].b; - ssbo_430.content.m1s[0].a = float3(_60.m1s[0].a); - ssbo_430.content.m1s[0].b = _60.m1s[0].b; - ssbo_430.content.m2s[0].a[0] = _60.m2s[0].a[0]; - ssbo_430.content.m2s[0].b = _60.m2s[0].b; - ssbo_430.content.m0.a[0] = _60.m0.a[0]; - ssbo_430.content.m0.b = _60.m0.b; - ssbo_430.content.m1.a = float3(_60.m1.a); - ssbo_430.content.m1.b = _60.m1.b; - ssbo_430.content.m2.a[0] = _60.m2.a[0]; - ssbo_430.content.m2.b = _60.m2.b; - ssbo_430.content.m3.a = _60.m3.a; - ssbo_430.content.m3.b = _60.m3.b; - ssbo_430.content.m4 = _60.m4; - ssbo_430.content.m3s[0].c = _60.m3s[0].c; - ssbo_430.content.m3s[1].c = _60.m3s[1].c; - ssbo_430.content.m3s[2].c = _60.m3s[2].c; - ssbo_430.content.m3s[3].c = _60.m3s[3].c; - ssbo_430.content.m3s[4].c = _60.m3s[4].c; - ssbo_430.content.m3s[5].c = _60.m3s[5].c; - ssbo_430.content.m3s[6].c = _60.m3s[6].c; - ssbo_430.content.m3s[7].c = _60.m3s[7].c; - ssbo_430.content.m1.a = ssbo_430.content.m3.a * ssbo_430.m6[1][1]; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/torture-loop.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/torture-loop.comp deleted file mode 100644 index ff7e02e202..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/torture-loop.comp +++ /dev/null @@ -1,44 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - float4x4 mvp; - float4 in_data[1]; -}; - -struct SSBO2 -{ - float4 out_data[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(const device SSBO& _24 [[buffer(0)]], device SSBO2& _89 [[buffer(1)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - float4 _101; - _101 = _24.in_data[gl_GlobalInvocationID.x]; - for (int _95 = 0; (_95 + 1) < 10; ) - { - _101 *= 2.0; - _95 += 2; - continue; - } - float4 _100; - _100 = _101; - float4 _105; - for (uint _96 = 0u; _96 < 16u; _100 = _105, _96++) - { - _105 = _100; - for (uint _102 = 0u; _102 < 30u; ) - { - _105 = _24.mvp * _105; - _102++; - continue; - } - } - _89.out_data[gl_GlobalInvocationID.x] = _100; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/type-alias.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/type-alias.comp deleted file mode 100644 index 2f6a0b7ba8..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/type-alias.comp +++ /dev/null @@ -1,37 +0,0 @@ -#include -#include - -using namespace metal; - -struct S0 -{ - float4 a; -}; - -struct SSBO0 -{ - S0 s0s[1]; -}; - -struct S1 -{ - float4 a; -}; - -struct SSBO1 -{ - S1 s1s[1]; -}; - -struct SSBO2 -{ - float4 outputs[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO0& _36 [[buffer(0)]], device SSBO1& _55 [[buffer(1)]], device SSBO2& _66 [[buffer(2)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - _66.outputs[gl_GlobalInvocationID.x] = _36.s0s[gl_GlobalInvocationID.x].a + _55.s1s[gl_GlobalInvocationID.x].a; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/udiv.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/udiv.comp deleted file mode 100644 index 7f7315b882..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/udiv.comp +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO2 -{ - uint outputs[1]; -}; - -struct SSBO -{ - uint inputs[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO2& _10 [[buffer(0)]], device SSBO& _23 [[buffer(1)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - _10.outputs[gl_GlobalInvocationID.x] = _23.inputs[gl_GlobalInvocationID.x] / 29u; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/comp/writable-ssbo.comp b/third_party/spirv-cross/reference/opt/shaders-msl/comp/writable-ssbo.comp deleted file mode 100644 index dcec81a369..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/comp/writable-ssbo.comp +++ /dev/null @@ -1,26 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct myBlock -{ - int a; - float b; -}; - -// Implementation of the GLSL mod() function, which is slightly different than Metal fmod() -template -inline Tx mod(Tx x, Ty y) -{ - return x - y * floor(x / y); -} - -kernel void main0(device myBlock& myStorage [[buffer(0)]]) -{ - myStorage.a = (myStorage.a + 1) % 256; - myStorage.b = mod(myStorage.b + 0.0199999995529651641845703125, 1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/comp/extended-arithmetic.desktop.comp b/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/comp/extended-arithmetic.desktop.comp deleted file mode 100644 index cea12980c6..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/comp/extended-arithmetic.desktop.comp +++ /dev/null @@ -1,179 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBOUint -{ - uint a; - uint b; - uint c; - uint d; - uint2 a2; - uint2 b2; - uint2 c2; - uint2 d2; - uint3 a3; - uint3 b3; - uint3 c3; - uint3 d3; - uint4 a4; - uint4 b4; - uint4 c4; - uint4 d4; -}; - -struct ResType -{ - uint _m0; - uint _m1; -}; - -struct ResType_1 -{ - uint2 _m0; - uint2 _m1; -}; - -struct ResType_2 -{ - uint3 _m0; - uint3 _m1; -}; - -struct ResType_3 -{ - uint4 _m0; - uint4 _m1; -}; - -struct SSBOInt -{ - int a; - int b; - int c; - int d; - int2 a2; - int2 b2; - int2 c2; - int2 d2; - int3 a3; - int3 b3; - int3 c3; - int3 d3; - int4 a4; - int4 b4; - int4 c4; - int4 d4; -}; - -struct ResType_4 -{ - int _m0; - int _m1; -}; - -struct ResType_5 -{ - int2 _m0; - int2 _m1; -}; - -struct ResType_6 -{ - int3 _m0; - int3 _m1; -}; - -struct ResType_7 -{ - int4 _m0; - int4 _m1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBOUint& u [[buffer(0)]], device SSBOInt& i [[buffer(1)]]) -{ - ResType _25; - _25._m0 = u.a + u.b; - _25._m1 = select(uint(1), uint(0), _25._m0 >= max(u.a, u.b)); - u.d = _25._m1; - u.c = _25._m0; - ResType_1 _40; - _40._m0 = u.a2 + u.b2; - _40._m1 = select(uint2(1), uint2(0), _40._m0 >= max(u.a2, u.b2)); - u.d2 = _40._m1; - u.c2 = _40._m0; - ResType_2 _55; - _55._m0 = u.a3 + u.b3; - _55._m1 = select(uint3(1), uint3(0), _55._m0 >= max(u.a3, u.b3)); - u.d3 = _55._m1; - u.c3 = _55._m0; - ResType_3 _70; - _70._m0 = u.a4 + u.b4; - _70._m1 = select(uint4(1), uint4(0), _70._m0 >= max(u.a4, u.b4)); - u.d4 = _70._m1; - u.c4 = _70._m0; - ResType _79; - _79._m0 = u.a - u.b; - _79._m1 = select(uint(1), uint(0), u.a >= u.b); - u.d = _79._m1; - u.c = _79._m0; - ResType_1 _88; - _88._m0 = u.a2 - u.b2; - _88._m1 = select(uint2(1), uint2(0), u.a2 >= u.b2); - u.d2 = _88._m1; - u.c2 = _88._m0; - ResType_2 _97; - _97._m0 = u.a3 - u.b3; - _97._m1 = select(uint3(1), uint3(0), u.a3 >= u.b3); - u.d3 = _97._m1; - u.c3 = _97._m0; - ResType_3 _106; - _106._m0 = u.a4 - u.b4; - _106._m1 = select(uint4(1), uint4(0), u.a4 >= u.b4); - u.d4 = _106._m1; - u.c4 = _106._m0; - ResType _116; - _116._m0 = u.a * u.b; - _116._m1 = mulhi(u.a, u.b); - u.d = _116._m0; - u.c = _116._m1; - ResType_1 _125; - _125._m0 = u.a2 * u.b2; - _125._m1 = mulhi(u.a2, u.b2); - u.d2 = _125._m0; - u.c2 = _125._m1; - ResType_2 _134; - _134._m0 = u.a3 * u.b3; - _134._m1 = mulhi(u.a3, u.b3); - u.d3 = _134._m0; - u.c3 = _134._m1; - ResType_3 _143; - _143._m0 = u.a4 * u.b4; - _143._m1 = mulhi(u.a4, u.b4); - u.d4 = _143._m0; - u.c4 = _143._m1; - ResType_4 _160; - _160._m0 = i.a * i.b; - _160._m1 = mulhi(i.a, i.b); - i.d = _160._m0; - i.c = _160._m1; - ResType_5 _171; - _171._m0 = i.a2 * i.b2; - _171._m1 = mulhi(i.a2, i.b2); - i.d2 = _171._m0; - i.c2 = _171._m1; - ResType_6 _182; - _182._m0 = i.a3 * i.b3; - _182._m1 = mulhi(i.a3, i.b3); - i.d3 = _182._m0; - i.c3 = _182._m1; - ResType_7 _193; - _193._m0 = i.a4 * i.b4; - _193._m1 = mulhi(i.a4, i.b4); - i.d4 = _193._m0; - i.c4 = _193._m1; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/frag/image-ms.desktop.frag b/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/frag/image-ms.desktop.frag deleted file mode 100644 index 4083e4ea16..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/frag/image-ms.desktop.frag +++ /dev/null @@ -1,11 +0,0 @@ -#include -#include - -using namespace metal; - -fragment void main0(texture2d_ms uImageMS [[texture(0)]], texture2d_array uImageArray [[texture(1)]], texture2d uImage [[texture(2)]]) -{ - uImage.write(uImageMS.read(uint2(int2(1, 2)), 2), uint2(int2(2, 3))); - uImageArray.write(uImageArray.read(uint2(int3(1, 2, 4).xy), uint(int3(1, 2, 4).z)), uint2(int3(2, 3, 7).xy), uint(int3(2, 3, 7).z)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/frag/query-levels.desktop.frag b/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/frag/query-levels.desktop.frag deleted file mode 100644 index 922796b749..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/frag/query-levels.desktop.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(texture2d uSampler [[texture(0)]], sampler uSamplerSmplr [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor = float4(float(int(uSampler.get_num_mip_levels()))); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/frag/sampler-ms-query.desktop.frag b/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/frag/sampler-ms-query.desktop.frag deleted file mode 100644 index 330bc64037..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/frag/sampler-ms-query.desktop.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(texture2d_ms uSampler [[texture(0)]], texture2d_ms uImage [[texture(1)]], sampler uSamplerSmplr [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor = float4(float(int(uSampler.get_num_samples()) + int(uImage.get_num_samples()))); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/tesc/arrayed-output.desktop.sso.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/tesc/arrayed-output.desktop.sso.tesc deleted file mode 100644 index 01fceeb6c7..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/tesc/arrayed-output.desktop.sso.tesc +++ /dev/null @@ -1,85 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float3 vVertex; -}; - -struct main0_patchOut -{ - spvUnsafeArray vPatch; -}; - -struct main0_in -{ - float3 vInput [[attribute(0)]]; -}; - -kernel void main0(main0_in in [[stage_in]], uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], threadgroup main0_in* gl_in [[threadgroup(0)]]) -{ - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - if (gl_InvocationID < spvIndirectParams[0]) - gl_in[gl_InvocationID] = in; - threadgroup_barrier(mem_flags::mem_threadgroup); - if (gl_InvocationID >= 4) - return; - gl_out[gl_InvocationID].vVertex = gl_in[gl_InvocationID].vInput + gl_in[gl_InvocationID ^ 1].vInput; - threadgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup); - if (gl_InvocationID == 0) - { - patchOut.vPatch[0] = float3(10.0); - patchOut.vPatch[1] = float3(20.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(1.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(2.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(3.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3] = half(4.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[0] = half(1.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[1] = half(2.0); - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/tesc/basic.desktop.sso.multi-patch.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/tesc/basic.desktop.sso.multi-patch.tesc deleted file mode 100644 index 8ebde9d9d7..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/tesc/basic.desktop.sso.multi-patch.tesc +++ /dev/null @@ -1,39 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position; -}; - -struct main0_patchOut -{ - float3 vFoo; -}; - -struct main0_in -{ - uint3 m_86; - ushort2 m_90; - float4 gl_Position; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], device main0_in* spvIn [[buffer(22)]]) -{ - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 1]; - device main0_patchOut& patchOut = spvPatchOut[gl_GlobalInvocationID.x / 1]; - device main0_in* gl_in = &spvIn[min(gl_GlobalInvocationID.x / 1, spvIndirectParams[1] - 1) * spvIndirectParams[0]]; - uint gl_InvocationID = gl_GlobalInvocationID.x % 1; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 1, spvIndirectParams[1] - 1); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[0] = half(8.8999996185302734375); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[1] = half(6.900000095367431640625); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(8.8999996185302734375); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(6.900000095367431640625); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(3.900000095367431640625); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3] = half(4.900000095367431640625); - patchOut.vFoo = float3(1.0); - gl_out[gl_InvocationID].gl_Position = gl_in[0].gl_Position + gl_in[1].gl_Position; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/tesc/basic.desktop.sso.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/tesc/basic.desktop.sso.tesc deleted file mode 100644 index 7276384320..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/tesc/basic.desktop.sso.tesc +++ /dev/null @@ -1,39 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position; -}; - -struct main0_patchOut -{ - float3 vFoo; -}; - -struct main0_in -{ - float4 gl_Position [[attribute(0)]]; -}; - -kernel void main0(main0_in in [[stage_in]], uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], threadgroup main0_in* gl_in [[threadgroup(0)]]) -{ - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 1]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - if (gl_InvocationID < spvIndirectParams[0]) - gl_in[gl_InvocationID] = in; - threadgroup_barrier(mem_flags::mem_threadgroup); - if (gl_InvocationID >= 1) - return; - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[0] = half(8.8999996185302734375); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[1] = half(6.900000095367431640625); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(8.8999996185302734375); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(6.900000095367431640625); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(3.900000095367431640625); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3] = half(4.900000095367431640625); - patchOut.vFoo = float3(1.0); - gl_out[gl_InvocationID].gl_Position = gl_in[0].gl_Position + gl_in[1].gl_Position; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/tesc/struct-copy.desktop.sso.multi-patch.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/tesc/struct-copy.desktop.sso.multi-patch.tesc deleted file mode 100644 index 184a4a6f9b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/tesc/struct-copy.desktop.sso.multi-patch.tesc +++ /dev/null @@ -1,36 +0,0 @@ -#include -#include - -using namespace metal; - -struct Boo -{ - float3 a; - uint3 b; -}; - -struct main0_out -{ - Boo vVertex; -}; - -struct main0_in -{ - Boo vInput; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], device main0_in* spvIn [[buffer(22)]]) -{ - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - device main0_in* gl_in = &spvIn[min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1) * spvIndirectParams[0]]; - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - gl_out[gl_InvocationID].vVertex = gl_in[gl_InvocationID].vInput; - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(1.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(2.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(3.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3] = half(4.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[0] = half(1.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[1] = half(2.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/tesc/struct-copy.desktop.sso.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/tesc/struct-copy.desktop.sso.tesc deleted file mode 100644 index e7e184a980..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/tesc/struct-copy.desktop.sso.tesc +++ /dev/null @@ -1,40 +0,0 @@ -#include -#include - -using namespace metal; - -struct Boo -{ - float3 a; - float3 b; -}; - -struct main0_out -{ - Boo vVertex; -}; - -struct main0_in -{ - float3 Boo_a [[attribute(0)]]; - float3 Boo_b [[attribute(1)]]; -}; - -kernel void main0(main0_in in [[stage_in]], uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], threadgroup main0_in* gl_in [[threadgroup(0)]]) -{ - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - if (gl_InvocationID < spvIndirectParams[0]) - gl_in[gl_InvocationID] = in; - threadgroup_barrier(mem_flags::mem_threadgroup); - if (gl_InvocationID >= 4) - return; - Boo _25 = Boo{ gl_in[gl_InvocationID].Boo_a, gl_in[gl_InvocationID].Boo_b }; - gl_out[gl_InvocationID].vVertex = _25; - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(1.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(2.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(3.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3] = half(4.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[0] = half(1.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[1] = half(2.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/tese/triangle.desktop.sso.tese b/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/tese/triangle.desktop.sso.tese deleted file mode 100644 index dff8cb7bbd..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/tese/triangle.desktop.sso.tese +++ /dev/null @@ -1,27 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 gl_Position [[attribute(0)]]; -}; - -struct main0_patchIn -{ - patch_control_point gl_in; -}; - -[[ patch(triangle, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]], float3 gl_TessCoord [[position_in_patch]]) -{ - main0_out out = {}; - out.gl_Position = ((patchIn.gl_in[0].gl_Position * gl_TessCoord.x) + (patchIn.gl_in[1].gl_Position * gl_TessCoord.y)) + (patchIn.gl_in[2].gl_Position * gl_TessCoord.z); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/vert/basic.desktop.sso.vert b/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/vert/basic.desktop.sso.vert deleted file mode 100644 index ffb4357126..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/vert/basic.desktop.sso.vert +++ /dev/null @@ -1,30 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - float4x4 uMVP; -}; - -struct main0_out -{ - float3 vNormal [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 aVertex [[attribute(0)]]; - float3 aNormal [[attribute(1)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant UBO& _16 [[buffer(0)]]) -{ - main0_out out = {}; - out.gl_Position = _16.uMVP * in.aVertex; - out.vNormal = in.aNormal; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/vert/clip-cull-distance..no-user-varying.desktop.vert b/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/vert/clip-cull-distance..no-user-varying.desktop.vert deleted file mode 100644 index a414c98542..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/vert/clip-cull-distance..no-user-varying.desktop.vert +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; - float gl_ClipDistance [[clip_distance]] [2]; -}; - -vertex main0_out main0() -{ - main0_out out = {}; - out.gl_Position = float4(10.0); - out.gl_ClipDistance[0] = 1.0; - out.gl_ClipDistance[1] = 4.0; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/vert/clip-cull-distance.desktop.vert b/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/vert/clip-cull-distance.desktop.vert deleted file mode 100644 index 2d98929051..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/vert/clip-cull-distance.desktop.vert +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; - float gl_ClipDistance [[clip_distance]] [2]; - float gl_ClipDistance_0 [[user(clip0)]]; - float gl_ClipDistance_1 [[user(clip1)]]; -}; - -vertex main0_out main0() -{ - main0_out out = {}; - out.gl_Position = float4(10.0); - out.gl_ClipDistance[0] = 1.0; - out.gl_ClipDistance[1] = 4.0; - out.gl_ClipDistance_0 = out.gl_ClipDistance[0]; - out.gl_ClipDistance_1 = out.gl_ClipDistance[1]; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/vert/shader-draw-parameters.desktop.for-tess.vert b/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/vert/shader-draw-parameters.desktop.for-tess.vert deleted file mode 100644 index b3c8b6bb27..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/vert/shader-draw-parameters.desktop.for-tess.vert +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint3 spvStageInputSize [[grid_size]], uint3 spvDispatchBase [[grid_origin]], device main0_out* spvOut [[buffer(28)]]) -{ - device main0_out& out = spvOut[gl_GlobalInvocationID.y * spvStageInputSize.x + gl_GlobalInvocationID.x]; - if (any(gl_GlobalInvocationID >= spvStageInputSize)) - return; - uint gl_BaseVertex = spvDispatchBase.x; - uint gl_BaseInstance = spvDispatchBase.y; - out.gl_Position = float4(float(int(gl_BaseVertex)), float(int(gl_BaseInstance)), 0.0, 1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/vert/shader-draw-parameters.desktop.vert b/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/vert/shader-draw-parameters.desktop.vert deleted file mode 100644 index a32c1948f8..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/desktop-only/vert/shader-draw-parameters.desktop.vert +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -vertex main0_out main0(uint gl_BaseVertex [[base_vertex]], uint gl_BaseInstance [[base_instance]]) -{ - main0_out out = {}; - out.gl_Position = float4(float(int(gl_BaseVertex)), float(int(gl_BaseInstance)), 0.0, 1.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/flatten/basic.flatten.vert b/third_party/spirv-cross/reference/opt/shaders-msl/flatten/basic.flatten.vert deleted file mode 100644 index ffb4357126..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/flatten/basic.flatten.vert +++ /dev/null @@ -1,30 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - float4x4 uMVP; -}; - -struct main0_out -{ - float3 vNormal [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 aVertex [[attribute(0)]]; - float3 aNormal [[attribute(1)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant UBO& _16 [[buffer(0)]]) -{ - main0_out out = {}; - out.gl_Position = _16.uMVP * in.aVertex; - out.vNormal = in.aNormal; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/flatten/multiindex.flatten.vert b/third_party/spirv-cross/reference/opt/shaders-msl/flatten/multiindex.flatten.vert deleted file mode 100644 index f4549abab2..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/flatten/multiindex.flatten.vert +++ /dev/null @@ -1,27 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - float4 Data[3][5]; -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - int2 aIndex [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant UBO& _20 [[buffer(0)]]) -{ - main0_out out = {}; - out.gl_Position = _20.Data[in.aIndex.x][in.aIndex.y]; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/flatten/push-constant.flatten.vert b/third_party/spirv-cross/reference/opt/shaders-msl/flatten/push-constant.flatten.vert deleted file mode 100644 index 8f2e8c173f..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/flatten/push-constant.flatten.vert +++ /dev/null @@ -1,32 +0,0 @@ -#include -#include - -using namespace metal; - -struct PushMe -{ - float4x4 MVP; - float2x2 Rot; - float Arr[4]; -}; - -struct main0_out -{ - float2 vRot [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float2 Rot [[attribute(0)]]; - float4 Pos [[attribute(1)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant PushMe& registers [[buffer(0)]]) -{ - main0_out out = {}; - out.gl_Position = registers.MVP * in.Pos; - out.vRot = (registers.Rot * in.Rot) + float2(registers.Arr[2]); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/flatten/rowmajor.flatten.vert b/third_party/spirv-cross/reference/opt/shaders-msl/flatten/rowmajor.flatten.vert deleted file mode 100644 index b40528115f..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/flatten/rowmajor.flatten.vert +++ /dev/null @@ -1,29 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - float4x4 uMVPR; - float4x4 uMVPC; - float4x4 uMVP; -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 aVertex [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant UBO& _18 [[buffer(0)]]) -{ - main0_out out = {}; - out.gl_Position = (_18.uMVPR * in.aVertex) + (in.aVertex * _18.uMVPC); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/flatten/struct.flatten.vert b/third_party/spirv-cross/reference/opt/shaders-msl/flatten/struct.flatten.vert deleted file mode 100644 index d97a34a859..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/flatten/struct.flatten.vert +++ /dev/null @@ -1,40 +0,0 @@ -#include -#include - -using namespace metal; - -struct Light -{ - packed_float3 Position; - float Radius; - float4 Color; -}; - -struct UBO -{ - float4x4 uMVP; - Light light; -}; - -struct main0_out -{ - float4 vColor [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 aVertex [[attribute(0)]]; - float3 aNormal [[attribute(1)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant UBO& _18 [[buffer(0)]]) -{ - main0_out out = {}; - out.gl_Position = _18.uMVP * in.aVertex; - out.vColor = float4(0.0); - float3 _39 = in.aVertex.xyz - float3(_18.light.Position); - out.vColor += ((_18.light.Color * fast::clamp(1.0 - (length(_39) / _18.light.Radius), 0.0, 1.0)) * dot(in.aNormal, normalize(_39))); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/flatten/swizzle.flatten.vert b/third_party/spirv-cross/reference/opt/shaders-msl/flatten/swizzle.flatten.vert deleted file mode 100644 index 52940411bc..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/flatten/swizzle.flatten.vert +++ /dev/null @@ -1,47 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - float4 A; - float2 B0; - float2 B1; - float C0; - float3 C1; - packed_float3 D0; - float D1; - float E0; - float E1; - float E2; - float E3; - float F0; - float2 F1; - float F2; -}; - -struct main0_out -{ - float4 oA [[user(locn0)]]; - float4 oB [[user(locn1)]]; - float4 oC [[user(locn2)]]; - float4 oD [[user(locn3)]]; - float4 oE [[user(locn4)]]; - float4 oF [[user(locn5)]]; - float4 gl_Position [[position]]; -}; - -vertex main0_out main0(constant UBO& _22 [[buffer(0)]]) -{ - main0_out out = {}; - out.gl_Position = float4(0.0); - out.oA = _22.A; - out.oB = float4(_22.B0, _22.B1); - out.oC = float4(_22.C0, _22.C1) + float4(_22.C1.xy, _22.C1.z, _22.C0); - out.oD = float4(_22.D0[0], _22.D0[1], _22.D0[2], _22.D1) + float4(_22.D0[0], _22.D0[1], _22.D0[2u], _22.D1); - out.oE = float4(_22.E0, _22.E1, _22.E2, _22.E3); - out.oF = float4(_22.F0, _22.F1, _22.F2); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/flatten/types.flatten.frag b/third_party/spirv-cross/reference/opt/shaders-msl/flatten/types.flatten.frag deleted file mode 100644 index cee53d9e58..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/flatten/types.flatten.frag +++ /dev/null @@ -1,35 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO1 -{ - int4 c; - int4 d; -}; - -struct UBO2 -{ - uint4 e; - uint4 f; -}; - -struct UBO0 -{ - float4 a; - float4 b; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(constant UBO1& _14 [[buffer(0)]], constant UBO2& _29 [[buffer(1)]], constant UBO0& _41 [[buffer(2)]]) -{ - main0_out out = {}; - out.FragColor = ((((float4(_14.c) + float4(_14.d)) + float4(_29.e)) + float4(_29.f)) + _41.a) + _41.b; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/argument-buffers.msl2.argument.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/argument-buffers.msl2.argument.frag deleted file mode 100644 index bdf9080bd2..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/argument-buffers.msl2.argument.frag +++ /dev/null @@ -1,73 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - float4 ssbo; -}; - -struct SSBOs -{ - float4 ssbo; -}; - -struct Push -{ - float4 push; -}; - -struct UBO -{ - float4 ubo; -}; - -struct UBOs -{ - float4 ubo; -}; - -struct spvDescriptorSetBuffer0 -{ - texture2d uTexture [[id(0)]]; - sampler uTextureSmplr [[id(1)]]; - array, 2> uTextures [[id(2)]]; - array uTexturesSmplr [[id(4)]]; - constant UBO* m_90 [[id(6)]]; -}; - -struct spvDescriptorSetBuffer1 -{ - array, 4> uTexture2 [[id(0)]]; - array uSampler [[id(4)]]; - device SSBO* m_60 [[id(6)]]; - const device SSBOs* ssbos [[id(7)]][2]; -}; - -struct spvDescriptorSetBuffer2 -{ - constant UBOs* ubos [[id(0)]][4]; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float2 vUV [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], constant spvDescriptorSetBuffer0& spvDescriptorSet0 [[buffer(0)]], constant spvDescriptorSetBuffer1& spvDescriptorSet1 [[buffer(1)]], constant spvDescriptorSetBuffer2& spvDescriptorSet2 [[buffer(2)]], constant Push& registers [[buffer(3)]]) -{ - main0_out out = {}; - out.FragColor = ((((((spvDescriptorSet0.uTexture.sample(spvDescriptorSet0.uTextureSmplr, in.vUV) + spvDescriptorSet1.uTexture2[2].sample(spvDescriptorSet1.uSampler[1], in.vUV)) + spvDescriptorSet0.uTextures[1].sample(spvDescriptorSet0.uTexturesSmplr[1], in.vUV)) + (*spvDescriptorSet1.m_60).ssbo) + spvDescriptorSet1.ssbos[0]->ssbo) + registers.push) + (*spvDescriptorSet0.m_90).ubo) + spvDescriptorSet2.ubos[0]->ubo; - out.FragColor += (*spvDescriptorSet0.m_90).ubo; - out.FragColor += (*spvDescriptorSet1.m_60).ssbo; - out.FragColor += spvDescriptorSet2.ubos[1]->ubo; - out.FragColor += registers.push; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/array-component-io.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/array-component-io.frag deleted file mode 100644 index 9b4c5b5204..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/array-component-io.frag +++ /dev/null @@ -1,99 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 m_location_0 [[color(0)]]; - float4 m_location_1 [[color(1)]]; - float4 m_location_2 [[color(2)]]; -}; - -struct main0_in -{ - float InC_0 [[user(locn0_1), flat]]; - float InA_0 [[user(locn1), flat]]; - float InC_1 [[user(locn1_1), flat]]; - float2 InB_0 [[user(locn1_2), flat]]; - float InA_1 [[user(locn2), flat]]; - float InC_2 [[user(locn2_1), flat]]; - float2 InB_1 [[user(locn2_2), flat]]; - float InD [[user(locn3_1), sample_perspective]]; - float InE [[user(locn4_2), center_no_perspective]]; - float InF [[user(locn5_3), centroid_perspective]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - spvUnsafeArray A = {}; - spvUnsafeArray B = {}; - spvUnsafeArray C = {}; - float D = {}; - spvUnsafeArray InA = {}; - spvUnsafeArray InB = {}; - spvUnsafeArray InC = {}; - InA[0] = in.InA_0; - InA[1] = in.InA_1; - InB[0] = in.InB_0; - InB[1] = in.InB_1; - InC[0] = in.InC_0; - InC[1] = in.InC_1; - InC[2] = in.InC_2; - A = InA; - B = InB; - C = InC; - D = (in.InD + in.InE) + in.InF; - out.m_location_1.x = A[0]; - out.m_location_2.x = A[1]; - out.m_location_1.zw = B[0]; - out.m_location_2.zw = B[1]; - out.m_location_0.y = C[0]; - out.m_location_1.y = C[1]; - out.m_location_2.y = C[2]; - out.m_location_0.w = D; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/array-lut-no-loop-variable.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/array-lut-no-loop-variable.frag deleted file mode 100644 index 79f9025a78..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/array-lut-no-loop-variable.frag +++ /dev/null @@ -1,66 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -constant spvUnsafeArray _17 = spvUnsafeArray({ 1.0, 2.0, 3.0, 4.0, 5.0 }); - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - for (int _46 = 0; _46 < 4; ) - { - int _33 = _46 + 1; - out.FragColor += float4(_17[_33]); - _46 = _33; - continue; - } - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/array-of-array-lut.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/array-of-array-lut.frag deleted file mode 100644 index ba553824e7..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/array-of-array-lut.frag +++ /dev/null @@ -1,68 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -constant spvUnsafeArray _17 = spvUnsafeArray({ 1.0, 2.0, 3.0 }); -constant spvUnsafeArray _21 = spvUnsafeArray({ 4.0, 5.0, 6.0 }); -constant spvUnsafeArray, 2> _22 = spvUnsafeArray, 2>({ spvUnsafeArray({ 1.0, 2.0, 3.0 }), spvUnsafeArray({ 4.0, 5.0, 6.0 }) }); - -struct main0_out -{ - float vOutput [[color(0)]]; -}; - -struct main0_in -{ - int vIndex1 [[user(locn0)]]; - int vIndex2 [[user(locn1)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.vOutput = _22[in.vIndex1][in.vIndex2]; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/array-of-texture-swizzle-nonconstant-uniform.msl2.argument.discrete.swizzle.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/array-of-texture-swizzle-nonconstant-uniform.msl2.argument.discrete.swizzle.frag deleted file mode 100644 index 0df124346b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/array-of-texture-swizzle-nonconstant-uniform.msl2.argument.discrete.swizzle.frag +++ /dev/null @@ -1,105 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct UBO -{ - uint index; -}; - -struct UBO2 -{ - uint index2; -}; - -struct spvDescriptorSetBuffer0 -{ - array, 4> uSampler [[id(0)]]; - array uSamplerSmplr [[id(4)]]; - constant UBO* uUBO [[id(8)]]; - constant UBO2* m_50 [[id(9)]]; - constant uint* spvSwizzleConstants [[id(10)]]; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float2 vUV [[user(locn0)]]; -}; - -template struct spvRemoveReference { typedef T type; }; -template struct spvRemoveReference { typedef T type; }; -template struct spvRemoveReference { typedef T type; }; -template inline constexpr thread T&& spvForward(thread typename spvRemoveReference::type& x) -{ - return static_cast(x); -} -template inline constexpr thread T&& spvForward(thread typename spvRemoveReference::type&& x) -{ - return static_cast(x); -} - -enum class spvSwizzle : uint -{ - none = 0, - zero, - one, - red, - green, - blue, - alpha -}; - -template -inline T spvGetSwizzle(vec x, T c, spvSwizzle s) -{ - switch (s) - { - case spvSwizzle::none: - return c; - case spvSwizzle::zero: - return 0; - case spvSwizzle::one: - return 1; - case spvSwizzle::red: - return x.r; - case spvSwizzle::green: - return x.g; - case spvSwizzle::blue: - return x.b; - case spvSwizzle::alpha: - return x.a; - } -} - -// Wrapper function that swizzles texture samples and fetches. -template -inline vec spvTextureSwizzle(vec x, uint s) -{ - if (!s) - return x; - return vec(spvGetSwizzle(x, x.r, spvSwizzle((s >> 0) & 0xFF)), spvGetSwizzle(x, x.g, spvSwizzle((s >> 8) & 0xFF)), spvGetSwizzle(x, x.b, spvSwizzle((s >> 16) & 0xFF)), spvGetSwizzle(x, x.a, spvSwizzle((s >> 24) & 0xFF))); -} - -template -inline T spvTextureSwizzle(T x, uint s) -{ - return spvTextureSwizzle(vec(x, 0, 0, 1), s).x; -} - -fragment main0_out main0(main0_in in [[stage_in]], constant spvDescriptorSetBuffer0& spvDescriptorSet0 [[buffer(0)]], constant uint* spvSwizzleConstants [[buffer(30)]]) -{ - main0_out out = {}; - constant uint* spvDescriptorSet0_uSamplerSwzl = &spvDescriptorSet0.spvSwizzleConstants[0]; - out.FragColor = spvTextureSwizzle(spvDescriptorSet0.uSampler[(*spvDescriptorSet0.uUBO).index].sample(spvDescriptorSet0.uSamplerSmplr[(*spvDescriptorSet0.uUBO).index], in.vUV), spvDescriptorSet0_uSamplerSwzl[(*spvDescriptorSet0.uUBO).index]); - out.FragColor += spvTextureSwizzle(spvDescriptorSet0.uSampler[(*spvDescriptorSet0.m_50).index2].sample(spvDescriptorSet0.uSamplerSmplr[(*spvDescriptorSet0.m_50).index2], in.vUV), spvDescriptorSet0_uSamplerSwzl[(*spvDescriptorSet0.m_50).index2]); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/array-of-texture-swizzle-nonconstant-uniform.msl2.swizzle.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/array-of-texture-swizzle-nonconstant-uniform.msl2.swizzle.frag deleted file mode 100644 index c447536ee8..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/array-of-texture-swizzle-nonconstant-uniform.msl2.swizzle.frag +++ /dev/null @@ -1,96 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct UBO -{ - uint index; -}; - -struct UBO2 -{ - uint index2; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float2 vUV [[user(locn0)]]; -}; - -template struct spvRemoveReference { typedef T type; }; -template struct spvRemoveReference { typedef T type; }; -template struct spvRemoveReference { typedef T type; }; -template inline constexpr thread T&& spvForward(thread typename spvRemoveReference::type& x) -{ - return static_cast(x); -} -template inline constexpr thread T&& spvForward(thread typename spvRemoveReference::type&& x) -{ - return static_cast(x); -} - -enum class spvSwizzle : uint -{ - none = 0, - zero, - one, - red, - green, - blue, - alpha -}; - -template -inline T spvGetSwizzle(vec x, T c, spvSwizzle s) -{ - switch (s) - { - case spvSwizzle::none: - return c; - case spvSwizzle::zero: - return 0; - case spvSwizzle::one: - return 1; - case spvSwizzle::red: - return x.r; - case spvSwizzle::green: - return x.g; - case spvSwizzle::blue: - return x.b; - case spvSwizzle::alpha: - return x.a; - } -} - -// Wrapper function that swizzles texture samples and fetches. -template -inline vec spvTextureSwizzle(vec x, uint s) -{ - if (!s) - return x; - return vec(spvGetSwizzle(x, x.r, spvSwizzle((s >> 0) & 0xFF)), spvGetSwizzle(x, x.g, spvSwizzle((s >> 8) & 0xFF)), spvGetSwizzle(x, x.b, spvSwizzle((s >> 16) & 0xFF)), spvGetSwizzle(x, x.a, spvSwizzle((s >> 24) & 0xFF))); -} - -template -inline T spvTextureSwizzle(T x, uint s) -{ - return spvTextureSwizzle(vec(x, 0, 0, 1), s).x; -} - -fragment main0_out main0(main0_in in [[stage_in]], constant uint* spvSwizzleConstants [[buffer(30)]], constant UBO& uUBO [[buffer(0)]], constant UBO2& _50 [[buffer(1)]], array, 4> uSampler [[texture(0)]], array uSamplerSmplr [[sampler(0)]]) -{ - main0_out out = {}; - constant uint* uSamplerSwzl = &spvSwizzleConstants[0]; - out.FragColor = spvTextureSwizzle(uSampler[uUBO.index].sample(uSamplerSmplr[uUBO.index], in.vUV), uSamplerSwzl[uUBO.index]); - out.FragColor += spvTextureSwizzle(uSampler[_50.index2].sample(uSamplerSmplr[_50.index2], in.vUV), uSamplerSwzl[_50.index2]); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/array-of-texture-swizzle.msl2.argument.discrete.swizzle.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/array-of-texture-swizzle.msl2.argument.discrete.swizzle.frag deleted file mode 100644 index d00acd7e65..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/array-of-texture-swizzle.msl2.argument.discrete.swizzle.frag +++ /dev/null @@ -1,97 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct spvDescriptorSetBuffer0 -{ - array, 4> uSampler0 [[id(0)]]; - array uSampler0Smplr [[id(4)]]; - constant uint* spvSwizzleConstants [[id(8)]]; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float2 vUV [[user(locn0)]]; -}; - -template struct spvRemoveReference { typedef T type; }; -template struct spvRemoveReference { typedef T type; }; -template struct spvRemoveReference { typedef T type; }; -template inline constexpr thread T&& spvForward(thread typename spvRemoveReference::type& x) -{ - return static_cast(x); -} -template inline constexpr thread T&& spvForward(thread typename spvRemoveReference::type&& x) -{ - return static_cast(x); -} - -enum class spvSwizzle : uint -{ - none = 0, - zero, - one, - red, - green, - blue, - alpha -}; - -template -inline T spvGetSwizzle(vec x, T c, spvSwizzle s) -{ - switch (s) - { - case spvSwizzle::none: - return c; - case spvSwizzle::zero: - return 0; - case spvSwizzle::one: - return 1; - case spvSwizzle::red: - return x.r; - case spvSwizzle::green: - return x.g; - case spvSwizzle::blue: - return x.b; - case spvSwizzle::alpha: - return x.a; - } -} - -// Wrapper function that swizzles texture samples and fetches. -template -inline vec spvTextureSwizzle(vec x, uint s) -{ - if (!s) - return x; - return vec(spvGetSwizzle(x, x.r, spvSwizzle((s >> 0) & 0xFF)), spvGetSwizzle(x, x.g, spvSwizzle((s >> 8) & 0xFF)), spvGetSwizzle(x, x.b, spvSwizzle((s >> 16) & 0xFF)), spvGetSwizzle(x, x.a, spvSwizzle((s >> 24) & 0xFF))); -} - -template -inline T spvTextureSwizzle(T x, uint s) -{ - return spvTextureSwizzle(vec(x, 0, 0, 1), s).x; -} - -fragment main0_out main0(main0_in in [[stage_in]], constant spvDescriptorSetBuffer0& spvDescriptorSet0 [[buffer(0)]], constant uint* spvSwizzleConstants [[buffer(30)]], texture2d uSampler1 [[texture(0)]], sampler uSampler1Smplr [[sampler(0)]]) -{ - main0_out out = {}; - constant uint* spvDescriptorSet0_uSampler0Swzl = &spvDescriptorSet0.spvSwizzleConstants[0]; - constant uint& uSampler1Swzl = spvSwizzleConstants[0]; - out.FragColor = spvTextureSwizzle(spvDescriptorSet0.uSampler0[2].sample(spvDescriptorSet0.uSampler0Smplr[2], in.vUV), spvDescriptorSet0_uSampler0Swzl[2]); - float4 _73 = spvTextureSwizzle(uSampler1.sample(uSampler1Smplr, in.vUV), uSampler1Swzl); - out.FragColor += _73; - out.FragColor += spvTextureSwizzle(spvDescriptorSet0.uSampler0[1].sample(spvDescriptorSet0.uSampler0Smplr[1], in.vUV), spvDescriptorSet0_uSampler0Swzl[1]); - out.FragColor += _73; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/array-of-texture-swizzle.msl2.swizzle.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/array-of-texture-swizzle.msl2.swizzle.frag deleted file mode 100644 index 2f9aef1382..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/array-of-texture-swizzle.msl2.swizzle.frag +++ /dev/null @@ -1,86 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float2 vUV [[user(locn0)]]; -}; - -template struct spvRemoveReference { typedef T type; }; -template struct spvRemoveReference { typedef T type; }; -template struct spvRemoveReference { typedef T type; }; -template inline constexpr thread T&& spvForward(thread typename spvRemoveReference::type& x) -{ - return static_cast(x); -} -template inline constexpr thread T&& spvForward(thread typename spvRemoveReference::type&& x) -{ - return static_cast(x); -} - -enum class spvSwizzle : uint -{ - none = 0, - zero, - one, - red, - green, - blue, - alpha -}; - -template -inline T spvGetSwizzle(vec x, T c, spvSwizzle s) -{ - switch (s) - { - case spvSwizzle::none: - return c; - case spvSwizzle::zero: - return 0; - case spvSwizzle::one: - return 1; - case spvSwizzle::red: - return x.r; - case spvSwizzle::green: - return x.g; - case spvSwizzle::blue: - return x.b; - case spvSwizzle::alpha: - return x.a; - } -} - -// Wrapper function that swizzles texture samples and fetches. -template -inline vec spvTextureSwizzle(vec x, uint s) -{ - if (!s) - return x; - return vec(spvGetSwizzle(x, x.r, spvSwizzle((s >> 0) & 0xFF)), spvGetSwizzle(x, x.g, spvSwizzle((s >> 8) & 0xFF)), spvGetSwizzle(x, x.b, spvSwizzle((s >> 16) & 0xFF)), spvGetSwizzle(x, x.a, spvSwizzle((s >> 24) & 0xFF))); -} - -template -inline T spvTextureSwizzle(T x, uint s) -{ - return spvTextureSwizzle(vec(x, 0, 0, 1), s).x; -} - -fragment main0_out main0(main0_in in [[stage_in]], constant uint* spvSwizzleConstants [[buffer(30)]], array, 4> uSampler [[texture(0)]], array uSamplerSmplr [[sampler(0)]]) -{ - main0_out out = {}; - constant uint* uSamplerSwzl = &spvSwizzleConstants[0]; - out.FragColor = spvTextureSwizzle(uSampler[2].sample(uSamplerSmplr[2], in.vUV), uSamplerSwzl[2]); - out.FragColor += spvTextureSwizzle(uSampler[1].sample(uSamplerSmplr[1], in.vUV), uSamplerSwzl[1]); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/barycentric-nv-nopersp.msl22.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/barycentric-nv-nopersp.msl22.frag deleted file mode 100644 index 53b8a74388..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/barycentric-nv-nopersp.msl22.frag +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -using namespace metal; - -struct Vertices -{ - float2 uvs[1]; -}; - -struct main0_out -{ - float2 value [[color(0)]]; -}; - -struct main0_in -{ - float3 gl_BaryCoordNoPerspNV [[barycentric_coord, center_no_perspective]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], const device Vertices& _19 [[buffer(0)]], uint gl_PrimitiveID [[primitive_id]]) -{ - main0_out out = {}; - int _23 = 3 * int(gl_PrimitiveID); - out.value = ((_19.uvs[_23] * in.gl_BaryCoordNoPerspNV.x) + (_19.uvs[_23 + 1] * in.gl_BaryCoordNoPerspNV.y)) + (_19.uvs[_23 + 2] * in.gl_BaryCoordNoPerspNV.z); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/barycentric-nv.msl22.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/barycentric-nv.msl22.frag deleted file mode 100644 index ae2c704d05..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/barycentric-nv.msl22.frag +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -using namespace metal; - -struct Vertices -{ - float2 uvs[1]; -}; - -struct main0_out -{ - float2 value [[color(0)]]; -}; - -struct main0_in -{ - float3 gl_BaryCoordNV [[barycentric_coord, center_perspective]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], const device Vertices& _19 [[buffer(0)]], uint gl_PrimitiveID [[primitive_id]]) -{ - main0_out out = {}; - int _23 = 3 * int(gl_PrimitiveID); - out.value = ((_19.uvs[_23] * in.gl_BaryCoordNV.x) + (_19.uvs[_23 + 1] * in.gl_BaryCoordNV.y)) + (_19.uvs[_23 + 2] * in.gl_BaryCoordNV.z); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/basic.force-sample.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/basic.force-sample.frag deleted file mode 100644 index b9706b73f5..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/basic.force-sample.frag +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 vColor [[user(locn0)]]; - float2 vTex [[user(locn1)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texture2d uTex [[texture(0)]], sampler uTexSmplr [[sampler(0)]], uint gl_SampleID [[sample_id]]) -{ - main0_out out = {}; - out.FragColor = in.vColor * uTex.sample(uTexSmplr, in.vTex); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/basic.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/basic.frag deleted file mode 100644 index f33db61eba..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/basic.frag +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 vColor [[user(locn0)]]; - float2 vTex [[user(locn1)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texture2d uTex [[texture(0)]], sampler uTexSmplr [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor = in.vColor * uTex.sample(uTexSmplr, in.vTex); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/binary-func-unpack-pack-arguments.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/binary-func-unpack-pack-arguments.frag deleted file mode 100644 index 134cfe1847..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/binary-func-unpack-pack-arguments.frag +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - packed_float3 color; - float v; -}; - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -struct main0_in -{ - float3 vIn [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], constant UBO& _15 [[buffer(0)]]) -{ - main0_out out = {}; - out.FragColor = dot(in.vIn, float3(_15.color)); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/binary-unpack-pack-arguments.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/binary-unpack-pack-arguments.frag deleted file mode 100644 index 8bd538bec6..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/binary-unpack-pack-arguments.frag +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - packed_float3 color; - float v; -}; - -struct main0_out -{ - float3 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float3 vIn [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], constant UBO& _15 [[buffer(0)]]) -{ - main0_out out = {}; - out.FragColor = cross(in.vIn, float3(_15.color) - in.vIn); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/bitcasting.1d-as-2d.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/bitcasting.1d-as-2d.frag deleted file mode 100644 index d341397f4c..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/bitcasting.1d-as-2d.frag +++ /dev/null @@ -1,26 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor0 [[color(0)]]; - float4 FragColor1 [[color(1)]]; -}; - -struct main0_in -{ - float4 VertGeom [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texture2d TextureBase [[texture(0)]], texture2d TextureDetail [[texture(1)]], sampler TextureBaseSmplr [[sampler(0)]], sampler TextureDetailSmplr [[sampler(1)]]) -{ - main0_out out = {}; - float4 _22 = TextureBase.sample(TextureBaseSmplr, float2(in.VertGeom.x, 0.5)); - float4 _30 = TextureDetail.sample(TextureDetailSmplr, float2(in.VertGeom.x, 0.5), int2(3, 0)); - out.FragColor0 = as_type(as_type(_22)) * as_type(as_type(_30)); - out.FragColor1 = as_type(as_type(_22)) * as_type(as_type(_30)); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/bitcasting.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/bitcasting.frag deleted file mode 100644 index ae6d45e013..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/bitcasting.frag +++ /dev/null @@ -1,26 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor0 [[color(0)]]; - float4 FragColor1 [[color(1)]]; -}; - -struct main0_in -{ - float4 VertGeom [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texture2d TextureBase [[texture(0)]], texture2d TextureDetail [[texture(1)]], sampler TextureBaseSmplr [[sampler(0)]], sampler TextureDetailSmplr [[sampler(1)]]) -{ - main0_out out = {}; - float4 _20 = TextureBase.sample(TextureBaseSmplr, in.VertGeom.xy); - float4 _31 = TextureDetail.sample(TextureDetailSmplr, in.VertGeom.xy, int2(3, 2)); - out.FragColor0 = as_type(as_type(_20)) * as_type(as_type(_31)); - out.FragColor1 = as_type(as_type(_20)) * as_type(as_type(_31)); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/buffer-read-write.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/buffer-read-write.frag deleted file mode 100644 index 166d4311ba..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/buffer-read-write.frag +++ /dev/null @@ -1,27 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -// Returns 2D texture coords corresponding to 1D texel buffer coords -static inline __attribute__((always_inline)) -uint2 spvTexelBufferCoord(uint tc) -{ - return uint2(tc % 4096, tc / 4096); -} - -fragment main0_out main0(texture2d buf [[texture(0)]], texture2d bufOut [[texture(1)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - out.FragColor = buf.read(spvTexelBufferCoord(0)); - bufOut.write(out.FragColor, spvTexelBufferCoord(int(gl_FragCoord.x))); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/buffer-read-write.texture-buffer-native.msl21.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/buffer-read-write.texture-buffer-native.msl21.frag deleted file mode 100644 index 71496a4efe..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/buffer-read-write.texture-buffer-native.msl21.frag +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(texture_buffer buf [[texture(0)]], texture_buffer bufOut [[texture(1)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - out.FragColor = buf.read(uint(0)); - bufOut.write(out.FragColor, uint(int(gl_FragCoord.x))); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/builtins.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/builtins.frag deleted file mode 100644 index f9085252b3..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/builtins.frag +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; - float gl_FragDepth [[depth(any)]]; -}; - -struct main0_in -{ - float4 vColor [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - out.FragColor = gl_FragCoord + in.vColor; - out.gl_FragDepth = 0.5; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/clip-distance-varying.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/clip-distance-varying.frag deleted file mode 100644 index 9a72d5ba39..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/clip-distance-varying.frag +++ /dev/null @@ -1,67 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float gl_ClipDistance_0 [[user(clip0)]]; - float gl_ClipDistance_1 [[user(clip1)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - spvUnsafeArray gl_ClipDistance = {}; - gl_ClipDistance[0] = in.gl_ClipDistance_0; - gl_ClipDistance[1] = in.gl_ClipDistance_1; - out.FragColor = float4((1.0 - gl_ClipDistance[0]) - gl_ClipDistance[1]); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/complex-expression-in-access-chain.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/complex-expression-in-access-chain.frag deleted file mode 100644 index 0889469c35..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/complex-expression-in-access-chain.frag +++ /dev/null @@ -1,29 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - float4 results[1024]; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - int vIn [[user(locn0)]]; - int vIn2 [[user(locn1)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], device UBO& _34 [[buffer(0)]], texture2d Buf [[texture(0)]], sampler BufSmplr [[sampler(0)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - int _40 = Buf.read(uint2(int2(gl_FragCoord.xy)), 0).x % 16; - out.FragColor = (_34.results[_40] + _34.results[_40]) + _34.results[(in.vIn * in.vIn) + (in.vIn2 * in.vIn2)]; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/composite-extract-forced-temporary.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/composite-extract-forced-temporary.frag deleted file mode 100644 index 6948e4d098..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/composite-extract-forced-temporary.frag +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float2 vTexCoord [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texture2d Texture [[texture(0)]], sampler TextureSmplr [[sampler(0)]]) -{ - main0_out out = {}; - float4 _19 = Texture.sample(TextureSmplr, in.vTexCoord); - float _22 = _19.x; - out.FragColor = float4(_22 * _22); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/constant-array.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/constant-array.frag deleted file mode 100644 index ca7efc5341..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/constant-array.frag +++ /dev/null @@ -1,76 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct Foobar -{ - float a; - float b; -}; - -constant spvUnsafeArray _37 = spvUnsafeArray({ float4(1.0), float4(2.0), float4(3.0) }); -constant spvUnsafeArray _49 = spvUnsafeArray({ float4(1.0), float4(2.0) }); -constant spvUnsafeArray _54 = spvUnsafeArray({ float4(8.0), float4(10.0) }); -constant spvUnsafeArray, 2> _55 = spvUnsafeArray, 2>({ spvUnsafeArray({ float4(1.0), float4(2.0) }), spvUnsafeArray({ float4(8.0), float4(10.0) }) }); - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - int index [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - spvUnsafeArray _75 = spvUnsafeArray({ Foobar{ 10.0, 40.0 }, Foobar{ 90.0, 70.0 } }); - - main0_out out = {}; - out.FragColor = ((_37[in.index] + _55[in.index][in.index + 1]) + float4(30.0)) + float4(_75[in.index].a + _75[in.index].b); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/constant-composites.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/constant-composites.frag deleted file mode 100644 index e0fa980fb8..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/constant-composites.frag +++ /dev/null @@ -1,74 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct Foo -{ - float a; - float b; -}; - -constant spvUnsafeArray _16 = spvUnsafeArray({ 1.0, 4.0, 3.0, 2.0 }); - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - int line [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - spvUnsafeArray _28 = spvUnsafeArray({ Foo{ 10.0, 20.0 }, Foo{ 30.0, 40.0 } }); - - main0_out out = {}; - out.FragColor = float4(_16[in.line]); - out.FragColor += float4(_28[in.line].a * _28[1 - in.line].a); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/control-dependent-in-branch.desktop.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/control-dependent-in-branch.desktop.frag deleted file mode 100644 index b75f86d23c..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/control-dependent-in-branch.desktop.frag +++ /dev/null @@ -1,45 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 vInput [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texture2d uSampler [[texture(0)]], sampler uSamplerSmplr [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor = in.vInput; - float4 _23 = uSampler.sample(uSamplerSmplr, in.vInput.xy); - float4 _26 = dfdx(in.vInput); - float4 _29 = dfdy(in.vInput); - float4 _32 = fwidth(in.vInput); - float4 _35 = dfdx(in.vInput); - float4 _38 = dfdy(in.vInput); - float4 _41 = fwidth(in.vInput); - float4 _44 = dfdx(in.vInput); - float4 _47 = dfdy(in.vInput); - float4 _50 = fwidth(in.vInput); - if (in.vInput.y > 10.0) - { - out.FragColor += _23; - out.FragColor += _26; - out.FragColor += _29; - out.FragColor += _32; - out.FragColor += _35; - out.FragColor += _38; - out.FragColor += _41; - out.FragColor += _44; - out.FragColor += _47; - out.FragColor += _50; - } - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/cull-distance-varying.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/cull-distance-varying.frag deleted file mode 100644 index 708a295710..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/cull-distance-varying.frag +++ /dev/null @@ -1,67 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float gl_CullDistance_0 [[user(cull0)]]; - float gl_CullDistance_1 [[user(cull1)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - spvUnsafeArray gl_CullDistance = {}; - gl_CullDistance[0] = in.gl_CullDistance_0; - gl_CullDistance[1] = in.gl_CullDistance_1; - out.FragColor = float4((1.0 - gl_CullDistance[0]) - gl_CullDistance[1]); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/depth-greater-than.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/depth-greater-than.frag deleted file mode 100644 index 5861509fc1..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/depth-greater-than.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float gl_FragDepth [[depth(greater)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - out.gl_FragDepth = 0.5; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/depth-less-than.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/depth-less-than.frag deleted file mode 100644 index f1177fa640..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/depth-less-than.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float gl_FragDepth [[depth(less)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - out.gl_FragDepth = 0.5; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/disable-frag-output.frag-output.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/disable-frag-output.frag-output.frag deleted file mode 100644 index 63bc45b8af..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/disable-frag-output.frag-output.frag +++ /dev/null @@ -1,35 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 buf1 [[color(1)]]; - float4 buf3 [[color(3)]]; - float4 buf6 [[color(6)]]; - float4 buf7 [[color(7)]]; -}; - -fragment main0_out main0() -{ - float4 buf0; - float4 buf2; - float4 buf4; - float4 buf5; - float gl_FragDepth; - int gl_FragStencilRefARB; - main0_out out = {}; - buf0 = float4(0.0, 0.0, 0.0, 1.0); - out.buf1 = float4(1.0, 0.0, 0.0, 1.0); - buf2 = float4(0.0, 1.0, 0.0, 1.0); - out.buf3 = float4(0.0, 0.0, 1.0, 1.0); - buf4 = float4(1.0, 0.0, 1.0, 0.5); - buf5 = float4(0.25); - out.buf6 = float4(0.75); - out.buf7 = float4(1.0); - gl_FragDepth = 0.89999997615814208984375; - gl_FragStencilRefARB = uint(127); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/dual-source-blending.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/dual-source-blending.frag deleted file mode 100644 index 37938bf8ca..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/dual-source-blending.frag +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor0 [[color(0), index(0)]]; - float4 FragColor1 [[color(0), index(1)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - out.FragColor0 = float4(1.0); - out.FragColor1 = float4(2.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/early-fragment-tests.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/early-fragment-tests.frag deleted file mode 100644 index 850fdc9205..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/early-fragment-tests.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -[[ early_fragment_tests ]] fragment main0_out main0() -{ - main0_out out = {}; - out.FragColor = float4(1.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/false-loop-init.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/false-loop-init.frag deleted file mode 100644 index 9233caa05d..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/false-loop-init.frag +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 result [[color(0)]]; -}; - -struct main0_in -{ - float4 accum [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.result = float4(0.0); - for (int _48 = 0; _48 < 4; ) - { - out.result += in.accum; - _48 += int((in.accum.y > 10.0) ? 40u : 30u); - continue; - } - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/flush_params.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/flush_params.frag deleted file mode 100644 index 64edee8722..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/flush_params.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - out.FragColor = float4(10.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/for-loop-continue-control-flow.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/for-loop-continue-control-flow.frag deleted file mode 100644 index b4cd2085e3..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/for-loop-continue-control-flow.frag +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - out.FragColor = float4(0.0); - for (int _43 = 0; _43 < 3; ) - { - out.FragColor[_43] += float(_43); - _43++; - continue; - } - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/for-loop-init.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/for-loop-init.frag deleted file mode 100644 index 1a42f6e7be..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/for-loop-init.frag +++ /dev/null @@ -1,71 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - int FragColor [[color(0)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - do - { - out.FragColor = 16; - for (int _143 = 0; _143 < 25; ) - { - out.FragColor += 10; - _143++; - continue; - } - for (int _144 = 1; _144 < 30; ) - { - out.FragColor += 11; - _144++; - continue; - } - int _145; - _145 = 0; - for (; _145 < 20; ) - { - out.FragColor += 12; - _145++; - continue; - } - int _62 = _145 + 3; - out.FragColor += _62; - if (_62 == 40) - { - for (int _149 = 0; _149 < 40; ) - { - out.FragColor += 13; - _149++; - continue; - } - break; - } - out.FragColor += _62; - int2 _146; - _146 = int2(0); - for (; _146.x < 10; ) - { - out.FragColor += _146.y; - int2 _142 = _146; - _142.x = _146.x + 4; - _146 = _142; - continue; - } - for (int _148 = _62; _148 < 40; ) - { - out.FragColor += _148; - _148++; - continue; - } - out.FragColor += _62; - break; - } while(false); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/fp16-packing.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/fp16-packing.frag deleted file mode 100644 index e21feb43ec..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/fp16-packing.frag +++ /dev/null @@ -1,25 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float2 FP32Out [[color(0)]]; - uint FP16Out [[color(1)]]; -}; - -struct main0_in -{ - uint FP16 [[user(locn0)]]; - float2 FP32 [[user(locn1), flat]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.FP32Out = float2(as_type(in.FP16)); - out.FP16Out = as_type(half2(in.FP32)); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/fragment-component-padding.pad-fragment.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/fragment-component-padding.pad-fragment.frag deleted file mode 100644 index 19840fa434..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/fragment-component-padding.pad-fragment.frag +++ /dev/null @@ -1,76 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 FragColors_0 [[color(0)]]; - float4 FragColors_1 [[color(1)]]; - float4 FragColor2 [[color(2)]]; - float4 FragColor3 [[color(3)]]; -}; - -struct main0_in -{ - float3 vColor [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - spvUnsafeArray FragColors = {}; - float2 FragColor2 = {}; - float3 FragColor3 = {}; - FragColors[0] = in.vColor.x; - FragColors[1] = in.vColor.y; - FragColor2 = in.vColor.xz; - FragColor3 = in.vColor.zzz; - out.FragColors_0 = float4(FragColors[0]); - out.FragColors_1 = float4(FragColors[1]); - out.FragColor2.xy = FragColor2; - out.FragColor3.xyz = FragColor3; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/front-facing.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/front-facing.frag deleted file mode 100644 index 2f83642492..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/front-facing.frag +++ /dev/null @@ -1,30 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 vA [[user(locn0)]]; - float4 vB [[user(locn1)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], bool gl_FrontFacing [[front_facing]]) -{ - main0_out out = {}; - if (gl_FrontFacing) - { - out.FragColor = in.vA; - } - else - { - out.FragColor = in.vB; - } - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/gather-dref.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/gather-dref.frag deleted file mode 100644 index c5c5ccf0bb..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/gather-dref.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float3 vUV [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], depth2d uT [[texture(0)]], sampler uTSmplr [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor = uT.gather_compare(uTSmplr, in.vUV.xy, in.vUV.z); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/gather-offset.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/gather-offset.frag deleted file mode 100644 index 02b80194b5..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/gather-offset.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(texture2d uT [[texture(0)]], sampler uTSmplr [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor = uT.gather(uTSmplr, float2(0.5), int2(0), component::w); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/helper-invocation.msl21.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/helper-invocation.msl21.frag deleted file mode 100644 index a833fa0869..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/helper-invocation.msl21.frag +++ /dev/null @@ -1,32 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float2 vUV [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texture2d uSampler [[texture(0)]], sampler uSamplerSmplr [[sampler(0)]]) -{ - main0_out out = {}; - bool gl_HelperInvocation = simd_is_helper_thread(); - float4 _52; - if (!gl_HelperInvocation) - { - _52 = uSampler.sample(uSamplerSmplr, in.vUV, level(0.0)); - } - else - { - _52 = float4(1.0); - } - out.FragColor = _52; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/huge-argument-buffer.device-argument-buffer.argument.msl2.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/huge-argument-buffer.device-argument-buffer.argument.msl2.frag deleted file mode 100644 index 0c6e6f4991..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/huge-argument-buffer.device-argument-buffer.argument.msl2.frag +++ /dev/null @@ -1,44 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - float4 v; -}; - -struct spvDescriptorSetBuffer0 -{ - array, 10000> uSamplers [[id(0)]]; - array uSamplersSmplr [[id(10000)]]; -}; - -struct spvDescriptorSetBuffer1 -{ - constant UBO* vs [[id(0)]][10000]; -}; - -struct spvDescriptorSetBuffer2 -{ - texture2d uSampler [[id(0)]]; - sampler uSamplerSmplr [[id(1)]]; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float2 vUV [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], const device spvDescriptorSetBuffer0& spvDescriptorSet0 [[buffer(0)]], const device spvDescriptorSetBuffer1& spvDescriptorSet1 [[buffer(1)]], constant spvDescriptorSetBuffer2& spvDescriptorSet2 [[buffer(2)]]) -{ - main0_out out = {}; - out.FragColor = (spvDescriptorSet0.uSamplers[9999].sample(spvDescriptorSet0.uSamplersSmplr[9999], in.vUV) + spvDescriptorSet1.vs[5000]->v) + spvDescriptorSet2.uSampler.sample(spvDescriptorSet2.uSamplerSmplr, in.vUV); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/illegal-name-test-0.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/illegal-name-test-0.frag deleted file mode 100644 index 81cd3b5621..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/illegal-name-test-0.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - out.FragColor = float4(40.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/image-query-lod.msl22.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/image-query-lod.msl22.frag deleted file mode 100644 index de7a60cc5a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/image-query-lod.msl22.frag +++ /dev/null @@ -1,70 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float2 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float3 vUV [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texture2d uSampler2D [[texture(0)]], texture3d uSampler3D [[texture(1)]], texturecube uSamplerCube [[texture(2)]], texture2d uTexture2D [[texture(3)]], texture3d uTexture3D [[texture(4)]], texturecube uTextureCube [[texture(5)]], sampler uSampler2DSmplr [[sampler(0)]], sampler uSampler3DSmplr [[sampler(1)]], sampler uSamplerCubeSmplr [[sampler(2)]], sampler uSampler [[sampler(3)]]) -{ - main0_out out = {}; - out.FragColor = float2(0.0); - float2 _79; - _79.x = uSampler2D.calculate_clamped_lod(uSampler2DSmplr, in.vUV.xy); - _79.y = uSampler2D.calculate_unclamped_lod(uSampler2DSmplr, in.vUV.xy); - out.FragColor += _79; - float2 _84; - _84.x = uSampler3D.calculate_clamped_lod(uSampler3DSmplr, in.vUV); - _84.y = uSampler3D.calculate_unclamped_lod(uSampler3DSmplr, in.vUV); - out.FragColor += _84; - float2 _89; - _89.x = uSamplerCube.calculate_clamped_lod(uSamplerCubeSmplr, in.vUV); - _89.y = uSamplerCube.calculate_unclamped_lod(uSamplerCubeSmplr, in.vUV); - out.FragColor += _89; - float2 _97; - _97.x = uTexture2D.calculate_clamped_lod(uSampler, in.vUV.xy); - _97.y = uTexture2D.calculate_unclamped_lod(uSampler, in.vUV.xy); - out.FragColor += _97; - float2 _104; - _104.x = uTexture3D.calculate_clamped_lod(uSampler, in.vUV); - _104.y = uTexture3D.calculate_unclamped_lod(uSampler, in.vUV); - out.FragColor += _104; - float2 _111; - _111.x = uTextureCube.calculate_clamped_lod(uSampler, in.vUV); - _111.y = uTextureCube.calculate_unclamped_lod(uSampler, in.vUV); - out.FragColor += _111; - float2 _119; - _119.x = uSampler2D.calculate_clamped_lod(uSampler2DSmplr, in.vUV.xy); - _119.y = uSampler2D.calculate_unclamped_lod(uSampler2DSmplr, in.vUV.xy); - out.FragColor += _119; - float2 _124; - _124.x = uSampler3D.calculate_clamped_lod(uSampler3DSmplr, in.vUV); - _124.y = uSampler3D.calculate_unclamped_lod(uSampler3DSmplr, in.vUV); - out.FragColor += _124; - float2 _129; - _129.x = uSamplerCube.calculate_clamped_lod(uSamplerCubeSmplr, in.vUV); - _129.y = uSamplerCube.calculate_unclamped_lod(uSamplerCubeSmplr, in.vUV); - out.FragColor += _129; - float2 _137; - _137.x = uTexture2D.calculate_clamped_lod(uSampler, in.vUV.xy); - _137.y = uTexture2D.calculate_unclamped_lod(uSampler, in.vUV.xy); - out.FragColor += _137; - float2 _144; - _144.x = uTexture3D.calculate_clamped_lod(uSampler, in.vUV); - _144.y = uTexture3D.calculate_unclamped_lod(uSampler, in.vUV); - out.FragColor += _144; - float2 _151; - _151.x = uTextureCube.calculate_clamped_lod(uSampler, in.vUV); - _151.y = uTextureCube.calculate_unclamped_lod(uSampler, in.vUV); - out.FragColor += _151; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/in_block.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/in_block.frag deleted file mode 100644 index 8178c9a4ed..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/in_block.frag +++ /dev/null @@ -1,32 +0,0 @@ -#include -#include - -using namespace metal; - -struct VertexOut -{ - float4 color; - float4 color2; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 VertexOut_color [[user(locn2)]]; - float4 VertexOut_color2 [[user(locn3)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - VertexOut inputs = {}; - inputs.color = in.VertexOut_color; - inputs.color2 = in.VertexOut_color2; - out.FragColor = inputs.color + inputs.color2; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/in_mat.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/in_mat.frag deleted file mode 100644 index 83ed9b5ea3..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/in_mat.frag +++ /dev/null @@ -1,37 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 outFragColor [[color(0)]]; -}; - -struct main0_in -{ - float3 inPos [[user(locn0)]]; - float3 inNormal [[user(locn1)]]; - float4 inInvModelView_0 [[user(locn2)]]; - float4 inInvModelView_1 [[user(locn3)]]; - float4 inInvModelView_2 [[user(locn4)]]; - float4 inInvModelView_3 [[user(locn5)]]; - float inLodBias [[user(locn6)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texturecube samplerColor [[texture(0)]], sampler samplerColorSmplr [[sampler(0)]]) -{ - main0_out out = {}; - float4x4 inInvModelView = {}; - inInvModelView[0] = in.inInvModelView_0; - inInvModelView[1] = in.inInvModelView_1; - inInvModelView[2] = in.inInvModelView_2; - inInvModelView[3] = in.inInvModelView_3; - float4 _31 = inInvModelView * float4(reflect(normalize(in.inPos), normalize(in.inNormal)), 0.0); - float _33 = _31.x; - float3 _59 = float3(_33, _31.yz); - _59.x = _33 * (-1.0); - out.outFragColor = samplerColor.sample(samplerColorSmplr, _59, bias(in.inLodBias)); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/input-attachment-ms.arrayed-subpass.msl21.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/input-attachment-ms.arrayed-subpass.msl21.frag deleted file mode 100644 index 52a78cf93a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/input-attachment-ms.arrayed-subpass.msl21.frag +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(texture2d_ms_array uSubpass0 [[texture(0)]], texture2d_ms_array uSubpass1 [[texture(1)]], uint gl_SampleID [[sample_id]], float4 gl_FragCoord [[position]], uint gl_Layer [[render_target_array_index]]) -{ - main0_out out = {}; - gl_FragCoord.xy += get_sample_position(gl_SampleID) - 0.5; - out.FragColor = (uSubpass0.read(uint2(gl_FragCoord.xy), gl_Layer, 1) + uSubpass1.read(uint2(gl_FragCoord.xy), gl_Layer, 2)) + uSubpass0.read(uint2(gl_FragCoord.xy), gl_Layer, gl_SampleID); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/input-attachment-ms.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/input-attachment-ms.frag deleted file mode 100644 index 0c47348d6e..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/input-attachment-ms.frag +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(texture2d_ms uSubpass0 [[texture(0)]], texture2d_ms uSubpass1 [[texture(1)]], uint gl_SampleID [[sample_id]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - gl_FragCoord.xy += get_sample_position(gl_SampleID) - 0.5; - out.FragColor = (uSubpass0.read(uint2(gl_FragCoord.xy), 1) + uSubpass1.read(uint2(gl_FragCoord.xy), 2)) + uSubpass0.read(uint2(gl_FragCoord.xy), gl_SampleID); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/input-attachment-ms.multiview.msl21.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/input-attachment-ms.multiview.msl21.frag deleted file mode 100644 index e27b24adf3..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/input-attachment-ms.multiview.msl21.frag +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(constant uint* spvViewMask [[buffer(24)]], texture2d_ms_array uSubpass0 [[texture(0)]], texture2d_ms_array uSubpass1 [[texture(1)]], uint gl_SampleID [[sample_id]], float4 gl_FragCoord [[position]], uint gl_ViewIndex [[render_target_array_index]]) -{ - main0_out out = {}; - gl_FragCoord.xy += get_sample_position(gl_SampleID) - 0.5; - gl_ViewIndex += spvViewMask[0]; - out.FragColor = (uSubpass0.read(uint2(gl_FragCoord.xy), gl_ViewIndex, 1) + uSubpass1.read(uint2(gl_FragCoord.xy), gl_ViewIndex, 2)) + uSubpass0.read(uint2(gl_FragCoord.xy), gl_ViewIndex, gl_SampleID); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/input-attachment.arrayed-subpass.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/input-attachment.arrayed-subpass.frag deleted file mode 100644 index 5d5ee43104..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/input-attachment.arrayed-subpass.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(texture2d_array uSubpass0 [[texture(0)]], texture2d_array uSubpass1 [[texture(1)]], float4 gl_FragCoord [[position]], uint gl_Layer [[render_target_array_index]]) -{ - main0_out out = {}; - out.FragColor = uSubpass0.read(uint2(gl_FragCoord.xy), gl_Layer) + uSubpass1.read(uint2(gl_FragCoord.xy), gl_Layer); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/input-attachment.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/input-attachment.frag deleted file mode 100644 index 790dce3c1b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/input-attachment.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(texture2d uSubpass0 [[texture(0)]], texture2d uSubpass1 [[texture(1)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - out.FragColor = uSubpass0.read(uint2(gl_FragCoord.xy)) + uSubpass1.read(uint2(gl_FragCoord.xy)); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/input-attachment.multiview.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/input-attachment.multiview.frag deleted file mode 100644 index 7cf06d2d6b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/input-attachment.multiview.frag +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(constant uint* spvViewMask [[buffer(24)]], texture2d_array uSubpass0 [[texture(0)]], texture2d_array uSubpass1 [[texture(1)]], float4 gl_FragCoord [[position]], uint gl_ViewIndex [[render_target_array_index]]) -{ - main0_out out = {}; - gl_ViewIndex += spvViewMask[0]; - out.FragColor = uSubpass0.read(uint2(gl_FragCoord.xy), gl_ViewIndex) + uSubpass1.read(uint2(gl_FragCoord.xy), gl_ViewIndex); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/interpolation-qualifiers-block.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/interpolation-qualifiers-block.frag deleted file mode 100644 index 2b420195ff..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/interpolation-qualifiers-block.frag +++ /dev/null @@ -1,47 +0,0 @@ -#include -#include - -using namespace metal; - -struct Input -{ - float2 v0; - float2 v1; - float3 v2; - float4 v3; - float v4; - float v5; - float v6; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float2 Input_v0 [[user(locn0), centroid_no_perspective]]; - float2 Input_v1 [[user(locn1), centroid_no_perspective]]; - float3 Input_v2 [[user(locn2), centroid_no_perspective]]; - float4 Input_v3 [[user(locn3), centroid_no_perspective]]; - float Input_v4 [[user(locn4), centroid_no_perspective]]; - float Input_v5 [[user(locn5), centroid_no_perspective]]; - float Input_v6 [[user(locn6), centroid_no_perspective]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - Input inp = {}; - inp.v0 = in.Input_v0; - inp.v1 = in.Input_v1; - inp.v2 = in.Input_v2; - inp.v3 = in.Input_v3; - inp.v4 = in.Input_v4; - inp.v5 = in.Input_v5; - inp.v6 = in.Input_v6; - out.FragColor = float4(inp.v0.x + inp.v1.y, inp.v2.xy, ((inp.v3.w * inp.v4) + inp.v5) - inp.v6); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/interpolation-qualifiers.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/interpolation-qualifiers.frag deleted file mode 100644 index aff6e1b0f7..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/interpolation-qualifiers.frag +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float2 v0 [[user(locn0)]]; - float2 v1 [[user(locn1), center_no_perspective]]; - float3 v2 [[user(locn2), centroid_perspective]]; - float4 v3 [[user(locn3), centroid_no_perspective]]; - float v4 [[user(locn4), sample_perspective]]; - float v5 [[user(locn5), sample_no_perspective]]; - float v6 [[user(locn6), flat]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.FragColor = float4(in.v0.x + in.v1.y, in.v2.xy, ((in.v3.w * in.v4) + in.v5) - in.v6); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/lut-promotion.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/lut-promotion.frag deleted file mode 100644 index e24bcd6d11..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/lut-promotion.frag +++ /dev/null @@ -1,92 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -constant spvUnsafeArray _16 = spvUnsafeArray({ 1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0, 4.0 }); -constant spvUnsafeArray _60 = spvUnsafeArray({ float4(0.0), float4(1.0), float4(8.0), float4(5.0) }); -constant spvUnsafeArray _104 = spvUnsafeArray({ float4(20.0), float4(30.0), float4(50.0), float4(60.0) }); - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -struct main0_in -{ - int index [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.FragColor = _16[in.index]; - if (in.index < 10) - { - out.FragColor += _16[in.index ^ 1]; - } - else - { - out.FragColor += _16[in.index & 1]; - } - bool _63 = in.index > 30; - if (_63) - { - out.FragColor += _60[in.index & 3].y; - } - else - { - out.FragColor += _60[in.index & 1].x; - } - spvUnsafeArray foobar = spvUnsafeArray({ float4(0.0), float4(1.0), float4(8.0), float4(5.0) }); - if (_63) - { - foobar[1].z = 20.0; - } - int _91 = in.index & 3; - out.FragColor += foobar[_91].z; - out.FragColor += _104[_91].z; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/mix.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/mix.frag deleted file mode 100644 index 5e385087bc..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/mix.frag +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 vIn0 [[user(locn0)]]; - float4 vIn1 [[user(locn1)]]; - float vIn2 [[user(locn2)]]; - float vIn3 [[user(locn3)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.FragColor = float4(in.vIn0.x, in.vIn1.y, in.vIn0.z, in.vIn0.w); - out.FragColor = float4(in.vIn3); - out.FragColor = in.vIn0.xyzw; - out.FragColor = float4(in.vIn2); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/mrt-array.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/mrt-array.frag deleted file mode 100644 index 79fc0391b5..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/mrt-array.frag +++ /dev/null @@ -1,82 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 FragColor_0 [[color(0)]]; - float4 FragColor_1 [[color(1)]]; - float4 FragColor_2 [[color(2)]]; - float4 FragColor_3 [[color(3)]]; -}; - -struct main0_in -{ - float4 vA [[user(locn0)]]; - float4 vB [[user(locn1)]]; -}; - -// Implementation of the GLSL mod() function, which is slightly different than Metal fmod() -template -inline Tx mod(Tx x, Ty y) -{ - return x - y * floor(x / y); -} - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - spvUnsafeArray FragColor = {}; - FragColor[0] = mod(in.vA, in.vB); - FragColor[1] = in.vA + in.vB; - FragColor[2] = in.vA - in.vB; - FragColor[3] = in.vA * in.vB; - out.FragColor_0 = FragColor[0]; - out.FragColor_1 = FragColor[1]; - out.FragColor_2 = FragColor[2]; - out.FragColor_3 = FragColor[3]; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/nonuniform-qualifier.msl2.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/nonuniform-qualifier.msl2.frag deleted file mode 100644 index bdd8d1419b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/nonuniform-qualifier.msl2.frag +++ /dev/null @@ -1,53 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - float4 v[64]; -}; - -struct SSBO -{ - float4 v[1]; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - int vIndex [[user(locn0)]]; - float2 vUV [[user(locn1)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], constant UBO* ubos_0 [[buffer(0)]], constant UBO* ubos_1 [[buffer(1)]], const device SSBO* ssbos_0 [[buffer(2)]], const device SSBO* ssbos_1 [[buffer(3)]], array, 8> uSamplers [[texture(0)]], array, 8> uCombinedSamplers [[texture(8)]], array uSamps [[sampler(0)]], array uCombinedSamplersSmplr [[sampler(7)]]) -{ - constant UBO* ubos[] = - { - ubos_0, - ubos_1, - }; - - const device SSBO* ssbos[] = - { - ssbos_0, - ssbos_1, - }; - - main0_out out = {}; - int _25 = in.vIndex + 10; - int _37 = in.vIndex + 40; - out.FragColor = uSamplers[_25].sample(uSamps[_37], in.vUV); - out.FragColor = uCombinedSamplers[_25].sample(uCombinedSamplersSmplr[_25], in.vUV); - int _69 = in.vIndex + 20; - out.FragColor += ubos[_69]->v[_37]; - int _87 = in.vIndex + 50; - int _91 = in.vIndex + 60; - out.FragColor += ssbos[_87]->v[_91]; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/packed-expression-vector-shuffle.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/packed-expression-vector-shuffle.frag deleted file mode 100644 index dd319af555..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/packed-expression-vector-shuffle.frag +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - packed_float3 color; - float v; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(constant UBO& _15 [[buffer(0)]]) -{ - main0_out out = {}; - out.FragColor = float4(_15.color[0], _15.color[1], _15.color[2], float4(1.0).w); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/packing-test-3.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/packing-test-3.frag deleted file mode 100644 index 1f696e94ef..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/packing-test-3.frag +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -using namespace metal; - -struct TestStruct -{ - packed_float3 position; - float radius; -}; - -struct CB0 -{ - TestStruct CB0[16]; -}; - -struct main0_out -{ - float4 _entryPointOutput [[color(0)]]; -}; - -fragment main0_out main0(constant CB0& _RESERVED_IDENTIFIER_FIXUP_24 [[buffer(0)]]) -{ - main0_out out = {}; - out._entryPointOutput = float4(_RESERVED_IDENTIFIER_FIXUP_24.CB0[1].position[0], _RESERVED_IDENTIFIER_FIXUP_24.CB0[1].position[1], _RESERVED_IDENTIFIER_FIXUP_24.CB0[1].position[2], _RESERVED_IDENTIFIER_FIXUP_24.CB0[1].radius); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/pixel-interlock-ordered.msl2.argument.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/pixel-interlock-ordered.msl2.argument.frag deleted file mode 100644 index adea453d06..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/pixel-interlock-ordered.msl2.argument.frag +++ /dev/null @@ -1,53 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wunused-variable" - -#include -#include -#include - -using namespace metal; - -struct Buffer3 -{ - int baz; -}; - -struct Buffer -{ - int foo; - uint bar; -}; - -struct Buffer2 -{ - uint quux; -}; - -struct spvDescriptorSetBuffer0 -{ - device Buffer3* m_9 [[id(0)]]; - texture2d img4 [[id(1)]]; - texture2d img [[id(2), raster_order_group(0)]]; - texture2d img3 [[id(3), raster_order_group(0)]]; - texture2d img2 [[id(4), raster_order_group(0)]]; - device atomic_uint* img2_atomic [[id(5), raster_order_group(0)]]; - volatile device Buffer* m_42 [[id(6), raster_order_group(0)]]; - device Buffer2* m_52 [[id(7), raster_order_group(0)]]; -}; - -// The required alignment of a linear texture of R32Uint format. -constant uint spvLinearTextureAlignmentOverride [[function_constant(65535)]]; -constant uint spvLinearTextureAlignment = is_function_constant_defined(spvLinearTextureAlignmentOverride) ? spvLinearTextureAlignmentOverride : 4; -// Returns buffer coords corresponding to 2D texture coords for emulating 2D texture atomics -#define spvImage2DAtomicCoord(tc, tex) (((((tex).get_width() + spvLinearTextureAlignment / 4 - 1) & ~( spvLinearTextureAlignment / 4 - 1)) * (tc).y) + (tc).x) - -fragment void main0(constant spvDescriptorSetBuffer0& spvDescriptorSet0 [[buffer(0)]]) -{ - (*spvDescriptorSet0.m_9).baz = 0; - spvDescriptorSet0.img4.write(float4(1.0, 0.0, 0.0, 1.0), uint2(int2(1))); - spvDescriptorSet0.img.write(spvDescriptorSet0.img3.read(uint2(int2(0))), uint2(int2(0))); - uint _39 = atomic_fetch_add_explicit((device atomic_uint*)&spvDescriptorSet0.img2_atomic[spvImage2DAtomicCoord(int2(0), spvDescriptorSet0.img2)], 1u, memory_order_relaxed); - (*spvDescriptorSet0.m_42).foo += 42; - uint _55 = atomic_fetch_and_explicit((volatile device atomic_uint*)&(*spvDescriptorSet0.m_42).bar, (*spvDescriptorSet0.m_52).quux, memory_order_relaxed); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/pixel-interlock-ordered.msl2.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/pixel-interlock-ordered.msl2.frag deleted file mode 100644 index e409ea06b2..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/pixel-interlock-ordered.msl2.frag +++ /dev/null @@ -1,41 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wunused-variable" - -#include -#include -#include - -using namespace metal; - -struct Buffer3 -{ - int baz; -}; - -struct Buffer -{ - int foo; - uint bar; -}; - -struct Buffer2 -{ - uint quux; -}; - -// The required alignment of a linear texture of R32Uint format. -constant uint spvLinearTextureAlignmentOverride [[function_constant(65535)]]; -constant uint spvLinearTextureAlignment = is_function_constant_defined(spvLinearTextureAlignmentOverride) ? spvLinearTextureAlignmentOverride : 4; -// Returns buffer coords corresponding to 2D texture coords for emulating 2D texture atomics -#define spvImage2DAtomicCoord(tc, tex) (((((tex).get_width() + spvLinearTextureAlignment / 4 - 1) & ~( spvLinearTextureAlignment / 4 - 1)) * (tc).y) + (tc).x) - -fragment void main0(device Buffer3& _9 [[buffer(0)]], volatile device Buffer& _42 [[buffer(2), raster_order_group(0)]], device Buffer2& _52 [[buffer(3), raster_order_group(0)]], texture2d img4 [[texture(0)]], texture2d img [[texture(1), raster_order_group(0)]], texture2d img3 [[texture(2), raster_order_group(0)]], texture2d img2 [[texture(3), raster_order_group(0)]], device atomic_uint* img2_atomic [[buffer(1), raster_order_group(0)]]) -{ - _9.baz = 0; - img4.write(float4(1.0, 0.0, 0.0, 1.0), uint2(int2(1))); - img.write(img3.read(uint2(int2(0))), uint2(int2(0))); - uint _39 = atomic_fetch_add_explicit((device atomic_uint*)&img2_atomic[spvImage2DAtomicCoord(int2(0), img2)], 1u, memory_order_relaxed); - _42.foo += 42; - uint _55 = atomic_fetch_and_explicit((volatile device atomic_uint*)&_42.bar, _52.quux, memory_order_relaxed); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/pls.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/pls.frag deleted file mode 100644 index ee774a04af..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/pls.frag +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 PLSOut0 [[color(0)]]; - float4 PLSOut1 [[color(1)]]; - float4 PLSOut2 [[color(2)]]; - float4 PLSOut3 [[color(3)]]; -}; - -struct main0_in -{ - float4 PLSIn0 [[user(locn0)]]; - float4 PLSIn1 [[user(locn1)]]; - float4 PLSIn2 [[user(locn2)]]; - float4 PLSIn3 [[user(locn3)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.PLSOut0 = in.PLSIn0 * 2.0; - out.PLSOut1 = in.PLSIn1 * 6.0; - out.PLSOut2 = in.PLSIn2 * 7.0; - out.PLSOut3 = in.PLSIn3 * 4.0; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/post-depth-coverage.ios.msl2.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/post-depth-coverage.ios.msl2.frag deleted file mode 100644 index 3b2885e2e2..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/post-depth-coverage.ios.msl2.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -[[ early_fragment_tests ]] fragment main0_out main0(uint gl_SampleMaskIn [[sample_mask, post_depth_coverage]]) -{ - main0_out out = {}; - out.FragColor = float4(float(gl_SampleMaskIn)); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/post-depth-coverage.msl23.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/post-depth-coverage.msl23.frag deleted file mode 100644 index 3b2885e2e2..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/post-depth-coverage.msl23.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -[[ early_fragment_tests ]] fragment main0_out main0(uint gl_SampleMaskIn [[sample_mask, post_depth_coverage]]) -{ - main0_out out = {}; - out.FragColor = float4(float(gl_SampleMaskIn)); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/private-variable-prototype-declaration.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/private-variable-prototype-declaration.frag deleted file mode 100644 index 1e9dc12d6b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/private-variable-prototype-declaration.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float3 FragColor [[color(0)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - out.FragColor = float3(1.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/read-cull-clip-distance-in-function.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/read-cull-clip-distance-in-function.frag deleted file mode 100644 index 3c9757ebd2..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/read-cull-clip-distance-in-function.frag +++ /dev/null @@ -1,72 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float gl_ClipDistance_0 [[user(clip0)]]; - float gl_ClipDistance_1 [[user(clip1)]]; - float gl_CullDistance_0 [[user(cull0)]]; - float gl_CullDistance_1 [[user(cull1)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - spvUnsafeArray gl_CullDistance = {}; - spvUnsafeArray gl_ClipDistance = {}; - gl_CullDistance[0] = in.gl_CullDistance_0; - gl_CullDistance[1] = in.gl_CullDistance_1; - gl_ClipDistance[0] = in.gl_ClipDistance_0; - gl_ClipDistance[1] = in.gl_ClipDistance_1; - out.FragColor = float4(gl_CullDistance[0], gl_CullDistance[1], gl_ClipDistance[0], gl_ClipDistance[1]); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/readonly-ssbo.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/readonly-ssbo.frag deleted file mode 100644 index 777fd65c8a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/readonly-ssbo.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - float4 v; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(const device SSBO& _13 [[buffer(0)]]) -{ - main0_out out = {}; - out.FragColor = _13.v + _13.v; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-depth-propagate-state-from-resource.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-depth-propagate-state-from-resource.frag deleted file mode 100644 index 4f7e9b53b2..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-depth-propagate-state-from-resource.frag +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -struct main0_in -{ - float3 vUV [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], depth2d uTexture [[texture(0)]], sampler uSampler [[sampler(0)]], sampler uSamplerShadow [[sampler(1)]]) -{ - main0_out out = {}; - out.FragColor = float4(uTexture.sample(uSampler, in.vUV.xy)).x; - out.FragColor += uTexture.sample_compare(uSamplerShadow, in.vUV.xy, in.vUV.z); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-depth-separate-image-sampler.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-depth-separate-image-sampler.frag deleted file mode 100644 index 6626946c45..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-depth-separate-image-sampler.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -fragment main0_out main0(depth2d uDepth [[texture(0)]], texture2d uColor [[texture(1)]], sampler uSamplerShadow [[sampler(0)]], sampler uSampler [[sampler(1)]]) -{ - main0_out out = {}; - out.FragColor = uDepth.sample_compare(uSamplerShadow, float3(0.5).xy, 0.5) + uColor.sample(uSampler, float2(0.5)).x; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-mask-in-and-out.fixed-sample-mask.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-mask-in-and-out.fixed-sample-mask.frag deleted file mode 100644 index 21ca717845..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-mask-in-and-out.fixed-sample-mask.frag +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; - uint gl_SampleMask [[sample_mask]]; -}; - -fragment main0_out main0(uint gl_SampleMaskIn [[sample_mask]]) -{ - main0_out out = {}; - out.FragColor = float4(1.0); - out.gl_SampleMask = gl_SampleMaskIn; - out.gl_SampleMask &= 34; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-mask-not-used.fixed-sample-mask.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-mask-not-used.fixed-sample-mask.frag deleted file mode 100644 index 040c641412..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-mask-not-used.fixed-sample-mask.frag +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; - uint gl_SampleMask [[sample_mask]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - out.FragColor = float4(1.0); - out.gl_SampleMask = 34; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-mask.fixed-sample-mask.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-mask.fixed-sample-mask.frag deleted file mode 100644 index 20444779ae..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-mask.fixed-sample-mask.frag +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; - uint gl_SampleMask [[sample_mask]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - out.FragColor = float4(1.0); - out.gl_SampleMask = 0; - out.gl_SampleMask &= 34; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-mask.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-mask.frag deleted file mode 100644 index 6a282395d6..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-mask.frag +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; - uint gl_SampleMask [[sample_mask]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - out.FragColor = float4(1.0); - out.gl_SampleMask = 0; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-position-func.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-position-func.frag deleted file mode 100644 index 87875bbc39..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-position-func.frag +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - int index [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], uint gl_SampleID [[sample_id]]) -{ - main0_out out = {}; - float2 gl_SamplePosition = get_sample_position(gl_SampleID); - out.FragColor = float4(gl_SamplePosition, float(in.index), 1.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-position.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-position.frag deleted file mode 100644 index 8d26acb9f1..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-position.frag +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(uint gl_SampleID [[sample_id]]) -{ - main0_out out = {}; - float2 gl_SamplePosition = get_sample_position(gl_SampleID); - out.FragColor = float4(gl_SamplePosition, float(gl_SampleID), 1.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-rate-frag-coord-sample-id.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-rate-frag-coord-sample-id.frag deleted file mode 100644 index 5df60f909e..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-rate-frag-coord-sample-id.frag +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(texture2d_array tex [[texture(0)]], sampler texSmplr [[sampler(0)]], float4 gl_FragCoord [[position]], uint gl_SampleID [[sample_id]]) -{ - main0_out out = {}; - gl_FragCoord.xy += get_sample_position(gl_SampleID) - 0.5; - float3 _28 = float3(gl_FragCoord.xy, float(gl_SampleID)); - out.FragColor = tex.sample(texSmplr, _28.xy, uint(round(_28.z))); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-rate-frag-coord-sample-input.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-rate-frag-coord-sample-input.frag deleted file mode 100644 index 386230ef0c..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-rate-frag-coord-sample-input.frag +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float foo [[user(locn0), sample_perspective]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texture2d_array tex [[texture(0)]], sampler texSmplr [[sampler(0)]], float4 gl_FragCoord [[position]], uint gl_SampleID [[sample_id]]) -{ - main0_out out = {}; - gl_FragCoord.xy += get_sample_position(gl_SampleID) - 0.5; - float3 _26 = float3(gl_FragCoord.xy, in.foo); - out.FragColor = tex.sample(texSmplr, _26.xy, uint(round(_26.z))); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-rate-frag-coord-sample-pos.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-rate-frag-coord-sample-pos.frag deleted file mode 100644 index f8f357fe7c..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-rate-frag-coord-sample-pos.frag +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(texture2d tex [[texture(0)]], sampler texSmplr [[sampler(0)]], float4 gl_FragCoord [[position]], uint gl_SampleID [[sample_id]]) -{ - main0_out out = {}; - gl_FragCoord.xy += get_sample_position(gl_SampleID) - 0.5; - float2 gl_SamplePosition = get_sample_position(gl_SampleID); - out.FragColor = tex.sample(texSmplr, (gl_FragCoord.xy - gl_SamplePosition)); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-rate-frag-coord.force-sample.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-rate-frag-coord.force-sample.frag deleted file mode 100644 index 1ed8148d4c..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sample-rate-frag-coord.force-sample.frag +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(texture2d tex [[texture(0)]], sampler texSmplr [[sampler(0)]], float4 gl_FragCoord [[position]], uint gl_SampleID [[sample_id]]) -{ - main0_out out = {}; - gl_FragCoord.xy += get_sample_position(gl_SampleID) - 0.5; - out.FragColor = tex.sample(texSmplr, gl_FragCoord.xy); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sampler-1d-lod.1d-as-2d.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/sampler-1d-lod.1d-as-2d.frag deleted file mode 100644 index 70278b1290..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sampler-1d-lod.1d-as-2d.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float vTex [[user(locn0), flat]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texture2d uSampler [[texture(0)]], sampler uSamplerSmplr [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor += ((uSampler.sample(uSamplerSmplr, float2(in.vTex, 0.5), bias(2.0)) + uSampler.sample(uSamplerSmplr, float2(in.vTex, 0.5), level(3.0))) + uSampler.sample(uSamplerSmplr, float2(in.vTex, 0.5), gradient2d(5.0, 8.0))); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sampler-1d-lod.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/sampler-1d-lod.frag deleted file mode 100644 index 96914f8056..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sampler-1d-lod.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float vTex [[user(locn0), flat]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texture1d uSampler [[texture(0)]], sampler uSamplerSmplr [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor += ((uSampler.sample(uSamplerSmplr, in.vTex) + uSampler.sample(uSamplerSmplr, in.vTex)) + uSampler.sample(uSamplerSmplr, in.vTex)); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sampler-compare-bias.msl23.1d-as-2d.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/sampler-compare-bias.msl23.1d-as-2d.frag deleted file mode 100644 index 6aaffe532b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sampler-compare-bias.msl23.1d-as-2d.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -struct main0_in -{ - float3 vUV [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], depth2d_array uTex [[texture(0)]], sampler uShadow [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor = uTex.sample_compare(uShadow, float2(in.vUV.x, 0.5), uint(round(in.vUV.y)), in.vUV.z, bias(1.0)); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sampler-compare-cascade-gradient.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/sampler-compare-cascade-gradient.frag deleted file mode 100644 index 630511b34b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sampler-compare-cascade-gradient.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 vUV [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], depth2d_array uTex [[texture(0)]], sampler uShadow [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor = uTex.sample_compare(uShadow, in.vUV.xy, uint(round(in.vUV.z)), in.vUV.w, level(0)); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sampler-compare-cascade-gradient.ios.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/sampler-compare-cascade-gradient.ios.frag deleted file mode 100644 index a29ebf08b5..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sampler-compare-cascade-gradient.ios.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 vUV [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], depth2d_array uTex [[texture(0)]], sampler uShadow [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor = uTex.sample_compare(uShadow, in.vUV.xy, uint(round(in.vUV.z)), in.vUV.w, gradient2d(float2(0.0), float2(0.0))); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sampler-compare-cascade-gradient.msl23.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/sampler-compare-cascade-gradient.msl23.frag deleted file mode 100644 index 0784569194..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sampler-compare-cascade-gradient.msl23.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 vUV [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], depth2d_array uTex [[texture(0)]], sampler uShadow [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor = uTex.sample_compare(uShadow, in.vUV.xy, uint(round(in.vUV.z)), in.vUV.w, level(0)) + uTex.sample_compare(uShadow, in.vUV.xy, uint(round(in.vUV.z)), in.vUV.w, gradient2d(float2(1.0), float2(1.0))); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sampler-image-arrays.msl2.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/sampler-image-arrays.msl2.frag deleted file mode 100644 index f3e10fcade..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sampler-image-arrays.msl2.frag +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float2 vTex [[user(locn0), flat]]; - int vIndex [[user(locn1)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], array, 4> uSampler [[texture(0)]], array, 4> uTextures [[texture(4)]], array uSamplerSmplr [[sampler(0)]], array uSamplers [[sampler(4)]]) -{ - main0_out out = {}; - out.FragColor = float4(0.0); - out.FragColor += uTextures[2].sample(uSamplers[1], in.vTex); - out.FragColor += uSampler[in.vIndex].sample(uSamplerSmplr[in.vIndex], in.vTex); - out.FragColor += uSampler[in.vIndex].sample(uSamplerSmplr[in.vIndex], (in.vTex + float2(0.100000001490116119384765625))); - out.FragColor += uSampler[in.vIndex].sample(uSamplerSmplr[in.vIndex], (in.vTex + float2(0.20000000298023223876953125))); - out.FragColor += uSampler[3].sample(uSamplerSmplr[3], (in.vTex + float2(0.300000011920928955078125))); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sampler-ms.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/sampler-ms.frag deleted file mode 100644 index 8245ed8263..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sampler-ms.frag +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(texture2d_ms uSampler [[texture(0)]], sampler uSamplerSmplr [[sampler(0)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - int2 _17 = int2(gl_FragCoord.xy); - out.FragColor = ((uSampler.read(uint2(_17), 0) + uSampler.read(uint2(_17), 1)) + uSampler.read(uint2(_17), 2)) + uSampler.read(uint2(_17), 3); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sampler.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/sampler.frag deleted file mode 100644 index f33db61eba..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/sampler.frag +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 vColor [[user(locn0)]]; - float2 vTex [[user(locn1)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texture2d uTex [[texture(0)]], sampler uTexSmplr [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor = in.vColor * uTex.sample(uTexSmplr, in.vTex); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/scalar-refract-reflect.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/scalar-refract-reflect.frag deleted file mode 100644 index 592d445810..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/scalar-refract-reflect.frag +++ /dev/null @@ -1,49 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -struct main0_in -{ - float3 vRefract [[user(locn0)]]; -}; - -template -inline T spvReflect(T i, T n) -{ - return i - T(2) * i * n * n; -} - -template -inline T spvRefract(T i, T n, T eta) -{ - T NoI = n * i; - T NoI2 = NoI * NoI; - T k = T(1) - eta * eta * (T(1) - NoI2); - if (k < T(0)) - { - return T(0); - } - else - { - return eta * i - (eta * NoI + sqrt(k)) * n; - } -} - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.FragColor = spvRefract(in.vRefract.x, in.vRefract.y, in.vRefract.z); - out.FragColor += spvReflect(in.vRefract.x, in.vRefract.y); - out.FragColor += refract(in.vRefract.xy, in.vRefract.yz, in.vRefract.z).y; - out.FragColor += reflect(in.vRefract.xy, in.vRefract.zy).y; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/separate-image-sampler-argument.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/separate-image-sampler-argument.frag deleted file mode 100644 index e576b49e7e..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/separate-image-sampler-argument.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(texture2d uDepth [[texture(0)]], sampler uSampler [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor = uDepth.sample(uSampler, float2(0.5)); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/shader-arithmetic-8bit.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/shader-arithmetic-8bit.frag deleted file mode 100644 index c4d6fde791..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/shader-arithmetic-8bit.frag +++ /dev/null @@ -1,53 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - char i8[16]; - uchar u8[16]; -}; - -struct Push -{ - char i8; - uchar u8; -}; - -struct UBO -{ - char i8; - uchar u8; -}; - -struct main0_out -{ - int4 FragColorInt [[color(0)]]; - uint4 FragColorUint [[color(1)]]; -}; - -struct main0_in -{ - int4 vColor [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], device SSBO& ssbo [[buffer(0)]], constant Push& registers [[buffer(1)]], constant UBO& ubo [[buffer(2)]]) -{ - main0_out out = {}; - char4 _199 = as_type(20); - ssbo.i8[0] = _199.x; - ssbo.i8[1] = _199.y; - ssbo.i8[2] = _199.z; - ssbo.i8[3] = _199.w; - uchar4 _224 = as_type(20u); - ssbo.u8[0] = _224.x; - ssbo.u8[1] = _224.y; - ssbo.u8[2] = _224.z; - ssbo.u8[3] = _224.w; - char4 _249 = char4(in.vColor); - out.FragColorInt = int4((((((_249 + char4(registers.i8)) + char4(-40)) + char4(-50)) + char4(char(10), char(20), char(30), char(40))) + char4(ssbo.i8[4])) + char4(ubo.i8)); - out.FragColorUint = uint4((((((uchar4(_249) + uchar4(registers.u8)) + uchar4(216)) + uchar4(206)) + uchar4(uchar(10), uchar(20), uchar(30), uchar(40))) + uchar4(ssbo.u8[4])) + uchar4(ubo.u8)); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/spec-constant-block-size.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/spec-constant-block-size.frag deleted file mode 100644 index 36456b814b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/spec-constant-block-size.frag +++ /dev/null @@ -1,32 +0,0 @@ -#include -#include - -using namespace metal; - -#ifndef SPIRV_CROSS_CONSTANT_ID_10 -#define SPIRV_CROSS_CONSTANT_ID_10 2 -#endif -constant int Value = SPIRV_CROSS_CONSTANT_ID_10; - -struct SpecConstArray -{ - float4 samples[Value]; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - int Index [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], constant SpecConstArray& _15 [[buffer(0)]]) -{ - main0_out out = {}; - out.FragColor = _15.samples[in.Index]; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/spec-constant-ternary.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/spec-constant-ternary.frag deleted file mode 100644 index 059006509a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/spec-constant-ternary.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -constant uint s_tmp [[function_constant(0)]]; -constant uint s = is_function_constant_defined(s_tmp) ? s_tmp : 10u; -constant bool _13 = (s > 20u); -constant uint f = _13 ? 30u : 50u; - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - out.FragColor = float(f); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/stencil-export.msl21.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/stencil-export.msl21.frag deleted file mode 100644 index 5fc3cf92d5..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/stencil-export.msl21.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 MRT0 [[color(0)]]; - float4 MRT1 [[color(1)]]; - uint gl_FragStencilRefARB [[stencil]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - out.MRT0 = float4(1.0); - out.MRT1 = float4(1.0, 0.0, 1.0, 1.0); - out.gl_FragStencilRefARB = uint(100); - out.gl_FragStencilRefARB = uint(int(out.gl_FragStencilRefARB) + 10); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/subgroup-builtins.msl22.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/subgroup-builtins.msl22.frag deleted file mode 100644 index 03a536f0c6..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/subgroup-builtins.msl22.frag +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - uint2 FragColor [[color(0)]]; -}; - -fragment main0_out main0(uint gl_SubgroupSize [[threads_per_simdgroup]], uint gl_SubgroupInvocationID [[thread_index_in_simdgroup]]) -{ - main0_out out = {}; - out.FragColor.x = gl_SubgroupSize; - out.FragColor.y = gl_SubgroupInvocationID; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/subgroup-globals-extract.msl22.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/subgroup-globals-extract.msl22.frag deleted file mode 100644 index bb8fadcf11..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/subgroup-globals-extract.msl22.frag +++ /dev/null @@ -1,56 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - uint2 FragColor [[color(0)]]; -}; - -inline uint spvSubgroupBallotFindLSB(uint4 ballot, uint gl_SubgroupSize) -{ - uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, min(gl_SubgroupSize, 32u)), extract_bits(0xFFFFFFFF, 0, (uint)max((int)gl_SubgroupSize - 32, 0)), uint2(0)); - ballot &= mask; - return select(ctz(ballot.x), select(32 + ctz(ballot.y), select(64 + ctz(ballot.z), select(96 + ctz(ballot.w), uint(-1), ballot.w == 0), ballot.z == 0), ballot.y == 0), ballot.x == 0); -} - -inline uint spvSubgroupBallotFindMSB(uint4 ballot, uint gl_SubgroupSize) -{ - uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, min(gl_SubgroupSize, 32u)), extract_bits(0xFFFFFFFF, 0, (uint)max((int)gl_SubgroupSize - 32, 0)), uint2(0)); - ballot &= mask; - return select(128 - (clz(ballot.w) + 1), select(96 - (clz(ballot.z) + 1), select(64 - (clz(ballot.y) + 1), select(32 - (clz(ballot.x) + 1), uint(-1), ballot.x == 0), ballot.y == 0), ballot.z == 0), ballot.w == 0); -} - -inline uint spvPopCount4(uint4 ballot) -{ - return popcount(ballot.x) + popcount(ballot.y) + popcount(ballot.z) + popcount(ballot.w); -} - -inline uint spvSubgroupBallotBitCount(uint4 ballot, uint gl_SubgroupSize) -{ - uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, min(gl_SubgroupSize, 32u)), extract_bits(0xFFFFFFFF, 0, (uint)max((int)gl_SubgroupSize - 32, 0)), uint2(0)); - return spvPopCount4(ballot & mask); -} - -inline uint spvSubgroupBallotInclusiveBitCount(uint4 ballot, uint gl_SubgroupInvocationID) -{ - uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, min(gl_SubgroupInvocationID + 1, 32u)), extract_bits(0xFFFFFFFF, 0, (uint)max((int)gl_SubgroupInvocationID + 1 - 32, 0)), uint2(0)); - return spvPopCount4(ballot & mask); -} - -inline uint spvSubgroupBallotExclusiveBitCount(uint4 ballot, uint gl_SubgroupInvocationID) -{ - uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, min(gl_SubgroupInvocationID, 32u)), extract_bits(0xFFFFFFFF, 0, (uint)max((int)gl_SubgroupInvocationID - 32, 0)), uint2(0)); - return spvPopCount4(ballot & mask); -} - -fragment main0_out main0(uint gl_SubgroupInvocationID [[thread_index_in_simdgroup]], uint gl_SubgroupSize [[threads_per_simdgroup]]) -{ - main0_out out = {}; - out.FragColor.x = (((spvSubgroupBallotFindLSB(uint4(1u, 2u, 3u, 4u), gl_SubgroupSize) + spvSubgroupBallotFindMSB(uint4(1u, 2u, 3u, 4u), gl_SubgroupSize)) + spvSubgroupBallotBitCount(uint4(1u, 2u, 3u, 4u), gl_SubgroupSize)) + spvSubgroupBallotInclusiveBitCount(uint4(1u, 2u, 3u, 4u), gl_SubgroupInvocationID)) + spvSubgroupBallotExclusiveBitCount(uint4(1u, 2u, 3u, 4u), gl_SubgroupInvocationID); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/switch-unsigned-case.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/switch-unsigned-case.frag deleted file mode 100644 index 4cd2b6852a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/switch-unsigned-case.frag +++ /dev/null @@ -1,35 +0,0 @@ -#include -#include - -using namespace metal; - -struct Buff -{ - uint TestVal; -}; - -struct main0_out -{ - float4 fsout_Color [[color(0)]]; -}; - -fragment main0_out main0(constant Buff& _15 [[buffer(0)]]) -{ - main0_out out = {}; - out.fsout_Color = float4(1.0); - switch (_15.TestVal) - { - case 0u: - { - out.fsout_Color = float4(0.100000001490116119384765625); - break; - } - case 1u: - { - out.fsout_Color = float4(0.20000000298023223876953125); - break; - } - } - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/swizzle.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/swizzle.frag deleted file mode 100644 index cda23096c5..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/swizzle.frag +++ /dev/null @@ -1,30 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float3 vNormal [[user(locn1)]]; - float2 vUV [[user(locn2)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texture2d samp [[texture(0)]], sampler sampSmplr [[sampler(0)]]) -{ - main0_out out = {}; - float4 _19 = samp.sample(sampSmplr, in.vUV); - float _23 = _19.x; - out.FragColor = float4(_23, _19.yz, 1.0); - out.FragColor = float4(_23, _19.z, 1.0, 4.0); - out.FragColor = float4(_23, _23, samp.sample(sampSmplr, (in.vUV + float2(0.100000001490116119384765625))).yy); - out.FragColor = float4(in.vNormal, 1.0); - out.FragColor = float4(in.vNormal + float3(1.7999999523162841796875), 1.0); - out.FragColor = float4(in.vUV, in.vUV + float2(1.7999999523162841796875)); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/texel-fetch-offset.1d-as-2d.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/texel-fetch-offset.1d-as-2d.frag deleted file mode 100644 index 98b9bb7ef8..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/texel-fetch-offset.1d-as-2d.frag +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(texture2d uTexture [[texture(0)]], texture2d uTexture2 [[texture(1)]], sampler uTextureSmplr [[sampler(0)]], sampler uTexture2Smplr [[sampler(1)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - out.FragColor = uTexture.read(uint2(int2(gl_FragCoord.xy)) + uint2(int2(1)), 0); - out.FragColor += uTexture2.read(uint2(uint(int(gl_FragCoord.x)), 0) + uint2(uint(-1), 0), 0); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/texel-fetch-offset.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/texel-fetch-offset.frag deleted file mode 100644 index d4db1ae1c9..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/texel-fetch-offset.frag +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(texture2d uTexture [[texture(0)]], sampler uTextureSmplr [[sampler(0)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - int2 _22 = int2(gl_FragCoord.xy); - out.FragColor = uTexture.read(uint2(_22) + uint2(int2(1)), 0); - out.FragColor += uTexture.read(uint2(_22) + uint2(int2(-1, 1)), 0); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/texture-cube-array.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/texture-cube-array.frag deleted file mode 100644 index 0af8a047b3..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/texture-cube-array.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 vUV [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texturecube cubeSampler [[texture(0)]], texturecube_array cubeArraySampler [[texture(1)]], texture2d_array texArraySampler [[texture(2)]], sampler cubeSamplerSmplr [[sampler(0)]], sampler cubeArraySamplerSmplr [[sampler(1)]], sampler texArraySamplerSmplr [[sampler(2)]]) -{ - main0_out out = {}; - out.FragColor = (cubeSampler.sample(cubeSamplerSmplr, in.vUV.xyz) + cubeArraySampler.sample(cubeArraySamplerSmplr, in.vUV.xyz, uint(round(in.vUV.w)))) + texArraySampler.sample(texArraySamplerSmplr, in.vUV.xyz.xy, uint(round(in.vUV.xyz.z))); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/texture-cube-array.ios.emulate-cube-array.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/texture-cube-array.ios.emulate-cube-array.frag deleted file mode 100644 index 217a7a9e20..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/texture-cube-array.ios.emulate-cube-array.frag +++ /dev/null @@ -1,58 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 vUV [[user(locn0)]]; -}; - -static inline __attribute__((always_inline)) -float3 spvCubemapTo2DArrayFace(float3 P) -{ - float3 Coords = abs(P.xyz); - float CubeFace = 0; - float ProjectionAxis = 0; - float u = 0; - float v = 0; - if (Coords.x >= Coords.y && Coords.x >= Coords.z) - { - CubeFace = P.x >= 0 ? 0 : 1; - ProjectionAxis = Coords.x; - u = P.x >= 0 ? -P.z : P.z; - v = -P.y; - } - else if (Coords.y >= Coords.x && Coords.y >= Coords.z) - { - CubeFace = P.y >= 0 ? 2 : 3; - ProjectionAxis = Coords.y; - u = P.x; - v = P.y >= 0 ? P.z : -P.z; - } - else - { - CubeFace = P.z >= 0 ? 4 : 5; - ProjectionAxis = Coords.z; - u = P.z >= 0 ? P.x : -P.x; - v = -P.y; - } - u = 0.5 * (u/ProjectionAxis + 1); - v = 0.5 * (v/ProjectionAxis + 1); - return float3(u, v, CubeFace); -} - -fragment main0_out main0(main0_in in [[stage_in]], texturecube cubeSampler [[texture(0)]], texture2d_array cubeArraySampler [[texture(1)]], texture2d_array texArraySampler [[texture(2)]], sampler cubeSamplerSmplr [[sampler(0)]], sampler cubeArraySamplerSmplr [[sampler(1)]], sampler texArraySamplerSmplr [[sampler(2)]]) -{ - main0_out out = {}; - out.FragColor = (cubeSampler.sample(cubeSamplerSmplr, in.vUV.xyz) + cubeArraySampler.sample(cubeArraySamplerSmplr, spvCubemapTo2DArrayFace(in.vUV.xyz).xy, uint(spvCubemapTo2DArrayFace(in.vUV.xyz).z) + (uint(round(in.vUV.w)) * 6u))) + texArraySampler.sample(texArraySamplerSmplr, in.vUV.xyz.xy, uint(round(in.vUV.xyz.z))); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/texture-multisample-array.msl21.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/texture-multisample-array.msl21.frag deleted file mode 100644 index ed1e81f3e8..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/texture-multisample-array.msl21.frag +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - int3 vCoord [[user(locn0)]]; - int vSample [[user(locn1)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texture2d_ms_array uTexture [[texture(0)]], sampler uTextureSmplr [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor = uTexture.read(uint2(in.vCoord.xy), uint(in.vCoord.z), in.vSample); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/texture-proj-shadow.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/texture-proj-shadow.frag deleted file mode 100644 index 52d4a026d2..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/texture-proj-shadow.frag +++ /dev/null @@ -1,29 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -struct main0_in -{ - float3 vClip3 [[user(locn0)]]; - float4 vClip4 [[user(locn1)]]; - float2 vClip2 [[user(locn2)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], depth2d uShadow2D [[texture(0)]], texture1d uSampler1D [[texture(1)]], texture2d uSampler2D [[texture(2)]], texture3d uSampler3D [[texture(3)]], sampler uShadow2DSmplr [[sampler(0)]], sampler uSampler1DSmplr [[sampler(1)]], sampler uSampler2DSmplr [[sampler(2)]], sampler uSampler3DSmplr [[sampler(3)]]) -{ - main0_out out = {}; - float4 _20 = in.vClip4; - _20.z = in.vClip4.w; - out.FragColor = uShadow2D.sample_compare(uShadow2DSmplr, _20.xy / _20.z, in.vClip4.z / _20.z); - out.FragColor = uSampler1D.sample(uSampler1DSmplr, in.vClip2.x / in.vClip2.y).x; - out.FragColor = uSampler2D.sample(uSampler2DSmplr, in.vClip3.xy / in.vClip3.z).x; - out.FragColor = uSampler3D.sample(uSampler3DSmplr, in.vClip4.xyz / in.vClip4.w).x; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/ubo_layout.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/ubo_layout.frag deleted file mode 100644 index 4ca603d643..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/ubo_layout.frag +++ /dev/null @@ -1,37 +0,0 @@ -#include -#include - -using namespace metal; - -struct Str -{ - float4x4 foo; -}; - -struct UBO1 -{ - Str foo; -}; - -struct Str_1 -{ - float4x4 foo; -}; - -struct UBO2 -{ - Str_1 foo; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(constant UBO1& ubo1 [[buffer(0)]], constant UBO2& ubo0 [[buffer(1)]]) -{ - main0_out out = {}; - out.FragColor = float4(ubo1.foo.foo[0][0], ubo1.foo.foo[1][0], ubo1.foo.foo[2][0], ubo1.foo.foo[3][0]) + ubo0.foo.foo[0]; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/unary-enclose.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/unary-enclose.frag deleted file mode 100644 index c8648f1e01..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/unary-enclose.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 vIn [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.FragColor = in.vIn; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/vecsize-mismatch.shader-inputs.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/vecsize-mismatch.shader-inputs.frag deleted file mode 100644 index 6116deab6d..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/vecsize-mismatch.shader-inputs.frag +++ /dev/null @@ -1,75 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - ushort2 a [[user(locn0)]]; - uint3 b [[user(locn1)]]; - ushort c_0 [[user(locn2)]]; - ushort c_1 [[user(locn3)]]; - uint4 e_0 [[user(locn4)]]; - uint4 e_1 [[user(locn5)]]; - float4 d [[user(locn6)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - spvUnsafeArray c = {}; - spvUnsafeArray e = {}; - c[0] = in.c_0; - c[1] = in.c_1; - e[0] = in.e_0; - e[1] = in.e_1; - out.FragColor = float4(float(int(in.a.x)), float(in.b.x), float2(float(uint(c[1])), float(e[0].w)) + in.d.xy); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/frag/write-depth-in-function.frag b/third_party/spirv-cross/reference/opt/shaders-msl/frag/write-depth-in-function.frag deleted file mode 100644 index 4ab74f19e0..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/frag/write-depth-in-function.frag +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float FragColor [[color(0)]]; - float gl_FragDepth [[depth(any)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - out.FragColor = 1.0; - out.gl_FragDepth = 0.20000000298023223876953125; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/intel/shader-integer-functions2.asm.comp b/third_party/spirv-cross/reference/opt/shaders-msl/intel/shader-integer-functions2.asm.comp deleted file mode 100644 index 1e5d889d46..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/intel/shader-integer-functions2.asm.comp +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include - -using namespace metal; - -struct foo -{ - uint a; - uint b; - int c; - int d; -}; - -kernel void main0(device foo& _4 [[buffer(0)]]) -{ - _4.a = clz(_4.a); - _4.a = ctz(_4.a); - _4.a = absdiff(_4.c, _4.d); - _4.a = absdiff(_4.a, _4.b); - _4.c = addsat(_4.c, _4.d); - _4.a = addsat(_4.a, _4.b); - _4.c = hadd(_4.c, _4.d); - _4.a = hadd(_4.a, _4.b); - _4.c = rhadd(_4.c, _4.d); - _4.a = rhadd(_4.a, _4.b); - _4.c = subsat(_4.c, _4.d); - _4.a = subsat(_4.a, _4.b); - _4.c = int(short(_4.c)) * int(short(_4.d)); - _4.a = uint(ushort(_4.a)) * uint(ushort(_4.b)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/legacy/vert/transpose.legacy.vert b/third_party/spirv-cross/reference/opt/shaders-msl/legacy/vert/transpose.legacy.vert deleted file mode 100644 index abd884ca8f..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/legacy/vert/transpose.legacy.vert +++ /dev/null @@ -1,29 +0,0 @@ -#include -#include - -using namespace metal; - -struct Buffer -{ - float4x4 MVPRowMajor; - float4x4 MVPColMajor; - float4x4 M; -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 Position [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant Buffer& _13 [[buffer(0)]]) -{ - main0_out out = {}; - out.gl_Position = (((_13.M * (in.Position * _13.MVPRowMajor)) + (_13.M * (_13.MVPColMajor * in.Position))) + (_13.M * (_13.MVPRowMajor * in.Position))) + (_13.M * (in.Position * _13.MVPColMajor)); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/masking/copy-arrays.mask-location-0.msl2.multi-patch.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/masking/copy-arrays.mask-location-0.msl2.multi-patch.tesc deleted file mode 100644 index 406feed975..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/masking/copy-arrays.mask-location-0.msl2.multi-patch.tesc +++ /dev/null @@ -1,188 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 gl_Position; -}; - -struct main0_patchOut -{ - spvUnsafeArray pFoo; -}; - -struct main0_in -{ - spvUnsafeArray iFoo; - float4 ipFoo; -}; - -template -inline void spvArrayCopyFromConstantToStack1(thread T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromConstantToThreadGroup1(threadgroup T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToStack1(thread T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToThreadGroup1(threadgroup T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToStack1(thread T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToThreadGroup1(threadgroup T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToDevice1(device T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromConstantToDevice1(device T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToDevice1(device T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToDevice1(device T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToStack1(thread T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToThreadGroup1(threadgroup T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], device main0_in* spvIn [[buffer(22)]]) -{ - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - threadgroup float4 spvStorageFoo[8][4][2]; - threadgroup float4 (&Foo)[4][2] = spvStorageFoo[(gl_GlobalInvocationID.x / 4) % 8]; - device main0_patchOut& patchOut = spvPatchOut[gl_GlobalInvocationID.x / 4]; - device main0_in* gl_in = &spvIn[min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1) * spvIndirectParams[0]]; - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - gl_out[gl_InvocationID].gl_Position = float4(1.0); - spvArrayCopyFromDeviceToThreadGroup1(Foo[gl_InvocationID], gl_in[gl_InvocationID].iFoo.elements); - if (gl_InvocationID == 0) - { - spvUnsafeArray _56 = spvUnsafeArray({ gl_in[0].ipFoo, gl_in[1].ipFoo }); - patchOut.pFoo = _56; - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/masking/copy-arrays.mask-location-0.msl2.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/masking/copy-arrays.mask-location-0.msl2.tesc deleted file mode 100644 index e9dd68dc37..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/masking/copy-arrays.mask-location-0.msl2.tesc +++ /dev/null @@ -1,191 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 gl_Position; -}; - -struct main0_patchOut -{ - spvUnsafeArray pFoo; -}; - -struct main0_in -{ - float4 iFoo_0 [[attribute(0)]]; - float4 iFoo_1 [[attribute(1)]]; - float4 ipFoo [[attribute(2)]]; -}; - -template -inline void spvArrayCopyFromConstantToStack1(thread T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromConstantToThreadGroup1(threadgroup T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToStack1(thread T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToThreadGroup1(threadgroup T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToStack1(thread T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToThreadGroup1(threadgroup T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToDevice1(device T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromConstantToDevice1(device T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToDevice1(device T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToDevice1(device T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToStack1(thread T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToThreadGroup1(threadgroup T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -kernel void main0(main0_in in [[stage_in]], uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], threadgroup main0_in* gl_in [[threadgroup(0)]]) -{ - threadgroup float4 Foo[4][2]; - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - if (gl_InvocationID < spvIndirectParams[0]) - gl_in[gl_InvocationID] = in; - threadgroup_barrier(mem_flags::mem_threadgroup); - if (gl_InvocationID >= 4) - return; - gl_out[gl_InvocationID].gl_Position = float4(1.0); - spvUnsafeArray _38 = spvUnsafeArray({ gl_in[gl_InvocationID].iFoo_0, gl_in[gl_InvocationID].iFoo_1 }); - spvArrayCopyFromStackToThreadGroup1(Foo[gl_InvocationID], _38.elements); - if (gl_InvocationID == 0) - { - spvUnsafeArray _56 = spvUnsafeArray({ gl_in[0].ipFoo, gl_in[1].ipFoo }); - patchOut.pFoo = _56; - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/masking/copy-arrays.mask-location-1.msl2.multi-patch.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/masking/copy-arrays.mask-location-1.msl2.multi-patch.tesc deleted file mode 100644 index abc95ca899..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/masking/copy-arrays.mask-location-1.msl2.multi-patch.tesc +++ /dev/null @@ -1,79 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - spvUnsafeArray Foo; - float4 gl_Position; -}; - -struct main0_patchOut -{ - spvUnsafeArray pFoo; -}; - -struct main0_in -{ - spvUnsafeArray iFoo; - float4 ipFoo; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], device main0_in* spvIn [[buffer(22)]]) -{ - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - device main0_patchOut& patchOut = spvPatchOut[gl_GlobalInvocationID.x / 4]; - device main0_in* gl_in = &spvIn[min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1) * spvIndirectParams[0]]; - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - gl_out[gl_InvocationID].gl_Position = float4(1.0); - gl_out[gl_InvocationID].Foo = gl_in[gl_InvocationID].iFoo; - if (gl_InvocationID == 0) - { - spvUnsafeArray _56 = spvUnsafeArray({ gl_in[0].ipFoo, gl_in[1].ipFoo }); - patchOut.pFoo = _56; - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/masking/copy-arrays.mask-location-1.msl2.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/masking/copy-arrays.mask-location-1.msl2.tesc deleted file mode 100644 index 3da1d18c61..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/masking/copy-arrays.mask-location-1.msl2.tesc +++ /dev/null @@ -1,83 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - spvUnsafeArray Foo; - float4 gl_Position; -}; - -struct main0_patchOut -{ - spvUnsafeArray pFoo; -}; - -struct main0_in -{ - float4 iFoo_0 [[attribute(0)]]; - float4 iFoo_1 [[attribute(1)]]; - float4 ipFoo [[attribute(2)]]; -}; - -kernel void main0(main0_in in [[stage_in]], uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], threadgroup main0_in* gl_in [[threadgroup(0)]]) -{ - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - if (gl_InvocationID < spvIndirectParams[0]) - gl_in[gl_InvocationID] = in; - threadgroup_barrier(mem_flags::mem_threadgroup); - if (gl_InvocationID >= 4) - return; - gl_out[gl_InvocationID].gl_Position = float4(1.0); - spvUnsafeArray _38 = spvUnsafeArray({ gl_in[gl_InvocationID].iFoo_0, gl_in[gl_InvocationID].iFoo_1 }); - gl_out[gl_InvocationID].Foo = _38; - if (gl_InvocationID == 0) - { - spvUnsafeArray _56 = spvUnsafeArray({ gl_in[0].ipFoo, gl_in[1].ipFoo }); - patchOut.pFoo = _56; - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-0.for-tess.vert b/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-0.for-tess.vert deleted file mode 100644 index f7b1acb576..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-0.for-tess.vert +++ /dev/null @@ -1,35 +0,0 @@ -#include -#include - -using namespace metal; - -struct V -{ - float4 a; - float4 b; - float4 c; - float4 d; -}; - -struct main0_out -{ - float4 V_b; - float4 V_c; - float4 V_d; - float4 gl_Position; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint3 spvStageInputSize [[grid_size]], device main0_out* spvOut [[buffer(28)]]) -{ - V _22 = {}; - device main0_out& out = spvOut[gl_GlobalInvocationID.y * spvStageInputSize.x + gl_GlobalInvocationID.x]; - if (any(gl_GlobalInvocationID >= spvStageInputSize)) - return; - out.gl_Position = float4(1.0); - _22.a = float4(2.0); - _22.b = float4(3.0); - out.V_b = _22.b; - out.V_c = _22.c; - out.V_d = _22.d; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-0.msl2.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-0.msl2.tesc deleted file mode 100644 index a8d1b75093..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-0.msl2.tesc +++ /dev/null @@ -1,41 +0,0 @@ -#include -#include - -using namespace metal; - -struct P -{ - float a; - float b; -}; - -struct C -{ - float a; - float b; -}; - -struct main0_out -{ - float C_a; - float C_b; - float4 gl_Position; -}; - -struct main0_patchOut -{ - float P_b; -}; - -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - threadgroup P _11; - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - _11.a = 1.0; - patchOut.P_b = 2.0; - gl_out[gl_InvocationID].C_a = 3.0; - gl_out[gl_InvocationID].C_b = 4.0; - gl_out[gl_InvocationID].gl_Position = float4(1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-0.multi-patch.msl2.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-0.multi-patch.msl2.tesc deleted file mode 100644 index ef9877b1f1..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-0.multi-patch.msl2.tesc +++ /dev/null @@ -1,44 +0,0 @@ -#include -#include - -using namespace metal; - -struct P -{ - float a; - float b; -}; - -struct C -{ - float a; - float b; -}; - -struct main0_out -{ - float C_a; - float C_b; - float4 gl_Position; -}; - -struct main0_patchOut -{ - float P_b; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - device main0_patchOut& patchOut = spvPatchOut[gl_GlobalInvocationID.x / 4]; - threadgroup P spvStorage_11[8]; - threadgroup P (&_11) = spvStorage_11[(gl_GlobalInvocationID.x / 4) % 8]; - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - _11.a = 1.0; - patchOut.P_b = 2.0; - gl_out[gl_InvocationID].C_a = 3.0; - gl_out[gl_InvocationID].C_b = 4.0; - gl_out[gl_InvocationID].gl_Position = float4(1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-0.vert b/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-0.vert deleted file mode 100644 index 648a11adce..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-0.vert +++ /dev/null @@ -1,34 +0,0 @@ -#include -#include - -using namespace metal; - -struct V -{ - float4 a; - float4 b; - float4 c; - float4 d; -}; - -struct main0_out -{ - float4 V_b [[user(locn1)]]; - float4 V_c [[user(locn2)]]; - float4 V_d [[user(locn3)]]; - float4 gl_Position [[position]]; -}; - -vertex main0_out main0() -{ - main0_out out = {}; - V _22 = {}; - out.gl_Position = float4(1.0); - _22.a = float4(2.0); - _22.b = float4(3.0); - out.V_b = _22.b; - out.V_c = _22.c; - out.V_d = _22.d; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-1.for-tess.vert b/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-1.for-tess.vert deleted file mode 100644 index 25fd5f5089..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-1.for-tess.vert +++ /dev/null @@ -1,35 +0,0 @@ -#include -#include - -using namespace metal; - -struct V -{ - float4 a; - float4 b; - float4 c; - float4 d; -}; - -struct main0_out -{ - float4 V_a; - float4 V_c; - float4 V_d; - float4 gl_Position; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint3 spvStageInputSize [[grid_size]], device main0_out* spvOut [[buffer(28)]]) -{ - V _22 = {}; - device main0_out& out = spvOut[gl_GlobalInvocationID.y * spvStageInputSize.x + gl_GlobalInvocationID.x]; - if (any(gl_GlobalInvocationID >= spvStageInputSize)) - return; - out.gl_Position = float4(1.0); - _22.a = float4(2.0); - _22.b = float4(3.0); - out.V_a = _22.a; - out.V_c = _22.c; - out.V_d = _22.d; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-1.msl2.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-1.msl2.tesc deleted file mode 100644 index 8af75f7bb2..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-1.msl2.tesc +++ /dev/null @@ -1,41 +0,0 @@ -#include -#include - -using namespace metal; - -struct P -{ - float a; - float b; -}; - -struct C -{ - float a; - float b; -}; - -struct main0_out -{ - float C_b; - float4 gl_Position; -}; - -struct main0_patchOut -{ - float P_a; - float P_b; -}; - -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - threadgroup C c[4]; - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - patchOut.P_a = 1.0; - patchOut.P_b = 2.0; - c[gl_InvocationID].a = 3.0; - gl_out[gl_InvocationID].C_b = 4.0; - gl_out[gl_InvocationID].gl_Position = float4(1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-1.multi-patch.msl2.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-1.multi-patch.msl2.tesc deleted file mode 100644 index 7b72ded6b8..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-1.multi-patch.msl2.tesc +++ /dev/null @@ -1,44 +0,0 @@ -#include -#include - -using namespace metal; - -struct P -{ - float a; - float b; -}; - -struct C -{ - float a; - float b; -}; - -struct main0_out -{ - float C_b; - float4 gl_Position; -}; - -struct main0_patchOut -{ - float P_a; - float P_b; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - threadgroup C spvStoragec[8][4]; - threadgroup C (&c)[4] = spvStoragec[(gl_GlobalInvocationID.x / 4) % 8]; - device main0_patchOut& patchOut = spvPatchOut[gl_GlobalInvocationID.x / 4]; - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - patchOut.P_a = 1.0; - patchOut.P_b = 2.0; - c[gl_InvocationID].a = 3.0; - gl_out[gl_InvocationID].C_b = 4.0; - gl_out[gl_InvocationID].gl_Position = float4(1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-1.vert b/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-1.vert deleted file mode 100644 index 1a4c18f05b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-1.vert +++ /dev/null @@ -1,34 +0,0 @@ -#include -#include - -using namespace metal; - -struct V -{ - float4 a; - float4 b; - float4 c; - float4 d; -}; - -struct main0_out -{ - float4 V_a [[user(locn0)]]; - float4 V_c [[user(locn2)]]; - float4 V_d [[user(locn3)]]; - float4 gl_Position [[position]]; -}; - -vertex main0_out main0() -{ - main0_out out = {}; - V _22 = {}; - out.gl_Position = float4(1.0); - _22.a = float4(2.0); - _22.b = float4(3.0); - out.V_a = _22.a; - out.V_c = _22.c; - out.V_d = _22.d; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-clip-distance.vert b/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-clip-distance.vert deleted file mode 100644 index 1f56f34a76..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-clip-distance.vert +++ /dev/null @@ -1,67 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 v0 [[user(locn0)]]; - float4 v1 [[user(locn1)]]; - float4 gl_Position [[position]]; - float gl_PointSize [[point_size]]; -}; - -vertex main0_out main0() -{ - main0_out out = {}; - spvUnsafeArray gl_ClipDistance = {}; - out.v0 = float4(1.0); - out.v1 = float4(2.0); - out.gl_Position = float4(3.0); - out.gl_PointSize = 4.0; - gl_ClipDistance[0] = 1.0; - gl_ClipDistance[1] = 0.5; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-0.for-tess.vert b/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-0.for-tess.vert deleted file mode 100644 index 1c0aab5037..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-0.for-tess.vert +++ /dev/null @@ -1,68 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 v1; - float4 gl_Position; - float gl_PointSize; - spvUnsafeArray gl_ClipDistance; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint3 spvStageInputSize [[grid_size]], device main0_out* spvOut [[buffer(28)]]) -{ - float4 v0 = {}; - device main0_out& out = spvOut[gl_GlobalInvocationID.y * spvStageInputSize.x + gl_GlobalInvocationID.x]; - if (any(gl_GlobalInvocationID >= spvStageInputSize)) - return; - v0 = float4(1.0); - out.v1 = float4(2.0); - out.gl_Position = float4(3.0); - out.gl_PointSize = 4.0; - out.gl_ClipDistance[0] = 1.0; - out.gl_ClipDistance[1] = 0.5; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-0.msl2.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-0.msl2.tesc deleted file mode 100644 index 7c8e387824..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-0.msl2.tesc +++ /dev/null @@ -1,34 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position; - float gl_PointSize; -}; - -struct main0_patchOut -{ - float4 v1; -}; - -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - threadgroup float4 v0[4]; - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - v0[gl_InvocationID] = float4(1.0); - v0[gl_InvocationID].x = 2.0; - if (gl_InvocationID == 0) - { - patchOut.v1 = float4(2.0); - ((device float*)&patchOut.v1)[3u] = 4.0; - } - gl_out[gl_InvocationID].gl_Position = float4(3.0); - gl_out[gl_InvocationID].gl_PointSize = 4.0; - gl_out[gl_InvocationID].gl_Position.z = 5.0; - gl_out[gl_InvocationID].gl_PointSize = 4.0; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-0.multi-patch.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-0.multi-patch.tesc deleted file mode 100644 index 7a5e183a26..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-0.multi-patch.tesc +++ /dev/null @@ -1,81 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 gl_Position; - float gl_PointSize; -}; - -struct main0_patchOut -{ - spvUnsafeArray v1; - float4 v3; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - threadgroup float4 spvStoragev0[8][4]; - threadgroup float4 (&v0)[4] = spvStoragev0[(gl_GlobalInvocationID.x / 4) % 8]; - device main0_patchOut& patchOut = spvPatchOut[gl_GlobalInvocationID.x / 4]; - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - v0[gl_InvocationID] = float4(1.0); - v0[gl_InvocationID].z = 3.0; - if (gl_InvocationID == 0) - { - patchOut.v1[0] = float4(2.0); - ((device float*)&patchOut.v1[0])[0u] = 3.0; - patchOut.v1[1] = float4(2.0); - ((device float*)&patchOut.v1[1])[0u] = 5.0; - } - patchOut.v3 = float4(5.0); - gl_out[gl_InvocationID].gl_Position = float4(10.0); - gl_out[gl_InvocationID].gl_Position.z = 20.0; - gl_out[gl_InvocationID].gl_PointSize = 40.0; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-0.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-0.tesc deleted file mode 100644 index ef3ff9c221..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-0.tesc +++ /dev/null @@ -1,78 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 gl_Position; - float gl_PointSize; -}; - -struct main0_patchOut -{ - spvUnsafeArray v1; - float4 v3; -}; - -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - threadgroup float4 v0[4]; - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - v0[gl_InvocationID] = float4(1.0); - v0[gl_InvocationID].z = 3.0; - if (gl_InvocationID == 0) - { - patchOut.v1[0] = float4(2.0); - ((device float*)&patchOut.v1[0])[0u] = 3.0; - patchOut.v1[1] = float4(2.0); - ((device float*)&patchOut.v1[1])[0u] = 5.0; - } - patchOut.v3 = float4(5.0); - gl_out[gl_InvocationID].gl_Position = float4(10.0); - gl_out[gl_InvocationID].gl_Position.z = 20.0; - gl_out[gl_InvocationID].gl_PointSize = 40.0; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-0.vert b/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-0.vert deleted file mode 100644 index 88c6bb6fac..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-0.vert +++ /dev/null @@ -1,30 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 v1 [[user(locn1)]]; - float4 gl_Position [[position]]; - float gl_PointSize [[point_size]]; - float gl_ClipDistance [[clip_distance]] [2]; - float gl_ClipDistance_0 [[user(clip0)]]; - float gl_ClipDistance_1 [[user(clip1)]]; -}; - -vertex main0_out main0() -{ - main0_out out = {}; - float4 v0 = {}; - v0 = float4(1.0); - out.v1 = float4(2.0); - out.gl_Position = float4(3.0); - out.gl_PointSize = 4.0; - out.gl_ClipDistance[0] = 1.0; - out.gl_ClipDistance[1] = 0.5; - out.gl_ClipDistance_0 = out.gl_ClipDistance[0]; - out.gl_ClipDistance_1 = out.gl_ClipDistance[1]; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-1.for-tess.vert b/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-1.for-tess.vert deleted file mode 100644 index d558b7aed7..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-1.for-tess.vert +++ /dev/null @@ -1,68 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 v0; - float4 gl_Position; - float gl_PointSize; - spvUnsafeArray gl_ClipDistance; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint3 spvStageInputSize [[grid_size]], device main0_out* spvOut [[buffer(28)]]) -{ - float4 v1 = {}; - device main0_out& out = spvOut[gl_GlobalInvocationID.y * spvStageInputSize.x + gl_GlobalInvocationID.x]; - if (any(gl_GlobalInvocationID >= spvStageInputSize)) - return; - out.v0 = float4(1.0); - v1 = float4(2.0); - out.gl_Position = float4(3.0); - out.gl_PointSize = 4.0; - out.gl_ClipDistance[0] = 1.0; - out.gl_ClipDistance[1] = 0.5; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-1.msl2.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-1.msl2.tesc deleted file mode 100644 index bb87ced750..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-1.msl2.tesc +++ /dev/null @@ -1,33 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 v0; - float4 gl_Position; - float gl_PointSize; -}; - -struct main0_patchOut -{ -}; -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - threadgroup float4 v1; - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - gl_out[gl_InvocationID].v0 = float4(1.0); - gl_out[gl_InvocationID].v0.x = 2.0; - if (gl_InvocationID == 0) - { - v1 = float4(2.0); - ((threadgroup float*)&v1)[3u] = 4.0; - } - gl_out[gl_InvocationID].gl_Position = float4(3.0); - gl_out[gl_InvocationID].gl_PointSize = 4.0; - gl_out[gl_InvocationID].gl_Position.z = 5.0; - gl_out[gl_InvocationID].gl_PointSize = 4.0; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-1.multi-patch.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-1.multi-patch.tesc deleted file mode 100644 index 28ec0be0c6..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-1.multi-patch.tesc +++ /dev/null @@ -1,40 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 v0; - float4 gl_Position; - float gl_PointSize; -}; - -struct main0_patchOut -{ - float4 v3; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - device main0_patchOut& patchOut = spvPatchOut[gl_GlobalInvocationID.x / 4]; - threadgroup float4 spvStoragev1[8][2]; - threadgroup float4 (&v1)[2] = spvStoragev1[(gl_GlobalInvocationID.x / 4) % 8]; - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - gl_out[gl_InvocationID].v0 = float4(1.0); - gl_out[gl_InvocationID].v0.z = 3.0; - if (gl_InvocationID == 0) - { - v1[0] = float4(2.0); - ((threadgroup float*)&v1[0])[0u] = 3.0; - v1[1] = float4(2.0); - ((threadgroup float*)&v1[1])[0u] = 5.0; - } - patchOut.v3 = float4(5.0); - gl_out[gl_InvocationID].gl_Position = float4(10.0); - gl_out[gl_InvocationID].gl_Position.z = 20.0; - gl_out[gl_InvocationID].gl_PointSize = 40.0; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-1.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-1.tesc deleted file mode 100644 index 1673d52329..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-1.tesc +++ /dev/null @@ -1,37 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 v0; - float4 gl_Position; - float gl_PointSize; -}; - -struct main0_patchOut -{ - float4 v3; -}; - -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - threadgroup float4 v1[2]; - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - gl_out[gl_InvocationID].v0 = float4(1.0); - gl_out[gl_InvocationID].v0.z = 3.0; - if (gl_InvocationID == 0) - { - v1[0] = float4(2.0); - ((threadgroup float*)&v1[0])[0u] = 3.0; - v1[1] = float4(2.0); - ((threadgroup float*)&v1[1])[0u] = 5.0; - } - patchOut.v3 = float4(5.0); - gl_out[gl_InvocationID].gl_Position = float4(10.0); - gl_out[gl_InvocationID].gl_Position.z = 20.0; - gl_out[gl_InvocationID].gl_PointSize = 40.0; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-1.vert b/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-1.vert deleted file mode 100644 index cc7d41794d..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-location-1.vert +++ /dev/null @@ -1,30 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 v0 [[user(locn0)]]; - float4 gl_Position [[position]]; - float gl_PointSize [[point_size]]; - float gl_ClipDistance [[clip_distance]] [2]; - float gl_ClipDistance_0 [[user(clip0)]]; - float gl_ClipDistance_1 [[user(clip1)]]; -}; - -vertex main0_out main0() -{ - main0_out out = {}; - float4 v1 = {}; - out.v0 = float4(1.0); - v1 = float4(2.0); - out.gl_Position = float4(3.0); - out.gl_PointSize = 4.0; - out.gl_ClipDistance[0] = 1.0; - out.gl_ClipDistance[1] = 0.5; - out.gl_ClipDistance_0 = out.gl_ClipDistance[0]; - out.gl_ClipDistance_1 = out.gl_ClipDistance[1]; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-point-size.for-tess.vert b/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-point-size.for-tess.vert deleted file mode 100644 index 463ecc87b5..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-point-size.for-tess.vert +++ /dev/null @@ -1,68 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 v0; - float4 v1; - float4 gl_Position; - spvUnsafeArray gl_ClipDistance; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint3 spvStageInputSize [[grid_size]], device main0_out* spvOut [[buffer(28)]]) -{ - float gl_PointSize = {}; - device main0_out& out = spvOut[gl_GlobalInvocationID.y * spvStageInputSize.x + gl_GlobalInvocationID.x]; - if (any(gl_GlobalInvocationID >= spvStageInputSize)) - return; - out.v0 = float4(1.0); - out.v1 = float4(2.0); - out.gl_Position = float4(3.0); - gl_PointSize = 4.0; - out.gl_ClipDistance[0] = 1.0; - out.gl_ClipDistance[1] = 0.5; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-point-size.multi-patch.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-point-size.multi-patch.tesc deleted file mode 100644 index 694cdbb7ff..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-point-size.multi-patch.tesc +++ /dev/null @@ -1,89 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct gl_PerVertex -{ - float4 gl_Position; - float gl_PointSize; - spvUnsafeArray gl_ClipDistance; - spvUnsafeArray gl_CullDistance; -}; - -struct main0_out -{ - float4 v0; - float4 gl_Position; -}; - -struct main0_patchOut -{ - spvUnsafeArray v1; - float4 v3; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - threadgroup gl_PerVertex spvStoragegl_out_masked[8][4]; - threadgroup gl_PerVertex (&gl_out_masked)[4] = spvStoragegl_out_masked[(gl_GlobalInvocationID.x / 4) % 8]; - device main0_patchOut& patchOut = spvPatchOut[gl_GlobalInvocationID.x / 4]; - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - gl_out[gl_InvocationID].v0 = float4(1.0); - gl_out[gl_InvocationID].v0.z = 3.0; - if (gl_InvocationID == 0) - { - patchOut.v1[0] = float4(2.0); - ((device float*)&patchOut.v1[0])[0u] = 3.0; - patchOut.v1[1] = float4(2.0); - ((device float*)&patchOut.v1[1])[0u] = 5.0; - } - patchOut.v3 = float4(5.0); - gl_out[gl_InvocationID].gl_Position = float4(10.0); - gl_out[gl_InvocationID].gl_Position.z = 20.0; - gl_out_masked[gl_InvocationID].gl_PointSize = 40.0; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-point-size.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-point-size.tesc deleted file mode 100644 index da976c9a8a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-point-size.tesc +++ /dev/null @@ -1,86 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct gl_PerVertex -{ - float4 gl_Position; - float gl_PointSize; - spvUnsafeArray gl_ClipDistance; - spvUnsafeArray gl_CullDistance; -}; - -struct main0_out -{ - float4 v0; - float4 gl_Position; -}; - -struct main0_patchOut -{ - spvUnsafeArray v1; - float4 v3; -}; - -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - threadgroup gl_PerVertex gl_out_masked[4]; - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - gl_out[gl_InvocationID].v0 = float4(1.0); - gl_out[gl_InvocationID].v0.z = 3.0; - if (gl_InvocationID == 0) - { - patchOut.v1[0] = float4(2.0); - ((device float*)&patchOut.v1[0])[0u] = 3.0; - patchOut.v1[1] = float4(2.0); - ((device float*)&patchOut.v1[1])[0u] = 5.0; - } - patchOut.v3 = float4(5.0); - gl_out[gl_InvocationID].gl_Position = float4(10.0); - gl_out[gl_InvocationID].gl_Position.z = 20.0; - gl_out_masked[gl_InvocationID].gl_PointSize = 40.0; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-point-size.vert b/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-point-size.vert deleted file mode 100644 index ffdfdaaff4..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-point-size.vert +++ /dev/null @@ -1,30 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 v0 [[user(locn0)]]; - float4 v1 [[user(locn1)]]; - float4 gl_Position [[position]]; - float gl_ClipDistance [[clip_distance]] [2]; - float gl_ClipDistance_0 [[user(clip0)]]; - float gl_ClipDistance_1 [[user(clip1)]]; -}; - -vertex main0_out main0() -{ - main0_out out = {}; - float gl_PointSize = {}; - out.v0 = float4(1.0); - out.v1 = float4(2.0); - out.gl_Position = float4(3.0); - gl_PointSize = 4.0; - out.gl_ClipDistance[0] = 1.0; - out.gl_ClipDistance[1] = 0.5; - out.gl_ClipDistance_0 = out.gl_ClipDistance[0]; - out.gl_ClipDistance_1 = out.gl_ClipDistance[1]; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-position.multi-patch.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-position.multi-patch.tesc deleted file mode 100644 index c55e337682..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-position.multi-patch.tesc +++ /dev/null @@ -1,89 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct gl_PerVertex -{ - float4 gl_Position; - float gl_PointSize; - spvUnsafeArray gl_ClipDistance; - spvUnsafeArray gl_CullDistance; -}; - -struct main0_out -{ - float4 v0; - float gl_PointSize; -}; - -struct main0_patchOut -{ - spvUnsafeArray v1; - float4 v3; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - threadgroup gl_PerVertex spvStoragegl_out_masked[8][4]; - threadgroup gl_PerVertex (&gl_out_masked)[4] = spvStoragegl_out_masked[(gl_GlobalInvocationID.x / 4) % 8]; - device main0_patchOut& patchOut = spvPatchOut[gl_GlobalInvocationID.x / 4]; - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - gl_out[gl_InvocationID].v0 = float4(1.0); - gl_out[gl_InvocationID].v0.z = 3.0; - if (gl_InvocationID == 0) - { - patchOut.v1[0] = float4(2.0); - ((device float*)&patchOut.v1[0])[0u] = 3.0; - patchOut.v1[1] = float4(2.0); - ((device float*)&patchOut.v1[1])[0u] = 5.0; - } - patchOut.v3 = float4(5.0); - gl_out_masked[gl_InvocationID].gl_Position = float4(10.0); - gl_out_masked[gl_InvocationID].gl_Position.z = 20.0; - gl_out[gl_InvocationID].gl_PointSize = 40.0; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-position.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-position.tesc deleted file mode 100644 index 04584de49f..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/masking/write-outputs.mask-position.tesc +++ /dev/null @@ -1,86 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct gl_PerVertex -{ - float4 gl_Position; - float gl_PointSize; - spvUnsafeArray gl_ClipDistance; - spvUnsafeArray gl_CullDistance; -}; - -struct main0_out -{ - float4 v0; - float gl_PointSize; -}; - -struct main0_patchOut -{ - spvUnsafeArray v1; - float4 v3; -}; - -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - threadgroup gl_PerVertex gl_out_masked[4]; - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - gl_out[gl_InvocationID].v0 = float4(1.0); - gl_out[gl_InvocationID].v0.z = 3.0; - if (gl_InvocationID == 0) - { - patchOut.v1[0] = float4(2.0); - ((device float*)&patchOut.v1[0])[0u] = 3.0; - patchOut.v1[1] = float4(2.0); - ((device float*)&patchOut.v1[1])[0u] = 5.0; - } - patchOut.v3 = float4(5.0); - gl_out_masked[gl_InvocationID].gl_Position = float4(10.0); - gl_out_masked[gl_InvocationID].gl_Position.z = 20.0; - gl_out[gl_InvocationID].gl_PointSize = 40.0; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/tesc/basic.multi-patch.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/tesc/basic.multi-patch.tesc deleted file mode 100644 index fe26831673..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/tesc/basic.multi-patch.tesc +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_patchOut -{ - float3 vFoo; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - device main0_patchOut& patchOut = spvPatchOut[gl_GlobalInvocationID.x / 1]; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 1, spvIndirectParams[1] - 1); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[0] = half(8.8999996185302734375); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[1] = half(6.900000095367431640625); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(8.8999996185302734375); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(6.900000095367431640625); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(3.900000095367431640625); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3] = half(4.900000095367431640625); - patchOut.vFoo = float3(1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/tesc/basic.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/tesc/basic.tesc deleted file mode 100644 index a9ff5b37ea..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/tesc/basic.tesc +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_patchOut -{ - float3 vFoo; -}; - -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[0] = half(8.8999996185302734375); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[1] = half(6.900000095367431640625); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(8.8999996185302734375); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(6.900000095367431640625); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(3.900000095367431640625); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3] = half(4.900000095367431640625); - patchOut.vFoo = float3(1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/tesc/complex-control-point-inout-types.multi-patch.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/tesc/complex-control-point-inout-types.multi-patch.tesc deleted file mode 100644 index d3b4738d5e..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/tesc/complex-control-point-inout-types.multi-patch.tesc +++ /dev/null @@ -1,128 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct Meep -{ - float a; - float b; -}; - -struct Block -{ - spvUnsafeArray a; - float b; - float2x2 m; - Meep meep; - spvUnsafeArray meeps; -}; - -struct Block_1 -{ - spvUnsafeArray a; - float b; - float2x2 m; - Meep meep; - spvUnsafeArray meeps; -}; - -struct main0_out -{ - spvUnsafeArray a; - float b; - float2x2 m; - Meep meep; - spvUnsafeArray meeps; - spvUnsafeArray Block_a; - float Block_b; - float2x2 Block_m; - Meep Block_meep; - spvUnsafeArray Block_meeps; - float4 gl_Position; -}; - -struct main0_in -{ - spvUnsafeArray in_a; - float in_b; - float2x2 in_m; - Meep in_meep; - spvUnsafeArray in_meeps; - spvUnsafeArray Block_a; - float Block_b; - float2x2 Block_m; - Meep Block_meep; - spvUnsafeArray Block_meeps; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], device main0_in* spvIn [[buffer(22)]]) -{ - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - device main0_in* gl_in = &spvIn[min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1) * spvIndirectParams[0]]; - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - gl_out[gl_InvocationID].gl_Position = float4(1.0); - gl_out[gl_InvocationID].a[0] = gl_in[gl_InvocationID].in_a[0]; - gl_out[gl_InvocationID].a[1] = gl_in[gl_InvocationID].in_a[1]; - gl_out[gl_InvocationID].b = gl_in[gl_InvocationID].in_b; - gl_out[gl_InvocationID].m = gl_in[gl_InvocationID].in_m; - gl_out[gl_InvocationID].meep.a = gl_in[gl_InvocationID].in_meep.a; - gl_out[gl_InvocationID].meep.b = gl_in[gl_InvocationID].in_meep.b; - gl_out[gl_InvocationID].meeps[0].a = gl_in[gl_InvocationID].in_meeps[0].a; - gl_out[gl_InvocationID].meeps[0].b = gl_in[gl_InvocationID].in_meeps[0].b; - gl_out[gl_InvocationID].meeps[1].a = gl_in[gl_InvocationID].in_meeps[1].a; - gl_out[gl_InvocationID].meeps[1].b = gl_in[gl_InvocationID].in_meeps[1].b; - gl_out[gl_InvocationID].Block_a[0] = gl_in[gl_InvocationID].Block_a[0]; - gl_out[gl_InvocationID].Block_a[1] = gl_in[gl_InvocationID].Block_a[1]; - gl_out[gl_InvocationID].Block_b = gl_in[gl_InvocationID].Block_b; - gl_out[gl_InvocationID].Block_m = gl_in[gl_InvocationID].Block_m; - gl_out[gl_InvocationID].Block_meep.a = gl_in[gl_InvocationID].Block_meep.a; - gl_out[gl_InvocationID].Block_meep.b = gl_in[gl_InvocationID].Block_meep.b; - gl_out[gl_InvocationID].Block_meeps[0].a = gl_in[gl_InvocationID].Block_meeps[0].a; - gl_out[gl_InvocationID].Block_meeps[0].b = gl_in[gl_InvocationID].Block_meeps[0].b; - gl_out[gl_InvocationID].Block_meeps[1].a = gl_in[gl_InvocationID].Block_meeps[1].a; - gl_out[gl_InvocationID].Block_meeps[1].b = gl_in[gl_InvocationID].Block_meeps[1].b; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/tesc/complex-control-point-inout-types.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/tesc/complex-control-point-inout-types.tesc deleted file mode 100644 index 5fabb4539f..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/tesc/complex-control-point-inout-types.tesc +++ /dev/null @@ -1,132 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct Meep -{ - float a; - float b; -}; - -struct Block -{ - spvUnsafeArray a; - float b; - float2x2 m; - Meep meep; - spvUnsafeArray meeps; -}; - -struct Block_1 -{ - spvUnsafeArray a; - float b; - float2x2 m; -}; - -struct main0_out -{ - spvUnsafeArray a; - float b; - float2x2 m; - Meep meep; - spvUnsafeArray meeps; - spvUnsafeArray Block_a; - float Block_b; - float2x2 Block_m; - Meep Block_meep; - spvUnsafeArray Block_meeps; - float4 gl_Position; -}; - -struct main0_in -{ - float in_a_0 [[attribute(0)]]; - float in_a_1 [[attribute(1)]]; - float in_b [[attribute(2)]]; - float2 in_m_0 [[attribute(3)]]; - float2 in_m_1 [[attribute(4)]]; - float Meep_a [[attribute(5)]]; - float Meep_b [[attribute(6)]]; - float Block_a_0 [[attribute(11)]]; - float Block_a_1 [[attribute(12)]]; - float Block_b [[attribute(13)]]; - float2 Block_m_0 [[attribute(14)]]; - float2 Block_m_1 [[attribute(15)]]; -}; - -kernel void main0(main0_in in [[stage_in]], uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], threadgroup main0_in* gl_in [[threadgroup(0)]]) -{ - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - if (gl_InvocationID < spvIndirectParams[0]) - gl_in[gl_InvocationID] = in; - threadgroup_barrier(mem_flags::mem_threadgroup); - if (gl_InvocationID >= 4) - return; - gl_out[gl_InvocationID].gl_Position = float4(1.0); - gl_out[gl_InvocationID].a[0] = gl_in[gl_InvocationID].in_a_0; - gl_out[gl_InvocationID].a[1] = gl_in[gl_InvocationID].in_a_1; - gl_out[gl_InvocationID].b = gl_in[gl_InvocationID].in_b; - float2x2 _178 = float2x2(gl_in[gl_InvocationID].in_m_0, gl_in[gl_InvocationID].in_m_1); - gl_out[gl_InvocationID].m = _178; - gl_out[gl_InvocationID].meep.a = gl_in[gl_InvocationID].Meep_a; - gl_out[gl_InvocationID].meep.b = gl_in[gl_InvocationID].Meep_b; - gl_out[gl_InvocationID].meeps[0].a = 1.0; - gl_out[gl_InvocationID].meeps[0].b = 2.0; - gl_out[gl_InvocationID].meeps[1].a = 3.0; - gl_out[gl_InvocationID].meeps[1].b = 4.0; - gl_out[gl_InvocationID].Block_a[0] = gl_in[gl_InvocationID].Block_a_0; - gl_out[gl_InvocationID].Block_a[1] = gl_in[gl_InvocationID].Block_a_1; - gl_out[gl_InvocationID].Block_b = gl_in[gl_InvocationID].Block_b; - float2x2 _216 = float2x2(gl_in[gl_InvocationID].Block_m_0, gl_in[gl_InvocationID].Block_m_1); - gl_out[gl_InvocationID].Block_m = _216; - gl_out[gl_InvocationID].Block_meep.a = 10.0; - gl_out[gl_InvocationID].Block_meep.b = 20.0; - gl_out[gl_InvocationID].Block_meeps[0].a = 5.0; - gl_out[gl_InvocationID].Block_meeps[0].b = 6.0; - gl_out[gl_InvocationID].Block_meeps[1].a = 7.0; - gl_out[gl_InvocationID].Block_meeps[1].b = 8.0; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/tesc/complex-patch-out-types.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/tesc/complex-patch-out-types.tesc deleted file mode 100644 index d4a59bb772..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/tesc/complex-patch-out-types.tesc +++ /dev/null @@ -1,107 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct Meep -{ - float a; - float b; -}; - -struct Block -{ - spvUnsafeArray a; - float b; - float2x2 m; - Meep meep; - spvUnsafeArray meeps; -}; - -struct main0_out -{ - float4 gl_Position; -}; - -struct main0_patchOut -{ - spvUnsafeArray a; - float b; - float2x2 m; - Meep meep; - spvUnsafeArray meeps; - spvUnsafeArray Block_a; - float Block_b; - float2x2 Block_m; - Meep Block_meep; - spvUnsafeArray Block_meeps; -}; - -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - gl_out[gl_InvocationID].gl_Position = float4(1.0); - patchOut.a[0] = 1.0; - patchOut.a[1] = 2.0; - patchOut.b = 3.0; - patchOut.m = float2x2(float2(2.0, 0.0), float2(0.0, 2.0)); - patchOut.meep.a = 4.0; - patchOut.meep.b = 5.0; - patchOut.meeps[0].a = 6.0; - patchOut.meeps[0].b = 7.0; - patchOut.meeps[1].a = 8.0; - patchOut.meeps[1].b = 9.0; - patchOut.Block_a[0] = 1.0; - patchOut.Block_a[1] = 2.0; - patchOut.Block_b = 3.0; - patchOut.Block_m = float2x2(float2(4.0, 0.0), float2(0.0, 4.0)); - patchOut.Block_meep.a = 4.0; - patchOut.Block_meep.b = 5.0; - patchOut.Block_meeps[0].a = 6.0; - patchOut.Block_meeps[0].b = 7.0; - patchOut.Block_meeps[1].a = 8.0; - patchOut.Block_meeps[1].b = 9.0; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/tesc/load-control-point-array-of-matrix.multi-patch.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/tesc/load-control-point-array-of-matrix.multi-patch.tesc deleted file mode 100644 index 28effad215..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/tesc/load-control-point-array-of-matrix.multi-patch.tesc +++ /dev/null @@ -1,68 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4x4 vOutputs; -}; - -struct main0_in -{ - float4x4 vInputs; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], device main0_in* spvIn [[buffer(22)]]) -{ - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - device main0_in* gl_in = &spvIn[min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1) * spvIndirectParams[0]]; - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - spvUnsafeArray _16 = spvUnsafeArray({ gl_in[0].vInputs, gl_in[1].vInputs, gl_in[2].vInputs, gl_in[3].vInputs, gl_in[4].vInputs, gl_in[5].vInputs, gl_in[6].vInputs, gl_in[7].vInputs, gl_in[8].vInputs, gl_in[9].vInputs, gl_in[10].vInputs, gl_in[11].vInputs, gl_in[12].vInputs, gl_in[13].vInputs, gl_in[14].vInputs, gl_in[15].vInputs, gl_in[16].vInputs, gl_in[17].vInputs, gl_in[18].vInputs, gl_in[19].vInputs, gl_in[20].vInputs, gl_in[21].vInputs, gl_in[22].vInputs, gl_in[23].vInputs, gl_in[24].vInputs, gl_in[25].vInputs, gl_in[26].vInputs, gl_in[27].vInputs, gl_in[28].vInputs, gl_in[29].vInputs, gl_in[30].vInputs, gl_in[31].vInputs }); - spvUnsafeArray tmp; - tmp = _16; - gl_out[gl_InvocationID].vOutputs = tmp[gl_InvocationID]; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/tesc/load-control-point-array-of-matrix.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/tesc/load-control-point-array-of-matrix.tesc deleted file mode 100644 index 46d4b4ad58..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/tesc/load-control-point-array-of-matrix.tesc +++ /dev/null @@ -1,73 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4x4 vOutputs; -}; - -struct main0_in -{ - float4 vInputs_0 [[attribute(0)]]; - float4 vInputs_1 [[attribute(1)]]; - float4 vInputs_2 [[attribute(2)]]; - float4 vInputs_3 [[attribute(3)]]; -}; - -kernel void main0(main0_in in [[stage_in]], uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], threadgroup main0_in* gl_in [[threadgroup(0)]]) -{ - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - if (gl_InvocationID < spvIndirectParams[0]) - gl_in[gl_InvocationID] = in; - threadgroup_barrier(mem_flags::mem_threadgroup); - if (gl_InvocationID >= 4) - return; - spvUnsafeArray _16 = spvUnsafeArray({ float4x4(gl_in[0].vInputs_0, gl_in[0].vInputs_1, gl_in[0].vInputs_2, gl_in[0].vInputs_3), float4x4(gl_in[1].vInputs_0, gl_in[1].vInputs_1, gl_in[1].vInputs_2, gl_in[1].vInputs_3), float4x4(gl_in[2].vInputs_0, gl_in[2].vInputs_1, gl_in[2].vInputs_2, gl_in[2].vInputs_3), float4x4(gl_in[3].vInputs_0, gl_in[3].vInputs_1, gl_in[3].vInputs_2, gl_in[3].vInputs_3), float4x4(gl_in[4].vInputs_0, gl_in[4].vInputs_1, gl_in[4].vInputs_2, gl_in[4].vInputs_3), float4x4(gl_in[5].vInputs_0, gl_in[5].vInputs_1, gl_in[5].vInputs_2, gl_in[5].vInputs_3), float4x4(gl_in[6].vInputs_0, gl_in[6].vInputs_1, gl_in[6].vInputs_2, gl_in[6].vInputs_3), float4x4(gl_in[7].vInputs_0, gl_in[7].vInputs_1, gl_in[7].vInputs_2, gl_in[7].vInputs_3), float4x4(gl_in[8].vInputs_0, gl_in[8].vInputs_1, gl_in[8].vInputs_2, gl_in[8].vInputs_3), float4x4(gl_in[9].vInputs_0, gl_in[9].vInputs_1, gl_in[9].vInputs_2, gl_in[9].vInputs_3), float4x4(gl_in[10].vInputs_0, gl_in[10].vInputs_1, gl_in[10].vInputs_2, gl_in[10].vInputs_3), float4x4(gl_in[11].vInputs_0, gl_in[11].vInputs_1, gl_in[11].vInputs_2, gl_in[11].vInputs_3), float4x4(gl_in[12].vInputs_0, gl_in[12].vInputs_1, gl_in[12].vInputs_2, gl_in[12].vInputs_3), float4x4(gl_in[13].vInputs_0, gl_in[13].vInputs_1, gl_in[13].vInputs_2, gl_in[13].vInputs_3), float4x4(gl_in[14].vInputs_0, gl_in[14].vInputs_1, gl_in[14].vInputs_2, gl_in[14].vInputs_3), float4x4(gl_in[15].vInputs_0, gl_in[15].vInputs_1, gl_in[15].vInputs_2, gl_in[15].vInputs_3), float4x4(gl_in[16].vInputs_0, gl_in[16].vInputs_1, gl_in[16].vInputs_2, gl_in[16].vInputs_3), float4x4(gl_in[17].vInputs_0, gl_in[17].vInputs_1, gl_in[17].vInputs_2, gl_in[17].vInputs_3), float4x4(gl_in[18].vInputs_0, gl_in[18].vInputs_1, gl_in[18].vInputs_2, gl_in[18].vInputs_3), float4x4(gl_in[19].vInputs_0, gl_in[19].vInputs_1, gl_in[19].vInputs_2, gl_in[19].vInputs_3), float4x4(gl_in[20].vInputs_0, gl_in[20].vInputs_1, gl_in[20].vInputs_2, gl_in[20].vInputs_3), float4x4(gl_in[21].vInputs_0, gl_in[21].vInputs_1, gl_in[21].vInputs_2, gl_in[21].vInputs_3), float4x4(gl_in[22].vInputs_0, gl_in[22].vInputs_1, gl_in[22].vInputs_2, gl_in[22].vInputs_3), float4x4(gl_in[23].vInputs_0, gl_in[23].vInputs_1, gl_in[23].vInputs_2, gl_in[23].vInputs_3), float4x4(gl_in[24].vInputs_0, gl_in[24].vInputs_1, gl_in[24].vInputs_2, gl_in[24].vInputs_3), float4x4(gl_in[25].vInputs_0, gl_in[25].vInputs_1, gl_in[25].vInputs_2, gl_in[25].vInputs_3), float4x4(gl_in[26].vInputs_0, gl_in[26].vInputs_1, gl_in[26].vInputs_2, gl_in[26].vInputs_3), float4x4(gl_in[27].vInputs_0, gl_in[27].vInputs_1, gl_in[27].vInputs_2, gl_in[27].vInputs_3), float4x4(gl_in[28].vInputs_0, gl_in[28].vInputs_1, gl_in[28].vInputs_2, gl_in[28].vInputs_3), float4x4(gl_in[29].vInputs_0, gl_in[29].vInputs_1, gl_in[29].vInputs_2, gl_in[29].vInputs_3), float4x4(gl_in[30].vInputs_0, gl_in[30].vInputs_1, gl_in[30].vInputs_2, gl_in[30].vInputs_3), float4x4(gl_in[31].vInputs_0, gl_in[31].vInputs_1, gl_in[31].vInputs_2, gl_in[31].vInputs_3) }); - spvUnsafeArray tmp; - tmp = _16; - gl_out[gl_InvocationID].vOutputs = tmp[gl_InvocationID]; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/tesc/load-control-point-array-of-struct.multi-patch.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/tesc/load-control-point-array-of-struct.multi-patch.tesc deleted file mode 100644 index e6bd83e809..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/tesc/load-control-point-array-of-struct.multi-patch.tesc +++ /dev/null @@ -1,76 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct VertexData -{ - float4x4 a; - spvUnsafeArray b; - float4 c; -}; - -struct main0_out -{ - float4 vOutputs; -}; - -struct main0_in -{ - VertexData vInputs; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], device main0_in* spvIn [[buffer(22)]]) -{ - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - device main0_in* gl_in = &spvIn[min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1) * spvIndirectParams[0]]; - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - spvUnsafeArray _19 = spvUnsafeArray({ gl_in[0].vInputs, gl_in[1].vInputs, gl_in[2].vInputs, gl_in[3].vInputs, gl_in[4].vInputs, gl_in[5].vInputs, gl_in[6].vInputs, gl_in[7].vInputs, gl_in[8].vInputs, gl_in[9].vInputs, gl_in[10].vInputs, gl_in[11].vInputs, gl_in[12].vInputs, gl_in[13].vInputs, gl_in[14].vInputs, gl_in[15].vInputs, gl_in[16].vInputs, gl_in[17].vInputs, gl_in[18].vInputs, gl_in[19].vInputs, gl_in[20].vInputs, gl_in[21].vInputs, gl_in[22].vInputs, gl_in[23].vInputs, gl_in[24].vInputs, gl_in[25].vInputs, gl_in[26].vInputs, gl_in[27].vInputs, gl_in[28].vInputs, gl_in[29].vInputs, gl_in[30].vInputs, gl_in[31].vInputs }); - spvUnsafeArray tmp; - tmp = _19; - int _27 = gl_InvocationID ^ 1; - gl_out[gl_InvocationID].vOutputs = ((tmp[gl_InvocationID].a[1] + tmp[gl_InvocationID].b[1]) + tmp[gl_InvocationID].c) + gl_in[_27].vInputs.c; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/tesc/load-control-point-array-of-struct.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/tesc/load-control-point-array-of-struct.tesc deleted file mode 100644 index fc2cec1c3f..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/tesc/load-control-point-array-of-struct.tesc +++ /dev/null @@ -1,84 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct VertexData -{ - float4x4 a; - spvUnsafeArray b; - float4 c; -}; - -struct main0_out -{ - float4 vOutputs; -}; - -struct main0_in -{ - float4 VertexData_a_0 [[attribute(0)]]; - float4 VertexData_a_1 [[attribute(1)]]; - float4 VertexData_a_2 [[attribute(2)]]; - float4 VertexData_a_3 [[attribute(3)]]; - float4 VertexData_b_0 [[attribute(4)]]; - float4 VertexData_b_1 [[attribute(5)]]; - float4 VertexData_c [[attribute(6)]]; -}; - -kernel void main0(main0_in in [[stage_in]], uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], threadgroup main0_in* gl_in [[threadgroup(0)]]) -{ - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - if (gl_InvocationID < spvIndirectParams[0]) - gl_in[gl_InvocationID] = in; - threadgroup_barrier(mem_flags::mem_threadgroup); - if (gl_InvocationID >= 4) - return; - spvUnsafeArray _19 = spvUnsafeArray({ VertexData{ float4x4(gl_in[0].VertexData_a_0, gl_in[0].VertexData_a_1, gl_in[0].VertexData_a_2, gl_in[0].VertexData_a_3), spvUnsafeArray({ gl_in[0].VertexData_b_0, gl_in[0].VertexData_b_1 }), gl_in[0].VertexData_c }, VertexData{ float4x4(gl_in[1].VertexData_a_0, gl_in[1].VertexData_a_1, gl_in[1].VertexData_a_2, gl_in[1].VertexData_a_3), spvUnsafeArray({ gl_in[1].VertexData_b_0, gl_in[1].VertexData_b_1 }), gl_in[1].VertexData_c }, VertexData{ float4x4(gl_in[2].VertexData_a_0, gl_in[2].VertexData_a_1, gl_in[2].VertexData_a_2, gl_in[2].VertexData_a_3), spvUnsafeArray({ gl_in[2].VertexData_b_0, gl_in[2].VertexData_b_1 }), gl_in[2].VertexData_c }, VertexData{ float4x4(gl_in[3].VertexData_a_0, gl_in[3].VertexData_a_1, gl_in[3].VertexData_a_2, gl_in[3].VertexData_a_3), spvUnsafeArray({ gl_in[3].VertexData_b_0, gl_in[3].VertexData_b_1 }), gl_in[3].VertexData_c }, VertexData{ float4x4(gl_in[4].VertexData_a_0, gl_in[4].VertexData_a_1, gl_in[4].VertexData_a_2, gl_in[4].VertexData_a_3), spvUnsafeArray({ gl_in[4].VertexData_b_0, gl_in[4].VertexData_b_1 }), gl_in[4].VertexData_c }, VertexData{ float4x4(gl_in[5].VertexData_a_0, gl_in[5].VertexData_a_1, gl_in[5].VertexData_a_2, gl_in[5].VertexData_a_3), spvUnsafeArray({ gl_in[5].VertexData_b_0, gl_in[5].VertexData_b_1 }), gl_in[5].VertexData_c }, VertexData{ float4x4(gl_in[6].VertexData_a_0, gl_in[6].VertexData_a_1, gl_in[6].VertexData_a_2, gl_in[6].VertexData_a_3), spvUnsafeArray({ gl_in[6].VertexData_b_0, gl_in[6].VertexData_b_1 }), gl_in[6].VertexData_c }, VertexData{ float4x4(gl_in[7].VertexData_a_0, gl_in[7].VertexData_a_1, gl_in[7].VertexData_a_2, gl_in[7].VertexData_a_3), spvUnsafeArray({ gl_in[7].VertexData_b_0, gl_in[7].VertexData_b_1 }), gl_in[7].VertexData_c }, VertexData{ float4x4(gl_in[8].VertexData_a_0, gl_in[8].VertexData_a_1, gl_in[8].VertexData_a_2, gl_in[8].VertexData_a_3), spvUnsafeArray({ gl_in[8].VertexData_b_0, gl_in[8].VertexData_b_1 }), gl_in[8].VertexData_c }, VertexData{ float4x4(gl_in[9].VertexData_a_0, gl_in[9].VertexData_a_1, gl_in[9].VertexData_a_2, gl_in[9].VertexData_a_3), spvUnsafeArray({ gl_in[9].VertexData_b_0, gl_in[9].VertexData_b_1 }), gl_in[9].VertexData_c }, VertexData{ float4x4(gl_in[10].VertexData_a_0, gl_in[10].VertexData_a_1, gl_in[10].VertexData_a_2, gl_in[10].VertexData_a_3), spvUnsafeArray({ gl_in[10].VertexData_b_0, gl_in[10].VertexData_b_1 }), gl_in[10].VertexData_c }, VertexData{ float4x4(gl_in[11].VertexData_a_0, gl_in[11].VertexData_a_1, gl_in[11].VertexData_a_2, gl_in[11].VertexData_a_3), spvUnsafeArray({ gl_in[11].VertexData_b_0, gl_in[11].VertexData_b_1 }), gl_in[11].VertexData_c }, VertexData{ float4x4(gl_in[12].VertexData_a_0, gl_in[12].VertexData_a_1, gl_in[12].VertexData_a_2, gl_in[12].VertexData_a_3), spvUnsafeArray({ gl_in[12].VertexData_b_0, gl_in[12].VertexData_b_1 }), gl_in[12].VertexData_c }, VertexData{ float4x4(gl_in[13].VertexData_a_0, gl_in[13].VertexData_a_1, gl_in[13].VertexData_a_2, gl_in[13].VertexData_a_3), spvUnsafeArray({ gl_in[13].VertexData_b_0, gl_in[13].VertexData_b_1 }), gl_in[13].VertexData_c }, VertexData{ float4x4(gl_in[14].VertexData_a_0, gl_in[14].VertexData_a_1, gl_in[14].VertexData_a_2, gl_in[14].VertexData_a_3), spvUnsafeArray({ gl_in[14].VertexData_b_0, gl_in[14].VertexData_b_1 }), gl_in[14].VertexData_c }, VertexData{ float4x4(gl_in[15].VertexData_a_0, gl_in[15].VertexData_a_1, gl_in[15].VertexData_a_2, gl_in[15].VertexData_a_3), spvUnsafeArray({ gl_in[15].VertexData_b_0, gl_in[15].VertexData_b_1 }), gl_in[15].VertexData_c }, VertexData{ float4x4(gl_in[16].VertexData_a_0, gl_in[16].VertexData_a_1, gl_in[16].VertexData_a_2, gl_in[16].VertexData_a_3), spvUnsafeArray({ gl_in[16].VertexData_b_0, gl_in[16].VertexData_b_1 }), gl_in[16].VertexData_c }, VertexData{ float4x4(gl_in[17].VertexData_a_0, gl_in[17].VertexData_a_1, gl_in[17].VertexData_a_2, gl_in[17].VertexData_a_3), spvUnsafeArray({ gl_in[17].VertexData_b_0, gl_in[17].VertexData_b_1 }), gl_in[17].VertexData_c }, VertexData{ float4x4(gl_in[18].VertexData_a_0, gl_in[18].VertexData_a_1, gl_in[18].VertexData_a_2, gl_in[18].VertexData_a_3), spvUnsafeArray({ gl_in[18].VertexData_b_0, gl_in[18].VertexData_b_1 }), gl_in[18].VertexData_c }, VertexData{ float4x4(gl_in[19].VertexData_a_0, gl_in[19].VertexData_a_1, gl_in[19].VertexData_a_2, gl_in[19].VertexData_a_3), spvUnsafeArray({ gl_in[19].VertexData_b_0, gl_in[19].VertexData_b_1 }), gl_in[19].VertexData_c }, VertexData{ float4x4(gl_in[20].VertexData_a_0, gl_in[20].VertexData_a_1, gl_in[20].VertexData_a_2, gl_in[20].VertexData_a_3), spvUnsafeArray({ gl_in[20].VertexData_b_0, gl_in[20].VertexData_b_1 }), gl_in[20].VertexData_c }, VertexData{ float4x4(gl_in[21].VertexData_a_0, gl_in[21].VertexData_a_1, gl_in[21].VertexData_a_2, gl_in[21].VertexData_a_3), spvUnsafeArray({ gl_in[21].VertexData_b_0, gl_in[21].VertexData_b_1 }), gl_in[21].VertexData_c }, VertexData{ float4x4(gl_in[22].VertexData_a_0, gl_in[22].VertexData_a_1, gl_in[22].VertexData_a_2, gl_in[22].VertexData_a_3), spvUnsafeArray({ gl_in[22].VertexData_b_0, gl_in[22].VertexData_b_1 }), gl_in[22].VertexData_c }, VertexData{ float4x4(gl_in[23].VertexData_a_0, gl_in[23].VertexData_a_1, gl_in[23].VertexData_a_2, gl_in[23].VertexData_a_3), spvUnsafeArray({ gl_in[23].VertexData_b_0, gl_in[23].VertexData_b_1 }), gl_in[23].VertexData_c }, VertexData{ float4x4(gl_in[24].VertexData_a_0, gl_in[24].VertexData_a_1, gl_in[24].VertexData_a_2, gl_in[24].VertexData_a_3), spvUnsafeArray({ gl_in[24].VertexData_b_0, gl_in[24].VertexData_b_1 }), gl_in[24].VertexData_c }, VertexData{ float4x4(gl_in[25].VertexData_a_0, gl_in[25].VertexData_a_1, gl_in[25].VertexData_a_2, gl_in[25].VertexData_a_3), spvUnsafeArray({ gl_in[25].VertexData_b_0, gl_in[25].VertexData_b_1 }), gl_in[25].VertexData_c }, VertexData{ float4x4(gl_in[26].VertexData_a_0, gl_in[26].VertexData_a_1, gl_in[26].VertexData_a_2, gl_in[26].VertexData_a_3), spvUnsafeArray({ gl_in[26].VertexData_b_0, gl_in[26].VertexData_b_1 }), gl_in[26].VertexData_c }, VertexData{ float4x4(gl_in[27].VertexData_a_0, gl_in[27].VertexData_a_1, gl_in[27].VertexData_a_2, gl_in[27].VertexData_a_3), spvUnsafeArray({ gl_in[27].VertexData_b_0, gl_in[27].VertexData_b_1 }), gl_in[27].VertexData_c }, VertexData{ float4x4(gl_in[28].VertexData_a_0, gl_in[28].VertexData_a_1, gl_in[28].VertexData_a_2, gl_in[28].VertexData_a_3), spvUnsafeArray({ gl_in[28].VertexData_b_0, gl_in[28].VertexData_b_1 }), gl_in[28].VertexData_c }, VertexData{ float4x4(gl_in[29].VertexData_a_0, gl_in[29].VertexData_a_1, gl_in[29].VertexData_a_2, gl_in[29].VertexData_a_3), spvUnsafeArray({ gl_in[29].VertexData_b_0, gl_in[29].VertexData_b_1 }), gl_in[29].VertexData_c }, VertexData{ float4x4(gl_in[30].VertexData_a_0, gl_in[30].VertexData_a_1, gl_in[30].VertexData_a_2, gl_in[30].VertexData_a_3), spvUnsafeArray({ gl_in[30].VertexData_b_0, gl_in[30].VertexData_b_1 }), gl_in[30].VertexData_c }, VertexData{ float4x4(gl_in[31].VertexData_a_0, gl_in[31].VertexData_a_1, gl_in[31].VertexData_a_2, gl_in[31].VertexData_a_3), spvUnsafeArray({ gl_in[31].VertexData_b_0, gl_in[31].VertexData_b_1 }), gl_in[31].VertexData_c } }); - spvUnsafeArray tmp; - tmp = _19; - int _27 = gl_InvocationID ^ 1; - gl_out[gl_InvocationID].vOutputs = ((tmp[gl_InvocationID].a[1] + tmp[gl_InvocationID].b[1]) + tmp[gl_InvocationID].c) + gl_in[_27].VertexData_c; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/tesc/load-control-point-array.multi-patch.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/tesc/load-control-point-array.multi-patch.tesc deleted file mode 100644 index 45baadb6f2..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/tesc/load-control-point-array.multi-patch.tesc +++ /dev/null @@ -1,69 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 vOutputs; -}; - -struct main0_in -{ - float4 vInputs; - ushort2 m_43; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], device main0_in* spvIn [[buffer(22)]]) -{ - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - device main0_in* gl_in = &spvIn[min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1) * spvIndirectParams[0]]; - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - spvUnsafeArray _15 = spvUnsafeArray({ gl_in[0].vInputs, gl_in[1].vInputs, gl_in[2].vInputs, gl_in[3].vInputs, gl_in[4].vInputs, gl_in[5].vInputs, gl_in[6].vInputs, gl_in[7].vInputs, gl_in[8].vInputs, gl_in[9].vInputs, gl_in[10].vInputs, gl_in[11].vInputs, gl_in[12].vInputs, gl_in[13].vInputs, gl_in[14].vInputs, gl_in[15].vInputs, gl_in[16].vInputs, gl_in[17].vInputs, gl_in[18].vInputs, gl_in[19].vInputs, gl_in[20].vInputs, gl_in[21].vInputs, gl_in[22].vInputs, gl_in[23].vInputs, gl_in[24].vInputs, gl_in[25].vInputs, gl_in[26].vInputs, gl_in[27].vInputs, gl_in[28].vInputs, gl_in[29].vInputs, gl_in[30].vInputs, gl_in[31].vInputs }); - spvUnsafeArray tmp; - tmp = _15; - gl_out[gl_InvocationID].vOutputs = tmp[gl_InvocationID]; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/tesc/load-control-point-array.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/tesc/load-control-point-array.tesc deleted file mode 100644 index d04571ae36..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/tesc/load-control-point-array.tesc +++ /dev/null @@ -1,70 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 vOutputs; -}; - -struct main0_in -{ - float4 vInputs [[attribute(0)]]; -}; - -kernel void main0(main0_in in [[stage_in]], uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], threadgroup main0_in* gl_in [[threadgroup(0)]]) -{ - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - if (gl_InvocationID < spvIndirectParams[0]) - gl_in[gl_InvocationID] = in; - threadgroup_barrier(mem_flags::mem_threadgroup); - if (gl_InvocationID >= 4) - return; - spvUnsafeArray _15 = spvUnsafeArray({ gl_in[0].vInputs, gl_in[1].vInputs, gl_in[2].vInputs, gl_in[3].vInputs, gl_in[4].vInputs, gl_in[5].vInputs, gl_in[6].vInputs, gl_in[7].vInputs, gl_in[8].vInputs, gl_in[9].vInputs, gl_in[10].vInputs, gl_in[11].vInputs, gl_in[12].vInputs, gl_in[13].vInputs, gl_in[14].vInputs, gl_in[15].vInputs, gl_in[16].vInputs, gl_in[17].vInputs, gl_in[18].vInputs, gl_in[19].vInputs, gl_in[20].vInputs, gl_in[21].vInputs, gl_in[22].vInputs, gl_in[23].vInputs, gl_in[24].vInputs, gl_in[25].vInputs, gl_in[26].vInputs, gl_in[27].vInputs, gl_in[28].vInputs, gl_in[29].vInputs, gl_in[30].vInputs, gl_in[31].vInputs }); - spvUnsafeArray tmp; - tmp = _15; - gl_out[gl_InvocationID].vOutputs = tmp[gl_InvocationID]; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/tesc/matrix-output.multi-patch.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/tesc/matrix-output.multi-patch.tesc deleted file mode 100644 index 28fff01555..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/tesc/matrix-output.multi-patch.tesc +++ /dev/null @@ -1,41 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float in_te_attr; - float4x3 in_te_data0; - float4x3 in_te_data1; -}; - -struct main0_in -{ - float3 in_tc_attr; - ushort2 m_104; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], device main0_in* spvIn [[buffer(22)]]) -{ - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 3]; - device main0_in* gl_in = &spvIn[min(gl_GlobalInvocationID.x / 3, spvIndirectParams[1] - 1) * spvIndirectParams[0]]; - uint gl_InvocationID = gl_GlobalInvocationID.x % 3; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 3, spvIndirectParams[1] - 1); - float _15 = float(gl_InvocationID); - float3 _18 = float3(_15, 0.0, 0.0); - float3 _19 = float3(0.0, _15, 0.0); - float3 _20 = float3(0.0, 0.0, _15); - gl_out[gl_InvocationID].in_te_data0 = float4x3(_18, _19, _20, float3(0.0)); - threadgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup); - int _42 = (gl_InvocationID + 1) % 3; - gl_out[gl_InvocationID].in_te_data1 = float4x3(_18 + gl_out[_42].in_te_data0[0], _19 + gl_out[_42].in_te_data0[1], _20 + gl_out[_42].in_te_data0[2], gl_out[_42].in_te_data0[3]); - gl_out[gl_InvocationID].in_te_attr = gl_in[gl_InvocationID].in_tc_attr.x; - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[0] = half(1.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[1] = half(1.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(1.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(1.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(1.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3] = half(1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/tesc/reload-tess-level.multi-patch.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/tesc/reload-tess-level.multi-patch.tesc deleted file mode 100644 index ae33de517a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/tesc/reload-tess-level.multi-patch.tesc +++ /dev/null @@ -1,35 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position; -}; - -struct main0_in -{ - uint3 m_82; - ushort2 m_86; - float4 gl_Position; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], device main0_in* spvIn [[buffer(22)]]) -{ - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - device main0_in* gl_in = &spvIn[min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1) * spvIndirectParams[0]]; - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - if (gl_InvocationID == 0) - { - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(2.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(3.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(4.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3] = half(5.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[0] = half(mix(float(spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0]), float(spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3]), 0.5)); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[1] = half(mix(float(spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2]), float(spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1]), 0.5)); - } - gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/tesc/reload-tess-level.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/tesc/reload-tess-level.tesc deleted file mode 100644 index eafc50607d..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/tesc/reload-tess-level.tesc +++ /dev/null @@ -1,35 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position; -}; - -struct main0_in -{ - float4 gl_Position [[attribute(0)]]; -}; - -kernel void main0(main0_in in [[stage_in]], uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], threadgroup main0_in* gl_in [[threadgroup(0)]]) -{ - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - if (gl_InvocationID < spvIndirectParams[0]) - gl_in[gl_InvocationID] = in; - threadgroup_barrier(mem_flags::mem_threadgroup); - if (gl_InvocationID >= 4) - return; - if (gl_InvocationID == 0) - { - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(2.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(3.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(4.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3] = half(5.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[0] = half(mix(float(spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0]), float(spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3]), 0.5)); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[1] = half(mix(float(spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2]), float(spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1]), 0.5)); - } - gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/tesc/struct-output.multi-patch.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/tesc/struct-output.multi-patch.tesc deleted file mode 100644 index 6c52654615..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/tesc/struct-output.multi-patch.tesc +++ /dev/null @@ -1,48 +0,0 @@ -#include -#include - -using namespace metal; - -struct te_data -{ - float a; - float b; - uint c; -}; - -struct main0_out -{ - float in_te_attr; - te_data in_te_data0; - te_data in_te_data1; -}; - -struct main0_in -{ - float3 in_tc_attr; - ushort2 m_119; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], device main0_in* spvIn [[buffer(22)]]) -{ - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 3]; - device main0_in* gl_in = &spvIn[min(gl_GlobalInvocationID.x / 3, spvIndirectParams[1] - 1) * spvIndirectParams[0]]; - uint gl_InvocationID = gl_GlobalInvocationID.x % 3; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 3, spvIndirectParams[1] - 1); - float _15 = float(gl_InvocationID); - int _18 = gl_InvocationID + 1; - float _19 = float(_18); - uint _21 = uint(gl_InvocationID); - gl_out[gl_InvocationID].in_te_data0 = te_data{ _15, _19, _21 }; - threadgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup); - int _38 = _18 % 3; - gl_out[gl_InvocationID].in_te_data1 = te_data{ _15 + gl_out[_38].in_te_data0.a, _19 + gl_out[_38].in_te_data0.b, _21 + gl_out[_38].in_te_data0.c }; - gl_out[gl_InvocationID].in_te_attr = gl_in[gl_InvocationID].in_tc_attr.x; - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[0] = half(1.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[1] = half(1.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(1.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(1.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(1.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3] = half(1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/tesc/water_tess.multi-patch.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/tesc/water_tess.multi-patch.tesc deleted file mode 100644 index 99e094c95a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/tesc/water_tess.multi-patch.tesc +++ /dev/null @@ -1,91 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - float4 uScale; - float3 uCamPos; - float2 uPatchSize; - float2 uMaxTessLevel; - float uDistanceMod; - float4 uFrustum[6]; -}; - -struct main0_patchOut -{ - float2 vOutPatchPosBase; - float4 vPatchLods; -}; - -struct main0_in -{ - float3 vPatchPosBase; - ushort2 m_996; -}; - -kernel void main0(constant UBO& _41 [[buffer(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], device main0_in* spvIn [[buffer(22)]]) -{ - device main0_patchOut& patchOut = spvPatchOut[gl_GlobalInvocationID.x / 1]; - device main0_in* gl_in = &spvIn[min(gl_GlobalInvocationID.x / 1, spvIndirectParams[1] - 1) * spvIndirectParams[0]]; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 1, spvIndirectParams[1] - 1); - float2 _431 = (gl_in[0].vPatchPosBase.xy - float2(10.0)) * _41.uScale.xy; - float2 _441 = ((gl_in[0].vPatchPosBase.xy + _41.uPatchSize) + float2(10.0)) * _41.uScale.xy; - float3 _446 = float3(_431.x, -10.0, _431.y); - float3 _451 = float3(_441.x, 10.0, _441.y); - float4 _467 = float4((_446 + _451) * 0.5, 1.0); - float3 _514 = float3(length(_451 - _446) * (-0.5)); - bool _516 = any(float3(dot(_41.uFrustum[0], _467), dot(_41.uFrustum[1], _467), dot(_41.uFrustum[2], _467)) <= _514); - bool _526; - if (!_516) - { - _526 = any(float3(dot(_41.uFrustum[3], _467), dot(_41.uFrustum[4], _467), dot(_41.uFrustum[5], _467)) <= _514); - } - else - { - _526 = _516; - } - if (!(!_526)) - { - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(-1.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(-1.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(-1.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3] = half(-1.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[0] = half(-1.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[1] = half(-1.0); - } - else - { - patchOut.vOutPatchPosBase = gl_in[0].vPatchPosBase.xy; - float2 _681 = (gl_in[0].vPatchPosBase.xy + (float2(-0.5) * _41.uPatchSize)) * _41.uScale.xy; - float2 _710 = (gl_in[0].vPatchPosBase.xy + (float2(0.5, -0.5) * _41.uPatchSize)) * _41.uScale.xy; - float _729 = fast::clamp(log2((length(_41.uCamPos - float3(_710.x, 0.0, _710.y)) + 9.9999997473787516355514526367188e-05) * _41.uDistanceMod), 0.0, _41.uMaxTessLevel.x); - float2 _739 = (gl_in[0].vPatchPosBase.xy + (float2(1.5, -0.5) * _41.uPatchSize)) * _41.uScale.xy; - float2 _768 = (gl_in[0].vPatchPosBase.xy + (float2(-0.5, 0.5) * _41.uPatchSize)) * _41.uScale.xy; - float _787 = fast::clamp(log2((length(_41.uCamPos - float3(_768.x, 0.0, _768.y)) + 9.9999997473787516355514526367188e-05) * _41.uDistanceMod), 0.0, _41.uMaxTessLevel.x); - float2 _797 = (gl_in[0].vPatchPosBase.xy + (float2(0.5) * _41.uPatchSize)) * _41.uScale.xy; - float _816 = fast::clamp(log2((length(_41.uCamPos - float3(_797.x, 0.0, _797.y)) + 9.9999997473787516355514526367188e-05) * _41.uDistanceMod), 0.0, _41.uMaxTessLevel.x); - float2 _826 = (gl_in[0].vPatchPosBase.xy + (float2(1.5, 0.5) * _41.uPatchSize)) * _41.uScale.xy; - float _845 = fast::clamp(log2((length(_41.uCamPos - float3(_826.x, 0.0, _826.y)) + 9.9999997473787516355514526367188e-05) * _41.uDistanceMod), 0.0, _41.uMaxTessLevel.x); - float2 _855 = (gl_in[0].vPatchPosBase.xy + (float2(-0.5, 1.5) * _41.uPatchSize)) * _41.uScale.xy; - float2 _884 = (gl_in[0].vPatchPosBase.xy + (float2(0.5, 1.5) * _41.uPatchSize)) * _41.uScale.xy; - float _903 = fast::clamp(log2((length(_41.uCamPos - float3(_884.x, 0.0, _884.y)) + 9.9999997473787516355514526367188e-05) * _41.uDistanceMod), 0.0, _41.uMaxTessLevel.x); - float2 _913 = (gl_in[0].vPatchPosBase.xy + (float2(1.5) * _41.uPatchSize)) * _41.uScale.xy; - float _614 = dot(float4(_787, _816, fast::clamp(log2((length(_41.uCamPos - float3(_855.x, 0.0, _855.y)) + 9.9999997473787516355514526367188e-05) * _41.uDistanceMod), 0.0, _41.uMaxTessLevel.x), _903), float4(0.25)); - float _620 = dot(float4(fast::clamp(log2((length(_41.uCamPos - float3(_681.x, 0.0, _681.y)) + 9.9999997473787516355514526367188e-05) * _41.uDistanceMod), 0.0, _41.uMaxTessLevel.x), _729, _787, _816), float4(0.25)); - float _626 = dot(float4(_729, fast::clamp(log2((length(_41.uCamPos - float3(_739.x, 0.0, _739.y)) + 9.9999997473787516355514526367188e-05) * _41.uDistanceMod), 0.0, _41.uMaxTessLevel.x), _816, _845), float4(0.25)); - float _632 = dot(float4(_816, _845, _903, fast::clamp(log2((length(_41.uCamPos - float3(_913.x, 0.0, _913.y)) + 9.9999997473787516355514526367188e-05) * _41.uDistanceMod), 0.0, _41.uMaxTessLevel.x)), float4(0.25)); - float4 _633 = float4(_614, _620, _626, _632); - patchOut.vPatchLods = _633; - float4 _940 = exp2(-fast::min(_633, _633.yzwx)) * _41.uMaxTessLevel.y; - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(_940.x); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(_940.y); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(_940.z); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3] = half(_940.w); - float _948 = _41.uMaxTessLevel.y * exp2(-fast::min(fast::min(fast::min(_614, _620), fast::min(_626, _632)), _816)); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[0] = half(_948); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[1] = half(_948); - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/tesc/water_tess.tesc b/third_party/spirv-cross/reference/opt/shaders-msl/tesc/water_tess.tesc deleted file mode 100644 index 18484190bf..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/tesc/water_tess.tesc +++ /dev/null @@ -1,93 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - float4 uScale; - float3 uCamPos; - float2 uPatchSize; - float2 uMaxTessLevel; - float uDistanceMod; - float4 uFrustum[6]; -}; - -struct main0_patchOut -{ - float2 vOutPatchPosBase; - float4 vPatchLods; -}; - -struct main0_in -{ - float2 vPatchPosBase [[attribute(0)]]; -}; - -kernel void main0(main0_in in [[stage_in]], constant UBO& _41 [[buffer(0)]], uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], threadgroup main0_in* gl_in [[threadgroup(0)]]) -{ - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - if (gl_InvocationID < spvIndirectParams[0]) - gl_in[gl_InvocationID] = in; - threadgroup_barrier(mem_flags::mem_threadgroup); - if (gl_InvocationID >= 1) - return; - float2 _431 = (gl_in[0].vPatchPosBase - float2(10.0)) * _41.uScale.xy; - float2 _441 = ((gl_in[0].vPatchPosBase + _41.uPatchSize) + float2(10.0)) * _41.uScale.xy; - float3 _446 = float3(_431.x, -10.0, _431.y); - float3 _451 = float3(_441.x, 10.0, _441.y); - float4 _467 = float4((_446 + _451) * 0.5, 1.0); - float3 _514 = float3(length(_451 - _446) * (-0.5)); - bool _516 = any(float3(dot(_41.uFrustum[0], _467), dot(_41.uFrustum[1], _467), dot(_41.uFrustum[2], _467)) <= _514); - bool _526; - if (!_516) - { - _526 = any(float3(dot(_41.uFrustum[3], _467), dot(_41.uFrustum[4], _467), dot(_41.uFrustum[5], _467)) <= _514); - } - else - { - _526 = _516; - } - if (!(!_526)) - { - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(-1.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(-1.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(-1.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3] = half(-1.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[0] = half(-1.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[1] = half(-1.0); - } - else - { - patchOut.vOutPatchPosBase = gl_in[0].vPatchPosBase; - float2 _681 = (gl_in[0].vPatchPosBase + (float2(-0.5) * _41.uPatchSize)) * _41.uScale.xy; - float2 _710 = (gl_in[0].vPatchPosBase + (float2(0.5, -0.5) * _41.uPatchSize)) * _41.uScale.xy; - float _729 = fast::clamp(log2((length(_41.uCamPos - float3(_710.x, 0.0, _710.y)) + 9.9999997473787516355514526367188e-05) * _41.uDistanceMod), 0.0, _41.uMaxTessLevel.x); - float2 _739 = (gl_in[0].vPatchPosBase + (float2(1.5, -0.5) * _41.uPatchSize)) * _41.uScale.xy; - float2 _768 = (gl_in[0].vPatchPosBase + (float2(-0.5, 0.5) * _41.uPatchSize)) * _41.uScale.xy; - float _787 = fast::clamp(log2((length(_41.uCamPos - float3(_768.x, 0.0, _768.y)) + 9.9999997473787516355514526367188e-05) * _41.uDistanceMod), 0.0, _41.uMaxTessLevel.x); - float2 _797 = (gl_in[0].vPatchPosBase + (float2(0.5) * _41.uPatchSize)) * _41.uScale.xy; - float _816 = fast::clamp(log2((length(_41.uCamPos - float3(_797.x, 0.0, _797.y)) + 9.9999997473787516355514526367188e-05) * _41.uDistanceMod), 0.0, _41.uMaxTessLevel.x); - float2 _826 = (gl_in[0].vPatchPosBase + (float2(1.5, 0.5) * _41.uPatchSize)) * _41.uScale.xy; - float _845 = fast::clamp(log2((length(_41.uCamPos - float3(_826.x, 0.0, _826.y)) + 9.9999997473787516355514526367188e-05) * _41.uDistanceMod), 0.0, _41.uMaxTessLevel.x); - float2 _855 = (gl_in[0].vPatchPosBase + (float2(-0.5, 1.5) * _41.uPatchSize)) * _41.uScale.xy; - float2 _884 = (gl_in[0].vPatchPosBase + (float2(0.5, 1.5) * _41.uPatchSize)) * _41.uScale.xy; - float _903 = fast::clamp(log2((length(_41.uCamPos - float3(_884.x, 0.0, _884.y)) + 9.9999997473787516355514526367188e-05) * _41.uDistanceMod), 0.0, _41.uMaxTessLevel.x); - float2 _913 = (gl_in[0].vPatchPosBase + (float2(1.5) * _41.uPatchSize)) * _41.uScale.xy; - float _614 = dot(float4(_787, _816, fast::clamp(log2((length(_41.uCamPos - float3(_855.x, 0.0, _855.y)) + 9.9999997473787516355514526367188e-05) * _41.uDistanceMod), 0.0, _41.uMaxTessLevel.x), _903), float4(0.25)); - float _620 = dot(float4(fast::clamp(log2((length(_41.uCamPos - float3(_681.x, 0.0, _681.y)) + 9.9999997473787516355514526367188e-05) * _41.uDistanceMod), 0.0, _41.uMaxTessLevel.x), _729, _787, _816), float4(0.25)); - float _626 = dot(float4(_729, fast::clamp(log2((length(_41.uCamPos - float3(_739.x, 0.0, _739.y)) + 9.9999997473787516355514526367188e-05) * _41.uDistanceMod), 0.0, _41.uMaxTessLevel.x), _816, _845), float4(0.25)); - float _632 = dot(float4(_816, _845, _903, fast::clamp(log2((length(_41.uCamPos - float3(_913.x, 0.0, _913.y)) + 9.9999997473787516355514526367188e-05) * _41.uDistanceMod), 0.0, _41.uMaxTessLevel.x)), float4(0.25)); - float4 _633 = float4(_614, _620, _626, _632); - patchOut.vPatchLods = _633; - float4 _940 = exp2(-fast::min(_633, _633.yzwx)) * _41.uMaxTessLevel.y; - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(_940.x); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(_940.y); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(_940.z); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3] = half(_940.w); - float _948 = _41.uMaxTessLevel.y * exp2(-fast::min(fast::min(fast::min(_614, _620), fast::min(_626, _632)), _816)); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[0] = half(_948); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[1] = half(_948); - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/tese/input-array.tese b/third_party/spirv-cross/reference/opt/shaders-msl/tese/input-array.tese deleted file mode 100644 index 97a83b4eed..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/tese/input-array.tese +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 Floats [[attribute(0)]]; - float4 Floats2 [[attribute(2)]]; -}; - -struct main0_patchIn -{ - patch_control_point gl_in; -}; - -[[ patch(quad, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]], float2 gl_TessCoord [[position_in_patch]]) -{ - main0_out out = {}; - out.gl_Position = (patchIn.gl_in[0].Floats * gl_TessCoord.x) + (patchIn.gl_in[1].Floats2 * gl_TessCoord.y); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/tese/input-types.tese b/third_party/spirv-cross/reference/opt/shaders-msl/tese/input-types.tese deleted file mode 100644 index 0ce04ca369..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/tese/input-types.tese +++ /dev/null @@ -1,76 +0,0 @@ -#include -#include - -using namespace metal; - -struct Block -{ - float4 a; - float4 b; -}; - -struct PatchBlock -{ - float4 a; - float4 b; -}; - -struct Foo -{ - float4 a; - float4 b; -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 vColor [[attribute(0)]]; - float4 Block_a [[attribute(4)]]; - float4 Block_b [[attribute(5)]]; - float4 Foo_a [[attribute(14)]]; - float4 Foo_b [[attribute(15)]]; -}; - -struct main0_patchIn -{ - float4 vColors [[attribute(1)]]; - float4 PatchBlock_a [[attribute(6)]]; - float4 PatchBlock_b [[attribute(7)]]; - float4 Foo_a [[attribute(8)]]; - float4 Foo_b [[attribute(9)]]; - patch_control_point gl_in; -}; - -[[ patch(quad, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]]) -{ - main0_out out = {}; - PatchBlock patch_block = {}; - Foo vFoo = {}; - patch_block.a = patchIn.PatchBlock_a; - patch_block.b = patchIn.PatchBlock_b; - vFoo.a = patchIn.Foo_a; - vFoo.b = patchIn.Foo_b; - out.gl_Position = patchIn.gl_in[0].Block_a; - out.gl_Position += patchIn.gl_in[0].Block_b; - out.gl_Position += patchIn.gl_in[1].Block_a; - out.gl_Position += patchIn.gl_in[1].Block_b; - out.gl_Position += patch_block.a; - out.gl_Position += patch_block.b; - out.gl_Position += patchIn.gl_in[0].vColor; - out.gl_Position += patchIn.gl_in[1].vColor; - out.gl_Position += patchIn.vColors; - out.gl_Position += vFoo.a; - out.gl_Position += vFoo.b; - Foo _204 = Foo{ patchIn.gl_in[0].Foo_a, patchIn.gl_in[0].Foo_b }; - out.gl_Position += _204.a; - out.gl_Position += _204.b; - Foo _218 = Foo{ patchIn.gl_in[1].Foo_a, patchIn.gl_in[1].Foo_b }; - out.gl_Position += _218.a; - out.gl_Position += _218.b; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/tese/load-control-point-array-of-matrix.tese b/third_party/spirv-cross/reference/opt/shaders-msl/tese/load-control-point-array-of-matrix.tese deleted file mode 100644 index e4bbeb7ede..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/tese/load-control-point-array-of-matrix.tese +++ /dev/null @@ -1,85 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 vInputs_0 [[attribute(0)]]; - float4 vInputs_1 [[attribute(1)]]; - float4 vInputs_2 [[attribute(2)]]; - float4 vInputs_3 [[attribute(3)]]; -}; - -struct main0_patchIn -{ - float4 vBoo_0 [[attribute(4)]]; - float4 vBoo_1 [[attribute(5)]]; - float4 vBoo_2 [[attribute(6)]]; - float4 vBoo_3 [[attribute(7)]]; - int vIndex [[attribute(8)]]; - patch_control_point gl_in; -}; - -[[ patch(quad, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]]) -{ - main0_out out = {}; - spvUnsafeArray vBoo = {}; - vBoo[0] = patchIn.vBoo_0; - vBoo[1] = patchIn.vBoo_1; - vBoo[2] = patchIn.vBoo_2; - vBoo[3] = patchIn.vBoo_3; - float4x4 _57 = float4x4(patchIn.gl_in[0u].vInputs_0, patchIn.gl_in[0u].vInputs_1, patchIn.gl_in[0u].vInputs_2, patchIn.gl_in[0u].vInputs_3); - float4x4 _59 = float4x4(patchIn.gl_in[1u].vInputs_0, patchIn.gl_in[1u].vInputs_1, patchIn.gl_in[1u].vInputs_2, patchIn.gl_in[1u].vInputs_3); - float4x4 _47 = _57; - float4x4 _48 = _59; - out.gl_Position = (_47[patchIn.vIndex] + _48[patchIn.vIndex]) + vBoo[patchIn.vIndex]; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/tese/load-control-point-array.tese b/third_party/spirv-cross/reference/opt/shaders-msl/tese/load-control-point-array.tese deleted file mode 100644 index 54d7419f5a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/tese/load-control-point-array.tese +++ /dev/null @@ -1,78 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 vInputs [[attribute(0)]]; -}; - -struct main0_patchIn -{ - float4 vBoo_0 [[attribute(1)]]; - float4 vBoo_1 [[attribute(2)]]; - float4 vBoo_2 [[attribute(3)]]; - float4 vBoo_3 [[attribute(4)]]; - int vIndex [[attribute(5)]]; - patch_control_point gl_in; -}; - -[[ patch(quad, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]]) -{ - main0_out out = {}; - spvUnsafeArray vBoo = {}; - vBoo[0] = patchIn.vBoo_0; - vBoo[1] = patchIn.vBoo_1; - vBoo[2] = patchIn.vBoo_2; - vBoo[3] = patchIn.vBoo_3; - out.gl_Position = (patchIn.gl_in[0u].vInputs + patchIn.gl_in[1u].vInputs) + vBoo[patchIn.vIndex]; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/tese/quad.domain.tese b/third_party/spirv-cross/reference/opt/shaders-msl/tese/quad.domain.tese deleted file mode 100644 index 9dadebc4e4..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/tese/quad.domain.tese +++ /dev/null @@ -1,73 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_patchIn -{ - float4 gl_TessLevelOuter [[attribute(0)]]; - float2 gl_TessLevelInner [[attribute(1)]]; -}; - -[[ patch(quad, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]], float2 gl_TessCoord [[position_in_patch]]) -{ - main0_out out = {}; - spvUnsafeArray gl_TessLevelInner = {}; - spvUnsafeArray gl_TessLevelOuter = {}; - gl_TessLevelInner[0] = patchIn.gl_TessLevelInner.x; - gl_TessLevelInner[1] = patchIn.gl_TessLevelInner.y; - gl_TessLevelOuter[0] = patchIn.gl_TessLevelOuter.x; - gl_TessLevelOuter[1] = patchIn.gl_TessLevelOuter.y; - gl_TessLevelOuter[2] = patchIn.gl_TessLevelOuter.z; - gl_TessLevelOuter[3] = patchIn.gl_TessLevelOuter.w; - gl_TessCoord.y = 1.0 - gl_TessCoord.y; - out.gl_Position = float4(((gl_TessCoord.x * gl_TessLevelInner[0]) * gl_TessLevelOuter[0]) + (((1.0 - gl_TessCoord.x) * gl_TessLevelInner[0]) * gl_TessLevelOuter[2]), ((gl_TessCoord.y * gl_TessLevelInner[1]) * gl_TessLevelOuter[3]) + (((1.0 - gl_TessCoord.y) * gl_TessLevelInner[1]) * gl_TessLevelOuter[1]), 0.0, 1.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/tese/quad.tese b/third_party/spirv-cross/reference/opt/shaders-msl/tese/quad.tese deleted file mode 100644 index 99803754d8..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/tese/quad.tese +++ /dev/null @@ -1,72 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_patchIn -{ - float4 gl_TessLevelOuter [[attribute(0)]]; - float2 gl_TessLevelInner [[attribute(1)]]; -}; - -[[ patch(quad, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]], float2 gl_TessCoord [[position_in_patch]]) -{ - main0_out out = {}; - spvUnsafeArray gl_TessLevelInner = {}; - spvUnsafeArray gl_TessLevelOuter = {}; - gl_TessLevelInner[0] = patchIn.gl_TessLevelInner.x; - gl_TessLevelInner[1] = patchIn.gl_TessLevelInner.y; - gl_TessLevelOuter[0] = patchIn.gl_TessLevelOuter.x; - gl_TessLevelOuter[1] = patchIn.gl_TessLevelOuter.y; - gl_TessLevelOuter[2] = patchIn.gl_TessLevelOuter.z; - gl_TessLevelOuter[3] = patchIn.gl_TessLevelOuter.w; - out.gl_Position = float4(((gl_TessCoord.x * gl_TessLevelInner[0]) * gl_TessLevelOuter[0]) + (((1.0 - gl_TessCoord.x) * gl_TessLevelInner[0]) * gl_TessLevelOuter[2]), ((gl_TessCoord.y * gl_TessLevelInner[1]) * gl_TessLevelOuter[1]) + (((1.0 - gl_TessCoord.y) * gl_TessLevelInner[1]) * gl_TessLevelOuter[3]), 0.0, 1.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/tese/read-tess-level-in-func-quad.msl2.tese b/third_party/spirv-cross/reference/opt/shaders-msl/tese/read-tess-level-in-func-quad.msl2.tese deleted file mode 100644 index 251cb2fa43..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/tese/read-tess-level-in-func-quad.msl2.tese +++ /dev/null @@ -1,72 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_patchIn -{ - float4 gl_TessLevelOuter [[attribute(0)]]; - float2 gl_TessLevelInner [[attribute(1)]]; -}; - -[[ patch(quad, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]]) -{ - main0_out out = {}; - spvUnsafeArray gl_TessLevelOuter = {}; - spvUnsafeArray gl_TessLevelInner = {}; - gl_TessLevelOuter[0] = patchIn.gl_TessLevelOuter.x; - gl_TessLevelOuter[1] = patchIn.gl_TessLevelOuter.y; - gl_TessLevelOuter[2] = patchIn.gl_TessLevelOuter.z; - gl_TessLevelOuter[3] = patchIn.gl_TessLevelOuter.w; - gl_TessLevelInner[0] = patchIn.gl_TessLevelInner.x; - gl_TessLevelInner[1] = patchIn.gl_TessLevelInner.y; - out.gl_Position = float4(gl_TessLevelOuter[0], gl_TessLevelOuter[1], gl_TessLevelOuter[2], gl_TessLevelOuter[3]) + float2(gl_TessLevelInner[0], gl_TessLevelInner[1]).xyxy; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/tese/read-tess-level-in-func.msl2.tese b/third_party/spirv-cross/reference/opt/shaders-msl/tese/read-tess-level-in-func.msl2.tese deleted file mode 100644 index bb2e1e59d3..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/tese/read-tess-level-in-func.msl2.tese +++ /dev/null @@ -1,69 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_patchIn -{ - float4 gl_TessLevel [[attribute(0)]]; -}; - -[[ patch(triangle, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]]) -{ - main0_out out = {}; - spvUnsafeArray gl_TessLevelOuter = {}; - spvUnsafeArray gl_TessLevelInner = {}; - gl_TessLevelOuter[0] = patchIn.gl_TessLevel.x; - gl_TessLevelOuter[1] = patchIn.gl_TessLevel.y; - gl_TessLevelOuter[2] = patchIn.gl_TessLevel.z; - gl_TessLevelInner[0] = patchIn.gl_TessLevel.w; - out.gl_Position = float4(gl_TessLevelOuter[0], gl_TessLevelOuter[1], gl_TessLevelOuter[2], gl_TessLevelOuter[3]) + float2(gl_TessLevelInner[0], gl_TessLevelInner[1]).xyxy; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/tese/set-from-function.tese b/third_party/spirv-cross/reference/opt/shaders-msl/tese/set-from-function.tese deleted file mode 100644 index 6dcdbe1938..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/tese/set-from-function.tese +++ /dev/null @@ -1,55 +0,0 @@ -#include -#include - -using namespace metal; - -struct Block -{ - float4 a; - float4 b; -}; - -struct Foo -{ - float4 a; - float4 b; -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 vColor [[attribute(0)]]; - float4 Block_a [[attribute(2)]]; - float4 Block_b [[attribute(3)]]; -}; - -struct main0_patchIn -{ - float4 vColors [[attribute(1)]]; - float4 Foo_a [[attribute(4)]]; - float4 Foo_b [[attribute(5)]]; - patch_control_point gl_in; -}; - -[[ patch(quad, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]]) -{ - main0_out out = {}; - Foo vFoo = {}; - vFoo.a = patchIn.Foo_a; - vFoo.b = patchIn.Foo_b; - out.gl_Position = patchIn.gl_in[0].Block_a; - out.gl_Position += patchIn.gl_in[0].Block_b; - out.gl_Position += patchIn.gl_in[1].Block_a; - out.gl_Position += patchIn.gl_in[1].Block_b; - out.gl_Position += patchIn.gl_in[0].vColor; - out.gl_Position += patchIn.gl_in[1].vColor; - out.gl_Position += patchIn.vColors; - out.gl_Position += vFoo.a; - out.gl_Position += vFoo.b; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/tese/triangle-tess-level.tese b/third_party/spirv-cross/reference/opt/shaders-msl/tese/triangle-tess-level.tese deleted file mode 100644 index 6930e1479d..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/tese/triangle-tess-level.tese +++ /dev/null @@ -1,69 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_patchIn -{ - float4 gl_TessLevel [[attribute(0)]]; -}; - -[[ patch(triangle, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]], float3 gl_TessCoord [[position_in_patch]]) -{ - main0_out out = {}; - spvUnsafeArray gl_TessLevelInner = {}; - spvUnsafeArray gl_TessLevelOuter = {}; - gl_TessLevelInner[0] = patchIn.gl_TessLevel.w; - gl_TessLevelOuter[0] = patchIn.gl_TessLevel.x; - gl_TessLevelOuter[1] = patchIn.gl_TessLevel.y; - gl_TessLevelOuter[2] = patchIn.gl_TessLevel.z; - out.gl_Position = float4((gl_TessCoord.x * gl_TessLevelInner[0]) * gl_TessLevelOuter[0], (gl_TessCoord.y * gl_TessLevelInner[0]) * gl_TessLevelOuter[1], (gl_TessCoord.z * gl_TessLevelInner[0]) * gl_TessLevelOuter[2], 1.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/tese/triangle.tese b/third_party/spirv-cross/reference/opt/shaders-msl/tese/triangle.tese deleted file mode 100644 index 12715be198..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/tese/triangle.tese +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -[[ patch(triangle, 0) ]] vertex main0_out main0() -{ - main0_out out = {}; - out.gl_Position = float4(1.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/tese/water_tess.tese b/third_party/spirv-cross/reference/opt/shaders-msl/tese/water_tess.tese deleted file mode 100644 index df539ebbd4..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/tese/water_tess.tese +++ /dev/null @@ -1,45 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - float4x4 uMVP; - float4 uScale; - float2 uInvScale; - float3 uCamPos; - float2 uPatchSize; - float2 uInvHeightmapSize; -}; - -struct main0_out -{ - float3 vWorld [[user(locn0)]]; - float4 vGradNormalTex [[user(locn1)]]; - float4 gl_Position [[position]]; -}; - -struct main0_patchIn -{ - float2 vOutPatchPosBase [[attribute(0)]]; - float4 vPatchLods [[attribute(1)]]; -}; - -[[ patch(quad, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]], constant UBO& _31 [[buffer(0)]], texture2d uHeightmapDisplacement [[texture(0)]], sampler uHeightmapDisplacementSmplr [[sampler(0)]], float2 gl_TessCoord [[position_in_patch]]) -{ - main0_out out = {}; - float2 _202 = patchIn.vOutPatchPosBase + (float3(gl_TessCoord, 0).xy * _31.uPatchSize); - float2 _216 = mix(patchIn.vPatchLods.yx, patchIn.vPatchLods.zw, float2(float3(gl_TessCoord, 0).x)); - float _223 = mix(_216.x, _216.y, float3(gl_TessCoord, 0).y); - float _225 = floor(_223); - float2 _125 = _202 * _31.uInvHeightmapSize; - float2 _141 = _31.uInvHeightmapSize * exp2(_225); - out.vGradNormalTex = float4(_125 + (_31.uInvHeightmapSize * 0.5), _125 * _31.uScale.zw); - float3 _256 = mix(uHeightmapDisplacement.sample(uHeightmapDisplacementSmplr, (_125 + (_141 * 0.5)), level(_225)).xyz, uHeightmapDisplacement.sample(uHeightmapDisplacementSmplr, (_125 + (_141 * 1.0)), level(_225 + 1.0)).xyz, float3(_223 - _225)); - float2 _171 = (_202 * _31.uScale.xy) + _256.yz; - out.vWorld = float3(_171.x, _256.x, _171.y); - out.gl_Position = _31.uMVP * float4(out.vWorld, 1.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/array-component-io.for-tess.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/array-component-io.for-tess.vert deleted file mode 100644 index 24958eb50d..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/array-component-io.for-tess.vert +++ /dev/null @@ -1,98 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 m_location_0; - float4 m_location_1; - float4 m_location_2; - float4 gl_Position; -}; - -struct main0_in -{ - float4 m_location_0 [[attribute(0)]]; - float4 m_location_1 [[attribute(1)]]; - float4 m_location_2 [[attribute(2)]]; - float4 Pos [[attribute(4)]]; -}; - -kernel void main0(main0_in in [[stage_in]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint3 spvStageInputSize [[grid_size]], device main0_out* spvOut [[buffer(28)]]) -{ - spvUnsafeArray A = {}; - spvUnsafeArray B = {}; - spvUnsafeArray C = {}; - float D = {}; - spvUnsafeArray InA = {}; - spvUnsafeArray InB = {}; - spvUnsafeArray InC = {}; - float InD = {}; - device main0_out& out = spvOut[gl_GlobalInvocationID.y * spvStageInputSize.x + gl_GlobalInvocationID.x]; - InA[0] = in.m_location_1.x; - InA[1] = in.m_location_2.x; - InB[0] = in.m_location_1.zw; - InB[1] = in.m_location_2.zw; - InC[0] = in.m_location_0.y; - InC[1] = in.m_location_1.y; - InC[2] = in.m_location_2.y; - InD = in.m_location_0.w; - if (any(gl_GlobalInvocationID >= spvStageInputSize)) - return; - out.gl_Position = in.Pos; - A = InA; - B = InB; - C = InC; - D = InD; - out.m_location_1.x = A[0]; - out.m_location_2.x = A[1]; - out.m_location_1.zw = B[0]; - out.m_location_2.zw = B[1]; - out.m_location_0.y = C[0]; - out.m_location_1.y = C[1]; - out.m_location_2.y = C[2]; - out.m_location_0.w = D; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/array-component-io.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/array-component-io.vert deleted file mode 100644 index 352c9d2ef0..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/array-component-io.vert +++ /dev/null @@ -1,100 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float C_0 [[user(locn0_1)]]; - float D [[user(locn0_3)]]; - float A_0 [[user(locn1)]]; - float C_1 [[user(locn1_1)]]; - float2 B_0 [[user(locn1_2)]]; - float A_1 [[user(locn2)]]; - float C_2 [[user(locn2_1)]]; - float2 B_1 [[user(locn2_2)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 m_location_0 [[attribute(0)]]; - float4 m_location_1 [[attribute(1)]]; - float4 m_location_2 [[attribute(2)]]; - float4 Pos [[attribute(4)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - spvUnsafeArray A = {}; - spvUnsafeArray B = {}; - spvUnsafeArray C = {}; - spvUnsafeArray InA = {}; - spvUnsafeArray InB = {}; - spvUnsafeArray InC = {}; - float InD = {}; - InA[0] = in.m_location_1.x; - InA[1] = in.m_location_2.x; - InB[0] = in.m_location_1.zw; - InB[1] = in.m_location_2.zw; - InC[0] = in.m_location_0.y; - InC[1] = in.m_location_1.y; - InC[2] = in.m_location_2.y; - InD = in.m_location_0.w; - out.gl_Position = in.Pos; - A = InA; - B = InB; - C = InC; - out.D = InD; - out.A_0 = A[0]; - out.A_1 = A[1]; - out.B_0 = B[0]; - out.B_1 = B[1]; - out.C_0 = C[0]; - out.C_1 = C[1]; - out.C_2 = C[2]; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/basic.capture.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/basic.capture.vert deleted file mode 100644 index a4177d3c30..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/basic.capture.vert +++ /dev/null @@ -1,29 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - float4x4 uMVP; -}; - -struct main0_out -{ - float3 vNormal [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 aVertex [[attribute(0)]]; - float3 aNormal [[attribute(1)]]; -}; - -vertex void main0(main0_in in [[stage_in]], constant UBO& _16 [[buffer(0)]], uint gl_VertexIndex [[vertex_id]], uint gl_BaseVertex [[base_vertex]], uint gl_InstanceIndex [[instance_id]], uint gl_BaseInstance [[base_instance]], device main0_out* spvOut [[buffer(28)]], device uint* spvIndirectParams [[buffer(29)]]) -{ - device main0_out& out = spvOut[(gl_InstanceIndex - gl_BaseInstance) * spvIndirectParams[0] + gl_VertexIndex - gl_BaseVertex]; - out.gl_Position = _16.uMVP * in.aVertex; - out.vNormal = in.aNormal; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/basic.for-tess.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/basic.for-tess.vert deleted file mode 100644 index c99a95ac89..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/basic.for-tess.vert +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - float4x4 uMVP; -}; - -struct main0_out -{ - float3 vNormal; - float4 gl_Position; -}; - -struct main0_in -{ - float4 aVertex [[attribute(0)]]; - float3 aNormal [[attribute(1)]]; -}; - -kernel void main0(main0_in in [[stage_in]], constant UBO& _16 [[buffer(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint3 spvStageInputSize [[grid_size]], device main0_out* spvOut [[buffer(28)]]) -{ - device main0_out& out = spvOut[gl_GlobalInvocationID.y * spvStageInputSize.x + gl_GlobalInvocationID.x]; - if (any(gl_GlobalInvocationID >= spvStageInputSize)) - return; - out.gl_Position = _16.uMVP * in.aVertex; - out.vNormal = in.aNormal; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/basic.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/basic.vert deleted file mode 100644 index ffb4357126..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/basic.vert +++ /dev/null @@ -1,30 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - float4x4 uMVP; -}; - -struct main0_out -{ - float3 vNormal [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 aVertex [[attribute(0)]]; - float3 aNormal [[attribute(1)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant UBO& _16 [[buffer(0)]]) -{ - main0_out out = {}; - out.gl_Position = _16.uMVP * in.aVertex; - out.vNormal = in.aNormal; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/clip-distance-block.no-user-varying.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/clip-distance-block.no-user-varying.vert deleted file mode 100644 index c78105e0ce..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/clip-distance-block.no-user-varying.vert +++ /dev/null @@ -1,25 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; - float gl_ClipDistance [[clip_distance]] [2]; -}; - -struct main0_in -{ - float4 Position [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.gl_Position = in.Position; - out.gl_ClipDistance[0] = in.Position.x; - out.gl_ClipDistance[1] = in.Position.y; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/clip-distance-block.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/clip-distance-block.vert deleted file mode 100644 index af58f35ff5..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/clip-distance-block.vert +++ /dev/null @@ -1,29 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; - float gl_ClipDistance [[clip_distance]] [2]; - float gl_ClipDistance_0 [[user(clip0)]]; - float gl_ClipDistance_1 [[user(clip1)]]; -}; - -struct main0_in -{ - float4 Position [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.gl_Position = in.Position; - out.gl_ClipDistance[0] = in.Position.x; - out.gl_ClipDistance[1] = in.Position.y; - out.gl_ClipDistance_0 = out.gl_ClipDistance[0]; - out.gl_ClipDistance_1 = out.gl_ClipDistance[1]; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/copy.flatten.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/copy.flatten.vert deleted file mode 100644 index d73ee3282f..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/copy.flatten.vert +++ /dev/null @@ -1,45 +0,0 @@ -#include -#include - -using namespace metal; - -struct Light -{ - packed_float3 Position; - float Radius; - float4 Color; -}; - -struct UBO -{ - float4x4 uMVP; - Light lights[4]; -}; - -struct main0_out -{ - float4 vColor [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 aVertex [[attribute(0)]]; - float3 aNormal [[attribute(1)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant UBO& _21 [[buffer(0)]]) -{ - main0_out out = {}; - out.gl_Position = _21.uMVP * in.aVertex; - out.vColor = float4(0.0); - for (int _96 = 0; _96 < 4; ) - { - float3 _68 = in.aVertex.xyz - float3(_21.lights[_96].Position); - out.vColor += ((_21.lights[_96].Color * fast::clamp(1.0 - (length(_68) / _21.lights[_96].Radius), 0.0, 1.0)) * dot(in.aNormal, normalize(_68))); - _96++; - continue; - } - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/dynamic.flatten.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/dynamic.flatten.vert deleted file mode 100644 index 92911a4eeb..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/dynamic.flatten.vert +++ /dev/null @@ -1,45 +0,0 @@ -#include -#include - -using namespace metal; - -struct Light -{ - packed_float3 Position; - float Radius; - float4 Color; -}; - -struct UBO -{ - float4x4 uMVP; - Light lights[4]; -}; - -struct main0_out -{ - float4 vColor [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 aVertex [[attribute(0)]]; - float3 aNormal [[attribute(1)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant UBO& _21 [[buffer(0)]]) -{ - main0_out out = {}; - out.gl_Position = _21.uMVP * in.aVertex; - out.vColor = float4(0.0); - for (int _82 = 0; _82 < 4; ) - { - float3 _54 = in.aVertex.xyz - float3(_21.lights[_82].Position); - out.vColor += ((_21.lights[_82].Color * fast::clamp(1.0 - (length(_54) / _21.lights[_82].Radius), 0.0, 1.0)) * dot(in.aNormal, normalize(_54))); - _82++; - continue; - } - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/float-math.invariant-float-math.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/float-math.invariant-float-math.vert deleted file mode 100644 index 05e09e2d18..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/float-math.invariant-float-math.vert +++ /dev/null @@ -1,137 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct Matrices -{ - float4x4 vpMatrix; - float4x4 wMatrix; - float4x3 wMatrix4x3; - float3x4 wMatrix3x4; -}; - -struct main0_out -{ - float3 OutNormal [[user(locn0)]]; - float4 OutWorldPos_0 [[user(locn1)]]; - float4 OutWorldPos_1 [[user(locn2)]]; - float4 OutWorldPos_2 [[user(locn3)]]; - float4 OutWorldPos_3 [[user(locn4)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float3 InPos [[attribute(0)]]; - float3 InNormal [[attribute(1)]]; -}; - -template -T spvFMul(T l, T r) -{ - return fma(l, r, T(0)); -} - -template -vec spvFMulVectorMatrix(vec v, matrix m) -{ - vec res = vec(0); - for (uint i = Rows; i > 0; --i) - { - vec tmp(0); - for (uint j = 0; j < Cols; ++j) - { - tmp[j] = m[j][i - 1]; - } - res = fma(tmp, vec(v[i - 1]), res); - } - return res; -} - -template -vec spvFMulMatrixVector(matrix m, vec v) -{ - vec res = vec(0); - for (uint i = Cols; i > 0; --i) - { - res = fma(m[i - 1], vec(v[i - 1]), res); - } - return res; -} - -template -matrix spvFMulMatrixMatrix(matrix l, matrix r) -{ - matrix res; - for (uint i = 0; i < RCols; i++) - { - vec tmp(0); - for (uint j = 0; j < LCols; j++) - { - tmp = fma(vec(r[i][j]), l[j], tmp); - } - res[i] = tmp; - } - return res; -} - -vertex main0_out main0(main0_in in [[stage_in]], constant Matrices& _22 [[buffer(0)]]) -{ - main0_out out = {}; - spvUnsafeArray OutWorldPos = {}; - float4 _37 = float4(in.InPos, 1.0); - out.gl_Position = spvFMulMatrixVector(spvFMulMatrixMatrix(_22.vpMatrix, _22.wMatrix), _37); - OutWorldPos[0] = spvFMulMatrixVector(_22.wMatrix, _37); - OutWorldPos[1] = spvFMulVectorMatrix(_37, _22.wMatrix); - OutWorldPos[2] = spvFMulMatrixVector(_22.wMatrix3x4, in.InPos); - OutWorldPos[3] = spvFMulVectorMatrix(in.InPos, _22.wMatrix4x3); - out.OutNormal = spvFMulMatrixVector(_22.wMatrix, float4(in.InNormal, 0.0)).xyz; - out.OutWorldPos_0 = OutWorldPos[0]; - out.OutWorldPos_1 = OutWorldPos[1]; - out.OutWorldPos_2 = OutWorldPos[2]; - out.OutWorldPos_3 = OutWorldPos[3]; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/float-math.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/float-math.vert deleted file mode 100644 index da468c24c9..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/float-math.vert +++ /dev/null @@ -1,88 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct Matrices -{ - float4x4 vpMatrix; - float4x4 wMatrix; - float4x3 wMatrix4x3; - float3x4 wMatrix3x4; -}; - -struct main0_out -{ - float3 OutNormal [[user(locn0)]]; - float4 OutWorldPos_0 [[user(locn1)]]; - float4 OutWorldPos_1 [[user(locn2)]]; - float4 OutWorldPos_2 [[user(locn3)]]; - float4 OutWorldPos_3 [[user(locn4)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float3 InPos [[attribute(0)]]; - float3 InNormal [[attribute(1)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant Matrices& _22 [[buffer(0)]]) -{ - main0_out out = {}; - spvUnsafeArray OutWorldPos = {}; - float4 _37 = float4(in.InPos, 1.0); - out.gl_Position = (_22.vpMatrix * _22.wMatrix) * _37; - OutWorldPos[0] = _22.wMatrix * _37; - OutWorldPos[1] = _37 * _22.wMatrix; - OutWorldPos[2] = _22.wMatrix3x4 * in.InPos; - OutWorldPos[3] = in.InPos * _22.wMatrix4x3; - out.OutNormal = (_22.wMatrix * float4(in.InNormal, 0.0)).xyz; - out.OutWorldPos_0 = OutWorldPos[0]; - out.OutWorldPos_1 = OutWorldPos[1]; - out.OutWorldPos_2 = OutWorldPos[2]; - out.OutWorldPos_3 = OutWorldPos[3]; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/functions.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/functions.vert deleted file mode 100644 index 73eaa8b751..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/functions.vert +++ /dev/null @@ -1,122 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct UBO -{ - float4x4 uMVP; - float3 rotDeg; - float3 rotRad; - int2 bits; -}; - -struct main0_out -{ - float3 vNormal [[user(locn0)]]; - float3 vRotDeg [[user(locn1)]]; - float3 vRotRad [[user(locn2)]]; - int2 vLSB [[user(locn3)]]; - int2 vMSB [[user(locn4)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 aVertex [[attribute(0)]]; - float3 aNormal [[attribute(1)]]; -}; - -// Implementation of the GLSL radians() function -template -inline T radians(T d) -{ - return d * T(0.01745329251); -} - -// Implementation of the GLSL degrees() function -template -inline T degrees(T r) -{ - return r * T(57.2957795131); -} - -// Implementation of the GLSL findLSB() function -template -inline T spvFindLSB(T x) -{ - return select(ctz(x), T(-1), x == T(0)); -} - -// Implementation of the signed GLSL findMSB() function -template -inline T spvFindSMSB(T x) -{ - T v = select(x, T(-1) - x, x < T(0)); - return select(clz(T(0)) - (clz(v) + T(1)), T(-1), v == T(0)); -} - -// Returns the determinant of a 2x2 matrix. -static inline __attribute__((always_inline)) -float spvDet2x2(float a1, float a2, float b1, float b2) -{ - return a1 * b2 - b1 * a2; -} - -// Returns the determinant of a 3x3 matrix. -static inline __attribute__((always_inline)) -float spvDet3x3(float a1, float a2, float a3, float b1, float b2, float b3, float c1, float c2, float c3) -{ - return a1 * spvDet2x2(b2, b3, c2, c3) - b1 * spvDet2x2(a2, a3, c2, c3) + c1 * spvDet2x2(a2, a3, b2, b3); -} - -// Returns the inverse of a matrix, by using the algorithm of calculating the classical -// adjoint and dividing by the determinant. The contents of the matrix are changed. -static inline __attribute__((always_inline)) -float4x4 spvInverse4x4(float4x4 m) -{ - float4x4 adj; // The adjoint matrix (inverse after dividing by determinant) - - // Create the transpose of the cofactors, as the classical adjoint of the matrix. - adj[0][0] = spvDet3x3(m[1][1], m[1][2], m[1][3], m[2][1], m[2][2], m[2][3], m[3][1], m[3][2], m[3][3]); - adj[0][1] = -spvDet3x3(m[0][1], m[0][2], m[0][3], m[2][1], m[2][2], m[2][3], m[3][1], m[3][2], m[3][3]); - adj[0][2] = spvDet3x3(m[0][1], m[0][2], m[0][3], m[1][1], m[1][2], m[1][3], m[3][1], m[3][2], m[3][3]); - adj[0][3] = -spvDet3x3(m[0][1], m[0][2], m[0][3], m[1][1], m[1][2], m[1][3], m[2][1], m[2][2], m[2][3]); - - adj[1][0] = -spvDet3x3(m[1][0], m[1][2], m[1][3], m[2][0], m[2][2], m[2][3], m[3][0], m[3][2], m[3][3]); - adj[1][1] = spvDet3x3(m[0][0], m[0][2], m[0][3], m[2][0], m[2][2], m[2][3], m[3][0], m[3][2], m[3][3]); - adj[1][2] = -spvDet3x3(m[0][0], m[0][2], m[0][3], m[1][0], m[1][2], m[1][3], m[3][0], m[3][2], m[3][3]); - adj[1][3] = spvDet3x3(m[0][0], m[0][2], m[0][3], m[1][0], m[1][2], m[1][3], m[2][0], m[2][2], m[2][3]); - - adj[2][0] = spvDet3x3(m[1][0], m[1][1], m[1][3], m[2][0], m[2][1], m[2][3], m[3][0], m[3][1], m[3][3]); - adj[2][1] = -spvDet3x3(m[0][0], m[0][1], m[0][3], m[2][0], m[2][1], m[2][3], m[3][0], m[3][1], m[3][3]); - adj[2][2] = spvDet3x3(m[0][0], m[0][1], m[0][3], m[1][0], m[1][1], m[1][3], m[3][0], m[3][1], m[3][3]); - adj[2][3] = -spvDet3x3(m[0][0], m[0][1], m[0][3], m[1][0], m[1][1], m[1][3], m[2][0], m[2][1], m[2][3]); - - adj[3][0] = -spvDet3x3(m[1][0], m[1][1], m[1][2], m[2][0], m[2][1], m[2][2], m[3][0], m[3][1], m[3][2]); - adj[3][1] = spvDet3x3(m[0][0], m[0][1], m[0][2], m[2][0], m[2][1], m[2][2], m[3][0], m[3][1], m[3][2]); - adj[3][2] = -spvDet3x3(m[0][0], m[0][1], m[0][2], m[1][0], m[1][1], m[1][2], m[3][0], m[3][1], m[3][2]); - adj[3][3] = spvDet3x3(m[0][0], m[0][1], m[0][2], m[1][0], m[1][1], m[1][2], m[2][0], m[2][1], m[2][2]); - - // Calculate the determinant as a combination of the cofactors of the first row. - float det = (adj[0][0] * m[0][0]) + (adj[0][1] * m[1][0]) + (adj[0][2] * m[2][0]) + (adj[0][3] * m[3][0]); - - // Divide the classical adjoint matrix by the determinant. - // If determinant is zero, matrix is not invertable, so leave it unchanged. - return (det != 0.0f) ? (adj * (1.0f / det)) : m; -} - -vertex main0_out main0(main0_in in [[stage_in]], constant UBO& _18 [[buffer(0)]]) -{ - main0_out out = {}; - out.gl_Position = spvInverse4x4(_18.uMVP) * in.aVertex; - out.vNormal = in.aNormal; - out.vRotDeg = degrees(_18.rotRad); - out.vRotRad = radians(_18.rotDeg); - out.vLSB = spvFindLSB(_18.bits); - out.vMSB = spvFindSMSB(_18.bits); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/implicit-position-1.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/implicit-position-1.vert deleted file mode 100644 index 5cea4ee2c2..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/implicit-position-1.vert +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 V [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -vertex main0_out main0() -{ - main0_out out = {}; - out.V = float4(1.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/implicit-position-2.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/implicit-position-2.vert deleted file mode 100644 index 9e024c2095..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/implicit-position-2.vert +++ /dev/null @@ -1,9 +0,0 @@ -#include -#include - -using namespace metal; - -vertex void main0() -{ -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/in_out_array_mat.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/in_out_array_mat.vert deleted file mode 100644 index 7a74f49a49..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/in_out_array_mat.vert +++ /dev/null @@ -1,108 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct UBO -{ - float4x4 projection; - float4x4 model; - float lodBias; -}; - -struct main0_out -{ - float3 outPos [[user(locn0)]]; - float3 outNormal [[user(locn1)]]; - float4 outTransModel_0 [[user(locn2)]]; - float4 outTransModel_1 [[user(locn3)]]; - float4 outTransModel_2 [[user(locn4)]]; - float4 outTransModel_3 [[user(locn5)]]; - float outLodBias [[user(locn6)]]; - float4 color [[user(locn7)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float3 inPos [[attribute(0)]]; - float4 colors_0 [[attribute(1)]]; - float4 colors_1 [[attribute(2)]]; - float4 colors_2 [[attribute(3)]]; - float3 inNormal [[attribute(4)]]; - float4 inViewMat_0 [[attribute(5)]]; - float4 inViewMat_1 [[attribute(6)]]; - float4 inViewMat_2 [[attribute(7)]]; - float4 inViewMat_3 [[attribute(8)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant UBO& ubo [[buffer(0)]]) -{ - main0_out out = {}; - float4x4 outTransModel = {}; - spvUnsafeArray colors = {}; - float4x4 inViewMat = {}; - colors[0] = in.colors_0; - colors[1] = in.colors_1; - colors[2] = in.colors_2; - inViewMat[0] = in.inViewMat_0; - inViewMat[1] = in.inViewMat_1; - inViewMat[2] = in.inViewMat_2; - inViewMat[3] = in.inViewMat_3; - float4 _64 = float4(in.inPos, 1.0); - out.gl_Position = (ubo.projection * ubo.model) * _64; - out.outPos = float3((ubo.model * _64).xyz); - out.outNormal = float3x3(float3(ubo.model[0].x, ubo.model[0].y, ubo.model[0].z), float3(ubo.model[1].x, ubo.model[1].y, ubo.model[1].z), float3(ubo.model[2].x, ubo.model[2].y, ubo.model[2].z)) * in.inNormal; - out.outLodBias = ubo.lodBias; - outTransModel = transpose(ubo.model) * inViewMat; - outTransModel[2] = float4(in.inNormal, 1.0); - outTransModel[1].y = ubo.lodBias; - out.color = colors[2]; - out.outTransModel_0 = outTransModel[0]; - out.outTransModel_1 = outTransModel[1]; - out.outTransModel_2 = outTransModel[2]; - out.outTransModel_3 = outTransModel[3]; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/interface-block-block-composites.frag b/third_party/spirv-cross/reference/opt/shaders-msl/vert/interface-block-block-composites.frag deleted file mode 100644 index 4b27f4a3d5..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/interface-block-block-composites.frag +++ /dev/null @@ -1,99 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct Vert -{ - float3x3 wMatrix; - float4 wTmp; - spvUnsafeArray arr; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float3 vMatrix_0 [[user(locn0)]]; - float3 vMatrix_1 [[user(locn1)]]; - float3 vMatrix_2 [[user(locn2)]]; - float3 Vert_wMatrix_0 [[user(locn4)]]; - float3 Vert_wMatrix_1 [[user(locn5)]]; - float3 Vert_wMatrix_2 [[user(locn6)]]; - float4 Vert_wTmp [[user(locn7)]]; - float Vert_arr_0 [[user(locn8)]]; - float Vert_arr_1 [[user(locn9)]]; - float Vert_arr_2 [[user(locn10)]]; - float Vert_arr_3 [[user(locn11)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - Vert _17 = {}; - float3x3 vMatrix = {}; - _17.wMatrix[0] = in.Vert_wMatrix_0; - _17.wMatrix[1] = in.Vert_wMatrix_1; - _17.wMatrix[2] = in.Vert_wMatrix_2; - _17.wTmp = in.Vert_wTmp; - _17.arr[0] = in.Vert_arr_0; - _17.arr[1] = in.Vert_arr_1; - _17.arr[2] = in.Vert_arr_2; - _17.arr[3] = in.Vert_arr_3; - vMatrix[0] = in.vMatrix_0; - vMatrix[1] = in.vMatrix_1; - vMatrix[2] = in.vMatrix_2; - out.FragColor = (_17.wMatrix[0].xxyy + _17.wTmp) + vMatrix[1].yyzz; - for (int _56 = 0; _56 < 4; ) - { - out.FragColor += float4(_17.arr[_56]); - _56++; - continue; - } - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/interface-block-block-composites.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/interface-block-block-composites.vert deleted file mode 100644 index 69f271a83c..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/interface-block-block-composites.vert +++ /dev/null @@ -1,105 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct Vert -{ - spvUnsafeArray arr; - float3x3 wMatrix; - float4 wTmp; -}; - -struct main0_out -{ - float3 vMatrix_0 [[user(locn0)]]; - float3 vMatrix_1 [[user(locn1)]]; - float3 vMatrix_2 [[user(locn2)]]; - float Vert_arr_0 [[user(locn4)]]; - float Vert_arr_1 [[user(locn5)]]; - float Vert_arr_2 [[user(locn6)]]; - float3 Vert_wMatrix_0 [[user(locn7)]]; - float3 Vert_wMatrix_1 [[user(locn8)]]; - float3 Vert_wMatrix_2 [[user(locn9)]]; - float4 Vert_wTmp [[user(locn10)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float3 Matrix_0 [[attribute(0)]]; - float3 Matrix_1 [[attribute(1)]]; - float3 Matrix_2 [[attribute(2)]]; - float4 Pos [[attribute(4)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - float3x3 vMatrix = {}; - Vert _20 = {}; - float3x3 Matrix = {}; - Matrix[0] = in.Matrix_0; - Matrix[1] = in.Matrix_1; - Matrix[2] = in.Matrix_2; - vMatrix = Matrix; - _20.wMatrix = Matrix; - _20.arr[0] = 1.0; - _20.arr[1] = 2.0; - _20.arr[2] = 3.0; - _20.wTmp = in.Pos; - out.gl_Position = in.Pos; - out.vMatrix_0 = vMatrix[0]; - out.vMatrix_1 = vMatrix[1]; - out.vMatrix_2 = vMatrix[2]; - out.Vert_arr_0 = _20.arr[0]; - out.Vert_arr_1 = _20.arr[1]; - out.Vert_arr_2 = _20.arr[2]; - out.Vert_wMatrix_0 = _20.wMatrix[0]; - out.Vert_wMatrix_1 = _20.wMatrix[1]; - out.Vert_wMatrix_2 = _20.wMatrix[2]; - out.Vert_wTmp = _20.wTmp; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/interpolation-qualifiers-block.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/interpolation-qualifiers-block.vert deleted file mode 100644 index 4206623b4f..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/interpolation-qualifiers-block.vert +++ /dev/null @@ -1,55 +0,0 @@ -#include -#include - -using namespace metal; - -struct Output -{ - float2 v0; - float2 v1; - float3 v2; - float4 v3; - float v4; - float v5; - float v6; -}; - -struct main0_out -{ - float2 Output_v0 [[user(locn0)]]; - float2 Output_v1 [[user(locn1)]]; - float3 Output_v2 [[user(locn2)]]; - float4 Output_v3 [[user(locn3)]]; - float Output_v4 [[user(locn4)]]; - float Output_v5 [[user(locn5)]]; - float Output_v6 [[user(locn6)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 Position [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - Output outp = {}; - outp.v0 = in.Position.xy; - outp.v1 = in.Position.zw; - outp.v2 = float3(in.Position.x, in.Position.z * in.Position.y, in.Position.x); - outp.v3 = in.Position.xxyy; - outp.v4 = in.Position.w; - outp.v5 = in.Position.y; - outp.v6 = in.Position.x * in.Position.w; - out.gl_Position = in.Position; - out.Output_v0 = outp.v0; - out.Output_v1 = outp.v1; - out.Output_v2 = outp.v2; - out.Output_v3 = outp.v3; - out.Output_v4 = outp.v4; - out.Output_v5 = outp.v5; - out.Output_v6 = outp.v6; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/interpolation-qualifiers.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/interpolation-qualifiers.vert deleted file mode 100644 index ba2c4fbd23..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/interpolation-qualifiers.vert +++ /dev/null @@ -1,36 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float2 v0 [[user(locn0)]]; - float2 v1 [[user(locn1)]]; - float3 v2 [[user(locn2)]]; - float4 v3 [[user(locn3)]]; - float v4 [[user(locn4)]]; - float v5 [[user(locn5)]]; - float v6 [[user(locn6)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 Position [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.v0 = in.Position.xy; - out.v1 = in.Position.zw; - out.v2 = float3(in.Position.x, in.Position.z * in.Position.y, in.Position.x); - out.v3 = in.Position.xxyy; - out.v4 = in.Position.w; - out.v5 = in.Position.y; - out.v6 = in.Position.x * in.Position.w; - out.gl_Position = in.Position; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/invariant.msl21.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/invariant.msl21.vert deleted file mode 100644 index 73b0ec7449..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/invariant.msl21.vert +++ /dev/null @@ -1,26 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position, invariant]]; -}; - -struct main0_in -{ - float4 vInput0 [[attribute(0)]]; - float4 vInput1 [[attribute(1)]]; - float4 vInput2 [[attribute(2)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - float4 _20 = in.vInput1 * in.vInput2; - float4 _21 = in.vInput0 + _20; - out.gl_Position = _21; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/leaf-function.capture.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/leaf-function.capture.vert deleted file mode 100644 index 85276e128d..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/leaf-function.capture.vert +++ /dev/null @@ -1,29 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - float4x4 uMVP; -}; - -struct main0_out -{ - float3 vNormal [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 aVertex [[attribute(0)]]; - float3 aNormal [[attribute(1)]]; -}; - -vertex void main0(main0_in in [[stage_in]], constant UBO& _18 [[buffer(0)]], uint gl_VertexIndex [[vertex_id]], uint gl_BaseVertex [[base_vertex]], uint gl_InstanceIndex [[instance_id]], uint gl_BaseInstance [[base_instance]], device main0_out* spvOut [[buffer(28)]], device uint* spvIndirectParams [[buffer(29)]]) -{ - device main0_out& out = spvOut[(gl_InstanceIndex - gl_BaseInstance) * spvIndirectParams[0] + gl_VertexIndex - gl_BaseVertex]; - out.gl_Position = _18.uMVP * in.aVertex; - out.vNormal = in.aNormal; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/leaf-function.for-tess.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/leaf-function.for-tess.vert deleted file mode 100644 index e3d2d1fac0..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/leaf-function.for-tess.vert +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - float4x4 uMVP; -}; - -struct main0_out -{ - float3 vNormal; - float4 gl_Position; -}; - -struct main0_in -{ - float4 aVertex [[attribute(0)]]; - float3 aNormal [[attribute(1)]]; -}; - -kernel void main0(main0_in in [[stage_in]], constant UBO& _18 [[buffer(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint3 spvStageInputSize [[grid_size]], device main0_out* spvOut [[buffer(28)]]) -{ - device main0_out& out = spvOut[gl_GlobalInvocationID.y * spvStageInputSize.x + gl_GlobalInvocationID.x]; - if (any(gl_GlobalInvocationID >= spvStageInputSize)) - return; - out.gl_Position = _18.uMVP * in.aVertex; - out.vNormal = in.aNormal; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/no-contraction.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/no-contraction.vert deleted file mode 100644 index a48731ed81..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/no-contraction.vert +++ /dev/null @@ -1,88 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 vA [[attribute(0)]]; - float4 vB [[attribute(1)]]; - float4 vC [[attribute(2)]]; -}; - -template -T spvFMul(T l, T r) -{ - return fma(l, r, T(0)); -} - -template -vec spvFMulVectorMatrix(vec v, matrix m) -{ - vec res = vec(0); - for (uint i = Rows; i > 0; --i) - { - vec tmp(0); - for (uint j = 0; j < Cols; ++j) - { - tmp[j] = m[j][i - 1]; - } - res = fma(tmp, vec(v[i - 1]), res); - } - return res; -} - -template -vec spvFMulMatrixVector(matrix m, vec v) -{ - vec res = vec(0); - for (uint i = Cols; i > 0; --i) - { - res = fma(m[i - 1], vec(v[i - 1]), res); - } - return res; -} - -template -matrix spvFMulMatrixMatrix(matrix l, matrix r) -{ - matrix res; - for (uint i = 0; i < RCols; i++) - { - vec tmp(0); - for (uint j = 0; j < LCols; j++) - { - tmp = fma(vec(r[i][j]), l[j], tmp); - } - res[i] = tmp; - } - return res; -} - -template -T spvFAdd(T l, T r) -{ - return fma(T(1), l, r); -} - -template -T spvFSub(T l, T r) -{ - return fma(T(-1), r, l); -} - -vertex main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - float4 _15 = spvFMul(in.vA, in.vB); - out.gl_Position = spvFAdd(spvFAdd(spvFAdd(_15, spvFAdd(in.vA, in.vB)), spvFSub(in.vA, in.vB)), spvFAdd(_15, in.vC)); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/no-disable-vertex-out.frag-output.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/no-disable-vertex-out.frag-output.vert deleted file mode 100644 index 14cc94937c..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/no-disable-vertex-out.frag-output.vert +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -using namespace metal; - -struct buf -{ - float4x4 MVP; - float4 position[36]; - float4 attr[36]; -}; - -struct main0_out -{ - float4 texcoord [[user(locn0)]]; - float3 frag_pos [[user(locn1)]]; - float4 gl_Position [[position]]; -}; - -vertex main0_out main0(constant buf& ubuf [[buffer(0)]], uint gl_VertexIndex [[vertex_id]]) -{ - main0_out out = {}; - out.texcoord = ubuf.attr[int(gl_VertexIndex)]; - out.gl_Position = ubuf.MVP * ubuf.position[int(gl_VertexIndex)]; - out.frag_pos = out.gl_Position.xyz; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/no_stage_out.for-tess.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/no_stage_out.for-tess.vert deleted file mode 100644 index 984e83260a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/no_stage_out.for-tess.vert +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace metal; - -struct _RESERVED_IDENTIFIER_FIXUP_10_12 -{ - uint4 _RESERVED_IDENTIFIER_FIXUP_m0[1024]; -}; - -struct main0_in -{ - uint4 _RESERVED_IDENTIFIER_FIXUP_19 [[attribute(0)]]; -}; - -kernel void main0(main0_in in [[stage_in]], device _RESERVED_IDENTIFIER_FIXUP_10_12& _RESERVED_IDENTIFIER_FIXUP_12 [[buffer(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint3 spvStageInputSize [[grid_size]], uint3 spvDispatchBase [[grid_origin]]) -{ - if (any(gl_GlobalInvocationID >= spvStageInputSize)) - return; - uint gl_VertexIndex = gl_GlobalInvocationID.x + spvDispatchBase.x; - _RESERVED_IDENTIFIER_FIXUP_12._RESERVED_IDENTIFIER_FIXUP_m0[int(gl_VertexIndex)] = in._RESERVED_IDENTIFIER_FIXUP_19; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/no_stage_out.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/no_stage_out.vert deleted file mode 100644 index e804da6753..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/no_stage_out.vert +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include - -using namespace metal; - -struct _RESERVED_IDENTIFIER_FIXUP_10_12 -{ - uint4 _RESERVED_IDENTIFIER_FIXUP_m0[1024]; -}; - -struct main0_in -{ - uint4 _RESERVED_IDENTIFIER_FIXUP_19 [[attribute(0)]]; -}; - -vertex void main0(main0_in in [[stage_in]], device _RESERVED_IDENTIFIER_FIXUP_10_12& _RESERVED_IDENTIFIER_FIXUP_12 [[buffer(0)]], uint gl_VertexIndex [[vertex_id]]) -{ - _RESERVED_IDENTIFIER_FIXUP_12._RESERVED_IDENTIFIER_FIXUP_m0[int(gl_VertexIndex)] = in._RESERVED_IDENTIFIER_FIXUP_19; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/no_stage_out.write_buff.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/no_stage_out.write_buff.vert deleted file mode 100644 index 296293aaea..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/no_stage_out.write_buff.vert +++ /dev/null @@ -1,37 +0,0 @@ -#include -#include - -using namespace metal; - -struct _RESERVED_IDENTIFIER_FIXUP_33_35 -{ - uint4 _RESERVED_IDENTIFIER_FIXUP_m0[1024]; -}; - -struct _RESERVED_IDENTIFIER_FIXUP_38_40 -{ - uint4 _RESERVED_IDENTIFIER_FIXUP_m0[1024]; -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 _RESERVED_IDENTIFIER_FIXUP_14 [[attribute(0)]]; -}; - -vertex void main0(main0_in in [[stage_in]], device _RESERVED_IDENTIFIER_FIXUP_33_35& _RESERVED_IDENTIFIER_FIXUP_35 [[buffer(0)]], constant _RESERVED_IDENTIFIER_FIXUP_38_40& _RESERVED_IDENTIFIER_FIXUP_40 [[buffer(1)]]) -{ - main0_out out = {}; - out.gl_Position = in._RESERVED_IDENTIFIER_FIXUP_14; - for (int _52 = 0; _52 < 1024; ) - { - _RESERVED_IDENTIFIER_FIXUP_35._RESERVED_IDENTIFIER_FIXUP_m0[_52] = _RESERVED_IDENTIFIER_FIXUP_40._RESERVED_IDENTIFIER_FIXUP_m0[_52]; - _52++; - continue; - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/no_stage_out.write_buff_atomic.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/no_stage_out.write_buff_atomic.vert deleted file mode 100644 index 92fbf555d3..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/no_stage_out.write_buff_atomic.vert +++ /dev/null @@ -1,30 +0,0 @@ -#pragma clang diagnostic ignored "-Wunused-variable" - -#include -#include -#include - -using namespace metal; - -struct _RESERVED_IDENTIFIER_FIXUP_19_21 -{ - uint _RESERVED_IDENTIFIER_FIXUP_m0; -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 _RESERVED_IDENTIFIER_FIXUP_14 [[attribute(0)]]; -}; - -vertex void main0(main0_in in [[stage_in]], volatile device _RESERVED_IDENTIFIER_FIXUP_19_21& _RESERVED_IDENTIFIER_FIXUP_21 [[buffer(0)]]) -{ - main0_out out = {}; - out.gl_Position = in._RESERVED_IDENTIFIER_FIXUP_14; - uint _29 = atomic_fetch_add_explicit((volatile device atomic_uint*)&_RESERVED_IDENTIFIER_FIXUP_21._RESERVED_IDENTIFIER_FIXUP_m0, 1u, memory_order_relaxed); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/no_stage_out.write_tex.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/no_stage_out.write_tex.vert deleted file mode 100644 index 9d87efe142..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/no_stage_out.write_tex.vert +++ /dev/null @@ -1,27 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 _RESERVED_IDENTIFIER_FIXUP_14 [[attribute(0)]]; -}; - -vertex void main0(main0_in in [[stage_in]], texture1d _RESERVED_IDENTIFIER_FIXUP_32 [[texture(0)]], texture1d _RESERVED_IDENTIFIER_FIXUP_35 [[texture(1)]]) -{ - main0_out out = {}; - out.gl_Position = in._RESERVED_IDENTIFIER_FIXUP_14; - for (int _45 = 0; _45 < 128; ) - { - _RESERVED_IDENTIFIER_FIXUP_32.write(_RESERVED_IDENTIFIER_FIXUP_35.read(uint(_45)), uint(_45)); - _45++; - continue; - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/out_block.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/out_block.vert deleted file mode 100644 index 45b897013b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/out_block.vert +++ /dev/null @@ -1,41 +0,0 @@ -#include -#include - -using namespace metal; - -struct Transform -{ - float4x4 transform; -}; - -struct VertexOut -{ - float4 color; - float4 color2; -}; - -struct main0_out -{ - float4 VertexOut_color [[user(locn2)]]; - float4 VertexOut_color2 [[user(locn3)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float3 position [[attribute(0)]]; - float4 color [[attribute(1)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant Transform& block [[buffer(0)]]) -{ - main0_out out = {}; - VertexOut outputs = {}; - out.gl_Position = block.transform * float4(in.position, 1.0); - outputs.color = in.color; - outputs.color2 = in.color + float4(1.0); - out.VertexOut_color = outputs.color; - out.VertexOut_color2 = outputs.color2; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/packed-bool-to-uint.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/packed-bool-to-uint.vert deleted file mode 100644 index 6cc5520484..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/packed-bool-to-uint.vert +++ /dev/null @@ -1,38 +0,0 @@ -#include -#include - -using namespace metal; - -struct Struct -{ - uint flags[1]; -}; - -struct defaultUniformsVS -{ - Struct flags; - float4 uquad[4]; - float4x4 umatrix; -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 a_position [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant defaultUniformsVS& _24 [[buffer(0)]], uint gl_VertexIndex [[vertex_id]]) -{ - main0_out out = {}; - out.gl_Position = _24.umatrix * float4(_24.uquad[int(gl_VertexIndex)].x, _24.uquad[int(gl_VertexIndex)].y, in.a_position.z, in.a_position.w); - if (_24.flags.flags[0] != 0u) - { - out.gl_Position.z = 0.0; - } - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/packed-bool2-to-packed_uint2.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/packed-bool2-to-packed_uint2.vert deleted file mode 100644 index 4c46aaeb4e..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/packed-bool2-to-packed_uint2.vert +++ /dev/null @@ -1,38 +0,0 @@ -#include -#include - -using namespace metal; - -struct Struct -{ - uint2 flags[1]; -}; - -struct defaultUniformsVS -{ - Struct flags; - float4 uquad[4]; - float4x4 umatrix; -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 a_position [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant defaultUniformsVS& _25 [[buffer(0)]], uint gl_VertexIndex [[vertex_id]]) -{ - main0_out out = {}; - out.gl_Position = _25.umatrix * float4(_25.uquad[int(gl_VertexIndex)].x, _25.uquad[int(gl_VertexIndex)].y, in.a_position.z, in.a_position.w); - if (_25.flags.flags[0].x != 0u) - { - out.gl_Position.z = 0.0; - } - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/packed_matrix.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/packed_matrix.vert deleted file mode 100644 index 74b2c5fcd2..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/packed_matrix.vert +++ /dev/null @@ -1,48 +0,0 @@ -#include -#include - -using namespace metal; - -struct _RESERVED_IDENTIFIER_FIXUP_1365_18812 -{ - float3x4 _RESERVED_IDENTIFIER_FIXUP_m0; - float3x4 _RESERVED_IDENTIFIER_FIXUP_m1; -}; - -struct _RESERVED_IDENTIFIER_FIXUP_1126_22044 -{ - float4x4 _RESERVED_IDENTIFIER_FIXUP_m0; - float4x4 _RESERVED_IDENTIFIER_FIXUP_m1; - float _RESERVED_IDENTIFIER_FIXUP_m9; - char _m3_pad[12]; - packed_float3 _RESERVED_IDENTIFIER_FIXUP_m10; - float _RESERVED_IDENTIFIER_FIXUP_m11; - packed_float3 _RESERVED_IDENTIFIER_FIXUP_m12; - float _RESERVED_IDENTIFIER_FIXUP_m17; - float _RESERVED_IDENTIFIER_FIXUP_m18; - float _RESERVED_IDENTIFIER_FIXUP_m19; - float2 _RESERVED_IDENTIFIER_FIXUP_m20; -}; - -struct main0_out -{ - float3 _RESERVED_IDENTIFIER_FIXUP_3976 [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 _RESERVED_IDENTIFIER_FIXUP_5275 [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant _RESERVED_IDENTIFIER_FIXUP_1365_18812& _RESERVED_IDENTIFIER_FIXUP_18812 [[buffer(0)]], constant _RESERVED_IDENTIFIER_FIXUP_1126_22044& _RESERVED_IDENTIFIER_FIXUP_22044 [[buffer(1)]]) -{ - main0_out out = {}; - float4 _70 = _RESERVED_IDENTIFIER_FIXUP_22044._RESERVED_IDENTIFIER_FIXUP_m0 * float4(float3(_RESERVED_IDENTIFIER_FIXUP_22044._RESERVED_IDENTIFIER_FIXUP_m10) + (in._RESERVED_IDENTIFIER_FIXUP_5275.xyz * (_RESERVED_IDENTIFIER_FIXUP_22044._RESERVED_IDENTIFIER_FIXUP_m17 + _RESERVED_IDENTIFIER_FIXUP_22044._RESERVED_IDENTIFIER_FIXUP_m18)), 1.0); - out._RESERVED_IDENTIFIER_FIXUP_3976 = normalize(float4(in._RESERVED_IDENTIFIER_FIXUP_5275.xyz, 0.0) * _RESERVED_IDENTIFIER_FIXUP_18812._RESERVED_IDENTIFIER_FIXUP_m1); - float4 _94 = _70; - _94.y = -_70.y; - out.gl_Position = _94; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/pointsize.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/pointsize.vert deleted file mode 100644 index 8e5782bde4..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/pointsize.vert +++ /dev/null @@ -1,33 +0,0 @@ -#include -#include - -using namespace metal; - -struct params -{ - float4x4 mvp; - float psize; -}; - -struct main0_out -{ - float4 color [[user(locn0)]]; - float4 gl_Position [[position]]; - float gl_PointSize [[point_size]]; -}; - -struct main0_in -{ - float4 position [[attribute(0)]]; - float4 color0 [[attribute(1)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant params& _19 [[buffer(0)]]) -{ - main0_out out = {}; - out.gl_Position = _19.mvp * in.position; - out.gl_PointSize = _19.psize; - out.color = in.color0; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/read-from-row-major-array.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/read-from-row-major-array.vert deleted file mode 100644 index ec3e7b7248..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/read-from-row-major-array.vert +++ /dev/null @@ -1,29 +0,0 @@ -#include -#include - -using namespace metal; - -struct Block -{ - float3x4 var[3][4]; -}; - -struct main0_out -{ - float v_vtxResult [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 a_position [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant Block& _104 [[buffer(0)]]) -{ - main0_out out = {}; - out.gl_Position = in.a_position; - out.v_vtxResult = ((float(abs(_104.var[0][0][0][0] - 2.0) < 0.0500000007450580596923828125) * float(abs(_104.var[0][0][1][0] - 6.0) < 0.0500000007450580596923828125)) * float(abs(_104.var[0][0][2][0] - (-6.0)) < 0.0500000007450580596923828125)) * ((float(abs(_104.var[0][0][0][1]) < 0.0500000007450580596923828125) * float(abs(_104.var[0][0][1][1] - 5.0) < 0.0500000007450580596923828125)) * float(abs(_104.var[0][0][2][1] - 5.0) < 0.0500000007450580596923828125)); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/resource-arrays-leaf.ios.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/resource-arrays-leaf.ios.vert deleted file mode 100644 index 91be3a0477..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/resource-arrays-leaf.ios.vert +++ /dev/null @@ -1,42 +0,0 @@ -#include -#include - -using namespace metal; - -struct storage_block -{ - uint4 baz; - int2 quux; -}; - -struct constant_block -{ - float4 foo; - int bar; -}; - -#ifndef SPIRV_CROSS_CONSTANT_ID_0 -#define SPIRV_CROSS_CONSTANT_ID_0 3 -#endif -constant int arraySize = SPIRV_CROSS_CONSTANT_ID_0; - -vertex void main0(device storage_block* storage_0 [[buffer(0)]], device storage_block* storage_1 [[buffer(1)]], constant constant_block* constants_0 [[buffer(2)]], constant constant_block* constants_1 [[buffer(3)]], constant constant_block* constants_2 [[buffer(4)]], constant constant_block* constants_3 [[buffer(5)]], array, 3> images [[texture(0)]]) -{ - device storage_block* storage[] = - { - storage_0, - storage_1, - }; - - constant constant_block* constants[] = - { - constants_0, - constants_1, - constants_2, - constants_3, - }; - - storage[0]->baz = uint4(constants[3]->foo); - storage[1]->quux = images[2].read(uint2(int2(constants[1]->bar))).xy; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/resource-arrays.ios.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/resource-arrays.ios.vert deleted file mode 100644 index 91be3a0477..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/resource-arrays.ios.vert +++ /dev/null @@ -1,42 +0,0 @@ -#include -#include - -using namespace metal; - -struct storage_block -{ - uint4 baz; - int2 quux; -}; - -struct constant_block -{ - float4 foo; - int bar; -}; - -#ifndef SPIRV_CROSS_CONSTANT_ID_0 -#define SPIRV_CROSS_CONSTANT_ID_0 3 -#endif -constant int arraySize = SPIRV_CROSS_CONSTANT_ID_0; - -vertex void main0(device storage_block* storage_0 [[buffer(0)]], device storage_block* storage_1 [[buffer(1)]], constant constant_block* constants_0 [[buffer(2)]], constant constant_block* constants_1 [[buffer(3)]], constant constant_block* constants_2 [[buffer(4)]], constant constant_block* constants_3 [[buffer(5)]], array, 3> images [[texture(0)]]) -{ - device storage_block* storage[] = - { - storage_0, - storage_1, - }; - - constant constant_block* constants[] = - { - constants_0, - constants_1, - constants_2, - constants_3, - }; - - storage[0]->baz = uint4(constants[3]->foo); - storage[1]->quux = images[2].read(uint2(int2(constants[1]->bar))).xy; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/return-array.force-native-array.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/return-array.force-native-array.vert deleted file mode 100644 index ce13349a0f..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/return-array.force-native-array.vert +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 vInput1 [[attribute(1)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.gl_Position = float4(10.0) + in.vInput1; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/return-array.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/return-array.vert deleted file mode 100644 index ce13349a0f..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/return-array.vert +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 vInput1 [[attribute(1)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.gl_Position = float4(10.0) + in.vInput1; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/set_builtin_in_func.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/set_builtin_in_func.vert deleted file mode 100644 index 51a858af1e..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/set_builtin_in_func.vert +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; - float gl_PointSize [[point_size]]; -}; - -vertex main0_out main0() -{ - main0_out out = {}; - out.gl_PointSize = 1.0; - out.gl_Position = float4(out.gl_PointSize); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/sign-int-types.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/sign-int-types.vert deleted file mode 100644 index a510645223..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/sign-int-types.vert +++ /dev/null @@ -1,60 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct UBO -{ - float4x4 uMVP; - float4 uFloatVec4; - float3 uFloatVec3; - float2 uFloatVec2; - float uFloat; - int4 uIntVec4; - int3 uIntVec3; - int2 uIntVec2; - int uInt; -}; - -struct main0_out -{ - float4 vFloatVec4 [[user(locn0)]]; - float3 vFloatVec3 [[user(locn1)]]; - float2 vFloatVec2 [[user(locn2)]]; - float vFloat [[user(locn3)]]; - int4 vIntVec4 [[user(locn4)]]; - int3 vIntVec3 [[user(locn5)]]; - int2 vIntVec2 [[user(locn6)]]; - int vInt [[user(locn7)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 aVertex [[attribute(0)]]; -}; - -// Implementation of the GLSL sign() function for integer types -template::value>::type> -inline T sign(T x) -{ - return select(select(select(x, T(0), x == T(0)), T(1), x > T(0)), T(-1), x < T(0)); -} - -vertex main0_out main0(main0_in in [[stage_in]], constant UBO& _21 [[buffer(0)]]) -{ - main0_out out = {}; - out.gl_Position = _21.uMVP * in.aVertex; - out.vFloatVec4 = sign(_21.uFloatVec4); - out.vFloatVec3 = sign(_21.uFloatVec3); - out.vFloatVec2 = sign(_21.uFloatVec2); - out.vFloat = sign(_21.uFloat); - out.vIntVec4 = sign(_21.uIntVec4); - out.vIntVec3 = sign(_21.uIntVec3); - out.vIntVec2 = sign(_21.uIntVec2); - out.vInt = sign(_21.uInt); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/signedness-mismatch.shader-inputs.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/signedness-mismatch.shader-inputs.vert deleted file mode 100644 index d6e056be33..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/signedness-mismatch.shader-inputs.vert +++ /dev/null @@ -1,74 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - ushort2 a [[attribute(0)]]; - uint3 b [[attribute(1)]]; - ushort c_0 [[attribute(2)]]; - ushort c_1 [[attribute(3)]]; - uint4 d_0 [[attribute(4)]]; - uint4 d_1 [[attribute(5)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - spvUnsafeArray c = {}; - spvUnsafeArray d = {}; - c[0] = in.c_0; - c[1] = in.c_1; - d[0] = in.d_0; - d[1] = in.d_1; - out.gl_Position = float4(float(int(in.a.x)), float(in.b.x), float(uint(c[1])), float(d[0].w)); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/texture_buffer.texture-buffer-native.msl21.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/texture_buffer.texture-buffer-native.msl21.vert deleted file mode 100644 index 33c077c57a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/texture_buffer.texture-buffer-native.msl21.vert +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -vertex main0_out main0(texture_buffer uSamp [[texture(0)]], texture_buffer uSampo [[texture(1)]]) -{ - main0_out out = {}; - out.gl_Position = uSamp.read(uint(10)) + uSampo.read(uint(100)); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/texture_buffer.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/texture_buffer.vert deleted file mode 100644 index 3b3d92b565..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/texture_buffer.vert +++ /dev/null @@ -1,26 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -// Returns 2D texture coords corresponding to 1D texel buffer coords -static inline __attribute__((always_inline)) -uint2 spvTexelBufferCoord(uint tc) -{ - return uint2(tc % 4096, tc / 4096); -} - -vertex main0_out main0(texture2d uSamp [[texture(0)]], texture2d uSampo [[texture(1)]]) -{ - main0_out out = {}; - out.gl_Position = uSamp.read(spvTexelBufferCoord(10)) + uSampo.read(spvTexelBufferCoord(100)); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/ubo.alignment.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/ubo.alignment.vert deleted file mode 100644 index c48111ed67..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/ubo.alignment.vert +++ /dev/null @@ -1,38 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - float4x4 mvp; - float2 targSize; - char _m2_pad[8]; - packed_float3 color; - float opacity; -}; - -struct main0_out -{ - float3 vNormal [[user(locn0)]]; - float3 vColor [[user(locn1)]]; - float2 vSize [[user(locn2)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 aVertex [[attribute(0)]]; - float3 aNormal [[attribute(1)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant UBO& _18 [[buffer(0)]]) -{ - main0_out out = {}; - out.gl_Position = _18.mvp * in.aVertex; - out.vNormal = in.aNormal; - out.vColor = float3(_18.color) * _18.opacity; - out.vSize = _18.targSize * _18.opacity; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vert/ubo.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vert/ubo.vert deleted file mode 100644 index 86ba1e9687..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vert/ubo.vert +++ /dev/null @@ -1,30 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - float4x4 mvp; -}; - -struct main0_out -{ - float3 vNormal [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 aVertex [[attribute(0)]]; - float3 aNormal [[attribute(1)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant UBO& _16 [[buffer(0)]]) -{ - main0_out out = {}; - out.gl_Position = _16.mvp * in.aVertex; - out.vNormal = in.aNormal; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/frag/basic.multiview.no-layered.nocompat.vk.frag b/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/frag/basic.multiview.no-layered.nocompat.vk.frag deleted file mode 100644 index f0935f6dcf..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/frag/basic.multiview.no-layered.nocompat.vk.frag +++ /dev/null @@ -1,73 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 vColor [[user(locn0)]]; - float2 vTex_0 [[user(locn1)]]; - float2 vTex_1 [[user(locn2)]]; - float2 vTex_2 [[user(locn3)]]; - float2 vTex_3 [[user(locn4)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], constant uint* spvViewMask [[buffer(24)]], texture2d uTex [[texture(0)]], sampler uTexSmplr [[sampler(0)]]) -{ - main0_out out = {}; - spvUnsafeArray vTex = {}; - vTex[0] = in.vTex_0; - vTex[1] = in.vTex_1; - vTex[2] = in.vTex_2; - vTex[3] = in.vTex_3; - const uint gl_ViewIndex = spvViewMask[0]; - out.FragColor = in.vColor * uTex.sample(uTexSmplr, vTex[int(gl_ViewIndex)]); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/frag/basic.multiview.nocompat.vk.frag b/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/frag/basic.multiview.nocompat.vk.frag deleted file mode 100644 index 67895e3e92..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/frag/basic.multiview.nocompat.vk.frag +++ /dev/null @@ -1,73 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 vColor [[user(locn0)]]; - float2 vTex_0 [[user(locn1)]]; - float2 vTex_1 [[user(locn2)]]; - float2 vTex_2 [[user(locn3)]]; - float2 vTex_3 [[user(locn4)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], constant uint* spvViewMask [[buffer(24)]], texture2d uTex [[texture(0)]], sampler uTexSmplr [[sampler(0)]], uint gl_ViewIndex [[render_target_array_index]]) -{ - main0_out out = {}; - spvUnsafeArray vTex = {}; - vTex[0] = in.vTex_0; - vTex[1] = in.vTex_1; - vTex[2] = in.vTex_2; - vTex[3] = in.vTex_3; - gl_ViewIndex += spvViewMask[0]; - out.FragColor = in.vColor * uTex.sample(uTexSmplr, vTex[int(gl_ViewIndex)]); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/frag/demote-to-helper-forwarding.asm.vk.nocompat.msl23.frag b/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/frag/demote-to-helper-forwarding.asm.vk.nocompat.msl23.frag deleted file mode 100644 index 0992a7661b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/frag/demote-to-helper-forwarding.asm.vk.nocompat.msl23.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - bool _15 = simd_is_helper_thread(); - discard_fragment(); - if (!_15) - { - out.FragColor = float4(1.0, 0.0, 0.0, 1.0); - } - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/frag/demote-to-helper.vk.nocompat.msl23.frag b/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/frag/demote-to-helper.vk.nocompat.msl23.frag deleted file mode 100644 index fd306b3aa7..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/frag/demote-to-helper.vk.nocompat.msl23.frag +++ /dev/null @@ -1,11 +0,0 @@ -#include -#include - -using namespace metal; - -fragment void main0() -{ - discard_fragment(); - bool _9 = simd_is_helper_thread(); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/frag/demote-to-helper.vk.nocompat.msl23.ios.frag b/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/frag/demote-to-helper.vk.nocompat.msl23.ios.frag deleted file mode 100644 index fd306b3aa7..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/frag/demote-to-helper.vk.nocompat.msl23.ios.frag +++ /dev/null @@ -1,11 +0,0 @@ -#include -#include - -using namespace metal; - -fragment void main0() -{ - discard_fragment(); - bool _9 = simd_is_helper_thread(); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/frag/push-constant.vk.frag b/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/frag/push-constant.vk.frag deleted file mode 100644 index 7b8c502b32..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/frag/push-constant.vk.frag +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -using namespace metal; - -struct PushConstants -{ - float4 value0; - float4 value1; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 vColor [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], constant PushConstants& push [[buffer(0)]]) -{ - main0_out out = {}; - out.FragColor = (in.vColor + push.value0) + push.value1; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/frag/spec-constant.msl11.vk.frag b/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/frag/spec-constant.msl11.vk.frag deleted file mode 100644 index 6baf93f107..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/frag/spec-constant.msl11.vk.frag +++ /dev/null @@ -1,26 +0,0 @@ -#include -#include - -using namespace metal; - -#ifndef SPIRV_CROSS_CONSTANT_ID_1 -#define SPIRV_CROSS_CONSTANT_ID_1 1.0 -#endif -constant float a = SPIRV_CROSS_CONSTANT_ID_1; -#ifndef SPIRV_CROSS_CONSTANT_ID_2 -#define SPIRV_CROSS_CONSTANT_ID_2 2.0 -#endif -constant float b = SPIRV_CROSS_CONSTANT_ID_2; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - out.FragColor = float4(a + b); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/frag/spec-constant.vk.frag b/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/frag/spec-constant.vk.frag deleted file mode 100644 index aee290f5a2..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/frag/spec-constant.vk.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -constant float a_tmp [[function_constant(1)]]; -constant float a = is_function_constant_defined(a_tmp) ? a_tmp : 1.0; -constant float b_tmp [[function_constant(2)]]; -constant float b = is_function_constant_defined(b_tmp) ? b_tmp : 2.0; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - out.FragColor = float4(a + b); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/vert/device-group.multiview.viewfromdev.nocompat.vk.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/vert/device-group.multiview.viewfromdev.nocompat.vk.vert deleted file mode 100644 index e36576b86f..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/vert/device-group.multiview.viewfromdev.nocompat.vk.vert +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -vertex main0_out main0() -{ - main0_out out = {}; - const int gl_DeviceIndex = 0; - const uint gl_ViewIndex = 0; - out.gl_Position = float4(float(gl_DeviceIndex), float(int(gl_ViewIndex)), 0.0, 1.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/vert/device-group.nocompat.vk.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/vert/device-group.nocompat.vk.vert deleted file mode 100644 index cc4bcc4202..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/vert/device-group.nocompat.vk.vert +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -vertex main0_out main0() -{ - main0_out out = {}; - const int gl_DeviceIndex = 0; - out.gl_Position = float4(float(gl_DeviceIndex)); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/vert/multiview.multiview.no-layered.nocompat.vk.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/vert/multiview.multiview.no-layered.nocompat.vk.vert deleted file mode 100644 index 8959afe821..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/vert/multiview.multiview.no-layered.nocompat.vk.vert +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -using namespace metal; - -struct MVPs -{ - float4x4 MVP[2]; -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 Position [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant uint* spvViewMask [[buffer(24)]], constant MVPs& _19 [[buffer(0)]]) -{ - main0_out out = {}; - const uint gl_ViewIndex = spvViewMask[0]; - out.gl_Position = _19.MVP[int(gl_ViewIndex)] * in.Position; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/vert/multiview.multiview.nocompat.vk.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/vert/multiview.multiview.nocompat.vk.vert deleted file mode 100644 index 20eff0a124..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/vert/multiview.multiview.nocompat.vk.vert +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include - -using namespace metal; - -struct MVPs -{ - float4x4 MVP[2]; -}; - -struct main0_out -{ - float4 gl_Position [[position]]; - uint gl_Layer [[render_target_array_index]]; -}; - -struct main0_in -{ - float4 Position [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant uint* spvViewMask [[buffer(24)]], constant MVPs& _19 [[buffer(0)]], uint gl_InstanceIndex [[instance_id]], uint gl_BaseInstance [[base_instance]]) -{ - main0_out out = {}; - uint gl_ViewIndex = spvViewMask[0] + (gl_InstanceIndex - gl_BaseInstance) % spvViewMask[1]; - gl_InstanceIndex = (gl_InstanceIndex - gl_BaseInstance) / spvViewMask[1] + gl_BaseInstance; - out.gl_Position = _19.MVP[int(gl_ViewIndex)] * in.Position; - out.gl_Layer = gl_ViewIndex - spvViewMask[0]; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/vert/multiview.nocompat.vk.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/vert/multiview.nocompat.vk.vert deleted file mode 100644 index 5152b6222e..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/vert/multiview.nocompat.vk.vert +++ /dev/null @@ -1,29 +0,0 @@ -#include -#include - -using namespace metal; - -struct MVPs -{ - float4x4 MVP[2]; -}; - -struct main0_out -{ - float4 gl_Position [[position]]; - uint gl_Layer [[render_target_array_index]]; -}; - -struct main0_in -{ - float4 Position [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant MVPs& _19 [[buffer(0)]], uint gl_InstanceIndex [[instance_id]], uint gl_BaseInstance [[base_instance]]) -{ - main0_out out = {}; - const uint gl_ViewIndex = 0; - out.gl_Position = _19.MVP[int(gl_ViewIndex)] * in.Position; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/vert/small-storage.vk.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/vert/small-storage.vk.vert deleted file mode 100644 index c9ef91b247..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/vert/small-storage.vk.vert +++ /dev/null @@ -1,48 +0,0 @@ -#include -#include - -using namespace metal; - -struct block -{ - short2 a; - ushort2 b; - char2 c; - uchar2 d; - half2 e; -}; - -struct storage -{ - short3 f; - ushort3 g; - char3 h; - uchar3 i; - half3 j; -}; - -struct main0_out -{ - short4 p [[user(locn0)]]; - ushort4 q [[user(locn1)]]; - half4 r [[user(locn2)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - short foo [[attribute(0)]]; - ushort bar [[attribute(1)]]; - half baz [[attribute(2)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant block& _26 [[buffer(0)]], const device storage& _53 [[buffer(1)]]) -{ - main0_out out = {}; - out.p = short4((int4(int(in.foo)) + int4(int2(_26.a), int2(_26.c))) - int4(int3(_53.f) / int3(_53.h), 1)); - out.q = ushort4((uint4(uint(in.bar)) + uint4(uint2(_26.b), uint2(_26.d))) - uint4(uint3(_53.g) / uint3(_53.i), 1u)); - out.r = half4((float4(float(in.baz)) + float4(float2(_26.e), 0.0, 1.0)) - float4(float3(_53.j), 1.0)); - out.gl_Position = float4(0.0, 0.0, 0.0, 1.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/vert/vulkan-vertex.vk.vert b/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/vert/vulkan-vertex.vk.vert deleted file mode 100644 index 86a0cea5bb..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-msl/vulkan/vert/vulkan-vertex.vk.vert +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -vertex main0_out main0(uint gl_VertexIndex [[vertex_id]], uint gl_InstanceIndex [[instance_id]]) -{ - main0_out out = {}; - out.gl_Position = float4(1.0, 2.0, 3.0, 4.0) * float(int(gl_VertexIndex) + int(gl_InstanceIndex)); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/frag/depth-compare.asm.frag b/third_party/spirv-cross/reference/opt/shaders-ue4/asm/frag/depth-compare.asm.frag deleted file mode 100644 index 7f593efeef..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/frag/depth-compare.asm.frag +++ /dev/null @@ -1,314 +0,0 @@ -#include -#include - -using namespace metal; - -struct type_View -{ - float4x4 View_TranslatedWorldToClip; - float4x4 View_WorldToClip; - float4x4 View_TranslatedWorldToView; - float4x4 View_ViewToTranslatedWorld; - float4x4 View_TranslatedWorldToCameraView; - float4x4 View_CameraViewToTranslatedWorld; - float4x4 View_ViewToClip; - float4x4 View_ViewToClipNoAA; - float4x4 View_ClipToView; - float4x4 View_ClipToTranslatedWorld; - float4x4 View_SVPositionToTranslatedWorld; - float4x4 View_ScreenToWorld; - float4x4 View_ScreenToTranslatedWorld; - packed_float3 View_ViewForward; - float PrePadding_View_844; - packed_float3 View_ViewUp; - float PrePadding_View_860; - packed_float3 View_ViewRight; - float PrePadding_View_876; - packed_float3 View_HMDViewNoRollUp; - float PrePadding_View_892; - packed_float3 View_HMDViewNoRollRight; - float PrePadding_View_908; - float4 View_InvDeviceZToWorldZTransform; - float4 View_ScreenPositionScaleBias; - packed_float3 View_WorldCameraOrigin; - float PrePadding_View_956; - packed_float3 View_TranslatedWorldCameraOrigin; - float PrePadding_View_972; - packed_float3 View_WorldViewOrigin; - float PrePadding_View_988; - packed_float3 View_PreViewTranslation; - float PrePadding_View_1004; - float4x4 View_PrevProjection; - float4x4 View_PrevViewProj; - float4x4 View_PrevViewRotationProj; - float4x4 View_PrevViewToClip; - float4x4 View_PrevClipToView; - float4x4 View_PrevTranslatedWorldToClip; - float4x4 View_PrevTranslatedWorldToView; - float4x4 View_PrevViewToTranslatedWorld; - float4x4 View_PrevTranslatedWorldToCameraView; - float4x4 View_PrevCameraViewToTranslatedWorld; - packed_float3 View_PrevWorldCameraOrigin; - float PrePadding_View_1660; - packed_float3 View_PrevWorldViewOrigin; - float PrePadding_View_1676; - packed_float3 View_PrevPreViewTranslation; - float PrePadding_View_1692; - float4x4 View_PrevInvViewProj; - float4x4 View_PrevScreenToTranslatedWorld; - float4x4 View_ClipToPrevClip; - float4 View_TemporalAAJitter; - float4 View_GlobalClippingPlane; - float2 View_FieldOfViewWideAngles; - float2 View_PrevFieldOfViewWideAngles; - float4 View_ViewRectMin; - float4 View_ViewSizeAndInvSize; - float4 View_BufferSizeAndInvSize; - float4 View_BufferBilinearUVMinMax; - int View_NumSceneColorMSAASamples; - float View_PreExposure; - float View_OneOverPreExposure; - float PrePadding_View_2012; - float4 View_DiffuseOverrideParameter; - float4 View_SpecularOverrideParameter; - float4 View_NormalOverrideParameter; - float2 View_RoughnessOverrideParameter; - float View_PrevFrameGameTime; - float View_PrevFrameRealTime; - float View_OutOfBoundsMask; - float PrePadding_View_2084; - float PrePadding_View_2088; - float PrePadding_View_2092; - packed_float3 View_WorldCameraMovementSinceLastFrame; - float View_CullingSign; - float View_NearPlane; - float View_AdaptiveTessellationFactor; - float View_GameTime; - float View_RealTime; - float View_DeltaTime; - float View_MaterialTextureMipBias; - float View_MaterialTextureDerivativeMultiply; - uint View_Random; - uint View_FrameNumber; - uint View_StateFrameIndexMod8; - uint View_StateFrameIndex; - float View_CameraCut; - float View_UnlitViewmodeMask; - float PrePadding_View_2164; - float PrePadding_View_2168; - float PrePadding_View_2172; - float4 View_DirectionalLightColor; - packed_float3 View_DirectionalLightDirection; - float PrePadding_View_2204; - float4 View_TranslucencyLightingVolumeMin[2]; - float4 View_TranslucencyLightingVolumeInvSize[2]; - float4 View_TemporalAAParams; - float4 View_CircleDOFParams; - float View_DepthOfFieldSensorWidth; - float View_DepthOfFieldFocalDistance; - float View_DepthOfFieldScale; - float View_DepthOfFieldFocalLength; - float View_DepthOfFieldFocalRegion; - float View_DepthOfFieldNearTransitionRegion; - float View_DepthOfFieldFarTransitionRegion; - float View_MotionBlurNormalizedToPixel; - float View_bSubsurfacePostprocessEnabled; - float View_GeneralPurposeTweak; - float View_DemosaicVposOffset; - float PrePadding_View_2348; - packed_float3 View_IndirectLightingColorScale; - float View_HDR32bppEncodingMode; - packed_float3 View_AtmosphericFogSunDirection; - float View_AtmosphericFogSunPower; - float View_AtmosphericFogPower; - float View_AtmosphericFogDensityScale; - float View_AtmosphericFogDensityOffset; - float View_AtmosphericFogGroundOffset; - float View_AtmosphericFogDistanceScale; - float View_AtmosphericFogAltitudeScale; - float View_AtmosphericFogHeightScaleRayleigh; - float View_AtmosphericFogStartDistance; - float View_AtmosphericFogDistanceOffset; - float View_AtmosphericFogSunDiscScale; - uint View_AtmosphericFogRenderMask; - uint View_AtmosphericFogInscatterAltitudeSampleNum; - float4 View_AtmosphericFogSunColor; - packed_float3 View_NormalCurvatureToRoughnessScaleBias; - float View_RenderingReflectionCaptureMask; - float4 View_AmbientCubemapTint; - float View_AmbientCubemapIntensity; - float View_SkyLightParameters; - float PrePadding_View_2488; - float PrePadding_View_2492; - float4 View_SkyLightColor; - float4 View_SkyIrradianceEnvironmentMap[7]; - float View_MobilePreviewMode; - float View_HMDEyePaddingOffset; - float View_ReflectionCubemapMaxMip; - float View_ShowDecalsMask; - uint View_DistanceFieldAOSpecularOcclusionMode; - float View_IndirectCapsuleSelfShadowingIntensity; - float PrePadding_View_2648; - float PrePadding_View_2652; - packed_float3 View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight; - int View_StereoPassIndex; - float4 View_GlobalVolumeCenterAndExtent[4]; - float4 View_GlobalVolumeWorldToUVAddAndMul[4]; - float View_GlobalVolumeDimension; - float View_GlobalVolumeTexelSize; - float View_MaxGlobalDistance; - float View_bCheckerboardSubsurfaceProfileRendering; - packed_float3 View_VolumetricFogInvGridSize; - float PrePadding_View_2828; - packed_float3 View_VolumetricFogGridZParams; - float PrePadding_View_2844; - float2 View_VolumetricFogSVPosToVolumeUV; - float View_VolumetricFogMaxDistance; - float PrePadding_View_2860; - packed_float3 View_VolumetricLightmapWorldToUVScale; - float PrePadding_View_2876; - packed_float3 View_VolumetricLightmapWorldToUVAdd; - float PrePadding_View_2892; - packed_float3 View_VolumetricLightmapIndirectionTextureSize; - float View_VolumetricLightmapBrickSize; - packed_float3 View_VolumetricLightmapBrickTexelSize; - float View_StereoIPD; - float View_IndirectLightingCacheShowFlag; - float View_EyeToPixelSpreadAngle; -}; - -struct type_Globals -{ - float3 SoftTransitionScale; - float4x4 ShadowViewProjectionMatrices[6]; - float InvShadowmapResolution; - float ShadowFadeFraction; - float ShadowSharpen; - float4 LightPositionAndInvRadius; - float2 ProjectionDepthBiasParameters; - float4 PointLightDepthBiasAndProjParameters; -}; - -constant float4 _453 = {}; - -struct main0_out -{ - float4 out_var_SV_Target0 [[color(0)]]; -}; - -fragment main0_out main0(constant type_View& View [[buffer(0)]], constant type_Globals& _Globals [[buffer(1)]], texture2d SceneTexturesStruct_SceneDepthTexture [[texture(0)]], texture2d SceneTexturesStruct_GBufferATexture [[texture(1)]], texture2d SceneTexturesStruct_GBufferBTexture [[texture(2)]], texture2d SceneTexturesStruct_GBufferDTexture [[texture(3)]], depthcube ShadowDepthCubeTexture [[texture(4)]], texture2d SSProfilesTexture [[texture(5)]], sampler SceneTexturesStruct_SceneDepthTextureSampler [[sampler(0)]], sampler SceneTexturesStruct_GBufferATextureSampler [[sampler(1)]], sampler SceneTexturesStruct_GBufferBTextureSampler [[sampler(2)]], sampler SceneTexturesStruct_GBufferDTextureSampler [[sampler(3)]], sampler ShadowDepthTextureSampler [[sampler(4)]], sampler ShadowDepthCubeTextureSampler [[sampler(5)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - float2 _114 = gl_FragCoord.xy * View.View_BufferSizeAndInvSize.zw; - float4 _118 = SceneTexturesStruct_SceneDepthTexture.sample(SceneTexturesStruct_SceneDepthTextureSampler, _114, level(0.0)); - float _119 = _118.x; - float _133 = ((_119 * View.View_InvDeviceZToWorldZTransform.x) + View.View_InvDeviceZToWorldZTransform.y) + (1.0 / ((_119 * View.View_InvDeviceZToWorldZTransform.z) - View.View_InvDeviceZToWorldZTransform.w)); - float4 _147 = View.View_ScreenToWorld * float4(((_114 - View.View_ScreenPositionScaleBias.wz) / View.View_ScreenPositionScaleBias.xy) * float2(_133), _133, 1.0); - float3 _148 = _147.xyz; - float3 _152 = _Globals.LightPositionAndInvRadius.xyz - _148; - float _158 = length(_152); - bool _160 = (_158 * _Globals.LightPositionAndInvRadius.w) < 1.0; - float _207; - if (_160) - { - float3 _165 = abs(_152); - float _166 = _165.x; - float _167 = _165.y; - float _168 = _165.z; - float _170 = fast::max(_166, fast::max(_167, _168)); - int _189; - if (_170 == _166) - { - _189 = (_166 == _152.x) ? 0 : 1; - } - else - { - int _185; - if (_170 == _167) - { - _185 = (_167 == _152.y) ? 2 : 3; - } - else - { - _185 = (_168 == _152.z) ? 4 : 5; - } - _189 = _185; - } - float4 _196 = _Globals.ShadowViewProjectionMatrices[_189] * float4(_147.xyz, 1.0); - float _198 = _196.w; - _207 = ShadowDepthCubeTexture.sample_compare(ShadowDepthCubeTextureSampler, (_152 / float3(_158)), (_196.z / _198) + ((-_Globals.PointLightDepthBiasAndProjParameters.x) / _198), level(0.0)); - } - else - { - _207 = 1.0; - } - float _213 = fast::clamp(((_207 - 0.5) * _Globals.ShadowSharpen) + 0.5, 0.0, 1.0); - float _218 = sqrt(mix(1.0, _213 * _213, _Globals.ShadowFadeFraction)); - float4 _219 = _453; - _219.z = _218; - float3 _236 = normalize((SceneTexturesStruct_GBufferATexture.sample(SceneTexturesStruct_GBufferATextureSampler, _114, level(0.0)).xyz * float3(2.0)) - float3(1.0)); - uint _240 = uint(round(SceneTexturesStruct_GBufferBTexture.sample(SceneTexturesStruct_GBufferBTextureSampler, _114, level(0.0)).w * 255.0)); - bool _248 = (_240 & 15u) == 5u; - float _448; - if (_248) - { - float4 _260 = SSProfilesTexture.read(uint2(int3(1, int(uint((select(float4(0.0), SceneTexturesStruct_GBufferDTexture.sample(SceneTexturesStruct_GBufferDTextureSampler, _114, level(0.0)), bool4(!(((_240 & 4294967280u) & 16u) != 0u))).x * 255.0) + 0.5)), 0).xy), 0); - float _263 = _260.y * 0.5; - float _274 = pow(fast::clamp(dot(-(_152 * float3(rsqrt(dot(_152, _152)))), _236), 0.0, 1.0), 1.0); - float _445; - if (_160) - { - float3 _278 = _152 / float3(_158); - float3 _280 = normalize(cross(_278, float3(0.0, 0.0, 1.0))); - float3 _284 = float3(_Globals.InvShadowmapResolution); - float3 _285 = _280 * _284; - float3 _286 = cross(_280, _278) * _284; - float3 _287 = abs(_278); - float _288 = _287.x; - float _289 = _287.y; - float _290 = _287.z; - float _292 = fast::max(_288, fast::max(_289, _290)); - int _311; - if (_292 == _288) - { - _311 = (_288 == _278.x) ? 0 : 1; - } - else - { - int _307; - if (_292 == _289) - { - _307 = (_289 == _278.y) ? 2 : 3; - } - else - { - _307 = (_290 == _278.z) ? 4 : 5; - } - _311 = _307; - } - float4 _318 = _Globals.ShadowViewProjectionMatrices[_311] * float4(_148 - (_236 * float3(_263)), 1.0); - float _323 = _260.x * (10.0 / _Globals.LightPositionAndInvRadius.w); - float _329 = (1.0 / (((_318.z / _318.w) * _Globals.PointLightDepthBiasAndProjParameters.z) - _Globals.PointLightDepthBiasAndProjParameters.w)) * _Globals.LightPositionAndInvRadius.w; - float _342 = (_329 - ((1.0 / ((float4(ShadowDepthCubeTexture.sample(ShadowDepthTextureSampler, (_278 + (_286 * float3(2.5))), level(0.0))).x * _Globals.PointLightDepthBiasAndProjParameters.z) - _Globals.PointLightDepthBiasAndProjParameters.w)) * _Globals.LightPositionAndInvRadius.w)) * _323; - float _364 = (_329 - ((1.0 / ((float4(ShadowDepthCubeTexture.sample(ShadowDepthTextureSampler, ((_278 + (_285 * float3(2.3776409626007080078125))) + (_286 * float3(0.77254199981689453125))), level(0.0))).x * _Globals.PointLightDepthBiasAndProjParameters.z) - _Globals.PointLightDepthBiasAndProjParameters.w)) * _Globals.LightPositionAndInvRadius.w)) * _323; - float _387 = (_329 - ((1.0 / ((float4(ShadowDepthCubeTexture.sample(ShadowDepthTextureSampler, ((_278 + (_285 * float3(1.46946299076080322265625))) + (_286 * float3(-2.0225429534912109375))), level(0.0))).x * _Globals.PointLightDepthBiasAndProjParameters.z) - _Globals.PointLightDepthBiasAndProjParameters.w)) * _Globals.LightPositionAndInvRadius.w)) * _323; - float _410 = (_329 - ((1.0 / ((float4(ShadowDepthCubeTexture.sample(ShadowDepthTextureSampler, ((_278 + (_285 * float3(-1.46946299076080322265625))) + (_286 * float3(-2.02254199981689453125))), level(0.0))).x * _Globals.PointLightDepthBiasAndProjParameters.z) - _Globals.PointLightDepthBiasAndProjParameters.w)) * _Globals.LightPositionAndInvRadius.w)) * _323; - float _433 = (_329 - ((1.0 / ((float4(ShadowDepthCubeTexture.sample(ShadowDepthTextureSampler, ((_278 + (_285 * float3(-2.3776409626007080078125))) + (_286 * float3(0.772543013095855712890625))), level(0.0))).x * _Globals.PointLightDepthBiasAndProjParameters.z) - _Globals.PointLightDepthBiasAndProjParameters.w)) * _Globals.LightPositionAndInvRadius.w)) * _323; - _445 = (((((fast::clamp(abs((_342 > 0.0) ? (_342 + _263) : fast::max(0.0, (_342 * _274) + _263)), 0.1500000059604644775390625, 5.0) + 0.25) + (fast::clamp(abs((_364 > 0.0) ? (_364 + _263) : fast::max(0.0, (_364 * _274) + _263)), 0.1500000059604644775390625, 5.0) + 0.25)) + (fast::clamp(abs((_387 > 0.0) ? (_387 + _263) : fast::max(0.0, (_387 * _274) + _263)), 0.1500000059604644775390625, 5.0) + 0.25)) + (fast::clamp(abs((_410 > 0.0) ? (_410 + _263) : fast::max(0.0, (_410 * _274) + _263)), 0.1500000059604644775390625, 5.0) + 0.25)) + (fast::clamp(abs((_433 > 0.0) ? (_433 + _263) : fast::max(0.0, (_433 * _274) + _263)), 0.1500000059604644775390625, 5.0) + 0.25)) * 0.20000000298023223876953125; - } - else - { - _445 = 1.0; - } - _448 = 1.0 - (_445 * 0.20000000298023223876953125); - } - else - { - _448 = 1.0; - } - float4 _451 = float4(float3(1.0).x, float3(1.0).y, _219.z, float3(1.0).z); - _451.w = _248 ? sqrt(_448) : _218; - out.out_var_SV_Target0 = _451; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/frag/global-constant-arrays.asm.frag b/third_party/spirv-cross/reference/opt/shaders-ue4/asm/frag/global-constant-arrays.asm.frag deleted file mode 100644 index c10e3915bb..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/frag/global-constant-arrays.asm.frag +++ /dev/null @@ -1,1141 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct type_Globals -{ - float4 MappingPolynomial; - float3 InverseGamma; - float4 ColorMatrixR_ColorCurveCd1; - float4 ColorMatrixG_ColorCurveCd3Cm3; - float4 ColorMatrixB_ColorCurveCm2; - float4 ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3; - float4 ColorCurve_Ch1_Ch2; - float4 ColorShadow_Luma; - float4 ColorShadow_Tint1; - float4 ColorShadow_Tint2; - float FilmSlope; - float FilmToe; - float FilmShoulder; - float FilmBlackClip; - float FilmWhiteClip; - packed_float3 ColorScale; - float4 OverlayColor; - float WhiteTemp; - float WhiteTint; - float4 ColorSaturation; - float4 ColorContrast; - float4 ColorGamma; - float4 ColorGain; - float4 ColorOffset; - float4 ColorSaturationShadows; - float4 ColorContrastShadows; - float4 ColorGammaShadows; - float4 ColorGainShadows; - float4 ColorOffsetShadows; - float4 ColorSaturationMidtones; - float4 ColorContrastMidtones; - float4 ColorGammaMidtones; - float4 ColorGainMidtones; - float4 ColorOffsetMidtones; - float4 ColorSaturationHighlights; - float4 ColorContrastHighlights; - float4 ColorGammaHighlights; - float4 ColorGainHighlights; - float4 ColorOffsetHighlights; - float ColorCorrectionShadowsMax; - float ColorCorrectionHighlightsMin; - uint OutputDevice; - uint OutputGamut; - float BlueCorrection; - float ExpandGamut; -}; - -constant spvUnsafeArray _475 = spvUnsafeArray({ -4.0, -4.0, -3.1573765277862548828125, -0.485249996185302734375, 1.84773242473602294921875, 1.84773242473602294921875 }); -constant spvUnsafeArray _476 = spvUnsafeArray({ -0.718548238277435302734375, 2.0810306072235107421875, 3.66812419891357421875, 4.0, 4.0, 4.0 }); -constant spvUnsafeArray _479 = spvUnsafeArray({ -4.97062206268310546875, -3.0293781757354736328125, -2.1261999607086181640625, -1.5104999542236328125, -1.0578000545501708984375, -0.4668000042438507080078125, 0.11937999725341796875, 0.7088134288787841796875, 1.2911865711212158203125, 1.2911865711212158203125 }); -constant spvUnsafeArray _480 = spvUnsafeArray({ 0.80891323089599609375, 1.19108676910400390625, 1.5683000087738037109375, 1.94830000400543212890625, 2.308300018310546875, 2.63840007781982421875, 2.85949993133544921875, 2.9872608184814453125, 3.0127391815185546875, 3.0127391815185546875 }); -constant spvUnsafeArray _482 = spvUnsafeArray({ -2.3010299205780029296875, -2.3010299205780029296875, -1.9312000274658203125, -1.5204999446868896484375, -1.0578000545501708984375, -0.4668000042438507080078125, 0.11937999725341796875, 0.7088134288787841796875, 1.2911865711212158203125, 1.2911865711212158203125 }); -constant spvUnsafeArray _483 = spvUnsafeArray({ 0.801995217800140380859375, 1.19800484180450439453125, 1.5943000316619873046875, 1.99730002880096435546875, 2.3782999515533447265625, 2.7683999538421630859375, 3.0515000820159912109375, 3.2746293544769287109375, 3.32743072509765625, 3.32743072509765625 }); - -constant float3 _391 = {}; - -struct main0_out -{ - float4 out_var_SV_Target0 [[color(0)]]; -}; - -struct main0_in -{ - float2 in_var_TEXCOORD0 [[user(locn0), center_no_perspective]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], constant type_Globals& _Globals [[buffer(0)]], uint gl_Layer [[render_target_array_index]]) -{ - main0_out out = {}; - float3x3 _546 = float3x3(float3(0.41245639324188232421875, 0.3575761020183563232421875, 0.180437505245208740234375), float3(0.21267290413379669189453125, 0.715152204036712646484375, 0.072175003588199615478515625), float3(0.01933390088379383087158203125, 0.119191996753215789794921875, 0.950304090976715087890625)) * float3x3(float3(1.01303005218505859375, 0.0061053098179399967193603515625, -0.014971000142395496368408203125), float3(0.0076982299797236919403076171875, 0.99816501140594482421875, -0.005032029934227466583251953125), float3(-0.0028413101099431514739990234375, 0.0046851597726345062255859375, 0.92450702190399169921875)); - float3x3 _547 = _546 * float3x3(float3(1.6410233974456787109375, -0.324803292751312255859375, -0.23642469942569732666015625), float3(-0.663662850856781005859375, 1.6153316497802734375, 0.016756348311901092529296875), float3(0.01172189414501190185546875, -0.008284442126750946044921875, 0.98839485645294189453125)); - float3x3 _548 = float3x3(float3(0.662454187870025634765625, 0.1340042054653167724609375, 0.1561876833438873291015625), float3(0.272228717803955078125, 0.674081742763519287109375, 0.053689517080783843994140625), float3(-0.0055746496655046939849853515625, 0.0040607335977256298065185546875, 1.01033914089202880859375)) * float3x3(float3(0.98722398281097412109375, -0.0061132698319852352142333984375, 0.01595330052077770233154296875), float3(-0.007598360069096088409423828125, 1.00186002254486083984375, 0.0053300200961530208587646484375), float3(0.003072570078074932098388671875, -0.0050959498621523380279541015625, 1.0816800594329833984375)); - float3x3 _549 = _548 * float3x3(float3(3.2409698963165283203125, -1.53738319873809814453125, -0.4986107647418975830078125), float3(-0.96924364566802978515625, 1.875967502593994140625, 0.0415550582110881805419921875), float3(0.055630080401897430419921875, -0.2039769589900970458984375, 1.05697154998779296875)); - float3x3 _550 = float3x3(float3(0.952552378177642822265625, 0.0, 9.25), float3(0.3439664542675018310546875, 0.728166103363037109375, -0.07213254272937774658203125), float3(0.0, 0.0, 1.00882518291473388671875)) * float3x3(float3(1.6410233974456787109375, -0.324803292751312255859375, -0.23642469942569732666015625), float3(-0.663662850856781005859375, 1.6153316497802734375, 0.016756348311901092529296875), float3(0.01172189414501190185546875, -0.008284442126750946044921875, 0.98839485645294189453125)); - float3x3 _551 = float3x3(float3(0.662454187870025634765625, 0.1340042054653167724609375, 0.1561876833438873291015625), float3(0.272228717803955078125, 0.674081742763519287109375, 0.053689517080783843994140625), float3(-0.0055746496655046939849853515625, 0.0040607335977256298065185546875, 1.01033914089202880859375)) * float3x3(float3(1.04981100559234619140625, 0.0, -9.74845024757087230682373046875e-05), float3(-0.49590301513671875, 1.37331306934356689453125, 0.09824003279209136962890625), float3(0.0, 0.0, 0.991252005100250244140625)); - float3x3 _576; - for (;;) - { - if (_Globals.OutputGamut == 1u) - { - _576 = _548 * float3x3(float3(2.493396282196044921875, -0.931345880031585693359375, -0.4026944935321807861328125), float3(-0.829486787319183349609375, 1.76265966892242431640625, 0.02362460084259510040283203125), float3(0.0358506999909877777099609375, -0.076182700693607330322265625, 0.957014024257659912109375)); - break; - } - else - { - if (_Globals.OutputGamut == 2u) - { - _576 = _548 * float3x3(float3(1.71660840511322021484375, -0.3556621074676513671875, -0.253360092639923095703125), float3(-0.666682898998260498046875, 1.61647760868072509765625, 0.01576850004494190216064453125), float3(0.017642199993133544921875, -0.04277630150318145751953125, 0.94222867488861083984375)); - break; - } - else - { - if (_Globals.OutputGamut == 3u) - { - _576 = float3x3(float3(0.695452213287353515625, 0.140678703784942626953125, 0.16386906802654266357421875), float3(0.0447945632040500640869140625, 0.859671115875244140625, 0.095534317195415496826171875), float3(-0.0055258828215301036834716796875, 0.0040252101607620716094970703125, 1.00150072574615478515625)); - break; - } - else - { - if (_Globals.OutputGamut == 4u) - { - _576 = float3x3(float3(1.0, 0.0, 0.0), float3(0.0, 1.0, 0.0), float3(0.0, 0.0, 1.0)); - break; - } - else - { - _576 = _549; - break; - } - } - } - } - } - float3 _577 = float4((in.in_var_TEXCOORD0 - float2(0.015625)) * float2(1.03225803375244140625), float(gl_Layer) * 0.0322580635547637939453125, 0.0).xyz; - float3 _599; - if (_Globals.OutputDevice >= 3u) - { - float3 _591 = pow(_577, float3(0.0126833133399486541748046875)); - _599 = pow(fast::max(float3(0.0), _591 - float3(0.8359375)) / (float3(18.8515625) - (float3(18.6875) * _591)), float3(6.277394771575927734375)) * float3(10000.0); - } - else - { - _599 = (exp2((_577 - float3(0.434017598628997802734375)) * float3(14.0)) * float3(0.180000007152557373046875)) - float3(0.00266771926544606685638427734375); - } - float _602 = _Globals.WhiteTemp * 1.00055634975433349609375; - float _616 = (_602 <= 7000.0) ? (0.24406300485134124755859375 + ((99.1100006103515625 + ((2967800.0 - (4604438528.0 / _Globals.WhiteTemp)) / _602)) / _602)) : (0.23703999817371368408203125 + ((247.4799957275390625 + ((1901800.0 - (2005284352.0 / _Globals.WhiteTemp)) / _602)) / _602)); - float _633 = ((0.860117733478546142578125 + (0.00015411825734190642833709716796875 * _Globals.WhiteTemp)) + ((1.2864121856637211749330163002014e-07 * _Globals.WhiteTemp) * _Globals.WhiteTemp)) / ((1.0 + (0.0008424202096648514270782470703125 * _Globals.WhiteTemp)) + ((7.0814513719597016461193561553955e-07 * _Globals.WhiteTemp) * _Globals.WhiteTemp)); - float _644 = ((0.317398726940155029296875 + (4.25 * _Globals.WhiteTemp)) + ((4.2048167614439080352894961833954e-08 * _Globals.WhiteTemp) * _Globals.WhiteTemp)) / ((1.0 - (2.8974181986995972692966461181641e-05 * _Globals.WhiteTemp)) + ((1.6145605741257895715534687042236e-07 * _Globals.WhiteTemp) * _Globals.WhiteTemp)); - float _649 = ((2.0 * _633) - (8.0 * _644)) + 4.0; - float2 _653 = float2((3.0 * _633) / _649, (2.0 * _644) / _649); - float2 _660 = normalize(float2(_633, _644)); - float _665 = _633 + (((-_660.y) * _Globals.WhiteTint) * 0.0500000007450580596923828125); - float _669 = _644 + ((_660.x * _Globals.WhiteTint) * 0.0500000007450580596923828125); - float _674 = ((2.0 * _665) - (8.0 * _669)) + 4.0; - float2 _680 = select(float2(_616, (_616 * (((-3.0) * _616) + 2.86999988555908203125)) - 0.2750000059604644775390625), _653, bool2(_Globals.WhiteTemp < 4000.0)) + (float2((3.0 * _665) / _674, (2.0 * _669) / _674) - _653); - float _681 = _680.x; - float _682 = _680.y; - float _683 = fast::max(_682, 1.0000000133514319600180897396058e-10); - float3 _685 = _391; - _685.x = _681 / _683; - float3 _686 = _685; - _686.y = 1.0; - float3 _690 = _686; - _690.z = ((1.0 - _681) - _682) / _683; - float3 _693 = _391; - _693.x = 0.950455963611602783203125; - float3 _694 = _693; - _694.y = 1.0; - float3 _696 = _694; - _696.z = 1.0890576839447021484375; - float3 _697 = _690 * float3x3(float3(0.89509999752044677734375, 0.2664000093936920166015625, -0.16140000522136688232421875), float3(-0.750199973583221435546875, 1.71350002288818359375, 0.0366999991238117218017578125), float3(0.0388999991118907928466796875, -0.06849999725818634033203125, 1.02960002422332763671875)); - float3 _698 = _696 * float3x3(float3(0.89509999752044677734375, 0.2664000093936920166015625, -0.16140000522136688232421875), float3(-0.750199973583221435546875, 1.71350002288818359375, 0.0366999991238117218017578125), float3(0.0388999991118907928466796875, -0.06849999725818634033203125, 1.02960002422332763671875)); - float3 _717 = (_599 * ((float3x3(float3(0.41245639324188232421875, 0.3575761020183563232421875, 0.180437505245208740234375), float3(0.21267290413379669189453125, 0.715152204036712646484375, 0.072175003588199615478515625), float3(0.01933390088379383087158203125, 0.119191996753215789794921875, 0.950304090976715087890625)) * ((float3x3(float3(0.89509999752044677734375, 0.2664000093936920166015625, -0.16140000522136688232421875), float3(-0.750199973583221435546875, 1.71350002288818359375, 0.0366999991238117218017578125), float3(0.0388999991118907928466796875, -0.06849999725818634033203125, 1.02960002422332763671875)) * float3x3(float3(_698.x / _697.x, 0.0, 0.0), float3(0.0, _698.y / _697.y, 0.0), float3(0.0, 0.0, _698.z / _697.z))) * float3x3(float3(0.986992895603179931640625, -0.14705429971218109130859375, 0.15996269881725311279296875), float3(0.4323053061962127685546875, 0.518360316753387451171875, 0.049291200935840606689453125), float3(-0.00852870009839534759521484375, 0.0400427989661693572998046875, 0.968486726284027099609375)))) * float3x3(float3(3.2409698963165283203125, -1.53738319873809814453125, -0.4986107647418975830078125), float3(-0.96924364566802978515625, 1.875967502593994140625, 0.0415550582110881805419921875), float3(0.055630080401897430419921875, -0.2039769589900970458984375, 1.05697154998779296875)))) * _547; - float3 _745; - if (_Globals.ColorShadow_Tint2.w != 0.0) - { - float _724 = dot(_717, float3(0.272228717803955078125, 0.674081742763519287109375, 0.053689517080783843994140625)); - float3 _727 = (_717 / float3(_724)) - float3(1.0); - _745 = mix(_717, _717 * (_549 * (float3x3(float3(0.544169127941131591796875, 0.23959259688854217529296875, 0.16669429838657379150390625), float3(0.23946559429168701171875, 0.702153027057647705078125, 0.058381401002407073974609375), float3(-0.0023439000360667705535888671875, 0.0361833982169628143310546875, 1.05521833896636962890625)) * float3x3(float3(1.6410233974456787109375, -0.324803292751312255859375, -0.23642469942569732666015625), float3(-0.663662850856781005859375, 1.6153316497802734375, 0.016756348311901092529296875), float3(0.01172189414501190185546875, -0.008284442126750946044921875, 0.98839485645294189453125)))), float3((1.0 - exp2((-4.0) * dot(_727, _727))) * (1.0 - exp2((((-4.0) * _Globals.ExpandGamut) * _724) * _724)))); - } - else - { - _745 = _717; - } - float _746 = dot(_745, float3(0.272228717803955078125, 0.674081742763519287109375, 0.053689517080783843994140625)); - float4 _751 = _Globals.ColorSaturationShadows * _Globals.ColorSaturation; - float4 _756 = _Globals.ColorContrastShadows * _Globals.ColorContrast; - float4 _761 = _Globals.ColorGammaShadows * _Globals.ColorGamma; - float4 _766 = _Globals.ColorGainShadows * _Globals.ColorGain; - float4 _771 = _Globals.ColorOffsetShadows + _Globals.ColorOffset; - float3 _772 = float3(_746); - float _804 = smoothstep(0.0, _Globals.ColorCorrectionShadowsMax, _746); - float4 _808 = _Globals.ColorSaturationHighlights * _Globals.ColorSaturation; - float4 _811 = _Globals.ColorContrastHighlights * _Globals.ColorContrast; - float4 _814 = _Globals.ColorGammaHighlights * _Globals.ColorGamma; - float4 _817 = _Globals.ColorGainHighlights * _Globals.ColorGain; - float4 _820 = _Globals.ColorOffsetHighlights + _Globals.ColorOffset; - float _852 = smoothstep(_Globals.ColorCorrectionHighlightsMin, 1.0, _746); - float4 _855 = _Globals.ColorSaturationMidtones * _Globals.ColorSaturation; - float4 _858 = _Globals.ColorContrastMidtones * _Globals.ColorContrast; - float4 _861 = _Globals.ColorGammaMidtones * _Globals.ColorGamma; - float4 _864 = _Globals.ColorGainMidtones * _Globals.ColorGain; - float4 _867 = _Globals.ColorOffsetMidtones + _Globals.ColorOffset; - float3 _905 = ((((pow(pow(fast::max(float3(0.0), mix(_772, _745, _751.xyz * float3(_751.w))) * float3(5.5555553436279296875), _756.xyz * float3(_756.w)) * float3(0.180000007152557373046875), float3(1.0) / (_761.xyz * float3(_761.w))) * (_766.xyz * float3(_766.w))) + (_771.xyz + float3(_771.w))) * float3(1.0 - _804)) + (((pow(pow(fast::max(float3(0.0), mix(_772, _745, _855.xyz * float3(_855.w))) * float3(5.5555553436279296875), _858.xyz * float3(_858.w)) * float3(0.180000007152557373046875), float3(1.0) / (_861.xyz * float3(_861.w))) * (_864.xyz * float3(_864.w))) + (_867.xyz + float3(_867.w))) * float3(_804 - _852))) + (((pow(pow(fast::max(float3(0.0), mix(_772, _745, _808.xyz * float3(_808.w))) * float3(5.5555553436279296875), _811.xyz * float3(_811.w)) * float3(0.180000007152557373046875), float3(1.0) / (_814.xyz * float3(_814.w))) * (_817.xyz * float3(_817.w))) + (_820.xyz + float3(_820.w))) * float3(_852)); - float3 _906 = _905 * _549; - float3 _914 = float3(_Globals.BlueCorrection); - float3 _916 = mix(_905, _905 * ((_551 * float3x3(float3(0.940437257289886474609375, -0.01830687932670116424560546875, 0.07786960899829864501953125), float3(0.008378696627914905548095703125, 0.82866001129150390625, 0.162961304187774658203125), float3(0.0005471261101774871349334716796875, -0.00088337459601461887359619140625, 1.00033628940582275390625))) * _550), _914) * _551; - float _917 = _916.x; - float _918 = _916.y; - float _920 = _916.z; - float _923 = fast::max(fast::max(_917, _918), _920); - float _928 = (fast::max(_923, 1.0000000133514319600180897396058e-10) - fast::max(fast::min(fast::min(_917, _918), _920), 1.0000000133514319600180897396058e-10)) / fast::max(_923, 0.00999999977648258209228515625); - float _941 = ((_920 + _918) + _917) + (1.75 * sqrt(((_920 * (_920 - _918)) + (_918 * (_918 - _917))) + (_917 * (_917 - _920)))); - float _942 = _941 * 0.3333333432674407958984375; - float _943 = _928 - 0.4000000059604644775390625; - float _948 = fast::max(1.0 - abs(_943 * 2.5), 0.0); - float _956 = (1.0 + (float(int(sign(_943 * 5.0))) * (1.0 - (_948 * _948)))) * 0.02500000037252902984619140625; - float _969; - if (_942 <= 0.053333334624767303466796875) - { - _969 = _956; - } - else - { - float _968; - if (_942 >= 0.1599999964237213134765625) - { - _968 = 0.0; - } - else - { - _968 = _956 * ((0.23999999463558197021484375 / _941) - 0.5); - } - _969 = _968; - } - float3 _972 = _916 * float3(1.0 + _969); - float _973 = _972.x; - float _974 = _972.y; - float _976 = _972.z; - float _990; - if ((_973 == _974) && (_974 == _976)) - { - _990 = 0.0; - } - else - { - _990 = 57.2957763671875 * atan2(1.73205077648162841796875 * (_974 - _976), ((2.0 * _973) - _974) - _976); - } - float _995; - if (_990 < 0.0) - { - _995 = _990 + 360.0; - } - else - { - _995 = _990; - } - float _996 = fast::clamp(_995, 0.0, 360.0); - float _1001; - if (_996 > 180.0) - { - _1001 = _996 - 360.0; - } - else - { - _1001 = _996; - } - float _1005 = smoothstep(0.0, 1.0, 1.0 - abs(_1001 * 0.01481481455266475677490234375)); - float3 _1012 = _972; - _1012.x = _973 + ((((_1005 * _1005) * _928) * (0.02999999932944774627685546875 - _973)) * 0.180000007152557373046875); - float3 _1014 = fast::max(float3(0.0), _1012 * float3x3(float3(1.45143926143646240234375, -0.236510753631591796875, -0.214928567409515380859375), float3(-0.07655377686023712158203125, 1.1762297153472900390625, -0.0996759235858917236328125), float3(0.0083161480724811553955078125, -0.0060324496589601039886474609375, 0.99771630764007568359375))); - float _1023 = (1.0 + _Globals.FilmBlackClip) - _Globals.FilmToe; - float _1026 = 1.0 + _Globals.FilmWhiteClip; - float _1029 = _1026 - _Globals.FilmShoulder; - float _1056; - if (_Globals.FilmToe > 0.800000011920928955078125) - { - _1056 = ((0.819999992847442626953125 - _Globals.FilmToe) / _Globals.FilmSlope) + (-0.744727432727813720703125); - } - else - { - float _1035 = (0.180000007152557373046875 + _Globals.FilmBlackClip) / _1023; - _1056 = (-0.744727432727813720703125) - ((0.5 * log(_1035 / (2.0 - _1035))) * (_1023 / _Globals.FilmSlope)); - } - float _1061 = ((1.0 - _Globals.FilmToe) / _Globals.FilmSlope) - _1056; - float _1063 = (_Globals.FilmShoulder / _Globals.FilmSlope) - _1061; - float3 _1067 = log(mix(float3(dot(_1014, float3(0.272228717803955078125, 0.674081742763519287109375, 0.053689517080783843994140625))), _1014, float3(0.959999978542327880859375))) * float3(0.4342944622039794921875); - float3 _1071 = float3(_Globals.FilmSlope) * (_1067 + float3(_1061)); - float3 _1079 = float3(_1056); - float3 _1080 = _1067 - _1079; - float3 _1092 = float3(_1063); - float3 _1106 = fast::clamp(_1080 / float3(_1063 - _1056), float3(0.0), float3(1.0)); - float3 _1110 = select(_1106, float3(1.0) - _1106, bool3(_1063 < _1056)); - float3 _1115 = mix(select(_1071, float3(-_Globals.FilmBlackClip) + (float3(2.0 * _1023) / (float3(1.0) + exp(float3(((-2.0) * _Globals.FilmSlope) / _1023) * _1080))), _1067 < _1079), select(_1071, float3(_1026) - (float3(2.0 * _1029) / (float3(1.0) + exp(float3((2.0 * _Globals.FilmSlope) / _1029) * (_1067 - _1092)))), _1067 > _1092), ((float3(3.0) - (float3(2.0) * _1110)) * _1110) * _1110); - float3 _1119 = fast::max(float3(0.0), mix(float3(dot(_1115, float3(0.272228717803955078125, 0.674081742763519287109375, 0.053689517080783843994140625))), _1115, float3(0.930000007152557373046875))); - float3 _1189; - if (_Globals.ColorShadow_Tint2.w == 0.0) - { - float3 _1131 = _391; - _1131.x = dot(_906, _Globals.ColorMatrixR_ColorCurveCd1.xyz); - float3 _1136 = _1131; - _1136.y = dot(_906, _Globals.ColorMatrixG_ColorCurveCd3Cm3.xyz); - float3 _1141 = _1136; - _1141.z = dot(_906, _Globals.ColorMatrixB_ColorCurveCm2.xyz); - float3 _1157 = fast::max(float3(0.0), _1141 * (_Globals.ColorShadow_Tint1.xyz + (_Globals.ColorShadow_Tint2.xyz * float3(1.0 / (dot(_906, _Globals.ColorShadow_Luma.xyz) + 1.0))))); - float3 _1162 = fast::max(float3(0.0), _Globals.ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3.xxx - _1157); - float3 _1164 = fast::max(_1157, _Globals.ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3.zzz); - _1189 = ((((_1164 * _Globals.ColorCurve_Ch1_Ch2.xxx) + _Globals.ColorCurve_Ch1_Ch2.yyy) * (float3(1.0) / (_1164 + _Globals.ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3.www))) + ((fast::clamp(_1157, _Globals.ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3.xxx, _Globals.ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3.zzz) * _Globals.ColorMatrixB_ColorCurveCm2.www) + (((_1162 * _Globals.ColorMatrixR_ColorCurveCd1.www) * (float3(1.0) / (_1162 + _Globals.ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3.yyy))) + _Globals.ColorMatrixG_ColorCurveCd3Cm3.www))) - float3(0.00200000009499490261077880859375); - } - else - { - _1189 = fast::max(float3(0.0), mix(_1119, _1119 * ((_551 * float3x3(float3(1.06317996978759765625, 0.02339559979736804962158203125, -0.08657260239124298095703125), float3(-0.010633699595928192138671875, 1.2063200473785400390625, -0.1956900060176849365234375), float3(-0.0005908869788981974124908447265625, 0.00105247995816171169281005859375, 0.999538004398345947265625))) * _550), _914) * _549); - } - float3 _1218 = pow(fast::max(float3(0.0), mix((((float3(_Globals.MappingPolynomial.x) * (_1189 * _1189)) + (float3(_Globals.MappingPolynomial.y) * _1189)) + float3(_Globals.MappingPolynomial.z)) * float3(_Globals.ColorScale), _Globals.OverlayColor.xyz, float3(_Globals.OverlayColor.w))), float3(_Globals.InverseGamma.y)); - float3 _3001; - if (_Globals.OutputDevice == 0u) - { - float _2961 = _1218.x; - float _2973; - for (;;) - { - if (_2961 < 0.00313066993840038776397705078125) - { - _2973 = _2961 * 12.9200000762939453125; - break; - } - _2973 = (pow(_2961, 0.4166666567325592041015625) * 1.05499994754791259765625) - 0.054999999701976776123046875; - break; - } - float _2974 = _1218.y; - float _2986; - for (;;) - { - if (_2974 < 0.00313066993840038776397705078125) - { - _2986 = _2974 * 12.9200000762939453125; - break; - } - _2986 = (pow(_2974, 0.4166666567325592041015625) * 1.05499994754791259765625) - 0.054999999701976776123046875; - break; - } - float _2987 = _1218.z; - float _2999; - for (;;) - { - if (_2987 < 0.00313066993840038776397705078125) - { - _2999 = _2987 * 12.9200000762939453125; - break; - } - _2999 = (pow(_2987, 0.4166666567325592041015625) * 1.05499994754791259765625) - 0.054999999701976776123046875; - break; - } - _3001 = float3(_2973, _2986, _2999); - } - else - { - float3 _2960; - if (_Globals.OutputDevice == 1u) - { - float3 _2953 = fast::max(float3(6.1035199905745685100555419921875e-05), (_1218 * _547) * _576); - _2960 = fast::min(_2953 * float3(4.5), (pow(fast::max(_2953, float3(0.017999999225139617919921875)), float3(0.449999988079071044921875)) * float3(1.09899997711181640625)) - float3(0.098999999463558197021484375)); - } - else - { - float3 _2950; - if ((_Globals.OutputDevice == 3u) || (_Globals.OutputDevice == 5u)) - { - float3 _2100 = (_906 * float3(1.5)) * (_546 * float3x3(float3(1.04981100559234619140625, 0.0, -9.74845024757087230682373046875e-05), float3(-0.49590301513671875, 1.37331306934356689453125, 0.09824003279209136962890625), float3(0.0, 0.0, 0.991252005100250244140625))); - float _2101 = _2100.x; - float _2102 = _2100.y; - float _2104 = _2100.z; - float _2107 = fast::max(fast::max(_2101, _2102), _2104); - float _2112 = (fast::max(_2107, 1.0000000133514319600180897396058e-10) - fast::max(fast::min(fast::min(_2101, _2102), _2104), 1.0000000133514319600180897396058e-10)) / fast::max(_2107, 0.00999999977648258209228515625); - float _2125 = ((_2104 + _2102) + _2101) + (1.75 * sqrt(((_2104 * (_2104 - _2102)) + (_2102 * (_2102 - _2101))) + (_2101 * (_2101 - _2104)))); - float _2126 = _2125 * 0.3333333432674407958984375; - float _2127 = _2112 - 0.4000000059604644775390625; - float _2132 = fast::max(1.0 - abs(_2127 * 2.5), 0.0); - float _2140 = (1.0 + (float(int(sign(_2127 * 5.0))) * (1.0 - (_2132 * _2132)))) * 0.02500000037252902984619140625; - float _2153; - if (_2126 <= 0.053333334624767303466796875) - { - _2153 = _2140; - } - else - { - float _2152; - if (_2126 >= 0.1599999964237213134765625) - { - _2152 = 0.0; - } - else - { - _2152 = _2140 * ((0.23999999463558197021484375 / _2125) - 0.5); - } - _2153 = _2152; - } - float3 _2156 = _2100 * float3(1.0 + _2153); - float _2157 = _2156.x; - float _2158 = _2156.y; - float _2160 = _2156.z; - float _2174; - if ((_2157 == _2158) && (_2158 == _2160)) - { - _2174 = 0.0; - } - else - { - _2174 = 57.2957763671875 * atan2(1.73205077648162841796875 * (_2158 - _2160), ((2.0 * _2157) - _2158) - _2160); - } - float _2179; - if (_2174 < 0.0) - { - _2179 = _2174 + 360.0; - } - else - { - _2179 = _2174; - } - float _2180 = fast::clamp(_2179, 0.0, 360.0); - float _2185; - if (_2180 > 180.0) - { - _2185 = _2180 - 360.0; - } - else - { - _2185 = _2180; - } - float _2235; - if ((_2185 > (-67.5)) && (_2185 < 67.5)) - { - float _2192 = (_2185 - (-67.5)) * 0.0296296291053295135498046875; - int _2193 = int(_2192); - float _2195 = _2192 - float(_2193); - float _2196 = _2195 * _2195; - float _2197 = _2196 * _2195; - float _2234; - if (_2193 == 3) - { - _2234 = (((_2197 * (-0.16666667163372039794921875)) + (_2196 * 0.5)) + (_2195 * (-0.5))) + 0.16666667163372039794921875; - } - else - { - float _2227; - if (_2193 == 2) - { - _2227 = ((_2197 * 0.5) + (_2196 * (-1.0))) + 0.666666686534881591796875; - } - else - { - float _2222; - if (_2193 == 1) - { - _2222 = (((_2197 * (-0.5)) + (_2196 * 0.5)) + (_2195 * 0.5)) + 0.16666667163372039794921875; - } - else - { - float _2215; - if (_2193 == 0) - { - _2215 = _2197 * 0.16666667163372039794921875; - } - else - { - _2215 = 0.0; - } - _2222 = _2215; - } - _2227 = _2222; - } - _2234 = _2227; - } - _2235 = _2234; - } - else - { - _2235 = 0.0; - } - float3 _2242 = _2156; - _2242.x = _2157 + ((((_2235 * 1.5) * _2112) * (0.02999999932944774627685546875 - _2157)) * 0.180000007152557373046875); - float3 _2245 = fast::clamp(fast::clamp(_2242, float3(0.0), float3(65535.0)) * float3x3(float3(1.45143926143646240234375, -0.236510753631591796875, -0.214928567409515380859375), float3(-0.07655377686023712158203125, 1.1762297153472900390625, -0.0996759235858917236328125), float3(0.0083161480724811553955078125, -0.0060324496589601039886474609375, 0.99771630764007568359375)), float3(0.0), float3(65535.0)); - float3 _2248 = mix(float3(dot(_2245, float3(0.272228717803955078125, 0.674081742763519287109375, 0.053689517080783843994140625))), _2245, float3(0.959999978542327880859375)); - float _2249 = _2248.x; - float _2258 = log((_2249 <= 0.0) ? 6.103515625e-05 : _2249) * 0.4342944622039794921875; - float _2327; - if (_2258 <= (-5.2601776123046875)) - { - _2327 = -4.0; - } - else - { - float _2324; - if ((_2258 > (-5.2601776123046875)) && (_2258 < (-0.744727432727813720703125))) - { - float _2307 = (_2258 - (-5.2601776123046875)) * 0.6643855571746826171875; - int _2308 = int(_2307); - float _2310 = _2307 - float(_2308); - _2324 = dot(float3(_2310 * _2310, _2310, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_475[_2308], _475[_2308 + 1], _475[_2308 + 2])); - } - else - { - float _2303; - if ((_2258 >= (-0.744727432727813720703125)) && (_2258 < 4.673812389373779296875)) - { - float _2286 = (_2258 - (-0.744727432727813720703125)) * 0.55365467071533203125; - int _2287 = int(_2286); - float _2289 = _2286 - float(_2287); - _2303 = dot(float3(_2289 * _2289, _2289, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_476[_2287], _476[_2287 + 1], _476[_2287 + 2])); - } - else - { - _2303 = 4.0; - } - _2324 = _2303; - } - _2327 = _2324; - } - float3 _2329 = _391; - _2329.x = pow(10.0, _2327); - float _2330 = _2248.y; - float _2334 = log((_2330 <= 0.0) ? 6.103515625e-05 : _2330) * 0.4342944622039794921875; - float _2401; - if (_2334 <= (-5.2601776123046875)) - { - _2401 = -4.0; - } - else - { - float _2398; - if ((_2334 > (-5.2601776123046875)) && (_2334 < (-0.744727432727813720703125))) - { - float _2381 = (_2334 - (-5.2601776123046875)) * 0.6643855571746826171875; - int _2382 = int(_2381); - float _2384 = _2381 - float(_2382); - _2398 = dot(float3(_2384 * _2384, _2384, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_475[_2382], _475[_2382 + 1], _475[_2382 + 2])); - } - else - { - float _2377; - if ((_2334 >= (-0.744727432727813720703125)) && (_2334 < 4.673812389373779296875)) - { - float _2360 = (_2334 - (-0.744727432727813720703125)) * 0.55365467071533203125; - int _2361 = int(_2360); - float _2363 = _2360 - float(_2361); - _2377 = dot(float3(_2363 * _2363, _2363, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_476[_2361], _476[_2361 + 1], _476[_2361 + 2])); - } - else - { - _2377 = 4.0; - } - _2398 = _2377; - } - _2401 = _2398; - } - float3 _2403 = _2329; - _2403.y = pow(10.0, _2401); - float _2404 = _2248.z; - float _2408 = log((_2404 <= 0.0) ? 6.103515625e-05 : _2404) * 0.4342944622039794921875; - float _2475; - if (_2408 <= (-5.2601776123046875)) - { - _2475 = -4.0; - } - else - { - float _2472; - if ((_2408 > (-5.2601776123046875)) && (_2408 < (-0.744727432727813720703125))) - { - float _2455 = (_2408 - (-5.2601776123046875)) * 0.6643855571746826171875; - int _2456 = int(_2455); - float _2458 = _2455 - float(_2456); - _2472 = dot(float3(_2458 * _2458, _2458, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_475[_2456], _475[_2456 + 1], _475[_2456 + 2])); - } - else - { - float _2451; - if ((_2408 >= (-0.744727432727813720703125)) && (_2408 < 4.673812389373779296875)) - { - float _2434 = (_2408 - (-0.744727432727813720703125)) * 0.55365467071533203125; - int _2435 = int(_2434); - float _2437 = _2434 - float(_2435); - _2451 = dot(float3(_2437 * _2437, _2437, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_476[_2435], _476[_2435 + 1], _476[_2435 + 2])); - } - else - { - _2451 = 4.0; - } - _2472 = _2451; - } - _2475 = _2472; - } - float3 _2477 = _2403; - _2477.z = pow(10.0, _2475); - float3 _2479 = (_2477 * float3x3(float3(0.695452213287353515625, 0.140678703784942626953125, 0.16386906802654266357421875), float3(0.0447945632040500640869140625, 0.859671115875244140625, 0.095534317195415496826171875), float3(-0.0055258828215301036834716796875, 0.0040252101607620716094970703125, 1.00150072574615478515625))) * float3x3(float3(1.45143926143646240234375, -0.236510753631591796875, -0.214928567409515380859375), float3(-0.07655377686023712158203125, 1.1762297153472900390625, -0.0996759235858917236328125), float3(0.0083161480724811553955078125, -0.0060324496589601039886474609375, 0.99771630764007568359375)); - float _2612 = pow(10.0, (float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(-0.718548238277435302734375, 2.0810306072235107421875, 3.66812419891357421875)).z); - float _2684 = pow(10.0, dot(float3(0.4444443881511688232421875, 0.66666662693023681640625, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(2.0810306072235107421875, 3.66812419891357421875, 4.0))); - float _2685 = _2479.x; - float _2688 = log((_2685 <= 0.0) ? 9.9999997473787516355514526367188e-05 : _2685); - float _2689 = _2688 * 0.4342944622039794921875; - float _2690 = log(pow(10.0, dot(float3(0.3600003719329833984375, 0.600000321865081787109375, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(-4.0, -4.0, -3.1573765277862548828125)))); - float _2691 = _2690 * 0.4342944622039794921875; - float _2768; - if (_2689 <= _2691) - { - _2768 = (_2688 * 1.3028833866119384765625) + ((-4.0) - (_2690 * 1.3028833866119384765625)); - } - else - { - float _2698 = log(_2612) * 0.4342944622039794921875; - float _2760; - if ((_2689 > _2691) && (_2689 < _2698)) - { - float _2743 = (7.0 * (_2689 - _2691)) / (_2698 - _2691); - int _2744 = int(_2743); - float _2746 = _2743 - float(_2744); - _2760 = dot(float3(_2746 * _2746, _2746, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_479[_2744], _479[_2744 + 1], _479[_2744 + 2])); - } - else - { - float _2705 = log(_2684); - float _2706 = _2705 * 0.4342944622039794921875; - float _2739; - if ((_2689 >= _2698) && (_2689 < _2706)) - { - float _2722 = (7.0 * (_2689 - _2698)) / (_2706 - _2698); - int _2723 = int(_2722); - float _2725 = _2722 - float(_2723); - _2739 = dot(float3(_2725 * _2725, _2725, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_480[_2723], _480[_2723 + 1], _480[_2723 + 2])); - } - else - { - _2739 = (_2688 * 0.026057668030261993408203125) + (3.0 - (_2705 * 0.026057668030261993408203125)); - } - _2760 = _2739; - } - _2768 = _2760; - } - float3 _2770 = _391; - _2770.x = pow(10.0, _2768); - float _2771 = _2479.y; - float _2774 = log((_2771 <= 0.0) ? 9.9999997473787516355514526367188e-05 : _2771); - float _2775 = _2774 * 0.4342944622039794921875; - float _2852; - if (_2775 <= _2691) - { - _2852 = (_2774 * 1.3028833866119384765625) + ((-4.0) - (_2690 * 1.3028833866119384765625)); - } - else - { - float _2782 = log(_2612) * 0.4342944622039794921875; - float _2844; - if ((_2775 > _2691) && (_2775 < _2782)) - { - float _2827 = (7.0 * (_2775 - _2691)) / (_2782 - _2691); - int _2828 = int(_2827); - float _2830 = _2827 - float(_2828); - _2844 = dot(float3(_2830 * _2830, _2830, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_479[_2828], _479[_2828 + 1], _479[_2828 + 2])); - } - else - { - float _2789 = log(_2684); - float _2790 = _2789 * 0.4342944622039794921875; - float _2823; - if ((_2775 >= _2782) && (_2775 < _2790)) - { - float _2806 = (7.0 * (_2775 - _2782)) / (_2790 - _2782); - int _2807 = int(_2806); - float _2809 = _2806 - float(_2807); - _2823 = dot(float3(_2809 * _2809, _2809, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_480[_2807], _480[_2807 + 1], _480[_2807 + 2])); - } - else - { - _2823 = (_2774 * 0.026057668030261993408203125) + (3.0 - (_2789 * 0.026057668030261993408203125)); - } - _2844 = _2823; - } - _2852 = _2844; - } - float3 _2854 = _2770; - _2854.y = pow(10.0, _2852); - float _2855 = _2479.z; - float _2858 = log((_2855 <= 0.0) ? 9.9999997473787516355514526367188e-05 : _2855); - float _2859 = _2858 * 0.4342944622039794921875; - float _2936; - if (_2859 <= _2691) - { - _2936 = (_2858 * 1.3028833866119384765625) + ((-4.0) - (_2690 * 1.3028833866119384765625)); - } - else - { - float _2866 = log(_2612) * 0.4342944622039794921875; - float _2928; - if ((_2859 > _2691) && (_2859 < _2866)) - { - float _2911 = (7.0 * (_2859 - _2691)) / (_2866 - _2691); - int _2912 = int(_2911); - float _2914 = _2911 - float(_2912); - _2928 = dot(float3(_2914 * _2914, _2914, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_479[_2912], _479[_2912 + 1], _479[_2912 + 2])); - } - else - { - float _2873 = log(_2684); - float _2874 = _2873 * 0.4342944622039794921875; - float _2907; - if ((_2859 >= _2866) && (_2859 < _2874)) - { - float _2890 = (7.0 * (_2859 - _2866)) / (_2874 - _2866); - int _2891 = int(_2890); - float _2893 = _2890 - float(_2891); - _2907 = dot(float3(_2893 * _2893, _2893, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_480[_2891], _480[_2891 + 1], _480[_2891 + 2])); - } - else - { - _2907 = (_2858 * 0.026057668030261993408203125) + (3.0 - (_2873 * 0.026057668030261993408203125)); - } - _2928 = _2907; - } - _2936 = _2928; - } - float3 _2938 = _2854; - _2938.z = pow(10.0, _2936); - float3 _2942 = pow(((_2938 - float3(3.5073844628641381859779357910156e-05)) * _576) * float3(9.9999997473787516355514526367188e-05), float3(0.1593017578125)); - _2950 = pow((float3(0.8359375) + (float3(18.8515625) * _2942)) * (float3(1.0) / (float3(1.0) + (float3(18.6875) * _2942))), float3(78.84375)); - } - else - { - float3 _2097; - if ((_Globals.OutputDevice == 4u) || (_Globals.OutputDevice == 6u)) - { - float3 _1263 = (_906 * float3(1.5)) * (_546 * float3x3(float3(1.04981100559234619140625, 0.0, -9.74845024757087230682373046875e-05), float3(-0.49590301513671875, 1.37331306934356689453125, 0.09824003279209136962890625), float3(0.0, 0.0, 0.991252005100250244140625))); - float _1264 = _1263.x; - float _1265 = _1263.y; - float _1267 = _1263.z; - float _1270 = fast::max(fast::max(_1264, _1265), _1267); - float _1275 = (fast::max(_1270, 1.0000000133514319600180897396058e-10) - fast::max(fast::min(fast::min(_1264, _1265), _1267), 1.0000000133514319600180897396058e-10)) / fast::max(_1270, 0.00999999977648258209228515625); - float _1288 = ((_1267 + _1265) + _1264) + (1.75 * sqrt(((_1267 * (_1267 - _1265)) + (_1265 * (_1265 - _1264))) + (_1264 * (_1264 - _1267)))); - float _1289 = _1288 * 0.3333333432674407958984375; - float _1290 = _1275 - 0.4000000059604644775390625; - float _1295 = fast::max(1.0 - abs(_1290 * 2.5), 0.0); - float _1303 = (1.0 + (float(int(sign(_1290 * 5.0))) * (1.0 - (_1295 * _1295)))) * 0.02500000037252902984619140625; - float _1316; - if (_1289 <= 0.053333334624767303466796875) - { - _1316 = _1303; - } - else - { - float _1315; - if (_1289 >= 0.1599999964237213134765625) - { - _1315 = 0.0; - } - else - { - _1315 = _1303 * ((0.23999999463558197021484375 / _1288) - 0.5); - } - _1316 = _1315; - } - float3 _1319 = _1263 * float3(1.0 + _1316); - float _1320 = _1319.x; - float _1321 = _1319.y; - float _1323 = _1319.z; - float _1337; - if ((_1320 == _1321) && (_1321 == _1323)) - { - _1337 = 0.0; - } - else - { - _1337 = 57.2957763671875 * atan2(1.73205077648162841796875 * (_1321 - _1323), ((2.0 * _1320) - _1321) - _1323); - } - float _1342; - if (_1337 < 0.0) - { - _1342 = _1337 + 360.0; - } - else - { - _1342 = _1337; - } - float _1343 = fast::clamp(_1342, 0.0, 360.0); - float _1348; - if (_1343 > 180.0) - { - _1348 = _1343 - 360.0; - } - else - { - _1348 = _1343; - } - float _1398; - if ((_1348 > (-67.5)) && (_1348 < 67.5)) - { - float _1355 = (_1348 - (-67.5)) * 0.0296296291053295135498046875; - int _1356 = int(_1355); - float _1358 = _1355 - float(_1356); - float _1359 = _1358 * _1358; - float _1360 = _1359 * _1358; - float _1397; - if (_1356 == 3) - { - _1397 = (((_1360 * (-0.16666667163372039794921875)) + (_1359 * 0.5)) + (_1358 * (-0.5))) + 0.16666667163372039794921875; - } - else - { - float _1390; - if (_1356 == 2) - { - _1390 = ((_1360 * 0.5) + (_1359 * (-1.0))) + 0.666666686534881591796875; - } - else - { - float _1385; - if (_1356 == 1) - { - _1385 = (((_1360 * (-0.5)) + (_1359 * 0.5)) + (_1358 * 0.5)) + 0.16666667163372039794921875; - } - else - { - float _1378; - if (_1356 == 0) - { - _1378 = _1360 * 0.16666667163372039794921875; - } - else - { - _1378 = 0.0; - } - _1385 = _1378; - } - _1390 = _1385; - } - _1397 = _1390; - } - _1398 = _1397; - } - else - { - _1398 = 0.0; - } - float3 _1405 = _1319; - _1405.x = _1320 + ((((_1398 * 1.5) * _1275) * (0.02999999932944774627685546875 - _1320)) * 0.180000007152557373046875); - float3 _1408 = fast::clamp(fast::clamp(_1405, float3(0.0), float3(65535.0)) * float3x3(float3(1.45143926143646240234375, -0.236510753631591796875, -0.214928567409515380859375), float3(-0.07655377686023712158203125, 1.1762297153472900390625, -0.0996759235858917236328125), float3(0.0083161480724811553955078125, -0.0060324496589601039886474609375, 0.99771630764007568359375)), float3(0.0), float3(65535.0)); - float3 _1411 = mix(float3(dot(_1408, float3(0.272228717803955078125, 0.674081742763519287109375, 0.053689517080783843994140625))), _1408, float3(0.959999978542327880859375)); - float _1412 = _1411.x; - float _1421 = log((_1412 <= 0.0) ? 6.103515625e-05 : _1412) * 0.4342944622039794921875; - float _1490; - if (_1421 <= (-5.2601776123046875)) - { - _1490 = -4.0; - } - else - { - float _1487; - if ((_1421 > (-5.2601776123046875)) && (_1421 < (-0.744727432727813720703125))) - { - float _1470 = (_1421 - (-5.2601776123046875)) * 0.6643855571746826171875; - int _1471 = int(_1470); - float _1473 = _1470 - float(_1471); - _1487 = dot(float3(_1473 * _1473, _1473, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_475[_1471], _475[_1471 + 1], _475[_1471 + 2])); - } - else - { - float _1466; - if ((_1421 >= (-0.744727432727813720703125)) && (_1421 < 4.673812389373779296875)) - { - float _1449 = (_1421 - (-0.744727432727813720703125)) * 0.55365467071533203125; - int _1450 = int(_1449); - float _1452 = _1449 - float(_1450); - _1466 = dot(float3(_1452 * _1452, _1452, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_476[_1450], _476[_1450 + 1], _476[_1450 + 2])); - } - else - { - _1466 = 4.0; - } - _1487 = _1466; - } - _1490 = _1487; - } - float3 _1492 = _391; - _1492.x = pow(10.0, _1490); - float _1493 = _1411.y; - float _1497 = log((_1493 <= 0.0) ? 6.103515625e-05 : _1493) * 0.4342944622039794921875; - float _1564; - if (_1497 <= (-5.2601776123046875)) - { - _1564 = -4.0; - } - else - { - float _1561; - if ((_1497 > (-5.2601776123046875)) && (_1497 < (-0.744727432727813720703125))) - { - float _1544 = (_1497 - (-5.2601776123046875)) * 0.6643855571746826171875; - int _1545 = int(_1544); - float _1547 = _1544 - float(_1545); - _1561 = dot(float3(_1547 * _1547, _1547, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_475[_1545], _475[_1545 + 1], _475[_1545 + 2])); - } - else - { - float _1540; - if ((_1497 >= (-0.744727432727813720703125)) && (_1497 < 4.673812389373779296875)) - { - float _1523 = (_1497 - (-0.744727432727813720703125)) * 0.55365467071533203125; - int _1524 = int(_1523); - float _1526 = _1523 - float(_1524); - _1540 = dot(float3(_1526 * _1526, _1526, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_476[_1524], _476[_1524 + 1], _476[_1524 + 2])); - } - else - { - _1540 = 4.0; - } - _1561 = _1540; - } - _1564 = _1561; - } - float3 _1566 = _1492; - _1566.y = pow(10.0, _1564); - float _1567 = _1411.z; - float _1571 = log((_1567 <= 0.0) ? 6.103515625e-05 : _1567) * 0.4342944622039794921875; - float _1638; - if (_1571 <= (-5.2601776123046875)) - { - _1638 = -4.0; - } - else - { - float _1635; - if ((_1571 > (-5.2601776123046875)) && (_1571 < (-0.744727432727813720703125))) - { - float _1618 = (_1571 - (-5.2601776123046875)) * 0.6643855571746826171875; - int _1619 = int(_1618); - float _1621 = _1618 - float(_1619); - _1635 = dot(float3(_1621 * _1621, _1621, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_475[_1619], _475[_1619 + 1], _475[_1619 + 2])); - } - else - { - float _1614; - if ((_1571 >= (-0.744727432727813720703125)) && (_1571 < 4.673812389373779296875)) - { - float _1597 = (_1571 - (-0.744727432727813720703125)) * 0.55365467071533203125; - int _1598 = int(_1597); - float _1600 = _1597 - float(_1598); - _1614 = dot(float3(_1600 * _1600, _1600, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_476[_1598], _476[_1598 + 1], _476[_1598 + 2])); - } - else - { - _1614 = 4.0; - } - _1635 = _1614; - } - _1638 = _1635; - } - float3 _1640 = _1566; - _1640.z = pow(10.0, _1638); - float3 _1642 = (_1640 * float3x3(float3(0.695452213287353515625, 0.140678703784942626953125, 0.16386906802654266357421875), float3(0.0447945632040500640869140625, 0.859671115875244140625, 0.095534317195415496826171875), float3(-0.0055258828215301036834716796875, 0.0040252101607620716094970703125, 1.00150072574615478515625))) * float3x3(float3(1.45143926143646240234375, -0.236510753631591796875, -0.214928567409515380859375), float3(-0.07655377686023712158203125, 1.1762297153472900390625, -0.0996759235858917236328125), float3(0.0083161480724811553955078125, -0.0060324496589601039886474609375, 0.99771630764007568359375)); - float _1775 = pow(10.0, (float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(-0.718548238277435302734375, 2.0810306072235107421875, 3.66812419891357421875)).z); - float _1847 = pow(10.0, dot(float3(0.69444429874420166015625, 0.8333332538604736328125, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(2.0810306072235107421875, 3.66812419891357421875, 4.0))); - float _1848 = _1642.x; - float _1851 = log((_1848 <= 0.0) ? 9.9999997473787516355514526367188e-05 : _1848); - float _1852 = _1851 * 0.4342944622039794921875; - float _1854 = log(pow(10.0, dot(float3(0.3600003719329833984375, 0.600000321865081787109375, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(-4.0, -4.0, -3.1573765277862548828125)))) * 0.4342944622039794921875; - float _1926; - if (_1852 <= _1854) - { - _1926 = -2.3010299205780029296875; - } - else - { - float _1861 = log(_1775) * 0.4342944622039794921875; - float _1923; - if ((_1852 > _1854) && (_1852 < _1861)) - { - float _1906 = (7.0 * (_1852 - _1854)) / (_1861 - _1854); - int _1907 = int(_1906); - float _1909 = _1906 - float(_1907); - _1923 = dot(float3(_1909 * _1909, _1909, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_482[_1907], _482[_1907 + 1], _482[_1907 + 2])); - } - else - { - float _1868 = log(_1847); - float _1869 = _1868 * 0.4342944622039794921875; - float _1902; - if ((_1852 >= _1861) && (_1852 < _1869)) - { - float _1885 = (7.0 * (_1852 - _1861)) / (_1869 - _1861); - int _1886 = int(_1885); - float _1888 = _1885 - float(_1886); - _1902 = dot(float3(_1888 * _1888, _1888, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_483[_1886], _483[_1886 + 1], _483[_1886 + 2])); - } - else - { - _1902 = (_1851 * 0.05211533606052398681640625) + (3.3010299205780029296875 - (_1868 * 0.05211533606052398681640625)); - } - _1923 = _1902; - } - _1926 = _1923; - } - float3 _1928 = _391; - _1928.x = pow(10.0, _1926); - float _1929 = _1642.y; - float _1932 = log((_1929 <= 0.0) ? 9.9999997473787516355514526367188e-05 : _1929); - float _1933 = _1932 * 0.4342944622039794921875; - float _2005; - if (_1933 <= _1854) - { - _2005 = -2.3010299205780029296875; - } - else - { - float _1940 = log(_1775) * 0.4342944622039794921875; - float _2002; - if ((_1933 > _1854) && (_1933 < _1940)) - { - float _1985 = (7.0 * (_1933 - _1854)) / (_1940 - _1854); - int _1986 = int(_1985); - float _1988 = _1985 - float(_1986); - _2002 = dot(float3(_1988 * _1988, _1988, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_482[_1986], _482[_1986 + 1], _482[_1986 + 2])); - } - else - { - float _1947 = log(_1847); - float _1948 = _1947 * 0.4342944622039794921875; - float _1981; - if ((_1933 >= _1940) && (_1933 < _1948)) - { - float _1964 = (7.0 * (_1933 - _1940)) / (_1948 - _1940); - int _1965 = int(_1964); - float _1967 = _1964 - float(_1965); - _1981 = dot(float3(_1967 * _1967, _1967, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_483[_1965], _483[_1965 + 1], _483[_1965 + 2])); - } - else - { - _1981 = (_1932 * 0.05211533606052398681640625) + (3.3010299205780029296875 - (_1947 * 0.05211533606052398681640625)); - } - _2002 = _1981; - } - _2005 = _2002; - } - float3 _2007 = _1928; - _2007.y = pow(10.0, _2005); - float _2008 = _1642.z; - float _2011 = log((_2008 <= 0.0) ? 9.9999997473787516355514526367188e-05 : _2008); - float _2012 = _2011 * 0.4342944622039794921875; - float _2084; - if (_2012 <= _1854) - { - _2084 = -2.3010299205780029296875; - } - else - { - float _2019 = log(_1775) * 0.4342944622039794921875; - float _2081; - if ((_2012 > _1854) && (_2012 < _2019)) - { - float _2064 = (7.0 * (_2012 - _1854)) / (_2019 - _1854); - int _2065 = int(_2064); - float _2067 = _2064 - float(_2065); - _2081 = dot(float3(_2067 * _2067, _2067, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_482[_2065], _482[_2065 + 1], _482[_2065 + 2])); - } - else - { - float _2026 = log(_1847); - float _2027 = _2026 * 0.4342944622039794921875; - float _2060; - if ((_2012 >= _2019) && (_2012 < _2027)) - { - float _2043 = (7.0 * (_2012 - _2019)) / (_2027 - _2019); - int _2044 = int(_2043); - float _2046 = _2043 - float(_2044); - _2060 = dot(float3(_2046 * _2046, _2046, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_483[_2044], _483[_2044 + 1], _483[_2044 + 2])); - } - else - { - _2060 = (_2011 * 0.05211533606052398681640625) + (3.3010299205780029296875 - (_2026 * 0.05211533606052398681640625)); - } - _2081 = _2060; - } - _2084 = _2081; - } - float3 _2086 = _2007; - _2086.z = pow(10.0, _2084); - float3 _2089 = pow((_2086 * _576) * float3(9.9999997473787516355514526367188e-05), float3(0.1593017578125)); - _2097 = pow((float3(0.8359375) + (float3(18.8515625) * _2089)) * (float3(1.0) / (float3(1.0) + (float3(18.6875) * _2089))), float3(78.84375)); - } - else - { - float3 _1260; - if (_Globals.OutputDevice == 7u) - { - float3 _1252 = pow(((_906 * _547) * _576) * float3(9.9999997473787516355514526367188e-05), float3(0.1593017578125)); - _1260 = pow((float3(0.8359375) + (float3(18.8515625) * _1252)) * (float3(1.0) / (float3(1.0) + (float3(18.6875) * _1252))), float3(78.84375)); - } - else - { - _1260 = pow((_1218 * _547) * _576, float3(_Globals.InverseGamma.z)); - } - _2097 = _1260; - } - _2950 = _2097; - } - _2960 = _2950; - } - _3001 = _2960; - } - float3 _3002 = _3001 * float3(0.95238101482391357421875); - float4 _3004 = float4(_3002.x, _3002.y, _3002.z, float4(0.0).w); - _3004.w = 0.0; - out.out_var_SV_Target0 = _3004; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/frag/padded-float-array-member-defef.asm.frag b/third_party/spirv-cross/reference/opt/shaders-ue4/asm/frag/padded-float-array-member-defef.asm.frag deleted file mode 100644 index 2926c322df..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/frag/padded-float-array-member-defef.asm.frag +++ /dev/null @@ -1,1190 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct type_Globals -{ - float4 MappingPolynomial; - float3 InverseGamma; - float4 ColorMatrixR_ColorCurveCd1; - float4 ColorMatrixG_ColorCurveCd3Cm3; - float4 ColorMatrixB_ColorCurveCm2; - float4 ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3; - float4 ColorCurve_Ch1_Ch2; - float4 ColorShadow_Luma; - float4 ColorShadow_Tint1; - float4 ColorShadow_Tint2; - float FilmSlope; - float FilmToe; - float FilmShoulder; - float FilmBlackClip; - float FilmWhiteClip; - float4 LUTWeights[5]; - float3 ColorScale; - float4 OverlayColor; - float WhiteTemp; - float WhiteTint; - float4 ColorSaturation; - float4 ColorContrast; - float4 ColorGamma; - float4 ColorGain; - float4 ColorOffset; - float4 ColorSaturationShadows; - float4 ColorContrastShadows; - float4 ColorGammaShadows; - float4 ColorGainShadows; - float4 ColorOffsetShadows; - float4 ColorSaturationMidtones; - float4 ColorContrastMidtones; - float4 ColorGammaMidtones; - float4 ColorGainMidtones; - float4 ColorOffsetMidtones; - float4 ColorSaturationHighlights; - float4 ColorContrastHighlights; - float4 ColorGammaHighlights; - float4 ColorGainHighlights; - float4 ColorOffsetHighlights; - float ColorCorrectionShadowsMax; - float ColorCorrectionHighlightsMin; - uint OutputDevice; - uint OutputGamut; - float BlueCorrection; - float ExpandGamut; -}; - -constant spvUnsafeArray _499 = spvUnsafeArray({ -4.0, -4.0, -3.1573765277862548828125, -0.485249996185302734375, 1.84773242473602294921875, 1.84773242473602294921875 }); -constant spvUnsafeArray _500 = spvUnsafeArray({ -0.718548238277435302734375, 2.0810306072235107421875, 3.66812419891357421875, 4.0, 4.0, 4.0 }); -constant spvUnsafeArray _503 = spvUnsafeArray({ -4.97062206268310546875, -3.0293781757354736328125, -2.1261999607086181640625, -1.5104999542236328125, -1.0578000545501708984375, -0.4668000042438507080078125, 0.11937999725341796875, 0.7088134288787841796875, 1.2911865711212158203125, 1.2911865711212158203125 }); -constant spvUnsafeArray _504 = spvUnsafeArray({ 0.80891323089599609375, 1.19108676910400390625, 1.5683000087738037109375, 1.94830000400543212890625, 2.308300018310546875, 2.63840007781982421875, 2.85949993133544921875, 2.9872608184814453125, 3.0127391815185546875, 3.0127391815185546875 }); -constant spvUnsafeArray _506 = spvUnsafeArray({ -2.3010299205780029296875, -2.3010299205780029296875, -1.9312000274658203125, -1.5204999446868896484375, -1.0578000545501708984375, -0.4668000042438507080078125, 0.11937999725341796875, 0.7088134288787841796875, 1.2911865711212158203125, 1.2911865711212158203125 }); -constant spvUnsafeArray _507 = spvUnsafeArray({ 0.801995217800140380859375, 1.19800484180450439453125, 1.5943000316619873046875, 1.99730002880096435546875, 2.3782999515533447265625, 2.7683999538421630859375, 3.0515000820159912109375, 3.2746293544769287109375, 3.32743072509765625, 3.32743072509765625 }); - -constant float3 _523 = {}; -constant float3 _3265 = {}; - -struct main0_out -{ - float4 out_var_SV_Target0 [[color(0)]]; -}; - -struct main0_in -{ - float2 in_var_TEXCOORD0 [[user(locn0), center_no_perspective]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], constant type_Globals& _Globals [[buffer(0)]], texture2d Texture1 [[texture(0)]], sampler Texture1Sampler [[sampler(0)]], uint gl_Layer [[render_target_array_index]]) -{ - main0_out out = {}; - float3x3 _572 = float3x3(float3(0.41245639324188232421875, 0.3575761020183563232421875, 0.180437505245208740234375), float3(0.21267290413379669189453125, 0.715152204036712646484375, 0.072175003588199615478515625), float3(0.01933390088379383087158203125, 0.119191996753215789794921875, 0.950304090976715087890625)) * float3x3(float3(1.01303005218505859375, 0.0061053098179399967193603515625, -0.014971000142395496368408203125), float3(0.0076982299797236919403076171875, 0.99816501140594482421875, -0.005032029934227466583251953125), float3(-0.0028413101099431514739990234375, 0.0046851597726345062255859375, 0.92450702190399169921875)); - float3x3 _573 = _572 * float3x3(float3(1.6410233974456787109375, -0.324803292751312255859375, -0.23642469942569732666015625), float3(-0.663662850856781005859375, 1.6153316497802734375, 0.016756348311901092529296875), float3(0.01172189414501190185546875, -0.008284442126750946044921875, 0.98839485645294189453125)); - float3x3 _574 = float3x3(float3(0.662454187870025634765625, 0.1340042054653167724609375, 0.1561876833438873291015625), float3(0.272228717803955078125, 0.674081742763519287109375, 0.053689517080783843994140625), float3(-0.0055746496655046939849853515625, 0.0040607335977256298065185546875, 1.01033914089202880859375)) * float3x3(float3(0.98722398281097412109375, -0.0061132698319852352142333984375, 0.01595330052077770233154296875), float3(-0.007598360069096088409423828125, 1.00186002254486083984375, 0.0053300200961530208587646484375), float3(0.003072570078074932098388671875, -0.0050959498621523380279541015625, 1.0816800594329833984375)); - float3x3 _575 = _574 * float3x3(float3(3.2409698963165283203125, -1.53738319873809814453125, -0.4986107647418975830078125), float3(-0.96924364566802978515625, 1.875967502593994140625, 0.0415550582110881805419921875), float3(0.055630080401897430419921875, -0.2039769589900970458984375, 1.05697154998779296875)); - float3x3 _576 = float3x3(float3(0.952552378177642822265625, 0.0, 9.25), float3(0.3439664542675018310546875, 0.728166103363037109375, -0.07213254272937774658203125), float3(0.0, 0.0, 1.00882518291473388671875)) * float3x3(float3(1.6410233974456787109375, -0.324803292751312255859375, -0.23642469942569732666015625), float3(-0.663662850856781005859375, 1.6153316497802734375, 0.016756348311901092529296875), float3(0.01172189414501190185546875, -0.008284442126750946044921875, 0.98839485645294189453125)); - float3x3 _577 = float3x3(float3(0.662454187870025634765625, 0.1340042054653167724609375, 0.1561876833438873291015625), float3(0.272228717803955078125, 0.674081742763519287109375, 0.053689517080783843994140625), float3(-0.0055746496655046939849853515625, 0.0040607335977256298065185546875, 1.01033914089202880859375)) * float3x3(float3(1.04981100559234619140625, 0.0, -9.74845024757087230682373046875e-05), float3(-0.49590301513671875, 1.37331306934356689453125, 0.09824003279209136962890625), float3(0.0, 0.0, 0.991252005100250244140625)); - float3x3 _602; - for (;;) - { - if (_Globals.OutputGamut == 1u) - { - _602 = _574 * float3x3(float3(2.493396282196044921875, -0.931345880031585693359375, -0.4026944935321807861328125), float3(-0.829486787319183349609375, 1.76265966892242431640625, 0.02362460084259510040283203125), float3(0.0358506999909877777099609375, -0.076182700693607330322265625, 0.957014024257659912109375)); - break; - } - else - { - if (_Globals.OutputGamut == 2u) - { - _602 = _574 * float3x3(float3(1.71660840511322021484375, -0.3556621074676513671875, -0.253360092639923095703125), float3(-0.666682898998260498046875, 1.61647760868072509765625, 0.01576850004494190216064453125), float3(0.017642199993133544921875, -0.04277630150318145751953125, 0.94222867488861083984375)); - break; - } - else - { - if (_Globals.OutputGamut == 3u) - { - _602 = float3x3(float3(0.695452213287353515625, 0.140678703784942626953125, 0.16386906802654266357421875), float3(0.0447945632040500640869140625, 0.859671115875244140625, 0.095534317195415496826171875), float3(-0.0055258828215301036834716796875, 0.0040252101607620716094970703125, 1.00150072574615478515625)); - break; - } - else - { - if (_Globals.OutputGamut == 4u) - { - _602 = float3x3(float3(1.0, 0.0, 0.0), float3(0.0, 1.0, 0.0), float3(0.0, 0.0, 1.0)); - break; - } - else - { - _602 = _575; - break; - } - } - } - } - } - float3 _603 = float4((in.in_var_TEXCOORD0 - float2(0.015625)) * float2(1.03225803375244140625), float(gl_Layer) * 0.0322580635547637939453125, 0.0).xyz; - float3 _625; - if (_Globals.OutputDevice >= 3u) - { - float3 _617 = pow(_603, float3(0.0126833133399486541748046875)); - _625 = pow(fast::max(float3(0.0), _617 - float3(0.8359375)) / (float3(18.8515625) - (float3(18.6875) * _617)), float3(6.277394771575927734375)) * float3(10000.0); - } - else - { - _625 = (exp2((_603 - float3(0.434017598628997802734375)) * float3(14.0)) * float3(0.180000007152557373046875)) - float3(0.00266771926544606685638427734375); - } - float _628 = _Globals.WhiteTemp * 1.00055634975433349609375; - float _642 = (_628 <= 7000.0) ? (0.24406300485134124755859375 + ((99.1100006103515625 + ((2967800.0 - (4604438528.0 / _Globals.WhiteTemp)) / _628)) / _628)) : (0.23703999817371368408203125 + ((247.4799957275390625 + ((1901800.0 - (2005284352.0 / _Globals.WhiteTemp)) / _628)) / _628)); - float _659 = ((0.860117733478546142578125 + (0.00015411825734190642833709716796875 * _Globals.WhiteTemp)) + ((1.2864121856637211749330163002014e-07 * _Globals.WhiteTemp) * _Globals.WhiteTemp)) / ((1.0 + (0.0008424202096648514270782470703125 * _Globals.WhiteTemp)) + ((7.0814513719597016461193561553955e-07 * _Globals.WhiteTemp) * _Globals.WhiteTemp)); - float _670 = ((0.317398726940155029296875 + (4.25 * _Globals.WhiteTemp)) + ((4.2048167614439080352894961833954e-08 * _Globals.WhiteTemp) * _Globals.WhiteTemp)) / ((1.0 - (2.8974181986995972692966461181641e-05 * _Globals.WhiteTemp)) + ((1.6145605741257895715534687042236e-07 * _Globals.WhiteTemp) * _Globals.WhiteTemp)); - float _675 = ((2.0 * _659) - (8.0 * _670)) + 4.0; - float2 _679 = float2((3.0 * _659) / _675, (2.0 * _670) / _675); - float2 _686 = normalize(float2(_659, _670)); - float _691 = _659 + (((-_686.y) * _Globals.WhiteTint) * 0.0500000007450580596923828125); - float _695 = _670 + ((_686.x * _Globals.WhiteTint) * 0.0500000007450580596923828125); - float _700 = ((2.0 * _691) - (8.0 * _695)) + 4.0; - float2 _706 = select(float2(_642, (_642 * (((-3.0) * _642) + 2.86999988555908203125)) - 0.2750000059604644775390625), _679, bool2(_Globals.WhiteTemp < 4000.0)) + (float2((3.0 * _691) / _700, (2.0 * _695) / _700) - _679); - float _707 = _706.x; - float _708 = _706.y; - float _709 = fast::max(_708, 1.0000000133514319600180897396058e-10); - float3 _711 = _523; - _711.x = _707 / _709; - float3 _712 = _711; - _712.y = 1.0; - float3 _716 = _712; - _716.z = ((1.0 - _707) - _708) / _709; - float3 _719 = _523; - _719.x = 0.950455963611602783203125; - float3 _720 = _719; - _720.y = 1.0; - float3 _722 = _720; - _722.z = 1.0890576839447021484375; - float3 _723 = _716 * float3x3(float3(0.89509999752044677734375, 0.2664000093936920166015625, -0.16140000522136688232421875), float3(-0.750199973583221435546875, 1.71350002288818359375, 0.0366999991238117218017578125), float3(0.0388999991118907928466796875, -0.06849999725818634033203125, 1.02960002422332763671875)); - float3 _724 = _722 * float3x3(float3(0.89509999752044677734375, 0.2664000093936920166015625, -0.16140000522136688232421875), float3(-0.750199973583221435546875, 1.71350002288818359375, 0.0366999991238117218017578125), float3(0.0388999991118907928466796875, -0.06849999725818634033203125, 1.02960002422332763671875)); - float3 _743 = (_625 * ((float3x3(float3(0.41245639324188232421875, 0.3575761020183563232421875, 0.180437505245208740234375), float3(0.21267290413379669189453125, 0.715152204036712646484375, 0.072175003588199615478515625), float3(0.01933390088379383087158203125, 0.119191996753215789794921875, 0.950304090976715087890625)) * ((float3x3(float3(0.89509999752044677734375, 0.2664000093936920166015625, -0.16140000522136688232421875), float3(-0.750199973583221435546875, 1.71350002288818359375, 0.0366999991238117218017578125), float3(0.0388999991118907928466796875, -0.06849999725818634033203125, 1.02960002422332763671875)) * float3x3(float3(_724.x / _723.x, 0.0, 0.0), float3(0.0, _724.y / _723.y, 0.0), float3(0.0, 0.0, _724.z / _723.z))) * float3x3(float3(0.986992895603179931640625, -0.14705429971218109130859375, 0.15996269881725311279296875), float3(0.4323053061962127685546875, 0.518360316753387451171875, 0.049291200935840606689453125), float3(-0.00852870009839534759521484375, 0.0400427989661693572998046875, 0.968486726284027099609375)))) * float3x3(float3(3.2409698963165283203125, -1.53738319873809814453125, -0.4986107647418975830078125), float3(-0.96924364566802978515625, 1.875967502593994140625, 0.0415550582110881805419921875), float3(0.055630080401897430419921875, -0.2039769589900970458984375, 1.05697154998779296875)))) * _573; - float3 _771; - if (_Globals.ColorShadow_Tint2.w != 0.0) - { - float _750 = dot(_743, float3(0.272228717803955078125, 0.674081742763519287109375, 0.053689517080783843994140625)); - float3 _753 = (_743 / float3(_750)) - float3(1.0); - _771 = mix(_743, _743 * (_575 * (float3x3(float3(0.544169127941131591796875, 0.23959259688854217529296875, 0.16669429838657379150390625), float3(0.23946559429168701171875, 0.702153027057647705078125, 0.058381401002407073974609375), float3(-0.0023439000360667705535888671875, 0.0361833982169628143310546875, 1.05521833896636962890625)) * float3x3(float3(1.6410233974456787109375, -0.324803292751312255859375, -0.23642469942569732666015625), float3(-0.663662850856781005859375, 1.6153316497802734375, 0.016756348311901092529296875), float3(0.01172189414501190185546875, -0.008284442126750946044921875, 0.98839485645294189453125)))), float3((1.0 - exp2((-4.0) * dot(_753, _753))) * (1.0 - exp2((((-4.0) * _Globals.ExpandGamut) * _750) * _750)))); - } - else - { - _771 = _743; - } - float _772 = dot(_771, float3(0.272228717803955078125, 0.674081742763519287109375, 0.053689517080783843994140625)); - float4 _777 = _Globals.ColorSaturationShadows * _Globals.ColorSaturation; - float4 _782 = _Globals.ColorContrastShadows * _Globals.ColorContrast; - float4 _787 = _Globals.ColorGammaShadows * _Globals.ColorGamma; - float4 _792 = _Globals.ColorGainShadows * _Globals.ColorGain; - float4 _797 = _Globals.ColorOffsetShadows + _Globals.ColorOffset; - float3 _798 = float3(_772); - float _830 = smoothstep(0.0, _Globals.ColorCorrectionShadowsMax, _772); - float4 _834 = _Globals.ColorSaturationHighlights * _Globals.ColorSaturation; - float4 _837 = _Globals.ColorContrastHighlights * _Globals.ColorContrast; - float4 _840 = _Globals.ColorGammaHighlights * _Globals.ColorGamma; - float4 _843 = _Globals.ColorGainHighlights * _Globals.ColorGain; - float4 _846 = _Globals.ColorOffsetHighlights + _Globals.ColorOffset; - float _878 = smoothstep(_Globals.ColorCorrectionHighlightsMin, 1.0, _772); - float4 _881 = _Globals.ColorSaturationMidtones * _Globals.ColorSaturation; - float4 _884 = _Globals.ColorContrastMidtones * _Globals.ColorContrast; - float4 _887 = _Globals.ColorGammaMidtones * _Globals.ColorGamma; - float4 _890 = _Globals.ColorGainMidtones * _Globals.ColorGain; - float4 _893 = _Globals.ColorOffsetMidtones + _Globals.ColorOffset; - float3 _931 = ((((pow(pow(fast::max(float3(0.0), mix(_798, _771, _777.xyz * float3(_777.w))) * float3(5.5555553436279296875), _782.xyz * float3(_782.w)) * float3(0.180000007152557373046875), float3(1.0) / (_787.xyz * float3(_787.w))) * (_792.xyz * float3(_792.w))) + (_797.xyz + float3(_797.w))) * float3(1.0 - _830)) + (((pow(pow(fast::max(float3(0.0), mix(_798, _771, _881.xyz * float3(_881.w))) * float3(5.5555553436279296875), _884.xyz * float3(_884.w)) * float3(0.180000007152557373046875), float3(1.0) / (_887.xyz * float3(_887.w))) * (_890.xyz * float3(_890.w))) + (_893.xyz + float3(_893.w))) * float3(_830 - _878))) + (((pow(pow(fast::max(float3(0.0), mix(_798, _771, _834.xyz * float3(_834.w))) * float3(5.5555553436279296875), _837.xyz * float3(_837.w)) * float3(0.180000007152557373046875), float3(1.0) / (_840.xyz * float3(_840.w))) * (_843.xyz * float3(_843.w))) + (_846.xyz + float3(_846.w))) * float3(_878)); - float3 _932 = _931 * _575; - float3 _940 = float3(_Globals.BlueCorrection); - float3 _942 = mix(_931, _931 * ((_577 * float3x3(float3(0.940437257289886474609375, -0.01830687932670116424560546875, 0.07786960899829864501953125), float3(0.008378696627914905548095703125, 0.82866001129150390625, 0.162961304187774658203125), float3(0.0005471261101774871349334716796875, -0.00088337459601461887359619140625, 1.00033628940582275390625))) * _576), _940) * _577; - float _943 = _942.x; - float _944 = _942.y; - float _946 = _942.z; - float _949 = fast::max(fast::max(_943, _944), _946); - float _954 = (fast::max(_949, 1.0000000133514319600180897396058e-10) - fast::max(fast::min(fast::min(_943, _944), _946), 1.0000000133514319600180897396058e-10)) / fast::max(_949, 0.00999999977648258209228515625); - float _967 = ((_946 + _944) + _943) + (1.75 * sqrt(((_946 * (_946 - _944)) + (_944 * (_944 - _943))) + (_943 * (_943 - _946)))); - float _968 = _967 * 0.3333333432674407958984375; - float _969 = _954 - 0.4000000059604644775390625; - float _974 = fast::max(1.0 - abs(_969 * 2.5), 0.0); - float _982 = (1.0 + (float(int(sign(_969 * 5.0))) * (1.0 - (_974 * _974)))) * 0.02500000037252902984619140625; - float _995; - if (_968 <= 0.053333334624767303466796875) - { - _995 = _982; - } - else - { - float _994; - if (_968 >= 0.1599999964237213134765625) - { - _994 = 0.0; - } - else - { - _994 = _982 * ((0.23999999463558197021484375 / _967) - 0.5); - } - _995 = _994; - } - float3 _998 = _942 * float3(1.0 + _995); - float _999 = _998.x; - float _1000 = _998.y; - float _1002 = _998.z; - float _1016; - if ((_999 == _1000) && (_1000 == _1002)) - { - _1016 = 0.0; - } - else - { - _1016 = 57.2957763671875 * atan2(1.73205077648162841796875 * (_1000 - _1002), ((2.0 * _999) - _1000) - _1002); - } - float _1021; - if (_1016 < 0.0) - { - _1021 = _1016 + 360.0; - } - else - { - _1021 = _1016; - } - float _1022 = fast::clamp(_1021, 0.0, 360.0); - float _1027; - if (_1022 > 180.0) - { - _1027 = _1022 - 360.0; - } - else - { - _1027 = _1022; - } - float _1031 = smoothstep(0.0, 1.0, 1.0 - abs(_1027 * 0.01481481455266475677490234375)); - float3 _1038 = _998; - _1038.x = _999 + ((((_1031 * _1031) * _954) * (0.02999999932944774627685546875 - _999)) * 0.180000007152557373046875); - float3 _1040 = fast::max(float3(0.0), _1038 * float3x3(float3(1.45143926143646240234375, -0.236510753631591796875, -0.214928567409515380859375), float3(-0.07655377686023712158203125, 1.1762297153472900390625, -0.0996759235858917236328125), float3(0.0083161480724811553955078125, -0.0060324496589601039886474609375, 0.99771630764007568359375))); - float _1049 = (1.0 + _Globals.FilmBlackClip) - _Globals.FilmToe; - float _1052 = 1.0 + _Globals.FilmWhiteClip; - float _1055 = _1052 - _Globals.FilmShoulder; - float _1082; - if (_Globals.FilmToe > 0.800000011920928955078125) - { - _1082 = ((0.819999992847442626953125 - _Globals.FilmToe) / _Globals.FilmSlope) + (-0.744727432727813720703125); - } - else - { - float _1061 = (0.180000007152557373046875 + _Globals.FilmBlackClip) / _1049; - _1082 = (-0.744727432727813720703125) - ((0.5 * log(_1061 / (2.0 - _1061))) * (_1049 / _Globals.FilmSlope)); - } - float _1087 = ((1.0 - _Globals.FilmToe) / _Globals.FilmSlope) - _1082; - float _1089 = (_Globals.FilmShoulder / _Globals.FilmSlope) - _1087; - float3 _1093 = log(mix(float3(dot(_1040, float3(0.272228717803955078125, 0.674081742763519287109375, 0.053689517080783843994140625))), _1040, float3(0.959999978542327880859375))) * float3(0.4342944622039794921875); - float3 _1097 = float3(_Globals.FilmSlope) * (_1093 + float3(_1087)); - float3 _1105 = float3(_1082); - float3 _1106 = _1093 - _1105; - float3 _1118 = float3(_1089); - float3 _1132 = fast::clamp(_1106 / float3(_1089 - _1082), float3(0.0), float3(1.0)); - float3 _1136 = select(_1132, float3(1.0) - _1132, bool3(_1089 < _1082)); - float3 _1141 = mix(select(_1097, float3(-_Globals.FilmBlackClip) + (float3(2.0 * _1049) / (float3(1.0) + exp(float3(((-2.0) * _Globals.FilmSlope) / _1049) * _1106))), _1093 < _1105), select(_1097, float3(_1052) - (float3(2.0 * _1055) / (float3(1.0) + exp(float3((2.0 * _Globals.FilmSlope) / _1055) * (_1093 - _1118)))), _1093 > _1118), ((float3(3.0) - (float3(2.0) * _1136)) * _1136) * _1136); - float3 _1145 = fast::max(float3(0.0), mix(float3(dot(_1141, float3(0.272228717803955078125, 0.674081742763519287109375, 0.053689517080783843994140625))), _1141, float3(0.930000007152557373046875))); - float3 _1215; - if (_Globals.ColorShadow_Tint2.w == 0.0) - { - float3 _1157 = _3265; - _1157.x = dot(_932, _Globals.ColorMatrixR_ColorCurveCd1.xyz); - float3 _1162 = _1157; - _1162.y = dot(_932, _Globals.ColorMatrixG_ColorCurveCd3Cm3.xyz); - float3 _1167 = _1162; - _1167.z = dot(_932, _Globals.ColorMatrixB_ColorCurveCm2.xyz); - float3 _1183 = fast::max(float3(0.0), _1167 * (_Globals.ColorShadow_Tint1.xyz + (_Globals.ColorShadow_Tint2.xyz * float3(1.0 / (dot(_932, _Globals.ColorShadow_Luma.xyz) + 1.0))))); - float3 _1188 = fast::max(float3(0.0), _Globals.ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3.xxx - _1183); - float3 _1190 = fast::max(_1183, _Globals.ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3.zzz); - _1215 = ((((_1190 * _Globals.ColorCurve_Ch1_Ch2.xxx) + _Globals.ColorCurve_Ch1_Ch2.yyy) * (float3(1.0) / (_1190 + _Globals.ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3.www))) + ((fast::clamp(_1183, _Globals.ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3.xxx, _Globals.ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3.zzz) * _Globals.ColorMatrixB_ColorCurveCm2.www) + (((_1188 * _Globals.ColorMatrixR_ColorCurveCd1.www) * (float3(1.0) / (_1188 + _Globals.ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3.yyy))) + _Globals.ColorMatrixG_ColorCurveCd3Cm3.www))) - float3(0.00200000009499490261077880859375); - } - else - { - _1215 = fast::max(float3(0.0), mix(_1145, _1145 * ((_577 * float3x3(float3(1.06317996978759765625, 0.02339559979736804962158203125, -0.08657260239124298095703125), float3(-0.010633699595928192138671875, 1.2063200473785400390625, -0.1956900060176849365234375), float3(-0.0005908869788981974124908447265625, 0.00105247995816171169281005859375, 0.999538004398345947265625))) * _576), _940) * _575); - } - float3 _1216 = fast::clamp(_1215, float3(0.0), float3(1.0)); - float _1217 = _1216.x; - float _1229; - for (;;) - { - if (_1217 < 0.00313066993840038776397705078125) - { - _1229 = _1217 * 12.9200000762939453125; - break; - } - _1229 = (pow(_1217, 0.4166666567325592041015625) * 1.05499994754791259765625) - 0.054999999701976776123046875; - break; - } - float _1230 = _1216.y; - float _1242; - for (;;) - { - if (_1230 < 0.00313066993840038776397705078125) - { - _1242 = _1230 * 12.9200000762939453125; - break; - } - _1242 = (pow(_1230, 0.4166666567325592041015625) * 1.05499994754791259765625) - 0.054999999701976776123046875; - break; - } - float _1243 = _1216.z; - float _1255; - for (;;) - { - if (_1243 < 0.00313066993840038776397705078125) - { - _1255 = _1243 * 12.9200000762939453125; - break; - } - _1255 = (pow(_1243, 0.4166666567325592041015625) * 1.05499994754791259765625) - 0.054999999701976776123046875; - break; - } - float3 _1256 = float3(_1229, _1242, _1255); - float3 _1258 = (_1256 * float3(0.9375)) + float3(0.03125); - float _1270 = (_1258.z * 16.0) - 0.5; - float _1271 = floor(_1270); - float _1275 = (_1258.x + _1271) * 0.0625; - float _1276 = _1258.y; - float4 _1279 = Texture1.sample(Texture1Sampler, float2(_1275, _1276)); - float4 _1283 = Texture1.sample(Texture1Sampler, float2(_1275 + 0.0625, _1276)); - float3 _1289 = fast::max(float3(6.1035199905745685100555419921875e-05), (float3(_Globals.LUTWeights[0].x) * _1256) + (float3(_Globals.LUTWeights[1].x) * mix(_1279, _1283, float4(_1270 - _1271)).xyz)); - float3 _1295 = select(_1289 * float3(0.077399380505084991455078125), pow((_1289 * float3(0.94786727428436279296875)) + float3(0.0521326996386051177978515625), float3(2.400000095367431640625)), _1289 > float3(0.040449999272823333740234375)); - float3 _1324 = pow(fast::max(float3(0.0), mix((((float3(_Globals.MappingPolynomial.x) * (_1295 * _1295)) + (float3(_Globals.MappingPolynomial.y) * _1295)) + float3(_Globals.MappingPolynomial.z)) * _Globals.ColorScale, _Globals.OverlayColor.xyz, float3(_Globals.OverlayColor.w))), float3(_Globals.InverseGamma.y)); - float3 _3103; - if (_Globals.OutputDevice == 0u) - { - float _3063 = _1324.x; - float _3075; - for (;;) - { - if (_3063 < 0.00313066993840038776397705078125) - { - _3075 = _3063 * 12.9200000762939453125; - break; - } - _3075 = (pow(_3063, 0.4166666567325592041015625) * 1.05499994754791259765625) - 0.054999999701976776123046875; - break; - } - float _3076 = _1324.y; - float _3088; - for (;;) - { - if (_3076 < 0.00313066993840038776397705078125) - { - _3088 = _3076 * 12.9200000762939453125; - break; - } - _3088 = (pow(_3076, 0.4166666567325592041015625) * 1.05499994754791259765625) - 0.054999999701976776123046875; - break; - } - float _3089 = _1324.z; - float _3101; - for (;;) - { - if (_3089 < 0.00313066993840038776397705078125) - { - _3101 = _3089 * 12.9200000762939453125; - break; - } - _3101 = (pow(_3089, 0.4166666567325592041015625) * 1.05499994754791259765625) - 0.054999999701976776123046875; - break; - } - _3103 = float3(_3075, _3088, _3101); - } - else - { - float3 _3062; - if (_Globals.OutputDevice == 1u) - { - float3 _3055 = fast::max(float3(6.1035199905745685100555419921875e-05), (_1324 * _573) * _602); - _3062 = fast::min(_3055 * float3(4.5), (pow(fast::max(_3055, float3(0.017999999225139617919921875)), float3(0.449999988079071044921875)) * float3(1.09899997711181640625)) - float3(0.098999999463558197021484375)); - } - else - { - float3 _3052; - if ((_Globals.OutputDevice == 3u) || (_Globals.OutputDevice == 5u)) - { - float3 _2204 = (_932 * float3(1.5)) * (_572 * float3x3(float3(1.04981100559234619140625, 0.0, -9.74845024757087230682373046875e-05), float3(-0.49590301513671875, 1.37331306934356689453125, 0.09824003279209136962890625), float3(0.0, 0.0, 0.991252005100250244140625))); - float _2205 = _2204.x; - float _2206 = _2204.y; - float _2208 = _2204.z; - float _2211 = fast::max(fast::max(_2205, _2206), _2208); - float _2216 = (fast::max(_2211, 1.0000000133514319600180897396058e-10) - fast::max(fast::min(fast::min(_2205, _2206), _2208), 1.0000000133514319600180897396058e-10)) / fast::max(_2211, 0.00999999977648258209228515625); - float _2229 = ((_2208 + _2206) + _2205) + (1.75 * sqrt(((_2208 * (_2208 - _2206)) + (_2206 * (_2206 - _2205))) + (_2205 * (_2205 - _2208)))); - float _2230 = _2229 * 0.3333333432674407958984375; - float _2231 = _2216 - 0.4000000059604644775390625; - float _2236 = fast::max(1.0 - abs(_2231 * 2.5), 0.0); - float _2244 = (1.0 + (float(int(sign(_2231 * 5.0))) * (1.0 - (_2236 * _2236)))) * 0.02500000037252902984619140625; - float _2257; - if (_2230 <= 0.053333334624767303466796875) - { - _2257 = _2244; - } - else - { - float _2256; - if (_2230 >= 0.1599999964237213134765625) - { - _2256 = 0.0; - } - else - { - _2256 = _2244 * ((0.23999999463558197021484375 / _2229) - 0.5); - } - _2257 = _2256; - } - float3 _2260 = _2204 * float3(1.0 + _2257); - float _2261 = _2260.x; - float _2262 = _2260.y; - float _2264 = _2260.z; - float _2278; - if ((_2261 == _2262) && (_2262 == _2264)) - { - _2278 = 0.0; - } - else - { - _2278 = 57.2957763671875 * atan2(1.73205077648162841796875 * (_2262 - _2264), ((2.0 * _2261) - _2262) - _2264); - } - float _2283; - if (_2278 < 0.0) - { - _2283 = _2278 + 360.0; - } - else - { - _2283 = _2278; - } - float _2284 = fast::clamp(_2283, 0.0, 360.0); - float _2289; - if (_2284 > 180.0) - { - _2289 = _2284 - 360.0; - } - else - { - _2289 = _2284; - } - float _2339; - if ((_2289 > (-67.5)) && (_2289 < 67.5)) - { - float _2296 = (_2289 - (-67.5)) * 0.0296296291053295135498046875; - int _2297 = int(_2296); - float _2299 = _2296 - float(_2297); - float _2300 = _2299 * _2299; - float _2301 = _2300 * _2299; - float _2338; - if (_2297 == 3) - { - _2338 = (((_2301 * (-0.16666667163372039794921875)) + (_2300 * 0.5)) + (_2299 * (-0.5))) + 0.16666667163372039794921875; - } - else - { - float _2331; - if (_2297 == 2) - { - _2331 = ((_2301 * 0.5) + (_2300 * (-1.0))) + 0.666666686534881591796875; - } - else - { - float _2326; - if (_2297 == 1) - { - _2326 = (((_2301 * (-0.5)) + (_2300 * 0.5)) + (_2299 * 0.5)) + 0.16666667163372039794921875; - } - else - { - float _2319; - if (_2297 == 0) - { - _2319 = _2301 * 0.16666667163372039794921875; - } - else - { - _2319 = 0.0; - } - _2326 = _2319; - } - _2331 = _2326; - } - _2338 = _2331; - } - _2339 = _2338; - } - else - { - _2339 = 0.0; - } - float3 _2346 = _2260; - _2346.x = _2261 + ((((_2339 * 1.5) * _2216) * (0.02999999932944774627685546875 - _2261)) * 0.180000007152557373046875); - float3 _2349 = fast::clamp(fast::clamp(_2346, float3(0.0), float3(65535.0)) * float3x3(float3(1.45143926143646240234375, -0.236510753631591796875, -0.214928567409515380859375), float3(-0.07655377686023712158203125, 1.1762297153472900390625, -0.0996759235858917236328125), float3(0.0083161480724811553955078125, -0.0060324496589601039886474609375, 0.99771630764007568359375)), float3(0.0), float3(65535.0)); - float3 _2352 = mix(float3(dot(_2349, float3(0.272228717803955078125, 0.674081742763519287109375, 0.053689517080783843994140625))), _2349, float3(0.959999978542327880859375)); - float _2353 = _2352.x; - float _2362 = log((_2353 <= 0.0) ? 6.103515625e-05 : _2353) * 0.4342944622039794921875; - float _2431; - if (_2362 <= (-5.2601776123046875)) - { - _2431 = -4.0; - } - else - { - float _2428; - if ((_2362 > (-5.2601776123046875)) && (_2362 < (-0.744727432727813720703125))) - { - float _2411 = (_2362 - (-5.2601776123046875)) * 0.6643855571746826171875; - int _2412 = int(_2411); - float _2414 = _2411 - float(_2412); - _2428 = dot(float3(_2414 * _2414, _2414, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_499[_2412], _499[_2412 + 1], _499[_2412 + 2])); - } - else - { - float _2407; - if ((_2362 >= (-0.744727432727813720703125)) && (_2362 < 4.673812389373779296875)) - { - float _2390 = (_2362 - (-0.744727432727813720703125)) * 0.55365467071533203125; - int _2391 = int(_2390); - float _2393 = _2390 - float(_2391); - _2407 = dot(float3(_2393 * _2393, _2393, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_500[_2391], _500[_2391 + 1], _500[_2391 + 2])); - } - else - { - _2407 = 4.0; - } - _2428 = _2407; - } - _2431 = _2428; - } - float3 _2433 = _523; - _2433.x = pow(10.0, _2431); - float _2434 = _2352.y; - float _2438 = log((_2434 <= 0.0) ? 6.103515625e-05 : _2434) * 0.4342944622039794921875; - float _2505; - if (_2438 <= (-5.2601776123046875)) - { - _2505 = -4.0; - } - else - { - float _2502; - if ((_2438 > (-5.2601776123046875)) && (_2438 < (-0.744727432727813720703125))) - { - float _2485 = (_2438 - (-5.2601776123046875)) * 0.6643855571746826171875; - int _2486 = int(_2485); - float _2488 = _2485 - float(_2486); - _2502 = dot(float3(_2488 * _2488, _2488, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_499[_2486], _499[_2486 + 1], _499[_2486 + 2])); - } - else - { - float _2481; - if ((_2438 >= (-0.744727432727813720703125)) && (_2438 < 4.673812389373779296875)) - { - float _2464 = (_2438 - (-0.744727432727813720703125)) * 0.55365467071533203125; - int _2465 = int(_2464); - float _2467 = _2464 - float(_2465); - _2481 = dot(float3(_2467 * _2467, _2467, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_500[_2465], _500[_2465 + 1], _500[_2465 + 2])); - } - else - { - _2481 = 4.0; - } - _2502 = _2481; - } - _2505 = _2502; - } - float3 _2507 = _2433; - _2507.y = pow(10.0, _2505); - float _2508 = _2352.z; - float _2512 = log((_2508 <= 0.0) ? 6.103515625e-05 : _2508) * 0.4342944622039794921875; - float _2579; - if (_2512 <= (-5.2601776123046875)) - { - _2579 = -4.0; - } - else - { - float _2576; - if ((_2512 > (-5.2601776123046875)) && (_2512 < (-0.744727432727813720703125))) - { - float _2559 = (_2512 - (-5.2601776123046875)) * 0.6643855571746826171875; - int _2560 = int(_2559); - float _2562 = _2559 - float(_2560); - _2576 = dot(float3(_2562 * _2562, _2562, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_499[_2560], _499[_2560 + 1], _499[_2560 + 2])); - } - else - { - float _2555; - if ((_2512 >= (-0.744727432727813720703125)) && (_2512 < 4.673812389373779296875)) - { - float _2538 = (_2512 - (-0.744727432727813720703125)) * 0.55365467071533203125; - int _2539 = int(_2538); - float _2541 = _2538 - float(_2539); - _2555 = dot(float3(_2541 * _2541, _2541, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_500[_2539], _500[_2539 + 1], _500[_2539 + 2])); - } - else - { - _2555 = 4.0; - } - _2576 = _2555; - } - _2579 = _2576; - } - float3 _2581 = _2507; - _2581.z = pow(10.0, _2579); - float3 _2583 = (_2581 * float3x3(float3(0.695452213287353515625, 0.140678703784942626953125, 0.16386906802654266357421875), float3(0.0447945632040500640869140625, 0.859671115875244140625, 0.095534317195415496826171875), float3(-0.0055258828215301036834716796875, 0.0040252101607620716094970703125, 1.00150072574615478515625))) * float3x3(float3(1.45143926143646240234375, -0.236510753631591796875, -0.214928567409515380859375), float3(-0.07655377686023712158203125, 1.1762297153472900390625, -0.0996759235858917236328125), float3(0.0083161480724811553955078125, -0.0060324496589601039886474609375, 0.99771630764007568359375)); - float _2714 = pow(10.0, (float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(-0.718548238277435302734375, 2.0810306072235107421875, 3.66812419891357421875)).z); - float _2786 = pow(10.0, dot(float3(0.4444443881511688232421875, 0.66666662693023681640625, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(2.0810306072235107421875, 3.66812419891357421875, 4.0))); - float _2787 = _2583.x; - float _2790 = log((_2787 <= 0.0) ? 9.9999997473787516355514526367188e-05 : _2787); - float _2791 = _2790 * 0.4342944622039794921875; - float _2792 = log(pow(10.0, dot(float3(0.3600003719329833984375, 0.600000321865081787109375, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(-4.0, -4.0, -3.1573765277862548828125)))); - float _2793 = _2792 * 0.4342944622039794921875; - float _2870; - if (_2791 <= _2793) - { - _2870 = (_2790 * 1.3028833866119384765625) + ((-4.0) - (_2792 * 1.3028833866119384765625)); - } - else - { - float _2800 = log(_2714) * 0.4342944622039794921875; - float _2862; - if ((_2791 > _2793) && (_2791 < _2800)) - { - float _2845 = (7.0 * (_2791 - _2793)) / (_2800 - _2793); - int _2846 = int(_2845); - float _2848 = _2845 - float(_2846); - _2862 = dot(float3(_2848 * _2848, _2848, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_503[_2846], _503[_2846 + 1], _503[_2846 + 2])); - } - else - { - float _2807 = log(_2786); - float _2808 = _2807 * 0.4342944622039794921875; - float _2841; - if ((_2791 >= _2800) && (_2791 < _2808)) - { - float _2824 = (7.0 * (_2791 - _2800)) / (_2808 - _2800); - int _2825 = int(_2824); - float _2827 = _2824 - float(_2825); - _2841 = dot(float3(_2827 * _2827, _2827, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_504[_2825], _504[_2825 + 1], _504[_2825 + 2])); - } - else - { - _2841 = (_2790 * 0.026057668030261993408203125) + (3.0 - (_2807 * 0.026057668030261993408203125)); - } - _2862 = _2841; - } - _2870 = _2862; - } - float3 _2872 = _523; - _2872.x = pow(10.0, _2870); - float _2873 = _2583.y; - float _2876 = log((_2873 <= 0.0) ? 9.9999997473787516355514526367188e-05 : _2873); - float _2877 = _2876 * 0.4342944622039794921875; - float _2954; - if (_2877 <= _2793) - { - _2954 = (_2876 * 1.3028833866119384765625) + ((-4.0) - (_2792 * 1.3028833866119384765625)); - } - else - { - float _2884 = log(_2714) * 0.4342944622039794921875; - float _2946; - if ((_2877 > _2793) && (_2877 < _2884)) - { - float _2929 = (7.0 * (_2877 - _2793)) / (_2884 - _2793); - int _2930 = int(_2929); - float _2932 = _2929 - float(_2930); - _2946 = dot(float3(_2932 * _2932, _2932, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_503[_2930], _503[_2930 + 1], _503[_2930 + 2])); - } - else - { - float _2891 = log(_2786); - float _2892 = _2891 * 0.4342944622039794921875; - float _2925; - if ((_2877 >= _2884) && (_2877 < _2892)) - { - float _2908 = (7.0 * (_2877 - _2884)) / (_2892 - _2884); - int _2909 = int(_2908); - float _2911 = _2908 - float(_2909); - _2925 = dot(float3(_2911 * _2911, _2911, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_504[_2909], _504[_2909 + 1], _504[_2909 + 2])); - } - else - { - _2925 = (_2876 * 0.026057668030261993408203125) + (3.0 - (_2891 * 0.026057668030261993408203125)); - } - _2946 = _2925; - } - _2954 = _2946; - } - float3 _2956 = _2872; - _2956.y = pow(10.0, _2954); - float _2957 = _2583.z; - float _2960 = log((_2957 <= 0.0) ? 9.9999997473787516355514526367188e-05 : _2957); - float _2961 = _2960 * 0.4342944622039794921875; - float _3038; - if (_2961 <= _2793) - { - _3038 = (_2960 * 1.3028833866119384765625) + ((-4.0) - (_2792 * 1.3028833866119384765625)); - } - else - { - float _2968 = log(_2714) * 0.4342944622039794921875; - float _3030; - if ((_2961 > _2793) && (_2961 < _2968)) - { - float _3013 = (7.0 * (_2961 - _2793)) / (_2968 - _2793); - int _3014 = int(_3013); - float _3016 = _3013 - float(_3014); - _3030 = dot(float3(_3016 * _3016, _3016, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_503[_3014], _503[_3014 + 1], _503[_3014 + 2])); - } - else - { - float _2975 = log(_2786); - float _2976 = _2975 * 0.4342944622039794921875; - float _3009; - if ((_2961 >= _2968) && (_2961 < _2976)) - { - float _2992 = (7.0 * (_2961 - _2968)) / (_2976 - _2968); - int _2993 = int(_2992); - float _2995 = _2992 - float(_2993); - _3009 = dot(float3(_2995 * _2995, _2995, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_504[_2993], _504[_2993 + 1], _504[_2993 + 2])); - } - else - { - _3009 = (_2960 * 0.026057668030261993408203125) + (3.0 - (_2975 * 0.026057668030261993408203125)); - } - _3030 = _3009; - } - _3038 = _3030; - } - float3 _3040 = _2956; - _3040.z = pow(10.0, _3038); - float3 _3044 = pow(((_3040 - float3(3.5073844628641381859779357910156e-05)) * _602) * float3(9.9999997473787516355514526367188e-05), float3(0.1593017578125)); - _3052 = pow((float3(0.8359375) + (float3(18.8515625) * _3044)) * (float3(1.0) / (float3(1.0) + (float3(18.6875) * _3044))), float3(78.84375)); - } - else - { - float3 _2201; - if ((_Globals.OutputDevice == 4u) || (_Globals.OutputDevice == 6u)) - { - float3 _1369 = (_932 * float3(1.5)) * (_572 * float3x3(float3(1.04981100559234619140625, 0.0, -9.74845024757087230682373046875e-05), float3(-0.49590301513671875, 1.37331306934356689453125, 0.09824003279209136962890625), float3(0.0, 0.0, 0.991252005100250244140625))); - float _1370 = _1369.x; - float _1371 = _1369.y; - float _1373 = _1369.z; - float _1376 = fast::max(fast::max(_1370, _1371), _1373); - float _1381 = (fast::max(_1376, 1.0000000133514319600180897396058e-10) - fast::max(fast::min(fast::min(_1370, _1371), _1373), 1.0000000133514319600180897396058e-10)) / fast::max(_1376, 0.00999999977648258209228515625); - float _1394 = ((_1373 + _1371) + _1370) + (1.75 * sqrt(((_1373 * (_1373 - _1371)) + (_1371 * (_1371 - _1370))) + (_1370 * (_1370 - _1373)))); - float _1395 = _1394 * 0.3333333432674407958984375; - float _1396 = _1381 - 0.4000000059604644775390625; - float _1401 = fast::max(1.0 - abs(_1396 * 2.5), 0.0); - float _1409 = (1.0 + (float(int(sign(_1396 * 5.0))) * (1.0 - (_1401 * _1401)))) * 0.02500000037252902984619140625; - float _1422; - if (_1395 <= 0.053333334624767303466796875) - { - _1422 = _1409; - } - else - { - float _1421; - if (_1395 >= 0.1599999964237213134765625) - { - _1421 = 0.0; - } - else - { - _1421 = _1409 * ((0.23999999463558197021484375 / _1394) - 0.5); - } - _1422 = _1421; - } - float3 _1425 = _1369 * float3(1.0 + _1422); - float _1426 = _1425.x; - float _1427 = _1425.y; - float _1429 = _1425.z; - float _1443; - if ((_1426 == _1427) && (_1427 == _1429)) - { - _1443 = 0.0; - } - else - { - _1443 = 57.2957763671875 * atan2(1.73205077648162841796875 * (_1427 - _1429), ((2.0 * _1426) - _1427) - _1429); - } - float _1448; - if (_1443 < 0.0) - { - _1448 = _1443 + 360.0; - } - else - { - _1448 = _1443; - } - float _1449 = fast::clamp(_1448, 0.0, 360.0); - float _1454; - if (_1449 > 180.0) - { - _1454 = _1449 - 360.0; - } - else - { - _1454 = _1449; - } - float _1504; - if ((_1454 > (-67.5)) && (_1454 < 67.5)) - { - float _1461 = (_1454 - (-67.5)) * 0.0296296291053295135498046875; - int _1462 = int(_1461); - float _1464 = _1461 - float(_1462); - float _1465 = _1464 * _1464; - float _1466 = _1465 * _1464; - float _1503; - if (_1462 == 3) - { - _1503 = (((_1466 * (-0.16666667163372039794921875)) + (_1465 * 0.5)) + (_1464 * (-0.5))) + 0.16666667163372039794921875; - } - else - { - float _1496; - if (_1462 == 2) - { - _1496 = ((_1466 * 0.5) + (_1465 * (-1.0))) + 0.666666686534881591796875; - } - else - { - float _1491; - if (_1462 == 1) - { - _1491 = (((_1466 * (-0.5)) + (_1465 * 0.5)) + (_1464 * 0.5)) + 0.16666667163372039794921875; - } - else - { - float _1484; - if (_1462 == 0) - { - _1484 = _1466 * 0.16666667163372039794921875; - } - else - { - _1484 = 0.0; - } - _1491 = _1484; - } - _1496 = _1491; - } - _1503 = _1496; - } - _1504 = _1503; - } - else - { - _1504 = 0.0; - } - float3 _1511 = _1425; - _1511.x = _1426 + ((((_1504 * 1.5) * _1381) * (0.02999999932944774627685546875 - _1426)) * 0.180000007152557373046875); - float3 _1514 = fast::clamp(fast::clamp(_1511, float3(0.0), float3(65535.0)) * float3x3(float3(1.45143926143646240234375, -0.236510753631591796875, -0.214928567409515380859375), float3(-0.07655377686023712158203125, 1.1762297153472900390625, -0.0996759235858917236328125), float3(0.0083161480724811553955078125, -0.0060324496589601039886474609375, 0.99771630764007568359375)), float3(0.0), float3(65535.0)); - float3 _1517 = mix(float3(dot(_1514, float3(0.272228717803955078125, 0.674081742763519287109375, 0.053689517080783843994140625))), _1514, float3(0.959999978542327880859375)); - float _1518 = _1517.x; - float _1527 = log((_1518 <= 0.0) ? 6.103515625e-05 : _1518) * 0.4342944622039794921875; - float _1596; - if (_1527 <= (-5.2601776123046875)) - { - _1596 = -4.0; - } - else - { - float _1593; - if ((_1527 > (-5.2601776123046875)) && (_1527 < (-0.744727432727813720703125))) - { - float _1576 = (_1527 - (-5.2601776123046875)) * 0.6643855571746826171875; - int _1577 = int(_1576); - float _1579 = _1576 - float(_1577); - _1593 = dot(float3(_1579 * _1579, _1579, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_499[_1577], _499[_1577 + 1], _499[_1577 + 2])); - } - else - { - float _1572; - if ((_1527 >= (-0.744727432727813720703125)) && (_1527 < 4.673812389373779296875)) - { - float _1555 = (_1527 - (-0.744727432727813720703125)) * 0.55365467071533203125; - int _1556 = int(_1555); - float _1558 = _1555 - float(_1556); - _1572 = dot(float3(_1558 * _1558, _1558, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_500[_1556], _500[_1556 + 1], _500[_1556 + 2])); - } - else - { - _1572 = 4.0; - } - _1593 = _1572; - } - _1596 = _1593; - } - float3 _1598 = _523; - _1598.x = pow(10.0, _1596); - float _1599 = _1517.y; - float _1603 = log((_1599 <= 0.0) ? 6.103515625e-05 : _1599) * 0.4342944622039794921875; - float _1670; - if (_1603 <= (-5.2601776123046875)) - { - _1670 = -4.0; - } - else - { - float _1667; - if ((_1603 > (-5.2601776123046875)) && (_1603 < (-0.744727432727813720703125))) - { - float _1650 = (_1603 - (-5.2601776123046875)) * 0.6643855571746826171875; - int _1651 = int(_1650); - float _1653 = _1650 - float(_1651); - _1667 = dot(float3(_1653 * _1653, _1653, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_499[_1651], _499[_1651 + 1], _499[_1651 + 2])); - } - else - { - float _1646; - if ((_1603 >= (-0.744727432727813720703125)) && (_1603 < 4.673812389373779296875)) - { - float _1629 = (_1603 - (-0.744727432727813720703125)) * 0.55365467071533203125; - int _1630 = int(_1629); - float _1632 = _1629 - float(_1630); - _1646 = dot(float3(_1632 * _1632, _1632, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_500[_1630], _500[_1630 + 1], _500[_1630 + 2])); - } - else - { - _1646 = 4.0; - } - _1667 = _1646; - } - _1670 = _1667; - } - float3 _1672 = _1598; - _1672.y = pow(10.0, _1670); - float _1673 = _1517.z; - float _1677 = log((_1673 <= 0.0) ? 6.103515625e-05 : _1673) * 0.4342944622039794921875; - float _1744; - if (_1677 <= (-5.2601776123046875)) - { - _1744 = -4.0; - } - else - { - float _1741; - if ((_1677 > (-5.2601776123046875)) && (_1677 < (-0.744727432727813720703125))) - { - float _1724 = (_1677 - (-5.2601776123046875)) * 0.6643855571746826171875; - int _1725 = int(_1724); - float _1727 = _1724 - float(_1725); - _1741 = dot(float3(_1727 * _1727, _1727, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_499[_1725], _499[_1725 + 1], _499[_1725 + 2])); - } - else - { - float _1720; - if ((_1677 >= (-0.744727432727813720703125)) && (_1677 < 4.673812389373779296875)) - { - float _1703 = (_1677 - (-0.744727432727813720703125)) * 0.55365467071533203125; - int _1704 = int(_1703); - float _1706 = _1703 - float(_1704); - _1720 = dot(float3(_1706 * _1706, _1706, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_500[_1704], _500[_1704 + 1], _500[_1704 + 2])); - } - else - { - _1720 = 4.0; - } - _1741 = _1720; - } - _1744 = _1741; - } - float3 _1746 = _1672; - _1746.z = pow(10.0, _1744); - float3 _1748 = (_1746 * float3x3(float3(0.695452213287353515625, 0.140678703784942626953125, 0.16386906802654266357421875), float3(0.0447945632040500640869140625, 0.859671115875244140625, 0.095534317195415496826171875), float3(-0.0055258828215301036834716796875, 0.0040252101607620716094970703125, 1.00150072574615478515625))) * float3x3(float3(1.45143926143646240234375, -0.236510753631591796875, -0.214928567409515380859375), float3(-0.07655377686023712158203125, 1.1762297153472900390625, -0.0996759235858917236328125), float3(0.0083161480724811553955078125, -0.0060324496589601039886474609375, 0.99771630764007568359375)); - float _1879 = pow(10.0, (float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(-0.718548238277435302734375, 2.0810306072235107421875, 3.66812419891357421875)).z); - float _1951 = pow(10.0, dot(float3(0.69444429874420166015625, 0.8333332538604736328125, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(2.0810306072235107421875, 3.66812419891357421875, 4.0))); - float _1952 = _1748.x; - float _1955 = log((_1952 <= 0.0) ? 9.9999997473787516355514526367188e-05 : _1952); - float _1956 = _1955 * 0.4342944622039794921875; - float _1958 = log(pow(10.0, dot(float3(0.3600003719329833984375, 0.600000321865081787109375, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(-4.0, -4.0, -3.1573765277862548828125)))) * 0.4342944622039794921875; - float _2030; - if (_1956 <= _1958) - { - _2030 = -2.3010299205780029296875; - } - else - { - float _1965 = log(_1879) * 0.4342944622039794921875; - float _2027; - if ((_1956 > _1958) && (_1956 < _1965)) - { - float _2010 = (7.0 * (_1956 - _1958)) / (_1965 - _1958); - int _2011 = int(_2010); - float _2013 = _2010 - float(_2011); - _2027 = dot(float3(_2013 * _2013, _2013, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_506[_2011], _506[_2011 + 1], _506[_2011 + 2])); - } - else - { - float _1972 = log(_1951); - float _1973 = _1972 * 0.4342944622039794921875; - float _2006; - if ((_1956 >= _1965) && (_1956 < _1973)) - { - float _1989 = (7.0 * (_1956 - _1965)) / (_1973 - _1965); - int _1990 = int(_1989); - float _1992 = _1989 - float(_1990); - _2006 = dot(float3(_1992 * _1992, _1992, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_507[_1990], _507[_1990 + 1], _507[_1990 + 2])); - } - else - { - _2006 = (_1955 * 0.05211533606052398681640625) + (3.3010299205780029296875 - (_1972 * 0.05211533606052398681640625)); - } - _2027 = _2006; - } - _2030 = _2027; - } - float3 _2032 = _523; - _2032.x = pow(10.0, _2030); - float _2033 = _1748.y; - float _2036 = log((_2033 <= 0.0) ? 9.9999997473787516355514526367188e-05 : _2033); - float _2037 = _2036 * 0.4342944622039794921875; - float _2109; - if (_2037 <= _1958) - { - _2109 = -2.3010299205780029296875; - } - else - { - float _2044 = log(_1879) * 0.4342944622039794921875; - float _2106; - if ((_2037 > _1958) && (_2037 < _2044)) - { - float _2089 = (7.0 * (_2037 - _1958)) / (_2044 - _1958); - int _2090 = int(_2089); - float _2092 = _2089 - float(_2090); - _2106 = dot(float3(_2092 * _2092, _2092, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_506[_2090], _506[_2090 + 1], _506[_2090 + 2])); - } - else - { - float _2051 = log(_1951); - float _2052 = _2051 * 0.4342944622039794921875; - float _2085; - if ((_2037 >= _2044) && (_2037 < _2052)) - { - float _2068 = (7.0 * (_2037 - _2044)) / (_2052 - _2044); - int _2069 = int(_2068); - float _2071 = _2068 - float(_2069); - _2085 = dot(float3(_2071 * _2071, _2071, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_507[_2069], _507[_2069 + 1], _507[_2069 + 2])); - } - else - { - _2085 = (_2036 * 0.05211533606052398681640625) + (3.3010299205780029296875 - (_2051 * 0.05211533606052398681640625)); - } - _2106 = _2085; - } - _2109 = _2106; - } - float3 _2111 = _2032; - _2111.y = pow(10.0, _2109); - float _2112 = _1748.z; - float _2115 = log((_2112 <= 0.0) ? 9.9999997473787516355514526367188e-05 : _2112); - float _2116 = _2115 * 0.4342944622039794921875; - float _2188; - if (_2116 <= _1958) - { - _2188 = -2.3010299205780029296875; - } - else - { - float _2123 = log(_1879) * 0.4342944622039794921875; - float _2185; - if ((_2116 > _1958) && (_2116 < _2123)) - { - float _2168 = (7.0 * (_2116 - _1958)) / (_2123 - _1958); - int _2169 = int(_2168); - float _2171 = _2168 - float(_2169); - _2185 = dot(float3(_2171 * _2171, _2171, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_506[_2169], _506[_2169 + 1], _506[_2169 + 2])); - } - else - { - float _2130 = log(_1951); - float _2131 = _2130 * 0.4342944622039794921875; - float _2164; - if ((_2116 >= _2123) && (_2116 < _2131)) - { - float _2147 = (7.0 * (_2116 - _2123)) / (_2131 - _2123); - int _2148 = int(_2147); - float _2150 = _2147 - float(_2148); - _2164 = dot(float3(_2150 * _2150, _2150, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_507[_2148], _507[_2148 + 1], _507[_2148 + 2])); - } - else - { - _2164 = (_2115 * 0.05211533606052398681640625) + (3.3010299205780029296875 - (_2130 * 0.05211533606052398681640625)); - } - _2185 = _2164; - } - _2188 = _2185; - } - float3 _2190 = _2111; - _2190.z = pow(10.0, _2188); - float3 _2193 = pow((_2190 * _602) * float3(9.9999997473787516355514526367188e-05), float3(0.1593017578125)); - _2201 = pow((float3(0.8359375) + (float3(18.8515625) * _2193)) * (float3(1.0) / (float3(1.0) + (float3(18.6875) * _2193))), float3(78.84375)); - } - else - { - float3 _1366; - if (_Globals.OutputDevice == 7u) - { - float3 _1358 = pow(((_932 * _573) * _602) * float3(9.9999997473787516355514526367188e-05), float3(0.1593017578125)); - _1366 = pow((float3(0.8359375) + (float3(18.8515625) * _1358)) * (float3(1.0) / (float3(1.0) + (float3(18.6875) * _1358))), float3(78.84375)); - } - else - { - _1366 = pow((_1324 * _573) * _602, float3(_Globals.InverseGamma.z)); - } - _2201 = _1366; - } - _3052 = _2201; - } - _3062 = _3052; - } - _3103 = _3062; - } - float3 _3104 = _3103 * float3(0.95238101482391357421875); - float4 _3106 = float4(_3104.x, _3104.y, _3104.z, float4(0.0).w); - _3106.w = 0.0; - out.out_var_SV_Target0 = _3106; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/frag/sample-mask-not-array.asm.frag b/third_party/spirv-cross/reference/opt/shaders-ue4/asm/frag/sample-mask-not-array.asm.frag deleted file mode 100644 index 479471d245..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/frag/sample-mask-not-array.asm.frag +++ /dev/null @@ -1,503 +0,0 @@ -#include -#include - -using namespace metal; - -struct type_View -{ - float4x4 View_TranslatedWorldToClip; - float4x4 View_WorldToClip; - float4x4 View_TranslatedWorldToView; - float4x4 View_ViewToTranslatedWorld; - float4x4 View_TranslatedWorldToCameraView; - float4x4 View_CameraViewToTranslatedWorld; - float4x4 View_ViewToClip; - float4x4 View_ViewToClipNoAA; - float4x4 View_ClipToView; - float4x4 View_ClipToTranslatedWorld; - float4x4 View_SVPositionToTranslatedWorld; - float4x4 View_ScreenToWorld; - float4x4 View_ScreenToTranslatedWorld; - packed_float3 View_ViewForward; - float PrePadding_View_844; - packed_float3 View_ViewUp; - float PrePadding_View_860; - packed_float3 View_ViewRight; - float PrePadding_View_876; - packed_float3 View_HMDViewNoRollUp; - float PrePadding_View_892; - packed_float3 View_HMDViewNoRollRight; - float PrePadding_View_908; - float4 View_InvDeviceZToWorldZTransform; - float4 View_ScreenPositionScaleBias; - packed_float3 View_WorldCameraOrigin; - float PrePadding_View_956; - packed_float3 View_TranslatedWorldCameraOrigin; - float PrePadding_View_972; - packed_float3 View_WorldViewOrigin; - float PrePadding_View_988; - packed_float3 View_PreViewTranslation; - float PrePadding_View_1004; - float4x4 View_PrevProjection; - float4x4 View_PrevViewProj; - float4x4 View_PrevViewRotationProj; - float4x4 View_PrevViewToClip; - float4x4 View_PrevClipToView; - float4x4 View_PrevTranslatedWorldToClip; - float4x4 View_PrevTranslatedWorldToView; - float4x4 View_PrevViewToTranslatedWorld; - float4x4 View_PrevTranslatedWorldToCameraView; - float4x4 View_PrevCameraViewToTranslatedWorld; - packed_float3 View_PrevWorldCameraOrigin; - float PrePadding_View_1660; - packed_float3 View_PrevWorldViewOrigin; - float PrePadding_View_1676; - packed_float3 View_PrevPreViewTranslation; - float PrePadding_View_1692; - float4x4 View_PrevInvViewProj; - float4x4 View_PrevScreenToTranslatedWorld; - float4x4 View_ClipToPrevClip; - float4 View_TemporalAAJitter; - float4 View_GlobalClippingPlane; - float2 View_FieldOfViewWideAngles; - float2 View_PrevFieldOfViewWideAngles; - float4 View_ViewRectMin; - float4 View_ViewSizeAndInvSize; - float4 View_BufferSizeAndInvSize; - float4 View_BufferBilinearUVMinMax; - int View_NumSceneColorMSAASamples; - float View_PreExposure; - float View_OneOverPreExposure; - float PrePadding_View_2012; - float4 View_DiffuseOverrideParameter; - float4 View_SpecularOverrideParameter; - float4 View_NormalOverrideParameter; - float2 View_RoughnessOverrideParameter; - float View_PrevFrameGameTime; - float View_PrevFrameRealTime; - float View_OutOfBoundsMask; - float PrePadding_View_2084; - float PrePadding_View_2088; - float PrePadding_View_2092; - packed_float3 View_WorldCameraMovementSinceLastFrame; - float View_CullingSign; - float View_NearPlane; - float View_AdaptiveTessellationFactor; - float View_GameTime; - float View_RealTime; - float View_DeltaTime; - float View_MaterialTextureMipBias; - float View_MaterialTextureDerivativeMultiply; - uint View_Random; - uint View_FrameNumber; - uint View_StateFrameIndexMod8; - uint View_StateFrameIndex; - float View_CameraCut; - float View_UnlitViewmodeMask; - float PrePadding_View_2164; - float PrePadding_View_2168; - float PrePadding_View_2172; - float4 View_DirectionalLightColor; - packed_float3 View_DirectionalLightDirection; - float PrePadding_View_2204; - float4 View_TranslucencyLightingVolumeMin[2]; - float4 View_TranslucencyLightingVolumeInvSize[2]; - float4 View_TemporalAAParams; - float4 View_CircleDOFParams; - float View_DepthOfFieldSensorWidth; - float View_DepthOfFieldFocalDistance; - float View_DepthOfFieldScale; - float View_DepthOfFieldFocalLength; - float View_DepthOfFieldFocalRegion; - float View_DepthOfFieldNearTransitionRegion; - float View_DepthOfFieldFarTransitionRegion; - float View_MotionBlurNormalizedToPixel; - float View_bSubsurfacePostprocessEnabled; - float View_GeneralPurposeTweak; - float View_DemosaicVposOffset; - float PrePadding_View_2348; - packed_float3 View_IndirectLightingColorScale; - float View_HDR32bppEncodingMode; - packed_float3 View_AtmosphericFogSunDirection; - float View_AtmosphericFogSunPower; - float View_AtmosphericFogPower; - float View_AtmosphericFogDensityScale; - float View_AtmosphericFogDensityOffset; - float View_AtmosphericFogGroundOffset; - float View_AtmosphericFogDistanceScale; - float View_AtmosphericFogAltitudeScale; - float View_AtmosphericFogHeightScaleRayleigh; - float View_AtmosphericFogStartDistance; - float View_AtmosphericFogDistanceOffset; - float View_AtmosphericFogSunDiscScale; - uint View_AtmosphericFogRenderMask; - uint View_AtmosphericFogInscatterAltitudeSampleNum; - float4 View_AtmosphericFogSunColor; - packed_float3 View_NormalCurvatureToRoughnessScaleBias; - float View_RenderingReflectionCaptureMask; - float4 View_AmbientCubemapTint; - float View_AmbientCubemapIntensity; - float View_SkyLightParameters; - float PrePadding_View_2488; - float PrePadding_View_2492; - float4 View_SkyLightColor; - float4 View_SkyIrradianceEnvironmentMap[7]; - float View_MobilePreviewMode; - float View_HMDEyePaddingOffset; - float View_ReflectionCubemapMaxMip; - float View_ShowDecalsMask; - uint View_DistanceFieldAOSpecularOcclusionMode; - float View_IndirectCapsuleSelfShadowingIntensity; - float PrePadding_View_2648; - float PrePadding_View_2652; - packed_float3 View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight; - int View_StereoPassIndex; - float4 View_GlobalVolumeCenterAndExtent[4]; - float4 View_GlobalVolumeWorldToUVAddAndMul[4]; - float View_GlobalVolumeDimension; - float View_GlobalVolumeTexelSize; - float View_MaxGlobalDistance; - float View_bCheckerboardSubsurfaceProfileRendering; - packed_float3 View_VolumetricFogInvGridSize; - float PrePadding_View_2828; - packed_float3 View_VolumetricFogGridZParams; - float PrePadding_View_2844; - float2 View_VolumetricFogSVPosToVolumeUV; - float View_VolumetricFogMaxDistance; - float PrePadding_View_2860; - packed_float3 View_VolumetricLightmapWorldToUVScale; - float PrePadding_View_2876; - packed_float3 View_VolumetricLightmapWorldToUVAdd; - float PrePadding_View_2892; - packed_float3 View_VolumetricLightmapIndirectionTextureSize; - float View_VolumetricLightmapBrickSize; - packed_float3 View_VolumetricLightmapBrickTexelSize; - float View_StereoIPD; - float View_IndirectLightingCacheShowFlag; - float View_EyeToPixelSpreadAngle; -}; - -struct type_StructuredBuffer_v4float -{ - float4 _m0[1]; -}; - -struct type_TranslucentBasePass -{ - uint TranslucentBasePass_Shared_Forward_NumLocalLights; - uint TranslucentBasePass_Shared_Forward_NumReflectionCaptures; - uint TranslucentBasePass_Shared_Forward_HasDirectionalLight; - uint TranslucentBasePass_Shared_Forward_NumGridCells; - packed_int3 TranslucentBasePass_Shared_Forward_CulledGridSize; - uint TranslucentBasePass_Shared_Forward_MaxCulledLightsPerCell; - uint TranslucentBasePass_Shared_Forward_LightGridPixelSizeShift; - uint PrePadding_TranslucentBasePass_Shared_Forward_36; - uint PrePadding_TranslucentBasePass_Shared_Forward_40; - uint PrePadding_TranslucentBasePass_Shared_Forward_44; - packed_float3 TranslucentBasePass_Shared_Forward_LightGridZParams; - float PrePadding_TranslucentBasePass_Shared_Forward_60; - packed_float3 TranslucentBasePass_Shared_Forward_DirectionalLightDirection; - float PrePadding_TranslucentBasePass_Shared_Forward_76; - packed_float3 TranslucentBasePass_Shared_Forward_DirectionalLightColor; - float TranslucentBasePass_Shared_Forward_DirectionalLightVolumetricScatteringIntensity; - uint TranslucentBasePass_Shared_Forward_DirectionalLightShadowMapChannelMask; - uint PrePadding_TranslucentBasePass_Shared_Forward_100; - float2 TranslucentBasePass_Shared_Forward_DirectionalLightDistanceFadeMAD; - uint TranslucentBasePass_Shared_Forward_NumDirectionalLightCascades; - uint PrePadding_TranslucentBasePass_Shared_Forward_116; - uint PrePadding_TranslucentBasePass_Shared_Forward_120; - uint PrePadding_TranslucentBasePass_Shared_Forward_124; - float4 TranslucentBasePass_Shared_Forward_CascadeEndDepths; - float4x4 TranslucentBasePass_Shared_Forward_DirectionalLightWorldToShadowMatrix[4]; - float4 TranslucentBasePass_Shared_Forward_DirectionalLightShadowmapMinMax[4]; - float4 TranslucentBasePass_Shared_Forward_DirectionalLightShadowmapAtlasBufferSize; - float TranslucentBasePass_Shared_Forward_DirectionalLightDepthBias; - uint TranslucentBasePass_Shared_Forward_DirectionalLightUseStaticShadowing; - uint PrePadding_TranslucentBasePass_Shared_Forward_488; - uint PrePadding_TranslucentBasePass_Shared_Forward_492; - float4 TranslucentBasePass_Shared_Forward_DirectionalLightStaticShadowBufferSize; - float4x4 TranslucentBasePass_Shared_Forward_DirectionalLightWorldToStaticShadow; - float PrePadding_TranslucentBasePass_Shared_ForwardISR_576; - float PrePadding_TranslucentBasePass_Shared_ForwardISR_580; - float PrePadding_TranslucentBasePass_Shared_ForwardISR_584; - float PrePadding_TranslucentBasePass_Shared_ForwardISR_588; - float PrePadding_TranslucentBasePass_Shared_ForwardISR_592; - float PrePadding_TranslucentBasePass_Shared_ForwardISR_596; - float PrePadding_TranslucentBasePass_Shared_ForwardISR_600; - float PrePadding_TranslucentBasePass_Shared_ForwardISR_604; - float PrePadding_TranslucentBasePass_Shared_ForwardISR_608; - float PrePadding_TranslucentBasePass_Shared_ForwardISR_612; - float PrePadding_TranslucentBasePass_Shared_ForwardISR_616; - float PrePadding_TranslucentBasePass_Shared_ForwardISR_620; - float PrePadding_TranslucentBasePass_Shared_ForwardISR_624; - float PrePadding_TranslucentBasePass_Shared_ForwardISR_628; - float PrePadding_TranslucentBasePass_Shared_ForwardISR_632; - float PrePadding_TranslucentBasePass_Shared_ForwardISR_636; - uint TranslucentBasePass_Shared_ForwardISR_NumLocalLights; - uint TranslucentBasePass_Shared_ForwardISR_NumReflectionCaptures; - uint TranslucentBasePass_Shared_ForwardISR_HasDirectionalLight; - uint TranslucentBasePass_Shared_ForwardISR_NumGridCells; - packed_int3 TranslucentBasePass_Shared_ForwardISR_CulledGridSize; - uint TranslucentBasePass_Shared_ForwardISR_MaxCulledLightsPerCell; - uint TranslucentBasePass_Shared_ForwardISR_LightGridPixelSizeShift; - uint PrePadding_TranslucentBasePass_Shared_ForwardISR_676; - uint PrePadding_TranslucentBasePass_Shared_ForwardISR_680; - uint PrePadding_TranslucentBasePass_Shared_ForwardISR_684; - packed_float3 TranslucentBasePass_Shared_ForwardISR_LightGridZParams; - float PrePadding_TranslucentBasePass_Shared_ForwardISR_700; - packed_float3 TranslucentBasePass_Shared_ForwardISR_DirectionalLightDirection; - float PrePadding_TranslucentBasePass_Shared_ForwardISR_716; - packed_float3 TranslucentBasePass_Shared_ForwardISR_DirectionalLightColor; - float TranslucentBasePass_Shared_ForwardISR_DirectionalLightVolumetricScatteringIntensity; - uint TranslucentBasePass_Shared_ForwardISR_DirectionalLightShadowMapChannelMask; - uint PrePadding_TranslucentBasePass_Shared_ForwardISR_740; - float2 TranslucentBasePass_Shared_ForwardISR_DirectionalLightDistanceFadeMAD; - uint TranslucentBasePass_Shared_ForwardISR_NumDirectionalLightCascades; - uint PrePadding_TranslucentBasePass_Shared_ForwardISR_756; - uint PrePadding_TranslucentBasePass_Shared_ForwardISR_760; - uint PrePadding_TranslucentBasePass_Shared_ForwardISR_764; - float4 TranslucentBasePass_Shared_ForwardISR_CascadeEndDepths; - float4x4 TranslucentBasePass_Shared_ForwardISR_DirectionalLightWorldToShadowMatrix[4]; - float4 TranslucentBasePass_Shared_ForwardISR_DirectionalLightShadowmapMinMax[4]; - float4 TranslucentBasePass_Shared_ForwardISR_DirectionalLightShadowmapAtlasBufferSize; - float TranslucentBasePass_Shared_ForwardISR_DirectionalLightDepthBias; - uint TranslucentBasePass_Shared_ForwardISR_DirectionalLightUseStaticShadowing; - uint PrePadding_TranslucentBasePass_Shared_ForwardISR_1128; - uint PrePadding_TranslucentBasePass_Shared_ForwardISR_1132; - float4 TranslucentBasePass_Shared_ForwardISR_DirectionalLightStaticShadowBufferSize; - float4x4 TranslucentBasePass_Shared_ForwardISR_DirectionalLightWorldToStaticShadow; - float PrePadding_TranslucentBasePass_Shared_Reflection_1216; - float PrePadding_TranslucentBasePass_Shared_Reflection_1220; - float PrePadding_TranslucentBasePass_Shared_Reflection_1224; - float PrePadding_TranslucentBasePass_Shared_Reflection_1228; - float PrePadding_TranslucentBasePass_Shared_Reflection_1232; - float PrePadding_TranslucentBasePass_Shared_Reflection_1236; - float PrePadding_TranslucentBasePass_Shared_Reflection_1240; - float PrePadding_TranslucentBasePass_Shared_Reflection_1244; - float PrePadding_TranslucentBasePass_Shared_Reflection_1248; - float PrePadding_TranslucentBasePass_Shared_Reflection_1252; - float PrePadding_TranslucentBasePass_Shared_Reflection_1256; - float PrePadding_TranslucentBasePass_Shared_Reflection_1260; - float PrePadding_TranslucentBasePass_Shared_Reflection_1264; - float PrePadding_TranslucentBasePass_Shared_Reflection_1268; - float PrePadding_TranslucentBasePass_Shared_Reflection_1272; - float PrePadding_TranslucentBasePass_Shared_Reflection_1276; - float4 TranslucentBasePass_Shared_Reflection_SkyLightParameters; - float TranslucentBasePass_Shared_Reflection_SkyLightCubemapBrightness; - float PrePadding_TranslucentBasePass_Shared_PlanarReflection_1300; - float PrePadding_TranslucentBasePass_Shared_PlanarReflection_1304; - float PrePadding_TranslucentBasePass_Shared_PlanarReflection_1308; - float PrePadding_TranslucentBasePass_Shared_PlanarReflection_1312; - float PrePadding_TranslucentBasePass_Shared_PlanarReflection_1316; - float PrePadding_TranslucentBasePass_Shared_PlanarReflection_1320; - float PrePadding_TranslucentBasePass_Shared_PlanarReflection_1324; - float PrePadding_TranslucentBasePass_Shared_PlanarReflection_1328; - float PrePadding_TranslucentBasePass_Shared_PlanarReflection_1332; - float PrePadding_TranslucentBasePass_Shared_PlanarReflection_1336; - float PrePadding_TranslucentBasePass_Shared_PlanarReflection_1340; - float PrePadding_TranslucentBasePass_Shared_PlanarReflection_1344; - float PrePadding_TranslucentBasePass_Shared_PlanarReflection_1348; - float PrePadding_TranslucentBasePass_Shared_PlanarReflection_1352; - float PrePadding_TranslucentBasePass_Shared_PlanarReflection_1356; - float4 TranslucentBasePass_Shared_PlanarReflection_ReflectionPlane; - float4 TranslucentBasePass_Shared_PlanarReflection_PlanarReflectionOrigin; - float4 TranslucentBasePass_Shared_PlanarReflection_PlanarReflectionXAxis; - float4 TranslucentBasePass_Shared_PlanarReflection_PlanarReflectionYAxis; - float3x4 TranslucentBasePass_Shared_PlanarReflection_InverseTransposeMirrorMatrix; - packed_float3 TranslucentBasePass_Shared_PlanarReflection_PlanarReflectionParameters; - float PrePadding_TranslucentBasePass_Shared_PlanarReflection_1484; - float2 TranslucentBasePass_Shared_PlanarReflection_PlanarReflectionParameters2; - float PrePadding_TranslucentBasePass_Shared_PlanarReflection_1496; - float PrePadding_TranslucentBasePass_Shared_PlanarReflection_1500; - float4x4 TranslucentBasePass_Shared_PlanarReflection_ProjectionWithExtraFOV[2]; - float4 TranslucentBasePass_Shared_PlanarReflection_PlanarReflectionScreenScaleBias[2]; - float2 TranslucentBasePass_Shared_PlanarReflection_PlanarReflectionScreenBound; - uint TranslucentBasePass_Shared_PlanarReflection_bIsStereo; - float PrePadding_TranslucentBasePass_Shared_Fog_1676; - float PrePadding_TranslucentBasePass_Shared_Fog_1680; - float PrePadding_TranslucentBasePass_Shared_Fog_1684; - float PrePadding_TranslucentBasePass_Shared_Fog_1688; - float PrePadding_TranslucentBasePass_Shared_Fog_1692; - float4 TranslucentBasePass_Shared_Fog_ExponentialFogParameters; - float4 TranslucentBasePass_Shared_Fog_ExponentialFogParameters2; - float4 TranslucentBasePass_Shared_Fog_ExponentialFogColorParameter; - float4 TranslucentBasePass_Shared_Fog_ExponentialFogParameters3; - float4 TranslucentBasePass_Shared_Fog_InscatteringLightDirection; - float4 TranslucentBasePass_Shared_Fog_DirectionalInscatteringColor; - float2 TranslucentBasePass_Shared_Fog_SinCosInscatteringColorCubemapRotation; - float PrePadding_TranslucentBasePass_Shared_Fog_1800; - float PrePadding_TranslucentBasePass_Shared_Fog_1804; - packed_float3 TranslucentBasePass_Shared_Fog_FogInscatteringTextureParameters; - float TranslucentBasePass_Shared_Fog_ApplyVolumetricFog; - float PrePadding_TranslucentBasePass_1824; - float PrePadding_TranslucentBasePass_1828; - float PrePadding_TranslucentBasePass_1832; - float PrePadding_TranslucentBasePass_1836; - float PrePadding_TranslucentBasePass_1840; - float PrePadding_TranslucentBasePass_1844; - float PrePadding_TranslucentBasePass_1848; - float PrePadding_TranslucentBasePass_1852; - float PrePadding_TranslucentBasePass_1856; - float PrePadding_TranslucentBasePass_1860; - float PrePadding_TranslucentBasePass_1864; - float PrePadding_TranslucentBasePass_1868; - float PrePadding_TranslucentBasePass_1872; - float PrePadding_TranslucentBasePass_1876; - float PrePadding_TranslucentBasePass_1880; - float PrePadding_TranslucentBasePass_1884; - float PrePadding_TranslucentBasePass_1888; - float PrePadding_TranslucentBasePass_1892; - float PrePadding_TranslucentBasePass_1896; - float PrePadding_TranslucentBasePass_1900; - float PrePadding_TranslucentBasePass_1904; - float PrePadding_TranslucentBasePass_1908; - float PrePadding_TranslucentBasePass_1912; - float PrePadding_TranslucentBasePass_1916; - float PrePadding_TranslucentBasePass_1920; - float PrePadding_TranslucentBasePass_1924; - float PrePadding_TranslucentBasePass_1928; - float PrePadding_TranslucentBasePass_1932; - float PrePadding_TranslucentBasePass_1936; - float PrePadding_TranslucentBasePass_1940; - float PrePadding_TranslucentBasePass_1944; - float PrePadding_TranslucentBasePass_1948; - float PrePadding_TranslucentBasePass_1952; - float PrePadding_TranslucentBasePass_1956; - float PrePadding_TranslucentBasePass_1960; - float PrePadding_TranslucentBasePass_1964; - float PrePadding_TranslucentBasePass_1968; - float PrePadding_TranslucentBasePass_1972; - float PrePadding_TranslucentBasePass_1976; - float PrePadding_TranslucentBasePass_1980; - float PrePadding_TranslucentBasePass_1984; - float PrePadding_TranslucentBasePass_1988; - float PrePadding_TranslucentBasePass_1992; - float PrePadding_TranslucentBasePass_1996; - float PrePadding_TranslucentBasePass_2000; - float PrePadding_TranslucentBasePass_2004; - float PrePadding_TranslucentBasePass_2008; - float PrePadding_TranslucentBasePass_2012; - float PrePadding_TranslucentBasePass_2016; - float PrePadding_TranslucentBasePass_2020; - float PrePadding_TranslucentBasePass_2024; - float PrePadding_TranslucentBasePass_2028; - float PrePadding_TranslucentBasePass_2032; - float PrePadding_TranslucentBasePass_2036; - float PrePadding_TranslucentBasePass_2040; - float PrePadding_TranslucentBasePass_2044; - float PrePadding_TranslucentBasePass_2048; - float PrePadding_TranslucentBasePass_2052; - float PrePadding_TranslucentBasePass_2056; - float PrePadding_TranslucentBasePass_2060; - float PrePadding_TranslucentBasePass_2064; - float PrePadding_TranslucentBasePass_2068; - float PrePadding_TranslucentBasePass_2072; - float PrePadding_TranslucentBasePass_2076; - float PrePadding_TranslucentBasePass_2080; - float PrePadding_TranslucentBasePass_2084; - float PrePadding_TranslucentBasePass_2088; - float PrePadding_TranslucentBasePass_2092; - float PrePadding_TranslucentBasePass_2096; - float PrePadding_TranslucentBasePass_2100; - float PrePadding_TranslucentBasePass_2104; - float PrePadding_TranslucentBasePass_2108; - float PrePadding_TranslucentBasePass_2112; - float PrePadding_TranslucentBasePass_2116; - float PrePadding_TranslucentBasePass_2120; - float PrePadding_TranslucentBasePass_2124; - float PrePadding_TranslucentBasePass_2128; - float PrePadding_TranslucentBasePass_2132; - float PrePadding_TranslucentBasePass_2136; - float PrePadding_TranslucentBasePass_2140; - float4 TranslucentBasePass_HZBUvFactorAndInvFactor; - float4 TranslucentBasePass_PrevScreenPositionScaleBias; - float TranslucentBasePass_PrevSceneColorPreExposureInv; -}; - -struct type_Material -{ - float4 Material_VectorExpressions[2]; - float4 Material_ScalarExpressions[1]; -}; - -constant float _108 = {}; - -struct main0_out -{ - float4 out_var_SV_Target0 [[color(0)]]; - uint gl_SampleMask [[sample_mask]]; -}; - -struct main0_in -{ - float4 in_var_TEXCOORD10_centroid [[user(locn0)]]; - float4 in_var_TEXCOORD11_centroid [[user(locn1)]]; - uint in_var_PRIMITIVE_ID [[user(locn2)]]; - float4 in_var_TEXCOORD7 [[user(locn3)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], constant type_View& View [[buffer(0)]], const device type_StructuredBuffer_v4float& View_PrimitiveSceneData [[buffer(1)]], constant type_TranslucentBasePass& TranslucentBasePass [[buffer(2)]], constant type_Material& Material [[buffer(3)]], texture3d TranslucentBasePass_Shared_Fog_IntegratedLightScattering [[texture(0)]], sampler View_SharedBilinearClampedSampler [[sampler(0)]], float4 gl_FragCoord [[position]], uint gl_SampleMaskIn [[sample_mask]]) -{ - main0_out out = {}; - float4 _137 = View.View_SVPositionToTranslatedWorld * float4(gl_FragCoord.xyz, 1.0); - float3 _142 = (_137.xyz / float3(_137.w)) - float3(View.View_PreViewTranslation); - bool _165 = TranslucentBasePass.TranslucentBasePass_Shared_Fog_ApplyVolumetricFog > 0.0; - float4 _215; - if (_165) - { - float4 _172 = View.View_WorldToClip * float4(_142, 1.0); - float _173 = _172.w; - float4 _202; - if (_165) - { - _202 = TranslucentBasePass_Shared_Fog_IntegratedLightScattering.sample(View_SharedBilinearClampedSampler, float3(((_172.xy / float2(_173)).xy * float2(0.5, -0.5)) + float2(0.5), (log2((_173 * View.View_VolumetricFogGridZParams[0]) + View.View_VolumetricFogGridZParams[1]) * View.View_VolumetricFogGridZParams[2]) * View.View_VolumetricFogInvGridSize[2]), level(0.0)); - } - else - { - _202 = float4(0.0, 0.0, 0.0, 1.0); - } - _215 = float4(_202.xyz + (in.in_var_TEXCOORD7.xyz * float3(_202.w)), _202.w * in.in_var_TEXCOORD7.w); - } - else - { - _215 = in.in_var_TEXCOORD7; - } - float3 _216 = fast::max(Material.Material_VectorExpressions[1].xyz * float3(((1.0 + dot(float3(-0.2857142984867095947265625, -0.4285714328289031982421875, 0.857142865657806396484375), normalize(float3x3(in.in_var_TEXCOORD10_centroid.xyz, cross(in.in_var_TEXCOORD11_centroid.xyz, in.in_var_TEXCOORD10_centroid.xyz) * float3(in.in_var_TEXCOORD11_centroid.w), in.in_var_TEXCOORD11_centroid.xyz) * normalize((float3(0.0, 0.0, 1.0) * float3(View.View_NormalOverrideParameter.w)) + View.View_NormalOverrideParameter.xyz)))) * 0.5) + 0.20000000298023223876953125), float3(0.0)); - float3 _246; - if (View.View_OutOfBoundsMask > 0.0) - { - uint _222 = in.in_var_PRIMITIVE_ID * 26u; - float3 _245; - if (any(abs(_142 - View_PrimitiveSceneData._m0[_222 + 5u].xyz) > (View_PrimitiveSceneData._m0[_222 + 19u].xyz + float3(1.0)))) - { - _245 = mix(float3(1.0, 1.0, 0.0), float3(0.0, 1.0, 1.0), select(float3(0.0), float3(1.0), float3(fract(dot(_142, float3(0.57700002193450927734375)) * 0.00200000009499490261077880859375)) > float3(0.5))); - } - else - { - _245 = _216; - } - _246 = _245; - } - else - { - _246 = _216; - } - float4 _256 = float4((_246 * float3(_215.w)) + _215.xyz, _108); - _256.w = 1.0; - float4 _268; - uint _269; - if (View.View_NumSceneColorMSAASamples > 1) - { - _268 = _256 * float4(float(View.View_NumSceneColorMSAASamples) * 0.25); - _269 = gl_SampleMaskIn & 15u; - } - else - { - _268 = _256; - _269 = gl_SampleMaskIn; - } - out.out_var_SV_Target0 = _268; - out.gl_SampleMask = _269; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/frag/subpass-input.ios.framebuffer-fetch.asm.frag b/third_party/spirv-cross/reference/opt/shaders-ue4/asm/frag/subpass-input.ios.framebuffer-fetch.asm.frag deleted file mode 100644 index 8bffca1733..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/frag/subpass-input.ios.framebuffer-fetch.asm.frag +++ /dev/null @@ -1,214 +0,0 @@ -#include -#include - -using namespace metal; - -struct type_View -{ - float4x4 View_TranslatedWorldToClip; - float4x4 View_WorldToClip; - float4x4 View_TranslatedWorldToView; - float4x4 View_ViewToTranslatedWorld; - float4x4 View_TranslatedWorldToCameraView; - float4x4 View_CameraViewToTranslatedWorld; - float4x4 View_ViewToClip; - float4x4 View_ViewToClipNoAA; - float4x4 View_ClipToView; - float4x4 View_ClipToTranslatedWorld; - float4x4 View_SVPositionToTranslatedWorld; - float4x4 View_ScreenToWorld; - float4x4 View_ScreenToTranslatedWorld; - packed_float3 View_ViewForward; - float PrePadding_View_844; - packed_float3 View_ViewUp; - float PrePadding_View_860; - packed_float3 View_ViewRight; - float PrePadding_View_876; - packed_float3 View_HMDViewNoRollUp; - float PrePadding_View_892; - packed_float3 View_HMDViewNoRollRight; - float PrePadding_View_908; - float4 View_InvDeviceZToWorldZTransform; - float4 View_ScreenPositionScaleBias; - packed_float3 View_WorldCameraOrigin; - float PrePadding_View_956; - packed_float3 View_TranslatedWorldCameraOrigin; - float PrePadding_View_972; - packed_float3 View_WorldViewOrigin; - float PrePadding_View_988; - packed_float3 View_PreViewTranslation; - float PrePadding_View_1004; - float4x4 View_PrevProjection; - float4x4 View_PrevViewProj; - float4x4 View_PrevViewRotationProj; - float4x4 View_PrevViewToClip; - float4x4 View_PrevClipToView; - float4x4 View_PrevTranslatedWorldToClip; - float4x4 View_PrevTranslatedWorldToView; - float4x4 View_PrevViewToTranslatedWorld; - float4x4 View_PrevTranslatedWorldToCameraView; - float4x4 View_PrevCameraViewToTranslatedWorld; - packed_float3 View_PrevWorldCameraOrigin; - float PrePadding_View_1660; - packed_float3 View_PrevWorldViewOrigin; - float PrePadding_View_1676; - packed_float3 View_PrevPreViewTranslation; - float PrePadding_View_1692; - float4x4 View_PrevInvViewProj; - float4x4 View_PrevScreenToTranslatedWorld; - float4x4 View_ClipToPrevClip; - float4 View_TemporalAAJitter; - float4 View_GlobalClippingPlane; - float2 View_FieldOfViewWideAngles; - float2 View_PrevFieldOfViewWideAngles; - float4 View_ViewRectMin; - float4 View_ViewSizeAndInvSize; - float4 View_BufferSizeAndInvSize; - float4 View_BufferBilinearUVMinMax; - int View_NumSceneColorMSAASamples; - float View_PreExposure; - float View_OneOverPreExposure; - float PrePadding_View_2012; - float4 View_DiffuseOverrideParameter; - float4 View_SpecularOverrideParameter; - float4 View_NormalOverrideParameter; - float2 View_RoughnessOverrideParameter; - float View_PrevFrameGameTime; - float View_PrevFrameRealTime; - float View_OutOfBoundsMask; - float PrePadding_View_2084; - float PrePadding_View_2088; - float PrePadding_View_2092; - packed_float3 View_WorldCameraMovementSinceLastFrame; - float View_CullingSign; - float View_NearPlane; - float View_AdaptiveTessellationFactor; - float View_GameTime; - float View_RealTime; - float View_DeltaTime; - float View_MaterialTextureMipBias; - float View_MaterialTextureDerivativeMultiply; - uint View_Random; - uint View_FrameNumber; - uint View_StateFrameIndexMod8; - uint View_StateFrameIndex; - float View_CameraCut; - float View_UnlitViewmodeMask; - float PrePadding_View_2164; - float PrePadding_View_2168; - float PrePadding_View_2172; - float4 View_DirectionalLightColor; - packed_float3 View_DirectionalLightDirection; - float PrePadding_View_2204; - float4 View_TranslucencyLightingVolumeMin[2]; - float4 View_TranslucencyLightingVolumeInvSize[2]; - float4 View_TemporalAAParams; - float4 View_CircleDOFParams; - float View_DepthOfFieldSensorWidth; - float View_DepthOfFieldFocalDistance; - float View_DepthOfFieldScale; - float View_DepthOfFieldFocalLength; - float View_DepthOfFieldFocalRegion; - float View_DepthOfFieldNearTransitionRegion; - float View_DepthOfFieldFarTransitionRegion; - float View_MotionBlurNormalizedToPixel; - float View_bSubsurfacePostprocessEnabled; - float View_GeneralPurposeTweak; - float View_DemosaicVposOffset; - float PrePadding_View_2348; - packed_float3 View_IndirectLightingColorScale; - float View_HDR32bppEncodingMode; - packed_float3 View_AtmosphericFogSunDirection; - float View_AtmosphericFogSunPower; - float View_AtmosphericFogPower; - float View_AtmosphericFogDensityScale; - float View_AtmosphericFogDensityOffset; - float View_AtmosphericFogGroundOffset; - float View_AtmosphericFogDistanceScale; - float View_AtmosphericFogAltitudeScale; - float View_AtmosphericFogHeightScaleRayleigh; - float View_AtmosphericFogStartDistance; - float View_AtmosphericFogDistanceOffset; - float View_AtmosphericFogSunDiscScale; - uint View_AtmosphericFogRenderMask; - uint View_AtmosphericFogInscatterAltitudeSampleNum; - float4 View_AtmosphericFogSunColor; - packed_float3 View_NormalCurvatureToRoughnessScaleBias; - float View_RenderingReflectionCaptureMask; - float4 View_AmbientCubemapTint; - float View_AmbientCubemapIntensity; - float View_SkyLightParameters; - float PrePadding_View_2488; - float PrePadding_View_2492; - float4 View_SkyLightColor; - float4 View_SkyIrradianceEnvironmentMap[7]; - float View_MobilePreviewMode; - float View_HMDEyePaddingOffset; - float View_ReflectionCubemapMaxMip; - float View_ShowDecalsMask; - uint View_DistanceFieldAOSpecularOcclusionMode; - float View_IndirectCapsuleSelfShadowingIntensity; - float PrePadding_View_2648; - float PrePadding_View_2652; - packed_float3 View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight; - int View_StereoPassIndex; - float4 View_GlobalVolumeCenterAndExtent[4]; - float4 View_GlobalVolumeWorldToUVAddAndMul[4]; - float View_GlobalVolumeDimension; - float View_GlobalVolumeTexelSize; - float View_MaxGlobalDistance; - float View_bCheckerboardSubsurfaceProfileRendering; - packed_float3 View_VolumetricFogInvGridSize; - float PrePadding_View_2828; - packed_float3 View_VolumetricFogGridZParams; - float PrePadding_View_2844; - float2 View_VolumetricFogSVPosToVolumeUV; - float View_VolumetricFogMaxDistance; - float PrePadding_View_2860; - packed_float3 View_VolumetricLightmapWorldToUVScale; - float PrePadding_View_2876; - packed_float3 View_VolumetricLightmapWorldToUVAdd; - float PrePadding_View_2892; - packed_float3 View_VolumetricLightmapIndirectionTextureSize; - float View_VolumetricLightmapBrickSize; - packed_float3 View_VolumetricLightmapBrickTexelSize; - float View_StereoIPD; - float View_IndirectLightingCacheShowFlag; - float View_EyeToPixelSpreadAngle; -}; - -struct type_Globals -{ - float3 SoftTransitionScale; - float4 ShadowBufferSize; - float ShadowFadeFraction; - float ShadowSharpen; - float4 LightPositionAndInvRadius; - float4x4 ScreenToShadowMatrix; - float2 ProjectionDepthBiasParameters; - float4 ModulatedShadowColor; - float4 ShadowTileOffsetAndSize; -}; - -constant float4 _58 = {}; - -struct main0_out -{ - float4 out_var_SV_Target0 [[color(0)]]; -}; - -fragment main0_out main0(constant type_View& View [[buffer(0)]], constant type_Globals& _Globals [[buffer(1)]], float4 _RESERVED_IDENTIFIER_FIXUP_gl_LastFragData [[color(0)]], texture2d ShadowDepthTexture [[texture(0)]], sampler ShadowDepthTextureSampler [[sampler(0)]], float4 gl_FragCoord [[position]], uint gl_SampleID [[sample_id]]) -{ - main0_out out = {}; - gl_FragCoord.xy += get_sample_position(gl_SampleID) - 0.5; - float4 _67 = _RESERVED_IDENTIFIER_FIXUP_gl_LastFragData; - float _68 = _67.w; - float4 _82 = _Globals.ScreenToShadowMatrix * float4((((gl_FragCoord.xy * View.View_BufferSizeAndInvSize.zw) - View.View_ScreenPositionScaleBias.wz) / View.View_ScreenPositionScaleBias.xy) * float2(_68), _68, 1.0); - float _118 = fast::clamp(((fast::clamp((ShadowDepthTexture.sample(ShadowDepthTextureSampler, (((_82.xyz / float3(_82.w)).xy * _Globals.ShadowTileOffsetAndSize.zw).xy + _Globals.ShadowTileOffsetAndSize.xy).xy, level(0.0)).xxx * float3(_Globals.SoftTransitionScale.z)) - float3((fast::min(_82.z, 0.999989986419677734375) * _Globals.SoftTransitionScale.z) - 1.0), float3(0.0), float3(1.0)).x - 0.5) * _Globals.ShadowSharpen) + 0.5, 0.0, 1.0); - float3 _127 = mix(_Globals.ModulatedShadowColor.xyz, float3(1.0), float3(mix(1.0, _118 * _118, _Globals.ShadowFadeFraction))); - float4 _129 = float4(_127.x, _127.y, _127.z, _58.w); - _129.w = 0.0; - out.out_var_SV_Target0 = _129; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/frag/subpass-input.msl23.framebuffer-fetch.asm.frag b/third_party/spirv-cross/reference/opt/shaders-ue4/asm/frag/subpass-input.msl23.framebuffer-fetch.asm.frag deleted file mode 100644 index 8bffca1733..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/frag/subpass-input.msl23.framebuffer-fetch.asm.frag +++ /dev/null @@ -1,214 +0,0 @@ -#include -#include - -using namespace metal; - -struct type_View -{ - float4x4 View_TranslatedWorldToClip; - float4x4 View_WorldToClip; - float4x4 View_TranslatedWorldToView; - float4x4 View_ViewToTranslatedWorld; - float4x4 View_TranslatedWorldToCameraView; - float4x4 View_CameraViewToTranslatedWorld; - float4x4 View_ViewToClip; - float4x4 View_ViewToClipNoAA; - float4x4 View_ClipToView; - float4x4 View_ClipToTranslatedWorld; - float4x4 View_SVPositionToTranslatedWorld; - float4x4 View_ScreenToWorld; - float4x4 View_ScreenToTranslatedWorld; - packed_float3 View_ViewForward; - float PrePadding_View_844; - packed_float3 View_ViewUp; - float PrePadding_View_860; - packed_float3 View_ViewRight; - float PrePadding_View_876; - packed_float3 View_HMDViewNoRollUp; - float PrePadding_View_892; - packed_float3 View_HMDViewNoRollRight; - float PrePadding_View_908; - float4 View_InvDeviceZToWorldZTransform; - float4 View_ScreenPositionScaleBias; - packed_float3 View_WorldCameraOrigin; - float PrePadding_View_956; - packed_float3 View_TranslatedWorldCameraOrigin; - float PrePadding_View_972; - packed_float3 View_WorldViewOrigin; - float PrePadding_View_988; - packed_float3 View_PreViewTranslation; - float PrePadding_View_1004; - float4x4 View_PrevProjection; - float4x4 View_PrevViewProj; - float4x4 View_PrevViewRotationProj; - float4x4 View_PrevViewToClip; - float4x4 View_PrevClipToView; - float4x4 View_PrevTranslatedWorldToClip; - float4x4 View_PrevTranslatedWorldToView; - float4x4 View_PrevViewToTranslatedWorld; - float4x4 View_PrevTranslatedWorldToCameraView; - float4x4 View_PrevCameraViewToTranslatedWorld; - packed_float3 View_PrevWorldCameraOrigin; - float PrePadding_View_1660; - packed_float3 View_PrevWorldViewOrigin; - float PrePadding_View_1676; - packed_float3 View_PrevPreViewTranslation; - float PrePadding_View_1692; - float4x4 View_PrevInvViewProj; - float4x4 View_PrevScreenToTranslatedWorld; - float4x4 View_ClipToPrevClip; - float4 View_TemporalAAJitter; - float4 View_GlobalClippingPlane; - float2 View_FieldOfViewWideAngles; - float2 View_PrevFieldOfViewWideAngles; - float4 View_ViewRectMin; - float4 View_ViewSizeAndInvSize; - float4 View_BufferSizeAndInvSize; - float4 View_BufferBilinearUVMinMax; - int View_NumSceneColorMSAASamples; - float View_PreExposure; - float View_OneOverPreExposure; - float PrePadding_View_2012; - float4 View_DiffuseOverrideParameter; - float4 View_SpecularOverrideParameter; - float4 View_NormalOverrideParameter; - float2 View_RoughnessOverrideParameter; - float View_PrevFrameGameTime; - float View_PrevFrameRealTime; - float View_OutOfBoundsMask; - float PrePadding_View_2084; - float PrePadding_View_2088; - float PrePadding_View_2092; - packed_float3 View_WorldCameraMovementSinceLastFrame; - float View_CullingSign; - float View_NearPlane; - float View_AdaptiveTessellationFactor; - float View_GameTime; - float View_RealTime; - float View_DeltaTime; - float View_MaterialTextureMipBias; - float View_MaterialTextureDerivativeMultiply; - uint View_Random; - uint View_FrameNumber; - uint View_StateFrameIndexMod8; - uint View_StateFrameIndex; - float View_CameraCut; - float View_UnlitViewmodeMask; - float PrePadding_View_2164; - float PrePadding_View_2168; - float PrePadding_View_2172; - float4 View_DirectionalLightColor; - packed_float3 View_DirectionalLightDirection; - float PrePadding_View_2204; - float4 View_TranslucencyLightingVolumeMin[2]; - float4 View_TranslucencyLightingVolumeInvSize[2]; - float4 View_TemporalAAParams; - float4 View_CircleDOFParams; - float View_DepthOfFieldSensorWidth; - float View_DepthOfFieldFocalDistance; - float View_DepthOfFieldScale; - float View_DepthOfFieldFocalLength; - float View_DepthOfFieldFocalRegion; - float View_DepthOfFieldNearTransitionRegion; - float View_DepthOfFieldFarTransitionRegion; - float View_MotionBlurNormalizedToPixel; - float View_bSubsurfacePostprocessEnabled; - float View_GeneralPurposeTweak; - float View_DemosaicVposOffset; - float PrePadding_View_2348; - packed_float3 View_IndirectLightingColorScale; - float View_HDR32bppEncodingMode; - packed_float3 View_AtmosphericFogSunDirection; - float View_AtmosphericFogSunPower; - float View_AtmosphericFogPower; - float View_AtmosphericFogDensityScale; - float View_AtmosphericFogDensityOffset; - float View_AtmosphericFogGroundOffset; - float View_AtmosphericFogDistanceScale; - float View_AtmosphericFogAltitudeScale; - float View_AtmosphericFogHeightScaleRayleigh; - float View_AtmosphericFogStartDistance; - float View_AtmosphericFogDistanceOffset; - float View_AtmosphericFogSunDiscScale; - uint View_AtmosphericFogRenderMask; - uint View_AtmosphericFogInscatterAltitudeSampleNum; - float4 View_AtmosphericFogSunColor; - packed_float3 View_NormalCurvatureToRoughnessScaleBias; - float View_RenderingReflectionCaptureMask; - float4 View_AmbientCubemapTint; - float View_AmbientCubemapIntensity; - float View_SkyLightParameters; - float PrePadding_View_2488; - float PrePadding_View_2492; - float4 View_SkyLightColor; - float4 View_SkyIrradianceEnvironmentMap[7]; - float View_MobilePreviewMode; - float View_HMDEyePaddingOffset; - float View_ReflectionCubemapMaxMip; - float View_ShowDecalsMask; - uint View_DistanceFieldAOSpecularOcclusionMode; - float View_IndirectCapsuleSelfShadowingIntensity; - float PrePadding_View_2648; - float PrePadding_View_2652; - packed_float3 View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight; - int View_StereoPassIndex; - float4 View_GlobalVolumeCenterAndExtent[4]; - float4 View_GlobalVolumeWorldToUVAddAndMul[4]; - float View_GlobalVolumeDimension; - float View_GlobalVolumeTexelSize; - float View_MaxGlobalDistance; - float View_bCheckerboardSubsurfaceProfileRendering; - packed_float3 View_VolumetricFogInvGridSize; - float PrePadding_View_2828; - packed_float3 View_VolumetricFogGridZParams; - float PrePadding_View_2844; - float2 View_VolumetricFogSVPosToVolumeUV; - float View_VolumetricFogMaxDistance; - float PrePadding_View_2860; - packed_float3 View_VolumetricLightmapWorldToUVScale; - float PrePadding_View_2876; - packed_float3 View_VolumetricLightmapWorldToUVAdd; - float PrePadding_View_2892; - packed_float3 View_VolumetricLightmapIndirectionTextureSize; - float View_VolumetricLightmapBrickSize; - packed_float3 View_VolumetricLightmapBrickTexelSize; - float View_StereoIPD; - float View_IndirectLightingCacheShowFlag; - float View_EyeToPixelSpreadAngle; -}; - -struct type_Globals -{ - float3 SoftTransitionScale; - float4 ShadowBufferSize; - float ShadowFadeFraction; - float ShadowSharpen; - float4 LightPositionAndInvRadius; - float4x4 ScreenToShadowMatrix; - float2 ProjectionDepthBiasParameters; - float4 ModulatedShadowColor; - float4 ShadowTileOffsetAndSize; -}; - -constant float4 _58 = {}; - -struct main0_out -{ - float4 out_var_SV_Target0 [[color(0)]]; -}; - -fragment main0_out main0(constant type_View& View [[buffer(0)]], constant type_Globals& _Globals [[buffer(1)]], float4 _RESERVED_IDENTIFIER_FIXUP_gl_LastFragData [[color(0)]], texture2d ShadowDepthTexture [[texture(0)]], sampler ShadowDepthTextureSampler [[sampler(0)]], float4 gl_FragCoord [[position]], uint gl_SampleID [[sample_id]]) -{ - main0_out out = {}; - gl_FragCoord.xy += get_sample_position(gl_SampleID) - 0.5; - float4 _67 = _RESERVED_IDENTIFIER_FIXUP_gl_LastFragData; - float _68 = _67.w; - float4 _82 = _Globals.ScreenToShadowMatrix * float4((((gl_FragCoord.xy * View.View_BufferSizeAndInvSize.zw) - View.View_ScreenPositionScaleBias.wz) / View.View_ScreenPositionScaleBias.xy) * float2(_68), _68, 1.0); - float _118 = fast::clamp(((fast::clamp((ShadowDepthTexture.sample(ShadowDepthTextureSampler, (((_82.xyz / float3(_82.w)).xy * _Globals.ShadowTileOffsetAndSize.zw).xy + _Globals.ShadowTileOffsetAndSize.xy).xy, level(0.0)).xxx * float3(_Globals.SoftTransitionScale.z)) - float3((fast::min(_82.z, 0.999989986419677734375) * _Globals.SoftTransitionScale.z) - 1.0), float3(0.0), float3(1.0)).x - 0.5) * _Globals.ShadowSharpen) + 0.5, 0.0, 1.0); - float3 _127 = mix(_Globals.ModulatedShadowColor.xyz, float3(1.0), float3(mix(1.0, _118 * _118, _Globals.ShadowFadeFraction))); - float4 _129 = float4(_127.x, _127.y, _127.z, _58.w); - _129.w = 0.0; - out.out_var_SV_Target0 = _129; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/frag/texture-atomics.asm.argument.msl2.frag b/third_party/spirv-cross/reference/opt/shaders-ue4/asm/frag/texture-atomics.asm.argument.msl2.frag deleted file mode 100644 index c5c37a2dac..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/frag/texture-atomics.asm.argument.msl2.frag +++ /dev/null @@ -1,84 +0,0 @@ -#pragma clang diagnostic ignored "-Wunused-variable" - -#include -#include -#include - -using namespace metal; - -struct type_StructuredBuffer_v4float -{ - float4 _m0[1]; -}; - -struct type_Globals -{ - uint2 ShadowTileListGroupSize; -}; - -struct spvDescriptorSetBuffer0 -{ - const device type_StructuredBuffer_v4float* CulledObjectBoxBounds [[id(0)]]; - constant type_Globals* _Globals [[id(1)]]; - texture2d RWShadowTileNumCulledObjects [[id(2)]]; - device atomic_uint* RWShadowTileNumCulledObjects_atomic [[id(3)]]; -}; - -constant float3 _70 = {}; - -struct main0_out -{ - float4 out_var_SV_Target0 [[color(0)]]; -}; - -struct main0_in -{ - uint in_var_TEXCOORD0 [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], constant spvDescriptorSetBuffer0& spvDescriptorSet0 [[buffer(0)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - uint2 _77 = uint2(gl_FragCoord.xy); - uint _78 = _77.y; - uint _83 = _77.x; - float2 _91 = float2(float(_83), float(((*spvDescriptorSet0._Globals).ShadowTileListGroupSize.y - 1u) - _78)); - float2 _93 = float2((*spvDescriptorSet0._Globals).ShadowTileListGroupSize); - float2 _96 = ((_91 / _93) * float2(2.0)) - float2(1.0); - float2 _100 = (((_91 + float2(1.0)) / _93) * float2(2.0)) - float2(1.0); - float3 _102 = float3(_100.x, _100.y, _70.z); - _102.z = 1.0; - uint _103 = in.in_var_TEXCOORD0 * 5u; - uint _107 = _103 + 1u; - if (all((*spvDescriptorSet0.CulledObjectBoxBounds)._m0[_107].xy > _96.xy) && all((*spvDescriptorSet0.CulledObjectBoxBounds)._m0[_103].xyz < _102)) - { - float3 _121 = float3(0.5) * ((*spvDescriptorSet0.CulledObjectBoxBounds)._m0[_103].xyz + (*spvDescriptorSet0.CulledObjectBoxBounds)._m0[_107].xyz); - float _122 = _96.x; - float _123 = _96.y; - float _126 = _100.x; - float _129 = _100.y; - float3 _166 = float3(_122, _123, -1000.0) - _121; - float3 _170 = float3(dot(_166, (*spvDescriptorSet0.CulledObjectBoxBounds)._m0[_103 + 2u].xyz), dot(_166, (*spvDescriptorSet0.CulledObjectBoxBounds)._m0[_103 + 3u].xyz), dot(_166, (*spvDescriptorSet0.CulledObjectBoxBounds)._m0[_103 + 4u].xyz)); - float3 _189 = float3(_126, _123, -1000.0) - _121; - float3 _193 = float3(dot(_189, (*spvDescriptorSet0.CulledObjectBoxBounds)._m0[_103 + 2u].xyz), dot(_189, (*spvDescriptorSet0.CulledObjectBoxBounds)._m0[_103 + 3u].xyz), dot(_189, (*spvDescriptorSet0.CulledObjectBoxBounds)._m0[_103 + 4u].xyz)); - float3 _205 = float3(_122, _129, -1000.0) - _121; - float3 _209 = float3(dot(_205, (*spvDescriptorSet0.CulledObjectBoxBounds)._m0[_103 + 2u].xyz), dot(_205, (*spvDescriptorSet0.CulledObjectBoxBounds)._m0[_103 + 3u].xyz), dot(_205, (*spvDescriptorSet0.CulledObjectBoxBounds)._m0[_103 + 4u].xyz)); - float3 _221 = float3(_126, _129, -1000.0) - _121; - float3 _225 = float3(dot(_221, (*spvDescriptorSet0.CulledObjectBoxBounds)._m0[_103 + 2u].xyz), dot(_221, (*spvDescriptorSet0.CulledObjectBoxBounds)._m0[_103 + 3u].xyz), dot(_221, (*spvDescriptorSet0.CulledObjectBoxBounds)._m0[_103 + 4u].xyz)); - float3 _237 = float3(_122, _123, 1.0) - _121; - float3 _241 = float3(dot(_237, (*spvDescriptorSet0.CulledObjectBoxBounds)._m0[_103 + 2u].xyz), dot(_237, (*spvDescriptorSet0.CulledObjectBoxBounds)._m0[_103 + 3u].xyz), dot(_237, (*spvDescriptorSet0.CulledObjectBoxBounds)._m0[_103 + 4u].xyz)); - float3 _253 = float3(_126, _123, 1.0) - _121; - float3 _257 = float3(dot(_253, (*spvDescriptorSet0.CulledObjectBoxBounds)._m0[_103 + 2u].xyz), dot(_253, (*spvDescriptorSet0.CulledObjectBoxBounds)._m0[_103 + 3u].xyz), dot(_253, (*spvDescriptorSet0.CulledObjectBoxBounds)._m0[_103 + 4u].xyz)); - float3 _269 = float3(_122, _129, 1.0) - _121; - float3 _273 = float3(dot(_269, (*spvDescriptorSet0.CulledObjectBoxBounds)._m0[_103 + 2u].xyz), dot(_269, (*spvDescriptorSet0.CulledObjectBoxBounds)._m0[_103 + 3u].xyz), dot(_269, (*spvDescriptorSet0.CulledObjectBoxBounds)._m0[_103 + 4u].xyz)); - float3 _285 = float3(_126, _129, 1.0) - _121; - float3 _289 = float3(dot(_285, (*spvDescriptorSet0.CulledObjectBoxBounds)._m0[_103 + 2u].xyz), dot(_285, (*spvDescriptorSet0.CulledObjectBoxBounds)._m0[_103 + 3u].xyz), dot(_285, (*spvDescriptorSet0.CulledObjectBoxBounds)._m0[_103 + 4u].xyz)); - if (all(fast::min(fast::min(fast::min(fast::min(fast::min(fast::min(fast::min(fast::min(float3(500000.0), _170), _193), _209), _225), _241), _257), _273), _289) < float3(1.0)) && all(fast::max(fast::max(fast::max(fast::max(fast::max(fast::max(fast::max(fast::max(float3(-500000.0), _170), _193), _209), _225), _241), _257), _273), _289) > float3(-1.0))) - { - uint _179 = atomic_fetch_add_explicit((device atomic_uint*)&spvDescriptorSet0.RWShadowTileNumCulledObjects_atomic[(_78 * (*spvDescriptorSet0._Globals).ShadowTileListGroupSize.x) + _83], 1u, memory_order_relaxed); - } - } - out.out_var_SV_Target0 = float4(0.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/frag/texture-atomics.asm.frag b/third_party/spirv-cross/reference/opt/shaders-ue4/asm/frag/texture-atomics.asm.frag deleted file mode 100644 index d5ce54c040..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/frag/texture-atomics.asm.frag +++ /dev/null @@ -1,76 +0,0 @@ -#pragma clang diagnostic ignored "-Wunused-variable" - -#include -#include -#include - -using namespace metal; - -struct type_StructuredBuffer_v4float -{ - float4 _m0[1]; -}; - -struct type_Globals -{ - uint2 ShadowTileListGroupSize; -}; - -constant float3 _70 = {}; - -struct main0_out -{ - float4 out_var_SV_Target0 [[color(0)]]; -}; - -struct main0_in -{ - uint in_var_TEXCOORD0 [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], const device type_StructuredBuffer_v4float& CulledObjectBoxBounds [[buffer(0)]], constant type_Globals& _Globals [[buffer(1)]], texture2d RWShadowTileNumCulledObjects [[texture(0)]], device atomic_uint* RWShadowTileNumCulledObjects_atomic [[buffer(2)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - uint2 _77 = uint2(gl_FragCoord.xy); - uint _78 = _77.y; - uint _83 = _77.x; - float2 _91 = float2(float(_83), float((_Globals.ShadowTileListGroupSize.y - 1u) - _78)); - float2 _93 = float2(_Globals.ShadowTileListGroupSize); - float2 _96 = ((_91 / _93) * float2(2.0)) - float2(1.0); - float2 _100 = (((_91 + float2(1.0)) / _93) * float2(2.0)) - float2(1.0); - float3 _102 = float3(_100.x, _100.y, _70.z); - _102.z = 1.0; - uint _103 = in.in_var_TEXCOORD0 * 5u; - uint _107 = _103 + 1u; - if (all(CulledObjectBoxBounds._m0[_107].xy > _96.xy) && all(CulledObjectBoxBounds._m0[_103].xyz < _102)) - { - float3 _121 = float3(0.5) * (CulledObjectBoxBounds._m0[_103].xyz + CulledObjectBoxBounds._m0[_107].xyz); - float _122 = _96.x; - float _123 = _96.y; - float _126 = _100.x; - float _129 = _100.y; - float3 _166 = float3(_122, _123, -1000.0) - _121; - float3 _170 = float3(dot(_166, CulledObjectBoxBounds._m0[_103 + 2u].xyz), dot(_166, CulledObjectBoxBounds._m0[_103 + 3u].xyz), dot(_166, CulledObjectBoxBounds._m0[_103 + 4u].xyz)); - float3 _189 = float3(_126, _123, -1000.0) - _121; - float3 _193 = float3(dot(_189, CulledObjectBoxBounds._m0[_103 + 2u].xyz), dot(_189, CulledObjectBoxBounds._m0[_103 + 3u].xyz), dot(_189, CulledObjectBoxBounds._m0[_103 + 4u].xyz)); - float3 _205 = float3(_122, _129, -1000.0) - _121; - float3 _209 = float3(dot(_205, CulledObjectBoxBounds._m0[_103 + 2u].xyz), dot(_205, CulledObjectBoxBounds._m0[_103 + 3u].xyz), dot(_205, CulledObjectBoxBounds._m0[_103 + 4u].xyz)); - float3 _221 = float3(_126, _129, -1000.0) - _121; - float3 _225 = float3(dot(_221, CulledObjectBoxBounds._m0[_103 + 2u].xyz), dot(_221, CulledObjectBoxBounds._m0[_103 + 3u].xyz), dot(_221, CulledObjectBoxBounds._m0[_103 + 4u].xyz)); - float3 _237 = float3(_122, _123, 1.0) - _121; - float3 _241 = float3(dot(_237, CulledObjectBoxBounds._m0[_103 + 2u].xyz), dot(_237, CulledObjectBoxBounds._m0[_103 + 3u].xyz), dot(_237, CulledObjectBoxBounds._m0[_103 + 4u].xyz)); - float3 _253 = float3(_126, _123, 1.0) - _121; - float3 _257 = float3(dot(_253, CulledObjectBoxBounds._m0[_103 + 2u].xyz), dot(_253, CulledObjectBoxBounds._m0[_103 + 3u].xyz), dot(_253, CulledObjectBoxBounds._m0[_103 + 4u].xyz)); - float3 _269 = float3(_122, _129, 1.0) - _121; - float3 _273 = float3(dot(_269, CulledObjectBoxBounds._m0[_103 + 2u].xyz), dot(_269, CulledObjectBoxBounds._m0[_103 + 3u].xyz), dot(_269, CulledObjectBoxBounds._m0[_103 + 4u].xyz)); - float3 _285 = float3(_126, _129, 1.0) - _121; - float3 _289 = float3(dot(_285, CulledObjectBoxBounds._m0[_103 + 2u].xyz), dot(_285, CulledObjectBoxBounds._m0[_103 + 3u].xyz), dot(_285, CulledObjectBoxBounds._m0[_103 + 4u].xyz)); - if (all(fast::min(fast::min(fast::min(fast::min(fast::min(fast::min(fast::min(fast::min(float3(500000.0), _170), _193), _209), _225), _241), _257), _273), _289) < float3(1.0)) && all(fast::max(fast::max(fast::max(fast::max(fast::max(fast::max(fast::max(fast::max(float3(-500000.0), _170), _193), _209), _225), _241), _257), _273), _289) > float3(-1.0))) - { - uint _179 = atomic_fetch_add_explicit((device atomic_uint*)&RWShadowTileNumCulledObjects_atomic[(_78 * _Globals.ShadowTileListGroupSize.x) + _83], 1u, memory_order_relaxed); - } - } - out.out_var_SV_Target0 = float4(0.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/frag/texture-atomics.asm.graphics-robust-access.frag b/third_party/spirv-cross/reference/opt/shaders-ue4/asm/frag/texture-atomics.asm.graphics-robust-access.frag deleted file mode 100644 index a7bb0ff2d0..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/frag/texture-atomics.asm.graphics-robust-access.frag +++ /dev/null @@ -1,77 +0,0 @@ -#pragma clang diagnostic ignored "-Wunused-variable" - -#include -#include -#include - -using namespace metal; - -struct type_StructuredBuffer_v4float -{ - float4 _m0[1]; -}; - -struct type_Globals -{ - uint2 ShadowTileListGroupSize; -}; - -constant float3 _70 = {}; - -struct main0_out -{ - float4 out_var_SV_Target0 [[color(0)]]; -}; - -struct main0_in -{ - uint in_var_TEXCOORD0 [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], constant uint* spvBufferSizeConstants [[buffer(25)]], const device type_StructuredBuffer_v4float& CulledObjectBoxBounds [[buffer(0)]], constant type_Globals& _Globals [[buffer(1)]], texture2d RWShadowTileNumCulledObjects [[texture(0)]], device atomic_uint* RWShadowTileNumCulledObjects_atomic [[buffer(2)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - constant uint& CulledObjectBoxBoundsBufferSize = spvBufferSizeConstants[0]; - uint2 _77 = uint2(gl_FragCoord.xy); - uint _78 = _77.y; - uint _83 = _77.x; - float2 _91 = float2(float(_83), float((_Globals.ShadowTileListGroupSize.y - 1u) - _78)); - float2 _93 = float2(_Globals.ShadowTileListGroupSize); - float2 _96 = ((_91 / _93) * float2(2.0)) - float2(1.0); - float2 _100 = (((_91 + float2(1.0)) / _93) * float2(2.0)) - float2(1.0); - float3 _102 = float3(_100.x, _100.y, _70.z); - _102.z = 1.0; - uint _103 = in.in_var_TEXCOORD0 * 5u; - uint _310 = uint(clamp(int(_103 + 1u), int(0u), int(min((((CulledObjectBoxBoundsBufferSize - 0) / 16) - 1u), 2147483647u)))); - if (all(CulledObjectBoxBounds._m0[_310].xy > _96.xy) && all(CulledObjectBoxBounds._m0[uint(clamp(int(_103), int(0u), int(min((((CulledObjectBoxBoundsBufferSize - 0) / 16) - 1u), 2147483647u))))].xyz < _102)) - { - float3 _121 = float3(0.5) * (CulledObjectBoxBounds._m0[uint(clamp(int(_103), int(0u), int(min((((CulledObjectBoxBoundsBufferSize - 0) / 16) - 1u), 2147483647u))))].xyz + CulledObjectBoxBounds._m0[_310].xyz); - float _122 = _96.x; - float _123 = _96.y; - float _126 = _100.x; - float _129 = _100.y; - float3 _166 = float3(_122, _123, -1000.0) - _121; - float3 _170 = float3(dot(_166, CulledObjectBoxBounds._m0[uint(clamp(int(_103 + 2u), int(0u), int(min((((CulledObjectBoxBoundsBufferSize - 0) / 16) - 1u), 2147483647u))))].xyz), dot(_166, CulledObjectBoxBounds._m0[uint(clamp(int(_103 + 3u), int(0u), int(min((((CulledObjectBoxBoundsBufferSize - 0) / 16) - 1u), 2147483647u))))].xyz), dot(_166, CulledObjectBoxBounds._m0[uint(clamp(int(_103 + 4u), int(0u), int(min((((CulledObjectBoxBoundsBufferSize - 0) / 16) - 1u), 2147483647u))))].xyz)); - float3 _189 = float3(_126, _123, -1000.0) - _121; - float3 _193 = float3(dot(_189, CulledObjectBoxBounds._m0[uint(clamp(int(_103 + 2u), int(0u), int(min((((CulledObjectBoxBoundsBufferSize - 0) / 16) - 1u), 2147483647u))))].xyz), dot(_189, CulledObjectBoxBounds._m0[uint(clamp(int(_103 + 3u), int(0u), int(min((((CulledObjectBoxBoundsBufferSize - 0) / 16) - 1u), 2147483647u))))].xyz), dot(_189, CulledObjectBoxBounds._m0[uint(clamp(int(_103 + 4u), int(0u), int(min((((CulledObjectBoxBoundsBufferSize - 0) / 16) - 1u), 2147483647u))))].xyz)); - float3 _205 = float3(_122, _129, -1000.0) - _121; - float3 _209 = float3(dot(_205, CulledObjectBoxBounds._m0[uint(clamp(int(_103 + 2u), int(0u), int(min((((CulledObjectBoxBoundsBufferSize - 0) / 16) - 1u), 2147483647u))))].xyz), dot(_205, CulledObjectBoxBounds._m0[uint(clamp(int(_103 + 3u), int(0u), int(min((((CulledObjectBoxBoundsBufferSize - 0) / 16) - 1u), 2147483647u))))].xyz), dot(_205, CulledObjectBoxBounds._m0[uint(clamp(int(_103 + 4u), int(0u), int(min((((CulledObjectBoxBoundsBufferSize - 0) / 16) - 1u), 2147483647u))))].xyz)); - float3 _221 = float3(_126, _129, -1000.0) - _121; - float3 _225 = float3(dot(_221, CulledObjectBoxBounds._m0[uint(clamp(int(_103 + 2u), int(0u), int(min((((CulledObjectBoxBoundsBufferSize - 0) / 16) - 1u), 2147483647u))))].xyz), dot(_221, CulledObjectBoxBounds._m0[uint(clamp(int(_103 + 3u), int(0u), int(min((((CulledObjectBoxBoundsBufferSize - 0) / 16) - 1u), 2147483647u))))].xyz), dot(_221, CulledObjectBoxBounds._m0[uint(clamp(int(_103 + 4u), int(0u), int(min((((CulledObjectBoxBoundsBufferSize - 0) / 16) - 1u), 2147483647u))))].xyz)); - float3 _237 = float3(_122, _123, 1.0) - _121; - float3 _241 = float3(dot(_237, CulledObjectBoxBounds._m0[uint(clamp(int(_103 + 2u), int(0u), int(min((((CulledObjectBoxBoundsBufferSize - 0) / 16) - 1u), 2147483647u))))].xyz), dot(_237, CulledObjectBoxBounds._m0[uint(clamp(int(_103 + 3u), int(0u), int(min((((CulledObjectBoxBoundsBufferSize - 0) / 16) - 1u), 2147483647u))))].xyz), dot(_237, CulledObjectBoxBounds._m0[uint(clamp(int(_103 + 4u), int(0u), int(min((((CulledObjectBoxBoundsBufferSize - 0) / 16) - 1u), 2147483647u))))].xyz)); - float3 _253 = float3(_126, _123, 1.0) - _121; - float3 _257 = float3(dot(_253, CulledObjectBoxBounds._m0[uint(clamp(int(_103 + 2u), int(0u), int(min((((CulledObjectBoxBoundsBufferSize - 0) / 16) - 1u), 2147483647u))))].xyz), dot(_253, CulledObjectBoxBounds._m0[uint(clamp(int(_103 + 3u), int(0u), int(min((((CulledObjectBoxBoundsBufferSize - 0) / 16) - 1u), 2147483647u))))].xyz), dot(_253, CulledObjectBoxBounds._m0[uint(clamp(int(_103 + 4u), int(0u), int(min((((CulledObjectBoxBoundsBufferSize - 0) / 16) - 1u), 2147483647u))))].xyz)); - float3 _269 = float3(_122, _129, 1.0) - _121; - float3 _273 = float3(dot(_269, CulledObjectBoxBounds._m0[uint(clamp(int(_103 + 2u), int(0u), int(min((((CulledObjectBoxBoundsBufferSize - 0) / 16) - 1u), 2147483647u))))].xyz), dot(_269, CulledObjectBoxBounds._m0[uint(clamp(int(_103 + 3u), int(0u), int(min((((CulledObjectBoxBoundsBufferSize - 0) / 16) - 1u), 2147483647u))))].xyz), dot(_269, CulledObjectBoxBounds._m0[uint(clamp(int(_103 + 4u), int(0u), int(min((((CulledObjectBoxBoundsBufferSize - 0) / 16) - 1u), 2147483647u))))].xyz)); - float3 _285 = float3(_126, _129, 1.0) - _121; - float3 _289 = float3(dot(_285, CulledObjectBoxBounds._m0[uint(clamp(int(_103 + 2u), int(0u), int(min((((CulledObjectBoxBoundsBufferSize - 0) / 16) - 1u), 2147483647u))))].xyz), dot(_285, CulledObjectBoxBounds._m0[uint(clamp(int(_103 + 3u), int(0u), int(min((((CulledObjectBoxBoundsBufferSize - 0) / 16) - 1u), 2147483647u))))].xyz), dot(_285, CulledObjectBoxBounds._m0[uint(clamp(int(_103 + 4u), int(0u), int(min((((CulledObjectBoxBoundsBufferSize - 0) / 16) - 1u), 2147483647u))))].xyz)); - if (all(fast::min(fast::min(fast::min(fast::min(fast::min(fast::min(fast::min(fast::min(float3(500000.0), _170), _193), _209), _225), _241), _257), _273), _289) < float3(1.0)) && all(fast::max(fast::max(fast::max(fast::max(fast::max(fast::max(fast::max(fast::max(float3(-500000.0), _170), _193), _209), _225), _241), _257), _273), _289) > float3(-1.0))) - { - uint _179 = atomic_fetch_add_explicit((device atomic_uint*)&RWShadowTileNumCulledObjects_atomic[(_78 * _Globals.ShadowTileListGroupSize.x) + _83], 1u, memory_order_relaxed); - } - } - out.out_var_SV_Target0 = float4(0.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/tesc/hs-incorrect-base-type.asm.tesc b/third_party/spirv-cross/reference/opt/shaders-ue4/asm/tesc/hs-incorrect-base-type.asm.tesc deleted file mode 100644 index ec5d9960f9..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/tesc/hs-incorrect-base-type.asm.tesc +++ /dev/null @@ -1,399 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct FVertexFactoryInterpolantsVSToPS -{ - float4 TangentToWorld0; - float4 TangentToWorld2; - float4 Color; - spvUnsafeArray TexCoords; - float4 LightMapCoordinate; - uint PrimitiveId; - uint LightmapDataIndex; -}; - -struct FVertexFactoryInterpolantsVSToDS -{ - FVertexFactoryInterpolantsVSToPS InterpolantsVSToPS; -}; - -struct FSharedBasePassInterpolants -{ -}; -struct FBasePassInterpolantsVSToDS -{ - FSharedBasePassInterpolants _m0; -}; - -struct FBasePassVSToDS -{ - FVertexFactoryInterpolantsVSToDS FactoryInterpolants; - FBasePassInterpolantsVSToDS BasePassInterpolants; - float4 Position; -}; - -struct FPNTessellationHSToDS -{ - FBasePassVSToDS PassSpecificData; - spvUnsafeArray WorldPosition; - float3 DisplacementScale; - float TessellationMultiplier; - float WorldDisplacementMultiplier; -}; - -struct type_View -{ - float4x4 View_TranslatedWorldToClip; - float4x4 View_WorldToClip; - float4x4 View_TranslatedWorldToView; - float4x4 View_ViewToTranslatedWorld; - float4x4 View_TranslatedWorldToCameraView; - float4x4 View_CameraViewToTranslatedWorld; - float4x4 View_ViewToClip; - float4x4 View_ViewToClipNoAA; - float4x4 View_ClipToView; - float4x4 View_ClipToTranslatedWorld; - float4x4 View_SVPositionToTranslatedWorld; - float4x4 View_ScreenToWorld; - float4x4 View_ScreenToTranslatedWorld; - packed_float3 View_ViewForward; - float PrePadding_View_844; - packed_float3 View_ViewUp; - float PrePadding_View_860; - packed_float3 View_ViewRight; - float PrePadding_View_876; - packed_float3 View_HMDViewNoRollUp; - float PrePadding_View_892; - packed_float3 View_HMDViewNoRollRight; - float PrePadding_View_908; - float4 View_InvDeviceZToWorldZTransform; - float4 View_ScreenPositionScaleBias; - packed_float3 View_WorldCameraOrigin; - float PrePadding_View_956; - packed_float3 View_TranslatedWorldCameraOrigin; - float PrePadding_View_972; - packed_float3 View_WorldViewOrigin; - float PrePadding_View_988; - packed_float3 View_PreViewTranslation; - float PrePadding_View_1004; - float4x4 View_PrevProjection; - float4x4 View_PrevViewProj; - float4x4 View_PrevViewRotationProj; - float4x4 View_PrevViewToClip; - float4x4 View_PrevClipToView; - float4x4 View_PrevTranslatedWorldToClip; - float4x4 View_PrevTranslatedWorldToView; - float4x4 View_PrevViewToTranslatedWorld; - float4x4 View_PrevTranslatedWorldToCameraView; - float4x4 View_PrevCameraViewToTranslatedWorld; - packed_float3 View_PrevWorldCameraOrigin; - float PrePadding_View_1660; - packed_float3 View_PrevWorldViewOrigin; - float PrePadding_View_1676; - packed_float3 View_PrevPreViewTranslation; - float PrePadding_View_1692; - float4x4 View_PrevInvViewProj; - float4x4 View_PrevScreenToTranslatedWorld; - float4x4 View_ClipToPrevClip; - float4 View_TemporalAAJitter; - float4 View_GlobalClippingPlane; - float2 View_FieldOfViewWideAngles; - float2 View_PrevFieldOfViewWideAngles; - float4 View_ViewRectMin; - float4 View_ViewSizeAndInvSize; - float4 View_BufferSizeAndInvSize; - float4 View_BufferBilinearUVMinMax; - int View_NumSceneColorMSAASamples; - float View_PreExposure; - float View_OneOverPreExposure; - float PrePadding_View_2012; - float4 View_DiffuseOverrideParameter; - float4 View_SpecularOverrideParameter; - float4 View_NormalOverrideParameter; - float2 View_RoughnessOverrideParameter; - float View_PrevFrameGameTime; - float View_PrevFrameRealTime; - float View_OutOfBoundsMask; - float PrePadding_View_2084; - float PrePadding_View_2088; - float PrePadding_View_2092; - packed_float3 View_WorldCameraMovementSinceLastFrame; - float View_CullingSign; - float View_NearPlane; - float View_AdaptiveTessellationFactor; - float View_GameTime; - float View_RealTime; - float View_DeltaTime; - float View_MaterialTextureMipBias; - float View_MaterialTextureDerivativeMultiply; - uint View_Random; - uint View_FrameNumber; - uint View_StateFrameIndexMod8; - uint View_StateFrameIndex; - float View_CameraCut; - float View_UnlitViewmodeMask; - float PrePadding_View_2164; - float PrePadding_View_2168; - float PrePadding_View_2172; - float4 View_DirectionalLightColor; - packed_float3 View_DirectionalLightDirection; - float PrePadding_View_2204; - float4 View_TranslucencyLightingVolumeMin[2]; - float4 View_TranslucencyLightingVolumeInvSize[2]; - float4 View_TemporalAAParams; - float4 View_CircleDOFParams; - float View_DepthOfFieldSensorWidth; - float View_DepthOfFieldFocalDistance; - float View_DepthOfFieldScale; - float View_DepthOfFieldFocalLength; - float View_DepthOfFieldFocalRegion; - float View_DepthOfFieldNearTransitionRegion; - float View_DepthOfFieldFarTransitionRegion; - float View_MotionBlurNormalizedToPixel; - float View_bSubsurfacePostprocessEnabled; - float View_GeneralPurposeTweak; - float View_DemosaicVposOffset; - float PrePadding_View_2348; - packed_float3 View_IndirectLightingColorScale; - float View_HDR32bppEncodingMode; - packed_float3 View_AtmosphericFogSunDirection; - float View_AtmosphericFogSunPower; - float View_AtmosphericFogPower; - float View_AtmosphericFogDensityScale; - float View_AtmosphericFogDensityOffset; - float View_AtmosphericFogGroundOffset; - float View_AtmosphericFogDistanceScale; - float View_AtmosphericFogAltitudeScale; - float View_AtmosphericFogHeightScaleRayleigh; - float View_AtmosphericFogStartDistance; - float View_AtmosphericFogDistanceOffset; - float View_AtmosphericFogSunDiscScale; - uint View_AtmosphericFogRenderMask; - uint View_AtmosphericFogInscatterAltitudeSampleNum; - float4 View_AtmosphericFogSunColor; - packed_float3 View_NormalCurvatureToRoughnessScaleBias; - float View_RenderingReflectionCaptureMask; - float4 View_AmbientCubemapTint; - float View_AmbientCubemapIntensity; - float View_SkyLightParameters; - float PrePadding_View_2488; - float PrePadding_View_2492; - float4 View_SkyLightColor; - float4 View_SkyIrradianceEnvironmentMap[7]; - float View_MobilePreviewMode; - float View_HMDEyePaddingOffset; - float View_ReflectionCubemapMaxMip; - float View_ShowDecalsMask; - uint View_DistanceFieldAOSpecularOcclusionMode; - float View_IndirectCapsuleSelfShadowingIntensity; - float PrePadding_View_2648; - float PrePadding_View_2652; - packed_float3 View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight; - int View_StereoPassIndex; - float4 View_GlobalVolumeCenterAndExtent[4]; - float4 View_GlobalVolumeWorldToUVAddAndMul[4]; - float View_GlobalVolumeDimension; - float View_GlobalVolumeTexelSize; - float View_MaxGlobalDistance; - float View_bCheckerboardSubsurfaceProfileRendering; - packed_float3 View_VolumetricFogInvGridSize; - float PrePadding_View_2828; - packed_float3 View_VolumetricFogGridZParams; - float PrePadding_View_2844; - float2 View_VolumetricFogSVPosToVolumeUV; - float View_VolumetricFogMaxDistance; - float PrePadding_View_2860; - packed_float3 View_VolumetricLightmapWorldToUVScale; - float PrePadding_View_2876; - packed_float3 View_VolumetricLightmapWorldToUVAdd; - float PrePadding_View_2892; - packed_float3 View_VolumetricLightmapIndirectionTextureSize; - float View_VolumetricLightmapBrickSize; - packed_float3 View_VolumetricLightmapBrickTexelSize; - float View_StereoIPD; - float View_IndirectLightingCacheShowFlag; - float View_EyeToPixelSpreadAngle; -}; - -struct type_StructuredBuffer_v4float -{ - float4 _m0[1]; -}; - -constant float4 _602 = {}; - -struct main0_out -{ - float4 out_var_COLOR0; - uint out_var_LIGHTMAP_ID; - float3 out_var_PN_DisplacementScales; - spvUnsafeArray out_var_PN_POSITION; - float out_var_PN_TessellationMultiplier; - float out_var_PN_WorldDisplacementMultiplier; - uint out_var_PRIMITIVE_ID; - spvUnsafeArray out_var_TEXCOORD0; - float4 out_var_TEXCOORD10_centroid; - float4 out_var_TEXCOORD11_centroid; - float4 out_var_TEXCOORD4; - float4 out_var_VS_To_DS_Position; -}; - -struct main0_patchOut -{ - float4 out_var_PN_POSITION9; -}; - -struct main0_in -{ - float4 in_var_TEXCOORD10_centroid [[attribute(0)]]; - float4 in_var_TEXCOORD11_centroid [[attribute(1)]]; - float4 in_var_COLOR0 [[attribute(2)]]; - float4 in_var_TEXCOORD0_0 [[attribute(3)]]; - float4 in_var_TEXCOORD4 [[attribute(4)]]; - uint in_var_PRIMITIVE_ID [[attribute(5)]]; - uint in_var_LIGHTMAP_ID [[attribute(6)]]; - float4 in_var_VS_To_DS_Position [[attribute(7)]]; -}; - -kernel void main0(main0_in in [[stage_in]], constant type_View& View [[buffer(0)]], const device type_StructuredBuffer_v4float& View_PrimitiveSceneData [[buffer(1)]], uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLTriangleTessellationFactorsHalf* spvTessLevel [[buffer(26)]], threadgroup main0_in* gl_in [[threadgroup(0)]]) -{ - threadgroup FPNTessellationHSToDS temp_var_hullMainRetVal[3]; - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 3]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - if (gl_InvocationID < spvIndirectParams[0]) - gl_in[gl_InvocationID] = in; - threadgroup_barrier(mem_flags::mem_threadgroup); - if (gl_InvocationID >= 3) - return; - spvUnsafeArray _144 = spvUnsafeArray({ gl_in[0].in_var_TEXCOORD10_centroid, gl_in[1].in_var_TEXCOORD10_centroid, gl_in[2].in_var_TEXCOORD10_centroid, gl_in[3].in_var_TEXCOORD10_centroid, gl_in[4].in_var_TEXCOORD10_centroid, gl_in[5].in_var_TEXCOORD10_centroid, gl_in[6].in_var_TEXCOORD10_centroid, gl_in[7].in_var_TEXCOORD10_centroid, gl_in[8].in_var_TEXCOORD10_centroid, gl_in[9].in_var_TEXCOORD10_centroid, gl_in[10].in_var_TEXCOORD10_centroid, gl_in[11].in_var_TEXCOORD10_centroid }); - spvUnsafeArray _145 = spvUnsafeArray({ gl_in[0].in_var_TEXCOORD11_centroid, gl_in[1].in_var_TEXCOORD11_centroid, gl_in[2].in_var_TEXCOORD11_centroid, gl_in[3].in_var_TEXCOORD11_centroid, gl_in[4].in_var_TEXCOORD11_centroid, gl_in[5].in_var_TEXCOORD11_centroid, gl_in[6].in_var_TEXCOORD11_centroid, gl_in[7].in_var_TEXCOORD11_centroid, gl_in[8].in_var_TEXCOORD11_centroid, gl_in[9].in_var_TEXCOORD11_centroid, gl_in[10].in_var_TEXCOORD11_centroid, gl_in[11].in_var_TEXCOORD11_centroid }); - spvUnsafeArray _146 = spvUnsafeArray({ gl_in[0].in_var_COLOR0, gl_in[1].in_var_COLOR0, gl_in[2].in_var_COLOR0, gl_in[3].in_var_COLOR0, gl_in[4].in_var_COLOR0, gl_in[5].in_var_COLOR0, gl_in[6].in_var_COLOR0, gl_in[7].in_var_COLOR0, gl_in[8].in_var_COLOR0, gl_in[9].in_var_COLOR0, gl_in[10].in_var_COLOR0, gl_in[11].in_var_COLOR0 }); - spvUnsafeArray, 12> _147 = spvUnsafeArray, 12>({ spvUnsafeArray({ gl_in[0].in_var_TEXCOORD0_0 }), spvUnsafeArray({ gl_in[1].in_var_TEXCOORD0_0 }), spvUnsafeArray({ gl_in[2].in_var_TEXCOORD0_0 }), spvUnsafeArray({ gl_in[3].in_var_TEXCOORD0_0 }), spvUnsafeArray({ gl_in[4].in_var_TEXCOORD0_0 }), spvUnsafeArray({ gl_in[5].in_var_TEXCOORD0_0 }), spvUnsafeArray({ gl_in[6].in_var_TEXCOORD0_0 }), spvUnsafeArray({ gl_in[7].in_var_TEXCOORD0_0 }), spvUnsafeArray({ gl_in[8].in_var_TEXCOORD0_0 }), spvUnsafeArray({ gl_in[9].in_var_TEXCOORD0_0 }), spvUnsafeArray({ gl_in[10].in_var_TEXCOORD0_0 }), spvUnsafeArray({ gl_in[11].in_var_TEXCOORD0_0 }) }); - spvUnsafeArray _148 = spvUnsafeArray({ gl_in[0].in_var_TEXCOORD4, gl_in[1].in_var_TEXCOORD4, gl_in[2].in_var_TEXCOORD4, gl_in[3].in_var_TEXCOORD4, gl_in[4].in_var_TEXCOORD4, gl_in[5].in_var_TEXCOORD4, gl_in[6].in_var_TEXCOORD4, gl_in[7].in_var_TEXCOORD4, gl_in[8].in_var_TEXCOORD4, gl_in[9].in_var_TEXCOORD4, gl_in[10].in_var_TEXCOORD4, gl_in[11].in_var_TEXCOORD4 }); - spvUnsafeArray _149 = spvUnsafeArray({ gl_in[0].in_var_PRIMITIVE_ID, gl_in[1].in_var_PRIMITIVE_ID, gl_in[2].in_var_PRIMITIVE_ID, gl_in[3].in_var_PRIMITIVE_ID, gl_in[4].in_var_PRIMITIVE_ID, gl_in[5].in_var_PRIMITIVE_ID, gl_in[6].in_var_PRIMITIVE_ID, gl_in[7].in_var_PRIMITIVE_ID, gl_in[8].in_var_PRIMITIVE_ID, gl_in[9].in_var_PRIMITIVE_ID, gl_in[10].in_var_PRIMITIVE_ID, gl_in[11].in_var_PRIMITIVE_ID }); - spvUnsafeArray _150 = spvUnsafeArray({ gl_in[0].in_var_LIGHTMAP_ID, gl_in[1].in_var_LIGHTMAP_ID, gl_in[2].in_var_LIGHTMAP_ID, gl_in[3].in_var_LIGHTMAP_ID, gl_in[4].in_var_LIGHTMAP_ID, gl_in[5].in_var_LIGHTMAP_ID, gl_in[6].in_var_LIGHTMAP_ID, gl_in[7].in_var_LIGHTMAP_ID, gl_in[8].in_var_LIGHTMAP_ID, gl_in[9].in_var_LIGHTMAP_ID, gl_in[10].in_var_LIGHTMAP_ID, gl_in[11].in_var_LIGHTMAP_ID }); - spvUnsafeArray _259 = spvUnsafeArray({ gl_in[0].in_var_VS_To_DS_Position, gl_in[1].in_var_VS_To_DS_Position, gl_in[2].in_var_VS_To_DS_Position, gl_in[3].in_var_VS_To_DS_Position, gl_in[4].in_var_VS_To_DS_Position, gl_in[5].in_var_VS_To_DS_Position, gl_in[6].in_var_VS_To_DS_Position, gl_in[7].in_var_VS_To_DS_Position, gl_in[8].in_var_VS_To_DS_Position, gl_in[9].in_var_VS_To_DS_Position, gl_in[10].in_var_VS_To_DS_Position, gl_in[11].in_var_VS_To_DS_Position }); - spvUnsafeArray _284 = spvUnsafeArray({ FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _144[0], _145[0], _146[0], _147[0], _148[0], _149[0], _150[0] } }, FBasePassInterpolantsVSToDS{ { } }, _259[0] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _144[1], _145[1], _146[1], _147[1], _148[1], _149[1], _150[1] } }, FBasePassInterpolantsVSToDS{ { } }, _259[1] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _144[2], _145[2], _146[2], _147[2], _148[2], _149[2], _150[2] } }, FBasePassInterpolantsVSToDS{ { } }, _259[2] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _144[3], _145[3], _146[3], _147[3], _148[3], _149[3], _150[3] } }, FBasePassInterpolantsVSToDS{ { } }, _259[3] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _144[4], _145[4], _146[4], _147[4], _148[4], _149[4], _150[4] } }, FBasePassInterpolantsVSToDS{ { } }, _259[4] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _144[5], _145[5], _146[5], _147[5], _148[5], _149[5], _150[5] } }, FBasePassInterpolantsVSToDS{ { } }, _259[5] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _144[6], _145[6], _146[6], _147[6], _148[6], _149[6], _150[6] } }, FBasePassInterpolantsVSToDS{ { } }, _259[6] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _144[7], _145[7], _146[7], _147[7], _148[7], _149[7], _150[7] } }, FBasePassInterpolantsVSToDS{ { } }, _259[7] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _144[8], _145[8], _146[8], _147[8], _148[8], _149[8], _150[8] } }, FBasePassInterpolantsVSToDS{ { } }, _259[8] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _144[9], _145[9], _146[9], _147[9], _148[9], _149[9], _150[9] } }, FBasePassInterpolantsVSToDS{ { } }, _259[9] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _144[10], _145[10], _146[10], _147[10], _148[10], _149[10], _150[10] } }, FBasePassInterpolantsVSToDS{ { } }, _259[10] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _144[11], _145[11], _146[11], _147[11], _148[11], _149[11], _150[11] } }, FBasePassInterpolantsVSToDS{ { } }, _259[11] } }); - spvUnsafeArray param_var_I; - param_var_I = _284; - float4 _301 = float4(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0); - float3 _310 = View_PrimitiveSceneData._m0[(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.PrimitiveId * 26u) + 22u].xyz * float3x3(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0.xyz, cross(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0.xyz) * float3(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.w), param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz); - uint _313 = (gl_InvocationID < 2u) ? (gl_InvocationID + 1u) : 0u; - uint _314 = 2u * gl_InvocationID; - uint _315 = 3u + _314; - uint _316 = _314 + 4u; - float4 _328 = float4(param_var_I[_313].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0); - float4 _336 = float4(param_var_I[_315].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0); - float4 _344 = float4(param_var_I[_316].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0); - spvUnsafeArray _392 = spvUnsafeArray({ param_var_I[gl_InvocationID].Position, ((((float4(2.0) * param_var_I[gl_InvocationID].Position) + param_var_I[_313].Position) - (float4(dot(param_var_I[_313].Position - param_var_I[gl_InvocationID].Position, _301)) * _301)) + (((float4(2.0) * param_var_I[_315].Position) + param_var_I[_316].Position) - (float4(dot(param_var_I[_316].Position - param_var_I[_315].Position, _336)) * _336))) * float4(0.16666667163372039794921875), ((((float4(2.0) * param_var_I[_313].Position) + param_var_I[gl_InvocationID].Position) - (float4(dot(param_var_I[gl_InvocationID].Position - param_var_I[_313].Position, _328)) * _328)) + (((float4(2.0) * param_var_I[_316].Position) + param_var_I[_315].Position) - (float4(dot(param_var_I[_315].Position - param_var_I[_316].Position, _344)) * _344))) * float4(0.16666667163372039794921875) }); - gl_out[gl_InvocationID].out_var_TEXCOORD10_centroid = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0; - gl_out[gl_InvocationID].out_var_TEXCOORD11_centroid = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2; - gl_out[gl_InvocationID].out_var_COLOR0 = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.Color; - gl_out[gl_InvocationID].out_var_TEXCOORD0 = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TexCoords; - gl_out[gl_InvocationID].out_var_TEXCOORD4 = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.LightMapCoordinate; - gl_out[gl_InvocationID].out_var_PRIMITIVE_ID = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.PrimitiveId; - gl_out[gl_InvocationID].out_var_LIGHTMAP_ID = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.LightmapDataIndex; - gl_out[gl_InvocationID].out_var_VS_To_DS_Position = param_var_I[gl_InvocationID].Position; - gl_out[gl_InvocationID].out_var_PN_POSITION = _392; - gl_out[gl_InvocationID].out_var_PN_DisplacementScales = _310; - gl_out[gl_InvocationID].out_var_PN_TessellationMultiplier = 1.0; - gl_out[gl_InvocationID].out_var_PN_WorldDisplacementMultiplier = 1.0; - temp_var_hullMainRetVal[gl_InvocationID] = FPNTessellationHSToDS{ param_var_I[gl_InvocationID], _392, _310, 1.0, 1.0 }; - threadgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup); - if (gl_InvocationID == 0u) - { - float4 _450 = (((((temp_var_hullMainRetVal[0u].WorldPosition[1] + temp_var_hullMainRetVal[0u].WorldPosition[2]) + temp_var_hullMainRetVal[1u].WorldPosition[1]) + temp_var_hullMainRetVal[1u].WorldPosition[2]) + temp_var_hullMainRetVal[2u].WorldPosition[1]) + temp_var_hullMainRetVal[2u].WorldPosition[2]) * float4(0.16666667163372039794921875); - float4 _463 = _602; - _463.x = 0.5 * (temp_var_hullMainRetVal[1u].TessellationMultiplier + temp_var_hullMainRetVal[2u].TessellationMultiplier); - float4 _469 = _463; - _469.y = 0.5 * (temp_var_hullMainRetVal[2u].TessellationMultiplier + temp_var_hullMainRetVal[0u].TessellationMultiplier); - float4 _474 = _469; - _474.z = 0.5 * (temp_var_hullMainRetVal[0u].TessellationMultiplier + temp_var_hullMainRetVal[1u].TessellationMultiplier); - float4 _481 = _474; - _481.w = 0.333000004291534423828125 * ((temp_var_hullMainRetVal[0u].TessellationMultiplier + temp_var_hullMainRetVal[1u].TessellationMultiplier) + temp_var_hullMainRetVal[2u].TessellationMultiplier); - float4 _589; - for (;;) - { - float4 _489 = View.View_ViewToClip * float4(0.0); - float4 _494 = View.View_TranslatedWorldToClip * float4(temp_var_hullMainRetVal[0u].WorldPosition[0].xyz, 1.0); - float3 _495 = _494.xyz; - float3 _496 = _489.xyz; - float _498 = _494.w; - float _499 = _489.w; - float4 _516 = View.View_TranslatedWorldToClip * float4(temp_var_hullMainRetVal[1u].WorldPosition[0].xyz, 1.0); - float3 _517 = _516.xyz; - float _519 = _516.w; - float4 _537 = View.View_TranslatedWorldToClip * float4(temp_var_hullMainRetVal[2u].WorldPosition[0].xyz, 1.0); - float3 _538 = _537.xyz; - float _540 = _537.w; - if (any((((select(int3(0), int3(1), (_495 - _496) < float3(_498 + _499)) + (int3(2) * select(int3(0), int3(1), (_495 + _496) > float3((-_498) - _499)))) | (select(int3(0), int3(1), (_517 - _496) < float3(_519 + _499)) + (int3(2) * select(int3(0), int3(1), (_517 + _496) > float3((-_519) - _499))))) | (select(int3(0), int3(1), (_538 - _496) < float3(_540 + _499)) + (int3(2) * select(int3(0), int3(1), (_538 + _496) > float3((-_540) - _499))))) != int3(3))) - { - _589 = float4(0.0); - break; - } - float3 _558 = temp_var_hullMainRetVal[0u].WorldPosition[0].xyz - temp_var_hullMainRetVal[1u].WorldPosition[0].xyz; - float3 _559 = temp_var_hullMainRetVal[1u].WorldPosition[0].xyz - temp_var_hullMainRetVal[2u].WorldPosition[0].xyz; - float3 _560 = temp_var_hullMainRetVal[2u].WorldPosition[0].xyz - temp_var_hullMainRetVal[0u].WorldPosition[0].xyz; - float3 _563 = (float3(0.5) * (temp_var_hullMainRetVal[0u].WorldPosition[0].xyz + temp_var_hullMainRetVal[1u].WorldPosition[0].xyz)) - float3(View.View_TranslatedWorldCameraOrigin); - float3 _566 = (float3(0.5) * (temp_var_hullMainRetVal[1u].WorldPosition[0].xyz + temp_var_hullMainRetVal[2u].WorldPosition[0].xyz)) - float3(View.View_TranslatedWorldCameraOrigin); - float3 _569 = (float3(0.5) * (temp_var_hullMainRetVal[2u].WorldPosition[0].xyz + temp_var_hullMainRetVal[0u].WorldPosition[0].xyz)) - float3(View.View_TranslatedWorldCameraOrigin); - float _573 = sqrt(dot(_559, _559) / dot(_566, _566)); - float _577 = sqrt(dot(_560, _560) / dot(_569, _569)); - float _581 = sqrt(dot(_558, _558) / dot(_563, _563)); - float4 _586 = float4(_573, _577, _581, 1.0); - _586.w = 0.333000004291534423828125 * ((_573 + _577) + _581); - _589 = float4(View.View_AdaptiveTessellationFactor) * _586; - break; - } - float4 _591 = fast::clamp(_481 * _589, float4(1.0), float4(15.0)); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0u] = half(_591.x); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1u] = half(_591.y); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2u] = half(_591.z); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor = half(_591.w); - patchOut.out_var_PN_POSITION9 = _450 + ((_450 - (((temp_var_hullMainRetVal[2u].WorldPosition[0] + temp_var_hullMainRetVal[1u].WorldPosition[0]) + temp_var_hullMainRetVal[0u].WorldPosition[0]) * float4(0.3333333432674407958984375))) * float4(0.5)); - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/tesc/hs-input-array-access.asm.tesc b/third_party/spirv-cross/reference/opt/shaders-ue4/asm/tesc/hs-input-array-access.asm.tesc deleted file mode 100644 index 848aa9ab61..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/tesc/hs-input-array-access.asm.tesc +++ /dev/null @@ -1,467 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct FVertexFactoryInterpolantsVSToPS -{ - float4 TangentToWorld0; - float4 TangentToWorld2; -}; - -struct FVertexFactoryInterpolantsVSToDS -{ - FVertexFactoryInterpolantsVSToPS InterpolantsVSToPS; -}; - -struct FHitProxyVSToDS -{ - FVertexFactoryInterpolantsVSToDS FactoryInterpolants; - float4 Position; - uint VertexID; -}; - -struct FHullShaderConstantDominantVertexData -{ - float2 UV; - float4 Normal; - float3 Tangent; -}; - -struct FHullShaderConstantDominantEdgeData -{ - float2 UV0; - float2 UV1; - float4 Normal0; - float4 Normal1; - float3 Tangent0; - float3 Tangent1; -}; - -struct FPNTessellationHSToDS -{ - FHitProxyVSToDS PassSpecificData; - spvUnsafeArray WorldPosition; - float3 DisplacementScale; - float TessellationMultiplier; - float WorldDisplacementMultiplier; - FHullShaderConstantDominantVertexData DominantVertex; - FHullShaderConstantDominantEdgeData DominantEdge; -}; - -struct type_View -{ - float4x4 View_TranslatedWorldToClip; - float4x4 View_WorldToClip; - float4x4 View_ClipToWorld; - float4x4 View_TranslatedWorldToView; - float4x4 View_ViewToTranslatedWorld; - float4x4 View_TranslatedWorldToCameraView; - float4x4 View_CameraViewToTranslatedWorld; - float4x4 View_ViewToClip; - float4x4 View_ViewToClipNoAA; - float4x4 View_ClipToView; - float4x4 View_ClipToTranslatedWorld; - float4x4 View_SVPositionToTranslatedWorld; - float4x4 View_ScreenToWorld; - float4x4 View_ScreenToTranslatedWorld; - packed_float3 View_ViewForward; - float PrePadding_View_908; - packed_float3 View_ViewUp; - float PrePadding_View_924; - packed_float3 View_ViewRight; - float PrePadding_View_940; - packed_float3 View_HMDViewNoRollUp; - float PrePadding_View_956; - packed_float3 View_HMDViewNoRollRight; - float PrePadding_View_972; - float4 View_InvDeviceZToWorldZTransform; - float4 View_ScreenPositionScaleBias; - packed_float3 View_WorldCameraOrigin; - float PrePadding_View_1020; - packed_float3 View_TranslatedWorldCameraOrigin; - float PrePadding_View_1036; - packed_float3 View_WorldViewOrigin; - float PrePadding_View_1052; - packed_float3 View_PreViewTranslation; - float PrePadding_View_1068; - float4x4 View_PrevProjection; - float4x4 View_PrevViewProj; - float4x4 View_PrevViewRotationProj; - float4x4 View_PrevViewToClip; - float4x4 View_PrevClipToView; - float4x4 View_PrevTranslatedWorldToClip; - float4x4 View_PrevTranslatedWorldToView; - float4x4 View_PrevViewToTranslatedWorld; - float4x4 View_PrevTranslatedWorldToCameraView; - float4x4 View_PrevCameraViewToTranslatedWorld; - packed_float3 View_PrevWorldCameraOrigin; - float PrePadding_View_1724; - packed_float3 View_PrevWorldViewOrigin; - float PrePadding_View_1740; - packed_float3 View_PrevPreViewTranslation; - float PrePadding_View_1756; - float4x4 View_PrevInvViewProj; - float4x4 View_PrevScreenToTranslatedWorld; - float4x4 View_ClipToPrevClip; - float4 View_TemporalAAJitter; - float4 View_GlobalClippingPlane; - float2 View_FieldOfViewWideAngles; - float2 View_PrevFieldOfViewWideAngles; - float4 View_ViewRectMin; - float4 View_ViewSizeAndInvSize; - float4 View_BufferSizeAndInvSize; - float4 View_BufferBilinearUVMinMax; - int View_NumSceneColorMSAASamples; - float View_PreExposure; - float View_OneOverPreExposure; - float PrePadding_View_2076; - float4 View_DiffuseOverrideParameter; - float4 View_SpecularOverrideParameter; - float4 View_NormalOverrideParameter; - float2 View_RoughnessOverrideParameter; - float View_PrevFrameGameTime; - float View_PrevFrameRealTime; - float View_OutOfBoundsMask; - float PrePadding_View_2148; - float PrePadding_View_2152; - float PrePadding_View_2156; - packed_float3 View_WorldCameraMovementSinceLastFrame; - float View_CullingSign; - float View_NearPlane; - float View_AdaptiveTessellationFactor; - float View_GameTime; - float View_RealTime; - float View_DeltaTime; - float View_MaterialTextureMipBias; - float View_MaterialTextureDerivativeMultiply; - uint View_Random; - uint View_FrameNumber; - uint View_StateFrameIndexMod8; - uint View_StateFrameIndex; - float View_CameraCut; - float View_UnlitViewmodeMask; - float PrePadding_View_2228; - float PrePadding_View_2232; - float PrePadding_View_2236; - float4 View_DirectionalLightColor; - packed_float3 View_DirectionalLightDirection; - float PrePadding_View_2268; - float4 View_TranslucencyLightingVolumeMin[2]; - float4 View_TranslucencyLightingVolumeInvSize[2]; - float4 View_TemporalAAParams; - float4 View_CircleDOFParams; - float View_DepthOfFieldSensorWidth; - float View_DepthOfFieldFocalDistance; - float View_DepthOfFieldScale; - float View_DepthOfFieldFocalLength; - float View_DepthOfFieldFocalRegion; - float View_DepthOfFieldNearTransitionRegion; - float View_DepthOfFieldFarTransitionRegion; - float View_MotionBlurNormalizedToPixel; - float View_bSubsurfacePostprocessEnabled; - float View_GeneralPurposeTweak; - float View_DemosaicVposOffset; - float PrePadding_View_2412; - packed_float3 View_IndirectLightingColorScale; - float View_HDR32bppEncodingMode; - packed_float3 View_AtmosphericFogSunDirection; - float View_AtmosphericFogSunPower; - float View_AtmosphericFogPower; - float View_AtmosphericFogDensityScale; - float View_AtmosphericFogDensityOffset; - float View_AtmosphericFogGroundOffset; - float View_AtmosphericFogDistanceScale; - float View_AtmosphericFogAltitudeScale; - float View_AtmosphericFogHeightScaleRayleigh; - float View_AtmosphericFogStartDistance; - float View_AtmosphericFogDistanceOffset; - float View_AtmosphericFogSunDiscScale; - float View_AtmosphericFogSunDiscHalfApexAngleRadian; - float PrePadding_View_2492; - float4 View_AtmosphericFogSunDiscLuminance; - uint View_AtmosphericFogRenderMask; - uint View_AtmosphericFogInscatterAltitudeSampleNum; - uint PrePadding_View_2520; - uint PrePadding_View_2524; - float4 View_AtmosphericFogSunColor; - packed_float3 View_NormalCurvatureToRoughnessScaleBias; - float View_RenderingReflectionCaptureMask; - float4 View_AmbientCubemapTint; - float View_AmbientCubemapIntensity; - float View_SkyLightParameters; - float PrePadding_View_2584; - float PrePadding_View_2588; - float4 View_SkyLightColor; - float4 View_SkyIrradianceEnvironmentMap[7]; - float View_MobilePreviewMode; - float View_HMDEyePaddingOffset; - float View_ReflectionCubemapMaxMip; - float View_ShowDecalsMask; - uint View_DistanceFieldAOSpecularOcclusionMode; - float View_IndirectCapsuleSelfShadowingIntensity; - float PrePadding_View_2744; - float PrePadding_View_2748; - packed_float3 View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight; - int View_StereoPassIndex; - float4 View_GlobalVolumeCenterAndExtent[4]; - float4 View_GlobalVolumeWorldToUVAddAndMul[4]; - float View_GlobalVolumeDimension; - float View_GlobalVolumeTexelSize; - float View_MaxGlobalDistance; - float PrePadding_View_2908; - int2 View_CursorPosition; - float View_bCheckerboardSubsurfaceProfileRendering; - float PrePadding_View_2924; - packed_float3 View_VolumetricFogInvGridSize; - float PrePadding_View_2940; - packed_float3 View_VolumetricFogGridZParams; - float PrePadding_View_2956; - float2 View_VolumetricFogSVPosToVolumeUV; - float View_VolumetricFogMaxDistance; - float PrePadding_View_2972; - packed_float3 View_VolumetricLightmapWorldToUVScale; - float PrePadding_View_2988; - packed_float3 View_VolumetricLightmapWorldToUVAdd; - float PrePadding_View_3004; - packed_float3 View_VolumetricLightmapIndirectionTextureSize; - float View_VolumetricLightmapBrickSize; - packed_float3 View_VolumetricLightmapBrickTexelSize; - float View_StereoIPD; - float View_IndirectLightingCacheShowFlag; - float View_EyeToPixelSpreadAngle; -}; - -struct type_Primitive -{ - float4x4 Primitive_LocalToWorld; - float4 Primitive_InvNonUniformScaleAndDeterminantSign; - float4 Primitive_ObjectWorldPositionAndRadius; - float4x4 Primitive_WorldToLocal; - float4x4 Primitive_PreviousLocalToWorld; - float4x4 Primitive_PreviousWorldToLocal; - packed_float3 Primitive_ActorWorldPosition; - float Primitive_UseSingleSampleShadowFromStationaryLights; - packed_float3 Primitive_ObjectBounds; - float Primitive_LpvBiasMultiplier; - float Primitive_DecalReceiverMask; - float Primitive_PerObjectGBufferData; - float Primitive_UseVolumetricLightmapShadowFromStationaryLights; - float Primitive_DrawsVelocity; - float4 Primitive_ObjectOrientation; - float4 Primitive_NonUniformScale; - packed_float3 Primitive_LocalObjectBoundsMin; - uint Primitive_LightingChannelMask; - packed_float3 Primitive_LocalObjectBoundsMax; - uint Primitive_LightmapDataIndex; - packed_float3 Primitive_PreSkinnedLocalBounds; - int Primitive_SingleCaptureIndex; - uint Primitive_OutputVelocity; - uint PrePadding_Primitive_420; - uint PrePadding_Primitive_424; - uint PrePadding_Primitive_428; - float4 Primitive_CustomPrimitiveData[4]; -}; - -constant float4 _613 = {}; - -struct main0_out -{ - float3 out_var_PN_DisplacementScales; - float2 out_var_PN_DominantEdge; - float2 out_var_PN_DominantEdge1; - float4 out_var_PN_DominantEdge2; - float4 out_var_PN_DominantEdge3; - float3 out_var_PN_DominantEdge4; - float3 out_var_PN_DominantEdge5; - float2 out_var_PN_DominantVertex; - float4 out_var_PN_DominantVertex1; - float3 out_var_PN_DominantVertex2; - spvUnsafeArray out_var_PN_POSITION; - float out_var_PN_TessellationMultiplier; - float out_var_PN_WorldDisplacementMultiplier; - float4 out_var_TEXCOORD10_centroid; - float4 out_var_TEXCOORD11_centroid; - float4 out_var_VS_To_DS_Position; - uint out_var_VS_To_DS_VertexID; -}; - -struct main0_patchOut -{ - float4 out_var_PN_POSITION9; -}; - -struct main0_in -{ - float4 in_var_TEXCOORD10_centroid [[attribute(0)]]; - float4 in_var_TEXCOORD11_centroid [[attribute(1)]]; - float4 in_var_VS_To_DS_Position [[attribute(2)]]; - uint in_var_VS_To_DS_VertexID [[attribute(3)]]; -}; - -kernel void main0(main0_in in [[stage_in]], constant type_View& View [[buffer(0)]], constant type_Primitive& Primitive [[buffer(1)]], uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLTriangleTessellationFactorsHalf* spvTessLevel [[buffer(26)]], threadgroup main0_in* gl_in [[threadgroup(0)]]) -{ - threadgroup FPNTessellationHSToDS temp_var_hullMainRetVal[3]; - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 3]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - if (gl_InvocationID < spvIndirectParams[0]) - gl_in[gl_InvocationID] = in; - threadgroup_barrier(mem_flags::mem_threadgroup); - if (gl_InvocationID >= 3) - return; - spvUnsafeArray _142 = spvUnsafeArray({ gl_in[0].in_var_TEXCOORD10_centroid, gl_in[1].in_var_TEXCOORD10_centroid, gl_in[2].in_var_TEXCOORD10_centroid, gl_in[3].in_var_TEXCOORD10_centroid, gl_in[4].in_var_TEXCOORD10_centroid, gl_in[5].in_var_TEXCOORD10_centroid, gl_in[6].in_var_TEXCOORD10_centroid, gl_in[7].in_var_TEXCOORD10_centroid, gl_in[8].in_var_TEXCOORD10_centroid, gl_in[9].in_var_TEXCOORD10_centroid, gl_in[10].in_var_TEXCOORD10_centroid, gl_in[11].in_var_TEXCOORD10_centroid }); - spvUnsafeArray _143 = spvUnsafeArray({ gl_in[0].in_var_TEXCOORD11_centroid, gl_in[1].in_var_TEXCOORD11_centroid, gl_in[2].in_var_TEXCOORD11_centroid, gl_in[3].in_var_TEXCOORD11_centroid, gl_in[4].in_var_TEXCOORD11_centroid, gl_in[5].in_var_TEXCOORD11_centroid, gl_in[6].in_var_TEXCOORD11_centroid, gl_in[7].in_var_TEXCOORD11_centroid, gl_in[8].in_var_TEXCOORD11_centroid, gl_in[9].in_var_TEXCOORD11_centroid, gl_in[10].in_var_TEXCOORD11_centroid, gl_in[11].in_var_TEXCOORD11_centroid }); - spvUnsafeArray _192 = spvUnsafeArray({ gl_in[0].in_var_VS_To_DS_Position, gl_in[1].in_var_VS_To_DS_Position, gl_in[2].in_var_VS_To_DS_Position, gl_in[3].in_var_VS_To_DS_Position, gl_in[4].in_var_VS_To_DS_Position, gl_in[5].in_var_VS_To_DS_Position, gl_in[6].in_var_VS_To_DS_Position, gl_in[7].in_var_VS_To_DS_Position, gl_in[8].in_var_VS_To_DS_Position, gl_in[9].in_var_VS_To_DS_Position, gl_in[10].in_var_VS_To_DS_Position, gl_in[11].in_var_VS_To_DS_Position }); - spvUnsafeArray _193 = spvUnsafeArray({ gl_in[0].in_var_VS_To_DS_VertexID, gl_in[1].in_var_VS_To_DS_VertexID, gl_in[2].in_var_VS_To_DS_VertexID, gl_in[3].in_var_VS_To_DS_VertexID, gl_in[4].in_var_VS_To_DS_VertexID, gl_in[5].in_var_VS_To_DS_VertexID, gl_in[6].in_var_VS_To_DS_VertexID, gl_in[7].in_var_VS_To_DS_VertexID, gl_in[8].in_var_VS_To_DS_VertexID, gl_in[9].in_var_VS_To_DS_VertexID, gl_in[10].in_var_VS_To_DS_VertexID, gl_in[11].in_var_VS_To_DS_VertexID }); - spvUnsafeArray _230 = spvUnsafeArray({ FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _142[0], _143[0] } }, _192[0], _193[0] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _142[1], _143[1] } }, _192[1], _193[1] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _142[2], _143[2] } }, _192[2], _193[2] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _142[3], _143[3] } }, _192[3], _193[3] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _142[4], _143[4] } }, _192[4], _193[4] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _142[5], _143[5] } }, _192[5], _193[5] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _142[6], _143[6] } }, _192[6], _193[6] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _142[7], _143[7] } }, _192[7], _193[7] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _142[8], _143[8] } }, _192[8], _193[8] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _142[9], _143[9] } }, _192[9], _193[9] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _142[10], _143[10] } }, _192[10], _193[10] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _142[11], _143[11] } }, _192[11], _193[11] } }); - spvUnsafeArray param_var_I; - param_var_I = _230; - float4 _247 = float4(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0); - float3 _251 = Primitive.Primitive_NonUniformScale.xyz * float3x3(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0.xyz, cross(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0.xyz) * float3(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.w), param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz); - uint _254 = (gl_InvocationID < 2u) ? (gl_InvocationID + 1u) : 0u; - uint _255 = 2u * gl_InvocationID; - uint _256 = 3u + _255; - uint _257 = _255 + 4u; - uint _264 = (_254 < 2u) ? (_254 + 1u) : 0u; - uint _265 = 2u * _254; - uint _266 = 3u + _265; - uint _267 = _265 + 4u; - float4 _279 = float4(param_var_I[9u + gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0); - float4 _315; - float4 _316; - float4 _317; - float4 _318; - if ((param_var_I[_266].VertexID < param_var_I[_254].VertexID) || ((param_var_I[_266].VertexID == param_var_I[_254].VertexID) && (param_var_I[_267].VertexID < param_var_I[_264].VertexID))) - { - _315 = param_var_I[_267].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0; - _316 = param_var_I[_267].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2; - _317 = param_var_I[_266].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0; - _318 = param_var_I[_266].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2; - } - else - { - _315 = param_var_I[_264].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0; - _316 = param_var_I[_264].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2; - _317 = param_var_I[_254].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0; - _318 = param_var_I[_254].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2; - } - float4 _324 = float4(_318.xyz, 0.0); - float4 _328 = float4(_316.xyz, 0.0); - float4 _336 = float4(param_var_I[_254].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0); - float4 _344 = float4(param_var_I[_256].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0); - float4 _352 = float4(param_var_I[_257].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0); - spvUnsafeArray _402 = spvUnsafeArray({ param_var_I[gl_InvocationID].Position, ((((float4(2.0) * param_var_I[gl_InvocationID].Position) + param_var_I[_254].Position) - (float4(dot(param_var_I[_254].Position - param_var_I[gl_InvocationID].Position, _247)) * _247)) + (((float4(2.0) * param_var_I[_256].Position) + param_var_I[_257].Position) - (float4(dot(param_var_I[_257].Position - param_var_I[_256].Position, _344)) * _344))) * float4(0.16666667163372039794921875), ((((float4(2.0) * param_var_I[_254].Position) + param_var_I[gl_InvocationID].Position) - (float4(dot(param_var_I[gl_InvocationID].Position - param_var_I[_254].Position, _336)) * _336)) + (((float4(2.0) * param_var_I[_257].Position) + param_var_I[_256].Position) - (float4(dot(param_var_I[_256].Position - param_var_I[_257].Position, _352)) * _352))) * float4(0.16666667163372039794921875) }); - gl_out[gl_InvocationID].out_var_TEXCOORD10_centroid = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0; - gl_out[gl_InvocationID].out_var_TEXCOORD11_centroid = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2; - gl_out[gl_InvocationID].out_var_VS_To_DS_Position = param_var_I[gl_InvocationID].Position; - gl_out[gl_InvocationID].out_var_VS_To_DS_VertexID = param_var_I[gl_InvocationID].VertexID; - gl_out[gl_InvocationID].out_var_PN_POSITION = _402; - gl_out[gl_InvocationID].out_var_PN_DisplacementScales = _251; - gl_out[gl_InvocationID].out_var_PN_TessellationMultiplier = 1.0; - gl_out[gl_InvocationID].out_var_PN_WorldDisplacementMultiplier = 1.0; - gl_out[gl_InvocationID].out_var_PN_DominantVertex = float2(0.0); - gl_out[gl_InvocationID].out_var_PN_DominantVertex1 = _279; - gl_out[gl_InvocationID].out_var_PN_DominantVertex2 = param_var_I[9u + gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0.xyz; - gl_out[gl_InvocationID].out_var_PN_DominantEdge = float2(0.0); - gl_out[gl_InvocationID].out_var_PN_DominantEdge1 = float2(0.0); - gl_out[gl_InvocationID].out_var_PN_DominantEdge2 = _324; - gl_out[gl_InvocationID].out_var_PN_DominantEdge3 = _328; - gl_out[gl_InvocationID].out_var_PN_DominantEdge4 = _317.xyz; - gl_out[gl_InvocationID].out_var_PN_DominantEdge5 = _315.xyz; - temp_var_hullMainRetVal[gl_InvocationID] = FPNTessellationHSToDS{ param_var_I[gl_InvocationID], _402, _251, 1.0, 1.0, FHullShaderConstantDominantVertexData{ float2(0.0), _279, param_var_I[9u + gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0.xyz }, FHullShaderConstantDominantEdgeData{ float2(0.0), float2(0.0), _324, _328, _317.xyz, _315.xyz } }; - threadgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup); - if (gl_InvocationID == 0u) - { - float4 _461 = (((((temp_var_hullMainRetVal[0u].WorldPosition[1] + temp_var_hullMainRetVal[0u].WorldPosition[2]) + temp_var_hullMainRetVal[1u].WorldPosition[1]) + temp_var_hullMainRetVal[1u].WorldPosition[2]) + temp_var_hullMainRetVal[2u].WorldPosition[1]) + temp_var_hullMainRetVal[2u].WorldPosition[2]) * float4(0.16666667163372039794921875); - float4 _474 = _613; - _474.x = 0.5 * (temp_var_hullMainRetVal[1u].TessellationMultiplier + temp_var_hullMainRetVal[2u].TessellationMultiplier); - float4 _480 = _474; - _480.y = 0.5 * (temp_var_hullMainRetVal[2u].TessellationMultiplier + temp_var_hullMainRetVal[0u].TessellationMultiplier); - float4 _485 = _480; - _485.z = 0.5 * (temp_var_hullMainRetVal[0u].TessellationMultiplier + temp_var_hullMainRetVal[1u].TessellationMultiplier); - float4 _492 = _485; - _492.w = 0.333000004291534423828125 * ((temp_var_hullMainRetVal[0u].TessellationMultiplier + temp_var_hullMainRetVal[1u].TessellationMultiplier) + temp_var_hullMainRetVal[2u].TessellationMultiplier); - float4 _600; - for (;;) - { - float4 _500 = View.View_ViewToClip * float4(0.0); - float4 _505 = View.View_TranslatedWorldToClip * float4(temp_var_hullMainRetVal[0u].WorldPosition[0].xyz, 1.0); - float3 _506 = _505.xyz; - float3 _507 = _500.xyz; - float _509 = _505.w; - float _510 = _500.w; - float4 _527 = View.View_TranslatedWorldToClip * float4(temp_var_hullMainRetVal[1u].WorldPosition[0].xyz, 1.0); - float3 _528 = _527.xyz; - float _530 = _527.w; - float4 _548 = View.View_TranslatedWorldToClip * float4(temp_var_hullMainRetVal[2u].WorldPosition[0].xyz, 1.0); - float3 _549 = _548.xyz; - float _551 = _548.w; - if (any((((select(int3(0), int3(1), (_506 - _507) < float3(_509 + _510)) + (int3(2) * select(int3(0), int3(1), (_506 + _507) > float3((-_509) - _510)))) | (select(int3(0), int3(1), (_528 - _507) < float3(_530 + _510)) + (int3(2) * select(int3(0), int3(1), (_528 + _507) > float3((-_530) - _510))))) | (select(int3(0), int3(1), (_549 - _507) < float3(_551 + _510)) + (int3(2) * select(int3(0), int3(1), (_549 + _507) > float3((-_551) - _510))))) != int3(3))) - { - _600 = float4(0.0); - break; - } - float3 _569 = temp_var_hullMainRetVal[0u].WorldPosition[0].xyz - temp_var_hullMainRetVal[1u].WorldPosition[0].xyz; - float3 _570 = temp_var_hullMainRetVal[1u].WorldPosition[0].xyz - temp_var_hullMainRetVal[2u].WorldPosition[0].xyz; - float3 _571 = temp_var_hullMainRetVal[2u].WorldPosition[0].xyz - temp_var_hullMainRetVal[0u].WorldPosition[0].xyz; - float3 _574 = (float3(0.5) * (temp_var_hullMainRetVal[0u].WorldPosition[0].xyz + temp_var_hullMainRetVal[1u].WorldPosition[0].xyz)) - float3(View.View_TranslatedWorldCameraOrigin); - float3 _577 = (float3(0.5) * (temp_var_hullMainRetVal[1u].WorldPosition[0].xyz + temp_var_hullMainRetVal[2u].WorldPosition[0].xyz)) - float3(View.View_TranslatedWorldCameraOrigin); - float3 _580 = (float3(0.5) * (temp_var_hullMainRetVal[2u].WorldPosition[0].xyz + temp_var_hullMainRetVal[0u].WorldPosition[0].xyz)) - float3(View.View_TranslatedWorldCameraOrigin); - float _584 = sqrt(dot(_570, _570) / dot(_577, _577)); - float _588 = sqrt(dot(_571, _571) / dot(_580, _580)); - float _592 = sqrt(dot(_569, _569) / dot(_574, _574)); - float4 _597 = float4(_584, _588, _592, 1.0); - _597.w = 0.333000004291534423828125 * ((_584 + _588) + _592); - _600 = float4(View.View_AdaptiveTessellationFactor) * _597; - break; - } - float4 _602 = fast::clamp(_492 * _600, float4(1.0), float4(15.0)); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0u] = half(_602.x); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1u] = half(_602.y); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2u] = half(_602.z); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor = half(_602.w); - patchOut.out_var_PN_POSITION9 = _461 + ((_461 - (((temp_var_hullMainRetVal[2u].WorldPosition[0] + temp_var_hullMainRetVal[1u].WorldPosition[0]) + temp_var_hullMainRetVal[0u].WorldPosition[0]) * float4(0.3333333432674407958984375))) * float4(0.5)); - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/tesc/hs-texcoord-array.asm.tesc b/third_party/spirv-cross/reference/opt/shaders-ue4/asm/tesc/hs-texcoord-array.asm.tesc deleted file mode 100644 index 674992ca8e..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/tesc/hs-texcoord-array.asm.tesc +++ /dev/null @@ -1,411 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct FVertexFactoryInterpolantsVSToPS -{ - float4 TangentToWorld0; - float4 TangentToWorld2; - float4 Color; - spvUnsafeArray TexCoords; -}; - -struct FVertexFactoryInterpolantsVSToDS -{ - FVertexFactoryInterpolantsVSToPS InterpolantsVSToPS; -}; - -struct FHitProxyVSToDS -{ - FVertexFactoryInterpolantsVSToDS FactoryInterpolants; - float4 Position; -}; - -struct FPNTessellationHSToDS -{ - FHitProxyVSToDS PassSpecificData; - spvUnsafeArray WorldPosition; - float3 DisplacementScale; - float TessellationMultiplier; - float WorldDisplacementMultiplier; -}; - -struct type_View -{ - float4x4 View_TranslatedWorldToClip; - float4x4 View_WorldToClip; - float4x4 View_ClipToWorld; - float4x4 View_TranslatedWorldToView; - float4x4 View_ViewToTranslatedWorld; - float4x4 View_TranslatedWorldToCameraView; - float4x4 View_CameraViewToTranslatedWorld; - float4x4 View_ViewToClip; - float4x4 View_ViewToClipNoAA; - float4x4 View_ClipToView; - float4x4 View_ClipToTranslatedWorld; - float4x4 View_SVPositionToTranslatedWorld; - float4x4 View_ScreenToWorld; - float4x4 View_ScreenToTranslatedWorld; - packed_float3 View_ViewForward; - float PrePadding_View_908; - packed_float3 View_ViewUp; - float PrePadding_View_924; - packed_float3 View_ViewRight; - float PrePadding_View_940; - packed_float3 View_HMDViewNoRollUp; - float PrePadding_View_956; - packed_float3 View_HMDViewNoRollRight; - float PrePadding_View_972; - float4 View_InvDeviceZToWorldZTransform; - float4 View_ScreenPositionScaleBias; - packed_float3 View_WorldCameraOrigin; - float PrePadding_View_1020; - packed_float3 View_TranslatedWorldCameraOrigin; - float PrePadding_View_1036; - packed_float3 View_WorldViewOrigin; - float PrePadding_View_1052; - packed_float3 View_PreViewTranslation; - float PrePadding_View_1068; - float4x4 View_PrevProjection; - float4x4 View_PrevViewProj; - float4x4 View_PrevViewRotationProj; - float4x4 View_PrevViewToClip; - float4x4 View_PrevClipToView; - float4x4 View_PrevTranslatedWorldToClip; - float4x4 View_PrevTranslatedWorldToView; - float4x4 View_PrevViewToTranslatedWorld; - float4x4 View_PrevTranslatedWorldToCameraView; - float4x4 View_PrevCameraViewToTranslatedWorld; - packed_float3 View_PrevWorldCameraOrigin; - float PrePadding_View_1724; - packed_float3 View_PrevWorldViewOrigin; - float PrePadding_View_1740; - packed_float3 View_PrevPreViewTranslation; - float PrePadding_View_1756; - float4x4 View_PrevInvViewProj; - float4x4 View_PrevScreenToTranslatedWorld; - float4x4 View_ClipToPrevClip; - float4 View_TemporalAAJitter; - float4 View_GlobalClippingPlane; - float2 View_FieldOfViewWideAngles; - float2 View_PrevFieldOfViewWideAngles; - float4 View_ViewRectMin; - float4 View_ViewSizeAndInvSize; - float4 View_BufferSizeAndInvSize; - float4 View_BufferBilinearUVMinMax; - int View_NumSceneColorMSAASamples; - float View_PreExposure; - float View_OneOverPreExposure; - float PrePadding_View_2076; - float4 View_DiffuseOverrideParameter; - float4 View_SpecularOverrideParameter; - float4 View_NormalOverrideParameter; - float2 View_RoughnessOverrideParameter; - float View_PrevFrameGameTime; - float View_PrevFrameRealTime; - float View_OutOfBoundsMask; - float PrePadding_View_2148; - float PrePadding_View_2152; - float PrePadding_View_2156; - packed_float3 View_WorldCameraMovementSinceLastFrame; - float View_CullingSign; - float View_NearPlane; - float View_AdaptiveTessellationFactor; - float View_GameTime; - float View_RealTime; - float View_DeltaTime; - float View_MaterialTextureMipBias; - float View_MaterialTextureDerivativeMultiply; - uint View_Random; - uint View_FrameNumber; - uint View_StateFrameIndexMod8; - uint View_StateFrameIndex; - float View_CameraCut; - float View_UnlitViewmodeMask; - float PrePadding_View_2228; - float PrePadding_View_2232; - float PrePadding_View_2236; - float4 View_DirectionalLightColor; - packed_float3 View_DirectionalLightDirection; - float PrePadding_View_2268; - float4 View_TranslucencyLightingVolumeMin[2]; - float4 View_TranslucencyLightingVolumeInvSize[2]; - float4 View_TemporalAAParams; - float4 View_CircleDOFParams; - float View_DepthOfFieldSensorWidth; - float View_DepthOfFieldFocalDistance; - float View_DepthOfFieldScale; - float View_DepthOfFieldFocalLength; - float View_DepthOfFieldFocalRegion; - float View_DepthOfFieldNearTransitionRegion; - float View_DepthOfFieldFarTransitionRegion; - float View_MotionBlurNormalizedToPixel; - float View_bSubsurfacePostprocessEnabled; - float View_GeneralPurposeTweak; - float View_DemosaicVposOffset; - float PrePadding_View_2412; - packed_float3 View_IndirectLightingColorScale; - float View_HDR32bppEncodingMode; - packed_float3 View_AtmosphericFogSunDirection; - float View_AtmosphericFogSunPower; - float View_AtmosphericFogPower; - float View_AtmosphericFogDensityScale; - float View_AtmosphericFogDensityOffset; - float View_AtmosphericFogGroundOffset; - float View_AtmosphericFogDistanceScale; - float View_AtmosphericFogAltitudeScale; - float View_AtmosphericFogHeightScaleRayleigh; - float View_AtmosphericFogStartDistance; - float View_AtmosphericFogDistanceOffset; - float View_AtmosphericFogSunDiscScale; - float View_AtmosphericFogSunDiscHalfApexAngleRadian; - float PrePadding_View_2492; - float4 View_AtmosphericFogSunDiscLuminance; - uint View_AtmosphericFogRenderMask; - uint View_AtmosphericFogInscatterAltitudeSampleNum; - uint PrePadding_View_2520; - uint PrePadding_View_2524; - float4 View_AtmosphericFogSunColor; - packed_float3 View_NormalCurvatureToRoughnessScaleBias; - float View_RenderingReflectionCaptureMask; - float4 View_AmbientCubemapTint; - float View_AmbientCubemapIntensity; - float View_SkyLightParameters; - float PrePadding_View_2584; - float PrePadding_View_2588; - float4 View_SkyLightColor; - float4 View_SkyIrradianceEnvironmentMap[7]; - float View_MobilePreviewMode; - float View_HMDEyePaddingOffset; - float View_ReflectionCubemapMaxMip; - float View_ShowDecalsMask; - uint View_DistanceFieldAOSpecularOcclusionMode; - float View_IndirectCapsuleSelfShadowingIntensity; - float PrePadding_View_2744; - float PrePadding_View_2748; - packed_float3 View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight; - int View_StereoPassIndex; - float4 View_GlobalVolumeCenterAndExtent[4]; - float4 View_GlobalVolumeWorldToUVAddAndMul[4]; - float View_GlobalVolumeDimension; - float View_GlobalVolumeTexelSize; - float View_MaxGlobalDistance; - float PrePadding_View_2908; - int2 View_CursorPosition; - float View_bCheckerboardSubsurfaceProfileRendering; - float PrePadding_View_2924; - packed_float3 View_VolumetricFogInvGridSize; - float PrePadding_View_2940; - packed_float3 View_VolumetricFogGridZParams; - float PrePadding_View_2956; - float2 View_VolumetricFogSVPosToVolumeUV; - float View_VolumetricFogMaxDistance; - float PrePadding_View_2972; - packed_float3 View_VolumetricLightmapWorldToUVScale; - float PrePadding_View_2988; - packed_float3 View_VolumetricLightmapWorldToUVAdd; - float PrePadding_View_3004; - packed_float3 View_VolumetricLightmapIndirectionTextureSize; - float View_VolumetricLightmapBrickSize; - packed_float3 View_VolumetricLightmapBrickTexelSize; - float View_StereoIPD; - float View_IndirectLightingCacheShowFlag; - float View_EyeToPixelSpreadAngle; -}; - -struct type_Primitive -{ - float4x4 Primitive_LocalToWorld; - float4 Primitive_InvNonUniformScaleAndDeterminantSign; - float4 Primitive_ObjectWorldPositionAndRadius; - float4x4 Primitive_WorldToLocal; - float4x4 Primitive_PreviousLocalToWorld; - float4x4 Primitive_PreviousWorldToLocal; - packed_float3 Primitive_ActorWorldPosition; - float Primitive_UseSingleSampleShadowFromStationaryLights; - packed_float3 Primitive_ObjectBounds; - float Primitive_LpvBiasMultiplier; - float Primitive_DecalReceiverMask; - float Primitive_PerObjectGBufferData; - float Primitive_UseVolumetricLightmapShadowFromStationaryLights; - float Primitive_DrawsVelocity; - float4 Primitive_ObjectOrientation; - float4 Primitive_NonUniformScale; - packed_float3 Primitive_LocalObjectBoundsMin; - uint Primitive_LightingChannelMask; - packed_float3 Primitive_LocalObjectBoundsMax; - uint Primitive_LightmapDataIndex; - packed_float3 Primitive_PreSkinnedLocalBounds; - int Primitive_SingleCaptureIndex; - uint Primitive_OutputVelocity; - uint PrePadding_Primitive_420; - uint PrePadding_Primitive_424; - uint PrePadding_Primitive_428; - float4 Primitive_CustomPrimitiveData[4]; -}; - -constant float4 _537 = {}; - -struct main0_out -{ - float4 out_var_COLOR0; - float3 out_var_PN_DisplacementScales; - spvUnsafeArray out_var_PN_POSITION; - float out_var_PN_TessellationMultiplier; - float out_var_PN_WorldDisplacementMultiplier; - spvUnsafeArray out_var_TEXCOORD0; - float4 out_var_TEXCOORD10_centroid; - float4 out_var_TEXCOORD11_centroid; - float4 out_var_VS_To_DS_Position; -}; - -struct main0_patchOut -{ - float4 out_var_PN_POSITION9; -}; - -struct main0_in -{ - float4 in_var_TEXCOORD10_centroid [[attribute(0)]]; - float4 in_var_TEXCOORD11_centroid [[attribute(1)]]; - float4 in_var_COLOR0 [[attribute(2)]]; - float2 in_var_TEXCOORD0_0 [[attribute(3)]]; - float2 in_var_TEXCOORD0_1 [[attribute(4)]]; - float4 in_var_VS_To_DS_Position [[attribute(5)]]; -}; - -kernel void main0(main0_in in [[stage_in]], constant type_View& View [[buffer(0)]], constant type_Primitive& Primitive [[buffer(1)]], uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLTriangleTessellationFactorsHalf* spvTessLevel [[buffer(26)]], threadgroup main0_in* gl_in [[threadgroup(0)]]) -{ - threadgroup FPNTessellationHSToDS temp_var_hullMainRetVal[3]; - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 3]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - if (gl_InvocationID < spvIndirectParams[0]) - gl_in[gl_InvocationID] = in; - threadgroup_barrier(mem_flags::mem_threadgroup); - if (gl_InvocationID >= 3) - return; - spvUnsafeArray _129 = spvUnsafeArray({ gl_in[0].in_var_TEXCOORD10_centroid, gl_in[1].in_var_TEXCOORD10_centroid, gl_in[2].in_var_TEXCOORD10_centroid, gl_in[3].in_var_TEXCOORD10_centroid, gl_in[4].in_var_TEXCOORD10_centroid, gl_in[5].in_var_TEXCOORD10_centroid, gl_in[6].in_var_TEXCOORD10_centroid, gl_in[7].in_var_TEXCOORD10_centroid, gl_in[8].in_var_TEXCOORD10_centroid, gl_in[9].in_var_TEXCOORD10_centroid, gl_in[10].in_var_TEXCOORD10_centroid, gl_in[11].in_var_TEXCOORD10_centroid }); - spvUnsafeArray _130 = spvUnsafeArray({ gl_in[0].in_var_TEXCOORD11_centroid, gl_in[1].in_var_TEXCOORD11_centroid, gl_in[2].in_var_TEXCOORD11_centroid, gl_in[3].in_var_TEXCOORD11_centroid, gl_in[4].in_var_TEXCOORD11_centroid, gl_in[5].in_var_TEXCOORD11_centroid, gl_in[6].in_var_TEXCOORD11_centroid, gl_in[7].in_var_TEXCOORD11_centroid, gl_in[8].in_var_TEXCOORD11_centroid, gl_in[9].in_var_TEXCOORD11_centroid, gl_in[10].in_var_TEXCOORD11_centroid, gl_in[11].in_var_TEXCOORD11_centroid }); - spvUnsafeArray _131 = spvUnsafeArray({ gl_in[0].in_var_COLOR0, gl_in[1].in_var_COLOR0, gl_in[2].in_var_COLOR0, gl_in[3].in_var_COLOR0, gl_in[4].in_var_COLOR0, gl_in[5].in_var_COLOR0, gl_in[6].in_var_COLOR0, gl_in[7].in_var_COLOR0, gl_in[8].in_var_COLOR0, gl_in[9].in_var_COLOR0, gl_in[10].in_var_COLOR0, gl_in[11].in_var_COLOR0 }); - spvUnsafeArray, 12> _132 = spvUnsafeArray, 12>({ spvUnsafeArray({ gl_in[0].in_var_TEXCOORD0_0, gl_in[0].in_var_TEXCOORD0_1 }), spvUnsafeArray({ gl_in[1].in_var_TEXCOORD0_0, gl_in[1].in_var_TEXCOORD0_1 }), spvUnsafeArray({ gl_in[2].in_var_TEXCOORD0_0, gl_in[2].in_var_TEXCOORD0_1 }), spvUnsafeArray({ gl_in[3].in_var_TEXCOORD0_0, gl_in[3].in_var_TEXCOORD0_1 }), spvUnsafeArray({ gl_in[4].in_var_TEXCOORD0_0, gl_in[4].in_var_TEXCOORD0_1 }), spvUnsafeArray({ gl_in[5].in_var_TEXCOORD0_0, gl_in[5].in_var_TEXCOORD0_1 }), spvUnsafeArray({ gl_in[6].in_var_TEXCOORD0_0, gl_in[6].in_var_TEXCOORD0_1 }), spvUnsafeArray({ gl_in[7].in_var_TEXCOORD0_0, gl_in[7].in_var_TEXCOORD0_1 }), spvUnsafeArray({ gl_in[8].in_var_TEXCOORD0_0, gl_in[8].in_var_TEXCOORD0_1 }), spvUnsafeArray({ gl_in[9].in_var_TEXCOORD0_0, gl_in[9].in_var_TEXCOORD0_1 }), spvUnsafeArray({ gl_in[10].in_var_TEXCOORD0_0, gl_in[10].in_var_TEXCOORD0_1 }), spvUnsafeArray({ gl_in[11].in_var_TEXCOORD0_0, gl_in[11].in_var_TEXCOORD0_1 }) }); - spvUnsafeArray _205 = spvUnsafeArray({ gl_in[0].in_var_VS_To_DS_Position, gl_in[1].in_var_VS_To_DS_Position, gl_in[2].in_var_VS_To_DS_Position, gl_in[3].in_var_VS_To_DS_Position, gl_in[4].in_var_VS_To_DS_Position, gl_in[5].in_var_VS_To_DS_Position, gl_in[6].in_var_VS_To_DS_Position, gl_in[7].in_var_VS_To_DS_Position, gl_in[8].in_var_VS_To_DS_Position, gl_in[9].in_var_VS_To_DS_Position, gl_in[10].in_var_VS_To_DS_Position, gl_in[11].in_var_VS_To_DS_Position }); - spvUnsafeArray _230 = spvUnsafeArray({ FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _129[0], _130[0], _131[0], _132[0] } }, _205[0] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _129[1], _130[1], _131[1], _132[1] } }, _205[1] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _129[2], _130[2], _131[2], _132[2] } }, _205[2] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _129[3], _130[3], _131[3], _132[3] } }, _205[3] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _129[4], _130[4], _131[4], _132[4] } }, _205[4] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _129[5], _130[5], _131[5], _132[5] } }, _205[5] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _129[6], _130[6], _131[6], _132[6] } }, _205[6] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _129[7], _130[7], _131[7], _132[7] } }, _205[7] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _129[8], _130[8], _131[8], _132[8] } }, _205[8] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _129[9], _130[9], _131[9], _132[9] } }, _205[9] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _129[10], _130[10], _131[10], _132[10] } }, _205[10] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _129[11], _130[11], _131[11], _132[11] } }, _205[11] } }); - spvUnsafeArray param_var_I; - param_var_I = _230; - float4 _247 = float4(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0); - float3 _251 = Primitive.Primitive_NonUniformScale.xyz * float3x3(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0.xyz, cross(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0.xyz) * float3(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.w), param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz); - uint _254 = (gl_InvocationID < 2u) ? (gl_InvocationID + 1u) : 0u; - uint _255 = 2u * gl_InvocationID; - uint _256 = 3u + _255; - uint _257 = _255 + 4u; - float4 _269 = float4(param_var_I[_254].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0); - float4 _277 = float4(param_var_I[_256].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0); - float4 _285 = float4(param_var_I[_257].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0); - spvUnsafeArray _333 = spvUnsafeArray({ param_var_I[gl_InvocationID].Position, ((((float4(2.0) * param_var_I[gl_InvocationID].Position) + param_var_I[_254].Position) - (float4(dot(param_var_I[_254].Position - param_var_I[gl_InvocationID].Position, _247)) * _247)) + (((float4(2.0) * param_var_I[_256].Position) + param_var_I[_257].Position) - (float4(dot(param_var_I[_257].Position - param_var_I[_256].Position, _277)) * _277))) * float4(0.16666667163372039794921875), ((((float4(2.0) * param_var_I[_254].Position) + param_var_I[gl_InvocationID].Position) - (float4(dot(param_var_I[gl_InvocationID].Position - param_var_I[_254].Position, _269)) * _269)) + (((float4(2.0) * param_var_I[_257].Position) + param_var_I[_256].Position) - (float4(dot(param_var_I[_256].Position - param_var_I[_257].Position, _285)) * _285))) * float4(0.16666667163372039794921875) }); - gl_out[gl_InvocationID].out_var_TEXCOORD10_centroid = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0; - gl_out[gl_InvocationID].out_var_TEXCOORD11_centroid = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2; - gl_out[gl_InvocationID].out_var_COLOR0 = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.Color; - gl_out[gl_InvocationID].out_var_TEXCOORD0 = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TexCoords; - gl_out[gl_InvocationID].out_var_VS_To_DS_Position = param_var_I[gl_InvocationID].Position; - gl_out[gl_InvocationID].out_var_PN_POSITION = _333; - gl_out[gl_InvocationID].out_var_PN_DisplacementScales = _251; - gl_out[gl_InvocationID].out_var_PN_TessellationMultiplier = 1.0; - gl_out[gl_InvocationID].out_var_PN_WorldDisplacementMultiplier = 1.0; - temp_var_hullMainRetVal[gl_InvocationID] = FPNTessellationHSToDS{ param_var_I[gl_InvocationID], _333, _251, 1.0, 1.0 }; - threadgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup); - if (gl_InvocationID == 0u) - { - float4 _385 = (((((temp_var_hullMainRetVal[0u].WorldPosition[1] + temp_var_hullMainRetVal[0u].WorldPosition[2]) + temp_var_hullMainRetVal[1u].WorldPosition[1]) + temp_var_hullMainRetVal[1u].WorldPosition[2]) + temp_var_hullMainRetVal[2u].WorldPosition[1]) + temp_var_hullMainRetVal[2u].WorldPosition[2]) * float4(0.16666667163372039794921875); - float4 _398 = _537; - _398.x = 0.5 * (temp_var_hullMainRetVal[1u].TessellationMultiplier + temp_var_hullMainRetVal[2u].TessellationMultiplier); - float4 _404 = _398; - _404.y = 0.5 * (temp_var_hullMainRetVal[2u].TessellationMultiplier + temp_var_hullMainRetVal[0u].TessellationMultiplier); - float4 _409 = _404; - _409.z = 0.5 * (temp_var_hullMainRetVal[0u].TessellationMultiplier + temp_var_hullMainRetVal[1u].TessellationMultiplier); - float4 _416 = _409; - _416.w = 0.333000004291534423828125 * ((temp_var_hullMainRetVal[0u].TessellationMultiplier + temp_var_hullMainRetVal[1u].TessellationMultiplier) + temp_var_hullMainRetVal[2u].TessellationMultiplier); - float4 _524; - for (;;) - { - float4 _424 = View.View_ViewToClip * float4(0.0); - float4 _429 = View.View_TranslatedWorldToClip * float4(temp_var_hullMainRetVal[0u].WorldPosition[0].xyz, 1.0); - float3 _430 = _429.xyz; - float3 _431 = _424.xyz; - float _433 = _429.w; - float _434 = _424.w; - float4 _451 = View.View_TranslatedWorldToClip * float4(temp_var_hullMainRetVal[1u].WorldPosition[0].xyz, 1.0); - float3 _452 = _451.xyz; - float _454 = _451.w; - float4 _472 = View.View_TranslatedWorldToClip * float4(temp_var_hullMainRetVal[2u].WorldPosition[0].xyz, 1.0); - float3 _473 = _472.xyz; - float _475 = _472.w; - if (any((((select(int3(0), int3(1), (_430 - _431) < float3(_433 + _434)) + (int3(2) * select(int3(0), int3(1), (_430 + _431) > float3((-_433) - _434)))) | (select(int3(0), int3(1), (_452 - _431) < float3(_454 + _434)) + (int3(2) * select(int3(0), int3(1), (_452 + _431) > float3((-_454) - _434))))) | (select(int3(0), int3(1), (_473 - _431) < float3(_475 + _434)) + (int3(2) * select(int3(0), int3(1), (_473 + _431) > float3((-_475) - _434))))) != int3(3))) - { - _524 = float4(0.0); - break; - } - float3 _493 = temp_var_hullMainRetVal[0u].WorldPosition[0].xyz - temp_var_hullMainRetVal[1u].WorldPosition[0].xyz; - float3 _494 = temp_var_hullMainRetVal[1u].WorldPosition[0].xyz - temp_var_hullMainRetVal[2u].WorldPosition[0].xyz; - float3 _495 = temp_var_hullMainRetVal[2u].WorldPosition[0].xyz - temp_var_hullMainRetVal[0u].WorldPosition[0].xyz; - float3 _498 = (float3(0.5) * (temp_var_hullMainRetVal[0u].WorldPosition[0].xyz + temp_var_hullMainRetVal[1u].WorldPosition[0].xyz)) - float3(View.View_TranslatedWorldCameraOrigin); - float3 _501 = (float3(0.5) * (temp_var_hullMainRetVal[1u].WorldPosition[0].xyz + temp_var_hullMainRetVal[2u].WorldPosition[0].xyz)) - float3(View.View_TranslatedWorldCameraOrigin); - float3 _504 = (float3(0.5) * (temp_var_hullMainRetVal[2u].WorldPosition[0].xyz + temp_var_hullMainRetVal[0u].WorldPosition[0].xyz)) - float3(View.View_TranslatedWorldCameraOrigin); - float _508 = sqrt(dot(_494, _494) / dot(_501, _501)); - float _512 = sqrt(dot(_495, _495) / dot(_504, _504)); - float _516 = sqrt(dot(_493, _493) / dot(_498, _498)); - float4 _521 = float4(_508, _512, _516, 1.0); - _521.w = 0.333000004291534423828125 * ((_508 + _512) + _516); - _524 = float4(View.View_AdaptiveTessellationFactor) * _521; - break; - } - float4 _526 = fast::clamp(_416 * _524, float4(1.0), float4(15.0)); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0u] = half(_526.x); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1u] = half(_526.y); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2u] = half(_526.z); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor = half(_526.w); - patchOut.out_var_PN_POSITION9 = _385 + ((_385 - (((temp_var_hullMainRetVal[2u].WorldPosition[0] + temp_var_hullMainRetVal[1u].WorldPosition[0]) + temp_var_hullMainRetVal[0u].WorldPosition[0]) * float4(0.3333333432674407958984375))) * float4(0.5)); - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.asm.tesc b/third_party/spirv-cross/reference/opt/shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.asm.tesc deleted file mode 100644 index 13ea8bb712..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.asm.tesc +++ /dev/null @@ -1,178 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct FVertexFactoryInterpolantsVSToPS -{ - float4 TangentToWorld0; - float4 TangentToWorld2; -}; - -struct FVertexFactoryInterpolantsVSToDS -{ - FVertexFactoryInterpolantsVSToPS InterpolantsVSToPS; -}; - -struct FSharedBasePassInterpolants -{ -}; -struct FBasePassInterpolantsVSToDS -{ - FSharedBasePassInterpolants _m0; -}; - -struct FBasePassVSToDS -{ - FVertexFactoryInterpolantsVSToDS FactoryInterpolants; - FBasePassInterpolantsVSToDS BasePassInterpolants; - float4 Position; -}; - -struct FFlatTessellationHSToDS -{ - FBasePassVSToDS PassSpecificData; - float3 DisplacementScale; - float TessellationMultiplier; - float WorldDisplacementMultiplier; -}; - -struct type_Primitive -{ - float4x4 Primitive_LocalToWorld; - float4 Primitive_InvNonUniformScaleAndDeterminantSign; - float4 Primitive_ObjectWorldPositionAndRadius; - float4x4 Primitive_WorldToLocal; - float4x4 Primitive_PreviousLocalToWorld; - float4x4 Primitive_PreviousWorldToLocal; - packed_float3 Primitive_ActorWorldPosition; - float Primitive_UseSingleSampleShadowFromStationaryLights; - packed_float3 Primitive_ObjectBounds; - float Primitive_LpvBiasMultiplier; - float Primitive_DecalReceiverMask; - float Primitive_PerObjectGBufferData; - float Primitive_UseVolumetricLightmapShadowFromStationaryLights; - float Primitive_DrawsVelocity; - float4 Primitive_ObjectOrientation; - float4 Primitive_NonUniformScale; - packed_float3 Primitive_LocalObjectBoundsMin; - uint Primitive_LightingChannelMask; - packed_float3 Primitive_LocalObjectBoundsMax; - uint Primitive_LightmapDataIndex; - packed_float3 Primitive_PreSkinnedLocalBounds; - int Primitive_SingleCaptureIndex; - uint Primitive_OutputVelocity; - uint PrePadding_Primitive_420; - uint PrePadding_Primitive_424; - uint PrePadding_Primitive_428; - float4 Primitive_CustomPrimitiveData[4]; -}; - -struct type_Material -{ - float4 Material_VectorExpressions[3]; - float4 Material_ScalarExpressions[1]; -}; - -constant float4 _182 = {}; - -struct main0_out -{ - float3 out_var_Flat_DisplacementScales; - float out_var_Flat_TessellationMultiplier; - float out_var_Flat_WorldDisplacementMultiplier; - float4 out_var_TEXCOORD10_centroid; - float4 out_var_TEXCOORD11_centroid; - float4 out_var_VS_To_DS_Position; -}; - -struct main0_in -{ - float4 in_var_TEXCOORD10_centroid [[attribute(0)]]; - float4 in_var_TEXCOORD11_centroid [[attribute(1)]]; - float4 in_var_VS_To_DS_Position [[attribute(2)]]; -}; - -kernel void main0(main0_in in [[stage_in]], constant type_Primitive& Primitive [[buffer(0)]], constant type_Material& Material [[buffer(1)]], uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLTriangleTessellationFactorsHalf* spvTessLevel [[buffer(26)]], threadgroup main0_in* gl_in [[threadgroup(0)]]) -{ - threadgroup FFlatTessellationHSToDS temp_var_hullMainRetVal[3]; - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 3]; - if (gl_InvocationID < spvIndirectParams[0]) - gl_in[gl_InvocationID] = in; - threadgroup_barrier(mem_flags::mem_threadgroup); - if (gl_InvocationID >= 3) - return; - spvUnsafeArray _90 = spvUnsafeArray({ gl_in[0].in_var_TEXCOORD10_centroid, gl_in[1].in_var_TEXCOORD10_centroid, gl_in[2].in_var_TEXCOORD10_centroid }); - spvUnsafeArray _91 = spvUnsafeArray({ gl_in[0].in_var_TEXCOORD11_centroid, gl_in[1].in_var_TEXCOORD11_centroid, gl_in[2].in_var_TEXCOORD11_centroid }); - spvUnsafeArray _104 = spvUnsafeArray({ gl_in[0].in_var_VS_To_DS_Position, gl_in[1].in_var_VS_To_DS_Position, gl_in[2].in_var_VS_To_DS_Position }); - spvUnsafeArray _111 = spvUnsafeArray({ FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _90[0], _91[0] } }, FBasePassInterpolantsVSToDS{ { } }, _104[0] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _90[1], _91[1] } }, FBasePassInterpolantsVSToDS{ { } }, _104[1] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _90[2], _91[2] } }, FBasePassInterpolantsVSToDS{ { } }, _104[2] } }); - spvUnsafeArray param_var_I; - param_var_I = _111; - float3 _128 = Primitive.Primitive_NonUniformScale.xyz * float3x3(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0.xyz, cross(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0.xyz) * float3(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.w), param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz); - gl_out[gl_InvocationID].out_var_TEXCOORD10_centroid = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0; - gl_out[gl_InvocationID].out_var_TEXCOORD11_centroid = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2; - gl_out[gl_InvocationID].out_var_VS_To_DS_Position = param_var_I[gl_InvocationID].Position; - gl_out[gl_InvocationID].out_var_Flat_DisplacementScales = _128; - gl_out[gl_InvocationID].out_var_Flat_TessellationMultiplier = Material.Material_ScalarExpressions[0].x; - gl_out[gl_InvocationID].out_var_Flat_WorldDisplacementMultiplier = 1.0; - temp_var_hullMainRetVal[gl_InvocationID] = FFlatTessellationHSToDS{ param_var_I[gl_InvocationID], _128, Material.Material_ScalarExpressions[0].x, 1.0 }; - threadgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup); - if (gl_InvocationID == 0u) - { - float4 _154 = _182; - _154.x = 0.5 * (temp_var_hullMainRetVal[1u].TessellationMultiplier + temp_var_hullMainRetVal[2u].TessellationMultiplier); - float4 _160 = _154; - _160.y = 0.5 * (temp_var_hullMainRetVal[2u].TessellationMultiplier + temp_var_hullMainRetVal[0u].TessellationMultiplier); - float4 _165 = _160; - _165.z = 0.5 * (temp_var_hullMainRetVal[0u].TessellationMultiplier + temp_var_hullMainRetVal[1u].TessellationMultiplier); - float4 _172 = _165; - _172.w = 0.333000004291534423828125 * ((temp_var_hullMainRetVal[0u].TessellationMultiplier + temp_var_hullMainRetVal[1u].TessellationMultiplier) + temp_var_hullMainRetVal[2u].TessellationMultiplier); - float4 _173 = fast::clamp(_172, float4(1.0), float4(15.0)); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0u] = half(_173.x); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1u] = half(_173.y); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2u] = half(_173.z); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor = half(_173.w); - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/tese/ds-double-gl-in-deref.asm.tese b/third_party/spirv-cross/reference/opt/shaders-ue4/asm/tese/ds-double-gl-in-deref.asm.tese deleted file mode 100644 index 19e402e67f..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/tese/ds-double-gl-in-deref.asm.tese +++ /dev/null @@ -1,419 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct type_View -{ - float4x4 View_TranslatedWorldToClip; - float4x4 View_WorldToClip; - float4x4 View_ClipToWorld; - float4x4 View_TranslatedWorldToView; - float4x4 View_ViewToTranslatedWorld; - float4x4 View_TranslatedWorldToCameraView; - float4x4 View_CameraViewToTranslatedWorld; - float4x4 View_ViewToClip; - float4x4 View_ViewToClipNoAA; - float4x4 View_ClipToView; - float4x4 View_ClipToTranslatedWorld; - float4x4 View_SVPositionToTranslatedWorld; - float4x4 View_ScreenToWorld; - float4x4 View_ScreenToTranslatedWorld; - packed_float3 View_ViewForward; - float PrePadding_View_908; - packed_float3 View_ViewUp; - float PrePadding_View_924; - packed_float3 View_ViewRight; - float PrePadding_View_940; - packed_float3 View_HMDViewNoRollUp; - float PrePadding_View_956; - packed_float3 View_HMDViewNoRollRight; - float PrePadding_View_972; - float4 View_InvDeviceZToWorldZTransform; - float4 View_ScreenPositionScaleBias; - packed_float3 View_WorldCameraOrigin; - float PrePadding_View_1020; - packed_float3 View_TranslatedWorldCameraOrigin; - float PrePadding_View_1036; - packed_float3 View_WorldViewOrigin; - float PrePadding_View_1052; - packed_float3 View_PreViewTranslation; - float PrePadding_View_1068; - float4x4 View_PrevProjection; - float4x4 View_PrevViewProj; - float4x4 View_PrevViewRotationProj; - float4x4 View_PrevViewToClip; - float4x4 View_PrevClipToView; - float4x4 View_PrevTranslatedWorldToClip; - float4x4 View_PrevTranslatedWorldToView; - float4x4 View_PrevViewToTranslatedWorld; - float4x4 View_PrevTranslatedWorldToCameraView; - float4x4 View_PrevCameraViewToTranslatedWorld; - packed_float3 View_PrevWorldCameraOrigin; - float PrePadding_View_1724; - packed_float3 View_PrevWorldViewOrigin; - float PrePadding_View_1740; - packed_float3 View_PrevPreViewTranslation; - float PrePadding_View_1756; - float4x4 View_PrevInvViewProj; - float4x4 View_PrevScreenToTranslatedWorld; - float4x4 View_ClipToPrevClip; - float4 View_TemporalAAJitter; - float4 View_GlobalClippingPlane; - float2 View_FieldOfViewWideAngles; - float2 View_PrevFieldOfViewWideAngles; - float4 View_ViewRectMin; - float4 View_ViewSizeAndInvSize; - float4 View_BufferSizeAndInvSize; - float4 View_BufferBilinearUVMinMax; - int View_NumSceneColorMSAASamples; - float View_PreExposure; - float View_OneOverPreExposure; - float PrePadding_View_2076; - float4 View_DiffuseOverrideParameter; - float4 View_SpecularOverrideParameter; - float4 View_NormalOverrideParameter; - float2 View_RoughnessOverrideParameter; - float View_PrevFrameGameTime; - float View_PrevFrameRealTime; - float View_OutOfBoundsMask; - float PrePadding_View_2148; - float PrePadding_View_2152; - float PrePadding_View_2156; - packed_float3 View_WorldCameraMovementSinceLastFrame; - float View_CullingSign; - float View_NearPlane; - float View_AdaptiveTessellationFactor; - float View_GameTime; - float View_RealTime; - float View_DeltaTime; - float View_MaterialTextureMipBias; - float View_MaterialTextureDerivativeMultiply; - uint View_Random; - uint View_FrameNumber; - uint View_StateFrameIndexMod8; - uint View_StateFrameIndex; - float View_CameraCut; - float View_UnlitViewmodeMask; - float PrePadding_View_2228; - float PrePadding_View_2232; - float PrePadding_View_2236; - float4 View_DirectionalLightColor; - packed_float3 View_DirectionalLightDirection; - float PrePadding_View_2268; - float4 View_TranslucencyLightingVolumeMin[2]; - float4 View_TranslucencyLightingVolumeInvSize[2]; - float4 View_TemporalAAParams; - float4 View_CircleDOFParams; - float View_DepthOfFieldSensorWidth; - float View_DepthOfFieldFocalDistance; - float View_DepthOfFieldScale; - float View_DepthOfFieldFocalLength; - float View_DepthOfFieldFocalRegion; - float View_DepthOfFieldNearTransitionRegion; - float View_DepthOfFieldFarTransitionRegion; - float View_MotionBlurNormalizedToPixel; - float View_bSubsurfacePostprocessEnabled; - float View_GeneralPurposeTweak; - float View_DemosaicVposOffset; - float PrePadding_View_2412; - packed_float3 View_IndirectLightingColorScale; - float View_HDR32bppEncodingMode; - packed_float3 View_AtmosphericFogSunDirection; - float View_AtmosphericFogSunPower; - float View_AtmosphericFogPower; - float View_AtmosphericFogDensityScale; - float View_AtmosphericFogDensityOffset; - float View_AtmosphericFogGroundOffset; - float View_AtmosphericFogDistanceScale; - float View_AtmosphericFogAltitudeScale; - float View_AtmosphericFogHeightScaleRayleigh; - float View_AtmosphericFogStartDistance; - float View_AtmosphericFogDistanceOffset; - float View_AtmosphericFogSunDiscScale; - float View_AtmosphericFogSunDiscHalfApexAngleRadian; - float PrePadding_View_2492; - float4 View_AtmosphericFogSunDiscLuminance; - uint View_AtmosphericFogRenderMask; - uint View_AtmosphericFogInscatterAltitudeSampleNum; - uint PrePadding_View_2520; - uint PrePadding_View_2524; - float4 View_AtmosphericFogSunColor; - packed_float3 View_NormalCurvatureToRoughnessScaleBias; - float View_RenderingReflectionCaptureMask; - float4 View_AmbientCubemapTint; - float View_AmbientCubemapIntensity; - float View_SkyLightParameters; - float PrePadding_View_2584; - float PrePadding_View_2588; - float4 View_SkyLightColor; - float4 View_SkyIrradianceEnvironmentMap[7]; - float View_MobilePreviewMode; - float View_HMDEyePaddingOffset; - float View_ReflectionCubemapMaxMip; - float View_ShowDecalsMask; - uint View_DistanceFieldAOSpecularOcclusionMode; - float View_IndirectCapsuleSelfShadowingIntensity; - float PrePadding_View_2744; - float PrePadding_View_2748; - packed_float3 View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight; - int View_StereoPassIndex; - float4 View_GlobalVolumeCenterAndExtent[4]; - float4 View_GlobalVolumeWorldToUVAddAndMul[4]; - float View_GlobalVolumeDimension; - float View_GlobalVolumeTexelSize; - float View_MaxGlobalDistance; - float PrePadding_View_2908; - int2 View_CursorPosition; - float View_bCheckerboardSubsurfaceProfileRendering; - float PrePadding_View_2924; - packed_float3 View_VolumetricFogInvGridSize; - float PrePadding_View_2940; - packed_float3 View_VolumetricFogGridZParams; - float PrePadding_View_2956; - float2 View_VolumetricFogSVPosToVolumeUV; - float View_VolumetricFogMaxDistance; - float PrePadding_View_2972; - packed_float3 View_VolumetricLightmapWorldToUVScale; - float PrePadding_View_2988; - packed_float3 View_VolumetricLightmapWorldToUVAdd; - float PrePadding_View_3004; - packed_float3 View_VolumetricLightmapIndirectionTextureSize; - float View_VolumetricLightmapBrickSize; - packed_float3 View_VolumetricLightmapBrickTexelSize; - float View_StereoIPD; - float View_IndirectLightingCacheShowFlag; - float View_EyeToPixelSpreadAngle; -}; - -struct type_ShadowDepthPass -{ - float PrePadding_ShadowDepthPass_LPV_0; - float PrePadding_ShadowDepthPass_LPV_4; - float PrePadding_ShadowDepthPass_LPV_8; - float PrePadding_ShadowDepthPass_LPV_12; - float PrePadding_ShadowDepthPass_LPV_16; - float PrePadding_ShadowDepthPass_LPV_20; - float PrePadding_ShadowDepthPass_LPV_24; - float PrePadding_ShadowDepthPass_LPV_28; - float PrePadding_ShadowDepthPass_LPV_32; - float PrePadding_ShadowDepthPass_LPV_36; - float PrePadding_ShadowDepthPass_LPV_40; - float PrePadding_ShadowDepthPass_LPV_44; - float PrePadding_ShadowDepthPass_LPV_48; - float PrePadding_ShadowDepthPass_LPV_52; - float PrePadding_ShadowDepthPass_LPV_56; - float PrePadding_ShadowDepthPass_LPV_60; - float PrePadding_ShadowDepthPass_LPV_64; - float PrePadding_ShadowDepthPass_LPV_68; - float PrePadding_ShadowDepthPass_LPV_72; - float PrePadding_ShadowDepthPass_LPV_76; - float PrePadding_ShadowDepthPass_LPV_80; - float PrePadding_ShadowDepthPass_LPV_84; - float PrePadding_ShadowDepthPass_LPV_88; - float PrePadding_ShadowDepthPass_LPV_92; - float PrePadding_ShadowDepthPass_LPV_96; - float PrePadding_ShadowDepthPass_LPV_100; - float PrePadding_ShadowDepthPass_LPV_104; - float PrePadding_ShadowDepthPass_LPV_108; - float PrePadding_ShadowDepthPass_LPV_112; - float PrePadding_ShadowDepthPass_LPV_116; - float PrePadding_ShadowDepthPass_LPV_120; - float PrePadding_ShadowDepthPass_LPV_124; - float PrePadding_ShadowDepthPass_LPV_128; - float PrePadding_ShadowDepthPass_LPV_132; - float PrePadding_ShadowDepthPass_LPV_136; - float PrePadding_ShadowDepthPass_LPV_140; - float PrePadding_ShadowDepthPass_LPV_144; - float PrePadding_ShadowDepthPass_LPV_148; - float PrePadding_ShadowDepthPass_LPV_152; - float PrePadding_ShadowDepthPass_LPV_156; - float PrePadding_ShadowDepthPass_LPV_160; - float PrePadding_ShadowDepthPass_LPV_164; - float PrePadding_ShadowDepthPass_LPV_168; - float PrePadding_ShadowDepthPass_LPV_172; - float PrePadding_ShadowDepthPass_LPV_176; - float PrePadding_ShadowDepthPass_LPV_180; - float PrePadding_ShadowDepthPass_LPV_184; - float PrePadding_ShadowDepthPass_LPV_188; - float PrePadding_ShadowDepthPass_LPV_192; - float PrePadding_ShadowDepthPass_LPV_196; - float PrePadding_ShadowDepthPass_LPV_200; - float PrePadding_ShadowDepthPass_LPV_204; - float PrePadding_ShadowDepthPass_LPV_208; - float PrePadding_ShadowDepthPass_LPV_212; - float PrePadding_ShadowDepthPass_LPV_216; - float PrePadding_ShadowDepthPass_LPV_220; - float PrePadding_ShadowDepthPass_LPV_224; - float PrePadding_ShadowDepthPass_LPV_228; - float PrePadding_ShadowDepthPass_LPV_232; - float PrePadding_ShadowDepthPass_LPV_236; - float PrePadding_ShadowDepthPass_LPV_240; - float PrePadding_ShadowDepthPass_LPV_244; - float PrePadding_ShadowDepthPass_LPV_248; - float PrePadding_ShadowDepthPass_LPV_252; - float PrePadding_ShadowDepthPass_LPV_256; - float PrePadding_ShadowDepthPass_LPV_260; - float PrePadding_ShadowDepthPass_LPV_264; - float PrePadding_ShadowDepthPass_LPV_268; - float4x4 ShadowDepthPass_LPV_mRsmToWorld; - float4 ShadowDepthPass_LPV_mLightColour; - float4 ShadowDepthPass_LPV_GeometryVolumeCaptureLightDirection; - float4 ShadowDepthPass_LPV_mEyePos; - packed_int3 ShadowDepthPass_LPV_mOldGridOffset; - int PrePadding_ShadowDepthPass_LPV_396; - packed_int3 ShadowDepthPass_LPV_mLpvGridOffset; - float ShadowDepthPass_LPV_ClearMultiplier; - float ShadowDepthPass_LPV_LpvScale; - float ShadowDepthPass_LPV_OneOverLpvScale; - float ShadowDepthPass_LPV_DirectionalOcclusionIntensity; - float ShadowDepthPass_LPV_DirectionalOcclusionRadius; - float ShadowDepthPass_LPV_RsmAreaIntensityMultiplier; - float ShadowDepthPass_LPV_RsmPixelToTexcoordMultiplier; - float ShadowDepthPass_LPV_SecondaryOcclusionStrength; - float ShadowDepthPass_LPV_SecondaryBounceStrength; - float ShadowDepthPass_LPV_VplInjectionBias; - float ShadowDepthPass_LPV_GeometryVolumeInjectionBias; - float ShadowDepthPass_LPV_EmissiveInjectionMultiplier; - int ShadowDepthPass_LPV_PropagationIndex; - float4x4 ShadowDepthPass_ProjectionMatrix; - float4x4 ShadowDepthPass_ViewMatrix; - float4 ShadowDepthPass_ShadowParams; - float ShadowDepthPass_bClampToNearPlane; - float PrePadding_ShadowDepthPass_612; - float PrePadding_ShadowDepthPass_616; - float PrePadding_ShadowDepthPass_620; - float4x4 ShadowDepthPass_ShadowViewProjectionMatrices[6]; - float4x4 ShadowDepthPass_ShadowViewMatrices[6]; -}; - -constant float4 _113 = {}; - -struct main0_out -{ - float4 out_var_TEXCOORD10_centroid [[user(locn0)]]; - float4 out_var_TEXCOORD11_centroid [[user(locn1)]]; - float4 out_var_COLOR0 [[user(locn2)]]; - float4 out_var_TEXCOORD0_0 [[user(locn3)]]; - uint out_var_PRIMITIVE_ID [[user(locn4)]]; - float out_var_TEXCOORD6 [[user(locn5)]]; - float out_var_TEXCOORD8 [[user(locn6)]]; - float3 out_var_TEXCOORD7 [[user(locn7)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 in_var_COLOR0 [[attribute(0)]]; - float4 in_var_PN_POSITION_0 [[attribute(2)]]; - float4 in_var_PN_POSITION_1 [[attribute(3)]]; - float4 in_var_PN_POSITION_2 [[attribute(4)]]; - float in_var_PN_WorldDisplacementMultiplier [[attribute(7)]]; - uint in_var_PRIMITIVE_ID [[attribute(8)]]; - float4 in_var_TEXCOORD0_0 [[attribute(9)]]; - float4 in_var_TEXCOORD10_centroid [[attribute(10)]]; - float4 in_var_TEXCOORD11_centroid [[attribute(11)]]; -}; - -struct main0_patchIn -{ - float4 in_var_PN_POSITION9 [[attribute(5)]]; - patch_control_point gl_in; -}; - -[[ patch(triangle, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]], constant type_View& View [[buffer(0)]], constant type_ShadowDepthPass& ShadowDepthPass [[buffer(1)]], texture2d Material_Texture2D_3 [[texture(0)]], sampler Material_Texture2D_3Sampler [[sampler(0)]], float3 gl_TessCoord [[position_in_patch]]) -{ - main0_out out = {}; - spvUnsafeArray out_var_TEXCOORD0 = {}; - spvUnsafeArray _117 = spvUnsafeArray({ patchIn.gl_in[0].in_var_TEXCOORD10_centroid, patchIn.gl_in[1].in_var_TEXCOORD10_centroid, patchIn.gl_in[2].in_var_TEXCOORD10_centroid }); - spvUnsafeArray _118 = spvUnsafeArray({ patchIn.gl_in[0].in_var_TEXCOORD11_centroid, patchIn.gl_in[1].in_var_TEXCOORD11_centroid, patchIn.gl_in[2].in_var_TEXCOORD11_centroid }); - spvUnsafeArray _119 = spvUnsafeArray({ patchIn.gl_in[0].in_var_COLOR0, patchIn.gl_in[1].in_var_COLOR0, patchIn.gl_in[2].in_var_COLOR0 }); - spvUnsafeArray, 3> _120 = spvUnsafeArray, 3>({ spvUnsafeArray({ patchIn.gl_in[0].in_var_TEXCOORD0_0 }), spvUnsafeArray({ patchIn.gl_in[1].in_var_TEXCOORD0_0 }), spvUnsafeArray({ patchIn.gl_in[2].in_var_TEXCOORD0_0 }) }); - spvUnsafeArray, 3> _135 = spvUnsafeArray, 3>({ spvUnsafeArray({ patchIn.gl_in[0].in_var_PN_POSITION_0, patchIn.gl_in[0].in_var_PN_POSITION_1, patchIn.gl_in[0].in_var_PN_POSITION_2 }), spvUnsafeArray({ patchIn.gl_in[1].in_var_PN_POSITION_0, patchIn.gl_in[1].in_var_PN_POSITION_1, patchIn.gl_in[1].in_var_PN_POSITION_2 }), spvUnsafeArray({ patchIn.gl_in[2].in_var_PN_POSITION_0, patchIn.gl_in[2].in_var_PN_POSITION_1, patchIn.gl_in[2].in_var_PN_POSITION_2 }) }); - spvUnsafeArray _136 = spvUnsafeArray({ patchIn.gl_in[0].in_var_PN_WorldDisplacementMultiplier, patchIn.gl_in[1].in_var_PN_WorldDisplacementMultiplier, patchIn.gl_in[2].in_var_PN_WorldDisplacementMultiplier }); - float _157 = gl_TessCoord.x * gl_TessCoord.x; - float _158 = gl_TessCoord.y * gl_TessCoord.y; - float _159 = gl_TessCoord.z * gl_TessCoord.z; - float4 _165 = float4(gl_TessCoord.x); - float4 _169 = float4(gl_TessCoord.y); - float4 _174 = float4(gl_TessCoord.z); - float4 _177 = float4(_157 * 3.0); - float4 _181 = float4(_158 * 3.0); - float4 _188 = float4(_159 * 3.0); - float4 _202 = ((((((((((_135[0][0] * float4(_157)) * _165) + ((_135[1][0] * float4(_158)) * _169)) + ((_135[2][0] * float4(_159)) * _174)) + ((_135[0][1] * _177) * _169)) + ((_135[0][2] * _181) * _165)) + ((_135[1][1] * _181) * _174)) + ((_135[1][2] * _188) * _169)) + ((_135[2][1] * _188) * _165)) + ((_135[2][2] * _177) * _174)) + ((((patchIn.in_var_PN_POSITION9 * float4(6.0)) * _174) * _165) * _169); - float3 _226 = ((_117[0].xyz * float3(gl_TessCoord.x)) + (_117[1].xyz * float3(gl_TessCoord.y))).xyz + (_117[2].xyz * float3(gl_TessCoord.z)); - float4 _229 = ((_118[0] * _165) + (_118[1] * _169)) + (_118[2] * _174); - float4 _231 = ((_119[0] * _165) + (_119[1] * _169)) + (_119[2] * _174); - float4 _233 = ((_120[0][0] * _165) + (_120[1][0] * _169)) + (_120[2][0] * _174); - spvUnsafeArray _234 = spvUnsafeArray({ _233 }); - float3 _236 = _229.xyz; - float3 _264 = _202.xyz + (((float3((Material_Texture2D_3.sample(Material_Texture2D_3Sampler, (float2(View.View_GameTime * 0.20000000298023223876953125, View.View_GameTime * (-0.699999988079071044921875)) + (_233.zw * float2(1.0, 2.0))), level(-1.0)).x * 10.0) * (1.0 - _231.x)) * _236) * float3(0.5)) * float3(((_136[0] * gl_TessCoord.x) + (_136[1] * gl_TessCoord.y)) + (_136[2] * gl_TessCoord.z))); - float4 _270 = ShadowDepthPass.ShadowDepthPass_ProjectionMatrix * float4(_264.x, _264.y, _264.z, _202.w); - float4 _281; - if ((ShadowDepthPass.ShadowDepthPass_bClampToNearPlane > 0.0) && (_270.z < 0.0)) - { - float4 _279 = _270; - _279.z = 9.9999999747524270787835121154785e-07; - float4 _280 = _279; - _280.w = 1.0; - _281 = _280; - } - else - { - _281 = _270; - } - float _290 = abs(dot(float3(ShadowDepthPass.ShadowDepthPass_ViewMatrix[0].z, ShadowDepthPass.ShadowDepthPass_ViewMatrix[1].z, ShadowDepthPass.ShadowDepthPass_ViewMatrix[2].z), _236)); - out.out_var_TEXCOORD10_centroid = float4(_226.x, _226.y, _226.z, _113.w); - out.out_var_TEXCOORD11_centroid = _229; - out.out_var_COLOR0 = _231; - out_var_TEXCOORD0 = _234; - out.out_var_PRIMITIVE_ID = patchIn.gl_in[0u].in_var_PRIMITIVE_ID; - out.out_var_TEXCOORD6 = _281.z; - out.out_var_TEXCOORD8 = (ShadowDepthPass.ShadowDepthPass_ShadowParams.y * fast::clamp((abs(_290) > 0.0) ? (sqrt(fast::clamp(1.0 - (_290 * _290), 0.0, 1.0)) / _290) : ShadowDepthPass.ShadowDepthPass_ShadowParams.z, 0.0, ShadowDepthPass.ShadowDepthPass_ShadowParams.z)) + ShadowDepthPass.ShadowDepthPass_ShadowParams.x; - out.out_var_TEXCOORD7 = _264.xyz; - out.gl_Position = _281; - out.out_var_TEXCOORD0_0 = out_var_TEXCOORD0[0]; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/tese/ds-patch-input-fixes.asm.tese b/third_party/spirv-cross/reference/opt/shaders-ue4/asm/tese/ds-patch-input-fixes.asm.tese deleted file mode 100644 index 3c063c93b1..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/tese/ds-patch-input-fixes.asm.tese +++ /dev/null @@ -1,417 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct type_View -{ - float4x4 View_TranslatedWorldToClip; - float4x4 View_WorldToClip; - float4x4 View_ClipToWorld; - float4x4 View_TranslatedWorldToView; - float4x4 View_ViewToTranslatedWorld; - float4x4 View_TranslatedWorldToCameraView; - float4x4 View_CameraViewToTranslatedWorld; - float4x4 View_ViewToClip; - float4x4 View_ViewToClipNoAA; - float4x4 View_ClipToView; - float4x4 View_ClipToTranslatedWorld; - float4x4 View_SVPositionToTranslatedWorld; - float4x4 View_ScreenToWorld; - float4x4 View_ScreenToTranslatedWorld; - packed_float3 View_ViewForward; - float PrePadding_View_908; - packed_float3 View_ViewUp; - float PrePadding_View_924; - packed_float3 View_ViewRight; - float PrePadding_View_940; - packed_float3 View_HMDViewNoRollUp; - float PrePadding_View_956; - packed_float3 View_HMDViewNoRollRight; - float PrePadding_View_972; - float4 View_InvDeviceZToWorldZTransform; - float4 View_ScreenPositionScaleBias; - packed_float3 View_WorldCameraOrigin; - float PrePadding_View_1020; - packed_float3 View_TranslatedWorldCameraOrigin; - float PrePadding_View_1036; - packed_float3 View_WorldViewOrigin; - float PrePadding_View_1052; - packed_float3 View_PreViewTranslation; - float PrePadding_View_1068; - float4x4 View_PrevProjection; - float4x4 View_PrevViewProj; - float4x4 View_PrevViewRotationProj; - float4x4 View_PrevViewToClip; - float4x4 View_PrevClipToView; - float4x4 View_PrevTranslatedWorldToClip; - float4x4 View_PrevTranslatedWorldToView; - float4x4 View_PrevViewToTranslatedWorld; - float4x4 View_PrevTranslatedWorldToCameraView; - float4x4 View_PrevCameraViewToTranslatedWorld; - packed_float3 View_PrevWorldCameraOrigin; - float PrePadding_View_1724; - packed_float3 View_PrevWorldViewOrigin; - float PrePadding_View_1740; - packed_float3 View_PrevPreViewTranslation; - float PrePadding_View_1756; - float4x4 View_PrevInvViewProj; - float4x4 View_PrevScreenToTranslatedWorld; - float4x4 View_ClipToPrevClip; - float4 View_TemporalAAJitter; - float4 View_GlobalClippingPlane; - float2 View_FieldOfViewWideAngles; - float2 View_PrevFieldOfViewWideAngles; - float4 View_ViewRectMin; - float4 View_ViewSizeAndInvSize; - float4 View_BufferSizeAndInvSize; - float4 View_BufferBilinearUVMinMax; - int View_NumSceneColorMSAASamples; - float View_PreExposure; - float View_OneOverPreExposure; - float PrePadding_View_2076; - float4 View_DiffuseOverrideParameter; - float4 View_SpecularOverrideParameter; - float4 View_NormalOverrideParameter; - float2 View_RoughnessOverrideParameter; - float View_PrevFrameGameTime; - float View_PrevFrameRealTime; - float View_OutOfBoundsMask; - float PrePadding_View_2148; - float PrePadding_View_2152; - float PrePadding_View_2156; - packed_float3 View_WorldCameraMovementSinceLastFrame; - float View_CullingSign; - float View_NearPlane; - float View_AdaptiveTessellationFactor; - float View_GameTime; - float View_RealTime; - float View_DeltaTime; - float View_MaterialTextureMipBias; - float View_MaterialTextureDerivativeMultiply; - uint View_Random; - uint View_FrameNumber; - uint View_StateFrameIndexMod8; - uint View_StateFrameIndex; - float View_CameraCut; - float View_UnlitViewmodeMask; - float PrePadding_View_2228; - float PrePadding_View_2232; - float PrePadding_View_2236; - float4 View_DirectionalLightColor; - packed_float3 View_DirectionalLightDirection; - float PrePadding_View_2268; - float4 View_TranslucencyLightingVolumeMin[2]; - float4 View_TranslucencyLightingVolumeInvSize[2]; - float4 View_TemporalAAParams; - float4 View_CircleDOFParams; - float View_DepthOfFieldSensorWidth; - float View_DepthOfFieldFocalDistance; - float View_DepthOfFieldScale; - float View_DepthOfFieldFocalLength; - float View_DepthOfFieldFocalRegion; - float View_DepthOfFieldNearTransitionRegion; - float View_DepthOfFieldFarTransitionRegion; - float View_MotionBlurNormalizedToPixel; - float View_bSubsurfacePostprocessEnabled; - float View_GeneralPurposeTweak; - float View_DemosaicVposOffset; - float PrePadding_View_2412; - packed_float3 View_IndirectLightingColorScale; - float View_HDR32bppEncodingMode; - packed_float3 View_AtmosphericFogSunDirection; - float View_AtmosphericFogSunPower; - float View_AtmosphericFogPower; - float View_AtmosphericFogDensityScale; - float View_AtmosphericFogDensityOffset; - float View_AtmosphericFogGroundOffset; - float View_AtmosphericFogDistanceScale; - float View_AtmosphericFogAltitudeScale; - float View_AtmosphericFogHeightScaleRayleigh; - float View_AtmosphericFogStartDistance; - float View_AtmosphericFogDistanceOffset; - float View_AtmosphericFogSunDiscScale; - float View_AtmosphericFogSunDiscHalfApexAngleRadian; - float PrePadding_View_2492; - float4 View_AtmosphericFogSunDiscLuminance; - uint View_AtmosphericFogRenderMask; - uint View_AtmosphericFogInscatterAltitudeSampleNum; - uint PrePadding_View_2520; - uint PrePadding_View_2524; - float4 View_AtmosphericFogSunColor; - packed_float3 View_NormalCurvatureToRoughnessScaleBias; - float View_RenderingReflectionCaptureMask; - float4 View_AmbientCubemapTint; - float View_AmbientCubemapIntensity; - float View_SkyLightParameters; - float PrePadding_View_2584; - float PrePadding_View_2588; - float4 View_SkyLightColor; - float4 View_SkyIrradianceEnvironmentMap[7]; - float View_MobilePreviewMode; - float View_HMDEyePaddingOffset; - float View_ReflectionCubemapMaxMip; - float View_ShowDecalsMask; - uint View_DistanceFieldAOSpecularOcclusionMode; - float View_IndirectCapsuleSelfShadowingIntensity; - float PrePadding_View_2744; - float PrePadding_View_2748; - packed_float3 View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight; - int View_StereoPassIndex; - float4 View_GlobalVolumeCenterAndExtent[4]; - float4 View_GlobalVolumeWorldToUVAddAndMul[4]; - float View_GlobalVolumeDimension; - float View_GlobalVolumeTexelSize; - float View_MaxGlobalDistance; - float PrePadding_View_2908; - int2 View_CursorPosition; - float View_bCheckerboardSubsurfaceProfileRendering; - float PrePadding_View_2924; - packed_float3 View_VolumetricFogInvGridSize; - float PrePadding_View_2940; - packed_float3 View_VolumetricFogGridZParams; - float PrePadding_View_2956; - float2 View_VolumetricFogSVPosToVolumeUV; - float View_VolumetricFogMaxDistance; - float PrePadding_View_2972; - packed_float3 View_VolumetricLightmapWorldToUVScale; - float PrePadding_View_2988; - packed_float3 View_VolumetricLightmapWorldToUVAdd; - float PrePadding_View_3004; - packed_float3 View_VolumetricLightmapIndirectionTextureSize; - float View_VolumetricLightmapBrickSize; - packed_float3 View_VolumetricLightmapBrickTexelSize; - float View_StereoIPD; - float View_IndirectLightingCacheShowFlag; - float View_EyeToPixelSpreadAngle; - float PrePadding_View_3048; - float PrePadding_View_3052; - float4x4 View_WorldToVirtualTexture; - float4 View_VirtualTextureParams; - float4 View_XRPassthroughCameraUVs[2]; -}; - -struct type_Material -{ - float4 Material_VectorExpressions[5]; - float4 Material_ScalarExpressions[2]; -}; - -constant float4 _118 = {}; - -struct main0_out -{ - float4 out_var_TEXCOORD6 [[user(locn0)]]; - float4 out_var_TEXCOORD7 [[user(locn1)]]; - float4 out_var_TEXCOORD10_centroid [[user(locn2)]]; - float4 out_var_TEXCOORD11_centroid [[user(locn3)]]; - float4 gl_Position [[position]]; - float gl_ClipDistance [[clip_distance]] [1]; - float gl_ClipDistance_0 [[user(clip0)]]; -}; - -struct main0_in -{ - float4 in_var_PN_DominantEdge2 [[attribute(3)]]; - float4 in_var_PN_DominantEdge3 [[attribute(4)]]; - float3 in_var_PN_DominantEdge4 [[attribute(5)]]; - float3 in_var_PN_DominantEdge5 [[attribute(6)]]; - float4 in_var_PN_DominantVertex1 [[attribute(8)]]; - float3 in_var_PN_DominantVertex2 [[attribute(9)]]; - float4 in_var_PN_POSITION_0 [[attribute(10)]]; - float4 in_var_PN_POSITION_1 [[attribute(11)]]; - float4 in_var_PN_POSITION_2 [[attribute(12)]]; - float in_var_PN_WorldDisplacementMultiplier [[attribute(15)]]; - float4 in_var_TEXCOORD10_centroid [[attribute(16)]]; - float4 in_var_TEXCOORD11_centroid [[attribute(17)]]; - float4 in_var_TEXCOORD6 [[attribute(18)]]; - float4 in_var_TEXCOORD8 [[attribute(19)]]; -}; - -struct main0_patchIn -{ - float4 in_var_PN_POSITION9 [[attribute(13)]]; - patch_control_point gl_in; -}; - -[[ patch(triangle, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]], constant type_View& View [[buffer(0)]], constant type_Material& Material [[buffer(1)]], texture3d View_GlobalDistanceFieldTexture0 [[texture(0)]], texture3d View_GlobalDistanceFieldTexture1 [[texture(1)]], texture3d View_GlobalDistanceFieldTexture2 [[texture(2)]], texture3d View_GlobalDistanceFieldTexture3 [[texture(3)]], sampler View_GlobalDistanceFieldSampler0 [[sampler(0)]], float3 gl_TessCoord [[position_in_patch]]) -{ - main0_out out = {}; - spvUnsafeArray _120 = spvUnsafeArray({ patchIn.gl_in[0].in_var_TEXCOORD6, patchIn.gl_in[1].in_var_TEXCOORD6, patchIn.gl_in[2].in_var_TEXCOORD6 }); - spvUnsafeArray _121 = spvUnsafeArray({ patchIn.gl_in[0].in_var_TEXCOORD8, patchIn.gl_in[1].in_var_TEXCOORD8, patchIn.gl_in[2].in_var_TEXCOORD8 }); - spvUnsafeArray _128 = spvUnsafeArray({ patchIn.gl_in[0].in_var_TEXCOORD10_centroid, patchIn.gl_in[1].in_var_TEXCOORD10_centroid, patchIn.gl_in[2].in_var_TEXCOORD10_centroid }); - spvUnsafeArray _129 = spvUnsafeArray({ patchIn.gl_in[0].in_var_TEXCOORD11_centroid, patchIn.gl_in[1].in_var_TEXCOORD11_centroid, patchIn.gl_in[2].in_var_TEXCOORD11_centroid }); - spvUnsafeArray, 3> _136 = spvUnsafeArray, 3>({ spvUnsafeArray({ patchIn.gl_in[0].in_var_PN_POSITION_0, patchIn.gl_in[0].in_var_PN_POSITION_1, patchIn.gl_in[0].in_var_PN_POSITION_2 }), spvUnsafeArray({ patchIn.gl_in[1].in_var_PN_POSITION_0, patchIn.gl_in[1].in_var_PN_POSITION_1, patchIn.gl_in[1].in_var_PN_POSITION_2 }), spvUnsafeArray({ patchIn.gl_in[2].in_var_PN_POSITION_0, patchIn.gl_in[2].in_var_PN_POSITION_1, patchIn.gl_in[2].in_var_PN_POSITION_2 }) }); - spvUnsafeArray _137 = spvUnsafeArray({ patchIn.gl_in[0].in_var_PN_WorldDisplacementMultiplier, patchIn.gl_in[1].in_var_PN_WorldDisplacementMultiplier, patchIn.gl_in[2].in_var_PN_WorldDisplacementMultiplier }); - spvUnsafeArray _138 = spvUnsafeArray({ patchIn.gl_in[0].in_var_PN_DominantVertex1, patchIn.gl_in[1].in_var_PN_DominantVertex1, patchIn.gl_in[2].in_var_PN_DominantVertex1 }); - spvUnsafeArray _139 = spvUnsafeArray({ patchIn.gl_in[0].in_var_PN_DominantVertex2, patchIn.gl_in[1].in_var_PN_DominantVertex2, patchIn.gl_in[2].in_var_PN_DominantVertex2 }); - spvUnsafeArray _146 = spvUnsafeArray({ patchIn.gl_in[0].in_var_PN_DominantEdge2, patchIn.gl_in[1].in_var_PN_DominantEdge2, patchIn.gl_in[2].in_var_PN_DominantEdge2 }); - spvUnsafeArray _147 = spvUnsafeArray({ patchIn.gl_in[0].in_var_PN_DominantEdge3, patchIn.gl_in[1].in_var_PN_DominantEdge3, patchIn.gl_in[2].in_var_PN_DominantEdge3 }); - spvUnsafeArray _148 = spvUnsafeArray({ patchIn.gl_in[0].in_var_PN_DominantEdge4, patchIn.gl_in[1].in_var_PN_DominantEdge4, patchIn.gl_in[2].in_var_PN_DominantEdge4 }); - spvUnsafeArray _149 = spvUnsafeArray({ patchIn.gl_in[0].in_var_PN_DominantEdge5, patchIn.gl_in[1].in_var_PN_DominantEdge5, patchIn.gl_in[2].in_var_PN_DominantEdge5 }); - float _190 = gl_TessCoord.x * gl_TessCoord.x; - float _191 = gl_TessCoord.y * gl_TessCoord.y; - float _192 = gl_TessCoord.z * gl_TessCoord.z; - float4 _198 = float4(gl_TessCoord.x); - float4 _202 = float4(gl_TessCoord.y); - float4 _207 = float4(gl_TessCoord.z); - float4 _210 = float4(_190 * 3.0); - float4 _214 = float4(_191 * 3.0); - float4 _221 = float4(_192 * 3.0); - float4 _235 = ((((((((((_136[0][0] * float4(_190)) * _198) + ((_136[1][0] * float4(_191)) * _202)) + ((_136[2][0] * float4(_192)) * _207)) + ((_136[0][1] * _210) * _202)) + ((_136[0][2] * _214) * _198)) + ((_136[1][1] * _214) * _207)) + ((_136[1][2] * _221) * _202)) + ((_136[2][1] * _221) * _198)) + ((_136[2][2] * _210) * _207)) + ((((patchIn.in_var_PN_POSITION9 * float4(6.0)) * _207) * _198) * _202); - float3 _237 = float3(gl_TessCoord.x); - float3 _240 = float3(gl_TessCoord.y); - float3 _254 = float3(gl_TessCoord.z); - float3 _256 = ((_128[0].xyz * _237) + (_128[1].xyz * _240)).xyz + (_128[2].xyz * _254); - float4 _259 = ((_129[0] * _198) + (_129[1] * _202)) + (_129[2] * _207); - float3 _264 = _235.xyz; - float3 _265 = _256.xyz; - float3 _266 = _259.xyz; - float3 _272 = _264 + float3(View.View_WorldCameraOrigin); - float _279 = float(int(gl_TessCoord.x == 0.0)); - float _282 = float(int(gl_TessCoord.y == 0.0)); - float _285 = float(int(gl_TessCoord.z == 0.0)); - float _286 = _279 + _282; - float _287 = _286 + _285; - float4 _387; - float3 _388; - if (float(int(_287 == 2.0)) == 1.0) - { - float _363 = float(int((_282 + _285) == 2.0)); - float _367 = float(int((_285 + _279) == 2.0)); - float _370 = float(int(_286 == 2.0)); - _387 = ((float4(_363) * _138[0]) + (float4(_367) * _138[1])) + (float4(_370) * _138[2]); - _388 = ((float3(_363) * _139[0]) + (float3(_367) * _139[1])) + (float3(_370) * _139[2]); - } - else - { - float4 _358; - float3 _359; - if (float(int(_287 == 1.0)) != 0.0) - { - float4 _304 = float4(_279); - float4 _306 = float4(_282); - float4 _309 = float4(_285); - float4 _311 = ((_304 * _146[0]) + (_306 * _146[1])) + (_309 * _146[2]); - float4 _316 = ((_304 * _147[0]) + (_306 * _147[1])) + (_309 * _147[2]); - float3 _331 = float3(_279); - float3 _333 = float3(_282); - float3 _336 = float3(_285); - float3 _338 = ((_331 * _148[0]) + (_333 * _148[1])) + (_336 * _148[2]); - float3 _343 = ((_331 * _149[0]) + (_333 * _149[1])) + (_336 * _149[2]); - _358 = ((_304 * ((_202 * _311) + (_207 * _316))) + (_306 * ((_207 * _311) + (_198 * _316)))) + (_309 * ((_198 * _311) + (_202 * _316))); - _359 = ((_331 * ((_240 * _338) + (_254 * _343))) + (_333 * ((_254 * _338) + (_237 * _343)))) + (_336 * ((_237 * _338) + (_240 * _343))); - } - else - { - _358 = float4(_259.xyz, 0.0); - _359 = _265; - } - _387 = _358; - _388 = _359; - } - float3x3 _398; - if (float(int(_287 == 0.0)) == 0.0) - { - _398 = float3x3(_388, cross(_387.xyz, _388) * float3(_387.w), _387.xyz); - } - else - { - _398 = float3x3(_265, cross(_266, _265) * float3(_259.w), _266); - } - float3 _411 = fast::min(fast::max((_272 - View.View_GlobalVolumeCenterAndExtent[0].xyz) + View.View_GlobalVolumeCenterAndExtent[0].www, float3(0.0)), fast::max((View.View_GlobalVolumeCenterAndExtent[0].xyz + View.View_GlobalVolumeCenterAndExtent[0].www) - _272, float3(0.0))); - float _547; - if (fast::min(_411.x, fast::min(_411.y, _411.z)) > (View.View_GlobalVolumeCenterAndExtent[0].w * View.View_GlobalVolumeTexelSize)) - { - _547 = View_GlobalDistanceFieldTexture0.sample(View_GlobalDistanceFieldSampler0, ((_272 * View.View_GlobalVolumeWorldToUVAddAndMul[0u].www) + View.View_GlobalVolumeWorldToUVAddAndMul[0u].xyz), level(0.0)).x; - } - else - { - float3 _436 = fast::min(fast::max((_272 - View.View_GlobalVolumeCenterAndExtent[1].xyz) + View.View_GlobalVolumeCenterAndExtent[1].www, float3(0.0)), fast::max((View.View_GlobalVolumeCenterAndExtent[1].xyz + View.View_GlobalVolumeCenterAndExtent[1].www) - _272, float3(0.0))); - float _535; - if (fast::min(_436.x, fast::min(_436.y, _436.z)) > (View.View_GlobalVolumeCenterAndExtent[1].w * View.View_GlobalVolumeTexelSize)) - { - _535 = View_GlobalDistanceFieldTexture1.sample(View_GlobalDistanceFieldSampler0, ((_272 * View.View_GlobalVolumeWorldToUVAddAndMul[1u].www) + View.View_GlobalVolumeWorldToUVAddAndMul[1u].xyz), level(0.0)).x; - } - else - { - float3 _459 = fast::min(fast::max((_272 - View.View_GlobalVolumeCenterAndExtent[2].xyz) + View.View_GlobalVolumeCenterAndExtent[2].www, float3(0.0)), fast::max((View.View_GlobalVolumeCenterAndExtent[2].xyz + View.View_GlobalVolumeCenterAndExtent[2].www) - _272, float3(0.0))); - float3 _475 = fast::min(fast::max((_272 - View.View_GlobalVolumeCenterAndExtent[3].xyz) + View.View_GlobalVolumeCenterAndExtent[3].www, float3(0.0)), fast::max((View.View_GlobalVolumeCenterAndExtent[3].xyz + View.View_GlobalVolumeCenterAndExtent[3].www) - _272, float3(0.0))); - float _480 = fast::min(_475.x, fast::min(_475.y, _475.z)); - float _523; - if (fast::min(_459.x, fast::min(_459.y, _459.z)) > (View.View_GlobalVolumeCenterAndExtent[2].w * View.View_GlobalVolumeTexelSize)) - { - _523 = View_GlobalDistanceFieldTexture2.sample(View_GlobalDistanceFieldSampler0, ((_272 * View.View_GlobalVolumeWorldToUVAddAndMul[2u].www) + View.View_GlobalVolumeWorldToUVAddAndMul[2u].xyz), level(0.0)).x; - } - else - { - float _511; - if (_480 > (View.View_GlobalVolumeCenterAndExtent[3].w * View.View_GlobalVolumeTexelSize)) - { - _511 = mix(View.View_MaxGlobalDistance, View_GlobalDistanceFieldTexture3.sample(View_GlobalDistanceFieldSampler0, ((_272 * View.View_GlobalVolumeWorldToUVAddAndMul[3u].www) + View.View_GlobalVolumeWorldToUVAddAndMul[3u].xyz), level(0.0)).x, fast::clamp((_480 * 10.0) * View.View_GlobalVolumeWorldToUVAddAndMul[3].w, 0.0, 1.0)); - } - else - { - _511 = View.View_MaxGlobalDistance; - } - _523 = _511; - } - _535 = _523; - } - _547 = _535; - } - float3 _565 = _264 + ((_398[2] * float3(fast::min(_547 + Material.Material_ScalarExpressions[0].z, 0.0) * Material.Material_ScalarExpressions[0].w)) * float3(((_137[0] * gl_TessCoord.x) + (_137[1] * gl_TessCoord.y)) + (_137[2] * gl_TessCoord.z))); - float4 _574 = View.View_TranslatedWorldToClip * float4(_565.x, _565.y, _565.z, _235.w); - float4 _579 = _574; - _579.z = _574.z + (0.001000000047497451305389404296875 * _574.w); - out.gl_Position = _579; - out.out_var_TEXCOORD6 = ((_120[0] * _198) + (_120[1] * _202)) + (_120[2] * _207); - out.out_var_TEXCOORD7 = ((_121[0] * _198) + (_121[1] * _202)) + (_121[2] * _207); - out.out_var_TEXCOORD10_centroid = float4(_256.x, _256.y, _256.z, _118.w); - out.out_var_TEXCOORD11_centroid = _259; - out.gl_ClipDistance[0u] = dot(View.View_GlobalClippingPlane, float4(_565.xyz - float3(View.View_PreViewTranslation), 1.0)); - out.gl_ClipDistance_0 = out.gl_ClipDistance[0]; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/tese/ds-patch-inputs.asm.tese b/third_party/spirv-cross/reference/opt/shaders-ue4/asm/tese/ds-patch-inputs.asm.tese deleted file mode 100644 index 4a872e5f7d..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/tese/ds-patch-inputs.asm.tese +++ /dev/null @@ -1,216 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct type_ShadowDepthPass -{ - float PrePadding_ShadowDepthPass_LPV_0; - float PrePadding_ShadowDepthPass_LPV_4; - float PrePadding_ShadowDepthPass_LPV_8; - float PrePadding_ShadowDepthPass_LPV_12; - float PrePadding_ShadowDepthPass_LPV_16; - float PrePadding_ShadowDepthPass_LPV_20; - float PrePadding_ShadowDepthPass_LPV_24; - float PrePadding_ShadowDepthPass_LPV_28; - float PrePadding_ShadowDepthPass_LPV_32; - float PrePadding_ShadowDepthPass_LPV_36; - float PrePadding_ShadowDepthPass_LPV_40; - float PrePadding_ShadowDepthPass_LPV_44; - float PrePadding_ShadowDepthPass_LPV_48; - float PrePadding_ShadowDepthPass_LPV_52; - float PrePadding_ShadowDepthPass_LPV_56; - float PrePadding_ShadowDepthPass_LPV_60; - float PrePadding_ShadowDepthPass_LPV_64; - float PrePadding_ShadowDepthPass_LPV_68; - float PrePadding_ShadowDepthPass_LPV_72; - float PrePadding_ShadowDepthPass_LPV_76; - float PrePadding_ShadowDepthPass_LPV_80; - float PrePadding_ShadowDepthPass_LPV_84; - float PrePadding_ShadowDepthPass_LPV_88; - float PrePadding_ShadowDepthPass_LPV_92; - float PrePadding_ShadowDepthPass_LPV_96; - float PrePadding_ShadowDepthPass_LPV_100; - float PrePadding_ShadowDepthPass_LPV_104; - float PrePadding_ShadowDepthPass_LPV_108; - float PrePadding_ShadowDepthPass_LPV_112; - float PrePadding_ShadowDepthPass_LPV_116; - float PrePadding_ShadowDepthPass_LPV_120; - float PrePadding_ShadowDepthPass_LPV_124; - float PrePadding_ShadowDepthPass_LPV_128; - float PrePadding_ShadowDepthPass_LPV_132; - float PrePadding_ShadowDepthPass_LPV_136; - float PrePadding_ShadowDepthPass_LPV_140; - float PrePadding_ShadowDepthPass_LPV_144; - float PrePadding_ShadowDepthPass_LPV_148; - float PrePadding_ShadowDepthPass_LPV_152; - float PrePadding_ShadowDepthPass_LPV_156; - float PrePadding_ShadowDepthPass_LPV_160; - float PrePadding_ShadowDepthPass_LPV_164; - float PrePadding_ShadowDepthPass_LPV_168; - float PrePadding_ShadowDepthPass_LPV_172; - float PrePadding_ShadowDepthPass_LPV_176; - float PrePadding_ShadowDepthPass_LPV_180; - float PrePadding_ShadowDepthPass_LPV_184; - float PrePadding_ShadowDepthPass_LPV_188; - float PrePadding_ShadowDepthPass_LPV_192; - float PrePadding_ShadowDepthPass_LPV_196; - float PrePadding_ShadowDepthPass_LPV_200; - float PrePadding_ShadowDepthPass_LPV_204; - float PrePadding_ShadowDepthPass_LPV_208; - float PrePadding_ShadowDepthPass_LPV_212; - float PrePadding_ShadowDepthPass_LPV_216; - float PrePadding_ShadowDepthPass_LPV_220; - float PrePadding_ShadowDepthPass_LPV_224; - float PrePadding_ShadowDepthPass_LPV_228; - float PrePadding_ShadowDepthPass_LPV_232; - float PrePadding_ShadowDepthPass_LPV_236; - float PrePadding_ShadowDepthPass_LPV_240; - float PrePadding_ShadowDepthPass_LPV_244; - float PrePadding_ShadowDepthPass_LPV_248; - float PrePadding_ShadowDepthPass_LPV_252; - float PrePadding_ShadowDepthPass_LPV_256; - float PrePadding_ShadowDepthPass_LPV_260; - float PrePadding_ShadowDepthPass_LPV_264; - float PrePadding_ShadowDepthPass_LPV_268; - float4x4 ShadowDepthPass_LPV_mRsmToWorld; - float4 ShadowDepthPass_LPV_mLightColour; - float4 ShadowDepthPass_LPV_GeometryVolumeCaptureLightDirection; - float4 ShadowDepthPass_LPV_mEyePos; - packed_int3 ShadowDepthPass_LPV_mOldGridOffset; - int PrePadding_ShadowDepthPass_LPV_396; - packed_int3 ShadowDepthPass_LPV_mLpvGridOffset; - float ShadowDepthPass_LPV_ClearMultiplier; - float ShadowDepthPass_LPV_LpvScale; - float ShadowDepthPass_LPV_OneOverLpvScale; - float ShadowDepthPass_LPV_DirectionalOcclusionIntensity; - float ShadowDepthPass_LPV_DirectionalOcclusionRadius; - float ShadowDepthPass_LPV_RsmAreaIntensityMultiplier; - float ShadowDepthPass_LPV_RsmPixelToTexcoordMultiplier; - float ShadowDepthPass_LPV_SecondaryOcclusionStrength; - float ShadowDepthPass_LPV_SecondaryBounceStrength; - float ShadowDepthPass_LPV_VplInjectionBias; - float ShadowDepthPass_LPV_GeometryVolumeInjectionBias; - float ShadowDepthPass_LPV_EmissiveInjectionMultiplier; - int ShadowDepthPass_LPV_PropagationIndex; - float4x4 ShadowDepthPass_ProjectionMatrix; - float4x4 ShadowDepthPass_ViewMatrix; - float4 ShadowDepthPass_ShadowParams; - float ShadowDepthPass_bClampToNearPlane; - float PrePadding_ShadowDepthPass_612; - float PrePadding_ShadowDepthPass_616; - float PrePadding_ShadowDepthPass_620; - float4x4 ShadowDepthPass_ShadowViewProjectionMatrices[6]; - float4x4 ShadowDepthPass_ShadowViewMatrices[6]; -}; - -constant float4 _90 = {}; - -struct main0_out -{ - float4 out_var_TEXCOORD10_centroid [[user(locn0)]]; - float4 out_var_TEXCOORD11_centroid [[user(locn1)]]; - float out_var_TEXCOORD6 [[user(locn2)]]; - float3 out_var_TEXCOORD7 [[user(locn3)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 in_var_PN_POSITION_0 [[attribute(10)]]; - float4 in_var_PN_POSITION_1 [[attribute(11)]]; - float4 in_var_PN_POSITION_2 [[attribute(12)]]; - float4 in_var_TEXCOORD10_centroid [[attribute(16)]]; - float4 in_var_TEXCOORD11_centroid [[attribute(17)]]; -}; - -struct main0_patchIn -{ - float4 in_var_PN_POSITION9 [[attribute(13)]]; - patch_control_point gl_in; -}; - -[[ patch(triangle, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]], constant type_ShadowDepthPass& ShadowDepthPass [[buffer(0)]], float3 gl_TessCoord [[position_in_patch]]) -{ - main0_out out = {}; - spvUnsafeArray _93 = spvUnsafeArray({ patchIn.gl_in[0].in_var_TEXCOORD10_centroid, patchIn.gl_in[1].in_var_TEXCOORD10_centroid, patchIn.gl_in[2].in_var_TEXCOORD10_centroid }); - spvUnsafeArray _94 = spvUnsafeArray({ patchIn.gl_in[0].in_var_TEXCOORD11_centroid, patchIn.gl_in[1].in_var_TEXCOORD11_centroid, patchIn.gl_in[2].in_var_TEXCOORD11_centroid }); - spvUnsafeArray, 3> _101 = spvUnsafeArray, 3>({ spvUnsafeArray({ patchIn.gl_in[0].in_var_PN_POSITION_0, patchIn.gl_in[0].in_var_PN_POSITION_1, patchIn.gl_in[0].in_var_PN_POSITION_2 }), spvUnsafeArray({ patchIn.gl_in[1].in_var_PN_POSITION_0, patchIn.gl_in[1].in_var_PN_POSITION_1, patchIn.gl_in[1].in_var_PN_POSITION_2 }), spvUnsafeArray({ patchIn.gl_in[2].in_var_PN_POSITION_0, patchIn.gl_in[2].in_var_PN_POSITION_1, patchIn.gl_in[2].in_var_PN_POSITION_2 }) }); - float _119 = gl_TessCoord.x * gl_TessCoord.x; - float _120 = gl_TessCoord.y * gl_TessCoord.y; - float _121 = gl_TessCoord.z * gl_TessCoord.z; - float4 _127 = float4(gl_TessCoord.x); - float4 _131 = float4(gl_TessCoord.y); - float4 _136 = float4(gl_TessCoord.z); - float4 _139 = float4(_119 * 3.0); - float4 _143 = float4(_120 * 3.0); - float4 _150 = float4(_121 * 3.0); - float4 _164 = ((((((((((_101[0][0] * float4(_119)) * _127) + ((_101[1][0] * float4(_120)) * _131)) + ((_101[2][0] * float4(_121)) * _136)) + ((_101[0][1] * _139) * _131)) + ((_101[0][2] * _143) * _127)) + ((_101[1][1] * _143) * _136)) + ((_101[1][2] * _150) * _131)) + ((_101[2][1] * _150) * _127)) + ((_101[2][2] * _139) * _136)) + ((((patchIn.in_var_PN_POSITION9 * float4(6.0)) * _136) * _127) * _131); - float3 _179 = ((_93[0].xyz * float3(gl_TessCoord.x)) + (_93[1].xyz * float3(gl_TessCoord.y))).xyz + (_93[2].xyz * float3(gl_TessCoord.z)); - float4 _182 = ((_94[0] * _127) + (_94[1] * _131)) + (_94[2] * _136); - float4 _189 = ShadowDepthPass.ShadowDepthPass_ProjectionMatrix * float4(_164.x, _164.y, _164.z, _164.w); - float4 _200; - if ((ShadowDepthPass.ShadowDepthPass_bClampToNearPlane > 0.0) && (_189.z < 0.0)) - { - float4 _198 = _189; - _198.z = 9.9999999747524270787835121154785e-07; - float4 _199 = _198; - _199.w = 1.0; - _200 = _199; - } - else - { - _200 = _189; - } - float _209 = abs(dot(float3(ShadowDepthPass.ShadowDepthPass_ViewMatrix[0].z, ShadowDepthPass.ShadowDepthPass_ViewMatrix[1].z, ShadowDepthPass.ShadowDepthPass_ViewMatrix[2].z), _182.xyz)); - float4 _234 = _200; - _234.z = ((_200.z * ShadowDepthPass.ShadowDepthPass_ShadowParams.w) + ((ShadowDepthPass.ShadowDepthPass_ShadowParams.y * fast::clamp((abs(_209) > 0.0) ? (sqrt(fast::clamp(1.0 - (_209 * _209), 0.0, 1.0)) / _209) : ShadowDepthPass.ShadowDepthPass_ShadowParams.z, 0.0, ShadowDepthPass.ShadowDepthPass_ShadowParams.z)) + ShadowDepthPass.ShadowDepthPass_ShadowParams.x)) * _200.w; - out.out_var_TEXCOORD10_centroid = float4(_179.x, _179.y, _179.z, _90.w); - out.out_var_TEXCOORD11_centroid = _182; - out.out_var_TEXCOORD6 = 0.0; - out.out_var_TEXCOORD7 = _164.xyz; - out.gl_Position = _234; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/tese/ds-texcoord-array.asm.tese b/third_party/spirv-cross/reference/opt/shaders-ue4/asm/tese/ds-texcoord-array.asm.tese deleted file mode 100644 index 346d7e3fc9..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/tese/ds-texcoord-array.asm.tese +++ /dev/null @@ -1,318 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct type_View -{ - float4x4 View_TranslatedWorldToClip; - float4x4 View_WorldToClip; - float4x4 View_ClipToWorld; - float4x4 View_TranslatedWorldToView; - float4x4 View_ViewToTranslatedWorld; - float4x4 View_TranslatedWorldToCameraView; - float4x4 View_CameraViewToTranslatedWorld; - float4x4 View_ViewToClip; - float4x4 View_ViewToClipNoAA; - float4x4 View_ClipToView; - float4x4 View_ClipToTranslatedWorld; - float4x4 View_SVPositionToTranslatedWorld; - float4x4 View_ScreenToWorld; - float4x4 View_ScreenToTranslatedWorld; - packed_float3 View_ViewForward; - float PrePadding_View_908; - packed_float3 View_ViewUp; - float PrePadding_View_924; - packed_float3 View_ViewRight; - float PrePadding_View_940; - packed_float3 View_HMDViewNoRollUp; - float PrePadding_View_956; - packed_float3 View_HMDViewNoRollRight; - float PrePadding_View_972; - float4 View_InvDeviceZToWorldZTransform; - float4 View_ScreenPositionScaleBias; - packed_float3 View_WorldCameraOrigin; - float PrePadding_View_1020; - packed_float3 View_TranslatedWorldCameraOrigin; - float PrePadding_View_1036; - packed_float3 View_WorldViewOrigin; - float PrePadding_View_1052; - packed_float3 View_PreViewTranslation; - float PrePadding_View_1068; - float4x4 View_PrevProjection; - float4x4 View_PrevViewProj; - float4x4 View_PrevViewRotationProj; - float4x4 View_PrevViewToClip; - float4x4 View_PrevClipToView; - float4x4 View_PrevTranslatedWorldToClip; - float4x4 View_PrevTranslatedWorldToView; - float4x4 View_PrevViewToTranslatedWorld; - float4x4 View_PrevTranslatedWorldToCameraView; - float4x4 View_PrevCameraViewToTranslatedWorld; - packed_float3 View_PrevWorldCameraOrigin; - float PrePadding_View_1724; - packed_float3 View_PrevWorldViewOrigin; - float PrePadding_View_1740; - packed_float3 View_PrevPreViewTranslation; - float PrePadding_View_1756; - float4x4 View_PrevInvViewProj; - float4x4 View_PrevScreenToTranslatedWorld; - float4x4 View_ClipToPrevClip; - float4 View_TemporalAAJitter; - float4 View_GlobalClippingPlane; - float2 View_FieldOfViewWideAngles; - float2 View_PrevFieldOfViewWideAngles; - float4 View_ViewRectMin; - float4 View_ViewSizeAndInvSize; - float4 View_BufferSizeAndInvSize; - float4 View_BufferBilinearUVMinMax; - int View_NumSceneColorMSAASamples; - float View_PreExposure; - float View_OneOverPreExposure; - float PrePadding_View_2076; - float4 View_DiffuseOverrideParameter; - float4 View_SpecularOverrideParameter; - float4 View_NormalOverrideParameter; - float2 View_RoughnessOverrideParameter; - float View_PrevFrameGameTime; - float View_PrevFrameRealTime; - float View_OutOfBoundsMask; - float PrePadding_View_2148; - float PrePadding_View_2152; - float PrePadding_View_2156; - packed_float3 View_WorldCameraMovementSinceLastFrame; - float View_CullingSign; - float View_NearPlane; - float View_AdaptiveTessellationFactor; - float View_GameTime; - float View_RealTime; - float View_DeltaTime; - float View_MaterialTextureMipBias; - float View_MaterialTextureDerivativeMultiply; - uint View_Random; - uint View_FrameNumber; - uint View_StateFrameIndexMod8; - uint View_StateFrameIndex; - float View_CameraCut; - float View_UnlitViewmodeMask; - float PrePadding_View_2228; - float PrePadding_View_2232; - float PrePadding_View_2236; - float4 View_DirectionalLightColor; - packed_float3 View_DirectionalLightDirection; - float PrePadding_View_2268; - float4 View_TranslucencyLightingVolumeMin[2]; - float4 View_TranslucencyLightingVolumeInvSize[2]; - float4 View_TemporalAAParams; - float4 View_CircleDOFParams; - float View_DepthOfFieldSensorWidth; - float View_DepthOfFieldFocalDistance; - float View_DepthOfFieldScale; - float View_DepthOfFieldFocalLength; - float View_DepthOfFieldFocalRegion; - float View_DepthOfFieldNearTransitionRegion; - float View_DepthOfFieldFarTransitionRegion; - float View_MotionBlurNormalizedToPixel; - float View_bSubsurfacePostprocessEnabled; - float View_GeneralPurposeTweak; - float View_DemosaicVposOffset; - float PrePadding_View_2412; - packed_float3 View_IndirectLightingColorScale; - float View_HDR32bppEncodingMode; - packed_float3 View_AtmosphericFogSunDirection; - float View_AtmosphericFogSunPower; - float View_AtmosphericFogPower; - float View_AtmosphericFogDensityScale; - float View_AtmosphericFogDensityOffset; - float View_AtmosphericFogGroundOffset; - float View_AtmosphericFogDistanceScale; - float View_AtmosphericFogAltitudeScale; - float View_AtmosphericFogHeightScaleRayleigh; - float View_AtmosphericFogStartDistance; - float View_AtmosphericFogDistanceOffset; - float View_AtmosphericFogSunDiscScale; - float View_AtmosphericFogSunDiscHalfApexAngleRadian; - float PrePadding_View_2492; - float4 View_AtmosphericFogSunDiscLuminance; - uint View_AtmosphericFogRenderMask; - uint View_AtmosphericFogInscatterAltitudeSampleNum; - uint PrePadding_View_2520; - uint PrePadding_View_2524; - float4 View_AtmosphericFogSunColor; - packed_float3 View_NormalCurvatureToRoughnessScaleBias; - float View_RenderingReflectionCaptureMask; - float4 View_AmbientCubemapTint; - float View_AmbientCubemapIntensity; - float View_SkyLightParameters; - float PrePadding_View_2584; - float PrePadding_View_2588; - float4 View_SkyLightColor; - float4 View_SkyIrradianceEnvironmentMap[7]; - float View_MobilePreviewMode; - float View_HMDEyePaddingOffset; - float View_ReflectionCubemapMaxMip; - float View_ShowDecalsMask; - uint View_DistanceFieldAOSpecularOcclusionMode; - float View_IndirectCapsuleSelfShadowingIntensity; - float PrePadding_View_2744; - float PrePadding_View_2748; - packed_float3 View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight; - int View_StereoPassIndex; - float4 View_GlobalVolumeCenterAndExtent[4]; - float4 View_GlobalVolumeWorldToUVAddAndMul[4]; - float View_GlobalVolumeDimension; - float View_GlobalVolumeTexelSize; - float View_MaxGlobalDistance; - float PrePadding_View_2908; - int2 View_CursorPosition; - float View_bCheckerboardSubsurfaceProfileRendering; - float PrePadding_View_2924; - packed_float3 View_VolumetricFogInvGridSize; - float PrePadding_View_2940; - packed_float3 View_VolumetricFogGridZParams; - float PrePadding_View_2956; - float2 View_VolumetricFogSVPosToVolumeUV; - float View_VolumetricFogMaxDistance; - float PrePadding_View_2972; - packed_float3 View_VolumetricLightmapWorldToUVScale; - float PrePadding_View_2988; - packed_float3 View_VolumetricLightmapWorldToUVAdd; - float PrePadding_View_3004; - packed_float3 View_VolumetricLightmapIndirectionTextureSize; - float View_VolumetricLightmapBrickSize; - packed_float3 View_VolumetricLightmapBrickTexelSize; - float View_StereoIPD; - float View_IndirectLightingCacheShowFlag; - float View_EyeToPixelSpreadAngle; - float PrePadding_View_3048; - float PrePadding_View_3052; - float4x4 View_WorldToVirtualTexture; - float4 View_VirtualTextureParams; - float4 View_XRPassthroughCameraUVs[2]; -}; - -constant float4 _68 = {}; - -struct main0_out -{ - float4 out_var_TEXCOORD10_centroid [[user(locn0)]]; - float4 out_var_TEXCOORD11_centroid [[user(locn1)]]; - float4 out_var_TEXCOORD0_0 [[user(locn2)]]; - float4 out_var_COLOR1 [[user(locn3)]]; - float4 out_var_COLOR2 [[user(locn4)]]; - float4 out_var_TEXCOORD6 [[user(locn5)]]; - float3 out_var_TEXCOORD7 [[user(locn6)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 in_var_COLOR1 [[attribute(0)]]; - float4 in_var_COLOR2 [[attribute(1)]]; - float4 in_var_TEXCOORD0_0 [[attribute(5)]]; - float4 in_var_TEXCOORD10_centroid [[attribute(6)]]; - float4 in_var_TEXCOORD11_centroid [[attribute(7)]]; - float3 in_var_TEXCOORD7 [[attribute(8)]]; - float4 in_var_VS_To_DS_Position [[attribute(9)]]; -}; - -struct main0_patchIn -{ - patch_control_point gl_in; -}; - -[[ patch(triangle, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]], constant type_View& View [[buffer(0)]], float3 gl_TessCoord [[position_in_patch]]) -{ - main0_out out = {}; - spvUnsafeArray out_var_TEXCOORD0 = {}; - spvUnsafeArray _77 = spvUnsafeArray({ patchIn.gl_in[0].in_var_TEXCOORD10_centroid, patchIn.gl_in[1].in_var_TEXCOORD10_centroid, patchIn.gl_in[2].in_var_TEXCOORD10_centroid }); - spvUnsafeArray _78 = spvUnsafeArray({ patchIn.gl_in[0].in_var_TEXCOORD11_centroid, patchIn.gl_in[1].in_var_TEXCOORD11_centroid, patchIn.gl_in[2].in_var_TEXCOORD11_centroid }); - spvUnsafeArray, 3> _79 = spvUnsafeArray, 3>({ spvUnsafeArray({ patchIn.gl_in[0].in_var_TEXCOORD0_0 }), spvUnsafeArray({ patchIn.gl_in[1].in_var_TEXCOORD0_0 }), spvUnsafeArray({ patchIn.gl_in[2].in_var_TEXCOORD0_0 }) }); - spvUnsafeArray _80 = spvUnsafeArray({ patchIn.gl_in[0].in_var_COLOR1, patchIn.gl_in[1].in_var_COLOR1, patchIn.gl_in[2].in_var_COLOR1 }); - spvUnsafeArray _81 = spvUnsafeArray({ patchIn.gl_in[0].in_var_COLOR2, patchIn.gl_in[1].in_var_COLOR2, patchIn.gl_in[2].in_var_COLOR2 }); - spvUnsafeArray _97 = spvUnsafeArray({ patchIn.gl_in[0].in_var_VS_To_DS_Position, patchIn.gl_in[1].in_var_VS_To_DS_Position, patchIn.gl_in[2].in_var_VS_To_DS_Position }); - spvUnsafeArray _98 = spvUnsafeArray({ patchIn.gl_in[0].in_var_TEXCOORD7, patchIn.gl_in[1].in_var_TEXCOORD7, patchIn.gl_in[2].in_var_TEXCOORD7 }); - float4 _111 = float4(gl_TessCoord.x); - float4 _113 = float4(gl_TessCoord.y); - float4 _116 = float4(gl_TessCoord.z); - float4 _118 = ((_97[0] * _111) + (_97[1] * _113)) + (_97[2] * _116); - spvUnsafeArray _72; - _72 = _79[0]; - spvUnsafeArray _71; - _71 = _79[1]; - float3 _120 = float3(gl_TessCoord.x); - float3 _123 = float3(gl_TessCoord.y); - spvUnsafeArray _73; - for (int _133 = 0; _133 < 1; ) - { - _73[_133] = (_72[_133] * _111) + (_71[_133] * _113); - _133++; - continue; - } - spvUnsafeArray _75; - _75 = _73; - spvUnsafeArray _74; - _74 = _79[2]; - float3 _155 = float3(gl_TessCoord.z); - float3 _157 = ((_77[0].xyz * _120) + (_77[1].xyz * _123)).xyz + (_77[2].xyz * _155); - spvUnsafeArray _76; - for (int _164 = 0; _164 < 1; ) - { - _76[_164] = _75[_164] + (_74[_164] * _116); - _164++; - continue; - } - float4 _181 = float4(_118.x, _118.y, _118.z, _118.w); - out.out_var_TEXCOORD10_centroid = float4(_157.x, _157.y, _157.z, _68.w); - out.out_var_TEXCOORD11_centroid = ((_78[0] * _111) + (_78[1] * _113)) + (_78[2] * _116); - out_var_TEXCOORD0 = _76; - out.out_var_COLOR1 = ((_80[0] * _111) + (_80[1] * _113)) + (_80[2] * _116); - out.out_var_COLOR2 = ((_81[0] * _111) + (_81[1] * _113)) + (_81[2] * _116); - out.out_var_TEXCOORD6 = _181; - out.out_var_TEXCOORD7 = ((_98[0] * _120) + (_98[1] * _123)) + (_98[2] * _155); - out.gl_Position = View.View_TranslatedWorldToClip * _181; - out.out_var_TEXCOORD0_0 = out_var_TEXCOORD0[0]; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/vert/array-missing-copies.asm.vert b/third_party/spirv-cross/reference/opt/shaders-ue4/asm/vert/array-missing-copies.asm.vert deleted file mode 100644 index 520b58e7c7..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/vert/array-missing-copies.asm.vert +++ /dev/null @@ -1,457 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct type_View -{ - float4x4 View_TranslatedWorldToClip; - float4x4 View_WorldToClip; - float4x4 View_TranslatedWorldToView; - float4x4 View_ViewToTranslatedWorld; - float4x4 View_TranslatedWorldToCameraView; - float4x4 View_CameraViewToTranslatedWorld; - float4x4 View_ViewToClip; - float4x4 View_ViewToClipNoAA; - float4x4 View_ClipToView; - float4x4 View_ClipToTranslatedWorld; - float4x4 View_SVPositionToTranslatedWorld; - float4x4 View_ScreenToWorld; - float4x4 View_ScreenToTranslatedWorld; - packed_float3 View_ViewForward; - float PrePadding_View_844; - packed_float3 View_ViewUp; - float PrePadding_View_860; - packed_float3 View_ViewRight; - float PrePadding_View_876; - packed_float3 View_HMDViewNoRollUp; - float PrePadding_View_892; - packed_float3 View_HMDViewNoRollRight; - float PrePadding_View_908; - float4 View_InvDeviceZToWorldZTransform; - float4 View_ScreenPositionScaleBias; - packed_float3 View_WorldCameraOrigin; - float PrePadding_View_956; - packed_float3 View_TranslatedWorldCameraOrigin; - float PrePadding_View_972; - packed_float3 View_WorldViewOrigin; - float PrePadding_View_988; - packed_float3 View_PreViewTranslation; - float PrePadding_View_1004; - float4x4 View_PrevProjection; - float4x4 View_PrevViewProj; - float4x4 View_PrevViewRotationProj; - float4x4 View_PrevViewToClip; - float4x4 View_PrevClipToView; - float4x4 View_PrevTranslatedWorldToClip; - float4x4 View_PrevTranslatedWorldToView; - float4x4 View_PrevViewToTranslatedWorld; - float4x4 View_PrevTranslatedWorldToCameraView; - float4x4 View_PrevCameraViewToTranslatedWorld; - packed_float3 View_PrevWorldCameraOrigin; - float PrePadding_View_1660; - packed_float3 View_PrevWorldViewOrigin; - float PrePadding_View_1676; - packed_float3 View_PrevPreViewTranslation; - float PrePadding_View_1692; - float4x4 View_PrevInvViewProj; - float4x4 View_PrevScreenToTranslatedWorld; - float4x4 View_ClipToPrevClip; - float4 View_TemporalAAJitter; - float4 View_GlobalClippingPlane; - float2 View_FieldOfViewWideAngles; - float2 View_PrevFieldOfViewWideAngles; - float4 View_ViewRectMin; - float4 View_ViewSizeAndInvSize; - float4 View_BufferSizeAndInvSize; - float4 View_BufferBilinearUVMinMax; - int View_NumSceneColorMSAASamples; - float View_PreExposure; - float View_OneOverPreExposure; - float PrePadding_View_2012; - float4 View_DiffuseOverrideParameter; - float4 View_SpecularOverrideParameter; - float4 View_NormalOverrideParameter; - float2 View_RoughnessOverrideParameter; - float View_PrevFrameGameTime; - float View_PrevFrameRealTime; - float View_OutOfBoundsMask; - float PrePadding_View_2084; - float PrePadding_View_2088; - float PrePadding_View_2092; - packed_float3 View_WorldCameraMovementSinceLastFrame; - float View_CullingSign; - float View_NearPlane; - float View_AdaptiveTessellationFactor; - float View_GameTime; - float View_RealTime; - float View_DeltaTime; - float View_MaterialTextureMipBias; - float View_MaterialTextureDerivativeMultiply; - uint View_Random; - uint View_FrameNumber; - uint View_StateFrameIndexMod8; - uint View_StateFrameIndex; - float View_CameraCut; - float View_UnlitViewmodeMask; - float PrePadding_View_2164; - float PrePadding_View_2168; - float PrePadding_View_2172; - float4 View_DirectionalLightColor; - packed_float3 View_DirectionalLightDirection; - float PrePadding_View_2204; - float4 View_TranslucencyLightingVolumeMin[2]; - float4 View_TranslucencyLightingVolumeInvSize[2]; - float4 View_TemporalAAParams; - float4 View_CircleDOFParams; - float View_DepthOfFieldSensorWidth; - float View_DepthOfFieldFocalDistance; - float View_DepthOfFieldScale; - float View_DepthOfFieldFocalLength; - float View_DepthOfFieldFocalRegion; - float View_DepthOfFieldNearTransitionRegion; - float View_DepthOfFieldFarTransitionRegion; - float View_MotionBlurNormalizedToPixel; - float View_bSubsurfacePostprocessEnabled; - float View_GeneralPurposeTweak; - float View_DemosaicVposOffset; - float PrePadding_View_2348; - packed_float3 View_IndirectLightingColorScale; - float View_HDR32bppEncodingMode; - packed_float3 View_AtmosphericFogSunDirection; - float View_AtmosphericFogSunPower; - float View_AtmosphericFogPower; - float View_AtmosphericFogDensityScale; - float View_AtmosphericFogDensityOffset; - float View_AtmosphericFogGroundOffset; - float View_AtmosphericFogDistanceScale; - float View_AtmosphericFogAltitudeScale; - float View_AtmosphericFogHeightScaleRayleigh; - float View_AtmosphericFogStartDistance; - float View_AtmosphericFogDistanceOffset; - float View_AtmosphericFogSunDiscScale; - uint View_AtmosphericFogRenderMask; - uint View_AtmosphericFogInscatterAltitudeSampleNum; - float4 View_AtmosphericFogSunColor; - packed_float3 View_NormalCurvatureToRoughnessScaleBias; - float View_RenderingReflectionCaptureMask; - float4 View_AmbientCubemapTint; - float View_AmbientCubemapIntensity; - float View_SkyLightParameters; - float PrePadding_View_2488; - float PrePadding_View_2492; - float4 View_SkyLightColor; - float4 View_SkyIrradianceEnvironmentMap[7]; - float View_MobilePreviewMode; - float View_HMDEyePaddingOffset; - float View_ReflectionCubemapMaxMip; - float View_ShowDecalsMask; - uint View_DistanceFieldAOSpecularOcclusionMode; - float View_IndirectCapsuleSelfShadowingIntensity; - float PrePadding_View_2648; - float PrePadding_View_2652; - packed_float3 View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight; - int View_StereoPassIndex; - float4 View_GlobalVolumeCenterAndExtent[4]; - float4 View_GlobalVolumeWorldToUVAddAndMul[4]; - float View_GlobalVolumeDimension; - float View_GlobalVolumeTexelSize; - float View_MaxGlobalDistance; - float View_bCheckerboardSubsurfaceProfileRendering; - packed_float3 View_VolumetricFogInvGridSize; - float PrePadding_View_2828; - packed_float3 View_VolumetricFogGridZParams; - float PrePadding_View_2844; - float2 View_VolumetricFogSVPosToVolumeUV; - float View_VolumetricFogMaxDistance; - float PrePadding_View_2860; - packed_float3 View_VolumetricLightmapWorldToUVScale; - float PrePadding_View_2876; - packed_float3 View_VolumetricLightmapWorldToUVAdd; - float PrePadding_View_2892; - packed_float3 View_VolumetricLightmapIndirectionTextureSize; - float View_VolumetricLightmapBrickSize; - packed_float3 View_VolumetricLightmapBrickTexelSize; - float View_StereoIPD; - float View_IndirectLightingCacheShowFlag; - float View_EyeToPixelSpreadAngle; -}; - -struct type_MobileBasePass -{ - float4 MobileBasePass_Fog_ExponentialFogParameters; - float4 MobileBasePass_Fog_ExponentialFogParameters2; - float4 MobileBasePass_Fog_ExponentialFogColorParameter; - float4 MobileBasePass_Fog_ExponentialFogParameters3; - float4 MobileBasePass_Fog_InscatteringLightDirection; - float4 MobileBasePass_Fog_DirectionalInscatteringColor; - float2 MobileBasePass_Fog_SinCosInscatteringColorCubemapRotation; - float PrePadding_MobileBasePass_Fog_104; - float PrePadding_MobileBasePass_Fog_108; - packed_float3 MobileBasePass_Fog_FogInscatteringTextureParameters; - float MobileBasePass_Fog_ApplyVolumetricFog; - float PrePadding_MobileBasePass_PlanarReflection_128; - float PrePadding_MobileBasePass_PlanarReflection_132; - float PrePadding_MobileBasePass_PlanarReflection_136; - float PrePadding_MobileBasePass_PlanarReflection_140; - float PrePadding_MobileBasePass_PlanarReflection_144; - float PrePadding_MobileBasePass_PlanarReflection_148; - float PrePadding_MobileBasePass_PlanarReflection_152; - float PrePadding_MobileBasePass_PlanarReflection_156; - float4 MobileBasePass_PlanarReflection_ReflectionPlane; - float4 MobileBasePass_PlanarReflection_PlanarReflectionOrigin; - float4 MobileBasePass_PlanarReflection_PlanarReflectionXAxis; - float4 MobileBasePass_PlanarReflection_PlanarReflectionYAxis; - float3x4 MobileBasePass_PlanarReflection_InverseTransposeMirrorMatrix; - packed_float3 MobileBasePass_PlanarReflection_PlanarReflectionParameters; - float PrePadding_MobileBasePass_PlanarReflection_284; - float2 MobileBasePass_PlanarReflection_PlanarReflectionParameters2; - float PrePadding_MobileBasePass_PlanarReflection_296; - float PrePadding_MobileBasePass_PlanarReflection_300; - float4x4 MobileBasePass_PlanarReflection_ProjectionWithExtraFOV[2]; - float4 MobileBasePass_PlanarReflection_PlanarReflectionScreenScaleBias[2]; - float2 MobileBasePass_PlanarReflection_PlanarReflectionScreenBound; - uint MobileBasePass_PlanarReflection_bIsStereo; -}; - -struct type_Primitive -{ - float4x4 Primitive_LocalToWorld; - float4 Primitive_InvNonUniformScaleAndDeterminantSign; - float4 Primitive_ObjectWorldPositionAndRadius; - float4x4 Primitive_WorldToLocal; - float4x4 Primitive_PreviousLocalToWorld; - float4x4 Primitive_PreviousWorldToLocal; - packed_float3 Primitive_ActorWorldPosition; - float Primitive_UseSingleSampleShadowFromStationaryLights; - packed_float3 Primitive_ObjectBounds; - float Primitive_LpvBiasMultiplier; - float Primitive_DecalReceiverMask; - float Primitive_PerObjectGBufferData; - float Primitive_UseVolumetricLightmapShadowFromStationaryLights; - float Primitive_UseEditorDepthTest; - float4 Primitive_ObjectOrientation; - float4 Primitive_NonUniformScale; - packed_float3 Primitive_LocalObjectBoundsMin; - float PrePadding_Primitive_380; - packed_float3 Primitive_LocalObjectBoundsMax; - uint Primitive_LightingChannelMask; - uint Primitive_LightmapDataIndex; - int Primitive_SingleCaptureIndex; -}; - -struct type_LandscapeParameters -{ - float4 LandscapeParameters_HeightmapUVScaleBias; - float4 LandscapeParameters_WeightmapUVScaleBias; - float4 LandscapeParameters_LandscapeLightmapScaleBias; - float4 LandscapeParameters_SubsectionSizeVertsLayerUVPan; - float4 LandscapeParameters_SubsectionOffsetParams; - float4 LandscapeParameters_LightmapSubsectionOffsetParams; - float4x4 LandscapeParameters_LocalToWorldNoScaling; -}; - -struct type_Globals -{ - float4 LodBias; - float4 LodValues; - float4 SectionLods; - float4 NeighborSectionLod[4]; -}; - -struct main0_out -{ - float2 out_var_TEXCOORD0 [[user(locn0)]]; - float2 out_var_TEXCOORD1 [[user(locn1)]]; - float4 out_var_TEXCOORD2 [[user(locn2)]]; - float4 out_var_TEXCOORD3 [[user(locn3)]]; - float4 out_var_TEXCOORD8 [[user(locn4)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 in_var_ATTRIBUTE0 [[attribute(0)]]; - float4 in_var_ATTRIBUTE1_0 [[attribute(1)]]; - float4 in_var_ATTRIBUTE1_1 [[attribute(2)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant type_View& View [[buffer(0)]], constant type_MobileBasePass& MobileBasePass [[buffer(1)]], constant type_Primitive& Primitive [[buffer(2)]], constant type_LandscapeParameters& LandscapeParameters [[buffer(3)]], constant type_Globals& _Globals [[buffer(4)]]) -{ - main0_out out = {}; - spvUnsafeArray in_var_ATTRIBUTE1 = {}; - in_var_ATTRIBUTE1[0] = in.in_var_ATTRIBUTE1_0; - in_var_ATTRIBUTE1[1] = in.in_var_ATTRIBUTE1_1; - float4 _115 = in.in_var_ATTRIBUTE0 * float4(255.0); - float2 _116 = _115.zw; - float2 _119 = fract(_116 * float2(0.5)) * float2(2.0); - float2 _121 = (_116 - _119) * float2(0.0039215688593685626983642578125); - float2 _122 = _115.xy; - float2 _126 = _122 * float2(_Globals.LodValues.w); - float _127 = _126.y; - float _128 = _126.x; - float4 _132 = float4(_127, _128, 1.0 - _128, 1.0 - _127) * float4(2.0); - float4 _186; - if (_119.y > 0.5) - { - float4 _161; - if (_119.x > 0.5) - { - _161 = (_132 * float4(_Globals.SectionLods.w)) + ((float4(1.0) - _132) * _Globals.NeighborSectionLod[3]); - } - else - { - _161 = (_132 * float4(_Globals.SectionLods.z)) + ((float4(1.0) - _132) * _Globals.NeighborSectionLod[2]); - } - _186 = _161; - } - else - { - float4 _185; - if (_119.x > 0.5) - { - _185 = (_132 * float4(_Globals.SectionLods.y)) + ((float4(1.0) - _132) * _Globals.NeighborSectionLod[1]); - } - else - { - _185 = (_132 * float4(_Globals.SectionLods.x)) + ((float4(1.0) - _132) * _Globals.NeighborSectionLod[0]); - } - _186 = _185; - } - float _206; - if ((_128 + _127) > 1.0) - { - float _198; - if (_128 < _127) - { - _198 = _186.w; - } - else - { - _198 = _186.z; - } - _206 = _198; - } - else - { - float _205; - if (_128 < _127) - { - _205 = _186.y; - } - else - { - _205 = _186.x; - } - _206 = _205; - } - float _207 = floor(_206); - float _220 = _121.x; - float3 _235 = select(select(select(select(select(float3(0.03125, _121.yy), float3(0.0625, _220, _121.y), bool3(_207 < 5.0)), float3(0.125, in_var_ATTRIBUTE1[1].w, _220), bool3(_207 < 4.0)), float3(0.25, in_var_ATTRIBUTE1[1].zw), bool3(_207 < 3.0)), float3(0.5, in_var_ATTRIBUTE1[1].yz), bool3(_207 < 2.0)), float3(1.0, in_var_ATTRIBUTE1[1].xy), bool3(_207 < 1.0)); - float _236 = _235.x; - float _245 = (((in_var_ATTRIBUTE1[0].x * 65280.0) + (in_var_ATTRIBUTE1[0].y * 255.0)) - 32768.0) * 0.0078125; - float _252 = (((in_var_ATTRIBUTE1[0].z * 65280.0) + (in_var_ATTRIBUTE1[0].w * 255.0)) - 32768.0) * 0.0078125; - float2 _257 = floor(_122 * float2(_236)); - float2 _271 = float2((LandscapeParameters.LandscapeParameters_SubsectionSizeVertsLayerUVPan.x * _236) - 1.0, fast::max((LandscapeParameters.LandscapeParameters_SubsectionSizeVertsLayerUVPan.x * 0.5) * _236, 2.0) - 1.0) * float2(LandscapeParameters.LandscapeParameters_SubsectionSizeVertsLayerUVPan.y); - float3 _287 = mix(float3(_257 / float2(_271.x), mix(_245, _252, _235.y)), float3(floor(_257 * float2(0.5)) / float2(_271.y), mix(_245, _252, _235.z)), float3(_206 - _207)); - float2 _288 = _119.xy; - float2 _292 = _288 * LandscapeParameters.LandscapeParameters_SubsectionOffsetParams.ww; - float3 _296 = _287 + float3(_292, 0.0); - float4 _322 = float4((((Primitive.Primitive_LocalToWorld[0u].xyz * _296.xxx) + (Primitive.Primitive_LocalToWorld[1u].xyz * _296.yyy)) + (Primitive.Primitive_LocalToWorld[2u].xyz * _296.zzz)) + (Primitive.Primitive_LocalToWorld[3u].xyz + float3(View.View_PreViewTranslation)), 1.0); - float2 _323 = _287.xy; - float4 _338 = float4(_322.x, _322.y, _322.z, _322.w); - float4 _339 = View.View_TranslatedWorldToClip * _338; - float3 _341 = _322.xyz - float3(View.View_TranslatedWorldCameraOrigin); - float _345 = dot(_341, _341); - float _346 = rsqrt(_345); - float _347 = _345 * _346; - float _354 = _341.z; - float _357 = fast::max(0.0, MobileBasePass.MobileBasePass_Fog_ExponentialFogParameters.w); - float _393; - float _394; - float _395; - float _396; - if (_357 > 0.0) - { - float _361 = _357 * _346; - float _362 = _361 * _354; - float _365 = View.View_WorldCameraOrigin[2] + _362; - _393 = (1.0 - _361) * _347; - _394 = MobileBasePass.MobileBasePass_Fog_ExponentialFogParameters2.z * exp2(-fast::max(-127.0, MobileBasePass.MobileBasePass_Fog_ExponentialFogParameters2.y * (_365 - MobileBasePass.MobileBasePass_Fog_ExponentialFogParameters2.w))); - _395 = MobileBasePass.MobileBasePass_Fog_ExponentialFogParameters3.x * exp2(-fast::max(-127.0, MobileBasePass.MobileBasePass_Fog_ExponentialFogParameters.y * (_365 - MobileBasePass.MobileBasePass_Fog_ExponentialFogParameters3.y))); - _396 = _354 - _362; - } - else - { - _393 = _347; - _394 = MobileBasePass.MobileBasePass_Fog_ExponentialFogParameters2.x; - _395 = MobileBasePass.MobileBasePass_Fog_ExponentialFogParameters.x; - _396 = _354; - } - float _400 = fast::max(-127.0, MobileBasePass.MobileBasePass_Fog_ExponentialFogParameters.y * _396); - float _417 = fast::max(-127.0, MobileBasePass.MobileBasePass_Fog_ExponentialFogParameters2.y * _396); - float _428 = (_395 * ((abs(_400) > 0.00999999977648258209228515625) ? ((1.0 - exp2(-_400)) / _400) : (0.693147182464599609375 - (0.2402265071868896484375 * _400)))) + (_394 * ((abs(_417) > 0.00999999977648258209228515625) ? ((1.0 - exp2(-_417)) / _417) : (0.693147182464599609375 - (0.2402265071868896484375 * _417)))); - float3 _459; - if (MobileBasePass.MobileBasePass_Fog_InscatteringLightDirection.w >= 0.0) - { - _459 = (MobileBasePass.MobileBasePass_Fog_DirectionalInscatteringColor.xyz * float3(pow(fast::clamp(dot(_341 * float3(_346), MobileBasePass.MobileBasePass_Fog_InscatteringLightDirection.xyz), 0.0, 1.0), MobileBasePass.MobileBasePass_Fog_DirectionalInscatteringColor.w))) * float3(1.0 - fast::clamp(exp2(-(_428 * fast::max(_393 - MobileBasePass.MobileBasePass_Fog_InscatteringLightDirection.w, 0.0))), 0.0, 1.0)); - } - else - { - _459 = float3(0.0); - } - bool _468 = (MobileBasePass.MobileBasePass_Fog_ExponentialFogParameters3.w > 0.0) && (_347 > MobileBasePass.MobileBasePass_Fog_ExponentialFogParameters3.w); - float _471 = _468 ? 1.0 : fast::max(fast::clamp(exp2(-(_428 * _393)), 0.0, 1.0), MobileBasePass.MobileBasePass_Fog_ExponentialFogColorParameter.w); - float4 _479 = float4((MobileBasePass.MobileBasePass_Fog_ExponentialFogColorParameter.xyz * float3(1.0 - _471)) + select(_459, float3(0.0), bool3(_468)), _471); - float4 _482 = _338; - _482.w = _339.w; - out.out_var_TEXCOORD0 = ((_323 + LandscapeParameters.LandscapeParameters_SubsectionSizeVertsLayerUVPan.zw) + _292).xy; - out.out_var_TEXCOORD1 = ((_323 * LandscapeParameters.LandscapeParameters_WeightmapUVScaleBias.xy) + LandscapeParameters.LandscapeParameters_WeightmapUVScaleBias.zw) + (_288 * LandscapeParameters.LandscapeParameters_SubsectionOffsetParams.zz); - out.out_var_TEXCOORD2 = float4(float4(0.0).x, float4(0.0).y, _479.x, _479.y); - out.out_var_TEXCOORD3 = float4(float4(0.0).x, float4(0.0).y, _479.z, _479.w); - out.out_var_TEXCOORD8 = _482; - out.gl_Position = _339; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/vert/texture-buffer.asm.vert b/third_party/spirv-cross/reference/opt/shaders-ue4/asm/vert/texture-buffer.asm.vert deleted file mode 100644 index 6384e1b9d4..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders-ue4/asm/vert/texture-buffer.asm.vert +++ /dev/null @@ -1,387 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct type_View -{ - float4x4 View_TranslatedWorldToClip; - float4x4 View_WorldToClip; - float4x4 View_TranslatedWorldToView; - float4x4 View_ViewToTranslatedWorld; - float4x4 View_TranslatedWorldToCameraView; - float4x4 View_CameraViewToTranslatedWorld; - float4x4 View_ViewToClip; - float4x4 View_ViewToClipNoAA; - float4x4 View_ClipToView; - float4x4 View_ClipToTranslatedWorld; - float4x4 View_SVPositionToTranslatedWorld; - float4x4 View_ScreenToWorld; - float4x4 View_ScreenToTranslatedWorld; - packed_float3 View_ViewForward; - float PrePadding_View_844; - packed_float3 View_ViewUp; - float PrePadding_View_860; - packed_float3 View_ViewRight; - float PrePadding_View_876; - packed_float3 View_HMDViewNoRollUp; - float PrePadding_View_892; - packed_float3 View_HMDViewNoRollRight; - float PrePadding_View_908; - float4 View_InvDeviceZToWorldZTransform; - float4 View_ScreenPositionScaleBias; - packed_float3 View_WorldCameraOrigin; - float PrePadding_View_956; - packed_float3 View_TranslatedWorldCameraOrigin; - float PrePadding_View_972; - packed_float3 View_WorldViewOrigin; - float PrePadding_View_988; - packed_float3 View_PreViewTranslation; - float PrePadding_View_1004; - float4x4 View_PrevProjection; - float4x4 View_PrevViewProj; - float4x4 View_PrevViewRotationProj; - float4x4 View_PrevViewToClip; - float4x4 View_PrevClipToView; - float4x4 View_PrevTranslatedWorldToClip; - float4x4 View_PrevTranslatedWorldToView; - float4x4 View_PrevViewToTranslatedWorld; - float4x4 View_PrevTranslatedWorldToCameraView; - float4x4 View_PrevCameraViewToTranslatedWorld; - packed_float3 View_PrevWorldCameraOrigin; - float PrePadding_View_1660; - packed_float3 View_PrevWorldViewOrigin; - float PrePadding_View_1676; - packed_float3 View_PrevPreViewTranslation; - float PrePadding_View_1692; - float4x4 View_PrevInvViewProj; - float4x4 View_PrevScreenToTranslatedWorld; - float4x4 View_ClipToPrevClip; - float4 View_TemporalAAJitter; - float4 View_GlobalClippingPlane; - float2 View_FieldOfViewWideAngles; - float2 View_PrevFieldOfViewWideAngles; - float4 View_ViewRectMin; - float4 View_ViewSizeAndInvSize; - float4 View_BufferSizeAndInvSize; - float4 View_BufferBilinearUVMinMax; - int View_NumSceneColorMSAASamples; - float View_PreExposure; - float View_OneOverPreExposure; - float PrePadding_View_2012; - float4 View_DiffuseOverrideParameter; - float4 View_SpecularOverrideParameter; - float4 View_NormalOverrideParameter; - float2 View_RoughnessOverrideParameter; - float View_PrevFrameGameTime; - float View_PrevFrameRealTime; - float View_OutOfBoundsMask; - float PrePadding_View_2084; - float PrePadding_View_2088; - float PrePadding_View_2092; - packed_float3 View_WorldCameraMovementSinceLastFrame; - float View_CullingSign; - float View_NearPlane; - float View_AdaptiveTessellationFactor; - float View_GameTime; - float View_RealTime; - float View_DeltaTime; - float View_MaterialTextureMipBias; - float View_MaterialTextureDerivativeMultiply; - uint View_Random; - uint View_FrameNumber; - uint View_StateFrameIndexMod8; - uint View_StateFrameIndex; - float View_CameraCut; - float View_UnlitViewmodeMask; - float PrePadding_View_2164; - float PrePadding_View_2168; - float PrePadding_View_2172; - float4 View_DirectionalLightColor; - packed_float3 View_DirectionalLightDirection; - float PrePadding_View_2204; - float4 View_TranslucencyLightingVolumeMin[2]; - float4 View_TranslucencyLightingVolumeInvSize[2]; - float4 View_TemporalAAParams; - float4 View_CircleDOFParams; - float View_DepthOfFieldSensorWidth; - float View_DepthOfFieldFocalDistance; - float View_DepthOfFieldScale; - float View_DepthOfFieldFocalLength; - float View_DepthOfFieldFocalRegion; - float View_DepthOfFieldNearTransitionRegion; - float View_DepthOfFieldFarTransitionRegion; - float View_MotionBlurNormalizedToPixel; - float View_bSubsurfacePostprocessEnabled; - float View_GeneralPurposeTweak; - float View_DemosaicVposOffset; - float PrePadding_View_2348; - packed_float3 View_IndirectLightingColorScale; - float View_HDR32bppEncodingMode; - packed_float3 View_AtmosphericFogSunDirection; - float View_AtmosphericFogSunPower; - float View_AtmosphericFogPower; - float View_AtmosphericFogDensityScale; - float View_AtmosphericFogDensityOffset; - float View_AtmosphericFogGroundOffset; - float View_AtmosphericFogDistanceScale; - float View_AtmosphericFogAltitudeScale; - float View_AtmosphericFogHeightScaleRayleigh; - float View_AtmosphericFogStartDistance; - float View_AtmosphericFogDistanceOffset; - float View_AtmosphericFogSunDiscScale; - uint View_AtmosphericFogRenderMask; - uint View_AtmosphericFogInscatterAltitudeSampleNum; - float4 View_AtmosphericFogSunColor; - packed_float3 View_NormalCurvatureToRoughnessScaleBias; - float View_RenderingReflectionCaptureMask; - float4 View_AmbientCubemapTint; - float View_AmbientCubemapIntensity; - float View_SkyLightParameters; - float PrePadding_View_2488; - float PrePadding_View_2492; - float4 View_SkyLightColor; - float4 View_SkyIrradianceEnvironmentMap[7]; - float View_MobilePreviewMode; - float View_HMDEyePaddingOffset; - float View_ReflectionCubemapMaxMip; - float View_ShowDecalsMask; - uint View_DistanceFieldAOSpecularOcclusionMode; - float View_IndirectCapsuleSelfShadowingIntensity; - float PrePadding_View_2648; - float PrePadding_View_2652; - packed_float3 View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight; - int View_StereoPassIndex; - float4 View_GlobalVolumeCenterAndExtent[4]; - float4 View_GlobalVolumeWorldToUVAddAndMul[4]; - float View_GlobalVolumeDimension; - float View_GlobalVolumeTexelSize; - float View_MaxGlobalDistance; - float View_bCheckerboardSubsurfaceProfileRendering; - packed_float3 View_VolumetricFogInvGridSize; - float PrePadding_View_2828; - packed_float3 View_VolumetricFogGridZParams; - float PrePadding_View_2844; - float2 View_VolumetricFogSVPosToVolumeUV; - float View_VolumetricFogMaxDistance; - float PrePadding_View_2860; - packed_float3 View_VolumetricLightmapWorldToUVScale; - float PrePadding_View_2876; - packed_float3 View_VolumetricLightmapWorldToUVAdd; - float PrePadding_View_2892; - packed_float3 View_VolumetricLightmapIndirectionTextureSize; - float View_VolumetricLightmapBrickSize; - packed_float3 View_VolumetricLightmapBrickTexelSize; - float View_StereoIPD; - float View_IndirectLightingCacheShowFlag; - float View_EyeToPixelSpreadAngle; -}; - -struct type_Primitive -{ - float4x4 Primitive_LocalToWorld; - float4 Primitive_InvNonUniformScaleAndDeterminantSign; - float4 Primitive_ObjectWorldPositionAndRadius; - float4x4 Primitive_WorldToLocal; - float4x4 Primitive_PreviousLocalToWorld; - float4x4 Primitive_PreviousWorldToLocal; - packed_float3 Primitive_ActorWorldPosition; - float Primitive_UseSingleSampleShadowFromStationaryLights; - packed_float3 Primitive_ObjectBounds; - float Primitive_LpvBiasMultiplier; - float Primitive_DecalReceiverMask; - float Primitive_PerObjectGBufferData; - float Primitive_UseVolumetricLightmapShadowFromStationaryLights; - float Primitive_UseEditorDepthTest; - float4 Primitive_ObjectOrientation; - float4 Primitive_NonUniformScale; - packed_float3 Primitive_LocalObjectBoundsMin; - float PrePadding_Primitive_380; - packed_float3 Primitive_LocalObjectBoundsMax; - uint Primitive_LightingChannelMask; - uint Primitive_LightmapDataIndex; - int Primitive_SingleCaptureIndex; -}; - -struct type_MobileShadowDepthPass -{ - float PrePadding_MobileShadowDepthPass_0; - float PrePadding_MobileShadowDepthPass_4; - float PrePadding_MobileShadowDepthPass_8; - float PrePadding_MobileShadowDepthPass_12; - float PrePadding_MobileShadowDepthPass_16; - float PrePadding_MobileShadowDepthPass_20; - float PrePadding_MobileShadowDepthPass_24; - float PrePadding_MobileShadowDepthPass_28; - float PrePadding_MobileShadowDepthPass_32; - float PrePadding_MobileShadowDepthPass_36; - float PrePadding_MobileShadowDepthPass_40; - float PrePadding_MobileShadowDepthPass_44; - float PrePadding_MobileShadowDepthPass_48; - float PrePadding_MobileShadowDepthPass_52; - float PrePadding_MobileShadowDepthPass_56; - float PrePadding_MobileShadowDepthPass_60; - float PrePadding_MobileShadowDepthPass_64; - float PrePadding_MobileShadowDepthPass_68; - float PrePadding_MobileShadowDepthPass_72; - float PrePadding_MobileShadowDepthPass_76; - float4x4 MobileShadowDepthPass_ProjectionMatrix; - float2 MobileShadowDepthPass_ShadowParams; - float MobileShadowDepthPass_bClampToNearPlane; - float PrePadding_MobileShadowDepthPass_156; - float4x4 MobileShadowDepthPass_ShadowViewProjectionMatrices[6]; -}; - -struct type_EmitterDynamicUniforms -{ - float2 EmitterDynamicUniforms_LocalToWorldScale; - float EmitterDynamicUniforms_EmitterInstRandom; - float PrePadding_EmitterDynamicUniforms_12; - float4 EmitterDynamicUniforms_AxisLockRight; - float4 EmitterDynamicUniforms_AxisLockUp; - float4 EmitterDynamicUniforms_DynamicColor; - float4 EmitterDynamicUniforms_MacroUVParameters; -}; - -struct type_EmitterUniforms -{ - float4 EmitterUniforms_ColorCurve; - float4 EmitterUniforms_ColorScale; - float4 EmitterUniforms_ColorBias; - float4 EmitterUniforms_MiscCurve; - float4 EmitterUniforms_MiscScale; - float4 EmitterUniforms_MiscBias; - float4 EmitterUniforms_SizeBySpeed; - float4 EmitterUniforms_SubImageSize; - float4 EmitterUniforms_TangentSelector; - packed_float3 EmitterUniforms_CameraFacingBlend; - float EmitterUniforms_RemoveHMDRoll; - float EmitterUniforms_RotationRateScale; - float EmitterUniforms_RotationBias; - float EmitterUniforms_CameraMotionBlurAmount; - float PrePadding_EmitterUniforms_172; - float2 EmitterUniforms_PivotOffset; -}; - -struct type_Globals -{ - uint ParticleIndicesOffset; -}; - -struct main0_out -{ - float out_var_TEXCOORD6 [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float2 in_var_ATTRIBUTE0 [[attribute(0)]]; -}; - -// Returns 2D texture coords corresponding to 1D texel buffer coords -static inline __attribute__((always_inline)) -uint2 spvTexelBufferCoord(uint tc) -{ - return uint2(tc % 4096, tc / 4096); -} - -vertex main0_out main0(main0_in in [[stage_in]], constant type_View& View [[buffer(0)]], constant type_Primitive& Primitive [[buffer(1)]], constant type_MobileShadowDepthPass& MobileShadowDepthPass [[buffer(2)]], constant type_EmitterDynamicUniforms& EmitterDynamicUniforms [[buffer(3)]], constant type_EmitterUniforms& EmitterUniforms [[buffer(4)]], constant type_Globals& _Globals [[buffer(5)]], texture2d ParticleIndices [[texture(0)]], texture2d PositionTexture [[texture(1)]], texture2d VelocityTexture [[texture(2)]], texture2d AttributesTexture [[texture(3)]], texture2d CurveTexture [[texture(4)]], sampler PositionTextureSampler [[sampler(0)]], sampler VelocityTextureSampler [[sampler(1)]], sampler AttributesTextureSampler [[sampler(2)]], sampler CurveTextureSampler [[sampler(3)]], uint gl_VertexIndex [[vertex_id]], uint gl_InstanceIndex [[instance_id]]) -{ - main0_out out = {}; - float2 _133 = ParticleIndices.read(spvTexelBufferCoord((_Globals.ParticleIndicesOffset + ((gl_InstanceIndex * 16u) + (gl_VertexIndex / 4u))))).xy; - float4 _137 = PositionTexture.sample(PositionTextureSampler, _133, level(0.0)); - float4 _145 = AttributesTexture.sample(AttributesTextureSampler, _133, level(0.0)); - float _146 = _137.w; - float3 _158 = float3x3(Primitive.Primitive_LocalToWorld[0].xyz, Primitive.Primitive_LocalToWorld[1].xyz, Primitive.Primitive_LocalToWorld[2].xyz) * VelocityTexture.sample(VelocityTextureSampler, _133, level(0.0)).xyz; - float3 _160 = normalize(_158 + float3(0.0, 0.0, 9.9999997473787516355514526367188e-05)); - float2 _204 = ((((_145.xy + float2((_145.x < 0.5) ? 0.0 : (-0.5), (_145.y < 0.5) ? 0.0 : (-0.5))) * float2(2.0)) * (((CurveTexture.sample(CurveTextureSampler, (EmitterUniforms.EmitterUniforms_MiscCurve.xy + (EmitterUniforms.EmitterUniforms_MiscCurve.zw * float2(_146))), level(0.0)) * EmitterUniforms.EmitterUniforms_MiscScale) + EmitterUniforms.EmitterUniforms_MiscBias).xy * EmitterDynamicUniforms.EmitterDynamicUniforms_LocalToWorldScale)) * fast::min(fast::max(EmitterUniforms.EmitterUniforms_SizeBySpeed.xy * float2(length(_158)), float2(1.0)), EmitterUniforms.EmitterUniforms_SizeBySpeed.zw)) * float2(step(_146, 1.0)); - float3 _239 = float4((((Primitive.Primitive_LocalToWorld[0u].xyz * _137.xxx) + (Primitive.Primitive_LocalToWorld[1u].xyz * _137.yyy)) + (Primitive.Primitive_LocalToWorld[2u].xyz * _137.zzz)) + (Primitive.Primitive_LocalToWorld[3u].xyz + float3(View.View_PreViewTranslation)), 1.0).xyz; - float3 _242 = float3(EmitterUniforms.EmitterUniforms_RemoveHMDRoll); - float3 _251 = mix(mix(float3(View.View_ViewRight), float3(View.View_HMDViewNoRollRight), _242), EmitterDynamicUniforms.EmitterDynamicUniforms_AxisLockRight.xyz, float3(EmitterDynamicUniforms.EmitterDynamicUniforms_AxisLockRight.w)); - float3 _259 = mix(-mix(float3(View.View_ViewUp), float3(View.View_HMDViewNoRollUp), _242), EmitterDynamicUniforms.EmitterDynamicUniforms_AxisLockUp.xyz, float3(EmitterDynamicUniforms.EmitterDynamicUniforms_AxisLockUp.w)); - float3 _260 = float3(View.View_TranslatedWorldCameraOrigin) - _239; - float _261 = dot(_260, _260); - float3 _265 = _260 / float3(sqrt(fast::max(_261, 0.00999999977648258209228515625))); - float3 _335; - float3 _336; - if (EmitterUniforms.EmitterUniforms_CameraFacingBlend[0] > 0.0) - { - float3 _279 = cross(_265, float3(0.0, 0.0, 1.0)); - float3 _284 = _279 / float3(sqrt(fast::max(dot(_279, _279), 0.00999999977648258209228515625))); - float3 _286 = float3(fast::clamp((_261 * EmitterUniforms.EmitterUniforms_CameraFacingBlend[1]) - EmitterUniforms.EmitterUniforms_CameraFacingBlend[2], 0.0, 1.0)); - _335 = normalize(mix(_251, _284, _286)); - _336 = normalize(mix(_259, cross(_265, _284), _286)); - } - else - { - float3 _333; - float3 _334; - if (EmitterUniforms.EmitterUniforms_TangentSelector.y > 0.0) - { - float3 _297 = cross(_265, _160); - _333 = _297 / float3(sqrt(fast::max(dot(_297, _297), 0.00999999977648258209228515625))); - _334 = -_160; - } - else - { - float3 _331; - float3 _332; - if (EmitterUniforms.EmitterUniforms_TangentSelector.z > 0.0) - { - float3 _310 = cross(EmitterDynamicUniforms.EmitterDynamicUniforms_AxisLockRight.xyz, _265); - _331 = EmitterDynamicUniforms.EmitterDynamicUniforms_AxisLockRight.xyz; - _332 = -(_310 / float3(sqrt(fast::max(dot(_310, _310), 0.00999999977648258209228515625)))); - } - else - { - float3 _329; - float3 _330; - if (EmitterUniforms.EmitterUniforms_TangentSelector.w > 0.0) - { - float3 _322 = cross(_265, float3(0.0, 0.0, 1.0)); - float3 _327 = _322 / float3(sqrt(fast::max(dot(_322, _322), 0.00999999977648258209228515625))); - _329 = _327; - _330 = cross(_265, _327); - } - else - { - _329 = _251; - _330 = _259; - } - _331 = _329; - _332 = _330; - } - _333 = _331; - _334 = _332; - } - _335 = _333; - _336 = _334; - } - float _339 = ((_145.z + ((_145.w * EmitterUniforms.EmitterUniforms_RotationRateScale) * _146)) * 6.283185482025146484375) + EmitterUniforms.EmitterUniforms_RotationBias; - float3 _342 = float3(sin(_339)); - float3 _344 = float3(cos(_339)); - float4 _371 = float4(_239 + ((float3(_204.x * (in.in_var_ATTRIBUTE0.x + EmitterUniforms.EmitterUniforms_PivotOffset.x)) * ((_342 * _336) + (_344 * _335))) + (float3(_204.y * (in.in_var_ATTRIBUTE0.y + EmitterUniforms.EmitterUniforms_PivotOffset.y)) * ((_344 * _336) - (_342 * _335)))), 1.0); - float4 _375 = MobileShadowDepthPass.MobileShadowDepthPass_ProjectionMatrix * float4(_371.x, _371.y, _371.z, _371.w); - float4 _386; - if ((MobileShadowDepthPass.MobileShadowDepthPass_bClampToNearPlane > 0.0) && (_375.z < 0.0)) - { - float4 _384 = _375; - _384.z = 9.9999999747524270787835121154785e-07; - float4 _385 = _384; - _385.w = 1.0; - _386 = _385; - } - else - { - _386 = _375; - } - float4 _396 = _386; - _396.z = ((_386.z * MobileShadowDepthPass.MobileShadowDepthPass_ShadowParams.y) + MobileShadowDepthPass.MobileShadowDepthPass_ShadowParams.x) * _386.w; - out.out_var_TEXCOORD6 = 0.0; - out.gl_Position = _396; - return out; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/amd/gcn_shader.comp b/third_party/spirv-cross/reference/opt/shaders/amd/gcn_shader.comp deleted file mode 100644 index e4bb67e9ba..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/amd/gcn_shader.comp +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 -#extension GL_ARB_gpu_shader_int64 : require -#extension GL_AMD_gcn_shader : require -layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in; - -void main() -{ -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/amd/shader_ballot.comp b/third_party/spirv-cross/reference/opt/shaders/amd/shader_ballot.comp deleted file mode 100644 index 1f27c30a51..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/amd/shader_ballot.comp +++ /dev/null @@ -1,27 +0,0 @@ -#version 450 -#extension GL_ARB_gpu_shader_int64 : require -#extension GL_ARB_shader_ballot : require -#extension GL_AMD_shader_ballot : require -layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer inputData -{ - float inputDataArray[]; -} _12; - -layout(binding = 1, std430) buffer outputData -{ - float outputDataArray[]; -} _74; - -void main() -{ - bool _31 = _12.inputDataArray[gl_LocalInvocationID.x] > 0.0; - uvec4 _37 = uvec4(unpackUint2x32(ballotARB(_31)), 0u, 0u); - uint _44 = mbcntAMD(packUint2x32(uvec2(_37.xy))); - if (_31) - { - _74.outputDataArray[_44] = _12.inputDataArray[gl_LocalInvocationID.x]; - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/amd/shader_group_vote.comp b/third_party/spirv-cross/reference/opt/shaders/amd/shader_group_vote.comp deleted file mode 100644 index 266998177c..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/amd/shader_group_vote.comp +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 -#extension GL_ARB_shader_group_vote : require -layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer inputData -{ - float inputDataArray[]; -} _12; - -void main() -{ - bool _31 = _12.inputDataArray[gl_LocalInvocationID.x] > 0.0; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/amd/shader_trinary_minmax.comp b/third_party/spirv-cross/reference/opt/shaders/amd/shader_trinary_minmax.comp deleted file mode 100644 index 2644551e4a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/amd/shader_trinary_minmax.comp +++ /dev/null @@ -1,8 +0,0 @@ -#version 450 -#extension GL_AMD_shader_trinary_minmax : require -layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in; - -void main() -{ -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/comp/atomic-decrement.asm.comp b/third_party/spirv-cross/reference/opt/shaders/asm/comp/atomic-decrement.asm.comp deleted file mode 100644 index 673ca715b6..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/comp/atomic-decrement.asm.comp +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 -layout(local_size_x = 4, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer u0_counters -{ - uint c; -} u0_counter; - -layout(binding = 0, r32ui) uniform writeonly uimageBuffer u0; - -void main() -{ - uint _29 = atomicAdd(u0_counter.c, uint(-1)); - imageStore(u0, floatBitsToInt(uintBitsToFloat(_29)), uvec4(uint(int(gl_GlobalInvocationID.x)))); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/comp/atomic-increment.asm.comp b/third_party/spirv-cross/reference/opt/shaders/asm/comp/atomic-increment.asm.comp deleted file mode 100644 index e45ae59263..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/comp/atomic-increment.asm.comp +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 -layout(local_size_x = 4, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer u0_counters -{ - uint c; -} u0_counter; - -layout(binding = 0, r32ui) uniform writeonly uimageBuffer u0; - -void main() -{ - uint _29 = atomicAdd(u0_counter.c, 1u); - imageStore(u0, floatBitsToInt(uintBitsToFloat(_29)), uvec4(uint(int(gl_GlobalInvocationID.x)))); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/comp/bitcast_iadd.asm.comp b/third_party/spirv-cross/reference/opt/shaders/asm/comp/bitcast_iadd.asm.comp deleted file mode 100644 index bed2dffccb..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/comp/bitcast_iadd.asm.comp +++ /dev/null @@ -1,27 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) restrict buffer _3_5 -{ - ivec4 _m0; - uvec4 _m1; -} _5; - -layout(binding = 1, std430) restrict buffer _4_6 -{ - uvec4 _m0; - ivec4 _m1; -} _6; - -void main() -{ - _6._m0 = _5._m1 + uvec4(_5._m0); - _6._m0 = uvec4(_5._m0) + _5._m1; - _6._m0 = _5._m1 + _5._m1; - _6._m0 = uvec4(_5._m0 + _5._m0); - _6._m1 = ivec4(_5._m1 + _5._m1); - _6._m1 = _5._m0 + _5._m0; - _6._m1 = ivec4(_5._m1) + _5._m0; - _6._m1 = _5._m0 + ivec4(_5._m1); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/comp/bitcast_icmp.asm.comp b/third_party/spirv-cross/reference/opt/shaders/asm/comp/bitcast_icmp.asm.comp deleted file mode 100644 index bed3b90a7b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/comp/bitcast_icmp.asm.comp +++ /dev/null @@ -1,27 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) restrict buffer _3_5 -{ - ivec4 _m0; - uvec4 _m1; -} _5; - -layout(binding = 1, std430) restrict buffer _4_6 -{ - uvec4 _m0; - ivec4 _m1; -} _6; - -void main() -{ - _6._m0 = mix(uvec4(0u), uvec4(1u), lessThan(ivec4(_5._m1), _5._m0)); - _6._m0 = mix(uvec4(0u), uvec4(1u), lessThanEqual(ivec4(_5._m1), _5._m0)); - _6._m0 = mix(uvec4(0u), uvec4(1u), lessThan(_5._m1, uvec4(_5._m0))); - _6._m0 = mix(uvec4(0u), uvec4(1u), lessThanEqual(_5._m1, uvec4(_5._m0))); - _6._m0 = mix(uvec4(0u), uvec4(1u), greaterThan(ivec4(_5._m1), _5._m0)); - _6._m0 = mix(uvec4(0u), uvec4(1u), greaterThanEqual(ivec4(_5._m1), _5._m0)); - _6._m0 = mix(uvec4(0u), uvec4(1u), greaterThan(_5._m1, uvec4(_5._m0))); - _6._m0 = mix(uvec4(0u), uvec4(1u), greaterThanEqual(_5._m1, uvec4(_5._m0))); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/comp/bitcast_iequal.asm.comp b/third_party/spirv-cross/reference/opt/shaders/asm/comp/bitcast_iequal.asm.comp deleted file mode 100644 index bdb3eeb9af..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/comp/bitcast_iequal.asm.comp +++ /dev/null @@ -1,33 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer _3_5 -{ - ivec4 _m0; - uvec4 _m1; -} _5; - -layout(binding = 1, std430) buffer _4_6 -{ - uvec4 _m0; - ivec4 _m1; -} _6; - -void main() -{ - ivec4 _30 = _5._m0; - uvec4 _31 = _5._m1; - bvec4 _34 = equal(ivec4(_31), _30); - bvec4 _35 = equal(_30, ivec4(_31)); - bvec4 _36 = equal(_31, _31); - bvec4 _37 = equal(_30, _30); - _6._m0 = mix(uvec4(0u), uvec4(1u), _34); - _6._m0 = mix(uvec4(0u), uvec4(1u), _35); - _6._m0 = mix(uvec4(0u), uvec4(1u), _36); - _6._m0 = mix(uvec4(0u), uvec4(1u), _37); - _6._m1 = mix(ivec4(0), ivec4(1), _34); - _6._m1 = mix(ivec4(0), ivec4(1), _35); - _6._m1 = mix(ivec4(0), ivec4(1), _36); - _6._m1 = mix(ivec4(0), ivec4(1), _37); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/comp/bitcast_sar.asm.comp b/third_party/spirv-cross/reference/opt/shaders/asm/comp/bitcast_sar.asm.comp deleted file mode 100644 index 283b444cce..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/comp/bitcast_sar.asm.comp +++ /dev/null @@ -1,29 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer _3_5 -{ - ivec4 _m0; - uvec4 _m1; -} _5; - -layout(binding = 1, std430) buffer _4_6 -{ - uvec4 _m0; - ivec4 _m1; -} _6; - -void main() -{ - ivec4 _22 = _5._m0; - uvec4 _23 = _5._m1; - _6._m0 = uvec4(ivec4(_23) >> _22); - _6._m0 = uvec4(_22 >> ivec4(_23)); - _6._m0 = uvec4(ivec4(_23) >> ivec4(_23)); - _6._m0 = uvec4(_22 >> _22); - _6._m1 = ivec4(_23) >> ivec4(_23); - _6._m1 = _22 >> _22; - _6._m1 = ivec4(_23) >> _22; - _6._m1 = _22 >> ivec4(_23); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/comp/bitcast_sdiv.asm.comp b/third_party/spirv-cross/reference/opt/shaders/asm/comp/bitcast_sdiv.asm.comp deleted file mode 100644 index e28c481d21..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/comp/bitcast_sdiv.asm.comp +++ /dev/null @@ -1,29 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer _3_5 -{ - ivec4 _m0; - uvec4 _m1; -} _5; - -layout(binding = 1, std430) buffer _4_6 -{ - uvec4 _m0; - ivec4 _m1; -} _6; - -void main() -{ - ivec4 _22 = _5._m0; - uvec4 _23 = _5._m1; - _6._m0 = uvec4(ivec4(_23) / _22); - _6._m0 = uvec4(_22 / ivec4(_23)); - _6._m0 = uvec4(ivec4(_23) / ivec4(_23)); - _6._m0 = uvec4(_22 / _22); - _6._m1 = ivec4(_23) / ivec4(_23); - _6._m1 = _22 / _22; - _6._m1 = ivec4(_23) / _22; - _6._m1 = _22 / ivec4(_23); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/comp/bitcast_slr.asm.comp b/third_party/spirv-cross/reference/opt/shaders/asm/comp/bitcast_slr.asm.comp deleted file mode 100644 index 78efaf3852..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/comp/bitcast_slr.asm.comp +++ /dev/null @@ -1,29 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer _3_5 -{ - ivec4 _m0; - uvec4 _m1; -} _5; - -layout(binding = 1, std430) buffer _4_6 -{ - uvec4 _m0; - ivec4 _m1; -} _6; - -void main() -{ - ivec4 _22 = _5._m0; - uvec4 _23 = _5._m1; - _6._m0 = _23 >> uvec4(_22); - _6._m0 = uvec4(_22) >> _23; - _6._m0 = _23 >> _23; - _6._m0 = uvec4(_22) >> uvec4(_22); - _6._m1 = ivec4(_23 >> _23); - _6._m1 = ivec4(uvec4(_22) >> uvec4(_22)); - _6._m1 = ivec4(_23 >> uvec4(_22)); - _6._m1 = ivec4(uvec4(_22) >> _23); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/comp/block-name-alias-global.asm.comp b/third_party/spirv-cross/reference/opt/shaders/asm/comp/block-name-alias-global.asm.comp deleted file mode 100644 index 86ba0a3b9f..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/comp/block-name-alias-global.asm.comp +++ /dev/null @@ -1,37 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -struct A -{ - int a; - int b; -}; - -layout(binding = 1, std430) buffer C1 -{ - A Data[]; -} C1_1; - -layout(binding = 2, std140) uniform C2 -{ - A Data[1024]; -} C2_1; - -layout(binding = 0, std430) buffer B -{ - A Data[]; -} C3; - -layout(binding = 3, std140) uniform B -{ - A Data[1024]; -} C4; - -void main() -{ - C1_1.Data[gl_GlobalInvocationID.x].a = C2_1.Data[gl_GlobalInvocationID.x].a; - C1_1.Data[gl_GlobalInvocationID.x].b = C2_1.Data[gl_GlobalInvocationID.x].b; - C3.Data[gl_GlobalInvocationID.x].a = C4.Data[gl_GlobalInvocationID.x].a; - C3.Data[gl_GlobalInvocationID.x].b = C4.Data[gl_GlobalInvocationID.x].b; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/comp/builtin-compute-bitcast.asm.comp b/third_party/spirv-cross/reference/opt/shaders/asm/comp/builtin-compute-bitcast.asm.comp deleted file mode 100644 index abb8a7976c..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/comp/builtin-compute-bitcast.asm.comp +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer BUF -{ - int values[]; -} _6; - -void main() -{ - _6.values[int(gl_WorkGroupID.y)] = int(gl_GlobalInvocationID.z); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/comp/decoration-group.asm.comp b/third_party/spirv-cross/reference/opt/shaders/asm/comp/decoration-group.asm.comp deleted file mode 100644 index 28ad4d41fd..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/comp/decoration-group.asm.comp +++ /dev/null @@ -1,38 +0,0 @@ -#version 430 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 5, std430) buffer _6_15 -{ - float _m0[]; -} _15; - -layout(binding = 0, std430) buffer _7_16 -{ - float _m0[]; -} _16; - -layout(binding = 1, std430) buffer _8_17 -{ - float _m0[]; -} _17; - -layout(binding = 2, std430) restrict readonly buffer _9_18 -{ - float _m0[]; -} _18; - -layout(binding = 3, std430) restrict readonly buffer _10_19 -{ - float _m0[]; -} _19; - -layout(binding = 4, std430) restrict readonly buffer _11_20 -{ - float _m0[]; -} _20; - -void main() -{ - _15._m0[gl_GlobalInvocationID.x] = (((_16._m0[gl_GlobalInvocationID.x] + _17._m0[gl_GlobalInvocationID.x]) + _18._m0[gl_GlobalInvocationID.x]) + _19._m0[gl_GlobalInvocationID.x]) + _20._m0[gl_GlobalInvocationID.x]; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/comp/global-parameter-name-alias.asm.comp b/third_party/spirv-cross/reference/opt/shaders/asm/comp/global-parameter-name-alias.asm.comp deleted file mode 100644 index 37b2863558..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/comp/global-parameter-name-alias.asm.comp +++ /dev/null @@ -1,7 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -void main() -{ -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/comp/hlsl-functionality.asm.comp b/third_party/spirv-cross/reference/opt/shaders/asm/comp/hlsl-functionality.asm.comp deleted file mode 100644 index d30cddafec..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/comp/hlsl-functionality.asm.comp +++ /dev/null @@ -1,19 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer Buf -{ - vec4 _data[]; -} Buf_1; - -layout(binding = 1, std430) buffer Buf_count -{ - int _count; -} Buf_count_1; - -void main() -{ - int _33 = atomicAdd(Buf_count_1._count, 1); - Buf_1._data[_33] = vec4(1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/comp/logical.asm.comp b/third_party/spirv-cross/reference/opt/shaders/asm/comp/logical.asm.comp deleted file mode 100644 index 124652b322..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/comp/logical.asm.comp +++ /dev/null @@ -1,7 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -void main() -{ -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/comp/multiple-entry.asm.comp b/third_party/spirv-cross/reference/opt/shaders/asm/comp/multiple-entry.asm.comp deleted file mode 100644 index 6418464f19..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/comp/multiple-entry.asm.comp +++ /dev/null @@ -1,27 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) restrict buffer _6_8 -{ - ivec4 _m0; - uvec4 _m1; -} _8; - -layout(binding = 1, std430) restrict buffer _7_9 -{ - uvec4 _m0; - ivec4 _m1; -} _9; - -void main() -{ - _9._m0 = _8._m1 + uvec4(_8._m0); - _9._m0 = uvec4(_8._m0) + _8._m1; - _9._m0 = _8._m1 + _8._m1; - _9._m0 = uvec4(_8._m0 + _8._m0); - _9._m1 = ivec4(_8._m1 + _8._m1); - _9._m1 = _8._m0 + _8._m0; - _9._m1 = ivec4(_8._m1) + _8._m0; - _9._m1 = _8._m0 + ivec4(_8._m1); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/comp/nmin-max-clamp.asm.comp b/third_party/spirv-cross/reference/opt/shaders/asm/comp/nmin-max-clamp.asm.comp deleted file mode 100644 index 5ef1bc91a7..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/comp/nmin-max-clamp.asm.comp +++ /dev/null @@ -1,47 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer SSBO -{ - float a1; - vec2 a2; - vec3 a3; - vec4 a4; - float b1; - vec2 b2; - vec3 b3; - vec4 b4; - float c1; - vec2 c2; - vec3 c3; - vec4 c4; -} _4; - -void main() -{ - _4.a1 = isnan(_4.c1) ? _4.b1 : (isnan(_4.b1) ? _4.c1 : min(_4.b1, _4.c1)); - _4.a2 = mix(mix(min(_4.b2, _4.c2), _4.c2, isnan(_4.b2)), _4.b2, isnan(_4.c2)); - _4.a3 = mix(mix(min(_4.b3, _4.c3), _4.c3, isnan(_4.b3)), _4.b3, isnan(_4.c3)); - _4.a4 = mix(mix(min(_4.b4, _4.c4), _4.c4, isnan(_4.b4)), _4.b4, isnan(_4.c4)); - _4.a1 = isnan(_4.c1) ? _4.b1 : (isnan(_4.b1) ? _4.c1 : max(_4.b1, _4.c1)); - _4.a2 = mix(mix(max(_4.b2, _4.c2), _4.c2, isnan(_4.b2)), _4.b2, isnan(_4.c2)); - _4.a3 = mix(mix(max(_4.b3, _4.c3), _4.c3, isnan(_4.b3)), _4.b3, isnan(_4.c3)); - _4.a4 = mix(mix(max(_4.b4, _4.c4), _4.c4, isnan(_4.b4)), _4.b4, isnan(_4.c4)); - float _180 = isnan(_4.b1) ? _4.a1 : (isnan(_4.a1) ? _4.b1 : max(_4.a1, _4.b1)); - _4.a1 = isnan(_4.c1) ? _180 : (isnan(_180) ? _4.c1 : min(_180, _4.c1)); - vec2 _191 = mix(mix(max(_4.a2, _4.b2), _4.b2, isnan(_4.a2)), _4.a2, isnan(_4.b2)); - _4.a2 = mix(mix(min(_191, _4.c2), _4.c2, isnan(_191)), _191, isnan(_4.c2)); - vec3 _202 = mix(mix(max(_4.a3, _4.b3), _4.b3, isnan(_4.a3)), _4.a3, isnan(_4.b3)); - _4.a3 = mix(mix(min(_202, _4.c3), _4.c3, isnan(_202)), _202, isnan(_4.c3)); - vec4 _213 = mix(mix(max(_4.a4, _4.b4), _4.b4, isnan(_4.a4)), _4.a4, isnan(_4.b4)); - _4.a4 = mix(mix(min(_213, _4.c4), _4.c4, isnan(_213)), _213, isnan(_4.c4)); - for (int _139 = 0; _139 < 2; ) - { - _4.a2 = mix(mix(min(_4.b2, _4.c2), _4.c2, isnan(_4.b2)), _4.b2, isnan(_4.c2)); - float _229 = isnan(_4.b2.x) ? _4.a1 : (isnan(_4.a1) ? _4.b2.x : max(_4.a1, _4.b2.x)); - _4.a1 = isnan(_4.b2.y) ? _229 : (isnan(_229) ? _4.b2.y : min(_229, _4.b2.y)); - _139++; - continue; - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/comp/op-phi-swap.asm.comp b/third_party/spirv-cross/reference/opt/shaders/asm/comp/op-phi-swap.asm.comp deleted file mode 100644 index a1a57e16b8..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/comp/op-phi-swap.asm.comp +++ /dev/null @@ -1,39 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer _3_4 -{ - float _m0[]; -} _4; - -layout(binding = 1, std430) buffer _3_5 -{ - float _m0[]; -} _5; - -void main() -{ - bool _34; - float _35; - float _35_copy; - float _36; - _34 = true; - _35 = _4._m0[gl_GlobalInvocationID.x]; - _36 = 8.5; - for (;;) - { - if (_34) - { - _34 = false; - _35_copy = _35; - _35 = _36; - _36 = _35_copy; - } - else - { - break; - } - } - _5._m0[gl_GlobalInvocationID.x] = _35 - _36; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/comp/quantize.asm.comp b/third_party/spirv-cross/reference/opt/shaders/asm/comp/quantize.asm.comp deleted file mode 100644 index c089213800..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/comp/quantize.asm.comp +++ /dev/null @@ -1,19 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer SSBO0 -{ - float scalar; - vec2 vec2_val; - vec3 vec3_val; - vec4 vec4_val; -} _4; - -void main() -{ - _4.scalar = unpackHalf2x16(packHalf2x16(vec2(_4.scalar))).x; - _4.vec2_val = unpackHalf2x16(packHalf2x16(_4.vec2_val)); - _4.vec3_val = vec3(unpackHalf2x16(packHalf2x16(_4.vec3_val.xy)), unpackHalf2x16(packHalf2x16(_4.vec3_val.zz)).x); - _4.vec4_val = vec4(unpackHalf2x16(packHalf2x16(_4.vec4_val.xy)), unpackHalf2x16(packHalf2x16(_4.vec4_val.zw))); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/comp/recompile-block-naming.asm.comp b/third_party/spirv-cross/reference/opt/shaders/asm/comp/recompile-block-naming.asm.comp deleted file mode 100644 index 7d43b6f54d..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/comp/recompile-block-naming.asm.comp +++ /dev/null @@ -1,35 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer MyFirstBuffer -{ - uint _data[]; -} MyFirstBuffer_1; - -layout(binding = 0, std430) buffer MySecondBuffer -{ - uint _data[]; -} MySecondBuffer_1; - -layout(binding = 0, std430) buffer MyThirdBuffer -{ - uint _data[]; -} MyThirdBuffer_1; - -void main() -{ - uint _106 = MyFirstBuffer_1._data[0]; - uint _110 = MyFirstBuffer_1._data[1]; - uint _114 = MyFirstBuffer_1._data[2]; - uint _118 = MyFirstBuffer_1._data[3]; - uint _123 = MySecondBuffer_1._data[1]; - uint _127 = MySecondBuffer_1._data[2]; - uint _131 = MySecondBuffer_1._data[3]; - uint _135 = MySecondBuffer_1._data[4]; - uvec4 _141 = uvec4(_106, _110, _114, _118) + uvec4(_123, _127, _131, _135); - MyThirdBuffer_1._data[0] = _141.x; - MyThirdBuffer_1._data[1] = _141.y; - MyThirdBuffer_1._data[2] = _141.z; - MyThirdBuffer_1._data[3] = _141.w; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/comp/specialization-constant-workgroup.asm.comp b/third_party/spirv-cross/reference/opt/shaders/asm/comp/specialization-constant-workgroup.asm.comp deleted file mode 100644 index 8016ebaf9f..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/comp/specialization-constant-workgroup.asm.comp +++ /dev/null @@ -1,21 +0,0 @@ -#version 310 es - -#ifndef SPIRV_CROSS_CONSTANT_ID_10 -#define SPIRV_CROSS_CONSTANT_ID_10 9u -#endif -#ifndef SPIRV_CROSS_CONSTANT_ID_12 -#define SPIRV_CROSS_CONSTANT_ID_12 4u -#endif - -layout(local_size_x = SPIRV_CROSS_CONSTANT_ID_10, local_size_y = 20, local_size_z = SPIRV_CROSS_CONSTANT_ID_12) in; - -layout(binding = 0, std430) buffer SSBO -{ - float a; -} _4; - -void main() -{ - _4.a += 1.0; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/comp/switch-break-ladder.asm.comp b/third_party/spirv-cross/reference/opt/shaders/asm/comp/switch-break-ladder.asm.comp deleted file mode 100644 index 2aebe7941c..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/comp/switch-break-ladder.asm.comp +++ /dev/null @@ -1,71 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer BUF -{ - int a; - int b; - int d; -} o; - -void main() -{ - int _44; - _44 = o.a; - int _41; - for (;;) - { - int _48; - bool _22_ladder_break = false; - switch (_44) - { - case 5: - { - for (;;) - { - bool _30_ladder_break = false; - switch (o.d) - { - case 10: - case 20: - { - _30_ladder_break = true; - break; - } - default: - { - continue; - } - } - if (_30_ladder_break) - { - break; - } - } - _48 = _44 + _44; - break; - } - case 1: - case 2: - case 3: - { - _22_ladder_break = true; - break; - } - default: - { - _48 = _44; - break; - } - } - if (_22_ladder_break) - { - break; - } - _41 = _48 + 1; - _44 = _41; - continue; - } - o.b = _44; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/combined-sampler-reuse.vk.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/combined-sampler-reuse.vk.asm.frag deleted file mode 100644 index b5e59f88bb..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/combined-sampler-reuse.vk.asm.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 - -uniform sampler2D SPIRV_Cross_CombineduTexuSampler; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec2 vUV; - -void main() -{ - FragColor = texture(SPIRV_Cross_CombineduTexuSampler, vUV); - FragColor += textureOffset(SPIRV_Cross_CombineduTexuSampler, vUV, ivec2(1)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/combined-sampler-reuse.vk.asm.frag.vk b/third_party/spirv-cross/reference/opt/shaders/asm/frag/combined-sampler-reuse.vk.asm.frag.vk deleted file mode 100644 index bce9808950..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/combined-sampler-reuse.vk.asm.frag.vk +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 - -layout(set = 0, binding = 1) uniform texture2D uTex; -layout(set = 0, binding = 0) uniform sampler uSampler; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec2 vUV; - -void main() -{ - FragColor = texture(sampler2D(uTex, uSampler), vUV); - FragColor += textureOffset(sampler2D(uTex, uSampler), vUV, ivec2(1)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/complex-name-workarounds.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/complex-name-workarounds.asm.frag deleted file mode 100644 index d68f84b48e..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/complex-name-workarounds.asm.frag +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 - -layout(location = 0) in vec4 _; -layout(location = 1) in vec4 a; -layout(location = 0) out vec4 b; - -void main() -{ - vec4 _28 = (_ + a) + _; - b = _28; - b = _; - b = _28; - b = _; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/composite-construct-struct-no-swizzle.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/composite-construct-struct-no-swizzle.asm.frag deleted file mode 100644 index 45e83dbc18..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/composite-construct-struct-no-swizzle.asm.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) in vec2 foo; -layout(location = 0) out float FooOut; - -void main() -{ - FooOut = foo.x + foo.y; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/default-member-names.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/default-member-names.asm.frag deleted file mode 100644 index 13f81b11a6..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/default-member-names.asm.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 _3; - -float _49; - -void main() -{ - _3 = vec4(_49); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/do-while-statement-fallback.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/do-while-statement-fallback.asm.frag deleted file mode 100644 index 35bec9882e..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/do-while-statement-fallback.asm.frag +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 - -layout(location = 0) out float FragColor; - -void main() -{ - FragColor = 5.0; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/empty-struct.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/empty-struct.asm.frag deleted file mode 100644 index 05ce10adfa..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/empty-struct.asm.frag +++ /dev/null @@ -1,6 +0,0 @@ -#version 450 - -void main() -{ -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/for-loop-phi-only-continue.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/for-loop-phi-only-continue.asm.frag deleted file mode 100644 index 7a78d00b1c..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/for-loop-phi-only-continue.asm.frag +++ /dev/null @@ -1,17 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; - -void main() -{ - float _19; - _19 = 0.0; - for (int _22 = 0; _22 < 16; ) - { - _19 += 1.0; - _22++; - continue; - } - FragColor = vec4(_19); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/frem.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/frem.asm.frag deleted file mode 100644 index 1095ab04f2..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/frem.asm.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 vA; -layout(location = 1) in vec4 vB; - -void main() -{ - FragColor = vA - vB * trunc(vA / vB); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/function-overload-alias.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/function-overload-alias.asm.frag deleted file mode 100644 index 16b4994148..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/function-overload-alias.asm.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(10.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/hlsl-sample-cmp-level-zero-cube.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/hlsl-sample-cmp-level-zero-cube.asm.frag deleted file mode 100644 index 924b6f656c..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/hlsl-sample-cmp-level-zero-cube.asm.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 - -uniform samplerCubeShadow SPIRV_Cross_CombinedpointLightShadowMapshadowSamplerPCF; - -layout(location = 0) out float _entryPointOutput; - -void main() -{ - _entryPointOutput = textureGrad(SPIRV_Cross_CombinedpointLightShadowMapshadowSamplerPCF, vec4(vec4(0.100000001490116119384765625, 0.100000001490116119384765625, 0.100000001490116119384765625, 0.5).xyz, 0.5), vec3(0.0), vec3(0.0)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/hlsl-sample-cmp-level-zero.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/hlsl-sample-cmp-level-zero.asm.frag deleted file mode 100644 index c4e3704e52..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/hlsl-sample-cmp-level-zero.asm.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 - -uniform sampler2DArrayShadow SPIRV_Cross_CombinedShadowMapShadowSamplerPCF; - -layout(location = 0) in vec2 texCoords; -layout(location = 1) in float cascadeIndex; -layout(location = 2) in float fragDepth; -layout(location = 0) out vec4 _entryPointOutput; - -void main() -{ - _entryPointOutput = vec4(textureGrad(SPIRV_Cross_CombinedShadowMapShadowSamplerPCF, vec4(vec4(texCoords, cascadeIndex, fragDepth).xyz, fragDepth), vec2(0.0), vec2(0.0))); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/image-extract-reuse.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/image-extract-reuse.asm.frag deleted file mode 100644 index ab2749b4df..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/image-extract-reuse.asm.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler2D uTexture; - -layout(location = 0) out ivec2 Size; - -void main() -{ - Size = textureSize(uTexture, 0) + textureSize(uTexture, 1); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/image-fetch-no-sampler.asm.vk.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/image-fetch-no-sampler.asm.vk.frag deleted file mode 100644 index 350142d4b7..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/image-fetch-no-sampler.asm.vk.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 - -uniform sampler2D SPIRV_Cross_CombinedSampledImageSPIRV_Cross_DummySampler; -uniform sampler2D SPIRV_Cross_CombinedSampledImageSampler; - -layout(location = 0) out vec4 _entryPointOutput; - -void main() -{ - ivec2 _154 = ivec3(int(gl_FragCoord.x * 1280.0), int(gl_FragCoord.y * 720.0), 0).xy; - _entryPointOutput = ((texelFetch(SPIRV_Cross_CombinedSampledImageSPIRV_Cross_DummySampler, _154, 0) + texelFetch(SPIRV_Cross_CombinedSampledImageSPIRV_Cross_DummySampler, _154, 0)) + texture(SPIRV_Cross_CombinedSampledImageSampler, gl_FragCoord.xy)) + texture(SPIRV_Cross_CombinedSampledImageSampler, gl_FragCoord.xy); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/image-fetch-no-sampler.asm.vk.frag.vk b/third_party/spirv-cross/reference/opt/shaders/asm/frag/image-fetch-no-sampler.asm.vk.frag.vk deleted file mode 100644 index b898b01bc0..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/image-fetch-no-sampler.asm.vk.frag.vk +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 -#extension GL_EXT_samplerless_texture_functions : require - -layout(set = 0, binding = 0) uniform sampler Sampler; -layout(set = 0, binding = 0) uniform texture2D SampledImage; - -layout(location = 0) out vec4 _entryPointOutput; - -void main() -{ - ivec2 _154 = ivec3(int(gl_FragCoord.x * 1280.0), int(gl_FragCoord.y * 720.0), 0).xy; - _entryPointOutput = ((texelFetch(SampledImage, _154, 0) + texelFetch(SampledImage, _154, 0)) + texture(sampler2D(SampledImage, Sampler), gl_FragCoord.xy)) + texture(sampler2D(SampledImage, Sampler), gl_FragCoord.xy); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/image-fetch-no-sampler.no-samplerless.asm.vk.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/image-fetch-no-sampler.no-samplerless.asm.vk.frag deleted file mode 100644 index 350142d4b7..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/image-fetch-no-sampler.no-samplerless.asm.vk.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 - -uniform sampler2D SPIRV_Cross_CombinedSampledImageSPIRV_Cross_DummySampler; -uniform sampler2D SPIRV_Cross_CombinedSampledImageSampler; - -layout(location = 0) out vec4 _entryPointOutput; - -void main() -{ - ivec2 _154 = ivec3(int(gl_FragCoord.x * 1280.0), int(gl_FragCoord.y * 720.0), 0).xy; - _entryPointOutput = ((texelFetch(SPIRV_Cross_CombinedSampledImageSPIRV_Cross_DummySampler, _154, 0) + texelFetch(SPIRV_Cross_CombinedSampledImageSPIRV_Cross_DummySampler, _154, 0)) + texture(SPIRV_Cross_CombinedSampledImageSampler, gl_FragCoord.xy)) + texture(SPIRV_Cross_CombinedSampledImageSampler, gl_FragCoord.xy); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/image-fetch-no-sampler.no-samplerless.asm.vk.frag.vk b/third_party/spirv-cross/reference/opt/shaders/asm/frag/image-fetch-no-sampler.no-samplerless.asm.vk.frag.vk deleted file mode 100644 index 21797b4cf3..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/image-fetch-no-sampler.no-samplerless.asm.vk.frag.vk +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 - -layout(set = 0, binding = 0) uniform sampler Sampler; -layout(set = 0, binding = 0) uniform texture2D SampledImage; -layout(set = 0, binding = 0) uniform sampler SPIRV_Cross_DummySampler; - -layout(location = 0) out vec4 _entryPointOutput; - -void main() -{ - ivec2 _154 = ivec3(int(gl_FragCoord.x * 1280.0), int(gl_FragCoord.y * 720.0), 0).xy; - _entryPointOutput = ((texelFetch(sampler2D(SampledImage, SPIRV_Cross_DummySampler), _154, 0) + texelFetch(sampler2D(SampledImage, SPIRV_Cross_DummySampler), _154, 0)) + texture(sampler2D(SampledImage, Sampler), gl_FragCoord.xy)) + texture(sampler2D(SampledImage, Sampler), gl_FragCoord.xy); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/image-query-no-sampler.no-samplerless.vk.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/image-query-no-sampler.no-samplerless.vk.asm.frag deleted file mode 100644 index 05ce10adfa..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/image-query-no-sampler.no-samplerless.vk.asm.frag +++ /dev/null @@ -1,6 +0,0 @@ -#version 450 - -void main() -{ -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/image-query-no-sampler.no-samplerless.vk.asm.frag.vk b/third_party/spirv-cross/reference/opt/shaders/asm/frag/image-query-no-sampler.no-samplerless.vk.asm.frag.vk deleted file mode 100644 index 05ce10adfa..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/image-query-no-sampler.no-samplerless.vk.asm.frag.vk +++ /dev/null @@ -1,6 +0,0 @@ -#version 450 - -void main() -{ -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/image-query-no-sampler.vk.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/image-query-no-sampler.vk.asm.frag deleted file mode 100644 index 05ce10adfa..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/image-query-no-sampler.vk.asm.frag +++ /dev/null @@ -1,6 +0,0 @@ -#version 450 - -void main() -{ -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/image-query-no-sampler.vk.asm.frag.vk b/third_party/spirv-cross/reference/opt/shaders/asm/frag/image-query-no-sampler.vk.asm.frag.vk deleted file mode 100644 index 05ce10adfa..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/image-query-no-sampler.vk.asm.frag.vk +++ /dev/null @@ -1,6 +0,0 @@ -#version 450 - -void main() -{ -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/implicit-read-dep-phi.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/implicit-read-dep-phi.asm.frag deleted file mode 100644 index 8a7f64d7f7..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/implicit-read-dep-phi.asm.frag +++ /dev/null @@ -1,40 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler2D uImage; - -layout(location = 0) in vec4 v0; -layout(location = 0) out vec4 FragColor; - -void main() -{ - float phi; - vec4 _36; - int _51; - _51 = 0; - phi = 1.0; - _36 = vec4(1.0, 2.0, 1.0, 2.0); - for (;;) - { - FragColor = _36; - if (_51 < 4) - { - if (v0[_51] > 0.0) - { - vec2 _48 = vec2(phi); - _51++; - phi += 2.0; - _36 = textureLod(uImage, _48, 0.0); - continue; - } - else - { - break; - } - } - else - { - break; - } - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/inf-nan-constant-double.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/inf-nan-constant-double.asm.frag deleted file mode 100644 index d8e29aa404..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/inf-nan-constant-double.asm.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 -#extension GL_ARB_gpu_shader_int64 : require - -layout(location = 0) out vec3 FragColor; -layout(location = 0) flat in double vTmp; - -void main() -{ - FragColor = vec3(dvec3(uint64BitsToDouble(0x7ff0000000000000ul), uint64BitsToDouble(0xfff0000000000000ul), uint64BitsToDouble(0x7ff8000000000000ul)) + dvec3(vTmp)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/inf-nan-constant.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/inf-nan-constant.asm.frag deleted file mode 100644 index dd4284c9b1..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/inf-nan-constant.asm.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) out highp vec3 FragColor; - -void main() -{ - FragColor = vec3(uintBitsToFloat(0x7f800000u), uintBitsToFloat(0xff800000u), uintBitsToFloat(0x7fc00000u)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/invalidation.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/invalidation.asm.frag deleted file mode 100644 index c0dc7b682b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/invalidation.asm.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 - -layout(location = 0) in float v0; -layout(location = 1) in float v1; -layout(location = 0) out float FragColor; - -void main() -{ - FragColor = (v0 + v1) * v1; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/line-directive.line.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/line-directive.line.asm.frag deleted file mode 100644 index 4c108eda60..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/line-directive.line.asm.frag +++ /dev/null @@ -1,78 +0,0 @@ -#version 450 -#extension GL_GOOGLE_cpp_style_line_directive : require - -layout(location = 0) out float FragColor; -layout(location = 0) in float vColor; - -#line 8 "test.frag" -void main() -{ -#line 8 "test.frag" - FragColor = 1.0; -#line 9 "test.frag" - FragColor = 2.0; -#line 10 "test.frag" - if (vColor < 0.0) - { -#line 12 "test.frag" - FragColor = 3.0; - } - else - { -#line 16 "test.frag" - FragColor = 4.0; - } -#line 19 "test.frag" - for (int _127 = 0; float(_127) < (40.0 + vColor); ) - { -#line 21 "test.frag" - FragColor += 0.20000000298023223876953125; -#line 22 "test.frag" - FragColor += 0.300000011920928955078125; -#line 19 "test.frag" - _127 += (int(vColor) + 5); - continue; - } -#line 25 "test.frag" - switch (int(vColor)) - { - case 0: - { -#line 28 "test.frag" - FragColor += 0.20000000298023223876953125; -#line 29 "test.frag" - break; - } - case 1: - { -#line 32 "test.frag" - FragColor += 0.4000000059604644775390625; -#line 33 "test.frag" - break; - } - default: - { -#line 36 "test.frag" - FragColor += 0.800000011920928955078125; -#line 37 "test.frag" - break; - } - } - for (;;) - { -#line 42 "test.frag" - FragColor += (10.0 + vColor); -#line 43 "test.frag" -#line 42 "test.frag" -#line 43 "test.frag" - if (FragColor < 100.0) - { - } - else - { - break; - } - } -#line 48 "test.frag" -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/locations-components.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/locations-components.asm.frag deleted file mode 100644 index b1e3784309..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/locations-components.asm.frag +++ /dev/null @@ -1,23 +0,0 @@ -#version 450 - -layout(location = 1) in vec2 _2; -layout(location = 1, component = 2) in float _3; -layout(location = 2) flat in float _4; -layout(location = 2, component = 1) flat in uint _5; -layout(location = 2, component = 2) flat in uint _6; -layout(location = 0) out vec4 o0; -vec4 v1; -vec4 v2; - -void main() -{ - v1 = vec4(_2.x, _2.y, v1.z, v1.w); - v1.z = _3; - v2.x = _4; - v2.y = uintBitsToFloat(_5); - v2.z = uintBitsToFloat(_6); - o0.y = float(floatBitsToUint(intBitsToFloat(floatBitsToInt(v2.y) + floatBitsToInt(v2.z)))); - o0.x = v1.y + v2.x; - o0 = vec4(o0.x, o0.y, v1.z, v1.x); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/loop-body-dominator-continue-access.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/loop-body-dominator-continue-access.asm.frag deleted file mode 100644 index 4f382ba8b8..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/loop-body-dominator-continue-access.asm.frag +++ /dev/null @@ -1,70 +0,0 @@ -#version 450 - -layout(binding = 0, std140) uniform Foo -{ - layout(row_major) mat4 lightVP[64]; - uint shadowCascadesNum; - int test; -} _11; - -layout(location = 0) in vec3 fragWorld; -layout(location = 0) out int _entryPointOutput; - -int _231; - -mat4 spvWorkaroundRowMajor(mat4 wrap) { return wrap; } - -void main() -{ - int _228; - do - { - bool _225; - int _229; - uint _222 = 0u; - for (;;) - { - if (_222 < _11.shadowCascadesNum) - { - mat4 _223; - do - { - if (_11.test == 0) - { - _223 = mat4(vec4(0.5, 0.0, 0.0, 0.0), vec4(0.0, 0.5, 0.0, 0.0), vec4(0.0, 0.0, 0.5, 0.0), vec4(0.0, 0.0, 0.0, 1.0)); - break; - } - _223 = mat4(vec4(1.0, 0.0, 0.0, 0.0), vec4(0.0, 1.0, 0.0, 0.0), vec4(0.0, 0.0, 1.0, 0.0), vec4(0.0, 0.0, 0.0, 1.0)); - break; - } while(false); - vec4 _170 = (_223 * spvWorkaroundRowMajor(_11.lightVP[_222])) * vec4(fragWorld, 1.0); - float _172 = _170.z; - float _179 = _170.x; - float _181 = _170.y; - if ((((_172 >= 0.0) && (_172 <= 1.0)) && (max(_179, _181) <= 1.0)) && (min(_179, _181) >= 0.0)) - { - _229 = int(_222); - _225 = true; - break; - } - _222++; - continue; - } - else - { - _229 = _231; - _225 = false; - break; - } - } - if (_225) - { - _228 = _229; - break; - } - _228 = -1; - break; - } while(false); - _entryPointOutput = _228; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/loop-header-to-continue.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/loop-header-to-continue.asm.frag deleted file mode 100644 index 6497ad77a3..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/loop-header-to-continue.asm.frag +++ /dev/null @@ -1,45 +0,0 @@ -#version 450 - -struct Params -{ - vec4 TextureSize; - vec4 Params1; - vec4 Params2; - vec4 Params3; - vec4 Params4; - vec4 Bloom; -}; - -layout(binding = 1, std140) uniform CB1 -{ - Params CB1; -} _8; - -uniform sampler2D SPIRV_Cross_CombinedmapTexturemapSampler; - -layout(location = 0) in vec2 IN_uv; -layout(location = 0) out vec4 _entryPointOutput; - -void main() -{ - vec2 _45 = vec2(0.0, _8.CB1.TextureSize.w); - vec4 _49 = texture(SPIRV_Cross_CombinedmapTexturemapSampler, IN_uv); - float _50 = _49.y; - float _53 = clamp(_50 * 0.06399999558925628662109375, 7.999999797903001308441162109375e-05, 0.008000000379979610443115234375); - float _55; - float _58; - _55 = 0.0; - _58 = 0.0; - for (int _60 = -3; _60 <= 3; ) - { - float _64 = float(_60); - vec4 _72 = texture(SPIRV_Cross_CombinedmapTexturemapSampler, IN_uv + (_45 * _64)); - float _78 = exp(((-_64) * _64) * 0.2222220003604888916015625) * float(abs(_72.y - _50) < _53); - _55 += (_72.x * _78); - _58 += _78; - _60++; - continue; - } - _entryPointOutput = vec4(_55 / _58, _50, 0.0, 1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/lut-promotion-initializer.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/lut-promotion-initializer.asm.frag deleted file mode 100644 index d88c0e36d9..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/lut-promotion-initializer.asm.frag +++ /dev/null @@ -1,42 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -const float _46[16] = float[](1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0, 4.0); -const vec4 _76[4] = vec4[](vec4(0.0), vec4(1.0), vec4(8.0), vec4(5.0)); - -layout(location = 0) out float FragColor; -layout(location = 0) flat in mediump int index; - -void main() -{ - vec4 foobar[4] = _76; - vec4 baz[4] = _76; - FragColor = _46[index]; - if (index < 10) - { - FragColor += _46[index ^ 1]; - } - else - { - FragColor += _46[index & 1]; - } - bool _99 = index > 30; - if (_99) - { - FragColor += _76[index & 3].y; - } - else - { - FragColor += _76[index & 1].x; - } - if (_99) - { - foobar[1].z = 20.0; - } - mediump int _37 = index & 3; - FragColor += foobar[_37].z; - baz = vec4[](vec4(20.0), vec4(30.0), vec4(50.0), vec4(60.0)); - FragColor += baz[_37].z; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/multi-for-loop-init.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/multi-for-loop-init.asm.frag deleted file mode 100644 index 679d9d557d..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/multi-for-loop-init.asm.frag +++ /dev/null @@ -1,22 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) flat in mediump int counter; - -void main() -{ - FragColor = vec4(0.0); - mediump int _53 = 0; - mediump uint _54 = 1u; - for (; (_53 < 10) && (int(_54) < int(20u)); ) - { - FragColor += vec4(float(_53)); - FragColor += vec4(float(_54)); - _54 += uint(counter); - _53 += counter; - continue; - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/op-constant-null.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/op-constant-null.asm.frag deleted file mode 100644 index 873a64cb41..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/op-constant-null.asm.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) out float FragColor; - -void main() -{ - FragColor = 0.0; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/op-phi-swap-continue-block.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/op-phi-swap-continue-block.asm.frag deleted file mode 100644 index ee45619a86..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/op-phi-swap-continue-block.asm.frag +++ /dev/null @@ -1,29 +0,0 @@ -#version 450 - -layout(binding = 0, std140) uniform UBO -{ - int uCount; - int uJ; - int uK; -} _5; - -layout(location = 0) out float FragColor; - -void main() -{ - int _23; - int _23_copy; - int _24; - _23 = _5.uK; - _24 = _5.uJ; - for (int _26 = 0; _26 < _5.uCount; ) - { - _23_copy = _23; - _23 = _24; - _24 = _23_copy; - _26++; - continue; - } - FragColor = float(_24 - _23) * float(_5.uJ * _5.uK); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/pack-and-unpack-uint2.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/pack-and-unpack-uint2.asm.frag deleted file mode 100644 index 6d81fa616b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/pack-and-unpack-uint2.asm.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 -#extension GL_ARB_gpu_shader_int64 : require - -layout(location = 0) out vec4 FragColor; - -void main() -{ - uvec2 unpacked = unpackUint2x32(packUint2x32(uvec2(18u, 52u))); - FragColor = vec4(float(unpacked.x), float(unpacked.y), 1.0, 1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/pass-by-value.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/pass-by-value.asm.frag deleted file mode 100644 index fbbfe18bfa..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/pass-by-value.asm.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 - -struct Registers -{ - float foo; -}; - -uniform Registers registers; - -layout(location = 0) out float FragColor; - -void main() -{ - FragColor = 10.0 + registers.foo; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/phi-loop-variable.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/phi-loop-variable.asm.frag deleted file mode 100644 index 05ce10adfa..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/phi-loop-variable.asm.frag +++ /dev/null @@ -1,6 +0,0 @@ -#version 450 - -void main() -{ -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/sample-and-compare.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/sample-and-compare.asm.frag deleted file mode 100644 index d6489ed027..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/sample-and-compare.asm.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 - -uniform sampler2D SPIRV_Cross_Combinedg_Textureg_Sampler; -uniform sampler2DShadow SPIRV_Cross_Combinedg_Textureg_CompareSampler; - -layout(location = 0) in vec2 in_var_TEXCOORD0; -layout(location = 0) out float out_var_SV_Target; - -void main() -{ - out_var_SV_Target = texture(SPIRV_Cross_Combinedg_Textureg_Sampler, in_var_TEXCOORD0).x + textureLod(SPIRV_Cross_Combinedg_Textureg_CompareSampler, vec3(in_var_TEXCOORD0, 0.5), 0.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/sampler-buffer-array-without-sampler.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/sampler-buffer-array-without-sampler.asm.frag deleted file mode 100644 index bdda0d6293..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/sampler-buffer-array-without-sampler.asm.frag +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 - -struct Registers -{ - int index; -}; - -uniform Registers registers; - -uniform sampler2D SPIRV_Cross_CombineduSamplerSPIRV_Cross_DummySampler[4]; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = (texelFetch(SPIRV_Cross_CombineduSamplerSPIRV_Cross_DummySampler[registers.index], ivec2(10), 0) + texelFetch(SPIRV_Cross_CombineduSamplerSPIRV_Cross_DummySampler[registers.index], ivec2(4), 0)) + texelFetch(SPIRV_Cross_CombineduSamplerSPIRV_Cross_DummySampler[registers.index], ivec2(4), 0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/sampler-buffer-without-sampler.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/sampler-buffer-without-sampler.asm.frag deleted file mode 100644 index 89058f1434..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/sampler-buffer-without-sampler.asm.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 - -layout(binding = 0, rgba32f) uniform writeonly imageBuffer RWTex; -layout(binding = 1) uniform samplerBuffer Tex; - -layout(location = 0) out vec4 _entryPointOutput; - -void main() -{ - imageStore(RWTex, 20, vec4(1.0, 2.0, 3.0, 4.0)); - _entryPointOutput = texelFetch(Tex, 10); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/single-function-private-lut.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/single-function-private-lut.asm.frag deleted file mode 100644 index 45fc4b1c05..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/single-function-private-lut.asm.frag +++ /dev/null @@ -1,23 +0,0 @@ -#version 460 - -struct myType -{ - float data; -}; - -const myType _21[5] = myType[](myType(0.0), myType(1.0), myType(0.0), myType(1.0), myType(0.0)); - -layout(location = 0) out vec4 o_color; - -void main() -{ - if (_21[int(mod(gl_FragCoord.x, 4.0))].data > 0.0) - { - o_color = vec4(0.0, 1.0, 0.0, 1.0); - } - else - { - o_color = vec4(1.0, 0.0, 0.0, 1.0); - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/srem.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/srem.asm.frag deleted file mode 100644 index 05a3d7554f..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/srem.asm.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) flat in ivec4 vA; -layout(location = 1) flat in ivec4 vB; - -void main() -{ - FragColor = vec4(vA - vB * (vA / vB)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/storage-class-output-initializer.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/storage-class-output-initializer.asm.frag deleted file mode 100644 index a5faaefb30..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/storage-class-output-initializer.asm.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColors[2]; -layout(location = 2) out vec4 FragColor; -const vec4 _3_init[2] = vec4[](vec4(1.0, 2.0, 3.0, 4.0), vec4(10.0)); -const vec4 _4_init = vec4(5.0); - -void main() -{ - FragColors = _3_init; - FragColor = _4_init; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/struct-composite-extract-swizzle.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/struct-composite-extract-swizzle.asm.frag deleted file mode 100644 index b2473f4d03..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/struct-composite-extract-swizzle.asm.frag +++ /dev/null @@ -1,21 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -struct Foo -{ - float var1; - float var2; -}; - -layout(binding = 0) uniform mediump sampler2D uSampler; - -layout(location = 0) out vec4 FragColor; - -Foo _22; - -void main() -{ - FragColor = texture(uSampler, vec2(_22.var1, _22.var2)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/switch-label-shared-block.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/switch-label-shared-block.asm.frag deleted file mode 100644 index 748f96c8b0..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/switch-label-shared-block.asm.frag +++ /dev/null @@ -1,32 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) flat in mediump int vIndex; -layout(location = 0) out float FragColor; - -void main() -{ - highp float _19; - switch (vIndex) - { - case 0: - case 2: - { - _19 = 1.0; - break; - } - default: - { - _19 = 3.0; - break; - } - case 8: - { - _19 = 8.0; - break; - } - } - FragColor = _19; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/temporary-name-alias.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/temporary-name-alias.asm.frag deleted file mode 100644 index 05ce10adfa..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/temporary-name-alias.asm.frag +++ /dev/null @@ -1,6 +0,0 @@ -#version 450 - -void main() -{ -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/temporary-phi-hoisting.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/temporary-phi-hoisting.asm.frag deleted file mode 100644 index ade51d4a86..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/temporary-phi-hoisting.asm.frag +++ /dev/null @@ -1,27 +0,0 @@ -#version 450 - -struct MyStruct -{ - vec4 color; -}; - -layout(binding = 0, std140) uniform MyStruct_CB -{ - MyStruct g_MyStruct[4]; -} _6; - -layout(location = 0) out vec4 _entryPointOutput; - -void main() -{ - vec3 _28; - _28 = vec3(0.0); - for (int _31 = 0; _31 < 4; ) - { - _28 += _6.g_MyStruct[_31].color.xyz; - _31++; - continue; - } - _entryPointOutput = vec4(_28, 1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/texel-fetch-no-lod.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/texel-fetch-no-lod.asm.frag deleted file mode 100644 index 6193de0da9..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/texel-fetch-no-lod.asm.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler2D uTexture; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = texelFetch(uTexture, ivec2(gl_FragCoord.xy), 0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/texture-sampling-fp16.asm.vk.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/texture-sampling-fp16.asm.vk.frag deleted file mode 100644 index e0feb49327..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/texture-sampling-fp16.asm.vk.frag +++ /dev/null @@ -1,19 +0,0 @@ -#version 450 -#if defined(GL_AMD_gpu_shader_half_float) -#extension GL_AMD_gpu_shader_half_float : require -#elif defined(GL_NV_gpu_shader5) -#extension GL_NV_gpu_shader5 : require -#else -#error No extension available for FP16. -#endif - -layout(binding = 0) uniform sampler2D uTexture; - -layout(location = 0) out f16vec4 FragColor; -layout(location = 0) in f16vec2 UV; - -void main() -{ - FragColor = f16vec4(texture(uTexture, UV)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/texture-sampling-fp16.asm.vk.frag.vk b/third_party/spirv-cross/reference/opt/shaders/asm/frag/texture-sampling-fp16.asm.vk.frag.vk deleted file mode 100644 index e13e4254ea..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/texture-sampling-fp16.asm.vk.frag.vk +++ /dev/null @@ -1,20 +0,0 @@ -#version 450 -#if defined(GL_AMD_gpu_shader_half_float) -#extension GL_AMD_gpu_shader_half_float : require -#elif defined(GL_EXT_shader_explicit_arithmetic_types_float16) -#extension GL_EXT_shader_explicit_arithmetic_types_float16 : require -#else -#error No extension available for FP16. -#endif -#extension GL_EXT_shader_16bit_storage : require - -layout(set = 0, binding = 0) uniform sampler2D uTexture; - -layout(location = 0) out f16vec4 FragColor; -layout(location = 0) in f16vec2 UV; - -void main() -{ - FragColor = f16vec4(texture(uTexture, UV)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/undef-variable-store.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/undef-variable-store.asm.frag deleted file mode 100644 index 84eb23a242..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/undef-variable-store.asm.frag +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 _entryPointOutput; - -void main() -{ - _entryPointOutput = vec4(1.0, 1.0, 0.0, 1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/unknown-depth-state.asm.vk.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/unknown-depth-state.asm.vk.frag deleted file mode 100644 index 6953ec61d0..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/unknown-depth-state.asm.vk.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler2DShadow uShadow; -uniform sampler2DShadow SPIRV_Cross_CombineduTextureuSampler; - -layout(location = 0) in vec3 vUV; -layout(location = 0) out float FragColor; - -void main() -{ - FragColor = texture(uShadow, vec3(vUV.xy, vUV.z)) + texture(SPIRV_Cross_CombineduTextureuSampler, vec3(vUV.xy, vUV.z)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/unknown-depth-state.asm.vk.frag.vk b/third_party/spirv-cross/reference/opt/shaders/asm/frag/unknown-depth-state.asm.vk.frag.vk deleted file mode 100644 index 2f997036f5..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/unknown-depth-state.asm.vk.frag.vk +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 - -layout(set = 0, binding = 0) uniform sampler2DShadow uShadow; -layout(set = 0, binding = 1) uniform texture2D uTexture; -layout(set = 0, binding = 2) uniform samplerShadow uSampler; - -layout(location = 0) in vec3 vUV; -layout(location = 0) out float FragColor; - -void main() -{ - FragColor = texture(uShadow, vec3(vUV.xy, vUV.z)) + texture(sampler2DShadow(uTexture, uSampler), vec3(vUV.xy, vUV.z)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/unreachable.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/unreachable.asm.frag deleted file mode 100644 index c8986c1210..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/unreachable.asm.frag +++ /dev/null @@ -1,24 +0,0 @@ -#version 450 - -layout(location = 0) flat in int counter; -layout(location = 0) out vec4 FragColor; - -void main() -{ - vec4 _33; - for (;;) - { - if (counter == 10) - { - _33 = vec4(10.0); - break; - } - else - { - _33 = vec4(30.0); - break; - } - } - FragColor = _33; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/frag/vector-shuffle-oom.asm.frag b/third_party/spirv-cross/reference/opt/shaders/asm/frag/vector-shuffle-oom.asm.frag deleted file mode 100644 index 427a3a5163..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/frag/vector-shuffle-oom.asm.frag +++ /dev/null @@ -1,277 +0,0 @@ -#version 450 - -struct _28 -{ - vec4 _m0; -}; - -layout(binding = 0, std140) uniform _6_7 -{ - vec4 _m0; - float _m1; - vec4 _m2; -} _7; - -layout(binding = 2, std140) uniform _10_11 -{ - vec3 _m0; - vec3 _m1; - float _m2; - vec3 _m3; - float _m4; - vec3 _m5; - float _m6; - vec3 _m7; - float _m8; - vec3 _m9; - float _m10; - vec3 _m11; - float _m12; - vec2 _m13; - vec2 _m14; - vec3 _m15; - float _m16; - float _m17; - float _m18; - float _m19; - float _m20; - vec4 _m21; - vec4 _m22; - layout(row_major) mat4 _m23; - vec4 _m24; -} _11; - -layout(binding = 1, std140) uniform _18_19 -{ - layout(row_major) mat4 _m0; - layout(row_major) mat4 _m1; - layout(row_major) mat4 _m2; - layout(row_major) mat4 _m3; - vec4 _m4; - vec4 _m5; - float _m6; - float _m7; - float _m8; - float _m9; - vec3 _m10; - float _m11; - vec3 _m12; - float _m13; - vec3 _m14; - float _m15; - vec3 _m16; - float _m17; - float _m18; - float _m19; - vec2 _m20; - vec2 _m21; - vec2 _m22; - vec4 _m23; - vec2 _m24; - vec2 _m25; - vec2 _m26; - vec3 _m27; - float _m28; - float _m29; - float _m30; - float _m31; - float _m32; - vec2 _m33; - float _m34; - float _m35; - vec3 _m36; - layout(row_major) mat4 _m37[2]; - vec4 _m38[2]; -} _19; - -uniform sampler2D SPIRV_Cross_Combined; -uniform sampler2D SPIRV_Cross_Combined_1; -uniform sampler2D SPIRV_Cross_Combined_2; - -layout(location = 0) out vec4 _5; - -_28 _74; - -void main() -{ - vec2 _82 = gl_FragCoord.xy * _19._m23.xy; - vec4 _88 = _7._m2 * _7._m0.xyxy; - vec2 _95 = _88.xy; - vec2 _96 = _88.zw; - vec2 _97 = clamp(_82 + (vec2(0.0, -2.0) * _7._m0.xy), _95, _96); - vec3 _109 = _11._m5 * clamp(textureLod(SPIRV_Cross_Combined, _97, 0.0).w * _7._m1, 0.0, 1.0); - vec4 _113 = textureLod(SPIRV_Cross_Combined_1, _97, 0.0); - float _114 = _113.y; - vec3 _129; - if (_114 > 0.0) - { - _129 = _109 + (textureLod(SPIRV_Cross_Combined_2, _97, 0.0).xyz * clamp(_114 * _113.z, 0.0, 1.0)); - } - else - { - _129 = _109; - } - vec2 _144 = clamp(_82 + (vec2(-1.0) * _7._m0.xy), _95, _96); - vec3 _156 = _11._m5 * clamp(textureLod(SPIRV_Cross_Combined, _144, 0.0).w * _7._m1, 0.0, 1.0); - vec4 _160 = textureLod(SPIRV_Cross_Combined_1, _144, 0.0); - float _161 = _160.y; - vec3 _176; - if (_161 > 0.0) - { - _176 = _156 + (textureLod(SPIRV_Cross_Combined_2, _144, 0.0).xyz * clamp(_161 * _160.z, 0.0, 1.0)); - } - else - { - _176 = _156; - } - vec2 _191 = clamp(_82 + (vec2(0.0, -1.0) * _7._m0.xy), _95, _96); - vec3 _203 = _11._m5 * clamp(textureLod(SPIRV_Cross_Combined, _191, 0.0).w * _7._m1, 0.0, 1.0); - vec4 _207 = textureLod(SPIRV_Cross_Combined_1, _191, 0.0); - float _208 = _207.y; - vec3 _223; - if (_208 > 0.0) - { - _223 = _203 + (textureLod(SPIRV_Cross_Combined_2, _191, 0.0).xyz * clamp(_208 * _207.z, 0.0, 1.0)); - } - else - { - _223 = _203; - } - vec2 _238 = clamp(_82 + (vec2(1.0, -1.0) * _7._m0.xy), _95, _96); - vec3 _250 = _11._m5 * clamp(textureLod(SPIRV_Cross_Combined, _238, 0.0).w * _7._m1, 0.0, 1.0); - vec4 _254 = textureLod(SPIRV_Cross_Combined_1, _238, 0.0); - float _255 = _254.y; - vec3 _270; - if (_255 > 0.0) - { - _270 = _250 + (textureLod(SPIRV_Cross_Combined_2, _238, 0.0).xyz * clamp(_255 * _254.z, 0.0, 1.0)); - } - else - { - _270 = _250; - } - vec2 _285 = clamp(_82 + (vec2(-2.0, 0.0) * _7._m0.xy), _95, _96); - vec3 _297 = _11._m5 * clamp(textureLod(SPIRV_Cross_Combined, _285, 0.0).w * _7._m1, 0.0, 1.0); - vec4 _301 = textureLod(SPIRV_Cross_Combined_1, _285, 0.0); - float _302 = _301.y; - vec3 _317; - if (_302 > 0.0) - { - _317 = _297 + (textureLod(SPIRV_Cross_Combined_2, _285, 0.0).xyz * clamp(_302 * _301.z, 0.0, 1.0)); - } - else - { - _317 = _297; - } - vec2 _332 = clamp(_82 + (vec2(-1.0, 0.0) * _7._m0.xy), _95, _96); - vec3 _344 = _11._m5 * clamp(textureLod(SPIRV_Cross_Combined, _332, 0.0).w * _7._m1, 0.0, 1.0); - vec4 _348 = textureLod(SPIRV_Cross_Combined_1, _332, 0.0); - float _349 = _348.y; - vec3 _364; - if (_349 > 0.0) - { - _364 = _344 + (textureLod(SPIRV_Cross_Combined_2, _332, 0.0).xyz * clamp(_349 * _348.z, 0.0, 1.0)); - } - else - { - _364 = _344; - } - vec2 _379 = clamp(_82, _95, _96); - vec3 _391 = _11._m5 * clamp(textureLod(SPIRV_Cross_Combined, _379, 0.0).w * _7._m1, 0.0, 1.0); - vec4 _395 = textureLod(SPIRV_Cross_Combined_1, _379, 0.0); - float _396 = _395.y; - vec3 _411; - if (_396 > 0.0) - { - _411 = _391 + (textureLod(SPIRV_Cross_Combined_2, _379, 0.0).xyz * clamp(_396 * _395.z, 0.0, 1.0)); - } - else - { - _411 = _391; - } - vec2 _426 = clamp(_82 + (vec2(1.0, 0.0) * _7._m0.xy), _95, _96); - vec3 _438 = _11._m5 * clamp(textureLod(SPIRV_Cross_Combined, _426, 0.0).w * _7._m1, 0.0, 1.0); - vec4 _442 = textureLod(SPIRV_Cross_Combined_1, _426, 0.0); - float _443 = _442.y; - vec3 _458; - if (_443 > 0.0) - { - _458 = _438 + (textureLod(SPIRV_Cross_Combined_2, _426, 0.0).xyz * clamp(_443 * _442.z, 0.0, 1.0)); - } - else - { - _458 = _438; - } - vec2 _473 = clamp(_82 + (vec2(2.0, 0.0) * _7._m0.xy), _95, _96); - vec3 _485 = _11._m5 * clamp(textureLod(SPIRV_Cross_Combined, _473, 0.0).w * _7._m1, 0.0, 1.0); - vec4 _489 = textureLod(SPIRV_Cross_Combined_1, _473, 0.0); - float _490 = _489.y; - vec3 _505; - if (_490 > 0.0) - { - _505 = _485 + (textureLod(SPIRV_Cross_Combined_2, _473, 0.0).xyz * clamp(_490 * _489.z, 0.0, 1.0)); - } - else - { - _505 = _485; - } - vec2 _520 = clamp(_82 + (vec2(-1.0, 1.0) * _7._m0.xy), _95, _96); - vec3 _532 = _11._m5 * clamp(textureLod(SPIRV_Cross_Combined, _520, 0.0).w * _7._m1, 0.0, 1.0); - vec4 _536 = textureLod(SPIRV_Cross_Combined_1, _520, 0.0); - float _537 = _536.y; - vec3 _552; - if (_537 > 0.0) - { - _552 = _532 + (textureLod(SPIRV_Cross_Combined_2, _520, 0.0).xyz * clamp(_537 * _536.z, 0.0, 1.0)); - } - else - { - _552 = _532; - } - vec2 _567 = clamp(_82 + (vec2(0.0, 1.0) * _7._m0.xy), _95, _96); - vec3 _579 = _11._m5 * clamp(textureLod(SPIRV_Cross_Combined, _567, 0.0).w * _7._m1, 0.0, 1.0); - vec4 _583 = textureLod(SPIRV_Cross_Combined_1, _567, 0.0); - float _584 = _583.y; - vec3 _599; - if (_584 > 0.0) - { - _599 = _579 + (textureLod(SPIRV_Cross_Combined_2, _567, 0.0).xyz * clamp(_584 * _583.z, 0.0, 1.0)); - } - else - { - _599 = _579; - } - vec2 _614 = clamp(_82 + _7._m0.xy, _95, _96); - vec3 _626 = _11._m5 * clamp(textureLod(SPIRV_Cross_Combined, _614, 0.0).w * _7._m1, 0.0, 1.0); - vec4 _630 = textureLod(SPIRV_Cross_Combined_1, _614, 0.0); - float _631 = _630.y; - vec3 _646; - if (_631 > 0.0) - { - _646 = _626 + (textureLod(SPIRV_Cross_Combined_2, _614, 0.0).xyz * clamp(_631 * _630.z, 0.0, 1.0)); - } - else - { - _646 = _626; - } - vec2 _661 = clamp(_82 + (vec2(0.0, 2.0) * _7._m0.xy), _95, _96); - vec3 _673 = _11._m5 * clamp(textureLod(SPIRV_Cross_Combined, _661, 0.0).w * _7._m1, 0.0, 1.0); - vec4 _677 = textureLod(SPIRV_Cross_Combined_1, _661, 0.0); - float _678 = _677.y; - vec3 _693; - if (_678 > 0.0) - { - _693 = _673 + (textureLod(SPIRV_Cross_Combined_2, _661, 0.0).xyz * clamp(_678 * _677.z, 0.0, 1.0)); - } - else - { - _693 = _673; - } - vec3 _702 = (((((((((((((_129 * 0.5).xyz + (_176 * 0.5)).xyz + (_223 * 0.75)).xyz + (_270 * 0.5)).xyz + (_317 * 0.5)).xyz + (_364 * 0.75)).xyz + (_411 * 1.0)).xyz + (_458 * 0.75)).xyz + (_505 * 0.5)).xyz + (_552 * 0.5)).xyz + (_599 * 0.75)).xyz + (_646 * 0.5)).xyz + (_693 * 0.5)).xyz * vec3(0.125); - _28 _704 = _74; - _704._m0 = vec4(_702.x, _702.y, _702.z, vec4(0.0).w); - _28 _705 = _704; - _705._m0.w = 1.0; - _5 = _705._m0; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/geom/block-name-namespace.asm.geom b/third_party/spirv-cross/reference/opt/shaders/asm/geom/block-name-namespace.asm.geom deleted file mode 100644 index bb3e7d6b0a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/geom/block-name-namespace.asm.geom +++ /dev/null @@ -1,32 +0,0 @@ -#version 450 -layout(triangles) in; -layout(max_vertices = 4, triangle_strip) out; - -layout(binding = 0, std140) uniform VertexInput -{ - vec4 a; -} VertexInput_1; - -layout(binding = 0, std430) buffer VertexInput -{ - vec4 b; -} VertexInput_2; - -layout(location = 0) out VertexInput -{ - vec4 vColor; -} VertexInput_3; - -layout(location = 0) in VertexInput -{ - vec4 vColor; -} vin[3]; - - -void main() -{ - gl_Position = (vec4(1.0) + VertexInput_1.a) + VertexInput_2.b; - VertexInput_3.vColor = vin[0].vColor; - EmitVertex(); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/geom/inout-split-access-chain-handle.asm.geom b/third_party/spirv-cross/reference/opt/shaders/asm/geom/inout-split-access-chain-handle.asm.geom deleted file mode 100644 index ca1381cff6..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/geom/inout-split-access-chain-handle.asm.geom +++ /dev/null @@ -1,9 +0,0 @@ -#version 440 -layout(triangles) in; -layout(max_vertices = 5, triangle_strip) out; - -void main() -{ - gl_Position = gl_in[0].gl_Position; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/geom/split-access-chain-input.asm.geom b/third_party/spirv-cross/reference/opt/shaders/asm/geom/split-access-chain-input.asm.geom deleted file mode 100644 index 511d87fcbe..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/geom/split-access-chain-input.asm.geom +++ /dev/null @@ -1,9 +0,0 @@ -#version 440 -layout(triangles) in; -layout(max_vertices = 3, triangle_strip) out; - -void main() -{ - gl_Position = gl_in[0].gl_Position; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/geom/unroll-glposition-load.asm.geom b/third_party/spirv-cross/reference/opt/shaders/asm/geom/unroll-glposition-load.asm.geom deleted file mode 100644 index 0b1f5ca7a2..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/geom/unroll-glposition-load.asm.geom +++ /dev/null @@ -1,22 +0,0 @@ -#version 450 -layout(triangles) in; -layout(max_vertices = 3, triangle_strip) out; - -void main() -{ - vec4 _35_unrolled[3]; - for (int i = 0; i < int(3); i++) - { - _35_unrolled[i] = gl_in[i].gl_Position; - } - vec4 param[3] = _35_unrolled; - for (int _74 = 0; _74 < 3; ) - { - gl_Position = param[_74]; - EmitVertex(); - _74++; - continue; - } - EndPrimitive(); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/tese/unroll-input-array-load.asm.tese b/third_party/spirv-cross/reference/opt/shaders/asm/tese/unroll-input-array-load.asm.tese deleted file mode 100644 index 731ed3fab7..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/tese/unroll-input-array-load.asm.tese +++ /dev/null @@ -1,17 +0,0 @@ -#version 450 -layout(quads) in; - -struct ControlPoint -{ - vec4 baz; -}; - -layout(location = 0) patch in vec4 input_foo; -layout(location = 1) patch in vec4 input_bar; -layout(location = 2) in ControlPoint CPData[]; - -void main() -{ - gl_Position = (((input_foo + input_bar) + vec2(gl_TessCoord.xy).xyxy) + CPData[0u].baz) + CPData[3u].baz; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/vert/empty-io.asm.vert b/third_party/spirv-cross/reference/opt/shaders/asm/vert/empty-io.asm.vert deleted file mode 100644 index 52fd706565..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/vert/empty-io.asm.vert +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 - -struct VSOutput -{ - int empty_struct_member; -}; - -layout(location = 0) in vec4 position; -layout(location = 0) out VSOutput _entryPointOutput; - -void main() -{ - gl_Position = position; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/vert/extract-transposed-matrix-from-struct.asm.vert b/third_party/spirv-cross/reference/opt/shaders/asm/vert/extract-transposed-matrix-from-struct.asm.vert deleted file mode 100644 index 3ac9732b9b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/vert/extract-transposed-matrix-from-struct.asm.vert +++ /dev/null @@ -1,30 +0,0 @@ -#version 450 -#ifdef GL_ARB_shader_draw_parameters -#extension GL_ARB_shader_draw_parameters : enable -#endif - -struct InstanceData -{ - mat4 MATRIX_MVP; - vec4 Color; -}; - -layout(binding = 0, std430) readonly buffer gInstanceData -{ - layout(row_major) InstanceData _data[]; -} gInstanceData_1; - -layout(location = 0) in vec3 PosL; -#ifdef GL_ARB_shader_draw_parameters -#define SPIRV_Cross_BaseInstance gl_BaseInstanceARB -#else -uniform int SPIRV_Cross_BaseInstance; -#endif -layout(location = 0) out vec4 _entryPointOutput_Color; - -void main() -{ - gl_Position = gInstanceData_1._data[uint((gl_InstanceID + SPIRV_Cross_BaseInstance))].MATRIX_MVP * vec4(PosL, 1.0); - _entryPointOutput_Color = gInstanceData_1._data[uint((gl_InstanceID + SPIRV_Cross_BaseInstance))].Color; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/vert/global-builtin.sso.asm.vert b/third_party/spirv-cross/reference/opt/shaders/asm/vert/global-builtin.sso.asm.vert deleted file mode 100644 index 20cb3b1704..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/vert/global-builtin.sso.asm.vert +++ /dev/null @@ -1,20 +0,0 @@ -#version 450 - -out gl_PerVertex -{ - vec4 gl_Position; -}; - -struct VSOut -{ - float a; -}; - -layout(location = 0) out VSOut _entryPointOutput; - -void main() -{ - _entryPointOutput.a = 40.0; - gl_Position = vec4(1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/vert/invariant-block.asm.vert b/third_party/spirv-cross/reference/opt/shaders/asm/vert/invariant-block.asm.vert deleted file mode 100644 index 9b2f05a8bd..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/vert/invariant-block.asm.vert +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 - -invariant gl_Position; - -void main() -{ - gl_Position = vec4(1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/vert/invariant-block.sso.asm.vert b/third_party/spirv-cross/reference/opt/shaders/asm/vert/invariant-block.sso.asm.vert deleted file mode 100644 index eb88694196..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/vert/invariant-block.sso.asm.vert +++ /dev/null @@ -1,17 +0,0 @@ -#version 450 - -out gl_PerVertex -{ - vec4 gl_Position; - float gl_PointSize; - float gl_ClipDistance[1]; - float gl_CullDistance[1]; -}; - -invariant gl_Position; - -void main() -{ - gl_Position = vec4(1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/vert/invariant.asm.vert b/third_party/spirv-cross/reference/opt/shaders/asm/vert/invariant.asm.vert deleted file mode 100644 index 9b2f05a8bd..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/vert/invariant.asm.vert +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 - -invariant gl_Position; - -void main() -{ - gl_Position = vec4(1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/vert/invariant.sso.asm.vert b/third_party/spirv-cross/reference/opt/shaders/asm/vert/invariant.sso.asm.vert deleted file mode 100644 index 4f7e2f5f67..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/vert/invariant.sso.asm.vert +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 - -out gl_PerVertex -{ - vec4 gl_Position; -}; - -invariant gl_Position; - -void main() -{ - gl_Position = vec4(1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/vert/spec-constant-op-composite.asm.vk.vert b/third_party/spirv-cross/reference/opt/shaders/asm/vert/spec-constant-op-composite.asm.vk.vert deleted file mode 100644 index 2608c1d578..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/vert/spec-constant-op-composite.asm.vk.vert +++ /dev/null @@ -1,30 +0,0 @@ -#version 450 - -#ifndef SPIRV_CROSS_CONSTANT_ID_201 -#define SPIRV_CROSS_CONSTANT_ID_201 -10 -#endif -const int _7 = SPIRV_CROSS_CONSTANT_ID_201; -const int _20 = (_7 + 2); -#ifndef SPIRV_CROSS_CONSTANT_ID_202 -#define SPIRV_CROSS_CONSTANT_ID_202 100u -#endif -const uint _8 = SPIRV_CROSS_CONSTANT_ID_202; -const uint _25 = (_8 % 5u); -const ivec4 _30 = ivec4(20, 30, _20, _20); -const ivec2 _32 = ivec2(_30.y, _30.x); -const int _33 = _30.y; - -layout(location = 0) flat out int _4; - -void main() -{ - vec4 _63 = vec4(0.0); - _63.y = float(_20); - vec4 _66 = _63; - _66.z = float(_25); - vec4 _52 = _66 + vec4(_30); - vec2 _56 = _52.xy + vec2(_32); - gl_Position = vec4(_56.x, _56.y, _52.z, _52.w); - _4 = _33; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/vert/spec-constant-op-composite.asm.vk.vert.vk b/third_party/spirv-cross/reference/opt/shaders/asm/vert/spec-constant-op-composite.asm.vk.vert.vk deleted file mode 100644 index 10da8f4b8e..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/vert/spec-constant-op-composite.asm.vk.vert.vk +++ /dev/null @@ -1,24 +0,0 @@ -#version 450 - -layout(constant_id = 201) const int _7 = -10; -const int _20 = (_7 + 2); -layout(constant_id = 202) const uint _8 = 100u; -const uint _25 = (_8 % 5u); -const ivec4 _30 = ivec4(20, 30, _20, _20); -const ivec2 _32 = ivec2(_30.y, _30.x); -const int _33 = _30.y; - -layout(location = 0) flat out int _4; - -void main() -{ - vec4 _63 = vec4(0.0); - _63.y = float(_20); - vec4 _66 = _63; - _66.z = float(_25); - vec4 _52 = _66 + vec4(_30); - vec2 _56 = _52.xy + vec2(_32); - gl_Position = vec4(_56.x, _56.y, _52.z, _52.w); - _4 = _33; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/asm/vert/uint-vertex-id-instance-id.asm.vert b/third_party/spirv-cross/reference/opt/shaders/asm/vert/uint-vertex-id-instance-id.asm.vert deleted file mode 100644 index 134e08d592..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/asm/vert/uint-vertex-id-instance-id.asm.vert +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 -#ifdef GL_ARB_shader_draw_parameters -#extension GL_ARB_shader_draw_parameters : enable -#endif - -#ifdef GL_ARB_shader_draw_parameters -#define SPIRV_Cross_BaseInstance gl_BaseInstanceARB -#else -uniform int SPIRV_Cross_BaseInstance; -#endif - -void main() -{ - gl_Position = vec4(float(uint(gl_VertexID) + uint((gl_InstanceID + SPIRV_Cross_BaseInstance)))); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/comp/atomic.comp b/third_party/spirv-cross/reference/opt/shaders/comp/atomic.comp deleted file mode 100644 index 89b1351c0c..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/comp/atomic.comp +++ /dev/null @@ -1,49 +0,0 @@ -#version 310 es -#extension GL_OES_shader_image_atomic : require -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 2, std430) buffer SSBO -{ - uint u32; - int i32; -} ssbo; - -layout(binding = 0, r32ui) uniform highp uimage2D uImage; -layout(binding = 1, r32i) uniform highp iimage2D iImage; - -void main() -{ - uint _19 = imageAtomicAdd(uImage, ivec2(1, 5), 1u); - uint _27 = imageAtomicAdd(uImage, ivec2(1, 5), 1u); - imageStore(iImage, ivec2(1, 6), ivec4(int(_27))); - uint _32 = imageAtomicOr(uImage, ivec2(1, 5), 1u); - uint _34 = imageAtomicXor(uImage, ivec2(1, 5), 1u); - uint _36 = imageAtomicAnd(uImage, ivec2(1, 5), 1u); - uint _38 = imageAtomicMin(uImage, ivec2(1, 5), 1u); - uint _40 = imageAtomicMax(uImage, ivec2(1, 5), 1u); - uint _44 = imageAtomicCompSwap(uImage, ivec2(1, 5), 10u, 2u); - int _47 = imageAtomicAdd(iImage, ivec2(1, 6), 1); - int _49 = imageAtomicOr(iImage, ivec2(1, 6), 1); - int _51 = imageAtomicXor(iImage, ivec2(1, 6), 1); - int _53 = imageAtomicAnd(iImage, ivec2(1, 6), 1); - int _55 = imageAtomicMin(iImage, ivec2(1, 6), 1); - int _57 = imageAtomicMax(iImage, ivec2(1, 6), 1); - int _61 = imageAtomicCompSwap(iImage, ivec2(1, 5), 10, 2); - uint _68 = atomicAdd(ssbo.u32, 1u); - uint _70 = atomicOr(ssbo.u32, 1u); - uint _72 = atomicXor(ssbo.u32, 1u); - uint _74 = atomicAnd(ssbo.u32, 1u); - uint _76 = atomicMin(ssbo.u32, 1u); - uint _78 = atomicMax(ssbo.u32, 1u); - uint _80 = atomicExchange(ssbo.u32, 1u); - uint _82 = atomicCompSwap(ssbo.u32, 10u, 2u); - int _85 = atomicAdd(ssbo.i32, 1); - int _87 = atomicOr(ssbo.i32, 1); - int _89 = atomicXor(ssbo.i32, 1); - int _91 = atomicAnd(ssbo.i32, 1); - int _93 = atomicMin(ssbo.i32, 1); - int _95 = atomicMax(ssbo.i32, 1); - int _97 = atomicExchange(ssbo.i32, 1); - int _99 = atomicCompSwap(ssbo.i32, 10, 2); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/comp/bake_gradient.comp b/third_party/spirv-cross/reference/opt/shaders/comp/bake_gradient.comp deleted file mode 100644 index 69634d5d84..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/comp/bake_gradient.comp +++ /dev/null @@ -1,26 +0,0 @@ -#version 310 es -layout(local_size_x = 8, local_size_y = 8, local_size_z = 1) in; - -layout(binding = 4, std140) uniform UBO -{ - vec4 uInvSize; - vec4 uScale; -} _46; - -layout(binding = 0) uniform mediump sampler2D uHeight; -layout(binding = 1) uniform mediump sampler2D uDisplacement; -layout(binding = 2, rgba16f) uniform writeonly mediump image2D iHeightDisplacement; -layout(binding = 3, rgba16f) uniform writeonly mediump image2D iGradJacobian; - -void main() -{ - vec4 _59 = (vec2(gl_GlobalInvocationID.xy) * _46.uInvSize.xy).xyxy + (_46.uInvSize * 0.5); - vec2 _67 = _59.xy; - vec2 _128 = _59.zw; - vec2 _157 = ((textureLodOffset(uDisplacement, _128, 0.0, ivec2(1, 0)).xy - textureLodOffset(uDisplacement, _128, 0.0, ivec2(-1, 0)).xy) * 0.60000002384185791015625) * _46.uScale.z; - vec2 _161 = ((textureLodOffset(uDisplacement, _128, 0.0, ivec2(0, 1)).xy - textureLodOffset(uDisplacement, _128, 0.0, ivec2(0, -1)).xy) * 0.60000002384185791015625) * _46.uScale.z; - ivec2 _172 = ivec2(gl_GlobalInvocationID.xy); - imageStore(iHeightDisplacement, _172, vec4(textureLod(uHeight, _67, 0.0).x, 0.0, 0.0, 0.0)); - imageStore(iGradJacobian, _172, vec4((_46.uScale.xy * 0.5) * vec2(textureLodOffset(uHeight, _67, 0.0, ivec2(1, 0)).x - textureLodOffset(uHeight, _67, 0.0, ivec2(-1, 0)).x, textureLodOffset(uHeight, _67, 0.0, ivec2(0, 1)).x - textureLodOffset(uHeight, _67, 0.0, ivec2(0, -1)).x), ((1.0 + _157.x) * (1.0 + _161.y)) - (_157.y * _161.x), 0.0)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/comp/barriers.comp b/third_party/spirv-cross/reference/opt/shaders/comp/barriers.comp deleted file mode 100644 index 7dfde372ad..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/comp/barriers.comp +++ /dev/null @@ -1,22 +0,0 @@ -#version 310 es -layout(local_size_x = 4, local_size_y = 1, local_size_z = 1) in; - -void main() -{ - memoryBarrierShared(); - memoryBarrier(); - memoryBarrierImage(); - memoryBarrierBuffer(); - groupMemoryBarrier(); - barrier(); - memoryBarrier(); - barrier(); - memoryBarrierImage(); - barrier(); - memoryBarrierBuffer(); - barrier(); - groupMemoryBarrier(); - barrier(); - barrier(); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/comp/basic.comp b/third_party/spirv-cross/reference/opt/shaders/comp/basic.comp deleted file mode 100644 index f025d53c6f..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/comp/basic.comp +++ /dev/null @@ -1,28 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) readonly buffer SSBO -{ - vec4 in_data[]; -} _23; - -layout(binding = 1, std430) writeonly buffer SSBO2 -{ - vec4 out_data[]; -} _45; - -layout(binding = 2, std430) buffer SSBO3 -{ - uint counter; -} _48; - -void main() -{ - vec4 _29 = _23.in_data[gl_GlobalInvocationID.x]; - if (dot(_29, vec4(1.0, 5.0, 6.0, 2.0)) > 8.19999980926513671875) - { - uint _52 = atomicAdd(_48.counter, 1u); - _45.out_data[_52] = _29; - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/comp/casts.comp b/third_party/spirv-cross/reference/opt/shaders/comp/casts.comp deleted file mode 100644 index 11ef36287b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/comp/casts.comp +++ /dev/null @@ -1,18 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 1, std430) buffer SSBO1 -{ - ivec4 outputs[]; -} _21; - -layout(binding = 0, std430) buffer SSBO0 -{ - ivec4 inputs[]; -} _27; - -void main() -{ - _21.outputs[gl_GlobalInvocationID.x] = mix(ivec4(0), ivec4(1), notEqual((_27.inputs[gl_GlobalInvocationID.x] & ivec4(3)), ivec4(uvec4(0u)))); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/comp/cfg-preserve-parameter.comp b/third_party/spirv-cross/reference/opt/shaders/comp/cfg-preserve-parameter.comp deleted file mode 100644 index 124652b322..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/comp/cfg-preserve-parameter.comp +++ /dev/null @@ -1,7 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -void main() -{ -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/comp/cfg.comp b/third_party/spirv-cross/reference/opt/shaders/comp/cfg.comp deleted file mode 100644 index 97cdbc76c5..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/comp/cfg.comp +++ /dev/null @@ -1,44 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer SSBO -{ - float data; -} _11; - -float _188; - -void main() -{ - if (!(_11.data == 0.0)) - { - _11.data = 10.0; - } - else - { - _11.data = 15.0; - } - switch (int(_11.data)) - { - case 0: - { - _11.data = 20.0; - break; - } - case 1: - { - _11.data = 30.0; - break; - } - } - float _185; - _185 = _188; - for (int _184 = 0; _184 < 20; ) - { - _185 += 10.0; - _184++; - continue; - } - _11.data = _185; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/comp/coherent-block.comp b/third_party/spirv-cross/reference/opt/shaders/comp/coherent-block.comp deleted file mode 100644 index bfab6bbea8..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/comp/coherent-block.comp +++ /dev/null @@ -1,13 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 1, std430) coherent restrict writeonly buffer SSBO -{ - vec4 value; -} _10; - -void main() -{ - _10.value = vec4(20.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/comp/coherent-image.comp b/third_party/spirv-cross/reference/opt/shaders/comp/coherent-image.comp deleted file mode 100644 index b3992f242e..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/comp/coherent-image.comp +++ /dev/null @@ -1,15 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 1, std430) coherent restrict writeonly buffer SSBO -{ - ivec4 value; -} _10; - -layout(binding = 3, r32i) uniform coherent restrict readonly mediump iimage2D uImage; - -void main() -{ - _10.value = imageLoad(uImage, ivec2(10)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/comp/composite-array-initialization.comp b/third_party/spirv-cross/reference/opt/shaders/comp/composite-array-initialization.comp deleted file mode 100644 index 2e6dbebf8e..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/comp/composite-array-initialization.comp +++ /dev/null @@ -1,27 +0,0 @@ -#version 310 es -layout(local_size_x = 2, local_size_y = 1, local_size_z = 1) in; - -struct Data -{ - float a; - float b; -}; - -const Data _25[2] = Data[](Data(1.0, 2.0), Data(3.0, 4.0)); -#ifndef SPIRV_CROSS_CONSTANT_ID_0 -#define SPIRV_CROSS_CONSTANT_ID_0 4.0 -#endif -const float X = SPIRV_CROSS_CONSTANT_ID_0; - -layout(binding = 0, std430) buffer SSBO -{ - Data outdata[]; -} _53; - -void main() -{ - Data data2[2] = Data[](Data(X, 2.0), Data(3.0, 5.0)); - _53.outdata[gl_WorkGroupID.x].a = _25[gl_LocalInvocationID.x].a + data2[gl_LocalInvocationID.x].a; - _53.outdata[gl_WorkGroupID.x].b = _25[gl_LocalInvocationID.x].b + data2[gl_LocalInvocationID.x].b; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/comp/composite-construct.comp b/third_party/spirv-cross/reference/opt/shaders/comp/composite-construct.comp deleted file mode 100644 index 0e857976cd..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/comp/composite-construct.comp +++ /dev/null @@ -1,18 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer SSBO0 -{ - vec4 as[]; -} _41; - -layout(binding = 1, std430) buffer SSBO1 -{ - vec4 bs[]; -} _55; - -void main() -{ - _41.as[gl_GlobalInvocationID.x] = ((_41.as[gl_GlobalInvocationID.x] + _55.bs[gl_GlobalInvocationID.x]) + _55.bs[gl_GlobalInvocationID.x]) + vec4(10.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/comp/culling.comp b/third_party/spirv-cross/reference/opt/shaders/comp/culling.comp deleted file mode 100644 index f4dea4b359..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/comp/culling.comp +++ /dev/null @@ -1,28 +0,0 @@ -#version 310 es -layout(local_size_x = 4, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) readonly buffer SSBO -{ - float in_data[]; -} _22; - -layout(binding = 1, std430) writeonly buffer SSBO2 -{ - float out_data[]; -} _38; - -layout(binding = 2, std430) buffer SSBO3 -{ - uint count; -} _41; - -void main() -{ - float _28 = _22.in_data[gl_GlobalInvocationID.x]; - if (_28 > 12.0) - { - uint _45 = atomicAdd(_41.count, 1u); - _38.out_data[_45] = _28; - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/comp/defer-parens.comp b/third_party/spirv-cross/reference/opt/shaders/comp/defer-parens.comp deleted file mode 100644 index c48fb9e080..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/comp/defer-parens.comp +++ /dev/null @@ -1,20 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer SSBO -{ - vec4 data; - int index; -} _13; - -void main() -{ - vec4 _17 = _13.data; - vec2 _28 = _17.yz + vec2(10.0); - _13.data = vec4(_17.x, _28, _17.w); - _13.data = (_17 + _17) + _17; - _13.data = _28.xxyy; - _13.data = vec4(_28.y); - _13.data = vec4((_17.zw + vec2(10.0))[_13.index]); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/comp/dowhile.comp b/third_party/spirv-cross/reference/opt/shaders/comp/dowhile.comp deleted file mode 100644 index d9a9f77cbf..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/comp/dowhile.comp +++ /dev/null @@ -1,38 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) readonly buffer SSBO -{ - mat4 mvp; - vec4 in_data[]; -} _28; - -layout(binding = 1, std430) writeonly buffer SSBO2 -{ - vec4 out_data[]; -} _52; - -void main() -{ - vec4 _59; - int _60; - _60 = 0; - _59 = _28.in_data[gl_GlobalInvocationID.x]; - vec4 _42; - for (;;) - { - _42 = _28.mvp * _59; - int _44 = _60 + 1; - if (_44 < 16) - { - _60 = _44; - _59 = _42; - } - else - { - break; - } - } - _52.out_data[gl_GlobalInvocationID.x] = _42; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/comp/generate_height.comp b/third_party/spirv-cross/reference/opt/shaders/comp/generate_height.comp deleted file mode 100644 index bfd7830021..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/comp/generate_height.comp +++ /dev/null @@ -1,56 +0,0 @@ -#version 310 es -layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) readonly buffer Distribution -{ - vec2 distribution[]; -} _137; - -layout(binding = 2, std140) uniform UBO -{ - vec4 uModTime; -} _166; - -layout(binding = 1, std430) writeonly buffer HeightmapFFT -{ - uint heights[]; -} _225; - -void main() -{ - uvec2 _265 = uvec2(64u, 1u) * gl_NumWorkGroups.xy; - uvec2 _270 = _265 - gl_GlobalInvocationID.xy; - bvec2 _272 = equal(gl_GlobalInvocationID.xy, uvec2(0u)); - uint _460; - if (_272.x) - { - _460 = 0u; - } - else - { - _460 = _270.x; - } - uint _461; - if (_272.y) - { - _461 = 0u; - } - else - { - _461 = _270.y; - } - uint _277 = _265.x; - uint _281 = (gl_GlobalInvocationID.y * _277) + gl_GlobalInvocationID.x; - uint _291 = (_461 * _277) + _460; - vec2 _298 = vec2(gl_GlobalInvocationID.xy); - vec2 _300 = vec2(_265); - float _310 = sqrt(9.81000041961669921875 * length(_166.uModTime.xy * mix(_298, _298 - _300, greaterThan(_298, _300 * 0.5)))) * _166.uModTime.z; - vec2 _317 = vec2(cos(_310), sin(_310)); - vec2 _391 = _317.xx; - vec2 _396 = _317.yy; - vec2 _399 = _396 * _137.distribution[_281].yx; - vec2 _426 = _396 * _137.distribution[_291].yx; - vec2 _434 = (_137.distribution[_291] * _391) + vec2(-_426.x, _426.y); - _225.heights[_281] = packHalf2x16(((_137.distribution[_281] * _391) + vec2(-_399.x, _399.y)) + vec2(_434.x, -_434.y)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/comp/image.comp b/third_party/spirv-cross/reference/opt/shaders/comp/image.comp deleted file mode 100644 index cdb57142c3..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/comp/image.comp +++ /dev/null @@ -1,12 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, rgba8) uniform readonly mediump image2D uImageIn; -layout(binding = 1, rgba8) uniform writeonly mediump image2D uImageOut; - -void main() -{ - ivec2 _23 = ivec2(gl_GlobalInvocationID.xy); - imageStore(uImageOut, _23, imageLoad(uImageIn, _23 + imageSize(uImageIn))); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/comp/insert.comp b/third_party/spirv-cross/reference/opt/shaders/comp/insert.comp deleted file mode 100644 index ad394aab6c..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/comp/insert.comp +++ /dev/null @@ -1,24 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) writeonly buffer SSBO -{ - vec4 out_data[]; -} _27; - -vec4 _53; - -void main() -{ - vec4 _46 = _53; - _46.x = 10.0; - vec4 _48 = _46; - _48.y = 30.0; - vec4 _50 = _48; - _50.z = 70.0; - vec4 _52 = _50; - _52.w = 90.0; - _27.out_data[gl_GlobalInvocationID.x] = _52; - _27.out_data[gl_GlobalInvocationID.x].y = 20.0; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/comp/mat3.comp b/third_party/spirv-cross/reference/opt/shaders/comp/mat3.comp deleted file mode 100644 index b1c585b849..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/comp/mat3.comp +++ /dev/null @@ -1,13 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 1, std430) writeonly buffer SSBO2 -{ - mat3 out_data[]; -} _22; - -void main() -{ - _22.out_data[gl_GlobalInvocationID.x] = mat3(vec3(10.0), vec3(20.0), vec3(40.0)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/comp/mod.comp b/third_party/spirv-cross/reference/opt/shaders/comp/mod.comp deleted file mode 100644 index d8ee0ff83a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/comp/mod.comp +++ /dev/null @@ -1,20 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) readonly buffer SSBO -{ - vec4 in_data[]; -} _23; - -layout(binding = 1, std430) writeonly buffer SSBO2 -{ - vec4 out_data[]; -} _33; - -void main() -{ - _33.out_data[gl_GlobalInvocationID.x] = mod(_23.in_data[gl_GlobalInvocationID.x], _33.out_data[gl_GlobalInvocationID.x]); - _33.out_data[gl_GlobalInvocationID.x] = uintBitsToFloat(floatBitsToUint(_23.in_data[gl_GlobalInvocationID.x]) % floatBitsToUint(_33.out_data[gl_GlobalInvocationID.x])); - _33.out_data[gl_GlobalInvocationID.x] = intBitsToFloat(floatBitsToInt(_23.in_data[gl_GlobalInvocationID.x]) % floatBitsToInt(_33.out_data[gl_GlobalInvocationID.x])); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/comp/modf.comp b/third_party/spirv-cross/reference/opt/shaders/comp/modf.comp deleted file mode 100644 index 3c8ab6ecd7..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/comp/modf.comp +++ /dev/null @@ -1,20 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) readonly buffer SSBO -{ - vec4 in_data[]; -} _23; - -layout(binding = 1, std430) writeonly buffer SSBO2 -{ - vec4 out_data[]; -} _35; - -void main() -{ - vec4 i; - vec4 _31 = modf(_23.in_data[gl_GlobalInvocationID.x], i); - _35.out_data[gl_GlobalInvocationID.x] = _31; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/comp/outer-product.comp b/third_party/spirv-cross/reference/opt/shaders/comp/outer-product.comp deleted file mode 100644 index d31dad3b2c..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/comp/outer-product.comp +++ /dev/null @@ -1,36 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) writeonly buffer SSBO -{ - mat2 m22; - mat2x3 m23; - mat2x4 m24; - mat3x2 m32; - mat3 m33; - mat3x4 m34; - mat4x2 m42; - mat4x3 m43; - mat4 m44; -} _21; - -layout(binding = 1, std430) readonly buffer ReadSSBO -{ - vec2 v2; - vec3 v3; - vec4 v4; -} _26; - -void main() -{ - _21.m22 = outerProduct(_26.v2, _26.v2); - _21.m23 = outerProduct(_26.v3, _26.v2); - _21.m24 = outerProduct(_26.v4, _26.v2); - _21.m32 = outerProduct(_26.v2, _26.v3); - _21.m33 = outerProduct(_26.v3, _26.v3); - _21.m34 = outerProduct(_26.v4, _26.v3); - _21.m42 = outerProduct(_26.v2, _26.v4); - _21.m43 = outerProduct(_26.v3, _26.v4); - _21.m44 = outerProduct(_26.v4, _26.v4); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/comp/read-write-only.comp b/third_party/spirv-cross/reference/opt/shaders/comp/read-write-only.comp deleted file mode 100644 index 06227ee2c6..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/comp/read-write-only.comp +++ /dev/null @@ -1,27 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 2, std430) restrict writeonly buffer SSBO2 -{ - vec4 data4; - vec4 data5; -} _10; - -layout(binding = 0, std430) readonly buffer SSBO0 -{ - vec4 data0; - vec4 data1; -} _15; - -layout(binding = 1, std430) restrict buffer SSBO1 -{ - vec4 data2; - vec4 data3; -} _21; - -void main() -{ - _10.data4 = _15.data0 + _21.data2; - _10.data5 = _15.data1 + _21.data3; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/comp/rmw-matrix.comp b/third_party/spirv-cross/reference/opt/shaders/comp/rmw-matrix.comp deleted file mode 100644 index 5c4ac94bc7..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/comp/rmw-matrix.comp +++ /dev/null @@ -1,20 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer SSBO -{ - float a; - vec4 b; - mat4 c; - float a1; - vec4 b1; - mat4 c1; -} _11; - -void main() -{ - _11.a *= _11.a1; - _11.b *= _11.b1; - _11.c = _11.c * _11.c1; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/comp/rmw-opt.comp b/third_party/spirv-cross/reference/opt/shaders/comp/rmw-opt.comp deleted file mode 100644 index 342e6632db..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/comp/rmw-opt.comp +++ /dev/null @@ -1,23 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer SSBO -{ - int a; -} _9; - -void main() -{ - _9.a += 10; - _9.a -= 10; - _9.a *= 10; - _9.a /= 10; - _9.a = _9.a << 2; - _9.a = _9.a >> 3; - _9.a &= 40; - _9.a ^= 10; - _9.a %= 40; - _9.a |= 1; - _9.a = 0; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/comp/scalar-std450-distance-length-normalize.comp b/third_party/spirv-cross/reference/opt/shaders/comp/scalar-std450-distance-length-normalize.comp deleted file mode 100644 index c28face28a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/comp/scalar-std450-distance-length-normalize.comp +++ /dev/null @@ -1,19 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer SSBO -{ - float a; - float b; - float c; - float d; - float e; -} _9; - -void main() -{ - _9.c = distance(_9.a, _9.b); - _9.d = length(_9.a); - _9.e = normalize(_9.a); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/comp/shared.comp b/third_party/spirv-cross/reference/opt/shaders/comp/shared.comp deleted file mode 100644 index 62cf4a4b20..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/comp/shared.comp +++ /dev/null @@ -1,22 +0,0 @@ -#version 310 es -layout(local_size_x = 4, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) readonly buffer SSBO -{ - float in_data[]; -} _22; - -layout(binding = 1, std430) writeonly buffer SSBO2 -{ - float out_data[]; -} _44; - -shared float sShared[4]; - -void main() -{ - sShared[gl_LocalInvocationIndex] = _22.in_data[gl_GlobalInvocationID.x]; - barrier(); - _44.out_data[gl_GlobalInvocationID.x] = sShared[3u - gl_LocalInvocationIndex]; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/comp/ssbo-array-length.comp b/third_party/spirv-cross/reference/opt/shaders/comp/ssbo-array-length.comp deleted file mode 100644 index ddc666e9b9..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/comp/ssbo-array-length.comp +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 1, std140) buffer SSBO -{ - uint size; - float v[]; -} _11; - -void main() -{ - _11.size = uint(int(uint(_11.v.length()))); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/comp/ssbo-array.comp b/third_party/spirv-cross/reference/opt/shaders/comp/ssbo-array.comp deleted file mode 100644 index 6caf8f49f5..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/comp/ssbo-array.comp +++ /dev/null @@ -1,13 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer SSBO -{ - vec4 data[]; -} ssbos[2]; - -void main() -{ - ssbos[1].data[gl_GlobalInvocationID.x] = ssbos[0].data[gl_GlobalInvocationID.x]; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/comp/struct-layout.comp b/third_party/spirv-cross/reference/opt/shaders/comp/struct-layout.comp deleted file mode 100644 index 0f73fa7fa9..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/comp/struct-layout.comp +++ /dev/null @@ -1,23 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -struct Foo -{ - mat4 m; -}; - -layout(binding = 1, std430) writeonly buffer SSBO2 -{ - Foo out_data[]; -} _23; - -layout(binding = 0, std430) readonly buffer SSBO -{ - Foo in_data[]; -} _30; - -void main() -{ - _23.out_data[gl_GlobalInvocationID.x].m = _30.in_data[gl_GlobalInvocationID.x].m * _30.in_data[gl_GlobalInvocationID.x].m; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/comp/struct-packing.comp b/third_party/spirv-cross/reference/opt/shaders/comp/struct-packing.comp deleted file mode 100644 index f4b58342d4..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/comp/struct-packing.comp +++ /dev/null @@ -1,104 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -struct S0 -{ - vec2 a[1]; - float b; -}; - -struct S1 -{ - vec3 a; - float b; -}; - -struct S2 -{ - vec3 a[1]; - float b; -}; - -struct S3 -{ - vec2 a; - float b; -}; - -struct S4 -{ - vec2 c; -}; - -struct Content -{ - S0 m0s[1]; - S1 m1s[1]; - S2 m2s[1]; - S0 m0; - S1 m1; - S2 m2; - S3 m3; - float m4; - S4 m3s[8]; -}; - -layout(binding = 1, std430) restrict buffer SSBO1 -{ - Content content; - Content content1[2]; - Content content2; - mat2 m0; - mat2 m1; - mat2x3 m2[4]; - mat3x2 m3; - layout(row_major) mat2 m4; - layout(row_major) mat2 m5[9]; - layout(row_major) mat2x3 m6[4][2]; - layout(row_major) mat3x2 m7; - float array[]; -} ssbo_430; - -layout(binding = 0, std140) restrict buffer SSBO0 -{ - Content content; - Content content1[2]; - Content content2; - mat2 m0; - mat2 m1; - mat2x3 m2[4]; - mat3x2 m3; - layout(row_major) mat2 m4; - layout(row_major) mat2 m5[9]; - layout(row_major) mat2x3 m6[4][2]; - layout(row_major) mat3x2 m7; - float array[]; -} ssbo_140; - -void main() -{ - ssbo_430.content.m0s[0].a[0] = ssbo_140.content.m0s[0].a[0]; - ssbo_430.content.m0s[0].b = ssbo_140.content.m0s[0].b; - ssbo_430.content.m1s[0].a = ssbo_140.content.m1s[0].a; - ssbo_430.content.m1s[0].b = ssbo_140.content.m1s[0].b; - ssbo_430.content.m2s[0].a[0] = ssbo_140.content.m2s[0].a[0]; - ssbo_430.content.m2s[0].b = ssbo_140.content.m2s[0].b; - ssbo_430.content.m0.a[0] = ssbo_140.content.m0.a[0]; - ssbo_430.content.m0.b = ssbo_140.content.m0.b; - ssbo_430.content.m1.a = ssbo_140.content.m1.a; - ssbo_430.content.m1.b = ssbo_140.content.m1.b; - ssbo_430.content.m2.a[0] = ssbo_140.content.m2.a[0]; - ssbo_430.content.m2.b = ssbo_140.content.m2.b; - ssbo_430.content.m3.a = ssbo_140.content.m3.a; - ssbo_430.content.m3.b = ssbo_140.content.m3.b; - ssbo_430.content.m4 = ssbo_140.content.m4; - ssbo_430.content.m3s[0].c = ssbo_140.content.m3s[0].c; - ssbo_430.content.m3s[1].c = ssbo_140.content.m3s[1].c; - ssbo_430.content.m3s[2].c = ssbo_140.content.m3s[2].c; - ssbo_430.content.m3s[3].c = ssbo_140.content.m3s[3].c; - ssbo_430.content.m3s[4].c = ssbo_140.content.m3s[4].c; - ssbo_430.content.m3s[5].c = ssbo_140.content.m3s[5].c; - ssbo_430.content.m3s[6].c = ssbo_140.content.m3s[6].c; - ssbo_430.content.m3s[7].c = ssbo_140.content.m3s[7].c; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/comp/torture-loop.comp b/third_party/spirv-cross/reference/opt/shaders/comp/torture-loop.comp deleted file mode 100644 index 9ca2b9591f..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/comp/torture-loop.comp +++ /dev/null @@ -1,40 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) readonly buffer SSBO -{ - mat4 mvp; - vec4 in_data[]; -} _24; - -layout(binding = 1, std430) writeonly buffer SSBO2 -{ - vec4 out_data[]; -} _89; - -void main() -{ - vec4 _101; - _101 = _24.in_data[gl_GlobalInvocationID.x]; - for (int _95 = 0; (_95 + 1) < 10; ) - { - _101 *= 2.0; - _95 += 2; - continue; - } - vec4 _100; - _100 = _101; - vec4 _105; - for (uint _96 = 0u; _96 < 16u; _100 = _105, _96++) - { - _105 = _100; - for (uint _102 = 0u; _102 < 30u; ) - { - _105 = _24.mvp * _105; - _102++; - continue; - } - } - _89.out_data[gl_GlobalInvocationID.x] = _100; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/comp/type-alias.comp b/third_party/spirv-cross/reference/opt/shaders/comp/type-alias.comp deleted file mode 100644 index c0f57f4bda..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/comp/type-alias.comp +++ /dev/null @@ -1,33 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -struct S0 -{ - vec4 a; -}; - -struct S1 -{ - vec4 a; -}; - -layout(binding = 0, std430) buffer SSBO0 -{ - S0 s0s[]; -} _36; - -layout(binding = 1, std430) buffer SSBO1 -{ - S1 s1s[]; -} _55; - -layout(binding = 2, std430) buffer SSBO2 -{ - vec4 outputs[]; -} _66; - -void main() -{ - _66.outputs[gl_GlobalInvocationID.x] = _36.s0s[gl_GlobalInvocationID.x].a + _55.s1s[gl_GlobalInvocationID.x].a; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/comp/udiv.comp b/third_party/spirv-cross/reference/opt/shaders/comp/udiv.comp deleted file mode 100644 index 0c1f926ad0..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/comp/udiv.comp +++ /dev/null @@ -1,18 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer SSBO2 -{ - uint outputs[]; -} _10; - -layout(binding = 0, std430) buffer SSBO -{ - uint inputs[]; -} _23; - -void main() -{ - _10.outputs[gl_GlobalInvocationID.x] = _23.inputs[gl_GlobalInvocationID.x] / 29u; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/desktop-only/comp/enhanced-layouts.comp b/third_party/spirv-cross/reference/opt/shaders/desktop-only/comp/enhanced-layouts.comp deleted file mode 100644 index ba37ca237b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/desktop-only/comp/enhanced-layouts.comp +++ /dev/null @@ -1,40 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -struct Foo -{ - int a; - int b; - int c; -}; - -layout(binding = 1, std140) buffer SSBO1 -{ - layout(offset = 4) int a; - layout(offset = 8) int b; - layout(offset = 16) Foo foo; - layout(offset = 48) int c[8]; -} ssbo1; - -layout(binding = 2, std430) buffer SSBO2 -{ - layout(offset = 4) int a; - layout(offset = 8) int b; - layout(offset = 16) Foo foo; - layout(offset = 48) int c[8]; -} ssbo2; - -layout(binding = 0, std140) uniform UBO -{ - layout(offset = 4) int a; - layout(offset = 8) int b; - layout(offset = 16) Foo foo; - layout(offset = 48) int c[8]; -} ubo; - -void main() -{ - ssbo1.a = ssbo2.a; - ssbo1.b = ubo.b; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/desktop-only/comp/extended-arithmetic.desktop.comp b/third_party/spirv-cross/reference/opt/shaders/desktop-only/comp/extended-arithmetic.desktop.comp deleted file mode 100644 index 9c55c74db4..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/desktop-only/comp/extended-arithmetic.desktop.comp +++ /dev/null @@ -1,159 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -struct ResType -{ - uint _m0; - uint _m1; -}; - -struct ResType_1 -{ - uvec2 _m0; - uvec2 _m1; -}; - -struct ResType_2 -{ - uvec3 _m0; - uvec3 _m1; -}; - -struct ResType_3 -{ - uvec4 _m0; - uvec4 _m1; -}; - -struct ResType_4 -{ - int _m0; - int _m1; -}; - -struct ResType_5 -{ - ivec2 _m0; - ivec2 _m1; -}; - -struct ResType_6 -{ - ivec3 _m0; - ivec3 _m1; -}; - -struct ResType_7 -{ - ivec4 _m0; - ivec4 _m1; -}; - -layout(binding = 0, std430) buffer SSBOUint -{ - uint a; - uint b; - uint c; - uint d; - uvec2 a2; - uvec2 b2; - uvec2 c2; - uvec2 d2; - uvec3 a3; - uvec3 b3; - uvec3 c3; - uvec3 d3; - uvec4 a4; - uvec4 b4; - uvec4 c4; - uvec4 d4; -} u; - -layout(binding = 1, std430) buffer SSBOInt -{ - int a; - int b; - int c; - int d; - ivec2 a2; - ivec2 b2; - ivec2 c2; - ivec2 d2; - ivec3 a3; - ivec3 b3; - ivec3 c3; - ivec3 d3; - ivec4 a4; - ivec4 b4; - ivec4 c4; - ivec4 d4; -} i; - -void main() -{ - ResType _25; - _25._m0 = uaddCarry(u.a, u.b, _25._m1); - u.d = _25._m1; - u.c = _25._m0; - ResType_1 _40; - _40._m0 = uaddCarry(u.a2, u.b2, _40._m1); - u.d2 = _40._m1; - u.c2 = _40._m0; - ResType_2 _55; - _55._m0 = uaddCarry(u.a3, u.b3, _55._m1); - u.d3 = _55._m1; - u.c3 = _55._m0; - ResType_3 _70; - _70._m0 = uaddCarry(u.a4, u.b4, _70._m1); - u.d4 = _70._m1; - u.c4 = _70._m0; - ResType _79; - _79._m0 = usubBorrow(u.a, u.b, _79._m1); - u.d = _79._m1; - u.c = _79._m0; - ResType_1 _88; - _88._m0 = usubBorrow(u.a2, u.b2, _88._m1); - u.d2 = _88._m1; - u.c2 = _88._m0; - ResType_2 _97; - _97._m0 = usubBorrow(u.a3, u.b3, _97._m1); - u.d3 = _97._m1; - u.c3 = _97._m0; - ResType_3 _106; - _106._m0 = usubBorrow(u.a4, u.b4, _106._m1); - u.d4 = _106._m1; - u.c4 = _106._m0; - ResType _116; - umulExtended(u.a, u.b, _116._m1, _116._m0); - u.d = _116._m0; - u.c = _116._m1; - ResType_1 _125; - umulExtended(u.a2, u.b2, _125._m1, _125._m0); - u.d2 = _125._m0; - u.c2 = _125._m1; - ResType_2 _134; - umulExtended(u.a3, u.b3, _134._m1, _134._m0); - u.d3 = _134._m0; - u.c3 = _134._m1; - ResType_3 _143; - umulExtended(u.a4, u.b4, _143._m1, _143._m0); - u.d4 = _143._m0; - u.c4 = _143._m1; - ResType_4 _160; - imulExtended(i.a, i.b, _160._m1, _160._m0); - i.d = _160._m0; - i.c = _160._m1; - ResType_5 _171; - imulExtended(i.a2, i.b2, _171._m1, _171._m0); - i.d2 = _171._m0; - i.c2 = _171._m1; - ResType_6 _182; - imulExtended(i.a3, i.b3, _182._m1, _182._m0); - i.d3 = _182._m0; - i.c3 = _182._m1; - ResType_7 _193; - imulExtended(i.a4, i.b4, _193._m1, _193._m0); - i.d4 = _193._m0; - i.c4 = _193._m1; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/desktop-only/comp/fp64.desktop.comp b/third_party/spirv-cross/reference/opt/shaders/desktop-only/comp/fp64.desktop.comp deleted file mode 100644 index 3839a091f5..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/desktop-only/comp/fp64.desktop.comp +++ /dev/null @@ -1,63 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -struct M0 -{ - double v; - dvec2 b[2]; - dmat2x3 c; - dmat3x2 d; -}; - -layout(binding = 0, std430) buffer SSBO0 -{ - dvec4 a; - M0 m0; - dmat4 b; -} ssbo_0; - -layout(binding = 1, std430) buffer SSBO1 -{ - dmat4 a; - dvec4 b; - M0 m0; -} ssbo_1; - -layout(binding = 2, std430) buffer SSBO2 -{ - double a[4]; - dvec2 b[4]; -} ssbo_2; - -layout(binding = 3, std140) buffer SSBO3 -{ - double a[4]; - dvec2 b[4]; -} ssbo_3; - -void main() -{ - ssbo_0.a += dvec4(10.0lf, 20.0lf, 30.0lf, 40.0lf); - ssbo_0.a += dvec4(20.0lf); - dvec4 _40 = ssbo_0.a; - ssbo_0.a = abs(_40); - ssbo_0.a = sign(_40); - ssbo_0.a = floor(_40); - ssbo_0.a = trunc(_40); - ssbo_0.a = round(_40); - ssbo_0.a = roundEven(_40); - ssbo_0.a = ceil(_40); - ssbo_0.a = fract(_40); - ssbo_0.a = mod(_40, dvec4(20.0lf)); - ssbo_0.a = mod(_40, _40); - ssbo_0.a = min(_40, _40); - ssbo_0.a = max(_40, _40); - ssbo_0.a = clamp(_40, _40, _40); - ssbo_0.a = mix(_40, _40, _40); - ssbo_0.a = step(_40, _40); - ssbo_0.a = smoothstep(_40, _40, _40); - ssbo_1.b.x += 1.0lf; - ssbo_2.b[0].x += 1.0lf; - ssbo_3.b[0].x += 1.0lf; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/desktop-only/comp/image-formats.desktop.noeliminate.comp b/third_party/spirv-cross/reference/opt/shaders/desktop-only/comp/image-formats.desktop.noeliminate.comp deleted file mode 100644 index 37b2863558..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/desktop-only/comp/image-formats.desktop.noeliminate.comp +++ /dev/null @@ -1,7 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -void main() -{ -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/desktop-only/comp/int64.desktop.comp b/third_party/spirv-cross/reference/opt/shaders/desktop-only/comp/int64.desktop.comp deleted file mode 100644 index 702456b303..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/desktop-only/comp/int64.desktop.comp +++ /dev/null @@ -1,52 +0,0 @@ -#version 450 -#extension GL_ARB_gpu_shader_int64 : require -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -struct M0 -{ - int64_t v; - i64vec2 b[2]; - uint64_t c; - uint64_t d[5]; -}; - -layout(binding = 0, std430) buffer SSBO0 -{ - i64vec4 a; - M0 m0; -} ssbo_0; - -layout(binding = 1, std430) buffer SSBO1 -{ - u64vec4 b; - M0 m0; -} ssbo_1; - -layout(binding = 2, std430) buffer SSBO2 -{ - int64_t a[4]; - i64vec2 b[4]; -} ssbo_2; - -layout(binding = 3, std140) buffer SSBO3 -{ - int64_t a[4]; - i64vec2 b[4]; -} ssbo_3; - -void main() -{ - ssbo_0.a += i64vec4(10l, 20l, 30l, 40l); - ssbo_1.b += u64vec4(999999999999999999ul, 8888888888888888ul, 77777777777777777ul, 6666666666666666ul); - ssbo_0.a += i64vec4(20l); - ssbo_0.a = abs(ssbo_0.a + i64vec4(ssbo_1.b)); - ssbo_0.a += i64vec4(1l); - ssbo_1.b += u64vec4(i64vec4(1l)); - ssbo_0.a -= i64vec4(1l); - ssbo_1.b -= u64vec4(i64vec4(1l)); - ssbo_1.b = doubleBitsToUint64(int64BitsToDouble(ssbo_0.a)); - ssbo_0.a = doubleBitsToInt64(uint64BitsToDouble(ssbo_1.b)); - ssbo_2.a[0] += 1l; - ssbo_3.a[0] += 2l; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/clip-cull-distance.desktop.frag b/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/clip-cull-distance.desktop.frag deleted file mode 100644 index 3cc3205509..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/clip-cull-distance.desktop.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -in float gl_ClipDistance[4]; -in float gl_CullDistance[3]; - -layout(location = 0) out float FragColor; - -void main() -{ - FragColor = gl_ClipDistance[0] + gl_CullDistance[0]; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/control-dependent-in-branch.desktop.frag b/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/control-dependent-in-branch.desktop.frag deleted file mode 100644 index 29c59012cc..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/control-dependent-in-branch.desktop.frag +++ /dev/null @@ -1,37 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler2D uSampler; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 vInput; - -void main() -{ - FragColor = vInput; - vec4 _23 = texture(uSampler, vInput.xy); - vec4 _26 = dFdx(vInput); - vec4 _29 = dFdy(vInput); - vec4 _32 = fwidth(vInput); - vec4 _35 = dFdxCoarse(vInput); - vec4 _38 = dFdyCoarse(vInput); - vec4 _41 = fwidthCoarse(vInput); - vec4 _44 = dFdxFine(vInput); - vec4 _47 = dFdyFine(vInput); - vec4 _50 = fwidthFine(vInput); - vec2 _56 = textureQueryLod(uSampler, vInput.zw); - if (vInput.y > 10.0) - { - FragColor += _23; - FragColor += _26; - FragColor += _29; - FragColor += _32; - FragColor += _35; - FragColor += _38; - FragColor += _41; - FragColor += _44; - FragColor += _47; - FragColor += _50; - FragColor += _56.xyxy; - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/depth-greater-than.desktop.frag b/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/depth-greater-than.desktop.frag deleted file mode 100644 index 8b7c296447..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/depth-greater-than.desktop.frag +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 -layout(depth_greater) out float gl_FragDepth; -layout(early_fragment_tests) in; - -void main() -{ - gl_FragDepth = 0.5; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/depth-less-than.desktop.frag b/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/depth-less-than.desktop.frag deleted file mode 100644 index 44752eb8fb..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/depth-less-than.desktop.frag +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 -layout(depth_less) out float gl_FragDepth; -layout(early_fragment_tests) in; - -void main() -{ - gl_FragDepth = 0.5; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/dual-source-blending.desktop.frag b/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/dual-source-blending.desktop.frag deleted file mode 100644 index 3d946b04a5..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/dual-source-blending.desktop.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 - -layout(location = 0, index = 0) out vec4 FragColor0; -layout(location = 0, index = 1) out vec4 FragColor1; - -void main() -{ - FragColor0 = vec4(1.0); - FragColor1 = vec4(2.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/hlsl-uav-block-alias.asm.frag b/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/hlsl-uav-block-alias.asm.frag deleted file mode 100644 index 2d0809fdbf..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/hlsl-uav-block-alias.asm.frag +++ /dev/null @@ -1,19 +0,0 @@ -#version 450 - -layout(binding = 0, std430) buffer Foobar -{ - vec4 _data[]; -} Foobar_1; - -layout(binding = 1, std430) buffer Foobaz -{ - vec4 _data[]; -} Foobaz_1; - -layout(location = 0) out vec4 _entryPointOutput; - -void main() -{ - _entryPointOutput = Foobar_1._data[0] + Foobaz_1._data[0]; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/image-ms.desktop.frag b/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/image-ms.desktop.frag deleted file mode 100644 index 1276981768..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/image-ms.desktop.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(binding = 0, rgba8) uniform image2DMS uImage; -layout(binding = 1, rgba8) uniform image2DMSArray uImageArray; - -void main() -{ - vec4 _29 = imageLoad(uImageArray, ivec3(1, 2, 4), 3); - imageStore(uImage, ivec2(2, 3), 1, imageLoad(uImage, ivec2(1, 2), 2)); - imageStore(uImageArray, ivec3(2, 3, 7), 1, _29); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/image-query.desktop.frag b/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/image-query.desktop.frag deleted file mode 100644 index 05ce10adfa..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/image-query.desktop.frag +++ /dev/null @@ -1,6 +0,0 @@ -#version 450 - -void main() -{ -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/image-size.frag b/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/image-size.frag deleted file mode 100644 index 5bb060398e..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/image-size.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(binding = 0, r32f) uniform readonly writeonly image2D uImage1; -layout(binding = 1, r32f) uniform readonly writeonly image2D uImage2; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(vec2(imageSize(uImage1)), vec2(imageSize(uImage2))); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/image-size.no-qualifier-deduction.frag b/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/image-size.no-qualifier-deduction.frag deleted file mode 100644 index 1d9062064a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/image-size.no-qualifier-deduction.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(binding = 0, r32f) uniform image2D uImage1; -layout(binding = 1, r32f) uniform image2D uImage2; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(vec2(imageSize(uImage1)), vec2(imageSize(uImage2))); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/in-block-qualifiers.frag b/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/in-block-qualifiers.frag deleted file mode 100644 index d4622801df..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/in-block-qualifiers.frag +++ /dev/null @@ -1,21 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in VertexData -{ - flat float f; - centroid vec4 g; - flat int h; - float i; -} vin; - -layout(location = 4) flat in float f; -layout(location = 5) centroid in vec4 g; -layout(location = 6) flat in int h; -layout(location = 7) sample in float i; - -void main() -{ - FragColor = ((((((vec4(vin.f) + vin.g) + vec4(float(vin.h))) + vec4(vin.i)) + vec4(f)) + g) + vec4(float(h))) + vec4(i); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/layout-component.desktop.frag b/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/layout-component.desktop.frag deleted file mode 100644 index 13f17feeed..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/layout-component.desktop.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 - -layout(location = 0) out vec2 FragColor; -layout(location = 0, component = 0) in vec2 v0; -layout(location = 0, component = 2) in float v1; -in Vertex -{ - layout(location = 1, component = 2) float v3; -} _20; - - -void main() -{ - FragColor = (v0 + vec2(v1)) + vec2(_20.v3); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/query-levels.desktop.frag b/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/query-levels.desktop.frag deleted file mode 100644 index 4a80cbf81f..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/query-levels.desktop.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler2D uSampler; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(float(textureQueryLevels(uSampler))); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/query-lod.desktop.frag b/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/query-lod.desktop.frag deleted file mode 100644 index f43543b8c0..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/query-lod.desktop.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler2D uSampler; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec2 vTexCoord; - -void main() -{ - FragColor = textureQueryLod(uSampler, vTexCoord).xyxy; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/sampler-ms-query.desktop.frag b/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/sampler-ms-query.desktop.frag deleted file mode 100644 index 4c30ed1529..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/sampler-ms-query.desktop.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler2DMS uSampler; -layout(binding = 1) uniform sampler2DMSArray uSamplerArray; -layout(binding = 2, rgba8) uniform readonly writeonly image2DMS uImage; -layout(binding = 3, rgba8) uniform readonly writeonly image2DMSArray uImageArray; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(float(((textureSamples(uSampler) + textureSamples(uSamplerArray)) + imageSamples(uImage)) + imageSamples(uImageArray))); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/stencil-export.desktop.frag b/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/stencil-export.desktop.frag deleted file mode 100644 index 65082a8b2d..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/stencil-export.desktop.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 -#extension GL_ARB_shader_stencil_export : require - -layout(location = 0) out vec4 MRT0; -layout(location = 1) out vec4 MRT1; - -void main() -{ - MRT0 = vec4(1.0); - MRT1 = vec4(1.0, 0.0, 1.0, 1.0); - gl_FragStencilRefARB = 100; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/texture-proj-shadow.desktop.frag b/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/texture-proj-shadow.desktop.frag deleted file mode 100644 index d5e45bda43..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/desktop-only/frag/texture-proj-shadow.desktop.frag +++ /dev/null @@ -1,26 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler1DShadow uShadow1D; -layout(binding = 1) uniform sampler2DShadow uShadow2D; -layout(binding = 2) uniform sampler1D uSampler1D; -layout(binding = 3) uniform sampler2D uSampler2D; -layout(binding = 4) uniform sampler3D uSampler3D; - -layout(location = 0) out float FragColor; -layout(location = 1) in vec4 vClip4; -layout(location = 2) in vec2 vClip2; -layout(location = 0) in vec3 vClip3; - -void main() -{ - vec4 _20 = vClip4; - _20.y = vClip4.w; - FragColor = textureProj(uShadow1D, vec4(_20.x, 0.0, vClip4.z, _20.y)); - vec4 _30 = vClip4; - _30.z = vClip4.w; - FragColor = textureProj(uShadow2D, vec4(_30.xy, vClip4.z, _30.z)); - FragColor = textureProj(uSampler1D, vClip2).x; - FragColor = textureProj(uSampler2D, vClip3).x; - FragColor = textureProj(uSampler3D, vClip4).x; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/desktop-only/geom/basic.desktop.sso.geom b/third_party/spirv-cross/reference/opt/shaders/desktop-only/geom/basic.desktop.sso.geom deleted file mode 100644 index 8e51cfa36b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/desktop-only/geom/basic.desktop.sso.geom +++ /dev/null @@ -1,36 +0,0 @@ -#version 450 -layout(invocations = 4, triangles) in; -layout(max_vertices = 3, triangle_strip) out; - -in gl_PerVertex -{ - vec4 gl_Position; -} gl_in[]; - -out gl_PerVertex -{ - vec4 gl_Position; -}; - -layout(location = 0) out vec3 vNormal; -layout(location = 0) in VertexData -{ - vec3 normal; -} vin[3]; - - -void main() -{ - gl_Position = gl_in[0].gl_Position; - float _37 = float(gl_InvocationID); - vNormal = vin[0].normal + vec3(_37); - EmitVertex(); - gl_Position = gl_in[1].gl_Position; - vNormal = vin[1].normal + vec3(4.0 * _37); - EmitVertex(); - gl_Position = gl_in[2].gl_Position; - vNormal = vin[2].normal + vec3(2.0 * _37); - EmitVertex(); - EndPrimitive(); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/desktop-only/geom/viewport-index.desktop.geom b/third_party/spirv-cross/reference/opt/shaders/desktop-only/geom/viewport-index.desktop.geom deleted file mode 100644 index 773aeb8bfd..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/desktop-only/geom/viewport-index.desktop.geom +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 -layout(triangles) in; -layout(max_vertices = 4, triangle_strip) out; - -void main() -{ - gl_ViewportIndex = 1; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/desktop-only/tesc/basic.desktop.sso.tesc b/third_party/spirv-cross/reference/opt/shaders/desktop-only/tesc/basic.desktop.sso.tesc deleted file mode 100644 index c51699db6d..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/desktop-only/tesc/basic.desktop.sso.tesc +++ /dev/null @@ -1,27 +0,0 @@ -#version 450 -layout(vertices = 1) out; - -in gl_PerVertex -{ - vec4 gl_Position; -} gl_in[]; - -out gl_PerVertex -{ - vec4 gl_Position; -} gl_out[1]; - -layout(location = 0) patch out vec3 vFoo; - -void main() -{ - gl_TessLevelInner[0] = 8.8999996185302734375; - gl_TessLevelInner[1] = 6.900000095367431640625; - gl_TessLevelOuter[0] = 8.8999996185302734375; - gl_TessLevelOuter[1] = 6.900000095367431640625; - gl_TessLevelOuter[2] = 3.900000095367431640625; - gl_TessLevelOuter[3] = 4.900000095367431640625; - vFoo = vec3(1.0); - gl_out[gl_InvocationID].gl_Position = gl_in[0].gl_Position + gl_in[1].gl_Position; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/desktop-only/tese/triangle.desktop.sso.tese b/third_party/spirv-cross/reference/opt/shaders/desktop-only/tese/triangle.desktop.sso.tese deleted file mode 100644 index c9bacd464e..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/desktop-only/tese/triangle.desktop.sso.tese +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 -layout(triangles, cw, fractional_even_spacing) in; - -in gl_PerVertex -{ - vec4 gl_Position; -} gl_in[]; - -out gl_PerVertex -{ - vec4 gl_Position; -}; - -void main() -{ - gl_Position = ((gl_in[0].gl_Position * gl_TessCoord.x) + (gl_in[1].gl_Position * gl_TessCoord.y)) + (gl_in[2].gl_Position * gl_TessCoord.z); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/desktop-only/vert/basic.desktop.sso.vert b/third_party/spirv-cross/reference/opt/shaders/desktop-only/vert/basic.desktop.sso.vert deleted file mode 100644 index 2f880398e0..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/desktop-only/vert/basic.desktop.sso.vert +++ /dev/null @@ -1,22 +0,0 @@ -#version 450 - -out gl_PerVertex -{ - vec4 gl_Position; -}; - -layout(binding = 0, std140) uniform UBO -{ - mat4 uMVP; -} _16; - -layout(location = 0) in vec4 aVertex; -layout(location = 0) out vec3 vNormal; -layout(location = 1) in vec3 aNormal; - -void main() -{ - gl_Position = _16.uMVP * aVertex; - vNormal = aNormal; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/desktop-only/vert/clip-cull-distance.desktop.sso.vert b/third_party/spirv-cross/reference/opt/shaders/desktop-only/vert/clip-cull-distance.desktop.sso.vert deleted file mode 100644 index a7c5d761c9..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/desktop-only/vert/clip-cull-distance.desktop.sso.vert +++ /dev/null @@ -1,20 +0,0 @@ -#version 450 - -out gl_PerVertex -{ - vec4 gl_Position; - float gl_PointSize; - float gl_ClipDistance[4]; - float gl_CullDistance[3]; -}; - -void main() -{ - gl_Position = vec4(1.0); - gl_ClipDistance[0] = 0.0; - gl_ClipDistance[1] = 0.0; - gl_ClipDistance[2] = 0.0; - gl_ClipDistance[3] = 0.0; - gl_CullDistance[1] = 4.0; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/desktop-only/vert/clip-cull-distance.desktop.vert b/third_party/spirv-cross/reference/opt/shaders/desktop-only/vert/clip-cull-distance.desktop.vert deleted file mode 100644 index 2f3d49f55d..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/desktop-only/vert/clip-cull-distance.desktop.vert +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 - -out float gl_ClipDistance[4]; -out float gl_CullDistance[3]; - -void main() -{ - gl_Position = vec4(1.0); - gl_ClipDistance[0] = 0.0; - gl_ClipDistance[1] = 0.0; - gl_ClipDistance[2] = 0.0; - gl_ClipDistance[3] = 0.0; - gl_CullDistance[1] = 4.0; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/desktop-only/vert/out-block-qualifiers.vert b/third_party/spirv-cross/reference/opt/shaders/desktop-only/vert/out-block-qualifiers.vert deleted file mode 100644 index 7c731684bc..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/desktop-only/vert/out-block-qualifiers.vert +++ /dev/null @@ -1,27 +0,0 @@ -#version 450 - -layout(location = 0) out VertexData -{ - flat float f; - centroid vec4 g; - flat int h; - float i; -} vout; - -layout(location = 4) flat out float f; -layout(location = 5) centroid out vec4 g; -layout(location = 6) flat out int h; -layout(location = 7) out float i; - -void main() -{ - vout.f = 10.0; - vout.g = vec4(20.0); - vout.h = 20; - vout.i = 30.0; - f = 10.0; - g = vec4(20.0); - h = 20; - i = 30.0; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/desktop-only/vert/shader-draw-parameters-450.desktop.vk.vert b/third_party/spirv-cross/reference/opt/shaders/desktop-only/vert/shader-draw-parameters-450.desktop.vk.vert deleted file mode 100644 index 2b3c5ce051..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/desktop-only/vert/shader-draw-parameters-450.desktop.vk.vert +++ /dev/null @@ -1,24 +0,0 @@ -#version 450 -#ifdef GL_ARB_shader_draw_parameters -#extension GL_ARB_shader_draw_parameters : enable -#endif - -#ifdef GL_ARB_shader_draw_parameters -#define SPIRV_Cross_BaseVertex gl_BaseVertexARB -#else -uniform int SPIRV_Cross_BaseVertex; -#endif -#ifdef GL_ARB_shader_draw_parameters -#define SPIRV_Cross_BaseInstance gl_BaseInstanceARB -#else -uniform int SPIRV_Cross_BaseInstance; -#endif -#ifndef GL_ARB_shader_draw_parameters -#error GL_ARB_shader_draw_parameters is not supported. -#endif - -void main() -{ - gl_Position = vec4(float(SPIRV_Cross_BaseVertex), float(SPIRV_Cross_BaseInstance), float(gl_DrawIDARB), 1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/desktop-only/vert/shader-draw-parameters-450.desktop.vk.vert.vk b/third_party/spirv-cross/reference/opt/shaders/desktop-only/vert/shader-draw-parameters-450.desktop.vk.vert.vk deleted file mode 100644 index 6121dd8f15..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/desktop-only/vert/shader-draw-parameters-450.desktop.vk.vert.vk +++ /dev/null @@ -1,8 +0,0 @@ -#version 450 -#extension GL_ARB_shader_draw_parameters : require - -void main() -{ - gl_Position = vec4(float(gl_BaseVertexARB), float(gl_BaseInstanceARB), float(gl_DrawIDARB), 1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/desktop-only/vert/shader-draw-parameters.desktop.vk.vert b/third_party/spirv-cross/reference/opt/shaders/desktop-only/vert/shader-draw-parameters.desktop.vk.vert deleted file mode 100644 index bc16d0431a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/desktop-only/vert/shader-draw-parameters.desktop.vk.vert +++ /dev/null @@ -1,24 +0,0 @@ -#version 460 -#ifdef GL_ARB_shader_draw_parameters -#extension GL_ARB_shader_draw_parameters : enable -#endif - -#ifdef GL_ARB_shader_draw_parameters -#define SPIRV_Cross_BaseVertex gl_BaseVertexARB -#else -uniform int SPIRV_Cross_BaseVertex; -#endif -#ifdef GL_ARB_shader_draw_parameters -#define SPIRV_Cross_BaseInstance gl_BaseInstanceARB -#else -uniform int SPIRV_Cross_BaseInstance; -#endif -#ifndef GL_ARB_shader_draw_parameters -#error GL_ARB_shader_draw_parameters is not supported. -#endif - -void main() -{ - gl_Position = vec4(float(SPIRV_Cross_BaseVertex), float(SPIRV_Cross_BaseInstance), float(gl_DrawIDARB), 1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/desktop-only/vert/shader-draw-parameters.desktop.vk.vert.vk b/third_party/spirv-cross/reference/opt/shaders/desktop-only/vert/shader-draw-parameters.desktop.vk.vert.vk deleted file mode 100644 index b6948fbc4a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/desktop-only/vert/shader-draw-parameters.desktop.vk.vert.vk +++ /dev/null @@ -1,7 +0,0 @@ -#version 460 - -void main() -{ - gl_Position = vec4(float(gl_BaseVertex), float(gl_BaseInstance), float(gl_DrawID), 1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/flatten/array.flatten.vert b/third_party/spirv-cross/reference/opt/shaders/flatten/array.flatten.vert deleted file mode 100644 index de4eb3b78d..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/flatten/array.flatten.vert +++ /dev/null @@ -1,10 +0,0 @@ -#version 310 es - -uniform vec4 UBO[56]; -layout(location = 0) in vec4 aVertex; - -void main() -{ - gl_Position = ((mat4(UBO[40], UBO[41], UBO[42], UBO[43]) * aVertex) + UBO[55]) + ((UBO[50] + UBO[45]) + vec4(UBO[54].x)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/flatten/basic.flatten.vert b/third_party/spirv-cross/reference/opt/shaders/flatten/basic.flatten.vert deleted file mode 100644 index f7eb758f2a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/flatten/basic.flatten.vert +++ /dev/null @@ -1,13 +0,0 @@ -#version 310 es - -uniform vec4 UBO[4]; -layout(location = 0) in vec4 aVertex; -layout(location = 0) out vec3 vNormal; -layout(location = 1) in vec3 aNormal; - -void main() -{ - gl_Position = mat4(UBO[0], UBO[1], UBO[2], UBO[3]) * aVertex; - vNormal = aNormal; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/flatten/copy.flatten.vert b/third_party/spirv-cross/reference/opt/shaders/flatten/copy.flatten.vert deleted file mode 100644 index 33caec4f78..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/flatten/copy.flatten.vert +++ /dev/null @@ -1,27 +0,0 @@ -#version 310 es - -struct Light -{ - vec3 Position; - float Radius; - vec4 Color; -}; - -uniform vec4 UBO[12]; -layout(location = 0) in vec4 aVertex; -layout(location = 0) out vec4 vColor; -layout(location = 1) in vec3 aNormal; - -void main() -{ - gl_Position = mat4(UBO[0], UBO[1], UBO[2], UBO[3]) * aVertex; - vColor = vec4(0.0); - for (int _96 = 0; _96 < 4; ) - { - vec3 _68 = aVertex.xyz - Light(UBO[_96 * 2 + 4].xyz, UBO[_96 * 2 + 4].w, UBO[_96 * 2 + 5]).Position; - vColor += ((UBO[_96 * 2 + 5] * clamp(1.0 - (length(_68) / Light(UBO[_96 * 2 + 4].xyz, UBO[_96 * 2 + 4].w, UBO[_96 * 2 + 5]).Radius), 0.0, 1.0)) * dot(aNormal, normalize(_68))); - _96++; - continue; - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/flatten/dynamic.flatten.vert b/third_party/spirv-cross/reference/opt/shaders/flatten/dynamic.flatten.vert deleted file mode 100644 index 7129af2869..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/flatten/dynamic.flatten.vert +++ /dev/null @@ -1,27 +0,0 @@ -#version 310 es - -struct Light -{ - vec3 Position; - float Radius; - vec4 Color; -}; - -uniform vec4 UBO[12]; -layout(location = 0) in vec4 aVertex; -layout(location = 0) out vec4 vColor; -layout(location = 1) in vec3 aNormal; - -void main() -{ - gl_Position = mat4(UBO[0], UBO[1], UBO[2], UBO[3]) * aVertex; - vColor = vec4(0.0); - for (int _82 = 0; _82 < 4; ) - { - vec3 _54 = aVertex.xyz - UBO[_82 * 2 + 4].xyz; - vColor += ((UBO[_82 * 2 + 5] * clamp(1.0 - (length(_54) / UBO[_82 * 2 + 4].w), 0.0, 1.0)) * dot(aNormal, normalize(_54))); - _82++; - continue; - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/flatten/matrix-conversion.flatten.frag b/third_party/spirv-cross/reference/opt/shaders/flatten/matrix-conversion.flatten.frag deleted file mode 100644 index ee79bf5b8a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/flatten/matrix-conversion.flatten.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -uniform vec4 UBO[4]; -layout(location = 0) out vec3 FragColor; -layout(location = 0) flat in vec3 vNormal; - -void main() -{ - mat4 _19 = mat4(UBO[0], UBO[1], UBO[2], UBO[3]); - FragColor = mat3(_19[0].xyz, _19[1].xyz, _19[2].xyz) * vNormal; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/flatten/matrixindex.flatten.vert b/third_party/spirv-cross/reference/opt/shaders/flatten/matrixindex.flatten.vert deleted file mode 100644 index f6d0fa486d..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/flatten/matrixindex.flatten.vert +++ /dev/null @@ -1,19 +0,0 @@ -#version 310 es - -uniform vec4 UBO[14]; -layout(location = 0) out vec4 oA; -layout(location = 1) out vec4 oB; -layout(location = 2) out vec4 oC; -layout(location = 3) out vec4 oD; -layout(location = 4) out vec4 oE; - -void main() -{ - gl_Position = vec4(0.0); - oA = UBO[1]; - oB = vec4(UBO[4].y, UBO[5].y, UBO[6].y, UBO[7].y); - oC = UBO[9]; - oD = vec4(UBO[10].x, UBO[11].x, UBO[12].x, UBO[13].x); - oE = vec4(UBO[1].z, UBO[6].y, UBO[9].z, UBO[12].y); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/flatten/multiindex.flatten.vert b/third_party/spirv-cross/reference/opt/shaders/flatten/multiindex.flatten.vert deleted file mode 100644 index 3850bf6c70..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/flatten/multiindex.flatten.vert +++ /dev/null @@ -1,10 +0,0 @@ -#version 310 es - -uniform vec4 UBO[15]; -layout(location = 0) in ivec2 aIndex; - -void main() -{ - gl_Position = UBO[aIndex.x * 5 + aIndex.y * 1 + 0]; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/flatten/push-constant.flatten.vert b/third_party/spirv-cross/reference/opt/shaders/flatten/push-constant.flatten.vert deleted file mode 100644 index 216c1f9d1b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/flatten/push-constant.flatten.vert +++ /dev/null @@ -1,13 +0,0 @@ -#version 310 es - -uniform vec4 PushMe[6]; -layout(location = 1) in vec4 Pos; -layout(location = 0) out vec2 vRot; -layout(location = 0) in vec2 Rot; - -void main() -{ - gl_Position = mat4(PushMe[0], PushMe[1], PushMe[2], PushMe[3]) * Pos; - vRot = (mat2(PushMe[4].xy, PushMe[4].zw) * Rot) + vec2(PushMe[5].z); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/flatten/rowmajor.flatten.vert b/third_party/spirv-cross/reference/opt/shaders/flatten/rowmajor.flatten.vert deleted file mode 100644 index b74aa004b4..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/flatten/rowmajor.flatten.vert +++ /dev/null @@ -1,10 +0,0 @@ -#version 310 es - -uniform vec4 UBO[12]; -layout(location = 0) in vec4 aVertex; - -void main() -{ - gl_Position = (mat4(UBO[0], UBO[1], UBO[2], UBO[3]) * aVertex) + (aVertex * mat4(UBO[4], UBO[5], UBO[6], UBO[7])); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/flatten/struct.flatten.vert b/third_party/spirv-cross/reference/opt/shaders/flatten/struct.flatten.vert deleted file mode 100644 index 35db010c76..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/flatten/struct.flatten.vert +++ /dev/null @@ -1,22 +0,0 @@ -#version 310 es - -struct Light -{ - vec3 Position; - float Radius; - vec4 Color; -}; - -uniform vec4 UBO[6]; -layout(location = 0) in vec4 aVertex; -layout(location = 0) out vec4 vColor; -layout(location = 1) in vec3 aNormal; - -void main() -{ - gl_Position = mat4(UBO[0], UBO[1], UBO[2], UBO[3]) * aVertex; - vColor = vec4(0.0); - vec3 _39 = aVertex.xyz - UBO[4].xyz; - vColor += ((UBO[5] * clamp(1.0 - (length(_39) / UBO[4].w), 0.0, 1.0)) * dot(aNormal, normalize(_39))); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/flatten/struct.rowmajor.flatten.vert b/third_party/spirv-cross/reference/opt/shaders/flatten/struct.rowmajor.flatten.vert deleted file mode 100644 index 709d99291a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/flatten/struct.rowmajor.flatten.vert +++ /dev/null @@ -1,21 +0,0 @@ -#version 310 es - -struct Foo -{ - mat3x4 MVP0; - mat3x4 MVP1; -}; - -uniform vec4 UBO[8]; -layout(location = 0) in vec4 v0; -layout(location = 1) in vec4 v1; -layout(location = 0) out vec3 V0; -layout(location = 1) out vec3 V1; - -void main() -{ - Foo _20 = Foo(transpose(mat4x3(UBO[0].xyz, UBO[1].xyz, UBO[2].xyz, UBO[3].xyz)), transpose(mat4x3(UBO[4].xyz, UBO[5].xyz, UBO[6].xyz, UBO[7].xyz))); - V0 = v0 * _20.MVP0; - V1 = v1 * _20.MVP1; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/flatten/swizzle.flatten.vert b/third_party/spirv-cross/reference/opt/shaders/flatten/swizzle.flatten.vert deleted file mode 100644 index 92afb475e6..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/flatten/swizzle.flatten.vert +++ /dev/null @@ -1,21 +0,0 @@ -#version 310 es - -uniform vec4 UBO[8]; -layout(location = 0) out vec4 oA; -layout(location = 1) out vec4 oB; -layout(location = 2) out vec4 oC; -layout(location = 3) out vec4 oD; -layout(location = 4) out vec4 oE; -layout(location = 5) out vec4 oF; - -void main() -{ - gl_Position = vec4(0.0); - oA = UBO[0]; - oB = vec4(UBO[1].xy, UBO[1].zw); - oC = vec4(UBO[2].x, UBO[3].xyz); - oD = vec4(UBO[4].xyz, UBO[4].w); - oE = vec4(UBO[5].x, UBO[5].y, UBO[5].z, UBO[5].w); - oF = vec4(UBO[6].x, UBO[6].zw, UBO[7].x); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/flatten/types.flatten.frag b/third_party/spirv-cross/reference/opt/shaders/flatten/types.flatten.frag deleted file mode 100644 index a74327d97b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/flatten/types.flatten.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -uniform mediump ivec4 UBO1[2]; -uniform mediump uvec4 UBO2[2]; -uniform vec4 UBO0[2]; -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = ((((vec4(UBO1[0]) + vec4(UBO1[1])) + vec4(UBO2[0])) + vec4(UBO2[1])) + UBO0[0]) + UBO0[1]; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/array-lut-no-loop-variable.frag b/third_party/spirv-cross/reference/opt/shaders/frag/array-lut-no-loop-variable.frag deleted file mode 100644 index f50d0d4e43..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/array-lut-no-loop-variable.frag +++ /dev/null @@ -1,19 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -const float _17[5] = float[](1.0, 2.0, 3.0, 4.0, 5.0); - -layout(location = 0) out vec4 FragColor; - -void main() -{ - for (mediump int _46 = 0; _46 < 4; ) - { - mediump int _33 = _46 + 1; - FragColor += vec4(_17[_33]); - _46 = _33; - continue; - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/avoid-expression-lowering-to-loop.frag b/third_party/spirv-cross/reference/opt/shaders/frag/avoid-expression-lowering-to-loop.frag deleted file mode 100644 index 9019ac0d36..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/avoid-expression-lowering-to-loop.frag +++ /dev/null @@ -1,29 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(binding = 1, std140) uniform Count -{ - float count; -} _44; - -layout(binding = 0) uniform mediump sampler2D tex; - -layout(location = 0) in highp vec4 vertex; -layout(location = 0) out vec4 fragColor; - -void main() -{ - highp float _24 = 1.0 / float(textureSize(tex, 0).x); - highp float _34 = dFdx(vertex.x); - float _62; - _62 = 0.0; - for (float _61 = 0.0; _61 < _44.count; ) - { - _62 += (_24 * _34); - _61 += 1.0; - continue; - } - fragColor = vec4(_62); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/barycentric-nv.frag b/third_party/spirv-cross/reference/opt/shaders/frag/barycentric-nv.frag deleted file mode 100644 index cc3b4de27c..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/barycentric-nv.frag +++ /dev/null @@ -1,19 +0,0 @@ -#version 450 -#extension GL_NV_fragment_shader_barycentric : require - -layout(binding = 0, std430) readonly buffer Vertices -{ - vec2 uvs[]; -} _19; - -layout(location = 0) out vec2 value; - -void main() -{ - int _23 = 3 * gl_PrimitiveID; - int _32 = _23 + 1; - int _39 = _23 + 2; - value = ((_19.uvs[_23] * gl_BaryCoordNV.x) + (_19.uvs[_32] * gl_BaryCoordNV.y)) + (_19.uvs[_39] * gl_BaryCoordNV.z); - value += (((_19.uvs[_23] * gl_BaryCoordNoPerspNV.x) + (_19.uvs[_32] * gl_BaryCoordNoPerspNV.y)) + (_19.uvs[_39] * gl_BaryCoordNoPerspNV.z)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/basic.frag b/third_party/spirv-cross/reference/opt/shaders/frag/basic.frag deleted file mode 100644 index 2a4e440421..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/basic.frag +++ /dev/null @@ -1,15 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(binding = 0) uniform mediump sampler2D uTex; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 vColor; -layout(location = 1) in vec2 vTex; - -void main() -{ - FragColor = vColor * texture(uTex, vTex); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/complex-expression-in-access-chain.frag b/third_party/spirv-cross/reference/opt/shaders/frag/complex-expression-in-access-chain.frag deleted file mode 100644 index 56b4c89a59..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/complex-expression-in-access-chain.frag +++ /dev/null @@ -1,21 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(binding = 0, std430) buffer UBO -{ - vec4 results[1024]; -} _34; - -layout(binding = 1) uniform highp isampler2D Buf; - -layout(location = 0) flat in mediump int vIn; -layout(location = 1) flat in mediump int vIn2; -layout(location = 0) out vec4 FragColor; - -void main() -{ - mediump int _40 = texelFetch(Buf, ivec2(gl_FragCoord.xy), 0).x % 16; - FragColor = (_34.results[_40] + _34.results[_40]) + _34.results[(vIn * vIn) + (vIn2 * vIn2)]; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/composite-extract-forced-temporary.frag b/third_party/spirv-cross/reference/opt/shaders/frag/composite-extract-forced-temporary.frag deleted file mode 100644 index eb59732fdc..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/composite-extract-forced-temporary.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(binding = 0) uniform mediump sampler2D Texture; - -layout(location = 0) in vec2 vTexCoord; -layout(location = 0) out vec4 FragColor; - -void main() -{ - vec4 _19 = texture(Texture, vTexCoord); - float _22 = _19.x; - FragColor = vec4(_22 * _22); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/constant-array.frag b/third_party/spirv-cross/reference/opt/shaders/frag/constant-array.frag deleted file mode 100644 index 914888aaf6..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/constant-array.frag +++ /dev/null @@ -1,22 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -struct Foobar -{ - float a; - float b; -}; - -const vec4 _37[3] = vec4[](vec4(1.0), vec4(2.0), vec4(3.0)); -const vec4 _55[2][2] = vec4[][](vec4[](vec4(1.0), vec4(2.0)), vec4[](vec4(8.0), vec4(10.0))); -const Foobar _75[2] = Foobar[](Foobar(10.0, 40.0), Foobar(90.0, 70.0)); - -layout(location = 0) out vec4 FragColor; -layout(location = 0) flat in mediump int index; - -void main() -{ - FragColor = ((_37[index] + _55[index][index + 1]) + vec4(30.0)) + vec4(_75[index].a + _75[index].b); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/constant-composites.frag b/third_party/spirv-cross/reference/opt/shaders/frag/constant-composites.frag deleted file mode 100644 index 7813b98db2..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/constant-composites.frag +++ /dev/null @@ -1,23 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -const float _16[4] = float[](1.0, 4.0, 3.0, 2.0); - -struct Foo -{ - float a; - float b; -}; - -const Foo _28[2] = Foo[](Foo(10.0, 20.0), Foo(30.0, 40.0)); - -layout(location = 0) out vec4 FragColor; -layout(location = 0) flat in mediump int line; - -void main() -{ - FragColor = vec4(_16[line]); - FragColor += vec4(_28[line].a * _28[1 - line].a); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/false-loop-init.frag b/third_party/spirv-cross/reference/opt/shaders/frag/false-loop-init.frag deleted file mode 100644 index 7ded0eab41..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/false-loop-init.frag +++ /dev/null @@ -1,18 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) out vec4 result; -layout(location = 0) in vec4 accum; - -void main() -{ - result = vec4(0.0); - for (mediump int _48 = 0; _48 < 4; ) - { - result += accum; - _48 += int((accum.y > 10.0) ? 40u : 30u); - continue; - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/flush_params.frag b/third_party/spirv-cross/reference/opt/shaders/frag/flush_params.frag deleted file mode 100644 index 16b4994148..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/flush_params.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(10.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/for-loop-continue-control-flow.frag b/third_party/spirv-cross/reference/opt/shaders/frag/for-loop-continue-control-flow.frag deleted file mode 100644 index f49b906099..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/for-loop-continue-control-flow.frag +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(0.0); - for (int _43 = 0; _43 < 3; ) - { - FragColor[_43] += float(_43); - _43++; - continue; - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/for-loop-init.frag b/third_party/spirv-cross/reference/opt/shaders/frag/for-loop-init.frag deleted file mode 100644 index 6c2dfb5094..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/for-loop-init.frag +++ /dev/null @@ -1,65 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) out mediump int FragColor; - -void main() -{ - do - { - FragColor = 16; - for (mediump int _143 = 0; _143 < 25; ) - { - FragColor += 10; - _143++; - continue; - } - for (mediump int _144 = 1; _144 < 30; ) - { - FragColor += 11; - _144++; - continue; - } - mediump int _145; - _145 = 0; - for (; _145 < 20; ) - { - FragColor += 12; - _145++; - continue; - } - mediump int _62 = _145 + 3; - FragColor += _62; - if (_62 == 40) - { - for (mediump int _149 = 0; _149 < 40; ) - { - FragColor += 13; - _149++; - continue; - } - break; - } - FragColor += _62; - mediump ivec2 _146; - _146 = ivec2(0); - for (; _146.x < 10; ) - { - FragColor += _146.y; - mediump ivec2 _142 = _146; - _142.x = _146.x + 4; - _146 = _142; - continue; - } - for (mediump int _148 = _62; _148 < 40; ) - { - FragColor += _148; - _148++; - continue; - } - FragColor += _62; - break; - } while(false); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/frexp-modf.frag b/third_party/spirv-cross/reference/opt/shaders/frag/frexp-modf.frag deleted file mode 100644 index 25f3360aaa..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/frexp-modf.frag +++ /dev/null @@ -1,33 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -struct ResType -{ - highp float _m0; - int _m1; -}; - -struct ResType_1 -{ - highp vec2 _m0; - ivec2 _m1; -}; - -layout(location = 0) in float v0; -layout(location = 1) in vec2 v1; -layout(location = 0) out float FragColor; - -void main() -{ - ResType _22; - _22._m0 = frexp(v0 + 1.0, _22._m1); - ResType_1 _35; - _35._m0 = frexp(v1, _35._m1); - float r0; - float _41 = modf(v0, r0); - vec2 r1; - vec2 _45 = modf(v1, r1); - FragColor = ((((_22._m0 + _35._m0.x) + _35._m0.y) + _41) + _45.x) + _45.y; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/front-facing.frag b/third_party/spirv-cross/reference/opt/shaders/frag/front-facing.frag deleted file mode 100644 index cc9aecc8ba..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/front-facing.frag +++ /dev/null @@ -1,20 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 vA; -layout(location = 1) in vec4 vB; - -void main() -{ - if (gl_FrontFacing) - { - FragColor = vA; - } - else - { - FragColor = vB; - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/gather-dref.frag b/third_party/spirv-cross/reference/opt/shaders/frag/gather-dref.frag deleted file mode 100644 index 5416f79cb5..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/gather-dref.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(binding = 0) uniform mediump sampler2DShadow uT; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec3 vUV; - -void main() -{ - FragColor = textureGather(uT, vUV.xy, vUV.z); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/ground.frag b/third_party/spirv-cross/reference/opt/shaders/frag/ground.frag deleted file mode 100644 index f59a402fe3..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/ground.frag +++ /dev/null @@ -1,35 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(binding = 4, std140) uniform GlobalPSData -{ - vec4 g_CamPos; - vec4 g_SunDir; - vec4 g_SunColor; - vec4 g_ResolutionParams; - vec4 g_TimeParams; - vec4 g_FogColor_Distance; -} _101; - -layout(binding = 2) uniform mediump sampler2D TexNormalmap; - -layout(location = 3) out vec4 LightingOut; -layout(location = 2) out vec4 NormalOut; -layout(location = 1) out vec4 SpecularOut; -layout(location = 0) out vec4 AlbedoOut; -layout(location = 0) in vec2 TexCoord; -layout(location = 1) in vec3 EyeVec; - -void main() -{ - vec3 _68 = normalize((texture(TexNormalmap, TexCoord).xyz * 2.0) - vec3(1.0)); - float _113 = smoothstep(0.0, 0.1500000059604644775390625, (_101.g_CamPos.y + EyeVec.y) * 0.004999999888241291046142578125); - float _125 = smoothstep(0.699999988079071044921875, 0.75, _68.y); - vec3 _130 = mix(vec3(0.100000001490116119384765625), mix(vec3(0.100000001490116119384765625, 0.300000011920928955078125, 0.100000001490116119384765625), vec3(0.800000011920928955078125), vec3(_113)), vec3(_125)); - LightingOut = vec4(0.0); - NormalOut = vec4((_68 * 0.5) + vec3(0.5), 0.0); - SpecularOut = vec4(1.0 - (_125 * _113), 0.0, 0.0, 0.0); - AlbedoOut = vec4(_130 * _130, 1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/helper-invocation.frag b/third_party/spirv-cross/reference/opt/shaders/frag/helper-invocation.frag deleted file mode 100644 index 0c44f72ad6..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/helper-invocation.frag +++ /dev/null @@ -1,23 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(binding = 0) uniform mediump sampler2D uSampler; - -layout(location = 0) in vec2 vUV; -layout(location = 0) out vec4 FragColor; - -void main() -{ - vec4 _52; - if (!gl_HelperInvocation) - { - _52 = textureLod(uSampler, vUV, 0.0); - } - else - { - _52 = vec4(1.0); - } - FragColor = _52; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/hoisted-temporary-use-continue-block-as-value.frag b/third_party/spirv-cross/reference/opt/shaders/frag/hoisted-temporary-use-continue-block-as-value.frag deleted file mode 100644 index 050218b13b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/hoisted-temporary-use-continue-block-as-value.frag +++ /dev/null @@ -1,28 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) flat in mediump int vA; -layout(location = 1) flat in mediump int vB; - -void main() -{ - FragColor = vec4(0.0); - mediump int _49; - mediump int _58; - for (mediump int _57 = 0, _60 = 0; _57 < vA; _60 = _58, _57 += _49) - { - if ((vA + _57) == 20) - { - _58 = 50; - } - else - { - _58 = ((vB + _57) == 40) ? 60 : _60; - } - _49 = _58 + 10; - FragColor += vec4(1.0); - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/image-load-store-uint-coord.asm.frag b/third_party/spirv-cross/reference/opt/shaders/frag/image-load-store-uint-coord.asm.frag deleted file mode 100644 index f25b4b738a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/image-load-store-uint-coord.asm.frag +++ /dev/null @@ -1,17 +0,0 @@ -#version 450 - -layout(binding = 1, rgba32f) uniform image2D RWIm; -layout(binding = 0, rgba32f) uniform writeonly imageBuffer RWBuf; -layout(binding = 1) uniform sampler2D ROIm; -layout(binding = 0) uniform samplerBuffer ROBuf; - -layout(location = 0) out vec4 _entryPointOutput; - -void main() -{ - imageStore(RWIm, ivec2(uvec2(10u)), vec4(10.0, 0.5, 8.0, 2.0)); - vec4 _70 = imageLoad(RWIm, ivec2(uvec2(30u))); - imageStore(RWBuf, int(80u), _70); - _entryPointOutput = (_70 + texelFetch(ROIm, ivec2(uvec2(50u, 60u)), 0)) + texelFetch(ROBuf, int(80u)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/inside-loop-dominated-variable-preservation.frag b/third_party/spirv-cross/reference/opt/shaders/frag/inside-loop-dominated-variable-preservation.frag deleted file mode 100644 index 7724b14629..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/inside-loop-dominated-variable-preservation.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/loop-dominator-and-switch-default.frag b/third_party/spirv-cross/reference/opt/shaders/frag/loop-dominator-and-switch-default.frag deleted file mode 100644 index 2c193483d1..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/loop-dominator-and-switch-default.frag +++ /dev/null @@ -1,56 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) out vec4 fragColor; - -vec4 _80; - -void main() -{ - mediump int _18 = int(_80.x); - vec4 _82; - _82 = _80; - vec4 _89; - for (mediump int _81 = 0; _81 < _18; _82 = _89, _81++) - { - vec4 _83; - switch (_18) - { - case 0: - { - vec4 _74 = _82; - _74.y = 0.0; - _83 = _74; - break; - } - case 1: - { - vec4 _76 = _82; - _76.y = 1.0; - _83 = _76; - break; - } - default: - { - vec4 _88; - _88 = _82; - for (mediump int _84 = 0; _84 < _18; ) - { - vec4 _72 = _88; - _72.y = _88.y + 0.5; - _88 = _72; - _84++; - continue; - } - _89 = _88; - continue; - } - } - vec4 _79 = _83; - _79.y = _83.y + 0.5; - _89 = _79; - } - fragColor = _82; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/lut-promotion.frag b/third_party/spirv-cross/reference/opt/shaders/frag/lut-promotion.frag deleted file mode 100644 index 2f57d84fd2..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/lut-promotion.frag +++ /dev/null @@ -1,41 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -const float _16[16] = float[](1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0, 4.0); -const vec4 _60[4] = vec4[](vec4(0.0), vec4(1.0), vec4(8.0), vec4(5.0)); -const vec4 _104[4] = vec4[](vec4(20.0), vec4(30.0), vec4(50.0), vec4(60.0)); - -layout(location = 0) out float FragColor; -layout(location = 0) flat in mediump int index; - -void main() -{ - FragColor = _16[index]; - if (index < 10) - { - FragColor += _16[index ^ 1]; - } - else - { - FragColor += _16[index & 1]; - } - bool _63 = index > 30; - if (_63) - { - FragColor += _60[index & 3].y; - } - else - { - FragColor += _60[index & 1].x; - } - vec4 foobar[4] = _60; - if (_63) - { - foobar[1].z = 20.0; - } - mediump int _91 = index & 3; - FragColor += foobar[_91].z; - FragColor += _104[_91].z; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/mix.frag b/third_party/spirv-cross/reference/opt/shaders/frag/mix.frag deleted file mode 100644 index f791d45ce3..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/mix.frag +++ /dev/null @@ -1,18 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 vIn0; -layout(location = 1) in vec4 vIn1; -layout(location = 2) in float vIn2; -layout(location = 3) in float vIn3; - -void main() -{ - FragColor = vec4(vIn0.x, vIn1.y, vIn0.z, vIn0.w); - FragColor = vec4(vIn3); - FragColor = vIn0.xyzw; - FragColor = vec4(vIn2); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/partial-write-preserve.frag b/third_party/spirv-cross/reference/opt/shaders/frag/partial-write-preserve.frag deleted file mode 100644 index d6c1fe8b44..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/partial-write-preserve.frag +++ /dev/null @@ -1,8 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -void main() -{ -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/pixel-interlock-ordered.frag b/third_party/spirv-cross/reference/opt/shaders/frag/pixel-interlock-ordered.frag deleted file mode 100644 index 46cca96c6a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/pixel-interlock-ordered.frag +++ /dev/null @@ -1,23 +0,0 @@ -#version 450 -#extension GL_ARB_fragment_shader_interlock : require -layout(pixel_interlock_ordered) in; - -layout(binding = 2, std430) coherent buffer Buffer -{ - int foo; - uint bar; -} _30; - -layout(binding = 0, rgba8) uniform writeonly image2D img; -layout(binding = 1, r32ui) uniform uimage2D img2; - -void main() -{ - beginInvocationInterlockARB(); - imageStore(img, ivec2(0), vec4(1.0, 0.0, 0.0, 1.0)); - uint _27 = imageAtomicAdd(img2, ivec2(0), 1u); - _30.foo += 42; - uint _41 = atomicAnd(_30.bar, 255u); - endInvocationInterlockARB(); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/pixel-interlock-unordered.frag b/third_party/spirv-cross/reference/opt/shaders/frag/pixel-interlock-unordered.frag deleted file mode 100644 index d60cd14518..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/pixel-interlock-unordered.frag +++ /dev/null @@ -1,23 +0,0 @@ -#version 450 -#extension GL_ARB_fragment_shader_interlock : require -layout(pixel_interlock_unordered) in; - -layout(binding = 2, std430) coherent buffer Buffer -{ - int foo; - uint bar; -} _30; - -layout(binding = 0, rgba8) uniform writeonly image2D img; -layout(binding = 1, r32ui) uniform uimage2D img2; - -void main() -{ - beginInvocationInterlockARB(); - imageStore(img, ivec2(0), vec4(1.0, 0.0, 0.0, 1.0)); - uint _27 = imageAtomicAdd(img2, ivec2(0), 1u); - _30.foo += 42; - uint _41 = atomicAnd(_30.bar, 255u); - endInvocationInterlockARB(); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/pls.frag b/third_party/spirv-cross/reference/opt/shaders/frag/pls.frag deleted file mode 100644 index 1cafdbd365..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/pls.frag +++ /dev/null @@ -1,21 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) out vec4 PLSOut0; -layout(location = 0) in vec4 PLSIn0; -layout(location = 1) out vec4 PLSOut1; -layout(location = 1) in vec4 PLSIn1; -layout(location = 2) out vec4 PLSOut2; -layout(location = 2) in vec4 PLSIn2; -layout(location = 3) out vec4 PLSOut3; -layout(location = 3) in vec4 PLSIn3; - -void main() -{ - PLSOut0 = PLSIn0 * 2.0; - PLSOut1 = PLSIn1 * 6.0; - PLSOut2 = PLSIn2 * 7.0; - PLSOut3 = PLSIn3 * 4.0; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/post-depth-coverage-es.frag b/third_party/spirv-cross/reference/opt/shaders/frag/post-depth-coverage-es.frag deleted file mode 100644 index d086560e5d..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/post-depth-coverage-es.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es -#extension GL_EXT_post_depth_coverage : require -#extension GL_OES_sample_variables : require -precision mediump float; -precision highp int; -layout(early_fragment_tests, post_depth_coverage) in; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(float(gl_SampleMaskIn[0])); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/post-depth-coverage.frag b/third_party/spirv-cross/reference/opt/shaders/frag/post-depth-coverage.frag deleted file mode 100644 index caca9c03cb..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/post-depth-coverage.frag +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 -#if defined(GL_ARB_post_depth_coverge) -#extension GL_ARB_post_depth_coverage : require -#else -#extension GL_EXT_post_depth_coverage : require -#endif -layout(early_fragment_tests, post_depth_coverage) in; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(float(gl_SampleMaskIn[0])); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/round-even.frag b/third_party/spirv-cross/reference/opt/shaders/frag/round-even.frag deleted file mode 100644 index ab6f37adc1..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/round-even.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 vA; -layout(location = 1) in float vB; - -void main() -{ - FragColor = roundEven(vA); - FragColor *= roundEven(vB); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/round.frag b/third_party/spirv-cross/reference/opt/shaders/frag/round.frag deleted file mode 100644 index 0f1fc0db0f..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/round.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 vA; -layout(location = 1) in float vB; - -void main() -{ - FragColor = round(vA); - FragColor *= round(vB); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/sample-interlock-ordered.frag b/third_party/spirv-cross/reference/opt/shaders/frag/sample-interlock-ordered.frag deleted file mode 100644 index 67ca5560e3..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/sample-interlock-ordered.frag +++ /dev/null @@ -1,23 +0,0 @@ -#version 450 -#extension GL_ARB_fragment_shader_interlock : require -layout(sample_interlock_ordered) in; - -layout(binding = 2, std430) coherent buffer Buffer -{ - int foo; - uint bar; -} _30; - -layout(binding = 0, rgba8) uniform writeonly image2D img; -layout(binding = 1, r32ui) uniform uimage2D img2; - -void main() -{ - beginInvocationInterlockARB(); - imageStore(img, ivec2(0), vec4(1.0, 0.0, 0.0, 1.0)); - uint _27 = imageAtomicAdd(img2, ivec2(0), 1u); - _30.foo += 42; - uint _47 = atomicAnd(_30.bar, uint(gl_SampleMaskIn[0])); - endInvocationInterlockARB(); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/sample-interlock-unordered.frag b/third_party/spirv-cross/reference/opt/shaders/frag/sample-interlock-unordered.frag deleted file mode 100644 index ea74397d63..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/sample-interlock-unordered.frag +++ /dev/null @@ -1,23 +0,0 @@ -#version 450 -#extension GL_ARB_fragment_shader_interlock : require -layout(sample_interlock_unordered) in; - -layout(binding = 2, std430) coherent buffer Buffer -{ - int foo; - uint bar; -} _30; - -layout(binding = 0, rgba8) uniform writeonly image2D img; -layout(binding = 1, r32ui) uniform uimage2D img2; - -void main() -{ - beginInvocationInterlockARB(); - imageStore(img, ivec2(0), vec4(1.0, 0.0, 0.0, 1.0)); - uint _27 = imageAtomicAdd(img2, ivec2(0), 1u); - _30.foo += 42; - uint _41 = atomicAnd(_30.bar, 255u); - endInvocationInterlockARB(); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/sample-parameter.frag b/third_party/spirv-cross/reference/opt/shaders/frag/sample-parameter.frag deleted file mode 100644 index 3c130e68d4..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/sample-parameter.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 310 es -#extension GL_OES_sample_variables : require -precision mediump float; -precision highp int; - -layout(location = 0) out vec2 FragColor; - -void main() -{ - FragColor = (gl_SamplePosition + vec2(float(gl_SampleMaskIn[0]))) + vec2(float(gl_SampleID)); - gl_SampleMask[0] = 1; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/sampler-ms.frag b/third_party/spirv-cross/reference/opt/shaders/frag/sampler-ms.frag deleted file mode 100644 index d78b805d09..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/sampler-ms.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(binding = 0) uniform mediump sampler2DMS uSampler; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - ivec2 _17 = ivec2(gl_FragCoord.xy); - FragColor = ((texelFetch(uSampler, _17, 0) + texelFetch(uSampler, _17, 1)) + texelFetch(uSampler, _17, 2)) + texelFetch(uSampler, _17, 3); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/sampler-proj.frag b/third_party/spirv-cross/reference/opt/shaders/frag/sampler-proj.frag deleted file mode 100644 index 865dec6c8b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/sampler-proj.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(binding = 0) uniform mediump sampler2D uTex; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 vTex; - -void main() -{ - highp vec4 _19 = vTex; - _19.z = vTex.w; - FragColor = textureProj(uTex, _19.xyz); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/sampler.frag b/third_party/spirv-cross/reference/opt/shaders/frag/sampler.frag deleted file mode 100644 index 2a4e440421..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/sampler.frag +++ /dev/null @@ -1,15 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(binding = 0) uniform mediump sampler2D uTex; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 vColor; -layout(location = 1) in vec2 vTex; - -void main() -{ - FragColor = vColor * texture(uTex, vTex); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/scalar-refract-reflect.frag b/third_party/spirv-cross/reference/opt/shaders/frag/scalar-refract-reflect.frag deleted file mode 100644 index 94d671b5a9..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/scalar-refract-reflect.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 - -layout(location = 0) out float FragColor; -layout(location = 0) in vec3 vRefract; - -void main() -{ - FragColor = refract(vRefract.x, vRefract.y, vRefract.z); - FragColor += reflect(vRefract.x, vRefract.y); - FragColor += refract(vRefract.xy, vRefract.yz, vRefract.z).y; - FragColor += reflect(vRefract.xy, vRefract.zy).y; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/selection-block-dominator.frag b/third_party/spirv-cross/reference/opt/shaders/frag/selection-block-dominator.frag deleted file mode 100644 index 50a5a371c6..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/selection-block-dominator.frag +++ /dev/null @@ -1,19 +0,0 @@ -#version 450 - -layout(location = 0) flat in int vIndex; -layout(location = 0) out vec4 FragColor; - -void main() -{ - do - { - if (vIndex != 1) - { - FragColor = vec4(1.0); - break; - } - FragColor = vec4(10.0); - break; - } while(false); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/struct-type-unrelated-alias.frag b/third_party/spirv-cross/reference/opt/shaders/frag/struct-type-unrelated-alias.frag deleted file mode 100644 index d6fa667f3b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/struct-type-unrelated-alias.frag +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 - -layout(location = 0) out float FragColor; - -void main() -{ - FragColor = 30.0; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/switch-unsigned-case.frag b/third_party/spirv-cross/reference/opt/shaders/frag/switch-unsigned-case.frag deleted file mode 100644 index 4177f9e99a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/switch-unsigned-case.frag +++ /dev/null @@ -1,29 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(binding = 0, std140) uniform Buff -{ - mediump uint TestVal; -} _15; - -layout(location = 0) out vec4 fsout_Color; - -void main() -{ - fsout_Color = vec4(1.0); - switch (_15.TestVal) - { - case 0u: - { - fsout_Color = vec4(0.100000001490116119384765625); - break; - } - case 1u: - { - fsout_Color = vec4(0.20000000298023223876953125); - break; - } - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/swizzle.frag b/third_party/spirv-cross/reference/opt/shaders/frag/swizzle.frag deleted file mode 100644 index 51f5b19895..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/swizzle.frag +++ /dev/null @@ -1,22 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(binding = 0) uniform mediump sampler2D samp; - -layout(location = 0) out vec4 FragColor; -layout(location = 2) in vec2 vUV; -layout(location = 1) in vec3 vNormal; - -void main() -{ - vec4 _19 = texture(samp, vUV); - float _23 = _19.x; - FragColor = vec4(_23, _19.yz, 1.0); - FragColor = vec4(_23, _19.z, 1.0, 4.0); - FragColor = vec4(_23, _23, texture(samp, vUV + vec2(0.100000001490116119384765625)).yy); - FragColor = vec4(vNormal, 1.0); - FragColor = vec4(vNormal + vec3(1.7999999523162841796875), 1.0); - FragColor = vec4(vUV, vUV + vec2(1.7999999523162841796875)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/texel-fetch-offset.frag b/third_party/spirv-cross/reference/opt/shaders/frag/texel-fetch-offset.frag deleted file mode 100644 index 416f764d43..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/texel-fetch-offset.frag +++ /dev/null @@ -1,15 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(binding = 0) uniform mediump sampler2D uTexture; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - mediump ivec2 _22 = ivec2(gl_FragCoord.xy); - FragColor = texelFetchOffset(uTexture, _22, 0, ivec2(1)); - FragColor += texelFetchOffset(uTexture, _22, 0, ivec2(-1, 1)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/ubo-load-row-major-workaround.frag b/third_party/spirv-cross/reference/opt/shaders/frag/ubo-load-row-major-workaround.frag deleted file mode 100644 index dbb008af64..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/ubo-load-row-major-workaround.frag +++ /dev/null @@ -1,46 +0,0 @@ -#version 450 - -struct RowMajor -{ - mat4 B; -}; - -struct NestedRowMajor -{ - RowMajor rm; -}; - -layout(binding = 2, std140) uniform UBO3 -{ - layout(row_major) NestedRowMajor rm2; -} _17; - -layout(binding = 1, std140) uniform UBO2 -{ - layout(row_major) RowMajor rm; -} _35; - -layout(binding = 0, std140) uniform UBO -{ - layout(row_major) mat4 A; - mat4 C; -} _42; - -layout(binding = 3, std140) uniform UBONoWorkaround -{ - mat4 D; -} _56; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 Clip; - -NestedRowMajor spvWorkaroundRowMajor(NestedRowMajor wrap) { return wrap; } -mat4 spvWorkaroundRowMajor(mat4 wrap) { return wrap; } - -void main() -{ - FragColor = (((spvWorkaroundRowMajor(_17.rm2).rm.B * spvWorkaroundRowMajor(_35.rm.B)) * spvWorkaroundRowMajor(_42.A)) * spvWorkaroundRowMajor(_42.C)) * Clip; - FragColor += (_56.D * Clip); - FragColor += (_42.A[1] * Clip); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/ubo_layout.frag b/third_party/spirv-cross/reference/opt/shaders/frag/ubo_layout.frag deleted file mode 100644 index bc0b01c065..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/ubo_layout.frag +++ /dev/null @@ -1,26 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -struct Str -{ - mat4 foo; -}; - -layout(binding = 0, std140) uniform UBO1 -{ - layout(row_major) Str foo; -} ubo1; - -layout(binding = 1, std140) uniform UBO2 -{ - Str foo; -} ubo0; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = ubo1.foo.foo[0] + ubo0.foo.foo[0]; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/frag/unary-enclose.frag b/third_party/spirv-cross/reference/opt/shaders/frag/unary-enclose.frag deleted file mode 100644 index e7b0bf534c..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/frag/unary-enclose.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 vIn; - -void main() -{ - FragColor = vIn; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/geom/basic.geom b/third_party/spirv-cross/reference/opt/shaders/geom/basic.geom deleted file mode 100644 index f91136f609..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/geom/basic.geom +++ /dev/null @@ -1,27 +0,0 @@ -#version 310 es -#extension GL_EXT_geometry_shader : require -layout(invocations = 4, triangles) in; -layout(max_vertices = 3, triangle_strip) out; - -layout(location = 0) out vec3 vNormal; -layout(location = 0) in VertexData -{ - vec3 normal; -} vin[3]; - - -void main() -{ - gl_Position = gl_in[0].gl_Position; - float _37 = float(gl_InvocationID); - vNormal = vin[0].normal + vec3(_37); - EmitVertex(); - gl_Position = gl_in[1].gl_Position; - vNormal = vin[1].normal + vec3(4.0 * _37); - EmitVertex(); - gl_Position = gl_in[2].gl_Position; - vNormal = vin[2].normal + vec3(2.0 * _37); - EmitVertex(); - EndPrimitive(); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/geom/geometry-passthrough.geom b/third_party/spirv-cross/reference/opt/shaders/geom/geometry-passthrough.geom deleted file mode 100644 index d0d8806ad2..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/geom/geometry-passthrough.geom +++ /dev/null @@ -1,27 +0,0 @@ -#version 450 -#extension GL_NV_geometry_shader_passthrough : require -layout(triangles) in; - -layout(passthrough) in gl_PerVertex -{ - vec4 gl_Position; -} gl_in[]; - -layout(passthrough, location = 0) in VertexBlock -{ - int a; - int b; -} v1[3]; - -layout(location = 2) in VertexBlock2 -{ - int a; - layout(passthrough) int b; -} v2[3]; - - -void main() -{ - gl_Layer = (gl_InvocationID + v1[0].a) + v2[1].b; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/geom/lines-adjacency.geom b/third_party/spirv-cross/reference/opt/shaders/geom/lines-adjacency.geom deleted file mode 100644 index 46a21e9fb0..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/geom/lines-adjacency.geom +++ /dev/null @@ -1,26 +0,0 @@ -#version 310 es -#extension GL_EXT_geometry_shader : require -layout(lines_adjacency) in; -layout(max_vertices = 3, line_strip) out; - -layout(location = 0) out vec3 vNormal; -layout(location = 0) in VertexData -{ - vec3 normal; -} vin[4]; - - -void main() -{ - gl_Position = gl_in[0].gl_Position; - vNormal = vin[0].normal; - EmitVertex(); - gl_Position = gl_in[1].gl_Position; - vNormal = vin[1].normal; - EmitVertex(); - gl_Position = gl_in[2].gl_Position; - vNormal = vin[2].normal; - EmitVertex(); - EndPrimitive(); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/geom/lines.geom b/third_party/spirv-cross/reference/opt/shaders/geom/lines.geom deleted file mode 100644 index c5aaa53d35..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/geom/lines.geom +++ /dev/null @@ -1,23 +0,0 @@ -#version 310 es -#extension GL_EXT_geometry_shader : require -layout(lines) in; -layout(max_vertices = 2, line_strip) out; - -layout(location = 0) out vec3 vNormal; -layout(location = 0) in VertexData -{ - vec3 normal; -} vin[2]; - - -void main() -{ - gl_Position = gl_in[0].gl_Position; - vNormal = vin[0].normal; - EmitVertex(); - gl_Position = gl_in[1].gl_Position; - vNormal = vin[1].normal; - EmitVertex(); - EndPrimitive(); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/geom/multi-stream.geom b/third_party/spirv-cross/reference/opt/shaders/geom/multi-stream.geom deleted file mode 100644 index 548164d780..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/geom/multi-stream.geom +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 -layout(triangles) in; -layout(max_vertices = 2, points) out; - -void main() -{ - gl_Position = gl_in[0].gl_Position; - EmitStreamVertex(0); - EndStreamPrimitive(0); - gl_Position = gl_in[0].gl_Position + vec4(2.0); - EmitStreamVertex(1); - EndStreamPrimitive(1); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/geom/points.geom b/third_party/spirv-cross/reference/opt/shaders/geom/points.geom deleted file mode 100644 index 4d59137c3a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/geom/points.geom +++ /dev/null @@ -1,26 +0,0 @@ -#version 310 es -#extension GL_EXT_geometry_shader : require -layout(points) in; -layout(max_vertices = 3, points) out; - -layout(location = 0) out vec3 vNormal; -layout(location = 0) in VertexData -{ - vec3 normal; -} vin[1]; - - -void main() -{ - gl_Position = gl_in[0].gl_Position; - vNormal = vin[0].normal; - EmitVertex(); - gl_Position = gl_in[0].gl_Position; - vNormal = vin[0].normal; - EmitVertex(); - gl_Position = gl_in[0].gl_Position; - vNormal = vin[0].normal; - EmitVertex(); - EndPrimitive(); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/geom/single-invocation.geom b/third_party/spirv-cross/reference/opt/shaders/geom/single-invocation.geom deleted file mode 100644 index fdccacc04f..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/geom/single-invocation.geom +++ /dev/null @@ -1,26 +0,0 @@ -#version 310 es -#extension GL_EXT_geometry_shader : require -layout(triangles) in; -layout(max_vertices = 3, triangle_strip) out; - -layout(location = 0) out vec3 vNormal; -layout(location = 0) in VertexData -{ - vec3 normal; -} vin[3]; - - -void main() -{ - gl_Position = gl_in[0].gl_Position; - vNormal = vin[0].normal; - EmitVertex(); - gl_Position = gl_in[1].gl_Position; - vNormal = vin[1].normal; - EmitVertex(); - gl_Position = gl_in[2].gl_Position; - vNormal = vin[2].normal; - EmitVertex(); - EndPrimitive(); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/geom/transform-feedback-streams.geom b/third_party/spirv-cross/reference/opt/shaders/geom/transform-feedback-streams.geom deleted file mode 100644 index 4d238b4adf..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/geom/transform-feedback-streams.geom +++ /dev/null @@ -1,26 +0,0 @@ -#version 450 -layout(points) in; -layout(max_vertices = 2, points) out; - -layout(xfb_buffer = 1, xfb_stride = 20, stream = 1) out gl_PerVertex -{ - layout(xfb_offset = 4) vec4 gl_Position; - float gl_PointSize; -}; - -layout(location = 0, xfb_buffer = 2, xfb_stride = 32, xfb_offset = 16, stream = 1) out vec4 vFoo; -layout(xfb_buffer = 3, xfb_stride = 16, stream = 2) out VertOut -{ - layout(location = 1, xfb_offset = 0) vec4 vBar; -} _23; - - -void main() -{ - gl_Position = vec4(1.0); - vFoo = vec4(3.0); - EmitStreamVertex(1); - _23.vBar = vec4(5.0); - EmitStreamVertex(2); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/geom/triangles-adjacency.geom b/third_party/spirv-cross/reference/opt/shaders/geom/triangles-adjacency.geom deleted file mode 100644 index e9e6857a1f..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/geom/triangles-adjacency.geom +++ /dev/null @@ -1,26 +0,0 @@ -#version 310 es -#extension GL_EXT_geometry_shader : require -layout(triangles_adjacency) in; -layout(max_vertices = 3, triangle_strip) out; - -layout(location = 0) out vec3 vNormal; -layout(location = 0) in VertexData -{ - vec3 normal; -} vin[6]; - - -void main() -{ - gl_Position = gl_in[0].gl_Position; - vNormal = vin[0].normal; - EmitVertex(); - gl_Position = gl_in[1].gl_Position; - vNormal = vin[1].normal; - EmitVertex(); - gl_Position = gl_in[2].gl_Position; - vNormal = vin[2].normal; - EmitVertex(); - EndPrimitive(); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/geom/triangles.geom b/third_party/spirv-cross/reference/opt/shaders/geom/triangles.geom deleted file mode 100644 index fdccacc04f..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/geom/triangles.geom +++ /dev/null @@ -1,26 +0,0 @@ -#version 310 es -#extension GL_EXT_geometry_shader : require -layout(triangles) in; -layout(max_vertices = 3, triangle_strip) out; - -layout(location = 0) out vec3 vNormal; -layout(location = 0) in VertexData -{ - vec3 normal; -} vin[3]; - - -void main() -{ - gl_Position = gl_in[0].gl_Position; - vNormal = vin[0].normal; - EmitVertex(); - gl_Position = gl_in[1].gl_Position; - vNormal = vin[1].normal; - EmitVertex(); - gl_Position = gl_in[2].gl_Position; - vNormal = vin[2].normal; - EmitVertex(); - EndPrimitive(); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/legacy/fragment/explicit-lod.legacy.frag b/third_party/spirv-cross/reference/opt/shaders/legacy/fragment/explicit-lod.legacy.frag deleted file mode 100644 index 6e8dbf1a9c..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/legacy/fragment/explicit-lod.legacy.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 100 -#extension GL_EXT_shader_texture_lod : require -precision mediump float; -precision highp int; - -uniform mediump sampler2D tex; - -void main() -{ - gl_FragData[0] = texture2DLodEXT(tex, vec2(0.4000000059604644775390625, 0.60000002384185791015625), 0.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/legacy/fragment/explicit-lod.legacy.vert b/third_party/spirv-cross/reference/opt/shaders/legacy/fragment/explicit-lod.legacy.vert deleted file mode 100644 index b73faa47ab..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/legacy/fragment/explicit-lod.legacy.vert +++ /dev/null @@ -1,11 +0,0 @@ -#version 100 - -uniform mediump sampler2D tex; - -varying mediump vec4 FragColor; - -void main() -{ - FragColor = texture2DLod(tex, vec2(0.4000000059604644775390625, 0.60000002384185791015625), 3.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/legacy/fragment/fma.legacy.frag b/third_party/spirv-cross/reference/opt/shaders/legacy/fragment/fma.legacy.frag deleted file mode 100644 index bcb2d4cca9..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/legacy/fragment/fma.legacy.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 100 -precision mediump float; -precision highp int; - -varying highp vec4 vA; -varying highp vec4 vB; -varying highp vec4 vC; - -void main() -{ - gl_FragData[0] = vA * vB + vC; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/legacy/fragment/io-blocks.legacy.frag b/third_party/spirv-cross/reference/opt/shaders/legacy/fragment/io-blocks.legacy.frag deleted file mode 100644 index d5a60d53e9..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/legacy/fragment/io-blocks.legacy.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 100 -precision mediump float; -precision highp int; - -varying vec4 vin_color; -varying highp vec3 vin_normal; - -void main() -{ - gl_FragData[0] = vin_color + vin_normal.xyzz; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/legacy/fragment/multiple-struct-flattening.legacy.frag b/third_party/spirv-cross/reference/opt/shaders/legacy/fragment/multiple-struct-flattening.legacy.frag deleted file mode 100644 index 10ce5a513f..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/legacy/fragment/multiple-struct-flattening.legacy.frag +++ /dev/null @@ -1,36 +0,0 @@ -#version 100 -precision mediump float; -precision highp int; - -struct Foo -{ - highp vec4 a; - highp vec4 b; -}; - -struct Bar -{ - highp vec4 a; - highp vec4 b; -}; - -struct Baz -{ - Foo foo; - Bar bar; -}; - -varying highp vec4 baz_foo_a; -varying highp vec4 baz_foo_b; -varying highp vec4 baz_bar_a; -varying highp vec4 baz_bar_b; -varying highp vec4 _33_a_a; -varying highp vec4 _33_a_b; -varying highp vec4 _33_b_a; -varying highp vec4 _33_b_b; - -void main() -{ - gl_FragData[0] = (((_33_a_a + _33_b_b) + baz_foo_b) + baz_foo_a) + baz_bar_b; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/legacy/fragment/round.legacy.frag b/third_party/spirv-cross/reference/opt/shaders/legacy/fragment/round.legacy.frag deleted file mode 100644 index 9033bc3c56..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/legacy/fragment/round.legacy.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 100 -precision mediump float; -precision highp int; - -varying highp vec4 vA; -varying highp float vB; - -void main() -{ - gl_FragData[0] = floor(vA + vec4(0.5)); - gl_FragData[0] *= floor(vB + float(0.5)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/legacy/fragment/struct-varying.legacy.frag b/third_party/spirv-cross/reference/opt/shaders/legacy/fragment/struct-varying.legacy.frag deleted file mode 100644 index e131f2e21c..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/legacy/fragment/struct-varying.legacy.frag +++ /dev/null @@ -1,18 +0,0 @@ -#version 100 -precision mediump float; -precision highp int; - -struct Inputs -{ - highp vec4 a; - highp vec2 b; -}; - -varying highp vec4 vin_a; -varying highp vec2 vin_b; - -void main() -{ - gl_FragData[0] = ((((Inputs(vin_a, vin_b).a + Inputs(vin_a, vin_b).b.xxyy) + Inputs(vin_a, vin_b).a) + Inputs(vin_a, vin_b).b.yyxx) + vin_a) + vin_b.xxyy; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/legacy/fragment/switch.legacy.frag b/third_party/spirv-cross/reference/opt/shaders/legacy/fragment/switch.legacy.frag deleted file mode 100644 index 169f591a74..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/legacy/fragment/switch.legacy.frag +++ /dev/null @@ -1,77 +0,0 @@ -#version 100 -precision mediump float; -precision highp int; - -varying highp float vIndexF; - -void main() -{ - int _13 = int(vIndexF); - highp vec4 _65; - highp vec4 _66; - highp vec4 _68; - for (int spvDummy25 = 0; spvDummy25 < 1; spvDummy25++) - { - if (_13 == 2) - { - _68 = vec4(0.0, 2.0, 3.0, 4.0); - break; - } - else if ((_13 == 4) || (_13 == 5)) - { - _68 = vec4(1.0, 2.0, 3.0, 4.0); - break; - } - else if ((_13 == 8) || (_13 == 9)) - { - _68 = vec4(40.0, 20.0, 30.0, 40.0); - break; - } - else if (_13 == 10) - { - _65 = vec4(10.0); - highp vec4 _45 = _65 + vec4(1.0); - _66 = _45; - highp vec4 _48 = _66 + vec4(2.0); - _68 = _48; - break; - } - else if (_13 == 11) - { - _65 = vec4(0.0); - highp vec4 _45 = _65 + vec4(1.0); - _66 = _45; - highp vec4 _48 = _66 + vec4(2.0); - _68 = _48; - break; - } - else if (_13 == 12) - { - _66 = vec4(0.0); - highp vec4 _48 = _66 + vec4(2.0); - _68 = _48; - break; - } - else - { - _68 = vec4(10.0, 20.0, 30.0, 40.0); - break; - } - } - highp vec4 _70; - for (int spvDummy146 = 0; spvDummy146 < 1; spvDummy146++) - { - if ((_13 == 10) || (_13 == 20)) - { - _70 = vec4(40.0); - break; - } - else - { - _70 = vec4(20.0); - break; - } - } - gl_FragData[0] = _68 + _70; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/legacy/vert/implicit-lod.legacy.vert b/third_party/spirv-cross/reference/opt/shaders/legacy/vert/implicit-lod.legacy.vert deleted file mode 100644 index 2d2050498e..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/legacy/vert/implicit-lod.legacy.vert +++ /dev/null @@ -1,9 +0,0 @@ -#version 100 - -uniform mediump sampler2D tex; - -void main() -{ - gl_Position = texture2DLod(tex, vec2(0.4000000059604644775390625, 0.60000002384185791015625), 0.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/legacy/vert/io-block.legacy.vert b/third_party/spirv-cross/reference/opt/shaders/legacy/vert/io-block.legacy.vert deleted file mode 100644 index 3c518dc79e..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/legacy/vert/io-block.legacy.vert +++ /dev/null @@ -1,13 +0,0 @@ -#version 100 - -attribute vec4 Position; -varying vec4 vout_color; -varying vec3 vout_normal; - -void main() -{ - gl_Position = Position; - vout_color = vec4(1.0); - vout_normal = vec3(0.5); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/legacy/vert/struct-flatten-inner-array.legacy.vert b/third_party/spirv-cross/reference/opt/shaders/legacy/vert/struct-flatten-inner-array.legacy.vert deleted file mode 100644 index 837a11a843..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/legacy/vert/struct-flatten-inner-array.legacy.vert +++ /dev/null @@ -1,17 +0,0 @@ -#version 100 - -struct Foo -{ - float a[4]; -}; - -varying float foo_a[4]; - -void main() -{ - gl_Position = vec4(1.0); - for (int _46 = 0; _46 < 4; foo_a[_46] = float(_46 + 2), _46++) - { - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/legacy/vert/struct-flatten-stores-multi-dimension.legacy.vert b/third_party/spirv-cross/reference/opt/shaders/legacy/vert/struct-flatten-stores-multi-dimension.legacy.vert deleted file mode 100644 index cf807c41f7..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/legacy/vert/struct-flatten-stores-multi-dimension.legacy.vert +++ /dev/null @@ -1,49 +0,0 @@ -#version 100 - -struct Foo -{ - vec4 a; - vec4 b; -}; - -struct Bar -{ - vec4 a; - vec4 b; -}; - -struct Baz -{ - Foo foo; - Bar bar; -}; - -varying vec4 _12_a_a; -varying vec4 _12_a_b; -varying vec4 _12_b_a; -varying vec4 _12_b_b; -varying vec4 baz_foo_a; -varying vec4 baz_foo_b; -varying vec4 baz_bar_a; -varying vec4 baz_bar_b; - -void main() -{ - _12_a_a = vec4(10.0); - _12_a_b = vec4(20.0); - _12_b_a = vec4(30.0); - _12_b_b = vec4(40.0); - _12_a_a = Foo(vec4(50.0), vec4(60.0)).a; - _12_a_b = Foo(vec4(50.0), vec4(60.0)).b; - _12_b_a = Bar(vec4(50.0), vec4(60.0)).a; - _12_b_b = Bar(vec4(50.0), vec4(60.0)).b; - baz_foo_a = Foo(vec4(100.0), vec4(200.0)).a; - baz_foo_b = Foo(vec4(100.0), vec4(200.0)).b; - baz_bar_a = Bar(vec4(300.0), vec4(400.0)).a; - baz_bar_b = Bar(vec4(300.0), vec4(400.0)).b; - baz_foo_a = Baz(Foo(vec4(1000.0), vec4(2000.0)), Bar(vec4(3000.0), vec4(4000.0))).foo.a; - baz_foo_b = Baz(Foo(vec4(1000.0), vec4(2000.0)), Bar(vec4(3000.0), vec4(4000.0))).foo.b; - baz_bar_a = Baz(Foo(vec4(1000.0), vec4(2000.0)), Bar(vec4(3000.0), vec4(4000.0))).bar.a; - baz_bar_b = Baz(Foo(vec4(1000.0), vec4(2000.0)), Bar(vec4(3000.0), vec4(4000.0))).bar.b; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/legacy/vert/struct-varying.legacy.vert b/third_party/spirv-cross/reference/opt/shaders/legacy/vert/struct-varying.legacy.vert deleted file mode 100644 index 66136d27ae..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/legacy/vert/struct-varying.legacy.vert +++ /dev/null @@ -1,24 +0,0 @@ -#version 100 - -struct Output -{ - vec4 a; - vec2 b; -}; - -varying vec4 vout_a; -varying vec2 vout_b; - -void main() -{ - vout_a = Output(vec4(0.5), vec2(0.25)).a; - vout_b = Output(vec4(0.5), vec2(0.25)).b; - vout_a = Output(vec4(0.5), vec2(0.25)).a; - vout_b = Output(vec4(0.5), vec2(0.25)).b; - Output _22 = Output(vout_a, vout_b); - vout_a = _22.a; - vout_b = _22.b; - vout_a.x = 1.0; - vout_b.y = 1.0; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/legacy/vert/switch-nested.legacy.vert b/third_party/spirv-cross/reference/opt/shaders/legacy/vert/switch-nested.legacy.vert deleted file mode 100644 index 7fcf6847a7..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/legacy/vert/switch-nested.legacy.vert +++ /dev/null @@ -1,43 +0,0 @@ -#version 100 - -struct UBO -{ - int func_arg; - int inner_func_arg; -}; - -uniform UBO _34; - -void main() -{ - vec4 _102; - for (int spvDummy30 = 0; spvDummy30 < 1; spvDummy30++) - { - if (_34.func_arg != 0) - { - vec4 _101; - for (int spvDummy45 = 0; spvDummy45 < 1; spvDummy45++) - { - if (_34.inner_func_arg != 0) - { - _101 = vec4(1.0); - break; - } - else - { - _101 = vec4(0.0); - break; - } - } - _102 = _101; - break; - } - else - { - _102 = vec4(0.0); - break; - } - } - gl_Position = _102; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/legacy/vert/transpose.legacy.vert b/third_party/spirv-cross/reference/opt/shaders/legacy/vert/transpose.legacy.vert deleted file mode 100644 index 9c7f465a1d..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/legacy/vert/transpose.legacy.vert +++ /dev/null @@ -1,29 +0,0 @@ -#version 100 - -struct Buffer -{ - mat4 MVPRowMajor; - mat4 MVPColMajor; - mat4 M; -}; - -uniform Buffer _13; - -attribute vec4 Position; - -mat4 spvWorkaroundRowMajor(mat4 wrap) { return wrap; } - -mat4 spvTranspose(mat4 m) -{ - return mat4(m[0][0], m[1][0], m[2][0], m[3][0], m[0][1], m[1][1], m[2][1], m[3][1], m[0][2], m[1][2], m[2][2], m[3][2], m[0][3], m[1][3], m[2][3], m[3][3]); -} - -void main() -{ - mat4 _55 = _13.MVPRowMajor; - mat4 _61 = spvWorkaroundRowMajor(_13.MVPColMajor); - mat4 _80 = spvTranspose(_13.MVPRowMajor) * 2.0; - mat4 _87 = spvTranspose(_61) * 2.0; - gl_Position = (((((((((((spvWorkaroundRowMajor(_13.M) * (Position * _13.MVPRowMajor)) + (spvWorkaroundRowMajor(_13.M) * (spvWorkaroundRowMajor(_13.MVPColMajor) * Position))) + (spvWorkaroundRowMajor(_13.M) * (_13.MVPRowMajor * Position))) + (spvWorkaroundRowMajor(_13.M) * (Position * spvWorkaroundRowMajor(_13.MVPColMajor)))) + (_55 * Position)) + (Position * _61)) + (Position * _55)) + (_61 * Position)) + (_80 * Position)) + (_87 * Position)) + (Position * _80)) + (Position * _87); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/tesc/basic.tesc b/third_party/spirv-cross/reference/opt/shaders/tesc/basic.tesc deleted file mode 100644 index 6019151adb..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/tesc/basic.tesc +++ /dev/null @@ -1,17 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require -layout(vertices = 1) out; - -layout(location = 0) patch out vec3 vFoo; - -void main() -{ - gl_TessLevelInner[0] = 8.8999996185302734375; - gl_TessLevelInner[1] = 6.900000095367431640625; - gl_TessLevelOuter[0] = 8.8999996185302734375; - gl_TessLevelOuter[1] = 6.900000095367431640625; - gl_TessLevelOuter[2] = 3.900000095367431640625; - gl_TessLevelOuter[3] = 4.900000095367431640625; - vFoo = vec3(1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/tesc/water_tess.tesc b/third_party/spirv-cross/reference/opt/shaders/tesc/water_tess.tesc deleted file mode 100644 index 79da68bedf..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/tesc/water_tess.tesc +++ /dev/null @@ -1,79 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require -layout(vertices = 1) out; - -layout(binding = 0, std140) uniform UBO -{ - vec4 uScale; - vec3 uCamPos; - vec2 uPatchSize; - vec2 uMaxTessLevel; - float uDistanceMod; - vec4 uFrustum[6]; -} _41; - -layout(location = 1) patch out vec2 vOutPatchPosBase; -layout(location = 2) patch out vec4 vPatchLods; -layout(location = 0) in vec2 vPatchPosBase[]; - -void main() -{ - vec2 _431 = (vPatchPosBase[0] - vec2(10.0)) * _41.uScale.xy; - vec2 _441 = ((vPatchPosBase[0] + _41.uPatchSize) + vec2(10.0)) * _41.uScale.xy; - vec3 _446 = vec3(_431.x, -10.0, _431.y); - vec3 _451 = vec3(_441.x, 10.0, _441.y); - vec4 _467 = vec4((_446 + _451) * 0.5, 1.0); - vec3 _514 = vec3(length(_451 - _446) * (-0.5)); - bool _516 = any(lessThanEqual(vec3(dot(_41.uFrustum[0], _467), dot(_41.uFrustum[1], _467), dot(_41.uFrustum[2], _467)), _514)); - bool _526; - if (!_516) - { - _526 = any(lessThanEqual(vec3(dot(_41.uFrustum[3], _467), dot(_41.uFrustum[4], _467), dot(_41.uFrustum[5], _467)), _514)); - } - else - { - _526 = _516; - } - if (!(!_526)) - { - gl_TessLevelOuter[0] = -1.0; - gl_TessLevelOuter[1] = -1.0; - gl_TessLevelOuter[2] = -1.0; - gl_TessLevelOuter[3] = -1.0; - gl_TessLevelInner[0] = -1.0; - gl_TessLevelInner[1] = -1.0; - } - else - { - vOutPatchPosBase = vPatchPosBase[0]; - vec2 _681 = (vPatchPosBase[0] + (vec2(-0.5) * _41.uPatchSize)) * _41.uScale.xy; - vec2 _710 = (vPatchPosBase[0] + (vec2(0.5, -0.5) * _41.uPatchSize)) * _41.uScale.xy; - float _729 = clamp(log2((length(_41.uCamPos - vec3(_710.x, 0.0, _710.y)) + 9.9999997473787516355514526367188e-05) * _41.uDistanceMod), 0.0, _41.uMaxTessLevel.x); - vec2 _739 = (vPatchPosBase[0] + (vec2(1.5, -0.5) * _41.uPatchSize)) * _41.uScale.xy; - vec2 _768 = (vPatchPosBase[0] + (vec2(-0.5, 0.5) * _41.uPatchSize)) * _41.uScale.xy; - float _787 = clamp(log2((length(_41.uCamPos - vec3(_768.x, 0.0, _768.y)) + 9.9999997473787516355514526367188e-05) * _41.uDistanceMod), 0.0, _41.uMaxTessLevel.x); - vec2 _797 = (vPatchPosBase[0] + (vec2(0.5) * _41.uPatchSize)) * _41.uScale.xy; - float _816 = clamp(log2((length(_41.uCamPos - vec3(_797.x, 0.0, _797.y)) + 9.9999997473787516355514526367188e-05) * _41.uDistanceMod), 0.0, _41.uMaxTessLevel.x); - vec2 _826 = (vPatchPosBase[0] + (vec2(1.5, 0.5) * _41.uPatchSize)) * _41.uScale.xy; - float _845 = clamp(log2((length(_41.uCamPos - vec3(_826.x, 0.0, _826.y)) + 9.9999997473787516355514526367188e-05) * _41.uDistanceMod), 0.0, _41.uMaxTessLevel.x); - vec2 _855 = (vPatchPosBase[0] + (vec2(-0.5, 1.5) * _41.uPatchSize)) * _41.uScale.xy; - vec2 _884 = (vPatchPosBase[0] + (vec2(0.5, 1.5) * _41.uPatchSize)) * _41.uScale.xy; - float _903 = clamp(log2((length(_41.uCamPos - vec3(_884.x, 0.0, _884.y)) + 9.9999997473787516355514526367188e-05) * _41.uDistanceMod), 0.0, _41.uMaxTessLevel.x); - vec2 _913 = (vPatchPosBase[0] + (vec2(1.5) * _41.uPatchSize)) * _41.uScale.xy; - float _614 = dot(vec4(_787, _816, clamp(log2((length(_41.uCamPos - vec3(_855.x, 0.0, _855.y)) + 9.9999997473787516355514526367188e-05) * _41.uDistanceMod), 0.0, _41.uMaxTessLevel.x), _903), vec4(0.25)); - float _620 = dot(vec4(clamp(log2((length(_41.uCamPos - vec3(_681.x, 0.0, _681.y)) + 9.9999997473787516355514526367188e-05) * _41.uDistanceMod), 0.0, _41.uMaxTessLevel.x), _729, _787, _816), vec4(0.25)); - float _626 = dot(vec4(_729, clamp(log2((length(_41.uCamPos - vec3(_739.x, 0.0, _739.y)) + 9.9999997473787516355514526367188e-05) * _41.uDistanceMod), 0.0, _41.uMaxTessLevel.x), _816, _845), vec4(0.25)); - float _632 = dot(vec4(_816, _845, _903, clamp(log2((length(_41.uCamPos - vec3(_913.x, 0.0, _913.y)) + 9.9999997473787516355514526367188e-05) * _41.uDistanceMod), 0.0, _41.uMaxTessLevel.x)), vec4(0.25)); - vec4 _633 = vec4(_614, _620, _626, _632); - vPatchLods = _633; - vec4 _940 = exp2(-min(_633, _633.yzwx)) * _41.uMaxTessLevel.y; - gl_TessLevelOuter[0] = _940.x; - gl_TessLevelOuter[1] = _940.y; - gl_TessLevelOuter[2] = _940.z; - gl_TessLevelOuter[3] = _940.w; - float _948 = _41.uMaxTessLevel.y * exp2(-min(min(min(_614, _620), min(_626, _632)), _816)); - gl_TessLevelInner[0] = _948; - gl_TessLevelInner[1] = _948; - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/tese/ccw.tese b/third_party/spirv-cross/reference/opt/shaders/tese/ccw.tese deleted file mode 100644 index a2a4508ac0..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/tese/ccw.tese +++ /dev/null @@ -1,9 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require -layout(triangles, ccw, fractional_even_spacing) in; - -void main() -{ - gl_Position = vec4(1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/tese/cw.tese b/third_party/spirv-cross/reference/opt/shaders/tese/cw.tese deleted file mode 100644 index 95781493d8..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/tese/cw.tese +++ /dev/null @@ -1,9 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require -layout(triangles, cw, fractional_even_spacing) in; - -void main() -{ - gl_Position = vec4(1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/tese/equal.tese b/third_party/spirv-cross/reference/opt/shaders/tese/equal.tese deleted file mode 100644 index 6d30518a30..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/tese/equal.tese +++ /dev/null @@ -1,9 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require -layout(triangles, cw, equal_spacing) in; - -void main() -{ - gl_Position = vec4(1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/tese/fractional_even.tese b/third_party/spirv-cross/reference/opt/shaders/tese/fractional_even.tese deleted file mode 100644 index 95781493d8..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/tese/fractional_even.tese +++ /dev/null @@ -1,9 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require -layout(triangles, cw, fractional_even_spacing) in; - -void main() -{ - gl_Position = vec4(1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/tese/fractional_odd.tese b/third_party/spirv-cross/reference/opt/shaders/tese/fractional_odd.tese deleted file mode 100644 index 608c19aba7..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/tese/fractional_odd.tese +++ /dev/null @@ -1,9 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require -layout(triangles, cw, fractional_odd_spacing) in; - -void main() -{ - gl_Position = vec4(1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/tese/input-array.tese b/third_party/spirv-cross/reference/opt/shaders/tese/input-array.tese deleted file mode 100644 index 8a1aaf9fdb..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/tese/input-array.tese +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 -layout(quads, ccw, fractional_odd_spacing) in; - -layout(location = 0) in vec4 Floats[]; -layout(location = 2) in vec4 Floats2[]; - -void main() -{ - gl_Position = (Floats[0] * gl_TessCoord.x) + (Floats2[1] * gl_TessCoord.y); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/tese/line.tese b/third_party/spirv-cross/reference/opt/shaders/tese/line.tese deleted file mode 100644 index 8b6ad8da20..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/tese/line.tese +++ /dev/null @@ -1,9 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require -layout(isolines, point_mode, fractional_even_spacing) in; - -void main() -{ - gl_Position = vec4(1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/tese/load-array-of-array.tese b/third_party/spirv-cross/reference/opt/shaders/tese/load-array-of-array.tese deleted file mode 100644 index e4b426d0ad..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/tese/load-array-of-array.tese +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 -layout(quads, ccw, equal_spacing) in; - -layout(location = 0) in vec4 vTexCoord[][1]; - -void main() -{ - gl_Position = (vTexCoord[0u][0] + vTexCoord[2u][0]) + vTexCoord[3u][0]; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/tese/patch-input-array.tese b/third_party/spirv-cross/reference/opt/shaders/tese/patch-input-array.tese deleted file mode 100644 index 413d8b391f..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/tese/patch-input-array.tese +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 -layout(quads, ccw, equal_spacing) in; - -layout(location = 0) patch in float P[4]; - -void main() -{ - gl_Position = vec4(P[0], P[1], P[2], P[3]); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/tese/triangle.tese b/third_party/spirv-cross/reference/opt/shaders/tese/triangle.tese deleted file mode 100644 index 95781493d8..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/tese/triangle.tese +++ /dev/null @@ -1,9 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require -layout(triangles, cw, fractional_even_spacing) in; - -void main() -{ - gl_Position = vec4(1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/tese/water_tess.tese b/third_party/spirv-cross/reference/opt/shaders/tese/water_tess.tese deleted file mode 100644 index 6eb0d1aa1a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/tese/water_tess.tese +++ /dev/null @@ -1,36 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require -layout(quads, cw, fractional_even_spacing) in; - -layout(binding = 1, std140) uniform UBO -{ - mat4 uMVP; - vec4 uScale; - vec2 uInvScale; - vec3 uCamPos; - vec2 uPatchSize; - vec2 uInvHeightmapSize; -} _31; - -layout(binding = 0) uniform mediump sampler2D uHeightmapDisplacement; - -layout(location = 0) patch in vec2 vOutPatchPosBase; -layout(location = 1) patch in vec4 vPatchLods; -layout(location = 1) out vec4 vGradNormalTex; -layout(location = 0) out vec3 vWorld; - -void main() -{ - vec2 _202 = vOutPatchPosBase + (gl_TessCoord.xy * _31.uPatchSize); - vec2 _216 = mix(vPatchLods.yx, vPatchLods.zw, vec2(gl_TessCoord.x)); - float _223 = mix(_216.x, _216.y, gl_TessCoord.y); - mediump float _225 = floor(_223); - vec2 _125 = _202 * _31.uInvHeightmapSize; - vec2 _141 = _31.uInvHeightmapSize * exp2(_225); - vGradNormalTex = vec4(_125 + (_31.uInvHeightmapSize * 0.5), _125 * _31.uScale.zw); - mediump vec3 _256 = mix(textureLod(uHeightmapDisplacement, _125 + (_141 * 0.5), _225).xyz, textureLod(uHeightmapDisplacement, _125 + (_141 * 1.0), _225 + 1.0).xyz, vec3(_223 - _225)); - vec2 _171 = (_202 * _31.uScale.xy) + _256.yz; - vWorld = vec3(_171.x, _256.x, _171.y); - gl_Position = _31.uMVP * vec4(vWorld, 1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vert/basic.vert b/third_party/spirv-cross/reference/opt/shaders/vert/basic.vert deleted file mode 100644 index 8f251cbedc..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vert/basic.vert +++ /dev/null @@ -1,17 +0,0 @@ -#version 310 es - -layout(binding = 0, std140) uniform UBO -{ - mat4 uMVP; -} _16; - -layout(location = 0) in vec4 aVertex; -layout(location = 0) out vec3 vNormal; -layout(location = 1) in vec3 aNormal; - -void main() -{ - gl_Position = _16.uMVP * aVertex; - vNormal = aNormal; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vert/ground.vert b/third_party/spirv-cross/reference/opt/shaders/vert/ground.vert deleted file mode 100644 index d93835779f..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vert/ground.vert +++ /dev/null @@ -1,94 +0,0 @@ -#version 310 es -#ifdef GL_ARB_shader_draw_parameters -#extension GL_ARB_shader_draw_parameters : enable -#endif - -struct PatchData -{ - vec4 Position; - vec4 LODs; -}; - -layout(binding = 0, std140) uniform PerPatch -{ - PatchData Patches[256]; -} _53; - -layout(binding = 2, std140) uniform GlobalGround -{ - vec4 GroundScale; - vec4 GroundPosition; - vec4 InvGroundSize_PatchScale; -} _156; - -layout(binding = 0, std140) uniform GlobalVSData -{ - vec4 g_ViewProj_Row0; - vec4 g_ViewProj_Row1; - vec4 g_ViewProj_Row2; - vec4 g_ViewProj_Row3; - vec4 g_CamPos; - vec4 g_CamRight; - vec4 g_CamUp; - vec4 g_CamFront; - vec4 g_SunDir; - vec4 g_SunColor; - vec4 g_TimeParams; - vec4 g_ResolutionParams; - vec4 g_CamAxisRight; - vec4 g_FogColor_Distance; - vec4 g_ShadowVP_Row0; - vec4 g_ShadowVP_Row1; - vec4 g_ShadowVP_Row2; - vec4 g_ShadowVP_Row3; -} _236; - -layout(binding = 1) uniform mediump sampler2D TexLOD; -layout(binding = 0) uniform mediump sampler2D TexHeightmap; - -layout(location = 1) in vec4 LODWeights; -#ifdef GL_ARB_shader_draw_parameters -#define SPIRV_Cross_BaseInstance gl_BaseInstanceARB -#else -uniform int SPIRV_Cross_BaseInstance; -#endif -layout(location = 0) in vec2 Position; -layout(location = 1) out vec3 EyeVec; -layout(location = 0) out vec2 TexCoord; - -void main() -{ - float _301 = all(equal(LODWeights, vec4(0.0))) ? _53.Patches[(gl_InstanceID + SPIRV_Cross_BaseInstance)].Position.w : dot(LODWeights, _53.Patches[(gl_InstanceID + SPIRV_Cross_BaseInstance)].LODs); - float _303 = floor(_301); - uint _308 = uint(_303); - uvec2 _310 = uvec2(Position); - uvec2 _317 = (uvec2(1u) << uvec2(_308, _308 + 1u)) - uvec2(1u); - uint _384; - if (_310.x < 32u) - { - _384 = _317.x; - } - else - { - _384 = 0u; - } - uint _385; - if (_310.y < 32u) - { - _385 = _317.y; - } - else - { - _385 = 0u; - } - vec4 _345 = vec4((_310 + uvec2(_384, _385)).xyxy & (~_317).xxyy); - vec2 _173 = ((_53.Patches[(gl_InstanceID + SPIRV_Cross_BaseInstance)].Position.xz * _156.InvGroundSize_PatchScale.zw) + mix(_345.xy, _345.zw, vec2(_301 - _303))) * _156.InvGroundSize_PatchScale.xy; - mediump float _362 = textureLod(TexLOD, _173, 0.0).x * 7.96875; - float _364 = floor(_362); - vec2 _185 = _156.InvGroundSize_PatchScale.xy * exp2(_364); - vec3 _230 = (vec3(_173.x, mix(textureLod(TexHeightmap, _173 + (_185 * 0.5), _364).x, textureLod(TexHeightmap, _173 + (_185 * 1.0), _364 + 1.0).x, _362 - _364), _173.y) * _156.GroundScale.xyz) + _156.GroundPosition.xyz; - EyeVec = _230 - _236.g_CamPos.xyz; - TexCoord = _173 + (_156.InvGroundSize_PatchScale.xy * 0.5); - gl_Position = (((_236.g_ViewProj_Row0 * _230.x) + (_236.g_ViewProj_Row1 * _230.y)) + (_236.g_ViewProj_Row2 * _230.z)) + _236.g_ViewProj_Row3; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vert/invariant.vert b/third_party/spirv-cross/reference/opt/shaders/vert/invariant.vert deleted file mode 100644 index 648ea2947c..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vert/invariant.vert +++ /dev/null @@ -1,19 +0,0 @@ -#version 310 es - -invariant gl_Position; - -layout(location = 0) in vec4 vInput0; -layout(location = 1) in vec4 vInput1; -layout(location = 2) in vec4 vInput2; -layout(location = 0) invariant out vec4 vColor; - -void main() -{ - vec4 _20 = vInput1 * vInput2; - vec4 _21 = vInput0 + _20; - gl_Position = _21; - vec4 _27 = vInput0 - vInput1; - vec4 _29 = _27 * vInput2; - vColor = _29; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vert/no-contraction.vert b/third_party/spirv-cross/reference/opt/shaders/vert/no-contraction.vert deleted file mode 100644 index 9f9969cd74..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vert/no-contraction.vert +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 - -layout(location = 0) in vec4 vA; -layout(location = 1) in vec4 vB; -layout(location = 2) in vec4 vC; - -void main() -{ - precise vec4 _15 = vA * vB; - precise vec4 _19 = vA + vB; - precise vec4 _23 = vA - vB; - precise vec4 _30 = _15 + vC; - precise vec4 _34 = _15 + _19; - precise vec4 _36 = _34 + _23; - precise vec4 _38 = _36 + _30; - gl_Position = _38; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vert/ocean.vert b/third_party/spirv-cross/reference/opt/shaders/vert/ocean.vert deleted file mode 100644 index 9656938c80..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vert/ocean.vert +++ /dev/null @@ -1,126 +0,0 @@ -#version 310 es -#ifdef GL_ARB_shader_draw_parameters -#extension GL_ARB_shader_draw_parameters : enable -#endif - -struct PatchData -{ - vec4 Position; - vec4 LODs; -}; - -layout(binding = 0, std140) uniform Offsets -{ - PatchData Patches[256]; -} _53; - -layout(binding = 4, std140) uniform GlobalOcean -{ - vec4 OceanScale; - vec4 OceanPosition; - vec4 InvOceanSize_PatchScale; - vec4 NormalTexCoordScale; -} _180; - -layout(binding = 0, std140) uniform GlobalVSData -{ - vec4 g_ViewProj_Row0; - vec4 g_ViewProj_Row1; - vec4 g_ViewProj_Row2; - vec4 g_ViewProj_Row3; - vec4 g_CamPos; - vec4 g_CamRight; - vec4 g_CamUp; - vec4 g_CamFront; - vec4 g_SunDir; - vec4 g_SunColor; - vec4 g_TimeParams; - vec4 g_ResolutionParams; - vec4 g_CamAxisRight; - vec4 g_FogColor_Distance; - vec4 g_ShadowVP_Row0; - vec4 g_ShadowVP_Row1; - vec4 g_ShadowVP_Row2; - vec4 g_ShadowVP_Row3; -} _273; - -layout(binding = 1) uniform mediump sampler2D TexLOD; -layout(binding = 0) uniform mediump sampler2D TexDisplacement; - -layout(location = 1) in vec4 LODWeights; -#ifdef GL_ARB_shader_draw_parameters -#define SPIRV_Cross_BaseInstance gl_BaseInstanceARB -#else -uniform int SPIRV_Cross_BaseInstance; -#endif -layout(location = 0) in vec4 Position; -layout(location = 0) out vec3 EyeVec; -layout(location = 1) out vec4 TexCoord; - -uvec4 _476; - -void main() -{ - float _351 = all(equal(LODWeights, vec4(0.0))) ? _53.Patches[(gl_InstanceID + SPIRV_Cross_BaseInstance)].Position.w : dot(LODWeights, _53.Patches[(gl_InstanceID + SPIRV_Cross_BaseInstance)].LODs); - float _353 = floor(_351); - uint _358 = uint(_353); - uvec4 _360 = uvec4(Position); - uvec2 _367 = (uvec2(1u) << uvec2(_358, _358 + 1u)) - uvec2(1u); - bool _370 = _360.x < 32u; - uint _467; - if (_370) - { - _467 = _367.x; - } - else - { - _467 = 0u; - } - uvec4 _445 = _476; - _445.x = _467; - bool _380 = _360.y < 32u; - uint _470; - if (_380) - { - _470 = _367.x; - } - else - { - _470 = 0u; - } - uvec4 _449 = _445; - _449.y = _470; - uint _472; - if (_370) - { - _472 = _367.y; - } - else - { - _472 = 0u; - } - uvec4 _453 = _449; - _453.z = _472; - uint _474; - if (_380) - { - _474 = _367.y; - } - else - { - _474 = 0u; - } - uvec4 _457 = _453; - _457.w = _474; - vec4 _416 = vec4((_360.xyxy + _457) & (~_367).xxyy); - vec2 _197 = ((_53.Patches[(gl_InstanceID + SPIRV_Cross_BaseInstance)].Position.xz * _180.InvOceanSize_PatchScale.zw) + mix(_416.xy, _416.zw, vec2(_351 - _353))) * _180.InvOceanSize_PatchScale.xy; - vec2 _204 = _197 * _180.NormalTexCoordScale.zw; - mediump float _433 = textureLod(TexLOD, _197, 0.0).x * 7.96875; - float _435 = floor(_433); - vec2 _220 = (_180.InvOceanSize_PatchScale.xy * exp2(_435)) * _180.NormalTexCoordScale.zw; - vec3 _267 = ((vec3(_197.x, 0.0, _197.y) + mix(textureLod(TexDisplacement, _204 + (_220 * 0.5), _435).yxz, textureLod(TexDisplacement, _204 + (_220 * 1.0), _435 + 1.0).yxz, vec3(_433 - _435))) * _180.OceanScale.xyz) + _180.OceanPosition.xyz; - EyeVec = _267 - _273.g_CamPos.xyz; - TexCoord = vec4(_204, _204 * _180.NormalTexCoordScale.xy) + ((_180.InvOceanSize_PatchScale.xyxy * 0.5) * _180.NormalTexCoordScale.zwzw); - gl_Position = (((_273.g_ViewProj_Row0 * _267.x) + (_273.g_ViewProj_Row1 * _267.y)) + (_273.g_ViewProj_Row2 * _267.z)) + _273.g_ViewProj_Row3; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vert/read-from-row-major-array.vert b/third_party/spirv-cross/reference/opt/shaders/vert/read-from-row-major-array.vert deleted file mode 100644 index 6c68979b73..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vert/read-from-row-major-array.vert +++ /dev/null @@ -1,18 +0,0 @@ -#version 310 es - -layout(binding = 0, std140) uniform Block -{ - layout(row_major) mat2x3 var[3][4]; -} _104; - -layout(location = 0) in vec4 a_position; -layout(location = 0) out mediump float v_vtxResult; - -mat2x3 spvWorkaroundRowMajor(mat2x3 wrap) { return wrap; } - -void main() -{ - gl_Position = a_position; - v_vtxResult = ((float(abs(spvWorkaroundRowMajor(_104.var[0][0])[0].x - 2.0) < 0.0500000007450580596923828125) * float(abs(spvWorkaroundRowMajor(_104.var[0][0])[0].y - 6.0) < 0.0500000007450580596923828125)) * float(abs(spvWorkaroundRowMajor(_104.var[0][0])[0].z - (-6.0)) < 0.0500000007450580596923828125)) * ((float(abs(spvWorkaroundRowMajor(_104.var[0][0])[1].x) < 0.0500000007450580596923828125) * float(abs(spvWorkaroundRowMajor(_104.var[0][0])[1].y - 5.0) < 0.0500000007450580596923828125)) * float(abs(spvWorkaroundRowMajor(_104.var[0][0])[1].z - 5.0) < 0.0500000007450580596923828125)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vert/return-array.vert b/third_party/spirv-cross/reference/opt/shaders/vert/return-array.vert deleted file mode 100644 index b78ca5f1b8..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vert/return-array.vert +++ /dev/null @@ -1,9 +0,0 @@ -#version 310 es - -layout(location = 1) in vec4 vInput1; - -void main() -{ - gl_Position = vec4(10.0) + vInput1; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vert/texture_buffer.vert b/third_party/spirv-cross/reference/opt/shaders/vert/texture_buffer.vert deleted file mode 100644 index e9442ce119..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vert/texture_buffer.vert +++ /dev/null @@ -1,11 +0,0 @@ -#version 310 es -#extension GL_OES_texture_buffer : require - -layout(binding = 4) uniform highp samplerBuffer uSamp; -layout(binding = 5, rgba32f) uniform readonly highp imageBuffer uSampo; - -void main() -{ - gl_Position = texelFetch(uSamp, 10) + imageLoad(uSampo, 100); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vert/transform-feedback-decorations.vert b/third_party/spirv-cross/reference/opt/shaders/vert/transform-feedback-decorations.vert deleted file mode 100644 index 23e7cf3c19..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vert/transform-feedback-decorations.vert +++ /dev/null @@ -1,22 +0,0 @@ -#version 450 - -layout(xfb_buffer = 1, xfb_stride = 20) out gl_PerVertex -{ - layout(xfb_offset = 4) vec4 gl_Position; - float gl_PointSize; -}; - -layout(location = 0, xfb_buffer = 2, xfb_stride = 32, xfb_offset = 16) out vec4 vFoo; -layout(xfb_buffer = 3, xfb_stride = 16) out VertOut -{ - layout(location = 1, xfb_offset = 0) vec4 vBar; -} _22; - - -void main() -{ - gl_Position = vec4(1.0); - vFoo = vec4(3.0); - _22.vBar = vec4(5.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vert/ubo.vert b/third_party/spirv-cross/reference/opt/shaders/vert/ubo.vert deleted file mode 100644 index 4e7236b290..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vert/ubo.vert +++ /dev/null @@ -1,17 +0,0 @@ -#version 310 es - -layout(binding = 0, std140) uniform UBO -{ - mat4 mvp; -} _16; - -layout(location = 0) in vec4 aVertex; -layout(location = 0) out vec3 vNormal; -layout(location = 1) in vec3 aNormal; - -void main() -{ - gl_Position = _16.mvp * aVertex; - vNormal = aNormal; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/comp/array-of-buffer-reference.nocompat.vk.comp.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/comp/array-of-buffer-reference.nocompat.vk.comp.vk deleted file mode 100644 index 82ebb96085..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/comp/array-of-buffer-reference.nocompat.vk.comp.vk +++ /dev/null @@ -1,25 +0,0 @@ -#version 450 -#extension GL_EXT_buffer_reference : require -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(buffer_reference) buffer Block; -layout(buffer_reference, std430) buffer Block -{ - float v; -}; - -layout(set = 0, binding = 0, std140) uniform UBO -{ - Block blocks[4]; -} ubo; - -void main() -{ - Block blocks[4]; - blocks[0] = ubo.blocks[0]; - blocks[1] = ubo.blocks[1]; - blocks[2] = ubo.blocks[2]; - blocks[3] = ubo.blocks[3]; - blocks[gl_WorkGroupID.x].v = 20.0; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/comp/buffer-reference-bitcast.nocompat.vk.comp.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/comp/buffer-reference-bitcast.nocompat.vk.comp.vk deleted file mode 100644 index 5752f81b26..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/comp/buffer-reference-bitcast.nocompat.vk.comp.vk +++ /dev/null @@ -1,26 +0,0 @@ -#version 450 -#extension GL_EXT_buffer_reference : require -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(buffer_reference) buffer PtrUint; -layout(buffer_reference) buffer PtrInt; -layout(buffer_reference, std430) buffer PtrUint -{ - uint value; -}; - -layout(buffer_reference, std430) buffer PtrInt -{ - int value; -}; - -layout(set = 0, binding = 0, std430) buffer Buf -{ - PtrUint ptr; -} _11; - -void main() -{ - PtrInt(_11.ptr).value = 10; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/comp/buffer-reference-decorations.nocompat.vk.comp.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/comp/buffer-reference-decorations.nocompat.vk.comp.vk deleted file mode 100644 index 5b3cf49e7a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/comp/buffer-reference-decorations.nocompat.vk.comp.vk +++ /dev/null @@ -1,35 +0,0 @@ -#version 450 -#extension GL_EXT_buffer_reference : require -layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in; - -layout(buffer_reference) buffer RO; -layout(buffer_reference) buffer RW; -layout(buffer_reference) buffer WO; -layout(buffer_reference, std430) readonly buffer RO -{ - vec4 v[]; -}; - -layout(buffer_reference, std430) restrict buffer RW -{ - vec4 v[]; -}; - -layout(buffer_reference, std430) coherent writeonly buffer WO -{ - vec4 v[]; -}; - -layout(push_constant, std430) uniform Registers -{ - RO ro; - RW rw; - WO wo; -} registers; - -void main() -{ - registers.rw.v[gl_GlobalInvocationID.x] = registers.ro.v[gl_GlobalInvocationID.x]; - registers.wo.v[gl_GlobalInvocationID.x] = registers.ro.v[gl_GlobalInvocationID.x]; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/comp/buffer-reference.nocompat.vk.comp.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/comp/buffer-reference.nocompat.vk.comp.vk deleted file mode 100644 index b30330cfb6..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/comp/buffer-reference.nocompat.vk.comp.vk +++ /dev/null @@ -1,35 +0,0 @@ -#version 450 -#extension GL_ARB_gpu_shader_int64 : require -#extension GL_EXT_buffer_reference : require -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(buffer_reference) buffer Node; -layout(buffer_reference, std430) buffer Node -{ - layout(offset = 0) int value; - layout(offset = 16) Node next; - layout(offset = 32) Node prev; -}; - -layout(set = 0, binding = 0, std430) restrict buffer LinkedList -{ - Node head1; - Node head2; -} _50; - -void main() -{ - Node _114; - if (gl_WorkGroupID.x < 4u) - { - _114 = _50.head1; - } - else - { - _114 = _50.head2; - } - _114.next.value = _50.head1.value + _50.head2.value; - _50.head1.value = 20; - _50.head1.value = _50.head2.value * 10; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/comp/spec-constant-op-member-array.vk.comp b/third_party/spirv-cross/reference/opt/shaders/vulkan/comp/spec-constant-op-member-array.vk.comp deleted file mode 100644 index 7c4c7ed6f4..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/comp/spec-constant-op-member-array.vk.comp +++ /dev/null @@ -1,47 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -#ifndef SPIRV_CROSS_CONSTANT_ID_0 -#define SPIRV_CROSS_CONSTANT_ID_0 100 -#endif -const int a = SPIRV_CROSS_CONSTANT_ID_0; -#ifndef SPIRV_CROSS_CONSTANT_ID_1 -#define SPIRV_CROSS_CONSTANT_ID_1 200 -#endif -const int b = SPIRV_CROSS_CONSTANT_ID_1; - -struct A -{ - int member0[a]; - int member1[b]; -}; - -struct B -{ - int member0[b]; - int member1[a]; -}; - -#ifndef SPIRV_CROSS_CONSTANT_ID_2 -#define SPIRV_CROSS_CONSTANT_ID_2 300 -#endif -const int c = SPIRV_CROSS_CONSTANT_ID_2; -const int d = (c + 50); -#ifndef SPIRV_CROSS_CONSTANT_ID_3 -#define SPIRV_CROSS_CONSTANT_ID_3 400 -#endif -const int e = SPIRV_CROSS_CONSTANT_ID_3; - -layout(binding = 0, std430) buffer SSBO -{ - A member_a; - B member_b; - int v[a]; - int w[d]; -} _22; - -void main() -{ - _22.w[gl_GlobalInvocationID.x] += (_22.v[gl_GlobalInvocationID.x] + e); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/comp/spec-constant-op-member-array.vk.comp.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/comp/spec-constant-op-member-array.vk.comp.vk deleted file mode 100644 index b7571b7abc..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/comp/spec-constant-op-member-array.vk.comp.vk +++ /dev/null @@ -1,35 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(constant_id = 0) const int a = 100; -layout(constant_id = 1) const int b = 200; - -struct A -{ - int member0[a]; - int member1[b]; -}; - -struct B -{ - int member0[b]; - int member1[a]; -}; - -layout(constant_id = 2) const int c = 300; -const int d = (c + 50); -layout(constant_id = 3) const int e = 400; - -layout(set = 1, binding = 0, std430) buffer SSBO -{ - A member_a; - B member_b; - int v[a]; - int w[d]; -} _22; - -void main() -{ - _22.w[gl_GlobalInvocationID.x] += (_22.v[gl_GlobalInvocationID.x] + e); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/comp/spec-constant-work-group-size.vk.comp b/third_party/spirv-cross/reference/opt/shaders/vulkan/comp/spec-constant-work-group-size.vk.comp deleted file mode 100644 index 888f4b1640..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/comp/spec-constant-work-group-size.vk.comp +++ /dev/null @@ -1,34 +0,0 @@ -#version 450 - -#ifndef SPIRV_CROSS_CONSTANT_ID_1 -#define SPIRV_CROSS_CONSTANT_ID_1 2 -#endif -const int b = SPIRV_CROSS_CONSTANT_ID_1; -#ifndef SPIRV_CROSS_CONSTANT_ID_0 -#define SPIRV_CROSS_CONSTANT_ID_0 1 -#endif -const int a = SPIRV_CROSS_CONSTANT_ID_0; -const uint _21 = (uint(a) + 0u); -#ifndef SPIRV_CROSS_CONSTANT_ID_10 -#define SPIRV_CROSS_CONSTANT_ID_10 1u -#endif -const uint _27 = gl_WorkGroupSize.x; -const uint _28 = (_21 + _27); -const uint _29 = gl_WorkGroupSize.y; -const uint _30 = (_28 + _29); -const int _32 = (1 - a); - -layout(local_size_x = SPIRV_CROSS_CONSTANT_ID_10, local_size_y = 20, local_size_z = 1) in; - -layout(binding = 0, std430) writeonly buffer SSBO -{ - int v[]; -} _17; - -void main() -{ - int spec_const_array_size[b]; - spec_const_array_size[a] = a; - _17.v[_30] = b + spec_const_array_size[_32]; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/comp/spec-constant-work-group-size.vk.comp.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/comp/spec-constant-work-group-size.vk.comp.vk deleted file mode 100644 index bdf72dff4e..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/comp/spec-constant-work-group-size.vk.comp.vk +++ /dev/null @@ -1,24 +0,0 @@ -#version 450 -layout(local_size_x_id = 10, local_size_y = 20, local_size_z = 1) in; - -layout(constant_id = 1) const int b = 2; -layout(constant_id = 0) const int a = 1; -const uint _21 = (uint(a) + 0u); -const uint _27 = gl_WorkGroupSize.x; -const uint _28 = (_21 + _27); -const uint _29 = gl_WorkGroupSize.y; -const uint _30 = (_28 + _29); -const int _32 = (1 - a); - -layout(set = 1, binding = 0, std430) writeonly buffer SSBO -{ - int v[]; -} _17; - -void main() -{ - int spec_const_array_size[b]; - spec_const_array_size[a] = a; - _17.v[_30] = b + spec_const_array_size[_32]; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/combined-texture-sampler-shadow.vk.frag b/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/combined-texture-sampler-shadow.vk.frag deleted file mode 100644 index f0729fdcdf..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/combined-texture-sampler-shadow.vk.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -uniform mediump sampler2DShadow SPIRV_Cross_CombineduDepthuSampler; -uniform mediump sampler2D SPIRV_Cross_CombineduDepthuSampler1; - -layout(location = 0) out float FragColor; - -void main() -{ - FragColor = texture(SPIRV_Cross_CombineduDepthuSampler, vec3(vec3(1.0).xy, 1.0)) + texture(SPIRV_Cross_CombineduDepthuSampler1, vec2(1.0)).x; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/combined-texture-sampler-shadow.vk.frag.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/combined-texture-sampler-shadow.vk.frag.vk deleted file mode 100644 index b6ad1e39c4..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/combined-texture-sampler-shadow.vk.frag.vk +++ /dev/null @@ -1,15 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(set = 0, binding = 2) uniform mediump texture2D uDepth; -layout(set = 0, binding = 0) uniform mediump samplerShadow uSampler; -layout(set = 0, binding = 1) uniform mediump sampler uSampler1; - -layout(location = 0) out float FragColor; - -void main() -{ - FragColor = texture(sampler2DShadow(uDepth, uSampler), vec3(vec3(1.0).xy, 1.0)) + texture(sampler2D(uDepth, uSampler1), vec2(1.0)).x; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/combined-texture-sampler.vk.frag b/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/combined-texture-sampler.vk.frag deleted file mode 100644 index 29c247d6d9..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/combined-texture-sampler.vk.frag +++ /dev/null @@ -1,17 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -uniform mediump sampler2D SPIRV_Cross_CombineduTexture0uSampler0; -uniform mediump sampler2D SPIRV_Cross_CombineduTexture1uSampler1; -uniform mediump sampler2D SPIRV_Cross_CombineduTexture1uSampler0; -uniform mediump sampler2D SPIRV_Cross_CombineduTexture0uSampler1; - -layout(location = 0) in vec2 vTex; -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = ((((texture(SPIRV_Cross_CombineduTexture0uSampler0, vTex) + texture(SPIRV_Cross_CombineduTexture1uSampler1, vTex)) + (texture(SPIRV_Cross_CombineduTexture0uSampler0, vTex) + texture(SPIRV_Cross_CombineduTexture1uSampler0, vTex))) + (texture(SPIRV_Cross_CombineduTexture0uSampler1, vTex) + texture(SPIRV_Cross_CombineduTexture1uSampler1, vTex))) + (texture(SPIRV_Cross_CombineduTexture0uSampler0, vTex) + texture(SPIRV_Cross_CombineduTexture0uSampler1, vTex))) + (texture(SPIRV_Cross_CombineduTexture1uSampler0, vTex) + texture(SPIRV_Cross_CombineduTexture1uSampler1, vTex)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/combined-texture-sampler.vk.frag.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/combined-texture-sampler.vk.frag.vk deleted file mode 100644 index 7a543c4168..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/combined-texture-sampler.vk.frag.vk +++ /dev/null @@ -1,17 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(set = 0, binding = 2) uniform mediump texture2D uTexture0; -layout(set = 0, binding = 3) uniform mediump texture2D uTexture1; -layout(set = 0, binding = 0) uniform mediump sampler uSampler0; -layout(set = 0, binding = 1) uniform mediump sampler uSampler1; - -layout(location = 0) in vec2 vTex; -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = ((((texture(sampler2D(uTexture0, uSampler0), vTex) + texture(sampler2D(uTexture1, uSampler1), vTex)) + (texture(sampler2D(uTexture0, uSampler0), vTex) + texture(sampler2D(uTexture1, uSampler0), vTex))) + (texture(sampler2D(uTexture0, uSampler1), vTex) + texture(sampler2D(uTexture1, uSampler1), vTex))) + (texture(sampler2D(uTexture0, uSampler0), vTex) + texture(sampler2D(uTexture0, uSampler1), vTex))) + (texture(sampler2D(uTexture1, uSampler0), vTex) + texture(sampler2D(uTexture1, uSampler1), vTex)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/demote-to-helper-forwarding.asm.vk.nocompat.frag.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/demote-to-helper-forwarding.asm.vk.nocompat.frag.vk deleted file mode 100644 index 153164920f..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/demote-to-helper-forwarding.asm.vk.nocompat.frag.vk +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 -#extension GL_EXT_demote_to_helper_invocation : require - -layout(location = 0) out vec4 FragColor; - -void main() -{ - bool _15 = helperInvocationEXT(); - demote; - if (!_15) - { - FragColor = vec4(1.0, 0.0, 0.0, 1.0); - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/demote-to-helper.vk.nocompat.frag.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/demote-to-helper.vk.nocompat.frag.vk deleted file mode 100644 index 688a5800d1..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/demote-to-helper.vk.nocompat.frag.vk +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 -#extension GL_EXT_demote_to_helper_invocation : require - -void main() -{ - demote; - bool _9 = helperInvocationEXT(); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/desktop-mediump.vk.frag b/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/desktop-mediump.vk.frag deleted file mode 100644 index 8f7508ee8e..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/desktop-mediump.vk.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 F; -layout(location = 1) flat in ivec4 I; -layout(location = 2) flat in uvec4 U; - -void main() -{ - FragColor = (F + vec4(I)) + vec4(U); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/desktop-mediump.vk.frag.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/desktop-mediump.vk.frag.vk deleted file mode 100644 index 4c0506b110..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/desktop-mediump.vk.frag.vk +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(location = 0) out mediump vec4 FragColor; -layout(location = 0) in mediump vec4 F; -layout(location = 1) flat in mediump ivec4 I; -layout(location = 2) flat in mediump uvec4 U; - -void main() -{ - FragColor = (F + vec4(I)) + vec4(U); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/input-attachment-ms.vk.frag b/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/input-attachment-ms.vk.frag deleted file mode 100644 index ea460c1fae..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/input-attachment-ms.vk.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler2DMS uSubpass0; -layout(binding = 1) uniform sampler2DMS uSubpass1; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = (texelFetch(uSubpass0, ivec2(gl_FragCoord.xy), 1) + texelFetch(uSubpass1, ivec2(gl_FragCoord.xy), 2)) + texelFetch(uSubpass0, ivec2(gl_FragCoord.xy), gl_SampleID); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/input-attachment-ms.vk.frag.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/input-attachment-ms.vk.frag.vk deleted file mode 100644 index 462df22a19..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/input-attachment-ms.vk.frag.vk +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(input_attachment_index = 0, set = 0, binding = 0) uniform subpassInputMS uSubpass0; -layout(input_attachment_index = 1, set = 0, binding = 1) uniform subpassInputMS uSubpass1; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = (subpassLoad(uSubpass0, 1) + subpassLoad(uSubpass1, 2)) + subpassLoad(uSubpass0, gl_SampleID); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/input-attachment.vk.frag b/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/input-attachment.vk.frag deleted file mode 100644 index 8d216b2c49..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/input-attachment.vk.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(binding = 0) uniform mediump sampler2D uSubpass0; -layout(binding = 1) uniform mediump sampler2D uSubpass1; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = texelFetch(uSubpass0, ivec2(gl_FragCoord.xy), 0) + texelFetch(uSubpass1, ivec2(gl_FragCoord.xy), 0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/input-attachment.vk.frag.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/input-attachment.vk.frag.vk deleted file mode 100644 index c8b5d9a70d..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/input-attachment.vk.frag.vk +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(input_attachment_index = 0, set = 0, binding = 0) uniform mediump subpassInput uSubpass0; -layout(input_attachment_index = 1, set = 0, binding = 1) uniform mediump subpassInput uSubpass1; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = subpassLoad(uSubpass0) + subpassLoad(uSubpass1); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/nonuniform-qualifier.vk.nocompat.frag.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/nonuniform-qualifier.vk.nocompat.frag.vk deleted file mode 100644 index 74e375fd1f..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/nonuniform-qualifier.vk.nocompat.frag.vk +++ /dev/null @@ -1,58 +0,0 @@ -#version 450 -#extension GL_EXT_nonuniform_qualifier : require -#extension GL_EXT_samplerless_texture_functions : require - -layout(set = 0, binding = 2, std140) uniform UBO -{ - vec4 v[64]; -} ubos[]; - -layout(set = 0, binding = 3, std430) buffer SSBO -{ - uint counter; - vec4 v[]; -} ssbos[]; - -layout(set = 0, binding = 0) uniform texture2D uSamplers[]; -layout(set = 0, binding = 1) uniform sampler uSamps[]; -layout(set = 0, binding = 4) uniform sampler2D uCombinedSamplers[]; -layout(set = 0, binding = 0) uniform texture2DMS uSamplersMS[]; -layout(set = 0, binding = 5, r32f) uniform image2D uImages[]; -layout(set = 0, binding = 5, r32ui) uniform uimage2D uImagesU32[]; - -layout(location = 0) flat in int vIndex; -layout(location = 0) out vec4 FragColor; -layout(location = 1) in vec2 vUV; - -void main() -{ - int _22 = vIndex + 10; - int _32 = vIndex + 40; - FragColor = texture(nonuniformEXT(sampler2D(uSamplers[_22], uSamps[_32])), vUV); - int _49 = _22; - FragColor = texture(uCombinedSamplers[nonuniformEXT(_49)], vUV); - int _65 = vIndex + 20; - int _69 = _32; - FragColor += ubos[nonuniformEXT(_65)].v[_69]; - int _83 = vIndex + 50; - int _88 = vIndex + 60; - FragColor += ssbos[nonuniformEXT(_83)].v[_88]; - int _100 = vIndex + 70; - ssbos[nonuniformEXT(_88)].v[_100] = vec4(20.0); - ivec2 _111 = ivec2(vUV); - FragColor = texelFetch(uSamplers[nonuniformEXT(_49)], _111, 0); - int _116 = vIndex + 100; - uint _122 = atomicAdd(ssbos[_116].counter, 100u); - vec2 _149 = FragColor.xy + (textureQueryLod(nonuniformEXT(sampler2D(uSamplers[_22], uSamps[_32])), vUV) + textureQueryLod(uCombinedSamplers[nonuniformEXT(_49)], vUV)); - FragColor = vec4(_149.x, _149.y, FragColor.z, FragColor.w); - FragColor.x += float(textureQueryLevels(uSamplers[nonuniformEXT(_65)])); - FragColor.y += float(textureSamples(uSamplersMS[nonuniformEXT(_65)])); - vec2 _189 = FragColor.xy + vec2(textureSize(uSamplers[nonuniformEXT(_65)], 0)); - FragColor = vec4(_189.x, _189.y, FragColor.z, FragColor.w); - FragColor += imageLoad(uImages[nonuniformEXT(_83)], _111); - vec2 _216 = FragColor.xy + vec2(imageSize(uImages[nonuniformEXT(_65)])); - FragColor = vec4(_216.x, _216.y, FragColor.z, FragColor.w); - imageStore(uImages[nonuniformEXT(_88)], _111, vec4(50.0)); - uint _242 = imageAtomicAdd(uImagesU32[nonuniformEXT(_100)], _111, 40u); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/push-constant-as-ubo.push-ubo.vk.frag b/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/push-constant-as-ubo.push-ubo.vk.frag deleted file mode 100644 index 21618f8885..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/push-constant-as-ubo.push-ubo.vk.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 - -layout(std140) uniform UBO -{ - float ubo[4]; -} _14; - -layout(location = 0) out float FragColor; - -void main() -{ - FragColor = _14.ubo[1]; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/push-constant-as-ubo.push-ubo.vk.frag.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/push-constant-as-ubo.push-ubo.vk.frag.vk deleted file mode 100644 index 8ca4f23ac4..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/push-constant-as-ubo.push-ubo.vk.frag.vk +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 - -layout(push_constant, std140) uniform UBO -{ - float ubo[4]; -} _14; - -layout(location = 0) out float FragColor; - -void main() -{ - FragColor = _14.ubo[1]; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/push-constant.vk.frag b/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/push-constant.vk.frag deleted file mode 100644 index c04a7ca488..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/push-constant.vk.frag +++ /dev/null @@ -1,20 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -struct PushConstants -{ - vec4 value0; - vec4 value1; -}; - -uniform PushConstants push; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 vColor; - -void main() -{ - FragColor = (vColor + push.value0) + push.value1; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/push-constant.vk.frag.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/push-constant.vk.frag.vk deleted file mode 100644 index 6cec90f19e..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/push-constant.vk.frag.vk +++ /dev/null @@ -1,18 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(push_constant, std430) uniform PushConstants -{ - vec4 value0; - vec4 value1; -} push; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 vColor; - -void main() -{ - FragColor = (vColor + push.value0) + push.value1; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/separate-combined-fake-overload.vk.frag b/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/separate-combined-fake-overload.vk.frag deleted file mode 100644 index c17c8e6d67..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/separate-combined-fake-overload.vk.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler2D uSamp; -uniform sampler2D SPIRV_Cross_CombineduTuS; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = texture(uSamp, vec2(0.5)) + texture(SPIRV_Cross_CombineduTuS, vec2(0.5)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/separate-combined-fake-overload.vk.frag.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/separate-combined-fake-overload.vk.frag.vk deleted file mode 100644 index 5a5ec20298..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/separate-combined-fake-overload.vk.frag.vk +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 - -layout(set = 0, binding = 0) uniform sampler2D uSamp; -layout(set = 0, binding = 1) uniform texture2D uT; -layout(set = 0, binding = 2) uniform sampler uS; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = texture(uSamp, vec2(0.5)) + texture(sampler2D(uT, uS), vec2(0.5)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/separate-sampler-texture-array.vk.frag b/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/separate-sampler-texture-array.vk.frag deleted file mode 100644 index df2994efb9..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/separate-sampler-texture-array.vk.frag +++ /dev/null @@ -1,19 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -uniform mediump sampler2D SPIRV_Cross_CombineduTextureuSampler[4]; -uniform mediump sampler2DArray SPIRV_Cross_CombineduTextureArrayuSampler[4]; -uniform mediump samplerCube SPIRV_Cross_CombineduTextureCubeuSampler[4]; -uniform mediump sampler3D SPIRV_Cross_CombineduTexture3DuSampler[4]; - -layout(location = 0) in vec2 vTex; -layout(location = 1) in vec3 vTex3; -layout(location = 0) out vec4 FragColor; - -void main() -{ - vec2 _95 = (vTex + (vec2(1.0) / vec2(textureSize(SPIRV_Cross_CombineduTextureuSampler[1], 0)))) + (vec2(1.0) / vec2(textureSize(SPIRV_Cross_CombineduTextureuSampler[2], 1))); - FragColor = ((((texture(SPIRV_Cross_CombineduTextureuSampler[2], _95) + texture(SPIRV_Cross_CombineduTextureuSampler[1], _95)) + texture(SPIRV_Cross_CombineduTextureuSampler[1], _95)) + texture(SPIRV_Cross_CombineduTextureArrayuSampler[3], vTex3)) + texture(SPIRV_Cross_CombineduTextureCubeuSampler[1], vTex3)) + texture(SPIRV_Cross_CombineduTexture3DuSampler[2], vTex3); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/separate-sampler-texture-array.vk.frag.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/separate-sampler-texture-array.vk.frag.vk deleted file mode 100644 index d275a0f408..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/separate-sampler-texture-array.vk.frag.vk +++ /dev/null @@ -1,20 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(set = 0, binding = 1) uniform mediump texture2D uTexture[4]; -layout(set = 0, binding = 0) uniform mediump sampler uSampler; -layout(set = 0, binding = 4) uniform mediump texture2DArray uTextureArray[4]; -layout(set = 0, binding = 3) uniform mediump textureCube uTextureCube[4]; -layout(set = 0, binding = 2) uniform mediump texture3D uTexture3D[4]; - -layout(location = 0) in vec2 vTex; -layout(location = 1) in vec3 vTex3; -layout(location = 0) out vec4 FragColor; - -void main() -{ - vec2 _95 = (vTex + (vec2(1.0) / vec2(textureSize(sampler2D(uTexture[1], uSampler), 0)))) + (vec2(1.0) / vec2(textureSize(sampler2D(uTexture[2], uSampler), 1))); - FragColor = ((((texture(sampler2D(uTexture[2], uSampler), _95) + texture(sampler2D(uTexture[1], uSampler), _95)) + texture(sampler2D(uTexture[1], uSampler), _95)) + texture(sampler2DArray(uTextureArray[3], uSampler), vTex3)) + texture(samplerCube(uTextureCube[1], uSampler), vTex3)) + texture(sampler3D(uTexture3D[2], uSampler), vTex3); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/separate-sampler-texture.vk.frag b/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/separate-sampler-texture.vk.frag deleted file mode 100644 index aad1e43662..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/separate-sampler-texture.vk.frag +++ /dev/null @@ -1,19 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -uniform mediump sampler2D SPIRV_Cross_CombineduTextureuSampler; -uniform mediump sampler2DArray SPIRV_Cross_CombineduTextureArrayuSampler; -uniform mediump samplerCube SPIRV_Cross_CombineduTextureCubeuSampler; -uniform mediump sampler3D SPIRV_Cross_CombineduTexture3DuSampler; - -layout(location = 0) in vec2 vTex; -layout(location = 1) in vec3 vTex3; -layout(location = 0) out vec4 FragColor; - -void main() -{ - vec2 _73 = (vTex + (vec2(1.0) / vec2(textureSize(SPIRV_Cross_CombineduTextureuSampler, 0)))) + (vec2(1.0) / vec2(textureSize(SPIRV_Cross_CombineduTextureuSampler, 1))); - FragColor = (((texture(SPIRV_Cross_CombineduTextureuSampler, _73) + texture(SPIRV_Cross_CombineduTextureuSampler, _73)) + texture(SPIRV_Cross_CombineduTextureArrayuSampler, vTex3)) + texture(SPIRV_Cross_CombineduTextureCubeuSampler, vTex3)) + texture(SPIRV_Cross_CombineduTexture3DuSampler, vTex3); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/separate-sampler-texture.vk.frag.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/separate-sampler-texture.vk.frag.vk deleted file mode 100644 index b79374aba9..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/separate-sampler-texture.vk.frag.vk +++ /dev/null @@ -1,20 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(set = 0, binding = 1) uniform mediump texture2D uTexture; -layout(set = 0, binding = 0) uniform mediump sampler uSampler; -layout(set = 0, binding = 4) uniform mediump texture2DArray uTextureArray; -layout(set = 0, binding = 3) uniform mediump textureCube uTextureCube; -layout(set = 0, binding = 2) uniform mediump texture3D uTexture3D; - -layout(location = 0) in vec2 vTex; -layout(location = 1) in vec3 vTex3; -layout(location = 0) out vec4 FragColor; - -void main() -{ - vec2 _73 = (vTex + (vec2(1.0) / vec2(textureSize(sampler2D(uTexture, uSampler), 0)))) + (vec2(1.0) / vec2(textureSize(sampler2D(uTexture, uSampler), 1))); - FragColor = (((texture(sampler2D(uTexture, uSampler), _73) + texture(sampler2D(uTexture, uSampler), _73)) + texture(sampler2DArray(uTextureArray, uSampler), vTex3)) + texture(samplerCube(uTextureCube, uSampler), vTex3)) + texture(sampler3D(uTexture3D, uSampler), vTex3); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/shader-arithmetic-8bit.nocompat.vk.frag.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/shader-arithmetic-8bit.nocompat.vk.frag.vk deleted file mode 100644 index dbc8073eec..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/shader-arithmetic-8bit.nocompat.vk.frag.vk +++ /dev/null @@ -1,43 +0,0 @@ -#version 450 -#extension GL_EXT_shader_explicit_arithmetic_types_int8 : require -#extension GL_EXT_shader_8bit_storage : require - -layout(set = 0, binding = 1, std430) buffer SSBO -{ - int8_t i8[16]; - uint8_t u8[16]; -} ssbo; - -layout(set = 0, binding = 0, std140) uniform UBO -{ - int8_t i8; - uint8_t u8; -} ubo; - -layout(push_constant, std430) uniform Push -{ - int8_t i8; - uint8_t u8; -} registers; - -layout(location = 0) flat in ivec4 vColor; -layout(location = 0) out ivec4 FragColorInt; -layout(location = 1) out uvec4 FragColorUint; - -void main() -{ - i8vec4 _199 = unpack8(20); - ssbo.i8[0] = _199.x; - ssbo.i8[1] = _199.y; - ssbo.i8[2] = _199.z; - ssbo.i8[3] = _199.w; - u8vec4 _224 = unpack8(20u); - ssbo.u8[0] = _224.x; - ssbo.u8[1] = _224.y; - ssbo.u8[2] = _224.z; - ssbo.u8[3] = _224.w; - i8vec4 _249 = i8vec4(vColor); - FragColorInt = ivec4((((((_249 + i8vec4(registers.i8)) + i8vec4(-40)) + i8vec4(-50)) + i8vec4(int8_t(10), int8_t(20), int8_t(30), int8_t(40))) + i8vec4(ssbo.i8[4])) + i8vec4(ubo.i8)); - FragColorUint = uvec4((((((u8vec4(_249) + u8vec4(registers.u8)) + u8vec4(216)) + u8vec4(206)) + u8vec4(uint8_t(10), uint8_t(20), uint8_t(30), uint8_t(40))) + u8vec4(ssbo.u8[4])) + u8vec4(ubo.u8)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/spec-constant-block-size.vk.frag b/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/spec-constant-block-size.vk.frag deleted file mode 100644 index 19ea6ae064..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/spec-constant-block-size.vk.frag +++ /dev/null @@ -1,22 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -#ifndef SPIRV_CROSS_CONSTANT_ID_10 -#define SPIRV_CROSS_CONSTANT_ID_10 2 -#endif -const int Value = SPIRV_CROSS_CONSTANT_ID_10; - -layout(binding = 0, std140) uniform SpecConstArray -{ - vec4 samples[Value]; -} _15; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) flat in mediump int Index; - -void main() -{ - FragColor = _15.samples[Index]; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/spec-constant-block-size.vk.frag.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/spec-constant-block-size.vk.frag.vk deleted file mode 100644 index 133761a83d..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/spec-constant-block-size.vk.frag.vk +++ /dev/null @@ -1,19 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(constant_id = 10) const int Value = 2; - -layout(set = 0, binding = 0, std140) uniform SpecConstArray -{ - vec4 samples[Value]; -} _15; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) flat in mediump int Index; - -void main() -{ - FragColor = _15.samples[Index]; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/spec-constant-ternary.vk.frag b/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/spec-constant-ternary.vk.frag deleted file mode 100644 index 081206f1cb..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/spec-constant-ternary.vk.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 - -#ifndef SPIRV_CROSS_CONSTANT_ID_0 -#define SPIRV_CROSS_CONSTANT_ID_0 10u -#endif -const uint s = SPIRV_CROSS_CONSTANT_ID_0; -const bool _13 = (s > 20u); -const uint f = _13 ? 30u : 50u; - -layout(location = 0) out float FragColor; - -void main() -{ - FragColor = float(f); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/spec-constant-ternary.vk.frag.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/spec-constant-ternary.vk.frag.vk deleted file mode 100644 index 34bfea0260..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/frag/spec-constant-ternary.vk.frag.vk +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 - -layout(constant_id = 0) const uint s = 10u; -const bool _13 = (s > 20u); -const uint f = _13 ? 30u : 50u; - -layout(location = 0) out float FragColor; - -void main() -{ - FragColor = float(f); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rahit/terminators.khr.spv14.nocompat.vk.rahit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rahit/terminators.khr.spv14.nocompat.vk.rahit.vk deleted file mode 100644 index 2f7fbc1d95..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rahit/terminators.khr.spv14.nocompat.vk.rahit.vk +++ /dev/null @@ -1,17 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT float payload; - -void main() -{ - if (payload > 0.0) - { - ignoreIntersectionEXT; - } - else - { - terminateRayEXT; - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rahit/terminators.nocompat.vk.rahit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rahit/terminators.nocompat.vk.rahit.vk deleted file mode 100644 index 9b9e34b325..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rahit/terminators.nocompat.vk.rahit.vk +++ /dev/null @@ -1,17 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -rayPayloadInNV float payload; - -void main() -{ - if (payload > 0.0) - { - ignoreIntersectionNV(); - } - else - { - terminateRayNV(); - } -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rcall/incoming-callable.khr.spv14.nocompat.vk.rcall.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rcall/incoming-callable.khr.spv14.nocompat.vk.rcall.vk deleted file mode 100644 index 5adfac164f..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rcall/incoming-callable.khr.spv14.nocompat.vk.rcall.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) callableDataInEXT float c; - -void main() -{ - executeCallableEXT(10u, 0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_attribute_block.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_attribute_block.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index b6c1876d31..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_attribute_block.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,24 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -struct Foo -{ - float a; - float b; -}; - -struct Foo2 -{ - float a; - float b; -}; - -layout(location = 0) rayPayloadInEXT Foo payload; -hitAttributeEXT Foo2 hit; - -void main() -{ - payload.a = hit.a; - payload.b = hit.b; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_attribute_block.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_attribute_block.nocompat.vk.rchit.vk deleted file mode 100644 index 614a04d95e..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_attribute_block.nocompat.vk.rchit.vk +++ /dev/null @@ -1,24 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -struct Foo -{ - float a; - float b; -}; - -struct Foo2 -{ - float a; - float b; -}; - -layout(location = 0) rayPayloadInNV Foo payload; -hitAttributeNV Foo2 hit; - -void main() -{ - payload.a = hit.a; - payload.b = hit.b; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_attribute_block_in_function.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_attribute_block_in_function.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index b6c1876d31..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_attribute_block_in_function.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,24 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -struct Foo -{ - float a; - float b; -}; - -struct Foo2 -{ - float a; - float b; -}; - -layout(location = 0) rayPayloadInEXT Foo payload; -hitAttributeEXT Foo2 hit; - -void main() -{ - payload.a = hit.a; - payload.b = hit.b; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_attribute_block_in_function.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_attribute_block_in_function.nocompat.vk.rchit.vk deleted file mode 100644 index 614a04d95e..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_attribute_block_in_function.nocompat.vk.rchit.vk +++ /dev/null @@ -1,24 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -struct Foo -{ - float a; - float b; -}; - -struct Foo2 -{ - float a; - float b; -}; - -layout(location = 0) rayPayloadInNV Foo payload; -hitAttributeNV Foo2 hit; - -void main() -{ - payload.a = hit.a; - payload.b = hit.b; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_attribute_plain.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_attribute_plain.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index eeccd3bb09..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_attribute_plain.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,11 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT vec2 payload; -hitAttributeEXT vec2 hit; - -void main() -{ - payload = hit; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_attribute_plain.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_attribute_plain.nocompat.vk.rchit.vk deleted file mode 100644 index 908d96344f..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_attribute_plain.nocompat.vk.rchit.vk +++ /dev/null @@ -1,11 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV vec2 payload; -hitAttributeNV vec2 hit; - -void main() -{ - payload = hit; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_attribute_struct.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_attribute_struct.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index a51e6b088f..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_attribute_struct.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,17 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -struct Foo -{ - float a; - float b; -}; - -layout(location = 0) rayPayloadInEXT Foo payload; -hitAttributeEXT Foo hit; - -void main() -{ - payload = hit; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_attribute_struct.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_attribute_struct.nocompat.vk.rchit.vk deleted file mode 100644 index 133bdfc1d9..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_attribute_struct.nocompat.vk.rchit.vk +++ /dev/null @@ -1,17 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -struct Foo -{ - float a; - float b; -}; - -layout(location = 0) rayPayloadInNV Foo payload; -hitAttributeNV Foo hit; - -void main() -{ - payload = hit; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_kind.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_kind.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index e4e0103ddb..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_kind.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT uint payload; - -void main() -{ - payload = gl_HitKindEXT; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_kind.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_kind.nocompat.vk.rchit.vk deleted file mode 100644 index 64f79a8dce..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_kind.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV uint payload; - -void main() -{ - payload = gl_HitKindNV; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_t.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_t.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index e94e3323c9..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_t.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT float payload; - -void main() -{ - payload = gl_RayTmaxEXT; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_t.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_t.nocompat.vk.rchit.vk deleted file mode 100644 index 9004a00c40..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/hit_t.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV float payload; - -void main() -{ - payload = gl_HitTNV; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/incoming_ray_flags.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/incoming_ray_flags.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index a013baa11d..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/incoming_ray_flags.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT uint payload; - -void main() -{ - payload = gl_IncomingRayFlagsEXT; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/incoming_ray_flags.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/incoming_ray_flags.nocompat.vk.rchit.vk deleted file mode 100644 index d17ab8ce76..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/incoming_ray_flags.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV uint payload; - -void main() -{ - payload = gl_IncomingRayFlagsNV; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/instance_custom_id.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/instance_custom_id.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index e28af5d252..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/instance_custom_id.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT uint payload; - -void main() -{ - payload = uint(gl_InstanceCustomIndexEXT); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/instance_custom_id.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/instance_custom_id.nocompat.vk.rchit.vk deleted file mode 100644 index 531a1fc284..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/instance_custom_id.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV uint payload; - -void main() -{ - payload = uint(gl_InstanceCustomIndexNV); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/instance_id.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/instance_id.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index 0413e0d234..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/instance_id.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT uint payload; - -void main() -{ - payload = uint(gl_InstanceID); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/instance_id.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/instance_id.nocompat.vk.rchit.vk deleted file mode 100644 index ff551db7c9..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/instance_id.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV uint payload; - -void main() -{ - payload = uint(gl_InstanceID); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/object_ray_direction.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/object_ray_direction.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index 237d4790e5..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/object_ray_direction.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT vec3 payload; - -void main() -{ - payload = gl_ObjectRayDirectionEXT; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/object_ray_direction.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/object_ray_direction.nocompat.vk.rchit.vk deleted file mode 100644 index 01afa0e067..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/object_ray_direction.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV vec3 payload; - -void main() -{ - payload = gl_ObjectRayDirectionNV; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/object_ray_origin.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/object_ray_origin.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index 5739ac09ff..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/object_ray_origin.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT vec3 payload; - -void main() -{ - payload = gl_ObjectRayOriginEXT; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/object_ray_origin.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/object_ray_origin.nocompat.vk.rchit.vk deleted file mode 100644 index a49e17a173..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/object_ray_origin.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV vec3 payload; - -void main() -{ - payload = gl_ObjectRayOriginNV; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/object_to_world.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/object_to_world.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index 7922e1efbf..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/object_to_world.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT vec3 payload; - -void main() -{ - payload = gl_ObjectToWorldEXT * vec4(payload, 1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/object_to_world.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/object_to_world.nocompat.vk.rchit.vk deleted file mode 100644 index fc2c5ed0c2..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/object_to_world.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV vec3 payload; - -void main() -{ - payload = gl_ObjectToWorldNV * vec4(payload, 1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/payloads.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/payloads.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index 0bde78724c..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/payloads.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,15 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -struct Payload -{ - vec4 a; -}; - -layout(location = 0) rayPayloadInEXT Payload payload; - -void main() -{ - payload.a = vec4(10.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/payloads.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/payloads.nocompat.vk.rchit.vk deleted file mode 100644 index 6d865f7a19..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/payloads.nocompat.vk.rchit.vk +++ /dev/null @@ -1,15 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -struct Payload -{ - vec4 a; -}; - -layout(location = 0) rayPayloadInNV Payload payload; - -void main() -{ - payload.a = vec4(10.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/primitive_id.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/primitive_id.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index 667c015e8d..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/primitive_id.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT uint payload; - -void main() -{ - payload = uint(gl_PrimitiveID); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/primitive_id.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/primitive_id.nocompat.vk.rchit.vk deleted file mode 100644 index d3b0ef1942..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/primitive_id.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV uint payload; - -void main() -{ - payload = uint(gl_PrimitiveID); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/ray_tmax.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/ray_tmax.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index e94e3323c9..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/ray_tmax.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT float payload; - -void main() -{ - payload = gl_RayTmaxEXT; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/ray_tmax.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/ray_tmax.nocompat.vk.rchit.vk deleted file mode 100644 index 769c96ad6b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/ray_tmax.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV float payload; - -void main() -{ - payload = gl_RayTmaxNV; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/ray_tmin.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/ray_tmin.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index 04b8954950..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/ray_tmin.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT float payload; - -void main() -{ - payload = gl_RayTminEXT; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/ray_tmin.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/ray_tmin.nocompat.vk.rchit.vk deleted file mode 100644 index 2709899a13..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/ray_tmin.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV float payload; - -void main() -{ - payload = gl_RayTminNV; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/ray_tracing.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/ray_tracing.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index 05af948b37..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/ray_tracing.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT float payload; - -void main() -{ - payload = 1.0 + float(gl_InstanceID); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/ray_tracing.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/ray_tracing.nocompat.vk.rchit.vk deleted file mode 100644 index 103fd66b80..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/ray_tracing.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV float payload; - -void main() -{ - payload = 1.0 + float(gl_InstanceID); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/world_ray_direction.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/world_ray_direction.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index 68ba2bafa5..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/world_ray_direction.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT vec3 payload; - -void main() -{ - payload = gl_WorldRayDirectionEXT; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/world_ray_direction.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/world_ray_direction.nocompat.vk.rchit.vk deleted file mode 100644 index 4acf03e064..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/world_ray_direction.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV vec3 payload; - -void main() -{ - payload = gl_WorldRayDirectionNV; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/world_ray_origin.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/world_ray_origin.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index a5c6766e05..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/world_ray_origin.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT vec3 payload; - -void main() -{ - payload = gl_WorldRayOriginEXT; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/world_ray_origin.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/world_ray_origin.nocompat.vk.rchit.vk deleted file mode 100644 index 70241f2362..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/world_ray_origin.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV vec3 payload; - -void main() -{ - payload = gl_WorldRayOriginNV; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/world_to_object.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/world_to_object.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index 309ca4c6f1..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/world_to_object.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT vec3 payload; - -void main() -{ - payload = gl_WorldToObjectEXT * vec4(payload, 1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/world_to_object.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/world_to_object.nocompat.vk.rchit.vk deleted file mode 100644 index 0b93e38acd..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rchit/world_to_object.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV vec3 payload; - -void main() -{ - payload = gl_WorldToObjectNV * vec4(payload, 1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/convert-u-to-as.spv14.vk.nocompat.rgen.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/convert-u-to-as.spv14.vk.nocompat.rgen.vk deleted file mode 100644 index 335f476dc5..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/convert-u-to-as.spv14.vk.nocompat.rgen.vk +++ /dev/null @@ -1,15 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(push_constant, std430) uniform Registers -{ - uvec2 ptr; -} _19; - -layout(location = 0) rayPayloadEXT vec4 payload; - -void main() -{ - traceRayEXT(accelerationStructureEXT(_19.ptr), 1u, 255u, 0u, 0u, 0u, vec3(0.0), 0.0, vec3(0.0, 0.0, -1.0), 100.0, 0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/execute_callable.nocompat.khr.spv14.vk.rgen.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/execute_callable.nocompat.khr.spv14.vk.rgen.vk deleted file mode 100644 index 2cb00f26f1..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/execute_callable.nocompat.khr.spv14.vk.rgen.vk +++ /dev/null @@ -1,15 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(set = 0, binding = 0) uniform accelerationStructureEXT as; -layout(location = 0) rayPayloadEXT vec4 payload; -layout(location = 1) callableDataEXT float blend; -layout(set = 0, binding = 1, rgba32f) uniform writeonly image2D image; - -void main() -{ - traceRayEXT(as, 1u, 255u, 0u, 0u, 0u, vec3(0.0), 0.0, vec3(0.0, 0.0, -1.0), 100.0, 0); - executeCallableEXT(0u, 1); - imageStore(image, ivec2(gl_LaunchIDEXT.xy), payload + vec4(blend)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/execute_callable.nocompat.vk.rgen.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/execute_callable.nocompat.vk.rgen.vk deleted file mode 100644 index 926546c04c..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/execute_callable.nocompat.vk.rgen.vk +++ /dev/null @@ -1,15 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(set = 0, binding = 0) uniform accelerationStructureNV as; -layout(set = 0, binding = 1, rgba32f) uniform writeonly image2D image; -layout(location = 0) rayPayloadNV vec4 payload; -layout(location = 0) callableDataNV float blend; - -void main() -{ - traceNV(as, 1u, 255u, 0u, 0u, 0u, vec3(0.0), 0.0, vec3(0.0, 0.0, -1.0), 100.0, 0); - executeCallableNV(0u, 0); - imageStore(image, ivec2(gl_LaunchIDNV.xy), payload + vec4(blend)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/launch_id.khr.spv14.nocompat.vk.rgen.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/launch_id.khr.spv14.nocompat.vk.rgen.vk deleted file mode 100644 index 1614c49626..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/launch_id.khr.spv14.nocompat.vk.rgen.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(set = 0, binding = 0) uniform writeonly image2D uImage; - -void main() -{ - imageStore(uImage, ivec2(gl_LaunchIDEXT.xy), vec4(1.0)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/launch_id.nocompat.vk.rgen.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/launch_id.nocompat.vk.rgen.vk deleted file mode 100644 index f907e6fd60..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/launch_id.nocompat.vk.rgen.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(set = 0, binding = 0) uniform writeonly image2D uImage; - -void main() -{ - imageStore(uImage, ivec2(gl_LaunchIDNV.xy), vec4(1.0)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/launch_size.khr.spv14.nocompat.vk.rgen.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/launch_size.khr.spv14.nocompat.vk.rgen.vk deleted file mode 100644 index 240e93daa4..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/launch_size.khr.spv14.nocompat.vk.rgen.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(set = 0, binding = 0) uniform writeonly image2D uImage; - -void main() -{ - imageStore(uImage, ivec2(gl_LaunchSizeEXT.xy) - ivec2(1), vec4(1.0)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/launch_size.nocompat.vk.rgen.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/launch_size.nocompat.vk.rgen.vk deleted file mode 100644 index 08992c6319..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/launch_size.nocompat.vk.rgen.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(set = 0, binding = 0) uniform writeonly image2D uImage; - -void main() -{ - imageStore(uImage, ivec2(gl_LaunchSizeNV.xy) - ivec2(1), vec4(1.0)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/payloads.khr.spv14.nocompat.vk.rgen.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/payloads.khr.spv14.nocompat.vk.rgen.vk deleted file mode 100644 index 434eadf216..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/payloads.khr.spv14.nocompat.vk.rgen.vk +++ /dev/null @@ -1,31 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -struct Payload -{ - float a; - float b; -}; - -struct Block -{ - float a; - float b; - Payload c; - Payload d; -}; - -layout(set = 0, binding = 1) uniform accelerationStructureEXT as; -layout(location = 0) rayPayloadEXT Payload payload2; -layout(location = 1) rayPayloadEXT float payload1; -layout(location = 2) rayPayloadEXT Block _71; -layout(set = 0, binding = 0, rgba8) uniform writeonly image2D image; - -void main() -{ - traceRayEXT(as, 0u, 255u, 0u, 1u, 0u, vec3(1.0, 0.0, 0.0), 0.0, vec3(0.0, 1.0, 0.0), 1000.0, 1); - traceRayEXT(as, 0u, 255u, 0u, 1u, 0u, vec3(1.0, 0.0, 0.0), 0.0, vec3(0.0, 1.0, 0.0), 1000.0, 0); - traceRayEXT(as, 0u, 255u, 0u, 1u, 0u, vec3(1.0, 0.0, 0.0), 0.0, vec3(0.0, 1.0, 0.0), 1000.0, 2); - imageStore(image, ivec2(gl_LaunchIDEXT.xy), (vec4(payload1) + (vec4(payload2.a) + vec4(payload2.b))) + vec4(((((_71.a + _71.b) + _71.c.a) + _71.c.b) + _71.d.a) + _71.d.b)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/payloads.nocompat.vk.rgen.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/payloads.nocompat.vk.rgen.vk deleted file mode 100644 index 8212fa6484..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/payloads.nocompat.vk.rgen.vk +++ /dev/null @@ -1,31 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -struct Payload -{ - float a; - float b; -}; - -struct Block -{ - float a; - float b; - Payload c; - Payload d; -}; - -layout(set = 0, binding = 1) uniform accelerationStructureNV as; -layout(location = 1) rayPayloadNV Payload payload2; -layout(location = 0) rayPayloadNV float payload1; -layout(location = 2) rayPayloadNV Block _71; -layout(set = 0, binding = 0, rgba8) uniform writeonly image2D image; - -void main() -{ - traceNV(as, 0u, 255u, 0u, 1u, 0u, vec3(1.0, 0.0, 0.0), 0.0, vec3(0.0, 1.0, 0.0), 1000.0, 0); - traceNV(as, 0u, 255u, 0u, 1u, 0u, vec3(1.0, 0.0, 0.0), 0.0, vec3(0.0, 1.0, 0.0), 1000.0, 1); - traceNV(as, 0u, 255u, 0u, 1u, 0u, vec3(1.0, 0.0, 0.0), 0.0, vec3(0.0, 1.0, 0.0), 1000.0, 2); - imageStore(image, ivec2(gl_LaunchIDNV.xy), (vec4(payload1) + (vec4(payload2.a) + vec4(payload2.b))) + vec4(((((_71.a + _71.b) + _71.c.a) + _71.c.b) + _71.d.a) + _71.d.b)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/pure_call.khr.spv14.nocompat.vk.rgen.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/pure_call.khr.spv14.nocompat.vk.rgen.vk deleted file mode 100644 index 25b8f2877a..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/pure_call.khr.spv14.nocompat.vk.rgen.vk +++ /dev/null @@ -1,13 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(set = 0, binding = 1) uniform accelerationStructureEXT as; -layout(location = 0) rayPayloadEXT float payload; - -void main() -{ - vec2 _57 = vec2(gl_LaunchIDEXT.xy); - vec2 _61 = vec2(gl_LaunchSizeEXT.xy); - traceRayEXT(as, 0u, 255u, 0u, 1u, 0u, vec3(_57.x / _61.x, _57.y / _61.y, 1.0), 0.0, vec3(0.0, 0.0, -1.0), 1000.0, 0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/pure_call.nocompat.vk.rgen.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/pure_call.nocompat.vk.rgen.vk deleted file mode 100644 index 31603fe1c1..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/pure_call.nocompat.vk.rgen.vk +++ /dev/null @@ -1,12 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(set = 0, binding = 1) uniform accelerationStructureNV as; - -void main() -{ - vec2 _55 = vec2(gl_LaunchIDNV.xy); - vec2 _59 = vec2(gl_LaunchSizeNV.xy); - traceNV(as, 0u, 255u, 0u, 1u, 0u, vec3(_55.x / _59.x, _55.y / _59.y, 1.0), 0.0, vec3(0.0, 0.0, -1.0), 1000.0, 0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/ray_tracing.khr.spv14.nocompat.vk.rgen.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/ray_tracing.khr.spv14.nocompat.vk.rgen.vk deleted file mode 100644 index d881446595..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/ray_tracing.khr.spv14.nocompat.vk.rgen.vk +++ /dev/null @@ -1,15 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(set = 0, binding = 1) uniform accelerationStructureEXT as; -layout(location = 0) rayPayloadEXT float payload; -layout(set = 0, binding = 0, rgba8) uniform writeonly image2D image; - -void main() -{ - traceRayEXT(as, 0u, 255u, 0u, 1u, 0u, vec3(float(gl_LaunchIDEXT.x) / float(gl_LaunchSizeEXT.x), float(gl_LaunchIDEXT.y) / float(gl_LaunchSizeEXT.y), 1.0), 0.0, vec3(0.0, 0.0, -1.0), 1000.0, 0); - vec4 _68 = vec4(0.0, 0.0, 0.0, 1.0); - _68.y = payload; - imageStore(image, ivec2(gl_LaunchIDEXT.xy), _68); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/ray_tracing.nocompat.vk.rgen.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/ray_tracing.nocompat.vk.rgen.vk deleted file mode 100644 index b39ea891c3..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/ray_tracing.nocompat.vk.rgen.vk +++ /dev/null @@ -1,15 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(set = 0, binding = 1) uniform accelerationStructureNV as; -layout(location = 0) rayPayloadNV float payload; -layout(set = 0, binding = 0, rgba8) uniform writeonly image2D image; - -void main() -{ - traceNV(as, 0u, 255u, 0u, 1u, 0u, vec3(float(gl_LaunchIDNV.x) / float(gl_LaunchSizeNV.x), float(gl_LaunchIDNV.y) / float(gl_LaunchSizeNV.y), 1.0), 0.0, vec3(0.0, 0.0, -1.0), 1000.0, 0); - vec4 _68 = vec4(0.0, 0.0, 0.0, 1.0); - _68.y = payload; - imageStore(image, ivec2(gl_LaunchIDNV.xy), _68); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/shader_record_buffer.khr.spv14.nocompat.vk.rgen.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/shader_record_buffer.khr.spv14.nocompat.vk.rgen.vk deleted file mode 100644 index 3056e8ad28..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/shader_record_buffer.khr.spv14.nocompat.vk.rgen.vk +++ /dev/null @@ -1,17 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(shaderRecordEXT, std430) buffer sbt -{ - vec3 direction; - float tmax; -} _20; - -layout(set = 0, binding = 0) uniform accelerationStructureEXT as; -layout(location = 0) rayPayloadEXT float payload; - -void main() -{ - traceRayEXT(as, 0u, 255u, 0u, 1u, 0u, vec3(0.0), 0.0, _20.direction, _20.tmax, 0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/shader_record_buffer.nocompat.vk.rgen.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/shader_record_buffer.nocompat.vk.rgen.vk deleted file mode 100644 index daa9c3ee6b..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rgen/shader_record_buffer.nocompat.vk.rgen.vk +++ /dev/null @@ -1,16 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(shaderRecordNV, std430) buffer sbt -{ - vec3 direction; - float tmax; -} _20; - -layout(set = 0, binding = 0) uniform accelerationStructureNV as; - -void main() -{ - traceNV(as, 0u, 255u, 0u, 1u, 0u, vec3(0.0), 0.0, _20.direction, _20.tmax, 0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rint/report-intersection.khr.spv14.nocompat.vk.rint.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rint/report-intersection.khr.spv14.nocompat.vk.rint.vk deleted file mode 100644 index f9eb7335d8..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rint/report-intersection.khr.spv14.nocompat.vk.rint.vk +++ /dev/null @@ -1,8 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -void main() -{ - bool _16 = reportIntersectionEXT(0.5, 10u); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rint/report-intersection.nocompat.vk.rint.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rint/report-intersection.nocompat.vk.rint.vk deleted file mode 100644 index 56873aff06..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rint/report-intersection.nocompat.vk.rint.vk +++ /dev/null @@ -1,8 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -void main() -{ - bool _16 = reportIntersectionNV(0.5, 10u); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rmiss/ray_tracing.khr.spv14.nocompat.vk.rmiss.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rmiss/ray_tracing.khr.spv14.nocompat.vk.rmiss.vk deleted file mode 100644 index c055a26814..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rmiss/ray_tracing.khr.spv14.nocompat.vk.rmiss.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT float payload; - -void main() -{ - payload = 0.0; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rmiss/ray_tracing.nocompat.vk.rmiss.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rmiss/ray_tracing.nocompat.vk.rmiss.vk deleted file mode 100644 index ec3072a0e2..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rmiss/ray_tracing.nocompat.vk.rmiss.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV float payload; - -void main() -{ - payload = 0.0; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/rmiss/ray_tracing_trace_incoming.khr.spv14.nocompat.vk.rmiss.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/rmiss/ray_tracing_trace_incoming.khr.spv14.nocompat.vk.rmiss.vk deleted file mode 100644 index 7e79126616..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/rmiss/ray_tracing_trace_incoming.khr.spv14.nocompat.vk.rmiss.vk +++ /dev/null @@ -1,11 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(set = 0, binding = 0) uniform accelerationStructureEXT as; -layout(location = 0) rayPayloadInEXT float p; - -void main() -{ - traceRayEXT(as, 0u, 255u, 0u, 1u, 0u, vec3(float(gl_LaunchIDEXT.x) / float(gl_LaunchSizeEXT.x), float(gl_LaunchIDEXT.y) / float(gl_LaunchSizeEXT.y), 1.0), 0.0, vec3(0.0, 0.0, -1.0), 1000.0, 0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/vert/device-group.nocompat.vk.vert.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/vert/device-group.nocompat.vk.vert.vk deleted file mode 100644 index 9cadcdb6dc..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/vert/device-group.nocompat.vk.vert.vk +++ /dev/null @@ -1,8 +0,0 @@ -#version 450 -#extension GL_EXT_device_group : require - -void main() -{ - gl_Position = vec4(float(gl_DeviceIndex)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/vert/multiview.nocompat.vk.vert.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/vert/multiview.nocompat.vk.vert.vk deleted file mode 100644 index 90055473d9..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/vert/multiview.nocompat.vk.vert.vk +++ /dev/null @@ -1,15 +0,0 @@ -#version 310 es -#extension GL_EXT_multiview : require - -layout(set = 0, binding = 0, std140) uniform MVPs -{ - mat4 MVP[2]; -} _19; - -layout(location = 0) in vec4 Position; - -void main() -{ - gl_Position = _19.MVP[gl_ViewIndex] * Position; -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/vert/small-storage.vk.vert b/third_party/spirv-cross/reference/opt/shaders/vulkan/vert/small-storage.vk.vert deleted file mode 100644 index 610618d5b9..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/vert/small-storage.vk.vert +++ /dev/null @@ -1,61 +0,0 @@ -#version 450 -#if defined(GL_AMD_gpu_shader_int16) -#extension GL_AMD_gpu_shader_int16 : require -#elif defined(GL_NV_gpu_shader5) -#extension GL_NV_gpu_shader5 : require -#else -#error No extension available for Int16. -#endif -#extension GL_EXT_shader_explicit_arithmetic_types_int8 : require -#if defined(GL_AMD_gpu_shader_half_float) -#extension GL_AMD_gpu_shader_half_float : require -#elif defined(GL_NV_gpu_shader5) -#extension GL_NV_gpu_shader5 : require -#else -#error No extension available for FP16. -#endif - -layout(binding = 0, std140) uniform block -{ - i16vec2 a; - u16vec2 b; - i8vec2 c; - u8vec2 d; - f16vec2 e; -} _26; - -layout(binding = 1, std430) readonly buffer storage -{ - i16vec3 f; - u16vec3 g; - i8vec3 h; - u8vec3 i; - f16vec3 j; -} _53; - -struct pushconst -{ - i16vec4 k; - u16vec4 l; - i8vec4 m; - u8vec4 n; - f16vec4 o; -}; - -uniform pushconst _76; - -layout(location = 0) out i16vec4 p; -layout(location = 0, component = 0) in int16_t foo; -layout(location = 1) out u16vec4 q; -layout(location = 0, component = 1) in uint16_t bar; -layout(location = 2) out f16vec4 r; -layout(location = 1) in float16_t baz; - -void main() -{ - p = i16vec4((((ivec4(int(foo)) + ivec4(ivec2(_26.a), ivec2(_26.c))) - ivec4(ivec3(_53.f) / ivec3(_53.h), 1)) + ivec4(_76.k)) + ivec4(_76.m)); - q = u16vec4((((uvec4(uint(bar)) + uvec4(uvec2(_26.b), uvec2(_26.d))) - uvec4(uvec3(_53.g) / uvec3(_53.i), 1u)) + uvec4(_76.l)) + uvec4(_76.n)); - r = f16vec4(((vec4(float(baz)) + vec4(vec2(_26.e), 0.0, 1.0)) - vec4(vec3(_53.j), 1.0)) + vec4(_76.o)); - gl_Position = vec4(0.0, 0.0, 0.0, 1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/vert/small-storage.vk.vert.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/vert/small-storage.vk.vert.vk deleted file mode 100644 index caec60a2c1..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/vert/small-storage.vk.vert.vk +++ /dev/null @@ -1,55 +0,0 @@ -#version 450 -#extension GL_EXT_shader_explicit_arithmetic_types_int16 : require -#extension GL_EXT_shader_16bit_storage : require -#extension GL_EXT_shader_explicit_arithmetic_types_int8 : require -#extension GL_EXT_shader_8bit_storage : require -#if defined(GL_AMD_gpu_shader_half_float) -#extension GL_AMD_gpu_shader_half_float : require -#elif defined(GL_EXT_shader_explicit_arithmetic_types_float16) -#extension GL_EXT_shader_explicit_arithmetic_types_float16 : require -#else -#error No extension available for FP16. -#endif - -layout(set = 0, binding = 0, std140) uniform block -{ - i16vec2 a; - u16vec2 b; - i8vec2 c; - u8vec2 d; - f16vec2 e; -} _26; - -layout(set = 0, binding = 1, std430) readonly buffer storage -{ - i16vec3 f; - u16vec3 g; - i8vec3 h; - u8vec3 i; - f16vec3 j; -} _53; - -layout(push_constant, std430) uniform pushconst -{ - i16vec4 k; - u16vec4 l; - i8vec4 m; - u8vec4 n; - f16vec4 o; -} _76; - -layout(location = 0) out i16vec4 p; -layout(location = 0, component = 0) in int16_t foo; -layout(location = 1) out u16vec4 q; -layout(location = 0, component = 1) in uint16_t bar; -layout(location = 2) out f16vec4 r; -layout(location = 1) in float16_t baz; - -void main() -{ - p = i16vec4((((ivec4(int(foo)) + ivec4(ivec2(_26.a), ivec2(_26.c))) - ivec4(ivec3(_53.f) / ivec3(_53.h), 1)) + ivec4(_76.k)) + ivec4(_76.m)); - q = u16vec4((((uvec4(uint(bar)) + uvec4(uvec2(_26.b), uvec2(_26.d))) - uvec4(uvec3(_53.g) / uvec3(_53.i), 1u)) + uvec4(_76.l)) + uvec4(_76.n)); - r = f16vec4(((vec4(float(baz)) + vec4(vec2(_26.e), 0.0, 1.0)) - vec4(vec3(_53.j), 1.0)) + vec4(_76.o)); - gl_Position = vec4(0.0, 0.0, 0.0, 1.0); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/vert/vulkan-vertex.vk.vert b/third_party/spirv-cross/reference/opt/shaders/vulkan/vert/vulkan-vertex.vk.vert deleted file mode 100644 index d939aa625c..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/vert/vulkan-vertex.vk.vert +++ /dev/null @@ -1,16 +0,0 @@ -#version 310 es -#ifdef GL_ARB_shader_draw_parameters -#extension GL_ARB_shader_draw_parameters : enable -#endif - -#ifdef GL_ARB_shader_draw_parameters -#define SPIRV_Cross_BaseInstance gl_BaseInstanceARB -#else -uniform int SPIRV_Cross_BaseInstance; -#endif - -void main() -{ - gl_Position = vec4(1.0, 2.0, 3.0, 4.0) * float(gl_VertexID + (gl_InstanceID + SPIRV_Cross_BaseInstance)); -} - diff --git a/third_party/spirv-cross/reference/opt/shaders/vulkan/vert/vulkan-vertex.vk.vert.vk b/third_party/spirv-cross/reference/opt/shaders/vulkan/vert/vulkan-vertex.vk.vert.vk deleted file mode 100644 index 8c4930d7a8..0000000000 --- a/third_party/spirv-cross/reference/opt/shaders/vulkan/vert/vulkan-vertex.vk.vert.vk +++ /dev/null @@ -1,7 +0,0 @@ -#version 310 es - -void main() -{ - gl_Position = vec4(1.0, 2.0, 3.0, 4.0) * float(gl_VertexIndex + gl_InstanceIndex); -} - diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/access-chain-load-store-composite.asm.comp b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/access-chain-load-store-composite.asm.comp deleted file mode 100644 index 986cc6289f..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/access-chain-load-store-composite.asm.comp +++ /dev/null @@ -1,75 +0,0 @@ -struct Baz -{ - float c; -}; - -struct Bar -{ - float d[2][4]; - Baz baz[2]; -}; - -struct Foo -{ - column_major float2x2 a; - float2 b; - Bar c[5]; -}; - -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -RWByteAddressBuffer _10 : register(u0); - -void comp_main() -{ - Foo _64; - _64.a = asfloat(uint2x2(_10.Load(0), _10.Load(8), _10.Load(4), _10.Load(12))); - _64.b = asfloat(_10.Load2(16)); - [unroll] - for (int _0ident = 0; _0ident < 5; _0ident++) - { - [unroll] - for (int _1ident = 0; _1ident < 2; _1ident++) - { - [unroll] - for (int _2ident = 0; _2ident < 4; _2ident++) - { - _64.c[_0ident].d[_1ident][_2ident] = asfloat(_10.Load(_2ident * 4 + _1ident * 16 + _0ident * 40 + 24)); - } - } - [unroll] - for (int _3ident = 0; _3ident < 2; _3ident++) - { - _64.c[_0ident].baz[_3ident].c = asfloat(_10.Load(_3ident * 4 + _0ident * 40 + 56)); - } - } - _10.Store(224, asuint(_64.a[0].x)); - _10.Store(228, asuint(_64.a[1].x)); - _10.Store(232, asuint(_64.a[0].y)); - _10.Store(236, asuint(_64.a[1].y)); - _10.Store2(240, asuint(_64.b)); - [unroll] - for (int _4ident = 0; _4ident < 5; _4ident++) - { - [unroll] - for (int _5ident = 0; _5ident < 2; _5ident++) - { - [unroll] - for (int _6ident = 0; _6ident < 4; _6ident++) - { - _10.Store(_6ident * 4 + _5ident * 16 + _4ident * 40 + 248, asuint(_64.c[_4ident].d[_5ident][_6ident])); - } - } - [unroll] - for (int _7ident = 0; _7ident < 2; _7ident++) - { - _10.Store(_7ident * 4 + _4ident * 40 + 280, asuint(_64.c[_4ident].baz[_7ident].c)); - } - } -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/aliased-struct-divergent-member-name.asm.comp b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/aliased-struct-divergent-member-name.asm.comp deleted file mode 100644 index b75157162d..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/aliased-struct-divergent-member-name.asm.comp +++ /dev/null @@ -1,22 +0,0 @@ -struct T -{ - float c; -}; - -static const T _18 = { 40.0f }; - -RWByteAddressBuffer _7 : register(u0); -RWByteAddressBuffer _10 : register(u1); - -void comp_main() -{ - T v = _18; - _7.Store(40, asuint(v.c)); - _10.Store(480, asuint(v.c)); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/atomic-load-store.asm.comp b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/atomic-load-store.asm.comp deleted file mode 100644 index 4f6a3e34c2..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/atomic-load-store.asm.comp +++ /dev/null @@ -1,18 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -RWByteAddressBuffer _5 : register(u0); - -void comp_main() -{ - uint _20; - _5.InterlockedAdd(4, 0, _20); - uint c = _20; - uint _23; - _5.InterlockedExchange(0, c, _23); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/atomic-result-temporary.asm.comp b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/atomic-result-temporary.asm.comp deleted file mode 100644 index 3a03fafe63..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/atomic-result-temporary.asm.comp +++ /dev/null @@ -1,24 +0,0 @@ -RWByteAddressBuffer _5 : register(u0); - -static uint3 gl_GlobalInvocationID; -struct SPIRV_Cross_Input -{ - uint3 gl_GlobalInvocationID : SV_DispatchThreadID; -}; - -void comp_main() -{ - uint _24; - _5.InterlockedAdd(0, 1u, _24); - if (_24 < 1024u) - { - _5.Store(_24 * 4 + 4, gl_GlobalInvocationID.x); - } -} - -[numthreads(1, 1, 1)] -void main(SPIRV_Cross_Input stage_input) -{ - gl_GlobalInvocationID = stage_input.gl_GlobalInvocationID; - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/bitfield-signed-operations.asm.comp b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/bitfield-signed-operations.asm.comp deleted file mode 100644 index ebc431b3ed..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/bitfield-signed-operations.asm.comp +++ /dev/null @@ -1,105 +0,0 @@ -RWByteAddressBuffer _3 : register(u0); - -uint spvBitfieldInsert(uint Base, uint Insert, uint Offset, uint Count) -{ - uint Mask = Count == 32 ? 0xffffffff : (((1u << Count) - 1) << (Offset & 31)); - return (Base & ~Mask) | ((Insert << Offset) & Mask); -} - -uint2 spvBitfieldInsert(uint2 Base, uint2 Insert, uint Offset, uint Count) -{ - uint Mask = Count == 32 ? 0xffffffff : (((1u << Count) - 1) << (Offset & 31)); - return (Base & ~Mask) | ((Insert << Offset) & Mask); -} - -uint3 spvBitfieldInsert(uint3 Base, uint3 Insert, uint Offset, uint Count) -{ - uint Mask = Count == 32 ? 0xffffffff : (((1u << Count) - 1) << (Offset & 31)); - return (Base & ~Mask) | ((Insert << Offset) & Mask); -} - -uint4 spvBitfieldInsert(uint4 Base, uint4 Insert, uint Offset, uint Count) -{ - uint Mask = Count == 32 ? 0xffffffff : (((1u << Count) - 1) << (Offset & 31)); - return (Base & ~Mask) | ((Insert << Offset) & Mask); -} - -uint spvBitfieldUExtract(uint Base, uint Offset, uint Count) -{ - uint Mask = Count == 32 ? 0xffffffff : ((1 << Count) - 1); - return (Base >> Offset) & Mask; -} - -uint2 spvBitfieldUExtract(uint2 Base, uint Offset, uint Count) -{ - uint Mask = Count == 32 ? 0xffffffff : ((1 << Count) - 1); - return (Base >> Offset) & Mask; -} - -uint3 spvBitfieldUExtract(uint3 Base, uint Offset, uint Count) -{ - uint Mask = Count == 32 ? 0xffffffff : ((1 << Count) - 1); - return (Base >> Offset) & Mask; -} - -uint4 spvBitfieldUExtract(uint4 Base, uint Offset, uint Count) -{ - uint Mask = Count == 32 ? 0xffffffff : ((1 << Count) - 1); - return (Base >> Offset) & Mask; -} - -int spvBitfieldSExtract(int Base, int Offset, int Count) -{ - int Mask = Count == 32 ? -1 : ((1 << Count) - 1); - int Masked = (Base >> Offset) & Mask; - int ExtendShift = (32 - Count) & 31; - return (Masked << ExtendShift) >> ExtendShift; -} - -int2 spvBitfieldSExtract(int2 Base, int Offset, int Count) -{ - int Mask = Count == 32 ? -1 : ((1 << Count) - 1); - int2 Masked = (Base >> Offset) & Mask; - int ExtendShift = (32 - Count) & 31; - return (Masked << ExtendShift) >> ExtendShift; -} - -int3 spvBitfieldSExtract(int3 Base, int Offset, int Count) -{ - int Mask = Count == 32 ? -1 : ((1 << Count) - 1); - int3 Masked = (Base >> Offset) & Mask; - int ExtendShift = (32 - Count) & 31; - return (Masked << ExtendShift) >> ExtendShift; -} - -int4 spvBitfieldSExtract(int4 Base, int Offset, int Count) -{ - int Mask = Count == 32 ? -1 : ((1 << Count) - 1); - int4 Masked = (Base >> Offset) & Mask; - int ExtendShift = (32 - Count) & 31; - return (Masked << ExtendShift) >> ExtendShift; -} - -void comp_main() -{ - int4 _19 = int4(_3.Load4(0)); - uint4 _20 = _3.Load4(16); - _3.Store4(0, uint4(countbits(_19))); - _3.Store4(16, uint4(countbits(_19))); - _3.Store4(0, uint4(int4(countbits(_20)))); - _3.Store4(16, countbits(_20)); - _3.Store4(0, uint4(reversebits(_19))); - _3.Store4(16, reversebits(_20)); - _3.Store4(0, uint4(spvBitfieldSExtract(_19, 1, 11u))); - _3.Store4(16, spvBitfieldSExtract(_20, 11u, 1)); - _3.Store4(0, uint4(spvBitfieldUExtract(_19, 1, 11u))); - _3.Store4(16, spvBitfieldUExtract(_20, 11u, 1)); - _3.Store4(0, uint4(int4(spvBitfieldInsert(_19, _19.wzyx, 1, 11u)))); - _3.Store4(16, spvBitfieldInsert(_20, _20.wzyx, 11u, 1)); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/bitscan.asm.comp b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/bitscan.asm.comp deleted file mode 100644 index f8a5fb6fa3..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/bitscan.asm.comp +++ /dev/null @@ -1,25 +0,0 @@ -RWByteAddressBuffer _4 : register(u0); - -void comp_main() -{ - uint4 _19 = _4.Load4(0); - int4 _20 = int4(_4.Load4(16)); - _4.Store4(0, firstbitlow(_19)); - _4.Store4(16, uint4(int4(firstbitlow(_19)))); - _4.Store4(0, uint4(firstbitlow(_20))); - _4.Store4(16, uint4(firstbitlow(_20))); - _4.Store4(0, firstbithigh(_19)); - _4.Store4(16, uint4(int4(firstbithigh(_19)))); - _4.Store4(0, firstbithigh(uint4(_20))); - _4.Store4(16, uint4(int4(firstbithigh(uint4(_20))))); - _4.Store4(0, uint4(firstbithigh(int4(_19)))); - _4.Store4(16, uint4(firstbithigh(int4(_19)))); - _4.Store4(0, uint4(firstbithigh(_20))); - _4.Store4(16, uint4(firstbithigh(_20))); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/buffer-atomic-nonuniform.asm.sm51.nonuniformresource.comp b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/buffer-atomic-nonuniform.asm.sm51.nonuniformresource.comp deleted file mode 100644 index 0b6d93e48f..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/buffer-atomic-nonuniform.asm.sm51.nonuniformresource.comp +++ /dev/null @@ -1,21 +0,0 @@ -RWByteAddressBuffer ssbos[] : register(u0, space0); - -static uint3 gl_GlobalInvocationID; -struct SPIRV_Cross_Input -{ - uint3 gl_GlobalInvocationID : SV_DispatchThreadID; -}; - -void comp_main() -{ - uint _24 = gl_GlobalInvocationID.z; - uint _25; - ssbos[NonUniformResourceIndex(_24)].InterlockedAdd(0, 1u, _25); -} - -[numthreads(1, 1, 1)] -void main(SPIRV_Cross_Input stage_input) -{ - gl_GlobalInvocationID = stage_input.gl_GlobalInvocationID; - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/constant-composite-undef.asm.comp b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/constant-composite-undef.asm.comp deleted file mode 100644 index e05b2f1d29..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/constant-composite-undef.asm.comp +++ /dev/null @@ -1,14 +0,0 @@ -RWByteAddressBuffer block : register(u0); - -static float _15; - -void comp_main() -{ - block.Store4(0, asuint(float4(0.100000001490116119384765625f, 0.20000000298023223876953125f, 0.300000011920928955078125f, 0.0f))); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/eliminate-globals-not-in-entry-point.noeliminate.spv14.asm.comp b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/eliminate-globals-not-in-entry-point.noeliminate.spv14.asm.comp deleted file mode 100644 index a53efc4f7f..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/eliminate-globals-not-in-entry-point.noeliminate.spv14.asm.comp +++ /dev/null @@ -1,11 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(64u, 1u, 1u); - -void comp_main() -{ -} - -[numthreads(64, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/glsl-signed-operations.asm.comp b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/glsl-signed-operations.asm.comp deleted file mode 100644 index db16cf60ed..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/glsl-signed-operations.asm.comp +++ /dev/null @@ -1,45 +0,0 @@ -RWByteAddressBuffer _4 : register(u0); - -void comp_main() -{ - int4 _19 = int4(_4.Load4(0)); - uint4 _20 = _4.Load4(16); - _4.Store4(0, uint4(abs(_19))); - _4.Store4(16, uint4(abs(_19))); - _4.Store4(0, uint4(abs(int4(_20)))); - _4.Store4(16, uint4(abs(int4(_20)))); - _4.Store4(0, uint4(sign(_19))); - _4.Store4(16, uint4(sign(_19))); - _4.Store4(0, uint4(sign(int4(_20)))); - _4.Store4(16, uint4(sign(int4(_20)))); - _4.Store4(0, uint4(firstbithigh(int4(_20)))); - _4.Store4(16, uint4(firstbithigh(int4(_20)))); - _4.Store4(0, uint4(int4(firstbithigh(uint4(_19))))); - _4.Store4(16, firstbithigh(uint4(_19))); - _4.Store4(0, uint4(min(_19, _19))); - _4.Store4(16, uint4(min(_19, int4(_20)))); - _4.Store4(0, uint4(min(int4(_20), int4(_20)))); - _4.Store4(16, uint4(min(int4(_20), _19))); - _4.Store4(0, uint4(int4(min(uint4(_19), _20)))); - _4.Store4(16, min(uint4(_19), _20)); - _4.Store4(0, uint4(int4(min(_20, uint4(_19))))); - _4.Store4(16, min(_20, uint4(_19))); - _4.Store4(0, uint4(max(_19, _19))); - _4.Store4(16, uint4(max(_19, _19))); - _4.Store4(0, uint4(max(int4(_20), _19))); - _4.Store4(16, uint4(max(int4(_20), _19))); - _4.Store4(0, uint4(int4(max(uint4(_19), _20)))); - _4.Store4(16, max(uint4(_19), uint4(_19))); - _4.Store4(0, uint4(int4(max(_20, uint4(_19))))); - _4.Store4(16, max(_20, uint4(_19))); - _4.Store4(0, uint4(clamp(int4(_20), int4(_20), int4(_20)))); - _4.Store4(16, uint4(clamp(int4(_20), int4(_20), int4(_20)))); - _4.Store4(0, uint4(int4(clamp(uint4(_19), uint4(_19), uint4(_19))))); - _4.Store4(16, clamp(uint4(_19), uint4(_19), uint4(_19))); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/glsl.std450.frexp-modf-struct.fxconly.asm.comp b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/glsl.std450.frexp-modf-struct.fxconly.asm.comp deleted file mode 100644 index b1232635ea..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/glsl.std450.frexp-modf-struct.fxconly.asm.comp +++ /dev/null @@ -1,31 +0,0 @@ -struct _8 -{ - float _m0; - float _m1; -}; - -struct _15 -{ - float _m0; - int _m1; -}; - -RWByteAddressBuffer _4 : register(u0); - -void comp_main() -{ - _8 _23; - _23._m0 = modf(20.0f, _23._m1); - _15 _24; - _24._m0 = frexp(40.0f, _24._m1); - _4.Store(0, asuint(_23._m0)); - _4.Store(0, asuint(_23._m1)); - _4.Store(0, asuint(_24._m0)); - _4.Store(4, uint(_24._m1)); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/image-atomic-nonuniform.asm.sm51.nonuniformresource.comp b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/image-atomic-nonuniform.asm.sm51.nonuniformresource.comp deleted file mode 100644 index 07f87ca9e6..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/image-atomic-nonuniform.asm.sm51.nonuniformresource.comp +++ /dev/null @@ -1,21 +0,0 @@ -RWTexture2D uImage[] : register(u0, space0); - -static uint3 gl_GlobalInvocationID; -struct SPIRV_Cross_Input -{ - uint3 gl_GlobalInvocationID : SV_DispatchThreadID; -}; - -void comp_main() -{ - uint _26 = gl_GlobalInvocationID.z; - uint _31; - InterlockedAdd(uImage[NonUniformResourceIndex(_26)][int2(gl_GlobalInvocationID.xy)], 1u, _31); -} - -[numthreads(1, 1, 1)] -void main(SPIRV_Cross_Input stage_input) -{ - gl_GlobalInvocationID = stage_input.gl_GlobalInvocationID; - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/specialization-constant-workgroup.nofxc.asm.comp b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/specialization-constant-workgroup.nofxc.asm.comp deleted file mode 100644 index 8c239b3198..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/specialization-constant-workgroup.nofxc.asm.comp +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef SPIRV_CROSS_CONSTANT_ID_10 -#define SPIRV_CROSS_CONSTANT_ID_10 9u -#endif -static const uint _5 = SPIRV_CROSS_CONSTANT_ID_10; -#ifndef SPIRV_CROSS_CONSTANT_ID_12 -#define SPIRV_CROSS_CONSTANT_ID_12 4u -#endif -static const uint _6 = SPIRV_CROSS_CONSTANT_ID_12; -static const uint3 gl_WorkGroupSize = uint3(_5, 20u, _6); - -RWByteAddressBuffer _4 : register(u0); - -void comp_main() -{ - _4.Store(0, asuint(asfloat(_4.Load(0)) + 1.0f)); -} - -[numthreads(SPIRV_CROSS_CONSTANT_ID_10, 20, SPIRV_CROSS_CONSTANT_ID_12)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/storage-buffer-basic.nofxc.asm.comp b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/storage-buffer-basic.nofxc.asm.comp deleted file mode 100644 index c567fbaf14..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/comp/storage-buffer-basic.nofxc.asm.comp +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef SPIRV_CROSS_CONSTANT_ID_0 -#define SPIRV_CROSS_CONSTANT_ID_0 1u -#endif -static const uint _3 = SPIRV_CROSS_CONSTANT_ID_0; -#ifndef SPIRV_CROSS_CONSTANT_ID_2 -#define SPIRV_CROSS_CONSTANT_ID_2 3u -#endif -static const uint _4 = SPIRV_CROSS_CONSTANT_ID_2; -static const uint3 gl_WorkGroupSize = uint3(_3, 2u, _4); - -RWByteAddressBuffer _8 : register(u0); -RWByteAddressBuffer _9 : register(u1); - -static uint3 gl_WorkGroupID; -struct SPIRV_Cross_Input -{ - uint3 gl_WorkGroupID : SV_GroupID; -}; - -static uint3 _22 = gl_WorkGroupSize; - -void comp_main() -{ - _8.Store(gl_WorkGroupID.x * 4 + 0, asuint(asfloat(_9.Load(gl_WorkGroupID.x * 4 + 0)) + asfloat(_8.Load(gl_WorkGroupID.x * 4 + 0)))); -} - -[numthreads(SPIRV_CROSS_CONSTANT_ID_0, 2, SPIRV_CROSS_CONSTANT_ID_2)] -void main(SPIRV_Cross_Input stage_input) -{ - gl_WorkGroupID = stage_input.gl_WorkGroupID; - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/empty-struct-in-struct.asm.frag b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/empty-struct-in-struct.asm.frag deleted file mode 100644 index e7ffd8d606..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/empty-struct-in-struct.asm.frag +++ /dev/null @@ -1,37 +0,0 @@ -struct EmptyStructTest -{ - int empty_struct_member; -}; - -struct EmptyStruct2Test -{ - EmptyStructTest _m0; -}; - -static const EmptyStructTest _30 = { 0 }; -static const EmptyStruct2Test _20 = { { 0 } }; - -float GetValue(EmptyStruct2Test self) -{ - return 0.0f; -} - -float GetValue_1(EmptyStruct2Test self) -{ - return 0.0f; -} - -void frag_main() -{ - EmptyStructTest _25 = { 0 }; - EmptyStruct2Test _26 = { _25 }; - EmptyStruct2Test emptyStruct; - float value = GetValue(emptyStruct); - value = GetValue_1(_26); - value = GetValue_1(_20); -} - -void main() -{ - frag_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/image-fetch-uint-coord.asm.frag b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/image-fetch-uint-coord.asm.frag deleted file mode 100644 index c5a761345f..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/image-fetch-uint-coord.asm.frag +++ /dev/null @@ -1,28 +0,0 @@ -Texture2D Tex : register(t0); - -static uint3 in_var_TEXCOORD0; -static float4 out_var_SV_Target0; - -struct SPIRV_Cross_Input -{ - nointerpolation uint3 in_var_TEXCOORD0 : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 out_var_SV_Target0 : SV_Target0; -}; - -void frag_main() -{ - out_var_SV_Target0 = Tex.Load(int3(in_var_TEXCOORD0.xy, in_var_TEXCOORD0.z)); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - in_var_TEXCOORD0 = stage_input.in_var_TEXCOORD0; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.out_var_SV_Target0 = out_var_SV_Target0; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/nonuniform-bracket-handling-2.nonuniformresource.sm51.asm.frag b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/nonuniform-bracket-handling-2.nonuniformresource.sm51.asm.frag deleted file mode 100644 index fd758b17d7..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/nonuniform-bracket-handling-2.nonuniformresource.sm51.asm.frag +++ /dev/null @@ -1,37 +0,0 @@ -ByteAddressBuffer _8 : register(t0, space2); -Texture2D uSamplers[] : register(t0, space0); -SamplerState _uSamplers_sampler[] : register(s0, space0); -Texture2D uSampler : register(t1, space1); -SamplerState _uSampler_sampler : register(s1, space1); - -static float4 gl_FragCoord; -static float4 FragColor; -static float2 vUV; - -struct SPIRV_Cross_Input -{ - float2 vUV : TEXCOORD0; - float4 gl_FragCoord : SV_Position; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = uSamplers[NonUniformResourceIndex(_8.Load(40))].SampleLevel(_uSamplers_sampler[NonUniformResourceIndex(_8.Load(40))], vUV, 0.0f); - FragColor += uSampler.SampleLevel(_uSampler_sampler, vUV, float(_8.Load(int(gl_FragCoord.y) * 4 + 0))); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - gl_FragCoord = stage_input.gl_FragCoord; - gl_FragCoord.w = 1.0 / gl_FragCoord.w; - vUV = stage_input.vUV; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/nonuniform-qualifier-propagation.nonuniformresource.sm51.asm.frag b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/nonuniform-qualifier-propagation.nonuniformresource.sm51.asm.frag deleted file mode 100644 index 0356cf58d9..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/nonuniform-qualifier-propagation.nonuniformresource.sm51.asm.frag +++ /dev/null @@ -1,52 +0,0 @@ -struct UBO_1 -{ - float4 v[64]; -}; - -ConstantBuffer ubos[] : register(b0, space2); -ByteAddressBuffer ssbos[] : register(t0, space3); -Texture2D uSamplers[] : register(t0, space0); -SamplerState uSamps[] : register(s0, space1); -Texture2D uCombinedSamplers[] : register(t4, space0); -SamplerState _uCombinedSamplers_sampler[] : register(s4, space0); - -static int vIndex; -static float4 FragColor; -static float2 vUV; - -struct SPIRV_Cross_Input -{ - nointerpolation int vIndex : TEXCOORD0; - float2 vUV : TEXCOORD1; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - int i = vIndex; - int _59 = i + 10; - int _64 = i + 40; - FragColor = uSamplers[NonUniformResourceIndex(_59)].Sample(uSamps[NonUniformResourceIndex(_64)], vUV); - int _71 = i + 10; - FragColor = uCombinedSamplers[NonUniformResourceIndex(_71)].Sample(_uCombinedSamplers_sampler[NonUniformResourceIndex(_71)], vUV); - int _77 = i + 20; - int _80 = i + 40; - FragColor += ubos[NonUniformResourceIndex(_77)].v[_80]; - int _87 = i + 50; - int _90 = i + 60; - FragColor += asfloat(ssbos[NonUniformResourceIndex(_87)].Load4(_90 * 16 + 0)); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vIndex = stage_input.vIndex; - vUV = stage_input.vUV; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/nonuniform-ssbo.sm51.nonuniformresource.asm.frag b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/nonuniform-ssbo.sm51.nonuniformresource.asm.frag deleted file mode 100644 index a692cdcf40..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/nonuniform-ssbo.sm51.nonuniformresource.asm.frag +++ /dev/null @@ -1,39 +0,0 @@ -RWByteAddressBuffer ssbos[] : register(u3, space0); - -static int vIndex; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - nointerpolation int vIndex : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - int i = vIndex; - int _42 = i + 60; - int _45 = i + 70; - ssbos[NonUniformResourceIndex(_42)].Store4(_45 * 16 + 16, asuint(20.0f.xxxx)); - int _48 = i + 100; - uint _49; - ssbos[NonUniformResourceIndex(_48)].InterlockedAdd(0, 100u, _49); - int _51 = i; - uint _52; - ssbos[NonUniformResourceIndex(_51)].GetDimensions(_52); - _52 = (_52 - 16) / 16; - FragColor.z += float(int(_52)); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vIndex = stage_input.vIndex; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/only-initializer-frag-depth.asm.frag b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/only-initializer-frag-depth.asm.frag deleted file mode 100644 index dcbe5d134f..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/only-initializer-frag-depth.asm.frag +++ /dev/null @@ -1,17 +0,0 @@ -static float gl_FragDepth = 0.5f; -struct SPIRV_Cross_Output -{ - float gl_FragDepth : SV_Depth; -}; - -void frag_main() -{ -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_FragDepth = gl_FragDepth; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/phi.zero-initialize.asm.frag b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/phi.zero-initialize.asm.frag deleted file mode 100644 index c9c152bef6..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/phi.zero-initialize.asm.frag +++ /dev/null @@ -1,45 +0,0 @@ -struct Foo -{ - int a; -}; - -static float4 vColor; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - float4 vColor : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -static int uninit_int = 0; -static int4 uninit_vector = int4(0, 0, 0, 0); -static float4x4 uninit_matrix = float4x4(0.0f.xxxx, 0.0f.xxxx, 0.0f.xxxx, 0.0f.xxxx); -static Foo uninit_foo = { 0 }; - -void frag_main() -{ - int _39 = 0; - if (vColor.x > 10.0f) - { - _39 = 10; - } - else - { - _39 = 20; - } - FragColor = vColor; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vColor = stage_input.vColor; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/pixel-interlock-callstack.sm51.fxconly.asm.frag b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/pixel-interlock-callstack.sm51.fxconly.asm.frag deleted file mode 100644 index 8a47b91bf9..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/pixel-interlock-callstack.sm51.fxconly.asm.frag +++ /dev/null @@ -1,33 +0,0 @@ -RasterizerOrderedByteAddressBuffer _7 : register(u1, space0); -RWByteAddressBuffer _9 : register(u0, space0); - -static float4 gl_FragCoord; -struct SPIRV_Cross_Input -{ - float4 gl_FragCoord : SV_Position; -}; - -void callee2() -{ - int _31 = int(gl_FragCoord.x); - _7.Store(_31 * 4 + 0, _7.Load(_31 * 4 + 0) + 1u); -} - -void callee() -{ - int _39 = int(gl_FragCoord.x); - _9.Store(_39 * 4 + 0, _9.Load(_39 * 4 + 0) + 1u); - callee2(); -} - -void frag_main() -{ - callee(); -} - -void main(SPIRV_Cross_Input stage_input) -{ - gl_FragCoord = stage_input.gl_FragCoord; - gl_FragCoord.w = 1.0 / gl_FragCoord.w; - frag_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/pixel-interlock-control-flow.sm51.fxconly.asm.frag b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/pixel-interlock-control-flow.sm51.fxconly.asm.frag deleted file mode 100644 index 01bbe7ddc2..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/pixel-interlock-control-flow.sm51.fxconly.asm.frag +++ /dev/null @@ -1,43 +0,0 @@ -RasterizerOrderedByteAddressBuffer _7 : register(u1, space0); -RWByteAddressBuffer _13 : register(u2, space0); -RasterizerOrderedByteAddressBuffer _9 : register(u0, space0); - -static float4 gl_FragCoord; -struct SPIRV_Cross_Input -{ - float4 gl_FragCoord : SV_Position; -}; - -void callee2() -{ - int _44 = int(gl_FragCoord.x); - _7.Store(_44 * 4 + 0, _7.Load(_44 * 4 + 0) + 1u); -} - -void callee() -{ - int _52 = int(gl_FragCoord.x); - _9.Store(_52 * 4 + 0, _9.Load(_52 * 4 + 0) + 1u); - callee2(); - if (true) - { - } -} - -void _35() -{ - _13.Store(int(gl_FragCoord.x) * 4 + 0, 4u); -} - -void frag_main() -{ - callee(); - _35(); -} - -void main(SPIRV_Cross_Input stage_input) -{ - gl_FragCoord = stage_input.gl_FragCoord; - gl_FragCoord.w = 1.0 / gl_FragCoord.w; - frag_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/pixel-interlock-split-functions.sm51.fxconly.asm.frag b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/pixel-interlock-split-functions.sm51.fxconly.asm.frag deleted file mode 100644 index c1fb6ebbc2..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/pixel-interlock-split-functions.sm51.fxconly.asm.frag +++ /dev/null @@ -1,43 +0,0 @@ -RasterizerOrderedByteAddressBuffer _7 : register(u1, space0); -RasterizerOrderedByteAddressBuffer _9 : register(u0, space0); - -static float4 gl_FragCoord; -struct SPIRV_Cross_Input -{ - float4 gl_FragCoord : SV_Position; -}; - -void callee2() -{ - int _37 = int(gl_FragCoord.x); - _7.Store(_37 * 4 + 0, _7.Load(_37 * 4 + 0) + 1u); -} - -void callee() -{ - int _45 = int(gl_FragCoord.x); - _9.Store(_45 * 4 + 0, _9.Load(_45 * 4 + 0) + 1u); - callee2(); -} - -void _29() -{ -} - -void _31() -{ -} - -void frag_main() -{ - callee(); - _29(); - _31(); -} - -void main(SPIRV_Cross_Input stage_input) -{ - gl_FragCoord = stage_input.gl_FragCoord; - gl_FragCoord.w = 1.0 / gl_FragCoord.w; - frag_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/reserved-function-identifier.asm.frag b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/reserved-function-identifier.asm.frag deleted file mode 100644 index 1f1f6fac10..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/reserved-function-identifier.asm.frag +++ /dev/null @@ -1,31 +0,0 @@ -static float FragColor; - -struct SPIRV_Cross_Output -{ - float FragColor : SV_Target0; -}; - -float _mat3(float a) -{ - return a + 1.0f; -} - -float _RESERVED_IDENTIFIER_FIXUP_gl_Foo(int a) -{ - return float(a) + 1.0f; -} - -void frag_main() -{ - float param = 2.0f; - int param_1 = 4; - FragColor = _mat3(param) + _RESERVED_IDENTIFIER_FIXUP_gl_Foo(param_1); -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/struct-packing-last-element-array-matrix-rule.invalid.asm.frag b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/struct-packing-last-element-array-matrix-rule.invalid.asm.frag deleted file mode 100644 index b88ac0dd72..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/struct-packing-last-element-array-matrix-rule.invalid.asm.frag +++ /dev/null @@ -1,42 +0,0 @@ -struct Foo -{ - row_major float3x3 m[2]; - float v; -}; - -struct Bar -{ - row_major float3x3 m; - float v; -}; - -cbuffer FooUBO : register(b0) -{ - Foo _6_foo : packoffset(c0); -}; - -cbuffer BarUBO : register(b1) -{ - Bar _9_bar : packoffset(c0); -}; - - -static float4 FragColor; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = (_6_foo.v + _9_bar.v).xxxx; -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/subgroup-arithmetic-cast.invalid.nofxc.sm60.asm.frag b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/subgroup-arithmetic-cast.invalid.nofxc.sm60.asm.frag deleted file mode 100644 index b98e681f6d..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/subgroup-arithmetic-cast.invalid.nofxc.sm60.asm.frag +++ /dev/null @@ -1,30 +0,0 @@ -static int index; -static uint FragColor; - -struct SPIRV_Cross_Input -{ - nointerpolation int index : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - uint FragColor : SV_Target0; -}; - -void frag_main() -{ - uint _17 = uint(index); - FragColor = uint(WaveActiveMin(index)); - FragColor = uint(WaveActiveMax(int(_17))); - FragColor = WaveActiveMin(uint(index)); - FragColor = WaveActiveMax(_17); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - index = stage_input.index; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/switch-block-case-fallthrough.asm.invalid.frag b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/switch-block-case-fallthrough.asm.invalid.frag deleted file mode 100644 index 19af59d3bf..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/switch-block-case-fallthrough.asm.invalid.frag +++ /dev/null @@ -1,82 +0,0 @@ -static int vIndex; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - nointerpolation int vIndex : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - int i = 0; - int j; - int _30; - int _31; - switch (vIndex) - { - case 0: - { - _30 = 3; - j = _30; - _31 = 0; - j = _31; - break; - } - default: - { - _30 = 2; - j = _30; - _31 = 0; - j = _31; - break; - } - case 1: - case 11: - { - _31 = 1; - j = _31; - break; - } - case 2: - { - break; - } - case 3: - { - if (vIndex > 3) - { - i = 0; - break; - } - else - { - break; - } - } - case 4: - { - i = 0; - break; - } - case 5: - { - i = 0; - break; - } - } - FragColor = float(i).xxxx; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vIndex = stage_input.vIndex; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/unordered-compare.asm.frag b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/unordered-compare.asm.frag deleted file mode 100644 index 1143ade716..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/unordered-compare.asm.frag +++ /dev/null @@ -1,51 +0,0 @@ -static float4 A; -static float4 B; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - float4 A : TEXCOORD0; - float4 B : TEXCOORD1; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -float4 test_vector() -{ - bool4 le = bool4(!(A.x >= B.x), !(A.y >= B.y), !(A.z >= B.z), !(A.w >= B.w)); - bool4 leq = bool4(!(A.x > B.x), !(A.y > B.y), !(A.z > B.z), !(A.w > B.w)); - bool4 ge = bool4(!(A.x <= B.x), !(A.y <= B.y), !(A.z <= B.z), !(A.w <= B.w)); - bool4 geq = bool4(!(A.x < B.x), !(A.y < B.y), !(A.z < B.z), !(A.w < B.w)); - bool4 eq = bool4(A.x == B.x, A.y == B.y, A.z == B.z, A.w == B.w); - bool4 neq = bool4(A.x != B.x, A.y != B.y, A.z != B.z, A.w != B.w); - return ((((float4(le.x ? 1.0f.xxxx.x : 0.0f.xxxx.x, le.y ? 1.0f.xxxx.y : 0.0f.xxxx.y, le.z ? 1.0f.xxxx.z : 0.0f.xxxx.z, le.w ? 1.0f.xxxx.w : 0.0f.xxxx.w) + float4(leq.x ? 1.0f.xxxx.x : 0.0f.xxxx.x, leq.y ? 1.0f.xxxx.y : 0.0f.xxxx.y, leq.z ? 1.0f.xxxx.z : 0.0f.xxxx.z, leq.w ? 1.0f.xxxx.w : 0.0f.xxxx.w)) + float4(ge.x ? 1.0f.xxxx.x : 0.0f.xxxx.x, ge.y ? 1.0f.xxxx.y : 0.0f.xxxx.y, ge.z ? 1.0f.xxxx.z : 0.0f.xxxx.z, ge.w ? 1.0f.xxxx.w : 0.0f.xxxx.w)) + float4(geq.x ? 1.0f.xxxx.x : 0.0f.xxxx.x, geq.y ? 1.0f.xxxx.y : 0.0f.xxxx.y, geq.z ? 1.0f.xxxx.z : 0.0f.xxxx.z, geq.w ? 1.0f.xxxx.w : 0.0f.xxxx.w)) + float4(eq.x ? 1.0f.xxxx.x : 0.0f.xxxx.x, eq.y ? 1.0f.xxxx.y : 0.0f.xxxx.y, eq.z ? 1.0f.xxxx.z : 0.0f.xxxx.z, eq.w ? 1.0f.xxxx.w : 0.0f.xxxx.w)) + float4(neq.x ? 1.0f.xxxx.x : 0.0f.xxxx.x, neq.y ? 1.0f.xxxx.y : 0.0f.xxxx.y, neq.z ? 1.0f.xxxx.z : 0.0f.xxxx.z, neq.w ? 1.0f.xxxx.w : 0.0f.xxxx.w); -} - -float test_scalar() -{ - bool le = !(A.x >= B.x); - bool leq = !(A.x > B.x); - bool ge = !(A.x <= B.x); - bool geq = !(A.x < B.x); - bool eq = A.x == B.x; - bool neq = A.x != B.x; - return ((((float(le) + float(leq)) + float(ge)) + float(geq)) + float(eq)) + float(neq); -} - -void frag_main() -{ - FragColor = test_vector() + test_scalar().xxxx; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - A = stage_input.A; - B = stage_input.B; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/vector-shuffle-undef-index.asm.frag b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/vector-shuffle-undef-index.asm.frag deleted file mode 100644 index fa41b13c50..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/frag/vector-shuffle-undef-index.asm.frag +++ /dev/null @@ -1,28 +0,0 @@ -static float4 FragColor; -static float4 vFloat; - -struct SPIRV_Cross_Input -{ - float4 vFloat : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -static float4 undef; - -void frag_main() -{ - FragColor = float4(undef.x, vFloat.y, 0.0f, vFloat.w) + float4(vFloat.z, vFloat.y, 0.0f, vFloat.w); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vFloat = stage_input.vFloat; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/temporary.zero-initialize.asm.frag b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/temporary.zero-initialize.asm.frag deleted file mode 100644 index dbdd784529..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/temporary.zero-initialize.asm.frag +++ /dev/null @@ -1,44 +0,0 @@ -static float4 FragColor; -static int vA; -static int vB; - -struct SPIRV_Cross_Input -{ - nointerpolation int vA : TEXCOORD0; - nointerpolation int vB : TEXCOORD1; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = 0.0f.xxxx; - int _10 = 0; - int _15 = 0; - for (int _16 = 0, _17 = 0; _16 < vA; _17 = _15, _16 += _10) - { - if ((vA + _16) == 20) - { - _15 = 50; - } - else - { - _15 = ((vB + _16) == 40) ? 60 : _17; - } - _10 = _15 + 10; - FragColor += 1.0f.xxxx; - } -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vA = stage_input.vA; - vB = stage_input.vB; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/vert/block-struct-initializer.asm.vert b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/vert/block-struct-initializer.asm.vert deleted file mode 100644 index a2b5ea718c..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/vert/block-struct-initializer.asm.vert +++ /dev/null @@ -1,35 +0,0 @@ -struct Foo -{ - float c; - float d; -}; - -static const Foo _13 = { 0.0f, 0.0f }; - -static Foo foo = _13; - -struct Vert -{ - float a : TEXCOORD0; - float b : TEXCOORD1; -}; - -static Vert _3 = { 0.0f, 0.0f }; - -struct SPIRV_Cross_Output -{ - Foo foo : TEXCOORD2; -}; - -void vert_main() -{ -} - -SPIRV_Cross_Output main(out Vert stage_output_3) -{ - vert_main(); - stage_output_3 = _3; - SPIRV_Cross_Output stage_output; - stage_output.foo = foo; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/vert/builtin-output-initializer.asm.vert b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/vert/builtin-output-initializer.asm.vert deleted file mode 100644 index ee30c1783e..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/vert/builtin-output-initializer.asm.vert +++ /dev/null @@ -1,28 +0,0 @@ -static const float _23[1] = { 0.0f }; -static const float _24[1] = { 0.0f }; - -static float4 gl_Position = 0.0f.xxxx; -static float gl_PointSize = 0.0f; -static float gl_ClipDistance[1] = _23; -static float gl_CullDistance[1] = _24; -struct SPIRV_Cross_Output -{ - float4 gl_Position : SV_Position; - float gl_ClipDistance0 : SV_ClipDistance0; - float gl_CullDistance0 : SV_CullDistance0; -}; - -void vert_main() -{ - gl_Position = 1.0f.xxxx; -} - -SPIRV_Cross_Output main() -{ - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - stage_output.gl_ClipDistance0.x = gl_ClipDistance[0]; - stage_output.gl_CullDistance0.x = gl_CullDistance[0]; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/vert/complex-link-by-name.asm.vert b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/vert/complex-link-by-name.asm.vert deleted file mode 100644 index 45973c2758..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/vert/complex-link-by-name.asm.vert +++ /dev/null @@ -1,54 +0,0 @@ -struct Struct_vec4 -{ - float4 m0; -}; - -cbuffer UBO : register(b0) -{ - Struct_vec4 ubo_binding_0_m0 : packoffset(c0); - Struct_vec4 ubo_binding_0_m1 : packoffset(c1); -}; - - -static float4 gl_Position; -static Struct_vec4 output_location_2; -static Struct_vec4 output_location_3; - -struct VertexOut -{ - Struct_vec4 m0 : TEXCOORD0; - Struct_vec4 m1 : TEXCOORD1; -}; - -static VertexOut output_location_0; - -struct SPIRV_Cross_Output -{ - Struct_vec4 output_location_2 : TEXCOORD2; - Struct_vec4 output_location_3 : TEXCOORD3; - float4 gl_Position : SV_Position; -}; - -void vert_main() -{ - Struct_vec4 c; - c.m0 = ubo_binding_0_m0.m0; - Struct_vec4 b; - b.m0 = ubo_binding_0_m1.m0; - gl_Position = c.m0 + b.m0; - output_location_0.m0 = c; - output_location_0.m1 = b; - output_location_2 = c; - output_location_3 = b; -} - -SPIRV_Cross_Output main(out VertexOut stage_outputoutput_location_0) -{ - vert_main(); - stage_outputoutput_location_0 = output_location_0; - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - stage_output.output_location_2 = output_location_2; - stage_output.output_location_3 = output_location_3; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/vert/empty-struct-composite.asm.vert b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/vert/empty-struct-composite.asm.vert deleted file mode 100644 index ba1f576748..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/asm/vert/empty-struct-composite.asm.vert +++ /dev/null @@ -1,15 +0,0 @@ -struct Test -{ - int empty_struct_member; -}; - -void vert_main() -{ - Test _14 = { 0 }; - Test t = _14; -} - -void main() -{ - vert_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/comp/bitfield.comp b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/comp/bitfield.comp deleted file mode 100644 index be287c4174..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/comp/bitfield.comp +++ /dev/null @@ -1,113 +0,0 @@ -uint spvBitfieldInsert(uint Base, uint Insert, uint Offset, uint Count) -{ - uint Mask = Count == 32 ? 0xffffffff : (((1u << Count) - 1) << (Offset & 31)); - return (Base & ~Mask) | ((Insert << Offset) & Mask); -} - -uint2 spvBitfieldInsert(uint2 Base, uint2 Insert, uint Offset, uint Count) -{ - uint Mask = Count == 32 ? 0xffffffff : (((1u << Count) - 1) << (Offset & 31)); - return (Base & ~Mask) | ((Insert << Offset) & Mask); -} - -uint3 spvBitfieldInsert(uint3 Base, uint3 Insert, uint Offset, uint Count) -{ - uint Mask = Count == 32 ? 0xffffffff : (((1u << Count) - 1) << (Offset & 31)); - return (Base & ~Mask) | ((Insert << Offset) & Mask); -} - -uint4 spvBitfieldInsert(uint4 Base, uint4 Insert, uint Offset, uint Count) -{ - uint Mask = Count == 32 ? 0xffffffff : (((1u << Count) - 1) << (Offset & 31)); - return (Base & ~Mask) | ((Insert << Offset) & Mask); -} - -uint spvBitfieldUExtract(uint Base, uint Offset, uint Count) -{ - uint Mask = Count == 32 ? 0xffffffff : ((1 << Count) - 1); - return (Base >> Offset) & Mask; -} - -uint2 spvBitfieldUExtract(uint2 Base, uint Offset, uint Count) -{ - uint Mask = Count == 32 ? 0xffffffff : ((1 << Count) - 1); - return (Base >> Offset) & Mask; -} - -uint3 spvBitfieldUExtract(uint3 Base, uint Offset, uint Count) -{ - uint Mask = Count == 32 ? 0xffffffff : ((1 << Count) - 1); - return (Base >> Offset) & Mask; -} - -uint4 spvBitfieldUExtract(uint4 Base, uint Offset, uint Count) -{ - uint Mask = Count == 32 ? 0xffffffff : ((1 << Count) - 1); - return (Base >> Offset) & Mask; -} - -int spvBitfieldSExtract(int Base, int Offset, int Count) -{ - int Mask = Count == 32 ? -1 : ((1 << Count) - 1); - int Masked = (Base >> Offset) & Mask; - int ExtendShift = (32 - Count) & 31; - return (Masked << ExtendShift) >> ExtendShift; -} - -int2 spvBitfieldSExtract(int2 Base, int Offset, int Count) -{ - int Mask = Count == 32 ? -1 : ((1 << Count) - 1); - int2 Masked = (Base >> Offset) & Mask; - int ExtendShift = (32 - Count) & 31; - return (Masked << ExtendShift) >> ExtendShift; -} - -int3 spvBitfieldSExtract(int3 Base, int Offset, int Count) -{ - int Mask = Count == 32 ? -1 : ((1 << Count) - 1); - int3 Masked = (Base >> Offset) & Mask; - int ExtendShift = (32 - Count) & 31; - return (Masked << ExtendShift) >> ExtendShift; -} - -int4 spvBitfieldSExtract(int4 Base, int Offset, int Count) -{ - int Mask = Count == 32 ? -1 : ((1 << Count) - 1); - int4 Masked = (Base >> Offset) & Mask; - int ExtendShift = (32 - Count) & 31; - return (Masked << ExtendShift) >> ExtendShift; -} - -void comp_main() -{ - int signed_value = 0; - uint unsigned_value = 0u; - int3 signed_values = int3(0, 0, 0); - uint3 unsigned_values = uint3(0u, 0u, 0u); - int s = spvBitfieldSExtract(signed_value, 5, 20); - uint u = spvBitfieldUExtract(unsigned_value, 6, 21); - s = int(spvBitfieldInsert(s, 40, 5, 4)); - u = spvBitfieldInsert(u, 60u, 5, 4); - u = reversebits(u); - s = reversebits(s); - int v0 = int(countbits(u)); - int v1 = countbits(s); - int v2 = int(firstbithigh(u)); - int v3 = firstbitlow(s); - int3 s_1 = spvBitfieldSExtract(signed_values, 5, 20); - uint3 u_1 = spvBitfieldUExtract(unsigned_values, 6, 21); - s_1 = int3(spvBitfieldInsert(s_1, int3(40, 40, 40), 5, 4)); - u_1 = spvBitfieldInsert(u_1, uint3(60u, 60u, 60u), 5, 4); - u_1 = reversebits(u_1); - s_1 = reversebits(s_1); - int3 v0_1 = int3(countbits(u_1)); - int3 v1_1 = countbits(s_1); - int3 v2_1 = int3(firstbithigh(u_1)); - int3 v3_1 = firstbitlow(s_1); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/comp/glsl.std450.fxconly.comp b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/comp/glsl.std450.fxconly.comp deleted file mode 100644 index 7936bf94d0..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/comp/glsl.std450.fxconly.comp +++ /dev/null @@ -1,297 +0,0 @@ -struct ResType -{ - float _m0; - int _m1; -}; - -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -RWByteAddressBuffer _19 : register(u0); - -uint spvPackHalf2x16(float2 value) -{ - uint2 Packed = f32tof16(value); - return Packed.x | (Packed.y << 16); -} - -float2 spvUnpackHalf2x16(uint value) -{ - return f16tof32(uint2(value & 0xffff, value >> 16)); -} - -uint spvPackUnorm4x8(float4 value) -{ - uint4 Packed = uint4(round(saturate(value) * 255.0)); - return Packed.x | (Packed.y << 8) | (Packed.z << 16) | (Packed.w << 24); -} - -float4 spvUnpackUnorm4x8(uint value) -{ - uint4 Packed = uint4(value & 0xff, (value >> 8) & 0xff, (value >> 16) & 0xff, value >> 24); - return float4(Packed) / 255.0; -} - -uint spvPackSnorm4x8(float4 value) -{ - int4 Packed = int4(round(clamp(value, -1.0, 1.0) * 127.0)) & 0xff; - return uint(Packed.x | (Packed.y << 8) | (Packed.z << 16) | (Packed.w << 24)); -} - -float4 spvUnpackSnorm4x8(uint value) -{ - int SignedValue = int(value); - int4 Packed = int4(SignedValue << 24, SignedValue << 16, SignedValue << 8, SignedValue) >> 24; - return clamp(float4(Packed) / 127.0, -1.0, 1.0); -} - -uint spvPackUnorm2x16(float2 value) -{ - uint2 Packed = uint2(round(saturate(value) * 65535.0)); - return Packed.x | (Packed.y << 16); -} - -float2 spvUnpackUnorm2x16(uint value) -{ - uint2 Packed = uint2(value & 0xffff, value >> 16); - return float2(Packed) / 65535.0; -} - -uint spvPackSnorm2x16(float2 value) -{ - int2 Packed = int2(round(clamp(value, -1.0, 1.0) * 32767.0)) & 0xffff; - return uint(Packed.x | (Packed.y << 16)); -} - -float2 spvUnpackSnorm2x16(uint value) -{ - int SignedValue = int(value); - int2 Packed = int2(SignedValue << 16, SignedValue) >> 16; - return clamp(float2(Packed) / 32767.0, -1.0, 1.0); -} - -// Returns the inverse of a matrix, by using the algorithm of calculating the classical -// adjoint and dividing by the determinant. The contents of the matrix are changed. -float2x2 spvInverse(float2x2 m) -{ - float2x2 adj; // The adjoint matrix (inverse after dividing by determinant) - - // Create the transpose of the cofactors, as the classical adjoint of the matrix. - adj[0][0] = m[1][1]; - adj[0][1] = -m[0][1]; - - adj[1][0] = -m[1][0]; - adj[1][1] = m[0][0]; - - // Calculate the determinant as a combination of the cofactors of the first row. - float det = (adj[0][0] * m[0][0]) + (adj[0][1] * m[1][0]); - - // Divide the classical adjoint matrix by the determinant. - // If determinant is zero, matrix is not invertable, so leave it unchanged. - return (det != 0.0f) ? (adj * (1.0f / det)) : m; -} - -// Returns the determinant of a 2x2 matrix. -float spvDet2x2(float a1, float a2, float b1, float b2) -{ - return a1 * b2 - b1 * a2; -} - -// Returns the inverse of a matrix, by using the algorithm of calculating the classical -// adjoint and dividing by the determinant. The contents of the matrix are changed. -float3x3 spvInverse(float3x3 m) -{ - float3x3 adj; // The adjoint matrix (inverse after dividing by determinant) - - // Create the transpose of the cofactors, as the classical adjoint of the matrix. - adj[0][0] = spvDet2x2(m[1][1], m[1][2], m[2][1], m[2][2]); - adj[0][1] = -spvDet2x2(m[0][1], m[0][2], m[2][1], m[2][2]); - adj[0][2] = spvDet2x2(m[0][1], m[0][2], m[1][1], m[1][2]); - - adj[1][0] = -spvDet2x2(m[1][0], m[1][2], m[2][0], m[2][2]); - adj[1][1] = spvDet2x2(m[0][0], m[0][2], m[2][0], m[2][2]); - adj[1][2] = -spvDet2x2(m[0][0], m[0][2], m[1][0], m[1][2]); - - adj[2][0] = spvDet2x2(m[1][0], m[1][1], m[2][0], m[2][1]); - adj[2][1] = -spvDet2x2(m[0][0], m[0][1], m[2][0], m[2][1]); - adj[2][2] = spvDet2x2(m[0][0], m[0][1], m[1][0], m[1][1]); - - // Calculate the determinant as a combination of the cofactors of the first row. - float det = (adj[0][0] * m[0][0]) + (adj[0][1] * m[1][0]) + (adj[0][2] * m[2][0]); - - // Divide the classical adjoint matrix by the determinant. - // If determinant is zero, matrix is not invertable, so leave it unchanged. - return (det != 0.0f) ? (adj * (1.0f / det)) : m; -} - -// Returns the determinant of a 3x3 matrix. -float spvDet3x3(float a1, float a2, float a3, float b1, float b2, float b3, float c1, float c2, float c3) -{ - return a1 * spvDet2x2(b2, b3, c2, c3) - b1 * spvDet2x2(a2, a3, c2, c3) + c1 * spvDet2x2(a2, a3, b2, b3); -} - -// Returns the inverse of a matrix, by using the algorithm of calculating the classical -// adjoint and dividing by the determinant. The contents of the matrix are changed. -float4x4 spvInverse(float4x4 m) -{ - float4x4 adj; // The adjoint matrix (inverse after dividing by determinant) - - // Create the transpose of the cofactors, as the classical adjoint of the matrix. - adj[0][0] = spvDet3x3(m[1][1], m[1][2], m[1][3], m[2][1], m[2][2], m[2][3], m[3][1], m[3][2], m[3][3]); - adj[0][1] = -spvDet3x3(m[0][1], m[0][2], m[0][3], m[2][1], m[2][2], m[2][3], m[3][1], m[3][2], m[3][3]); - adj[0][2] = spvDet3x3(m[0][1], m[0][2], m[0][3], m[1][1], m[1][2], m[1][3], m[3][1], m[3][2], m[3][3]); - adj[0][3] = -spvDet3x3(m[0][1], m[0][2], m[0][3], m[1][1], m[1][2], m[1][3], m[2][1], m[2][2], m[2][3]); - - adj[1][0] = -spvDet3x3(m[1][0], m[1][2], m[1][3], m[2][0], m[2][2], m[2][3], m[3][0], m[3][2], m[3][3]); - adj[1][1] = spvDet3x3(m[0][0], m[0][2], m[0][3], m[2][0], m[2][2], m[2][3], m[3][0], m[3][2], m[3][3]); - adj[1][2] = -spvDet3x3(m[0][0], m[0][2], m[0][3], m[1][0], m[1][2], m[1][3], m[3][0], m[3][2], m[3][3]); - adj[1][3] = spvDet3x3(m[0][0], m[0][2], m[0][3], m[1][0], m[1][2], m[1][3], m[2][0], m[2][2], m[2][3]); - - adj[2][0] = spvDet3x3(m[1][0], m[1][1], m[1][3], m[2][0], m[2][1], m[2][3], m[3][0], m[3][1], m[3][3]); - adj[2][1] = -spvDet3x3(m[0][0], m[0][1], m[0][3], m[2][0], m[2][1], m[2][3], m[3][0], m[3][1], m[3][3]); - adj[2][2] = spvDet3x3(m[0][0], m[0][1], m[0][3], m[1][0], m[1][1], m[1][3], m[3][0], m[3][1], m[3][3]); - adj[2][3] = -spvDet3x3(m[0][0], m[0][1], m[0][3], m[1][0], m[1][1], m[1][3], m[2][0], m[2][1], m[2][3]); - - adj[3][0] = -spvDet3x3(m[1][0], m[1][1], m[1][2], m[2][0], m[2][1], m[2][2], m[3][0], m[3][1], m[3][2]); - adj[3][1] = spvDet3x3(m[0][0], m[0][1], m[0][2], m[2][0], m[2][1], m[2][2], m[3][0], m[3][1], m[3][2]); - adj[3][2] = -spvDet3x3(m[0][0], m[0][1], m[0][2], m[1][0], m[1][1], m[1][2], m[3][0], m[3][1], m[3][2]); - adj[3][3] = spvDet3x3(m[0][0], m[0][1], m[0][2], m[1][0], m[1][1], m[1][2], m[2][0], m[2][1], m[2][2]); - - // Calculate the determinant as a combination of the cofactors of the first row. - float det = (adj[0][0] * m[0][0]) + (adj[0][1] * m[1][0]) + (adj[0][2] * m[2][0]) + (adj[0][3] * m[3][0]); - - // Divide the classical adjoint matrix by the determinant. - // If determinant is zero, matrix is not invertable, so leave it unchanged. - return (det != 0.0f) ? (adj * (1.0f / det)) : m; -} - -float spvReflect(float i, float n) -{ - return i - 2.0 * dot(n, i) * n; -} - -float spvRefract(float i, float n, float eta) -{ - float NoI = n * i; - float NoI2 = NoI * NoI; - float k = 1.0 - eta * eta * (1.0 - NoI2); - if (k < 0.0) - { - return 0.0; - } - else - { - return eta * i - (eta * NoI + sqrt(k)) * n; - } -} - -float spvFaceForward(float n, float i, float nref) -{ - return i * nref < 0.0 ? n : -n; -} - -void comp_main() -{ - _19.Store(0, asuint(round(asfloat(_19.Load(16))))); - _19.Store(0, asuint(trunc(asfloat(_19.Load(16))))); - _19.Store(0, asuint(abs(asfloat(_19.Load(16))))); - _19.Store(4, uint(abs(int(_19.Load(32))))); - _19.Store(0, asuint(sign(asfloat(_19.Load(16))))); - _19.Store(4, uint(sign(int(_19.Load(32))))); - _19.Store(0, asuint(floor(asfloat(_19.Load(16))))); - _19.Store(0, asuint(ceil(asfloat(_19.Load(16))))); - _19.Store(0, asuint(frac(asfloat(_19.Load(16))))); - _19.Store(0, asuint(radians(asfloat(_19.Load(16))))); - _19.Store(0, asuint(degrees(asfloat(_19.Load(16))))); - _19.Store(0, asuint(sin(asfloat(_19.Load(16))))); - _19.Store(0, asuint(cos(asfloat(_19.Load(16))))); - _19.Store(0, asuint(tan(asfloat(_19.Load(16))))); - _19.Store(0, asuint(asin(asfloat(_19.Load(16))))); - _19.Store(0, asuint(acos(asfloat(_19.Load(16))))); - _19.Store(0, asuint(atan(asfloat(_19.Load(16))))); - _19.Store(0, asuint(sinh(asfloat(_19.Load(16))))); - _19.Store(0, asuint(cosh(asfloat(_19.Load(16))))); - _19.Store(0, asuint(tanh(asfloat(_19.Load(16))))); - _19.Store(0, asuint(atan2(asfloat(_19.Load(16)), asfloat(_19.Load(20))))); - _19.Store(0, asuint(pow(asfloat(_19.Load(16)), asfloat(_19.Load(20))))); - _19.Store(0, asuint(exp(asfloat(_19.Load(16))))); - _19.Store(0, asuint(log(asfloat(_19.Load(16))))); - _19.Store(0, asuint(exp2(asfloat(_19.Load(16))))); - _19.Store(0, asuint(log2(asfloat(_19.Load(16))))); - _19.Store(0, asuint(sqrt(asfloat(_19.Load(16))))); - _19.Store(0, asuint(rsqrt(asfloat(_19.Load(16))))); - _19.Store(0, asuint(length(asfloat(_19.Load(16))))); - _19.Store(0, asuint(distance(asfloat(_19.Load(16)), asfloat(_19.Load(20))))); - _19.Store(0, asuint(sign(asfloat(_19.Load(16))))); - _19.Store(0, asuint(spvFaceForward(asfloat(_19.Load(16)), asfloat(_19.Load(20)), asfloat(_19.Load(24))))); - _19.Store(0, asuint(spvReflect(asfloat(_19.Load(16)), asfloat(_19.Load(20))))); - _19.Store(0, asuint(spvRefract(asfloat(_19.Load(16)), asfloat(_19.Load(20)), asfloat(_19.Load(24))))); - _19.Store(0, asuint(length(asfloat(_19.Load4(16)).xy))); - _19.Store(0, asuint(distance(asfloat(_19.Load4(16)).xy, asfloat(_19.Load4(16)).zw))); - float2 v2 = normalize(asfloat(_19.Load4(16)).xy); - v2 = faceforward(asfloat(_19.Load4(16)).xy, asfloat(_19.Load4(16)).yz, asfloat(_19.Load4(16)).zw); - v2 = reflect(asfloat(_19.Load4(16)).xy, asfloat(_19.Load4(16)).zw); - v2 = refract(asfloat(_19.Load4(16)).xy, asfloat(_19.Load4(16)).yz, asfloat(_19.Load(28))); - float3 v3 = cross(asfloat(_19.Load4(16)).xyz, asfloat(_19.Load4(16)).yzw); - float2x2 _240 = asfloat(uint2x2(_19.Load2(64), _19.Load2(72))); - _19.Store(0, asuint(determinant(_240))); - float3x3 _246 = asfloat(uint3x3(_19.Load3(80), _19.Load3(96), _19.Load3(112))); - _19.Store(0, asuint(determinant(_246))); - float4x4 _252 = asfloat(uint4x4(_19.Load4(128), _19.Load4(144), _19.Load4(160), _19.Load4(176))); - _19.Store(0, asuint(determinant(_252))); - float2x2 _256 = asfloat(uint2x2(_19.Load2(64), _19.Load2(72))); - float2x2 _257 = spvInverse(_256); - _19.Store2(64, asuint(_257[0])); - _19.Store2(72, asuint(_257[1])); - float3x3 _260 = asfloat(uint3x3(_19.Load3(80), _19.Load3(96), _19.Load3(112))); - float3x3 _261 = spvInverse(_260); - _19.Store3(80, asuint(_261[0])); - _19.Store3(96, asuint(_261[1])); - _19.Store3(112, asuint(_261[2])); - float4x4 _264 = asfloat(uint4x4(_19.Load4(128), _19.Load4(144), _19.Load4(160), _19.Load4(176))); - float4x4 _265 = spvInverse(_264); - _19.Store4(128, asuint(_265[0])); - _19.Store4(144, asuint(_265[1])); - _19.Store4(160, asuint(_265[2])); - _19.Store4(176, asuint(_265[3])); - float tmp; - float _271 = modf(asfloat(_19.Load(16)), tmp); - _19.Store(0, asuint(_271)); - _19.Store(0, asuint(min(asfloat(_19.Load(16)), asfloat(_19.Load(20))))); - _19.Store(8, min(_19.Load(48), _19.Load(52))); - _19.Store(4, uint(min(int(_19.Load(32)), int(_19.Load(36))))); - _19.Store(0, asuint(max(asfloat(_19.Load(16)), asfloat(_19.Load(20))))); - _19.Store(8, max(_19.Load(48), _19.Load(52))); - _19.Store(4, uint(max(int(_19.Load(32)), int(_19.Load(36))))); - _19.Store(0, asuint(clamp(asfloat(_19.Load(16)), asfloat(_19.Load(20)), asfloat(_19.Load(24))))); - _19.Store(8, clamp(_19.Load(48), _19.Load(52), _19.Load(56))); - _19.Store(4, uint(clamp(int(_19.Load(32)), int(_19.Load(36)), int(_19.Load(40))))); - _19.Store(0, asuint(lerp(asfloat(_19.Load(16)), asfloat(_19.Load(20)), asfloat(_19.Load(24))))); - _19.Store(0, asuint(step(asfloat(_19.Load(16)), asfloat(_19.Load(20))))); - _19.Store(0, asuint(smoothstep(asfloat(_19.Load(16)), asfloat(_19.Load(20)), asfloat(_19.Load(24))))); - _19.Store(0, asuint(mad(asfloat(_19.Load(16)), asfloat(_19.Load(20)), asfloat(_19.Load(24))))); - ResType _371; - _371._m0 = frexp(asfloat(_19.Load(16)), _371._m1); - int itmp = _371._m1; - _19.Store(0, asuint(_371._m0)); - _19.Store(0, asuint(ldexp(asfloat(_19.Load(16)), itmp))); - _19.Store(8, spvPackSnorm4x8(asfloat(_19.Load4(16)))); - _19.Store(8, spvPackUnorm4x8(asfloat(_19.Load4(16)))); - _19.Store(8, spvPackSnorm2x16(asfloat(_19.Load4(16)).xy)); - _19.Store(8, spvPackUnorm2x16(asfloat(_19.Load4(16)).xy)); - _19.Store(8, spvPackHalf2x16(asfloat(_19.Load4(16)).xy)); - v2 = spvUnpackSnorm2x16(_19.Load(48)); - v2 = spvUnpackUnorm2x16(_19.Load(48)); - v2 = spvUnpackHalf2x16(_19.Load(48)); - float4 v4 = spvUnpackSnorm4x8(_19.Load(48)); - v4 = spvUnpackUnorm4x8(_19.Load(48)); - _19.Store4(32, uint4(firstbitlow(int4(_19.Load4(32))))); - _19.Store4(32, uint4(int4(firstbitlow(_19.Load4(48))))); - _19.Store4(32, uint4(firstbithigh(int4(_19.Load4(32))))); - _19.Store4(32, uint4(int4(firstbithigh(_19.Load4(48))))); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/comp/illegal-struct-name.asm.comp b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/comp/illegal-struct-name.asm.comp deleted file mode 100644 index dc972bdda8..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/comp/illegal-struct-name.asm.comp +++ /dev/null @@ -1,22 +0,0 @@ -struct Foo -{ - float _abs; -}; - -RWByteAddressBuffer _7 : register(u0); - -void comp_main() -{ - Foo _24; - _24._abs = asfloat(_7.Load(0)); - Foo f; - f._abs = _24._abs; - int _abs = 10; - _7.Store(4, asuint(f._abs)); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/comp/subgroups-boolean.invalid.nofxc.sm60.comp b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/comp/subgroups-boolean.invalid.nofxc.sm60.comp deleted file mode 100644 index 2d1d2ad039..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/comp/subgroups-boolean.invalid.nofxc.sm60.comp +++ /dev/null @@ -1,28 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(30u, 1u, 1u); - -RWByteAddressBuffer _46 : register(u0, space0); - -static uint3 gl_GlobalInvocationID; -struct SPIRV_Cross_Input -{ - uint3 gl_GlobalInvocationID : SV_DispatchThreadID; -}; - -void comp_main() -{ - bool v = gl_GlobalInvocationID.x != 3u; - bool4 v4; - v4.x = bool(WaveActiveBitOr(uint(v))); - v4.y = bool(WaveActiveBitAnd(uint(v))); - v4.z = bool(WaveActiveBitXor(uint(v))); - v4.w = WaveActiveAllEqual(v); - uint4 w = uint4(v4.x ? uint4(1u, 1u, 1u, 1u).x : uint4(0u, 0u, 0u, 0u).x, v4.y ? uint4(1u, 1u, 1u, 1u).y : uint4(0u, 0u, 0u, 0u).y, v4.z ? uint4(1u, 1u, 1u, 1u).z : uint4(0u, 0u, 0u, 0u).z, v4.w ? uint4(1u, 1u, 1u, 1u).w : uint4(0u, 0u, 0u, 0u).w); - _46.Store(gl_GlobalInvocationID.x * 4 + 0, ((w.x + w.y) + w.z) + w.w); -} - -[numthreads(30, 1, 1)] -void main(SPIRV_Cross_Input stage_input) -{ - gl_GlobalInvocationID = stage_input.gl_GlobalInvocationID; - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/comp/subgroups.invalid.nofxc.sm60.comp b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/comp/subgroups.invalid.nofxc.sm60.comp deleted file mode 100644 index b2f5a5a160..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/comp/subgroups.invalid.nofxc.sm60.comp +++ /dev/null @@ -1,102 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -RWByteAddressBuffer _9 : register(u0, space0); - -static uint4 gl_SubgroupEqMask; -static uint4 gl_SubgroupGeMask; -static uint4 gl_SubgroupGtMask; -static uint4 gl_SubgroupLeMask; -static uint4 gl_SubgroupLtMask; -void comp_main() -{ - _9.Store(0, asuint(float(WaveGetLaneCount()))); - _9.Store(0, asuint(float(WaveGetLaneIndex()))); - bool elected = WaveIsFirstLane(); - _9.Store(0, asuint(float4(gl_SubgroupEqMask).x)); - _9.Store(0, asuint(float4(gl_SubgroupGeMask).x)); - _9.Store(0, asuint(float4(gl_SubgroupGtMask).x)); - _9.Store(0, asuint(float4(gl_SubgroupLeMask).x)); - _9.Store(0, asuint(float4(gl_SubgroupLtMask).x)); - float4 broadcasted = WaveReadLaneAt(10.0f.xxxx, 8u); - float3 first = WaveReadLaneFirst(20.0f.xxx); - uint4 ballot_value = WaveActiveBallot(true); - uint bit_count = countbits(ballot_value.x) + countbits(ballot_value.y) + countbits(ballot_value.z) + countbits(ballot_value.w); - uint shuffled = WaveReadLaneAt(10u, 8u); - uint shuffled_xor = WaveReadLaneAt(30u, WaveGetLaneIndex() ^ 8u); - uint shuffled_up = WaveReadLaneAt(20u, WaveGetLaneIndex() - 4u); - uint shuffled_down = WaveReadLaneAt(20u, WaveGetLaneIndex() + 4u); - bool has_all = WaveActiveAllTrue(true); - bool has_any = WaveActiveAnyTrue(true); - bool has_equal = WaveActiveAllEqual(true); - float4 added = WaveActiveSum(20.0f.xxxx); - int4 iadded = WaveActiveSum(int4(20, 20, 20, 20)); - float4 multiplied = WaveActiveProduct(20.0f.xxxx); - int4 imultiplied = WaveActiveProduct(int4(20, 20, 20, 20)); - float4 lo = WaveActiveMin(20.0f.xxxx); - float4 hi = WaveActiveMax(20.0f.xxxx); - int4 slo = WaveActiveMin(int4(20, 20, 20, 20)); - int4 shi = WaveActiveMax(int4(20, 20, 20, 20)); - uint4 ulo = WaveActiveMin(uint4(20u, 20u, 20u, 20u)); - uint4 uhi = WaveActiveMax(uint4(20u, 20u, 20u, 20u)); - uint4 anded = WaveActiveBitAnd(ballot_value); - uint4 ored = WaveActiveBitOr(ballot_value); - uint4 xored = WaveActiveBitXor(ballot_value); - bool4 anded_b = bool4(WaveActiveBitAnd(uint4(bool4(ballot_value.x == uint4(42u, 42u, 42u, 42u).x, ballot_value.y == uint4(42u, 42u, 42u, 42u).y, ballot_value.z == uint4(42u, 42u, 42u, 42u).z, ballot_value.w == uint4(42u, 42u, 42u, 42u).w)))); - bool4 ored_b = bool4(WaveActiveBitOr(uint4(bool4(ballot_value.x == uint4(42u, 42u, 42u, 42u).x, ballot_value.y == uint4(42u, 42u, 42u, 42u).y, ballot_value.z == uint4(42u, 42u, 42u, 42u).z, ballot_value.w == uint4(42u, 42u, 42u, 42u).w)))); - bool4 xored_b = bool4(WaveActiveBitXor(uint4(bool4(ballot_value.x == uint4(42u, 42u, 42u, 42u).x, ballot_value.y == uint4(42u, 42u, 42u, 42u).y, ballot_value.z == uint4(42u, 42u, 42u, 42u).z, ballot_value.w == uint4(42u, 42u, 42u, 42u).w)))); - added = WavePrefixSum(added) + added; - iadded = WavePrefixSum(iadded) + iadded; - multiplied = WavePrefixProduct(multiplied) * multiplied; - imultiplied = WavePrefixProduct(imultiplied) * imultiplied; - added = WavePrefixSum(multiplied); - multiplied = WavePrefixProduct(multiplied); - iadded = WavePrefixSum(imultiplied); - imultiplied = WavePrefixProduct(imultiplied); - float4 swap_horiz = QuadReadAcrossX(20.0f.xxxx); - float4 swap_vertical = QuadReadAcrossY(20.0f.xxxx); - float4 swap_diagonal = QuadReadAcrossDiagonal(20.0f.xxxx); - float4 quad_broadcast = QuadReadLaneAt(20.0f.xxxx, 3u); -} - -[numthreads(1, 1, 1)] -void main() -{ - gl_SubgroupEqMask = 1u << (WaveGetLaneIndex() - uint4(0, 32, 64, 96)); - if (WaveGetLaneIndex() >= 32) gl_SubgroupEqMask.x = 0; - if (WaveGetLaneIndex() >= 64 || WaveGetLaneIndex() < 32) gl_SubgroupEqMask.y = 0; - if (WaveGetLaneIndex() >= 96 || WaveGetLaneIndex() < 64) gl_SubgroupEqMask.z = 0; - if (WaveGetLaneIndex() < 96) gl_SubgroupEqMask.w = 0; - gl_SubgroupGeMask = ~((1u << (WaveGetLaneIndex() - uint4(0, 32, 64, 96))) - 1u); - if (WaveGetLaneIndex() >= 32) gl_SubgroupGeMask.x = 0u; - if (WaveGetLaneIndex() >= 64) gl_SubgroupGeMask.y = 0u; - if (WaveGetLaneIndex() >= 96) gl_SubgroupGeMask.z = 0u; - if (WaveGetLaneIndex() < 32) gl_SubgroupGeMask.y = ~0u; - if (WaveGetLaneIndex() < 64) gl_SubgroupGeMask.z = ~0u; - if (WaveGetLaneIndex() < 96) gl_SubgroupGeMask.w = ~0u; - uint gt_lane_index = WaveGetLaneIndex() + 1; - gl_SubgroupGtMask = ~((1u << (gt_lane_index - uint4(0, 32, 64, 96))) - 1u); - if (gt_lane_index >= 32) gl_SubgroupGtMask.x = 0u; - if (gt_lane_index >= 64) gl_SubgroupGtMask.y = 0u; - if (gt_lane_index >= 96) gl_SubgroupGtMask.z = 0u; - if (gt_lane_index >= 128) gl_SubgroupGtMask.w = 0u; - if (gt_lane_index < 32) gl_SubgroupGtMask.y = ~0u; - if (gt_lane_index < 64) gl_SubgroupGtMask.z = ~0u; - if (gt_lane_index < 96) gl_SubgroupGtMask.w = ~0u; - uint le_lane_index = WaveGetLaneIndex() + 1; - gl_SubgroupLeMask = (1u << (le_lane_index - uint4(0, 32, 64, 96))) - 1u; - if (le_lane_index >= 32) gl_SubgroupLeMask.x = ~0u; - if (le_lane_index >= 64) gl_SubgroupLeMask.y = ~0u; - if (le_lane_index >= 96) gl_SubgroupLeMask.z = ~0u; - if (le_lane_index >= 128) gl_SubgroupLeMask.w = ~0u; - if (le_lane_index < 32) gl_SubgroupLeMask.y = 0u; - if (le_lane_index < 64) gl_SubgroupLeMask.z = 0u; - if (le_lane_index < 96) gl_SubgroupLeMask.w = 0u; - gl_SubgroupLtMask = (1u << (WaveGetLaneIndex() - uint4(0, 32, 64, 96))) - 1u; - if (WaveGetLaneIndex() >= 32) gl_SubgroupLtMask.x = ~0u; - if (WaveGetLaneIndex() >= 64) gl_SubgroupLtMask.y = ~0u; - if (WaveGetLaneIndex() >= 96) gl_SubgroupLtMask.z = ~0u; - if (WaveGetLaneIndex() < 32) gl_SubgroupLtMask.y = 0u; - if (WaveGetLaneIndex() < 64) gl_SubgroupLtMask.z = 0u; - if (WaveGetLaneIndex() < 96) gl_SubgroupLtMask.w = 0u; - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/cbuffer-packing-straddle.frag b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/cbuffer-packing-straddle.frag deleted file mode 100644 index 2b8ec8119a..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/cbuffer-packing-straddle.frag +++ /dev/null @@ -1,56 +0,0 @@ -cbuffer UBO : register(b0) -{ - float4 _18_a[2] : packoffset(c0); - float4 _18_b : packoffset(c2); - float4 _18_c : packoffset(c3); - row_major float4x4 _18_d : packoffset(c4); - float _18_e : packoffset(c8); - float2 _18_f : packoffset(c8.z); - float _18_g : packoffset(c9); - float2 _18_h : packoffset(c9.z); - float _18_i : packoffset(c10); - float2 _18_j : packoffset(c10.z); - float _18_k : packoffset(c11); - float2 _18_l : packoffset(c11.z); - float _18_m : packoffset(c12); - float _18_n : packoffset(c12.y); - float _18_o : packoffset(c12.z); - float4 _18_p : packoffset(c13); - float4 _18_q : packoffset(c14); - float3 _18_r : packoffset(c15); - float4 _18_s : packoffset(c16); - float4 _18_t : packoffset(c17); - float4 _18_u : packoffset(c18); - float _18_v : packoffset(c19); - float _18_w : packoffset(c19.y); - float _18_x : packoffset(c19.z); - float _18_y : packoffset(c19.w); - float _18_z : packoffset(c20); - float _18_aa : packoffset(c20.y); - float _18_ab : packoffset(c20.z); - float _18_ac : packoffset(c20.w); - float _18_ad : packoffset(c21); - float _18_ae : packoffset(c21.y); - float4 _18_ef : packoffset(c22); -}; - - -static float4 FragColor; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = _18_a[1]; -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/constant-buffer-array.invalid.sm51.frag b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/constant-buffer-array.invalid.sm51.frag deleted file mode 100644 index d330706c7b..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/constant-buffer-array.invalid.sm51.frag +++ /dev/null @@ -1,44 +0,0 @@ -struct CBO_1 -{ - float4 a; - float4 b; - float4 c; - float4 d; -}; - -ConstantBuffer cbo[2][4] : register(b4, space0); -cbuffer PushMe -{ - float4 push_a : packoffset(c0); - float4 push_b : packoffset(c1); - float4 push_c : packoffset(c2); - float4 push_d : packoffset(c3); -}; - - -static float4 FragColor; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = cbo[1][2].a; - FragColor += cbo[1][2].b; - FragColor += cbo[1][2].c; - FragColor += cbo[1][2].d; - FragColor += push_a; - FragColor += push_b; - FragColor += push_c; - FragColor += push_d; -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/fp16.invalid.desktop.frag b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/fp16.invalid.desktop.frag deleted file mode 100644 index f0ed32f342..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/fp16.invalid.desktop.frag +++ /dev/null @@ -1,179 +0,0 @@ -static min16float4 v4; -static min16float3 v3; -static min16float v1; -static min16float2 v2; -static float o1; -static float2 o2; -static float3 o3; -static float4 o4; - -struct SPIRV_Cross_Input -{ - min16float v1 : TEXCOORD0; - min16float2 v2 : TEXCOORD1; - min16float3 v3 : TEXCOORD2; - min16float4 v4 : TEXCOORD3; -}; - -struct SPIRV_Cross_Output -{ - float o1 : SV_Target0; - float2 o2 : SV_Target1; - float3 o3 : SV_Target2; - float4 o4 : SV_Target3; -}; - -float mod(float x, float y) -{ - return x - y * floor(x / y); -} - -float2 mod(float2 x, float2 y) -{ - return x - y * floor(x / y); -} - -float3 mod(float3 x, float3 y) -{ - return x - y * floor(x / y); -} - -float4 mod(float4 x, float4 y) -{ - return x - y * floor(x / y); -} - -uint spvPackFloat2x16(min16float2 value) -{ - uint2 Packed = f32tof16(value); - return Packed.x | (Packed.y << 16); -} - -min16float2 spvUnpackFloat2x16(uint value) -{ - return min16float2(f16tof32(uint2(value & 0xffff, value >> 16))); -} - -void test_constants() -{ - min16float a = min16float(1.0); - min16float b = min16float(1.5); - min16float c = min16float(-1.5); - min16float d = min16float(0.0 / 0.0); - min16float e = min16float(1.0 / 0.0); - min16float f = min16float(-1.0 / 0.0); - min16float g = min16float(1014.0); - min16float h = min16float(9.5367431640625e-07); -} - -min16float test_result() -{ - return min16float(1.0); -} - -void test_conversions() -{ - min16float one = test_result(); - int a = int(one); - uint b = uint(one); - bool c = one != min16float(0.0); - float d = float(one); - double e = double(one); - min16float a2 = min16float(a); - min16float b2 = min16float(b); - min16float c2 = min16float(c); - min16float d2 = min16float(d); - min16float e2 = min16float(e); -} - -void test_builtins() -{ - min16float4 res = radians(v4); - res = degrees(v4); - res = sin(v4); - res = cos(v4); - res = tan(v4); - res = asin(v4); - res = atan2(v4, v3.xyzz); - res = atan(v4); - res = sinh(v4); - res = cosh(v4); - res = tanh(v4); - res = pow(v4, v4); - res = exp(v4); - res = log(v4); - res = exp2(v4); - res = log2(v4); - res = sqrt(v4); - res = rsqrt(v4); - res = abs(v4); - res = sign(v4); - res = floor(v4); - res = trunc(v4); - res = round(v4); - res = ceil(v4); - res = frac(v4); - res = mod(v4, v4); - min16float4 tmp; - min16float4 _144 = modf(v4, tmp); - res = _144; - res = min(v4, v4); - res = max(v4, v4); - res = clamp(v4, v4, v4); - res = lerp(v4, v4, v4); - bool4 _164 = bool4(v4.x < v4.x, v4.y < v4.y, v4.z < v4.z, v4.w < v4.w); - res = min16float4(_164.x ? v4.x : v4.x, _164.y ? v4.y : v4.y, _164.z ? v4.z : v4.z, _164.w ? v4.w : v4.w); - res = step(v4, v4); - res = smoothstep(v4, v4, v4); - bool4 btmp = isnan(v4); - btmp = isinf(v4); - res = mad(v4, v4, v4); - uint pack0 = spvPackFloat2x16(v4.xy); - uint pack1 = spvPackFloat2x16(v4.zw); - res = min16float4(spvUnpackFloat2x16(pack0), spvUnpackFloat2x16(pack1)); - min16float t0 = length(v4); - t0 = distance(v4, v4); - t0 = dot(v4, v4); - min16float3 res3 = cross(v3, v3); - res = normalize(v4); - res = faceforward(v4, v4, v4); - res = reflect(v4, v4); - res = refract(v4, v4, v1); - btmp = bool4(v4.x < v4.x, v4.y < v4.y, v4.z < v4.z, v4.w < v4.w); - btmp = bool4(v4.x <= v4.x, v4.y <= v4.y, v4.z <= v4.z, v4.w <= v4.w); - btmp = bool4(v4.x > v4.x, v4.y > v4.y, v4.z > v4.z, v4.w > v4.w); - btmp = bool4(v4.x >= v4.x, v4.y >= v4.y, v4.z >= v4.z, v4.w >= v4.w); - btmp = bool4(v4.x == v4.x, v4.y == v4.y, v4.z == v4.z, v4.w == v4.w); - btmp = bool4(v4.x != v4.x, v4.y != v4.y, v4.z != v4.z, v4.w != v4.w); - res = ddx(v4); - res = ddy(v4); - res = ddx_fine(v4); - res = ddy_fine(v4); - res = ddx_coarse(v4); - res = ddy_coarse(v4); - res = fwidth(v4); - res = fwidth(v4); - res = fwidth(v4); -} - -void frag_main() -{ - test_constants(); - test_conversions(); - test_builtins(); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - v4 = stage_input.v4; - v3 = stage_input.v3; - v1 = stage_input.v1; - v2 = stage_input.v2; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.o1 = o1; - stage_output.o2 = o2; - stage_output.o3 = o3; - stage_output.o4 = o4; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/frag-coord.frag b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/frag-coord.frag deleted file mode 100644 index 17cb4c4b74..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/frag-coord.frag +++ /dev/null @@ -1,27 +0,0 @@ -static float4 gl_FragCoord; -static float3 FragColor; - -struct SPIRV_Cross_Input -{ - float4 gl_FragCoord : SV_Position; -}; - -struct SPIRV_Cross_Output -{ - float3 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = gl_FragCoord.xyz / gl_FragCoord.w.xxx; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - gl_FragCoord = stage_input.gl_FragCoord; - gl_FragCoord.w = 1.0 / gl_FragCoord.w; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/native-16bit-types.fxconly.nofxc.sm62.native-16bit.frag b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/native-16bit-types.fxconly.nofxc.sm62.native-16bit.frag deleted file mode 100644 index 020831d0a0..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/native-16bit-types.fxconly.nofxc.sm62.native-16bit.frag +++ /dev/null @@ -1,79 +0,0 @@ -RWByteAddressBuffer _62 : register(u0, space0); - -static float4 gl_FragCoord; -static half4 Output; -static half4 Input; -static int16_t4 OutputI; -static int16_t4 InputI; -static uint16_t4 OutputU; -static uint16_t4 InputU; - -struct SPIRV_Cross_Input -{ - half4 Input : TEXCOORD0; - nointerpolation int16_t4 InputI : TEXCOORD1; - nointerpolation uint16_t4 InputU : TEXCOORD2; - float4 gl_FragCoord : SV_Position; -}; - -struct SPIRV_Cross_Output -{ - half4 Output : SV_Target0; - int16_t4 OutputI : SV_Target1; - uint16_t4 OutputU : SV_Target2; -}; - -void frag_main() -{ - int index = int(gl_FragCoord.x); - Output = Input + half(20.0).xxxx; - OutputI = InputI + int16_t4(int16_t(-40), int16_t(-40), int16_t(-40), int16_t(-40)); - OutputU = InputU + uint16_t4(20u, 20u, 20u, 20u); - Output += _62.Load(index * 2 + 0).xxxx; - OutputI += _62.Load(index * 2 + 8).xxxx; - OutputU += _62.Load(index * 2 + 16).xxxx; - Output += _62.Load(index * 8 + 24); - OutputI += _62.Load(index * 8 + 56); - OutputU += _62.Load(index * 8 + 88); - Output += _62.Load(index * 16 + 128).xyzz; - Output += half3(_62.Load(index * 12 + 186), _62.Load(index * 12 + 190), _62.Load(index * 12 + 194)).xyzz; - half2x3 _128 = half2x3(_62.Load(index * 16 + 120), _62.Load(index * 16 + 128)); - half2x3 m0 = _128; - half2x3 _132 = half2x3(_62.Load(index * 12 + 184), _62.Load(index * 12 + 188), _62.Load(index * 12 + 192), _62.Load(index * 12 + 186), _62.Load(index * 12 + 190), _62.Load(index * 12 + 194)); - half2x3 m1 = _132; - _62.Store(index * 2 + 0, Output.x); - _62.Store(index * 2 + 8, OutputI.y); - _62.Store(index * 2 + 16, OutputU.z); - _62.Store(index * 8 + 24, Output); - _62.Store(index * 8 + 56, OutputI); - _62.Store(index * 8 + 88, OutputU); - _62.Store(index * 16 + 128, Output.xyz); - _62.Store(index * 12 + 186, Output.x); - _62.Store(index * 12 + 190, Output.xyz.y); - _62.Store(index * 12 + 194, Output.xyz.z); - half2x3 _182 = half2x3(half3(Output.xyz), half3(Output.wzy)); - _62.Store(index * 16 + 120, _182[0]); - _62.Store(index * 16 + 128, _182[1]); - half2x3 _197 = half2x3(half3(Output.xyz), half3(Output.wzy)); - _62.Store(index * 12 + 184, _197[0].x); - _62.Store(index * 12 + 186, _197[1].x); - _62.Store(index * 12 + 188, _197[0].y); - _62.Store(index * 12 + 190, _197[1].y); - _62.Store(index * 12 + 192, _197[0].z); - _62.Store(index * 12 + 194, _197[1].z); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - gl_FragCoord = stage_input.gl_FragCoord; - gl_FragCoord.w = 1.0 / gl_FragCoord.w; - Input = stage_input.Input; - InputI = stage_input.InputI; - InputU = stage_input.InputU; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.Output = Output; - stage_output.OutputI = OutputI; - stage_output.OutputU = OutputU; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/nonuniform-constructor.sm51.nonuniformresource.frag b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/nonuniform-constructor.sm51.nonuniformresource.frag deleted file mode 100644 index ca9a116fe8..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/nonuniform-constructor.sm51.nonuniformresource.frag +++ /dev/null @@ -1,32 +0,0 @@ -Texture2D uTex[] : register(t0, space0); -SamplerState Immut : register(s0, space1); - -static float4 FragColor; -static int vIndex; -static float2 vUV; - -struct SPIRV_Cross_Input -{ - float2 vUV : TEXCOORD0; - nointerpolation int vIndex : TEXCOORD1; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = uTex[NonUniformResourceIndex(vIndex)].Sample(Immut, vUV); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vIndex = stage_input.vIndex; - vUV = stage_input.vUV; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/pixel-interlock-simple-callstack.sm51.fxconly.frag b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/pixel-interlock-simple-callstack.sm51.fxconly.frag deleted file mode 100644 index aace6f58ba..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/pixel-interlock-simple-callstack.sm51.fxconly.frag +++ /dev/null @@ -1,33 +0,0 @@ -RasterizerOrderedByteAddressBuffer _14 : register(u1, space0); -RasterizerOrderedByteAddressBuffer _35 : register(u0, space0); - -static float4 gl_FragCoord; -struct SPIRV_Cross_Input -{ - float4 gl_FragCoord : SV_Position; -}; - -void callee2() -{ - int _25 = int(gl_FragCoord.x); - _14.Store(_25 * 4 + 0, _14.Load(_25 * 4 + 0) + 1u); -} - -void callee() -{ - int _38 = int(gl_FragCoord.x); - _35.Store(_38 * 4 + 0, _35.Load(_38 * 4 + 0) + 1u); - callee2(); -} - -void frag_main() -{ - callee(); -} - -void main(SPIRV_Cross_Input stage_input) -{ - gl_FragCoord = stage_input.gl_FragCoord; - gl_FragCoord.w = 1.0 / gl_FragCoord.w; - frag_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/spec-constant.frag b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/spec-constant.frag deleted file mode 100644 index 89a5f5ca86..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/spec-constant.frag +++ /dev/null @@ -1,142 +0,0 @@ -#ifndef SPIRV_CROSS_CONSTANT_ID_1 -#define SPIRV_CROSS_CONSTANT_ID_1 1.0f -#endif -static const float a = SPIRV_CROSS_CONSTANT_ID_1; -#ifndef SPIRV_CROSS_CONSTANT_ID_2 -#define SPIRV_CROSS_CONSTANT_ID_2 2.0f -#endif -static const float b = SPIRV_CROSS_CONSTANT_ID_2; -#ifndef SPIRV_CROSS_CONSTANT_ID_3 -#define SPIRV_CROSS_CONSTANT_ID_3 3 -#endif -static const int c = SPIRV_CROSS_CONSTANT_ID_3; -static const uint _18 = (uint(c) + 0u); -static const int _21 = (-c); -static const int _23 = (~c); -#ifndef SPIRV_CROSS_CONSTANT_ID_4 -#define SPIRV_CROSS_CONSTANT_ID_4 4 -#endif -static const int d = SPIRV_CROSS_CONSTANT_ID_4; -static const int _26 = (c + d); -static const int _28 = (c - d); -static const int _30 = (c * d); -static const int _32 = (c / d); -#ifndef SPIRV_CROSS_CONSTANT_ID_5 -#define SPIRV_CROSS_CONSTANT_ID_5 5u -#endif -static const uint e = SPIRV_CROSS_CONSTANT_ID_5; -#ifndef SPIRV_CROSS_CONSTANT_ID_6 -#define SPIRV_CROSS_CONSTANT_ID_6 6u -#endif -static const uint f = SPIRV_CROSS_CONSTANT_ID_6; -static const uint _36 = (e / f); -static const int _38 = (c % d); -static const uint _40 = (e % f); -static const int _42 = (c >> d); -static const uint _44 = (e >> f); -static const int _46 = (c << d); -static const int _48 = (c | d); -static const int _50 = (c ^ d); -static const int _52 = (c & d); -#ifndef SPIRV_CROSS_CONSTANT_ID_7 -#define SPIRV_CROSS_CONSTANT_ID_7 false -#endif -static const bool g = SPIRV_CROSS_CONSTANT_ID_7; -#ifndef SPIRV_CROSS_CONSTANT_ID_8 -#define SPIRV_CROSS_CONSTANT_ID_8 true -#endif -static const bool h = SPIRV_CROSS_CONSTANT_ID_8; -static const bool _58 = (g || h); -static const bool _60 = (g && h); -static const bool _62 = (!g); -static const bool _64 = (g == h); -static const bool _66 = (g != h); -static const bool _68 = (c == d); -static const bool _70 = (c != d); -static const bool _72 = (c < d); -static const bool _74 = (e < f); -static const bool _76 = (c > d); -static const bool _78 = (e > f); -static const bool _80 = (c <= d); -static const bool _82 = (e <= f); -static const bool _84 = (c >= d); -static const bool _86 = (e >= f); -static const int _92 = int(e + 0u); -static const bool _94 = (c != int(0u)); -static const bool _96 = (e != 0u); -static const int _100 = int(g); -static const uint _103 = uint(g); -static const int _111 = (c + 3); -static const int _118 = (c + 2); -static const int _124 = (d + 2); - -struct Foo -{ - float elems[_124]; -}; - -static float4 FragColor; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - float t0 = a; - float t1 = b; - uint c0 = _18; - int c1 = _21; - int c2 = _23; - int c3 = _26; - int c4 = _28; - int c5 = _30; - int c6 = _32; - uint c7 = _36; - int c8 = _38; - uint c9 = _40; - int c10 = _42; - uint c11 = _44; - int c12 = _46; - int c13 = _48; - int c14 = _50; - int c15 = _52; - bool c16 = _58; - bool c17 = _60; - bool c18 = _62; - bool c19 = _64; - bool c20 = _66; - bool c21 = _68; - bool c22 = _70; - bool c23 = _72; - bool c24 = _74; - bool c25 = _76; - bool c26 = _78; - bool c27 = _80; - bool c28 = _82; - bool c29 = _84; - bool c30 = _86; - int c31 = c8 + c3; - int c32 = _92; - bool c33 = _94; - bool c34 = _96; - int c35 = _100; - uint c36 = _103; - float c37 = float(g); - float vec0[_111][8]; - vec0[0][0] = 10.0f; - float vec1[_118]; - vec1[0] = 20.0f; - Foo foo; - foo.elems[c] = 10.0f; - FragColor = (((t0 + t1).xxxx + vec0[0][0].xxxx) + vec1[0].xxxx) + foo.elems[c].xxxx; -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/ubo-offset-out-of-order.frag b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/ubo-offset-out-of-order.frag deleted file mode 100644 index 4ea3e0dfbe..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/ubo-offset-out-of-order.frag +++ /dev/null @@ -1,33 +0,0 @@ -cbuffer UBO : register(b0) -{ - row_major float4x4 _13_m : packoffset(c1); - float4 _13_v : packoffset(c0); -}; - - -static float4 FragColor; -static float4 vColor; - -struct SPIRV_Cross_Input -{ - float4 vColor : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = mul(vColor, _13_m) + _13_v; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vColor = stage_input.vColor; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/variables.zero-initialize.frag b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/variables.zero-initialize.frag deleted file mode 100644 index 7fe47df036..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/frag/variables.zero-initialize.frag +++ /dev/null @@ -1,45 +0,0 @@ -struct Foo -{ - int a; -}; - -static float4 vColor; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - float4 vColor : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -static int uninit_int = 0; -static int4 uninit_vector = int4(0, 0, 0, 0); -static float4x4 uninit_matrix = float4x4(0.0f.xxxx, 0.0f.xxxx, 0.0f.xxxx, 0.0f.xxxx); -static Foo uninit_foo = { 0 }; - -void frag_main() -{ - int uninit_function_int = 0; - if (vColor.x > 10.0f) - { - uninit_function_int = 10; - } - else - { - uninit_function_int = 20; - } - FragColor = vColor; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vColor = stage_input.vColor; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/vert/block-io-auto-location-assignment.vert b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/vert/block-io-auto-location-assignment.vert deleted file mode 100644 index d6d64816dc..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/vert/block-io-auto-location-assignment.vert +++ /dev/null @@ -1,37 +0,0 @@ -struct Bar -{ - float v[2]; - float w; -}; - -struct V -{ - float a : TEXCOORD0; - float b[2] : TEXCOORD1; - Bar c[2] : TEXCOORD3; - Bar d : TEXCOORD9; -}; - -static V _14; - -void vert_main() -{ - _14.a = 1.0f; - _14.b[0] = 2.0f; - _14.b[1] = 3.0f; - _14.c[0].v[0] = 4.0f; - _14.c[0].v[1] = 5.0f; - _14.c[0].w = 6.0f; - _14.c[1].v[0] = 7.0f; - _14.c[1].v[1] = 8.0f; - _14.c[1].w = 9.0f; - _14.d.v[0] = 10.0f; - _14.d.v[1] = 11.0f; - _14.d.w = 12.0f; -} - -void main(out V stage_output_14) -{ - vert_main(); - stage_output_14 = _14; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/vert/flatten-matrix-input.flatten-matrix-vertex-input.vert b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/vert/flatten-matrix-input.flatten-matrix-vertex-input.vert deleted file mode 100644 index 906b0edd3a..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/vert/flatten-matrix-input.flatten-matrix-vertex-input.vert +++ /dev/null @@ -1,51 +0,0 @@ -static float4 gl_Position; -static float4x4 m4; -static float4 v; -static float3x3 m3; -static float2x2 m2; - -struct SPIRV_Cross_Input -{ - float4 m4_0 : TEXCOORD0; - float4 m4_1 : TEXCOORD1; - float4 m4_2 : TEXCOORD2; - float4 m4_3 : TEXCOORD3; - float3 m3_0 : TEXCOORD4; - float3 m3_1 : TEXCOORD5; - float3 m3_2 : TEXCOORD6; - float2 m2_0 : TEXCOORD7; - float2 m2_1 : TEXCOORD8; - float4 v : TEXCOORD9; -}; - -struct SPIRV_Cross_Output -{ - float4 gl_Position : SV_Position; -}; - -void vert_main() -{ - gl_Position = mul(v, m4); - float3 _37 = gl_Position.xyz + mul(v.xyz, m3); - gl_Position = float4(_37.x, _37.y, _37.z, gl_Position.w); - float2 _52 = gl_Position.xy + mul(v.xy, m2); - gl_Position = float4(_52.x, _52.y, gl_Position.z, gl_Position.w); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - m4[0] = stage_input.m4_0; - m4[1] = stage_input.m4_1; - m4[2] = stage_input.m4_2; - m4[3] = stage_input.m4_3; - v = stage_input.v; - m3[0] = stage_input.m3_0; - m3[1] = stage_input.m3_1; - m3[2] = stage_input.m3_2; - m2[0] = stage_input.m2_0; - m2[1] = stage_input.m2_1; - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/vert/pass-array-by-value.vert b/third_party/spirv-cross/reference/shaders-hlsl-no-opt/vert/pass-array-by-value.vert deleted file mode 100644 index 20afdb5135..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl-no-opt/vert/pass-array-by-value.vert +++ /dev/null @@ -1,48 +0,0 @@ -static const float4 _68[4] = { 0.0f.xxxx, 1.0f.xxxx, 2.0f.xxxx, 3.0f.xxxx }; - -static float4 gl_Position; -static int Index1; -static int Index2; - -struct SPIRV_Cross_Input -{ - int Index1 : TEXCOORD0; - int Index2 : TEXCOORD1; -}; - -struct SPIRV_Cross_Output -{ - float4 gl_Position : SV_Position; -}; - -float4 consume_constant_arrays2(float4 positions[4], float4 positions2[4]) -{ - float4 indexable[4] = positions; - float4 indexable_1[4] = positions2; - return indexable[Index1] + indexable_1[Index2]; -} - -float4 consume_constant_arrays(float4 positions[4], float4 positions2[4]) -{ - return consume_constant_arrays2(positions, positions2); -} - -void vert_main() -{ - float4 LUT2[4]; - LUT2[0] = 10.0f.xxxx; - LUT2[1] = 11.0f.xxxx; - LUT2[2] = 12.0f.xxxx; - LUT2[3] = 13.0f.xxxx; - gl_Position = consume_constant_arrays(_68, LUT2); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - Index1 = stage_input.Index1; - Index2 = stage_input.Index2; - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/asm/comp/access-chain-invalidate.asm.comp b/third_party/spirv-cross/reference/shaders-hlsl/asm/comp/access-chain-invalidate.asm.comp deleted file mode 100644 index b8265fc99e..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/asm/comp/access-chain-invalidate.asm.comp +++ /dev/null @@ -1,19 +0,0 @@ -RWByteAddressBuffer _4 : register(u0); - -void comp_main() -{ - uint _21 = _4.Load(_4.Load(0) * 4 + 4); - for (uint _23 = 0u; _23 < 64u; ) - { - _4.Store(_23 * 4 + 4, 0u); - _23++; - continue; - } - _4.Store(_4.Load(0) * 4 + 4, _21); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/asm/comp/atomic-decrement.asm.comp b/third_party/spirv-cross/reference/shaders-hlsl/asm/comp/atomic-decrement.asm.comp deleted file mode 100644 index 919fe9bab5..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/asm/comp/atomic-decrement.asm.comp +++ /dev/null @@ -1,24 +0,0 @@ -RWByteAddressBuffer u0_counter : register(u1); -RWBuffer u0 : register(u0); - -static uint3 gl_GlobalInvocationID; -struct SPIRV_Cross_Input -{ - uint3 gl_GlobalInvocationID : SV_DispatchThreadID; -}; - -void comp_main() -{ - uint _29; - u0_counter.InterlockedAdd(0, -1, _29); - float4 r0; - r0.x = asfloat(_29); - u0[(uint(asint(r0.x)) * 1u) + (uint(0) >> 2u)] = uint(int(gl_GlobalInvocationID.x)).x; -} - -[numthreads(4, 1, 1)] -void main(SPIRV_Cross_Input stage_input) -{ - gl_GlobalInvocationID = stage_input.gl_GlobalInvocationID; - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/asm/comp/atomic-increment.asm.comp b/third_party/spirv-cross/reference/shaders-hlsl/asm/comp/atomic-increment.asm.comp deleted file mode 100644 index 35960b0a69..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/asm/comp/atomic-increment.asm.comp +++ /dev/null @@ -1,24 +0,0 @@ -RWByteAddressBuffer u0_counter : register(u1); -RWBuffer u0 : register(u0); - -static uint3 gl_GlobalInvocationID; -struct SPIRV_Cross_Input -{ - uint3 gl_GlobalInvocationID : SV_DispatchThreadID; -}; - -void comp_main() -{ - uint _29; - u0_counter.InterlockedAdd(0, 1, _29); - float4 r0; - r0.x = asfloat(_29); - u0[(uint(asint(r0.x)) * 1u) + (uint(0) >> 2u)] = uint(int(gl_GlobalInvocationID.x)).x; -} - -[numthreads(4, 1, 1)] -void main(SPIRV_Cross_Input stage_input) -{ - gl_GlobalInvocationID = stage_input.gl_GlobalInvocationID; - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/asm/comp/bitcast_icmp.asm.comp b/third_party/spirv-cross/reference/shaders-hlsl/asm/comp/bitcast_icmp.asm.comp deleted file mode 100644 index 35143a486e..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/asm/comp/bitcast_icmp.asm.comp +++ /dev/null @@ -1,28 +0,0 @@ -RWByteAddressBuffer _5 : register(u0); -RWByteAddressBuffer _6 : register(u1); - -void comp_main() -{ - bool4 _31 = bool4(int(_5.Load4(16).x) < int4(_5.Load4(0)).x, int(_5.Load4(16).y) < int4(_5.Load4(0)).y, int(_5.Load4(16).z) < int4(_5.Load4(0)).z, int(_5.Load4(16).w) < int4(_5.Load4(0)).w); - bool4 _32 = bool4(int(_5.Load4(16).x) <= int4(_5.Load4(0)).x, int(_5.Load4(16).y) <= int4(_5.Load4(0)).y, int(_5.Load4(16).z) <= int4(_5.Load4(0)).z, int(_5.Load4(16).w) <= int4(_5.Load4(0)).w); - bool4 _33 = bool4(_5.Load4(16).x < uint(int4(_5.Load4(0)).x), _5.Load4(16).y < uint(int4(_5.Load4(0)).y), _5.Load4(16).z < uint(int4(_5.Load4(0)).z), _5.Load4(16).w < uint(int4(_5.Load4(0)).w)); - bool4 _34 = bool4(_5.Load4(16).x <= uint(int4(_5.Load4(0)).x), _5.Load4(16).y <= uint(int4(_5.Load4(0)).y), _5.Load4(16).z <= uint(int4(_5.Load4(0)).z), _5.Load4(16).w <= uint(int4(_5.Load4(0)).w)); - bool4 _35 = bool4(int(_5.Load4(16).x) > int4(_5.Load4(0)).x, int(_5.Load4(16).y) > int4(_5.Load4(0)).y, int(_5.Load4(16).z) > int4(_5.Load4(0)).z, int(_5.Load4(16).w) > int4(_5.Load4(0)).w); - bool4 _36 = bool4(int(_5.Load4(16).x) >= int4(_5.Load4(0)).x, int(_5.Load4(16).y) >= int4(_5.Load4(0)).y, int(_5.Load4(16).z) >= int4(_5.Load4(0)).z, int(_5.Load4(16).w) >= int4(_5.Load4(0)).w); - bool4 _37 = bool4(_5.Load4(16).x > uint(int4(_5.Load4(0)).x), _5.Load4(16).y > uint(int4(_5.Load4(0)).y), _5.Load4(16).z > uint(int4(_5.Load4(0)).z), _5.Load4(16).w > uint(int4(_5.Load4(0)).w)); - bool4 _38 = bool4(_5.Load4(16).x >= uint(int4(_5.Load4(0)).x), _5.Load4(16).y >= uint(int4(_5.Load4(0)).y), _5.Load4(16).z >= uint(int4(_5.Load4(0)).z), _5.Load4(16).w >= uint(int4(_5.Load4(0)).w)); - _6.Store4(0, uint4(_31.x ? uint4(1u, 1u, 1u, 1u).x : uint4(0u, 0u, 0u, 0u).x, _31.y ? uint4(1u, 1u, 1u, 1u).y : uint4(0u, 0u, 0u, 0u).y, _31.z ? uint4(1u, 1u, 1u, 1u).z : uint4(0u, 0u, 0u, 0u).z, _31.w ? uint4(1u, 1u, 1u, 1u).w : uint4(0u, 0u, 0u, 0u).w)); - _6.Store4(0, uint4(_32.x ? uint4(1u, 1u, 1u, 1u).x : uint4(0u, 0u, 0u, 0u).x, _32.y ? uint4(1u, 1u, 1u, 1u).y : uint4(0u, 0u, 0u, 0u).y, _32.z ? uint4(1u, 1u, 1u, 1u).z : uint4(0u, 0u, 0u, 0u).z, _32.w ? uint4(1u, 1u, 1u, 1u).w : uint4(0u, 0u, 0u, 0u).w)); - _6.Store4(0, uint4(_33.x ? uint4(1u, 1u, 1u, 1u).x : uint4(0u, 0u, 0u, 0u).x, _33.y ? uint4(1u, 1u, 1u, 1u).y : uint4(0u, 0u, 0u, 0u).y, _33.z ? uint4(1u, 1u, 1u, 1u).z : uint4(0u, 0u, 0u, 0u).z, _33.w ? uint4(1u, 1u, 1u, 1u).w : uint4(0u, 0u, 0u, 0u).w)); - _6.Store4(0, uint4(_34.x ? uint4(1u, 1u, 1u, 1u).x : uint4(0u, 0u, 0u, 0u).x, _34.y ? uint4(1u, 1u, 1u, 1u).y : uint4(0u, 0u, 0u, 0u).y, _34.z ? uint4(1u, 1u, 1u, 1u).z : uint4(0u, 0u, 0u, 0u).z, _34.w ? uint4(1u, 1u, 1u, 1u).w : uint4(0u, 0u, 0u, 0u).w)); - _6.Store4(0, uint4(_35.x ? uint4(1u, 1u, 1u, 1u).x : uint4(0u, 0u, 0u, 0u).x, _35.y ? uint4(1u, 1u, 1u, 1u).y : uint4(0u, 0u, 0u, 0u).y, _35.z ? uint4(1u, 1u, 1u, 1u).z : uint4(0u, 0u, 0u, 0u).z, _35.w ? uint4(1u, 1u, 1u, 1u).w : uint4(0u, 0u, 0u, 0u).w)); - _6.Store4(0, uint4(_36.x ? uint4(1u, 1u, 1u, 1u).x : uint4(0u, 0u, 0u, 0u).x, _36.y ? uint4(1u, 1u, 1u, 1u).y : uint4(0u, 0u, 0u, 0u).y, _36.z ? uint4(1u, 1u, 1u, 1u).z : uint4(0u, 0u, 0u, 0u).z, _36.w ? uint4(1u, 1u, 1u, 1u).w : uint4(0u, 0u, 0u, 0u).w)); - _6.Store4(0, uint4(_37.x ? uint4(1u, 1u, 1u, 1u).x : uint4(0u, 0u, 0u, 0u).x, _37.y ? uint4(1u, 1u, 1u, 1u).y : uint4(0u, 0u, 0u, 0u).y, _37.z ? uint4(1u, 1u, 1u, 1u).z : uint4(0u, 0u, 0u, 0u).z, _37.w ? uint4(1u, 1u, 1u, 1u).w : uint4(0u, 0u, 0u, 0u).w)); - _6.Store4(0, uint4(_38.x ? uint4(1u, 1u, 1u, 1u).x : uint4(0u, 0u, 0u, 0u).x, _38.y ? uint4(1u, 1u, 1u, 1u).y : uint4(0u, 0u, 0u, 0u).y, _38.z ? uint4(1u, 1u, 1u, 1u).z : uint4(0u, 0u, 0u, 0u).z, _38.w ? uint4(1u, 1u, 1u, 1u).w : uint4(0u, 0u, 0u, 0u).w)); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/asm/comp/block-name-alias-global.asm.comp b/third_party/spirv-cross/reference/shaders-hlsl/asm/comp/block-name-alias-global.asm.comp deleted file mode 100644 index e184e03c5c..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/asm/comp/block-name-alias-global.asm.comp +++ /dev/null @@ -1,39 +0,0 @@ -struct A -{ - int a; - int b; -}; - -RWByteAddressBuffer C1 : register(u1); -cbuffer C2 : register(b2) -{ - A C2_1_Data[1024] : packoffset(c0); -}; - -RWByteAddressBuffer C3 : register(u0); -cbuffer B : register(b3) -{ - A C4_Data[1024] : packoffset(c0); -}; - - -static uint3 gl_GlobalInvocationID; -struct SPIRV_Cross_Input -{ - uint3 gl_GlobalInvocationID : SV_DispatchThreadID; -}; - -void comp_main() -{ - C1.Store(gl_GlobalInvocationID.x * 8 + 0, uint(C2_1_Data[gl_GlobalInvocationID.x].a)); - C1.Store(gl_GlobalInvocationID.x * 8 + 4, uint(C2_1_Data[gl_GlobalInvocationID.x].b)); - C3.Store(gl_GlobalInvocationID.x * 8 + 0, uint(C4_Data[gl_GlobalInvocationID.x].a)); - C3.Store(gl_GlobalInvocationID.x * 8 + 4, uint(C4_Data[gl_GlobalInvocationID.x].b)); -} - -[numthreads(1, 1, 1)] -void main(SPIRV_Cross_Input stage_input) -{ - gl_GlobalInvocationID = stage_input.gl_GlobalInvocationID; - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/asm/comp/control-flow-hints.asm.comp b/third_party/spirv-cross/reference/shaders-hlsl/asm/comp/control-flow-hints.asm.comp deleted file mode 100644 index 9700100348..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/asm/comp/control-flow-hints.asm.comp +++ /dev/null @@ -1,41 +0,0 @@ -RWByteAddressBuffer bar : register(u0); -RWByteAddressBuffer foo : register(u1); - -void _main() -{ - [unroll] - for (int i = 0; i < 16; i++) - { - bar.Store4(i * 16 + 0, asuint(asfloat(foo.Load4(i * 16 + 0)))); - } - [loop] - for (int i_1 = 0; i_1 < 16; i_1++) - { - bar.Store4((15 - i_1) * 16 + 0, asuint(asfloat(foo.Load4(i_1 * 16 + 0)))); - } - float v = asfloat(bar.Load(160)); - float w = asfloat(foo.Load(160)); - [branch] - if (v > 10.0f) - { - foo.Store4(320, asuint(5.0f.xxxx)); - } - float value = 20.0f; - [flatten] - if (w > 40.0f) - { - value = 20.0f; - } - foo.Store4(320, asuint(value.xxxx)); -} - -void comp_main() -{ - _main(); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/asm/comp/global-parameter-name-alias.asm.comp b/third_party/spirv-cross/reference/shaders-hlsl/asm/comp/global-parameter-name-alias.asm.comp deleted file mode 100644 index 44bde09f2a..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/asm/comp/global-parameter-name-alias.asm.comp +++ /dev/null @@ -1,33 +0,0 @@ -ByteAddressBuffer ssbo : register(t1); - -static uint3 gl_GlobalInvocationID; -struct SPIRV_Cross_Input -{ - uint3 gl_GlobalInvocationID : SV_DispatchThreadID; -}; - -void Load(uint size) -{ - int byteAddrTemp = int(size >> uint(2)); - uint4 data = uint4(ssbo.Load(byteAddrTemp * 4 + 0), ssbo.Load((byteAddrTemp + 1) * 4 + 0), ssbo.Load((byteAddrTemp + 2) * 4 + 0), ssbo.Load((byteAddrTemp + 3) * 4 + 0)); -} - -void _main(uint3 id) -{ - uint param = 4u; - Load(param); -} - -void comp_main() -{ - uint3 id = gl_GlobalInvocationID; - uint3 param = id; - _main(param); -} - -[numthreads(1, 1, 1)] -void main(SPIRV_Cross_Input stage_input) -{ - gl_GlobalInvocationID = stage_input.gl_GlobalInvocationID; - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/asm/comp/nmin-max-clamp.asm.comp b/third_party/spirv-cross/reference/shaders-hlsl/asm/comp/nmin-max-clamp.asm.comp deleted file mode 100644 index a6e88684fb..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/asm/comp/nmin-max-clamp.asm.comp +++ /dev/null @@ -1,84 +0,0 @@ -RWByteAddressBuffer _4 : register(u0); - -void comp_main() -{ - _4.Store(0, asuint(isnan(asfloat(_4.Load(96))) ? asfloat(_4.Load(48)) : (isnan(asfloat(_4.Load(48))) ? asfloat(_4.Load(96)) : min(asfloat(_4.Load(48)), asfloat(_4.Load(96)))))); - bool2 _145 = isnan(asfloat(_4.Load2(56))); - bool2 _146 = isnan(asfloat(_4.Load2(104))); - float2 _147 = min(asfloat(_4.Load2(56)), asfloat(_4.Load2(104))); - float2 _148 = float2(_145.x ? asfloat(_4.Load2(104)).x : _147.x, _145.y ? asfloat(_4.Load2(104)).y : _147.y); - _4.Store2(8, asuint(float2(_146.x ? asfloat(_4.Load2(56)).x : _148.x, _146.y ? asfloat(_4.Load2(56)).y : _148.y))); - bool3 _150 = isnan(asfloat(_4.Load3(64))); - bool3 _151 = isnan(asfloat(_4.Load3(112))); - float3 _152 = min(asfloat(_4.Load3(64)), asfloat(_4.Load3(112))); - float3 _153 = float3(_150.x ? asfloat(_4.Load3(112)).x : _152.x, _150.y ? asfloat(_4.Load3(112)).y : _152.y, _150.z ? asfloat(_4.Load3(112)).z : _152.z); - _4.Store3(16, asuint(float3(_151.x ? asfloat(_4.Load3(64)).x : _153.x, _151.y ? asfloat(_4.Load3(64)).y : _153.y, _151.z ? asfloat(_4.Load3(64)).z : _153.z))); - bool4 _155 = isnan(asfloat(_4.Load4(80))); - bool4 _156 = isnan(asfloat(_4.Load4(128))); - float4 _157 = min(asfloat(_4.Load4(80)), asfloat(_4.Load4(128))); - float4 _158 = float4(_155.x ? asfloat(_4.Load4(128)).x : _157.x, _155.y ? asfloat(_4.Load4(128)).y : _157.y, _155.z ? asfloat(_4.Load4(128)).z : _157.z, _155.w ? asfloat(_4.Load4(128)).w : _157.w); - _4.Store4(32, asuint(float4(_156.x ? asfloat(_4.Load4(80)).x : _158.x, _156.y ? asfloat(_4.Load4(80)).y : _158.y, _156.z ? asfloat(_4.Load4(80)).z : _158.z, _156.w ? asfloat(_4.Load4(80)).w : _158.w))); - _4.Store(0, asuint(isnan(asfloat(_4.Load(96))) ? asfloat(_4.Load(48)) : (isnan(asfloat(_4.Load(48))) ? asfloat(_4.Load(96)) : max(asfloat(_4.Load(48)), asfloat(_4.Load(96)))))); - bool2 _165 = isnan(asfloat(_4.Load2(56))); - bool2 _166 = isnan(asfloat(_4.Load2(104))); - float2 _167 = max(asfloat(_4.Load2(56)), asfloat(_4.Load2(104))); - float2 _168 = float2(_165.x ? asfloat(_4.Load2(104)).x : _167.x, _165.y ? asfloat(_4.Load2(104)).y : _167.y); - _4.Store2(8, asuint(float2(_166.x ? asfloat(_4.Load2(56)).x : _168.x, _166.y ? asfloat(_4.Load2(56)).y : _168.y))); - bool3 _170 = isnan(asfloat(_4.Load3(64))); - bool3 _171 = isnan(asfloat(_4.Load3(112))); - float3 _172 = max(asfloat(_4.Load3(64)), asfloat(_4.Load3(112))); - float3 _173 = float3(_170.x ? asfloat(_4.Load3(112)).x : _172.x, _170.y ? asfloat(_4.Load3(112)).y : _172.y, _170.z ? asfloat(_4.Load3(112)).z : _172.z); - _4.Store3(16, asuint(float3(_171.x ? asfloat(_4.Load3(64)).x : _173.x, _171.y ? asfloat(_4.Load3(64)).y : _173.y, _171.z ? asfloat(_4.Load3(64)).z : _173.z))); - bool4 _175 = isnan(asfloat(_4.Load4(80))); - bool4 _176 = isnan(asfloat(_4.Load4(128))); - float4 _177 = max(asfloat(_4.Load4(80)), asfloat(_4.Load4(128))); - float4 _178 = float4(_175.x ? asfloat(_4.Load4(128)).x : _177.x, _175.y ? asfloat(_4.Load4(128)).y : _177.y, _175.z ? asfloat(_4.Load4(128)).z : _177.z, _175.w ? asfloat(_4.Load4(128)).w : _177.w); - _4.Store4(32, asuint(float4(_176.x ? asfloat(_4.Load4(80)).x : _178.x, _176.y ? asfloat(_4.Load4(80)).y : _178.y, _176.z ? asfloat(_4.Load4(80)).z : _178.z, _176.w ? asfloat(_4.Load4(80)).w : _178.w))); - float _179 = isnan(asfloat(_4.Load(48))) ? asfloat(_4.Load(0)) : (isnan(asfloat(_4.Load(0))) ? asfloat(_4.Load(48)) : max(asfloat(_4.Load(0)), asfloat(_4.Load(48)))); - _4.Store(0, asuint(isnan(asfloat(_4.Load(96))) ? _179 : (isnan(_179) ? asfloat(_4.Load(96)) : min(_179, asfloat(_4.Load(96)))))); - bool2 _192 = isnan(asfloat(_4.Load2(8))); - bool2 _193 = isnan(asfloat(_4.Load2(56))); - float2 _194 = max(asfloat(_4.Load2(8)), asfloat(_4.Load2(56))); - float2 _195 = float2(_192.x ? asfloat(_4.Load2(56)).x : _194.x, _192.y ? asfloat(_4.Load2(56)).y : _194.y); - float2 _190 = float2(_193.x ? asfloat(_4.Load2(8)).x : _195.x, _193.y ? asfloat(_4.Load2(8)).y : _195.y); - bool2 _197 = isnan(_190); - bool2 _198 = isnan(asfloat(_4.Load2(104))); - float2 _199 = min(_190, asfloat(_4.Load2(104))); - float2 _200 = float2(_197.x ? asfloat(_4.Load2(104)).x : _199.x, _197.y ? asfloat(_4.Load2(104)).y : _199.y); - _4.Store2(8, asuint(float2(_198.x ? _190.x : _200.x, _198.y ? _190.y : _200.y))); - bool3 _203 = isnan(asfloat(_4.Load3(16))); - bool3 _204 = isnan(asfloat(_4.Load3(64))); - float3 _205 = max(asfloat(_4.Load3(16)), asfloat(_4.Load3(64))); - float3 _206 = float3(_203.x ? asfloat(_4.Load3(64)).x : _205.x, _203.y ? asfloat(_4.Load3(64)).y : _205.y, _203.z ? asfloat(_4.Load3(64)).z : _205.z); - float3 _201 = float3(_204.x ? asfloat(_4.Load3(16)).x : _206.x, _204.y ? asfloat(_4.Load3(16)).y : _206.y, _204.z ? asfloat(_4.Load3(16)).z : _206.z); - bool3 _208 = isnan(_201); - bool3 _209 = isnan(asfloat(_4.Load3(112))); - float3 _210 = min(_201, asfloat(_4.Load3(112))); - float3 _211 = float3(_208.x ? asfloat(_4.Load3(112)).x : _210.x, _208.y ? asfloat(_4.Load3(112)).y : _210.y, _208.z ? asfloat(_4.Load3(112)).z : _210.z); - _4.Store3(16, asuint(float3(_209.x ? _201.x : _211.x, _209.y ? _201.y : _211.y, _209.z ? _201.z : _211.z))); - bool4 _214 = isnan(asfloat(_4.Load4(32))); - bool4 _215 = isnan(asfloat(_4.Load4(80))); - float4 _216 = max(asfloat(_4.Load4(32)), asfloat(_4.Load4(80))); - float4 _217 = float4(_214.x ? asfloat(_4.Load4(80)).x : _216.x, _214.y ? asfloat(_4.Load4(80)).y : _216.y, _214.z ? asfloat(_4.Load4(80)).z : _216.z, _214.w ? asfloat(_4.Load4(80)).w : _216.w); - float4 _212 = float4(_215.x ? asfloat(_4.Load4(32)).x : _217.x, _215.y ? asfloat(_4.Load4(32)).y : _217.y, _215.z ? asfloat(_4.Load4(32)).z : _217.z, _215.w ? asfloat(_4.Load4(32)).w : _217.w); - bool4 _219 = isnan(_212); - bool4 _220 = isnan(asfloat(_4.Load4(128))); - float4 _221 = min(_212, asfloat(_4.Load4(128))); - float4 _222 = float4(_219.x ? asfloat(_4.Load4(128)).x : _221.x, _219.y ? asfloat(_4.Load4(128)).y : _221.y, _219.z ? asfloat(_4.Load4(128)).z : _221.z, _219.w ? asfloat(_4.Load4(128)).w : _221.w); - _4.Store4(32, asuint(float4(_220.x ? _212.x : _222.x, _220.y ? _212.y : _222.y, _220.z ? _212.z : _222.z, _220.w ? _212.w : _222.w))); - float _223; - for (int i = 0; i < 2; i++, _223 = isnan(asfloat(_4.Load(56))) ? asfloat(_4.Load(0)) : (isnan(asfloat(_4.Load(0))) ? asfloat(_4.Load(56)) : max(asfloat(_4.Load(0)), asfloat(_4.Load(56)))), _4.Store(0, asuint(isnan(asfloat(_4.Load(60))) ? _223 : (isnan(_223) ? asfloat(_4.Load(60)) : min(_223, asfloat(_4.Load(60))))))) - { - bool2 _235 = isnan(asfloat(_4.Load2(56))); - bool2 _236 = isnan(asfloat(_4.Load2(104))); - float2 _237 = min(asfloat(_4.Load2(56)), asfloat(_4.Load2(104))); - float2 _238 = float2(_235.x ? asfloat(_4.Load2(104)).x : _237.x, _235.y ? asfloat(_4.Load2(104)).y : _237.y); - _4.Store2(8, asuint(float2(_236.x ? asfloat(_4.Load2(56)).x : _238.x, _236.y ? asfloat(_4.Load2(56)).y : _238.y))); - } -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/cbuffer-stripped.asm.frag b/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/cbuffer-stripped.asm.frag deleted file mode 100644 index 3d5d6288f8..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/cbuffer-stripped.asm.frag +++ /dev/null @@ -1,32 +0,0 @@ -cbuffer _4_5 : register(b0) -{ - column_major float2x4 _5_m0 : packoffset(c0); - float4 _5_m1 : packoffset(c4); -}; - - -static float2 _3; - -struct SPIRV_Cross_Output -{ - float2 _3 : SV_Target0; -}; - -float2 _23() -{ - float2 _25 = mul(_5_m0, _5_m1); - return _25; -} - -void frag_main() -{ - _3 = _23(); -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output._3 = _3; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/combined-sampler-reuse.asm.frag b/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/combined-sampler-reuse.asm.frag deleted file mode 100644 index 3951fd511a..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/combined-sampler-reuse.asm.frag +++ /dev/null @@ -1,30 +0,0 @@ -Texture2D uTex : register(t1); -SamplerState uSampler : register(s0); - -static float4 FragColor; -static float2 vUV; - -struct SPIRV_Cross_Input -{ - float2 vUV : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = uTex.Sample(uSampler, vUV); - FragColor += uTex.Sample(uSampler, vUV, int2(1, 1)); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vUV = stage_input.vUV; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/empty-struct.asm.frag b/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/empty-struct.asm.frag deleted file mode 100644 index 38d12cd630..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/empty-struct.asm.frag +++ /dev/null @@ -1,27 +0,0 @@ -struct EmptyStructTest -{ - int empty_struct_member; -}; - -float GetValue(EmptyStructTest self) -{ - return 0.0f; -} - -float GetValue_1(EmptyStructTest self) -{ - return 0.0f; -} - -void frag_main() -{ - EmptyStructTest _23 = { 0 }; - EmptyStructTest emptyStruct; - float value = GetValue(emptyStruct); - value = GetValue_1(_23); -} - -void main() -{ - frag_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/frem.asm.frag b/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/frem.asm.frag deleted file mode 100644 index 67998c56a7..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/frem.asm.frag +++ /dev/null @@ -1,29 +0,0 @@ -static float4 FragColor; -static float4 vA; -static float4 vB; - -struct SPIRV_Cross_Input -{ - float4 vA : TEXCOORD0; - float4 vB : TEXCOORD1; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = fmod(vA, vB); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vA = stage_input.vA; - vB = stage_input.vB; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/function-overload-alias.asm.frag b/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/function-overload-alias.asm.frag deleted file mode 100644 index e8978b6cd8..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/function-overload-alias.asm.frag +++ /dev/null @@ -1,47 +0,0 @@ -static float4 FragColor; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -float4 foo(float4 foo_1) -{ - return foo_1 + 1.0f.xxxx; -} - -float4 foo(float3 foo_1) -{ - return foo_1.xyzz + 1.0f.xxxx; -} - -float4 foo_1(float4 foo_2) -{ - return foo_2 + 2.0f.xxxx; -} - -float4 foo(float2 foo_2) -{ - return foo_2.xyxy + 2.0f.xxxx; -} - -void frag_main() -{ - float4 foo_3 = 1.0f.xxxx; - float4 foo_2 = foo(foo_3); - float3 foo_5 = 1.0f.xxx; - float4 foo_4 = foo(foo_5); - float4 foo_7 = 1.0f.xxxx; - float4 foo_6 = foo_1(foo_7); - float2 foo_9 = 1.0f.xx; - float4 foo_8 = foo(foo_9); - FragColor = ((foo_2 + foo_4) + foo_6) + foo_8; -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/image-extract-reuse.asm.frag b/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/image-extract-reuse.asm.frag deleted file mode 100644 index 2527d10fdc..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/image-extract-reuse.asm.frag +++ /dev/null @@ -1,31 +0,0 @@ -Texture2D uTexture : register(t0); -SamplerState _uTexture_sampler : register(s0); - -static int2 Size; - -struct SPIRV_Cross_Output -{ - int2 Size : SV_Target0; -}; - -uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) -{ - uint2 ret; - Tex.GetDimensions(Level, ret.x, ret.y, Param); - return ret; -} - -void frag_main() -{ - uint _19_dummy_parameter; - uint _20_dummy_parameter; - Size = int2(spvTextureSize(uTexture, uint(0), _19_dummy_parameter)) + int2(spvTextureSize(uTexture, uint(1), _20_dummy_parameter)); -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.Size = Size; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/implicit-read-dep-phi.asm.frag b/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/implicit-read-dep-phi.asm.frag deleted file mode 100644 index f668d63440..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/implicit-read-dep-phi.asm.frag +++ /dev/null @@ -1,56 +0,0 @@ -Texture2D uImage : register(t0); -SamplerState _uImage_sampler : register(s0); - -static float4 v0; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - float4 v0 : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - int i = 0; - float phi; - float4 _36; - phi = 1.0f; - _36 = float4(1.0f, 2.0f, 1.0f, 2.0f); - for (;;) - { - FragColor = _36; - if (i < 4) - { - if (v0[i] > 0.0f) - { - float2 _48 = phi.xx; - i++; - phi += 2.0f; - _36 = uImage.SampleLevel(_uImage_sampler, _48, 0.0f); - continue; - } - else - { - break; - } - } - else - { - break; - } - } -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - v0 = stage_input.v0; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/inf-nan-constant.asm.frag b/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/inf-nan-constant.asm.frag deleted file mode 100644 index d20cf995ac..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/inf-nan-constant.asm.frag +++ /dev/null @@ -1,19 +0,0 @@ -static float3 FragColor; - -struct SPIRV_Cross_Output -{ - float3 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = float3(asfloat(0x7f800000u), asfloat(0xff800000u), asfloat(0x7fc00000u)); -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/line-directive.line.asm.frag b/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/line-directive.line.asm.frag deleted file mode 100644 index f0d99f7c72..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/line-directive.line.asm.frag +++ /dev/null @@ -1,86 +0,0 @@ -static float FragColor; -static float vColor; - -struct SPIRV_Cross_Input -{ - float vColor : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float FragColor : SV_Target0; -}; - -#line 6 "test.frag" -void func() -{ -#line 8 "test.frag" - FragColor = 1.0f; -#line 9 "test.frag" - FragColor = 2.0f; -#line 10 "test.frag" - if (vColor < 0.0f) - { -#line 12 "test.frag" - FragColor = 3.0f; - } - else - { -#line 16 "test.frag" - FragColor = 4.0f; - } -#line 19 "test.frag" - for (int i = 0; float(i) < (40.0f + vColor); i += (int(vColor) + 5)) - { -#line 21 "test.frag" - FragColor += 0.20000000298023223876953125f; -#line 22 "test.frag" - FragColor += 0.300000011920928955078125f; - } -#line 25 "test.frag" - switch (int(vColor)) - { - case 0: - { -#line 28 "test.frag" - FragColor += 0.20000000298023223876953125f; -#line 29 "test.frag" - break; - } - case 1: - { -#line 32 "test.frag" - FragColor += 0.4000000059604644775390625f; -#line 33 "test.frag" - break; - } - default: - { -#line 36 "test.frag" - FragColor += 0.800000011920928955078125f; -#line 37 "test.frag" - break; - } - } - do - { -#line 42 "test.frag" - FragColor += (10.0f + vColor); - } while (FragColor < 100.0f); -} - -#line 46 "test.frag" -void frag_main() -{ -#line 48 "test.frag" - func(); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vColor = stage_input.vColor; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/lut-promotion-initializer.asm.frag b/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/lut-promotion-initializer.asm.frag deleted file mode 100644 index a7aec01bad..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/lut-promotion-initializer.asm.frag +++ /dev/null @@ -1,55 +0,0 @@ -static const float _46[16] = { 1.0f, 2.0f, 3.0f, 4.0f, 1.0f, 2.0f, 3.0f, 4.0f, 1.0f, 2.0f, 3.0f, 4.0f, 1.0f, 2.0f, 3.0f, 4.0f }; -static const float4 _76[4] = { 0.0f.xxxx, 1.0f.xxxx, 8.0f.xxxx, 5.0f.xxxx }; -static const float4 _90[4] = { 20.0f.xxxx, 30.0f.xxxx, 50.0f.xxxx, 60.0f.xxxx }; - -static float FragColor; -static int index; - -struct SPIRV_Cross_Input -{ - nointerpolation int index : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float FragColor : SV_Target0; -}; - -void frag_main() -{ - float4 foobar[4] = _76; - float4 baz[4] = _76; - FragColor = _46[index]; - if (index < 10) - { - FragColor += _46[index ^ 1]; - } - else - { - FragColor += _46[index & 1]; - } - if (index > 30) - { - FragColor += _76[index & 3].y; - } - else - { - FragColor += _76[index & 1].x; - } - if (index > 30) - { - foobar[1].z = 20.0f; - } - FragColor += foobar[index & 3].z; - baz = _90; - FragColor += baz[index & 3].z; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - index = stage_input.index; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/pack-and-unpack-uint2.fxconly.nofxc.sm60.asm.frag b/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/pack-and-unpack-uint2.fxconly.nofxc.sm60.asm.frag deleted file mode 100644 index 88fad10ff1..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/pack-and-unpack-uint2.fxconly.nofxc.sm60.asm.frag +++ /dev/null @@ -1,34 +0,0 @@ -static float4 FragColor; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -uint64_t spvPackUint2x32(uint2 value) -{ - return (uint64_t(value.y) << 32) | uint64_t(value.x); -} - -uint2 spvUnpackUint2x32(uint64_t value) -{ - uint2 Unpacked; - Unpacked.x = uint(value & 0xffffffff); - Unpacked.y = uint(value >> 32); - return Unpacked; -} - -void frag_main() -{ - uint64_t _packed = spvPackUint2x32(uint2(18u, 52u)); - uint2 unpacked = spvUnpackUint2x32(_packed); - FragColor = float4(float(unpacked.x), float(unpacked.y), 1.0f, 1.0f); -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/pass-by-value.asm.frag b/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/pass-by-value.asm.frag deleted file mode 100644 index ab0471a077..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/pass-by-value.asm.frag +++ /dev/null @@ -1,30 +0,0 @@ -cbuffer Registers -{ - float registers_foo : packoffset(c0); -}; - - -static float FragColor; - -struct SPIRV_Cross_Output -{ - float FragColor : SV_Target0; -}; - -float add_value(float v, float w) -{ - return v + w; -} - -void frag_main() -{ - FragColor = add_value(10.0f, registers_foo); -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/sample-and-compare.asm.frag b/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/sample-and-compare.asm.frag deleted file mode 100644 index 41dfc08061..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/sample-and-compare.asm.frag +++ /dev/null @@ -1,30 +0,0 @@ -Texture2D g_Texture : register(t0); -SamplerState g_Sampler : register(s0); -SamplerComparisonState g_CompareSampler : register(s1); - -static float2 in_var_TEXCOORD0; -static float out_var_SV_Target; - -struct SPIRV_Cross_Input -{ - float2 in_var_TEXCOORD0 : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float out_var_SV_Target : SV_Target0; -}; - -void frag_main() -{ - out_var_SV_Target = g_Texture.Sample(g_Sampler, in_var_TEXCOORD0).x + g_Texture.SampleCmpLevelZero(g_CompareSampler, in_var_TEXCOORD0, 0.5f); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - in_var_TEXCOORD0 = stage_input.in_var_TEXCOORD0; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.out_var_SV_Target = out_var_SV_Target; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/single-function-private-lut.asm.frag b/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/single-function-private-lut.asm.frag deleted file mode 100644 index 9c71d08c4f..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/single-function-private-lut.asm.frag +++ /dev/null @@ -1,66 +0,0 @@ -struct myType -{ - float data; -}; - -static const myType _18 = { 0.0f }; -static const myType _20 = { 1.0f }; -static const myType _21[5] = { { 0.0f }, { 1.0f }, { 0.0f }, { 1.0f }, { 0.0f } }; - -static float4 gl_FragCoord; -static float4 o_color; - -struct SPIRV_Cross_Input -{ - float4 gl_FragCoord : SV_Position; -}; - -struct SPIRV_Cross_Output -{ - float4 o_color : SV_Target0; -}; - -float mod(float x, float y) -{ - return x - y * floor(x / y); -} - -float2 mod(float2 x, float2 y) -{ - return x - y * floor(x / y); -} - -float3 mod(float3 x, float3 y) -{ - return x - y * floor(x / y); -} - -float4 mod(float4 x, float4 y) -{ - return x - y * floor(x / y); -} - -void frag_main() -{ - float2 uv = gl_FragCoord.xy; - int index = int(mod(uv.x, 4.0f)); - myType elt = _21[index]; - if (elt.data > 0.0f) - { - o_color = float4(0.0f, 1.0f, 0.0f, 1.0f); - } - else - { - o_color = float4(1.0f, 0.0f, 0.0f, 1.0f); - } -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - gl_FragCoord = stage_input.gl_FragCoord; - gl_FragCoord.w = 1.0 / gl_FragCoord.w; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.o_color = o_color; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/srem.asm.frag b/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/srem.asm.frag deleted file mode 100644 index db5e717457..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/srem.asm.frag +++ /dev/null @@ -1,29 +0,0 @@ -static float4 FragColor; -static int4 vA; -static int4 vB; - -struct SPIRV_Cross_Input -{ - nointerpolation int4 vA : TEXCOORD0; - nointerpolation int4 vB : TEXCOORD1; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = float4(vA - vB * (vA / vB)); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vA = stage_input.vA; - vB = stage_input.vB; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/storage-class-output-initializer.asm.frag b/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/storage-class-output-initializer.asm.frag deleted file mode 100644 index 1905b5ea29..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/storage-class-output-initializer.asm.frag +++ /dev/null @@ -1,23 +0,0 @@ -static const float4 _20[2] = { float4(1.0f, 2.0f, 3.0f, 4.0f), 10.0f.xxxx }; - -static float4 FragColors[2] = _20; -static float4 FragColor = 5.0f.xxxx; - -struct SPIRV_Cross_Output -{ - float4 FragColors[2] : SV_Target0; - float4 FragColor : SV_Target2; -}; - -void frag_main() -{ -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColors = FragColors; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/texel-fetch-no-lod.asm.frag b/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/texel-fetch-no-lod.asm.frag deleted file mode 100644 index 74c12945bf..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/texel-fetch-no-lod.asm.frag +++ /dev/null @@ -1,30 +0,0 @@ -Texture2D uTexture : register(t0); -SamplerState _uTexture_sampler : register(s0); - -static float4 gl_FragCoord; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - float4 gl_FragCoord : SV_Position; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = uTexture.Load(int3(int2(gl_FragCoord.xy), 0)); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - gl_FragCoord = stage_input.gl_FragCoord; - gl_FragCoord.w = 1.0 / gl_FragCoord.w; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/texture-sampling-fp16.asm.frag b/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/texture-sampling-fp16.asm.frag deleted file mode 100644 index 322c86bed3..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/texture-sampling-fp16.asm.frag +++ /dev/null @@ -1,29 +0,0 @@ -Texture2D uTexture : register(t0); -SamplerState _uTexture_sampler : register(s0); - -static min16float4 FragColor; -static min16float2 UV; - -struct SPIRV_Cross_Input -{ - min16float2 UV : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - min16float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = min16float4(uTexture.Sample(_uTexture_sampler, UV)); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - UV = stage_input.UV; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/unknown-depth-state.asm.frag b/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/unknown-depth-state.asm.frag deleted file mode 100644 index 027dd00c5a..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/unknown-depth-state.asm.frag +++ /dev/null @@ -1,41 +0,0 @@ -Texture2D uShadow : register(t0); -SamplerComparisonState _uShadow_sampler : register(s0); -Texture2D uTexture : register(t1); -SamplerComparisonState uSampler : register(s2); - -static float3 vUV; -static float FragColor; - -struct SPIRV_Cross_Input -{ - float3 vUV : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float FragColor : SV_Target0; -}; - -float sample_combined() -{ - return uShadow.SampleCmp(_uShadow_sampler, vUV.xy, vUV.z); -} - -float sample_separate() -{ - return uTexture.SampleCmp(uSampler, vUV.xy, vUV.z); -} - -void frag_main() -{ - FragColor = sample_combined() + sample_separate(); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vUV = stage_input.vUV; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/unreachable.asm.frag b/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/unreachable.asm.frag deleted file mode 100644 index 86c1daa242..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/asm/frag/unreachable.asm.frag +++ /dev/null @@ -1,44 +0,0 @@ -static int counter; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - nointerpolation int counter : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -static float4 _21; - -void frag_main() -{ - float4 _24; - _24 = _21; - float4 _33; - for (;;) - { - if (counter == 10) - { - _33 = 10.0f.xxxx; - break; - } - else - { - _33 = 30.0f.xxxx; - break; - } - } - FragColor = _33; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - counter = stage_input.counter; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/asm/vert/extract-transposed-matrix-from-struct.asm.vert b/third_party/spirv-cross/reference/shaders-hlsl/asm/vert/extract-transposed-matrix-from-struct.asm.vert deleted file mode 100644 index d5bf9e7a6a..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/asm/vert/extract-transposed-matrix-from-struct.asm.vert +++ /dev/null @@ -1,67 +0,0 @@ -struct V2F -{ - float4 Position; - float4 Color; -}; - -struct InstanceData -{ - column_major float4x4 MATRIX_MVP; - float4 Color; -}; - -cbuffer gInstanceData : register(b0) -{ - InstanceData gInstanceData_1_data[32] : packoffset(c0); -}; - - -static float4 gl_Position; -static int gl_InstanceIndex; -static float3 PosL; -static float4 _entryPointOutput_Color; - -struct SPIRV_Cross_Input -{ - float3 PosL : TEXCOORD0; - uint gl_InstanceIndex : SV_InstanceID; -}; - -struct SPIRV_Cross_Output -{ - float4 _entryPointOutput_Color : TEXCOORD0; - float4 gl_Position : SV_Position; -}; - -V2F _VS(float3 PosL_1, uint instanceID) -{ - InstanceData instData; - instData.MATRIX_MVP = gInstanceData_1_data[instanceID].MATRIX_MVP; - instData.Color = gInstanceData_1_data[instanceID].Color; - V2F v2f; - v2f.Position = mul(float4(PosL_1, 1.0f), instData.MATRIX_MVP); - v2f.Color = instData.Color; - return v2f; -} - -void vert_main() -{ - float3 PosL_1 = PosL; - uint instanceID = uint(gl_InstanceIndex); - float3 param = PosL_1; - uint param_1 = instanceID; - V2F flattenTemp = _VS(param, param_1); - gl_Position = flattenTemp.Position; - _entryPointOutput_Color = flattenTemp.Color; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - gl_InstanceIndex = int(stage_input.gl_InstanceIndex); - PosL = stage_input.PosL; - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - stage_output._entryPointOutput_Color = _entryPointOutput_Color; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/asm/vert/spec-constant-op-composite.asm.vert b/third_party/spirv-cross/reference/shaders-hlsl/asm/vert/spec-constant-op-composite.asm.vert deleted file mode 100644 index 84b91b69bc..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/asm/vert/spec-constant-op-composite.asm.vert +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef SPIRV_CROSS_CONSTANT_ID_201 -#define SPIRV_CROSS_CONSTANT_ID_201 -10 -#endif -static const int _7 = SPIRV_CROSS_CONSTANT_ID_201; -static const int _20 = (_7 + 2); -#ifndef SPIRV_CROSS_CONSTANT_ID_202 -#define SPIRV_CROSS_CONSTANT_ID_202 100u -#endif -static const uint _8 = SPIRV_CROSS_CONSTANT_ID_202; -static const uint _25 = (_8 % 5u); -#ifndef SPIRV_CROSS_CONSTANT_ID_0 -#define SPIRV_CROSS_CONSTANT_ID_0 int4(20, 30, _20, _20) -#endif -static const int4 _30 = SPIRV_CROSS_CONSTANT_ID_0; -static const int2 _32 = int2(_30.y, _30.x); -static const int _33 = _30.y; -#ifndef SPIRV_CROSS_CONSTANT_ID_200 -#define SPIRV_CROSS_CONSTANT_ID_200 3.141590118408203125f -#endif -static const float _9 = SPIRV_CROSS_CONSTANT_ID_200; - -static float4 gl_Position; -static int _4; - -struct SPIRV_Cross_Output -{ - nointerpolation int _4 : TEXCOORD0; - float4 gl_Position : SV_Position; -}; - -void vert_main() -{ - float4 pos = 0.0f.xxxx; - pos.y += float(_20); - pos.z += float(_25); - pos += float4(_30); - float2 _56 = pos.xy + float2(_32); - pos = float4(_56.x, _56.y, pos.z, pos.w); - gl_Position = pos; - _4 = _33; -} - -SPIRV_Cross_Output main() -{ - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - stage_output._4 = _4; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/asm/vert/uint-vertex-id-instance-id.asm.vert b/third_party/spirv-cross/reference/shaders-hlsl/asm/vert/uint-vertex-id-instance-id.asm.vert deleted file mode 100644 index a18c6e7056..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/asm/vert/uint-vertex-id-instance-id.asm.vert +++ /dev/null @@ -1,37 +0,0 @@ -static float4 gl_Position; -static int gl_VertexIndex; -static int gl_InstanceIndex; -struct SPIRV_Cross_Input -{ - uint gl_VertexIndex : SV_VertexID; - uint gl_InstanceIndex : SV_InstanceID; -}; - -struct SPIRV_Cross_Output -{ - float4 gl_Position : SV_Position; -}; - -float4 _main(uint vid, uint iid) -{ - return float(vid + iid).xxxx; -} - -void vert_main() -{ - uint vid = uint(gl_VertexIndex); - uint iid = uint(gl_InstanceIndex); - uint param = vid; - uint param_1 = iid; - gl_Position = _main(param, param_1); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - gl_VertexIndex = int(stage_input.gl_VertexIndex); - gl_InstanceIndex = int(stage_input.gl_InstanceIndex); - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/asm/vert/vertex-id-instance-id.asm.vert b/third_party/spirv-cross/reference/shaders-hlsl/asm/vert/vertex-id-instance-id.asm.vert deleted file mode 100644 index 48b2df20d3..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/asm/vert/vertex-id-instance-id.asm.vert +++ /dev/null @@ -1,28 +0,0 @@ -static float4 gl_Position; -static int gl_VertexIndex; -static int gl_InstanceIndex; -struct SPIRV_Cross_Input -{ - uint gl_VertexIndex : SV_VertexID; - uint gl_InstanceIndex : SV_InstanceID; -}; - -struct SPIRV_Cross_Output -{ - float4 gl_Position : SV_Position; -}; - -void vert_main() -{ - gl_Position = float(gl_VertexIndex + gl_InstanceIndex).xxxx; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - gl_VertexIndex = int(stage_input.gl_VertexIndex); - gl_InstanceIndex = int(stage_input.gl_InstanceIndex); - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/comp/access-chain-load-composite.comp b/third_party/spirv-cross/reference/shaders-hlsl/comp/access-chain-load-composite.comp deleted file mode 100644 index 1c4016008b..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/comp/access-chain-load-composite.comp +++ /dev/null @@ -1,164 +0,0 @@ -struct Baz -{ - float c; -}; - -struct Bar -{ - float d[2][4]; - Baz baz[2]; -}; - -struct Foo -{ - column_major float2x2 a; - float2 b; - Bar c[5]; -}; - -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -RWByteAddressBuffer _31 : register(u0); - -void comp_main() -{ - Foo _36; - _36.a = asfloat(uint2x2(_31.Load(0), _31.Load(8), _31.Load(4), _31.Load(12))); - _36.b = asfloat(_31.Load2(16)); - [unroll] - for (int _4ident = 0; _4ident < 5; _4ident++) - { - [unroll] - for (int _5ident = 0; _5ident < 2; _5ident++) - { - [unroll] - for (int _6ident = 0; _6ident < 4; _6ident++) - { - _36.c[_4ident].d[_5ident][_6ident] = asfloat(_31.Load(_6ident * 4 + _5ident * 16 + _4ident * 40 + 24)); - } - } - [unroll] - for (int _7ident = 0; _7ident < 2; _7ident++) - { - _36.c[_4ident].baz[_7ident].c = asfloat(_31.Load(_7ident * 4 + _4ident * 40 + 56)); - } - } - Foo f; - f.a = _36.a; - f.b = _36.b; - f.c[0].d[0][0] = _36.c[0].d[0][0]; - f.c[0].d[0][1] = _36.c[0].d[0][1]; - f.c[0].d[0][2] = _36.c[0].d[0][2]; - f.c[0].d[0][3] = _36.c[0].d[0][3]; - f.c[0].d[1][0] = _36.c[0].d[1][0]; - f.c[0].d[1][1] = _36.c[0].d[1][1]; - f.c[0].d[1][2] = _36.c[0].d[1][2]; - f.c[0].d[1][3] = _36.c[0].d[1][3]; - f.c[0].baz[0].c = _36.c[0].baz[0].c; - f.c[0].baz[1].c = _36.c[0].baz[1].c; - f.c[1].d[0][0] = _36.c[1].d[0][0]; - f.c[1].d[0][1] = _36.c[1].d[0][1]; - f.c[1].d[0][2] = _36.c[1].d[0][2]; - f.c[1].d[0][3] = _36.c[1].d[0][3]; - f.c[1].d[1][0] = _36.c[1].d[1][0]; - f.c[1].d[1][1] = _36.c[1].d[1][1]; - f.c[1].d[1][2] = _36.c[1].d[1][2]; - f.c[1].d[1][3] = _36.c[1].d[1][3]; - f.c[1].baz[0].c = _36.c[1].baz[0].c; - f.c[1].baz[1].c = _36.c[1].baz[1].c; - f.c[2].d[0][0] = _36.c[2].d[0][0]; - f.c[2].d[0][1] = _36.c[2].d[0][1]; - f.c[2].d[0][2] = _36.c[2].d[0][2]; - f.c[2].d[0][3] = _36.c[2].d[0][3]; - f.c[2].d[1][0] = _36.c[2].d[1][0]; - f.c[2].d[1][1] = _36.c[2].d[1][1]; - f.c[2].d[1][2] = _36.c[2].d[1][2]; - f.c[2].d[1][3] = _36.c[2].d[1][3]; - f.c[2].baz[0].c = _36.c[2].baz[0].c; - f.c[2].baz[1].c = _36.c[2].baz[1].c; - f.c[3].d[0][0] = _36.c[3].d[0][0]; - f.c[3].d[0][1] = _36.c[3].d[0][1]; - f.c[3].d[0][2] = _36.c[3].d[0][2]; - f.c[3].d[0][3] = _36.c[3].d[0][3]; - f.c[3].d[1][0] = _36.c[3].d[1][0]; - f.c[3].d[1][1] = _36.c[3].d[1][1]; - f.c[3].d[1][2] = _36.c[3].d[1][2]; - f.c[3].d[1][3] = _36.c[3].d[1][3]; - f.c[3].baz[0].c = _36.c[3].baz[0].c; - f.c[3].baz[1].c = _36.c[3].baz[1].c; - f.c[4].d[0][0] = _36.c[4].d[0][0]; - f.c[4].d[0][1] = _36.c[4].d[0][1]; - f.c[4].d[0][2] = _36.c[4].d[0][2]; - f.c[4].d[0][3] = _36.c[4].d[0][3]; - f.c[4].d[1][0] = _36.c[4].d[1][0]; - f.c[4].d[1][1] = _36.c[4].d[1][1]; - f.c[4].d[1][2] = _36.c[4].d[1][2]; - f.c[4].d[1][3] = _36.c[4].d[1][3]; - f.c[4].baz[0].c = _36.c[4].baz[0].c; - f.c[4].baz[1].c = _36.c[4].baz[1].c; - float2 _229 = 1.0f.xx; - f.a = float2x2(f.a[0] + _229, f.a[1] + _229); - f.b += 2.0f.xx; - f.c[3].d[1][1] += 5.0f; - _31.Store(224, asuint(f.a[0].x)); - _31.Store(228, asuint(f.a[1].x)); - _31.Store(232, asuint(f.a[0].y)); - _31.Store(236, asuint(f.a[1].y)); - _31.Store2(240, asuint(f.b)); - _31.Store(248, asuint(f.c[0].d[0][0])); - _31.Store(252, asuint(f.c[0].d[0][1])); - _31.Store(256, asuint(f.c[0].d[0][2])); - _31.Store(260, asuint(f.c[0].d[0][3])); - _31.Store(264, asuint(f.c[0].d[1][0])); - _31.Store(268, asuint(f.c[0].d[1][1])); - _31.Store(272, asuint(f.c[0].d[1][2])); - _31.Store(276, asuint(f.c[0].d[1][3])); - _31.Store(280, asuint(f.c[0].baz[0].c)); - _31.Store(284, asuint(f.c[0].baz[1].c)); - _31.Store(288, asuint(f.c[1].d[0][0])); - _31.Store(292, asuint(f.c[1].d[0][1])); - _31.Store(296, asuint(f.c[1].d[0][2])); - _31.Store(300, asuint(f.c[1].d[0][3])); - _31.Store(304, asuint(f.c[1].d[1][0])); - _31.Store(308, asuint(f.c[1].d[1][1])); - _31.Store(312, asuint(f.c[1].d[1][2])); - _31.Store(316, asuint(f.c[1].d[1][3])); - _31.Store(320, asuint(f.c[1].baz[0].c)); - _31.Store(324, asuint(f.c[1].baz[1].c)); - _31.Store(328, asuint(f.c[2].d[0][0])); - _31.Store(332, asuint(f.c[2].d[0][1])); - _31.Store(336, asuint(f.c[2].d[0][2])); - _31.Store(340, asuint(f.c[2].d[0][3])); - _31.Store(344, asuint(f.c[2].d[1][0])); - _31.Store(348, asuint(f.c[2].d[1][1])); - _31.Store(352, asuint(f.c[2].d[1][2])); - _31.Store(356, asuint(f.c[2].d[1][3])); - _31.Store(360, asuint(f.c[2].baz[0].c)); - _31.Store(364, asuint(f.c[2].baz[1].c)); - _31.Store(368, asuint(f.c[3].d[0][0])); - _31.Store(372, asuint(f.c[3].d[0][1])); - _31.Store(376, asuint(f.c[3].d[0][2])); - _31.Store(380, asuint(f.c[3].d[0][3])); - _31.Store(384, asuint(f.c[3].d[1][0])); - _31.Store(388, asuint(f.c[3].d[1][1])); - _31.Store(392, asuint(f.c[3].d[1][2])); - _31.Store(396, asuint(f.c[3].d[1][3])); - _31.Store(400, asuint(f.c[3].baz[0].c)); - _31.Store(404, asuint(f.c[3].baz[1].c)); - _31.Store(408, asuint(f.c[4].d[0][0])); - _31.Store(412, asuint(f.c[4].d[0][1])); - _31.Store(416, asuint(f.c[4].d[0][2])); - _31.Store(420, asuint(f.c[4].d[0][3])); - _31.Store(424, asuint(f.c[4].d[1][0])); - _31.Store(428, asuint(f.c[4].d[1][1])); - _31.Store(432, asuint(f.c[4].d[1][2])); - _31.Store(436, asuint(f.c[4].d[1][3])); - _31.Store(440, asuint(f.c[4].baz[0].c)); - _31.Store(444, asuint(f.c[4].baz[1].c)); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/comp/access-chains.comp b/third_party/spirv-cross/reference/shaders-hlsl/comp/access-chains.comp deleted file mode 100644 index c748200b96..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/comp/access-chains.comp +++ /dev/null @@ -1,23 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -RWByteAddressBuffer wo : register(u1); -ByteAddressBuffer ro : register(t0); - -static uint3 gl_GlobalInvocationID; -struct SPIRV_Cross_Input -{ - uint3 gl_GlobalInvocationID : SV_DispatchThreadID; -}; - -void comp_main() -{ - wo.Store4(gl_GlobalInvocationID.x * 64 + 272, asuint(asfloat(ro.Load4(gl_GlobalInvocationID.x * 64 + 160)))); - wo.Store4(gl_GlobalInvocationID.x * 16 + 480, asuint(asfloat(ro.Load4(gl_GlobalInvocationID.x * 16 + 480)))); -} - -[numthreads(1, 1, 1)] -void main(SPIRV_Cross_Input stage_input) -{ - gl_GlobalInvocationID = stage_input.gl_GlobalInvocationID; - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/comp/access-chains.force-uav.comp b/third_party/spirv-cross/reference/shaders-hlsl/comp/access-chains.force-uav.comp deleted file mode 100644 index 97d046d89a..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/comp/access-chains.force-uav.comp +++ /dev/null @@ -1,23 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -RWByteAddressBuffer wo : register(u1); -RWByteAddressBuffer ro : register(u0); - -static uint3 gl_GlobalInvocationID; -struct SPIRV_Cross_Input -{ - uint3 gl_GlobalInvocationID : SV_DispatchThreadID; -}; - -void comp_main() -{ - wo.Store4(gl_GlobalInvocationID.x * 64 + 272, asuint(asfloat(ro.Load4(gl_GlobalInvocationID.x * 64 + 160)))); - wo.Store4(gl_GlobalInvocationID.x * 16 + 480, asuint(asfloat(ro.Load4(gl_GlobalInvocationID.x * 16 + 480)))); -} - -[numthreads(1, 1, 1)] -void main(SPIRV_Cross_Input stage_input) -{ - gl_GlobalInvocationID = stage_input.gl_GlobalInvocationID; - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/comp/address-buffers.comp b/third_party/spirv-cross/reference/shaders-hlsl/comp/address-buffers.comp deleted file mode 100644 index 7f1c7975bc..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/comp/address-buffers.comp +++ /dev/null @@ -1,17 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -RWByteAddressBuffer WriteOnly : register(u2); -ByteAddressBuffer ReadOnly : register(t0); -RWByteAddressBuffer ReadWrite : register(u1); - -void comp_main() -{ - WriteOnly.Store4(0, asuint(asfloat(ReadOnly.Load4(0)))); - ReadWrite.Store4(0, asuint(asfloat(ReadWrite.Load4(0)) + 10.0f.xxxx)); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/comp/atomic.comp b/third_party/spirv-cross/reference/shaders-hlsl/comp/atomic.comp deleted file mode 100644 index e6ff891e8c..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/comp/atomic.comp +++ /dev/null @@ -1,91 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -RWByteAddressBuffer ssbo : register(u2); -RWTexture2D uImage : register(u0); -RWTexture2D iImage : register(u1); - -groupshared int int_atomic; -groupshared uint uint_atomic; -groupshared int int_atomic_array[1]; -groupshared uint uint_atomic_array[1]; - -void comp_main() -{ - uint _19; - InterlockedAdd(uImage[int2(1, 5)], 1u, _19); - uint _27; - InterlockedAdd(uImage[int2(1, 5)], 1u, _27); - iImage[int2(1, 6)] = int(_27).x; - uint _32; - InterlockedOr(uImage[int2(1, 5)], 1u, _32); - uint _34; - InterlockedXor(uImage[int2(1, 5)], 1u, _34); - uint _36; - InterlockedAnd(uImage[int2(1, 5)], 1u, _36); - uint _38; - InterlockedMin(uImage[int2(1, 5)], 1u, _38); - uint _40; - InterlockedMax(uImage[int2(1, 5)], 1u, _40); - uint _44; - InterlockedCompareExchange(uImage[int2(1, 5)], 10u, 2u, _44); - int _47; - InterlockedAdd(iImage[int2(1, 6)], 1, _47); - int _49; - InterlockedOr(iImage[int2(1, 6)], 1, _49); - int _51; - InterlockedXor(iImage[int2(1, 6)], 1, _51); - int _53; - InterlockedAnd(iImage[int2(1, 6)], 1, _53); - int _55; - InterlockedMin(iImage[int2(1, 6)], 1, _55); - int _57; - InterlockedMax(iImage[int2(1, 6)], 1, _57); - int _61; - InterlockedCompareExchange(iImage[int2(1, 5)], 10, 2, _61); - uint _68; - ssbo.InterlockedAdd(0, 1u, _68); - uint _70; - ssbo.InterlockedOr(0, 1u, _70); - uint _72; - ssbo.InterlockedXor(0, 1u, _72); - uint _74; - ssbo.InterlockedAnd(0, 1u, _74); - uint _76; - ssbo.InterlockedMin(0, 1u, _76); - uint _78; - ssbo.InterlockedMax(0, 1u, _78); - uint _80; - ssbo.InterlockedExchange(0, 1u, _80); - uint _82; - ssbo.InterlockedCompareExchange(0, 10u, 2u, _82); - int _85; - ssbo.InterlockedAdd(4, 1, _85); - int _87; - ssbo.InterlockedOr(4, 1, _87); - int _89; - ssbo.InterlockedXor(4, 1, _89); - int _91; - ssbo.InterlockedAnd(4, 1, _91); - int _93; - ssbo.InterlockedMin(4, 1, _93); - int _95; - ssbo.InterlockedMax(4, 1, _95); - int _97; - ssbo.InterlockedExchange(4, 1, _97); - int _99; - ssbo.InterlockedCompareExchange(4, 10, 2, _99); - int _102; - InterlockedAdd(int_atomic, 10, _102); - uint _105; - InterlockedAdd(uint_atomic, 10u, _105); - int _110; - InterlockedAdd(int_atomic_array[0], 10, _110); - uint _115; - InterlockedAdd(uint_atomic_array[0], 10u, _115); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/comp/barriers.comp b/third_party/spirv-cross/reference/shaders-hlsl/comp/barriers.comp deleted file mode 100644 index 15af8ac11d..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/comp/barriers.comp +++ /dev/null @@ -1,81 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(4u, 1u, 1u); - -void barrier_shared() -{ - GroupMemoryBarrier(); -} - -void full_barrier() -{ - AllMemoryBarrier(); -} - -void image_barrier() -{ - DeviceMemoryBarrier(); -} - -void buffer_barrier() -{ - DeviceMemoryBarrier(); -} - -void group_barrier() -{ - AllMemoryBarrier(); -} - -void barrier_shared_exec() -{ - GroupMemoryBarrierWithGroupSync(); -} - -void full_barrier_exec() -{ - AllMemoryBarrier(); - GroupMemoryBarrierWithGroupSync(); -} - -void image_barrier_exec() -{ - DeviceMemoryBarrier(); - GroupMemoryBarrierWithGroupSync(); -} - -void buffer_barrier_exec() -{ - DeviceMemoryBarrier(); - GroupMemoryBarrierWithGroupSync(); -} - -void group_barrier_exec() -{ - AllMemoryBarrier(); - GroupMemoryBarrierWithGroupSync(); -} - -void exec_barrier() -{ - GroupMemoryBarrierWithGroupSync(); -} - -void comp_main() -{ - barrier_shared(); - full_barrier(); - image_barrier(); - buffer_barrier(); - group_barrier(); - barrier_shared_exec(); - full_barrier_exec(); - image_barrier_exec(); - buffer_barrier_exec(); - group_barrier_exec(); - exec_barrier(); -} - -[numthreads(4, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/comp/builtins.comp b/third_party/spirv-cross/reference/shaders-hlsl/comp/builtins.comp deleted file mode 100644 index 5d84883b2f..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/comp/builtins.comp +++ /dev/null @@ -1,32 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(8u, 4u, 2u); - -static uint3 gl_WorkGroupID; -static uint3 gl_LocalInvocationID; -static uint3 gl_GlobalInvocationID; -static uint gl_LocalInvocationIndex; -struct SPIRV_Cross_Input -{ - uint3 gl_WorkGroupID : SV_GroupID; - uint3 gl_LocalInvocationID : SV_GroupThreadID; - uint3 gl_GlobalInvocationID : SV_DispatchThreadID; - uint gl_LocalInvocationIndex : SV_GroupIndex; -}; - -void comp_main() -{ - uint3 local_id = gl_LocalInvocationID; - uint3 global_id = gl_GlobalInvocationID; - uint local_index = gl_LocalInvocationIndex; - uint3 work_group_size = gl_WorkGroupSize; - uint3 work_group_id = gl_WorkGroupID; -} - -[numthreads(8, 4, 2)] -void main(SPIRV_Cross_Input stage_input) -{ - gl_WorkGroupID = stage_input.gl_WorkGroupID; - gl_LocalInvocationID = stage_input.gl_LocalInvocationID; - gl_GlobalInvocationID = stage_input.gl_GlobalInvocationID; - gl_LocalInvocationIndex = stage_input.gl_LocalInvocationIndex; - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/comp/composite-array-initialization.comp b/third_party/spirv-cross/reference/shaders-hlsl/comp/composite-array-initialization.comp deleted file mode 100644 index dbd8cf704e..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/comp/composite-array-initialization.comp +++ /dev/null @@ -1,63 +0,0 @@ -struct Data -{ - float a; - float b; -}; - -#ifndef SPIRV_CROSS_CONSTANT_ID_0 -#define SPIRV_CROSS_CONSTANT_ID_0 4.0f -#endif -static const float X = SPIRV_CROSS_CONSTANT_ID_0; - -static const uint3 gl_WorkGroupSize = uint3(2u, 1u, 1u); - -static const Data _21 = { 1.0f, 2.0f }; -static const Data _24 = { 3.0f, 4.0f }; -static const Data _25[2] = { { 1.0f, 2.0f }, { 3.0f, 4.0f } }; -static const Data _30 = { 3.0f, 5.0f }; - -RWByteAddressBuffer _61 : register(u0); - -static uint3 gl_WorkGroupID; -static uint3 gl_LocalInvocationID; -static uint gl_LocalInvocationIndex; -struct SPIRV_Cross_Input -{ - uint3 gl_WorkGroupID : SV_GroupID; - uint3 gl_LocalInvocationID : SV_GroupThreadID; - uint gl_LocalInvocationIndex : SV_GroupIndex; -}; - -static Data data[2]; -static Data data2[2]; - -Data combine(Data a, Data b) -{ - Data _46 = { a.a + b.a, a.b + b.b }; - return _46; -} - -void comp_main() -{ - data = _25; - Data _28 = { X, 2.0f }; - Data _31[2] = { _28, _30 }; - data2 = _31; - if (gl_LocalInvocationIndex == 0u) - { - Data param = data[gl_LocalInvocationID.x]; - Data param_1 = data2[gl_LocalInvocationID.x]; - Data _79 = combine(param, param_1); - _61.Store(gl_WorkGroupID.x * 8 + 0, asuint(_79.a)); - _61.Store(gl_WorkGroupID.x * 8 + 4, asuint(_79.b)); - } -} - -[numthreads(2, 1, 1)] -void main(SPIRV_Cross_Input stage_input) -{ - gl_WorkGroupID = stage_input.gl_WorkGroupID; - gl_LocalInvocationID = stage_input.gl_LocalInvocationID; - gl_LocalInvocationIndex = stage_input.gl_LocalInvocationIndex; - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/comp/globallycoherent.comp b/third_party/spirv-cross/reference/shaders-hlsl/comp/globallycoherent.comp deleted file mode 100644 index 236f341e1a..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/comp/globallycoherent.comp +++ /dev/null @@ -1,20 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -globallycoherent RWByteAddressBuffer _29 : register(u3); -ByteAddressBuffer _33 : register(t2); -RWTexture2D uImageIn : register(u0); -globallycoherent RWTexture2D uImageOut : register(u1); - -void comp_main() -{ - int2 coord = int2(9, 7); - float4 indata = uImageIn[coord].xxxx; - uImageOut[coord] = indata.x; - _29.Store(0, asuint(asfloat(_33.Load(0)))); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/comp/image.comp b/third_party/spirv-cross/reference/shaders-hlsl/comp/image.comp deleted file mode 100644 index 89a9940942..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/comp/image.comp +++ /dev/null @@ -1,73 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -RWTexture2D uImageInF : register(u0); -RWTexture2D uImageOutF : register(u1); -RWTexture2D uImageInI : register(u2); -RWTexture2D uImageOutI : register(u3); -RWTexture2D uImageInU : register(u4); -RWTexture2D uImageOutU : register(u5); -RWBuffer uImageInBuffer : register(u6); -RWBuffer uImageOutBuffer : register(u7); -RWTexture2D uImageInF2 : register(u8); -RWTexture2D uImageOutF2 : register(u9); -RWTexture2D uImageInI2 : register(u10); -RWTexture2D uImageOutI2 : register(u11); -RWTexture2D uImageInU2 : register(u12); -RWTexture2D uImageOutU2 : register(u13); -RWBuffer uImageInBuffer2 : register(u14); -RWBuffer uImageOutBuffer2 : register(u15); -RWTexture2D uImageInF4 : register(u16); -RWTexture2D uImageOutF4 : register(u17); -RWTexture2D uImageInI4 : register(u18); -RWTexture2D uImageOutI4 : register(u19); -RWTexture2D uImageInU4 : register(u20); -RWTexture2D uImageOutU4 : register(u21); -RWBuffer uImageInBuffer4 : register(u22); -RWBuffer uImageOutBuffer4 : register(u23); -RWTexture2D uImageNoFmtF : register(u24); -RWTexture2D uImageNoFmtU : register(u25); -RWTexture2D uImageNoFmtI : register(u26); - -static uint3 gl_GlobalInvocationID; -struct SPIRV_Cross_Input -{ - uint3 gl_GlobalInvocationID : SV_DispatchThreadID; -}; - -void comp_main() -{ - float4 f = uImageInF[int2(gl_GlobalInvocationID.xy)].xxxx; - uImageOutF[int2(gl_GlobalInvocationID.xy)] = f.x; - int4 i = uImageInI[int2(gl_GlobalInvocationID.xy)].xxxx; - uImageOutI[int2(gl_GlobalInvocationID.xy)] = i.x; - uint4 u = uImageInU[int2(gl_GlobalInvocationID.xy)].xxxx; - uImageOutU[int2(gl_GlobalInvocationID.xy)] = u.x; - float4 b = uImageInBuffer[int(gl_GlobalInvocationID.x)].xxxx; - uImageOutBuffer[int(gl_GlobalInvocationID.x)] = b.x; - float4 f2 = uImageInF2[int2(gl_GlobalInvocationID.xy)].xyyy; - uImageOutF2[int2(gl_GlobalInvocationID.xy)] = f2.xy; - int4 i2 = uImageInI2[int2(gl_GlobalInvocationID.xy)].xyyy; - uImageOutI2[int2(gl_GlobalInvocationID.xy)] = i2.xy; - uint4 u2 = uImageInU2[int2(gl_GlobalInvocationID.xy)].xyyy; - uImageOutU2[int2(gl_GlobalInvocationID.xy)] = u2.xy; - float4 b2 = uImageInBuffer2[int(gl_GlobalInvocationID.x)].xyyy; - uImageOutBuffer2[int(gl_GlobalInvocationID.x)] = b2.xy; - float4 f4 = uImageInF4[int2(gl_GlobalInvocationID.xy)]; - uImageOutF4[int2(gl_GlobalInvocationID.xy)] = f4; - int4 i4 = uImageInI4[int2(gl_GlobalInvocationID.xy)]; - uImageOutI4[int2(gl_GlobalInvocationID.xy)] = i4; - uint4 u4 = uImageInU4[int2(gl_GlobalInvocationID.xy)]; - uImageOutU4[int2(gl_GlobalInvocationID.xy)] = u4; - float4 b4 = uImageInBuffer4[int(gl_GlobalInvocationID.x)]; - uImageOutBuffer4[int(gl_GlobalInvocationID.x)] = b4; - uImageNoFmtF[int2(gl_GlobalInvocationID.xy)] = b2; - uImageNoFmtU[int2(gl_GlobalInvocationID.xy)] = u4; - uImageNoFmtI[int2(gl_GlobalInvocationID.xy)] = i4; -} - -[numthreads(1, 1, 1)] -void main(SPIRV_Cross_Input stage_input) -{ - gl_GlobalInvocationID = stage_input.gl_GlobalInvocationID; - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/comp/image.nonwritable-uav-texture.comp b/third_party/spirv-cross/reference/shaders-hlsl/comp/image.nonwritable-uav-texture.comp deleted file mode 100644 index 1e11b08777..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/comp/image.nonwritable-uav-texture.comp +++ /dev/null @@ -1,73 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -Texture2D uImageInF : register(t0); -RWTexture2D uImageOutF : register(u1); -Texture2D uImageInI : register(t2); -RWTexture2D uImageOutI : register(u3); -Texture2D uImageInU : register(t4); -RWTexture2D uImageOutU : register(u5); -Buffer uImageInBuffer : register(t6); -RWBuffer uImageOutBuffer : register(u7); -Texture2D uImageInF2 : register(t8); -RWTexture2D uImageOutF2 : register(u9); -Texture2D uImageInI2 : register(t10); -RWTexture2D uImageOutI2 : register(u11); -Texture2D uImageInU2 : register(t12); -RWTexture2D uImageOutU2 : register(u13); -Buffer uImageInBuffer2 : register(t14); -RWBuffer uImageOutBuffer2 : register(u15); -Texture2D uImageInF4 : register(t16); -RWTexture2D uImageOutF4 : register(u17); -Texture2D uImageInI4 : register(t18); -RWTexture2D uImageOutI4 : register(u19); -Texture2D uImageInU4 : register(t20); -RWTexture2D uImageOutU4 : register(u21); -Buffer uImageInBuffer4 : register(t22); -RWBuffer uImageOutBuffer4 : register(u23); -RWTexture2D uImageNoFmtF : register(u24); -RWTexture2D uImageNoFmtU : register(u25); -RWTexture2D uImageNoFmtI : register(u26); - -static uint3 gl_GlobalInvocationID; -struct SPIRV_Cross_Input -{ - uint3 gl_GlobalInvocationID : SV_DispatchThreadID; -}; - -void comp_main() -{ - float4 f = uImageInF[int2(gl_GlobalInvocationID.xy)]; - uImageOutF[int2(gl_GlobalInvocationID.xy)] = f.x; - int4 i = uImageInI[int2(gl_GlobalInvocationID.xy)]; - uImageOutI[int2(gl_GlobalInvocationID.xy)] = i.x; - uint4 u = uImageInU[int2(gl_GlobalInvocationID.xy)]; - uImageOutU[int2(gl_GlobalInvocationID.xy)] = u.x; - float4 b = uImageInBuffer[int(gl_GlobalInvocationID.x)]; - uImageOutBuffer[int(gl_GlobalInvocationID.x)] = b.x; - float4 f2 = uImageInF2[int2(gl_GlobalInvocationID.xy)]; - uImageOutF2[int2(gl_GlobalInvocationID.xy)] = f2.xy; - int4 i2 = uImageInI2[int2(gl_GlobalInvocationID.xy)]; - uImageOutI2[int2(gl_GlobalInvocationID.xy)] = i2.xy; - uint4 u2 = uImageInU2[int2(gl_GlobalInvocationID.xy)]; - uImageOutU2[int2(gl_GlobalInvocationID.xy)] = u2.xy; - float4 b2 = uImageInBuffer2[int(gl_GlobalInvocationID.x)]; - uImageOutBuffer2[int(gl_GlobalInvocationID.x)] = b2.xy; - float4 f4 = uImageInF4[int2(gl_GlobalInvocationID.xy)]; - uImageOutF4[int2(gl_GlobalInvocationID.xy)] = f4; - int4 i4 = uImageInI4[int2(gl_GlobalInvocationID.xy)]; - uImageOutI4[int2(gl_GlobalInvocationID.xy)] = i4; - uint4 u4 = uImageInU4[int2(gl_GlobalInvocationID.xy)]; - uImageOutU4[int2(gl_GlobalInvocationID.xy)] = u4; - float4 b4 = uImageInBuffer4[int(gl_GlobalInvocationID.x)]; - uImageOutBuffer4[int(gl_GlobalInvocationID.x)] = b4; - uImageNoFmtF[int2(gl_GlobalInvocationID.xy)] = b2; - uImageNoFmtU[int2(gl_GlobalInvocationID.xy)] = u4; - uImageNoFmtI[int2(gl_GlobalInvocationID.xy)] = i4; -} - -[numthreads(1, 1, 1)] -void main(SPIRV_Cross_Input stage_input) -{ - gl_GlobalInvocationID = stage_input.gl_GlobalInvocationID; - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/comp/inverse.comp b/third_party/spirv-cross/reference/shaders-hlsl/comp/inverse.comp deleted file mode 100644 index 698f647cec..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/comp/inverse.comp +++ /dev/null @@ -1,124 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -RWByteAddressBuffer _15 : register(u0); -ByteAddressBuffer _20 : register(t1); - -// Returns the inverse of a matrix, by using the algorithm of calculating the classical -// adjoint and dividing by the determinant. The contents of the matrix are changed. -float2x2 spvInverse(float2x2 m) -{ - float2x2 adj; // The adjoint matrix (inverse after dividing by determinant) - - // Create the transpose of the cofactors, as the classical adjoint of the matrix. - adj[0][0] = m[1][1]; - adj[0][1] = -m[0][1]; - - adj[1][0] = -m[1][0]; - adj[1][1] = m[0][0]; - - // Calculate the determinant as a combination of the cofactors of the first row. - float det = (adj[0][0] * m[0][0]) + (adj[0][1] * m[1][0]); - - // Divide the classical adjoint matrix by the determinant. - // If determinant is zero, matrix is not invertable, so leave it unchanged. - return (det != 0.0f) ? (adj * (1.0f / det)) : m; -} - -// Returns the determinant of a 2x2 matrix. -float spvDet2x2(float a1, float a2, float b1, float b2) -{ - return a1 * b2 - b1 * a2; -} - -// Returns the inverse of a matrix, by using the algorithm of calculating the classical -// adjoint and dividing by the determinant. The contents of the matrix are changed. -float3x3 spvInverse(float3x3 m) -{ - float3x3 adj; // The adjoint matrix (inverse after dividing by determinant) - - // Create the transpose of the cofactors, as the classical adjoint of the matrix. - adj[0][0] = spvDet2x2(m[1][1], m[1][2], m[2][1], m[2][2]); - adj[0][1] = -spvDet2x2(m[0][1], m[0][2], m[2][1], m[2][2]); - adj[0][2] = spvDet2x2(m[0][1], m[0][2], m[1][1], m[1][2]); - - adj[1][0] = -spvDet2x2(m[1][0], m[1][2], m[2][0], m[2][2]); - adj[1][1] = spvDet2x2(m[0][0], m[0][2], m[2][0], m[2][2]); - adj[1][2] = -spvDet2x2(m[0][0], m[0][2], m[1][0], m[1][2]); - - adj[2][0] = spvDet2x2(m[1][0], m[1][1], m[2][0], m[2][1]); - adj[2][1] = -spvDet2x2(m[0][0], m[0][1], m[2][0], m[2][1]); - adj[2][2] = spvDet2x2(m[0][0], m[0][1], m[1][0], m[1][1]); - - // Calculate the determinant as a combination of the cofactors of the first row. - float det = (adj[0][0] * m[0][0]) + (adj[0][1] * m[1][0]) + (adj[0][2] * m[2][0]); - - // Divide the classical adjoint matrix by the determinant. - // If determinant is zero, matrix is not invertable, so leave it unchanged. - return (det != 0.0f) ? (adj * (1.0f / det)) : m; -} - -// Returns the determinant of a 3x3 matrix. -float spvDet3x3(float a1, float a2, float a3, float b1, float b2, float b3, float c1, float c2, float c3) -{ - return a1 * spvDet2x2(b2, b3, c2, c3) - b1 * spvDet2x2(a2, a3, c2, c3) + c1 * spvDet2x2(a2, a3, b2, b3); -} - -// Returns the inverse of a matrix, by using the algorithm of calculating the classical -// adjoint and dividing by the determinant. The contents of the matrix are changed. -float4x4 spvInverse(float4x4 m) -{ - float4x4 adj; // The adjoint matrix (inverse after dividing by determinant) - - // Create the transpose of the cofactors, as the classical adjoint of the matrix. - adj[0][0] = spvDet3x3(m[1][1], m[1][2], m[1][3], m[2][1], m[2][2], m[2][3], m[3][1], m[3][2], m[3][3]); - adj[0][1] = -spvDet3x3(m[0][1], m[0][2], m[0][3], m[2][1], m[2][2], m[2][3], m[3][1], m[3][2], m[3][3]); - adj[0][2] = spvDet3x3(m[0][1], m[0][2], m[0][3], m[1][1], m[1][2], m[1][3], m[3][1], m[3][2], m[3][3]); - adj[0][3] = -spvDet3x3(m[0][1], m[0][2], m[0][3], m[1][1], m[1][2], m[1][3], m[2][1], m[2][2], m[2][3]); - - adj[1][0] = -spvDet3x3(m[1][0], m[1][2], m[1][3], m[2][0], m[2][2], m[2][3], m[3][0], m[3][2], m[3][3]); - adj[1][1] = spvDet3x3(m[0][0], m[0][2], m[0][3], m[2][0], m[2][2], m[2][3], m[3][0], m[3][2], m[3][3]); - adj[1][2] = -spvDet3x3(m[0][0], m[0][2], m[0][3], m[1][0], m[1][2], m[1][3], m[3][0], m[3][2], m[3][3]); - adj[1][3] = spvDet3x3(m[0][0], m[0][2], m[0][3], m[1][0], m[1][2], m[1][3], m[2][0], m[2][2], m[2][3]); - - adj[2][0] = spvDet3x3(m[1][0], m[1][1], m[1][3], m[2][0], m[2][1], m[2][3], m[3][0], m[3][1], m[3][3]); - adj[2][1] = -spvDet3x3(m[0][0], m[0][1], m[0][3], m[2][0], m[2][1], m[2][3], m[3][0], m[3][1], m[3][3]); - adj[2][2] = spvDet3x3(m[0][0], m[0][1], m[0][3], m[1][0], m[1][1], m[1][3], m[3][0], m[3][1], m[3][3]); - adj[2][3] = -spvDet3x3(m[0][0], m[0][1], m[0][3], m[1][0], m[1][1], m[1][3], m[2][0], m[2][1], m[2][3]); - - adj[3][0] = -spvDet3x3(m[1][0], m[1][1], m[1][2], m[2][0], m[2][1], m[2][2], m[3][0], m[3][1], m[3][2]); - adj[3][1] = spvDet3x3(m[0][0], m[0][1], m[0][2], m[2][0], m[2][1], m[2][2], m[3][0], m[3][1], m[3][2]); - adj[3][2] = -spvDet3x3(m[0][0], m[0][1], m[0][2], m[1][0], m[1][1], m[1][2], m[3][0], m[3][1], m[3][2]); - adj[3][3] = spvDet3x3(m[0][0], m[0][1], m[0][2], m[1][0], m[1][1], m[1][2], m[2][0], m[2][1], m[2][2]); - - // Calculate the determinant as a combination of the cofactors of the first row. - float det = (adj[0][0] * m[0][0]) + (adj[0][1] * m[1][0]) + (adj[0][2] * m[2][0]) + (adj[0][3] * m[3][0]); - - // Divide the classical adjoint matrix by the determinant. - // If determinant is zero, matrix is not invertable, so leave it unchanged. - return (det != 0.0f) ? (adj * (1.0f / det)) : m; -} - -void comp_main() -{ - float2x2 _23 = asfloat(uint2x2(_20.Load2(0), _20.Load2(8))); - float2x2 _24 = spvInverse(_23); - _15.Store2(0, asuint(_24[0])); - _15.Store2(8, asuint(_24[1])); - float3x3 _29 = asfloat(uint3x3(_20.Load3(16), _20.Load3(32), _20.Load3(48))); - float3x3 _30 = spvInverse(_29); - _15.Store3(16, asuint(_30[0])); - _15.Store3(32, asuint(_30[1])); - _15.Store3(48, asuint(_30[2])); - float4x4 _35 = asfloat(uint4x4(_20.Load4(64), _20.Load4(80), _20.Load4(96), _20.Load4(112))); - float4x4 _36 = spvInverse(_35); - _15.Store4(64, asuint(_36[0])); - _15.Store4(80, asuint(_36[1])); - _15.Store4(96, asuint(_36[2])); - _15.Store4(112, asuint(_36[3])); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/comp/num-workgroups-alone.comp b/third_party/spirv-cross/reference/shaders-hlsl/comp/num-workgroups-alone.comp deleted file mode 100644 index dc87dc84f8..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/comp/num-workgroups-alone.comp +++ /dev/null @@ -1,19 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -RWByteAddressBuffer _10 : register(u0); -cbuffer SPIRV_Cross_NumWorkgroups : register(b0) -{ - uint3 SPIRV_Cross_NumWorkgroups_1_count : packoffset(c0); -}; - - -void comp_main() -{ - _10.Store3(0, SPIRV_Cross_NumWorkgroups_1_count); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/comp/num-workgroups-with-builtins.comp b/third_party/spirv-cross/reference/shaders-hlsl/comp/num-workgroups-with-builtins.comp deleted file mode 100644 index 2e2ad55fdd..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/comp/num-workgroups-with-builtins.comp +++ /dev/null @@ -1,26 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -RWByteAddressBuffer _10 : register(u0); -cbuffer SPIRV_Cross_NumWorkgroups : register(b0) -{ - uint3 SPIRV_Cross_NumWorkgroups_1_count : packoffset(c0); -}; - - -static uint3 gl_WorkGroupID; -struct SPIRV_Cross_Input -{ - uint3 gl_WorkGroupID : SV_GroupID; -}; - -void comp_main() -{ - _10.Store3(0, SPIRV_Cross_NumWorkgroups_1_count + gl_WorkGroupID); -} - -[numthreads(1, 1, 1)] -void main(SPIRV_Cross_Input stage_input) -{ - gl_WorkGroupID = stage_input.gl_WorkGroupID; - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/comp/outer-product.comp b/third_party/spirv-cross/reference/shaders-hlsl/comp/outer-product.comp deleted file mode 100644 index e58c02fe0b..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/comp/outer-product.comp +++ /dev/null @@ -1,50 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -RWByteAddressBuffer _21 : register(u0); -ByteAddressBuffer _26 : register(t1); - -void comp_main() -{ - float2x2 _32 = float2x2(asfloat(_26.Load2(0)) * asfloat(_26.Load2(0)).x, asfloat(_26.Load2(0)) * asfloat(_26.Load2(0)).y); - _21.Store2(0, asuint(_32[0])); - _21.Store2(8, asuint(_32[1])); - float2x3 _41 = float2x3(asfloat(_26.Load3(16)) * asfloat(_26.Load2(0)).x, asfloat(_26.Load3(16)) * asfloat(_26.Load2(0)).y); - _21.Store3(16, asuint(_41[0])); - _21.Store3(32, asuint(_41[1])); - float2x4 _50 = float2x4(asfloat(_26.Load4(32)) * asfloat(_26.Load2(0)).x, asfloat(_26.Load4(32)) * asfloat(_26.Load2(0)).y); - _21.Store4(48, asuint(_50[0])); - _21.Store4(64, asuint(_50[1])); - float3x2 _58 = float3x2(asfloat(_26.Load2(0)) * asfloat(_26.Load3(16)).x, asfloat(_26.Load2(0)) * asfloat(_26.Load3(16)).y, asfloat(_26.Load2(0)) * asfloat(_26.Load3(16)).z); - _21.Store2(80, asuint(_58[0])); - _21.Store2(88, asuint(_58[1])); - _21.Store2(96, asuint(_58[2])); - float3x3 _66 = float3x3(asfloat(_26.Load3(16)) * asfloat(_26.Load3(16)).x, asfloat(_26.Load3(16)) * asfloat(_26.Load3(16)).y, asfloat(_26.Load3(16)) * asfloat(_26.Load3(16)).z); - _21.Store3(112, asuint(_66[0])); - _21.Store3(128, asuint(_66[1])); - _21.Store3(144, asuint(_66[2])); - float3x4 _74 = float3x4(asfloat(_26.Load4(32)) * asfloat(_26.Load3(16)).x, asfloat(_26.Load4(32)) * asfloat(_26.Load3(16)).y, asfloat(_26.Load4(32)) * asfloat(_26.Load3(16)).z); - _21.Store4(160, asuint(_74[0])); - _21.Store4(176, asuint(_74[1])); - _21.Store4(192, asuint(_74[2])); - float4x2 _82 = float4x2(asfloat(_26.Load2(0)) * asfloat(_26.Load4(32)).x, asfloat(_26.Load2(0)) * asfloat(_26.Load4(32)).y, asfloat(_26.Load2(0)) * asfloat(_26.Load4(32)).z, asfloat(_26.Load2(0)) * asfloat(_26.Load4(32)).w); - _21.Store2(208, asuint(_82[0])); - _21.Store2(216, asuint(_82[1])); - _21.Store2(224, asuint(_82[2])); - _21.Store2(232, asuint(_82[3])); - float4x3 _90 = float4x3(asfloat(_26.Load3(16)) * asfloat(_26.Load4(32)).x, asfloat(_26.Load3(16)) * asfloat(_26.Load4(32)).y, asfloat(_26.Load3(16)) * asfloat(_26.Load4(32)).z, asfloat(_26.Load3(16)) * asfloat(_26.Load4(32)).w); - _21.Store3(240, asuint(_90[0])); - _21.Store3(256, asuint(_90[1])); - _21.Store3(272, asuint(_90[2])); - _21.Store3(288, asuint(_90[3])); - float4x4 _98 = float4x4(asfloat(_26.Load4(32)) * asfloat(_26.Load4(32)).x, asfloat(_26.Load4(32)) * asfloat(_26.Load4(32)).y, asfloat(_26.Load4(32)) * asfloat(_26.Load4(32)).z, asfloat(_26.Load4(32)) * asfloat(_26.Load4(32)).w); - _21.Store4(304, asuint(_98[0])); - _21.Store4(320, asuint(_98[1])); - _21.Store4(336, asuint(_98[2])); - _21.Store4(352, asuint(_98[3])); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/comp/rmw-matrix.comp b/third_party/spirv-cross/reference/shaders-hlsl/comp/rmw-matrix.comp deleted file mode 100644 index 30ac03f84f..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/comp/rmw-matrix.comp +++ /dev/null @@ -1,22 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -RWByteAddressBuffer _11 : register(u0); - -void comp_main() -{ - _11.Store(0, asuint(asfloat(_11.Load(0)) * asfloat(_11.Load(96)))); - _11.Store4(16, asuint(asfloat(_11.Load4(16)) * asfloat(_11.Load4(112)))); - float4x4 _35 = asfloat(uint4x4(_11.Load4(128), _11.Load4(144), _11.Load4(160), _11.Load4(176))); - float4x4 _37 = asfloat(uint4x4(_11.Load4(32), _11.Load4(48), _11.Load4(64), _11.Load4(80))); - float4x4 _38 = mul(_35, _37); - _11.Store4(32, asuint(_38[0])); - _11.Store4(48, asuint(_38[1])); - _11.Store4(64, asuint(_38[2])); - _11.Store4(80, asuint(_38[3])); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/comp/rwbuffer-matrix.comp b/third_party/spirv-cross/reference/shaders-hlsl/comp/rwbuffer-matrix.comp deleted file mode 100644 index 197c9a9513..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/comp/rwbuffer-matrix.comp +++ /dev/null @@ -1,139 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -RWByteAddressBuffer _28 : register(u0); -cbuffer UBO : register(b1) -{ - int _68_index0 : packoffset(c0); - int _68_index1 : packoffset(c0.y); -}; - - -void row_to_col() -{ - float4x4 _55 = asfloat(uint4x4(_28.Load(64), _28.Load(80), _28.Load(96), _28.Load(112), _28.Load(68), _28.Load(84), _28.Load(100), _28.Load(116), _28.Load(72), _28.Load(88), _28.Load(104), _28.Load(120), _28.Load(76), _28.Load(92), _28.Load(108), _28.Load(124))); - _28.Store4(0, asuint(_55[0])); - _28.Store4(16, asuint(_55[1])); - _28.Store4(32, asuint(_55[2])); - _28.Store4(48, asuint(_55[3])); - float2x2 _58 = asfloat(uint2x2(_28.Load(144), _28.Load(152), _28.Load(148), _28.Load(156))); - _28.Store2(128, asuint(_58[0])); - _28.Store2(136, asuint(_58[1])); - float2x3 _61 = asfloat(uint2x3(_28.Load(192), _28.Load(200), _28.Load(208), _28.Load(196), _28.Load(204), _28.Load(212))); - _28.Store3(160, asuint(_61[0])); - _28.Store3(176, asuint(_61[1])); - float3x2 _64 = asfloat(uint3x2(_28.Load(240), _28.Load(256), _28.Load(244), _28.Load(260), _28.Load(248), _28.Load(264))); - _28.Store2(216, asuint(_64[0])); - _28.Store2(224, asuint(_64[1])); - _28.Store2(232, asuint(_64[2])); -} - -void col_to_row() -{ - float4x4 _34 = asfloat(uint4x4(_28.Load4(0), _28.Load4(16), _28.Load4(32), _28.Load4(48))); - _28.Store(64, asuint(_34[0].x)); - _28.Store(68, asuint(_34[1].x)); - _28.Store(72, asuint(_34[2].x)); - _28.Store(76, asuint(_34[3].x)); - _28.Store(80, asuint(_34[0].y)); - _28.Store(84, asuint(_34[1].y)); - _28.Store(88, asuint(_34[2].y)); - _28.Store(92, asuint(_34[3].y)); - _28.Store(96, asuint(_34[0].z)); - _28.Store(100, asuint(_34[1].z)); - _28.Store(104, asuint(_34[2].z)); - _28.Store(108, asuint(_34[3].z)); - _28.Store(112, asuint(_34[0].w)); - _28.Store(116, asuint(_34[1].w)); - _28.Store(120, asuint(_34[2].w)); - _28.Store(124, asuint(_34[3].w)); - float2x2 _40 = asfloat(uint2x2(_28.Load2(128), _28.Load2(136))); - _28.Store(144, asuint(_40[0].x)); - _28.Store(148, asuint(_40[1].x)); - _28.Store(152, asuint(_40[0].y)); - _28.Store(156, asuint(_40[1].y)); - float2x3 _46 = asfloat(uint2x3(_28.Load3(160), _28.Load3(176))); - _28.Store(192, asuint(_46[0].x)); - _28.Store(196, asuint(_46[1].x)); - _28.Store(200, asuint(_46[0].y)); - _28.Store(204, asuint(_46[1].y)); - _28.Store(208, asuint(_46[0].z)); - _28.Store(212, asuint(_46[1].z)); - float3x2 _52 = asfloat(uint3x2(_28.Load2(216), _28.Load2(224), _28.Load2(232))); - _28.Store(240, asuint(_52[0].x)); - _28.Store(244, asuint(_52[1].x)); - _28.Store(248, asuint(_52[2].x)); - _28.Store(256, asuint(_52[0].y)); - _28.Store(260, asuint(_52[1].y)); - _28.Store(264, asuint(_52[2].y)); -} - -void write_dynamic_index_row() -{ - _28.Store(_68_index0 * 4 + _68_index1 * 16 + 64, asuint(1.0f)); - _28.Store(_68_index0 * 4 + _68_index1 * 8 + 144, asuint(2.0f)); - _28.Store(_68_index0 * 4 + _68_index1 * 8 + 192, asuint(3.0f)); - _28.Store(_68_index0 * 4 + _68_index1 * 16 + 240, asuint(4.0f)); - _28.Store(_68_index0 * 4 + 64, asuint(1.0f.x)); - _28.Store(_68_index0 * 4 + 80, asuint(1.0f.xxxx.y)); - _28.Store(_68_index0 * 4 + 96, asuint(1.0f.xxxx.z)); - _28.Store(_68_index0 * 4 + 112, asuint(1.0f.xxxx.w)); - _28.Store(_68_index0 * 4 + 144, asuint(2.0f.x)); - _28.Store(_68_index0 * 4 + 152, asuint(2.0f.xx.y)); - _28.Store(_68_index0 * 4 + 192, asuint(3.0f.x)); - _28.Store(_68_index0 * 4 + 200, asuint(3.0f.xxx.y)); - _28.Store(_68_index0 * 4 + 208, asuint(3.0f.xxx.z)); - _28.Store(_68_index0 * 4 + 240, asuint(4.0f.x)); - _28.Store(_68_index0 * 4 + 256, asuint(4.0f.xx.y)); -} - -void write_dynamic_index_col() -{ - _28.Store(_68_index0 * 16 + _68_index1 * 4 + 0, asuint(1.0f)); - _28.Store(_68_index0 * 8 + _68_index1 * 4 + 128, asuint(2.0f)); - _28.Store(_68_index0 * 16 + _68_index1 * 4 + 160, asuint(3.0f)); - _28.Store(_68_index0 * 8 + _68_index1 * 4 + 216, asuint(4.0f)); - _28.Store4(_68_index0 * 16 + 0, asuint(1.0f.xxxx)); - _28.Store2(_68_index0 * 8 + 128, asuint(2.0f.xx)); - _28.Store3(_68_index0 * 16 + 160, asuint(3.0f.xxx)); - _28.Store2(_68_index0 * 8 + 216, asuint(4.0f.xx)); -} - -void read_dynamic_index_row() -{ - float a0 = asfloat(_28.Load(_68_index0 * 4 + _68_index1 * 16 + 64)); - float a1 = asfloat(_28.Load(_68_index0 * 4 + _68_index1 * 8 + 144)); - float a2 = asfloat(_28.Load(_68_index0 * 4 + _68_index1 * 8 + 192)); - float a3 = asfloat(_28.Load(_68_index0 * 4 + _68_index1 * 16 + 240)); - float4 v0 = asfloat(uint4(_28.Load(_68_index0 * 4 + 64), _28.Load(_68_index0 * 4 + 80), _28.Load(_68_index0 * 4 + 96), _28.Load(_68_index0 * 4 + 112))); - float2 v1 = asfloat(uint2(_28.Load(_68_index0 * 4 + 144), _28.Load(_68_index0 * 4 + 152))); - float3 v2 = asfloat(uint3(_28.Load(_68_index0 * 4 + 192), _28.Load(_68_index0 * 4 + 200), _28.Load(_68_index0 * 4 + 208))); - float2 v3 = asfloat(uint2(_28.Load(_68_index0 * 4 + 240), _28.Load(_68_index0 * 4 + 256))); -} - -void read_dynamic_index_col() -{ - float a0 = asfloat(_28.Load(_68_index0 * 16 + _68_index1 * 4 + 0)); - float a1 = asfloat(_28.Load(_68_index0 * 8 + _68_index1 * 4 + 128)); - float a2 = asfloat(_28.Load(_68_index0 * 16 + _68_index1 * 4 + 160)); - float a3 = asfloat(_28.Load(_68_index0 * 8 + _68_index1 * 4 + 216)); - float4 v0 = asfloat(_28.Load4(_68_index0 * 16 + 0)); - float2 v1 = asfloat(_28.Load2(_68_index0 * 8 + 128)); - float3 v2 = asfloat(_28.Load3(_68_index0 * 16 + 160)); - float2 v3 = asfloat(_28.Load2(_68_index0 * 8 + 216)); -} - -void comp_main() -{ - row_to_col(); - col_to_row(); - write_dynamic_index_row(); - write_dynamic_index_col(); - read_dynamic_index_row(); - read_dynamic_index_col(); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/comp/scalar-std450-distance-length-normalize.comp b/third_party/spirv-cross/reference/shaders-hlsl/comp/scalar-std450-distance-length-normalize.comp deleted file mode 100644 index db2bbe9698..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/comp/scalar-std450-distance-length-normalize.comp +++ /dev/null @@ -1,16 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -RWByteAddressBuffer _9 : register(u0); - -void comp_main() -{ - _9.Store(8, asuint(distance(asfloat(_9.Load(0)), asfloat(_9.Load(4))))); - _9.Store(12, asuint(length(asfloat(_9.Load(0))))); - _9.Store(16, asuint(sign(asfloat(_9.Load(0))))); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/comp/shared.comp b/third_party/spirv-cross/reference/shaders-hlsl/comp/shared.comp deleted file mode 100644 index 5d12900382..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/comp/shared.comp +++ /dev/null @@ -1,31 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(4u, 1u, 1u); - -ByteAddressBuffer _22 : register(t0); -RWByteAddressBuffer _44 : register(u1); - -static uint3 gl_GlobalInvocationID; -static uint gl_LocalInvocationIndex; -struct SPIRV_Cross_Input -{ - uint3 gl_GlobalInvocationID : SV_DispatchThreadID; - uint gl_LocalInvocationIndex : SV_GroupIndex; -}; - -groupshared float sShared[4]; - -void comp_main() -{ - uint ident = gl_GlobalInvocationID.x; - float idata = asfloat(_22.Load(ident * 4 + 0)); - sShared[gl_LocalInvocationIndex] = idata; - GroupMemoryBarrierWithGroupSync(); - _44.Store(ident * 4 + 0, asuint(sShared[(4u - gl_LocalInvocationIndex) - 1u])); -} - -[numthreads(4, 1, 1)] -void main(SPIRV_Cross_Input stage_input) -{ - gl_GlobalInvocationID = stage_input.gl_GlobalInvocationID; - gl_LocalInvocationIndex = stage_input.gl_LocalInvocationIndex; - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/comp/spec-constant-op-member-array.comp b/third_party/spirv-cross/reference/shaders-hlsl/comp/spec-constant-op-member-array.comp deleted file mode 100644 index 4e7c5e6167..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/comp/spec-constant-op-member-array.comp +++ /dev/null @@ -1,51 +0,0 @@ -#ifndef SPIRV_CROSS_CONSTANT_ID_0 -#define SPIRV_CROSS_CONSTANT_ID_0 100 -#endif -static const int a = SPIRV_CROSS_CONSTANT_ID_0; -#ifndef SPIRV_CROSS_CONSTANT_ID_1 -#define SPIRV_CROSS_CONSTANT_ID_1 200 -#endif -static const int b = SPIRV_CROSS_CONSTANT_ID_1; - -struct A -{ - int member0[a]; - int member1[b]; -}; - -struct B -{ - int member0[b]; - int member1[a]; -}; - -#ifndef SPIRV_CROSS_CONSTANT_ID_2 -#define SPIRV_CROSS_CONSTANT_ID_2 300 -#endif -static const int c = SPIRV_CROSS_CONSTANT_ID_2; -static const int d = (c + 50); -#ifndef SPIRV_CROSS_CONSTANT_ID_3 -#define SPIRV_CROSS_CONSTANT_ID_3 400 -#endif -static const int e = SPIRV_CROSS_CONSTANT_ID_3; -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -RWByteAddressBuffer _22 : register(u0); - -static uint3 gl_GlobalInvocationID; -struct SPIRV_Cross_Input -{ - uint3 gl_GlobalInvocationID : SV_DispatchThreadID; -}; - -void comp_main() -{ - _22.Store(gl_GlobalInvocationID.x * 4 + 2800, uint(int(_22.Load(gl_GlobalInvocationID.x * 4 + 2800)) + (int(_22.Load(gl_GlobalInvocationID.x * 4 + 2400)) + e))); -} - -[numthreads(1, 1, 1)] -void main(SPIRV_Cross_Input stage_input) -{ - gl_GlobalInvocationID = stage_input.gl_GlobalInvocationID; - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/comp/spec-constant-work-group-size.comp b/third_party/spirv-cross/reference/shaders-hlsl/comp/spec-constant-work-group-size.comp deleted file mode 100644 index 55ebf32bb6..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/comp/spec-constant-work-group-size.comp +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef SPIRV_CROSS_CONSTANT_ID_1 -#define SPIRV_CROSS_CONSTANT_ID_1 2 -#endif -static const int b = SPIRV_CROSS_CONSTANT_ID_1; -#ifndef SPIRV_CROSS_CONSTANT_ID_0 -#define SPIRV_CROSS_CONSTANT_ID_0 1 -#endif -static const int a = SPIRV_CROSS_CONSTANT_ID_0; -static const uint _26 = (uint(a) + 0u); -#ifndef SPIRV_CROSS_CONSTANT_ID_10 -#define SPIRV_CROSS_CONSTANT_ID_10 1u -#endif -static const uint _27 = SPIRV_CROSS_CONSTANT_ID_10; -static const uint3 gl_WorkGroupSize = uint3(_27, 20u, 1u); -static const uint _32 = gl_WorkGroupSize.x; -static const uint _33 = (_26 + _32); -static const uint _34 = gl_WorkGroupSize.y; -static const uint _35 = (_33 + _34); -static const int _42 = (1 - a); - -RWByteAddressBuffer _23 : register(u0); - -static uint3 gl_GlobalInvocationID; -struct SPIRV_Cross_Input -{ - uint3 gl_GlobalInvocationID : SV_DispatchThreadID; -}; - -void comp_main() -{ - int spec_const_array_size[b]; - spec_const_array_size[0] = 10; - spec_const_array_size[1] = 40; - spec_const_array_size[a] = a; - _23.Store((_35 + gl_GlobalInvocationID.x) * 4 + 0, uint(b + spec_const_array_size[_42])); -} - -[numthreads(SPIRV_CROSS_CONSTANT_ID_10, 20, 1)] -void main(SPIRV_Cross_Input stage_input) -{ - gl_GlobalInvocationID = stage_input.gl_GlobalInvocationID; - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/comp/ssbo-array-length.comp b/third_party/spirv-cross/reference/shaders-hlsl/comp/ssbo-array-length.comp deleted file mode 100644 index 82657cacfc..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/comp/ssbo-array-length.comp +++ /dev/null @@ -1,17 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -RWByteAddressBuffer _11 : register(u1); - -void comp_main() -{ - uint _14; - _11.GetDimensions(_14); - _14 = (_14 - 16) / 16; - _11.Store(0, uint(int(_14))); -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/comp/ssbo-array.comp b/third_party/spirv-cross/reference/shaders-hlsl/comp/ssbo-array.comp deleted file mode 100644 index dab20325b0..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/comp/ssbo-array.comp +++ /dev/null @@ -1,13 +0,0 @@ -static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u); - -RWByteAddressBuffer ssbo0 : register(u0); - -void comp_main() -{ -} - -[numthreads(1, 1, 1)] -void main() -{ - comp_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/array-lut-no-loop-variable.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/array-lut-no-loop-variable.frag deleted file mode 100644 index 407fa2bda4..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/array-lut-no-loop-variable.frag +++ /dev/null @@ -1,30 +0,0 @@ -static const float _17[5] = { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f }; - -static float4 FragColor; -static float4 v0; - -struct SPIRV_Cross_Input -{ - float4 v0 : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - for (int i = 0; i < 4; i++, FragColor += _17[i].xxxx) - { - } -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - v0 = stage_input.v0; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/basic-color-3comp.sm30.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/basic-color-3comp.sm30.frag deleted file mode 100644 index d3697d650f..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/basic-color-3comp.sm30.frag +++ /dev/null @@ -1,26 +0,0 @@ -static float3 FragColor; -static float4 vColor; - -struct SPIRV_Cross_Input -{ - float4 vColor : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : COLOR0; -}; - -void frag_main() -{ - FragColor = vColor.xyz; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vColor = stage_input.vColor; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = float4(FragColor, 0.0); - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/basic-color-3comp.sm50.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/basic-color-3comp.sm50.frag deleted file mode 100644 index 52f6fed6c1..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/basic-color-3comp.sm50.frag +++ /dev/null @@ -1,26 +0,0 @@ -static float3 FragColor; -static float4 vColor; - -struct SPIRV_Cross_Input -{ - float4 vColor : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float3 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = vColor.xyz; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vColor = stage_input.vColor; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/basic.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/basic.frag deleted file mode 100644 index 6d067041c2..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/basic.frag +++ /dev/null @@ -1,32 +0,0 @@ -Texture2D uTex : register(t0); -SamplerState _uTex_sampler : register(s0); - -static float4 FragColor; -static float4 vColor; -static float2 vTex; - -struct SPIRV_Cross_Input -{ - float4 vColor : TEXCOORD0; - float2 vTex : TEXCOORD1; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = vColor * uTex.Sample(_uTex_sampler, vTex); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vColor = stage_input.vColor; - vTex = stage_input.vTex; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/bit-conversions.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/bit-conversions.frag deleted file mode 100644 index 2ed359bfc7..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/bit-conversions.frag +++ /dev/null @@ -1,27 +0,0 @@ -static float2 value; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - float2 value : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - int i = asint(value.x); - FragColor = float4(1.0f, 0.0f, asfloat(i), 1.0f); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - value = stage_input.value; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/boolean-mix.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/boolean-mix.frag deleted file mode 100644 index f3e84898d6..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/boolean-mix.frag +++ /dev/null @@ -1,27 +0,0 @@ -static float2 FragColor; -static float2 x0; - -struct SPIRV_Cross_Input -{ - float2 x0 : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float2 FragColor : SV_Target0; -}; - -void frag_main() -{ - bool2 _27 = (x0.x > x0.y).xx; - FragColor = float2(_27.x ? float2(1.0f, 0.0f).x : float2(0.0f, 1.0f).x, _27.y ? float2(1.0f, 0.0f).y : float2(0.0f, 1.0f).y); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - x0 = stage_input.x0; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/builtins.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/builtins.frag deleted file mode 100644 index 8432c42f80..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/builtins.frag +++ /dev/null @@ -1,34 +0,0 @@ -static float4 gl_FragCoord; -static float gl_FragDepth; -static float4 FragColor; -static float4 vColor; - -struct SPIRV_Cross_Input -{ - float4 vColor : TEXCOORD0; - float4 gl_FragCoord : SV_Position; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; - float gl_FragDepth : SV_Depth; -}; - -void frag_main() -{ - FragColor = gl_FragCoord + vColor; - gl_FragDepth = 0.5f; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - gl_FragCoord = stage_input.gl_FragCoord; - gl_FragCoord.w = 1.0 / gl_FragCoord.w; - vColor = stage_input.vColor; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_FragDepth = gl_FragDepth; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/bvec-operations.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/bvec-operations.frag deleted file mode 100644 index 2398d8c6af..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/bvec-operations.frag +++ /dev/null @@ -1,29 +0,0 @@ -static float2 value; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - float2 value : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - bool2 _25 = bool2(value.x == 0.0f, value.y == 0.0f); - bool2 bools1 = bool2(!_25.x, !_25.y); - bool2 bools2 = bool2(value.x <= float2(1.5f, 0.5f).x, value.y <= float2(1.5f, 0.5f).y); - FragColor = float4(1.0f, 0.0f, float(bools1.x), float(bools2.x)); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - value = stage_input.value; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/clip-cull-distance.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/clip-cull-distance.frag deleted file mode 100644 index 52f1ac30b6..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/clip-cull-distance.frag +++ /dev/null @@ -1,30 +0,0 @@ -static float gl_ClipDistance[2]; -static float gl_CullDistance[1]; -static float FragColor; - -struct SPIRV_Cross_Input -{ - float2 gl_ClipDistance0 : SV_ClipDistance0; - float gl_CullDistance0 : SV_CullDistance0; -}; - -struct SPIRV_Cross_Output -{ - float FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = (gl_ClipDistance[0] + gl_CullDistance[0]) + gl_ClipDistance[1]; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - gl_ClipDistance[0] = stage_input.gl_ClipDistance0.x; - gl_ClipDistance[1] = stage_input.gl_ClipDistance0.y; - gl_CullDistance[0] = stage_input.gl_CullDistance0.x; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/combined-texture-sampler-parameter.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/combined-texture-sampler-parameter.frag deleted file mode 100644 index 66330805f1..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/combined-texture-sampler-parameter.frag +++ /dev/null @@ -1,44 +0,0 @@ -Texture2D uSampler : register(t0); -SamplerState _uSampler_sampler : register(s0); -Texture2D uSamplerShadow : register(t1); -SamplerComparisonState _uSamplerShadow_sampler : register(s1); - -static float FragColor; - -struct SPIRV_Cross_Output -{ - float FragColor : SV_Target0; -}; - -float4 samp2(Texture2D s, SamplerState _s_sampler) -{ - return s.Sample(_s_sampler, 1.0f.xx) + s.Load(int3(int2(10, 10), 0)); -} - -float4 samp3(Texture2D s, SamplerState _s_sampler) -{ - return samp2(s, _s_sampler); -} - -float samp4(Texture2D s, SamplerComparisonState _s_sampler) -{ - return s.SampleCmp(_s_sampler, 1.0f.xxx.xy, 1.0f); -} - -float samp(Texture2D s0, SamplerState _s0_sampler, Texture2D s1, SamplerComparisonState _s1_sampler) -{ - return samp3(s0, _s0_sampler).x + samp4(s1, _s1_sampler); -} - -void frag_main() -{ - FragColor = samp(uSampler, _uSampler_sampler, uSamplerShadow, _uSamplerShadow_sampler); -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/combined-texture-sampler-shadow.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/combined-texture-sampler-shadow.frag deleted file mode 100644 index 8d48008d38..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/combined-texture-sampler-shadow.frag +++ /dev/null @@ -1,40 +0,0 @@ -Texture2D uDepth : register(t2); -SamplerComparisonState uSampler : register(s0); -SamplerState uSampler1 : register(s1); - -static float FragColor; - -struct SPIRV_Cross_Output -{ - float FragColor : SV_Target0; -}; - -float samp2(Texture2D t, SamplerComparisonState s) -{ - return t.SampleCmp(s, 1.0f.xxx.xy, 1.0f); -} - -float samp3(Texture2D t, SamplerState s) -{ - return t.Sample(s, 1.0f.xx).x; -} - -float samp(Texture2D t, SamplerComparisonState s, SamplerState s1) -{ - float r0 = samp2(t, s); - float r1 = samp3(t, s1); - return r0 + r1; -} - -void frag_main() -{ - FragColor = samp(uDepth, uSampler, uSampler1); -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/complex-expression-in-access-chain.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/complex-expression-in-access-chain.frag deleted file mode 100644 index b2f995484d..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/complex-expression-in-access-chain.frag +++ /dev/null @@ -1,41 +0,0 @@ -RWByteAddressBuffer _34 : register(u0); -Texture2D Buf : register(t1); -SamplerState _Buf_sampler : register(s1); - -static float4 gl_FragCoord; -static int vIn; -static int vIn2; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - nointerpolation int vIn : TEXCOORD0; - nointerpolation int vIn2 : TEXCOORD1; - float4 gl_FragCoord : SV_Position; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - int4 coords = Buf.Load(int3(int2(gl_FragCoord.xy), 0)); - float4 foo = asfloat(_34.Load4((coords.x % 16) * 16 + 0)); - int c = vIn * vIn; - int d = vIn2 * vIn2; - FragColor = (foo + foo) + asfloat(_34.Load4((c + d) * 16 + 0)); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - gl_FragCoord = stage_input.gl_FragCoord; - gl_FragCoord.w = 1.0 / gl_FragCoord.w; - vIn = stage_input.vIn; - vIn2 = stage_input.vIn2; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/constant-composites.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/constant-composites.frag deleted file mode 100644 index 306ca5cadb..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/constant-composites.frag +++ /dev/null @@ -1,38 +0,0 @@ -struct Foo -{ - float a; - float b; -}; - -static const float _16[4] = { 1.0f, 4.0f, 3.0f, 2.0f }; -static const Foo _24 = { 10.0f, 20.0f }; -static const Foo _27 = { 30.0f, 40.0f }; -static const Foo _28[2] = { { 10.0f, 20.0f }, { 30.0f, 40.0f } }; - -static float4 FragColor; -static int _line; - -struct SPIRV_Cross_Input -{ - nointerpolation int _line : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = _16[_line].xxxx; - FragColor += (_28[_line].a * _28[1 - _line].a).xxxx; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - _line = stage_input._line; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/control-dependent-in-branch.desktop.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/control-dependent-in-branch.desktop.frag deleted file mode 100644 index 6a31ce0488..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/control-dependent-in-branch.desktop.frag +++ /dev/null @@ -1,56 +0,0 @@ -Texture2D uSampler : register(t0); -SamplerState _uSampler_sampler : register(s0); - -static float4 FragColor; -static float4 vInput; - -struct SPIRV_Cross_Input -{ - float4 vInput : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = vInput; - float4 t = uSampler.Sample(_uSampler_sampler, vInput.xy); - float4 d0 = ddx(vInput); - float4 d1 = ddy(vInput); - float4 d2 = fwidth(vInput); - float4 d3 = ddx_coarse(vInput); - float4 d4 = ddy_coarse(vInput); - float4 d5 = fwidth(vInput); - float4 d6 = ddx_fine(vInput); - float4 d7 = ddy_fine(vInput); - float4 d8 = fwidth(vInput); - float _56_tmp = uSampler.CalculateLevelOfDetail(_uSampler_sampler, vInput.zw); - float2 _56 = _56_tmp.xx; - float2 lod = _56; - if (vInput.y > 10.0f) - { - FragColor += t; - FragColor += d0; - FragColor += d1; - FragColor += d2; - FragColor += d3; - FragColor += d4; - FragColor += d5; - FragColor += d6; - FragColor += d7; - FragColor += d8; - FragColor += lod.xyxy; - } -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vInput = stage_input.vInput; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/demote-to-helper.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/demote-to-helper.frag deleted file mode 100644 index 743a4228ba..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/demote-to-helper.frag +++ /dev/null @@ -1,9 +0,0 @@ -void frag_main() -{ - discard; -} - -void main() -{ - frag_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/depth-greater-than.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/depth-greater-than.frag deleted file mode 100644 index b9f50db00a..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/depth-greater-than.frag +++ /dev/null @@ -1,19 +0,0 @@ -static float gl_FragDepth; -struct SPIRV_Cross_Output -{ - float gl_FragDepth : SV_DepthGreaterEqual; -}; - -void frag_main() -{ - gl_FragDepth = 0.5f; -} - -[earlydepthstencil] -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_FragDepth = gl_FragDepth; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/depth-less-than.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/depth-less-than.frag deleted file mode 100644 index a702fd9f8e..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/depth-less-than.frag +++ /dev/null @@ -1,19 +0,0 @@ -static float gl_FragDepth; -struct SPIRV_Cross_Output -{ - float gl_FragDepth : SV_DepthLessEqual; -}; - -void frag_main() -{ - gl_FragDepth = 0.5f; -} - -[earlydepthstencil] -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_FragDepth = gl_FragDepth; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/dual-source-blending.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/dual-source-blending.frag deleted file mode 100644 index 961e800010..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/dual-source-blending.frag +++ /dev/null @@ -1,23 +0,0 @@ -static float4 FragColor0; -static float4 FragColor1; - -struct SPIRV_Cross_Output -{ - float4 FragColor0 : SV_Target0; - float4 FragColor1 : SV_Target1; -}; - -void frag_main() -{ - FragColor0 = 1.0f.xxxx; - FragColor1 = 2.0f.xxxx; -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor0 = FragColor0; - stage_output.FragColor1 = FragColor1; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/early-fragment-test.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/early-fragment-test.frag deleted file mode 100644 index ae2569d5cf..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/early-fragment-test.frag +++ /dev/null @@ -1,9 +0,0 @@ -void frag_main() -{ -} - -[earlydepthstencil] -void main() -{ - frag_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/for-loop-continue-control-flow.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/for-loop-continue-control-flow.frag deleted file mode 100644 index 12e1e7f5fd..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/for-loop-continue-control-flow.frag +++ /dev/null @@ -1,44 +0,0 @@ -static float4 FragColor; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = 0.0f.xxxx; - int i = 0; - int _36; - for (;;) - { - if (i < 3) - { - int a = i; - FragColor[a] += float(i); - if (false) - { - _36 = 1; - } - else - { - int _41 = i; - i = _41 + 1; - _36 = _41; - } - continue; - } - else - { - break; - } - } -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/fp16-packing.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/fp16-packing.frag deleted file mode 100644 index 54b91e2aa5..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/fp16-packing.frag +++ /dev/null @@ -1,44 +0,0 @@ -static float2 FP32Out; -static uint FP16; -static uint FP16Out; -static float2 FP32; - -struct SPIRV_Cross_Input -{ - nointerpolation uint FP16 : TEXCOORD0; - nointerpolation float2 FP32 : TEXCOORD1; -}; - -struct SPIRV_Cross_Output -{ - float2 FP32Out : SV_Target0; - uint FP16Out : SV_Target1; -}; - -uint spvPackHalf2x16(float2 value) -{ - uint2 Packed = f32tof16(value); - return Packed.x | (Packed.y << 16); -} - -float2 spvUnpackHalf2x16(uint value) -{ - return f16tof32(uint2(value & 0xffff, value >> 16)); -} - -void frag_main() -{ - FP32Out = spvUnpackHalf2x16(FP16); - FP16Out = spvPackHalf2x16(FP32); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - FP16 = stage_input.FP16; - FP32 = stage_input.FP32; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FP32Out = FP32Out; - stage_output.FP16Out = FP16Out; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/front-facing.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/front-facing.frag deleted file mode 100644 index 4ed09a2bd1..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/front-facing.frag +++ /dev/null @@ -1,39 +0,0 @@ -static bool gl_FrontFacing; -static float4 FragColor; -static float4 vA; -static float4 vB; - -struct SPIRV_Cross_Input -{ - float4 vA : TEXCOORD0; - float4 vB : TEXCOORD1; - bool gl_FrontFacing : SV_IsFrontFace; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - if (gl_FrontFacing) - { - FragColor = vA; - } - else - { - FragColor = vB; - } -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - gl_FrontFacing = stage_input.gl_FrontFacing; - vA = stage_input.vA; - vB = stage_input.vB; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/image-query-selective.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/image-query-selective.frag deleted file mode 100644 index 69fe83fd28..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/image-query-selective.frag +++ /dev/null @@ -1,146 +0,0 @@ -Texture1D uSampler1DUint : register(t0); -SamplerState _uSampler1DUint_sampler : register(s0); -Texture1D uSampler1DInt : register(t0); -SamplerState _uSampler1DInt_sampler : register(s0); -Texture1D uSampler1DFloat : register(t0); -SamplerState _uSampler1DFloat_sampler : register(s0); -Texture2DArray uSampler2DArray : register(t2); -SamplerState _uSampler2DArray_sampler : register(s2); -Texture3D uSampler3D : register(t3); -SamplerState _uSampler3D_sampler : register(s3); -TextureCube uSamplerCube : register(t4); -SamplerState _uSamplerCube_sampler : register(s4); -TextureCubeArray uSamplerCubeArray : register(t5); -SamplerState _uSamplerCubeArray_sampler : register(s5); -Buffer uSamplerBuffer : register(t6); -Texture2DMS uSamplerMS : register(t7); -SamplerState _uSamplerMS_sampler : register(s7); -Texture2DMSArray uSamplerMSArray : register(t8); -SamplerState _uSamplerMSArray_sampler : register(s8); -Texture2D uSampler2D : register(t1); -SamplerState _uSampler2D_sampler : register(s1); - -uint spvTextureSize(Texture1D Tex, uint Level, out uint Param) -{ - uint ret; - Tex.GetDimensions(Level, ret.x, Param); - return ret; -} - -uint spvTextureSize(Texture1D Tex, uint Level, out uint Param) -{ - uint ret; - Tex.GetDimensions(Level, ret.x, Param); - return ret; -} - -uint spvTextureSize(Texture1D Tex, uint Level, out uint Param) -{ - uint ret; - Tex.GetDimensions(Level, ret.x, Param); - return ret; -} - -uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) -{ - uint2 ret; - Tex.GetDimensions(Level, ret.x, ret.y, Param); - return ret; -} - -uint3 spvTextureSize(Texture2DArray Tex, uint Level, out uint Param) -{ - uint3 ret; - Tex.GetDimensions(Level, ret.x, ret.y, ret.z, Param); - return ret; -} - -uint3 spvTextureSize(Texture3D Tex, uint Level, out uint Param) -{ - uint3 ret; - Tex.GetDimensions(Level, ret.x, ret.y, ret.z, Param); - return ret; -} - -uint spvTextureSize(Buffer Tex, uint Level, out uint Param) -{ - uint ret; - Tex.GetDimensions(ret.x); - Param = 0u; - return ret; -} - -uint2 spvTextureSize(TextureCube Tex, uint Level, out uint Param) -{ - uint2 ret; - Tex.GetDimensions(Level, ret.x, ret.y, Param); - return ret; -} - -uint3 spvTextureSize(TextureCubeArray Tex, uint Level, out uint Param) -{ - uint3 ret; - Tex.GetDimensions(Level, ret.x, ret.y, ret.z, Param); - return ret; -} - -uint2 spvTextureSize(Texture2DMS Tex, uint Level, out uint Param) -{ - uint2 ret; - Tex.GetDimensions(ret.x, ret.y, Param); - return ret; -} - -uint3 spvTextureSize(Texture2DMSArray Tex, uint Level, out uint Param) -{ - uint3 ret; - Tex.GetDimensions(ret.x, ret.y, ret.z, Param); - return ret; -} - -void frag_main() -{ - uint _17_dummy_parameter; - int a = int(spvTextureSize(uSampler1DUint, uint(0), _17_dummy_parameter)); - uint _24_dummy_parameter; - a = int(spvTextureSize(uSampler1DInt, uint(0), _24_dummy_parameter)); - uint _32_dummy_parameter; - a = int(spvTextureSize(uSampler1DFloat, uint(0), _32_dummy_parameter)); - uint _42_dummy_parameter; - int3 c = int3(spvTextureSize(uSampler2DArray, uint(0), _42_dummy_parameter)); - uint _50_dummy_parameter; - int3 d = int3(spvTextureSize(uSampler3D, uint(0), _50_dummy_parameter)); - uint _60_dummy_parameter; - int2 e = int2(spvTextureSize(uSamplerCube, uint(0), _60_dummy_parameter)); - uint _68_dummy_parameter; - int3 f = int3(spvTextureSize(uSamplerCubeArray, uint(0), _68_dummy_parameter)); - uint _76_dummy_parameter; - int g = int(spvTextureSize(uSamplerBuffer, 0u, _76_dummy_parameter)); - uint _84_dummy_parameter; - int2 h = int2(spvTextureSize(uSamplerMS, 0u, _84_dummy_parameter)); - uint _92_dummy_parameter; - int3 i = int3(spvTextureSize(uSamplerMSArray, 0u, _92_dummy_parameter)); - int _100; - spvTextureSize(uSampler2D, 0u, _100); - int l1 = int(_100); - int _104; - spvTextureSize(uSampler2DArray, 0u, _104); - int l2 = int(_104); - int _108; - spvTextureSize(uSampler3D, 0u, _108); - int l3 = int(_108); - int _112; - spvTextureSize(uSamplerCube, 0u, _112); - int l4 = int(_112); - int _116; - spvTextureSize(uSamplerMS, 0u, _116); - int s0 = int(_116); - int _120; - spvTextureSize(uSamplerMSArray, 0u, _120); - int s1 = int(_120); -} - -void main() -{ - frag_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/image-query-uav.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/image-query-uav.frag deleted file mode 100644 index 6626ed2f84..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/image-query-uav.frag +++ /dev/null @@ -1,64 +0,0 @@ -RWTexture1D uImage1D : register(u0); -RWTexture2D uImage2D : register(u1); -RWTexture2DArray uImage2DArray : register(u2); -RWTexture3D uImage3D : register(u3); -RWBuffer uImageBuffer : register(u6); - -uint3 spvImageSize(RWTexture2DArray Tex, out uint Param) -{ - uint3 ret; - Tex.GetDimensions(ret.x, ret.y, ret.z); - Param = 0u; - return ret; -} - -uint2 spvImageSize(RWTexture2D Tex, out uint Param) -{ - uint2 ret; - Tex.GetDimensions(ret.x, ret.y); - Param = 0u; - return ret; -} - -uint spvImageSize(RWTexture1D Tex, out uint Param) -{ - uint ret; - Tex.GetDimensions(ret.x); - Param = 0u; - return ret; -} - -uint3 spvImageSize(RWTexture3D Tex, out uint Param) -{ - uint3 ret; - Tex.GetDimensions(ret.x, ret.y, ret.z); - Param = 0u; - return ret; -} - -uint spvImageSize(RWBuffer Tex, out uint Param) -{ - uint ret; - Tex.GetDimensions(ret.x); - Param = 0u; - return ret; -} - -void frag_main() -{ - uint _14_dummy_parameter; - int a = int(spvImageSize(uImage1D, _14_dummy_parameter)); - uint _22_dummy_parameter; - int2 b = int2(spvImageSize(uImage2D, _22_dummy_parameter)); - uint _30_dummy_parameter; - int3 c = int3(spvImageSize(uImage2DArray, _30_dummy_parameter)); - uint _36_dummy_parameter; - int3 d = int3(spvImageSize(uImage3D, _36_dummy_parameter)); - uint _42_dummy_parameter; - int e = int(spvImageSize(uImageBuffer, _42_dummy_parameter)); -} - -void main() -{ - frag_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/image-query-uav.nonwritable-uav-texture.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/image-query-uav.nonwritable-uav-texture.frag deleted file mode 100644 index 1e77c2c911..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/image-query-uav.nonwritable-uav-texture.frag +++ /dev/null @@ -1,63 +0,0 @@ -RWTexture1D uImage1D : register(u0); -RWTexture2D uImage2D : register(u1); -Texture2DArray uImage2DArray : register(t2); -RWTexture3D uImage3D : register(u3); -RWBuffer uImageBuffer : register(u6); - -uint3 spvTextureSize(Texture2DArray Tex, uint Level, out uint Param) -{ - uint3 ret; - Tex.GetDimensions(Level, ret.x, ret.y, ret.z, Param); - return ret; -} - -uint2 spvImageSize(RWTexture2D Tex, out uint Param) -{ - uint2 ret; - Tex.GetDimensions(ret.x, ret.y); - Param = 0u; - return ret; -} - -uint spvImageSize(RWTexture1D Tex, out uint Param) -{ - uint ret; - Tex.GetDimensions(ret.x); - Param = 0u; - return ret; -} - -uint3 spvImageSize(RWTexture3D Tex, out uint Param) -{ - uint3 ret; - Tex.GetDimensions(ret.x, ret.y, ret.z); - Param = 0u; - return ret; -} - -uint spvImageSize(RWBuffer Tex, out uint Param) -{ - uint ret; - Tex.GetDimensions(ret.x); - Param = 0u; - return ret; -} - -void frag_main() -{ - uint _14_dummy_parameter; - int a = int(spvImageSize(uImage1D, _14_dummy_parameter)); - uint _22_dummy_parameter; - int2 b = int2(spvImageSize(uImage2D, _22_dummy_parameter)); - uint _30_dummy_parameter; - int3 c = int3(spvTextureSize(uImage2DArray, 0u, _30_dummy_parameter)); - uint _36_dummy_parameter; - int3 d = int3(spvImageSize(uImage3D, _36_dummy_parameter)); - uint _42_dummy_parameter; - int e = int(spvImageSize(uImageBuffer, _42_dummy_parameter)); -} - -void main() -{ - frag_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/image-query.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/image-query.frag deleted file mode 100644 index 0e4b26baca..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/image-query.frag +++ /dev/null @@ -1,132 +0,0 @@ -Texture1D uSampler1D : register(t0); -SamplerState _uSampler1D_sampler : register(s0); -Texture2D uSampler2D : register(t1); -SamplerState _uSampler2D_sampler : register(s1); -Texture2DArray uSampler2DArray : register(t2); -SamplerState _uSampler2DArray_sampler : register(s2); -Texture3D uSampler3D : register(t3); -SamplerState _uSampler3D_sampler : register(s3); -TextureCube uSamplerCube : register(t4); -SamplerState _uSamplerCube_sampler : register(s4); -TextureCubeArray uSamplerCubeArray : register(t5); -SamplerState _uSamplerCubeArray_sampler : register(s5); -Buffer uSamplerBuffer : register(t6); -Texture2DMS uSamplerMS : register(t7); -SamplerState _uSamplerMS_sampler : register(s7); -Texture2DMSArray uSamplerMSArray : register(t8); -SamplerState _uSamplerMSArray_sampler : register(s8); - -uint spvTextureSize(Texture1D Tex, uint Level, out uint Param) -{ - uint ret; - Tex.GetDimensions(Level, ret.x, Param); - return ret; -} - -uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) -{ - uint2 ret; - Tex.GetDimensions(Level, ret.x, ret.y, Param); - return ret; -} - -uint3 spvTextureSize(Texture2DArray Tex, uint Level, out uint Param) -{ - uint3 ret; - Tex.GetDimensions(Level, ret.x, ret.y, ret.z, Param); - return ret; -} - -uint3 spvTextureSize(Texture3D Tex, uint Level, out uint Param) -{ - uint3 ret; - Tex.GetDimensions(Level, ret.x, ret.y, ret.z, Param); - return ret; -} - -uint spvTextureSize(Buffer Tex, uint Level, out uint Param) -{ - uint ret; - Tex.GetDimensions(ret.x); - Param = 0u; - return ret; -} - -uint2 spvTextureSize(TextureCube Tex, uint Level, out uint Param) -{ - uint2 ret; - Tex.GetDimensions(Level, ret.x, ret.y, Param); - return ret; -} - -uint3 spvTextureSize(TextureCubeArray Tex, uint Level, out uint Param) -{ - uint3 ret; - Tex.GetDimensions(Level, ret.x, ret.y, ret.z, Param); - return ret; -} - -uint2 spvTextureSize(Texture2DMS Tex, uint Level, out uint Param) -{ - uint2 ret; - Tex.GetDimensions(ret.x, ret.y, Param); - return ret; -} - -uint3 spvTextureSize(Texture2DMSArray Tex, uint Level, out uint Param) -{ - uint3 ret; - Tex.GetDimensions(ret.x, ret.y, ret.z, Param); - return ret; -} - -void frag_main() -{ - uint _17_dummy_parameter; - int a = int(spvTextureSize(uSampler1D, uint(0), _17_dummy_parameter)); - uint _27_dummy_parameter; - int2 b = int2(spvTextureSize(uSampler2D, uint(0), _27_dummy_parameter)); - uint _37_dummy_parameter; - int3 c = int3(spvTextureSize(uSampler2DArray, uint(0), _37_dummy_parameter)); - uint _45_dummy_parameter; - int3 d = int3(spvTextureSize(uSampler3D, uint(0), _45_dummy_parameter)); - uint _53_dummy_parameter; - int2 e = int2(spvTextureSize(uSamplerCube, uint(0), _53_dummy_parameter)); - uint _61_dummy_parameter; - int3 f = int3(spvTextureSize(uSamplerCubeArray, uint(0), _61_dummy_parameter)); - uint _69_dummy_parameter; - int g = int(spvTextureSize(uSamplerBuffer, 0u, _69_dummy_parameter)); - uint _77_dummy_parameter; - int2 h = int2(spvTextureSize(uSamplerMS, 0u, _77_dummy_parameter)); - uint _85_dummy_parameter; - int3 i = int3(spvTextureSize(uSamplerMSArray, 0u, _85_dummy_parameter)); - int _89; - spvTextureSize(uSampler1D, 0u, _89); - int l0 = int(_89); - int _93; - spvTextureSize(uSampler2D, 0u, _93); - int l1 = int(_93); - int _97; - spvTextureSize(uSampler2DArray, 0u, _97); - int l2 = int(_97); - int _101; - spvTextureSize(uSampler3D, 0u, _101); - int l3 = int(_101); - int _105; - spvTextureSize(uSamplerCube, 0u, _105); - int l4 = int(_105); - int _109; - spvTextureSize(uSamplerCubeArray, 0u, _109); - int l5 = int(_109); - int _113; - spvTextureSize(uSamplerMS, 0u, _113); - int s0 = int(_113); - int _117; - spvTextureSize(uSamplerMSArray, 0u, _117); - int s1 = int(_117); -} - -void main() -{ - frag_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/input-attachment-ms.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/input-attachment-ms.frag deleted file mode 100644 index 954fa1a94b..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/input-attachment-ms.frag +++ /dev/null @@ -1,39 +0,0 @@ -Texture2DMS uSubpass0 : register(t0); -Texture2DMS uSubpass1 : register(t1); - -static float4 gl_FragCoord; -static int gl_SampleID; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - float4 gl_FragCoord : SV_Position; - uint gl_SampleID : SV_SampleIndex; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -float4 load_subpasses(Texture2DMS uInput) -{ - float4 _24 = uInput.Load(int2(gl_FragCoord.xy), gl_SampleID); - return _24; -} - -void frag_main() -{ - FragColor = (uSubpass0.Load(int2(gl_FragCoord.xy), 1) + uSubpass1.Load(int2(gl_FragCoord.xy), 2)) + load_subpasses(uSubpass0); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - gl_FragCoord = stage_input.gl_FragCoord; - gl_FragCoord.w = 1.0 / gl_FragCoord.w; - gl_SampleID = stage_input.gl_SampleID; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/input-attachment.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/input-attachment.frag deleted file mode 100644 index b0e297c55f..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/input-attachment.frag +++ /dev/null @@ -1,35 +0,0 @@ -Texture2D uSubpass0 : register(t0); -Texture2D uSubpass1 : register(t1); - -static float4 gl_FragCoord; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - float4 gl_FragCoord : SV_Position; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -float4 load_subpasses(Texture2D uInput) -{ - return uInput.Load(int3(int2(gl_FragCoord.xy), 0)); -} - -void frag_main() -{ - FragColor = uSubpass0.Load(int3(int2(gl_FragCoord.xy), 0)) + load_subpasses(uSubpass1); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - gl_FragCoord = stage_input.gl_FragCoord; - gl_FragCoord.w = 1.0 / gl_FragCoord.w; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/io-block.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/io-block.frag deleted file mode 100644 index 52c1f518bf..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/io-block.frag +++ /dev/null @@ -1,28 +0,0 @@ -static float4 FragColor; - -struct VertexOut -{ - float4 a : TEXCOORD1; - float4 b : TEXCOORD2; -}; - -static VertexOut _12; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = _12.a + _12.b; -} - -SPIRV_Cross_Output main(in VertexOut stage_input_12) -{ - _12 = stage_input_12; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/legacy-tex-modifiers.sm30.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/legacy-tex-modifiers.sm30.frag deleted file mode 100644 index 2af0e513b4..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/legacy-tex-modifiers.sm30.frag +++ /dev/null @@ -1,32 +0,0 @@ -uniform sampler2D uSampler; - -static float4 FragColor; -static float2 vUV; - -struct SPIRV_Cross_Input -{ - float2 vUV : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : COLOR0; -}; - -void frag_main() -{ - float3 _23 = float3(vUV, 5.0f); - FragColor = tex2Dproj(uSampler, float4(_23.xy, 0.0, _23.z)); - FragColor += tex2Dbias(uSampler, float4(vUV, 0.0, 3.0f)); - FragColor += tex2Dlod(uSampler, float4(vUV, 0.0, 2.0f)); - FragColor += tex2Dgrad(uSampler, vUV, 4.0f.xx, 5.0f.xx); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vUV = stage_input.vUV; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = float4(FragColor); - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/lut-promotion.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/lut-promotion.frag deleted file mode 100644 index d148bc12cb..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/lut-promotion.frag +++ /dev/null @@ -1,55 +0,0 @@ -static const float _16[16] = { 1.0f, 2.0f, 3.0f, 4.0f, 1.0f, 2.0f, 3.0f, 4.0f, 1.0f, 2.0f, 3.0f, 4.0f, 1.0f, 2.0f, 3.0f, 4.0f }; -static const float4 _60[4] = { 0.0f.xxxx, 1.0f.xxxx, 8.0f.xxxx, 5.0f.xxxx }; -static const float4 _104[4] = { 20.0f.xxxx, 30.0f.xxxx, 50.0f.xxxx, 60.0f.xxxx }; - -static float FragColor; -static int index; - -struct SPIRV_Cross_Input -{ - nointerpolation int index : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = _16[index]; - if (index < 10) - { - FragColor += _16[index ^ 1]; - } - else - { - FragColor += _16[index & 1]; - } - if (index > 30) - { - FragColor += _60[index & 3].y; - } - else - { - FragColor += _60[index & 1].x; - } - float4 foobar[4] = _60; - if (index > 30) - { - foobar[1].z = 20.0f; - } - FragColor += foobar[index & 3].z; - float4 baz[4] = _60; - baz = _104; - FragColor += baz[index & 3].z; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - index = stage_input.index; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/matrix-input.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/matrix-input.frag deleted file mode 100644 index 92d87d396e..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/matrix-input.frag +++ /dev/null @@ -1,26 +0,0 @@ -static float4 FragColor; -static float4x4 m; - -struct SPIRV_Cross_Input -{ - float4x4 m : TEXCOORD1; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = ((m[0] + m[1]) + m[2]) + m[3]; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - m = stage_input.m; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/mod.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/mod.frag deleted file mode 100644 index 1da8f21e45..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/mod.frag +++ /dev/null @@ -1,71 +0,0 @@ -static float4 a4; -static float4 b4; -static float3 a3; -static float3 b3; -static float2 a2; -static float2 b2; -static float a1; -static float b1; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - float4 a4 : TEXCOORD0; - float3 a3 : TEXCOORD1; - float2 a2 : TEXCOORD2; - float a1 : TEXCOORD3; - float4 b4 : TEXCOORD4; - float3 b3 : TEXCOORD5; - float2 b2 : TEXCOORD6; - float b1 : TEXCOORD7; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -float mod(float x, float y) -{ - return x - y * floor(x / y); -} - -float2 mod(float2 x, float2 y) -{ - return x - y * floor(x / y); -} - -float3 mod(float3 x, float3 y) -{ - return x - y * floor(x / y); -} - -float4 mod(float4 x, float4 y) -{ - return x - y * floor(x / y); -} - -void frag_main() -{ - float4 m0 = mod(a4, b4); - float3 m1 = mod(a3, b3); - float2 m2 = mod(a2, b2); - float m3 = mod(a1, b1); - FragColor = ((m0 + m1.xyzx) + m2.xyxy) + m3.xxxx; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - a4 = stage_input.a4; - b4 = stage_input.b4; - a3 = stage_input.a3; - b3 = stage_input.b3; - a2 = stage_input.a2; - b2 = stage_input.b2; - a1 = stage_input.a1; - b1 = stage_input.b1; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/mrt.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/mrt.frag deleted file mode 100644 index e69e91196a..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/mrt.frag +++ /dev/null @@ -1,31 +0,0 @@ -static float4 RT0; -static float4 RT1; -static float4 RT2; -static float4 RT3; - -struct SPIRV_Cross_Output -{ - float4 RT0 : SV_Target0; - float4 RT1 : SV_Target1; - float4 RT2 : SV_Target2; - float4 RT3 : SV_Target3; -}; - -void frag_main() -{ - RT0 = 1.0f.xxxx; - RT1 = 2.0f.xxxx; - RT2 = 3.0f.xxxx; - RT3 = 4.0f.xxxx; -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.RT0 = RT0; - stage_output.RT1 = RT1; - stage_output.RT2 = RT2; - stage_output.RT3 = RT3; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/no-return.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/no-return.frag deleted file mode 100644 index 3b50282fe0..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/no-return.frag +++ /dev/null @@ -1,8 +0,0 @@ -void frag_main() -{ -} - -void main() -{ - frag_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/no-return2.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/no-return2.frag deleted file mode 100644 index a22ffa7725..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/no-return2.frag +++ /dev/null @@ -1,17 +0,0 @@ -static float4 vColor; - -struct SPIRV_Cross_Input -{ - float4 vColor : TEXCOORD0; -}; - -void frag_main() -{ - float4 v = vColor; -} - -void main(SPIRV_Cross_Input stage_input) -{ - vColor = stage_input.vColor; - frag_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/nonuniform-qualifier.nonuniformresource.sm51.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/nonuniform-qualifier.nonuniformresource.sm51.frag deleted file mode 100644 index 93f24d9afd..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/nonuniform-qualifier.nonuniformresource.sm51.frag +++ /dev/null @@ -1,115 +0,0 @@ -struct UBO_1_1 -{ - float4 v[64]; -}; - -ConstantBuffer ubos[] : register(b2, space9); -RWByteAddressBuffer ssbos[] : register(u3, space10); -Texture2D uSamplers[] : register(t0, space0); -SamplerState uSamps[] : register(s1, space3); -Texture2D uCombinedSamplers[] : register(t4, space2); -SamplerState _uCombinedSamplers_sampler[] : register(s4, space2); -Texture2DMS uSamplersMS[] : register(t0, space1); -RWTexture2D uImages[] : register(u5, space7); -RWTexture2D uImagesU32[] : register(u5, space8); - -static int vIndex; -static float4 FragColor; -static float2 vUV; - -struct SPIRV_Cross_Input -{ - nointerpolation int vIndex : TEXCOORD0; - float2 vUV : TEXCOORD1; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) -{ - uint2 ret; - Tex.GetDimensions(Level, ret.x, ret.y, Param); - return ret; -} - -uint2 spvTextureSize(Texture2DMS Tex, uint Level, out uint Param) -{ - uint2 ret; - Tex.GetDimensions(ret.x, ret.y, Param); - return ret; -} - -uint2 spvImageSize(RWTexture2D Tex, out uint Param) -{ - uint2 ret; - Tex.GetDimensions(ret.x, ret.y); - Param = 0u; - return ret; -} - -void frag_main() -{ - int i = vIndex; - FragColor = uSamplers[NonUniformResourceIndex(i + 10)].Sample(uSamps[NonUniformResourceIndex(i + 40)], vUV); - int _49 = i + 10; - FragColor = uCombinedSamplers[NonUniformResourceIndex(_49)].Sample(_uCombinedSamplers_sampler[NonUniformResourceIndex(_49)], vUV); - int _65 = i + 20; - int _69 = i + 40; - FragColor += ubos[NonUniformResourceIndex(_65)].v[_69]; - int _83 = i + 50; - int _88 = i + 60; - FragColor += asfloat(ssbos[NonUniformResourceIndex(_83)].Load4(_88 * 16 + 16)); - int _96 = i + 60; - int _100 = i + 70; - ssbos[NonUniformResourceIndex(_96)].Store4(_100 * 16 + 16, asuint(20.0f.xxxx)); - int _106 = i + 10; - FragColor = uSamplers[NonUniformResourceIndex(_106)].Load(int3(int2(vUV), 0)); - int _116 = i + 100; - uint _122; - ssbos[_116].InterlockedAdd(0, 100u, _122); - float _136_tmp = uSamplers[NonUniformResourceIndex(i + 10)].CalculateLevelOfDetail(uSamps[NonUniformResourceIndex(i + 40)], vUV); - float2 _136 = _136_tmp.xx; - float2 queried = _136; - int _139 = i + 10; - float _143_tmp = uCombinedSamplers[NonUniformResourceIndex(_139)].CalculateLevelOfDetail(_uCombinedSamplers_sampler[NonUniformResourceIndex(_139)], vUV); - float2 _143 = _143_tmp.xx; - queried += _143; - float2 _149 = FragColor.xy + queried; - FragColor = float4(_149.x, _149.y, FragColor.z, FragColor.w); - int _154 = i + 20; - int _157; - spvTextureSize(uSamplers[NonUniformResourceIndex(_154)], 0u, _157); - FragColor.x += float(int(_157)); - int _170 = i + 20; - int _174; - spvTextureSize(uSamplersMS[NonUniformResourceIndex(_170)], 0u, _174); - FragColor.y += float(int(_174)); - int _182 = i + 20; - uint _185_dummy_parameter; - float2 _189 = FragColor.xy + float2(int2(spvTextureSize(uSamplers[NonUniformResourceIndex(_182)], uint(0), _185_dummy_parameter))); - FragColor = float4(_189.x, _189.y, FragColor.z, FragColor.w); - int _198 = i + 50; - FragColor += uImages[NonUniformResourceIndex(_198)][int2(vUV)].xxxx; - int _209 = i + 20; - uint _212_dummy_parameter; - float2 _216 = FragColor.xy + float2(int2(spvImageSize(uImages[NonUniformResourceIndex(_209)], _212_dummy_parameter))); - FragColor = float4(_216.x, _216.y, FragColor.z, FragColor.w); - int _221 = i + 60; - uImages[NonUniformResourceIndex(_221)][int2(vUV)] = 50.0f.x; - int _234 = i + 70; - uint _242; - InterlockedAdd(uImagesU32[NonUniformResourceIndex(_234)][int2(vUV)], 40u, _242); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vIndex = stage_input.vIndex; - vUV = stage_input.vUV; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/partial-write-preserve.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/partial-write-preserve.frag deleted file mode 100644 index bb5b9056e7..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/partial-write-preserve.frag +++ /dev/null @@ -1,76 +0,0 @@ -struct B -{ - float a; - float b; -}; - -static const B _80 = { 10.0f, 20.0f }; - -cbuffer UBO : register(b0) -{ - int _42_some_value : packoffset(c0); -}; - - -void partial_inout(inout float4 x) -{ - x.x = 10.0f; -} - -void complete_inout(out float4 x) -{ - x = 50.0f.xxxx; -} - -void branchy_inout(inout float4 v) -{ - v.y = 20.0f; - if (_42_some_value == 20) - { - v = 50.0f.xxxx; - } -} - -void branchy_inout_2(out float4 v) -{ - if (_42_some_value == 20) - { - v = 50.0f.xxxx; - } - else - { - v = 70.0f.xxxx; - } - v.y = 20.0f; -} - -void partial_inout(inout B b) -{ - b.b = 40.0f; -} - -void frag_main() -{ - float4 a = 10.0f.xxxx; - float4 param = a; - partial_inout(param); - a = param; - float4 param_1; - complete_inout(param_1); - a = param_1; - float4 param_2 = a; - branchy_inout(param_2); - a = param_2; - float4 param_3; - branchy_inout_2(param_3); - a = param_3; - B b = _80; - B param_4 = b; - partial_inout(param_4); - b = param_4; -} - -void main() -{ - frag_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/pixel-interlock-ordered.sm51.fxconly.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/pixel-interlock-ordered.sm51.fxconly.frag deleted file mode 100644 index 8923f96a75..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/pixel-interlock-ordered.sm51.fxconly.frag +++ /dev/null @@ -1,24 +0,0 @@ -RWByteAddressBuffer _9 : register(u6, space0); -globallycoherent RasterizerOrderedByteAddressBuffer _42 : register(u3, space0); -RasterizerOrderedByteAddressBuffer _52 : register(u4, space0); -RWTexture2D img4 : register(u5, space0); -RasterizerOrderedTexture2D img : register(u0, space0); -RasterizerOrderedTexture2D img3 : register(u2, space0); -RasterizerOrderedTexture2D img2 : register(u1, space0); - -void frag_main() -{ - _9.Store(0, uint(0)); - img4[int2(1, 1)] = float4(1.0f, 0.0f, 0.0f, 1.0f); - img[int2(0, 0)] = img3[int2(0, 0)]; - uint _39; - InterlockedAdd(img2[int2(0, 0)], 1u, _39); - _42.Store(0, uint(int(_42.Load(0)) + 42)); - uint _55; - _42.InterlockedAnd(4, _52.Load(0), _55); -} - -void main() -{ - frag_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/point-coord-compat.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/point-coord-compat.frag deleted file mode 100644 index 629153982d..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/point-coord-compat.frag +++ /dev/null @@ -1,19 +0,0 @@ -static float2 FragColor; - -struct SPIRV_Cross_Output -{ - float2 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = float2(0.5f, 0.5f); -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/query-lod.desktop.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/query-lod.desktop.frag deleted file mode 100644 index a9d4bd83d9..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/query-lod.desktop.frag +++ /dev/null @@ -1,31 +0,0 @@ -Texture2D uSampler : register(t0); -SamplerState _uSampler_sampler : register(s0); - -static float4 FragColor; -static float2 vTexCoord; - -struct SPIRV_Cross_Input -{ - float2 vTexCoord : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - float _19_tmp = uSampler.CalculateLevelOfDetail(_uSampler_sampler, vTexCoord); - float2 _19 = _19_tmp.xx; - FragColor = _19.xyxy; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vTexCoord = stage_input.vTexCoord; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/readonly-coherent-ssbo.force-uav.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/readonly-coherent-ssbo.force-uav.frag deleted file mode 100644 index bbe3e4a7d3..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/readonly-coherent-ssbo.force-uav.frag +++ /dev/null @@ -1,21 +0,0 @@ -globallycoherent RWByteAddressBuffer _12 : register(u0); - -static float4 FragColor; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = asfloat(_12.Load4(0)); -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/readonly-coherent-ssbo.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/readonly-coherent-ssbo.frag deleted file mode 100644 index 02252f9cbc..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/readonly-coherent-ssbo.frag +++ /dev/null @@ -1,21 +0,0 @@ -ByteAddressBuffer _12 : register(t0); - -static float4 FragColor; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = asfloat(_12.Load4(0)); -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/resources.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/resources.frag deleted file mode 100644 index 2a3b2be51f..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/resources.frag +++ /dev/null @@ -1,44 +0,0 @@ -cbuffer CBuffer : register(b3) -{ - float4 cbuf_a : packoffset(c0); -}; - -cbuffer PushMe -{ - float4 registers_d : packoffset(c0); -}; - -Texture2D uSampledImage : register(t4); -SamplerState _uSampledImage_sampler : register(s4); -Texture2D uTexture : register(t5); -SamplerState uSampler : register(s6); - -static float2 vTex; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - float2 vTex : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - float4 c0 = uSampledImage.Sample(_uSampledImage_sampler, vTex); - float4 c1 = uTexture.Sample(uSampler, vTex); - float4 c2 = cbuf_a + registers_d; - FragColor = (c0 + c1) + c2; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vTex = stage_input.vTex; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/row-major-layout-in-struct.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/row-major-layout-in-struct.frag deleted file mode 100644 index 5fc45b2b3d..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/row-major-layout-in-struct.frag +++ /dev/null @@ -1,47 +0,0 @@ -struct NonFoo -{ - float4x4 v; - float4x4 w; -}; - -struct Foo -{ - row_major float4x4 v; - row_major float4x4 w; -}; - -cbuffer UBO : register(b0) -{ - Foo _17_foo : packoffset(c0); -}; - - -static float4 FragColor; -static float4 vUV; - -struct SPIRV_Cross_Input -{ - float4 vUV : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - NonFoo f; - f.v = _17_foo.v; - f.w = _17_foo.w; - FragColor = mul(mul(vUV, f.w), f.v); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vUV = stage_input.vUV; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/sample-cmp-level-zero.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/sample-cmp-level-zero.frag deleted file mode 100644 index b6df0019af..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/sample-cmp-level-zero.frag +++ /dev/null @@ -1,51 +0,0 @@ -Texture2D uSampler2D : register(t0); -SamplerComparisonState _uSampler2D_sampler : register(s0); -Texture2DArray uSampler2DArray : register(t1); -SamplerComparisonState _uSampler2DArray_sampler : register(s1); -TextureCube uSamplerCube : register(t2); -SamplerComparisonState _uSamplerCube_sampler : register(s2); -TextureCubeArray uSamplerCubeArray : register(t3); -SamplerComparisonState _uSamplerCubeArray_sampler : register(s3); - -static float3 vUVRef; -static float4 vDirRef; -static float FragColor; - -struct SPIRV_Cross_Input -{ - float3 vUVRef : TEXCOORD0; - float4 vDirRef : TEXCOORD1; -}; - -struct SPIRV_Cross_Output -{ - float FragColor : SV_Target0; -}; - -void frag_main() -{ - float s0 = uSampler2D.SampleCmp(_uSampler2D_sampler, vUVRef.xy, vUVRef.z, int2(-1, -1)); - float s1 = uSampler2DArray.SampleCmp(_uSampler2DArray_sampler, vDirRef.xyz, vDirRef.w, int2(-1, -1)); - float s2 = uSamplerCube.SampleCmp(_uSamplerCube_sampler, vDirRef.xyz, vDirRef.w); - float s3 = uSamplerCubeArray.SampleCmp(_uSamplerCubeArray_sampler, vDirRef, 0.5f); - float l0 = uSampler2D.SampleCmpLevelZero(_uSampler2D_sampler, vUVRef.xy, vUVRef.z, int2(-1, -1)); - float l1 = uSampler2DArray.SampleCmpLevelZero(_uSampler2DArray_sampler, vDirRef.xyz, vDirRef.w, int2(-1, -1)); - float l2 = uSamplerCube.SampleCmpLevelZero(_uSamplerCube_sampler, vDirRef.xyz, vDirRef.w); - float4 _80 = vDirRef; - _80.z = vDirRef.w; - float p0 = uSampler2D.SampleCmp(_uSampler2D_sampler, _80.xy / _80.z, vDirRef.z / _80.z, int2(1, 1)); - float4 _87 = vDirRef; - _87.z = vDirRef.w; - float p1 = uSampler2D.SampleCmpLevelZero(_uSampler2D_sampler, _87.xy / _87.z, vDirRef.z / _87.z, int2(1, 1)); - FragColor = (((((((s0 + s1) + s2) + s3) + l0) + l1) + l2) + p0) + p1; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vUVRef = stage_input.vUVRef; - vDirRef = stage_input.vDirRef; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/sample-mask-in-and-out.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/sample-mask-in-and-out.frag deleted file mode 100644 index 185a09821e..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/sample-mask-in-and-out.frag +++ /dev/null @@ -1,30 +0,0 @@ -static int gl_SampleMaskIn; -static int gl_SampleMask; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - uint gl_SampleMaskIn : SV_Coverage; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; - uint gl_SampleMask : SV_Coverage; -}; - -void frag_main() -{ - FragColor = 1.0f.xxxx; - gl_SampleMask = gl_SampleMaskIn; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - gl_SampleMaskIn = stage_input.gl_SampleMaskIn; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_SampleMask = gl_SampleMask; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/sample-mask-in.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/sample-mask-in.frag deleted file mode 100644 index 8f6cfaf9e5..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/sample-mask-in.frag +++ /dev/null @@ -1,32 +0,0 @@ -static int gl_SampleID; -static int gl_SampleMaskIn; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - uint gl_SampleID : SV_SampleIndex; - uint gl_SampleMaskIn : SV_Coverage; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - if ((gl_SampleMaskIn & (1 << gl_SampleID)) != 0) - { - FragColor = 1.0f.xxxx; - } -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - gl_SampleID = stage_input.gl_SampleID; - gl_SampleMaskIn = stage_input.gl_SampleMaskIn; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/sample-mask-out.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/sample-mask-out.frag deleted file mode 100644 index a966c03218..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/sample-mask-out.frag +++ /dev/null @@ -1,23 +0,0 @@ -static int gl_SampleMask; -static float4 FragColor; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; - uint gl_SampleMask : SV_Coverage; -}; - -void frag_main() -{ - FragColor = 1.0f.xxxx; - gl_SampleMask = 0; -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_SampleMask = gl_SampleMask; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/sampler-array.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/sampler-array.frag deleted file mode 100644 index fd08d4230d..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/sampler-array.frag +++ /dev/null @@ -1,45 +0,0 @@ -Texture2D uCombined[4] : register(t0); -SamplerState _uCombined_sampler[4] : register(s0); -Texture2D uTex[4] : register(t4); -SamplerState uSampler[4] : register(s8); -RWTexture2D uImage[8] : register(u12); - -static float4 gl_FragCoord; -static float2 vTex; -static int vIndex; - -struct SPIRV_Cross_Input -{ - float2 vTex : TEXCOORD0; - nointerpolation int vIndex : TEXCOORD1; - float4 gl_FragCoord : SV_Position; -}; - -float4 sample_in_function(Texture2D samp, SamplerState _samp_sampler) -{ - return samp.Sample(_samp_sampler, vTex); -} - -float4 sample_in_function2(Texture2D tex, SamplerState samp) -{ - return tex.Sample(samp, vTex); -} - -void frag_main() -{ - float4 color = uCombined[vIndex].Sample(_uCombined_sampler[vIndex], vTex); - color += uTex[vIndex].Sample(uSampler[vIndex], vTex); - int _72 = vIndex + 1; - color += sample_in_function(uCombined[_72], _uCombined_sampler[_72]); - color += sample_in_function2(uTex[vIndex + 1], uSampler[vIndex + 1]); - uImage[vIndex][int2(gl_FragCoord.xy)] = color; -} - -void main(SPIRV_Cross_Input stage_input) -{ - gl_FragCoord = stage_input.gl_FragCoord; - gl_FragCoord.w = 1.0 / gl_FragCoord.w; - vTex = stage_input.vTex; - vIndex = stage_input.vIndex; - frag_main(); -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/sampler-image-arrays.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/sampler-image-arrays.frag deleted file mode 100644 index 856f04cf47..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/sampler-image-arrays.frag +++ /dev/null @@ -1,54 +0,0 @@ -Texture2D uSampler[4] : register(t0); -SamplerState _uSampler_sampler[4] : register(s0); -Texture2D uTextures[4] : register(t8); -SamplerState uSamplers[4] : register(s4); - -static int vIndex; -static float2 vTex; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - nointerpolation float2 vTex : TEXCOORD0; - nointerpolation int vIndex : TEXCOORD1; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -float4 sample_from_global() -{ - return uSampler[vIndex].Sample(_uSampler_sampler[vIndex], vTex + 0.100000001490116119384765625f.xx); -} - -float4 sample_from_argument(Texture2D samplers[4], SamplerState _samplers_sampler[4]) -{ - return samplers[vIndex].Sample(_samplers_sampler[vIndex], vTex + 0.20000000298023223876953125f.xx); -} - -float4 sample_single_from_argument(Texture2D samp, SamplerState _samp_sampler) -{ - return samp.Sample(_samp_sampler, vTex + 0.300000011920928955078125f.xx); -} - -void frag_main() -{ - FragColor = 0.0f.xxxx; - FragColor += uTextures[2].Sample(uSamplers[1], vTex); - FragColor += uSampler[vIndex].Sample(_uSampler_sampler[vIndex], vTex); - FragColor += sample_from_global(); - FragColor += sample_from_argument(uSampler, _uSampler_sampler); - FragColor += sample_single_from_argument(uSampler[3], _uSampler_sampler[3]); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vIndex = stage_input.vIndex; - vTex = stage_input.vTex; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/scalar-refract-reflect.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/scalar-refract-reflect.frag deleted file mode 100644 index 6c2d0be4f7..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/scalar-refract-reflect.frag +++ /dev/null @@ -1,49 +0,0 @@ -static float FragColor; -static float3 vRefract; - -struct SPIRV_Cross_Input -{ - float3 vRefract : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float FragColor : SV_Target0; -}; - -float spvReflect(float i, float n) -{ - return i - 2.0 * dot(n, i) * n; -} - -float spvRefract(float i, float n, float eta) -{ - float NoI = n * i; - float NoI2 = NoI * NoI; - float k = 1.0 - eta * eta * (1.0 - NoI2); - if (k < 0.0) - { - return 0.0; - } - else - { - return eta * i - (eta * NoI + sqrt(k)) * n; - } -} - -void frag_main() -{ - FragColor = spvRefract(vRefract.x, vRefract.y, vRefract.z); - FragColor += spvReflect(vRefract.x, vRefract.y); - FragColor += refract(vRefract.xy, vRefract.yz, vRefract.z).y; - FragColor += reflect(vRefract.xy, vRefract.zy).y; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vRefract = stage_input.vRefract; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/separate-combined-fake-overload.sm30.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/separate-combined-fake-overload.sm30.frag deleted file mode 100644 index 08d8b0e185..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/separate-combined-fake-overload.sm30.frag +++ /dev/null @@ -1,32 +0,0 @@ -uniform sampler2D uSamp; -uniform sampler2D SPIRV_Cross_CombineduTuS; - -static float4 FragColor; - -struct SPIRV_Cross_Output -{ - float4 FragColor : COLOR0; -}; - -float4 samp(sampler2D uSamp_1) -{ - return tex2D(uSamp_1, 0.5f.xx); -} - -float4 samp_1(sampler2D SPIRV_Cross_CombinedTS) -{ - return tex2D(SPIRV_Cross_CombinedTS, 0.5f.xx); -} - -void frag_main() -{ - FragColor = samp(uSamp) + samp_1(SPIRV_Cross_CombineduTuS); -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = float4(FragColor); - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/spec-constant-block-size.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/spec-constant-block-size.frag deleted file mode 100644 index 415886dd31..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/spec-constant-block-size.frag +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef SPIRV_CROSS_CONSTANT_ID_10 -#define SPIRV_CROSS_CONSTANT_ID_10 2 -#endif -static const int Value = SPIRV_CROSS_CONSTANT_ID_10; - -cbuffer SpecConstArray : register(b0) -{ - float4 _15_samples[Value] : packoffset(c0); -}; - - -static float4 FragColor; -static int Index; - -struct SPIRV_Cross_Input -{ - nointerpolation int Index : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = _15_samples[Index]; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - Index = stage_input.Index; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/spec-constant-ternary.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/spec-constant-ternary.frag deleted file mode 100644 index 942da54f04..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/spec-constant-ternary.frag +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef SPIRV_CROSS_CONSTANT_ID_0 -#define SPIRV_CROSS_CONSTANT_ID_0 10u -#endif -static const uint s = SPIRV_CROSS_CONSTANT_ID_0; -static const bool _13 = (s > 20u); -static const uint f = _13 ? 30u : 50u; - -static float FragColor; - -struct SPIRV_Cross_Output -{ - float FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = float(f); -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/switch-unsigned-case.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/switch-unsigned-case.frag deleted file mode 100644 index d7ec92f0aa..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/switch-unsigned-case.frag +++ /dev/null @@ -1,38 +0,0 @@ -cbuffer Buff : register(b0) -{ - uint _15_TestVal : packoffset(c0); -}; - - -static float4 fsout_Color; - -struct SPIRV_Cross_Output -{ - float4 fsout_Color : SV_Target0; -}; - -void frag_main() -{ - fsout_Color = 1.0f.xxxx; - switch (_15_TestVal) - { - case 0u: - { - fsout_Color = 0.100000001490116119384765625f.xxxx; - break; - } - case 1u: - { - fsout_Color = 0.20000000298023223876953125f.xxxx; - break; - } - } -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.fsout_Color = fsout_Color; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/swizzle-scalar.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/swizzle-scalar.frag deleted file mode 100644 index ab310b82f2..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/swizzle-scalar.frag +++ /dev/null @@ -1,41 +0,0 @@ -static float4 Float; -static float vFloat; -static int4 Int; -static int vInt; -static float4 Float2; -static int4 Int2; - -struct SPIRV_Cross_Input -{ - nointerpolation float vFloat : TEXCOORD0; - nointerpolation int vInt : TEXCOORD1; -}; - -struct SPIRV_Cross_Output -{ - float4 Float : SV_Target0; - int4 Int : SV_Target1; - float4 Float2 : SV_Target2; - int4 Int2 : SV_Target3; -}; - -void frag_main() -{ - Float = vFloat.xxxx * 2.0f; - Int = vInt.xxxx * int4(2, 2, 2, 2); - Float2 = 10.0f.xxxx; - Int2 = int4(10, 10, 10, 10); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vFloat = stage_input.vFloat; - vInt = stage_input.vInt; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.Float = Float; - stage_output.Int = Int; - stage_output.Float2 = Float2; - stage_output.Int2 = Int2; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/tex-sampling-ms.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/tex-sampling-ms.frag deleted file mode 100644 index 854ad5016d..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/tex-sampling-ms.frag +++ /dev/null @@ -1,33 +0,0 @@ -Texture2DMS uTex : register(t0); -SamplerState _uTex_sampler : register(s0); - -static float4 gl_FragCoord; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - float4 gl_FragCoord : SV_Position; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = uTex.Load(int2(gl_FragCoord.xy), 0); - FragColor += uTex.Load(int2(gl_FragCoord.xy), 1); - FragColor += uTex.Load(int2(gl_FragCoord.xy), 2); - FragColor += uTex.Load(int2(gl_FragCoord.xy), 3); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - gl_FragCoord = stage_input.gl_FragCoord; - gl_FragCoord.w = 1.0 / gl_FragCoord.w; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/tex-sampling.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/tex-sampling.frag deleted file mode 100644 index 583217511f..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/tex-sampling.frag +++ /dev/null @@ -1,106 +0,0 @@ -Texture1D tex1d : register(t0); -SamplerState _tex1d_sampler : register(s0); -Texture2D tex2d : register(t1); -SamplerState _tex2d_sampler : register(s1); -Texture3D tex3d : register(t2); -SamplerState _tex3d_sampler : register(s2); -TextureCube texCube : register(t3); -SamplerState _texCube_sampler : register(s3); -Texture1D tex1dShadow : register(t4); -SamplerComparisonState _tex1dShadow_sampler : register(s4); -Texture2D tex2dShadow : register(t5); -SamplerComparisonState _tex2dShadow_sampler : register(s5); -TextureCube texCubeShadow : register(t6); -SamplerComparisonState _texCubeShadow_sampler : register(s6); -Texture1DArray tex1dArray : register(t7); -SamplerState _tex1dArray_sampler : register(s7); -Texture2DArray tex2dArray : register(t8); -SamplerState _tex2dArray_sampler : register(s8); -TextureCubeArray texCubeArray : register(t9); -SamplerState _texCubeArray_sampler : register(s9); -Texture2D separateTex2d : register(t12); -SamplerState samplerNonDepth : register(s11); -Texture2D separateTex2dDepth : register(t13); -SamplerComparisonState samplerDepth : register(s10); - -static float texCoord1d; -static float2 texCoord2d; -static float3 texCoord3d; -static float4 texCoord4d; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - float texCoord1d : TEXCOORD0; - float2 texCoord2d : TEXCOORD1; - float3 texCoord3d : TEXCOORD2; - float4 texCoord4d : TEXCOORD3; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - float4 texcolor = tex1d.Sample(_tex1d_sampler, texCoord1d); - texcolor += tex1d.Sample(_tex1d_sampler, texCoord1d, 1); - texcolor += tex1d.SampleLevel(_tex1d_sampler, texCoord1d, 2.0f); - texcolor += tex1d.SampleGrad(_tex1d_sampler, texCoord1d, 1.0f, 2.0f); - float2 _41 = float2(texCoord1d, 2.0f); - texcolor += tex1d.Sample(_tex1d_sampler, _41.x / _41.y); - texcolor += tex1d.SampleBias(_tex1d_sampler, texCoord1d, 1.0f); - texcolor += tex2d.Sample(_tex2d_sampler, texCoord2d); - texcolor += tex2d.Sample(_tex2d_sampler, texCoord2d, int2(1, 2)); - texcolor += tex2d.SampleLevel(_tex2d_sampler, texCoord2d, 2.0f); - texcolor += tex2d.SampleGrad(_tex2d_sampler, texCoord2d, float2(1.0f, 2.0f), float2(3.0f, 4.0f)); - float3 _88 = float3(texCoord2d, 2.0f); - texcolor += tex2d.Sample(_tex2d_sampler, _88.xy / _88.z); - texcolor += tex2d.SampleBias(_tex2d_sampler, texCoord2d, 1.0f); - texcolor += tex3d.Sample(_tex3d_sampler, texCoord3d); - texcolor += tex3d.Sample(_tex3d_sampler, texCoord3d, int3(1, 2, 3)); - texcolor += tex3d.SampleLevel(_tex3d_sampler, texCoord3d, 2.0f); - texcolor += tex3d.SampleGrad(_tex3d_sampler, texCoord3d, float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f)); - float4 _135 = float4(texCoord3d, 2.0f); - texcolor += tex3d.Sample(_tex3d_sampler, _135.xyz / _135.w); - texcolor += tex3d.SampleBias(_tex3d_sampler, texCoord3d, 1.0f); - texcolor += texCube.Sample(_texCube_sampler, texCoord3d); - texcolor += texCube.SampleLevel(_texCube_sampler, texCoord3d, 2.0f); - texcolor += texCube.SampleBias(_texCube_sampler, texCoord3d, 1.0f); - float3 _170 = float3(texCoord1d, 0.0f, 0.0f); - texcolor.w += tex1dShadow.SampleCmp(_tex1dShadow_sampler, _170.x, _170.z); - float3 _188 = float3(texCoord2d, 0.0f); - texcolor.w += tex2dShadow.SampleCmp(_tex2dShadow_sampler, _188.xy, _188.z); - float4 _204 = float4(texCoord3d, 0.0f); - texcolor.w += texCubeShadow.SampleCmp(_texCubeShadow_sampler, _204.xyz, _204.w); - texcolor += tex1dArray.Sample(_tex1dArray_sampler, texCoord2d); - texcolor += tex2dArray.Sample(_tex2dArray_sampler, texCoord3d); - texcolor += texCubeArray.Sample(_texCubeArray_sampler, texCoord4d); - texcolor += tex2d.GatherRed(_tex2d_sampler, texCoord2d); - texcolor += tex2d.GatherRed(_tex2d_sampler, texCoord2d); - texcolor += tex2d.GatherGreen(_tex2d_sampler, texCoord2d); - texcolor += tex2d.GatherBlue(_tex2d_sampler, texCoord2d); - texcolor += tex2d.GatherAlpha(_tex2d_sampler, texCoord2d); - texcolor += tex2d.GatherRed(_tex2d_sampler, texCoord2d, int2(1, 1)); - texcolor += tex2d.GatherRed(_tex2d_sampler, texCoord2d, int2(1, 1)); - texcolor += tex2d.GatherGreen(_tex2d_sampler, texCoord2d, int2(1, 1)); - texcolor += tex2d.GatherBlue(_tex2d_sampler, texCoord2d, int2(1, 1)); - texcolor += tex2d.GatherAlpha(_tex2d_sampler, texCoord2d, int2(1, 1)); - texcolor += tex2d.Load(int3(int2(1, 2), 0)); - texcolor += separateTex2d.Sample(samplerNonDepth, texCoord2d); - texcolor.w += separateTex2dDepth.SampleCmp(samplerDepth, texCoord3d.xy, texCoord3d.z); - FragColor = texcolor; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - texCoord1d = stage_input.texCoord1d; - texCoord2d = stage_input.texCoord2d; - texCoord3d = stage_input.texCoord3d; - texCoord4d = stage_input.texCoord4d; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/tex-sampling.sm30.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/tex-sampling.sm30.frag deleted file mode 100644 index 10c6c06531..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/tex-sampling.sm30.frag +++ /dev/null @@ -1,83 +0,0 @@ -uniform sampler1D tex1d; -uniform sampler2D tex2d; -uniform sampler3D tex3d; -uniform samplerCUBE texCube; -uniform sampler1D tex1dShadow; -uniform sampler2D tex2dShadow; - -static float texCoord1d; -static float2 texCoord2d; -static float3 texCoord3d; -static float4 FragColor; -static float4 texCoord4d; - -struct SPIRV_Cross_Input -{ - float texCoord1d : TEXCOORD0; - float2 texCoord2d : TEXCOORD1; - float3 texCoord3d : TEXCOORD2; - float4 texCoord4d : TEXCOORD3; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : COLOR0; -}; - -void frag_main() -{ - float4 texcolor = tex1D(tex1d, texCoord1d); - texcolor += tex1Dlod(tex1d, float4(texCoord1d, 0.0, 0.0, 2.0f)); - texcolor += tex1Dgrad(tex1d, texCoord1d, 1.0f, 2.0f); - float2 _34 = float2(texCoord1d, 2.0f); - texcolor += tex1Dproj(tex1d, float4(_34.x, 0.0, 0.0, _34.y)); - texcolor += tex1Dbias(tex1d, float4(texCoord1d, 0.0, 0.0, 1.0f)); - texcolor += tex2D(tex2d, texCoord2d); - texcolor += tex2Dlod(tex2d, float4(texCoord2d, 0.0, 2.0f)); - texcolor += tex2Dgrad(tex2d, texCoord2d, float2(1.0f, 2.0f), float2(3.0f, 4.0f)); - float3 _73 = float3(texCoord2d, 2.0f); - texcolor += tex2Dproj(tex2d, float4(_73.xy, 0.0, _73.z)); - texcolor += tex2Dbias(tex2d, float4(texCoord2d, 0.0, 1.0f)); - texcolor += tex3D(tex3d, texCoord3d); - texcolor += tex3Dlod(tex3d, float4(texCoord3d, 2.0f)); - texcolor += tex3Dgrad(tex3d, texCoord3d, float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f)); - float4 _112 = float4(texCoord3d, 2.0f); - texcolor += tex3Dproj(tex3d, float4(_112.xyz, _112.w)); - texcolor += tex3Dbias(tex3d, float4(texCoord3d, 1.0f)); - texcolor += texCUBE(texCube, texCoord3d); - texcolor += texCUBElod(texCube, float4(texCoord3d, 2.0f)); - texcolor += texCUBEbias(texCube, float4(texCoord3d, 1.0f)); - float3 _147 = float3(texCoord1d, 0.0f, 0.0f); - texcolor.w += tex1Dproj(tex1dShadow, float4(_147.x, 0.0, _147.z, 1.0)).x; - float3 _159 = float3(texCoord1d, 0.0f, 0.0f); - texcolor.w += tex1Dlod(tex1dShadow, float4(_159.x, 0.0, _159.z, 2.0f)).x; - float4 _168 = float4(texCoord1d, 0.0f, 0.0f, 2.0f); - float4 _171 = _168; - _171.y = _168.w; - texcolor.w += tex1Dproj(tex1dShadow, float4(_171.x, 0.0, _168.z, _171.y)).x; - float3 _179 = float3(texCoord1d, 0.0f, 0.0f); - texcolor.w += tex1Dbias(tex1dShadow, float4(_179.x, 0.0, _179.z, 1.0f)).x; - float3 _194 = float3(texCoord2d, 0.0f); - texcolor.w += tex2Dproj(tex2dShadow, float4(_194.xy, _194.z, 1.0)).x; - float3 _205 = float3(texCoord2d, 0.0f); - texcolor.w += tex2Dlod(tex2dShadow, float4(_205.xy, _205.z, 2.0f)).x; - float4 _216 = float4(texCoord2d, 0.0f, 2.0f); - float4 _219 = _216; - _219.z = _216.w; - texcolor.w += tex2Dproj(tex2dShadow, float4(_219.xy, _216.z, _219.z)).x; - float3 _229 = float3(texCoord2d, 0.0f); - texcolor.w += tex2Dbias(tex2dShadow, float4(_229.xy, _229.z, 1.0f)).x; - FragColor = texcolor; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - texCoord1d = stage_input.texCoord1d; - texCoord2d = stage_input.texCoord2d; - texCoord3d = stage_input.texCoord3d; - texCoord4d = stage_input.texCoord4d; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = float4(FragColor); - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/texel-fetch-offset.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/texel-fetch-offset.frag deleted file mode 100644 index c7ae589dd2..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/texel-fetch-offset.frag +++ /dev/null @@ -1,31 +0,0 @@ -Texture2D uTexture : register(t0); -SamplerState _uTexture_sampler : register(s0); - -static float4 gl_FragCoord; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - float4 gl_FragCoord : SV_Position; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = uTexture.Load(int3(int2(gl_FragCoord.xy), 0), int2(1, 1)); - FragColor += uTexture.Load(int3(int2(gl_FragCoord.xy), 0), int2(-1, 1)); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - gl_FragCoord = stage_input.gl_FragCoord; - gl_FragCoord.w = 1.0 / gl_FragCoord.w; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/texture-proj-shadow.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/texture-proj-shadow.frag deleted file mode 100644 index 07e06008a0..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/texture-proj-shadow.frag +++ /dev/null @@ -1,51 +0,0 @@ -Texture1D uShadow1D : register(t0); -SamplerComparisonState _uShadow1D_sampler : register(s0); -Texture2D uShadow2D : register(t1); -SamplerComparisonState _uShadow2D_sampler : register(s1); -Texture1D uSampler1D : register(t2); -SamplerState _uSampler1D_sampler : register(s2); -Texture2D uSampler2D : register(t3); -SamplerState _uSampler2D_sampler : register(s3); -Texture3D uSampler3D : register(t4); -SamplerState _uSampler3D_sampler : register(s4); - -static float FragColor; -static float4 vClip4; -static float2 vClip2; -static float3 vClip3; - -struct SPIRV_Cross_Input -{ - float3 vClip3 : TEXCOORD0; - float4 vClip4 : TEXCOORD1; - float2 vClip2 : TEXCOORD2; -}; - -struct SPIRV_Cross_Output -{ - float FragColor : SV_Target0; -}; - -void frag_main() -{ - float4 _20 = vClip4; - _20.y = vClip4.w; - FragColor = uShadow1D.SampleCmp(_uShadow1D_sampler, _20.x / _20.y, vClip4.z / _20.y); - float4 _30 = vClip4; - _30.z = vClip4.w; - FragColor = uShadow2D.SampleCmp(_uShadow2D_sampler, _30.xy / _30.z, vClip4.z / _30.z); - FragColor = uSampler1D.Sample(_uSampler1D_sampler, vClip2.x / vClip2.y).x; - FragColor = uSampler2D.Sample(_uSampler2D_sampler, vClip3.xy / vClip3.z).x; - FragColor = uSampler3D.Sample(_uSampler3D_sampler, vClip4.xyz / vClip4.w).x; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vClip4 = stage_input.vClip4; - vClip2 = stage_input.vClip2; - vClip3 = stage_input.vClip3; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/texture-size-combined-image-sampler.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/texture-size-combined-image-sampler.frag deleted file mode 100644 index dd2eb251fc..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/texture-size-combined-image-sampler.frag +++ /dev/null @@ -1,30 +0,0 @@ -Texture2D uTex : register(t0); -SamplerState uSampler : register(s1); - -static int2 FooOut; - -struct SPIRV_Cross_Output -{ - int2 FooOut : SV_Target0; -}; - -uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) -{ - uint2 ret; - Tex.GetDimensions(Level, ret.x, ret.y, Param); - return ret; -} - -void frag_main() -{ - uint _23_dummy_parameter; - FooOut = int2(spvTextureSize(uTex, uint(0), _23_dummy_parameter)); -} - -SPIRV_Cross_Output main() -{ - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FooOut = FooOut; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/unary-enclose.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/unary-enclose.frag deleted file mode 100644 index 597c57f800..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/unary-enclose.frag +++ /dev/null @@ -1,32 +0,0 @@ -static float4 FragColor; -static float4 vIn; -static int4 vIn1; - -struct SPIRV_Cross_Input -{ - float4 vIn : TEXCOORD0; - nointerpolation int4 vIn1 : TEXCOORD1; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - FragColor = -(-vIn); - int4 a = ~(~vIn1); - bool b = false; - b = !(!b); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vIn = stage_input.vIn; - vIn1 = stage_input.vIn1; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/unorm-snorm-packing.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/unorm-snorm-packing.frag deleted file mode 100644 index 0dd9ed3fa8..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/unorm-snorm-packing.frag +++ /dev/null @@ -1,109 +0,0 @@ -static float4 FP32Out; -static uint UNORM8; -static uint SNORM8; -static uint UNORM16; -static uint SNORM16; -static uint UNORM8Out; -static float4 FP32; -static uint SNORM8Out; -static uint UNORM16Out; -static uint SNORM16Out; - -struct SPIRV_Cross_Input -{ - nointerpolation uint SNORM8 : TEXCOORD0; - nointerpolation uint UNORM8 : TEXCOORD1; - nointerpolation uint SNORM16 : TEXCOORD2; - nointerpolation uint UNORM16 : TEXCOORD3; - nointerpolation float4 FP32 : TEXCOORD4; -}; - -struct SPIRV_Cross_Output -{ - float4 FP32Out : SV_Target0; - uint UNORM8Out : SV_Target1; - uint SNORM8Out : SV_Target2; - uint UNORM16Out : SV_Target3; - uint SNORM16Out : SV_Target4; -}; - -uint spvPackUnorm4x8(float4 value) -{ - uint4 Packed = uint4(round(saturate(value) * 255.0)); - return Packed.x | (Packed.y << 8) | (Packed.z << 16) | (Packed.w << 24); -} - -float4 spvUnpackUnorm4x8(uint value) -{ - uint4 Packed = uint4(value & 0xff, (value >> 8) & 0xff, (value >> 16) & 0xff, value >> 24); - return float4(Packed) / 255.0; -} - -uint spvPackSnorm4x8(float4 value) -{ - int4 Packed = int4(round(clamp(value, -1.0, 1.0) * 127.0)) & 0xff; - return uint(Packed.x | (Packed.y << 8) | (Packed.z << 16) | (Packed.w << 24)); -} - -float4 spvUnpackSnorm4x8(uint value) -{ - int SignedValue = int(value); - int4 Packed = int4(SignedValue << 24, SignedValue << 16, SignedValue << 8, SignedValue) >> 24; - return clamp(float4(Packed) / 127.0, -1.0, 1.0); -} - -uint spvPackUnorm2x16(float2 value) -{ - uint2 Packed = uint2(round(saturate(value) * 65535.0)); - return Packed.x | (Packed.y << 16); -} - -float2 spvUnpackUnorm2x16(uint value) -{ - uint2 Packed = uint2(value & 0xffff, value >> 16); - return float2(Packed) / 65535.0; -} - -uint spvPackSnorm2x16(float2 value) -{ - int2 Packed = int2(round(clamp(value, -1.0, 1.0) * 32767.0)) & 0xffff; - return uint(Packed.x | (Packed.y << 16)); -} - -float2 spvUnpackSnorm2x16(uint value) -{ - int SignedValue = int(value); - int2 Packed = int2(SignedValue << 16, SignedValue) >> 16; - return clamp(float2(Packed) / 32767.0, -1.0, 1.0); -} - -void frag_main() -{ - FP32Out = spvUnpackUnorm4x8(UNORM8); - FP32Out = spvUnpackSnorm4x8(SNORM8); - float2 _21 = spvUnpackUnorm2x16(UNORM16); - FP32Out = float4(_21.x, _21.y, FP32Out.z, FP32Out.w); - float2 _26 = spvUnpackSnorm2x16(SNORM16); - FP32Out = float4(_26.x, _26.y, FP32Out.z, FP32Out.w); - UNORM8Out = spvPackUnorm4x8(FP32); - SNORM8Out = spvPackSnorm4x8(FP32); - UNORM16Out = spvPackUnorm2x16(FP32.xy); - SNORM16Out = spvPackSnorm2x16(FP32.zw); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - UNORM8 = stage_input.UNORM8; - SNORM8 = stage_input.SNORM8; - UNORM16 = stage_input.UNORM16; - SNORM16 = stage_input.SNORM16; - FP32 = stage_input.FP32; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FP32Out = FP32Out; - stage_output.UNORM8Out = UNORM8Out; - stage_output.SNORM8Out = SNORM8Out; - stage_output.UNORM16Out = UNORM16Out; - stage_output.SNORM16Out = SNORM16Out; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/frag/various-glsl-ops.frag b/third_party/spirv-cross/reference/shaders-hlsl/frag/various-glsl-ops.frag deleted file mode 100644 index f0b345482b..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/frag/various-glsl-ops.frag +++ /dev/null @@ -1,28 +0,0 @@ -static float2 interpolant; -static float4 FragColor; - -struct SPIRV_Cross_Input -{ - float2 interpolant : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float4 FragColor : SV_Target0; -}; - -void frag_main() -{ - float4 color = float4(0.0f, 0.0f, 0.0f, EvaluateAttributeSnapped(interpolant, 0.100000001490116119384765625f.xx).x); - color += float4(0.0f, 0.0f, 0.0f, ddx_coarse(interpolant.x)); - FragColor = color; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - interpolant = stage_input.interpolant; - frag_main(); - SPIRV_Cross_Output stage_output; - stage_output.FragColor = FragColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/vert/basic.vert b/third_party/spirv-cross/reference/shaders-hlsl/vert/basic.vert deleted file mode 100644 index e0bcebf725..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/vert/basic.vert +++ /dev/null @@ -1,39 +0,0 @@ -cbuffer UBO : register(b0) -{ - row_major float4x4 _16_uMVP : packoffset(c0); -}; - - -static float4 gl_Position; -static float4 aVertex; -static float3 vNormal; -static float3 aNormal; - -struct SPIRV_Cross_Input -{ - float4 aVertex : TEXCOORD0; - float3 aNormal : TEXCOORD1; -}; - -struct SPIRV_Cross_Output -{ - float3 vNormal : TEXCOORD0; - float4 gl_Position : SV_Position; -}; - -void vert_main() -{ - gl_Position = mul(aVertex, _16_uMVP); - vNormal = aNormal; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - aVertex = stage_input.aVertex; - aNormal = stage_input.aNormal; - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - stage_output.vNormal = vNormal; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/vert/clip-cull-distance.vert b/third_party/spirv-cross/reference/shaders-hlsl/vert/clip-cull-distance.vert deleted file mode 100644 index 7e0d104acd..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/vert/clip-cull-distance.vert +++ /dev/null @@ -1,28 +0,0 @@ -static float4 gl_Position; -static float gl_ClipDistance[2]; -static float gl_CullDistance[1]; -struct SPIRV_Cross_Output -{ - float4 gl_Position : SV_Position; - float2 gl_ClipDistance0 : SV_ClipDistance0; - float gl_CullDistance0 : SV_CullDistance0; -}; - -void vert_main() -{ - gl_Position = 1.0f.xxxx; - gl_ClipDistance[0] = 0.0f; - gl_ClipDistance[1] = 0.0f; - gl_CullDistance[0] = 4.0f; -} - -SPIRV_Cross_Output main() -{ - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - stage_output.gl_ClipDistance0.x = gl_ClipDistance[0]; - stage_output.gl_ClipDistance0.y = gl_ClipDistance[1]; - stage_output.gl_CullDistance0.x = gl_CullDistance[0]; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/vert/instancing.vert b/third_party/spirv-cross/reference/shaders-hlsl/vert/instancing.vert deleted file mode 100644 index 48b2df20d3..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/vert/instancing.vert +++ /dev/null @@ -1,28 +0,0 @@ -static float4 gl_Position; -static int gl_VertexIndex; -static int gl_InstanceIndex; -struct SPIRV_Cross_Input -{ - uint gl_VertexIndex : SV_VertexID; - uint gl_InstanceIndex : SV_InstanceID; -}; - -struct SPIRV_Cross_Output -{ - float4 gl_Position : SV_Position; -}; - -void vert_main() -{ - gl_Position = float(gl_VertexIndex + gl_InstanceIndex).xxxx; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - gl_VertexIndex = int(stage_input.gl_VertexIndex); - gl_InstanceIndex = int(stage_input.gl_InstanceIndex); - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/vert/invariant.vert b/third_party/spirv-cross/reference/shaders-hlsl/vert/invariant.vert deleted file mode 100644 index 5473962686..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/vert/invariant.vert +++ /dev/null @@ -1,40 +0,0 @@ -static float4 gl_Position; -static float4 vInput0; -static float4 vInput1; -static float4 vInput2; -static float4 vColor; - -struct SPIRV_Cross_Input -{ - float4 vInput0 : TEXCOORD0; - float4 vInput1 : TEXCOORD1; - float4 vInput2 : TEXCOORD2; -}; - -struct SPIRV_Cross_Output -{ - precise float4 vColor : TEXCOORD0; - precise float4 gl_Position : SV_Position; -}; - -void vert_main() -{ - float4 _20 = vInput1 * vInput2; - float4 _21 = vInput0 + _20; - gl_Position = _21; - float4 _27 = vInput0 - vInput1; - float4 _29 = _27 * vInput2; - vColor = _29; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vInput0 = stage_input.vInput0; - vInput1 = stage_input.vInput1; - vInput2 = stage_input.vInput2; - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - stage_output.vColor = vColor; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/vert/locations.vert b/third_party/spirv-cross/reference/shaders-hlsl/vert/locations.vert deleted file mode 100644 index b06b204bdd..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/vert/locations.vert +++ /dev/null @@ -1,75 +0,0 @@ -struct Foo -{ - float3 a; - float3 b; - float3 c; -}; - -static float4 gl_Position; -static float4 Input2; -static float4 Input4; -static float4 Input0; -static float vLocation0; -static float vLocation1; -static float vLocation2[2]; -static Foo vLocation4; -static float vLocation9; - -struct VertexOut -{ - float3 color : TEXCOORD7; - float3 foo : TEXCOORD8; -}; - -static VertexOut vout; - -struct SPIRV_Cross_Input -{ - float4 Input0 : TEXCOORD0; - float4 Input2 : TEXCOORD2; - float4 Input4 : TEXCOORD4; -}; - -struct SPIRV_Cross_Output -{ - float vLocation0 : TEXCOORD0; - float vLocation1 : TEXCOORD1; - float vLocation2[2] : TEXCOORD2; - Foo vLocation4 : TEXCOORD4; - float vLocation9 : TEXCOORD9; - float4 gl_Position : SV_Position; -}; - -void vert_main() -{ - gl_Position = ((1.0f.xxxx + Input2) + Input4) + Input0; - vLocation0 = 0.0f; - vLocation1 = 1.0f; - vLocation2[0] = 2.0f; - vLocation2[1] = 2.0f; - Foo foo; - foo.a = 1.0f.xxx; - foo.b = 1.0f.xxx; - foo.c = 1.0f.xxx; - vLocation4 = foo; - vLocation9 = 9.0f; - vout.color = 2.0f.xxx; - vout.foo = 4.0f.xxx; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input, out VertexOut stage_outputvout) -{ - Input2 = stage_input.Input2; - Input4 = stage_input.Input4; - Input0 = stage_input.Input0; - vert_main(); - stage_outputvout = vout; - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - stage_output.vLocation0 = vLocation0; - stage_output.vLocation1 = vLocation1; - stage_output.vLocation2 = vLocation2; - stage_output.vLocation4 = vLocation4; - stage_output.vLocation9 = vLocation9; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/vert/matrix-attribute.vert b/third_party/spirv-cross/reference/shaders-hlsl/vert/matrix-attribute.vert deleted file mode 100644 index a3d0eef56e..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/vert/matrix-attribute.vert +++ /dev/null @@ -1,35 +0,0 @@ -static float4 gl_Position; -static float4x4 m; -static float3 pos; - -struct SPIRV_Cross_Input -{ - float3 pos : TEXCOORD0; - float4 m_0 : TEXCOORD1_0; - float4 m_1 : TEXCOORD1_1; - float4 m_2 : TEXCOORD1_2; - float4 m_3 : TEXCOORD1_3; -}; - -struct SPIRV_Cross_Output -{ - float4 gl_Position : SV_Position; -}; - -void vert_main() -{ - gl_Position = mul(float4(pos, 1.0f), m); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - m[0] = stage_input.m_0; - m[1] = stage_input.m_1; - m[2] = stage_input.m_2; - m[3] = stage_input.m_3; - pos = stage_input.pos; - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/vert/matrix-output.vert b/third_party/spirv-cross/reference/shaders-hlsl/vert/matrix-output.vert deleted file mode 100644 index dc776cb5ec..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/vert/matrix-output.vert +++ /dev/null @@ -1,23 +0,0 @@ -static float4 gl_Position; -static float4x4 m; - -struct SPIRV_Cross_Output -{ - float4x4 m : TEXCOORD0; - float4 gl_Position : SV_Position; -}; - -void vert_main() -{ - gl_Position = 1.0f.xxxx; - m = float4x4(float4(1.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 1.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 1.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 1.0f)); -} - -SPIRV_Cross_Output main() -{ - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - stage_output.m = m; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/vert/no-contraction.vert b/third_party/spirv-cross/reference/shaders-hlsl/vert/no-contraction.vert deleted file mode 100644 index ad37dc23f1..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/vert/no-contraction.vert +++ /dev/null @@ -1,45 +0,0 @@ -static float4 gl_Position; -static float4 vA; -static float4 vB; -static float4 vC; - -struct SPIRV_Cross_Input -{ - float4 vA : TEXCOORD0; - float4 vB : TEXCOORD1; - float4 vC : TEXCOORD2; -}; - -struct SPIRV_Cross_Output -{ - float4 gl_Position : SV_Position; -}; - -void vert_main() -{ - precise float4 _15 = vA * vB; - float4 mul = _15; - precise float4 _19 = vA + vB; - float4 add = _19; - precise float4 _23 = vA - vB; - float4 sub = _23; - precise float4 _27 = vA * vB; - precise float4 _30 = _27 + vC; - float4 mad = _30; - precise float4 _34 = mul + add; - precise float4 _36 = _34 + sub; - precise float4 _38 = _36 + mad; - float4 summed = _38; - gl_Position = summed; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vA = stage_input.vA; - vB = stage_input.vB; - vC = stage_input.vC; - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/vert/no-input.vert b/third_party/spirv-cross/reference/shaders-hlsl/vert/no-input.vert deleted file mode 100644 index c98544dbe8..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/vert/no-input.vert +++ /dev/null @@ -1,18 +0,0 @@ -static float4 gl_Position; -struct SPIRV_Cross_Output -{ - float4 gl_Position : SV_Position; -}; - -void vert_main() -{ - gl_Position = 1.0f.xxxx; -} - -SPIRV_Cross_Output main() -{ - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/vert/point-size-compat.vert b/third_party/spirv-cross/reference/shaders-hlsl/vert/point-size-compat.vert deleted file mode 100644 index 95f45d02f0..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/vert/point-size-compat.vert +++ /dev/null @@ -1,20 +0,0 @@ -static float4 gl_Position; -static float gl_PointSize; -struct SPIRV_Cross_Output -{ - float4 gl_Position : SV_Position; -}; - -void vert_main() -{ - gl_Position = 1.0f.xxxx; - gl_PointSize = 1.0f; -} - -SPIRV_Cross_Output main() -{ - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/vert/qualifiers.vert b/third_party/spirv-cross/reference/shaders-hlsl/vert/qualifiers.vert deleted file mode 100644 index 13ee2a8c1c..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/vert/qualifiers.vert +++ /dev/null @@ -1,50 +0,0 @@ -static float4 gl_Position; -static float vFlat; -static float vCentroid; -static float vSample; -static float vNoperspective; - -struct Block -{ - nointerpolation float vFlat : TEXCOORD4; - centroid float vCentroid : TEXCOORD5; - sample float vSample : TEXCOORD6; - noperspective float vNoperspective : TEXCOORD7; -}; - -static Block vout; - -struct SPIRV_Cross_Output -{ - nointerpolation float vFlat : TEXCOORD0; - centroid float vCentroid : TEXCOORD1; - sample float vSample : TEXCOORD2; - noperspective float vNoperspective : TEXCOORD3; - float4 gl_Position : SV_Position; -}; - -void vert_main() -{ - gl_Position = 1.0f.xxxx; - vFlat = 0.0f; - vCentroid = 1.0f; - vSample = 2.0f; - vNoperspective = 3.0f; - vout.vFlat = 0.0f; - vout.vCentroid = 1.0f; - vout.vSample = 2.0f; - vout.vNoperspective = 3.0f; -} - -SPIRV_Cross_Output main(out Block stage_outputvout) -{ - vert_main(); - stage_outputvout = vout; - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - stage_output.vFlat = vFlat; - stage_output.vCentroid = vCentroid; - stage_output.vSample = vSample; - stage_output.vNoperspective = vNoperspective; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/vert/read-from-row-major-array.vert b/third_party/spirv-cross/reference/shaders-hlsl/vert/read-from-row-major-array.vert deleted file mode 100644 index f656c0a79f..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/vert/read-from-row-major-array.vert +++ /dev/null @@ -1,65 +0,0 @@ -cbuffer Block : register(b0) -{ - column_major float2x3 _104_var[3][4] : packoffset(c0); -}; - - -static float4 gl_Position; -static float4 a_position; -static float v_vtxResult; - -struct SPIRV_Cross_Input -{ - float4 a_position : TEXCOORD0; -}; - -struct SPIRV_Cross_Output -{ - float v_vtxResult : TEXCOORD0; - float4 gl_Position : SV_Position; -}; - -float compare_float(float a, float b) -{ - return float(abs(a - b) < 0.0500000007450580596923828125f); -} - -float compare_vec3(float3 a, float3 b) -{ - float param = a.x; - float param_1 = b.x; - float param_2 = a.y; - float param_3 = b.y; - float param_4 = a.z; - float param_5 = b.z; - return (compare_float(param, param_1) * compare_float(param_2, param_3)) * compare_float(param_4, param_5); -} - -float compare_mat2x3(float2x3 a, float2x3 b) -{ - float3 param = a[0]; - float3 param_1 = b[0]; - float3 param_2 = a[1]; - float3 param_3 = b[1]; - return compare_vec3(param, param_1) * compare_vec3(param_2, param_3); -} - -void vert_main() -{ - gl_Position = a_position; - float result = 1.0f; - float2x3 param = _104_var[0][0]; - float2x3 param_1 = float2x3(float3(2.0f, 6.0f, -6.0f), float3(0.0f, 5.0f, 5.0f)); - result *= compare_mat2x3(param, param_1); - v_vtxResult = result; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - a_position = stage_input.a_position; - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - stage_output.v_vtxResult = v_vtxResult; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/vert/return-array.vert b/third_party/spirv-cross/reference/shaders-hlsl/vert/return-array.vert deleted file mode 100644 index 3e021257bd..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/vert/return-array.vert +++ /dev/null @@ -1,48 +0,0 @@ -static const float4 _20[2] = { 10.0f.xxxx, 20.0f.xxxx }; - -static float4 gl_Position; -static float4 vInput0; -static float4 vInput1; - -struct SPIRV_Cross_Input -{ - float4 vInput0 : TEXCOORD0; - float4 vInput1 : TEXCOORD1; -}; - -struct SPIRV_Cross_Output -{ - float4 gl_Position : SV_Position; -}; - -void test(out float4 spvReturnValue[2]) -{ - spvReturnValue = _20; -} - -void test2(out float4 spvReturnValue[2]) -{ - float4 foobar[2]; - foobar[0] = vInput0; - foobar[1] = vInput1; - spvReturnValue = foobar; -} - -void vert_main() -{ - float4 _42[2]; - test(_42); - float4 _44[2]; - test2(_44); - gl_Position = _42[0] + _44[1]; -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - vInput0 = stage_input.vInput0; - vInput1 = stage_input.vInput1; - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/vert/sampler-buffers.vert b/third_party/spirv-cross/reference/shaders-hlsl/vert/sampler-buffers.vert deleted file mode 100644 index a4329dbf36..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/vert/sampler-buffers.vert +++ /dev/null @@ -1,27 +0,0 @@ -Buffer uFloatSampler : register(t1); -Buffer uIntSampler : register(t2); -Buffer uUintSampler : register(t3); - -static float4 gl_Position; -struct SPIRV_Cross_Output -{ - float4 gl_Position : SV_Position; -}; - -float4 sample_from_function(Buffer s0, Buffer s1, Buffer s2) -{ - return (s0.Load(20) + asfloat(s1.Load(40))) + asfloat(s2.Load(60)); -} - -void vert_main() -{ - gl_Position = sample_from_function(uFloatSampler, uIntSampler, uUintSampler); -} - -SPIRV_Cross_Output main() -{ - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/vert/struct-composite-decl.vert b/third_party/spirv-cross/reference/shaders-hlsl/vert/struct-composite-decl.vert deleted file mode 100644 index 5b2c5824fc..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/vert/struct-composite-decl.vert +++ /dev/null @@ -1,50 +0,0 @@ -struct VOut -{ - float4 a; - float4 b; - float4 c; - float4 d; -}; - -static VOut vout; -static float4 a; -static float4 b; -static float4 c; -static float4 d; - -struct SPIRV_Cross_Input -{ - float4 a : TEXCOORD0; - float4 b : TEXCOORD1; - float4 c : TEXCOORD2; - float4 d : TEXCOORD3; -}; - -struct SPIRV_Cross_Output -{ - VOut vout : TEXCOORD0; -}; - -void emit_result(VOut v) -{ - vout = v; -} - -void vert_main() -{ - VOut _26 = { a, b, c, d }; - VOut param = _26; - emit_result(param); -} - -SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) -{ - a = stage_input.a; - b = stage_input.b; - c = stage_input.c; - d = stage_input.d; - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.vout = vout; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-hlsl/vert/texture_buffer.vert b/third_party/spirv-cross/reference/shaders-hlsl/vert/texture_buffer.vert deleted file mode 100644 index 1c92f6fe65..0000000000 --- a/third_party/spirv-cross/reference/shaders-hlsl/vert/texture_buffer.vert +++ /dev/null @@ -1,21 +0,0 @@ -Buffer uSamp : register(t4); -RWBuffer uSampo : register(u5); - -static float4 gl_Position; -struct SPIRV_Cross_Output -{ - float4 gl_Position : SV_Position; -}; - -void vert_main() -{ - gl_Position = uSamp.Load(10) + uSampo[100]; -} - -SPIRV_Cross_Output main() -{ - vert_main(); - SPIRV_Cross_Output stage_output; - stage_output.gl_Position = gl_Position; - return stage_output; -} diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/aliased-struct-divergent-member-name.asm.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/aliased-struct-divergent-member-name.asm.comp deleted file mode 100644 index d24b9666fa..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/aliased-struct-divergent-member-name.asm.comp +++ /dev/null @@ -1,38 +0,0 @@ -#include -#include - -using namespace metal; - -struct T -{ - float a; -}; - -struct T_1 -{ - float b; -}; - -struct SSBO1 -{ - T_1 foo[1]; -}; - -struct T_2 -{ - float c; - char _m0_final_padding[12]; -}; - -struct SSBO2 -{ - T_2 bar[1]; -}; - -kernel void main0(device SSBO1& _7 [[buffer(0)]], device SSBO2& _10 [[buffer(1)]]) -{ - T v = T{ 40.0 }; - _7.foo[10].b = v.a; - _10.bar[30].c = v.a; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/arithmetic-conversion-signs.asm.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/arithmetic-conversion-signs.asm.comp deleted file mode 100644 index c3f9f5e14e..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/arithmetic-conversion-signs.asm.comp +++ /dev/null @@ -1,42 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - int s32; - uint u32; - short s16; - ushort u16; - float f32; -}; - -kernel void main0(device SSBO& _4 [[buffer(0)]]) -{ - int _29 = _4.s32; - uint _30 = _4.u32; - short _31 = _4.s16; - ushort _32 = _4.u16; - float _33 = _4.f32; - _4.s32 = int(_31); - _4.u32 = uint(_31); - _4.s32 = int(short(_32)); - _4.u32 = uint(short(_32)); - _4.u32 = uint(ushort(_31)); - _4.u32 = uint(_32); - _4.s16 = short(_29); - _4.u16 = ushort(_29); - _4.s16 = short(_30); - _4.u16 = ushort(_30); - _4.u16 = ushort(_29); - _4.u16 = ushort(_30); - _4.f32 = float(_31); - _4.f32 = float(short(_32)); - _4.f32 = float(ushort(_31)); - _4.f32 = float(_32); - _4.s16 = short(_33); - _4.u16 = ushort(short(_33)); - _4.u16 = ushort(_33); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/atomic-load-store.asm.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/atomic-load-store.asm.comp deleted file mode 100644 index 1015d2a5ee..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/atomic-load-store.asm.comp +++ /dev/null @@ -1,23 +0,0 @@ -#pragma clang diagnostic ignored "-Wunused-variable" - -#include -#include -#include - -using namespace metal; - -struct SSBO -{ - uint a; - uint b; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO& _5 [[buffer(0)]]) -{ - uint _20 = atomic_load_explicit((device atomic_uint*)&_5.b, memory_order_relaxed); - uint c = _20; - atomic_store_explicit((device atomic_uint*)&_5.a, c, memory_order_relaxed); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/atomic-result-temporary.asm.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/atomic-result-temporary.asm.comp deleted file mode 100644 index 4624ef0b7c..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/atomic-result-temporary.asm.comp +++ /dev/null @@ -1,23 +0,0 @@ -#pragma clang diagnostic ignored "-Wunused-variable" - -#include -#include -#include - -using namespace metal; - -struct SSBO -{ - uint count; - uint data[1]; -}; - -kernel void main0(device SSBO& _5 [[buffer(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - uint _24 = atomic_fetch_add_explicit((device atomic_uint*)&_5.count, 1u, memory_order_relaxed); - if (_24 < 1024u) - { - _5.data[_24] = gl_GlobalInvocationID.x; - } -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/bitcast-fp16-fp32.asm.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/bitcast-fp16-fp32.asm.comp deleted file mode 100644 index 0d63f5fa75..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/bitcast-fp16-fp32.asm.comp +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - half2 a; - float b; - float c; - half2 d; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO& _4 [[buffer(0)]]) -{ - _4.b = as_type(_4.a); - _4.d = as_type(_4.c); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/bitfield-signed-operations.asm.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/bitfield-signed-operations.asm.comp deleted file mode 100644 index 8e198a94df..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/bitfield-signed-operations.asm.comp +++ /dev/null @@ -1,29 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - int4 ints; - uint4 uints; -}; - -kernel void main0(device SSBO& _3 [[buffer(0)]]) -{ - int4 _19 = _3.ints; - uint4 _20 = _3.uints; - _3.ints = popcount(_19); - _3.uints = uint4(popcount(_19)); - _3.ints = int4(popcount(_20)); - _3.uints = popcount(_20); - _3.ints = reverse_bits(_19); - _3.uints = reverse_bits(_20); - _3.ints = extract_bits(_19, uint(1), 11u); - _3.uints = uint4(extract_bits(int4(_20), 11u, uint(1))); - _3.ints = int4(extract_bits(uint4(_19), uint(1), 11u)); - _3.uints = extract_bits(_20, 11u, uint(1)); - _3.ints = insert_bits(_19, _19.wzyx, uint(1), 11u); - _3.uints = insert_bits(_20, _20.wzyx, 11u, uint(1)); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/bitscan.asm.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/bitscan.asm.comp deleted file mode 100644 index 5634d9da69..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/bitscan.asm.comp +++ /dev/null @@ -1,53 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBO -{ - uint4 u; - int4 i; -}; - -// Implementation of the GLSL findLSB() function -template -inline T spvFindLSB(T x) -{ - return select(ctz(x), T(-1), x == T(0)); -} - -// Implementation of the signed GLSL findMSB() function -template -inline T spvFindSMSB(T x) -{ - T v = select(x, T(-1) - x, x < T(0)); - return select(clz(T(0)) - (clz(v) + T(1)), T(-1), v == T(0)); -} - -// Implementation of the unsigned GLSL findMSB() function -template -inline T spvFindUMSB(T x) -{ - return select(clz(T(0)) - (clz(x) + T(1)), T(-1), x == T(0)); -} - -kernel void main0(device SSBO& _4 [[buffer(0)]]) -{ - uint4 _19 = _4.u; - int4 _20 = _4.i; - _4.u = spvFindLSB(_19); - _4.i = int4(spvFindLSB(_19)); - _4.u = uint4(spvFindLSB(_20)); - _4.i = spvFindLSB(_20); - _4.u = spvFindUMSB(_19); - _4.i = int4(spvFindUMSB(_19)); - _4.u = spvFindUMSB(uint4(_20)); - _4.i = int4(spvFindUMSB(uint4(_20))); - _4.u = uint4(spvFindSMSB(int4(_19))); - _4.i = spvFindSMSB(int4(_19)); - _4.u = uint4(spvFindSMSB(_20)); - _4.i = spvFindSMSB(_20); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/composite-construct-buffer-struct.asm.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/composite-construct-buffer-struct.asm.comp deleted file mode 100644 index 2fe09814bf..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/composite-construct-buffer-struct.asm.comp +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct Block -{ - uint2 _m0[2]; - uint2 _m1[2]; -}; - -struct SSBO -{ - Block _m0[3]; -}; - -kernel void main0(device SSBO& ssbo [[buffer(0)]]) -{ - threadgroup uint2 _18[2]; - ssbo._m0[0u] = Block{ { ssbo._m0[0u]._m1[0], ssbo._m0[0u]._m1[1] }, { ssbo._m0[0u]._m1[0], ssbo._m0[0u]._m1[1] } }; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/constant-composite-undef.asm.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/constant-composite-undef.asm.comp deleted file mode 100644 index 37ed0211f0..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/constant-composite-undef.asm.comp +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct Block -{ - float4 f; -}; - -constant float _15 = {}; - -kernel void main0(device Block& block [[buffer(0)]]) -{ - block.f = float4(0.100000001490116119384765625, 0.20000000298023223876953125, 0.300000011920928955078125, 0.0); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/copy-logical-2.spv14.asm.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/copy-logical-2.spv14.asm.comp deleted file mode 100644 index 09a31d68a8..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/copy-logical-2.spv14.asm.comp +++ /dev/null @@ -1,60 +0,0 @@ -#include -#include - -using namespace metal; - -struct _11 -{ - float2x2 _m0; -}; - -struct _12 -{ - float2x4 _m0; -}; - -struct B2 -{ - float4 elem2; -}; - -struct C -{ - float4 c; - B2 b2; - B2 b2_array[4]; - _12 _m3; -}; - -struct B1 -{ - float4 elem1; -}; - -struct A -{ - float4 a; - B1 b1; - B1 b1_array[4]; - _11 _m3; -}; - -struct _8 -{ - A a_block; - C c_block; -}; - -kernel void main0(device _8& _3 [[buffer(0)]]) -{ - A _31; - _31.a = _3.c_block.c; - _31.b1.elem1 = _3.c_block.b2.elem2; - _31.b1_array[0].elem1 = _3.c_block.b2_array[0].elem2; - _31.b1_array[1].elem1 = _3.c_block.b2_array[1].elem2; - _31.b1_array[2].elem1 = _3.c_block.b2_array[2].elem2; - _31.b1_array[3].elem1 = _3.c_block.b2_array[3].elem2; - _31._m3._m0 = transpose(float2x2(_3.c_block._m3._m0[0].xy, _3.c_block._m3._m0[1].xy)); - _3.a_block = _31; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/copy-logical.spv14.asm.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/copy-logical.spv14.asm.comp deleted file mode 100644 index 2225981524..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/copy-logical.spv14.asm.comp +++ /dev/null @@ -1,47 +0,0 @@ -#include -#include - -using namespace metal; - -struct B2 -{ - float4 elem2; -}; - -struct C -{ - float4 c; - B2 b2; - B2 b2_array[4]; -}; - -struct B1 -{ - float4 elem1; -}; - -struct A -{ - float4 a; - B1 b1; - B1 b1_array[4]; -}; - -struct _8 -{ - A a_block; - C c_block; -}; - -kernel void main0(device _8& _3 [[buffer(0)]]) -{ - A _27; - _27.a = _3.c_block.c; - _27.b1.elem1 = _3.c_block.b2.elem2; - _27.b1_array[0].elem1 = _3.c_block.b2_array[0].elem2; - _27.b1_array[1].elem1 = _3.c_block.b2_array[1].elem2; - _27.b1_array[2].elem1 = _3.c_block.b2_array[2].elem2; - _27.b1_array[3].elem1 = _3.c_block.b2_array[3].elem2; - _3.a_block = _27; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/device-array-load-temporary.asm.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/device-array-load-temporary.asm.comp deleted file mode 100644 index 1cc6d3f17c..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/device-array-load-temporary.asm.comp +++ /dev/null @@ -1,174 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct Block -{ - uint2 _m0[2]; - uint2 _m1[2]; -}; - -struct SSBO -{ - Block _m0[3]; -}; - -template -inline void spvArrayCopyFromConstantToStack1(thread T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromConstantToThreadGroup1(threadgroup T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToStack1(thread T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToThreadGroup1(threadgroup T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToStack1(thread T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToThreadGroup1(threadgroup T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToDevice1(device T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromConstantToDevice1(device T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToDevice1(device T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToDevice1(device T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToStack1(thread T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToThreadGroup1(threadgroup T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -kernel void main0(device SSBO& ssbo [[buffer(0)]]) -{ - threadgroup uint2 _18[2]; - spvUnsafeArray _27; - spvArrayCopyFromDeviceToStack1(_27.elements, ssbo._m0[0u]._m1); - spvArrayCopyFromStackToDevice1(ssbo._m0[0u]._m0, _27.elements); - spvArrayCopyFromStackToDevice1(ssbo._m0[0u]._m0, _27.elements); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/device-array-load-temporary.force-native-array.asm.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/device-array-load-temporary.force-native-array.asm.comp deleted file mode 100644 index 080160c005..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/device-array-load-temporary.force-native-array.asm.comp +++ /dev/null @@ -1,135 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct Block -{ - uint2 _m0[2]; - uint2 _m1[2]; -}; - -struct SSBO -{ - Block _m0[3]; -}; - -template -inline void spvArrayCopyFromConstantToStack1(thread T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromConstantToThreadGroup1(threadgroup T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToStack1(thread T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToThreadGroup1(threadgroup T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToStack1(thread T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToThreadGroup1(threadgroup T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToDevice1(device T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromConstantToDevice1(device T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToDevice1(device T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToDevice1(device T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToStack1(thread T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToThreadGroup1(threadgroup T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -kernel void main0(device SSBO& ssbo [[buffer(0)]]) -{ - threadgroup uint2 _18[2]; - uint2 _27[2]; - spvArrayCopyFromDeviceToStack1(_27, ssbo._m0[0u]._m1); - spvArrayCopyFromStackToDevice1(ssbo._m0[0u]._m0, _27); - spvArrayCopyFromStackToDevice1(ssbo._m0[0u]._m0, _27); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/device-constant-array-load-store.asm.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/device-constant-array-load-store.asm.comp deleted file mode 100644 index 0a64e2e29d..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/device-constant-array-load-store.asm.comp +++ /dev/null @@ -1,179 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct Block -{ - uint2 _m0[2]; - uint2 _m1[2]; -}; - -struct SSBO -{ - Block _m0[3]; -}; - -template -inline void spvArrayCopyFromConstantToStack1(thread T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromConstantToThreadGroup1(threadgroup T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToStack1(thread T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToThreadGroup1(threadgroup T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToStack1(thread T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToThreadGroup1(threadgroup T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToDevice1(device T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromConstantToDevice1(device T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToDevice1(device T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToDevice1(device T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToStack1(thread T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToThreadGroup1(threadgroup T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -kernel void main0(device SSBO& ssbo [[buffer(0)]], constant SSBO& ubo [[buffer(1)]]) -{ - threadgroup uint2 _18[2]; - spvArrayCopyFromDeviceToDevice1(ssbo._m0[0u]._m0, ssbo._m0[0u]._m1); - spvArrayCopyFromConstantToDevice1(ssbo._m0[0u]._m0, ubo._m0[0u]._m1); - spvUnsafeArray _24; - spvArrayCopyFromStackToDevice1(ssbo._m0[0u]._m0, _24.elements); - spvArrayCopyFromThreadGroupToDevice1(ssbo._m0[0u]._m0, _18); - spvArrayCopyFromDeviceToThreadGroup1(_18, ssbo._m0[0u]._m1); - spvArrayCopyFromDeviceToStack1(_24.elements, ssbo._m0[0u]._m1); - spvArrayCopyFromConstantToThreadGroup1(_18, ubo._m0[0u]._m1); - spvArrayCopyFromConstantToStack1(_24.elements, ubo._m0[0u]._m1); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/device-constant-array-load-store.force-native-array.asm.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/device-constant-array-load-store.force-native-array.asm.comp deleted file mode 100644 index 4156a16072..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/device-constant-array-load-store.force-native-array.asm.comp +++ /dev/null @@ -1,140 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct Block -{ - uint2 _m0[2]; - uint2 _m1[2]; -}; - -struct SSBO -{ - Block _m0[3]; -}; - -template -inline void spvArrayCopyFromConstantToStack1(thread T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromConstantToThreadGroup1(threadgroup T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToStack1(thread T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToThreadGroup1(threadgroup T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToStack1(thread T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToThreadGroup1(threadgroup T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToDevice1(device T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromConstantToDevice1(device T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToDevice1(device T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToDevice1(device T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToStack1(thread T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToThreadGroup1(threadgroup T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -kernel void main0(device SSBO& ssbo [[buffer(0)]], constant SSBO& ubo [[buffer(1)]]) -{ - threadgroup uint2 _18[2]; - spvArrayCopyFromDeviceToDevice1(ssbo._m0[0u]._m0, ssbo._m0[0u]._m1); - spvArrayCopyFromConstantToDevice1(ssbo._m0[0u]._m0, ubo._m0[0u]._m1); - uint2 _24[2]; - spvArrayCopyFromStackToDevice1(ssbo._m0[0u]._m0, _24); - spvArrayCopyFromThreadGroupToDevice1(ssbo._m0[0u]._m0, _18); - spvArrayCopyFromDeviceToThreadGroup1(_18, ssbo._m0[0u]._m1); - spvArrayCopyFromDeviceToStack1(_24, ssbo._m0[0u]._m1); - spvArrayCopyFromConstantToThreadGroup1(_18, ubo._m0[0u]._m1); - spvArrayCopyFromConstantToStack1(_24, ubo._m0[0u]._m1); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/eliminate-globals-not-in-entry-point.noeliminate.spv14.asm.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/eliminate-globals-not-in-entry-point.noeliminate.spv14.asm.comp deleted file mode 100644 index e265f1bd97..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/eliminate-globals-not-in-entry-point.noeliminate.spv14.asm.comp +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace metal; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(64u, 1u, 1u); - -struct UBO -{ - float v; -}; - -struct SSBO -{ - float v; -}; - -kernel void main0() -{ - threadgroup float w; - float v; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/glsl-signed-operations.asm.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/glsl-signed-operations.asm.comp deleted file mode 100644 index 7de0020ca1..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/glsl-signed-operations.asm.comp +++ /dev/null @@ -1,73 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBO -{ - int4 ints; - uint4 uints; -}; - -// Implementation of the signed GLSL findMSB() function -template -inline T spvFindSMSB(T x) -{ - T v = select(x, T(-1) - x, x < T(0)); - return select(clz(T(0)) - (clz(v) + T(1)), T(-1), v == T(0)); -} - -// Implementation of the unsigned GLSL findMSB() function -template -inline T spvFindUMSB(T x) -{ - return select(clz(T(0)) - (clz(x) + T(1)), T(-1), x == T(0)); -} - -// Implementation of the GLSL sign() function for integer types -template::value>::type> -inline T sign(T x) -{ - return select(select(select(x, T(0), x == T(0)), T(1), x > T(0)), T(-1), x < T(0)); -} - -kernel void main0(device SSBO& _4 [[buffer(0)]]) -{ - int4 _19 = _4.ints; - uint4 _20 = _4.uints; - _4.ints = abs(_19); - _4.uints = uint4(abs(_19)); - _4.ints = abs(int4(_20)); - _4.uints = uint4(abs(int4(_20))); - _4.ints = sign(_19); - _4.uints = uint4(sign(_19)); - _4.ints = sign(int4(_20)); - _4.uints = uint4(sign(int4(_20))); - _4.ints = spvFindSMSB(int4(_20)); - _4.uints = uint4(spvFindSMSB(int4(_20))); - _4.ints = int4(spvFindUMSB(uint4(_19))); - _4.uints = spvFindUMSB(uint4(_19)); - _4.ints = min(_19, _19); - _4.uints = uint4(min(_19, int4(_20))); - _4.ints = min(int4(_20), int4(_20)); - _4.uints = uint4(min(int4(_20), _19)); - _4.ints = int4(min(uint4(_19), _20)); - _4.uints = min(uint4(_19), _20); - _4.ints = int4(min(_20, uint4(_19))); - _4.uints = min(_20, uint4(_19)); - _4.ints = max(_19, _19); - _4.uints = uint4(max(_19, _19)); - _4.ints = max(int4(_20), _19); - _4.uints = uint4(max(int4(_20), _19)); - _4.ints = int4(max(uint4(_19), _20)); - _4.uints = max(uint4(_19), uint4(_19)); - _4.ints = int4(max(_20, uint4(_19))); - _4.uints = max(_20, uint4(_19)); - _4.ints = clamp(int4(_20), int4(_20), int4(_20)); - _4.uints = uint4(clamp(int4(_20), int4(_20), int4(_20))); - _4.ints = int4(clamp(uint4(_19), uint4(_19), uint4(_19))); - _4.uints = clamp(uint4(_19), uint4(_19), uint4(_19)); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/glsl.std450.frexp-modf-struct.asm.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/glsl.std450.frexp-modf-struct.asm.comp deleted file mode 100644 index 0063faceaa..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/glsl.std450.frexp-modf-struct.asm.comp +++ /dev/null @@ -1,35 +0,0 @@ -#include -#include - -using namespace metal; - -struct _8 -{ - float _m0; - float _m1; -}; - -struct _15 -{ - float _m0; - int _m1; -}; - -struct _3 -{ - float _m0; - int _m1; -}; - -kernel void main0(device _3& _4 [[buffer(0)]]) -{ - _8 _23; - _23._m0 = modf(20.0, _23._m1); - _15 _24; - _24._m0 = frexp(40.0, _24._m1); - _4._m0 = _23._m0; - _4._m0 = _23._m1; - _4._m0 = _24._m0; - _4._m1 = _24._m1; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/storage-buffer-basic.invalid.asm.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/storage-buffer-basic.invalid.asm.comp deleted file mode 100644 index 5b1ed8ae24..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/storage-buffer-basic.invalid.asm.comp +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct _6 -{ - float _m0[1]; -}; - -constant uint _3_tmp [[function_constant(0)]]; -constant uint _3 = is_function_constant_defined(_3_tmp) ? _3_tmp : 1u; -constant uint _4_tmp [[function_constant(2)]]; -constant uint _4 = is_function_constant_defined(_4_tmp) ? _4_tmp : 3u; -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(_3, 2u, _4); - -kernel void main0(device _6& _8 [[buffer(0)]], device _6& _9 [[buffer(1)]], uint3 gl_WorkGroupID [[threadgroup_position_in_grid]]) -{ - uint3 _23 = gl_WorkGroupSize; - _8._m0[gl_WorkGroupID.x] = _9._m0[gl_WorkGroupID.x] + _8._m0[gl_WorkGroupID.x]; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/storage-buffer-pointer-argument.asm.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/storage-buffer-pointer-argument.asm.comp deleted file mode 100644 index 6e9768540b..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/storage-buffer-pointer-argument.asm.comp +++ /dev/null @@ -1,28 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBO -{ - float a; -}; - -struct SSBORead -{ - float b; -}; - -static inline __attribute__((always_inline)) -void copy_out(device float& A, device const float& B) -{ - A = B; -} - -kernel void main0(device SSBO& _7 [[buffer(0)]], const device SSBORead& _9 [[buffer(1)]]) -{ - copy_out(_7.a, _9.b); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/variable-pointers.asm.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/variable-pointers.asm.comp deleted file mode 100644 index 7c9718d1c9..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/comp/variable-pointers.asm.comp +++ /dev/null @@ -1,74 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct foo -{ - int a[128]; - uint b; - float2 c; -}; - -struct bar -{ - int d; -}; - -struct baz -{ - int e[128]; -}; - -static inline __attribute__((always_inline)) -device int* select_buffer(device foo& buf, device baz& buf2, constant bar& cb) -{ - return (cb.d != 0) ? &buf.a[0u] : &buf2.e[0u]; -} - -static inline __attribute__((always_inline)) -device int* select_buffer_null(device foo& buf, constant bar& cb) -{ - return (cb.d != 0) ? &buf.a[0u] : nullptr; -} - -static inline __attribute__((always_inline)) -threadgroup int* select_tgsm(constant bar& cb, threadgroup int (&tgsm)[128]) -{ - return (cb.d != 0) ? &tgsm[0u] : nullptr; -} - -kernel void main0(device foo& buf [[buffer(0)]], constant bar& cb [[buffer(1)]], device baz& buf2 [[buffer(2)]]) -{ - threadgroup int tgsm[128]; - device int* sbuf = select_buffer(buf, buf2, cb); - device int* sbuf2 = select_buffer_null(buf, cb); - threadgroup int* stgsm = select_tgsm(cb, tgsm); - threadgroup int* cur = stgsm; - device int* _73; - _73 = &buf.a[0u]; - threadgroup int* _76; - int _77; - for (;;) - { - _76 = cur; - _77 = *_73; - if (_77 != 0) - { - int _81 = *_76; - int _82 = _77 + _81; - *_73 = _82; - *_76 = _82; - cur = &_76[1u]; - _73 = &_73[1u]; - continue; - } - else - { - break; - } - } -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/component-insert-packed-expression.asm.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/component-insert-packed-expression.asm.frag deleted file mode 100644 index 2da91dac7d..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/component-insert-packed-expression.asm.frag +++ /dev/null @@ -1,34 +0,0 @@ -#include -#include - -using namespace metal; - -struct type_Globals -{ - float4 _BorderWidths[4]; -}; - -struct main0_out -{ - float4 out_var_SV_Target [[color(0)]]; -}; - -fragment main0_out main0(constant type_Globals& _Globals [[buffer(0)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - float2 _31 = float2(_Globals._BorderWidths[0].x, _Globals._BorderWidths[1].x); - float2 _39; - if (gl_FragCoord.x > 0.0) - { - float2 _38 = _31; - _38.x = _Globals._BorderWidths[2].x; - _39 = _38; - } - else - { - _39 = _31; - } - out.out_var_SV_Target = float4(_39, 0.0, 1.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/empty-struct-in-struct.asm.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/empty-struct-in-struct.asm.frag deleted file mode 100644 index fdf4a92b99..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/empty-struct-in-struct.asm.frag +++ /dev/null @@ -1,35 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct EmptyStructTest -{ -}; -struct EmptyStruct2Test -{ - EmptyStructTest _m0; -}; - -static inline __attribute__((always_inline)) -float GetValue(thread const EmptyStruct2Test& self) -{ - return 0.0; -} - -static inline __attribute__((always_inline)) -float GetValue_1(EmptyStruct2Test self) -{ - return 0.0; -} - -fragment void main0() -{ - EmptyStruct2Test emptyStruct; - float value = GetValue(emptyStruct); - value = GetValue_1(EmptyStruct2Test{ EmptyStructTest{ } }); - value = GetValue_1(EmptyStruct2Test{ { } }); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/fixup-entry-point-identifier.nomain.asm.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/fixup-entry-point-identifier.nomain.asm.frag deleted file mode 100644 index 9a5e195b48..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/fixup-entry-point-identifier.nomain.asm.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct _5ma_in_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment _5ma_in_out _5ma_in() -{ - _5ma_in_out out = {}; - out.FragColor = float4(1.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/image-fetch-uint-coord.asm.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/image-fetch-uint-coord.asm.frag deleted file mode 100644 index 887200f785..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/image-fetch-uint-coord.asm.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 out_var_SV_Target0 [[color(0)]]; -}; - -struct main0_in -{ - uint3 in_var_TEXCOORD0 [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texture2d Tex [[texture(0)]]) -{ - main0_out out = {}; - out.out_var_SV_Target0 = Tex.read(uint2(in.in_var_TEXCOORD0.xy), in.in_var_TEXCOORD0.z); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/image-gather.asm.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/image-gather.asm.frag deleted file mode 100644 index 47253429a8..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/image-gather.asm.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 out_var_SV_Target0 [[color(0)]]; -}; - -struct main0_in -{ - float2 in_var_TEXCOORD0 [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texture2d g_texture [[texture(0)]], sampler g_sampler [[sampler(0)]], sampler g_comp [[sampler(1)]]) -{ - main0_out out = {}; - out.out_var_SV_Target0 = g_texture.gather(g_sampler, in.in_var_TEXCOORD0, int2(0), component::x) * g_texture.gather(g_sampler, in.in_var_TEXCOORD0, int2(0), component::y); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/image-type-normal-comparison-usage.asm.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/image-type-normal-comparison-usage.asm.frag deleted file mode 100644 index 2e43ab0c2a..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/image-type-normal-comparison-usage.asm.frag +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 out_var_SV_Target0 [[color(0)]]; -}; - -struct main0_in -{ - float2 in_var_TEXCOORD0 [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], depth2d ShadowMap [[texture(0)]], sampler SampleNormal [[sampler(0)]], sampler SampleShadow [[sampler(1)]]) -{ - main0_out out = {}; - float _41; - if (in.in_var_TEXCOORD0.x > 0.5) - { - _41 = float(float4(ShadowMap.sample(SampleNormal, in.in_var_TEXCOORD0)).x <= 0.5); - } - else - { - _41 = ShadowMap.sample_compare(SampleShadow, in.in_var_TEXCOORD0, 0.5, level(0.0)); - } - out.out_var_SV_Target0 = float4(_41, _41, _41, 1.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/input-attachment-unused-frag-coord.asm.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/input-attachment-unused-frag-coord.asm.frag deleted file mode 100644 index 93bbaec04d..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/input-attachment-unused-frag-coord.asm.frag +++ /dev/null @@ -1,25 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -static inline __attribute__((always_inline)) -float4 load_subpasses(thread const texture2d uInput, thread float4& gl_FragCoord) -{ - return uInput.read(uint2(gl_FragCoord.xy)); -} - -fragment main0_out main0(texture2d uSubpass0 [[texture(0)]], texture2d uSubpass1 [[texture(1)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - out.FragColor = uSubpass0.read(uint2(gl_FragCoord.xy)) + load_subpasses(uSubpass1, gl_FragCoord); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/modf-frexp-scalar-access-chain-output.asm.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/modf-frexp-scalar-access-chain-output.asm.frag deleted file mode 100644 index 910c8fa734..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/modf-frexp-scalar-access-chain-output.asm.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -fragment void main0() -{ - float3 col; - int2 _18; - float _23; - float _21 = modf(0.1500000059604644775390625, _23); - col.x = _23; - int _24; - float _22 = frexp(0.1500000059604644775390625, _24); - _18.y = _24; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/only-initializer-frag-depth.asm.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/only-initializer-frag-depth.asm.frag deleted file mode 100644 index 3f552ebbd0..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/only-initializer-frag-depth.asm.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float gl_FragDepth [[depth(any)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - out.gl_FragDepth = 0.5; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/phi.zero-initialize.asm.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/phi.zero-initialize.asm.frag deleted file mode 100644 index 32188581c3..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/phi.zero-initialize.asm.frag +++ /dev/null @@ -1,41 +0,0 @@ -#include -#include - -using namespace metal; - -struct Foo -{ - int a; -}; - -constant int uninit_int = {}; -constant int4 uninit_vector = {}; -constant float4x4 uninit_matrix = {}; -constant Foo uninit_foo = {}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 vColor [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - int _39 = {}; - if (in.vColor.x > 10.0) - { - _39 = 10; - } - else - { - _39 = 20; - } - out.FragColor = in.vColor; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/pixel-interlock-callstack.msl2.asm.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/pixel-interlock-callstack.msl2.asm.frag deleted file mode 100644 index 8ceb9f43e7..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/pixel-interlock-callstack.msl2.asm.frag +++ /dev/null @@ -1,37 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBO1 -{ - uint values1[1]; -}; - -struct SSBO0 -{ - uint values0[1]; -}; - -static inline __attribute__((always_inline)) -void callee2(thread float4& gl_FragCoord, device SSBO1& v_7) -{ - int _31 = int(gl_FragCoord.x); - v_7.values1[_31]++; -} - -static inline __attribute__((always_inline)) -void callee(thread float4& gl_FragCoord, device SSBO1& v_7, device SSBO0& v_9) -{ - int _39 = int(gl_FragCoord.x); - v_9.values0[_39]++; - callee2(gl_FragCoord, v_7); -} - -fragment void main0(device SSBO1& v_7 [[buffer(0), raster_order_group(0)]], device SSBO0& v_9 [[buffer(1)]], float4 gl_FragCoord [[position]]) -{ - callee(gl_FragCoord, v_7, v_9); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/pixel-interlock-control-flow.msl2.asm.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/pixel-interlock-control-flow.msl2.asm.frag deleted file mode 100644 index a382316391..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/pixel-interlock-control-flow.msl2.asm.frag +++ /dev/null @@ -1,52 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBO1 -{ - uint values1[1]; -}; - -struct _12 -{ - uint _m0[1]; -}; - -struct SSBO0 -{ - uint values0[1]; -}; - -static inline __attribute__((always_inline)) -void callee2(thread float4& gl_FragCoord, device SSBO1& v_7) -{ - int _44 = int(gl_FragCoord.x); - v_7.values1[_44]++; -} - -static inline __attribute__((always_inline)) -void callee(thread float4& gl_FragCoord, device SSBO1& v_7, device SSBO0& v_9) -{ - int _52 = int(gl_FragCoord.x); - v_9.values0[_52]++; - callee2(gl_FragCoord, v_7); - if (true) - { - } -} - -static inline __attribute__((always_inline)) -void _35(thread float4& gl_FragCoord, device _12& v_13) -{ - v_13._m0[int(gl_FragCoord.x)] = 4u; -} - -fragment void main0(device SSBO1& v_7 [[buffer(0), raster_order_group(0)]], device _12& v_13 [[buffer(1)]], device SSBO0& v_9 [[buffer(2), raster_order_group(0)]], float4 gl_FragCoord [[position]]) -{ - callee(gl_FragCoord, v_7, v_9); - _35(gl_FragCoord, v_13); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/pixel-interlock-split-functions.msl2.asm.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/pixel-interlock-split-functions.msl2.asm.frag deleted file mode 100644 index beb21241f4..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/pixel-interlock-split-functions.msl2.asm.frag +++ /dev/null @@ -1,49 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBO1 -{ - uint values1[1]; -}; - -struct SSBO0 -{ - uint values0[1]; -}; - -static inline __attribute__((always_inline)) -void callee2(thread float4& gl_FragCoord, device SSBO1& v_7) -{ - int _37 = int(gl_FragCoord.x); - v_7.values1[_37]++; -} - -static inline __attribute__((always_inline)) -void callee(thread float4& gl_FragCoord, device SSBO1& v_7, device SSBO0& v_9) -{ - int _45 = int(gl_FragCoord.x); - v_9.values0[_45]++; - callee2(gl_FragCoord, v_7); -} - -static inline __attribute__((always_inline)) -void _29() -{ -} - -static inline __attribute__((always_inline)) -void _31() -{ -} - -fragment void main0(device SSBO1& v_7 [[buffer(0), raster_order_group(0)]], device SSBO0& v_9 [[buffer(1), raster_order_group(0)]], float4 gl_FragCoord [[position]]) -{ - callee(gl_FragCoord, v_7, v_9); - _29(); - _31(); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/private-initializer-direct-store.asm.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/private-initializer-direct-store.asm.frag deleted file mode 100644 index 5bc3c47ef9..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/private-initializer-direct-store.asm.frag +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - float b = 10.0; - b = 20.0; - out.FragColor = b + b; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/reserved-function-identifier.asm.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/reserved-function-identifier.asm.frag deleted file mode 100644 index 5c8ec371e3..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/reserved-function-identifier.asm.frag +++ /dev/null @@ -1,33 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -static inline __attribute__((always_inline)) -float _mat3(thread const float& a) -{ - return a + 1.0; -} - -static inline __attribute__((always_inline)) -float _RESERVED_IDENTIFIER_FIXUP_gl_Foo(thread const int& a) -{ - return float(a) + 1.0; -} - -fragment main0_out main0() -{ - main0_out out = {}; - float param = 2.0; - int param_1 = 4; - out.FragColor = _mat3(param) + _RESERVED_IDENTIFIER_FIXUP_gl_Foo(param_1); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/subgroup-arithmetic-cast.msl21.asm.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/subgroup-arithmetic-cast.msl21.asm.frag deleted file mode 100644 index 2f5cd66284..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/subgroup-arithmetic-cast.msl21.asm.frag +++ /dev/null @@ -1,30 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - uint FragColor [[color(0)]]; -}; - -struct main0_in -{ - int index [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - uint _17 = uint(in.index); - out.FragColor = uint(simd_min(in.index)); - out.FragColor = uint(simd_max(int(_17))); - out.FragColor = simd_min(uint(in.index)); - out.FragColor = simd_max(_17); - out.FragColor = uint(quad_min(in.index)); - out.FragColor = uint(quad_max(int(_17))); - out.FragColor = quad_min(uint(in.index)); - out.FragColor = quad_max(_17); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/switch-block-case-fallthrough.asm.invalid.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/switch-block-case-fallthrough.asm.invalid.frag deleted file mode 100644 index e179b7e233..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/switch-block-case-fallthrough.asm.invalid.frag +++ /dev/null @@ -1,75 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - int vIndex [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - int i = 0; - main0_out out = {}; - int j; - int _30; - int _31; - if (in.vIndex != 0 && in.vIndex != 1 && in.vIndex != 11 && in.vIndex != 2 && in.vIndex != 3 && in.vIndex != 4 && in.vIndex != 5) - { - _30 = 2; - } - if (in.vIndex == 1 || in.vIndex == 11) - { - _31 = 1; - } - switch (in.vIndex) - { - case 0: - { - _30 = 3; - } - default: - { - j = _30; - _31 = 0; - } - case 1: - case 11: - { - j = _31; - } - case 2: - { - break; - } - case 3: - { - if (in.vIndex > 3) - { - i = 0; - break; - } - else - { - break; - } - } - case 4: - { - } - case 5: - { - i = 0; - break; - } - } - out.FragColor = float4(float(i)); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/texture-access.swizzle.asm.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/texture-access.swizzle.asm.frag deleted file mode 100644 index 6c4cc7248b..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/texture-access.swizzle.asm.frag +++ /dev/null @@ -1,190 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -// Returns 2D texture coords corresponding to 1D texel buffer coords -static inline __attribute__((always_inline)) -uint2 spvTexelBufferCoord(uint tc) -{ - return uint2(tc % 4096, tc / 4096); -} - -template struct spvRemoveReference { typedef T type; }; -template struct spvRemoveReference { typedef T type; }; -template struct spvRemoveReference { typedef T type; }; -template inline constexpr thread T&& spvForward(thread typename spvRemoveReference::type& x) -{ - return static_cast(x); -} -template inline constexpr thread T&& spvForward(thread typename spvRemoveReference::type&& x) -{ - return static_cast(x); -} - -enum class spvSwizzle : uint -{ - none = 0, - zero, - one, - red, - green, - blue, - alpha -}; - -template -inline T spvGetSwizzle(vec x, T c, spvSwizzle s) -{ - switch (s) - { - case spvSwizzle::none: - return c; - case spvSwizzle::zero: - return 0; - case spvSwizzle::one: - return 1; - case spvSwizzle::red: - return x.r; - case spvSwizzle::green: - return x.g; - case spvSwizzle::blue: - return x.b; - case spvSwizzle::alpha: - return x.a; - } -} - -// Wrapper function that swizzles texture samples and fetches. -template -inline vec spvTextureSwizzle(vec x, uint s) -{ - if (!s) - return x; - return vec(spvGetSwizzle(x, x.r, spvSwizzle((s >> 0) & 0xFF)), spvGetSwizzle(x, x.g, spvSwizzle((s >> 8) & 0xFF)), spvGetSwizzle(x, x.b, spvSwizzle((s >> 16) & 0xFF)), spvGetSwizzle(x, x.a, spvSwizzle((s >> 24) & 0xFF))); -} - -template -inline T spvTextureSwizzle(T x, uint s) -{ - return spvTextureSwizzle(vec(x, 0, 0, 1), s).x; -} - -// Wrapper function that swizzles texture gathers. -template class Tex, typename... Ts> -inline vec spvGatherSwizzle(const thread Tex& t, sampler s, uint sw, component c, Ts... params) METAL_CONST_ARG(c) -{ - if (sw) - { - switch (spvSwizzle((sw >> (uint(c) * 8)) & 0xFF)) - { - case spvSwizzle::none: - break; - case spvSwizzle::zero: - return vec(0, 0, 0, 0); - case spvSwizzle::one: - return vec(1, 1, 1, 1); - case spvSwizzle::red: - return t.gather(s, spvForward(params)..., component::x); - case spvSwizzle::green: - return t.gather(s, spvForward(params)..., component::y); - case spvSwizzle::blue: - return t.gather(s, spvForward(params)..., component::z); - case spvSwizzle::alpha: - return t.gather(s, spvForward(params)..., component::w); - } - } - switch (c) - { - case component::x: - return t.gather(s, spvForward(params)..., component::x); - case component::y: - return t.gather(s, spvForward(params)..., component::y); - case component::z: - return t.gather(s, spvForward(params)..., component::z); - case component::w: - return t.gather(s, spvForward(params)..., component::w); - } -} - -// Wrapper function that swizzles depth texture gathers. -template class Tex, typename... Ts> -inline vec spvGatherCompareSwizzle(const thread Tex& t, sampler s, uint sw, Ts... params) -{ - if (sw) - { - switch (spvSwizzle(sw & 0xFF)) - { - case spvSwizzle::none: - case spvSwizzle::red: - break; - case spvSwizzle::zero: - case spvSwizzle::green: - case spvSwizzle::blue: - case spvSwizzle::alpha: - return vec(0, 0, 0, 0); - case spvSwizzle::one: - return vec(1, 1, 1, 1); - } - } - return t.gather_compare(s, spvForward(params)...); -} - -fragment void main0(constant uint* spvSwizzleConstants [[buffer(30)]], texture1d tex1d [[texture(0)]], texture2d tex2d [[texture(1)]], texture3d tex3d [[texture(2)]], texturecube texCube [[texture(3)]], texture2d_array tex2dArray [[texture(4)]], texturecube_array texCubeArray [[texture(5)]], depth2d depth2d [[texture(6)]], depthcube depthCube [[texture(7)]], depth2d_array depth2dArray [[texture(8)]], depthcube_array depthCubeArray [[texture(9)]], texture2d texBuffer [[texture(10)]], sampler tex1dSamp [[sampler(0)]], sampler tex2dSamp [[sampler(1)]], sampler tex3dSamp [[sampler(2)]], sampler texCubeSamp [[sampler(3)]], sampler tex2dArraySamp [[sampler(4)]], sampler texCubeArraySamp [[sampler(5)]], sampler depth2dSamp [[sampler(6)]], sampler depthCubeSamp [[sampler(7)]], sampler depth2dArraySamp [[sampler(8)]], sampler depthCubeArraySamp [[sampler(9)]]) -{ - constant uint& tex1dSwzl = spvSwizzleConstants[0]; - constant uint& tex2dSwzl = spvSwizzleConstants[1]; - constant uint& tex3dSwzl = spvSwizzleConstants[2]; - constant uint& texCubeSwzl = spvSwizzleConstants[3]; - constant uint& tex2dArraySwzl = spvSwizzleConstants[4]; - constant uint& texCubeArraySwzl = spvSwizzleConstants[5]; - constant uint& depth2dSwzl = spvSwizzleConstants[6]; - constant uint& depthCubeSwzl = spvSwizzleConstants[7]; - constant uint& depth2dArraySwzl = spvSwizzleConstants[8]; - constant uint& depthCubeArraySwzl = spvSwizzleConstants[9]; - float4 c = spvTextureSwizzle(tex1d.sample(tex1dSamp, 0.0), tex1dSwzl); - c = spvTextureSwizzle(tex2d.sample(tex2dSamp, float2(0.0)), tex2dSwzl); - c = spvTextureSwizzle(tex3d.sample(tex3dSamp, float3(0.0)), tex3dSwzl); - c = spvTextureSwizzle(texCube.sample(texCubeSamp, float3(0.0)), texCubeSwzl); - c = spvTextureSwizzle(tex2dArray.sample(tex2dArraySamp, float3(0.0).xy, uint(round(float3(0.0).z))), tex2dArraySwzl); - c = spvTextureSwizzle(texCubeArray.sample(texCubeArraySamp, float4(0.0).xyz, uint(round(float4(0.0).w))), texCubeArraySwzl); - c.x = spvTextureSwizzle(depth2d.sample_compare(depth2dSamp, float3(0.0, 0.0, 1.0).xy, 1.0), depth2dSwzl); - c.x = spvTextureSwizzle(depthCube.sample_compare(depthCubeSamp, float4(0.0, 0.0, 0.0, 1.0).xyz, 1.0), depthCubeSwzl); - c.x = spvTextureSwizzle(depth2dArray.sample_compare(depth2dArraySamp, float4(0.0, 0.0, 0.0, 1.0).xy, uint(round(float4(0.0, 0.0, 0.0, 1.0).z)), 1.0), depth2dArraySwzl); - c.x = spvTextureSwizzle(depthCubeArray.sample_compare(depthCubeArraySamp, float4(0.0).xyz, uint(round(float4(0.0).w)), 1.0), depthCubeArraySwzl); - c = spvTextureSwizzle(tex1d.sample(tex1dSamp, float2(0.0, 1.0).x / float2(0.0, 1.0).y), tex1dSwzl); - c = spvTextureSwizzle(tex2d.sample(tex2dSamp, float3(0.0, 0.0, 1.0).xy / float3(0.0, 0.0, 1.0).z), tex2dSwzl); - c = spvTextureSwizzle(tex3d.sample(tex3dSamp, float4(0.0, 0.0, 0.0, 1.0).xyz / float4(0.0, 0.0, 0.0, 1.0).w), tex3dSwzl); - float4 _152 = float4(0.0, 0.0, 1.0, 1.0); - _152.z = 1.0; - c.x = spvTextureSwizzle(depth2d.sample_compare(depth2dSamp, _152.xy / _152.z, 1.0 / _152.z), depth2dSwzl); - c = spvTextureSwizzle(tex1d.sample(tex1dSamp, 0.0), tex1dSwzl); - c = spvTextureSwizzle(tex2d.sample(tex2dSamp, float2(0.0), level(0.0)), tex2dSwzl); - c = spvTextureSwizzle(tex3d.sample(tex3dSamp, float3(0.0), level(0.0)), tex3dSwzl); - c = spvTextureSwizzle(texCube.sample(texCubeSamp, float3(0.0), level(0.0)), texCubeSwzl); - c = spvTextureSwizzle(tex2dArray.sample(tex2dArraySamp, float3(0.0).xy, uint(round(float3(0.0).z)), level(0.0)), tex2dArraySwzl); - c = spvTextureSwizzle(texCubeArray.sample(texCubeArraySamp, float4(0.0).xyz, uint(round(float4(0.0).w)), level(0.0)), texCubeArraySwzl); - c.x = spvTextureSwizzle(depth2d.sample_compare(depth2dSamp, float3(0.0, 0.0, 1.0).xy, 1.0, level(0.0)), depth2dSwzl); - c = spvTextureSwizzle(tex1d.sample(tex1dSamp, float2(0.0, 1.0).x / float2(0.0, 1.0).y), tex1dSwzl); - c = spvTextureSwizzle(tex2d.sample(tex2dSamp, float3(0.0, 0.0, 1.0).xy / float3(0.0, 0.0, 1.0).z, level(0.0)), tex2dSwzl); - c = spvTextureSwizzle(tex3d.sample(tex3dSamp, float4(0.0, 0.0, 0.0, 1.0).xyz / float4(0.0, 0.0, 0.0, 1.0).w, level(0.0)), tex3dSwzl); - float4 _202 = float4(0.0, 0.0, 1.0, 1.0); - _202.z = 1.0; - c.x = spvTextureSwizzle(depth2d.sample_compare(depth2dSamp, _202.xy / _202.z, 1.0 / _202.z, level(0.0)), depth2dSwzl); - c = spvTextureSwizzle(tex1d.read(uint(0)), tex1dSwzl); - c = spvTextureSwizzle(tex2d.read(uint2(int2(0)), 0), tex2dSwzl); - c = spvTextureSwizzle(tex3d.read(uint3(int3(0)), 0), tex3dSwzl); - c = spvTextureSwizzle(tex2dArray.read(uint2(int3(0).xy), uint(int3(0).z), 0), tex2dArraySwzl); - c = texBuffer.read(spvTexelBufferCoord(0)); - c = spvGatherSwizzle(tex2d, tex2dSamp, tex2dSwzl, component::x, float2(0.0), int2(0)); - c = spvGatherSwizzle(texCube, texCubeSamp, texCubeSwzl, component::y, float3(0.0)); - c = spvGatherSwizzle(tex2dArray, tex2dArraySamp, tex2dArraySwzl, component::z, float3(0.0).xy, uint(round(float3(0.0).z)), int2(0)); - c = spvGatherSwizzle(texCubeArray, texCubeArraySamp, texCubeArraySwzl, component::w, float4(0.0).xyz, uint(round(float4(0.0).w))); - c = spvGatherCompareSwizzle(depth2d, depth2dSamp, depth2dSwzl, float2(0.0), 1.0); - c = spvGatherCompareSwizzle(depthCube, depthCubeSamp, depthCubeSwzl, float3(0.0), 1.0); - c = spvGatherCompareSwizzle(depth2dArray, depth2dArraySamp, depth2dArraySwzl, float3(0.0).xy, uint(round(float3(0.0).z)), 1.0); - c = spvGatherCompareSwizzle(depthCubeArray, depthCubeArraySamp, depthCubeArraySwzl, float4(0.0).xyz, uint(round(float4(0.0).w)), 1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/vector-shuffle-undef-index.asm.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/vector-shuffle-undef-index.asm.frag deleted file mode 100644 index 8935cd63f9..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/frag/vector-shuffle-undef-index.asm.frag +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include - -using namespace metal; - -constant float4 undef = {}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 vFloat [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.FragColor = float4(undef.x, in.vFloat.y, 0.0, in.vFloat.w) + float4(in.vFloat.z, in.vFloat.y, 0.0, in.vFloat.w); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers-block.mask-location-0.msl2.asm.tesc b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers-block.mask-location-0.msl2.asm.tesc deleted file mode 100644 index 3bfaf352dc..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers-block.mask-location-0.msl2.asm.tesc +++ /dev/null @@ -1,82 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct C -{ - float4 v; -}; - -struct P -{ - float4 v; -}; - -struct main0_out -{ - float4 gl_Position; - float gl_PointSize; -}; - -struct main0_patchOut -{ - float4 P_v; -}; - -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - spvUnsafeArray _18 = spvUnsafeArray({ C{ float4(0.0) }, C{ float4(0.0) }, C{ float4(0.0) }, C{ float4(0.0) } }); - - threadgroup C c[4]; - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - c[gl_InvocationID] = _18[gl_InvocationID]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - patchOut.P_v = float4(0.0); - c[gl_InvocationID].v = float4(1.0); - patchOut.P_v = float4(2.0); - gl_out[gl_InvocationID].gl_Position = float4(3.0); - gl_out[gl_InvocationID].gl_PointSize = 4.0; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers-block.mask-location-0.multi-patch.msl2.asm.tesc b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers-block.mask-location-0.multi-patch.msl2.asm.tesc deleted file mode 100644 index 874874088f..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers-block.mask-location-0.multi-patch.msl2.asm.tesc +++ /dev/null @@ -1,85 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct C -{ - float4 v; -}; - -struct P -{ - float4 v; -}; - -struct main0_out -{ - float4 gl_Position; - float gl_PointSize; -}; - -struct main0_patchOut -{ - float4 P_v; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - spvUnsafeArray _18 = spvUnsafeArray({ C{ float4(0.0) }, C{ float4(0.0) }, C{ float4(0.0) }, C{ float4(0.0) } }); - - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - threadgroup C spvStoragec[8][4]; - threadgroup C (&c)[4] = spvStoragec[(gl_GlobalInvocationID.x / 4) % 8]; - c[gl_GlobalInvocationID.x % 4] = _18[gl_GlobalInvocationID.x % 4]; - device main0_patchOut& patchOut = spvPatchOut[gl_GlobalInvocationID.x / 4]; - patchOut.P_v = float4(0.0); - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - c[gl_InvocationID].v = float4(1.0); - patchOut.P_v = float4(2.0); - gl_out[gl_InvocationID].gl_Position = float4(3.0); - gl_out[gl_InvocationID].gl_PointSize = 4.0; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers-block.mask-location-1.msl2.asm.tesc b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers-block.mask-location-1.msl2.asm.tesc deleted file mode 100644 index 6a507dd5c4..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers-block.mask-location-1.msl2.asm.tesc +++ /dev/null @@ -1,81 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct C -{ - float4 v; -}; - -struct P -{ - float4 v; -}; - -struct main0_out -{ - float4 C_v; - float4 gl_Position; - float gl_PointSize; -}; - -struct main0_patchOut -{ -}; -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - spvUnsafeArray _18 = spvUnsafeArray({ C{ float4(0.0) }, C{ float4(0.0) }, C{ float4(0.0) }, C{ float4(0.0) } }); - - threadgroup P p; - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - gl_out[gl_InvocationID].C_v = _18[gl_InvocationID].v; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - p = P{ float4(0.0) }; - gl_out[gl_InvocationID].C_v = float4(1.0); - p.v = float4(2.0); - gl_out[gl_InvocationID].gl_Position = float4(3.0); - gl_out[gl_InvocationID].gl_PointSize = 4.0; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers-block.mask-location-1.multi-patch.msl2.asm.tesc b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers-block.mask-location-1.multi-patch.msl2.asm.tesc deleted file mode 100644 index 04d19bb869..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers-block.mask-location-1.multi-patch.msl2.asm.tesc +++ /dev/null @@ -1,84 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct C -{ - float4 v; -}; - -struct P -{ - float4 v; -}; - -struct main0_out -{ - float4 C_v; - float4 gl_Position; - float gl_PointSize; -}; - -struct main0_patchOut -{ -}; -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - spvUnsafeArray _18 = spvUnsafeArray({ C{ float4(0.0) }, C{ float4(0.0) }, C{ float4(0.0) }, C{ float4(0.0) } }); - - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - gl_out[gl_GlobalInvocationID.x % 4].C_v = _18[gl_GlobalInvocationID.x % 4].v; - device main0_patchOut& patchOut = spvPatchOut[gl_GlobalInvocationID.x / 4]; - threadgroup P spvStoragep[8]; - threadgroup P (&p) = spvStoragep[(gl_GlobalInvocationID.x / 4) % 8]; - p = P{ float4(0.0) }; - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - gl_out[gl_InvocationID].C_v = float4(1.0); - p.v = float4(2.0); - gl_out[gl_InvocationID].gl_Position = float4(3.0); - gl_out[gl_InvocationID].gl_PointSize = 4.0; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers-block.mask-point-size.msl2.asm.tesc b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers-block.mask-point-size.msl2.asm.tesc deleted file mode 100644 index fc872a1a6c..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers-block.mask-point-size.msl2.asm.tesc +++ /dev/null @@ -1,100 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct C -{ - float4 v; -}; - -struct P -{ - float4 v; -}; - -struct gl_PerVertex -{ - float4 gl_Position; - float gl_PointSize; - spvUnsafeArray gl_ClipDistance; - spvUnsafeArray gl_CullDistance; -}; - -constant spvUnsafeArray _51 = spvUnsafeArray({ 0.0 }); -constant spvUnsafeArray _52 = spvUnsafeArray({ 0.0 }); - -struct main0_out -{ - float4 C_v; - float4 gl_Position; - spvUnsafeArray gl_ClipDistance; - spvUnsafeArray gl_CullDistance; -}; - -struct main0_patchOut -{ - float4 P_v; -}; - -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - spvUnsafeArray _18 = spvUnsafeArray({ C{ float4(0.0) }, C{ float4(0.0) }, C{ float4(0.0) }, C{ float4(0.0) } }); - spvUnsafeArray _33 = spvUnsafeArray({ gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) }, gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) }, gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) }, gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) } }); - - threadgroup gl_PerVertex gl_out_masked[4]; - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - gl_out[gl_InvocationID].C_v = _18[gl_InvocationID].v; - gl_out[gl_InvocationID].gl_Position = _33[gl_InvocationID].gl_Position; - gl_out[gl_InvocationID].gl_ClipDistance = _33[gl_InvocationID].gl_ClipDistance; - gl_out[gl_InvocationID].gl_CullDistance = _33[gl_InvocationID].gl_CullDistance; - gl_out_masked[gl_InvocationID] = _33[gl_InvocationID]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - patchOut.P_v = float4(0.0); - gl_out[gl_InvocationID].C_v = float4(1.0); - patchOut.P_v = float4(2.0); - gl_out[gl_InvocationID].gl_Position = float4(3.0); - gl_out_masked[gl_InvocationID].gl_PointSize = 4.0; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers-block.mask-point-size.multi-patch.msl2.asm.tesc b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers-block.mask-point-size.multi-patch.msl2.asm.tesc deleted file mode 100644 index 5394741b1e..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers-block.mask-point-size.multi-patch.msl2.asm.tesc +++ /dev/null @@ -1,103 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct C -{ - float4 v; -}; - -struct P -{ - float4 v; -}; - -struct gl_PerVertex -{ - float4 gl_Position; - float gl_PointSize; - spvUnsafeArray gl_ClipDistance; - spvUnsafeArray gl_CullDistance; -}; - -constant spvUnsafeArray _51 = spvUnsafeArray({ 0.0 }); -constant spvUnsafeArray _52 = spvUnsafeArray({ 0.0 }); - -struct main0_out -{ - float4 C_v; - float4 gl_Position; - spvUnsafeArray gl_ClipDistance; - spvUnsafeArray gl_CullDistance; -}; - -struct main0_patchOut -{ - float4 P_v; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - spvUnsafeArray _18 = spvUnsafeArray({ C{ float4(0.0) }, C{ float4(0.0) }, C{ float4(0.0) }, C{ float4(0.0) } }); - spvUnsafeArray _33 = spvUnsafeArray({ gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) }, gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) }, gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) }, gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) } }); - - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - gl_out[gl_GlobalInvocationID.x % 4].C_v = _18[gl_GlobalInvocationID.x % 4].v; - gl_out[gl_GlobalInvocationID.x % 4].gl_Position = _33[gl_GlobalInvocationID.x % 4].gl_Position; - gl_out[gl_GlobalInvocationID.x % 4].gl_ClipDistance = _33[gl_GlobalInvocationID.x % 4].gl_ClipDistance; - gl_out[gl_GlobalInvocationID.x % 4].gl_CullDistance = _33[gl_GlobalInvocationID.x % 4].gl_CullDistance; - threadgroup gl_PerVertex spvStoragegl_out_masked[8][4]; - threadgroup gl_PerVertex (&gl_out_masked)[4] = spvStoragegl_out_masked[(gl_GlobalInvocationID.x / 4) % 8]; - gl_out_masked[gl_GlobalInvocationID.x % 4] = _33[gl_GlobalInvocationID.x % 4]; - device main0_patchOut& patchOut = spvPatchOut[gl_GlobalInvocationID.x / 4]; - patchOut.P_v = float4(0.0); - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - gl_out[gl_InvocationID].C_v = float4(1.0); - patchOut.P_v = float4(2.0); - gl_out[gl_InvocationID].gl_Position = float4(3.0); - gl_out_masked[gl_InvocationID].gl_PointSize = 4.0; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers-block.mask-position.msl2.asm.tesc b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers-block.mask-position.msl2.asm.tesc deleted file mode 100644 index 62b528b9fd..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers-block.mask-position.msl2.asm.tesc +++ /dev/null @@ -1,100 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct C -{ - float4 v; -}; - -struct P -{ - float4 v; -}; - -struct gl_PerVertex -{ - float4 gl_Position; - float gl_PointSize; - spvUnsafeArray gl_ClipDistance; - spvUnsafeArray gl_CullDistance; -}; - -constant spvUnsafeArray _51 = spvUnsafeArray({ 0.0 }); -constant spvUnsafeArray _52 = spvUnsafeArray({ 0.0 }); - -struct main0_out -{ - float4 C_v; - float gl_PointSize; - spvUnsafeArray gl_ClipDistance; - spvUnsafeArray gl_CullDistance; -}; - -struct main0_patchOut -{ - float4 P_v; -}; - -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - spvUnsafeArray _18 = spvUnsafeArray({ C{ float4(0.0) }, C{ float4(0.0) }, C{ float4(0.0) }, C{ float4(0.0) } }); - spvUnsafeArray _33 = spvUnsafeArray({ gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) }, gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) }, gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) }, gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) } }); - - threadgroup gl_PerVertex gl_out_masked[4]; - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - gl_out[gl_InvocationID].C_v = _18[gl_InvocationID].v; - gl_out[gl_InvocationID].gl_PointSize = _33[gl_InvocationID].gl_PointSize; - gl_out[gl_InvocationID].gl_ClipDistance = _33[gl_InvocationID].gl_ClipDistance; - gl_out[gl_InvocationID].gl_CullDistance = _33[gl_InvocationID].gl_CullDistance; - gl_out_masked[gl_InvocationID] = _33[gl_InvocationID]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - patchOut.P_v = float4(0.0); - gl_out[gl_InvocationID].C_v = float4(1.0); - patchOut.P_v = float4(2.0); - gl_out_masked[gl_InvocationID].gl_Position = float4(3.0); - gl_out[gl_InvocationID].gl_PointSize = 4.0; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers-block.mask-position.multi-patch.msl2.asm.tesc b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers-block.mask-position.multi-patch.msl2.asm.tesc deleted file mode 100644 index a6790894df..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers-block.mask-position.multi-patch.msl2.asm.tesc +++ /dev/null @@ -1,103 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct C -{ - float4 v; -}; - -struct P -{ - float4 v; -}; - -struct gl_PerVertex -{ - float4 gl_Position; - float gl_PointSize; - spvUnsafeArray gl_ClipDistance; - spvUnsafeArray gl_CullDistance; -}; - -constant spvUnsafeArray _51 = spvUnsafeArray({ 0.0 }); -constant spvUnsafeArray _52 = spvUnsafeArray({ 0.0 }); - -struct main0_out -{ - float4 C_v; - float gl_PointSize; - spvUnsafeArray gl_ClipDistance; - spvUnsafeArray gl_CullDistance; -}; - -struct main0_patchOut -{ - float4 P_v; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - spvUnsafeArray _18 = spvUnsafeArray({ C{ float4(0.0) }, C{ float4(0.0) }, C{ float4(0.0) }, C{ float4(0.0) } }); - spvUnsafeArray _33 = spvUnsafeArray({ gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) }, gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) }, gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) }, gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) } }); - - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - gl_out[gl_GlobalInvocationID.x % 4].C_v = _18[gl_GlobalInvocationID.x % 4].v; - gl_out[gl_GlobalInvocationID.x % 4].gl_PointSize = _33[gl_GlobalInvocationID.x % 4].gl_PointSize; - gl_out[gl_GlobalInvocationID.x % 4].gl_ClipDistance = _33[gl_GlobalInvocationID.x % 4].gl_ClipDistance; - gl_out[gl_GlobalInvocationID.x % 4].gl_CullDistance = _33[gl_GlobalInvocationID.x % 4].gl_CullDistance; - threadgroup gl_PerVertex spvStoragegl_out_masked[8][4]; - threadgroup gl_PerVertex (&gl_out_masked)[4] = spvStoragegl_out_masked[(gl_GlobalInvocationID.x / 4) % 8]; - gl_out_masked[gl_GlobalInvocationID.x % 4] = _33[gl_GlobalInvocationID.x % 4]; - device main0_patchOut& patchOut = spvPatchOut[gl_GlobalInvocationID.x / 4]; - patchOut.P_v = float4(0.0); - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - gl_out[gl_InvocationID].C_v = float4(1.0); - patchOut.P_v = float4(2.0); - gl_out_masked[gl_InvocationID].gl_Position = float4(3.0); - gl_out[gl_InvocationID].gl_PointSize = 4.0; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers.mask-location-0.msl2.asm.tesc b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers.mask-location-0.msl2.asm.tesc deleted file mode 100644 index 25fe13bf67..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers.mask-location-0.msl2.asm.tesc +++ /dev/null @@ -1,90 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct _RESERVED_IDENTIFIER_FIXUP_gl_PerVertex -{ - float4 _RESERVED_IDENTIFIER_FIXUP_gl_Position; - float _RESERVED_IDENTIFIER_FIXUP_gl_PointSize; - spvUnsafeArray _RESERVED_IDENTIFIER_FIXUP_gl_ClipDistance; - spvUnsafeArray _RESERVED_IDENTIFIER_FIXUP_gl_CullDistance; -}; - -constant spvUnsafeArray _15 = spvUnsafeArray({ float4(0.0), float4(0.0), float4(0.0), float4(0.0) }); -constant spvUnsafeArray _45 = spvUnsafeArray({ 0.0 }); -constant spvUnsafeArray _46 = spvUnsafeArray({ 0.0 }); - -struct main0_out -{ - float4 gl_Position; - float gl_PointSize; - spvUnsafeArray gl_ClipDistance; - spvUnsafeArray gl_CullDistance; -}; - -struct main0_patchOut -{ - float4 foo_patch; -}; - -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - spvUnsafeArray<_RESERVED_IDENTIFIER_FIXUP_gl_PerVertex, 4> _29 = spvUnsafeArray<_RESERVED_IDENTIFIER_FIXUP_gl_PerVertex, 4>({ _RESERVED_IDENTIFIER_FIXUP_gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) }, _RESERVED_IDENTIFIER_FIXUP_gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) }, _RESERVED_IDENTIFIER_FIXUP_gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) }, _RESERVED_IDENTIFIER_FIXUP_gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) } }); - - threadgroup float4 foo[4]; - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - foo[gl_InvocationID] = _15[gl_InvocationID]; - gl_out[gl_InvocationID].gl_Position = _29[gl_InvocationID]._RESERVED_IDENTIFIER_FIXUP_gl_Position; - gl_out[gl_InvocationID].gl_PointSize = _29[gl_InvocationID]._RESERVED_IDENTIFIER_FIXUP_gl_PointSize; - gl_out[gl_InvocationID].gl_ClipDistance = _29[gl_InvocationID]._RESERVED_IDENTIFIER_FIXUP_gl_ClipDistance; - gl_out[gl_InvocationID].gl_CullDistance = _29[gl_InvocationID]._RESERVED_IDENTIFIER_FIXUP_gl_CullDistance; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - patchOut.foo_patch = float4(0.0); - foo[gl_InvocationID] = float4(1.0); - patchOut.foo_patch = float4(2.0); - gl_out[gl_InvocationID].gl_Position = float4(3.0); - gl_out[gl_InvocationID].gl_PointSize = 4.0; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers.mask-location-0.msl2.multi-patch.asm.tesc b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers.mask-location-0.msl2.multi-patch.asm.tesc deleted file mode 100644 index 750ef96d17..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers.mask-location-0.msl2.multi-patch.asm.tesc +++ /dev/null @@ -1,93 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct _RESERVED_IDENTIFIER_FIXUP_gl_PerVertex -{ - float4 _RESERVED_IDENTIFIER_FIXUP_gl_Position; - float _RESERVED_IDENTIFIER_FIXUP_gl_PointSize; - spvUnsafeArray _RESERVED_IDENTIFIER_FIXUP_gl_ClipDistance; - spvUnsafeArray _RESERVED_IDENTIFIER_FIXUP_gl_CullDistance; -}; - -constant spvUnsafeArray _15 = spvUnsafeArray({ float4(0.0), float4(0.0), float4(0.0), float4(0.0) }); -constant spvUnsafeArray _45 = spvUnsafeArray({ 0.0 }); -constant spvUnsafeArray _46 = spvUnsafeArray({ 0.0 }); - -struct main0_out -{ - float4 gl_Position; - float gl_PointSize; - spvUnsafeArray gl_ClipDistance; - spvUnsafeArray gl_CullDistance; -}; - -struct main0_patchOut -{ - float4 foo_patch; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - spvUnsafeArray<_RESERVED_IDENTIFIER_FIXUP_gl_PerVertex, 4> _29 = spvUnsafeArray<_RESERVED_IDENTIFIER_FIXUP_gl_PerVertex, 4>({ _RESERVED_IDENTIFIER_FIXUP_gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) }, _RESERVED_IDENTIFIER_FIXUP_gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) }, _RESERVED_IDENTIFIER_FIXUP_gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) }, _RESERVED_IDENTIFIER_FIXUP_gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) } }); - - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - threadgroup float4 spvStoragefoo[8][4]; - threadgroup float4 (&foo)[4] = spvStoragefoo[(gl_GlobalInvocationID.x / 4) % 8]; - foo[gl_GlobalInvocationID.x % 4] = _15[gl_GlobalInvocationID.x % 4]; - gl_out[gl_GlobalInvocationID.x % 4].gl_Position = _29[gl_GlobalInvocationID.x % 4]._RESERVED_IDENTIFIER_FIXUP_gl_Position; - gl_out[gl_GlobalInvocationID.x % 4].gl_PointSize = _29[gl_GlobalInvocationID.x % 4]._RESERVED_IDENTIFIER_FIXUP_gl_PointSize; - gl_out[gl_GlobalInvocationID.x % 4].gl_ClipDistance = _29[gl_GlobalInvocationID.x % 4]._RESERVED_IDENTIFIER_FIXUP_gl_ClipDistance; - gl_out[gl_GlobalInvocationID.x % 4].gl_CullDistance = _29[gl_GlobalInvocationID.x % 4]._RESERVED_IDENTIFIER_FIXUP_gl_CullDistance; - device main0_patchOut& patchOut = spvPatchOut[gl_GlobalInvocationID.x / 4]; - patchOut.foo_patch = float4(0.0); - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - foo[gl_InvocationID] = float4(1.0); - patchOut.foo_patch = float4(2.0); - gl_out[gl_InvocationID].gl_Position = float4(3.0); - gl_out[gl_InvocationID].gl_PointSize = 4.0; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers.mask-location-1.asm.tesc b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers.mask-location-1.asm.tesc deleted file mode 100644 index e8f1146b42..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers.mask-location-1.asm.tesc +++ /dev/null @@ -1,89 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct _RESERVED_IDENTIFIER_FIXUP_gl_PerVertex -{ - float4 _RESERVED_IDENTIFIER_FIXUP_gl_Position; - float _RESERVED_IDENTIFIER_FIXUP_gl_PointSize; - spvUnsafeArray _RESERVED_IDENTIFIER_FIXUP_gl_ClipDistance; - spvUnsafeArray _RESERVED_IDENTIFIER_FIXUP_gl_CullDistance; -}; - -constant spvUnsafeArray _15 = spvUnsafeArray({ float4(0.0), float4(0.0), float4(0.0), float4(0.0) }); -constant spvUnsafeArray _45 = spvUnsafeArray({ 0.0 }); -constant spvUnsafeArray _46 = spvUnsafeArray({ 0.0 }); - -struct main0_out -{ - float4 foo; - float4 gl_Position; - float gl_PointSize; - spvUnsafeArray gl_ClipDistance; - spvUnsafeArray gl_CullDistance; -}; - -struct main0_patchOut -{ -}; -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - spvUnsafeArray<_RESERVED_IDENTIFIER_FIXUP_gl_PerVertex, 4> _29 = spvUnsafeArray<_RESERVED_IDENTIFIER_FIXUP_gl_PerVertex, 4>({ _RESERVED_IDENTIFIER_FIXUP_gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) }, _RESERVED_IDENTIFIER_FIXUP_gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) }, _RESERVED_IDENTIFIER_FIXUP_gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) }, _RESERVED_IDENTIFIER_FIXUP_gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) } }); - - threadgroup float4 foo_patch; - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - gl_out[gl_InvocationID].foo = _15[gl_InvocationID]; - gl_out[gl_InvocationID].gl_Position = _29[gl_InvocationID]._RESERVED_IDENTIFIER_FIXUP_gl_Position; - gl_out[gl_InvocationID].gl_PointSize = _29[gl_InvocationID]._RESERVED_IDENTIFIER_FIXUP_gl_PointSize; - gl_out[gl_InvocationID].gl_ClipDistance = _29[gl_InvocationID]._RESERVED_IDENTIFIER_FIXUP_gl_ClipDistance; - gl_out[gl_InvocationID].gl_CullDistance = _29[gl_InvocationID]._RESERVED_IDENTIFIER_FIXUP_gl_CullDistance; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - foo_patch = float4(0.0); - gl_out[gl_InvocationID].foo = float4(1.0); - foo_patch = float4(2.0); - gl_out[gl_InvocationID].gl_Position = float4(3.0); - gl_out[gl_InvocationID].gl_PointSize = 4.0; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers.mask-location-1.multi-patch.asm.tesc b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers.mask-location-1.multi-patch.asm.tesc deleted file mode 100644 index a7c1e5d617..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers.mask-location-1.multi-patch.asm.tesc +++ /dev/null @@ -1,92 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct _RESERVED_IDENTIFIER_FIXUP_gl_PerVertex -{ - float4 _RESERVED_IDENTIFIER_FIXUP_gl_Position; - float _RESERVED_IDENTIFIER_FIXUP_gl_PointSize; - spvUnsafeArray _RESERVED_IDENTIFIER_FIXUP_gl_ClipDistance; - spvUnsafeArray _RESERVED_IDENTIFIER_FIXUP_gl_CullDistance; -}; - -constant spvUnsafeArray _15 = spvUnsafeArray({ float4(0.0), float4(0.0), float4(0.0), float4(0.0) }); -constant spvUnsafeArray _45 = spvUnsafeArray({ 0.0 }); -constant spvUnsafeArray _46 = spvUnsafeArray({ 0.0 }); - -struct main0_out -{ - float4 foo; - float4 gl_Position; - float gl_PointSize; - spvUnsafeArray gl_ClipDistance; - spvUnsafeArray gl_CullDistance; -}; - -struct main0_patchOut -{ -}; -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - spvUnsafeArray<_RESERVED_IDENTIFIER_FIXUP_gl_PerVertex, 4> _29 = spvUnsafeArray<_RESERVED_IDENTIFIER_FIXUP_gl_PerVertex, 4>({ _RESERVED_IDENTIFIER_FIXUP_gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) }, _RESERVED_IDENTIFIER_FIXUP_gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) }, _RESERVED_IDENTIFIER_FIXUP_gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) }, _RESERVED_IDENTIFIER_FIXUP_gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) } }); - - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - gl_out[gl_GlobalInvocationID.x % 4].foo = _15[gl_GlobalInvocationID.x % 4]; - gl_out[gl_GlobalInvocationID.x % 4].gl_Position = _29[gl_GlobalInvocationID.x % 4]._RESERVED_IDENTIFIER_FIXUP_gl_Position; - gl_out[gl_GlobalInvocationID.x % 4].gl_PointSize = _29[gl_GlobalInvocationID.x % 4]._RESERVED_IDENTIFIER_FIXUP_gl_PointSize; - gl_out[gl_GlobalInvocationID.x % 4].gl_ClipDistance = _29[gl_GlobalInvocationID.x % 4]._RESERVED_IDENTIFIER_FIXUP_gl_ClipDistance; - gl_out[gl_GlobalInvocationID.x % 4].gl_CullDistance = _29[gl_GlobalInvocationID.x % 4]._RESERVED_IDENTIFIER_FIXUP_gl_CullDistance; - device main0_patchOut& patchOut = spvPatchOut[gl_GlobalInvocationID.x / 4]; - threadgroup float4 spvStoragefoo_patch[8]; - threadgroup float4 (&foo_patch) = spvStoragefoo_patch[(gl_GlobalInvocationID.x / 4) % 8]; - foo_patch = float4(0.0); - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - gl_out[gl_InvocationID].foo = float4(1.0); - foo_patch = float4(2.0); - gl_out[gl_InvocationID].gl_Position = float4(3.0); - gl_out[gl_InvocationID].gl_PointSize = 4.0; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers.mask-point-size.msl2.asm.tesc b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers.mask-point-size.msl2.asm.tesc deleted file mode 100644 index 344751b04c..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers.mask-point-size.msl2.asm.tesc +++ /dev/null @@ -1,90 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct gl_PerVertex -{ - float4 gl_Position; - float gl_PointSize; - spvUnsafeArray gl_ClipDistance; - spvUnsafeArray gl_CullDistance; -}; - -constant spvUnsafeArray _15 = spvUnsafeArray({ float4(0.0), float4(0.0), float4(0.0), float4(0.0) }); -constant spvUnsafeArray _45 = spvUnsafeArray({ 0.0 }); -constant spvUnsafeArray _46 = spvUnsafeArray({ 0.0 }); - -struct main0_out -{ - float4 foo; - float4 gl_Position; - spvUnsafeArray gl_ClipDistance; - spvUnsafeArray gl_CullDistance; -}; - -struct main0_patchOut -{ - float4 foo_patch; -}; - -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - spvUnsafeArray _29 = spvUnsafeArray({ gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) }, gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) }, gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) }, gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) } }); - - threadgroup gl_PerVertex gl_out_masked[4]; - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - gl_out[gl_InvocationID].foo = _15[gl_InvocationID]; - gl_out[gl_InvocationID].gl_Position = _29[gl_InvocationID].gl_Position; - gl_out[gl_InvocationID].gl_ClipDistance = _29[gl_InvocationID].gl_ClipDistance; - gl_out[gl_InvocationID].gl_CullDistance = _29[gl_InvocationID].gl_CullDistance; - gl_out_masked[gl_InvocationID] = _29[gl_InvocationID]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - patchOut.foo_patch = float4(0.0); - gl_out[gl_InvocationID].foo = float4(1.0); - patchOut.foo_patch = float4(2.0); - gl_out[gl_InvocationID].gl_Position = float4(3.0); - gl_out_masked[gl_InvocationID].gl_PointSize = 4.0; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers.mask-point-size.msl2.multi-patch.asm.tesc b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers.mask-point-size.msl2.multi-patch.asm.tesc deleted file mode 100644 index 92731ec03a..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers.mask-point-size.msl2.multi-patch.asm.tesc +++ /dev/null @@ -1,93 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct gl_PerVertex -{ - float4 gl_Position; - float gl_PointSize; - spvUnsafeArray gl_ClipDistance; - spvUnsafeArray gl_CullDistance; -}; - -constant spvUnsafeArray _15 = spvUnsafeArray({ float4(0.0), float4(0.0), float4(0.0), float4(0.0) }); -constant spvUnsafeArray _45 = spvUnsafeArray({ 0.0 }); -constant spvUnsafeArray _46 = spvUnsafeArray({ 0.0 }); - -struct main0_out -{ - float4 foo; - float4 gl_Position; - spvUnsafeArray gl_ClipDistance; - spvUnsafeArray gl_CullDistance; -}; - -struct main0_patchOut -{ - float4 foo_patch; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - spvUnsafeArray _29 = spvUnsafeArray({ gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) }, gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) }, gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) }, gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) } }); - - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - gl_out[gl_GlobalInvocationID.x % 4].foo = _15[gl_GlobalInvocationID.x % 4]; - gl_out[gl_GlobalInvocationID.x % 4].gl_Position = _29[gl_GlobalInvocationID.x % 4].gl_Position; - gl_out[gl_GlobalInvocationID.x % 4].gl_ClipDistance = _29[gl_GlobalInvocationID.x % 4].gl_ClipDistance; - gl_out[gl_GlobalInvocationID.x % 4].gl_CullDistance = _29[gl_GlobalInvocationID.x % 4].gl_CullDistance; - threadgroup gl_PerVertex spvStoragegl_out_masked[8][4]; - threadgroup gl_PerVertex (&gl_out_masked)[4] = spvStoragegl_out_masked[(gl_GlobalInvocationID.x / 4) % 8]; - gl_out_masked[gl_GlobalInvocationID.x % 4] = _29[gl_GlobalInvocationID.x % 4]; - device main0_patchOut& patchOut = spvPatchOut[gl_GlobalInvocationID.x / 4]; - patchOut.foo_patch = float4(0.0); - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - gl_out[gl_InvocationID].foo = float4(1.0); - patchOut.foo_patch = float4(2.0); - gl_out[gl_InvocationID].gl_Position = float4(3.0); - gl_out_masked[gl_InvocationID].gl_PointSize = 4.0; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers.mask-position.msl2.asm.tesc b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers.mask-position.msl2.asm.tesc deleted file mode 100644 index 2f11636a0c..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers.mask-position.msl2.asm.tesc +++ /dev/null @@ -1,90 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct gl_PerVertex -{ - float4 gl_Position; - float gl_PointSize; - spvUnsafeArray gl_ClipDistance; - spvUnsafeArray gl_CullDistance; -}; - -constant spvUnsafeArray _15 = spvUnsafeArray({ float4(0.0), float4(0.0), float4(0.0), float4(0.0) }); -constant spvUnsafeArray _45 = spvUnsafeArray({ 0.0 }); -constant spvUnsafeArray _46 = spvUnsafeArray({ 0.0 }); - -struct main0_out -{ - float4 foo; - float gl_PointSize; - spvUnsafeArray gl_ClipDistance; - spvUnsafeArray gl_CullDistance; -}; - -struct main0_patchOut -{ - float4 foo_patch; -}; - -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - spvUnsafeArray _29 = spvUnsafeArray({ gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) }, gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) }, gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) }, gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) } }); - - threadgroup gl_PerVertex gl_out_masked[4]; - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - gl_out[gl_InvocationID].foo = _15[gl_InvocationID]; - gl_out[gl_InvocationID].gl_PointSize = _29[gl_InvocationID].gl_PointSize; - gl_out[gl_InvocationID].gl_ClipDistance = _29[gl_InvocationID].gl_ClipDistance; - gl_out[gl_InvocationID].gl_CullDistance = _29[gl_InvocationID].gl_CullDistance; - gl_out_masked[gl_InvocationID] = _29[gl_InvocationID]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - patchOut.foo_patch = float4(0.0); - gl_out[gl_InvocationID].foo = float4(1.0); - patchOut.foo_patch = float4(2.0); - gl_out_masked[gl_InvocationID].gl_Position = float4(3.0); - gl_out[gl_InvocationID].gl_PointSize = 4.0; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers.mask-position.msl2.multi-patch.asm.tesc b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers.mask-position.msl2.multi-patch.asm.tesc deleted file mode 100644 index 7283eddb1f..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/masking/initializers.mask-position.msl2.multi-patch.asm.tesc +++ /dev/null @@ -1,93 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct gl_PerVertex -{ - float4 gl_Position; - float gl_PointSize; - spvUnsafeArray gl_ClipDistance; - spvUnsafeArray gl_CullDistance; -}; - -constant spvUnsafeArray _15 = spvUnsafeArray({ float4(0.0), float4(0.0), float4(0.0), float4(0.0) }); -constant spvUnsafeArray _45 = spvUnsafeArray({ 0.0 }); -constant spvUnsafeArray _46 = spvUnsafeArray({ 0.0 }); - -struct main0_out -{ - float4 foo; - float gl_PointSize; - spvUnsafeArray gl_ClipDistance; - spvUnsafeArray gl_CullDistance; -}; - -struct main0_patchOut -{ - float4 foo_patch; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - spvUnsafeArray _29 = spvUnsafeArray({ gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) }, gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) }, gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) }, gl_PerVertex{ float4(0.0), 0.0, spvUnsafeArray({ 0.0 }), spvUnsafeArray({ 0.0 }) } }); - - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - gl_out[gl_GlobalInvocationID.x % 4].foo = _15[gl_GlobalInvocationID.x % 4]; - gl_out[gl_GlobalInvocationID.x % 4].gl_PointSize = _29[gl_GlobalInvocationID.x % 4].gl_PointSize; - gl_out[gl_GlobalInvocationID.x % 4].gl_ClipDistance = _29[gl_GlobalInvocationID.x % 4].gl_ClipDistance; - gl_out[gl_GlobalInvocationID.x % 4].gl_CullDistance = _29[gl_GlobalInvocationID.x % 4].gl_CullDistance; - threadgroup gl_PerVertex spvStoragegl_out_masked[8][4]; - threadgroup gl_PerVertex (&gl_out_masked)[4] = spvStoragegl_out_masked[(gl_GlobalInvocationID.x / 4) % 8]; - gl_out_masked[gl_GlobalInvocationID.x % 4] = _29[gl_GlobalInvocationID.x % 4]; - device main0_patchOut& patchOut = spvPatchOut[gl_GlobalInvocationID.x / 4]; - patchOut.foo_patch = float4(0.0); - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - gl_out[gl_InvocationID].foo = float4(1.0); - patchOut.foo_patch = float4(2.0); - gl_out_masked[gl_InvocationID].gl_Position = float4(3.0); - gl_out[gl_InvocationID].gl_PointSize = 4.0; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/composite-extract-row-major.asm.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/composite-extract-row-major.asm.comp deleted file mode 100644 index d2c368b8ed..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/composite-extract-row-major.asm.comp +++ /dev/null @@ -1,16 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBORow -{ - float v; - float4x4 row_major0; -}; - -kernel void main0(device SSBORow& _4 [[buffer(0)]]) -{ - _4.v = _4.row_major0[2][1]; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding-2.asm.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding-2.asm.comp deleted file mode 100644 index 0ae12f0858..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding-2.asm.comp +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBOScalar -{ - float3 a; - float3x3 b; - float3x3 c; -}; - -kernel void main0(device SSBOScalar& _4 [[buffer(0)]]) -{ - float3x3 _20 = transpose(_4.b); - _4.b = _4.c; - _4.a = _20 * _4.a; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding-3.asm.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding-3.asm.comp deleted file mode 100644 index 86bdd45279..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding-3.asm.comp +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBOScalar -{ - packed_float3 a; - packed_float3 b; - packed_float3 c; -}; - -kernel void main0(device SSBOScalar& _4 [[buffer(0)]]) -{ - float3 _17 = float3(_4.b); - float3 _19 = float3(_4.c); - _4.c = _17; - _4.a = _17 * _19; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding-4.asm.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding-4.asm.comp deleted file mode 100644 index 669420436b..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding-4.asm.comp +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBOScalar -{ - float4 a[16]; - float4 b[16]; - float4 c[16]; -}; - -kernel void main0(device SSBOScalar& _4 [[buffer(0)]]) -{ - float2 _27 = _4.b[10].xy; - float _29 = _4.c[10].x; - (device float2&)_4.b[10] = float2(10.0, 11.0); - (device float2&)_4.a[10] = _27 * _29; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding-5.asm.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding-5.asm.comp deleted file mode 100644 index 23d25b8286..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding-5.asm.comp +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBOScalar -{ - float2 a; - packed_float3 b; - packed_float3 c; -}; - -kernel void main0(device SSBOScalar& _4 [[buffer(0)]]) -{ - float3 _21 = float3(_4.b); - float3 _24 = float3(_4.c); - _4.b = float3(1.0); - _4.a = _21.xy * _24.yz; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding.asm.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding.asm.comp deleted file mode 100644 index c21fcc7ffc..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding.asm.comp +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace metal; - -typedef packed_float3 packed_rm_float3x3[3]; - -struct SSBOScalar -{ - packed_float3 a; - packed_rm_float3x3 b; - packed_rm_float3x3 c; -}; - -kernel void main0(device SSBOScalar& _4 [[buffer(0)]]) -{ - float3x3 _20 = transpose(float3x3(float3(_4.b[0]), float3(_4.b[1]), float3(_4.b[2]))); - _4.b[0] = float3x3(float3(_4.c[0]), float3(_4.c[1]), float3(_4.c[2]))[0]; - _4.b[1] = float3x3(float3(_4.c[0]), float3(_4.c[1]), float3(_4.c[2]))[1]; - _4.b[2] = float3x3(float3(_4.c[0]), float3(_4.c[1]), float3(_4.c[2]))[2]; - _4.a = _20 * float3(_4.a); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/packed-vector-extract-insert.asm.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/packed-vector-extract-insert.asm.comp deleted file mode 100644 index b858561e1f..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/packed-vector-extract-insert.asm.comp +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBOScalar -{ - float2 a; - packed_float3 b; - packed_float3 c; - float3 d; -}; - -kernel void main0(device SSBOScalar& _4 [[buffer(0)]]) -{ - float3 _24 = _4.b; - _24.z = 2.0; - _4.a = float2(_4.b[0], _4.b[1]) * _4.b[2]; - _4.b = _24; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/row-major-split-access-chain.asm.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/row-major-split-access-chain.asm.comp deleted file mode 100644 index f12092cf8f..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/row-major-split-access-chain.asm.comp +++ /dev/null @@ -1,16 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBORow -{ - float v; - float4x4 row_major0; -}; - -kernel void main0(device SSBORow& _4 [[buffer(0)]]) -{ - _4.v = ((device float*)&_4.row_major0[2u])[1]; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-array-float2.asm.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-array-float2.asm.frag deleted file mode 100644 index f26e35c672..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-array-float2.asm.frag +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include - -using namespace metal; - -struct type_Foo -{ - float4 a[1]; - char _m1_pad[8]; - float b; -}; - -struct main0_out -{ - float2 out_var_SV_Target [[color(0)]]; -}; - -fragment main0_out main0(constant type_Foo& Foo [[buffer(0)]]) -{ - main0_out out = {}; - out.out_var_SV_Target = (Foo.a[0].xy + Foo.a[1].xy) + float2(Foo.b); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-array-float3-one-element.asm.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-array-float3-one-element.asm.frag deleted file mode 100644 index 6f8546532f..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-array-float3-one-element.asm.frag +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace metal; - -struct type_Foo -{ - packed_float3 a[1]; - float b; -}; - -struct main0_out -{ - float3 out_var_SV_Target [[color(0)]]; -}; - -fragment main0_out main0(constant type_Foo& Foo [[buffer(0)]]) -{ - main0_out out = {}; - out.out_var_SV_Target = float3(Foo.a[0]) + float3(Foo.b); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-array-float3.asm.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-array-float3.asm.frag deleted file mode 100644 index 565ee64e04..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-array-float3.asm.frag +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include - -using namespace metal; - -struct type_Foo -{ - float4 a[1]; - char _m1_pad[12]; - float b; -}; - -struct main0_out -{ - float3 out_var_SV_Target [[color(0)]]; -}; - -fragment main0_out main0(constant type_Foo& Foo [[buffer(0)]]) -{ - main0_out out = {}; - out.out_var_SV_Target = (Foo.a[0].xyz + Foo.a[1].xyz) + float3(Foo.b); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-float2x2-col-major.invalid.asm.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-float2x2-col-major.invalid.asm.frag deleted file mode 100644 index 8440b2f229..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-float2x2-col-major.invalid.asm.frag +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include - -using namespace metal; - -struct type_Foo -{ - float4 a[1]; - char _m1_pad[8]; - float b; -}; - -struct main0_out -{ - float2 out_var_SV_Target [[color(0)]]; -}; - -fragment main0_out main0(constant type_Foo& Foo [[buffer(0)]]) -{ - main0_out out = {}; - out.out_var_SV_Target = (Foo.a[0u].xy + Foo.a[1u].xy) + float2(Foo.b); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-float2x2-row-major.asm.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-float2x2-row-major.asm.frag deleted file mode 100644 index 9b347718ed..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-float2x2-row-major.asm.frag +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include - -using namespace metal; - -struct type_Foo -{ - float4 a[1]; - char _m1_pad[8]; - float b; -}; - -struct main0_out -{ - float2 out_var_SV_Target [[color(0)]]; -}; - -fragment main0_out main0(constant type_Foo& Foo [[buffer(0)]]) -{ - main0_out out = {}; - out.out_var_SV_Target = (float2(Foo.a[0][0u], Foo.a[1][0u]) + float2(Foo.a[0][1u], Foo.a[1][1u])) + float2(Foo.b); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-float2x3-col-major.invalid.asm.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-float2x3-col-major.invalid.asm.frag deleted file mode 100644 index cd40af10f2..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-float2x3-col-major.invalid.asm.frag +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include - -using namespace metal; - -struct type_Foo -{ - float4 a[1]; - char _m1_pad[12]; - float b; -}; - -struct main0_out -{ - float3 out_var_SV_Target [[color(0)]]; -}; - -fragment main0_out main0(constant type_Foo& Foo [[buffer(0)]]) -{ - main0_out out = {}; - out.out_var_SV_Target = (Foo.a[0u].xyz + Foo.a[1u].xyz) + float3(Foo.b); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-float2x3-row-major.asm.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-float2x3-row-major.asm.frag deleted file mode 100644 index 86dfd6054b..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-float2x3-row-major.asm.frag +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include - -using namespace metal; - -struct type_Foo -{ - float2x4 a; - char _m1_pad[8]; - float b; -}; - -struct main0_out -{ - float3 out_var_SV_Target [[color(0)]]; -}; - -fragment main0_out main0(constant type_Foo& Foo [[buffer(0)]]) -{ - main0_out out = {}; - out.out_var_SV_Target = (float3(Foo.a[0][0u], Foo.a[1][0u], Foo.a[2][0u]) + float3(Foo.a[0][1u], Foo.a[1][1u], Foo.a[2][1u])) + float3(Foo.b); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-float3x2-col-major.invalid.asm.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-float3x2-col-major.invalid.asm.frag deleted file mode 100644 index 7430a551fa..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-float3x2-col-major.invalid.asm.frag +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include - -using namespace metal; - -struct type_Foo -{ - float2x4 a; - char _m1_pad[8]; - float b; -}; - -struct main0_out -{ - float2 out_var_SV_Target [[color(0)]]; -}; - -fragment main0_out main0(constant type_Foo& Foo [[buffer(0)]]) -{ - main0_out out = {}; - out.out_var_SV_Target = (Foo.a[0u].xy + Foo.a[1u].xy) + float2(Foo.b); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-float3x2-row-major.asm.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-float3x2-row-major.asm.frag deleted file mode 100644 index 19b7f1eebb..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-float3x2-row-major.asm.frag +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include - -using namespace metal; - -struct type_Foo -{ - float4 a[1]; - char _m1_pad[12]; - float b; -}; - -struct main0_out -{ - float2 out_var_SV_Target [[color(0)]]; -}; - -fragment main0_out main0(constant type_Foo& Foo [[buffer(0)]]) -{ - main0_out out = {}; - out.out_var_SV_Target = (float2(Foo.a[0][0u], Foo.a[1][0u]) + float2(Foo.a[0][1u], Foo.a[1][1u])) + float2(Foo.b); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-float3x3-col-major.invalid.asm.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-float3x3-col-major.invalid.asm.frag deleted file mode 100644 index f8008525b6..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-float3x3-col-major.invalid.asm.frag +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include - -using namespace metal; - -struct type_Foo -{ - float2x4 a; - char _m1_pad[12]; - float b; -}; - -struct main0_out -{ - float3 out_var_SV_Target [[color(0)]]; -}; - -fragment main0_out main0(constant type_Foo& Foo [[buffer(0)]]) -{ - main0_out out = {}; - out.out_var_SV_Target = (Foo.a[0u].xyz + Foo.a[1u].xyz) + float3(Foo.b); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-float3x3-row-major.asm.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-float3x3-row-major.asm.frag deleted file mode 100644 index 041b6e91d6..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/packing/scalar-float3x3-row-major.asm.frag +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include - -using namespace metal; - -struct type_Foo -{ - float2x4 a; - char _m1_pad[12]; - float b; -}; - -struct main0_out -{ - float3 out_var_SV_Target [[color(0)]]; -}; - -fragment main0_out main0(constant type_Foo& Foo [[buffer(0)]]) -{ - main0_out out = {}; - out.out_var_SV_Target = (float3(Foo.a[0][0u], Foo.a[1][0u], Foo.a[2][0u]) + float3(Foo.a[0][1u], Foo.a[1][1u], Foo.a[2][1u])) + float3(Foo.b); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/temporary.zero-initialize.asm.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/temporary.zero-initialize.asm.frag deleted file mode 100644 index 6fbf2ff70f..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/temporary.zero-initialize.asm.frag +++ /dev/null @@ -1,38 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - int vA [[user(locn0)]]; - int vB [[user(locn1)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.FragColor = float4(0.0); - int _10 = {}; - int _15 = {}; - for (int _16 = 0, _17 = 0; _16 < in.vA; _17 = _15, _16 += _10) - { - if ((in.vA + _16) == 20) - { - _15 = 50; - } - else - { - _15 = ((in.vB + _16) == 40) ? 60 : _17; - } - _10 = _15 + 10; - out.FragColor += float4(1.0); - } - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/array-control-point-initializer.asm.tesc b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/array-control-point-initializer.asm.tesc deleted file mode 100644 index 5c30e05a4b..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/array-control-point-initializer.asm.tesc +++ /dev/null @@ -1,65 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -constant spvUnsafeArray _49 = spvUnsafeArray({ 0.0, 0.0, 0.0 }); -constant spvUnsafeArray, 4> _27 = spvUnsafeArray, 4>({ spvUnsafeArray({ 0.0, 0.0, 0.0 }), spvUnsafeArray({ 0.0, 0.0, 0.0 }), spvUnsafeArray({ 0.0, 0.0, 0.0 }), spvUnsafeArray({ 0.0, 0.0, 0.0 }) }); - -struct main0_out -{ - spvUnsafeArray foo; - float4 gl_Position; -}; - -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - gl_out[gl_InvocationID].foo = _27[gl_InvocationID]; - gl_out[gl_InvocationID].gl_Position = float4(1.0); - gl_out[gl_InvocationID].foo[0] = float(gl_InvocationID); - gl_out[gl_InvocationID].foo[1] = float(gl_InvocationID) + 1.0; - gl_out[gl_InvocationID].foo[2] = float(gl_InvocationID) + 2.0; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/block-control-point-initializer.asm.tesc b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/block-control-point-initializer.asm.tesc deleted file mode 100644 index 0efeb36ecf..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/block-control-point-initializer.asm.tesc +++ /dev/null @@ -1,70 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct Verts -{ - float a; - float2 b; -}; - -struct main0_out -{ - float Verts_a; - float2 Verts_b; - float4 gl_Position; -}; - -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - spvUnsafeArray _27 = spvUnsafeArray({ Verts{ 0.0, float2(0.0) }, Verts{ 0.0, float2(0.0) }, Verts{ 0.0, float2(0.0) }, Verts{ 0.0, float2(0.0) } }); - - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - gl_out[gl_InvocationID].Verts_a = _27[gl_InvocationID].a; - gl_out[gl_InvocationID].Verts_b = _27[gl_InvocationID].b; - gl_out[gl_InvocationID].gl_Position = float4(1.0); - gl_out[gl_InvocationID].Verts_a = float(gl_InvocationID); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/builtin-control-point-initializer.asm.tesc b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/builtin-control-point-initializer.asm.tesc deleted file mode 100644 index 8777212b46..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/builtin-control-point-initializer.asm.tesc +++ /dev/null @@ -1,80 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct _RESERVED_IDENTIFIER_FIXUP_gl_PerVertex -{ - float4 _RESERVED_IDENTIFIER_FIXUP_gl_Position; - float _RESERVED_IDENTIFIER_FIXUP_gl_PointSize; -}; - -struct Verts -{ - float a; - float2 b; -}; - -struct main0_out -{ - float Verts_a; - float2 Verts_b; - float4 gl_Position; - float gl_PointSize; -}; - -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - spvUnsafeArray<_RESERVED_IDENTIFIER_FIXUP_gl_PerVertex, 4> _17 = spvUnsafeArray<_RESERVED_IDENTIFIER_FIXUP_gl_PerVertex, 4>({ _RESERVED_IDENTIFIER_FIXUP_gl_PerVertex{ float4(0.0), 0.0 }, _RESERVED_IDENTIFIER_FIXUP_gl_PerVertex{ float4(0.0), 0.0 }, _RESERVED_IDENTIFIER_FIXUP_gl_PerVertex{ float4(0.0), 0.0 }, _RESERVED_IDENTIFIER_FIXUP_gl_PerVertex{ float4(0.0), 0.0 } }); - spvUnsafeArray _27 = spvUnsafeArray({ Verts{ 0.0, float2(0.0) }, Verts{ 0.0, float2(0.0) }, Verts{ 0.0, float2(0.0) }, Verts{ 0.0, float2(0.0) } }); - - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - gl_out[gl_InvocationID].gl_Position = _17[gl_InvocationID]._RESERVED_IDENTIFIER_FIXUP_gl_Position; - gl_out[gl_InvocationID].gl_PointSize = _17[gl_InvocationID]._RESERVED_IDENTIFIER_FIXUP_gl_PointSize; - gl_out[gl_InvocationID].Verts_a = _27[gl_InvocationID].a; - gl_out[gl_InvocationID].Verts_b = _27[gl_InvocationID].b; - gl_out[gl_InvocationID].gl_Position = float4(1.0); - gl_out[gl_InvocationID].Verts_a = float(gl_InvocationID); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/composite-control-point-initializer.asm.tesc b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/composite-control-point-initializer.asm.tesc deleted file mode 100644 index a10731bb28..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/composite-control-point-initializer.asm.tesc +++ /dev/null @@ -1,69 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct Foo -{ - float a; - float2 b; - float4 c; -}; - -struct main0_out -{ - Foo foo; - float4 gl_Position; -}; - -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - spvUnsafeArray _27 = spvUnsafeArray({ Foo{ 0.0, float2(0.0), float4(0.0) }, Foo{ 0.0, float2(0.0), float4(0.0) }, Foo{ 0.0, float2(0.0), float4(0.0) }, Foo{ 0.0, float2(0.0), float4(0.0) } }); - - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - gl_out[gl_InvocationID].foo = _27[gl_InvocationID]; - gl_out[gl_InvocationID].gl_Position = float4(1.0); - gl_out[gl_InvocationID].foo.a = float(gl_InvocationID); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/copy-memory-control-point.asm.tesc b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/copy-memory-control-point.asm.tesc deleted file mode 100644 index b7246ac570..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/copy-memory-control-point.asm.tesc +++ /dev/null @@ -1,125 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct cb1_struct -{ - float4 _m0[1]; -}; - -struct main0_out -{ - float3 vocp0; - float4 vocp1; -}; - -struct main0_in -{ - float4 v0 [[attribute(0)]]; - float4 v1 [[attribute(1)]]; - float3 vicp0 [[attribute(2)]]; - float4 vicp1 [[attribute(4)]]; -}; - -static inline __attribute__((always_inline)) -void fork0_epilogue(thread const float4& _87, thread const float4& _88, thread const float4& _89, device half (&gl_TessLevelOuter)[3]) -{ - gl_TessLevelOuter[0u] = half(_87.x); - gl_TessLevelOuter[1u] = half(_88.x); - gl_TessLevelOuter[2u] = half(_89.x); -} - -static inline __attribute__((always_inline)) -void fork0(uint vForkInstanceId, device half (&gl_TessLevelOuter)[3], thread spvUnsafeArray& opc, constant cb1_struct& cb0_0, thread float4& v_48, thread float4& v_49, thread float4& v_50) -{ - float4 r0; - r0.x = as_type(vForkInstanceId); - opc[as_type(r0.x)].x = cb0_0._m0[0u].x; - v_48 = opc[0u]; - v_49 = opc[1u]; - v_50 = opc[2u]; - fork0_epilogue(v_48, v_49, v_50, gl_TessLevelOuter); -} - -static inline __attribute__((always_inline)) -void fork1_epilogue(thread const float4& _109, device half &gl_TessLevelInner) -{ - gl_TessLevelInner = half(_109.x); -} - -static inline __attribute__((always_inline)) -void fork1(device half &gl_TessLevelInner, thread spvUnsafeArray& opc, constant cb1_struct& cb0_0, thread float4& v_56) -{ - opc[3u].x = cb0_0._m0[0u].x; - v_56 = opc[3u]; - fork1_epilogue(v_56, gl_TessLevelInner); -} - -kernel void main0(main0_in in [[stage_in]], constant cb1_struct& cb0_0 [[buffer(0)]], uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLTriangleTessellationFactorsHalf* spvTessLevel [[buffer(26)]], threadgroup main0_in* gl_in [[threadgroup(0)]]) -{ - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 3]; - if (gl_InvocationID < spvIndirectParams[0]) - gl_in[gl_InvocationID] = in; - threadgroup_barrier(mem_flags::mem_threadgroup); - if (gl_InvocationID >= 3) - return; - spvUnsafeArray, 2> vicp; - spvUnsafeArray _153 = spvUnsafeArray({ gl_in[0].v0, gl_in[1].v0, gl_in[2].v0 }); - vicp[0u] = _153; - spvUnsafeArray _154 = spvUnsafeArray({ gl_in[0].v1, gl_in[1].v1, gl_in[2].v1 }); - vicp[1u] = _154; - gl_out[gl_InvocationID].vocp0 = gl_in[gl_InvocationID].vicp0; - gl_out[gl_InvocationID].vocp1 = gl_in[gl_InvocationID].vicp1; - spvUnsafeArray opc; - float4 v_48; - float4 v_49; - float4 v_50; - fork0(0u, spvTessLevel[gl_PrimitiveID].edgeTessellationFactor, opc, cb0_0, v_48, v_49, v_50); - fork0(1u, spvTessLevel[gl_PrimitiveID].edgeTessellationFactor, opc, cb0_0, v_48, v_49, v_50); - fork0(2u, spvTessLevel[gl_PrimitiveID].edgeTessellationFactor, opc, cb0_0, v_48, v_49, v_50); - float4 v_56; - fork1(spvTessLevel[gl_PrimitiveID].insideTessellationFactor, opc, cb0_0, v_56); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/copy-tess-level-tri.asm.tesc b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/copy-tess-level-tri.asm.tesc deleted file mode 100644 index a492cb829c..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/copy-tess-level-tri.asm.tesc +++ /dev/null @@ -1,68 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -constant spvUnsafeArray _19 = spvUnsafeArray({ 1.0, 2.0 }); -constant spvUnsafeArray _25 = spvUnsafeArray({ 1.0, 2.0, 3.0, 4.0 }); - -struct main0_out -{ - float4 gl_Position; -}; - -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLTriangleTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 1]; - spvTessLevel[gl_PrimitiveID].insideTessellationFactor = half(_19[0]); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(_25[0]); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(_25[1]); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(_25[2]); - spvUnsafeArray inner; - inner = spvUnsafeArray({ float(spvTessLevel[gl_PrimitiveID].insideTessellationFactor), 0.0 }); - spvUnsafeArray outer; - outer = spvUnsafeArray({ float(spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0]), float(spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1]), float(spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2]), 0.0 }); - gl_out[gl_InvocationID].gl_Position = float4(1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/plain-control-point-initializer.asm.tesc b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/plain-control-point-initializer.asm.tesc deleted file mode 100644 index 0c6c1dc813..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/plain-control-point-initializer.asm.tesc +++ /dev/null @@ -1,62 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -constant spvUnsafeArray _25 = spvUnsafeArray({ 0.0, 0.0, 0.0, 0.0 }); - -struct main0_out -{ - float v; - float4 gl_Position; -}; - -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - gl_out[gl_InvocationID].v = _25[gl_InvocationID]; - gl_out[gl_InvocationID].gl_Position = float4(1.0); - gl_out[gl_InvocationID].v = float(gl_InvocationID); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/tess-fixed-input-array-builtin-array.invalid.asm.tesc b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/tess-fixed-input-array-builtin-array.invalid.asm.tesc deleted file mode 100644 index 32b9e4a9fa..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/tess-fixed-input-array-builtin-array.invalid.asm.tesc +++ /dev/null @@ -1,141 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct VertexOutput -{ - float4 pos; - float2 uv; -}; - -struct HSOut -{ - float4 pos; - float2 uv; -}; - -struct HSConstantOut -{ - spvUnsafeArray EdgeTess; - float InsideTess; -}; - -struct VertexOutput_1 -{ - float2 uv; -}; - -struct HSOut_1 -{ - float2 uv; -}; - -struct main0_out -{ - HSOut_1 _entryPointOutput; - float4 gl_Position; -}; - -struct main0_in -{ - float2 VertexOutput_uv [[attribute(0)]]; - float4 gl_Position [[attribute(1)]]; -}; - -static inline __attribute__((always_inline)) -HSOut _hs_main(thread const spvUnsafeArray& p, thread const uint& i) -{ - HSOut _output; - _output.pos = p[i].pos; - _output.uv = p[i].uv; - return _output; -} - -static inline __attribute__((always_inline)) -HSConstantOut PatchHS(thread const spvUnsafeArray& _patch) -{ - HSConstantOut _output; - _output.EdgeTess[0] = (float2(1.0) + _patch[0].uv).x; - _output.EdgeTess[1] = (float2(1.0) + _patch[0].uv).x; - _output.EdgeTess[2] = (float2(1.0) + _patch[0].uv).x; - _output.InsideTess = (float2(1.0) + _patch[0].uv).x; - return _output; -} - -kernel void main0(main0_in in [[stage_in]], uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLTriangleTessellationFactorsHalf* spvTessLevel [[buffer(26)]], threadgroup main0_in* gl_in [[threadgroup(0)]]) -{ - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 3]; - if (gl_InvocationID < spvIndirectParams[0]) - gl_in[gl_InvocationID] = in; - threadgroup_barrier(mem_flags::mem_threadgroup); - if (gl_InvocationID >= 3) - return; - spvUnsafeArray p; - p[0].pos = gl_in[0].gl_Position; - p[0].uv = gl_in[0].VertexOutput_uv; - p[1].pos = gl_in[1].gl_Position; - p[1].uv = gl_in[1].VertexOutput_uv; - p[2].pos = gl_in[2].gl_Position; - p[2].uv = gl_in[2].VertexOutput_uv; - uint i = gl_InvocationID; - spvUnsafeArray param; - param = p; - uint param_1 = i; - HSOut flattenTemp = _hs_main(param, param_1); - gl_out[gl_InvocationID].gl_Position = flattenTemp.pos; - gl_out[gl_InvocationID]._entryPointOutput.uv = flattenTemp.uv; - threadgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup); - if (int(gl_InvocationID) == 0) - { - spvUnsafeArray param_2; - param_2 = p; - HSConstantOut _patchConstantResult = PatchHS(param_2); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(_patchConstantResult.EdgeTess[0]); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(_patchConstantResult.EdgeTess[1]); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(_patchConstantResult.EdgeTess[2]); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor = half(_patchConstantResult.InsideTess); - } -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/tess-fixed-input-array-builtin-array.invalid.multi-patch.asm.tesc b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/tess-fixed-input-array-builtin-array.invalid.multi-patch.asm.tesc deleted file mode 100644 index dabe1b3857..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/tess-fixed-input-array-builtin-array.invalid.multi-patch.asm.tesc +++ /dev/null @@ -1,140 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct VertexOutput -{ - float4 pos; - float2 uv; -}; - -struct HSOut -{ - float4 pos; - float2 uv; -}; - -struct HSConstantOut -{ - spvUnsafeArray EdgeTess; - float InsideTess; -}; - -struct VertexOutput_1 -{ - float2 uv; -}; - -struct HSOut_1 -{ - float2 uv; -}; - -struct main0_out -{ - HSOut_1 _entryPointOutput; - float4 gl_Position; -}; - -struct main0_in -{ - VertexOutput_1 p; - ushort2 m_171; - float4 gl_Position; -}; - -static inline __attribute__((always_inline)) -HSOut _hs_main(thread const spvUnsafeArray& p, thread const uint& i) -{ - HSOut _output; - _output.pos = p[i].pos; - _output.uv = p[i].uv; - return _output; -} - -static inline __attribute__((always_inline)) -HSConstantOut PatchHS(thread const spvUnsafeArray& _patch) -{ - HSConstantOut _output; - _output.EdgeTess[0] = (float2(1.0) + _patch[0].uv).x; - _output.EdgeTess[1] = (float2(1.0) + _patch[0].uv).x; - _output.EdgeTess[2] = (float2(1.0) + _patch[0].uv).x; - _output.InsideTess = (float2(1.0) + _patch[0].uv).x; - return _output; -} - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLTriangleTessellationFactorsHalf* spvTessLevel [[buffer(26)]], device main0_in* spvIn [[buffer(22)]]) -{ - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 3]; - device main0_in* gl_in = &spvIn[min(gl_GlobalInvocationID.x / 3, spvIndirectParams[1] - 1) * spvIndirectParams[0]]; - uint gl_InvocationID = gl_GlobalInvocationID.x % 3; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 3, spvIndirectParams[1] - 1); - spvUnsafeArray p; - p[0].pos = gl_in[0].gl_Position; - p[0].uv = gl_in[0].p.uv; - p[1].pos = gl_in[1].gl_Position; - p[1].uv = gl_in[1].p.uv; - p[2].pos = gl_in[2].gl_Position; - p[2].uv = gl_in[2].p.uv; - uint i = gl_InvocationID; - spvUnsafeArray param; - param = p; - uint param_1 = i; - HSOut flattenTemp = _hs_main(param, param_1); - gl_out[gl_InvocationID].gl_Position = flattenTemp.pos; - gl_out[gl_InvocationID]._entryPointOutput.uv = flattenTemp.uv; - threadgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup); - if (int(gl_InvocationID) == 0) - { - spvUnsafeArray param_2; - param_2 = p; - HSConstantOut _patchConstantResult = PatchHS(param_2); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(_patchConstantResult.EdgeTess[0]); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(_patchConstantResult.EdgeTess[1]); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(_patchConstantResult.EdgeTess[2]); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor = half(_patchConstantResult.InsideTess); - } -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/tess-level-initializer-quad.asm.tesc b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/tess-level-initializer-quad.asm.tesc deleted file mode 100644 index d6d0bc0149..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/tess-level-initializer-quad.asm.tesc +++ /dev/null @@ -1,78 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -constant spvUnsafeArray _27 = spvUnsafeArray({ 0.0, 0.0 }); -constant spvUnsafeArray _33 = spvUnsafeArray({ 0.0, 0.0, 0.0, 0.0 }); - -struct main0_out -{ - float4 gl_Position; -}; - -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(0.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(0.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(0.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3] = half(0.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[0] = half(0.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[1] = half(0.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(0.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(0.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(0.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3] = half(0.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[0] = half(0.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[1] = half(0.0); - gl_out[gl_InvocationID].gl_Position = float4(1.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[0] = half(1.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[1] = half(2.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(3.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(4.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(5.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3] = half(6.0); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/tess-level-initializer-triangle.asm.tesc b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/tess-level-initializer-triangle.asm.tesc deleted file mode 100644 index 979f4329f5..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/tess-level-initializer-triangle.asm.tesc +++ /dev/null @@ -1,72 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -constant spvUnsafeArray _27 = spvUnsafeArray({ 0.0, 0.0 }); -constant spvUnsafeArray _33 = spvUnsafeArray({ 0.0, 0.0, 0.0, 0.0 }); - -struct main0_out -{ - float4 gl_Position; -}; - -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLTriangleTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(0.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(0.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(0.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor = half(0.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(0.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(0.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(0.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor = half(0.0); - gl_out[gl_InvocationID].gl_Position = float4(1.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor = half(1.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(3.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(4.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(5.0); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/tess-level-read-write-in-function-tri.asm.tesc b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/tess-level-read-write-in-function-tri.asm.tesc deleted file mode 100644 index b6e40bc835..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tesc/tess-level-read-write-in-function-tri.asm.tesc +++ /dev/null @@ -1,35 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position; -}; - -static inline __attribute__((always_inline)) -void store_tess_level_in_func(device half &gl_TessLevelInner, device half (&gl_TessLevelOuter)[3]) -{ - gl_TessLevelInner = half(1.0); - gl_TessLevelOuter[0] = half(3.0); - gl_TessLevelOuter[1] = half(4.0); - gl_TessLevelOuter[2] = half(5.0); -} - -static inline __attribute__((always_inline)) -float load_tess_level_in_func(device half &gl_TessLevelInner, device half (&gl_TessLevelOuter)[3]) -{ - return float(gl_TessLevelInner) + float(gl_TessLevelOuter[1]); -} - -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLTriangleTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 1]; - store_tess_level_in_func(spvTessLevel[gl_PrimitiveID].insideTessellationFactor, spvTessLevel[gl_PrimitiveID].edgeTessellationFactor); - float v = load_tess_level_in_func(spvTessLevel[gl_PrimitiveID].insideTessellationFactor, spvTessLevel[gl_PrimitiveID].edgeTessellationFactor); - gl_out[gl_InvocationID].gl_Position = float4(v); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tese/copy-tess-level.asm.msl2.tese b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tese/copy-tess-level.asm.msl2.tese deleted file mode 100644 index e34fd66eed..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tese/copy-tess-level.asm.msl2.tese +++ /dev/null @@ -1,73 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 out_var_CUSTOM_VALUE [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -struct main0_patchIn -{ - float4 gl_TessLevelOuter [[attribute(0)]]; - float2 gl_TessLevelInner [[attribute(1)]]; -}; - -[[ patch(quad, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]]) -{ - main0_out out = {}; - spvUnsafeArray gl_TessLevelOuter = {}; - spvUnsafeArray gl_TessLevelInner = {}; - gl_TessLevelOuter[0] = patchIn.gl_TessLevelOuter.x; - gl_TessLevelOuter[1] = patchIn.gl_TessLevelOuter.y; - gl_TessLevelOuter[2] = patchIn.gl_TessLevelOuter.z; - gl_TessLevelOuter[3] = patchIn.gl_TessLevelOuter.w; - gl_TessLevelInner[0] = patchIn.gl_TessLevelInner.x; - gl_TessLevelInner[1] = patchIn.gl_TessLevelInner.y; - out.out_var_CUSTOM_VALUE = float4(gl_TessLevelOuter[0] + gl_TessLevelInner[0], gl_TessLevelOuter[1] + gl_TessLevelInner[1], gl_TessLevelOuter[2], gl_TessLevelOuter[3]); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tese/split-access-chain.asm.tese b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tese/split-access-chain.asm.tese deleted file mode 100644 index 05a8113331..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/tese/split-access-chain.asm.tese +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float o0 [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 in0 [[attribute(0)]]; -}; - -struct main0_patchIn -{ - patch_control_point gl_in; -}; - -[[ patch(quad, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]]) -{ - main0_out out = {}; - out.o0 = patchIn.gl_in[0u].in0.z; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/vert/block-struct-initializer.asm.vert b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/vert/block-struct-initializer.asm.vert deleted file mode 100644 index f2d813a3f7..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/vert/block-struct-initializer.asm.vert +++ /dev/null @@ -1,39 +0,0 @@ -#include -#include - -using namespace metal; - -struct Vert -{ - float a; - float b; -}; - -struct Foo -{ - float c; - float d; -}; - -struct main0_out -{ - float Vert_a [[user(locn0)]]; - float Vert_b [[user(locn1)]]; - float Foo_c [[user(locn2)]]; - float Foo_d [[user(locn3)]]; - float4 gl_Position [[position]]; -}; - -vertex main0_out main0() -{ - main0_out out = {}; - Vert _3 = Vert{ 0.0, 0.0 }; - Foo foo = Foo{ 0.0, 0.0 }; - out.gl_Position = float4(0.0); - out.Vert_a = _3.a; - out.Vert_b = _3.b; - out.Foo_c = foo.c; - out.Foo_d = foo.d; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/vert/builtin-output-initializer.asm.vert b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/vert/builtin-output-initializer.asm.vert deleted file mode 100644 index 54b88ba9c6..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/vert/builtin-output-initializer.asm.vert +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; - float gl_PointSize [[point_size]]; -}; - -vertex main0_out main0() -{ - main0_out out = {}; - out.gl_Position = float4(0.0); - out.gl_PointSize = 0.0; - out.gl_Position = float4(1.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/vert/composite-extract-physical-type-id.asm.vert b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/vert/composite-extract-physical-type-id.asm.vert deleted file mode 100644 index ea89378b10..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/vert/composite-extract-physical-type-id.asm.vert +++ /dev/null @@ -1,31 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct type_Float2Array -{ - float4 arr[3]; -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -static inline __attribute__((always_inline)) -float4 src_VSMain(thread const uint& i, constant type_Float2Array& Float2Array) -{ - return float4(Float2Array.arr[i].x, Float2Array.arr[i].y, 0.0, 1.0); -} - -vertex main0_out main0(constant type_Float2Array& Float2Array [[buffer(0)]], uint gl_VertexIndex [[vertex_id]]) -{ - main0_out out = {}; - uint param_var_i = gl_VertexIndex; - out.gl_Position = src_VSMain(param_var_i, Float2Array); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/vert/duplicate-view-index.asm.vert b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/vert/duplicate-view-index.asm.vert deleted file mode 100644 index f007a67f22..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/vert/duplicate-view-index.asm.vert +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; - uint gl_Layer [[render_target_array_index]]; -}; - -vertex main0_out main0(uint gl_InstanceIndex [[instance_id]], uint gl_BaseInstance [[base_instance]]) -{ - main0_out out = {}; - const uint gl_ViewIndex = 0; - out.gl_Position = float4(float(int(gl_ViewIndex))); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/vert/empty-struct-composite.asm.vert b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/vert/empty-struct-composite.asm.vert deleted file mode 100644 index 95b61a40db..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/vert/empty-struct-composite.asm.vert +++ /dev/null @@ -1,13 +0,0 @@ -#include -#include - -using namespace metal; - -struct Test -{ -}; -vertex void main0() -{ - Test t = Test{ }; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/vert/op-load-forced-temporary-array.asm.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/vert/op-load-forced-temporary-array.asm.frag deleted file mode 100644 index 18d98993e5..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/vert/op-load-forced-temporary-array.asm.frag +++ /dev/null @@ -1,76 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -constant float _21 = {}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -vertex main0_out main0() -{ - main0_out out = {}; - spvUnsafeArray _23; - for (int _25 = 0; _25 < 2; ) - { - _23[_25] = 0.0; - _25++; - continue; - } - float _37; - if (as_type(3.0) != 0u) - { - _37 = _23[0]; - } - else - { - _37 = _21; - } - out.gl_Position = float4(0.0, 0.0, 0.0, _37); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/vert/pointer-to-pointer.asm.vert b/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/vert/pointer-to-pointer.asm.vert deleted file mode 100644 index 750afcf25b..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/asm/vert/pointer-to-pointer.asm.vert +++ /dev/null @@ -1,20 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -device float* thread * constant _9 = {}; - -static inline __attribute__((always_inline)) -void _10(device float* thread * const thread & _11) -{ -} - -vertex void main0() -{ - device float* thread * _14 = _9; - _10(_14); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/array-copy-threadgroup-memory.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/array-copy-threadgroup-memory.comp deleted file mode 100644 index c849faf088..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/array-copy-threadgroup-memory.comp +++ /dev/null @@ -1,172 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(8u, 1u, 1u); - -template -inline void spvArrayCopyFromConstantToStack1(thread T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromConstantToThreadGroup1(threadgroup T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToStack1(thread T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToThreadGroup1(threadgroup T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToStack1(thread T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToThreadGroup1(threadgroup T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToDevice1(device T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromConstantToDevice1(device T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToDevice1(device T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToDevice1(device T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToStack1(thread T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToThreadGroup1(threadgroup T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -kernel void main0(uint gl_LocalInvocationIndex [[thread_index_in_threadgroup]]) -{ - threadgroup float shared_group[8][8]; - threadgroup float shared_group_alt[8][8]; - spvUnsafeArray blob; - for (int i = 0; i < 8; i++) - { - blob[i] = float(i); - } - spvArrayCopyFromStackToThreadGroup1(shared_group[gl_LocalInvocationIndex], blob.elements); - threadgroup_barrier(mem_flags::mem_threadgroup); - spvUnsafeArray copied_blob; - spvArrayCopyFromThreadGroupToStack1(copied_blob.elements, shared_group[gl_LocalInvocationIndex ^ 1u]); - spvArrayCopyFromThreadGroupToThreadGroup1(shared_group_alt[gl_LocalInvocationIndex], shared_group[gl_LocalInvocationIndex]); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/basic.dynamic-buffer.msl2.invalid.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/basic.dynamic-buffer.msl2.invalid.comp deleted file mode 100644 index ae8c5b0295..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/basic.dynamic-buffer.msl2.invalid.comp +++ /dev/null @@ -1,90 +0,0 @@ -#include -#include - -using namespace metal; - -struct Baz -{ - int e; - int f; -}; - -struct Foo -{ - int a; - int b; -}; - -struct Bar -{ - int c; - int d; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(3u, 3u, 2u); - -struct spvDescriptorSetBuffer0 -{ - constant Foo* m_34 [[id(0)]]; - constant Bar* m_40 [[id(1)]]; -}; - -struct spvDescriptorSetBuffer1 -{ - device Baz* baz [[id(0)]][3][3][2]; -}; - -kernel void main0(constant spvDescriptorSetBuffer0& spvDescriptorSet0 [[buffer(0)]], constant spvDescriptorSetBuffer1& spvDescriptorSet1 [[buffer(1)]], constant uint* spvDynamicOffsets [[buffer(23)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - constant auto& _34 = *(constant Foo* )((constant char* )spvDescriptorSet0.m_34 + spvDynamicOffsets[0]); - device Baz* baz[3][3][2] = - { - { - { - (device Baz* )((device char* )spvDescriptorSet1.baz[0][0][0] + spvDynamicOffsets[1]), - (device Baz* )((device char* )spvDescriptorSet1.baz[0][0][1] + spvDynamicOffsets[2]), - }, - { - (device Baz* )((device char* )spvDescriptorSet1.baz[0][1][0] + spvDynamicOffsets[3]), - (device Baz* )((device char* )spvDescriptorSet1.baz[0][1][1] + spvDynamicOffsets[4]), - }, - { - (device Baz* )((device char* )spvDescriptorSet1.baz[0][2][0] + spvDynamicOffsets[5]), - (device Baz* )((device char* )spvDescriptorSet1.baz[0][2][1] + spvDynamicOffsets[6]), - }, - }, - { - { - (device Baz* )((device char* )spvDescriptorSet1.baz[1][0][0] + spvDynamicOffsets[7]), - (device Baz* )((device char* )spvDescriptorSet1.baz[1][0][1] + spvDynamicOffsets[8]), - }, - { - (device Baz* )((device char* )spvDescriptorSet1.baz[1][1][0] + spvDynamicOffsets[9]), - (device Baz* )((device char* )spvDescriptorSet1.baz[1][1][1] + spvDynamicOffsets[10]), - }, - { - (device Baz* )((device char* )spvDescriptorSet1.baz[1][2][0] + spvDynamicOffsets[11]), - (device Baz* )((device char* )spvDescriptorSet1.baz[1][2][1] + spvDynamicOffsets[12]), - }, - }, - { - { - (device Baz* )((device char* )spvDescriptorSet1.baz[2][0][0] + spvDynamicOffsets[13]), - (device Baz* )((device char* )spvDescriptorSet1.baz[2][0][1] + spvDynamicOffsets[14]), - }, - { - (device Baz* )((device char* )spvDescriptorSet1.baz[2][1][0] + spvDynamicOffsets[15]), - (device Baz* )((device char* )spvDescriptorSet1.baz[2][1][1] + spvDynamicOffsets[16]), - }, - { - (device Baz* )((device char* )spvDescriptorSet1.baz[2][2][0] + spvDynamicOffsets[17]), - (device Baz* )((device char* )spvDescriptorSet1.baz[2][2][1] + spvDynamicOffsets[18]), - }, - }, - }; - - uint3 coords = gl_GlobalInvocationID; - baz[coords.x][coords.y][coords.z]->e = _34.a + (*spvDescriptorSet0.m_40).c; - baz[coords.x][coords.y][coords.z]->f = _34.b * (*spvDescriptorSet0.m_40).d; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/bitcast-16bit-1.invalid.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/bitcast-16bit-1.invalid.comp deleted file mode 100644 index 2e86f996c9..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/bitcast-16bit-1.invalid.comp +++ /dev/null @@ -1,26 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO0 -{ - short4 inputs[1]; -}; - -struct SSBO1 -{ - int4 outputs[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO0& _25 [[buffer(0)]], device SSBO1& _39 [[buffer(1)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - uint ident = gl_GlobalInvocationID.x; - half2 a = as_type(_25.inputs[ident].xy); - ((device int*)&_39.outputs[ident])[0u] = int(as_type(a + half2(half(1.0)))); - ((device int*)&_39.outputs[ident])[1u] = as_type(_25.inputs[ident].zw); - ((device int*)&_39.outputs[ident])[2u] = int(as_type(ushort2(_25.inputs[ident].xy))); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/bitcast-16bit-2.invalid.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/bitcast-16bit-2.invalid.comp deleted file mode 100644 index 815599cf42..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/bitcast-16bit-2.invalid.comp +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO1 -{ - short4 outputs[1]; -}; - -struct SSBO0 -{ - int4 inputs[1]; -}; - -struct UBO -{ - half4 const0; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO1& _21 [[buffer(0)]], device SSBO0& _29 [[buffer(1)]], constant UBO& _40 [[buffer(2)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - uint ident = gl_GlobalInvocationID.x; - short2 _47 = as_type(((device int*)&_29.inputs[ident])[0u]) + as_type(_40.const0.xy); - _21.outputs[ident] = short4(_47.x, _47.y, _21.outputs[ident].z, _21.outputs[ident].w); - short2 _66 = short2(as_type(uint(((device int*)&_29.inputs[ident])[1u])) - as_type(_40.const0.zw)); - _21.outputs[ident] = short4(_21.outputs[ident].x, _21.outputs[ident].y, _66.x, _66.y); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/bitfield.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/bitfield.comp deleted file mode 100644 index 7f797add16..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/bitfield.comp +++ /dev/null @@ -1,47 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -// Implementation of the GLSL findLSB() function -template -inline T spvFindLSB(T x) -{ - return select(ctz(x), T(-1), x == T(0)); -} - -// Implementation of the signed GLSL findMSB() function -template -inline T spvFindSMSB(T x) -{ - T v = select(x, T(-1) - x, x < T(0)); - return select(clz(T(0)) - (clz(v) + T(1)), T(-1), v == T(0)); -} - -// Implementation of the unsigned GLSL findMSB() function -template -inline T spvFindUMSB(T x) -{ - return select(clz(T(0)) - (clz(x) + T(1)), T(-1), x == T(0)); -} - -kernel void main0() -{ - int signed_value = 0; - uint unsigned_value = 0u; - int s = extract_bits(signed_value, uint(5), uint(20)); - uint u = extract_bits(unsigned_value, uint(6), uint(21)); - s = insert_bits(s, 40, uint(5), uint(4)); - u = insert_bits(u, 60u, uint(5), uint(4)); - u = reverse_bits(u); - s = reverse_bits(s); - int v0 = int(popcount(u)); - int v1 = popcount(s); - int v2 = int(spvFindUMSB(u)); - int v3 = spvFindSMSB(s); - int v4 = int(spvFindLSB(u)); - int v5 = spvFindLSB(s); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/glsl.std450.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/glsl.std450.comp deleted file mode 100644 index 3c505abe1d..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/glsl.std450.comp +++ /dev/null @@ -1,289 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBO -{ - float res; - int ires; - uint ures; - float4 f32; - int4 s32; - uint4 u32; - float2x2 m2; - float3x3 m3; - float4x4 m4; -}; - -struct ResType -{ - float _m0; - int _m1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -// Implementation of the GLSL radians() function -template -inline T radians(T d) -{ - return d * T(0.01745329251); -} - -// Implementation of the GLSL degrees() function -template -inline T degrees(T r) -{ - return r * T(57.2957795131); -} - -// Implementation of the GLSL findLSB() function -template -inline T spvFindLSB(T x) -{ - return select(ctz(x), T(-1), x == T(0)); -} - -// Implementation of the signed GLSL findMSB() function -template -inline T spvFindSMSB(T x) -{ - T v = select(x, T(-1) - x, x < T(0)); - return select(clz(T(0)) - (clz(v) + T(1)), T(-1), v == T(0)); -} - -// Implementation of the unsigned GLSL findMSB() function -template -inline T spvFindUMSB(T x) -{ - return select(clz(T(0)) - (clz(x) + T(1)), T(-1), x == T(0)); -} - -// Implementation of the GLSL sign() function for integer types -template::value>::type> -inline T sign(T x) -{ - return select(select(select(x, T(0), x == T(0)), T(1), x > T(0)), T(-1), x < T(0)); -} - -// Returns the determinant of a 2x2 matrix. -static inline __attribute__((always_inline)) -float spvDet2x2(float a1, float a2, float b1, float b2) -{ - return a1 * b2 - b1 * a2; -} - -// Returns the determinant of a 3x3 matrix. -static inline __attribute__((always_inline)) -float spvDet3x3(float a1, float a2, float a3, float b1, float b2, float b3, float c1, float c2, float c3) -{ - return a1 * spvDet2x2(b2, b3, c2, c3) - b1 * spvDet2x2(a2, a3, c2, c3) + c1 * spvDet2x2(a2, a3, b2, b3); -} - -// Returns the inverse of a matrix, by using the algorithm of calculating the classical -// adjoint and dividing by the determinant. The contents of the matrix are changed. -static inline __attribute__((always_inline)) -float4x4 spvInverse4x4(float4x4 m) -{ - float4x4 adj; // The adjoint matrix (inverse after dividing by determinant) - - // Create the transpose of the cofactors, as the classical adjoint of the matrix. - adj[0][0] = spvDet3x3(m[1][1], m[1][2], m[1][3], m[2][1], m[2][2], m[2][3], m[3][1], m[3][2], m[3][3]); - adj[0][1] = -spvDet3x3(m[0][1], m[0][2], m[0][3], m[2][1], m[2][2], m[2][3], m[3][1], m[3][2], m[3][3]); - adj[0][2] = spvDet3x3(m[0][1], m[0][2], m[0][3], m[1][1], m[1][2], m[1][3], m[3][1], m[3][2], m[3][3]); - adj[0][3] = -spvDet3x3(m[0][1], m[0][2], m[0][3], m[1][1], m[1][2], m[1][3], m[2][1], m[2][2], m[2][3]); - - adj[1][0] = -spvDet3x3(m[1][0], m[1][2], m[1][3], m[2][0], m[2][2], m[2][3], m[3][0], m[3][2], m[3][3]); - adj[1][1] = spvDet3x3(m[0][0], m[0][2], m[0][3], m[2][0], m[2][2], m[2][3], m[3][0], m[3][2], m[3][3]); - adj[1][2] = -spvDet3x3(m[0][0], m[0][2], m[0][3], m[1][0], m[1][2], m[1][3], m[3][0], m[3][2], m[3][3]); - adj[1][3] = spvDet3x3(m[0][0], m[0][2], m[0][3], m[1][0], m[1][2], m[1][3], m[2][0], m[2][2], m[2][3]); - - adj[2][0] = spvDet3x3(m[1][0], m[1][1], m[1][3], m[2][0], m[2][1], m[2][3], m[3][0], m[3][1], m[3][3]); - adj[2][1] = -spvDet3x3(m[0][0], m[0][1], m[0][3], m[2][0], m[2][1], m[2][3], m[3][0], m[3][1], m[3][3]); - adj[2][2] = spvDet3x3(m[0][0], m[0][1], m[0][3], m[1][0], m[1][1], m[1][3], m[3][0], m[3][1], m[3][3]); - adj[2][3] = -spvDet3x3(m[0][0], m[0][1], m[0][3], m[1][0], m[1][1], m[1][3], m[2][0], m[2][1], m[2][3]); - - adj[3][0] = -spvDet3x3(m[1][0], m[1][1], m[1][2], m[2][0], m[2][1], m[2][2], m[3][0], m[3][1], m[3][2]); - adj[3][1] = spvDet3x3(m[0][0], m[0][1], m[0][2], m[2][0], m[2][1], m[2][2], m[3][0], m[3][1], m[3][2]); - adj[3][2] = -spvDet3x3(m[0][0], m[0][1], m[0][2], m[1][0], m[1][1], m[1][2], m[3][0], m[3][1], m[3][2]); - adj[3][3] = spvDet3x3(m[0][0], m[0][1], m[0][2], m[1][0], m[1][1], m[1][2], m[2][0], m[2][1], m[2][2]); - - // Calculate the determinant as a combination of the cofactors of the first row. - float det = (adj[0][0] * m[0][0]) + (adj[0][1] * m[1][0]) + (adj[0][2] * m[2][0]) + (adj[0][3] * m[3][0]); - - // Divide the classical adjoint matrix by the determinant. - // If determinant is zero, matrix is not invertable, so leave it unchanged. - return (det != 0.0f) ? (adj * (1.0f / det)) : m; -} - -// Returns the inverse of a matrix, by using the algorithm of calculating the classical -// adjoint and dividing by the determinant. The contents of the matrix are changed. -static inline __attribute__((always_inline)) -float3x3 spvInverse3x3(float3x3 m) -{ - float3x3 adj; // The adjoint matrix (inverse after dividing by determinant) - - // Create the transpose of the cofactors, as the classical adjoint of the matrix. - adj[0][0] = spvDet2x2(m[1][1], m[1][2], m[2][1], m[2][2]); - adj[0][1] = -spvDet2x2(m[0][1], m[0][2], m[2][1], m[2][2]); - adj[0][2] = spvDet2x2(m[0][1], m[0][2], m[1][1], m[1][2]); - - adj[1][0] = -spvDet2x2(m[1][0], m[1][2], m[2][0], m[2][2]); - adj[1][1] = spvDet2x2(m[0][0], m[0][2], m[2][0], m[2][2]); - adj[1][2] = -spvDet2x2(m[0][0], m[0][2], m[1][0], m[1][2]); - - adj[2][0] = spvDet2x2(m[1][0], m[1][1], m[2][0], m[2][1]); - adj[2][1] = -spvDet2x2(m[0][0], m[0][1], m[2][0], m[2][1]); - adj[2][2] = spvDet2x2(m[0][0], m[0][1], m[1][0], m[1][1]); - - // Calculate the determinant as a combination of the cofactors of the first row. - float det = (adj[0][0] * m[0][0]) + (adj[0][1] * m[1][0]) + (adj[0][2] * m[2][0]); - - // Divide the classical adjoint matrix by the determinant. - // If determinant is zero, matrix is not invertable, so leave it unchanged. - return (det != 0.0f) ? (adj * (1.0f / det)) : m; -} - -// Returns the inverse of a matrix, by using the algorithm of calculating the classical -// adjoint and dividing by the determinant. The contents of the matrix are changed. -static inline __attribute__((always_inline)) -float2x2 spvInverse2x2(float2x2 m) -{ - float2x2 adj; // The adjoint matrix (inverse after dividing by determinant) - - // Create the transpose of the cofactors, as the classical adjoint of the matrix. - adj[0][0] = m[1][1]; - adj[0][1] = -m[0][1]; - - adj[1][0] = -m[1][0]; - adj[1][1] = m[0][0]; - - // Calculate the determinant as a combination of the cofactors of the first row. - float det = (adj[0][0] * m[0][0]) + (adj[0][1] * m[1][0]); - - // Divide the classical adjoint matrix by the determinant. - // If determinant is zero, matrix is not invertable, so leave it unchanged. - return (det != 0.0f) ? (adj * (1.0f / det)) : m; -} - -template -inline T spvReflect(T i, T n) -{ - return i - T(2) * i * n * n; -} - -template -inline T spvRefract(T i, T n, T eta) -{ - T NoI = n * i; - T NoI2 = NoI * NoI; - T k = T(1) - eta * eta * (T(1) - NoI2); - if (k < T(0)) - { - return T(0); - } - else - { - return eta * i - (eta * NoI + sqrt(k)) * n; - } -} - -template -inline T spvFaceForward(T n, T i, T nref) -{ - return i * nref < T(0) ? n : -n; -} - -kernel void main0(device SSBO& _19 [[buffer(0)]]) -{ - _19.res = round(((device float*)&_19.f32)[0u]); - _19.res = rint(((device float*)&_19.f32)[0u]); - _19.res = trunc(((device float*)&_19.f32)[0u]); - _19.res = abs(((device float*)&_19.f32)[0u]); - _19.ires = abs(((device int*)&_19.s32)[0u]); - _19.res = sign(((device float*)&_19.f32)[0u]); - _19.ires = sign(((device int*)&_19.s32)[0u]); - _19.res = floor(((device float*)&_19.f32)[0u]); - _19.res = ceil(((device float*)&_19.f32)[0u]); - _19.res = fract(((device float*)&_19.f32)[0u]); - _19.res = radians(((device float*)&_19.f32)[0u]); - _19.res = degrees(((device float*)&_19.f32)[0u]); - _19.res = sin(((device float*)&_19.f32)[0u]); - _19.res = cos(((device float*)&_19.f32)[0u]); - _19.res = tan(((device float*)&_19.f32)[0u]); - _19.res = asin(((device float*)&_19.f32)[0u]); - _19.res = acos(((device float*)&_19.f32)[0u]); - _19.res = atan(((device float*)&_19.f32)[0u]); - _19.res = sinh(((device float*)&_19.f32)[0u]); - _19.res = cosh(((device float*)&_19.f32)[0u]); - _19.res = tanh(((device float*)&_19.f32)[0u]); - _19.res = asinh(((device float*)&_19.f32)[0u]); - _19.res = acosh(((device float*)&_19.f32)[0u]); - _19.res = atanh(((device float*)&_19.f32)[0u]); - _19.res = atan2(((device float*)&_19.f32)[0u], ((device float*)&_19.f32)[1u]); - _19.res = pow(((device float*)&_19.f32)[0u], ((device float*)&_19.f32)[1u]); - _19.res = exp(((device float*)&_19.f32)[0u]); - _19.res = log(((device float*)&_19.f32)[0u]); - _19.res = exp2(((device float*)&_19.f32)[0u]); - _19.res = log2(((device float*)&_19.f32)[0u]); - _19.res = sqrt(((device float*)&_19.f32)[0u]); - _19.res = rsqrt(((device float*)&_19.f32)[0u]); - _19.res = abs(((device float*)&_19.f32)[0u]); - _19.res = abs(((device float*)&_19.f32)[0u] - ((device float*)&_19.f32)[1u]); - _19.res = sign(((device float*)&_19.f32)[0u]); - _19.res = spvFaceForward(((device float*)&_19.f32)[0u], ((device float*)&_19.f32)[1u], ((device float*)&_19.f32)[2u]); - _19.res = spvReflect(((device float*)&_19.f32)[0u], ((device float*)&_19.f32)[1u]); - _19.res = spvRefract(((device float*)&_19.f32)[0u], ((device float*)&_19.f32)[1u], ((device float*)&_19.f32)[2u]); - _19.res = length(_19.f32.xy); - _19.res = distance(_19.f32.xy, _19.f32.zw); - float2 v2 = normalize(_19.f32.xy); - v2 = faceforward(_19.f32.xy, _19.f32.yz, _19.f32.zw); - v2 = reflect(_19.f32.xy, _19.f32.zw); - v2 = refract(_19.f32.xy, _19.f32.yz, ((device float*)&_19.f32)[3u]); - float3 v3 = cross(_19.f32.xyz, _19.f32.yzw); - _19.res = determinant(_19.m2); - _19.res = determinant(_19.m3); - _19.res = determinant(_19.m4); - _19.m2 = spvInverse2x2(_19.m2); - _19.m3 = spvInverse3x3(_19.m3); - _19.m4 = spvInverse4x4(_19.m4); - float tmp; - float _287 = modf(((device float*)&_19.f32)[0u], tmp); - _19.res = _287; - _19.res = fast::min(((device float*)&_19.f32)[0u], ((device float*)&_19.f32)[1u]); - _19.ures = min(((device uint*)&_19.u32)[0u], ((device uint*)&_19.u32)[1u]); - _19.ires = min(((device int*)&_19.s32)[0u], ((device int*)&_19.s32)[1u]); - _19.res = fast::max(((device float*)&_19.f32)[0u], ((device float*)&_19.f32)[1u]); - _19.ures = max(((device uint*)&_19.u32)[0u], ((device uint*)&_19.u32)[1u]); - _19.ires = max(((device int*)&_19.s32)[0u], ((device int*)&_19.s32)[1u]); - _19.res = fast::clamp(((device float*)&_19.f32)[0u], ((device float*)&_19.f32)[1u], ((device float*)&_19.f32)[2u]); - _19.ures = clamp(((device uint*)&_19.u32)[0u], ((device uint*)&_19.u32)[1u], ((device uint*)&_19.u32)[2u]); - _19.ires = clamp(((device int*)&_19.s32)[0u], ((device int*)&_19.s32)[1u], ((device int*)&_19.s32)[2u]); - _19.res = mix(((device float*)&_19.f32)[0u], ((device float*)&_19.f32)[1u], ((device float*)&_19.f32)[2u]); - _19.res = step(((device float*)&_19.f32)[0u], ((device float*)&_19.f32)[1u]); - _19.res = smoothstep(((device float*)&_19.f32)[0u], ((device float*)&_19.f32)[1u], ((device float*)&_19.f32)[2u]); - _19.res = fma(((device float*)&_19.f32)[0u], ((device float*)&_19.f32)[1u], ((device float*)&_19.f32)[2u]); - ResType _387; - _387._m0 = frexp(((device float*)&_19.f32)[0u], _387._m1); - int itmp = _387._m1; - _19.res = _387._m0; - _19.res = ldexp(((device float*)&_19.f32)[0u], itmp); - _19.ures = pack_float_to_snorm4x8(_19.f32); - _19.ures = pack_float_to_unorm4x8(_19.f32); - _19.ures = pack_float_to_snorm2x16(_19.f32.xy); - _19.ures = pack_float_to_unorm2x16(_19.f32.xy); - _19.ures = as_type(half2(_19.f32.xy)); - v2 = unpack_snorm2x16_to_float(((device uint*)&_19.u32)[0u]); - v2 = unpack_unorm2x16_to_float(((device uint*)&_19.u32)[0u]); - v2 = float2(as_type(((device uint*)&_19.u32)[0u])); - float4 v4 = unpack_snorm4x8_to_float(((device uint*)&_19.u32)[0u]); - v4 = unpack_unorm4x8_to_float(((device uint*)&_19.u32)[0u]); - _19.s32 = spvFindLSB(_19.s32); - _19.s32 = int4(spvFindLSB(_19.u32)); - _19.s32 = spvFindSMSB(_19.s32); - _19.s32 = int4(spvFindUMSB(_19.u32)); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/illegal-struct-name.asm.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/illegal-struct-name.asm.comp deleted file mode 100644 index de1695b068..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/illegal-struct-name.asm.comp +++ /dev/null @@ -1,29 +0,0 @@ -#include -#include - -using namespace metal; - -struct Foo -{ - float _abs; -}; - -struct Foo_1 -{ - float _abs; -}; - -struct SSBO -{ - Foo_1 foo; - Foo_1 foo2; -}; - -kernel void main0(device SSBO& _7 [[buffer(0)]]) -{ - Foo f; - f._abs = _7.foo._abs; - int _abs = 10; - _7.foo2._abs = f._abs; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/int64.invalid.msl22.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/int64.invalid.msl22.comp deleted file mode 100644 index d5bbbb47fc..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/int64.invalid.msl22.comp +++ /dev/null @@ -1,106 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct M0 -{ - long v; - spvUnsafeArray b; - ulong c; - spvUnsafeArray d; -}; - -struct SSBO0_Type -{ - long4 a; - M0 m0; -}; - -struct SSBO1_Type -{ - ulong4 b; - M0 m0; -}; - -struct SSBO2_Type -{ - spvUnsafeArray a; - spvUnsafeArray b; -}; - -struct SSBO3_Type -{ - spvUnsafeArray a; - spvUnsafeArray b; -}; - -struct SSBO -{ - int s32; - uint u32; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO& _96 [[buffer(0)]]) -{ - SSBO0_Type ssbo_0; - ssbo_0.a += long4(10l, 20l, 30l, 40l); - SSBO1_Type ssbo_1; - ssbo_1.b += ulong4(999999999999999999ul, 8888888888888888ul, 77777777777777777ul, 6666666666666666ul); - ssbo_0.a += long4(20l); - ssbo_0.a = abs(ssbo_0.a + long4(ssbo_1.b)); - ssbo_0.a += long4(1l); - ssbo_1.b += ulong4(long4(1l)); - ssbo_0.a -= long4(1l); - ssbo_1.b -= ulong4(long4(1l)); - SSBO2_Type ssbo_2; - ssbo_2.a[0] += 1l; - SSBO3_Type ssbo_3; - ssbo_3.a[0] += 2l; - _96.s32 = int(uint(((ulong(ssbo_0.a.x) + ssbo_1.b.y) + ulong(ssbo_2.a[1])) + ulong(ssbo_3.a[2]))); - _96.u32 = uint(((ulong(ssbo_0.a.y) + ssbo_1.b.z) + ulong(ssbo_2.a[0])) + ulong(ssbo_3.a[1])); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/loop.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/loop.comp deleted file mode 100644 index 34fe64b0a2..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/loop.comp +++ /dev/null @@ -1,91 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - float4x4 mvp; - float4 in_data[1]; -}; - -struct SSBO2 -{ - float4 out_data[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(const device SSBO& _24 [[buffer(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - uint ident = gl_GlobalInvocationID.x; - float4 idat = _24.in_data[ident]; - int k = 0; - uint i = 0u; - if (idat.y == 20.0) - { - do - { - k *= 2; - i++; - } while (i < ident); - } - switch (k) - { - case 10: - { - for (;;) - { - i++; - if (i > 10u) - { - break; - } - continue; - } - break; - } - default: - { - for (;;) - { - i += 2u; - if (i > 20u) - { - break; - } - continue; - } - break; - } - } - while (k < 10) - { - idat *= 2.0; - k++; - } - for (uint i_1 = 0u; i_1 < 16u; i_1++, k++) - { - for (uint j = 0u; j < 30u; j++) - { - idat = _24.mvp * idat; - } - } - k = 0; - for (;;) - { - k++; - if (k > 10) - { - k += 2; - } - else - { - k += 3; - continue; - } - k += 10; - continue; - } -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/return.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/return.comp deleted file mode 100644 index 04cacea9d5..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/return.comp +++ /dev/null @@ -1,39 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO2 -{ - float4 out_data[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO2& _27 [[buffer(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - uint ident = gl_GlobalInvocationID.x; - if (ident == 2u) - { - _27.out_data[ident] = float4(20.0); - } - else - { - if (ident == 4u) - { - _27.out_data[ident] = float4(10.0); - return; - } - } - int i = 0; - while (i < 20) - { - if (i == 10) - { - break; - } - return; - } - _27.out_data[ident] = float4(10.0); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/std140-array-load-composite-construct.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/std140-array-load-composite-construct.comp deleted file mode 100644 index ba278ccde7..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/std140-array-load-composite-construct.comp +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - float4 a[16]; - float4 b[16]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO& _14 [[buffer(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - _14.b[gl_GlobalInvocationID.x] = float4(_14.a[gl_GlobalInvocationID.x].x); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/struct-packing-scalar.nocompat.invalid.vk.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/struct-packing-scalar.nocompat.invalid.vk.comp deleted file mode 100644 index 49758ca3e1..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/struct-packing-scalar.nocompat.invalid.vk.comp +++ /dev/null @@ -1,151 +0,0 @@ -#include -#include - -using namespace metal; - -typedef packed_float2 packed_float2x2[2]; -typedef packed_float3 packed_float2x3[2]; -typedef packed_float3 packed_rm_float3x2[2]; - -struct S0 -{ - packed_float2 a[1]; - float b; -}; - -struct S1 -{ - packed_float3 a; - float b; -}; - -struct S2 -{ - packed_float3 a[1]; - float b; -}; - -struct S3 -{ - packed_float2 a; - float b; -}; - -struct Content -{ - S0 m0s[1]; - S1 m1s[1]; - S2 m2s[1]; - S0 m0; - S1 m1; - S2 m2; - S3 m3; - float m4; -}; - -struct SSBO1 -{ - Content content; - Content content1[2]; - Content content2; - float2x2 m0; - float2x2 m1; - packed_float2x3 m2[4]; - float3x2 m3; - float2x2 m4; - float2x2 m5[9]; - float3x2 m6[4][2]; - packed_rm_float3x2 m7; - float array[1]; -}; - -struct S0_1 -{ - float2 a[1]; - char _m1_pad[8]; - float b; - char _m0_final_padding[12]; -}; - -struct S1_1 -{ - packed_float3 a; - float b; -}; - -struct S2_1 -{ - float3 a[1]; - float b; - char _m0_final_padding[12]; -}; - -struct S3_1 -{ - float2 a; - float b; -}; - -struct Content_1 -{ - S0_1 m0s[1]; - S1_1 m1s[1]; - S2_1 m2s[1]; - S0_1 m0; - S1_1 m1; - S2_1 m2; - S3_1 m3; - float m4; - char _m0_final_padding[12]; -}; - -struct SSBO0 -{ - Content_1 content; - Content_1 content1[2]; - Content_1 content2; - float2x4 m0; - float2x4 m1; - float2x3 m2[4]; - float3x4 m3; - float2x4 m4; - float2x4 m5[9]; - float3x4 m6[4][2]; - float2x3 m7; - float4 array[1]; -}; - -struct SSBO2 -{ - float m0; - packed_float2x2 m1; - packed_rm_float3x2 m2; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO1& ssbo_scalar [[buffer(0)]], device SSBO0& ssbo_140 [[buffer(1)]], device SSBO2& ssbo_scalar2 [[buffer(2)]]) -{ - ssbo_scalar.content.m0s[0].a[0] = ssbo_140.content.m0s[0].a[0]; - ssbo_scalar.content.m0s[0].b = ssbo_140.content.m0s[0].b; - ssbo_scalar.content.m1s[0].a = float3(ssbo_140.content.m1s[0].a); - ssbo_scalar.content.m1s[0].b = ssbo_140.content.m1s[0].b; - ssbo_scalar.content.m2s[0].a[0] = ssbo_140.content.m2s[0].a[0]; - ssbo_scalar.content.m2s[0].b = ssbo_140.content.m2s[0].b; - ssbo_scalar.content.m0.a[0] = ssbo_140.content.m0.a[0]; - ssbo_scalar.content.m0.b = ssbo_140.content.m0.b; - ssbo_scalar.content.m1.a = float3(ssbo_140.content.m1.a); - ssbo_scalar.content.m1.b = ssbo_140.content.m1.b; - ssbo_scalar.content.m2.a[0] = ssbo_140.content.m2.a[0]; - ssbo_scalar.content.m2.b = ssbo_140.content.m2.b; - ssbo_scalar.content.m3.a = ssbo_140.content.m3.a; - ssbo_scalar.content.m3.b = ssbo_140.content.m3.b; - ssbo_scalar.content.m4 = ssbo_140.content.m4; - ssbo_scalar.content.m1.a = float2x3(float3(ssbo_scalar.m2[1][0]), float3(ssbo_scalar.m2[1][1])) * float2(ssbo_scalar.content.m0.a[0]); - ssbo_scalar.m0 = float2x2(float2(ssbo_scalar2.m1[0]), float2(ssbo_scalar2.m1[1])); - ssbo_scalar2.m1[0] = float2(ssbo_scalar.m4[0][0], ssbo_scalar.m4[1][0]); - ssbo_scalar2.m1[1] = float2(ssbo_scalar.m4[0][1], ssbo_scalar.m4[1][1]); - ssbo_scalar2.m2[0] = float3(ssbo_scalar.m3[0][0], ssbo_scalar.m3[1][0], ssbo_scalar.m3[2][0]); - ssbo_scalar2.m2[1] = float3(ssbo_scalar.m3[0][1], ssbo_scalar.m3[1][1], ssbo_scalar.m3[2][1]); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl12.emulate-subgroup.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl12.emulate-subgroup.comp deleted file mode 100644 index 651991e351..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl12.emulate-subgroup.comp +++ /dev/null @@ -1,30 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - float FragColor; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO& _9 [[buffer(0)]], uint gl_LocalInvocationIndex [[thread_index_in_threadgroup]], unsupported-built-in-type gl_WorkGroupSize [[unsupported-built-in]]) -{ - uint gl_NumSubgroups = gl_WorkGroupSize.x * gl_WorkGroupSize.y * gl_WorkGroupSize.z; - uint gl_SubgroupID = gl_LocalInvocationIndex; - uint gl_SubgroupSize = 1; - uint gl_SubgroupInvocationID = 0; - _9.FragColor = float(gl_NumSubgroups); - _9.FragColor = float(gl_SubgroupID); - _9.FragColor = float(gl_SubgroupSize); - _9.FragColor = float(gl_SubgroupInvocationID); - threadgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup | mem_flags::mem_texture); - threadgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup | mem_flags::mem_texture); - threadgroup_barrier(mem_flags::mem_device); - threadgroup_barrier(mem_flags::mem_threadgroup); - threadgroup_barrier(mem_flags::mem_texture); - bool elected = true; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl21.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl21.comp deleted file mode 100644 index b7f2ed5888..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl21.comp +++ /dev/null @@ -1,327 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBO -{ - float FragColor; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -template -inline T spvSubgroupBroadcast(T value, ushort lane) -{ - return simd_broadcast(value, lane); -} - -template<> -inline bool spvSubgroupBroadcast(bool value, ushort lane) -{ - return !!simd_broadcast((ushort)value, lane); -} - -template -inline vec spvSubgroupBroadcast(vec value, ushort lane) -{ - return (vec)simd_broadcast((vec)value, lane); -} - -template -inline T spvSubgroupBroadcastFirst(T value) -{ - return simd_broadcast_first(value); -} - -template<> -inline bool spvSubgroupBroadcastFirst(bool value) -{ - return !!simd_broadcast_first((ushort)value); -} - -template -inline vec spvSubgroupBroadcastFirst(vec value) -{ - return (vec)simd_broadcast_first((vec)value); -} - -inline uint4 spvSubgroupBallot(bool value) -{ - simd_vote vote = simd_ballot(value); - // simd_ballot() returns a 64-bit integer-like object, but - // SPIR-V callers expect a uint4. We must convert. - // FIXME: This won't include higher bits if Apple ever supports - // 128 lanes in an SIMD-group. - return uint4((uint)((simd_vote::vote_t)vote & 0xFFFFFFFF), (uint)(((simd_vote::vote_t)vote >> 32) & 0xFFFFFFFF), 0, 0); -} - -inline bool spvSubgroupBallotBitExtract(uint4 ballot, uint bit) -{ - return !!extract_bits(ballot[bit / 32], bit % 32, 1); -} - -inline uint spvSubgroupBallotFindLSB(uint4 ballot, uint gl_SubgroupSize) -{ - uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, min(gl_SubgroupSize, 32u)), extract_bits(0xFFFFFFFF, 0, (uint)max((int)gl_SubgroupSize - 32, 0)), uint2(0)); - ballot &= mask; - return select(ctz(ballot.x), select(32 + ctz(ballot.y), select(64 + ctz(ballot.z), select(96 + ctz(ballot.w), uint(-1), ballot.w == 0), ballot.z == 0), ballot.y == 0), ballot.x == 0); -} - -inline uint spvSubgroupBallotFindMSB(uint4 ballot, uint gl_SubgroupSize) -{ - uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, min(gl_SubgroupSize, 32u)), extract_bits(0xFFFFFFFF, 0, (uint)max((int)gl_SubgroupSize - 32, 0)), uint2(0)); - ballot &= mask; - return select(128 - (clz(ballot.w) + 1), select(96 - (clz(ballot.z) + 1), select(64 - (clz(ballot.y) + 1), select(32 - (clz(ballot.x) + 1), uint(-1), ballot.x == 0), ballot.y == 0), ballot.z == 0), ballot.w == 0); -} - -inline uint spvPopCount4(uint4 ballot) -{ - return popcount(ballot.x) + popcount(ballot.y) + popcount(ballot.z) + popcount(ballot.w); -} - -inline uint spvSubgroupBallotBitCount(uint4 ballot, uint gl_SubgroupSize) -{ - uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, min(gl_SubgroupSize, 32u)), extract_bits(0xFFFFFFFF, 0, (uint)max((int)gl_SubgroupSize - 32, 0)), uint2(0)); - return spvPopCount4(ballot & mask); -} - -inline uint spvSubgroupBallotInclusiveBitCount(uint4 ballot, uint gl_SubgroupInvocationID) -{ - uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, min(gl_SubgroupInvocationID + 1, 32u)), extract_bits(0xFFFFFFFF, 0, (uint)max((int)gl_SubgroupInvocationID + 1 - 32, 0)), uint2(0)); - return spvPopCount4(ballot & mask); -} - -inline uint spvSubgroupBallotExclusiveBitCount(uint4 ballot, uint gl_SubgroupInvocationID) -{ - uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, min(gl_SubgroupInvocationID, 32u)), extract_bits(0xFFFFFFFF, 0, (uint)max((int)gl_SubgroupInvocationID - 32, 0)), uint2(0)); - return spvPopCount4(ballot & mask); -} - -template -inline bool spvSubgroupAllEqual(T value) -{ - return simd_all(all(value == simd_broadcast_first(value))); -} - -template<> -inline bool spvSubgroupAllEqual(bool value) -{ - return simd_all(value) || !simd_any(value); -} - -template -inline bool spvSubgroupAllEqual(vec value) -{ - return simd_all(all(value == (vec)simd_broadcast_first((vec)value))); -} - -template -inline T spvSubgroupShuffle(T value, ushort lane) -{ - return simd_shuffle(value, lane); -} - -template<> -inline bool spvSubgroupShuffle(bool value, ushort lane) -{ - return !!simd_shuffle((ushort)value, lane); -} - -template -inline vec spvSubgroupShuffle(vec value, ushort lane) -{ - return (vec)simd_shuffle((vec)value, lane); -} - -template -inline T spvSubgroupShuffleXor(T value, ushort mask) -{ - return simd_shuffle_xor(value, mask); -} - -template<> -inline bool spvSubgroupShuffleXor(bool value, ushort mask) -{ - return !!simd_shuffle_xor((ushort)value, mask); -} - -template -inline vec spvSubgroupShuffleXor(vec value, ushort mask) -{ - return (vec)simd_shuffle_xor((vec)value, mask); -} - -template -inline T spvSubgroupShuffleUp(T value, ushort delta) -{ - return simd_shuffle_up(value, delta); -} - -template<> -inline bool spvSubgroupShuffleUp(bool value, ushort delta) -{ - return !!simd_shuffle_up((ushort)value, delta); -} - -template -inline vec spvSubgroupShuffleUp(vec value, ushort delta) -{ - return (vec)simd_shuffle_up((vec)value, delta); -} - -template -inline T spvSubgroupShuffleDown(T value, ushort delta) -{ - return simd_shuffle_down(value, delta); -} - -template<> -inline bool spvSubgroupShuffleDown(bool value, ushort delta) -{ - return !!simd_shuffle_down((ushort)value, delta); -} - -template -inline vec spvSubgroupShuffleDown(vec value, ushort delta) -{ - return (vec)simd_shuffle_down((vec)value, delta); -} - -template -inline T spvQuadBroadcast(T value, uint lane) -{ - return quad_broadcast(value, lane); -} - -template<> -inline bool spvQuadBroadcast(bool value, uint lane) -{ - return !!quad_broadcast((ushort)value, lane); -} - -template -inline vec spvQuadBroadcast(vec value, uint lane) -{ - return (vec)quad_broadcast((vec)value, lane); -} - -template -inline T spvQuadSwap(T value, uint dir) -{ - return quad_shuffle_xor(value, dir + 1); -} - -template<> -inline bool spvQuadSwap(bool value, uint dir) -{ - return !!quad_shuffle_xor((ushort)value, dir + 1); -} - -template -inline vec spvQuadSwap(vec value, uint dir) -{ - return (vec)quad_shuffle_xor((vec)value, dir + 1); -} - -kernel void main0(device SSBO& _9 [[buffer(0)]], uint gl_NumSubgroups [[simdgroups_per_threadgroup]], uint gl_SubgroupID [[simdgroup_index_in_threadgroup]], uint gl_SubgroupSize [[thread_execution_width]], uint gl_SubgroupInvocationID [[thread_index_in_simdgroup]]) -{ - uint4 gl_SubgroupEqMask = gl_SubgroupInvocationID >= 32 ? uint4(0, (1 << (gl_SubgroupInvocationID - 32)), uint2(0)) : uint4(1 << gl_SubgroupInvocationID, uint3(0)); - uint4 gl_SubgroupGeMask = uint4(insert_bits(0u, 0xFFFFFFFF, min(gl_SubgroupInvocationID, 32u), (uint)max(min((int)gl_SubgroupSize, 32) - (int)gl_SubgroupInvocationID, 0)), insert_bits(0u, 0xFFFFFFFF, (uint)max((int)gl_SubgroupInvocationID - 32, 0), (uint)max((int)gl_SubgroupSize - (int)max(gl_SubgroupInvocationID, 32u), 0)), uint2(0)); - uint4 gl_SubgroupGtMask = uint4(insert_bits(0u, 0xFFFFFFFF, min(gl_SubgroupInvocationID + 1, 32u), (uint)max(min((int)gl_SubgroupSize, 32) - (int)gl_SubgroupInvocationID - 1, 0)), insert_bits(0u, 0xFFFFFFFF, (uint)max((int)gl_SubgroupInvocationID + 1 - 32, 0), (uint)max((int)gl_SubgroupSize - (int)max(gl_SubgroupInvocationID + 1, 32u), 0)), uint2(0)); - uint4 gl_SubgroupLeMask = uint4(extract_bits(0xFFFFFFFF, 0, min(gl_SubgroupInvocationID + 1, 32u)), extract_bits(0xFFFFFFFF, 0, (uint)max((int)gl_SubgroupInvocationID + 1 - 32, 0)), uint2(0)); - uint4 gl_SubgroupLtMask = uint4(extract_bits(0xFFFFFFFF, 0, min(gl_SubgroupInvocationID, 32u)), extract_bits(0xFFFFFFFF, 0, (uint)max((int)gl_SubgroupInvocationID - 32, 0)), uint2(0)); - _9.FragColor = float(gl_NumSubgroups); - _9.FragColor = float(gl_SubgroupID); - _9.FragColor = float(gl_SubgroupSize); - _9.FragColor = float(gl_SubgroupInvocationID); - simdgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup | mem_flags::mem_texture); - simdgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup | mem_flags::mem_texture); - simdgroup_barrier(mem_flags::mem_device); - simdgroup_barrier(mem_flags::mem_threadgroup); - simdgroup_barrier(mem_flags::mem_texture); - bool _39 = simd_is_first(); - bool elected = _39; - _9.FragColor = float4(gl_SubgroupEqMask).x; - _9.FragColor = float4(gl_SubgroupGeMask).x; - _9.FragColor = float4(gl_SubgroupGtMask).x; - _9.FragColor = float4(gl_SubgroupLeMask).x; - _9.FragColor = float4(gl_SubgroupLtMask).x; - float4 broadcasted = spvSubgroupBroadcast(float4(10.0), 8u); - bool2 broadcasted_bool = spvSubgroupBroadcast(bool2(true), 8u); - float3 first = spvSubgroupBroadcastFirst(float3(20.0)); - bool4 first_bool = spvSubgroupBroadcastFirst(bool4(false)); - uint4 ballot_value = spvSubgroupBallot(true); - bool inverse_ballot_value = spvSubgroupBallotBitExtract(ballot_value, gl_SubgroupInvocationID); - bool bit_extracted = spvSubgroupBallotBitExtract(uint4(10u), 8u); - uint bit_count = spvSubgroupBallotBitCount(ballot_value, gl_SubgroupSize); - uint inclusive_bit_count = spvSubgroupBallotInclusiveBitCount(ballot_value, gl_SubgroupInvocationID); - uint exclusive_bit_count = spvSubgroupBallotExclusiveBitCount(ballot_value, gl_SubgroupInvocationID); - uint lsb = spvSubgroupBallotFindLSB(ballot_value, gl_SubgroupSize); - uint msb = spvSubgroupBallotFindMSB(ballot_value, gl_SubgroupSize); - uint shuffled = spvSubgroupShuffle(10u, 8u); - bool shuffled_bool = spvSubgroupShuffle(true, 9u); - uint shuffled_xor = spvSubgroupShuffleXor(30u, 8u); - bool shuffled_xor_bool = spvSubgroupShuffleXor(false, 9u); - uint shuffled_up = spvSubgroupShuffleUp(20u, 4u); - bool shuffled_up_bool = spvSubgroupShuffleUp(true, 4u); - uint shuffled_down = spvSubgroupShuffleDown(20u, 4u); - bool shuffled_down_bool = spvSubgroupShuffleDown(false, 4u); - bool has_all = simd_all(true); - bool has_any = simd_any(true); - bool has_equal = spvSubgroupAllEqual(0); - has_equal = spvSubgroupAllEqual(true); - has_equal = spvSubgroupAllEqual(float3(0.0, 1.0, 2.0)); - has_equal = spvSubgroupAllEqual(bool4(true, true, false, true)); - float4 added = simd_sum(float4(20.0)); - int4 iadded = simd_sum(int4(20)); - float4 multiplied = simd_product(float4(20.0)); - int4 imultiplied = simd_product(int4(20)); - float4 lo = simd_min(float4(20.0)); - float4 hi = simd_max(float4(20.0)); - int4 slo = simd_min(int4(20)); - int4 shi = simd_max(int4(20)); - uint4 ulo = simd_min(uint4(20u)); - uint4 uhi = simd_max(uint4(20u)); - uint4 anded = simd_and(ballot_value); - uint4 ored = simd_or(ballot_value); - uint4 xored = simd_xor(ballot_value); - bool4 anded_b = simd_and(ballot_value == uint4(42u)); - bool4 ored_b = simd_or(ballot_value == uint4(42u)); - bool4 xored_b = simd_xor(ballot_value == uint4(42u)); - added = simd_prefix_inclusive_sum(added); - iadded = simd_prefix_inclusive_sum(iadded); - multiplied = simd_prefix_inclusive_product(multiplied); - imultiplied = simd_prefix_inclusive_product(imultiplied); - added = simd_prefix_exclusive_sum(multiplied); - multiplied = simd_prefix_exclusive_product(multiplied); - iadded = simd_prefix_exclusive_sum(imultiplied); - imultiplied = simd_prefix_exclusive_product(imultiplied); - added = quad_sum(added); - multiplied = quad_product(multiplied); - iadded = quad_sum(iadded); - imultiplied = quad_product(imultiplied); - lo = quad_min(lo); - hi = quad_max(hi); - ulo = quad_min(ulo); - uhi = quad_max(uhi); - slo = quad_min(slo); - shi = quad_max(shi); - anded = quad_and(anded); - ored = quad_or(ored); - xored = quad_xor(xored); - anded_b = quad_and(anded == uint4(2u)); - ored_b = quad_or(ored == uint4(3u)); - xored_b = quad_xor(xored == uint4(4u)); - float4 swap_horiz = spvQuadSwap(float4(20.0), 0u); - bool4 swap_horiz_bool = spvQuadSwap(bool4(true), 0u); - float4 swap_vertical = spvQuadSwap(float4(20.0), 1u); - bool4 swap_vertical_bool = spvQuadSwap(bool4(true), 1u); - float4 swap_diagonal = spvQuadSwap(float4(20.0), 2u); - bool4 swap_diagonal_bool = spvQuadSwap(bool4(true), 2u); - float4 quad_broadcast0 = spvQuadBroadcast(float4(20.0), 3u); - bool4 quad_broadcast_bool = spvQuadBroadcast(bool4(true), 3u); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl21.fixed-subgroup.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl21.fixed-subgroup.comp deleted file mode 100644 index 0f6cbfe41b..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl21.fixed-subgroup.comp +++ /dev/null @@ -1,322 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBO -{ - float FragColor; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -template -inline T spvSubgroupBroadcast(T value, ushort lane) -{ - return simd_broadcast(value, lane); -} - -template<> -inline bool spvSubgroupBroadcast(bool value, ushort lane) -{ - return !!simd_broadcast((ushort)value, lane); -} - -template -inline vec spvSubgroupBroadcast(vec value, ushort lane) -{ - return (vec)simd_broadcast((vec)value, lane); -} - -template -inline T spvSubgroupBroadcastFirst(T value) -{ - return simd_broadcast_first(value); -} - -template<> -inline bool spvSubgroupBroadcastFirst(bool value) -{ - return !!simd_broadcast_first((ushort)value); -} - -template -inline vec spvSubgroupBroadcastFirst(vec value) -{ - return (vec)simd_broadcast_first((vec)value); -} - -inline uint4 spvSubgroupBallot(bool value) -{ - simd_vote vote = simd_ballot(value); - // simd_ballot() returns a 64-bit integer-like object, but - // SPIR-V callers expect a uint4. We must convert. - // FIXME: This won't include higher bits if Apple ever supports - // 128 lanes in an SIMD-group. - return uint4((uint)((simd_vote::vote_t)vote & 0xFFFFFFFF), (uint)(((simd_vote::vote_t)vote >> 32) & 0xFFFFFFFF), 0, 0); -} - -inline bool spvSubgroupBallotBitExtract(uint4 ballot, uint bit) -{ - return !!extract_bits(ballot[bit / 32], bit % 32, 1); -} - -inline uint spvSubgroupBallotFindLSB(uint4 ballot, uint gl_SubgroupSize) -{ - uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, min(gl_SubgroupSize, 32u)), extract_bits(0xFFFFFFFF, 0, (uint)max((int)gl_SubgroupSize - 32, 0)), uint2(0)); - ballot &= mask; - return select(ctz(ballot.x), select(32 + ctz(ballot.y), select(64 + ctz(ballot.z), select(96 + ctz(ballot.w), uint(-1), ballot.w == 0), ballot.z == 0), ballot.y == 0), ballot.x == 0); -} - -inline uint spvSubgroupBallotFindMSB(uint4 ballot, uint gl_SubgroupSize) -{ - uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, min(gl_SubgroupSize, 32u)), extract_bits(0xFFFFFFFF, 0, (uint)max((int)gl_SubgroupSize - 32, 0)), uint2(0)); - ballot &= mask; - return select(128 - (clz(ballot.w) + 1), select(96 - (clz(ballot.z) + 1), select(64 - (clz(ballot.y) + 1), select(32 - (clz(ballot.x) + 1), uint(-1), ballot.x == 0), ballot.y == 0), ballot.z == 0), ballot.w == 0); -} - -inline uint spvPopCount4(uint4 ballot) -{ - return popcount(ballot.x) + popcount(ballot.y) + popcount(ballot.z) + popcount(ballot.w); -} - -inline uint spvSubgroupBallotBitCount(uint4 ballot, uint gl_SubgroupSize) -{ - uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, min(gl_SubgroupSize, 32u)), extract_bits(0xFFFFFFFF, 0, (uint)max((int)gl_SubgroupSize - 32, 0)), uint2(0)); - return spvPopCount4(ballot & mask); -} - -inline uint spvSubgroupBallotInclusiveBitCount(uint4 ballot, uint gl_SubgroupInvocationID) -{ - uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, min(gl_SubgroupInvocationID + 1, 32u)), extract_bits(0xFFFFFFFF, 0, (uint)max((int)gl_SubgroupInvocationID + 1 - 32, 0)), uint2(0)); - return spvPopCount4(ballot & mask); -} - -inline uint spvSubgroupBallotExclusiveBitCount(uint4 ballot, uint gl_SubgroupInvocationID) -{ - uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, min(gl_SubgroupInvocationID, 32u)), extract_bits(0xFFFFFFFF, 0, (uint)max((int)gl_SubgroupInvocationID - 32, 0)), uint2(0)); - return spvPopCount4(ballot & mask); -} - -template -inline bool spvSubgroupAllEqual(T value) -{ - return simd_all(all(value == simd_broadcast_first(value))); -} - -template<> -inline bool spvSubgroupAllEqual(bool value) -{ - return simd_all(value) || !simd_any(value); -} - -template -inline bool spvSubgroupAllEqual(vec value) -{ - return simd_all(all(value == (vec)simd_broadcast_first((vec)value))); -} - -template -inline T spvSubgroupShuffle(T value, ushort lane) -{ - return simd_shuffle(value, lane); -} - -template<> -inline bool spvSubgroupShuffle(bool value, ushort lane) -{ - return !!simd_shuffle((ushort)value, lane); -} - -template -inline vec spvSubgroupShuffle(vec value, ushort lane) -{ - return (vec)simd_shuffle((vec)value, lane); -} - -template -inline T spvSubgroupShuffleXor(T value, ushort mask) -{ - return simd_shuffle_xor(value, mask); -} - -template<> -inline bool spvSubgroupShuffleXor(bool value, ushort mask) -{ - return !!simd_shuffle_xor((ushort)value, mask); -} - -template -inline vec spvSubgroupShuffleXor(vec value, ushort mask) -{ - return (vec)simd_shuffle_xor((vec)value, mask); -} - -template -inline T spvSubgroupShuffleUp(T value, ushort delta) -{ - return simd_shuffle_up(value, delta); -} - -template<> -inline bool spvSubgroupShuffleUp(bool value, ushort delta) -{ - return !!simd_shuffle_up((ushort)value, delta); -} - -template -inline vec spvSubgroupShuffleUp(vec value, ushort delta) -{ - return (vec)simd_shuffle_up((vec)value, delta); -} - -template -inline T spvSubgroupShuffleDown(T value, ushort delta) -{ - return simd_shuffle_down(value, delta); -} - -template<> -inline bool spvSubgroupShuffleDown(bool value, ushort delta) -{ - return !!simd_shuffle_down((ushort)value, delta); -} - -template -inline vec spvSubgroupShuffleDown(vec value, ushort delta) -{ - return (vec)simd_shuffle_down((vec)value, delta); -} - -template -inline T spvQuadBroadcast(T value, uint lane) -{ - return quad_broadcast(value, lane); -} - -template<> -inline bool spvQuadBroadcast(bool value, uint lane) -{ - return !!quad_broadcast((ushort)value, lane); -} - -template -inline vec spvQuadBroadcast(vec value, uint lane) -{ - return (vec)quad_broadcast((vec)value, lane); -} - -template -inline T spvQuadSwap(T value, uint dir) -{ - return quad_shuffle_xor(value, dir + 1); -} - -template<> -inline bool spvQuadSwap(bool value, uint dir) -{ - return !!quad_shuffle_xor((ushort)value, dir + 1); -} - -template -inline vec spvQuadSwap(vec value, uint dir) -{ - return (vec)quad_shuffle_xor((vec)value, dir + 1); -} - -kernel void main0(device SSBO& _9 [[buffer(0)]], uint gl_NumSubgroups [[simdgroups_per_threadgroup]], uint gl_SubgroupID [[simdgroup_index_in_threadgroup]], uint gl_SubgroupInvocationID [[thread_index_in_simdgroup]]) -{ - uint gl_SubgroupSize = 32; - uint4 gl_SubgroupEqMask = gl_SubgroupInvocationID >= 32 ? uint4(0, (1 << (gl_SubgroupInvocationID - 32)), uint2(0)) : uint4(1 << gl_SubgroupInvocationID, uint3(0)); - uint4 gl_SubgroupGeMask = uint4(insert_bits(0u, 0xFFFFFFFF, gl_SubgroupInvocationID, 32 - gl_SubgroupInvocationID), uint3(0)); - uint4 gl_SubgroupGtMask = uint4(insert_bits(0u, 0xFFFFFFFF, gl_SubgroupInvocationID + 1, 32 - gl_SubgroupInvocationID - 1), uint3(0)); - uint4 gl_SubgroupLeMask = uint4(extract_bits(0xFFFFFFFF, 0, min(gl_SubgroupInvocationID + 1, 32u)), extract_bits(0xFFFFFFFF, 0, (uint)max((int)gl_SubgroupInvocationID + 1 - 32, 0)), uint2(0)); - uint4 gl_SubgroupLtMask = uint4(extract_bits(0xFFFFFFFF, 0, min(gl_SubgroupInvocationID, 32u)), extract_bits(0xFFFFFFFF, 0, (uint)max((int)gl_SubgroupInvocationID - 32, 0)), uint2(0)); - _9.FragColor = float(gl_NumSubgroups); - _9.FragColor = float(gl_SubgroupID); - _9.FragColor = float(gl_SubgroupSize); - _9.FragColor = float(gl_SubgroupInvocationID); - simdgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup | mem_flags::mem_texture); - simdgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup | mem_flags::mem_texture); - simdgroup_barrier(mem_flags::mem_device); - simdgroup_barrier(mem_flags::mem_threadgroup); - simdgroup_barrier(mem_flags::mem_texture); - bool _39 = simd_is_first(); - bool elected = _39; - _9.FragColor = float4(gl_SubgroupEqMask).x; - _9.FragColor = float4(gl_SubgroupGeMask).x; - _9.FragColor = float4(gl_SubgroupGtMask).x; - _9.FragColor = float4(gl_SubgroupLeMask).x; - _9.FragColor = float4(gl_SubgroupLtMask).x; - float4 broadcasted = spvSubgroupBroadcast(float4(10.0), 8u); - bool2 broadcasted_bool = spvSubgroupBroadcast(bool2(true), 8u); - float3 first = spvSubgroupBroadcastFirst(float3(20.0)); - bool4 first_bool = spvSubgroupBroadcastFirst(bool4(false)); - uint4 ballot_value = spvSubgroupBallot(true); - bool inverse_ballot_value = spvSubgroupBallotBitExtract(ballot_value, gl_SubgroupInvocationID); - bool bit_extracted = spvSubgroupBallotBitExtract(uint4(10u), 8u); - uint bit_count = spvSubgroupBallotBitCount(ballot_value, gl_SubgroupSize); - uint inclusive_bit_count = spvSubgroupBallotInclusiveBitCount(ballot_value, gl_SubgroupInvocationID); - uint exclusive_bit_count = spvSubgroupBallotExclusiveBitCount(ballot_value, gl_SubgroupInvocationID); - uint lsb = spvSubgroupBallotFindLSB(ballot_value, gl_SubgroupSize); - uint msb = spvSubgroupBallotFindMSB(ballot_value, gl_SubgroupSize); - uint shuffled = spvSubgroupShuffle(10u, 8u); - bool shuffled_bool = spvSubgroupShuffle(true, 9u); - uint shuffled_xor = spvSubgroupShuffleXor(30u, 8u); - bool shuffled_xor_bool = spvSubgroupShuffleXor(false, 9u); - uint shuffled_up = spvSubgroupShuffleUp(20u, 4u); - bool shuffled_up_bool = spvSubgroupShuffleUp(true, 4u); - uint shuffled_down = spvSubgroupShuffleDown(20u, 4u); - bool shuffled_down_bool = spvSubgroupShuffleDown(false, 4u); - bool has_all = simd_all(true); - bool has_any = simd_any(true); - bool has_equal = spvSubgroupAllEqual(0); - has_equal = spvSubgroupAllEqual(true); - has_equal = spvSubgroupAllEqual(float3(0.0, 1.0, 2.0)); - has_equal = spvSubgroupAllEqual(bool4(true, true, false, true)); - float4 added = simd_sum(float4(20.0)); - int4 iadded = simd_sum(int4(20)); - float4 multiplied = simd_product(float4(20.0)); - int4 imultiplied = simd_product(int4(20)); - float4 lo = simd_min(float4(20.0)); - float4 hi = simd_max(float4(20.0)); - int4 slo = simd_min(int4(20)); - int4 shi = simd_max(int4(20)); - uint4 ulo = simd_min(uint4(20u)); - uint4 uhi = simd_max(uint4(20u)); - uint4 anded = simd_and(ballot_value); - uint4 ored = simd_or(ballot_value); - uint4 xored = simd_xor(ballot_value); - added = simd_prefix_inclusive_sum(added); - iadded = simd_prefix_inclusive_sum(iadded); - multiplied = simd_prefix_inclusive_product(multiplied); - imultiplied = simd_prefix_inclusive_product(imultiplied); - added = simd_prefix_exclusive_sum(multiplied); - multiplied = simd_prefix_exclusive_product(multiplied); - iadded = simd_prefix_exclusive_sum(imultiplied); - imultiplied = simd_prefix_exclusive_product(imultiplied); - added = quad_sum(added); - multiplied = quad_product(multiplied); - iadded = quad_sum(iadded); - imultiplied = quad_product(imultiplied); - lo = quad_min(lo); - hi = quad_max(hi); - ulo = quad_min(ulo); - uhi = quad_max(uhi); - slo = quad_min(slo); - shi = quad_max(shi); - anded = quad_and(anded); - ored = quad_or(ored); - xored = quad_xor(xored); - float4 swap_horiz = spvQuadSwap(float4(20.0), 0u); - bool4 swap_horiz_bool = spvQuadSwap(bool4(true), 0u); - float4 swap_vertical = spvQuadSwap(float4(20.0), 1u); - bool4 swap_vertical_bool = spvQuadSwap(bool4(true), 1u); - float4 swap_diagonal = spvQuadSwap(float4(20.0), 2u); - bool4 swap_diagonal_bool = spvQuadSwap(bool4(true), 2u); - float4 quad_broadcast0 = spvQuadBroadcast(float4(20.0), 3u); - bool4 quad_broadcast_bool = spvQuadBroadcast(bool4(true), 3u); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl21.ios.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl21.ios.comp deleted file mode 100644 index de38c72a33..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl21.ios.comp +++ /dev/null @@ -1,151 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBO -{ - float FragColor; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -template -inline T spvSubgroupShuffle(T value, ushort lane) -{ - return quad_shuffle(value, lane); -} - -template<> -inline bool spvSubgroupShuffle(bool value, ushort lane) -{ - return !!quad_shuffle((ushort)value, lane); -} - -template -inline vec spvSubgroupShuffle(vec value, ushort lane) -{ - return (vec)quad_shuffle((vec)value, lane); -} - -template -inline T spvSubgroupShuffleXor(T value, ushort mask) -{ - return quad_shuffle_xor(value, mask); -} - -template<> -inline bool spvSubgroupShuffleXor(bool value, ushort mask) -{ - return !!quad_shuffle_xor((ushort)value, mask); -} - -template -inline vec spvSubgroupShuffleXor(vec value, ushort mask) -{ - return (vec)quad_shuffle_xor((vec)value, mask); -} - -template -inline T spvSubgroupShuffleUp(T value, ushort delta) -{ - return quad_shuffle_up(value, delta); -} - -template<> -inline bool spvSubgroupShuffleUp(bool value, ushort delta) -{ - return !!quad_shuffle_up((ushort)value, delta); -} - -template -inline vec spvSubgroupShuffleUp(vec value, ushort delta) -{ - return (vec)quad_shuffle_up((vec)value, delta); -} - -template -inline T spvSubgroupShuffleDown(T value, ushort delta) -{ - return quad_shuffle_down(value, delta); -} - -template<> -inline bool spvSubgroupShuffleDown(bool value, ushort delta) -{ - return !!quad_shuffle_down((ushort)value, delta); -} - -template -inline vec spvSubgroupShuffleDown(vec value, ushort delta) -{ - return (vec)quad_shuffle_down((vec)value, delta); -} - -template -inline T spvQuadBroadcast(T value, uint lane) -{ - return quad_broadcast(value, lane); -} - -template<> -inline bool spvQuadBroadcast(bool value, uint lane) -{ - return !!quad_broadcast((ushort)value, lane); -} - -template -inline vec spvQuadBroadcast(vec value, uint lane) -{ - return (vec)quad_broadcast((vec)value, lane); -} - -template -inline T spvQuadSwap(T value, uint dir) -{ - return quad_shuffle_xor(value, dir + 1); -} - -template<> -inline bool spvQuadSwap(bool value, uint dir) -{ - return !!quad_shuffle_xor((ushort)value, dir + 1); -} - -template -inline vec spvQuadSwap(vec value, uint dir) -{ - return (vec)quad_shuffle_xor((vec)value, dir + 1); -} - -kernel void main0(device SSBO& _9 [[buffer(0)]], uint gl_NumSubgroups [[quadgroups_per_threadgroup]], uint gl_SubgroupID [[quadgroup_index_in_threadgroup]], uint gl_SubgroupSize [[thread_execution_width]], uint gl_SubgroupInvocationID [[thread_index_in_quadgroup]]) -{ - _9.FragColor = float(gl_NumSubgroups); - _9.FragColor = float(gl_SubgroupID); - _9.FragColor = float(gl_SubgroupSize); - _9.FragColor = float(gl_SubgroupInvocationID); - simdgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup | mem_flags::mem_texture); - simdgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup | mem_flags::mem_texture); - simdgroup_barrier(mem_flags::mem_device); - simdgroup_barrier(mem_flags::mem_threadgroup); - simdgroup_barrier(mem_flags::mem_texture); - uint shuffled = spvSubgroupShuffle(10u, 8u); - bool shuffled_bool = spvSubgroupShuffle(true, 9u); - uint shuffled_xor = spvSubgroupShuffleXor(30u, 8u); - bool shuffled_xor_bool = spvSubgroupShuffleXor(false, 9u); - uint shuffled_up = spvSubgroupShuffleUp(20u, 4u); - bool shuffled_up_bool = spvSubgroupShuffleUp(true, 4u); - uint shuffled_down = spvSubgroupShuffleDown(20u, 4u); - bool shuffled_down_bool = spvSubgroupShuffleDown(false, 4u); - float4 swap_horiz = spvQuadSwap(float4(20.0), 0u); - bool4 swap_horiz_bool = spvQuadSwap(bool4(true), 0u); - float4 swap_vertical = spvQuadSwap(float4(20.0), 1u); - bool4 swap_vertical_bool = spvQuadSwap(bool4(true), 1u); - float4 swap_diagonal = spvQuadSwap(float4(20.0), 2u); - bool4 swap_diagonal_bool = spvQuadSwap(bool4(true), 2u); - float4 quad_broadcast0 = spvQuadBroadcast(float4(20.0), 3u); - bool4 quad_broadcast_bool = spvQuadBroadcast(bool4(true), 3u); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl22.ios.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl22.ios.comp deleted file mode 100644 index bb319a3fc8..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl22.ios.comp +++ /dev/null @@ -1,282 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBO -{ - float FragColor; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -template -inline T spvSubgroupBroadcast(T value, ushort lane) -{ - return quad_broadcast(value, lane); -} - -template<> -inline bool spvSubgroupBroadcast(bool value, ushort lane) -{ - return !!quad_broadcast((ushort)value, lane); -} - -template -inline vec spvSubgroupBroadcast(vec value, ushort lane) -{ - return (vec)quad_broadcast((vec)value, lane); -} - -template -inline T spvSubgroupBroadcastFirst(T value) -{ - return quad_broadcast_first(value); -} - -template<> -inline bool spvSubgroupBroadcastFirst(bool value) -{ - return !!quad_broadcast_first((ushort)value); -} - -template -inline vec spvSubgroupBroadcastFirst(vec value) -{ - return (vec)quad_broadcast_first((vec)value); -} - -inline uint4 spvSubgroupBallot(bool value) -{ - return uint4((quad_vote::vote_t)quad_ballot(value), 0, 0, 0); -} - -inline bool spvSubgroupBallotBitExtract(uint4 ballot, uint bit) -{ - return !!extract_bits(ballot[bit / 32], bit % 32, 1); -} - -inline uint spvSubgroupBallotFindLSB(uint4 ballot, uint gl_SubgroupSize) -{ - uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, gl_SubgroupSize), uint3(0)); - ballot &= mask; - return select(ctz(ballot.x), select(32 + ctz(ballot.y), select(64 + ctz(ballot.z), select(96 + ctz(ballot.w), uint(-1), ballot.w == 0), ballot.z == 0), ballot.y == 0), ballot.x == 0); -} - -inline uint spvSubgroupBallotFindMSB(uint4 ballot, uint gl_SubgroupSize) -{ - uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, gl_SubgroupSize), uint3(0)); - ballot &= mask; - return select(128 - (clz(ballot.w) + 1), select(96 - (clz(ballot.z) + 1), select(64 - (clz(ballot.y) + 1), select(32 - (clz(ballot.x) + 1), uint(-1), ballot.x == 0), ballot.y == 0), ballot.z == 0), ballot.w == 0); -} - -inline uint spvPopCount4(uint4 ballot) -{ - return popcount(ballot.x) + popcount(ballot.y) + popcount(ballot.z) + popcount(ballot.w); -} - -inline uint spvSubgroupBallotBitCount(uint4 ballot, uint gl_SubgroupSize) -{ - uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, gl_SubgroupSize), uint3(0)); - return spvPopCount4(ballot & mask); -} - -inline uint spvSubgroupBallotInclusiveBitCount(uint4 ballot, uint gl_SubgroupInvocationID) -{ - uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, gl_SubgroupInvocationID + 1), uint3(0)); - return spvPopCount4(ballot & mask); -} - -inline uint spvSubgroupBallotExclusiveBitCount(uint4 ballot, uint gl_SubgroupInvocationID) -{ - uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, gl_SubgroupInvocationID), uint2(0)); - return spvPopCount4(ballot & mask); -} - -template -inline bool spvSubgroupAllEqual(T value) -{ - return quad_all(all(value == quad_broadcast_first(value))); -} - -template<> -inline bool spvSubgroupAllEqual(bool value) -{ - return quad_all(value) || !quad_any(value); -} - -template -inline bool spvSubgroupAllEqual(vec value) -{ - return quad_all(all(value == (vec)quad_broadcast_first((vec)value))); -} - -template -inline T spvSubgroupShuffle(T value, ushort lane) -{ - return quad_shuffle(value, lane); -} - -template<> -inline bool spvSubgroupShuffle(bool value, ushort lane) -{ - return !!quad_shuffle((ushort)value, lane); -} - -template -inline vec spvSubgroupShuffle(vec value, ushort lane) -{ - return (vec)quad_shuffle((vec)value, lane); -} - -template -inline T spvSubgroupShuffleXor(T value, ushort mask) -{ - return quad_shuffle_xor(value, mask); -} - -template<> -inline bool spvSubgroupShuffleXor(bool value, ushort mask) -{ - return !!quad_shuffle_xor((ushort)value, mask); -} - -template -inline vec spvSubgroupShuffleXor(vec value, ushort mask) -{ - return (vec)quad_shuffle_xor((vec)value, mask); -} - -template -inline T spvSubgroupShuffleUp(T value, ushort delta) -{ - return quad_shuffle_up(value, delta); -} - -template<> -inline bool spvSubgroupShuffleUp(bool value, ushort delta) -{ - return !!quad_shuffle_up((ushort)value, delta); -} - -template -inline vec spvSubgroupShuffleUp(vec value, ushort delta) -{ - return (vec)quad_shuffle_up((vec)value, delta); -} - -template -inline T spvSubgroupShuffleDown(T value, ushort delta) -{ - return quad_shuffle_down(value, delta); -} - -template<> -inline bool spvSubgroupShuffleDown(bool value, ushort delta) -{ - return !!quad_shuffle_down((ushort)value, delta); -} - -template -inline vec spvSubgroupShuffleDown(vec value, ushort delta) -{ - return (vec)quad_shuffle_down((vec)value, delta); -} - -template -inline T spvQuadBroadcast(T value, uint lane) -{ - return quad_broadcast(value, lane); -} - -template<> -inline bool spvQuadBroadcast(bool value, uint lane) -{ - return !!quad_broadcast((ushort)value, lane); -} - -template -inline vec spvQuadBroadcast(vec value, uint lane) -{ - return (vec)quad_broadcast((vec)value, lane); -} - -template -inline T spvQuadSwap(T value, uint dir) -{ - return quad_shuffle_xor(value, dir + 1); -} - -template<> -inline bool spvQuadSwap(bool value, uint dir) -{ - return !!quad_shuffle_xor((ushort)value, dir + 1); -} - -template -inline vec spvQuadSwap(vec value, uint dir) -{ - return (vec)quad_shuffle_xor((vec)value, dir + 1); -} - -kernel void main0(device SSBO& _9 [[buffer(0)]], uint gl_NumSubgroups [[quadgroups_per_threadgroup]], uint gl_SubgroupID [[quadgroup_index_in_threadgroup]], uint gl_SubgroupSize [[thread_execution_width]], uint gl_SubgroupInvocationID [[thread_index_in_quadgroup]]) -{ - uint4 gl_SubgroupEqMask = uint4(1 << gl_SubgroupInvocationID, uint3(0)); - uint4 gl_SubgroupGeMask = uint4(insert_bits(0u, 0xFFFFFFFF, gl_SubgroupInvocationID, gl_SubgroupSize - gl_SubgroupInvocationID), uint3(0)); - uint4 gl_SubgroupGtMask = uint4(insert_bits(0u, 0xFFFFFFFF, gl_SubgroupInvocationID + 1, gl_SubgroupSize - gl_SubgroupInvocationID - 1), uint3(0)); - uint4 gl_SubgroupLeMask = uint4(extract_bits(0xFFFFFFFF, 0, gl_SubgroupInvocationID + 1), uint3(0)); - uint4 gl_SubgroupLtMask = uint4(extract_bits(0xFFFFFFFF, 0, gl_SubgroupInvocationID), uint3(0)); - _9.FragColor = float(gl_NumSubgroups); - _9.FragColor = float(gl_SubgroupID); - _9.FragColor = float(gl_SubgroupSize); - _9.FragColor = float(gl_SubgroupInvocationID); - simdgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup | mem_flags::mem_texture); - simdgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup | mem_flags::mem_texture); - simdgroup_barrier(mem_flags::mem_device); - simdgroup_barrier(mem_flags::mem_threadgroup); - simdgroup_barrier(mem_flags::mem_texture); - bool _39 = quad_is_first(); - bool elected = _39; - _9.FragColor = float4(gl_SubgroupEqMask).x; - _9.FragColor = float4(gl_SubgroupGeMask).x; - _9.FragColor = float4(gl_SubgroupGtMask).x; - _9.FragColor = float4(gl_SubgroupLeMask).x; - _9.FragColor = float4(gl_SubgroupLtMask).x; - float4 broadcasted = spvSubgroupBroadcast(float4(10.0), 8u); - bool2 broadcasted_bool = spvSubgroupBroadcast(bool2(true), 8u); - float3 first = spvSubgroupBroadcastFirst(float3(20.0)); - bool4 first_bool = spvSubgroupBroadcastFirst(bool4(false)); - uint4 ballot_value = spvSubgroupBallot(true); - bool inverse_ballot_value = spvSubgroupBallotBitExtract(ballot_value, gl_SubgroupInvocationID); - bool bit_extracted = spvSubgroupBallotBitExtract(uint4(10u), 8u); - uint bit_count = spvSubgroupBallotBitCount(ballot_value, gl_SubgroupSize); - uint inclusive_bit_count = spvSubgroupBallotInclusiveBitCount(ballot_value, gl_SubgroupInvocationID); - uint exclusive_bit_count = spvSubgroupBallotExclusiveBitCount(ballot_value, gl_SubgroupInvocationID); - uint lsb = spvSubgroupBallotFindLSB(ballot_value, gl_SubgroupSize); - uint msb = spvSubgroupBallotFindMSB(ballot_value, gl_SubgroupSize); - uint shuffled = spvSubgroupShuffle(10u, 8u); - bool shuffled_bool = spvSubgroupShuffle(true, 9u); - uint shuffled_xor = spvSubgroupShuffleXor(30u, 8u); - bool shuffled_xor_bool = spvSubgroupShuffleXor(false, 9u); - uint shuffled_up = spvSubgroupShuffleUp(20u, 4u); - bool shuffled_up_bool = spvSubgroupShuffleUp(true, 4u); - uint shuffled_down = spvSubgroupShuffleDown(20u, 4u); - bool shuffled_down_bool = spvSubgroupShuffleDown(false, 4u); - bool has_all = quad_all(true); - bool has_any = quad_any(true); - bool has_equal = spvSubgroupAllEqual(0); - has_equal = spvSubgroupAllEqual(true); - has_equal = spvSubgroupAllEqual(float3(0.0, 1.0, 2.0)); - has_equal = spvSubgroupAllEqual(bool4(true, true, false, true)); - float4 swap_horiz = spvQuadSwap(float4(20.0), 0u); - bool4 swap_horiz_bool = spvQuadSwap(bool4(true), 0u); - float4 swap_vertical = spvQuadSwap(float4(20.0), 1u); - bool4 swap_vertical_bool = spvQuadSwap(bool4(true), 1u); - float4 swap_diagonal = spvQuadSwap(float4(20.0), 2u); - bool4 swap_diagonal_bool = spvQuadSwap(bool4(true), 2u); - float4 quad_broadcast0 = spvQuadBroadcast(float4(20.0), 3u); - bool4 quad_broadcast_bool = spvQuadBroadcast(bool4(true), 3u); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl23.ios.simd.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl23.ios.simd.comp deleted file mode 100644 index 9c1d9ae213..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl23.ios.simd.comp +++ /dev/null @@ -1,316 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBO -{ - float FragColor; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -template -inline T spvSubgroupBroadcast(T value, ushort lane) -{ - return simd_broadcast(value, lane); -} - -template<> -inline bool spvSubgroupBroadcast(bool value, ushort lane) -{ - return !!simd_broadcast((ushort)value, lane); -} - -template -inline vec spvSubgroupBroadcast(vec value, ushort lane) -{ - return (vec)simd_broadcast((vec)value, lane); -} - -template -inline T spvSubgroupBroadcastFirst(T value) -{ - return simd_broadcast_first(value); -} - -template<> -inline bool spvSubgroupBroadcastFirst(bool value) -{ - return !!simd_broadcast_first((ushort)value); -} - -template -inline vec spvSubgroupBroadcastFirst(vec value) -{ - return (vec)simd_broadcast_first((vec)value); -} - -inline uint4 spvSubgroupBallot(bool value) -{ - return uint4((simd_vote::vote_t)simd_ballot(value), 0, 0, 0); -} - -inline bool spvSubgroupBallotBitExtract(uint4 ballot, uint bit) -{ - return !!extract_bits(ballot[bit / 32], bit % 32, 1); -} - -inline uint spvSubgroupBallotFindLSB(uint4 ballot, uint gl_SubgroupSize) -{ - uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, gl_SubgroupSize), uint3(0)); - ballot &= mask; - return select(ctz(ballot.x), select(32 + ctz(ballot.y), select(64 + ctz(ballot.z), select(96 + ctz(ballot.w), uint(-1), ballot.w == 0), ballot.z == 0), ballot.y == 0), ballot.x == 0); -} - -inline uint spvSubgroupBallotFindMSB(uint4 ballot, uint gl_SubgroupSize) -{ - uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, gl_SubgroupSize), uint3(0)); - ballot &= mask; - return select(128 - (clz(ballot.w) + 1), select(96 - (clz(ballot.z) + 1), select(64 - (clz(ballot.y) + 1), select(32 - (clz(ballot.x) + 1), uint(-1), ballot.x == 0), ballot.y == 0), ballot.z == 0), ballot.w == 0); -} - -inline uint spvPopCount4(uint4 ballot) -{ - return popcount(ballot.x) + popcount(ballot.y) + popcount(ballot.z) + popcount(ballot.w); -} - -inline uint spvSubgroupBallotBitCount(uint4 ballot, uint gl_SubgroupSize) -{ - uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, gl_SubgroupSize), uint3(0)); - return spvPopCount4(ballot & mask); -} - -inline uint spvSubgroupBallotInclusiveBitCount(uint4 ballot, uint gl_SubgroupInvocationID) -{ - uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, gl_SubgroupInvocationID + 1), uint3(0)); - return spvPopCount4(ballot & mask); -} - -inline uint spvSubgroupBallotExclusiveBitCount(uint4 ballot, uint gl_SubgroupInvocationID) -{ - uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, gl_SubgroupInvocationID), uint2(0)); - return spvPopCount4(ballot & mask); -} - -template -inline bool spvSubgroupAllEqual(T value) -{ - return simd_all(all(value == simd_broadcast_first(value))); -} - -template<> -inline bool spvSubgroupAllEqual(bool value) -{ - return simd_all(value) || !simd_any(value); -} - -template -inline bool spvSubgroupAllEqual(vec value) -{ - return simd_all(all(value == (vec)simd_broadcast_first((vec)value))); -} - -template -inline T spvSubgroupShuffle(T value, ushort lane) -{ - return simd_shuffle(value, lane); -} - -template<> -inline bool spvSubgroupShuffle(bool value, ushort lane) -{ - return !!simd_shuffle((ushort)value, lane); -} - -template -inline vec spvSubgroupShuffle(vec value, ushort lane) -{ - return (vec)simd_shuffle((vec)value, lane); -} - -template -inline T spvSubgroupShuffleXor(T value, ushort mask) -{ - return simd_shuffle_xor(value, mask); -} - -template<> -inline bool spvSubgroupShuffleXor(bool value, ushort mask) -{ - return !!simd_shuffle_xor((ushort)value, mask); -} - -template -inline vec spvSubgroupShuffleXor(vec value, ushort mask) -{ - return (vec)simd_shuffle_xor((vec)value, mask); -} - -template -inline T spvSubgroupShuffleUp(T value, ushort delta) -{ - return simd_shuffle_up(value, delta); -} - -template<> -inline bool spvSubgroupShuffleUp(bool value, ushort delta) -{ - return !!simd_shuffle_up((ushort)value, delta); -} - -template -inline vec spvSubgroupShuffleUp(vec value, ushort delta) -{ - return (vec)simd_shuffle_up((vec)value, delta); -} - -template -inline T spvSubgroupShuffleDown(T value, ushort delta) -{ - return simd_shuffle_down(value, delta); -} - -template<> -inline bool spvSubgroupShuffleDown(bool value, ushort delta) -{ - return !!simd_shuffle_down((ushort)value, delta); -} - -template -inline vec spvSubgroupShuffleDown(vec value, ushort delta) -{ - return (vec)simd_shuffle_down((vec)value, delta); -} - -template -inline T spvQuadBroadcast(T value, uint lane) -{ - return quad_broadcast(value, lane); -} - -template<> -inline bool spvQuadBroadcast(bool value, uint lane) -{ - return !!quad_broadcast((ushort)value, lane); -} - -template -inline vec spvQuadBroadcast(vec value, uint lane) -{ - return (vec)quad_broadcast((vec)value, lane); -} - -template -inline T spvQuadSwap(T value, uint dir) -{ - return quad_shuffle_xor(value, dir + 1); -} - -template<> -inline bool spvQuadSwap(bool value, uint dir) -{ - return !!quad_shuffle_xor((ushort)value, dir + 1); -} - -template -inline vec spvQuadSwap(vec value, uint dir) -{ - return (vec)quad_shuffle_xor((vec)value, dir + 1); -} - -kernel void main0(device SSBO& _9 [[buffer(0)]], uint gl_NumSubgroups [[quadgroups_per_threadgroup]], uint gl_SubgroupID [[quadgroup_index_in_threadgroup]], uint gl_SubgroupSize [[thread_execution_width]], uint gl_SubgroupInvocationID [[thread_index_in_quadgroup]]) -{ - uint4 gl_SubgroupEqMask = uint4(1 << gl_SubgroupInvocationID, uint3(0)); - uint4 gl_SubgroupGeMask = uint4(insert_bits(0u, 0xFFFFFFFF, gl_SubgroupInvocationID, gl_SubgroupSize - gl_SubgroupInvocationID), uint3(0)); - uint4 gl_SubgroupGtMask = uint4(insert_bits(0u, 0xFFFFFFFF, gl_SubgroupInvocationID + 1, gl_SubgroupSize - gl_SubgroupInvocationID - 1), uint3(0)); - uint4 gl_SubgroupLeMask = uint4(extract_bits(0xFFFFFFFF, 0, gl_SubgroupInvocationID + 1), uint3(0)); - uint4 gl_SubgroupLtMask = uint4(extract_bits(0xFFFFFFFF, 0, gl_SubgroupInvocationID), uint3(0)); - _9.FragColor = float(gl_NumSubgroups); - _9.FragColor = float(gl_SubgroupID); - _9.FragColor = float(gl_SubgroupSize); - _9.FragColor = float(gl_SubgroupInvocationID); - simdgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup | mem_flags::mem_texture); - simdgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup | mem_flags::mem_texture); - simdgroup_barrier(mem_flags::mem_device); - simdgroup_barrier(mem_flags::mem_threadgroup); - simdgroup_barrier(mem_flags::mem_texture); - bool _39 = simd_is_first(); - bool elected = _39; - _9.FragColor = float4(gl_SubgroupEqMask).x; - _9.FragColor = float4(gl_SubgroupGeMask).x; - _9.FragColor = float4(gl_SubgroupGtMask).x; - _9.FragColor = float4(gl_SubgroupLeMask).x; - _9.FragColor = float4(gl_SubgroupLtMask).x; - float4 broadcasted = spvSubgroupBroadcast(float4(10.0), 8u); - bool2 broadcasted_bool = spvSubgroupBroadcast(bool2(true), 8u); - float3 first = spvSubgroupBroadcastFirst(float3(20.0)); - bool4 first_bool = spvSubgroupBroadcastFirst(bool4(false)); - uint4 ballot_value = spvSubgroupBallot(true); - bool inverse_ballot_value = spvSubgroupBallotBitExtract(ballot_value, gl_SubgroupInvocationID); - bool bit_extracted = spvSubgroupBallotBitExtract(uint4(10u), 8u); - uint bit_count = spvSubgroupBallotBitCount(ballot_value, gl_SubgroupSize); - uint inclusive_bit_count = spvSubgroupBallotInclusiveBitCount(ballot_value, gl_SubgroupInvocationID); - uint exclusive_bit_count = spvSubgroupBallotExclusiveBitCount(ballot_value, gl_SubgroupInvocationID); - uint lsb = spvSubgroupBallotFindLSB(ballot_value, gl_SubgroupSize); - uint msb = spvSubgroupBallotFindMSB(ballot_value, gl_SubgroupSize); - uint shuffled = spvSubgroupShuffle(10u, 8u); - bool shuffled_bool = spvSubgroupShuffle(true, 9u); - uint shuffled_xor = spvSubgroupShuffleXor(30u, 8u); - bool shuffled_xor_bool = spvSubgroupShuffleXor(false, 9u); - uint shuffled_up = spvSubgroupShuffleUp(20u, 4u); - bool shuffled_up_bool = spvSubgroupShuffleUp(true, 4u); - uint shuffled_down = spvSubgroupShuffleDown(20u, 4u); - bool shuffled_down_bool = spvSubgroupShuffleDown(false, 4u); - bool has_all = simd_all(true); - bool has_any = simd_any(true); - bool has_equal = spvSubgroupAllEqual(0); - has_equal = spvSubgroupAllEqual(true); - has_equal = spvSubgroupAllEqual(float3(0.0, 1.0, 2.0)); - has_equal = spvSubgroupAllEqual(bool4(true, true, false, true)); - float4 added = simd_sum(float4(20.0)); - int4 iadded = simd_sum(int4(20)); - float4 multiplied = simd_product(float4(20.0)); - int4 imultiplied = simd_product(int4(20)); - float4 lo = simd_min(float4(20.0)); - float4 hi = simd_max(float4(20.0)); - int4 slo = simd_min(int4(20)); - int4 shi = simd_max(int4(20)); - uint4 ulo = simd_min(uint4(20u)); - uint4 uhi = simd_max(uint4(20u)); - uint4 anded = simd_and(ballot_value); - uint4 ored = simd_or(ballot_value); - uint4 xored = simd_xor(ballot_value); - added = simd_prefix_inclusive_sum(added); - iadded = simd_prefix_inclusive_sum(iadded); - multiplied = simd_prefix_inclusive_product(multiplied); - imultiplied = simd_prefix_inclusive_product(imultiplied); - added = simd_prefix_exclusive_sum(multiplied); - multiplied = simd_prefix_exclusive_product(multiplied); - iadded = simd_prefix_exclusive_sum(imultiplied); - imultiplied = simd_prefix_exclusive_product(imultiplied); - added = quad_sum(added); - multiplied = quad_product(multiplied); - iadded = quad_sum(iadded); - imultiplied = quad_product(imultiplied); - lo = quad_min(lo); - hi = quad_max(hi); - ulo = quad_min(ulo); - uhi = quad_max(uhi); - slo = quad_min(slo); - shi = quad_max(shi); - anded = quad_and(anded); - ored = quad_or(ored); - xored = quad_xor(xored); - float4 swap_horiz = spvQuadSwap(float4(20.0), 0u); - bool4 swap_horiz_bool = spvQuadSwap(bool4(true), 0u); - float4 swap_vertical = spvQuadSwap(float4(20.0), 1u); - bool4 swap_vertical_bool = spvQuadSwap(bool4(true), 1u); - float4 swap_diagonal = spvQuadSwap(float4(20.0), 2u); - bool4 swap_diagonal_bool = spvQuadSwap(bool4(true), 2u); - float4 quad_broadcast0 = spvQuadBroadcast(float4(20.0), 3u); - bool4 quad_broadcast_bool = spvQuadBroadcast(bool4(true), 3u); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/components/fragment-input-component.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/components/fragment-input-component.frag deleted file mode 100644 index 9a65918a7d..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/components/fragment-input-component.frag +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float3 Foo3 [[user(locn0)]]; - float Foo1 [[user(locn0_3)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.FragColor = float4(in.Foo3, in.Foo1); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/components/fragment-output-component.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/components/fragment-output-component.frag deleted file mode 100644 index 45b05b9dba..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/components/fragment-output-component.frag +++ /dev/null @@ -1,25 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 m_location_0 [[color(0)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - float FragColor0 = {}; - float2 FragColor1 = {}; - float FragColor3 = {}; - FragColor0 = 1.0; - FragColor1 = float2(2.0, 3.0); - FragColor3 = 4.0; - out.m_location_0.x = FragColor0; - out.m_location_0.yz = FragColor1; - out.m_location_0.w = FragColor3; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/components/fragment-output-component.pad-fragment.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/components/fragment-output-component.pad-fragment.frag deleted file mode 100644 index 0e4bee12f6..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/components/fragment-output-component.pad-fragment.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float3 m_location_0 [[color(0)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - float FragColor0 = {}; - float2 FragColor1 = {}; - FragColor0 = 1.0; - FragColor1 = float2(2.0, 3.0); - out.m_location_0.x = FragColor0; - out.m_location_0.yz = FragColor1; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/components/vertex-input-component.vert b/third_party/spirv-cross/reference/shaders-msl-no-opt/components/vertex-input-component.vert deleted file mode 100644 index 7a099f503b..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/components/vertex-input-component.vert +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float3 Foo [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 m_location_0 [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - float3 Foo3 = {}; - float Foo1 = {}; - Foo3 = in.m_location_0.xyz; - Foo1 = in.m_location_0.w; - out.gl_Position = float4(Foo3, Foo1); - out.Foo = Foo3 + float3(Foo1); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/components/vertex-output-component.vert b/third_party/spirv-cross/reference/shaders-msl-no-opt/components/vertex-output-component.vert deleted file mode 100644 index cf135b5128..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/components/vertex-output-component.vert +++ /dev/null @@ -1,26 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float3 Foo3 [[user(locn0)]]; - float Foo1 [[user(locn0_3)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 vFoo [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.gl_Position = in.vFoo; - out.Foo3 = in.vFoo.xyz; - out.Foo1 = in.vFoo.w; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/16bit-constants.invalid.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/16bit-constants.invalid.frag deleted file mode 100644 index 542beb3189..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/16bit-constants.invalid.frag +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - half foo [[color(0)]]; - short bar [[color(1)]]; - ushort baz [[color(2)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - out.foo = half(1.0); - out.bar = short(2); - out.baz = ushort(3); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/demote-to-helper.vk.nocompat.msl21.invalid.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/demote-to-helper.vk.nocompat.msl21.invalid.frag deleted file mode 100644 index 0e0348bf85..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/demote-to-helper.vk.nocompat.msl21.invalid.frag +++ /dev/null @@ -1,11 +0,0 @@ -#include -#include - -using namespace metal; - -fragment void main0() -{ - bool _9 = simd_is_helper_thread(); - bool helper = _9; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/depth-image-gather.asm.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/depth-image-gather.asm.frag deleted file mode 100644 index 025e225856..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/depth-image-gather.asm.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 out_var_SV_Target0 [[color(0)]]; -}; - -struct main0_in -{ - float2 in_var_TEXCOORD0 [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], depth2d g_depthTexture [[texture(0)]], sampler g_sampler [[sampler(0)]], sampler g_comp [[sampler(1)]]) -{ - main0_out out = {}; - out.out_var_SV_Target0 = g_depthTexture.gather_compare(g_comp, in.in_var_TEXCOORD0, 0.5) * g_depthTexture.gather(g_sampler, in.in_var_TEXCOORD0, int2(0)); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/force-active-resources.msl2.argument..force-active.discrete.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/force-active-resources.msl2.argument..force-active.discrete.frag deleted file mode 100644 index 5f8dc7203e..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/force-active-resources.msl2.argument..force-active.discrete.frag +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include - -using namespace metal; - -struct spvDescriptorSetBuffer0 -{ - texture2d uTexture2 [[id(0)]]; - sampler uTexture2Smplr [[id(1)]]; - texture2d uTexture1 [[id(2)]]; - sampler uTexture1Smplr [[id(3)]]; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float2 vUV [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], constant spvDescriptorSetBuffer0& spvDescriptorSet0 [[buffer(0)]], texture2d uTextureDiscrete2 [[texture(0)]], sampler uTextureDiscrete2Smplr [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor = spvDescriptorSet0.uTexture2.sample(spvDescriptorSet0.uTexture2Smplr, in.vUV); - out.FragColor += uTextureDiscrete2.sample(uTextureDiscrete2Smplr, in.vUV); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/fp16.desktop.invalid.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/fp16.desktop.invalid.frag deleted file mode 100644 index 3bf42962d9..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/fp16.desktop.invalid.frag +++ /dev/null @@ -1,185 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct ResType -{ - half4 _m0; - int4 _m1; -}; - -struct main0_in -{ - half v1 [[user(locn0)]]; - half2 v2 [[user(locn1)]]; - half3 v3 [[user(locn2)]]; - half4 v4 [[user(locn3)]]; -}; - -// Implementation of the GLSL mod() function, which is slightly different than Metal fmod() -template -inline Tx mod(Tx x, Ty y) -{ - return x - y * floor(x / y); -} - -// Implementation of the GLSL radians() function -template -inline T radians(T d) -{ - return d * T(0.01745329251); -} - -// Implementation of the GLSL degrees() function -template -inline T degrees(T r) -{ - return r * T(57.2957795131); -} - -static inline __attribute__((always_inline)) -half2x2 test_mat2(thread const half2& a, thread const half2& b, thread const half2& c, thread const half2& d) -{ - return half2x2(half2(a), half2(b)) * half2x2(half2(c), half2(d)); -} - -static inline __attribute__((always_inline)) -half3x3 test_mat3(thread const half3& a, thread const half3& b, thread const half3& c, thread const half3& d, thread const half3& e, thread const half3& f) -{ - return half3x3(half3(a), half3(b), half3(c)) * half3x3(half3(d), half3(e), half3(f)); -} - -static inline __attribute__((always_inline)) -void test_constants() -{ - half a = half(1.0); - half b = half(1.5); - half c = half(-1.5); - half d = half(0.0 / 0.0); - half e = half(1.0 / 0.0); - half f = half(-1.0 / 0.0); - half g = half(1014.0); - half h = half(9.5367431640625e-07); -} - -static inline __attribute__((always_inline)) -half test_result() -{ - return half(1.0); -} - -static inline __attribute__((always_inline)) -void test_conversions() -{ - half one = test_result(); - int a = int(one); - uint b = uint(one); - bool c = (isunordered(one, half(0.0)) || one != half(0.0)); - float d = float(one); - half a2 = half(a); - half b2 = half(b); - half c2 = half(c); - half d2 = half(d); -} - -static inline __attribute__((always_inline)) -void test_builtins(thread half4& v4, thread half3& v3, thread half& v1) -{ - half4 res = radians(v4); - res = degrees(v4); - res = sin(v4); - res = cos(v4); - res = tan(v4); - res = asin(v4); - res = atan2(v4, v3.xyzz); - res = atan(v4); - res = sinh(v4); - res = cosh(v4); - res = tanh(v4); - res = asinh(v4); - res = acosh(v4); - res = atanh(v4); - res = pow(v4, v4); - res = exp(v4); - res = log(v4); - res = exp2(v4); - res = log2(v4); - res = sqrt(v4); - res = rsqrt(v4); - res = abs(v4); - res = sign(v4); - res = floor(v4); - res = trunc(v4); - res = round(v4); - res = rint(v4); - res = ceil(v4); - res = fract(v4); - res = mod(v4, v4); - half4 tmp; - half4 _223 = modf(v4, tmp); - res = _223; - res = min(v4, v4); - res = max(v4, v4); - res = clamp(v4, v4, v4); - res = mix(v4, v4, v4); - res = select(v4, v4, v4 < v4); - res = step(v4, v4); - res = smoothstep(v4, v4, v4); - bool4 btmp = isnan(v4); - btmp = isinf(v4); - res = fma(v4, v4, v4); - ResType _267; - _267._m0 = frexp(v4, _267._m1); - int4 itmp = _267._m1; - res = _267._m0; - res = ldexp(res, itmp); - uint pack0 = as_type(v4.xy); - uint pack1 = as_type(v4.zw); - res = half4(as_type(pack0), as_type(pack1)); - half t0 = length(v4); - t0 = distance(v4, v4); - t0 = dot(v4, v4); - half3 res3 = cross(v3, v3); - res = normalize(v4); - res = faceforward(v4, v4, v4); - res = reflect(v4, v4); - res = refract(v4, v4, v1); - btmp = v4 < v4; - btmp = v4 <= v4; - btmp = v4 > v4; - btmp = v4 >= v4; - btmp = v4 == v4; - btmp = (isunordered(v4, v4) || v4 != v4); - res = dfdx(v4); - res = dfdy(v4); - res = dfdx(v4); - res = dfdy(v4); - res = dfdx(v4); - res = dfdy(v4); - res = fwidth(v4); - res = fwidth(v4); - res = fwidth(v4); -} - -fragment void main0(main0_in in [[stage_in]]) -{ - half2 param = in.v2; - half2 param_1 = in.v2; - half2 param_2 = in.v3.xy; - half2 param_3 = in.v3.xy; - half2x2 m0 = test_mat2(param, param_1, param_2, param_3); - half3 param_4 = in.v3; - half3 param_5 = in.v3; - half3 param_6 = in.v3; - half3 param_7 = in.v4.xyz; - half3 param_8 = in.v4.xyz; - half3 param_9 = in.v4.yzw; - half3x3 m1 = test_mat3(param_4, param_5, param_6, param_7, param_8, param_9); - test_constants(); - test_conversions(); - test_builtins(in.v4, in.v3, in.v1); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/image-gather.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/image-gather.frag deleted file mode 100644 index db793c14ee..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/image-gather.frag +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float3 vUV [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texture2d uSamp [[texture(0)]], depth2d uSampShadow [[texture(1)]], sampler uSampSmplr [[sampler(0)]], sampler uSampShadowSmplr [[sampler(1)]]) -{ - main0_out out = {}; - out.FragColor = uSamp.gather(uSampSmplr, in.vUV.xy, int2(0), component::x); - out.FragColor += uSamp.gather(uSampSmplr, in.vUV.xy, int2(0), component::y); - out.FragColor += uSampShadow.gather_compare(uSampShadowSmplr, in.vUV.xy, in.vUV.z); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/in_block_assign.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/in_block_assign.frag deleted file mode 100644 index 427c689c49..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/in_block_assign.frag +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include - -using namespace metal; - -struct VOUT -{ - float4 a; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 VOUT_a [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - VOUT Clip = {}; - Clip.a = in.VOUT_a; - VOUT tmp = Clip; - tmp.a += float4(1.0); - out.FragColor = tmp.a; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/min-max-clamp.invalid.asm.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/min-max-clamp.invalid.asm.frag deleted file mode 100644 index f597a6eb88..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/min-max-clamp.invalid.asm.frag +++ /dev/null @@ -1,69 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_in -{ - float v1 [[user(locn0)]]; - float2 v2 [[user(locn1)]]; - float3 v3 [[user(locn2)]]; - float4 v4 [[user(locn3)]]; - half h1 [[user(locn4)]]; - half2 h2 [[user(locn5)]]; - half3 h3 [[user(locn6)]]; - half4 h4 [[user(locn7)]]; -}; - -fragment void main0(main0_in in [[stage_in]]) -{ - float res = fast::min(in.v1, in.v1); - res = fast::max(in.v1, in.v1); - res = fast::clamp(in.v1, in.v1, in.v1); - res = precise::min(in.v1, in.v1); - res = precise::max(in.v1, in.v1); - res = precise::clamp(in.v1, in.v1, in.v1); - float2 res2 = fast::min(in.v2, in.v2); - res2 = fast::max(in.v2, in.v2); - res2 = fast::clamp(in.v2, in.v2, in.v2); - res2 = precise::min(in.v2, in.v2); - res2 = precise::max(in.v2, in.v2); - res2 = precise::clamp(in.v2, in.v2, in.v2); - float3 res3 = fast::min(in.v3, in.v3); - res3 = fast::max(in.v3, in.v3); - res3 = fast::clamp(in.v3, in.v3, in.v3); - res3 = precise::min(in.v3, in.v3); - res3 = precise::max(in.v3, in.v3); - res3 = precise::clamp(in.v3, in.v3, in.v3); - float4 res4 = fast::min(in.v4, in.v4); - res4 = fast::max(in.v4, in.v4); - res4 = fast::clamp(in.v4, in.v4, in.v4); - res4 = precise::min(in.v4, in.v4); - res4 = precise::max(in.v4, in.v4); - res4 = precise::clamp(in.v4, in.v4, in.v4); - half hres = min(in.h1, in.h1); - hres = max(in.h1, in.h1); - hres = clamp(in.h1, in.h1, in.h1); - hres = min(in.h1, in.h1); - hres = max(in.h1, in.h1); - hres = clamp(in.h1, in.h1, in.h1); - half2 hres2 = min(in.h2, in.h2); - hres2 = max(in.h2, in.h2); - hres2 = clamp(in.h2, in.h2, in.h2); - hres2 = min(in.h2, in.h2); - hres2 = max(in.h2, in.h2); - hres2 = clamp(in.h2, in.h2, in.h2); - half3 hres3 = min(in.h3, in.h3); - hres3 = max(in.h3, in.h3); - hres3 = clamp(in.h3, in.h3, in.h3); - hres3 = min(in.h3, in.h3); - hres3 = max(in.h3, in.h3); - hres3 = clamp(in.h3, in.h3, in.h3); - half4 hres4 = min(in.h4, in.h4); - hres4 = max(in.h4, in.h4); - hres4 = clamp(in.h4, in.h4, in.h4); - hres4 = min(in.h4, in.h4); - hres4 = max(in.h4, in.h4); - hres4 = clamp(in.h4, in.h4, in.h4); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/nonuniform-constructor.msl2.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/nonuniform-constructor.msl2.frag deleted file mode 100644 index f1ad5c5fb2..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/nonuniform-constructor.msl2.frag +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float2 vUV [[user(locn0)]]; - int vIndex [[user(locn1)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], array, 10> uTex [[texture(0)]], sampler Immut [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor = uTex[in.vIndex].sample(Immut, in.vUV); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/pixel-interlock-simple-callstack.msl2.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/pixel-interlock-simple-callstack.msl2.frag deleted file mode 100644 index cb01950d22..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/pixel-interlock-simple-callstack.msl2.frag +++ /dev/null @@ -1,37 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBO1 -{ - uint values1[1]; -}; - -struct SSBO0 -{ - uint values0[1]; -}; - -static inline __attribute__((always_inline)) -void callee2(device SSBO1& v_14, thread float4& gl_FragCoord) -{ - int _25 = int(gl_FragCoord.x); - v_14.values1[_25]++; -} - -static inline __attribute__((always_inline)) -void callee(device SSBO1& v_14, thread float4& gl_FragCoord, device SSBO0& v_35) -{ - int _38 = int(gl_FragCoord.x); - v_35.values0[_38]++; - callee2(v_14, gl_FragCoord); -} - -fragment void main0(device SSBO1& v_14 [[buffer(0), raster_order_group(0)]], device SSBO0& v_35 [[buffer(1), raster_order_group(0)]], float4 gl_FragCoord [[position]]) -{ - callee(v_14, gl_FragCoord, v_35); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/scalar-block-layout-ubo-std430.vk.nocompat.invalid.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/scalar-block-layout-ubo-std430.vk.nocompat.invalid.frag deleted file mode 100644 index ec25d06787..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/scalar-block-layout-ubo-std430.vk.nocompat.invalid.frag +++ /dev/null @@ -1,36 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - float a[1]; - float2 b[2]; -}; - -struct UBOEnhancedLayout -{ - float c[1]; - float2 d[2]; - char _m2_pad[9976]; - float e; -}; - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -struct main0_in -{ - int vIndex [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], constant UBO& _17 [[buffer(0)]], constant UBOEnhancedLayout& _30 [[buffer(1)]]) -{ - main0_out out = {}; - out.FragColor = (_17.a[in.vIndex] + _30.c[in.vIndex]) + _30.e; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/shadow-compare-global-alias.invalid.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/shadow-compare-global-alias.invalid.frag deleted file mode 100644 index 8f7b8ece49..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/shadow-compare-global-alias.invalid.frag +++ /dev/null @@ -1,57 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -struct main0_in -{ - float3 vUV [[user(locn0)]]; -}; - -static inline __attribute__((always_inline)) -float Samp(thread const float3& uv, thread depth2d uTex, thread sampler uSamp) -{ - return uTex.sample_compare(uSamp, uv.xy, uv.z); -} - -static inline __attribute__((always_inline)) -float Samp2(thread const float3& uv, thread depth2d uSampler, thread const sampler uSamplerSmplr, thread float3& vUV) -{ - return uSampler.sample_compare(uSamplerSmplr, vUV.xy, vUV.z); -} - -static inline __attribute__((always_inline)) -float Samp3(thread const depth2d uT, thread const sampler uS, thread const float3& uv, thread float3& vUV) -{ - return uT.sample_compare(uS, vUV.xy, vUV.z); -} - -static inline __attribute__((always_inline)) -float Samp4(thread const depth2d uS, thread const sampler uSSmplr, thread const float3& uv, thread float3& vUV) -{ - return uS.sample_compare(uSSmplr, vUV.xy, vUV.z); -} - -fragment main0_out main0(main0_in in [[stage_in]], depth2d uTex [[texture(0)]], depth2d uSampler [[texture(1)]], sampler uSamp [[sampler(0)]], sampler uSamplerSmplr [[sampler(1)]]) -{ - main0_out out = {}; - out.FragColor = uSampler.sample_compare(uSamplerSmplr, in.vUV.xy, in.vUV.z); - out.FragColor += uTex.sample_compare(uSamp, in.vUV.xy, in.vUV.z); - float3 param = in.vUV; - out.FragColor += Samp(param, uTex, uSamp); - float3 param_1 = in.vUV; - out.FragColor += Samp2(param_1, uSampler, uSamplerSmplr, in.vUV); - float3 param_2 = in.vUV; - out.FragColor += Samp3(uTex, uSamp, param_2, in.vUV); - float3 param_3 = in.vUV; - out.FragColor += Samp4(uSampler, uSamplerSmplr, param_3, in.vUV); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/subgroups.nocompat.invalid.vk.msl22.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/subgroups.nocompat.invalid.vk.msl22.frag deleted file mode 100644 index 2243190da0..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/subgroups.nocompat.invalid.vk.msl22.frag +++ /dev/null @@ -1,314 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -template -inline T spvSubgroupBroadcast(T value, ushort lane) -{ - return simd_broadcast(value, lane); -} - -template<> -inline bool spvSubgroupBroadcast(bool value, ushort lane) -{ - return !!simd_broadcast((ushort)value, lane); -} - -template -inline vec spvSubgroupBroadcast(vec value, ushort lane) -{ - return (vec)simd_broadcast((vec)value, lane); -} - -template -inline T spvSubgroupBroadcastFirst(T value) -{ - return simd_broadcast_first(value); -} - -template<> -inline bool spvSubgroupBroadcastFirst(bool value) -{ - return !!simd_broadcast_first((ushort)value); -} - -template -inline vec spvSubgroupBroadcastFirst(vec value) -{ - return (vec)simd_broadcast_first((vec)value); -} - -inline uint4 spvSubgroupBallot(bool value) -{ - simd_vote vote = simd_ballot(value); - // simd_ballot() returns a 64-bit integer-like object, but - // SPIR-V callers expect a uint4. We must convert. - // FIXME: This won't include higher bits if Apple ever supports - // 128 lanes in an SIMD-group. - return uint4((uint)((simd_vote::vote_t)vote & 0xFFFFFFFF), (uint)(((simd_vote::vote_t)vote >> 32) & 0xFFFFFFFF), 0, 0); -} - -inline bool spvSubgroupBallotBitExtract(uint4 ballot, uint bit) -{ - return !!extract_bits(ballot[bit / 32], bit % 32, 1); -} - -inline uint spvSubgroupBallotFindLSB(uint4 ballot, uint gl_SubgroupSize) -{ - uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, min(gl_SubgroupSize, 32u)), extract_bits(0xFFFFFFFF, 0, (uint)max((int)gl_SubgroupSize - 32, 0)), uint2(0)); - ballot &= mask; - return select(ctz(ballot.x), select(32 + ctz(ballot.y), select(64 + ctz(ballot.z), select(96 + ctz(ballot.w), uint(-1), ballot.w == 0), ballot.z == 0), ballot.y == 0), ballot.x == 0); -} - -inline uint spvSubgroupBallotFindMSB(uint4 ballot, uint gl_SubgroupSize) -{ - uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, min(gl_SubgroupSize, 32u)), extract_bits(0xFFFFFFFF, 0, (uint)max((int)gl_SubgroupSize - 32, 0)), uint2(0)); - ballot &= mask; - return select(128 - (clz(ballot.w) + 1), select(96 - (clz(ballot.z) + 1), select(64 - (clz(ballot.y) + 1), select(32 - (clz(ballot.x) + 1), uint(-1), ballot.x == 0), ballot.y == 0), ballot.z == 0), ballot.w == 0); -} - -inline uint spvPopCount4(uint4 ballot) -{ - return popcount(ballot.x) + popcount(ballot.y) + popcount(ballot.z) + popcount(ballot.w); -} - -inline uint spvSubgroupBallotBitCount(uint4 ballot, uint gl_SubgroupSize) -{ - uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, min(gl_SubgroupSize, 32u)), extract_bits(0xFFFFFFFF, 0, (uint)max((int)gl_SubgroupSize - 32, 0)), uint2(0)); - return spvPopCount4(ballot & mask); -} - -inline uint spvSubgroupBallotInclusiveBitCount(uint4 ballot, uint gl_SubgroupInvocationID) -{ - uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, min(gl_SubgroupInvocationID + 1, 32u)), extract_bits(0xFFFFFFFF, 0, (uint)max((int)gl_SubgroupInvocationID + 1 - 32, 0)), uint2(0)); - return spvPopCount4(ballot & mask); -} - -inline uint spvSubgroupBallotExclusiveBitCount(uint4 ballot, uint gl_SubgroupInvocationID) -{ - uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, min(gl_SubgroupInvocationID, 32u)), extract_bits(0xFFFFFFFF, 0, (uint)max((int)gl_SubgroupInvocationID - 32, 0)), uint2(0)); - return spvPopCount4(ballot & mask); -} - -template -inline bool spvSubgroupAllEqual(T value) -{ - return simd_all(all(value == simd_broadcast_first(value))); -} - -template<> -inline bool spvSubgroupAllEqual(bool value) -{ - return simd_all(value) || !simd_any(value); -} - -template -inline bool spvSubgroupAllEqual(vec value) -{ - return simd_all(all(value == (vec)simd_broadcast_first((vec)value))); -} - -template -inline T spvSubgroupShuffle(T value, ushort lane) -{ - return simd_shuffle(value, lane); -} - -template<> -inline bool spvSubgroupShuffle(bool value, ushort lane) -{ - return !!simd_shuffle((ushort)value, lane); -} - -template -inline vec spvSubgroupShuffle(vec value, ushort lane) -{ - return (vec)simd_shuffle((vec)value, lane); -} - -template -inline T spvSubgroupShuffleXor(T value, ushort mask) -{ - return simd_shuffle_xor(value, mask); -} - -template<> -inline bool spvSubgroupShuffleXor(bool value, ushort mask) -{ - return !!simd_shuffle_xor((ushort)value, mask); -} - -template -inline vec spvSubgroupShuffleXor(vec value, ushort mask) -{ - return (vec)simd_shuffle_xor((vec)value, mask); -} - -template -inline T spvSubgroupShuffleUp(T value, ushort delta) -{ - return simd_shuffle_up(value, delta); -} - -template<> -inline bool spvSubgroupShuffleUp(bool value, ushort delta) -{ - return !!simd_shuffle_up((ushort)value, delta); -} - -template -inline vec spvSubgroupShuffleUp(vec value, ushort delta) -{ - return (vec)simd_shuffle_up((vec)value, delta); -} - -template -inline T spvSubgroupShuffleDown(T value, ushort delta) -{ - return simd_shuffle_down(value, delta); -} - -template<> -inline bool spvSubgroupShuffleDown(bool value, ushort delta) -{ - return !!simd_shuffle_down((ushort)value, delta); -} - -template -inline vec spvSubgroupShuffleDown(vec value, ushort delta) -{ - return (vec)simd_shuffle_down((vec)value, delta); -} - -template -inline T spvQuadBroadcast(T value, uint lane) -{ - return quad_broadcast(value, lane); -} - -template<> -inline bool spvQuadBroadcast(bool value, uint lane) -{ - return !!quad_broadcast((ushort)value, lane); -} - -template -inline vec spvQuadBroadcast(vec value, uint lane) -{ - return (vec)quad_broadcast((vec)value, lane); -} - -template -inline T spvQuadSwap(T value, uint dir) -{ - return quad_shuffle_xor(value, dir + 1); -} - -template<> -inline bool spvQuadSwap(bool value, uint dir) -{ - return !!quad_shuffle_xor((ushort)value, dir + 1); -} - -template -inline vec spvQuadSwap(vec value, uint dir) -{ - return (vec)quad_shuffle_xor((vec)value, dir + 1); -} - -fragment main0_out main0(uint gl_SubgroupSize [[threads_per_simdgroup]], uint gl_SubgroupInvocationID [[thread_index_in_simdgroup]]) -{ - main0_out out = {}; - uint4 gl_SubgroupEqMask = gl_SubgroupInvocationID >= 32 ? uint4(0, (1 << (gl_SubgroupInvocationID - 32)), uint2(0)) : uint4(1 << gl_SubgroupInvocationID, uint3(0)); - uint4 gl_SubgroupGeMask = uint4(insert_bits(0u, 0xFFFFFFFF, min(gl_SubgroupInvocationID, 32u), (uint)max(min((int)gl_SubgroupSize, 32) - (int)gl_SubgroupInvocationID, 0)), insert_bits(0u, 0xFFFFFFFF, (uint)max((int)gl_SubgroupInvocationID - 32, 0), (uint)max((int)gl_SubgroupSize - (int)max(gl_SubgroupInvocationID, 32u), 0)), uint2(0)); - uint4 gl_SubgroupGtMask = uint4(insert_bits(0u, 0xFFFFFFFF, min(gl_SubgroupInvocationID + 1, 32u), (uint)max(min((int)gl_SubgroupSize, 32) - (int)gl_SubgroupInvocationID - 1, 0)), insert_bits(0u, 0xFFFFFFFF, (uint)max((int)gl_SubgroupInvocationID + 1 - 32, 0), (uint)max((int)gl_SubgroupSize - (int)max(gl_SubgroupInvocationID + 1, 32u), 0)), uint2(0)); - uint4 gl_SubgroupLeMask = uint4(extract_bits(0xFFFFFFFF, 0, min(gl_SubgroupInvocationID + 1, 32u)), extract_bits(0xFFFFFFFF, 0, (uint)max((int)gl_SubgroupInvocationID + 1 - 32, 0)), uint2(0)); - uint4 gl_SubgroupLtMask = uint4(extract_bits(0xFFFFFFFF, 0, min(gl_SubgroupInvocationID, 32u)), extract_bits(0xFFFFFFFF, 0, (uint)max((int)gl_SubgroupInvocationID - 32, 0)), uint2(0)); - out.FragColor = float(gl_SubgroupSize); - out.FragColor = float(gl_SubgroupInvocationID); - bool _24 = simd_is_first(); - bool elected = _24; - out.FragColor = float4(gl_SubgroupEqMask).x; - out.FragColor = float4(gl_SubgroupGeMask).x; - out.FragColor = float4(gl_SubgroupGtMask).x; - out.FragColor = float4(gl_SubgroupLeMask).x; - out.FragColor = float4(gl_SubgroupLtMask).x; - float4 broadcasted = spvSubgroupBroadcast(float4(10.0), 8u); - bool2 broadcasted_bool = spvSubgroupBroadcast(bool2(true), 8u); - float3 first = spvSubgroupBroadcastFirst(float3(20.0)); - bool4 first_bool = spvSubgroupBroadcastFirst(bool4(false)); - uint4 ballot_value = spvSubgroupBallot(true); - bool inverse_ballot_value = spvSubgroupBallotBitExtract(ballot_value, gl_SubgroupInvocationID); - bool bit_extracted = spvSubgroupBallotBitExtract(uint4(10u), 8u); - uint bit_count = spvSubgroupBallotBitCount(ballot_value, gl_SubgroupSize); - uint inclusive_bit_count = spvSubgroupBallotInclusiveBitCount(ballot_value, gl_SubgroupInvocationID); - uint exclusive_bit_count = spvSubgroupBallotExclusiveBitCount(ballot_value, gl_SubgroupInvocationID); - uint lsb = spvSubgroupBallotFindLSB(ballot_value, gl_SubgroupSize); - uint msb = spvSubgroupBallotFindMSB(ballot_value, gl_SubgroupSize); - uint shuffled = spvSubgroupShuffle(10u, 8u); - bool shuffled_bool = spvSubgroupShuffle(true, 9u); - uint shuffled_xor = spvSubgroupShuffleXor(30u, 8u); - bool shuffled_xor_bool = spvSubgroupShuffleXor(false, 9u); - uint shuffled_up = spvSubgroupShuffleUp(20u, 4u); - bool shuffled_up_bool = spvSubgroupShuffleUp(true, 4u); - uint shuffled_down = spvSubgroupShuffleDown(20u, 4u); - bool shuffled_down_bool = spvSubgroupShuffleDown(false, 4u); - bool has_all = simd_all(true); - bool has_any = simd_any(true); - bool has_equal = spvSubgroupAllEqual(0); - has_equal = spvSubgroupAllEqual(true); - has_equal = spvSubgroupAllEqual(float3(0.0, 1.0, 2.0)); - has_equal = spvSubgroupAllEqual(bool4(true, true, false, true)); - float4 added = simd_sum(float4(20.0)); - int4 iadded = simd_sum(int4(20)); - float4 multiplied = simd_product(float4(20.0)); - int4 imultiplied = simd_product(int4(20)); - float4 lo = simd_min(float4(20.0)); - float4 hi = simd_max(float4(20.0)); - int4 slo = simd_min(int4(20)); - int4 shi = simd_max(int4(20)); - uint4 ulo = simd_min(uint4(20u)); - uint4 uhi = simd_max(uint4(20u)); - uint4 anded = simd_and(ballot_value); - uint4 ored = simd_or(ballot_value); - uint4 xored = simd_xor(ballot_value); - added = simd_prefix_inclusive_sum(added); - iadded = simd_prefix_inclusive_sum(iadded); - multiplied = simd_prefix_inclusive_product(multiplied); - imultiplied = simd_prefix_inclusive_product(imultiplied); - added = simd_prefix_exclusive_sum(multiplied); - multiplied = simd_prefix_exclusive_product(multiplied); - iadded = simd_prefix_exclusive_sum(imultiplied); - imultiplied = simd_prefix_exclusive_product(imultiplied); - added = quad_sum(added); - multiplied = quad_product(multiplied); - iadded = quad_sum(iadded); - imultiplied = quad_product(imultiplied); - lo = quad_min(lo); - hi = quad_max(hi); - ulo = quad_min(ulo); - uhi = quad_max(uhi); - slo = quad_min(slo); - shi = quad_max(shi); - anded = quad_and(anded); - ored = quad_or(ored); - xored = quad_xor(xored); - float4 swap_horiz = spvQuadSwap(float4(20.0), 0u); - bool4 swap_horiz_bool = spvQuadSwap(bool4(true), 0u); - float4 swap_vertical = spvQuadSwap(float4(20.0), 1u); - bool4 swap_vertical_bool = spvQuadSwap(bool4(true), 1u); - float4 swap_diagonal = spvQuadSwap(float4(20.0), 2u); - bool4 swap_diagonal_bool = spvQuadSwap(bool4(true), 2u); - float4 quad_broadcast0 = spvQuadBroadcast(float4(20.0), 3u); - bool4 quad_broadcast_bool = spvQuadBroadcast(bool4(true), 3u); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/subpass-input-attachment-index-fallback.msl20.ios.framebuffer-fetch.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/subpass-input-attachment-index-fallback.msl20.ios.framebuffer-fetch.frag deleted file mode 100644 index c67984892d..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/subpass-input-attachment-index-fallback.msl20.ios.framebuffer-fetch.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(1)]]; -}; - -fragment main0_out main0(float4 uInput [[color(1)]]) -{ - main0_out out = {}; - out.FragColor = uInput; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/subpass-input-attachment-index-fallback.msl23.framebuffer-fetch.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/subpass-input-attachment-index-fallback.msl23.framebuffer-fetch.frag deleted file mode 100644 index c67984892d..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/subpass-input-attachment-index-fallback.msl23.framebuffer-fetch.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(1)]]; -}; - -fragment main0_out main0(float4 uInput [[color(1)]]) -{ - main0_out out = {}; - out.FragColor = uInput; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/subpass-input-function-argument.framebuffer-fetch.ios.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/subpass-input-function-argument.framebuffer-fetch.ios.frag deleted file mode 100644 index 950895d088..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/subpass-input-function-argument.framebuffer-fetch.ios.frag +++ /dev/null @@ -1,37 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -static inline __attribute__((always_inline)) -float4 samp3(float4 uS) -{ - return uS; -} - -static inline __attribute__((always_inline)) -float4 samp(float4 uSub) -{ - return uSub + samp3(uSub); -} - -static inline __attribute__((always_inline)) -float4 samp2(float4 uS) -{ - return uS + samp3(uS); -} - -fragment main0_out main0(float4 uSub [[color(0)]]) -{ - main0_out out = {}; - out.FragColor = samp(uSub) + samp2(uSub); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/subpass-input-function-argument.framebuffer-fetch.msl23.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/subpass-input-function-argument.framebuffer-fetch.msl23.frag deleted file mode 100644 index 950895d088..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/subpass-input-function-argument.framebuffer-fetch.msl23.frag +++ /dev/null @@ -1,37 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -static inline __attribute__((always_inline)) -float4 samp3(float4 uS) -{ - return uS; -} - -static inline __attribute__((always_inline)) -float4 samp(float4 uSub) -{ - return uSub + samp3(uSub); -} - -static inline __attribute__((always_inline)) -float4 samp2(float4 uS) -{ - return uS + samp3(uS); -} - -fragment main0_out main0(float4 uSub [[color(0)]]) -{ - main0_out out = {}; - out.FragColor = samp(uSub) + samp2(uSub); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/subpass-input.decoration-binding.framebuffer-fetch.msl23.argument.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/subpass-input.decoration-binding.framebuffer-fetch.msl23.argument.frag deleted file mode 100644 index 8c7f67b68b..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/subpass-input.decoration-binding.framebuffer-fetch.msl23.argument.frag +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace metal; - -struct spvDescriptorSetBuffer0 -{ - sampler uSampler [[id(8)]]; - texture2d uTex [[id(9)]]; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(constant spvDescriptorSetBuffer0& spvDescriptorSet0 [[buffer(0)]], float4 uSub [[color(1)]]) -{ - main0_out out = {}; - out.FragColor = uSub + spvDescriptorSet0.uTex.sample(spvDescriptorSet0.uSampler, float2(0.5)); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/subpass-input.decoration-binding.framebuffer-fetch.msl23.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/subpass-input.decoration-binding.framebuffer-fetch.msl23.frag deleted file mode 100644 index 9108927ee4..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/subpass-input.decoration-binding.framebuffer-fetch.msl23.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(float4 uSub [[color(1)]], texture2d uTex [[texture(9)]], sampler uSampler [[sampler(8)]]) -{ - main0_out out = {}; - out.FragColor = uSub + uTex.sample(uSampler, float2(0.5)); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/subpass-input.decoration-binding.ios.framebuffer-fetch.msl2.argument.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/subpass-input.decoration-binding.ios.framebuffer-fetch.msl2.argument.frag deleted file mode 100644 index 8c7f67b68b..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/subpass-input.decoration-binding.ios.framebuffer-fetch.msl2.argument.frag +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace metal; - -struct spvDescriptorSetBuffer0 -{ - sampler uSampler [[id(8)]]; - texture2d uTex [[id(9)]]; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(constant spvDescriptorSetBuffer0& spvDescriptorSet0 [[buffer(0)]], float4 uSub [[color(1)]]) -{ - main0_out out = {}; - out.FragColor = uSub + spvDescriptorSet0.uTex.sample(spvDescriptorSet0.uSampler, float2(0.5)); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/subpass-input.decoration-binding.ios.framebuffer-fetch.msl2.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/subpass-input.decoration-binding.ios.framebuffer-fetch.msl2.frag deleted file mode 100644 index 9108927ee4..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/subpass-input.decoration-binding.ios.framebuffer-fetch.msl2.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(float4 uSub [[color(1)]], texture2d uTex [[texture(9)]], sampler uSampler [[sampler(8)]]) -{ - main0_out out = {}; - out.FragColor = uSub + uTex.sample(uSampler, float2(0.5)); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/texture-access-int.swizzle.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/texture-access-int.swizzle.frag deleted file mode 100644 index ff4b8a9194..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/texture-access-int.swizzle.frag +++ /dev/null @@ -1,148 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -// Returns 2D texture coords corresponding to 1D texel buffer coords -static inline __attribute__((always_inline)) -uint2 spvTexelBufferCoord(uint tc) -{ - return uint2(tc % 4096, tc / 4096); -} - -template struct spvRemoveReference { typedef T type; }; -template struct spvRemoveReference { typedef T type; }; -template struct spvRemoveReference { typedef T type; }; -template inline constexpr thread T&& spvForward(thread typename spvRemoveReference::type& x) -{ - return static_cast(x); -} -template inline constexpr thread T&& spvForward(thread typename spvRemoveReference::type&& x) -{ - return static_cast(x); -} - -enum class spvSwizzle : uint -{ - none = 0, - zero, - one, - red, - green, - blue, - alpha -}; - -template -inline T spvGetSwizzle(vec x, T c, spvSwizzle s) -{ - switch (s) - { - case spvSwizzle::none: - return c; - case spvSwizzle::zero: - return 0; - case spvSwizzle::one: - return 1; - case spvSwizzle::red: - return x.r; - case spvSwizzle::green: - return x.g; - case spvSwizzle::blue: - return x.b; - case spvSwizzle::alpha: - return x.a; - } -} - -// Wrapper function that swizzles texture samples and fetches. -template -inline vec spvTextureSwizzle(vec x, uint s) -{ - if (!s) - return x; - return vec(spvGetSwizzle(x, x.r, spvSwizzle((s >> 0) & 0xFF)), spvGetSwizzle(x, x.g, spvSwizzle((s >> 8) & 0xFF)), spvGetSwizzle(x, x.b, spvSwizzle((s >> 16) & 0xFF)), spvGetSwizzle(x, x.a, spvSwizzle((s >> 24) & 0xFF))); -} - -template -inline T spvTextureSwizzle(T x, uint s) -{ - return spvTextureSwizzle(vec(x, 0, 0, 1), s).x; -} - -// Wrapper function that swizzles texture gathers. -template class Tex, typename... Ts> -inline vec spvGatherSwizzle(const thread Tex& t, sampler s, uint sw, component c, Ts... params) METAL_CONST_ARG(c) -{ - if (sw) - { - switch (spvSwizzle((sw >> (uint(c) * 8)) & 0xFF)) - { - case spvSwizzle::none: - break; - case spvSwizzle::zero: - return vec(0, 0, 0, 0); - case spvSwizzle::one: - return vec(1, 1, 1, 1); - case spvSwizzle::red: - return t.gather(s, spvForward(params)..., component::x); - case spvSwizzle::green: - return t.gather(s, spvForward(params)..., component::y); - case spvSwizzle::blue: - return t.gather(s, spvForward(params)..., component::z); - case spvSwizzle::alpha: - return t.gather(s, spvForward(params)..., component::w); - } - } - switch (c) - { - case component::x: - return t.gather(s, spvForward(params)..., component::x); - case component::y: - return t.gather(s, spvForward(params)..., component::y); - case component::z: - return t.gather(s, spvForward(params)..., component::z); - case component::w: - return t.gather(s, spvForward(params)..., component::w); - } -} - -fragment void main0(constant uint* spvSwizzleConstants [[buffer(30)]], texture1d tex1d [[texture(0)]], texture2d tex2d [[texture(1)]], texture3d tex3d [[texture(2)]], texturecube texCube [[texture(3)]], texture2d_array tex2dArray [[texture(4)]], texturecube_array texCubeArray [[texture(5)]], texture2d texBuffer [[texture(6)]], sampler tex1dSmplr [[sampler(0)]], sampler tex2dSmplr [[sampler(1)]], sampler tex3dSmplr [[sampler(2)]], sampler texCubeSmplr [[sampler(3)]], sampler tex2dArraySmplr [[sampler(4)]], sampler texCubeArraySmplr [[sampler(5)]]) -{ - constant uint& tex1dSwzl = spvSwizzleConstants[0]; - constant uint& tex2dSwzl = spvSwizzleConstants[1]; - constant uint& tex3dSwzl = spvSwizzleConstants[2]; - constant uint& texCubeSwzl = spvSwizzleConstants[3]; - constant uint& tex2dArraySwzl = spvSwizzleConstants[4]; - constant uint& texCubeArraySwzl = spvSwizzleConstants[5]; - float4 c = float4(spvTextureSwizzle(tex1d.sample(tex1dSmplr, 0.0), tex1dSwzl)); - c = float4(spvTextureSwizzle(tex2d.sample(tex2dSmplr, float2(0.0)), tex2dSwzl)); - c = float4(spvTextureSwizzle(tex3d.sample(tex3dSmplr, float3(0.0)), tex3dSwzl)); - c = float4(spvTextureSwizzle(texCube.sample(texCubeSmplr, float3(0.0)), texCubeSwzl)); - c = float4(spvTextureSwizzle(tex2dArray.sample(tex2dArraySmplr, float3(0.0).xy, uint(round(float3(0.0).z))), tex2dArraySwzl)); - c = float4(spvTextureSwizzle(texCubeArray.sample(texCubeArraySmplr, float4(0.0).xyz, uint(round(float4(0.0).w))), texCubeArraySwzl)); - c = float4(spvTextureSwizzle(tex1d.sample(tex1dSmplr, float2(0.0, 1.0).x / float2(0.0, 1.0).y), tex1dSwzl)); - c = float4(spvTextureSwizzle(tex2d.sample(tex2dSmplr, float3(0.0, 0.0, 1.0).xy / float3(0.0, 0.0, 1.0).z), tex2dSwzl)); - c = float4(spvTextureSwizzle(tex3d.sample(tex3dSmplr, float4(0.0, 0.0, 0.0, 1.0).xyz / float4(0.0, 0.0, 0.0, 1.0).w), tex3dSwzl)); - c = float4(spvTextureSwizzle(tex1d.sample(tex1dSmplr, 0.0), tex1dSwzl)); - c = float4(spvTextureSwizzle(tex2d.sample(tex2dSmplr, float2(0.0), level(0.0)), tex2dSwzl)); - c = float4(spvTextureSwizzle(tex3d.sample(tex3dSmplr, float3(0.0), level(0.0)), tex3dSwzl)); - c = float4(spvTextureSwizzle(texCube.sample(texCubeSmplr, float3(0.0), level(0.0)), texCubeSwzl)); - c = float4(spvTextureSwizzle(tex2dArray.sample(tex2dArraySmplr, float3(0.0).xy, uint(round(float3(0.0).z)), level(0.0)), tex2dArraySwzl)); - c = float4(spvTextureSwizzle(texCubeArray.sample(texCubeArraySmplr, float4(0.0).xyz, uint(round(float4(0.0).w)), level(0.0)), texCubeArraySwzl)); - c = float4(spvTextureSwizzle(tex1d.sample(tex1dSmplr, float2(0.0, 1.0).x / float2(0.0, 1.0).y), tex1dSwzl)); - c = float4(spvTextureSwizzle(tex2d.sample(tex2dSmplr, float3(0.0, 0.0, 1.0).xy / float3(0.0, 0.0, 1.0).z, level(0.0)), tex2dSwzl)); - c = float4(spvTextureSwizzle(tex3d.sample(tex3dSmplr, float4(0.0, 0.0, 0.0, 1.0).xyz / float4(0.0, 0.0, 0.0, 1.0).w, level(0.0)), tex3dSwzl)); - c = float4(spvTextureSwizzle(tex1d.read(uint(0)), tex1dSwzl)); - c = float4(spvTextureSwizzle(tex2d.read(uint2(int2(0)), 0), tex2dSwzl)); - c = float4(spvTextureSwizzle(tex3d.read(uint3(int3(0)), 0), tex3dSwzl)); - c = float4(spvTextureSwizzle(tex2dArray.read(uint2(int3(0).xy), uint(int3(0).z), 0), tex2dArraySwzl)); - c = float4(texBuffer.read(spvTexelBufferCoord(0))); - c = float4(spvGatherSwizzle(tex2d, tex2dSmplr, tex2dSwzl, component::x, float2(0.0), int2(0))); - c = float4(spvGatherSwizzle(texCube, texCubeSmplr, texCubeSwzl, component::y, float3(0.0))); - c = float4(spvGatherSwizzle(tex2dArray, tex2dArraySmplr, tex2dArraySwzl, component::z, float3(0.0).xy, uint(round(float3(0.0).z)), int2(0))); - c = float4(spvGatherSwizzle(texCubeArray, texCubeArraySmplr, texCubeArraySwzl, component::w, float4(0.0).xyz, uint(round(float4(0.0).w)))); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/texture-access-leaf.swizzle.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/texture-access-leaf.swizzle.frag deleted file mode 100644 index fabf6c5779..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/texture-access-leaf.swizzle.frag +++ /dev/null @@ -1,197 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -// Returns 2D texture coords corresponding to 1D texel buffer coords -static inline __attribute__((always_inline)) -uint2 spvTexelBufferCoord(uint tc) -{ - return uint2(tc % 4096, tc / 4096); -} - -template struct spvRemoveReference { typedef T type; }; -template struct spvRemoveReference { typedef T type; }; -template struct spvRemoveReference { typedef T type; }; -template inline constexpr thread T&& spvForward(thread typename spvRemoveReference::type& x) -{ - return static_cast(x); -} -template inline constexpr thread T&& spvForward(thread typename spvRemoveReference::type&& x) -{ - return static_cast(x); -} - -enum class spvSwizzle : uint -{ - none = 0, - zero, - one, - red, - green, - blue, - alpha -}; - -template -inline T spvGetSwizzle(vec x, T c, spvSwizzle s) -{ - switch (s) - { - case spvSwizzle::none: - return c; - case spvSwizzle::zero: - return 0; - case spvSwizzle::one: - return 1; - case spvSwizzle::red: - return x.r; - case spvSwizzle::green: - return x.g; - case spvSwizzle::blue: - return x.b; - case spvSwizzle::alpha: - return x.a; - } -} - -// Wrapper function that swizzles texture samples and fetches. -template -inline vec spvTextureSwizzle(vec x, uint s) -{ - if (!s) - return x; - return vec(spvGetSwizzle(x, x.r, spvSwizzle((s >> 0) & 0xFF)), spvGetSwizzle(x, x.g, spvSwizzle((s >> 8) & 0xFF)), spvGetSwizzle(x, x.b, spvSwizzle((s >> 16) & 0xFF)), spvGetSwizzle(x, x.a, spvSwizzle((s >> 24) & 0xFF))); -} - -template -inline T spvTextureSwizzle(T x, uint s) -{ - return spvTextureSwizzle(vec(x, 0, 0, 1), s).x; -} - -// Wrapper function that swizzles texture gathers. -template class Tex, typename... Ts> -inline vec spvGatherSwizzle(const thread Tex& t, sampler s, uint sw, component c, Ts... params) METAL_CONST_ARG(c) -{ - if (sw) - { - switch (spvSwizzle((sw >> (uint(c) * 8)) & 0xFF)) - { - case spvSwizzle::none: - break; - case spvSwizzle::zero: - return vec(0, 0, 0, 0); - case spvSwizzle::one: - return vec(1, 1, 1, 1); - case spvSwizzle::red: - return t.gather(s, spvForward(params)..., component::x); - case spvSwizzle::green: - return t.gather(s, spvForward(params)..., component::y); - case spvSwizzle::blue: - return t.gather(s, spvForward(params)..., component::z); - case spvSwizzle::alpha: - return t.gather(s, spvForward(params)..., component::w); - } - } - switch (c) - { - case component::x: - return t.gather(s, spvForward(params)..., component::x); - case component::y: - return t.gather(s, spvForward(params)..., component::y); - case component::z: - return t.gather(s, spvForward(params)..., component::z); - case component::w: - return t.gather(s, spvForward(params)..., component::w); - } -} - -// Wrapper function that swizzles depth texture gathers. -template class Tex, typename... Ts> -inline vec spvGatherCompareSwizzle(const thread Tex& t, sampler s, uint sw, Ts... params) -{ - if (sw) - { - switch (spvSwizzle(sw & 0xFF)) - { - case spvSwizzle::none: - case spvSwizzle::red: - break; - case spvSwizzle::zero: - case spvSwizzle::green: - case spvSwizzle::blue: - case spvSwizzle::alpha: - return vec(0, 0, 0, 0); - case spvSwizzle::one: - return vec(1, 1, 1, 1); - } - } - return t.gather_compare(s, spvForward(params)...); -} - -static inline __attribute__((always_inline)) -float4 doSwizzle(thread texture1d tex1d, thread const sampler tex1dSmplr, constant uint& tex1dSwzl, thread texture2d tex2d, thread const sampler tex2dSmplr, constant uint& tex2dSwzl, thread texture3d tex3d, thread const sampler tex3dSmplr, constant uint& tex3dSwzl, thread texturecube texCube, thread const sampler texCubeSmplr, constant uint& texCubeSwzl, thread texture2d_array tex2dArray, thread const sampler tex2dArraySmplr, constant uint& tex2dArraySwzl, thread texturecube_array texCubeArray, thread const sampler texCubeArraySmplr, constant uint& texCubeArraySwzl, thread depth2d depth2d, thread const sampler depth2dSmplr, constant uint& depth2dSwzl, thread depthcube depthCube, thread const sampler depthCubeSmplr, constant uint& depthCubeSwzl, thread depth2d_array depth2dArray, thread const sampler depth2dArraySmplr, constant uint& depth2dArraySwzl, thread depthcube_array depthCubeArray, thread const sampler depthCubeArraySmplr, constant uint& depthCubeArraySwzl, thread texture2d texBuffer) -{ - float4 c = spvTextureSwizzle(tex1d.sample(tex1dSmplr, 0.0), tex1dSwzl); - c = spvTextureSwizzle(tex2d.sample(tex2dSmplr, float2(0.0)), tex2dSwzl); - c = spvTextureSwizzle(tex3d.sample(tex3dSmplr, float3(0.0)), tex3dSwzl); - c = spvTextureSwizzle(texCube.sample(texCubeSmplr, float3(0.0)), texCubeSwzl); - c = spvTextureSwizzle(tex2dArray.sample(tex2dArraySmplr, float3(0.0).xy, uint(round(float3(0.0).z))), tex2dArraySwzl); - c = spvTextureSwizzle(texCubeArray.sample(texCubeArraySmplr, float4(0.0).xyz, uint(round(float4(0.0).w))), texCubeArraySwzl); - c.x = spvTextureSwizzle(depth2d.sample_compare(depth2dSmplr, float3(0.0, 0.0, 1.0).xy, 1.0), depth2dSwzl); - c.x = spvTextureSwizzle(depthCube.sample_compare(depthCubeSmplr, float4(0.0, 0.0, 0.0, 1.0).xyz, 1.0), depthCubeSwzl); - c.x = spvTextureSwizzle(depth2dArray.sample_compare(depth2dArraySmplr, float4(0.0, 0.0, 0.0, 1.0).xy, uint(round(float4(0.0, 0.0, 0.0, 1.0).z)), 1.0), depth2dArraySwzl); - c.x = spvTextureSwizzle(depthCubeArray.sample_compare(depthCubeArraySmplr, float4(0.0).xyz, uint(round(float4(0.0).w)), 1.0), depthCubeArraySwzl); - c = spvTextureSwizzle(tex1d.sample(tex1dSmplr, float2(0.0, 1.0).x / float2(0.0, 1.0).y), tex1dSwzl); - c = spvTextureSwizzle(tex2d.sample(tex2dSmplr, float3(0.0, 0.0, 1.0).xy / float3(0.0, 0.0, 1.0).z), tex2dSwzl); - c = spvTextureSwizzle(tex3d.sample(tex3dSmplr, float4(0.0, 0.0, 0.0, 1.0).xyz / float4(0.0, 0.0, 0.0, 1.0).w), tex3dSwzl); - float4 _103 = float4(0.0, 0.0, 1.0, 1.0); - _103.z = 1.0; - c.x = spvTextureSwizzle(depth2d.sample_compare(depth2dSmplr, _103.xy / _103.z, 1.0 / _103.z), depth2dSwzl); - c = spvTextureSwizzle(tex1d.sample(tex1dSmplr, 0.0), tex1dSwzl); - c = spvTextureSwizzle(tex2d.sample(tex2dSmplr, float2(0.0), level(0.0)), tex2dSwzl); - c = spvTextureSwizzle(tex3d.sample(tex3dSmplr, float3(0.0), level(0.0)), tex3dSwzl); - c = spvTextureSwizzle(texCube.sample(texCubeSmplr, float3(0.0), level(0.0)), texCubeSwzl); - c = spvTextureSwizzle(tex2dArray.sample(tex2dArraySmplr, float3(0.0).xy, uint(round(float3(0.0).z)), level(0.0)), tex2dArraySwzl); - c = spvTextureSwizzle(texCubeArray.sample(texCubeArraySmplr, float4(0.0).xyz, uint(round(float4(0.0).w)), level(0.0)), texCubeArraySwzl); - c.x = spvTextureSwizzle(depth2d.sample_compare(depth2dSmplr, float3(0.0, 0.0, 1.0).xy, 1.0, level(0.0)), depth2dSwzl); - c = spvTextureSwizzle(tex1d.sample(tex1dSmplr, float2(0.0, 1.0).x / float2(0.0, 1.0).y), tex1dSwzl); - c = spvTextureSwizzle(tex2d.sample(tex2dSmplr, float3(0.0, 0.0, 1.0).xy / float3(0.0, 0.0, 1.0).z, level(0.0)), tex2dSwzl); - c = spvTextureSwizzle(tex3d.sample(tex3dSmplr, float4(0.0, 0.0, 0.0, 1.0).xyz / float4(0.0, 0.0, 0.0, 1.0).w, level(0.0)), tex3dSwzl); - float4 _131 = float4(0.0, 0.0, 1.0, 1.0); - _131.z = 1.0; - c.x = spvTextureSwizzle(depth2d.sample_compare(depth2dSmplr, _131.xy / _131.z, 1.0 / _131.z, level(0.0)), depth2dSwzl); - c = spvTextureSwizzle(tex1d.read(uint(0)), tex1dSwzl); - c = spvTextureSwizzle(tex2d.read(uint2(int2(0)), 0), tex2dSwzl); - c = spvTextureSwizzle(tex3d.read(uint3(int3(0)), 0), tex3dSwzl); - c = spvTextureSwizzle(tex2dArray.read(uint2(int3(0).xy), uint(int3(0).z), 0), tex2dArraySwzl); - c = texBuffer.read(spvTexelBufferCoord(0)); - c = spvGatherSwizzle(tex2d, tex2dSmplr, tex2dSwzl, component::x, float2(0.0), int2(0)); - c = spvGatherSwizzle(texCube, texCubeSmplr, texCubeSwzl, component::y, float3(0.0)); - c = spvGatherSwizzle(tex2dArray, tex2dArraySmplr, tex2dArraySwzl, component::z, float3(0.0).xy, uint(round(float3(0.0).z)), int2(0)); - c = spvGatherSwizzle(texCubeArray, texCubeArraySmplr, texCubeArraySwzl, component::w, float4(0.0).xyz, uint(round(float4(0.0).w))); - c = spvGatherCompareSwizzle(depth2d, depth2dSmplr, depth2dSwzl, float2(0.0), 1.0); - c = spvGatherCompareSwizzle(depthCube, depthCubeSmplr, depthCubeSwzl, float3(0.0), 1.0); - c = spvGatherCompareSwizzle(depth2dArray, depth2dArraySmplr, depth2dArraySwzl, float3(0.0).xy, uint(round(float3(0.0).z)), 1.0); - c = spvGatherCompareSwizzle(depthCubeArray, depthCubeArraySmplr, depthCubeArraySwzl, float4(0.0).xyz, uint(round(float4(0.0).w)), 1.0); - return c; -} - -fragment void main0(constant uint* spvSwizzleConstants [[buffer(30)]], texture1d tex1d [[texture(0)]], texture2d tex2d [[texture(1)]], texture3d tex3d [[texture(2)]], texturecube texCube [[texture(3)]], texture2d_array tex2dArray [[texture(4)]], texturecube_array texCubeArray [[texture(5)]], depth2d depth2d [[texture(6)]], depthcube depthCube [[texture(7)]], depth2d_array depth2dArray [[texture(8)]], depthcube_array depthCubeArray [[texture(9)]], texture2d texBuffer [[texture(10)]], sampler tex1dSmplr [[sampler(0)]], sampler tex2dSmplr [[sampler(1)]], sampler tex3dSmplr [[sampler(2)]], sampler texCubeSmplr [[sampler(3)]], sampler tex2dArraySmplr [[sampler(4)]], sampler texCubeArraySmplr [[sampler(5)]], sampler depth2dSmplr [[sampler(6)]], sampler depthCubeSmplr [[sampler(7)]], sampler depth2dArraySmplr [[sampler(8)]], sampler depthCubeArraySmplr [[sampler(9)]]) -{ - constant uint& tex1dSwzl = spvSwizzleConstants[0]; - constant uint& tex2dSwzl = spvSwizzleConstants[1]; - constant uint& tex3dSwzl = spvSwizzleConstants[2]; - constant uint& texCubeSwzl = spvSwizzleConstants[3]; - constant uint& tex2dArraySwzl = spvSwizzleConstants[4]; - constant uint& texCubeArraySwzl = spvSwizzleConstants[5]; - constant uint& depth2dSwzl = spvSwizzleConstants[6]; - constant uint& depthCubeSwzl = spvSwizzleConstants[7]; - constant uint& depth2dArraySwzl = spvSwizzleConstants[8]; - constant uint& depthCubeArraySwzl = spvSwizzleConstants[9]; - float4 c = doSwizzle(tex1d, tex1dSmplr, tex1dSwzl, tex2d, tex2dSmplr, tex2dSwzl, tex3d, tex3dSmplr, tex3dSwzl, texCube, texCubeSmplr, texCubeSwzl, tex2dArray, tex2dArraySmplr, tex2dArraySwzl, texCubeArray, texCubeArraySmplr, texCubeArraySwzl, depth2d, depth2dSmplr, depth2dSwzl, depthCube, depthCubeSmplr, depthCubeSwzl, depth2dArray, depth2dArraySmplr, depth2dArraySwzl, depthCubeArray, depthCubeArraySmplr, depthCubeArraySwzl, texBuffer); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/texture-access-uint.swizzle.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/texture-access-uint.swizzle.frag deleted file mode 100644 index 0ec278f977..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/texture-access-uint.swizzle.frag +++ /dev/null @@ -1,148 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -// Returns 2D texture coords corresponding to 1D texel buffer coords -static inline __attribute__((always_inline)) -uint2 spvTexelBufferCoord(uint tc) -{ - return uint2(tc % 4096, tc / 4096); -} - -template struct spvRemoveReference { typedef T type; }; -template struct spvRemoveReference { typedef T type; }; -template struct spvRemoveReference { typedef T type; }; -template inline constexpr thread T&& spvForward(thread typename spvRemoveReference::type& x) -{ - return static_cast(x); -} -template inline constexpr thread T&& spvForward(thread typename spvRemoveReference::type&& x) -{ - return static_cast(x); -} - -enum class spvSwizzle : uint -{ - none = 0, - zero, - one, - red, - green, - blue, - alpha -}; - -template -inline T spvGetSwizzle(vec x, T c, spvSwizzle s) -{ - switch (s) - { - case spvSwizzle::none: - return c; - case spvSwizzle::zero: - return 0; - case spvSwizzle::one: - return 1; - case spvSwizzle::red: - return x.r; - case spvSwizzle::green: - return x.g; - case spvSwizzle::blue: - return x.b; - case spvSwizzle::alpha: - return x.a; - } -} - -// Wrapper function that swizzles texture samples and fetches. -template -inline vec spvTextureSwizzle(vec x, uint s) -{ - if (!s) - return x; - return vec(spvGetSwizzle(x, x.r, spvSwizzle((s >> 0) & 0xFF)), spvGetSwizzle(x, x.g, spvSwizzle((s >> 8) & 0xFF)), spvGetSwizzle(x, x.b, spvSwizzle((s >> 16) & 0xFF)), spvGetSwizzle(x, x.a, spvSwizzle((s >> 24) & 0xFF))); -} - -template -inline T spvTextureSwizzle(T x, uint s) -{ - return spvTextureSwizzle(vec(x, 0, 0, 1), s).x; -} - -// Wrapper function that swizzles texture gathers. -template class Tex, typename... Ts> -inline vec spvGatherSwizzle(const thread Tex& t, sampler s, uint sw, component c, Ts... params) METAL_CONST_ARG(c) -{ - if (sw) - { - switch (spvSwizzle((sw >> (uint(c) * 8)) & 0xFF)) - { - case spvSwizzle::none: - break; - case spvSwizzle::zero: - return vec(0, 0, 0, 0); - case spvSwizzle::one: - return vec(1, 1, 1, 1); - case spvSwizzle::red: - return t.gather(s, spvForward(params)..., component::x); - case spvSwizzle::green: - return t.gather(s, spvForward(params)..., component::y); - case spvSwizzle::blue: - return t.gather(s, spvForward(params)..., component::z); - case spvSwizzle::alpha: - return t.gather(s, spvForward(params)..., component::w); - } - } - switch (c) - { - case component::x: - return t.gather(s, spvForward(params)..., component::x); - case component::y: - return t.gather(s, spvForward(params)..., component::y); - case component::z: - return t.gather(s, spvForward(params)..., component::z); - case component::w: - return t.gather(s, spvForward(params)..., component::w); - } -} - -fragment void main0(constant uint* spvSwizzleConstants [[buffer(30)]], texture1d tex1d [[texture(0)]], texture2d tex2d [[texture(1)]], texture3d tex3d [[texture(2)]], texturecube texCube [[texture(3)]], texture2d_array tex2dArray [[texture(4)]], texturecube_array texCubeArray [[texture(5)]], texture2d texBuffer [[texture(6)]], sampler tex1dSmplr [[sampler(0)]], sampler tex2dSmplr [[sampler(1)]], sampler tex3dSmplr [[sampler(2)]], sampler texCubeSmplr [[sampler(3)]], sampler tex2dArraySmplr [[sampler(4)]], sampler texCubeArraySmplr [[sampler(5)]]) -{ - constant uint& tex1dSwzl = spvSwizzleConstants[0]; - constant uint& tex2dSwzl = spvSwizzleConstants[1]; - constant uint& tex3dSwzl = spvSwizzleConstants[2]; - constant uint& texCubeSwzl = spvSwizzleConstants[3]; - constant uint& tex2dArraySwzl = spvSwizzleConstants[4]; - constant uint& texCubeArraySwzl = spvSwizzleConstants[5]; - float4 c = float4(spvTextureSwizzle(tex1d.sample(tex1dSmplr, 0.0), tex1dSwzl)); - c = float4(spvTextureSwizzle(tex2d.sample(tex2dSmplr, float2(0.0)), tex2dSwzl)); - c = float4(spvTextureSwizzle(tex3d.sample(tex3dSmplr, float3(0.0)), tex3dSwzl)); - c = float4(spvTextureSwizzle(texCube.sample(texCubeSmplr, float3(0.0)), texCubeSwzl)); - c = float4(spvTextureSwizzle(tex2dArray.sample(tex2dArraySmplr, float3(0.0).xy, uint(round(float3(0.0).z))), tex2dArraySwzl)); - c = float4(spvTextureSwizzle(texCubeArray.sample(texCubeArraySmplr, float4(0.0).xyz, uint(round(float4(0.0).w))), texCubeArraySwzl)); - c = float4(spvTextureSwizzle(tex1d.sample(tex1dSmplr, float2(0.0, 1.0).x / float2(0.0, 1.0).y), tex1dSwzl)); - c = float4(spvTextureSwizzle(tex2d.sample(tex2dSmplr, float3(0.0, 0.0, 1.0).xy / float3(0.0, 0.0, 1.0).z), tex2dSwzl)); - c = float4(spvTextureSwizzle(tex3d.sample(tex3dSmplr, float4(0.0, 0.0, 0.0, 1.0).xyz / float4(0.0, 0.0, 0.0, 1.0).w), tex3dSwzl)); - c = float4(spvTextureSwizzle(tex1d.sample(tex1dSmplr, 0.0), tex1dSwzl)); - c = float4(spvTextureSwizzle(tex2d.sample(tex2dSmplr, float2(0.0), level(0.0)), tex2dSwzl)); - c = float4(spvTextureSwizzle(tex3d.sample(tex3dSmplr, float3(0.0), level(0.0)), tex3dSwzl)); - c = float4(spvTextureSwizzle(texCube.sample(texCubeSmplr, float3(0.0), level(0.0)), texCubeSwzl)); - c = float4(spvTextureSwizzle(tex2dArray.sample(tex2dArraySmplr, float3(0.0).xy, uint(round(float3(0.0).z)), level(0.0)), tex2dArraySwzl)); - c = float4(spvTextureSwizzle(texCubeArray.sample(texCubeArraySmplr, float4(0.0).xyz, uint(round(float4(0.0).w)), level(0.0)), texCubeArraySwzl)); - c = float4(spvTextureSwizzle(tex1d.sample(tex1dSmplr, float2(0.0, 1.0).x / float2(0.0, 1.0).y), tex1dSwzl)); - c = float4(spvTextureSwizzle(tex2d.sample(tex2dSmplr, float3(0.0, 0.0, 1.0).xy / float3(0.0, 0.0, 1.0).z, level(0.0)), tex2dSwzl)); - c = float4(spvTextureSwizzle(tex3d.sample(tex3dSmplr, float4(0.0, 0.0, 0.0, 1.0).xyz / float4(0.0, 0.0, 0.0, 1.0).w, level(0.0)), tex3dSwzl)); - c = float4(spvTextureSwizzle(tex1d.read(uint(0)), tex1dSwzl)); - c = float4(spvTextureSwizzle(tex2d.read(uint2(int2(0)), 0), tex2dSwzl)); - c = float4(spvTextureSwizzle(tex3d.read(uint3(int3(0)), 0), tex3dSwzl)); - c = float4(spvTextureSwizzle(tex2dArray.read(uint2(int3(0).xy), uint(int3(0).z), 0), tex2dArraySwzl)); - c = float4(texBuffer.read(spvTexelBufferCoord(0))); - c = float4(spvGatherSwizzle(tex2d, tex2dSmplr, tex2dSwzl, component::x, float2(0.0), int2(0))); - c = float4(spvGatherSwizzle(texCube, texCubeSmplr, texCubeSwzl, component::y, float3(0.0))); - c = float4(spvGatherSwizzle(tex2dArray, tex2dArraySmplr, tex2dArraySwzl, component::z, float3(0.0).xy, uint(round(float3(0.0).z)), int2(0))); - c = float4(spvGatherSwizzle(texCubeArray, texCubeArraySmplr, texCubeArraySwzl, component::w, float4(0.0).xyz, uint(round(float4(0.0).w)))); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/texture-access.swizzle.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/texture-access.swizzle.frag deleted file mode 100644 index 9366eeab58..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/texture-access.swizzle.frag +++ /dev/null @@ -1,190 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -// Returns 2D texture coords corresponding to 1D texel buffer coords -static inline __attribute__((always_inline)) -uint2 spvTexelBufferCoord(uint tc) -{ - return uint2(tc % 4096, tc / 4096); -} - -template struct spvRemoveReference { typedef T type; }; -template struct spvRemoveReference { typedef T type; }; -template struct spvRemoveReference { typedef T type; }; -template inline constexpr thread T&& spvForward(thread typename spvRemoveReference::type& x) -{ - return static_cast(x); -} -template inline constexpr thread T&& spvForward(thread typename spvRemoveReference::type&& x) -{ - return static_cast(x); -} - -enum class spvSwizzle : uint -{ - none = 0, - zero, - one, - red, - green, - blue, - alpha -}; - -template -inline T spvGetSwizzle(vec x, T c, spvSwizzle s) -{ - switch (s) - { - case spvSwizzle::none: - return c; - case spvSwizzle::zero: - return 0; - case spvSwizzle::one: - return 1; - case spvSwizzle::red: - return x.r; - case spvSwizzle::green: - return x.g; - case spvSwizzle::blue: - return x.b; - case spvSwizzle::alpha: - return x.a; - } -} - -// Wrapper function that swizzles texture samples and fetches. -template -inline vec spvTextureSwizzle(vec x, uint s) -{ - if (!s) - return x; - return vec(spvGetSwizzle(x, x.r, spvSwizzle((s >> 0) & 0xFF)), spvGetSwizzle(x, x.g, spvSwizzle((s >> 8) & 0xFF)), spvGetSwizzle(x, x.b, spvSwizzle((s >> 16) & 0xFF)), spvGetSwizzle(x, x.a, spvSwizzle((s >> 24) & 0xFF))); -} - -template -inline T spvTextureSwizzle(T x, uint s) -{ - return spvTextureSwizzle(vec(x, 0, 0, 1), s).x; -} - -// Wrapper function that swizzles texture gathers. -template class Tex, typename... Ts> -inline vec spvGatherSwizzle(const thread Tex& t, sampler s, uint sw, component c, Ts... params) METAL_CONST_ARG(c) -{ - if (sw) - { - switch (spvSwizzle((sw >> (uint(c) * 8)) & 0xFF)) - { - case spvSwizzle::none: - break; - case spvSwizzle::zero: - return vec(0, 0, 0, 0); - case spvSwizzle::one: - return vec(1, 1, 1, 1); - case spvSwizzle::red: - return t.gather(s, spvForward(params)..., component::x); - case spvSwizzle::green: - return t.gather(s, spvForward(params)..., component::y); - case spvSwizzle::blue: - return t.gather(s, spvForward(params)..., component::z); - case spvSwizzle::alpha: - return t.gather(s, spvForward(params)..., component::w); - } - } - switch (c) - { - case component::x: - return t.gather(s, spvForward(params)..., component::x); - case component::y: - return t.gather(s, spvForward(params)..., component::y); - case component::z: - return t.gather(s, spvForward(params)..., component::z); - case component::w: - return t.gather(s, spvForward(params)..., component::w); - } -} - -// Wrapper function that swizzles depth texture gathers. -template class Tex, typename... Ts> -inline vec spvGatherCompareSwizzle(const thread Tex& t, sampler s, uint sw, Ts... params) -{ - if (sw) - { - switch (spvSwizzle(sw & 0xFF)) - { - case spvSwizzle::none: - case spvSwizzle::red: - break; - case spvSwizzle::zero: - case spvSwizzle::green: - case spvSwizzle::blue: - case spvSwizzle::alpha: - return vec(0, 0, 0, 0); - case spvSwizzle::one: - return vec(1, 1, 1, 1); - } - } - return t.gather_compare(s, spvForward(params)...); -} - -fragment void main0(constant uint* spvSwizzleConstants [[buffer(30)]], texture1d tex1d [[texture(0)]], texture2d tex2d [[texture(1)]], texture3d tex3d [[texture(2)]], texturecube texCube [[texture(3)]], texture2d_array tex2dArray [[texture(4)]], texturecube_array texCubeArray [[texture(5)]], depth2d depth2d [[texture(6)]], depthcube depthCube [[texture(7)]], depth2d_array depth2dArray [[texture(8)]], depthcube_array depthCubeArray [[texture(9)]], texture2d texBuffer [[texture(10)]], sampler tex1dSmplr [[sampler(0)]], sampler tex2dSmplr [[sampler(1)]], sampler tex3dSmplr [[sampler(2)]], sampler texCubeSmplr [[sampler(3)]], sampler tex2dArraySmplr [[sampler(4)]], sampler texCubeArraySmplr [[sampler(5)]], sampler depth2dSmplr [[sampler(6)]], sampler depthCubeSmplr [[sampler(7)]], sampler depth2dArraySmplr [[sampler(8)]], sampler depthCubeArraySmplr [[sampler(9)]]) -{ - constant uint& tex1dSwzl = spvSwizzleConstants[0]; - constant uint& tex2dSwzl = spvSwizzleConstants[1]; - constant uint& tex3dSwzl = spvSwizzleConstants[2]; - constant uint& texCubeSwzl = spvSwizzleConstants[3]; - constant uint& tex2dArraySwzl = spvSwizzleConstants[4]; - constant uint& texCubeArraySwzl = spvSwizzleConstants[5]; - constant uint& depth2dSwzl = spvSwizzleConstants[6]; - constant uint& depthCubeSwzl = spvSwizzleConstants[7]; - constant uint& depth2dArraySwzl = spvSwizzleConstants[8]; - constant uint& depthCubeArraySwzl = spvSwizzleConstants[9]; - float4 c = spvTextureSwizzle(tex1d.sample(tex1dSmplr, 0.0), tex1dSwzl); - c = spvTextureSwizzle(tex2d.sample(tex2dSmplr, float2(0.0)), tex2dSwzl); - c = spvTextureSwizzle(tex3d.sample(tex3dSmplr, float3(0.0)), tex3dSwzl); - c = spvTextureSwizzle(texCube.sample(texCubeSmplr, float3(0.0)), texCubeSwzl); - c = spvTextureSwizzle(tex2dArray.sample(tex2dArraySmplr, float3(0.0).xy, uint(round(float3(0.0).z))), tex2dArraySwzl); - c = spvTextureSwizzle(texCubeArray.sample(texCubeArraySmplr, float4(0.0).xyz, uint(round(float4(0.0).w))), texCubeArraySwzl); - c.x = spvTextureSwizzle(depth2d.sample_compare(depth2dSmplr, float3(0.0, 0.0, 1.0).xy, 1.0), depth2dSwzl); - c.x = spvTextureSwizzle(depthCube.sample_compare(depthCubeSmplr, float4(0.0, 0.0, 0.0, 1.0).xyz, 1.0), depthCubeSwzl); - c.x = spvTextureSwizzle(depth2dArray.sample_compare(depth2dArraySmplr, float4(0.0, 0.0, 0.0, 1.0).xy, uint(round(float4(0.0, 0.0, 0.0, 1.0).z)), 1.0), depth2dArraySwzl); - c.x = spvTextureSwizzle(depthCubeArray.sample_compare(depthCubeArraySmplr, float4(0.0).xyz, uint(round(float4(0.0).w)), 1.0), depthCubeArraySwzl); - c = spvTextureSwizzle(tex1d.sample(tex1dSmplr, float2(0.0, 1.0).x / float2(0.0, 1.0).y), tex1dSwzl); - c = spvTextureSwizzle(tex2d.sample(tex2dSmplr, float3(0.0, 0.0, 1.0).xy / float3(0.0, 0.0, 1.0).z), tex2dSwzl); - c = spvTextureSwizzle(tex3d.sample(tex3dSmplr, float4(0.0, 0.0, 0.0, 1.0).xyz / float4(0.0, 0.0, 0.0, 1.0).w), tex3dSwzl); - float4 _100 = float4(0.0, 0.0, 1.0, 1.0); - _100.z = 1.0; - c.x = spvTextureSwizzle(depth2d.sample_compare(depth2dSmplr, _100.xy / _100.z, 1.0 / _100.z), depth2dSwzl); - c = spvTextureSwizzle(tex1d.sample(tex1dSmplr, 0.0), tex1dSwzl); - c = spvTextureSwizzle(tex2d.sample(tex2dSmplr, float2(0.0), level(0.0)), tex2dSwzl); - c = spvTextureSwizzle(tex3d.sample(tex3dSmplr, float3(0.0), level(0.0)), tex3dSwzl); - c = spvTextureSwizzle(texCube.sample(texCubeSmplr, float3(0.0), level(0.0)), texCubeSwzl); - c = spvTextureSwizzle(tex2dArray.sample(tex2dArraySmplr, float3(0.0).xy, uint(round(float3(0.0).z)), level(0.0)), tex2dArraySwzl); - c = spvTextureSwizzle(texCubeArray.sample(texCubeArraySmplr, float4(0.0).xyz, uint(round(float4(0.0).w)), level(0.0)), texCubeArraySwzl); - c.x = spvTextureSwizzle(depth2d.sample_compare(depth2dSmplr, float3(0.0, 0.0, 1.0).xy, 1.0, level(0.0)), depth2dSwzl); - c = spvTextureSwizzle(tex1d.sample(tex1dSmplr, float2(0.0, 1.0).x / float2(0.0, 1.0).y), tex1dSwzl); - c = spvTextureSwizzle(tex2d.sample(tex2dSmplr, float3(0.0, 0.0, 1.0).xy / float3(0.0, 0.0, 1.0).z, level(0.0)), tex2dSwzl); - c = spvTextureSwizzle(tex3d.sample(tex3dSmplr, float4(0.0, 0.0, 0.0, 1.0).xyz / float4(0.0, 0.0, 0.0, 1.0).w, level(0.0)), tex3dSwzl); - float4 _128 = float4(0.0, 0.0, 1.0, 1.0); - _128.z = 1.0; - c.x = spvTextureSwizzle(depth2d.sample_compare(depth2dSmplr, _128.xy / _128.z, 1.0 / _128.z, level(0.0)), depth2dSwzl); - c = spvTextureSwizzle(tex1d.read(uint(0)), tex1dSwzl); - c = spvTextureSwizzle(tex2d.read(uint2(int2(0)), 0), tex2dSwzl); - c = spvTextureSwizzle(tex3d.read(uint3(int3(0)), 0), tex3dSwzl); - c = spvTextureSwizzle(tex2dArray.read(uint2(int3(0).xy), uint(int3(0).z), 0), tex2dArraySwzl); - c = texBuffer.read(spvTexelBufferCoord(0)); - c = spvGatherSwizzle(tex2d, tex2dSmplr, tex2dSwzl, component::x, float2(0.0), int2(0)); - c = spvGatherSwizzle(texCube, texCubeSmplr, texCubeSwzl, component::y, float3(0.0)); - c = spvGatherSwizzle(tex2dArray, tex2dArraySmplr, tex2dArraySwzl, component::z, float3(0.0).xy, uint(round(float3(0.0).z)), int2(0)); - c = spvGatherSwizzle(texCubeArray, texCubeArraySmplr, texCubeArraySwzl, component::w, float4(0.0).xyz, uint(round(float4(0.0).w))); - c = spvGatherCompareSwizzle(depth2d, depth2dSmplr, depth2dSwzl, float2(0.0), 1.0); - c = spvGatherCompareSwizzle(depthCube, depthCubeSmplr, depthCubeSwzl, float3(0.0), 1.0); - c = spvGatherCompareSwizzle(depth2dArray, depth2dArraySmplr, depth2dArraySwzl, float3(0.0).xy, uint(round(float3(0.0).z)), 1.0); - c = spvGatherCompareSwizzle(depthCubeArray, depthCubeArraySmplr, depthCubeArraySwzl, float4(0.0).xyz, uint(round(float4(0.0).w)), 1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/ubo-array-multiple-structs-access-chain.argument.msl2.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/ubo-array-multiple-structs-access-chain.argument.msl2.frag deleted file mode 100644 index 7c60182078..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/ubo-array-multiple-structs-access-chain.argument.msl2.frag +++ /dev/null @@ -1,32 +0,0 @@ -#include -#include - -using namespace metal; - -struct Foo -{ - float4 v; -}; - -struct UBO -{ - Foo foo; -}; - -struct spvDescriptorSetBuffer0 -{ - constant UBO* ubos [[id(0)]][2]; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(constant spvDescriptorSetBuffer0& spvDescriptorSet0 [[buffer(0)]]) -{ - main0_out out = {}; - out.FragColor = spvDescriptorSet0.ubos[1]->foo.v; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/ubo-array-multiple-structs-access-chain.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/ubo-array-multiple-structs-access-chain.frag deleted file mode 100644 index 0b1ca91f54..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/ubo-array-multiple-structs-access-chain.frag +++ /dev/null @@ -1,33 +0,0 @@ -#include -#include - -using namespace metal; - -struct Foo -{ - float4 v; -}; - -struct UBO -{ - Foo foo; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(constant UBO* ubos_0 [[buffer(0)]], constant UBO* ubos_1 [[buffer(1)]]) -{ - constant UBO* ubos[] = - { - ubos_0, - ubos_1, - }; - - main0_out out = {}; - out.FragColor = ubos[1]->foo.v; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/ubo-offset-out-of-order.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/ubo-offset-out-of-order.frag deleted file mode 100644 index ce3291a28e..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/ubo-offset-out-of-order.frag +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - float4 v; - float4x4 m; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 vColor [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], constant UBO& _13 [[buffer(0)]]) -{ - main0_out out = {}; - out.FragColor = (_13.m * in.vColor) + _13.v; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/variables.zero-initialize.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/variables.zero-initialize.frag deleted file mode 100644 index 0720087a63..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/frag/variables.zero-initialize.frag +++ /dev/null @@ -1,40 +0,0 @@ -#include -#include - -using namespace metal; - -struct Foo -{ - int a; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 vColor [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - int uninit_function_int = {}; - int uninit_int = {}; - int4 uninit_vector = {}; - float4x4 uninit_matrix = {}; - Foo uninit_foo = {}; - if (in.vColor.x > 10.0) - { - uninit_function_int = 10; - } - else - { - uninit_function_int = 20; - } - out.FragColor = in.vColor; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/array-of-vec3.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/array-of-vec3.comp deleted file mode 100644 index 0dd52ab36d..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/array-of-vec3.comp +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - packed_float3 v[16]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO& _13 [[buffer(0)]]) -{ - _13.v[1] = float3(_13.v[0]); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/array-of-vec4.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/array-of-vec4.comp deleted file mode 100644 index 025cd42546..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/array-of-vec4.comp +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - float4 v[16]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO& _13 [[buffer(0)]]) -{ - _13.v[1] = _13.v[0]; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/isolated-scalar-access.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/isolated-scalar-access.comp deleted file mode 100644 index f1a3719158..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/isolated-scalar-access.comp +++ /dev/null @@ -1,26 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - float4 v; - float4x4 cm; - float4x4 rm; - packed_float3 v3; - float f; -}; - -kernel void main0(device SSBO& _12 [[buffer(0)]]) -{ - threadgroup float4 shared_vec4; - threadgroup float3 shared_vec3; - ((device float*)&_12.v)[0u] = 10.0; - _12.v3[1u] = 40.0; - ((device float*)&_12.cm[1])[2u] = 20.0; - ((device float*)&_12.rm[1u])[3] = 30.0; - ((threadgroup float*)&shared_vec4)[2u] = 40.0; - ((threadgroup float*)&shared_vec3)[1u] = 1.0; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/load-store-col-rows.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/load-store-col-rows.comp deleted file mode 100644 index 020ccae0da..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/load-store-col-rows.comp +++ /dev/null @@ -1,76 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -typedef packed_float3 packed_float2x3[2]; -typedef packed_float3 packed_rm_float3x2[2]; - -struct SSBO1 -{ - float2x4 a; - float2x4 a2; -}; - -struct SSBO2 -{ - packed_float2x3 b; - packed_rm_float3x2 b2; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -static inline __attribute__((always_inline)) -void load_store_column(device SSBO1& v_21) -{ - float2 u = v_21.a[0].xy; - float2 v = v_21.a[1].xy; - u += v; - (device float2&)v_21.a[0] = u; - (device float2&)v_21.a[1] = v; -} - -static inline __attribute__((always_inline)) -void load_store_row(device SSBO1& v_21) -{ - float2 u = float2(v_21.a2[0][0], v_21.a2[1][0]); - float2 v = float2(v_21.a2[0][1], v_21.a2[1][1]); - u += v; - ((device float*)&v_21.a2[0])[0] = u.x; - ((device float*)&v_21.a2[1])[0] = u.y; - ((device float*)&v_21.a2[0])[1] = v.x; - ((device float*)&v_21.a2[1])[1] = v.y; -} - -static inline __attribute__((always_inline)) -void load_store_packed_column(device SSBO2& v_58) -{ - float3 u = float3(v_58.b[0]); - float3 v = float3(v_58.b[1]); - u += v; - v_58.b[0] = u; - v_58.b[1] = v; -} - -static inline __attribute__((always_inline)) -void load_store_packed_row(device SSBO2& v_58) -{ - float2 u = float2(v_58.b2[0][0], v_58.b2[1][0]); - float2 v = float2(v_58.b2[0][1], v_58.b2[1][1]); - u += v; - ((device float*)&v_58.b2[0])[0] = u.x; - ((device float*)&v_58.b2[1])[0] = u.y; - ((device float*)&v_58.b2[0])[1] = v.x; - ((device float*)&v_58.b2[1])[1] = v.y; -} - -kernel void main0(device SSBO1& v_21 [[buffer(0)]], device SSBO2& v_58 [[buffer(1)]]) -{ - load_store_column(v_21); - load_store_row(v_21); - load_store_packed_column(v_58); - load_store_packed_row(v_58); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-2x2-scalar.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-2x2-scalar.comp deleted file mode 100644 index a00a679b64..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-2x2-scalar.comp +++ /dev/null @@ -1,86 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBOCol -{ - float2x2 col_major0; - float2x2 col_major1; -}; - -struct SSBORow -{ - float2x2 row_major0; - float2x2 row_major1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -static inline __attribute__((always_inline)) -void load_store_to_variable_col_major(device SSBOCol& v_29) -{ - float2x2 loaded = v_29.col_major0; - v_29.col_major1 = loaded; -} - -static inline __attribute__((always_inline)) -void load_store_to_variable_row_major(device SSBORow& v_41) -{ - float2x2 loaded = transpose(v_41.row_major0); - v_41.row_major0 = transpose(loaded); -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_col_major(device SSBOCol& v_29) -{ - v_29.col_major0 = v_29.col_major1; -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_row_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_41.row_major0 = transpose(v_29.col_major0); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_col_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0 = transpose(v_41.row_major0); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_row_major(device SSBORow& v_41) -{ - v_41.row_major0 = v_41.row_major1; -} - -static inline __attribute__((always_inline)) -void copy_columns(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0[1] = float2(v_41.row_major0[0][1], v_41.row_major0[1][1]); - v_41.row_major0[0][1] = v_29.col_major0[1].x; - v_41.row_major0[1][1] = v_29.col_major0[1].y; -} - -static inline __attribute__((always_inline)) -void copy_elements(device SSBOCol& v_29, device SSBORow& v_41) -{ - ((device float*)&v_29.col_major0[0])[1u] = ((device float*)&v_41.row_major0[1u])[0]; - ((device float*)&v_41.row_major0[1u])[0] = ((device float*)&v_29.col_major0[0])[1u]; -} - -kernel void main0(device SSBOCol& v_29 [[buffer(0)]], device SSBORow& v_41 [[buffer(1)]]) -{ - load_store_to_variable_col_major(v_29); - load_store_to_variable_row_major(v_41); - copy_col_major_to_col_major(v_29); - copy_col_major_to_row_major(v_29, v_41); - copy_row_major_to_col_major(v_29, v_41); - copy_row_major_to_row_major(v_41); - copy_columns(v_29, v_41); - copy_elements(v_29, v_41); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-2x2-std140.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-2x2-std140.comp deleted file mode 100644 index fd81f3a9ac..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-2x2-std140.comp +++ /dev/null @@ -1,92 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBOCol -{ - float2x4 col_major0; - float2x4 col_major1; -}; - -struct SSBORow -{ - float2x4 row_major0; - float2x4 row_major1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -static inline __attribute__((always_inline)) -void load_store_to_variable_col_major(device SSBOCol& v_29) -{ - float2x2 loaded = float2x2(v_29.col_major0[0].xy, v_29.col_major0[1].xy); - (device float2&)v_29.col_major1[0] = loaded[0]; - (device float2&)v_29.col_major1[1] = loaded[1]; -} - -static inline __attribute__((always_inline)) -void load_store_to_variable_row_major(device SSBORow& v_41) -{ - float2x2 loaded = transpose(float2x2(v_41.row_major0[0].xy, v_41.row_major0[1].xy)); - (device float2&)v_41.row_major0[0] = float2(loaded[0][0], loaded[1][0]); - (device float2&)v_41.row_major0[1] = float2(loaded[0][1], loaded[1][1]); -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_col_major(device SSBOCol& v_29) -{ - (device float2&)v_29.col_major0[0] = float2x2(v_29.col_major1[0].xy, v_29.col_major1[1].xy)[0]; - (device float2&)v_29.col_major0[1] = float2x2(v_29.col_major1[0].xy, v_29.col_major1[1].xy)[1]; -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_row_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - (device float2&)v_41.row_major0[0] = float2(float2x2(v_29.col_major0[0].xy, v_29.col_major0[1].xy)[0][0], float2x2(v_29.col_major0[0].xy, v_29.col_major0[1].xy)[1][0]); - (device float2&)v_41.row_major0[1] = float2(float2x2(v_29.col_major0[0].xy, v_29.col_major0[1].xy)[0][1], float2x2(v_29.col_major0[0].xy, v_29.col_major0[1].xy)[1][1]); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_col_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - (device float2&)v_29.col_major0[0] = float2(float2x2(v_41.row_major0[0].xy, v_41.row_major0[1].xy)[0][0], float2x2(v_41.row_major0[0].xy, v_41.row_major0[1].xy)[1][0]); - (device float2&)v_29.col_major0[1] = float2(float2x2(v_41.row_major0[0].xy, v_41.row_major0[1].xy)[0][1], float2x2(v_41.row_major0[0].xy, v_41.row_major0[1].xy)[1][1]); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_row_major(device SSBORow& v_41) -{ - (device float2&)v_41.row_major0[0] = float2x2(v_41.row_major1[0].xy, v_41.row_major1[1].xy)[0]; - (device float2&)v_41.row_major0[1] = float2x2(v_41.row_major1[0].xy, v_41.row_major1[1].xy)[1]; -} - -static inline __attribute__((always_inline)) -void copy_columns(device SSBOCol& v_29, device SSBORow& v_41) -{ - (device float2&)v_29.col_major0[1] = float2(v_41.row_major0[0][1], v_41.row_major0[1][1]); - ((device float*)&v_41.row_major0[0])[1] = v_29.col_major0[1].x; - ((device float*)&v_41.row_major0[1])[1] = v_29.col_major0[1].y; -} - -static inline __attribute__((always_inline)) -void copy_elements(device SSBOCol& v_29, device SSBORow& v_41) -{ - ((device float*)&v_29.col_major0[0])[1u] = ((device float*)&v_41.row_major0[1u])[0]; - ((device float*)&v_41.row_major0[1u])[0] = ((device float*)&v_29.col_major0[0])[1u]; -} - -kernel void main0(device SSBOCol& v_29 [[buffer(0)]], device SSBORow& v_41 [[buffer(1)]]) -{ - load_store_to_variable_col_major(v_29); - load_store_to_variable_row_major(v_41); - copy_col_major_to_col_major(v_29); - copy_col_major_to_row_major(v_29, v_41); - copy_row_major_to_col_major(v_29, v_41); - copy_row_major_to_row_major(v_41); - copy_columns(v_29, v_41); - copy_elements(v_29, v_41); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-2x2-std430.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-2x2-std430.comp deleted file mode 100644 index a00a679b64..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-2x2-std430.comp +++ /dev/null @@ -1,86 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBOCol -{ - float2x2 col_major0; - float2x2 col_major1; -}; - -struct SSBORow -{ - float2x2 row_major0; - float2x2 row_major1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -static inline __attribute__((always_inline)) -void load_store_to_variable_col_major(device SSBOCol& v_29) -{ - float2x2 loaded = v_29.col_major0; - v_29.col_major1 = loaded; -} - -static inline __attribute__((always_inline)) -void load_store_to_variable_row_major(device SSBORow& v_41) -{ - float2x2 loaded = transpose(v_41.row_major0); - v_41.row_major0 = transpose(loaded); -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_col_major(device SSBOCol& v_29) -{ - v_29.col_major0 = v_29.col_major1; -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_row_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_41.row_major0 = transpose(v_29.col_major0); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_col_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0 = transpose(v_41.row_major0); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_row_major(device SSBORow& v_41) -{ - v_41.row_major0 = v_41.row_major1; -} - -static inline __attribute__((always_inline)) -void copy_columns(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0[1] = float2(v_41.row_major0[0][1], v_41.row_major0[1][1]); - v_41.row_major0[0][1] = v_29.col_major0[1].x; - v_41.row_major0[1][1] = v_29.col_major0[1].y; -} - -static inline __attribute__((always_inline)) -void copy_elements(device SSBOCol& v_29, device SSBORow& v_41) -{ - ((device float*)&v_29.col_major0[0])[1u] = ((device float*)&v_41.row_major0[1u])[0]; - ((device float*)&v_41.row_major0[1u])[0] = ((device float*)&v_29.col_major0[0])[1u]; -} - -kernel void main0(device SSBOCol& v_29 [[buffer(0)]], device SSBORow& v_41 [[buffer(1)]]) -{ - load_store_to_variable_col_major(v_29); - load_store_to_variable_row_major(v_41); - copy_col_major_to_col_major(v_29); - copy_col_major_to_row_major(v_29, v_41); - copy_row_major_to_col_major(v_29, v_41); - copy_row_major_to_row_major(v_41); - copy_columns(v_29, v_41); - copy_elements(v_29, v_41); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-2x3-scalar.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-2x3-scalar.comp deleted file mode 100644 index 963ec39dc8..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-2x3-scalar.comp +++ /dev/null @@ -1,92 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -typedef packed_float3 packed_float2x3[2]; - -struct SSBOCol -{ - packed_float2x3 col_major0; - packed_float2x3 col_major1; -}; - -struct SSBORow -{ - float3x2 row_major0; - float3x2 row_major1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -static inline __attribute__((always_inline)) -void load_store_to_variable_col_major(device SSBOCol& v_29) -{ - float2x3 loaded = float2x3(float3(v_29.col_major0[0]), float3(v_29.col_major0[1])); - v_29.col_major1[0] = loaded[0]; - v_29.col_major1[1] = loaded[1]; -} - -static inline __attribute__((always_inline)) -void load_store_to_variable_row_major(device SSBORow& v_41) -{ - float2x3 loaded = transpose(v_41.row_major0); - v_41.row_major0 = transpose(loaded); -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_col_major(device SSBOCol& v_29) -{ - v_29.col_major0[0] = float2x3(float3(v_29.col_major1[0]), float3(v_29.col_major1[1]))[0]; - v_29.col_major0[1] = float2x3(float3(v_29.col_major1[0]), float3(v_29.col_major1[1]))[1]; -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_row_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_41.row_major0 = transpose(float2x3(float3(v_29.col_major0[0]), float3(v_29.col_major0[1]))); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_col_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0[0] = float3(v_41.row_major0[0][0], v_41.row_major0[1][0], v_41.row_major0[2][0]); - v_29.col_major0[1] = float3(v_41.row_major0[0][1], v_41.row_major0[1][1], v_41.row_major0[2][1]); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_row_major(device SSBORow& v_41) -{ - v_41.row_major0 = v_41.row_major1; -} - -static inline __attribute__((always_inline)) -void copy_columns(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0[1] = float3(v_41.row_major0[0][1], v_41.row_major0[1][1], v_41.row_major0[2][1]); - v_41.row_major0[0][1] = v_29.col_major0[1][0]; - v_41.row_major0[1][1] = v_29.col_major0[1][1]; - v_41.row_major0[2][1] = v_29.col_major0[1][2]; -} - -static inline __attribute__((always_inline)) -void copy_elements(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0[0][1u] = ((device float*)&v_41.row_major0[1u])[0]; - ((device float*)&v_41.row_major0[1u])[0] = v_29.col_major0[0][1u]; -} - -kernel void main0(device SSBOCol& v_29 [[buffer(0)]], device SSBORow& v_41 [[buffer(1)]]) -{ - load_store_to_variable_col_major(v_29); - load_store_to_variable_row_major(v_41); - copy_col_major_to_col_major(v_29); - copy_col_major_to_row_major(v_29, v_41); - copy_row_major_to_col_major(v_29, v_41); - copy_row_major_to_row_major(v_41); - copy_columns(v_29, v_41); - copy_elements(v_29, v_41); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-2x3-std140.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-2x3-std140.comp deleted file mode 100644 index d20a4a7da8..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-2x3-std140.comp +++ /dev/null @@ -1,93 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBOCol -{ - float2x3 col_major0; - float2x3 col_major1; -}; - -struct SSBORow -{ - float3x4 row_major0; - float3x4 row_major1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -static inline __attribute__((always_inline)) -void load_store_to_variable_col_major(device SSBOCol& v_29) -{ - float2x3 loaded = v_29.col_major0; - v_29.col_major1 = loaded; -} - -static inline __attribute__((always_inline)) -void load_store_to_variable_row_major(device SSBORow& v_41) -{ - float2x3 loaded = transpose(float3x2(v_41.row_major0[0].xy, v_41.row_major0[1].xy, v_41.row_major0[2].xy)); - (device float2&)v_41.row_major0[0] = float2(loaded[0][0], loaded[1][0]); - (device float2&)v_41.row_major0[1] = float2(loaded[0][1], loaded[1][1]); - (device float2&)v_41.row_major0[2] = float2(loaded[0][2], loaded[1][2]); -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_col_major(device SSBOCol& v_29) -{ - v_29.col_major0 = v_29.col_major1; -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_row_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - (device float2&)v_41.row_major0[0] = float2(v_29.col_major0[0][0], v_29.col_major0[1][0]); - (device float2&)v_41.row_major0[1] = float2(v_29.col_major0[0][1], v_29.col_major0[1][1]); - (device float2&)v_41.row_major0[2] = float2(v_29.col_major0[0][2], v_29.col_major0[1][2]); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_col_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0 = transpose(float3x2(v_41.row_major0[0].xy, v_41.row_major0[1].xy, v_41.row_major0[2].xy)); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_row_major(device SSBORow& v_41) -{ - (device float2&)v_41.row_major0[0] = float3x2(v_41.row_major1[0].xy, v_41.row_major1[1].xy, v_41.row_major1[2].xy)[0]; - (device float2&)v_41.row_major0[1] = float3x2(v_41.row_major1[0].xy, v_41.row_major1[1].xy, v_41.row_major1[2].xy)[1]; - (device float2&)v_41.row_major0[2] = float3x2(v_41.row_major1[0].xy, v_41.row_major1[1].xy, v_41.row_major1[2].xy)[2]; -} - -static inline __attribute__((always_inline)) -void copy_columns(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0[1] = float3(v_41.row_major0[0][1], v_41.row_major0[1][1], v_41.row_major0[2][1]); - ((device float*)&v_41.row_major0[0])[1] = v_29.col_major0[1].x; - ((device float*)&v_41.row_major0[1])[1] = v_29.col_major0[1].y; - ((device float*)&v_41.row_major0[2])[1] = v_29.col_major0[1].z; -} - -static inline __attribute__((always_inline)) -void copy_elements(device SSBOCol& v_29, device SSBORow& v_41) -{ - ((device float*)&v_29.col_major0[0])[1u] = ((device float*)&v_41.row_major0[1u])[0]; - ((device float*)&v_41.row_major0[1u])[0] = ((device float*)&v_29.col_major0[0])[1u]; -} - -kernel void main0(device SSBOCol& v_29 [[buffer(0)]], device SSBORow& v_41 [[buffer(1)]]) -{ - load_store_to_variable_col_major(v_29); - load_store_to_variable_row_major(v_41); - copy_col_major_to_col_major(v_29); - copy_col_major_to_row_major(v_29, v_41); - copy_row_major_to_col_major(v_29, v_41); - copy_row_major_to_row_major(v_41); - copy_columns(v_29, v_41); - copy_elements(v_29, v_41); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-2x3-std430.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-2x3-std430.comp deleted file mode 100644 index 240111b9d2..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-2x3-std430.comp +++ /dev/null @@ -1,87 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBOCol -{ - float2x3 col_major0; - float2x3 col_major1; -}; - -struct SSBORow -{ - float3x2 row_major0; - float3x2 row_major1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -static inline __attribute__((always_inline)) -void load_store_to_variable_col_major(device SSBOCol& v_29) -{ - float2x3 loaded = v_29.col_major0; - v_29.col_major1 = loaded; -} - -static inline __attribute__((always_inline)) -void load_store_to_variable_row_major(device SSBORow& v_41) -{ - float2x3 loaded = transpose(v_41.row_major0); - v_41.row_major0 = transpose(loaded); -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_col_major(device SSBOCol& v_29) -{ - v_29.col_major0 = v_29.col_major1; -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_row_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_41.row_major0 = transpose(v_29.col_major0); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_col_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0 = transpose(v_41.row_major0); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_row_major(device SSBORow& v_41) -{ - v_41.row_major0 = v_41.row_major1; -} - -static inline __attribute__((always_inline)) -void copy_columns(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0[1] = float3(v_41.row_major0[0][1], v_41.row_major0[1][1], v_41.row_major0[2][1]); - v_41.row_major0[0][1] = v_29.col_major0[1].x; - v_41.row_major0[1][1] = v_29.col_major0[1].y; - v_41.row_major0[2][1] = v_29.col_major0[1].z; -} - -static inline __attribute__((always_inline)) -void copy_elements(device SSBOCol& v_29, device SSBORow& v_41) -{ - ((device float*)&v_29.col_major0[0])[1u] = ((device float*)&v_41.row_major0[1u])[0]; - ((device float*)&v_41.row_major0[1u])[0] = ((device float*)&v_29.col_major0[0])[1u]; -} - -kernel void main0(device SSBOCol& v_29 [[buffer(0)]], device SSBORow& v_41 [[buffer(1)]]) -{ - load_store_to_variable_col_major(v_29); - load_store_to_variable_row_major(v_41); - copy_col_major_to_col_major(v_29); - copy_col_major_to_row_major(v_29, v_41); - copy_row_major_to_col_major(v_29, v_41); - copy_row_major_to_row_major(v_41); - copy_columns(v_29, v_41); - copy_elements(v_29, v_41); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-2x4-scalar.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-2x4-scalar.comp deleted file mode 100644 index d9e8cca927..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-2x4-scalar.comp +++ /dev/null @@ -1,88 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBOCol -{ - float2x4 col_major0; - float2x4 col_major1; -}; - -struct SSBORow -{ - float4x2 row_major0; - float4x2 row_major1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -static inline __attribute__((always_inline)) -void load_store_to_variable_col_major(device SSBOCol& v_29) -{ - float2x4 loaded = v_29.col_major0; - v_29.col_major1 = loaded; -} - -static inline __attribute__((always_inline)) -void load_store_to_variable_row_major(device SSBORow& v_41) -{ - float2x4 loaded = transpose(v_41.row_major0); - v_41.row_major0 = transpose(loaded); -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_col_major(device SSBOCol& v_29) -{ - v_29.col_major0 = v_29.col_major1; -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_row_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_41.row_major0 = transpose(v_29.col_major0); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_col_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0 = transpose(v_41.row_major0); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_row_major(device SSBORow& v_41) -{ - v_41.row_major0 = v_41.row_major1; -} - -static inline __attribute__((always_inline)) -void copy_columns(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0[1] = float4(v_41.row_major0[0][1], v_41.row_major0[1][1], v_41.row_major0[2][1], v_41.row_major0[3][1]); - v_41.row_major0[0][1] = v_29.col_major0[1].x; - v_41.row_major0[1][1] = v_29.col_major0[1].y; - v_41.row_major0[2][1] = v_29.col_major0[1].z; - v_41.row_major0[3][1] = v_29.col_major0[1].w; -} - -static inline __attribute__((always_inline)) -void copy_elements(device SSBOCol& v_29, device SSBORow& v_41) -{ - ((device float*)&v_29.col_major0[0])[1u] = ((device float*)&v_41.row_major0[1u])[0]; - ((device float*)&v_41.row_major0[1u])[0] = ((device float*)&v_29.col_major0[0])[1u]; -} - -kernel void main0(device SSBOCol& v_29 [[buffer(0)]], device SSBORow& v_41 [[buffer(1)]]) -{ - load_store_to_variable_col_major(v_29); - load_store_to_variable_row_major(v_41); - copy_col_major_to_col_major(v_29); - copy_col_major_to_row_major(v_29, v_41); - copy_row_major_to_col_major(v_29, v_41); - copy_row_major_to_row_major(v_41); - copy_columns(v_29, v_41); - copy_elements(v_29, v_41); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-2x4-std140.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-2x4-std140.comp deleted file mode 100644 index e1adc222a0..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-2x4-std140.comp +++ /dev/null @@ -1,97 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBOCol -{ - float2x4 col_major0; - float2x4 col_major1; -}; - -struct SSBORow -{ - float4x4 row_major0; - float4x4 row_major1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -static inline __attribute__((always_inline)) -void load_store_to_variable_col_major(device SSBOCol& v_29) -{ - float2x4 loaded = v_29.col_major0; - v_29.col_major1 = loaded; -} - -static inline __attribute__((always_inline)) -void load_store_to_variable_row_major(device SSBORow& v_41) -{ - float2x4 loaded = transpose(float4x2(v_41.row_major0[0].xy, v_41.row_major0[1].xy, v_41.row_major0[2].xy, v_41.row_major0[3].xy)); - (device float2&)v_41.row_major0[0] = float2(loaded[0][0], loaded[1][0]); - (device float2&)v_41.row_major0[1] = float2(loaded[0][1], loaded[1][1]); - (device float2&)v_41.row_major0[2] = float2(loaded[0][2], loaded[1][2]); - (device float2&)v_41.row_major0[3] = float2(loaded[0][3], loaded[1][3]); -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_col_major(device SSBOCol& v_29) -{ - v_29.col_major0 = v_29.col_major1; -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_row_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - (device float2&)v_41.row_major0[0] = float2(v_29.col_major0[0][0], v_29.col_major0[1][0]); - (device float2&)v_41.row_major0[1] = float2(v_29.col_major0[0][1], v_29.col_major0[1][1]); - (device float2&)v_41.row_major0[2] = float2(v_29.col_major0[0][2], v_29.col_major0[1][2]); - (device float2&)v_41.row_major0[3] = float2(v_29.col_major0[0][3], v_29.col_major0[1][3]); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_col_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0 = transpose(float4x2(v_41.row_major0[0].xy, v_41.row_major0[1].xy, v_41.row_major0[2].xy, v_41.row_major0[3].xy)); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_row_major(device SSBORow& v_41) -{ - (device float2&)v_41.row_major0[0] = float4x2(v_41.row_major1[0].xy, v_41.row_major1[1].xy, v_41.row_major1[2].xy, v_41.row_major1[3].xy)[0]; - (device float2&)v_41.row_major0[1] = float4x2(v_41.row_major1[0].xy, v_41.row_major1[1].xy, v_41.row_major1[2].xy, v_41.row_major1[3].xy)[1]; - (device float2&)v_41.row_major0[2] = float4x2(v_41.row_major1[0].xy, v_41.row_major1[1].xy, v_41.row_major1[2].xy, v_41.row_major1[3].xy)[2]; - (device float2&)v_41.row_major0[3] = float4x2(v_41.row_major1[0].xy, v_41.row_major1[1].xy, v_41.row_major1[2].xy, v_41.row_major1[3].xy)[3]; -} - -static inline __attribute__((always_inline)) -void copy_columns(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0[1] = float4(v_41.row_major0[0][1], v_41.row_major0[1][1], v_41.row_major0[2][1], v_41.row_major0[3][1]); - ((device float*)&v_41.row_major0[0])[1] = v_29.col_major0[1].x; - ((device float*)&v_41.row_major0[1])[1] = v_29.col_major0[1].y; - ((device float*)&v_41.row_major0[2])[1] = v_29.col_major0[1].z; - ((device float*)&v_41.row_major0[3])[1] = v_29.col_major0[1].w; -} - -static inline __attribute__((always_inline)) -void copy_elements(device SSBOCol& v_29, device SSBORow& v_41) -{ - ((device float*)&v_29.col_major0[0])[1u] = ((device float*)&v_41.row_major0[1u])[0]; - ((device float*)&v_41.row_major0[1u])[0] = ((device float*)&v_29.col_major0[0])[1u]; -} - -kernel void main0(device SSBOCol& v_29 [[buffer(0)]], device SSBORow& v_41 [[buffer(1)]]) -{ - load_store_to_variable_col_major(v_29); - load_store_to_variable_row_major(v_41); - copy_col_major_to_col_major(v_29); - copy_col_major_to_row_major(v_29, v_41); - copy_row_major_to_col_major(v_29, v_41); - copy_row_major_to_row_major(v_41); - copy_columns(v_29, v_41); - copy_elements(v_29, v_41); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-2x4-std430.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-2x4-std430.comp deleted file mode 100644 index d9e8cca927..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-2x4-std430.comp +++ /dev/null @@ -1,88 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBOCol -{ - float2x4 col_major0; - float2x4 col_major1; -}; - -struct SSBORow -{ - float4x2 row_major0; - float4x2 row_major1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -static inline __attribute__((always_inline)) -void load_store_to_variable_col_major(device SSBOCol& v_29) -{ - float2x4 loaded = v_29.col_major0; - v_29.col_major1 = loaded; -} - -static inline __attribute__((always_inline)) -void load_store_to_variable_row_major(device SSBORow& v_41) -{ - float2x4 loaded = transpose(v_41.row_major0); - v_41.row_major0 = transpose(loaded); -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_col_major(device SSBOCol& v_29) -{ - v_29.col_major0 = v_29.col_major1; -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_row_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_41.row_major0 = transpose(v_29.col_major0); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_col_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0 = transpose(v_41.row_major0); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_row_major(device SSBORow& v_41) -{ - v_41.row_major0 = v_41.row_major1; -} - -static inline __attribute__((always_inline)) -void copy_columns(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0[1] = float4(v_41.row_major0[0][1], v_41.row_major0[1][1], v_41.row_major0[2][1], v_41.row_major0[3][1]); - v_41.row_major0[0][1] = v_29.col_major0[1].x; - v_41.row_major0[1][1] = v_29.col_major0[1].y; - v_41.row_major0[2][1] = v_29.col_major0[1].z; - v_41.row_major0[3][1] = v_29.col_major0[1].w; -} - -static inline __attribute__((always_inline)) -void copy_elements(device SSBOCol& v_29, device SSBORow& v_41) -{ - ((device float*)&v_29.col_major0[0])[1u] = ((device float*)&v_41.row_major0[1u])[0]; - ((device float*)&v_41.row_major0[1u])[0] = ((device float*)&v_29.col_major0[0])[1u]; -} - -kernel void main0(device SSBOCol& v_29 [[buffer(0)]], device SSBORow& v_41 [[buffer(1)]]) -{ - load_store_to_variable_col_major(v_29); - load_store_to_variable_row_major(v_41); - copy_col_major_to_col_major(v_29); - copy_col_major_to_row_major(v_29, v_41); - copy_row_major_to_col_major(v_29, v_41); - copy_row_major_to_row_major(v_41); - copy_columns(v_29, v_41); - copy_elements(v_29, v_41); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-3x2-scalar.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-3x2-scalar.comp deleted file mode 100644 index 86be094fbe..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-3x2-scalar.comp +++ /dev/null @@ -1,91 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -typedef packed_float3 packed_rm_float3x2[2]; - -struct SSBOCol -{ - float3x2 col_major0; - float3x2 col_major1; -}; - -struct SSBORow -{ - packed_rm_float3x2 row_major0; - packed_rm_float3x2 row_major1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -static inline __attribute__((always_inline)) -void load_store_to_variable_col_major(device SSBOCol& v_29) -{ - float3x2 loaded = v_29.col_major0; - v_29.col_major1 = loaded; -} - -static inline __attribute__((always_inline)) -void load_store_to_variable_row_major(device SSBORow& v_41) -{ - float3x2 loaded = transpose(float2x3(float3(v_41.row_major0[0]), float3(v_41.row_major0[1]))); - v_41.row_major0[0] = float3(loaded[0][0], loaded[1][0], loaded[2][0]); - v_41.row_major0[1] = float3(loaded[0][1], loaded[1][1], loaded[2][1]); -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_col_major(device SSBOCol& v_29) -{ - v_29.col_major0 = v_29.col_major1; -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_row_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_41.row_major0[0] = float3(v_29.col_major0[0][0], v_29.col_major0[1][0], v_29.col_major0[2][0]); - v_41.row_major0[1] = float3(v_29.col_major0[0][1], v_29.col_major0[1][1], v_29.col_major0[2][1]); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_col_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0 = transpose(float2x3(float3(v_41.row_major0[0]), float3(v_41.row_major0[1]))); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_row_major(device SSBORow& v_41) -{ - v_41.row_major0[0] = float2x3(float3(v_41.row_major1[0]), float3(v_41.row_major1[1]))[0]; - v_41.row_major0[1] = float2x3(float3(v_41.row_major1[0]), float3(v_41.row_major1[1]))[1]; -} - -static inline __attribute__((always_inline)) -void copy_columns(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0[1] = float2(v_41.row_major0[0][1], v_41.row_major0[1][1]); - ((device float*)&v_41.row_major0[0])[1] = v_29.col_major0[1].x; - ((device float*)&v_41.row_major0[1])[1] = v_29.col_major0[1].y; -} - -static inline __attribute__((always_inline)) -void copy_elements(device SSBOCol& v_29, device SSBORow& v_41) -{ - ((device float*)&v_29.col_major0[0])[1u] = v_41.row_major0[1u][0]; - v_41.row_major0[1u][0] = ((device float*)&v_29.col_major0[0])[1u]; -} - -kernel void main0(device SSBOCol& v_29 [[buffer(0)]], device SSBORow& v_41 [[buffer(1)]]) -{ - load_store_to_variable_col_major(v_29); - load_store_to_variable_row_major(v_41); - copy_col_major_to_col_major(v_29); - copy_col_major_to_row_major(v_29, v_41); - copy_row_major_to_col_major(v_29, v_41); - copy_row_major_to_row_major(v_41); - copy_columns(v_29, v_41); - copy_elements(v_29, v_41); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-3x2-std140.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-3x2-std140.comp deleted file mode 100644 index 9144272f6d..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-3x2-std140.comp +++ /dev/null @@ -1,92 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBOCol -{ - float3x4 col_major0; - float3x4 col_major1; -}; - -struct SSBORow -{ - float2x3 row_major0; - float2x3 row_major1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -static inline __attribute__((always_inline)) -void load_store_to_variable_col_major(device SSBOCol& v_29) -{ - float3x2 loaded = float3x2(v_29.col_major0[0].xy, v_29.col_major0[1].xy, v_29.col_major0[2].xy); - (device float2&)v_29.col_major1[0] = loaded[0]; - (device float2&)v_29.col_major1[1] = loaded[1]; - (device float2&)v_29.col_major1[2] = loaded[2]; -} - -static inline __attribute__((always_inline)) -void load_store_to_variable_row_major(device SSBORow& v_41) -{ - float3x2 loaded = transpose(v_41.row_major0); - v_41.row_major0 = transpose(loaded); -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_col_major(device SSBOCol& v_29) -{ - (device float2&)v_29.col_major0[0] = float3x2(v_29.col_major1[0].xy, v_29.col_major1[1].xy, v_29.col_major1[2].xy)[0]; - (device float2&)v_29.col_major0[1] = float3x2(v_29.col_major1[0].xy, v_29.col_major1[1].xy, v_29.col_major1[2].xy)[1]; - (device float2&)v_29.col_major0[2] = float3x2(v_29.col_major1[0].xy, v_29.col_major1[1].xy, v_29.col_major1[2].xy)[2]; -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_row_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_41.row_major0 = transpose(float3x2(v_29.col_major0[0].xy, v_29.col_major0[1].xy, v_29.col_major0[2].xy)); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_col_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - (device float2&)v_29.col_major0[0] = float2(v_41.row_major0[0][0], v_41.row_major0[1][0]); - (device float2&)v_29.col_major0[1] = float2(v_41.row_major0[0][1], v_41.row_major0[1][1]); - (device float2&)v_29.col_major0[2] = float2(v_41.row_major0[0][2], v_41.row_major0[1][2]); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_row_major(device SSBORow& v_41) -{ - v_41.row_major0 = v_41.row_major1; -} - -static inline __attribute__((always_inline)) -void copy_columns(device SSBOCol& v_29, device SSBORow& v_41) -{ - (device float2&)v_29.col_major0[1] = float2(v_41.row_major0[0][1], v_41.row_major0[1][1]); - v_41.row_major0[0][1] = v_29.col_major0[1].x; - v_41.row_major0[1][1] = v_29.col_major0[1].y; -} - -static inline __attribute__((always_inline)) -void copy_elements(device SSBOCol& v_29, device SSBORow& v_41) -{ - ((device float*)&v_29.col_major0[0])[1u] = ((device float*)&v_41.row_major0[1u])[0]; - ((device float*)&v_41.row_major0[1u])[0] = ((device float*)&v_29.col_major0[0])[1u]; -} - -kernel void main0(device SSBOCol& v_29 [[buffer(0)]], device SSBORow& v_41 [[buffer(1)]]) -{ - load_store_to_variable_col_major(v_29); - load_store_to_variable_row_major(v_41); - copy_col_major_to_col_major(v_29); - copy_col_major_to_row_major(v_29, v_41); - copy_row_major_to_col_major(v_29, v_41); - copy_row_major_to_row_major(v_41); - copy_columns(v_29, v_41); - copy_elements(v_29, v_41); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-3x2-std430.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-3x2-std430.comp deleted file mode 100644 index 3266e6c33f..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-3x2-std430.comp +++ /dev/null @@ -1,86 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBOCol -{ - float3x2 col_major0; - float3x2 col_major1; -}; - -struct SSBORow -{ - float2x3 row_major0; - float2x3 row_major1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -static inline __attribute__((always_inline)) -void load_store_to_variable_col_major(device SSBOCol& v_29) -{ - float3x2 loaded = v_29.col_major0; - v_29.col_major1 = loaded; -} - -static inline __attribute__((always_inline)) -void load_store_to_variable_row_major(device SSBORow& v_41) -{ - float3x2 loaded = transpose(v_41.row_major0); - v_41.row_major0 = transpose(loaded); -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_col_major(device SSBOCol& v_29) -{ - v_29.col_major0 = v_29.col_major1; -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_row_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_41.row_major0 = transpose(v_29.col_major0); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_col_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0 = transpose(v_41.row_major0); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_row_major(device SSBORow& v_41) -{ - v_41.row_major0 = v_41.row_major1; -} - -static inline __attribute__((always_inline)) -void copy_columns(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0[1] = float2(v_41.row_major0[0][1], v_41.row_major0[1][1]); - v_41.row_major0[0][1] = v_29.col_major0[1].x; - v_41.row_major0[1][1] = v_29.col_major0[1].y; -} - -static inline __attribute__((always_inline)) -void copy_elements(device SSBOCol& v_29, device SSBORow& v_41) -{ - ((device float*)&v_29.col_major0[0])[1u] = ((device float*)&v_41.row_major0[1u])[0]; - ((device float*)&v_41.row_major0[1u])[0] = ((device float*)&v_29.col_major0[0])[1u]; -} - -kernel void main0(device SSBOCol& v_29 [[buffer(0)]], device SSBORow& v_41 [[buffer(1)]]) -{ - load_store_to_variable_col_major(v_29); - load_store_to_variable_row_major(v_41); - copy_col_major_to_col_major(v_29); - copy_col_major_to_row_major(v_29, v_41); - copy_row_major_to_col_major(v_29, v_41); - copy_row_major_to_row_major(v_41); - copy_columns(v_29, v_41); - copy_elements(v_29, v_41); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-3x3-scalar.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-3x3-scalar.comp deleted file mode 100644 index 593a013336..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-3x3-scalar.comp +++ /dev/null @@ -1,102 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -typedef packed_float3 packed_float3x3[3]; -typedef packed_float3 packed_rm_float3x3[3]; - -struct SSBOCol -{ - packed_float3x3 col_major0; - packed_float3x3 col_major1; -}; - -struct SSBORow -{ - packed_rm_float3x3 row_major0; - packed_rm_float3x3 row_major1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -static inline __attribute__((always_inline)) -void load_store_to_variable_col_major(device SSBOCol& v_29) -{ - float3x3 loaded = float3x3(float3(v_29.col_major0[0]), float3(v_29.col_major0[1]), float3(v_29.col_major0[2])); - v_29.col_major1[0] = loaded[0]; - v_29.col_major1[1] = loaded[1]; - v_29.col_major1[2] = loaded[2]; -} - -static inline __attribute__((always_inline)) -void load_store_to_variable_row_major(device SSBORow& v_41) -{ - float3x3 loaded = transpose(float3x3(float3(v_41.row_major0[0]), float3(v_41.row_major0[1]), float3(v_41.row_major0[2]))); - v_41.row_major0[0] = float3(loaded[0][0], loaded[1][0], loaded[2][0]); - v_41.row_major0[1] = float3(loaded[0][1], loaded[1][1], loaded[2][1]); - v_41.row_major0[2] = float3(loaded[0][2], loaded[1][2], loaded[2][2]); -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_col_major(device SSBOCol& v_29) -{ - v_29.col_major0[0] = float3x3(float3(v_29.col_major1[0]), float3(v_29.col_major1[1]), float3(v_29.col_major1[2]))[0]; - v_29.col_major0[1] = float3x3(float3(v_29.col_major1[0]), float3(v_29.col_major1[1]), float3(v_29.col_major1[2]))[1]; - v_29.col_major0[2] = float3x3(float3(v_29.col_major1[0]), float3(v_29.col_major1[1]), float3(v_29.col_major1[2]))[2]; -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_row_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_41.row_major0[0] = float3(float3x3(float3(v_29.col_major0[0]), float3(v_29.col_major0[1]), float3(v_29.col_major0[2]))[0][0], float3x3(float3(v_29.col_major0[0]), float3(v_29.col_major0[1]), float3(v_29.col_major0[2]))[1][0], float3x3(float3(v_29.col_major0[0]), float3(v_29.col_major0[1]), float3(v_29.col_major0[2]))[2][0]); - v_41.row_major0[1] = float3(float3x3(float3(v_29.col_major0[0]), float3(v_29.col_major0[1]), float3(v_29.col_major0[2]))[0][1], float3x3(float3(v_29.col_major0[0]), float3(v_29.col_major0[1]), float3(v_29.col_major0[2]))[1][1], float3x3(float3(v_29.col_major0[0]), float3(v_29.col_major0[1]), float3(v_29.col_major0[2]))[2][1]); - v_41.row_major0[2] = float3(float3x3(float3(v_29.col_major0[0]), float3(v_29.col_major0[1]), float3(v_29.col_major0[2]))[0][2], float3x3(float3(v_29.col_major0[0]), float3(v_29.col_major0[1]), float3(v_29.col_major0[2]))[1][2], float3x3(float3(v_29.col_major0[0]), float3(v_29.col_major0[1]), float3(v_29.col_major0[2]))[2][2]); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_col_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0[0] = float3(float3x3(float3(v_41.row_major0[0]), float3(v_41.row_major0[1]), float3(v_41.row_major0[2]))[0][0], float3x3(float3(v_41.row_major0[0]), float3(v_41.row_major0[1]), float3(v_41.row_major0[2]))[1][0], float3x3(float3(v_41.row_major0[0]), float3(v_41.row_major0[1]), float3(v_41.row_major0[2]))[2][0]); - v_29.col_major0[1] = float3(float3x3(float3(v_41.row_major0[0]), float3(v_41.row_major0[1]), float3(v_41.row_major0[2]))[0][1], float3x3(float3(v_41.row_major0[0]), float3(v_41.row_major0[1]), float3(v_41.row_major0[2]))[1][1], float3x3(float3(v_41.row_major0[0]), float3(v_41.row_major0[1]), float3(v_41.row_major0[2]))[2][1]); - v_29.col_major0[2] = float3(float3x3(float3(v_41.row_major0[0]), float3(v_41.row_major0[1]), float3(v_41.row_major0[2]))[0][2], float3x3(float3(v_41.row_major0[0]), float3(v_41.row_major0[1]), float3(v_41.row_major0[2]))[1][2], float3x3(float3(v_41.row_major0[0]), float3(v_41.row_major0[1]), float3(v_41.row_major0[2]))[2][2]); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_row_major(device SSBORow& v_41) -{ - v_41.row_major0[0] = float3x3(float3(v_41.row_major1[0]), float3(v_41.row_major1[1]), float3(v_41.row_major1[2]))[0]; - v_41.row_major0[1] = float3x3(float3(v_41.row_major1[0]), float3(v_41.row_major1[1]), float3(v_41.row_major1[2]))[1]; - v_41.row_major0[2] = float3x3(float3(v_41.row_major1[0]), float3(v_41.row_major1[1]), float3(v_41.row_major1[2]))[2]; -} - -static inline __attribute__((always_inline)) -void copy_columns(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0[1] = float3(v_41.row_major0[0][1], v_41.row_major0[1][1], v_41.row_major0[2][1]); - ((device float*)&v_41.row_major0[0])[1] = v_29.col_major0[1][0]; - ((device float*)&v_41.row_major0[1])[1] = v_29.col_major0[1][1]; - ((device float*)&v_41.row_major0[2])[1] = v_29.col_major0[1][2]; -} - -static inline __attribute__((always_inline)) -void copy_elements(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0[0][1u] = v_41.row_major0[1u][0]; - v_41.row_major0[1u][0] = v_29.col_major0[0][1u]; -} - -kernel void main0(device SSBOCol& v_29 [[buffer(0)]], device SSBORow& v_41 [[buffer(1)]]) -{ - load_store_to_variable_col_major(v_29); - load_store_to_variable_row_major(v_41); - copy_col_major_to_col_major(v_29); - copy_col_major_to_row_major(v_29, v_41); - copy_row_major_to_col_major(v_29, v_41); - copy_row_major_to_row_major(v_41); - copy_columns(v_29, v_41); - copy_elements(v_29, v_41); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-3x3-std140.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-3x3-std140.comp deleted file mode 100644 index e2d4adb50b..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-3x3-std140.comp +++ /dev/null @@ -1,87 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBOCol -{ - float3x3 col_major0; - float3x3 col_major1; -}; - -struct SSBORow -{ - float3x3 row_major0; - float3x3 row_major1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -static inline __attribute__((always_inline)) -void load_store_to_variable_col_major(device SSBOCol& v_29) -{ - float3x3 loaded = v_29.col_major0; - v_29.col_major1 = loaded; -} - -static inline __attribute__((always_inline)) -void load_store_to_variable_row_major(device SSBORow& v_41) -{ - float3x3 loaded = transpose(v_41.row_major0); - v_41.row_major0 = transpose(loaded); -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_col_major(device SSBOCol& v_29) -{ - v_29.col_major0 = v_29.col_major1; -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_row_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_41.row_major0 = transpose(v_29.col_major0); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_col_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0 = transpose(v_41.row_major0); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_row_major(device SSBORow& v_41) -{ - v_41.row_major0 = v_41.row_major1; -} - -static inline __attribute__((always_inline)) -void copy_columns(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0[1] = float3(v_41.row_major0[0][1], v_41.row_major0[1][1], v_41.row_major0[2][1]); - v_41.row_major0[0][1] = v_29.col_major0[1].x; - v_41.row_major0[1][1] = v_29.col_major0[1].y; - v_41.row_major0[2][1] = v_29.col_major0[1].z; -} - -static inline __attribute__((always_inline)) -void copy_elements(device SSBOCol& v_29, device SSBORow& v_41) -{ - ((device float*)&v_29.col_major0[0])[1u] = ((device float*)&v_41.row_major0[1u])[0]; - ((device float*)&v_41.row_major0[1u])[0] = ((device float*)&v_29.col_major0[0])[1u]; -} - -kernel void main0(device SSBOCol& v_29 [[buffer(0)]], device SSBORow& v_41 [[buffer(1)]]) -{ - load_store_to_variable_col_major(v_29); - load_store_to_variable_row_major(v_41); - copy_col_major_to_col_major(v_29); - copy_col_major_to_row_major(v_29, v_41); - copy_row_major_to_col_major(v_29, v_41); - copy_row_major_to_row_major(v_41); - copy_columns(v_29, v_41); - copy_elements(v_29, v_41); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-3x3-std430.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-3x3-std430.comp deleted file mode 100644 index e2d4adb50b..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-3x3-std430.comp +++ /dev/null @@ -1,87 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBOCol -{ - float3x3 col_major0; - float3x3 col_major1; -}; - -struct SSBORow -{ - float3x3 row_major0; - float3x3 row_major1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -static inline __attribute__((always_inline)) -void load_store_to_variable_col_major(device SSBOCol& v_29) -{ - float3x3 loaded = v_29.col_major0; - v_29.col_major1 = loaded; -} - -static inline __attribute__((always_inline)) -void load_store_to_variable_row_major(device SSBORow& v_41) -{ - float3x3 loaded = transpose(v_41.row_major0); - v_41.row_major0 = transpose(loaded); -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_col_major(device SSBOCol& v_29) -{ - v_29.col_major0 = v_29.col_major1; -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_row_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_41.row_major0 = transpose(v_29.col_major0); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_col_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0 = transpose(v_41.row_major0); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_row_major(device SSBORow& v_41) -{ - v_41.row_major0 = v_41.row_major1; -} - -static inline __attribute__((always_inline)) -void copy_columns(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0[1] = float3(v_41.row_major0[0][1], v_41.row_major0[1][1], v_41.row_major0[2][1]); - v_41.row_major0[0][1] = v_29.col_major0[1].x; - v_41.row_major0[1][1] = v_29.col_major0[1].y; - v_41.row_major0[2][1] = v_29.col_major0[1].z; -} - -static inline __attribute__((always_inline)) -void copy_elements(device SSBOCol& v_29, device SSBORow& v_41) -{ - ((device float*)&v_29.col_major0[0])[1u] = ((device float*)&v_41.row_major0[1u])[0]; - ((device float*)&v_41.row_major0[1u])[0] = ((device float*)&v_29.col_major0[0])[1u]; -} - -kernel void main0(device SSBOCol& v_29 [[buffer(0)]], device SSBORow& v_41 [[buffer(1)]]) -{ - load_store_to_variable_col_major(v_29); - load_store_to_variable_row_major(v_41); - copy_col_major_to_col_major(v_29); - copy_col_major_to_row_major(v_29, v_41); - copy_row_major_to_col_major(v_29, v_41); - copy_row_major_to_row_major(v_41); - copy_columns(v_29, v_41); - copy_elements(v_29, v_41); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-3x4-scalar.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-3x4-scalar.comp deleted file mode 100644 index 360ef467cf..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-3x4-scalar.comp +++ /dev/null @@ -1,99 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -typedef packed_float3 packed_rm_float3x4[4]; - -struct SSBOCol -{ - float3x4 col_major0; - float3x4 col_major1; -}; - -struct SSBORow -{ - packed_rm_float3x4 row_major0; - packed_rm_float3x4 row_major1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -static inline __attribute__((always_inline)) -void load_store_to_variable_col_major(device SSBOCol& v_29) -{ - float3x4 loaded = v_29.col_major0; - v_29.col_major1 = loaded; -} - -static inline __attribute__((always_inline)) -void load_store_to_variable_row_major(device SSBORow& v_41) -{ - float3x4 loaded = transpose(float4x3(float3(v_41.row_major0[0]), float3(v_41.row_major0[1]), float3(v_41.row_major0[2]), float3(v_41.row_major0[3]))); - v_41.row_major0[0] = float3(loaded[0][0], loaded[1][0], loaded[2][0]); - v_41.row_major0[1] = float3(loaded[0][1], loaded[1][1], loaded[2][1]); - v_41.row_major0[2] = float3(loaded[0][2], loaded[1][2], loaded[2][2]); - v_41.row_major0[3] = float3(loaded[0][3], loaded[1][3], loaded[2][3]); -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_col_major(device SSBOCol& v_29) -{ - v_29.col_major0 = v_29.col_major1; -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_row_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_41.row_major0[0] = float3(v_29.col_major0[0][0], v_29.col_major0[1][0], v_29.col_major0[2][0]); - v_41.row_major0[1] = float3(v_29.col_major0[0][1], v_29.col_major0[1][1], v_29.col_major0[2][1]); - v_41.row_major0[2] = float3(v_29.col_major0[0][2], v_29.col_major0[1][2], v_29.col_major0[2][2]); - v_41.row_major0[3] = float3(v_29.col_major0[0][3], v_29.col_major0[1][3], v_29.col_major0[2][3]); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_col_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0 = transpose(float4x3(float3(v_41.row_major0[0]), float3(v_41.row_major0[1]), float3(v_41.row_major0[2]), float3(v_41.row_major0[3]))); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_row_major(device SSBORow& v_41) -{ - v_41.row_major0[0] = float4x3(float3(v_41.row_major1[0]), float3(v_41.row_major1[1]), float3(v_41.row_major1[2]), float3(v_41.row_major1[3]))[0]; - v_41.row_major0[1] = float4x3(float3(v_41.row_major1[0]), float3(v_41.row_major1[1]), float3(v_41.row_major1[2]), float3(v_41.row_major1[3]))[1]; - v_41.row_major0[2] = float4x3(float3(v_41.row_major1[0]), float3(v_41.row_major1[1]), float3(v_41.row_major1[2]), float3(v_41.row_major1[3]))[2]; - v_41.row_major0[3] = float4x3(float3(v_41.row_major1[0]), float3(v_41.row_major1[1]), float3(v_41.row_major1[2]), float3(v_41.row_major1[3]))[3]; -} - -static inline __attribute__((always_inline)) -void copy_columns(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0[1] = float4(v_41.row_major0[0][1], v_41.row_major0[1][1], v_41.row_major0[2][1], v_41.row_major0[3][1]); - ((device float*)&v_41.row_major0[0])[1] = v_29.col_major0[1].x; - ((device float*)&v_41.row_major0[1])[1] = v_29.col_major0[1].y; - ((device float*)&v_41.row_major0[2])[1] = v_29.col_major0[1].z; - ((device float*)&v_41.row_major0[3])[1] = v_29.col_major0[1].w; -} - -static inline __attribute__((always_inline)) -void copy_elements(device SSBOCol& v_29, device SSBORow& v_41) -{ - ((device float*)&v_29.col_major0[0])[1u] = v_41.row_major0[1u][0]; - v_41.row_major0[1u][0] = ((device float*)&v_29.col_major0[0])[1u]; -} - -kernel void main0(device SSBOCol& v_29 [[buffer(0)]], device SSBORow& v_41 [[buffer(1)]]) -{ - load_store_to_variable_col_major(v_29); - load_store_to_variable_row_major(v_41); - copy_col_major_to_col_major(v_29); - copy_col_major_to_row_major(v_29, v_41); - copy_row_major_to_col_major(v_29, v_41); - copy_row_major_to_row_major(v_41); - copy_columns(v_29, v_41); - copy_elements(v_29, v_41); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-3x4-std140.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-3x4-std140.comp deleted file mode 100644 index f18917dd76..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-3x4-std140.comp +++ /dev/null @@ -1,88 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBOCol -{ - float3x4 col_major0; - float3x4 col_major1; -}; - -struct SSBORow -{ - float4x3 row_major0; - float4x3 row_major1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -static inline __attribute__((always_inline)) -void load_store_to_variable_col_major(device SSBOCol& v_29) -{ - float3x4 loaded = v_29.col_major0; - v_29.col_major1 = loaded; -} - -static inline __attribute__((always_inline)) -void load_store_to_variable_row_major(device SSBORow& v_41) -{ - float3x4 loaded = transpose(v_41.row_major0); - v_41.row_major0 = transpose(loaded); -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_col_major(device SSBOCol& v_29) -{ - v_29.col_major0 = v_29.col_major1; -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_row_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_41.row_major0 = transpose(v_29.col_major0); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_col_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0 = transpose(v_41.row_major0); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_row_major(device SSBORow& v_41) -{ - v_41.row_major0 = v_41.row_major1; -} - -static inline __attribute__((always_inline)) -void copy_columns(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0[1] = float4(v_41.row_major0[0][1], v_41.row_major0[1][1], v_41.row_major0[2][1], v_41.row_major0[3][1]); - v_41.row_major0[0][1] = v_29.col_major0[1].x; - v_41.row_major0[1][1] = v_29.col_major0[1].y; - v_41.row_major0[2][1] = v_29.col_major0[1].z; - v_41.row_major0[3][1] = v_29.col_major0[1].w; -} - -static inline __attribute__((always_inline)) -void copy_elements(device SSBOCol& v_29, device SSBORow& v_41) -{ - ((device float*)&v_29.col_major0[0])[1u] = ((device float*)&v_41.row_major0[1u])[0]; - ((device float*)&v_41.row_major0[1u])[0] = ((device float*)&v_29.col_major0[0])[1u]; -} - -kernel void main0(device SSBOCol& v_29 [[buffer(0)]], device SSBORow& v_41 [[buffer(1)]]) -{ - load_store_to_variable_col_major(v_29); - load_store_to_variable_row_major(v_41); - copy_col_major_to_col_major(v_29); - copy_col_major_to_row_major(v_29, v_41); - copy_row_major_to_col_major(v_29, v_41); - copy_row_major_to_row_major(v_41); - copy_columns(v_29, v_41); - copy_elements(v_29, v_41); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-3x4-std430.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-3x4-std430.comp deleted file mode 100644 index f18917dd76..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-3x4-std430.comp +++ /dev/null @@ -1,88 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBOCol -{ - float3x4 col_major0; - float3x4 col_major1; -}; - -struct SSBORow -{ - float4x3 row_major0; - float4x3 row_major1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -static inline __attribute__((always_inline)) -void load_store_to_variable_col_major(device SSBOCol& v_29) -{ - float3x4 loaded = v_29.col_major0; - v_29.col_major1 = loaded; -} - -static inline __attribute__((always_inline)) -void load_store_to_variable_row_major(device SSBORow& v_41) -{ - float3x4 loaded = transpose(v_41.row_major0); - v_41.row_major0 = transpose(loaded); -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_col_major(device SSBOCol& v_29) -{ - v_29.col_major0 = v_29.col_major1; -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_row_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_41.row_major0 = transpose(v_29.col_major0); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_col_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0 = transpose(v_41.row_major0); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_row_major(device SSBORow& v_41) -{ - v_41.row_major0 = v_41.row_major1; -} - -static inline __attribute__((always_inline)) -void copy_columns(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0[1] = float4(v_41.row_major0[0][1], v_41.row_major0[1][1], v_41.row_major0[2][1], v_41.row_major0[3][1]); - v_41.row_major0[0][1] = v_29.col_major0[1].x; - v_41.row_major0[1][1] = v_29.col_major0[1].y; - v_41.row_major0[2][1] = v_29.col_major0[1].z; - v_41.row_major0[3][1] = v_29.col_major0[1].w; -} - -static inline __attribute__((always_inline)) -void copy_elements(device SSBOCol& v_29, device SSBORow& v_41) -{ - ((device float*)&v_29.col_major0[0])[1u] = ((device float*)&v_41.row_major0[1u])[0]; - ((device float*)&v_41.row_major0[1u])[0] = ((device float*)&v_29.col_major0[0])[1u]; -} - -kernel void main0(device SSBOCol& v_29 [[buffer(0)]], device SSBORow& v_41 [[buffer(1)]]) -{ - load_store_to_variable_col_major(v_29); - load_store_to_variable_row_major(v_41); - copy_col_major_to_col_major(v_29); - copy_col_major_to_row_major(v_29, v_41); - copy_row_major_to_col_major(v_29, v_41); - copy_row_major_to_row_major(v_41); - copy_columns(v_29, v_41); - copy_elements(v_29, v_41); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-4x2-scalar.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-4x2-scalar.comp deleted file mode 100644 index d98613e43d..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-4x2-scalar.comp +++ /dev/null @@ -1,86 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBOCol -{ - float4x2 col_major0; - float4x2 col_major1; -}; - -struct SSBORow -{ - float2x4 row_major0; - float2x4 row_major1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -static inline __attribute__((always_inline)) -void load_store_to_variable_col_major(device SSBOCol& v_29) -{ - float4x2 loaded = v_29.col_major0; - v_29.col_major1 = loaded; -} - -static inline __attribute__((always_inline)) -void load_store_to_variable_row_major(device SSBORow& v_41) -{ - float4x2 loaded = transpose(v_41.row_major0); - v_41.row_major0 = transpose(loaded); -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_col_major(device SSBOCol& v_29) -{ - v_29.col_major0 = v_29.col_major1; -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_row_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_41.row_major0 = transpose(v_29.col_major0); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_col_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0 = transpose(v_41.row_major0); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_row_major(device SSBORow& v_41) -{ - v_41.row_major0 = v_41.row_major1; -} - -static inline __attribute__((always_inline)) -void copy_columns(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0[1] = float2(v_41.row_major0[0][1], v_41.row_major0[1][1]); - v_41.row_major0[0][1] = v_29.col_major0[1].x; - v_41.row_major0[1][1] = v_29.col_major0[1].y; -} - -static inline __attribute__((always_inline)) -void copy_elements(device SSBOCol& v_29, device SSBORow& v_41) -{ - ((device float*)&v_29.col_major0[0])[1u] = ((device float*)&v_41.row_major0[1u])[0]; - ((device float*)&v_41.row_major0[1u])[0] = ((device float*)&v_29.col_major0[0])[1u]; -} - -kernel void main0(device SSBOCol& v_29 [[buffer(0)]], device SSBORow& v_41 [[buffer(1)]]) -{ - load_store_to_variable_col_major(v_29); - load_store_to_variable_row_major(v_41); - copy_col_major_to_col_major(v_29); - copy_col_major_to_row_major(v_29, v_41); - copy_row_major_to_col_major(v_29, v_41); - copy_row_major_to_row_major(v_41); - copy_columns(v_29, v_41); - copy_elements(v_29, v_41); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-4x2-std140.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-4x2-std140.comp deleted file mode 100644 index 6c231cd8d3..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-4x2-std140.comp +++ /dev/null @@ -1,95 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBOCol -{ - float4x4 col_major0; - float4x4 col_major1; -}; - -struct SSBORow -{ - float2x4 row_major0; - float2x4 row_major1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -static inline __attribute__((always_inline)) -void load_store_to_variable_col_major(device SSBOCol& v_29) -{ - float4x2 loaded = float4x2(v_29.col_major0[0].xy, v_29.col_major0[1].xy, v_29.col_major0[2].xy, v_29.col_major0[3].xy); - (device float2&)v_29.col_major1[0] = loaded[0]; - (device float2&)v_29.col_major1[1] = loaded[1]; - (device float2&)v_29.col_major1[2] = loaded[2]; - (device float2&)v_29.col_major1[3] = loaded[3]; -} - -static inline __attribute__((always_inline)) -void load_store_to_variable_row_major(device SSBORow& v_41) -{ - float4x2 loaded = transpose(v_41.row_major0); - v_41.row_major0 = transpose(loaded); -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_col_major(device SSBOCol& v_29) -{ - (device float2&)v_29.col_major0[0] = float4x2(v_29.col_major1[0].xy, v_29.col_major1[1].xy, v_29.col_major1[2].xy, v_29.col_major1[3].xy)[0]; - (device float2&)v_29.col_major0[1] = float4x2(v_29.col_major1[0].xy, v_29.col_major1[1].xy, v_29.col_major1[2].xy, v_29.col_major1[3].xy)[1]; - (device float2&)v_29.col_major0[2] = float4x2(v_29.col_major1[0].xy, v_29.col_major1[1].xy, v_29.col_major1[2].xy, v_29.col_major1[3].xy)[2]; - (device float2&)v_29.col_major0[3] = float4x2(v_29.col_major1[0].xy, v_29.col_major1[1].xy, v_29.col_major1[2].xy, v_29.col_major1[3].xy)[3]; -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_row_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_41.row_major0 = transpose(float4x2(v_29.col_major0[0].xy, v_29.col_major0[1].xy, v_29.col_major0[2].xy, v_29.col_major0[3].xy)); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_col_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - (device float2&)v_29.col_major0[0] = float2(v_41.row_major0[0][0], v_41.row_major0[1][0]); - (device float2&)v_29.col_major0[1] = float2(v_41.row_major0[0][1], v_41.row_major0[1][1]); - (device float2&)v_29.col_major0[2] = float2(v_41.row_major0[0][2], v_41.row_major0[1][2]); - (device float2&)v_29.col_major0[3] = float2(v_41.row_major0[0][3], v_41.row_major0[1][3]); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_row_major(device SSBORow& v_41) -{ - v_41.row_major0 = v_41.row_major1; -} - -static inline __attribute__((always_inline)) -void copy_columns(device SSBOCol& v_29, device SSBORow& v_41) -{ - (device float2&)v_29.col_major0[1] = float2(v_41.row_major0[0][1], v_41.row_major0[1][1]); - v_41.row_major0[0][1] = v_29.col_major0[1].x; - v_41.row_major0[1][1] = v_29.col_major0[1].y; -} - -static inline __attribute__((always_inline)) -void copy_elements(device SSBOCol& v_29, device SSBORow& v_41) -{ - ((device float*)&v_29.col_major0[0])[1u] = ((device float*)&v_41.row_major0[1u])[0]; - ((device float*)&v_41.row_major0[1u])[0] = ((device float*)&v_29.col_major0[0])[1u]; -} - -kernel void main0(device SSBOCol& v_29 [[buffer(0)]], device SSBORow& v_41 [[buffer(1)]]) -{ - load_store_to_variable_col_major(v_29); - load_store_to_variable_row_major(v_41); - copy_col_major_to_col_major(v_29); - copy_col_major_to_row_major(v_29, v_41); - copy_row_major_to_col_major(v_29, v_41); - copy_row_major_to_row_major(v_41); - copy_columns(v_29, v_41); - copy_elements(v_29, v_41); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-4x2-std430.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-4x2-std430.comp deleted file mode 100644 index d98613e43d..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-4x2-std430.comp +++ /dev/null @@ -1,86 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBOCol -{ - float4x2 col_major0; - float4x2 col_major1; -}; - -struct SSBORow -{ - float2x4 row_major0; - float2x4 row_major1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -static inline __attribute__((always_inline)) -void load_store_to_variable_col_major(device SSBOCol& v_29) -{ - float4x2 loaded = v_29.col_major0; - v_29.col_major1 = loaded; -} - -static inline __attribute__((always_inline)) -void load_store_to_variable_row_major(device SSBORow& v_41) -{ - float4x2 loaded = transpose(v_41.row_major0); - v_41.row_major0 = transpose(loaded); -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_col_major(device SSBOCol& v_29) -{ - v_29.col_major0 = v_29.col_major1; -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_row_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_41.row_major0 = transpose(v_29.col_major0); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_col_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0 = transpose(v_41.row_major0); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_row_major(device SSBORow& v_41) -{ - v_41.row_major0 = v_41.row_major1; -} - -static inline __attribute__((always_inline)) -void copy_columns(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0[1] = float2(v_41.row_major0[0][1], v_41.row_major0[1][1]); - v_41.row_major0[0][1] = v_29.col_major0[1].x; - v_41.row_major0[1][1] = v_29.col_major0[1].y; -} - -static inline __attribute__((always_inline)) -void copy_elements(device SSBOCol& v_29, device SSBORow& v_41) -{ - ((device float*)&v_29.col_major0[0])[1u] = ((device float*)&v_41.row_major0[1u])[0]; - ((device float*)&v_41.row_major0[1u])[0] = ((device float*)&v_29.col_major0[0])[1u]; -} - -kernel void main0(device SSBOCol& v_29 [[buffer(0)]], device SSBORow& v_41 [[buffer(1)]]) -{ - load_store_to_variable_col_major(v_29); - load_store_to_variable_row_major(v_41); - copy_col_major_to_col_major(v_29); - copy_col_major_to_row_major(v_29, v_41); - copy_row_major_to_col_major(v_29, v_41); - copy_row_major_to_row_major(v_41); - copy_columns(v_29, v_41); - copy_elements(v_29, v_41); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-4x3-scalar.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-4x3-scalar.comp deleted file mode 100644 index 7a156f85e3..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-4x3-scalar.comp +++ /dev/null @@ -1,98 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -typedef packed_float3 packed_float4x3[4]; - -struct SSBOCol -{ - packed_float4x3 col_major0; - packed_float4x3 col_major1; -}; - -struct SSBORow -{ - float3x4 row_major0; - float3x4 row_major1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -static inline __attribute__((always_inline)) -void load_store_to_variable_col_major(device SSBOCol& v_29) -{ - float4x3 loaded = float4x3(float3(v_29.col_major0[0]), float3(v_29.col_major0[1]), float3(v_29.col_major0[2]), float3(v_29.col_major0[3])); - v_29.col_major1[0] = loaded[0]; - v_29.col_major1[1] = loaded[1]; - v_29.col_major1[2] = loaded[2]; - v_29.col_major1[3] = loaded[3]; -} - -static inline __attribute__((always_inline)) -void load_store_to_variable_row_major(device SSBORow& v_41) -{ - float4x3 loaded = transpose(v_41.row_major0); - v_41.row_major0 = transpose(loaded); -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_col_major(device SSBOCol& v_29) -{ - v_29.col_major0[0] = float4x3(float3(v_29.col_major1[0]), float3(v_29.col_major1[1]), float3(v_29.col_major1[2]), float3(v_29.col_major1[3]))[0]; - v_29.col_major0[1] = float4x3(float3(v_29.col_major1[0]), float3(v_29.col_major1[1]), float3(v_29.col_major1[2]), float3(v_29.col_major1[3]))[1]; - v_29.col_major0[2] = float4x3(float3(v_29.col_major1[0]), float3(v_29.col_major1[1]), float3(v_29.col_major1[2]), float3(v_29.col_major1[3]))[2]; - v_29.col_major0[3] = float4x3(float3(v_29.col_major1[0]), float3(v_29.col_major1[1]), float3(v_29.col_major1[2]), float3(v_29.col_major1[3]))[3]; -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_row_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_41.row_major0 = transpose(float4x3(float3(v_29.col_major0[0]), float3(v_29.col_major0[1]), float3(v_29.col_major0[2]), float3(v_29.col_major0[3]))); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_col_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0[0] = float3(v_41.row_major0[0][0], v_41.row_major0[1][0], v_41.row_major0[2][0]); - v_29.col_major0[1] = float3(v_41.row_major0[0][1], v_41.row_major0[1][1], v_41.row_major0[2][1]); - v_29.col_major0[2] = float3(v_41.row_major0[0][2], v_41.row_major0[1][2], v_41.row_major0[2][2]); - v_29.col_major0[3] = float3(v_41.row_major0[0][3], v_41.row_major0[1][3], v_41.row_major0[2][3]); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_row_major(device SSBORow& v_41) -{ - v_41.row_major0 = v_41.row_major1; -} - -static inline __attribute__((always_inline)) -void copy_columns(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0[1] = float3(v_41.row_major0[0][1], v_41.row_major0[1][1], v_41.row_major0[2][1]); - v_41.row_major0[0][1] = v_29.col_major0[1][0]; - v_41.row_major0[1][1] = v_29.col_major0[1][1]; - v_41.row_major0[2][1] = v_29.col_major0[1][2]; -} - -static inline __attribute__((always_inline)) -void copy_elements(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0[0][1u] = ((device float*)&v_41.row_major0[1u])[0]; - ((device float*)&v_41.row_major0[1u])[0] = v_29.col_major0[0][1u]; -} - -kernel void main0(device SSBOCol& v_29 [[buffer(0)]], device SSBORow& v_41 [[buffer(1)]]) -{ - load_store_to_variable_col_major(v_29); - load_store_to_variable_row_major(v_41); - copy_col_major_to_col_major(v_29); - copy_col_major_to_row_major(v_29, v_41); - copy_row_major_to_col_major(v_29, v_41); - copy_row_major_to_row_major(v_41); - copy_columns(v_29, v_41); - copy_elements(v_29, v_41); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-4x3-std140.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-4x3-std140.comp deleted file mode 100644 index 0964f84952..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-4x3-std140.comp +++ /dev/null @@ -1,87 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBOCol -{ - float4x3 col_major0; - float4x3 col_major1; -}; - -struct SSBORow -{ - float3x4 row_major0; - float3x4 row_major1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -static inline __attribute__((always_inline)) -void load_store_to_variable_col_major(device SSBOCol& v_29) -{ - float4x3 loaded = v_29.col_major0; - v_29.col_major1 = loaded; -} - -static inline __attribute__((always_inline)) -void load_store_to_variable_row_major(device SSBORow& v_41) -{ - float4x3 loaded = transpose(v_41.row_major0); - v_41.row_major0 = transpose(loaded); -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_col_major(device SSBOCol& v_29) -{ - v_29.col_major0 = v_29.col_major1; -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_row_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_41.row_major0 = transpose(v_29.col_major0); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_col_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0 = transpose(v_41.row_major0); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_row_major(device SSBORow& v_41) -{ - v_41.row_major0 = v_41.row_major1; -} - -static inline __attribute__((always_inline)) -void copy_columns(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0[1] = float3(v_41.row_major0[0][1], v_41.row_major0[1][1], v_41.row_major0[2][1]); - v_41.row_major0[0][1] = v_29.col_major0[1].x; - v_41.row_major0[1][1] = v_29.col_major0[1].y; - v_41.row_major0[2][1] = v_29.col_major0[1].z; -} - -static inline __attribute__((always_inline)) -void copy_elements(device SSBOCol& v_29, device SSBORow& v_41) -{ - ((device float*)&v_29.col_major0[0])[1u] = ((device float*)&v_41.row_major0[1u])[0]; - ((device float*)&v_41.row_major0[1u])[0] = ((device float*)&v_29.col_major0[0])[1u]; -} - -kernel void main0(device SSBOCol& v_29 [[buffer(0)]], device SSBORow& v_41 [[buffer(1)]]) -{ - load_store_to_variable_col_major(v_29); - load_store_to_variable_row_major(v_41); - copy_col_major_to_col_major(v_29); - copy_col_major_to_row_major(v_29, v_41); - copy_row_major_to_col_major(v_29, v_41); - copy_row_major_to_row_major(v_41); - copy_columns(v_29, v_41); - copy_elements(v_29, v_41); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-4x3-std430.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-4x3-std430.comp deleted file mode 100644 index 0964f84952..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-4x3-std430.comp +++ /dev/null @@ -1,87 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBOCol -{ - float4x3 col_major0; - float4x3 col_major1; -}; - -struct SSBORow -{ - float3x4 row_major0; - float3x4 row_major1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -static inline __attribute__((always_inline)) -void load_store_to_variable_col_major(device SSBOCol& v_29) -{ - float4x3 loaded = v_29.col_major0; - v_29.col_major1 = loaded; -} - -static inline __attribute__((always_inline)) -void load_store_to_variable_row_major(device SSBORow& v_41) -{ - float4x3 loaded = transpose(v_41.row_major0); - v_41.row_major0 = transpose(loaded); -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_col_major(device SSBOCol& v_29) -{ - v_29.col_major0 = v_29.col_major1; -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_row_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_41.row_major0 = transpose(v_29.col_major0); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_col_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0 = transpose(v_41.row_major0); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_row_major(device SSBORow& v_41) -{ - v_41.row_major0 = v_41.row_major1; -} - -static inline __attribute__((always_inline)) -void copy_columns(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0[1] = float3(v_41.row_major0[0][1], v_41.row_major0[1][1], v_41.row_major0[2][1]); - v_41.row_major0[0][1] = v_29.col_major0[1].x; - v_41.row_major0[1][1] = v_29.col_major0[1].y; - v_41.row_major0[2][1] = v_29.col_major0[1].z; -} - -static inline __attribute__((always_inline)) -void copy_elements(device SSBOCol& v_29, device SSBORow& v_41) -{ - ((device float*)&v_29.col_major0[0])[1u] = ((device float*)&v_41.row_major0[1u])[0]; - ((device float*)&v_41.row_major0[1u])[0] = ((device float*)&v_29.col_major0[0])[1u]; -} - -kernel void main0(device SSBOCol& v_29 [[buffer(0)]], device SSBORow& v_41 [[buffer(1)]]) -{ - load_store_to_variable_col_major(v_29); - load_store_to_variable_row_major(v_41); - copy_col_major_to_col_major(v_29); - copy_col_major_to_row_major(v_29, v_41); - copy_row_major_to_col_major(v_29, v_41); - copy_row_major_to_row_major(v_41); - copy_columns(v_29, v_41); - copy_elements(v_29, v_41); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-4x4-scalar.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-4x4-scalar.comp deleted file mode 100644 index 865cc19865..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-4x4-scalar.comp +++ /dev/null @@ -1,88 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBOCol -{ - float4x4 col_major0; - float4x4 col_major1; -}; - -struct SSBORow -{ - float4x4 row_major0; - float4x4 row_major1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -static inline __attribute__((always_inline)) -void load_store_to_variable_col_major(device SSBOCol& v_29) -{ - float4x4 loaded = v_29.col_major0; - v_29.col_major1 = loaded; -} - -static inline __attribute__((always_inline)) -void load_store_to_variable_row_major(device SSBORow& v_41) -{ - float4x4 loaded = transpose(v_41.row_major0); - v_41.row_major0 = transpose(loaded); -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_col_major(device SSBOCol& v_29) -{ - v_29.col_major0 = v_29.col_major1; -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_row_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_41.row_major0 = transpose(v_29.col_major0); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_col_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0 = transpose(v_41.row_major0); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_row_major(device SSBORow& v_41) -{ - v_41.row_major0 = v_41.row_major1; -} - -static inline __attribute__((always_inline)) -void copy_columns(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0[1] = float4(v_41.row_major0[0][1], v_41.row_major0[1][1], v_41.row_major0[2][1], v_41.row_major0[3][1]); - v_41.row_major0[0][1] = v_29.col_major0[1].x; - v_41.row_major0[1][1] = v_29.col_major0[1].y; - v_41.row_major0[2][1] = v_29.col_major0[1].z; - v_41.row_major0[3][1] = v_29.col_major0[1].w; -} - -static inline __attribute__((always_inline)) -void copy_elements(device SSBOCol& v_29, device SSBORow& v_41) -{ - ((device float*)&v_29.col_major0[0])[1u] = ((device float*)&v_41.row_major0[1u])[0]; - ((device float*)&v_41.row_major0[1u])[0] = ((device float*)&v_29.col_major0[0])[1u]; -} - -kernel void main0(device SSBOCol& v_29 [[buffer(0)]], device SSBORow& v_41 [[buffer(1)]]) -{ - load_store_to_variable_col_major(v_29); - load_store_to_variable_row_major(v_41); - copy_col_major_to_col_major(v_29); - copy_col_major_to_row_major(v_29, v_41); - copy_row_major_to_col_major(v_29, v_41); - copy_row_major_to_row_major(v_41); - copy_columns(v_29, v_41); - copy_elements(v_29, v_41); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-4x4-std140.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-4x4-std140.comp deleted file mode 100644 index 865cc19865..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-4x4-std140.comp +++ /dev/null @@ -1,88 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBOCol -{ - float4x4 col_major0; - float4x4 col_major1; -}; - -struct SSBORow -{ - float4x4 row_major0; - float4x4 row_major1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -static inline __attribute__((always_inline)) -void load_store_to_variable_col_major(device SSBOCol& v_29) -{ - float4x4 loaded = v_29.col_major0; - v_29.col_major1 = loaded; -} - -static inline __attribute__((always_inline)) -void load_store_to_variable_row_major(device SSBORow& v_41) -{ - float4x4 loaded = transpose(v_41.row_major0); - v_41.row_major0 = transpose(loaded); -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_col_major(device SSBOCol& v_29) -{ - v_29.col_major0 = v_29.col_major1; -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_row_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_41.row_major0 = transpose(v_29.col_major0); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_col_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0 = transpose(v_41.row_major0); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_row_major(device SSBORow& v_41) -{ - v_41.row_major0 = v_41.row_major1; -} - -static inline __attribute__((always_inline)) -void copy_columns(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0[1] = float4(v_41.row_major0[0][1], v_41.row_major0[1][1], v_41.row_major0[2][1], v_41.row_major0[3][1]); - v_41.row_major0[0][1] = v_29.col_major0[1].x; - v_41.row_major0[1][1] = v_29.col_major0[1].y; - v_41.row_major0[2][1] = v_29.col_major0[1].z; - v_41.row_major0[3][1] = v_29.col_major0[1].w; -} - -static inline __attribute__((always_inline)) -void copy_elements(device SSBOCol& v_29, device SSBORow& v_41) -{ - ((device float*)&v_29.col_major0[0])[1u] = ((device float*)&v_41.row_major0[1u])[0]; - ((device float*)&v_41.row_major0[1u])[0] = ((device float*)&v_29.col_major0[0])[1u]; -} - -kernel void main0(device SSBOCol& v_29 [[buffer(0)]], device SSBORow& v_41 [[buffer(1)]]) -{ - load_store_to_variable_col_major(v_29); - load_store_to_variable_row_major(v_41); - copy_col_major_to_col_major(v_29); - copy_col_major_to_row_major(v_29, v_41); - copy_row_major_to_col_major(v_29, v_41); - copy_row_major_to_row_major(v_41); - copy_columns(v_29, v_41); - copy_elements(v_29, v_41); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-4x4-std430.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-4x4-std430.comp deleted file mode 100644 index 865cc19865..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-4x4-std430.comp +++ /dev/null @@ -1,88 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBOCol -{ - float4x4 col_major0; - float4x4 col_major1; -}; - -struct SSBORow -{ - float4x4 row_major0; - float4x4 row_major1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -static inline __attribute__((always_inline)) -void load_store_to_variable_col_major(device SSBOCol& v_29) -{ - float4x4 loaded = v_29.col_major0; - v_29.col_major1 = loaded; -} - -static inline __attribute__((always_inline)) -void load_store_to_variable_row_major(device SSBORow& v_41) -{ - float4x4 loaded = transpose(v_41.row_major0); - v_41.row_major0 = transpose(loaded); -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_col_major(device SSBOCol& v_29) -{ - v_29.col_major0 = v_29.col_major1; -} - -static inline __attribute__((always_inline)) -void copy_col_major_to_row_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_41.row_major0 = transpose(v_29.col_major0); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_col_major(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0 = transpose(v_41.row_major0); -} - -static inline __attribute__((always_inline)) -void copy_row_major_to_row_major(device SSBORow& v_41) -{ - v_41.row_major0 = v_41.row_major1; -} - -static inline __attribute__((always_inline)) -void copy_columns(device SSBOCol& v_29, device SSBORow& v_41) -{ - v_29.col_major0[1] = float4(v_41.row_major0[0][1], v_41.row_major0[1][1], v_41.row_major0[2][1], v_41.row_major0[3][1]); - v_41.row_major0[0][1] = v_29.col_major0[1].x; - v_41.row_major0[1][1] = v_29.col_major0[1].y; - v_41.row_major0[2][1] = v_29.col_major0[1].z; - v_41.row_major0[3][1] = v_29.col_major0[1].w; -} - -static inline __attribute__((always_inline)) -void copy_elements(device SSBOCol& v_29, device SSBORow& v_41) -{ - ((device float*)&v_29.col_major0[0])[1u] = ((device float*)&v_41.row_major0[1u])[0]; - ((device float*)&v_41.row_major0[1u])[0] = ((device float*)&v_29.col_major0[0])[1u]; -} - -kernel void main0(device SSBOCol& v_29 [[buffer(0)]], device SSBORow& v_41 [[buffer(1)]]) -{ - load_store_to_variable_col_major(v_29); - load_store_to_variable_row_major(v_41); - copy_col_major_to_col_major(v_29); - copy_col_major_to_row_major(v_29, v_41); - copy_row_major_to_col_major(v_29, v_41); - copy_row_major_to_row_major(v_41); - copy_columns(v_29, v_41); - copy_elements(v_29, v_41); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-multiply-row-major.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-multiply-row-major.comp deleted file mode 100644 index 2384e3648e..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-multiply-row-major.comp +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - float3x3 m0; - float3x3 m1; - float3 v0; - float3 v1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO& _11 [[buffer(0)]]) -{ - _11.v0 = _11.v1 * (_11.m1 * _11.m0); - _11.v0 = (_11.v1 * _11.m1) * _11.m0; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-multiply-unpacked-col-major-2.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-multiply-unpacked-col-major-2.comp deleted file mode 100644 index 3fb36e0561..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-multiply-unpacked-col-major-2.comp +++ /dev/null @@ -1,25 +0,0 @@ -#include -#include - -using namespace metal; - -typedef packed_float3 packed_float3x3[3]; - -struct SSBO -{ - packed_float3x3 m0; - packed_float3x3 m1; - packed_float3 v0; - packed_float3 v1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO& _11 [[buffer(0)]]) -{ - _11.v0 = (float3x3(float3(_11.m0[0]), float3(_11.m0[1]), float3(_11.m0[2])) * float3x3(float3(_11.m1[0]), float3(_11.m1[1]), float3(_11.m1[2]))) * float3(_11.v1); - _11.v0 = float3x3(float3(_11.m0[0]), float3(_11.m0[1]), float3(_11.m0[2])) * (float3x3(float3(_11.m1[0]), float3(_11.m1[1]), float3(_11.m1[2])) * float3(_11.v1)); - _11.v0 = (float3(_11.v1) * float3x3(float3(_11.m0[0]), float3(_11.m0[1]), float3(_11.m0[2]))) * float3x3(float3(_11.m1[0]), float3(_11.m1[1]), float3(_11.m1[2])); - _11.v0 = float3(_11.v1) * (float3x3(float3(_11.m0[0]), float3(_11.m0[1]), float3(_11.m0[2])) * float3x3(float3(_11.m1[0]), float3(_11.m1[1]), float3(_11.m1[2]))); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-multiply-unpacked-col-major.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-multiply-unpacked-col-major.comp deleted file mode 100644 index 40f00886dd..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-multiply-unpacked-col-major.comp +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - float2x4 m0; - float2x4 m1; - float2 v0; - float2 v1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO& _11 [[buffer(0)]]) -{ - _11.v0 = (float2x2(_11.m0[0].xy, _11.m0[1].xy) * float2x2(_11.m1[0].xy, _11.m1[1].xy)) * _11.v1; - _11.v0 = float2x2(_11.m0[0].xy, _11.m0[1].xy) * (float2x2(_11.m1[0].xy, _11.m1[1].xy) * _11.v1); - _11.v0 = (_11.v1 * float2x2(_11.m0[0].xy, _11.m0[1].xy)) * float2x2(_11.m1[0].xy, _11.m1[1].xy); - _11.v0 = _11.v1 * (float2x2(_11.m0[0].xy, _11.m0[1].xy) * float2x2(_11.m1[0].xy, _11.m1[1].xy)); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-multiply-unpacked-row-major-2.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-multiply-unpacked-row-major-2.comp deleted file mode 100644 index 7130c9a8e0..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-multiply-unpacked-row-major-2.comp +++ /dev/null @@ -1,25 +0,0 @@ -#include -#include - -using namespace metal; - -typedef packed_float3 packed_rm_float3x3[3]; - -struct SSBO -{ - packed_rm_float3x3 m0; - packed_rm_float3x3 m1; - packed_float3 v0; - packed_float3 v1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO& _11 [[buffer(0)]]) -{ - _11.v0 = float3(_11.v1) * (float3x3(float3(_11.m1[0]), float3(_11.m1[1]), float3(_11.m1[2])) * float3x3(float3(_11.m0[0]), float3(_11.m0[1]), float3(_11.m0[2]))); - _11.v0 = (float3(_11.v1) * float3x3(float3(_11.m1[0]), float3(_11.m1[1]), float3(_11.m1[2]))) * float3x3(float3(_11.m0[0]), float3(_11.m0[1]), float3(_11.m0[2])); - _11.v0 = float3x3(float3(_11.m1[0]), float3(_11.m1[1]), float3(_11.m1[2])) * (float3x3(float3(_11.m0[0]), float3(_11.m0[1]), float3(_11.m0[2])) * float3(_11.v1)); - _11.v0 = (float3x3(float3(_11.m1[0]), float3(_11.m1[1]), float3(_11.m1[2])) * float3x3(float3(_11.m0[0]), float3(_11.m0[1]), float3(_11.m0[2]))) * float3(_11.v1); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-multiply-unpacked-row-major.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-multiply-unpacked-row-major.comp deleted file mode 100644 index f061dd6662..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/matrix-multiply-unpacked-row-major.comp +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - float2x4 m0; - float2x4 m1; - float2 v0; - float2 v1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO& _11 [[buffer(0)]]) -{ - _11.v0 = _11.v1 * (float2x2(_11.m1[0].xy, _11.m1[1].xy) * float2x2(_11.m0[0].xy, _11.m0[1].xy)); - _11.v0 = (_11.v1 * float2x2(_11.m1[0].xy, _11.m1[1].xy)) * float2x2(_11.m0[0].xy, _11.m0[1].xy); - _11.v0 = float2x2(_11.m1[0].xy, _11.m1[1].xy) * (float2x2(_11.m0[0].xy, _11.m0[1].xy) * _11.v1); - _11.v0 = (float2x2(_11.m1[0].xy, _11.m1[1].xy) * float2x2(_11.m0[0].xy, _11.m0[1].xy)) * _11.v1; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/member-padding.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/member-padding.comp deleted file mode 100644 index 4f653ecdd6..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/member-padding.comp +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - char _m0_pad[16]; - float a; - char _m1_pad[20]; - float b; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO& _9 [[buffer(0)]]) -{ - _9.a = 10.0; - _9.b = 20.0; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/std140-array-of-vectors.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/std140-array-of-vectors.comp deleted file mode 100644 index 4d5ba324a0..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/std140-array-of-vectors.comp +++ /dev/null @@ -1,42 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - float4 v1[4]; - float4 v2[4]; - float3 v3[4]; - float4 v4[4]; - float4 v1_array_of_array[4][4]; - float4 v2_array_of_array[4][4]; - float3 v3_array_of_array[4][4]; - float4 v4_array_of_array[4][4]; - float4 v_unsized[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO& _29 [[buffer(0)]]) -{ - float loaded1 = _29.v1[1].x; - (device float&)_29.v1[2] = loaded1; - float2 loaded2 = _29.v2[1].xy; - (device float2&)_29.v2[2] = loaded2; - float3 loaded3 = _29.v3[1]; - _29.v3[2] = loaded3; - float4 loaded4 = _29.v4[1]; - _29.v4[2] = loaded4; - loaded1 = _29.v1_array_of_array[1][2].x; - (device float&)_29.v1_array_of_array[2][3] = loaded1; - loaded2 = _29.v2_array_of_array[1][2].xy; - (device float2&)_29.v2_array_of_array[2][3] = loaded2; - loaded3 = _29.v3_array_of_array[1][2]; - _29.v3_array_of_array[2][3] = loaded3; - loaded4 = _29.v4_array_of_array[1][2]; - _29.v4_array_of_array[2][3] = loaded4; - loaded1 = _29.v_unsized[1].x; - (device float&)_29.v_unsized[2] = loaded1; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/struct-alignment.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/struct-alignment.comp deleted file mode 100644 index 34647b46f4..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/struct-alignment.comp +++ /dev/null @@ -1,27 +0,0 @@ -#include -#include - -using namespace metal; - -struct Foo -{ - packed_float3 a; - float b; -}; - -struct SSBO -{ - float2 a; - float b; - char _m2_pad[4]; - Foo foo; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO& _12 [[buffer(0)]]) -{ - ((device float*)&_12.a)[0u] = 10.0; - _12.b = 20.0; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/struct-packing-array-of-scalar.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/struct-packing-array-of-scalar.comp deleted file mode 100644 index 587ee4ad15..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/struct-packing-array-of-scalar.comp +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct Foo -{ - packed_float3 a; -}; - -struct SSBOScalar -{ - Foo v[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBOScalar& buffer_scalar [[buffer(0)]]) -{ - buffer_scalar.v[1].a[1u] = 1.0; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/struct-packing-recursive.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/struct-packing-recursive.comp deleted file mode 100644 index e0652b933d..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/struct-packing-recursive.comp +++ /dev/null @@ -1,33 +0,0 @@ -#include -#include - -using namespace metal; - -struct Foo -{ - packed_float4 a; -}; - -struct Bar -{ - Foo a; -}; - -struct Baz -{ - Bar a; -}; - -struct SSBOScalar -{ - float v; - Baz baz; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBOScalar& buffer_scalar [[buffer(0)]]) -{ - buffer_scalar.baz.a.a.a[3u] = 10.0; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/struct-packing.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/struct-packing.comp deleted file mode 100644 index a86809fee9..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/struct-packing.comp +++ /dev/null @@ -1,29 +0,0 @@ -#include -#include - -using namespace metal; - -struct Foo -{ - packed_float3 a; -}; - -struct Bar -{ - packed_float3 a; -}; - -struct SSBOScalar -{ - Foo foo; - Bar bar; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBOScalar& buffer_scalar [[buffer(0)]]) -{ - buffer_scalar.foo.a[0u] = 10.0; - buffer_scalar.bar.a[0u] = 20.0; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/struct-size-padding-array-of-array.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/struct-size-padding-array-of-array.comp deleted file mode 100644 index c30fd070ec..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/struct-size-padding-array-of-array.comp +++ /dev/null @@ -1,54 +0,0 @@ -#include -#include - -using namespace metal; - -struct A -{ - float v; - char _m0_final_padding[12]; -}; - -struct B -{ - float2 v; - char _m0_final_padding[8]; -}; - -struct C -{ - float3 v; -}; - -struct D -{ - float4 v; -}; - -struct E -{ - float4 a; - float2 b; - char _m0_final_padding[8]; -}; - -struct SSBO -{ - A a[2][4]; - B b[2][4]; - C c[2][4]; - D d[2][4]; - float2x4 e[2][4]; - E f[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO& _32 [[buffer(0)]]) -{ - _32.f[0].a = float4(2.0); - float2x2 tmp = float2x2(_32.e[0][1][0].xy, _32.e[0][1][1].xy); - (device float2&)_32.e[1][2][0] = tmp[0]; - (device float2&)_32.e[1][2][1] = tmp[1]; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/struct-size-padding.comp b/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/struct-size-padding.comp deleted file mode 100644 index 98f039fc98..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/packing/struct-size-padding.comp +++ /dev/null @@ -1,54 +0,0 @@ -#include -#include - -using namespace metal; - -struct A -{ - float v; - char _m0_final_padding[12]; -}; - -struct B -{ - float2 v; - char _m0_final_padding[8]; -}; - -struct C -{ - float3 v; -}; - -struct D -{ - float4 v; -}; - -struct E -{ - float4 a; - float2 b; - char _m0_final_padding[8]; -}; - -struct SSBO -{ - A a[4]; - B b[4]; - C c[4]; - D d[4]; - float2x4 e[4]; - E f[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO& _26 [[buffer(0)]]) -{ - _26.f[0].a = float4(2.0); - float2x2 tmp = float2x2(_26.e[1][0].xy, _26.e[1][1].xy); - (device float2&)_26.e[2][0] = tmp[0]; - (device float2&)_26.e[2][1] = tmp[1]; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/tesc/copy-tess-level.tesc b/third_party/spirv-cross/reference/shaders-msl-no-opt/tesc/copy-tess-level.tesc deleted file mode 100644 index 3bb5419795..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/tesc/copy-tess-level.tesc +++ /dev/null @@ -1,70 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -constant spvUnsafeArray _14 = spvUnsafeArray({ 1.0, 2.0 }); -constant spvUnsafeArray _21 = spvUnsafeArray({ 1.0, 2.0, 3.0, 4.0 }); - -struct main0_out -{ - float4 gl_Position; -}; - -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 1]; - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[0] = half(_14[0]); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[1] = half(_14[1]); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(_21[0]); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(_21[1]); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(_21[2]); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3] = half(_21[3]); - spvUnsafeArray inner; - inner = spvUnsafeArray({ float(spvTessLevel[gl_PrimitiveID].insideTessellationFactor[0]), float(spvTessLevel[gl_PrimitiveID].insideTessellationFactor[1]) }); - spvUnsafeArray outer; - outer = spvUnsafeArray({ float(spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0]), float(spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1]), float(spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2]), float(spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3]) }); - gl_out[gl_InvocationID].gl_Position = float4(1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/tesc/passthrough-clip-cull.multi-patch.tesc b/third_party/spirv-cross/reference/shaders-msl-no-opt/tesc/passthrough-clip-cull.multi-patch.tesc deleted file mode 100644 index f55e47baf0..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/tesc/passthrough-clip-cull.multi-patch.tesc +++ /dev/null @@ -1,71 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - spvUnsafeArray gl_ClipDistance; - spvUnsafeArray gl_CullDistance; -}; - -struct main0_in -{ - uint3 m_57; - ushort2 m_61; - spvUnsafeArray gl_ClipDistance; - spvUnsafeArray gl_CullDistance; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], device main0_in* spvIn [[buffer(22)]]) -{ - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - device main0_in* gl_in = &spvIn[min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1) * spvIndirectParams[0]]; - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - gl_out[gl_InvocationID].gl_ClipDistance[0] = gl_in[gl_InvocationID].gl_ClipDistance[0]; - gl_out[gl_InvocationID].gl_ClipDistance[1] = gl_in[gl_InvocationID].gl_ClipDistance[1]; - gl_out[gl_InvocationID].gl_CullDistance[0] = gl_in[gl_InvocationID].gl_CullDistance[0]; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/tesc/tess-level-read-write-in-function-quad.tesc b/third_party/spirv-cross/reference/shaders-msl-no-opt/tesc/tess-level-read-write-in-function-quad.tesc deleted file mode 100644 index c76da101bc..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/tesc/tess-level-read-write-in-function-quad.tesc +++ /dev/null @@ -1,37 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position; -}; - -static inline __attribute__((always_inline)) -void store_tess_level_in_func(device half (&gl_TessLevelInner)[2], device half (&gl_TessLevelOuter)[4]) -{ - gl_TessLevelInner[0] = half(1.0); - gl_TessLevelInner[1] = half(2.0); - gl_TessLevelOuter[0] = half(3.0); - gl_TessLevelOuter[1] = half(4.0); - gl_TessLevelOuter[2] = half(5.0); - gl_TessLevelOuter[3] = half(6.0); -} - -static inline __attribute__((always_inline)) -float load_tess_level_in_func(device half (&gl_TessLevelInner)[2], device half (&gl_TessLevelOuter)[4]) -{ - return float(gl_TessLevelInner[0]) + float(gl_TessLevelOuter[1]); -} - -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 1]; - store_tess_level_in_func(spvTessLevel[gl_PrimitiveID].insideTessellationFactor, spvTessLevel[gl_PrimitiveID].edgeTessellationFactor); - float v = load_tess_level_in_func(spvTessLevel[gl_PrimitiveID].insideTessellationFactor, spvTessLevel[gl_PrimitiveID].edgeTessellationFactor); - gl_out[gl_InvocationID].gl_Position = float4(v); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/tese/builtin-input-automatic-attribute-assignment.tese b/third_party/spirv-cross/reference/shaders-msl-no-opt/tese/builtin-input-automatic-attribute-assignment.tese deleted file mode 100644 index 02581a3e9f..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/tese/builtin-input-automatic-attribute-assignment.tese +++ /dev/null @@ -1,80 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 FragColors [[attribute(2)]]; - float4 gl_Position [[attribute(1)]]; -}; - -struct main0_patchIn -{ - float4 FragColor [[attribute(0)]]; - float4 gl_TessLevelOuter [[attribute(3)]]; - float2 gl_TessLevelInner [[attribute(4)]]; - patch_control_point gl_in; -}; - -[[ patch(quad, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]], uint gl_PrimitiveID [[patch_id]]) -{ - main0_out out = {}; - spvUnsafeArray gl_TessLevelInner = {}; - spvUnsafeArray gl_TessLevelOuter = {}; - gl_TessLevelInner[0] = patchIn.gl_TessLevelInner.x; - gl_TessLevelInner[1] = patchIn.gl_TessLevelInner.y; - gl_TessLevelOuter[0] = patchIn.gl_TessLevelOuter.x; - gl_TessLevelOuter[1] = patchIn.gl_TessLevelOuter.y; - gl_TessLevelOuter[2] = patchIn.gl_TessLevelOuter.z; - gl_TessLevelOuter[3] = patchIn.gl_TessLevelOuter.w; - out.gl_Position = (((((float4(1.0) + patchIn.FragColor) + patchIn.gl_in[0].FragColors) + patchIn.gl_in[1].FragColors) + float4(gl_TessLevelInner[0])) + float4(gl_TessLevelOuter[int(gl_PrimitiveID) & 1])) + patchIn.gl_in[0].gl_Position; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/tese/load-clip-cull.msl2.tese b/third_party/spirv-cross/reference/shaders-msl-no-opt/tese/load-clip-cull.msl2.tese deleted file mode 100644 index 09c5cd7502..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/tese/load-clip-cull.msl2.tese +++ /dev/null @@ -1,37 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 gl_Position [[attribute(0)]]; - float gl_ClipDistance_0 [[attribute(1)]]; - float gl_ClipDistance_1 [[attribute(2)]]; - float gl_CullDistance_0 [[attribute(3)]]; - float gl_CullDistance_1 [[attribute(4)]]; - float gl_CullDistance_2 [[attribute(5)]]; -}; - -struct main0_patchIn -{ - patch_control_point gl_in; -}; - -[[ patch(quad, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]]) -{ - main0_out out = {}; - out.gl_Position.x = patchIn.gl_in[0].gl_ClipDistance_0; - out.gl_Position.y = patchIn.gl_in[1].gl_CullDistance_0; - out.gl_Position.z = patchIn.gl_in[0].gl_ClipDistance_1; - out.gl_Position.w = patchIn.gl_in[1].gl_CullDistance_1; - out.gl_Position += patchIn.gl_in[0].gl_Position; - out.gl_Position += patchIn.gl_in[1].gl_Position; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/vert/cull-distance.for-tess.vert b/third_party/spirv-cross/reference/shaders-msl-no-opt/vert/cull-distance.for-tess.vert deleted file mode 100644 index 5c2311d741..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/vert/cull-distance.for-tess.vert +++ /dev/null @@ -1,62 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 gl_Position; - spvUnsafeArray gl_CullDistance; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint3 spvStageInputSize [[grid_size]], device main0_out* spvOut [[buffer(28)]]) -{ - device main0_out& out = spvOut[gl_GlobalInvocationID.y * spvStageInputSize.x + gl_GlobalInvocationID.x]; - if (any(gl_GlobalInvocationID >= spvStageInputSize)) - return; - out.gl_CullDistance[0] = 1.0; - out.gl_CullDistance[1] = 3.0; - out.gl_Position = float4(1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/vert/functions_nested.vert b/third_party/spirv-cross/reference/shaders-msl-no-opt/vert/functions_nested.vert deleted file mode 100644 index 98c55aaa6e..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/vert/functions_nested.vert +++ /dev/null @@ -1,199 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct attr_desc -{ - int type; - int attribute_size; - int starting_offset; - int stride; - int swap_bytes; - int is_volatile; -}; - -struct VertexBuffer -{ - float4x4 scale_offset_mat; - uint vertex_base_index; - int4 input_attributes[16]; -}; - -struct VertexConstantsBuffer -{ - float4 vc[16]; -}; - -struct main0_out -{ - float4 tc0 [[user(locn0)]]; - float4 back_color [[user(locn10)]]; - float4 gl_Position [[position]]; -}; - -// Returns 2D texture coords corresponding to 1D texel buffer coords -static inline __attribute__((always_inline)) -uint2 spvTexelBufferCoord(uint tc) -{ - return uint2(tc % 4096, tc / 4096); -} - -static inline __attribute__((always_inline)) -attr_desc fetch_desc(thread const int& location, constant VertexBuffer& v_227) -{ - int attribute_flags = v_227.input_attributes[location].w; - attr_desc result; - result.type = v_227.input_attributes[location].x; - result.attribute_size = v_227.input_attributes[location].y; - result.starting_offset = v_227.input_attributes[location].z; - result.stride = attribute_flags & 255; - result.swap_bytes = (attribute_flags >> 8) & 1; - result.is_volatile = (attribute_flags >> 9) & 1; - return result; -} - -static inline __attribute__((always_inline)) -uint get_bits(thread const uint4& v, thread const int& swap) -{ - if (swap != 0) - { - return ((v.w | (v.z << uint(8))) | (v.y << uint(16))) | (v.x << uint(24)); - } - return ((v.x | (v.y << uint(8))) | (v.z << uint(16))) | (v.w << uint(24)); -} - -static inline __attribute__((always_inline)) -float4 fetch_attr(thread const attr_desc& desc, thread const int& vertex_id, thread const texture2d input_stream) -{ - float4 result = float4(0.0, 0.0, 0.0, 1.0); - bool reverse_order = false; - int first_byte = (vertex_id * desc.stride) + desc.starting_offset; - uint4 tmp; - for (int n = 0; n < 4; n++) - { - if (n == desc.attribute_size) - { - break; - } - switch (desc.type) - { - case 0: - { - int _131 = first_byte; - first_byte = _131 + 1; - tmp.x = input_stream.read(spvTexelBufferCoord(_131)).x; - int _138 = first_byte; - first_byte = _138 + 1; - tmp.y = input_stream.read(spvTexelBufferCoord(_138)).x; - uint4 param = tmp; - int param_1 = desc.swap_bytes; - result[n] = float(get_bits(param, param_1)); - break; - } - case 1: - { - int _156 = first_byte; - first_byte = _156 + 1; - tmp.x = input_stream.read(spvTexelBufferCoord(_156)).x; - int _163 = first_byte; - first_byte = _163 + 1; - tmp.y = input_stream.read(spvTexelBufferCoord(_163)).x; - int _170 = first_byte; - first_byte = _170 + 1; - tmp.z = input_stream.read(spvTexelBufferCoord(_170)).x; - int _177 = first_byte; - first_byte = _177 + 1; - tmp.w = input_stream.read(spvTexelBufferCoord(_177)).x; - uint4 param_2 = tmp; - int param_3 = desc.swap_bytes; - result[n] = as_type(get_bits(param_2, param_3)); - break; - } - case 2: - { - int _195 = first_byte; - first_byte = _195 + 1; - result[n] = float(input_stream.read(spvTexelBufferCoord(_195)).x); - reverse_order = desc.swap_bytes != 0; - break; - } - } - } - float4 _210; - if (reverse_order) - { - _210 = result.wzyx; - } - else - { - _210 = result; - } - return _210; -} - -static inline __attribute__((always_inline)) -float4 read_location(thread const int& location, constant VertexBuffer& v_227, thread uint& gl_VertexIndex, thread texture2d buff_in_2, thread texture2d buff_in_1) -{ - int param = location; - attr_desc desc = fetch_desc(param, v_227); - int vertex_id = int(gl_VertexIndex) - int(v_227.vertex_base_index); - if (desc.is_volatile != 0) - { - attr_desc param_1 = desc; - int param_2 = vertex_id; - return fetch_attr(param_1, param_2, buff_in_2); - } - else - { - attr_desc param_3 = desc; - int param_4 = vertex_id; - return fetch_attr(param_3, param_4, buff_in_1); - } -} - -static inline __attribute__((always_inline)) -void vs_adjust(thread float4& dst_reg0, thread float4& dst_reg1, thread float4& dst_reg7, constant VertexBuffer& v_227, thread uint& gl_VertexIndex, thread texture2d buff_in_2, thread texture2d buff_in_1, constant VertexConstantsBuffer& v_309) -{ - int param = 3; - float4 in_diff_color = read_location(param, v_227, gl_VertexIndex, buff_in_2, buff_in_1); - int param_1 = 0; - float4 in_pos = read_location(param_1, v_227, gl_VertexIndex, buff_in_2, buff_in_1); - int param_2 = 8; - float4 in_tc0 = read_location(param_2, v_227, gl_VertexIndex, buff_in_2, buff_in_1); - dst_reg1 = in_diff_color * v_309.vc[13]; - float4 tmp0; - tmp0.x = float4(dot(float4(in_pos.xyz, 1.0), v_309.vc[4])).x; - tmp0.y = float4(dot(float4(in_pos.xyz, 1.0), v_309.vc[5])).y; - tmp0.z = float4(dot(float4(in_pos.xyz, 1.0), v_309.vc[6])).z; - float4 tmp1; - tmp1 = float4(in_tc0.xy.x, in_tc0.xy.y, tmp1.z, tmp1.w); - tmp1.z = v_309.vc[15].x; - dst_reg7.y = float4(dot(float4(tmp1.xyz, 1.0), v_309.vc[8])).y; - dst_reg7.x = float4(dot(float4(tmp1.xyz, 1.0), v_309.vc[7])).x; - dst_reg0.y = float4(dot(float4(tmp0.xyz, 1.0), v_309.vc[1])).y; - dst_reg0.x = float4(dot(float4(tmp0.xyz, 1.0), v_309.vc[0])).x; -} - -vertex main0_out main0(constant VertexBuffer& v_227 [[buffer(0)]], constant VertexConstantsBuffer& v_309 [[buffer(1)]], texture2d buff_in_2 [[texture(0)]], texture2d buff_in_1 [[texture(1)]], uint gl_VertexIndex [[vertex_id]]) -{ - main0_out out = {}; - float4 dst_reg0 = float4(0.0, 0.0, 0.0, 1.0); - float4 dst_reg1 = float4(0.0); - float4 dst_reg7 = float4(0.0); - float4 param = dst_reg0; - float4 param_1 = dst_reg1; - float4 param_2 = dst_reg7; - vs_adjust(param, param_1, param_2, v_227, gl_VertexIndex, buff_in_2, buff_in_1, v_309); - dst_reg0 = param; - dst_reg1 = param_1; - dst_reg7 = param_2; - out.gl_Position = dst_reg0; - out.back_color = dst_reg1; - out.tc0 = dst_reg7; - out.gl_Position *= v_227.scale_offset_mat; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/vert/layer.msl11.invalid.vert b/third_party/spirv-cross/reference/shaders-msl-no-opt/vert/layer.msl11.invalid.vert deleted file mode 100644 index b6f39dca3e..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/vert/layer.msl11.invalid.vert +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; - uint gl_Layer [[render_target_array_index]]; -}; - -struct main0_in -{ - float4 coord [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.gl_Position = in.coord; - out.gl_Layer = uint(int(in.coord.z)); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/vert/pass-array-by-value.force-native-array.vert b/third_party/spirv-cross/reference/shaders-msl-no-opt/vert/pass-array-by-value.force-native-array.vert deleted file mode 100644 index 81202c96b2..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/vert/pass-array-by-value.force-native-array.vert +++ /dev/null @@ -1,157 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -constant float4 _68[4] = { float4(0.0), float4(1.0), float4(2.0), float4(3.0) }; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - int Index1 [[attribute(0)]]; - int Index2 [[attribute(1)]]; -}; - -template -inline void spvArrayCopyFromConstantToStack1(thread T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromConstantToThreadGroup1(threadgroup T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToStack1(thread T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToThreadGroup1(threadgroup T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToStack1(thread T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToThreadGroup1(threadgroup T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToDevice1(device T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromConstantToDevice1(device T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToDevice1(device T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToDevice1(device T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToStack1(thread T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToThreadGroup1(threadgroup T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -static inline __attribute__((always_inline)) -float4 consume_constant_arrays2(thread const float4 (&positions)[4], thread const float4 (&positions2)[4], thread int& Index1, thread int& Index2) -{ - float4 indexable[4]; - spvArrayCopyFromStackToStack1(indexable, positions); - float4 indexable_1[4]; - spvArrayCopyFromStackToStack1(indexable_1, positions2); - return indexable[Index1] + indexable_1[Index2]; -} - -static inline __attribute__((always_inline)) -float4 consume_constant_arrays(thread const float4 (&positions)[4], thread const float4 (&positions2)[4], thread int& Index1, thread int& Index2) -{ - return consume_constant_arrays2(positions, positions2, Index1, Index2); -} - -vertex main0_out main0(main0_in in [[stage_in]]) -{ - float4 _68_array_copy[4] = { float4(0.0), float4(1.0), float4(2.0), float4(3.0) }; - main0_out out = {}; - float4 LUT2[4]; - LUT2[0] = float4(10.0); - LUT2[1] = float4(11.0); - LUT2[2] = float4(12.0); - LUT2[3] = float4(13.0); - out.gl_Position = consume_constant_arrays(_68_array_copy, LUT2, in.Index1, in.Index2); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/vert/pass-array-by-value.vert b/third_party/spirv-cross/reference/shaders-msl-no-opt/vert/pass-array-by-value.vert deleted file mode 100644 index f6e3efbecf..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/vert/pass-array-by-value.vert +++ /dev/null @@ -1,87 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -constant spvUnsafeArray _68 = spvUnsafeArray({ float4(0.0), float4(1.0), float4(2.0), float4(3.0) }); - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - int Index1 [[attribute(0)]]; - int Index2 [[attribute(1)]]; -}; - -static inline __attribute__((always_inline)) -float4 consume_constant_arrays2(spvUnsafeArray positions, spvUnsafeArray positions2, thread int& Index1, thread int& Index2) -{ - spvUnsafeArray indexable; - indexable = positions; - spvUnsafeArray indexable_1; - indexable_1 = positions2; - return indexable[Index1] + indexable_1[Index2]; -} - -static inline __attribute__((always_inline)) -float4 consume_constant_arrays(spvUnsafeArray positions, spvUnsafeArray positions2, thread int& Index1, thread int& Index2) -{ - return consume_constant_arrays2(positions, positions2, Index1, Index2); -} - -vertex main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - spvUnsafeArray LUT2; - LUT2[0] = float4(10.0); - LUT2[1] = float4(11.0); - LUT2[2] = float4(12.0); - LUT2[3] = float4(13.0); - out.gl_Position = consume_constant_arrays(_68, LUT2, in.Index1, in.Index2); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/vert/uninitialized-vertex-output.vert b/third_party/spirv-cross/reference/shaders-msl-no-opt/vert/uninitialized-vertex-output.vert deleted file mode 100644 index f8209ae6fc..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/vert/uninitialized-vertex-output.vert +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 Pos [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -vertex main0_out main0() -{ - main0_out out = {}; - out.gl_Position = float4(1.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/vert/unused-subgroup-builtin.msl22.vert b/third_party/spirv-cross/reference/shaders-msl-no-opt/vert/unused-subgroup-builtin.msl22.vert deleted file mode 100644 index 9e024c2095..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/vert/unused-subgroup-builtin.msl22.vert +++ /dev/null @@ -1,9 +0,0 @@ -#include -#include - -using namespace metal; - -vertex void main0() -{ -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/vert/viewport-index.msl2.invalid.vert b/third_party/spirv-cross/reference/shaders-msl-no-opt/vert/viewport-index.msl2.invalid.vert deleted file mode 100644 index e5316c072a..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/vert/viewport-index.msl2.invalid.vert +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; - uint gl_ViewportIndex [[viewport_array_index]]; -}; - -struct main0_in -{ - float4 coord [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.gl_Position = in.coord; - out.gl_ViewportIndex = uint(int(in.coord.z)); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl-no-opt/vulkan/frag/texture-access-function.swizzle.vk.frag b/third_party/spirv-cross/reference/shaders-msl-no-opt/vulkan/frag/texture-access-function.swizzle.vk.frag deleted file mode 100644 index ba31506477..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl-no-opt/vulkan/frag/texture-access-function.swizzle.vk.frag +++ /dev/null @@ -1,204 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 fragColor [[color(0)]]; -}; - -// Returns 2D texture coords corresponding to 1D texel buffer coords -static inline __attribute__((always_inline)) -uint2 spvTexelBufferCoord(uint tc) -{ - return uint2(tc % 4096, tc / 4096); -} - -template struct spvRemoveReference { typedef T type; }; -template struct spvRemoveReference { typedef T type; }; -template struct spvRemoveReference { typedef T type; }; -template inline constexpr thread T&& spvForward(thread typename spvRemoveReference::type& x) -{ - return static_cast(x); -} -template inline constexpr thread T&& spvForward(thread typename spvRemoveReference::type&& x) -{ - return static_cast(x); -} - -enum class spvSwizzle : uint -{ - none = 0, - zero, - one, - red, - green, - blue, - alpha -}; - -template -inline T spvGetSwizzle(vec x, T c, spvSwizzle s) -{ - switch (s) - { - case spvSwizzle::none: - return c; - case spvSwizzle::zero: - return 0; - case spvSwizzle::one: - return 1; - case spvSwizzle::red: - return x.r; - case spvSwizzle::green: - return x.g; - case spvSwizzle::blue: - return x.b; - case spvSwizzle::alpha: - return x.a; - } -} - -// Wrapper function that swizzles texture samples and fetches. -template -inline vec spvTextureSwizzle(vec x, uint s) -{ - if (!s) - return x; - return vec(spvGetSwizzle(x, x.r, spvSwizzle((s >> 0) & 0xFF)), spvGetSwizzle(x, x.g, spvSwizzle((s >> 8) & 0xFF)), spvGetSwizzle(x, x.b, spvSwizzle((s >> 16) & 0xFF)), spvGetSwizzle(x, x.a, spvSwizzle((s >> 24) & 0xFF))); -} - -template -inline T spvTextureSwizzle(T x, uint s) -{ - return spvTextureSwizzle(vec(x, 0, 0, 1), s).x; -} - -// Wrapper function that swizzles texture gathers. -template class Tex, typename... Ts> -inline vec spvGatherSwizzle(const thread Tex& t, sampler s, uint sw, component c, Ts... params) METAL_CONST_ARG(c) -{ - if (sw) - { - switch (spvSwizzle((sw >> (uint(c) * 8)) & 0xFF)) - { - case spvSwizzle::none: - break; - case spvSwizzle::zero: - return vec(0, 0, 0, 0); - case spvSwizzle::one: - return vec(1, 1, 1, 1); - case spvSwizzle::red: - return t.gather(s, spvForward(params)..., component::x); - case spvSwizzle::green: - return t.gather(s, spvForward(params)..., component::y); - case spvSwizzle::blue: - return t.gather(s, spvForward(params)..., component::z); - case spvSwizzle::alpha: - return t.gather(s, spvForward(params)..., component::w); - } - } - switch (c) - { - case component::x: - return t.gather(s, spvForward(params)..., component::x); - case component::y: - return t.gather(s, spvForward(params)..., component::y); - case component::z: - return t.gather(s, spvForward(params)..., component::z); - case component::w: - return t.gather(s, spvForward(params)..., component::w); - } -} - -// Wrapper function that swizzles depth texture gathers. -template class Tex, typename... Ts> -inline vec spvGatherCompareSwizzle(const thread Tex& t, sampler s, uint sw, Ts... params) -{ - if (sw) - { - switch (spvSwizzle(sw & 0xFF)) - { - case spvSwizzle::none: - case spvSwizzle::red: - break; - case spvSwizzle::zero: - case spvSwizzle::green: - case spvSwizzle::blue: - case spvSwizzle::alpha: - return vec(0, 0, 0, 0); - case spvSwizzle::one: - return vec(1, 1, 1, 1); - } - } - return t.gather_compare(s, spvForward(params)...); -} - -static inline __attribute__((always_inline)) -float4 do_samples(thread const texture1d t1, thread const sampler t1Smplr, constant uint& t1Swzl, thread const texture2d t2, constant uint& t2Swzl, thread const texture3d t3, thread const sampler t3Smplr, constant uint& t3Swzl, thread const texturecube tc, constant uint& tcSwzl, thread const texture2d_array t2a, thread const sampler t2aSmplr, constant uint& t2aSwzl, thread const texturecube_array tca, thread const sampler tcaSmplr, constant uint& tcaSwzl, thread const texture2d tb, thread const depth2d d2, thread const sampler d2Smplr, constant uint& d2Swzl, thread const depthcube dc, thread const sampler dcSmplr, constant uint& dcSwzl, thread const depth2d_array d2a, constant uint& d2aSwzl, thread const depthcube_array dca, thread const sampler dcaSmplr, constant uint& dcaSwzl, thread sampler defaultSampler, thread sampler shadowSampler) -{ - float4 c = spvTextureSwizzle(t1.sample(t1Smplr, 0.0), t1Swzl); - c = spvTextureSwizzle(t2.sample(defaultSampler, float2(0.0)), t2Swzl); - c = spvTextureSwizzle(t3.sample(t3Smplr, float3(0.0)), t3Swzl); - c = spvTextureSwizzle(tc.sample(defaultSampler, float3(0.0)), tcSwzl); - c = spvTextureSwizzle(t2a.sample(t2aSmplr, float3(0.0).xy, uint(round(float3(0.0).z))), t2aSwzl); - c = spvTextureSwizzle(tca.sample(tcaSmplr, float4(0.0).xyz, uint(round(float4(0.0).w))), tcaSwzl); - c.x = spvTextureSwizzle(d2.sample_compare(d2Smplr, float3(0.0, 0.0, 1.0).xy, 1.0), d2Swzl); - c.x = spvTextureSwizzle(dc.sample_compare(dcSmplr, float4(0.0, 0.0, 0.0, 1.0).xyz, 1.0), dcSwzl); - c.x = spvTextureSwizzle(d2a.sample_compare(shadowSampler, float4(0.0, 0.0, 0.0, 1.0).xy, uint(round(float4(0.0, 0.0, 0.0, 1.0).z)), 1.0), d2aSwzl); - c.x = spvTextureSwizzle(dca.sample_compare(dcaSmplr, float4(0.0).xyz, uint(round(float4(0.0).w)), 1.0), dcaSwzl); - c = spvTextureSwizzle(t1.sample(t1Smplr, float2(0.0, 1.0).x / float2(0.0, 1.0).y), t1Swzl); - c = spvTextureSwizzle(t2.sample(defaultSampler, float3(0.0, 0.0, 1.0).xy / float3(0.0, 0.0, 1.0).z), t2Swzl); - c = spvTextureSwizzle(t3.sample(t3Smplr, float4(0.0, 0.0, 0.0, 1.0).xyz / float4(0.0, 0.0, 0.0, 1.0).w), t3Swzl); - float4 _119 = float4(0.0, 0.0, 1.0, 1.0); - _119.z = 1.0; - c.x = spvTextureSwizzle(d2.sample_compare(d2Smplr, _119.xy / _119.z, 1.0 / _119.z), d2Swzl); - c = spvTextureSwizzle(t1.sample(t1Smplr, 0.0), t1Swzl); - c = spvTextureSwizzle(t2.sample(defaultSampler, float2(0.0), level(0.0)), t2Swzl); - c = spvTextureSwizzle(t3.sample(t3Smplr, float3(0.0), level(0.0)), t3Swzl); - c = spvTextureSwizzle(tc.sample(defaultSampler, float3(0.0), level(0.0)), tcSwzl); - c = spvTextureSwizzle(t2a.sample(t2aSmplr, float3(0.0).xy, uint(round(float3(0.0).z)), level(0.0)), t2aSwzl); - c = spvTextureSwizzle(tca.sample(tcaSmplr, float4(0.0).xyz, uint(round(float4(0.0).w)), level(0.0)), tcaSwzl); - c.x = spvTextureSwizzle(d2.sample_compare(d2Smplr, float3(0.0, 0.0, 1.0).xy, 1.0, level(0.0)), d2Swzl); - c = spvTextureSwizzle(t1.sample(t1Smplr, float2(0.0, 1.0).x / float2(0.0, 1.0).y), t1Swzl); - c = spvTextureSwizzle(t2.sample(defaultSampler, float3(0.0, 0.0, 1.0).xy / float3(0.0, 0.0, 1.0).z, level(0.0)), t2Swzl); - c = spvTextureSwizzle(t3.sample(t3Smplr, float4(0.0, 0.0, 0.0, 1.0).xyz / float4(0.0, 0.0, 0.0, 1.0).w, level(0.0)), t3Swzl); - float4 _153 = float4(0.0, 0.0, 1.0, 1.0); - _153.z = 1.0; - c.x = spvTextureSwizzle(d2.sample_compare(d2Smplr, _153.xy / _153.z, 1.0 / _153.z, level(0.0)), d2Swzl); - c = spvTextureSwizzle(t1.read(uint(0)), t1Swzl); - c = spvTextureSwizzle(t2.read(uint2(int2(0)), 0), t2Swzl); - c = spvTextureSwizzle(t3.read(uint3(int3(0)), 0), t3Swzl); - c = spvTextureSwizzle(t2a.read(uint2(int3(0).xy), uint(int3(0).z), 0), t2aSwzl); - c = tb.read(spvTexelBufferCoord(0)); - c = spvGatherSwizzle(t2, defaultSampler, t2Swzl, component::x, float2(0.0), int2(0)); - c = spvGatherSwizzle(tc, defaultSampler, tcSwzl, component::y, float3(0.0)); - c = spvGatherSwizzle(t2a, t2aSmplr, t2aSwzl, component::z, float3(0.0).xy, uint(round(float3(0.0).z)), int2(0)); - c = spvGatherSwizzle(tca, tcaSmplr, tcaSwzl, component::w, float4(0.0).xyz, uint(round(float4(0.0).w))); - c = spvGatherCompareSwizzle(d2, d2Smplr, d2Swzl, float2(0.0), 1.0); - c = spvGatherCompareSwizzle(dc, dcSmplr, dcSwzl, float3(0.0), 1.0); - c = spvGatherCompareSwizzle(d2a, shadowSampler, d2aSwzl, float3(0.0).xy, uint(round(float3(0.0).z)), 1.0); - c = spvGatherCompareSwizzle(dca, dcaSmplr, dcaSwzl, float4(0.0).xyz, uint(round(float4(0.0).w)), 1.0); - return c; -} - -fragment main0_out main0(constant uint* spvSwizzleConstants [[buffer(30)]], texture1d tex1d [[texture(0)]], texture2d tex2d [[texture(1)]], texture3d tex3d [[texture(2)]], texturecube texCube [[texture(3)]], texture2d_array tex2dArray [[texture(4)]], texturecube_array texCubeArray [[texture(5)]], texture2d texBuffer [[texture(6)]], depth2d depth2d [[texture(7)]], depthcube depthCube [[texture(8)]], depth2d_array depth2dArray [[texture(9)]], depthcube_array depthCubeArray [[texture(10)]], sampler defaultSampler [[sampler(0)]], sampler shadowSampler [[sampler(1)]], sampler tex1dSmplr [[sampler(2)]], sampler tex3dSmplr [[sampler(3)]], sampler tex2dArraySmplr [[sampler(4)]], sampler texCubeArraySmplr [[sampler(5)]], sampler depth2dSmplr [[sampler(6)]], sampler depthCubeSmplr [[sampler(7)]], sampler depthCubeArraySmplr [[sampler(8)]]) -{ - main0_out out = {}; - constant uint& tex1dSwzl = spvSwizzleConstants[0]; - constant uint& tex2dSwzl = spvSwizzleConstants[1]; - constant uint& tex3dSwzl = spvSwizzleConstants[2]; - constant uint& texCubeSwzl = spvSwizzleConstants[3]; - constant uint& tex2dArraySwzl = spvSwizzleConstants[4]; - constant uint& texCubeArraySwzl = spvSwizzleConstants[5]; - constant uint& depth2dSwzl = spvSwizzleConstants[7]; - constant uint& depthCubeSwzl = spvSwizzleConstants[8]; - constant uint& depth2dArraySwzl = spvSwizzleConstants[9]; - constant uint& depthCubeArraySwzl = spvSwizzleConstants[10]; - out.fragColor = do_samples(tex1d, tex1dSmplr, tex1dSwzl, tex2d, tex2dSwzl, tex3d, tex3dSmplr, tex3dSwzl, texCube, texCubeSwzl, tex2dArray, tex2dArraySmplr, tex2dArraySwzl, texCubeArray, texCubeArraySmplr, texCubeArraySwzl, texBuffer, depth2d, depth2dSmplr, depth2dSwzl, depthCube, depthCubeSmplr, depthCubeSwzl, depth2dArray, depth2dArraySwzl, depthCubeArray, depthCubeArraySmplr, depthCubeArraySwzl, defaultSampler, shadowSampler); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/amd/shader_trinary_minmax.msl21.comp b/third_party/spirv-cross/reference/shaders-msl/amd/shader_trinary_minmax.msl21.comp deleted file mode 100644 index 1440471964..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/amd/shader_trinary_minmax.msl21.comp +++ /dev/null @@ -1,14 +0,0 @@ -#include -#include - -using namespace metal; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(64u, 1u, 1u); - -kernel void main0() -{ - int t11 = min3(0, 3, 2); - int t12 = max3(0, 3, 2); - int t13 = median3(0, 3, 2); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/comp/atomic-decrement.asm.comp b/third_party/spirv-cross/reference/shaders-msl/asm/comp/atomic-decrement.asm.comp deleted file mode 100644 index e250770dc2..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/comp/atomic-decrement.asm.comp +++ /dev/null @@ -1,29 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wunused-variable" - -#include -#include -#include - -using namespace metal; - -struct u0_counters -{ - uint c; -}; - -// Returns 2D texture coords corresponding to 1D texel buffer coords -static inline __attribute__((always_inline)) -uint2 spvTexelBufferCoord(uint tc) -{ - return uint2(tc % 4096, tc / 4096); -} - -kernel void main0(device u0_counters& u0_counter [[buffer(0)]], texture2d u0 [[texture(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - uint _29 = atomic_fetch_sub_explicit((device atomic_uint*)&u0_counter.c, 1, memory_order_relaxed); - float4 r0; - r0.x = as_type(_29); - u0.write(uint4(uint(int(gl_GlobalInvocationID.x))), spvTexelBufferCoord(((uint(as_type(r0.x)) * 1u) + (uint(0) >> 2u)))); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/comp/atomic-increment.asm.comp b/third_party/spirv-cross/reference/shaders-msl/asm/comp/atomic-increment.asm.comp deleted file mode 100644 index 22c104f933..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/comp/atomic-increment.asm.comp +++ /dev/null @@ -1,29 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wunused-variable" - -#include -#include -#include - -using namespace metal; - -struct u0_counters -{ - uint c; -}; - -// Returns 2D texture coords corresponding to 1D texel buffer coords -static inline __attribute__((always_inline)) -uint2 spvTexelBufferCoord(uint tc) -{ - return uint2(tc % 4096, tc / 4096); -} - -kernel void main0(device u0_counters& u0_counter [[buffer(0)]], texture2d u0 [[texture(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - uint _29 = atomic_fetch_add_explicit((device atomic_uint*)&u0_counter.c, 1, memory_order_relaxed); - float4 r0; - r0.x = as_type(_29); - u0.write(uint4(uint(int(gl_GlobalInvocationID.x))), spvTexelBufferCoord(((uint(as_type(r0.x)) * 1u) + (uint(0) >> 2u)))); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/comp/bitcast_iadd.asm.comp b/third_party/spirv-cross/reference/shaders-msl/asm/comp/bitcast_iadd.asm.comp deleted file mode 100644 index ad61d750d4..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/comp/bitcast_iadd.asm.comp +++ /dev/null @@ -1,29 +0,0 @@ -#include -#include - -using namespace metal; - -struct _3 -{ - int4 _m0; - uint4 _m1; -}; - -struct _4 -{ - uint4 _m0; - int4 _m1; -}; - -kernel void main0(device _3& restrict _5 [[buffer(0)]], device _4& restrict _6 [[buffer(1)]]) -{ - _6._m0 = _5._m1 + uint4(_5._m0); - _6._m0 = uint4(_5._m0) + _5._m1; - _6._m0 = _5._m1 + _5._m1; - _6._m0 = uint4(_5._m0 + _5._m0); - _6._m1 = int4(_5._m1 + _5._m1); - _6._m1 = _5._m0 + _5._m0; - _6._m1 = int4(_5._m1) + _5._m0; - _6._m1 = _5._m0 + int4(_5._m1); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/comp/bitcast_icmp.asm.comp b/third_party/spirv-cross/reference/shaders-msl/asm/comp/bitcast_icmp.asm.comp deleted file mode 100644 index 31c71daa4b..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/comp/bitcast_icmp.asm.comp +++ /dev/null @@ -1,29 +0,0 @@ -#include -#include - -using namespace metal; - -struct _3 -{ - int4 _m0; - uint4 _m1; -}; - -struct _4 -{ - uint4 _m0; - int4 _m1; -}; - -kernel void main0(device _3& restrict _5 [[buffer(0)]], device _4& restrict _6 [[buffer(1)]]) -{ - _6._m0 = select(uint4(0u), uint4(1u), int4(_5._m1) < _5._m0); - _6._m0 = select(uint4(0u), uint4(1u), int4(_5._m1) <= _5._m0); - _6._m0 = select(uint4(0u), uint4(1u), _5._m1 < uint4(_5._m0)); - _6._m0 = select(uint4(0u), uint4(1u), _5._m1 <= uint4(_5._m0)); - _6._m0 = select(uint4(0u), uint4(1u), int4(_5._m1) > _5._m0); - _6._m0 = select(uint4(0u), uint4(1u), int4(_5._m1) >= _5._m0); - _6._m0 = select(uint4(0u), uint4(1u), _5._m1 > uint4(_5._m0)); - _6._m0 = select(uint4(0u), uint4(1u), _5._m1 >= uint4(_5._m0)); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/comp/bitcast_sar.asm.comp b/third_party/spirv-cross/reference/shaders-msl/asm/comp/bitcast_sar.asm.comp deleted file mode 100644 index 4176830588..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/comp/bitcast_sar.asm.comp +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include - -using namespace metal; - -struct _3 -{ - int4 _m0; - uint4 _m1; -}; - -struct _4 -{ - uint4 _m0; - int4 _m1; -}; - -kernel void main0(device _3& _5 [[buffer(0)]], device _4& _6 [[buffer(1)]]) -{ - int4 _22 = _5._m0; - uint4 _23 = _5._m1; - _6._m0 = uint4(int4(_23) >> _22); - _6._m0 = uint4(_22 >> int4(_23)); - _6._m0 = uint4(int4(_23) >> int4(_23)); - _6._m0 = uint4(_22 >> _22); - _6._m1 = int4(_23) >> int4(_23); - _6._m1 = _22 >> _22; - _6._m1 = int4(_23) >> _22; - _6._m1 = _22 >> int4(_23); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/comp/bitcast_sdiv.asm.comp b/third_party/spirv-cross/reference/shaders-msl/asm/comp/bitcast_sdiv.asm.comp deleted file mode 100644 index 6b80dff310..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/comp/bitcast_sdiv.asm.comp +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include - -using namespace metal; - -struct _3 -{ - int4 _m0; - uint4 _m1; -}; - -struct _4 -{ - uint4 _m0; - int4 _m1; -}; - -kernel void main0(device _3& _5 [[buffer(0)]], device _4& _6 [[buffer(1)]]) -{ - int4 _22 = _5._m0; - uint4 _23 = _5._m1; - _6._m0 = uint4(int4(_23) / _22); - _6._m0 = uint4(_22 / int4(_23)); - _6._m0 = uint4(int4(_23) / int4(_23)); - _6._m0 = uint4(_22 / _22); - _6._m1 = int4(_23) / int4(_23); - _6._m1 = _22 / _22; - _6._m1 = int4(_23) / _22; - _6._m1 = _22 / int4(_23); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/comp/bitcast_slr.asm.comp b/third_party/spirv-cross/reference/shaders-msl/asm/comp/bitcast_slr.asm.comp deleted file mode 100644 index 1dfca39181..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/comp/bitcast_slr.asm.comp +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include - -using namespace metal; - -struct _3 -{ - int4 _m0; - uint4 _m1; -}; - -struct _4 -{ - uint4 _m0; - int4 _m1; -}; - -kernel void main0(device _3& _5 [[buffer(0)]], device _4& _6 [[buffer(1)]]) -{ - int4 _22 = _5._m0; - uint4 _23 = _5._m1; - _6._m0 = _23 >> uint4(_22); - _6._m0 = uint4(_22) >> _23; - _6._m0 = _23 >> _23; - _6._m0 = uint4(_22) >> uint4(_22); - _6._m1 = int4(_23 >> _23); - _6._m1 = int4(uint4(_22) >> uint4(_22)); - _6._m1 = int4(_23 >> uint4(_22)); - _6._m1 = int4(uint4(_22) >> _23); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/comp/block-name-alias-global.asm.comp b/third_party/spirv-cross/reference/shaders-msl/asm/comp/block-name-alias-global.asm.comp deleted file mode 100644 index 6dcc14ea8d..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/comp/block-name-alias-global.asm.comp +++ /dev/null @@ -1,46 +0,0 @@ -#include -#include - -using namespace metal; - -struct A -{ - int a; - int b; -}; - -struct A_1 -{ - A Data[1]; -}; - -struct A_2 -{ - int a; - int b; - char _m0_final_padding[8]; -}; - -struct A_3 -{ - A_2 Data[1024]; -}; - -struct B -{ - A Data[1]; -}; - -struct B_1 -{ - A_2 Data[1024]; -}; - -kernel void main0(device A_1& C1 [[buffer(0)]], constant A_3& C2 [[buffer(1)]], device B& C3 [[buffer(2)]], constant B_1& C4 [[buffer(3)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - C1.Data[gl_GlobalInvocationID.x].a = C2.Data[gl_GlobalInvocationID.x].a; - C1.Data[gl_GlobalInvocationID.x].b = C2.Data[gl_GlobalInvocationID.x].b; - C3.Data[gl_GlobalInvocationID.x].a = C4.Data[gl_GlobalInvocationID.x].a; - C3.Data[gl_GlobalInvocationID.x].b = C4.Data[gl_GlobalInvocationID.x].b; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/comp/buffer-write-relative-addr.asm.comp b/third_party/spirv-cross/reference/shaders-msl/asm/comp/buffer-write-relative-addr.asm.comp deleted file mode 100644 index 57d2205a47..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/comp/buffer-write-relative-addr.asm.comp +++ /dev/null @@ -1,32 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct cb5_struct -{ - float4 _m0[5]; -}; - -// Returns 2D texture coords corresponding to 1D texel buffer coords -static inline __attribute__((always_inline)) -uint2 spvTexelBufferCoord(uint tc) -{ - return uint2(tc % 4096, tc / 4096); -} - -kernel void main0(constant cb5_struct& cb0_5 [[buffer(0)]], texture2d u0 [[texture(0)]], uint3 gl_LocalInvocationID [[thread_position_in_threadgroup]]) -{ - float4 r0; - r0.x = as_type(int(gl_LocalInvocationID.x) << 4); - r0.y = as_type(int(gl_LocalInvocationID.x)); - uint _44 = as_type(r0.x) >> 2u; - uint4 _51 = as_type(cb0_5._m0[uint(as_type(r0.y)) + 1u]); - u0.write(_51.xxxx, spvTexelBufferCoord(_44)); - u0.write(_51.yyyy, spvTexelBufferCoord((_44 + 1u))); - u0.write(_51.zzzz, spvTexelBufferCoord((_44 + 2u))); - u0.write(_51.wwww, spvTexelBufferCoord((_44 + 3u))); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/comp/buffer-write.asm.comp b/third_party/spirv-cross/reference/shaders-msl/asm/comp/buffer-write.asm.comp deleted file mode 100644 index 8c9e23aa06..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/comp/buffer-write.asm.comp +++ /dev/null @@ -1,24 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct cb -{ - float value; -}; - -// Returns 2D texture coords corresponding to 1D texel buffer coords -static inline __attribute__((always_inline)) -uint2 spvTexelBufferCoord(uint tc) -{ - return uint2(tc % 4096, tc / 4096); -} - -kernel void main0(constant cb& _6 [[buffer(0)]], texture2d _buffer [[texture(0)]], uint3 gl_WorkGroupID [[threadgroup_position_in_grid]], uint gl_LocalInvocationIndex [[thread_index_in_threadgroup]]) -{ - _buffer.write(float4(_6.value), spvTexelBufferCoord(((32u * gl_WorkGroupID.x) + gl_LocalInvocationIndex))); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/comp/global-parameter-name-alias.asm.comp b/third_party/spirv-cross/reference/shaders-msl/asm/comp/global-parameter-name-alias.asm.comp deleted file mode 100644 index ec1b2a2da2..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/comp/global-parameter-name-alias.asm.comp +++ /dev/null @@ -1,33 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct ssbo -{ - uint _data[1]; -}; - -static inline __attribute__((always_inline)) -void Load(thread const uint& size, const device ssbo& ssbo_1) -{ - int byteAddrTemp = int(size >> uint(2)); - uint4 data = uint4(ssbo_1._data[byteAddrTemp], ssbo_1._data[byteAddrTemp + 1], ssbo_1._data[byteAddrTemp + 2], ssbo_1._data[byteAddrTemp + 3]); -} - -static inline __attribute__((always_inline)) -void _main(thread const uint3& id, const device ssbo& ssbo_1) -{ - uint param = 4u; - Load(param, ssbo_1); -} - -kernel void main0(const device ssbo& ssbo_1 [[buffer(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - uint3 id = gl_GlobalInvocationID; - uint3 param = id; - _main(param, ssbo_1); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/comp/image-load-store-short-vector.invalid.asm.comp b/third_party/spirv-cross/reference/shaders-msl/asm/comp/image-load-store-short-vector.invalid.asm.comp deleted file mode 100644 index fca572e36f..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/comp/image-load-store-short-vector.invalid.asm.comp +++ /dev/null @@ -1,22 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -static inline __attribute__((always_inline)) -void _main(thread const uint3& id, thread texture2d TargetTexture) -{ - float2 loaded = TargetTexture.read(uint2(id.xy)).xy; - float2 storeTemp = loaded + float2(1.0); - TargetTexture.write(storeTemp.xyyy, uint2((id.xy + uint2(1u)))); -} - -kernel void main0(texture2d TargetTexture [[texture(0)]], uint3 gl_WorkGroupID [[threadgroup_position_in_grid]]) -{ - uint3 id = gl_WorkGroupID; - uint3 param = id; - _main(param, TargetTexture); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/comp/multiple-entry.asm.comp b/third_party/spirv-cross/reference/shaders-msl/asm/comp/multiple-entry.asm.comp deleted file mode 100644 index 25ccf623e7..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/comp/multiple-entry.asm.comp +++ /dev/null @@ -1,29 +0,0 @@ -#include -#include - -using namespace metal; - -struct _6 -{ - int4 _m0; - uint4 _m1; -}; - -struct _7 -{ - uint4 _m0; - int4 _m1; -}; - -kernel void main0(device _6& restrict _8 [[buffer(0)]], device _7& restrict _9 [[buffer(1)]]) -{ - _9._m0 = _8._m1 + uint4(_8._m0); - _9._m0 = uint4(_8._m0) + _8._m1; - _9._m0 = _8._m1 + _8._m1; - _9._m0 = uint4(_8._m0 + _8._m0); - _9._m1 = int4(_8._m1 + _8._m1); - _9._m1 = _8._m0 + _8._m0; - _9._m1 = int4(_8._m1) + _8._m0; - _9._m1 = _8._m0 + int4(_8._m1); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/comp/quantize.asm.comp b/third_party/spirv-cross/reference/shaders-msl/asm/comp/quantize.asm.comp deleted file mode 100644 index 1839ec7a3b..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/comp/quantize.asm.comp +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO0 -{ - float scalar; - float2 vec2_val; - float3 vec3_val; - float4 vec4_val; -}; - -kernel void main0(device SSBO0& _4 [[buffer(0)]]) -{ - _4.scalar = float(half(_4.scalar)); - _4.vec2_val = float2(half2(_4.vec2_val)); - _4.vec3_val = float3(half3(_4.vec3_val)); - _4.vec4_val = float4(half4(_4.vec4_val)); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/comp/relaxed-block-layout.asm.comp b/third_party/spirv-cross/reference/shaders-msl/asm/comp/relaxed-block-layout.asm.comp deleted file mode 100644 index 6728a4e2d3..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/comp/relaxed-block-layout.asm.comp +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct foo -{ - uint bar; - packed_float3 baz; - uchar quux; - packed_uchar4 blah; - packed_half2 wibble; -}; - -kernel void main0(device foo& _8 [[buffer(0)]], uint3 gl_LocalInvocationID [[thread_position_in_threadgroup]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint3 gl_WorkGroupID [[threadgroup_position_in_grid]], uint3 gl_NumWorkGroups [[threadgroups_per_grid]]) -{ - _8.bar = gl_LocalInvocationID.x; - _8.baz = float3(gl_GlobalInvocationID); - _8.blah = uchar4(uint4(uint4(uchar4(_8.blah)).xyz + gl_WorkGroupID, 0u)); - _8.wibble = half2(float2(half2(_8.wibble)) * float2(gl_NumWorkGroups.xy)); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/comp/specialization-constant-workgroup.asm.comp b/third_party/spirv-cross/reference/shaders-msl/asm/comp/specialization-constant-workgroup.asm.comp deleted file mode 100644 index 1e2880f4e8..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/comp/specialization-constant-workgroup.asm.comp +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - float a; -}; - -constant uint _5_tmp [[function_constant(10)]]; -constant uint _5 = is_function_constant_defined(_5_tmp) ? _5_tmp : 9u; -constant uint _6_tmp [[function_constant(12)]]; -constant uint _6 = is_function_constant_defined(_6_tmp) ? _6_tmp : 4u; -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(_5, 20u, _6); - -kernel void main0(device SSBO& _4 [[buffer(0)]]) -{ - _4.a += 1.0; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/comp/struct-resource-name-aliasing.asm.comp b/third_party/spirv-cross/reference/shaders-msl/asm/comp/struct-resource-name-aliasing.asm.comp deleted file mode 100644 index fa7d269821..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/comp/struct-resource-name-aliasing.asm.comp +++ /dev/null @@ -1,24 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct bufA -{ - uint _data[1]; -}; - -static inline __attribute__((always_inline)) -void _main(device bufA& bufA_1, device bufA& bufB) -{ - bufA_1._data[0] = 0u; - bufB._data[0] = 0u; -} - -kernel void main0(device bufA& bufA_1 [[buffer(0)]], device bufA& bufB [[buffer(1)]]) -{ - _main(bufA_1, bufB); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/comp/variable-pointers-2.asm.comp b/third_party/spirv-cross/reference/shaders-msl/asm/comp/variable-pointers-2.asm.comp deleted file mode 100644 index dafd6d5d4f..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/comp/variable-pointers-2.asm.comp +++ /dev/null @@ -1,63 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct foo -{ - int a[128]; - uint b; - float2 c; -}; - -struct bar -{ - int d; -}; - -static inline __attribute__((always_inline)) -device foo* select_buffer(device foo& a, constant bar& cb) -{ - return (cb.d != 0) ? &a : nullptr; -} - -static inline __attribute__((always_inline)) -thread uint3* select_input(thread uint3& gl_GlobalInvocationID, thread uint3& gl_LocalInvocationID, constant bar& cb) -{ - return (cb.d != 0) ? &gl_GlobalInvocationID : &gl_LocalInvocationID; -} - -kernel void main0(device foo& buf [[buffer(0)]], constant bar& cb [[buffer(1)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint3 gl_LocalInvocationID [[thread_position_in_threadgroup]]) -{ - device foo* _46 = select_buffer(buf, cb); - device foo* _45 = _46; - thread uint3* _47 = select_input(gl_GlobalInvocationID, gl_LocalInvocationID, cb); - device foo* _48 = _45; - device int* _52; - device int* _55; - _52 = &_48->a[0u]; - _55 = &buf.a[0u]; - int _57; - int _58; - for (;;) - { - _57 = *_52; - _58 = *_55; - if (_57 != _58) - { - int _66 = (_57 + _58) + int((*_47).x); - *_52 = _66; - *_55 = _66; - _52 = &_52[1u]; - _55 = &_55[1u]; - continue; - } - else - { - break; - } - } -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/comp/variable-pointers-store-forwarding.asm.comp b/third_party/spirv-cross/reference/shaders-msl/asm/comp/variable-pointers-store-forwarding.asm.comp deleted file mode 100644 index 00c490c77f..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/comp/variable-pointers-store-forwarding.asm.comp +++ /dev/null @@ -1,32 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct foo -{ - int a; -}; - -struct bar -{ - int b; -}; - -static inline __attribute__((always_inline)) -device int* _24(device foo& a, device bar& b, thread uint3& gl_GlobalInvocationID) -{ - return (gl_GlobalInvocationID.x != 0u) ? &a.a : &b.b; -} - -kernel void main0(device foo& x [[buffer(0)]], device bar& y [[buffer(1)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - device int* _34 = _24(x, y, gl_GlobalInvocationID); - device int* _33 = _34; - int _37 = x.a; - *_33 = 0; - y.b = _37 + _37; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/comp/vector-builtin-type-cast-func.asm.comp b/third_party/spirv-cross/reference/shaders-msl/asm/comp/vector-builtin-type-cast-func.asm.comp deleted file mode 100644 index 9fb68a6319..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/comp/vector-builtin-type-cast-func.asm.comp +++ /dev/null @@ -1,34 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct cb1_struct -{ - float4 _RESERVED_IDENTIFIER_FIXUP_m0[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(16u, 16u, 1u); - -static inline __attribute__((always_inline)) -int2 get_texcoord(thread const int2& base, thread const int2& index, thread uint3& gl_LocalInvocationID) -{ - return (base * int3(gl_LocalInvocationID).xy) + index; -} - -kernel void main0(constant cb1_struct& cb0_1 [[buffer(0)]], texture2d u0 [[texture(0)]], uint3 gl_LocalInvocationID [[thread_position_in_threadgroup]]) -{ - int2 r0 = int2(int2(u0.get_width(), u0.get_height()) >> int2(uint2(4u))); - for (int i = 0; i < r0.y; i++) - { - for (int j = 0; j < r0.x; j++) - { - int2 param = r0; - int2 param_1 = int2(i, j); - u0.write(cb0_1._RESERVED_IDENTIFIER_FIXUP_m0[0].xxxx, uint2(get_texcoord(param, param_1, gl_LocalInvocationID))); - } - } -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/comp/vector-builtin-type-cast.asm.comp b/third_party/spirv-cross/reference/shaders-msl/asm/comp/vector-builtin-type-cast.asm.comp deleted file mode 100644 index 405556b9ff..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/comp/vector-builtin-type-cast.asm.comp +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include - -using namespace metal; - -struct cb1_struct -{ - float4 _RESERVED_IDENTIFIER_FIXUP_m0[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(16u, 16u, 1u); - -kernel void main0(constant cb1_struct& cb0_1 [[buffer(0)]], texture2d u0 [[texture(0)]], uint3 gl_LocalInvocationID [[thread_position_in_threadgroup]]) -{ - int2 r0 = int2(int2(u0.get_width(), u0.get_height()) >> int2(uint2(4u))); - for (int i = 0; i < r0.y; i++) - { - for (int j = 0; j < r0.x; j++) - { - u0.write(cb0_1._RESERVED_IDENTIFIER_FIXUP_m0[0].xxxx, uint2(((r0 * int3(gl_LocalInvocationID).xy) + int2(i, j)))); - } - } -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/frag/combined-sampler-reuse.asm.frag b/third_party/spirv-cross/reference/shaders-msl/asm/frag/combined-sampler-reuse.asm.frag deleted file mode 100644 index 703dd0a951..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/frag/combined-sampler-reuse.asm.frag +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float2 vUV [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texture2d uTex [[texture(0)]], sampler uSampler [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor = uTex.sample(uSampler, in.vUV); - out.FragColor += uTex.sample(uSampler, in.vUV, int2(1)); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/frag/default-member-names.asm.frag b/third_party/spirv-cross/reference/shaders-msl/asm/frag/default-member-names.asm.frag deleted file mode 100644 index 3628c4eaae..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/frag/default-member-names.asm.frag +++ /dev/null @@ -1,40 +0,0 @@ -#include -#include - -using namespace metal; - -struct _9 -{ - float _m0; -}; - -struct _10 -{ - float _m0; - float _m1; - float _m2; - float _m3; - float _m4; - float _m5; - float _m6; - float _m7; - float _m8; - float _m9; - float _m10; - float _m11; - _9 _m12; -}; - -struct main0_out -{ - float4 m_3 [[color(0)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - _10 _21; - out.m_3 = float4(_21._m0, _21._m1, _21._m2, _21._m3); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/frag/descriptor-array-unnamed.asm.frag b/third_party/spirv-cross/reference/shaders-msl/asm/frag/descriptor-array-unnamed.asm.frag deleted file mode 100644 index 1870f67194..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/frag/descriptor-array-unnamed.asm.frag +++ /dev/null @@ -1,48 +0,0 @@ -#include -#include - -using namespace metal; - -struct _4 -{ - float4 _m0; -}; - -struct _6 -{ - int _m0; -}; - -struct _7 -{ - float4 _m0; -}; - -struct main0_out -{ - float4 m_3 [[color(0)]]; -}; - -fragment main0_out main0(const device _4* _5_0 [[buffer(0)]], const device _4* _5_1 [[buffer(1)]], const device _4* _5_2 [[buffer(2)]], const device _4* _5_3 [[buffer(3)]], constant _6& _20 [[buffer(4)]], constant _7* _8_0 [[buffer(5)]], constant _7* _8_1 [[buffer(6)]], constant _7* _8_2 [[buffer(7)]], constant _7* _8_3 [[buffer(8)]]) -{ - const device _4* _5[] = - { - _5_0, - _5_1, - _5_2, - _5_3, - }; - - constant _7* _8[] = - { - _8_0, - _8_1, - _8_2, - _8_3, - }; - - main0_out out = {}; - out.m_3 = _5[_20._m0]->_m0 + (_8[_20._m0]->_m0 * float4(0.20000000298023223876953125)); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/frag/disable-renamed-output.frag-output.asm.frag b/third_party/spirv-cross/reference/shaders-msl/asm/frag/disable-renamed-output.frag-output.asm.frag deleted file mode 100644 index b64ccabe6b..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/frag/disable-renamed-output.frag-output.asm.frag +++ /dev/null @@ -1,35 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 o1 [[color(1)]]; - float4 o3 [[color(3)]]; - float4 o6 [[color(6)]]; - float4 o7 [[color(7)]]; -}; - -fragment main0_out main0() -{ - float4 o0; - float4 o2; - float4 o4; - float4 o5; - float gl_FragDepth; - int gl_FragStencilRefARB; - main0_out out = {}; - o0 = float4(0.0, 0.0, 0.0, 1.0); - out.o1 = float4(1.0, 0.0, 0.0, 1.0); - o2 = float4(0.0, 1.0, 0.0, 1.0); - out.o3 = float4(0.0, 0.0, 1.0, 1.0); - o4 = float4(1.0, 0.0, 1.0, 0.5); - o5 = float4(0.25); - out.o6 = float4(0.75); - out.o7 = float4(1.0); - gl_FragDepth = 0.89999997615814208984375; - gl_FragStencilRefARB = uint(127); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/frag/empty-struct.asm.frag b/third_party/spirv-cross/reference/shaders-msl/asm/frag/empty-struct.asm.frag deleted file mode 100644 index e30c5864b2..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/frag/empty-struct.asm.frag +++ /dev/null @@ -1,29 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct EmptyStructTest -{ -}; -static inline __attribute__((always_inline)) -float GetValue(thread const EmptyStructTest& self) -{ - return 0.0; -} - -static inline __attribute__((always_inline)) -float GetValue_1(EmptyStructTest self) -{ - return 0.0; -} - -fragment void main0() -{ - EmptyStructTest emptyStruct; - float value = GetValue(emptyStruct); - value = GetValue_1(EmptyStructTest{ }); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/frag/extract-packed-from-composite.asm.frag b/third_party/spirv-cross/reference/shaders-msl/asm/frag/extract-packed-from-composite.asm.frag deleted file mode 100644 index e926bc5f3e..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/frag/extract-packed-from-composite.asm.frag +++ /dev/null @@ -1,49 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct Foo -{ - float3 a; - float b; -}; - -struct Foo_1 -{ - packed_float3 a; - float b; -}; - -struct buf -{ - Foo_1 results[16]; - float4 bar; -}; - -struct main0_out -{ - float4 _entryPointOutput [[color(0)]]; -}; - -static inline __attribute__((always_inline)) -float4 _main(thread const float4& pos, constant buf& v_11) -{ - int _46 = int(pos.x) % 16; - Foo foo; - foo.a = float3(v_11.results[_46].a); - foo.b = v_11.results[_46].b; - return float4(dot(foo.a, v_11.bar.xyz), foo.b, 0.0, 0.0); -} - -fragment main0_out main0(constant buf& v_11 [[buffer(0)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - float4 pos = gl_FragCoord; - float4 param = pos; - out._entryPointOutput = _main(param, v_11); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/frag/frem.asm.frag b/third_party/spirv-cross/reference/shaders-msl/asm/frag/frem.asm.frag deleted file mode 100644 index ebc73d52df..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/frag/frem.asm.frag +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 vA [[user(locn0)]]; - float4 vB [[user(locn1)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.FragColor = fmod(in.vA, in.vB); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/frag/function-overload-alias.asm.frag b/third_party/spirv-cross/reference/shaders-msl/asm/frag/function-overload-alias.asm.frag deleted file mode 100644 index 40fe5c5d81..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/frag/function-overload-alias.asm.frag +++ /dev/null @@ -1,51 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -static inline __attribute__((always_inline)) -float4 foo(thread const float4& foo_1) -{ - return foo_1 + float4(1.0); -} - -static inline __attribute__((always_inline)) -float4 foo(thread const float3& foo_1) -{ - return foo_1.xyzz + float4(1.0); -} - -static inline __attribute__((always_inline)) -float4 foo_1(thread const float4& foo_2) -{ - return foo_2 + float4(2.0); -} - -static inline __attribute__((always_inline)) -float4 foo(thread const float2& foo_2) -{ - return foo_2.xyxy + float4(2.0); -} - -fragment main0_out main0() -{ - main0_out out = {}; - float4 foo_3 = float4(1.0); - float4 foo_2 = foo(foo_3); - float3 foo_5 = float3(1.0); - float4 foo_4 = foo(foo_5); - float4 foo_7 = float4(1.0); - float4 foo_6 = foo_1(foo_7); - float2 foo_9 = float2(1.0); - float4 foo_8 = foo(foo_9); - out.FragColor = ((foo_2 + foo_4) + foo_6) + foo_8; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/frag/image-extract-reuse.asm.frag b/third_party/spirv-cross/reference/shaders-msl/asm/frag/image-extract-reuse.asm.frag deleted file mode 100644 index 0d691b306d..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/frag/image-extract-reuse.asm.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - int2 Size [[color(0)]]; -}; - -fragment main0_out main0(texture2d uTexture [[texture(0)]], sampler uTextureSmplr [[sampler(0)]]) -{ - main0_out out = {}; - out.Size = int2(uTexture.get_width(), uTexture.get_height()) + int2(uTexture.get_width(1), uTexture.get_height(1)); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/frag/implicit-read-dep-phi.asm.frag b/third_party/spirv-cross/reference/shaders-msl/asm/frag/implicit-read-dep-phi.asm.frag deleted file mode 100644 index 830df0c7e9..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/frag/implicit-read-dep-phi.asm.frag +++ /dev/null @@ -1,49 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 v0 [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texture2d uImage [[texture(0)]], sampler uImageSmplr [[sampler(0)]]) -{ - main0_out out = {}; - int i = 0; - float phi; - float4 _36; - phi = 1.0; - _36 = float4(1.0, 2.0, 1.0, 2.0); - for (;;) - { - out.FragColor = _36; - if (i < 4) - { - if (in.v0[i] > 0.0) - { - float2 _48 = float2(phi); - i++; - phi += 2.0; - _36 = uImage.sample(uImageSmplr, _48, level(0.0)); - continue; - } - else - { - break; - } - } - else - { - break; - } - } - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/frag/inf-nan-constant.asm.frag b/third_party/spirv-cross/reference/shaders-msl/asm/frag/inf-nan-constant.asm.frag deleted file mode 100644 index 8537dac19a..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/frag/inf-nan-constant.asm.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float3 FragColor [[color(0)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - out.FragColor = float3(as_type(0x7f800000u), as_type(0xff800000u), as_type(0x7fc00000u)); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/frag/interpolation-qualifiers-struct.asm.frag b/third_party/spirv-cross/reference/shaders-msl/asm/frag/interpolation-qualifiers-struct.asm.frag deleted file mode 100644 index 41472adac9..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/frag/interpolation-qualifiers-struct.asm.frag +++ /dev/null @@ -1,47 +0,0 @@ -#include -#include - -using namespace metal; - -struct Input -{ - float2 v0; - float2 v1; - float3 v2; - float4 v3; - float v4; - float v5; - float v6; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float2 Input_v0 [[user(locn0)]]; - float2 Input_v1 [[user(locn1), center_no_perspective]]; - float3 Input_v2 [[user(locn2), centroid_perspective]]; - float4 Input_v3 [[user(locn3), centroid_no_perspective]]; - float Input_v4 [[user(locn4), sample_perspective]]; - float Input_v5 [[user(locn5), sample_no_perspective]]; - float Input_v6 [[user(locn6), flat]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - Input inp = {}; - inp.v0 = in.Input_v0; - inp.v1 = in.Input_v1; - inp.v2 = in.Input_v2; - inp.v3 = in.Input_v3; - inp.v4 = in.Input_v4; - inp.v5 = in.Input_v5; - inp.v6 = in.Input_v6; - out.FragColor = float4(inp.v0.x + inp.v1.y, inp.v2.xy, ((inp.v3.w * inp.v4) + inp.v5) - inp.v6); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/frag/line-directive.line.asm.frag b/third_party/spirv-cross/reference/shaders-msl/asm/frag/line-directive.line.asm.frag deleted file mode 100644 index 38fbd27ba3..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/frag/line-directive.line.asm.frag +++ /dev/null @@ -1,85 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -struct main0_in -{ - float vColor [[user(locn0)]]; -}; - -#line 6 "test.frag" -static inline __attribute__((always_inline)) -void func(thread float& FragColor, thread float& vColor) -{ -#line 8 "test.frag" - FragColor = 1.0; -#line 9 "test.frag" - FragColor = 2.0; -#line 10 "test.frag" - if (vColor < 0.0) - { -#line 12 "test.frag" - FragColor = 3.0; - } - else - { -#line 16 "test.frag" - FragColor = 4.0; - } -#line 19 "test.frag" - for (int i = 0; float(i) < (40.0 + vColor); i += (int(vColor) + 5)) - { -#line 21 "test.frag" - FragColor += 0.20000000298023223876953125; -#line 22 "test.frag" - FragColor += 0.300000011920928955078125; - } -#line 25 "test.frag" - switch (int(vColor)) - { - case 0: - { -#line 28 "test.frag" - FragColor += 0.20000000298023223876953125; -#line 29 "test.frag" - break; - } - case 1: - { -#line 32 "test.frag" - FragColor += 0.4000000059604644775390625; -#line 33 "test.frag" - break; - } - default: - { -#line 36 "test.frag" - FragColor += 0.800000011920928955078125; -#line 37 "test.frag" - break; - } - } - do - { -#line 42 "test.frag" - FragColor += (10.0 + vColor); - } while (FragColor < 100.0); -} - -#line 46 "test.frag" -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; -#line 48 "test.frag" - func(out.FragColor, in.vColor); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/frag/locations-components.asm.frag b/third_party/spirv-cross/reference/shaders-msl/asm/frag/locations-components.asm.frag deleted file mode 100644 index 2cebdec49f..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/frag/locations-components.asm.frag +++ /dev/null @@ -1,37 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 o0 [[color(0)]]; -}; - -struct main0_in -{ - float2 m_2 [[user(locn1)]]; - float m_3 [[user(locn1_2)]]; - float m_4 [[user(locn2), flat]]; - uint m_5 [[user(locn2_1)]]; - uint m_6 [[user(locn2_2)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - float4 v1; - v1 = float4(in.m_2.x, in.m_2.y, v1.z, v1.w); - v1.z = in.m_3; - float4 v2; - v2.x = in.m_4; - v2.y = as_type(in.m_5); - v2.z = as_type(in.m_6); - float4 r0; - r0.x = as_type(as_type(v2.y) + as_type(v2.z)); - out.o0.y = float(as_type(r0.x)); - out.o0.x = v1.y + v2.x; - out.o0 = float4(out.o0.x, out.o0.y, v1.z, v1.x); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/frag/lut-promotion-initializer.asm.frag b/third_party/spirv-cross/reference/shaders-msl/asm/frag/lut-promotion-initializer.asm.frag deleted file mode 100644 index 41193536e6..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/frag/lut-promotion-initializer.asm.frag +++ /dev/null @@ -1,92 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -constant spvUnsafeArray _46 = spvUnsafeArray({ 1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0, 4.0 }); -constant spvUnsafeArray _76 = spvUnsafeArray({ float4(0.0), float4(1.0), float4(8.0), float4(5.0) }); -constant spvUnsafeArray _90 = spvUnsafeArray({ float4(20.0), float4(30.0), float4(50.0), float4(60.0) }); - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -struct main0_in -{ - int index [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - spvUnsafeArray foobar = spvUnsafeArray({ float4(0.0), float4(1.0), float4(8.0), float4(5.0) }); - spvUnsafeArray baz = spvUnsafeArray({ float4(0.0), float4(1.0), float4(8.0), float4(5.0) }); - main0_out out = {}; - out.FragColor = _46[in.index]; - if (in.index < 10) - { - out.FragColor += _46[in.index ^ 1]; - } - else - { - out.FragColor += _46[in.index & 1]; - } - if (in.index > 30) - { - out.FragColor += _76[in.index & 3].y; - } - else - { - out.FragColor += _76[in.index & 1].x; - } - if (in.index > 30) - { - foobar[1].z = 20.0; - } - out.FragColor += foobar[in.index & 3].z; - baz = _90; - out.FragColor += baz[in.index & 3].z; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/frag/min-lod.msl22.asm.frag b/third_party/spirv-cross/reference/shaders-msl/asm/frag/min-lod.msl22.asm.frag deleted file mode 100644 index 5193b2cda8..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/frag/min-lod.msl22.asm.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float2 vUV [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texture2d uSampler [[texture(0)]], sampler uSamplerSmplr [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor = uSampler.sample(uSamplerSmplr, in.vUV, min_lod_clamp(4.0)); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/frag/op-constant-null.asm.frag b/third_party/spirv-cross/reference/shaders-msl/asm/frag/op-constant-null.asm.frag deleted file mode 100644 index f8104f8165..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/frag/op-constant-null.asm.frag +++ /dev/null @@ -1,70 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct D -{ - float4 a; - float b; -}; - -constant spvUnsafeArray _14 = spvUnsafeArray({ float4(0.0), float4(0.0), float4(0.0), float4(0.0) }); - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - float a = 0.0; - float4 b = float4(0.0); - float2x3 c = float2x3(float3(0.0), float3(0.0)); - D d = D{ float4(0.0), 0.0 }; - out.FragColor = a; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/frag/op-image-sampled-image.asm.frag b/third_party/spirv-cross/reference/shaders-msl/asm/frag/op-image-sampled-image.asm.frag deleted file mode 100644 index 972daee615..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/frag/op-image-sampled-image.asm.frag +++ /dev/null @@ -1,25 +0,0 @@ -#include -#include - -using namespace metal; - -struct push_cb -{ - float4 cb0[1]; -}; - -struct main0_out -{ - float4 o0 [[color(0)]]; -}; - -fragment main0_out main0(constant push_cb& _19 [[buffer(0)]], texture2d t0 [[texture(0)]], sampler dummy_sampler [[sampler(0)]]) -{ - main0_out out = {}; - float4 r0; - r0 = float4(_19.cb0[0u].z, _19.cb0[0u].w, r0.z, r0.w); - r0 = float4(r0.x, r0.y, float2(0.0).x, float2(0.0).y); - out.o0 = t0.read(uint2(as_type(r0.xy)) + uint2(int2(-1, -2)), as_type(r0.w)); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/frag/pass-by-value.asm.frag b/third_party/spirv-cross/reference/shaders-msl/asm/frag/pass-by-value.asm.frag deleted file mode 100644 index 46648f6d30..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/frag/pass-by-value.asm.frag +++ /dev/null @@ -1,30 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct Registers -{ - float foo; -}; - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -static inline __attribute__((always_inline)) -float add_value(float v, float w) -{ - return v + w; -} - -fragment main0_out main0(constant Registers& registers [[buffer(0)]]) -{ - main0_out out = {}; - out.FragColor = add_value(10.0, registers.foo); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/frag/phi-loop-variable.asm.frag b/third_party/spirv-cross/reference/shaders-msl/asm/frag/phi-loop-variable.asm.frag deleted file mode 100644 index 036774d661..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/frag/phi-loop-variable.asm.frag +++ /dev/null @@ -1,12 +0,0 @@ -#include -#include - -using namespace metal; - -fragment void main0() -{ - for (int _22 = 35; _22 >= 0; _22--) - { - } -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/frag/pull-model-interpolation.asm.msl23.frag b/third_party/spirv-cross/reference/shaders-msl/asm/frag/pull-model-interpolation.asm.msl23.frag deleted file mode 100644 index a8095eeabe..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/frag/pull-model-interpolation.asm.msl23.frag +++ /dev/null @@ -1,187 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct _13 -{ - float4 x; - float4 y; - float4 z; - spvUnsafeArray u; - spvUnsafeArray v; - spvUnsafeArray w; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - interpolant foo [[user(locn0)]]; - interpolant bar [[user(locn1)]]; - interpolant baz [[user(locn2)]]; - int sid [[user(locn3)]]; - interpolant a_0 [[user(locn4)]]; - interpolant a_1 [[user(locn5)]]; - interpolant b_0 [[user(locn6)]]; - interpolant b_1 [[user(locn7)]]; - interpolant c_0 [[user(locn8)]]; - interpolant c_1 [[user(locn9)]]; - interpolant m_13_x [[user(locn10)]]; - interpolant m_13_y [[user(locn11)]]; - interpolant m_13_z [[user(locn12)]]; - interpolant m_13_u_0 [[user(locn13)]]; - interpolant m_13_u_1 [[user(locn14)]]; - interpolant m_13_v_0 [[user(locn15)]]; - interpolant m_13_v_1 [[user(locn16)]]; - interpolant m_13_w_0 [[user(locn17)]]; - interpolant m_13_w_1 [[user(locn18)]]; - interpolant m_13_w_2 [[user(locn19)]]; -}; - -static inline __attribute__((always_inline)) -void func(thread float4& FragColor, thread float2 baz, thread spvUnsafeArray& a, thread _13& s, thread main0_in& in) -{ - float2 _237 = FragColor.xy + baz; - FragColor = float4(_237.x, _237.y, FragColor.z, FragColor.w); - FragColor.x += in.baz.interpolate_at_centroid().x; - FragColor.y += in.baz.interpolate_at_sample(3).y; - FragColor.z += in.baz.interpolate_at_offset(float2(-0.100000001490116119384765625, 0.100000001490116119384765625) + 0.4375).y; - float2 _262 = FragColor.xy + in.a_1.interpolate_at_centroid(); - FragColor = float4(_262.x, _262.y, FragColor.z, FragColor.w); - float2 _269 = FragColor.xy + in.a_0.interpolate_at_sample(2); - FragColor = float4(_269.x, _269.y, FragColor.z, FragColor.w); - float2 _276 = FragColor.xy + in.a_1.interpolate_at_offset(float2(-0.100000001490116119384765625, 0.100000001490116119384765625) + 0.4375); - FragColor = float4(_276.x, _276.y, FragColor.z, FragColor.w); - FragColor += s.z; - float2 _288 = FragColor.xy + in.m_13_z.interpolate_at_centroid().yy; - FragColor = float4(_288.x, _288.y, FragColor.z, FragColor.w); - float2 _296 = FragColor.yz + in.m_13_z.interpolate_at_sample(3).xy; - FragColor = float4(FragColor.x, _296.x, _296.y, FragColor.w); - float2 _304 = FragColor.zw + in.m_13_z.interpolate_at_offset(float2(-0.100000001490116119384765625, 0.100000001490116119384765625) + 0.4375).wx; - FragColor = float4(FragColor.x, FragColor.y, _304.x, _304.y); - FragColor += s.u[0]; - FragColor += in.m_13_u_1.interpolate_at_centroid(); - FragColor += in.m_13_u_0.interpolate_at_sample(2); - FragColor += in.m_13_u_1.interpolate_at_offset(float2(-0.100000001490116119384765625, 0.100000001490116119384765625) + 0.4375); -} - -fragment main0_out main0(main0_in in [[stage_in]], uint gl_SampleID [[sample_id]]) -{ - main0_out out = {}; - spvUnsafeArray a = {}; - _13 s = {}; - spvUnsafeArray b = {}; - spvUnsafeArray c = {}; - a[0] = in.a_0.interpolate_at_center(); - a[1] = in.a_1.interpolate_at_center(); - s.x = in.m_13_x.interpolate_at_center(); - s.y = in.m_13_y.interpolate_at_centroid(); - s.z = in.m_13_z.interpolate_at_sample(gl_SampleID); - s.u[0] = in.m_13_u_0.interpolate_at_centroid(); - s.u[1] = in.m_13_u_1.interpolate_at_centroid(); - s.v[0] = in.m_13_v_0.interpolate_at_sample(gl_SampleID); - s.v[1] = in.m_13_v_1.interpolate_at_sample(gl_SampleID); - s.w[0] = in.m_13_w_0.interpolate_at_center(); - s.w[1] = in.m_13_w_1.interpolate_at_center(); - s.w[2] = in.m_13_w_2.interpolate_at_center(); - b[0] = in.b_0.interpolate_at_centroid(); - b[1] = in.b_1.interpolate_at_centroid(); - c[0] = in.c_0.interpolate_at_sample(gl_SampleID); - c[1] = in.c_1.interpolate_at_sample(gl_SampleID); - out.FragColor = in.foo.interpolate_at_center(); - out.FragColor += in.foo.interpolate_at_centroid(); - out.FragColor += in.foo.interpolate_at_sample(in.sid); - out.FragColor += in.foo.interpolate_at_offset(float2(0.100000001490116119384765625) + 0.4375); - float3 _65 = out.FragColor.xyz + in.bar.interpolate_at_centroid(); - out.FragColor = float4(_65.x, _65.y, _65.z, out.FragColor.w); - float3 _71 = out.FragColor.xyz + in.bar.interpolate_at_centroid(); - out.FragColor = float4(_71.x, _71.y, _71.z, out.FragColor.w); - float3 _78 = out.FragColor.xyz + in.bar.interpolate_at_sample(in.sid); - out.FragColor = float4(_78.x, _78.y, _78.z, out.FragColor.w); - float3 _84 = out.FragColor.xyz + in.bar.interpolate_at_offset(float2(-0.100000001490116119384765625) + 0.4375); - out.FragColor = float4(_84.x, _84.y, _84.z, out.FragColor.w); - float2 _91 = out.FragColor.xy + b[0]; - out.FragColor = float4(_91.x, _91.y, out.FragColor.z, out.FragColor.w); - float2 _98 = out.FragColor.xy + in.b_1.interpolate_at_centroid(); - out.FragColor = float4(_98.x, _98.y, out.FragColor.z, out.FragColor.w); - float2 _105 = out.FragColor.xy + in.b_0.interpolate_at_sample(2); - out.FragColor = float4(_105.x, _105.y, out.FragColor.z, out.FragColor.w); - float2 _112 = out.FragColor.xy + in.b_1.interpolate_at_offset(float2(-0.100000001490116119384765625, 0.100000001490116119384765625) + 0.4375); - out.FragColor = float4(_112.x, _112.y, out.FragColor.z, out.FragColor.w); - float2 _119 = out.FragColor.xy + c[0]; - out.FragColor = float4(_119.x, _119.y, out.FragColor.z, out.FragColor.w); - float2 _127 = out.FragColor.xy + in.c_1.interpolate_at_centroid().xy; - out.FragColor = float4(_127.x, _127.y, out.FragColor.z, out.FragColor.w); - float2 _135 = out.FragColor.xy + in.c_0.interpolate_at_sample(2).yx; - out.FragColor = float4(_135.x, _135.y, out.FragColor.z, out.FragColor.w); - float2 _143 = out.FragColor.xy + in.c_1.interpolate_at_offset(float2(-0.100000001490116119384765625, 0.100000001490116119384765625) + 0.4375).xx; - out.FragColor = float4(_143.x, _143.y, out.FragColor.z, out.FragColor.w); - out.FragColor += s.x; - out.FragColor += in.m_13_x.interpolate_at_centroid(); - out.FragColor += in.m_13_x.interpolate_at_sample(in.sid); - out.FragColor += in.m_13_x.interpolate_at_offset(float2(0.100000001490116119384765625) + 0.4375); - out.FragColor += s.y; - out.FragColor += in.m_13_y.interpolate_at_centroid(); - out.FragColor += in.m_13_y.interpolate_at_sample(in.sid); - out.FragColor += in.m_13_y.interpolate_at_offset(float2(-0.100000001490116119384765625) + 0.4375); - float2 _184 = out.FragColor.xy + s.v[0]; - out.FragColor = float4(_184.x, _184.y, out.FragColor.z, out.FragColor.w); - float2 _191 = out.FragColor.xy + in.m_13_v_1.interpolate_at_centroid(); - out.FragColor = float4(_191.x, _191.y, out.FragColor.z, out.FragColor.w); - float2 _198 = out.FragColor.xy + in.m_13_v_0.interpolate_at_sample(2); - out.FragColor = float4(_198.x, _198.y, out.FragColor.z, out.FragColor.w); - float2 _205 = out.FragColor.xy + in.m_13_v_1.interpolate_at_offset(float2(-0.100000001490116119384765625, 0.100000001490116119384765625) + 0.4375); - out.FragColor = float4(_205.x, _205.y, out.FragColor.z, out.FragColor.w); - out.FragColor.x += s.w[0]; - out.FragColor.x += in.m_13_w_1.interpolate_at_centroid(); - out.FragColor.x += in.m_13_w_0.interpolate_at_sample(2); - out.FragColor.x += in.m_13_w_1.interpolate_at_offset(float2(-0.100000001490116119384765625, 0.100000001490116119384765625) + 0.4375); - func(out.FragColor, in.baz.interpolate_at_sample(gl_SampleID), a, s, in); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/frag/sample-and-compare.asm.frag b/third_party/spirv-cross/reference/shaders-msl/asm/frag/sample-and-compare.asm.frag deleted file mode 100644 index aed8fd382a..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/frag/sample-and-compare.asm.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float out_var_SV_Target [[color(0)]]; -}; - -struct main0_in -{ - float2 in_var_TEXCOORD0 [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], depth2d g_Texture [[texture(0)]], sampler g_Sampler [[sampler(0)]], sampler g_CompareSampler [[sampler(1)]]) -{ - main0_out out = {}; - out.out_var_SV_Target = float4(g_Texture.sample(g_Sampler, in.in_var_TEXCOORD0)).x + g_Texture.sample_compare(g_CompareSampler, in.in_var_TEXCOORD0, 0.5, level(0.0)); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/frag/single-function-private-lut.asm.frag b/third_party/spirv-cross/reference/shaders-msl/asm/frag/single-function-private-lut.asm.frag deleted file mode 100644 index 54325051f4..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/frag/single-function-private-lut.asm.frag +++ /dev/null @@ -1,82 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct myType -{ - float data; -}; - -struct main0_out -{ - float4 o_color [[color(0)]]; -}; - -// Implementation of the GLSL mod() function, which is slightly different than Metal fmod() -template -inline Tx mod(Tx x, Ty y) -{ - return x - y * floor(x / y); -} - -fragment main0_out main0(float4 gl_FragCoord [[position]]) -{ - spvUnsafeArray _21 = spvUnsafeArray({ myType{ 0.0 }, myType{ 1.0 }, myType{ 0.0 }, myType{ 1.0 }, myType{ 0.0 } }); - - main0_out out = {}; - float2 uv = gl_FragCoord.xy; - int index = int(mod(uv.x, 4.0)); - myType elt = _21[index]; - if (elt.data > 0.0) - { - out.o_color = float4(0.0, 1.0, 0.0, 1.0); - } - else - { - out.o_color = float4(1.0, 0.0, 0.0, 1.0); - } - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/frag/srem.asm.frag b/third_party/spirv-cross/reference/shaders-msl/asm/frag/srem.asm.frag deleted file mode 100644 index f0cdd574de..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/frag/srem.asm.frag +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - int4 vA [[user(locn0)]]; - int4 vB [[user(locn1)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.FragColor = float4(in.vA - in.vB * (in.vA / in.vB)); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/frag/storage-class-output-initializer.asm.frag b/third_party/spirv-cross/reference/shaders-msl/asm/frag/storage-class-output-initializer.asm.frag deleted file mode 100644 index d59013daaf..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/frag/storage-class-output-initializer.asm.frag +++ /dev/null @@ -1,65 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -constant spvUnsafeArray _20 = spvUnsafeArray({ float4(1.0, 2.0, 3.0, 4.0), float4(10.0) }); - -struct main0_out -{ - float4 FragColors_0 [[color(0)]]; - float4 FragColors_1 [[color(1)]]; - float4 FragColor [[color(2)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - spvUnsafeArray FragColors = spvUnsafeArray({ float4(1.0, 2.0, 3.0, 4.0), float4(10.0) }); - out.FragColor = float4(5.0); - out.FragColors_0 = FragColors[0]; - out.FragColors_1 = FragColors[1]; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/frag/texel-fetch-no-lod.asm.frag b/third_party/spirv-cross/reference/shaders-msl/asm/frag/texel-fetch-no-lod.asm.frag deleted file mode 100644 index dd308c32ad..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/frag/texel-fetch-no-lod.asm.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(texture2d uTexture [[texture(0)]], sampler uTextureSmplr [[sampler(0)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - out.FragColor = uTexture.read(uint2(int2(gl_FragCoord.xy)), 0); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/frag/texture-atomics.asm.frag b/third_party/spirv-cross/reference/shaders-msl/asm/frag/texture-atomics.asm.frag deleted file mode 100644 index ab5be64984..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/frag/texture-atomics.asm.frag +++ /dev/null @@ -1,121 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" -#pragma clang diagnostic ignored "-Wunused-variable" - -#include -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct type_StructuredBuffer_v4float -{ - spvUnsafeArray _m0; -}; - -struct type_Globals -{ - uint2 ShadowTileListGroupSize; -}; - -constant float3 _70 = {}; - -struct main0_out -{ - float4 out_var_SV_Target0 [[color(0)]]; -}; - -struct main0_in -{ - uint in_var_TEXCOORD0 [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], const device type_StructuredBuffer_v4float& CulledObjectBoxBounds [[buffer(0)]], constant type_Globals& _Globals [[buffer(1)]], texture2d RWShadowTileNumCulledObjects [[texture(2)]], device atomic_uint* RWShadowTileNumCulledObjects_atomic [[buffer(2)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - uint2 _77 = uint2(gl_FragCoord.xy); - uint _78 = _77.y; - uint _83 = _77.x; - float2 _91 = float2(float(_83), float((_Globals.ShadowTileListGroupSize.y - 1u) - _78)); - float2 _93 = float2(_Globals.ShadowTileListGroupSize); - float2 _96 = ((_91 / _93) * float2(2.0)) - float2(1.0); - float2 _100 = (((_91 + float2(1.0)) / _93) * float2(2.0)) - float2(1.0); - float3 _102 = float3(_100.x, _100.y, _70.z); - _102.z = 1.0; - uint _103 = in.in_var_TEXCOORD0 * 5u; - uint _107 = _103 + 1u; - if (all(CulledObjectBoxBounds._m0[_107].xy > _96.xy) && all(CulledObjectBoxBounds._m0[_103].xyz < _102)) - { - float _122 = _96.x; - float _123 = _96.y; - spvUnsafeArray _73; - _73[0] = float3(_122, _123, -1000.0); - float _126 = _100.x; - _73[1] = float3(_126, _123, -1000.0); - float _129 = _100.y; - _73[2] = float3(_122, _129, -1000.0); - _73[3] = float3(_126, _129, -1000.0); - _73[4] = float3(_122, _123, 1.0); - _73[5] = float3(_126, _123, 1.0); - _73[6] = float3(_122, _129, 1.0); - _73[7] = float3(_126, _129, 1.0); - float3 _155; - float3 _158; - _155 = float3(-500000.0); - _158 = float3(500000.0); - for (int _160 = 0; _160 < 8; ) - { - float3 _166 = _73[_160] - (float3(0.5) * (CulledObjectBoxBounds._m0[_103].xyz + CulledObjectBoxBounds._m0[_107].xyz)); - float3 _170 = float3(dot(_166, CulledObjectBoxBounds._m0[_103 + 2u].xyz), dot(_166, CulledObjectBoxBounds._m0[_103 + 3u].xyz), dot(_166, CulledObjectBoxBounds._m0[_103 + 4u].xyz)); - _155 = fast::max(_155, _170); - _158 = fast::min(_158, _170); - _160++; - continue; - } - if (all(_158 < float3(1.0)) && all(_155 > float3(-1.0))) - { - uint _179 = atomic_fetch_add_explicit((device atomic_uint*)&RWShadowTileNumCulledObjects_atomic[(_78 * _Globals.ShadowTileListGroupSize.x) + _83], 1u, memory_order_relaxed); - } - } - out.out_var_SV_Target0 = float4(0.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/frag/texture-atomics.asm.graphics-robust-access.frag b/third_party/spirv-cross/reference/shaders-msl/asm/frag/texture-atomics.asm.graphics-robust-access.frag deleted file mode 100644 index ab5be64984..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/frag/texture-atomics.asm.graphics-robust-access.frag +++ /dev/null @@ -1,121 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" -#pragma clang diagnostic ignored "-Wunused-variable" - -#include -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct type_StructuredBuffer_v4float -{ - spvUnsafeArray _m0; -}; - -struct type_Globals -{ - uint2 ShadowTileListGroupSize; -}; - -constant float3 _70 = {}; - -struct main0_out -{ - float4 out_var_SV_Target0 [[color(0)]]; -}; - -struct main0_in -{ - uint in_var_TEXCOORD0 [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], const device type_StructuredBuffer_v4float& CulledObjectBoxBounds [[buffer(0)]], constant type_Globals& _Globals [[buffer(1)]], texture2d RWShadowTileNumCulledObjects [[texture(2)]], device atomic_uint* RWShadowTileNumCulledObjects_atomic [[buffer(2)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - uint2 _77 = uint2(gl_FragCoord.xy); - uint _78 = _77.y; - uint _83 = _77.x; - float2 _91 = float2(float(_83), float((_Globals.ShadowTileListGroupSize.y - 1u) - _78)); - float2 _93 = float2(_Globals.ShadowTileListGroupSize); - float2 _96 = ((_91 / _93) * float2(2.0)) - float2(1.0); - float2 _100 = (((_91 + float2(1.0)) / _93) * float2(2.0)) - float2(1.0); - float3 _102 = float3(_100.x, _100.y, _70.z); - _102.z = 1.0; - uint _103 = in.in_var_TEXCOORD0 * 5u; - uint _107 = _103 + 1u; - if (all(CulledObjectBoxBounds._m0[_107].xy > _96.xy) && all(CulledObjectBoxBounds._m0[_103].xyz < _102)) - { - float _122 = _96.x; - float _123 = _96.y; - spvUnsafeArray _73; - _73[0] = float3(_122, _123, -1000.0); - float _126 = _100.x; - _73[1] = float3(_126, _123, -1000.0); - float _129 = _100.y; - _73[2] = float3(_122, _129, -1000.0); - _73[3] = float3(_126, _129, -1000.0); - _73[4] = float3(_122, _123, 1.0); - _73[5] = float3(_126, _123, 1.0); - _73[6] = float3(_122, _129, 1.0); - _73[7] = float3(_126, _129, 1.0); - float3 _155; - float3 _158; - _155 = float3(-500000.0); - _158 = float3(500000.0); - for (int _160 = 0; _160 < 8; ) - { - float3 _166 = _73[_160] - (float3(0.5) * (CulledObjectBoxBounds._m0[_103].xyz + CulledObjectBoxBounds._m0[_107].xyz)); - float3 _170 = float3(dot(_166, CulledObjectBoxBounds._m0[_103 + 2u].xyz), dot(_166, CulledObjectBoxBounds._m0[_103 + 3u].xyz), dot(_166, CulledObjectBoxBounds._m0[_103 + 4u].xyz)); - _155 = fast::max(_155, _170); - _158 = fast::min(_158, _170); - _160++; - continue; - } - if (all(_158 < float3(1.0)) && all(_155 > float3(-1.0))) - { - uint _179 = atomic_fetch_add_explicit((device atomic_uint*)&RWShadowTileNumCulledObjects_atomic[(_78 * _Globals.ShadowTileListGroupSize.x) + _83], 1u, memory_order_relaxed); - } - } - out.out_var_SV_Target0 = float4(0.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/frag/texture-sampling-fp16.asm.frag b/third_party/spirv-cross/reference/shaders-msl/asm/frag/texture-sampling-fp16.asm.frag deleted file mode 100644 index 97345820b6..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/frag/texture-sampling-fp16.asm.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - half4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - half2 UV [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texture2d uTexture [[texture(0)]], sampler uTextureSmplr [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor = half4(uTexture.sample(uTextureSmplr, float2(in.UV))); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/frag/undef-variable-store.asm.frag b/third_party/spirv-cross/reference/shaders-msl/asm/frag/undef-variable-store.asm.frag deleted file mode 100644 index 2cefeb6693..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/frag/undef-variable-store.asm.frag +++ /dev/null @@ -1,37 +0,0 @@ -#include -#include - -using namespace metal; - -constant float4 _38 = {}; -constant float4 _47 = {}; - -struct main0_out -{ - float4 _entryPointOutput [[color(0)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - float4 _27; - do - { - float2 _26 = float2(0.0); - if (_26.x != 0.0) - { - _27 = float4(1.0, 0.0, 0.0, 1.0); - break; - } - else - { - _27 = float4(1.0, 1.0, 0.0, 1.0); - break; - } - _27 = _38; - break; - } while (false); - out._entryPointOutput = _27; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/frag/unknown-depth-state.asm.frag b/third_party/spirv-cross/reference/shaders-msl/asm/frag/unknown-depth-state.asm.frag deleted file mode 100644 index 01a0e5a732..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/frag/unknown-depth-state.asm.frag +++ /dev/null @@ -1,36 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -struct main0_in -{ - float3 vUV [[user(locn0)]]; -}; - -static inline __attribute__((always_inline)) -float sample_combined(thread float3& vUV, thread depth2d uShadow, thread const sampler uShadowSmplr) -{ - return uShadow.sample_compare(uShadowSmplr, vUV.xy, vUV.z); -} - -static inline __attribute__((always_inline)) -float sample_separate(thread float3& vUV, thread depth2d uTexture, thread sampler uSampler) -{ - return uTexture.sample_compare(uSampler, vUV.xy, vUV.z); -} - -fragment main0_out main0(main0_in in [[stage_in]], depth2d uShadow [[texture(0)]], depth2d uTexture [[texture(1)]], sampler uShadowSmplr [[sampler(0)]], sampler uSampler [[sampler(1)]]) -{ - main0_out out = {}; - out.FragColor = sample_combined(in.vUV, uShadow, uShadowSmplr) + sample_separate(in.vUV, uTexture, uSampler); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/frag/unord-relational-op.asm.frag b/third_party/spirv-cross/reference/shaders-msl/asm/frag/unord-relational-op.asm.frag deleted file mode 100644 index 8df57c55b0..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/frag/unord-relational-op.asm.frag +++ /dev/null @@ -1,58 +0,0 @@ -#include -#include - -using namespace metal; - -constant float a_tmp [[function_constant(1)]]; -constant float a = is_function_constant_defined(a_tmp) ? a_tmp : 1.0; -constant float b_tmp [[function_constant(2)]]; -constant float b = is_function_constant_defined(b_tmp) ? b_tmp : 2.0; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float2 c [[user(locn2)]]; - float2 d [[user(locn3)]]; - float3 e [[user(locn4)]]; - float3 f [[user(locn5)]]; - float4 g [[user(locn6)]]; - float4 h [[user(locn7)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - float t0 = a; - float t1 = b; - bool c1 = (isunordered(a, b) || a == b); - bool c2 = (isunordered(a, b) || a != b); - bool c3 = (isunordered(a, b) || a < b); - bool c4 = (isunordered(a, b) || a > b); - bool c5 = (isunordered(a, b) || a <= b); - bool c6 = (isunordered(a, b) || a >= b); - bool2 c7 = (isunordered(in.c, in.d) || in.c == in.d); - bool2 c8 = (isunordered(in.c, in.d) || in.c != in.d); - bool2 c9 = (isunordered(in.c, in.d) || in.c < in.d); - bool2 c10 = (isunordered(in.c, in.d) || in.c > in.d); - bool2 c11 = (isunordered(in.c, in.d) || in.c <= in.d); - bool2 c12 = (isunordered(in.c, in.d) || in.c >= in.d); - bool3 c13 = (isunordered(in.e, in.f) || in.e == in.f); - bool3 c14 = (isunordered(in.e, in.f) || in.e != in.f); - bool3 c15 = (isunordered(in.e, in.f) || in.e < in.f); - bool3 c16 = (isunordered(in.e, in.f) || in.e > in.f); - bool3 c17 = (isunordered(in.e, in.f) || in.e <= in.f); - bool3 c18 = (isunordered(in.e, in.f) || in.e >= in.f); - bool4 c19 = (isunordered(in.g, in.h) || in.g == in.h); - bool4 c20 = (isunordered(in.g, in.h) || in.g != in.h); - bool4 c21 = (isunordered(in.g, in.h) || in.g < in.h); - bool4 c22 = (isunordered(in.g, in.h) || in.g > in.h); - bool4 c23 = (isunordered(in.g, in.h) || in.g <= in.h); - bool4 c24 = (isunordered(in.g, in.h) || in.g >= in.h); - out.FragColor = float4(t0 + t1); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/frag/unreachable.asm.frag b/third_party/spirv-cross/reference/shaders-msl/asm/frag/unreachable.asm.frag deleted file mode 100644 index 7ae4aa5e60..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/frag/unreachable.asm.frag +++ /dev/null @@ -1,40 +0,0 @@ -#include -#include - -using namespace metal; - -constant float4 _21 = {}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - int counter [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - float4 _24; - _24 = _21; - float4 _33; - for (;;) - { - if (in.counter == 10) - { - _33 = float4(10.0); - break; - } - else - { - _33 = float4(30.0); - break; - } - } - out.FragColor = _33; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/frag/vector-shuffle-oom.asm.frag b/third_party/spirv-cross/reference/shaders-msl/asm/frag/vector-shuffle-oom.asm.frag deleted file mode 100644 index e23fa8157f..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/frag/vector-shuffle-oom.asm.frag +++ /dev/null @@ -1,351 +0,0 @@ -#include -#include - -using namespace metal; - -struct _28 -{ - float4 _m0; -}; - -struct _6 -{ - float4 _m0; - float _m1; - float4 _m2; -}; - -struct _10 -{ - float3 _m0; - packed_float3 _m1; - float _m2; - packed_float3 _m3; - float _m4; - packed_float3 _m5; - float _m6; - packed_float3 _m7; - float _m8; - packed_float3 _m9; - float _m10; - packed_float3 _m11; - float _m12; - float2 _m13; - float2 _m14; - packed_float3 _m15; - float _m16; - float _m17; - float _m18; - float _m19; - float _m20; - float4 _m21; - float4 _m22; - float4x4 _m23; - float4 _m24; -}; - -struct _18 -{ - float4x4 _m0; - float4x4 _m1; - float4x4 _m2; - float4x4 _m3; - float4 _m4; - float4 _m5; - float _m6; - float _m7; - float _m8; - float _m9; - packed_float3 _m10; - float _m11; - packed_float3 _m12; - float _m13; - packed_float3 _m14; - float _m15; - packed_float3 _m16; - float _m17; - float _m18; - float _m19; - float2 _m20; - float2 _m21; - float2 _m22; - float4 _m23; - float2 _m24; - float2 _m25; - float2 _m26; - char _m27_pad[8]; - packed_float3 _m27; - float _m28; - float _m29; - float _m30; - float _m31; - float _m32; - float2 _m33; - float _m34; - float _m35; - float3 _m36; - float4x4 _m37[2]; - float4 _m38[2]; -}; - -struct _20 -{ - float4 _m0; - float4 _m1; - float2 _m2; - float2 _m3; - float3 _m4; - float _m5; - float3 _m6; - float _m7; - float4 _m8; - float4 _m9; - float4 _m10; - float3 _m11; - float _m12; - float3 _m13; - float _m14; - float3 _m15; - float4 _m16; - float3 _m17; - float _m18; - float3 _m19; - float2 _m20; -}; - -struct _21 -{ - float4 _m0; -}; - -constant _28 _74 = {}; - -struct main0_out -{ - float4 m_5 [[color(0)]]; -}; - -fragment main0_out main0(constant _6& _7 [[buffer(0)]], constant _10& _11 [[buffer(1)]], constant _18& _19 [[buffer(2)]], texture2d _8 [[texture(0)]], texture2d _12 [[texture(1)]], texture2d _14 [[texture(2)]], sampler _9 [[sampler(0)]], sampler _13 [[sampler(1)]], sampler _15 [[sampler(2)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - _28 _77 = _74; - _77._m0 = float4(0.0); - float2 _82 = gl_FragCoord.xy * _19._m23.xy; - float4 _88 = _7._m2 * _7._m0.xyxy; - float2 _97 = fast::clamp(_82 + (float3(0.0, -2.0, 0.5).xy * _7._m0.xy), _88.xy, _88.zw); - float3 _109 = float3(_11._m5) * fast::clamp(_8.sample(_9, _97, level(0.0)).w * _7._m1, 0.0, 1.0); - float4 _113 = _12.sample(_13, _97, level(0.0)); - float3 _129; - if (_113.y > 0.0) - { - _129 = _109 + (_14.sample(_15, _97, level(0.0)).xyz * fast::clamp(_113.y * _113.z, 0.0, 1.0)); - } - else - { - _129 = _109; - } - float3 _133 = float4(0.0).xyz + (_129 * 0.5); - float4 _134 = float4(_133.x, _133.y, _133.z, float4(0.0).w); - _28 _135 = _77; - _135._m0 = _134; - float2 _144 = fast::clamp(_82 + (float3(-1.0, -1.0, 0.5).xy * _7._m0.xy), _88.xy, _88.zw); - float3 _156 = float3(_11._m5) * fast::clamp(_8.sample(_9, _144, level(0.0)).w * _7._m1, 0.0, 1.0); - float4 _160 = _12.sample(_13, _144, level(0.0)); - float3 _176; - if (_160.y > 0.0) - { - _176 = _156 + (_14.sample(_15, _144, level(0.0)).xyz * fast::clamp(_160.y * _160.z, 0.0, 1.0)); - } - else - { - _176 = _156; - } - float3 _180 = _134.xyz + (_176 * 0.5); - float4 _181 = float4(_180.x, _180.y, _180.z, _134.w); - _28 _182 = _135; - _182._m0 = _181; - float2 _191 = fast::clamp(_82 + (float3(0.0, -1.0, 0.75).xy * _7._m0.xy), _88.xy, _88.zw); - float3 _203 = float3(_11._m5) * fast::clamp(_8.sample(_9, _191, level(0.0)).w * _7._m1, 0.0, 1.0); - float4 _207 = _12.sample(_13, _191, level(0.0)); - float3 _223; - if (_207.y > 0.0) - { - _223 = _203 + (_14.sample(_15, _191, level(0.0)).xyz * fast::clamp(_207.y * _207.z, 0.0, 1.0)); - } - else - { - _223 = _203; - } - float3 _227 = _181.xyz + (_223 * 0.75); - float4 _228 = float4(_227.x, _227.y, _227.z, _181.w); - _28 _229 = _182; - _229._m0 = _228; - float2 _238 = fast::clamp(_82 + (float3(1.0, -1.0, 0.5).xy * _7._m0.xy), _88.xy, _88.zw); - float3 _250 = float3(_11._m5) * fast::clamp(_8.sample(_9, _238, level(0.0)).w * _7._m1, 0.0, 1.0); - float4 _254 = _12.sample(_13, _238, level(0.0)); - float3 _270; - if (_254.y > 0.0) - { - _270 = _250 + (_14.sample(_15, _238, level(0.0)).xyz * fast::clamp(_254.y * _254.z, 0.0, 1.0)); - } - else - { - _270 = _250; - } - float3 _274 = _228.xyz + (_270 * 0.5); - float4 _275 = float4(_274.x, _274.y, _274.z, _228.w); - _28 _276 = _229; - _276._m0 = _275; - float2 _285 = fast::clamp(_82 + (float3(-2.0, 0.0, 0.5).xy * _7._m0.xy), _88.xy, _88.zw); - float3 _297 = float3(_11._m5) * fast::clamp(_8.sample(_9, _285, level(0.0)).w * _7._m1, 0.0, 1.0); - float4 _301 = _12.sample(_13, _285, level(0.0)); - float3 _317; - if (_301.y > 0.0) - { - _317 = _297 + (_14.sample(_15, _285, level(0.0)).xyz * fast::clamp(_301.y * _301.z, 0.0, 1.0)); - } - else - { - _317 = _297; - } - float3 _321 = _275.xyz + (_317 * 0.5); - float4 _322 = float4(_321.x, _321.y, _321.z, _275.w); - _28 _323 = _276; - _323._m0 = _322; - float2 _332 = fast::clamp(_82 + (float3(-1.0, 0.0, 0.75).xy * _7._m0.xy), _88.xy, _88.zw); - float3 _344 = float3(_11._m5) * fast::clamp(_8.sample(_9, _332, level(0.0)).w * _7._m1, 0.0, 1.0); - float4 _348 = _12.sample(_13, _332, level(0.0)); - float3 _364; - if (_348.y > 0.0) - { - _364 = _344 + (_14.sample(_15, _332, level(0.0)).xyz * fast::clamp(_348.y * _348.z, 0.0, 1.0)); - } - else - { - _364 = _344; - } - float3 _368 = _322.xyz + (_364 * 0.75); - float4 _369 = float4(_368.x, _368.y, _368.z, _322.w); - _28 _370 = _323; - _370._m0 = _369; - float2 _379 = fast::clamp(_82 + (float3(0.0, 0.0, 1.0).xy * _7._m0.xy), _88.xy, _88.zw); - float3 _391 = float3(_11._m5) * fast::clamp(_8.sample(_9, _379, level(0.0)).w * _7._m1, 0.0, 1.0); - float4 _395 = _12.sample(_13, _379, level(0.0)); - float3 _411; - if (_395.y > 0.0) - { - _411 = _391 + (_14.sample(_15, _379, level(0.0)).xyz * fast::clamp(_395.y * _395.z, 0.0, 1.0)); - } - else - { - _411 = _391; - } - float3 _415 = _369.xyz + (_411 * 1.0); - float4 _416 = float4(_415.x, _415.y, _415.z, _369.w); - _28 _417 = _370; - _417._m0 = _416; - float2 _426 = fast::clamp(_82 + (float3(1.0, 0.0, 0.75).xy * _7._m0.xy), _88.xy, _88.zw); - float3 _438 = float3(_11._m5) * fast::clamp(_8.sample(_9, _426, level(0.0)).w * _7._m1, 0.0, 1.0); - float4 _442 = _12.sample(_13, _426, level(0.0)); - float3 _458; - if (_442.y > 0.0) - { - _458 = _438 + (_14.sample(_15, _426, level(0.0)).xyz * fast::clamp(_442.y * _442.z, 0.0, 1.0)); - } - else - { - _458 = _438; - } - float3 _462 = _416.xyz + (_458 * 0.75); - float4 _463 = float4(_462.x, _462.y, _462.z, _416.w); - _28 _464 = _417; - _464._m0 = _463; - float2 _473 = fast::clamp(_82 + (float3(2.0, 0.0, 0.5).xy * _7._m0.xy), _88.xy, _88.zw); - float3 _485 = float3(_11._m5) * fast::clamp(_8.sample(_9, _473, level(0.0)).w * _7._m1, 0.0, 1.0); - float4 _489 = _12.sample(_13, _473, level(0.0)); - float3 _505; - if (_489.y > 0.0) - { - _505 = _485 + (_14.sample(_15, _473, level(0.0)).xyz * fast::clamp(_489.y * _489.z, 0.0, 1.0)); - } - else - { - _505 = _485; - } - float3 _509 = _463.xyz + (_505 * 0.5); - float4 _510 = float4(_509.x, _509.y, _509.z, _463.w); - _28 _511 = _464; - _511._m0 = _510; - float2 _520 = fast::clamp(_82 + (float3(-1.0, 1.0, 0.5).xy * _7._m0.xy), _88.xy, _88.zw); - float3 _532 = float3(_11._m5) * fast::clamp(_8.sample(_9, _520, level(0.0)).w * _7._m1, 0.0, 1.0); - float4 _536 = _12.sample(_13, _520, level(0.0)); - float3 _552; - if (_536.y > 0.0) - { - _552 = _532 + (_14.sample(_15, _520, level(0.0)).xyz * fast::clamp(_536.y * _536.z, 0.0, 1.0)); - } - else - { - _552 = _532; - } - float3 _556 = _510.xyz + (_552 * 0.5); - float4 _557 = float4(_556.x, _556.y, _556.z, _510.w); - _28 _558 = _511; - _558._m0 = _557; - float2 _567 = fast::clamp(_82 + (float3(0.0, 1.0, 0.75).xy * _7._m0.xy), _88.xy, _88.zw); - float3 _579 = float3(_11._m5) * fast::clamp(_8.sample(_9, _567, level(0.0)).w * _7._m1, 0.0, 1.0); - float4 _583 = _12.sample(_13, _567, level(0.0)); - float3 _599; - if (_583.y > 0.0) - { - _599 = _579 + (_14.sample(_15, _567, level(0.0)).xyz * fast::clamp(_583.y * _583.z, 0.0, 1.0)); - } - else - { - _599 = _579; - } - float3 _603 = _557.xyz + (_599 * 0.75); - float4 _604 = float4(_603.x, _603.y, _603.z, _557.w); - _28 _605 = _558; - _605._m0 = _604; - float2 _614 = fast::clamp(_82 + (float3(1.0, 1.0, 0.5).xy * _7._m0.xy), _88.xy, _88.zw); - float3 _626 = float3(_11._m5) * fast::clamp(_8.sample(_9, _614, level(0.0)).w * _7._m1, 0.0, 1.0); - float4 _630 = _12.sample(_13, _614, level(0.0)); - float3 _646; - if (_630.y > 0.0) - { - _646 = _626 + (_14.sample(_15, _614, level(0.0)).xyz * fast::clamp(_630.y * _630.z, 0.0, 1.0)); - } - else - { - _646 = _626; - } - float3 _650 = _604.xyz + (_646 * 0.5); - float4 _651 = float4(_650.x, _650.y, _650.z, _604.w); - _28 _652 = _605; - _652._m0 = _651; - float2 _661 = fast::clamp(_82 + (float3(0.0, 2.0, 0.5).xy * _7._m0.xy), _88.xy, _88.zw); - float3 _673 = float3(_11._m5) * fast::clamp(_8.sample(_9, _661, level(0.0)).w * _7._m1, 0.0, 1.0); - float4 _677 = _12.sample(_13, _661, level(0.0)); - float3 _693; - if (_677.y > 0.0) - { - _693 = _673 + (_14.sample(_15, _661, level(0.0)).xyz * fast::clamp(_677.y * _677.z, 0.0, 1.0)); - } - else - { - _693 = _673; - } - float3 _697 = _651.xyz + (_693 * 0.5); - float4 _698 = float4(_697.x, _697.y, _697.z, _651.w); - _28 _699 = _652; - _699._m0 = _698; - float3 _702 = _698.xyz / float3(((((((((((((0.0 + 0.5) + 0.5) + 0.75) + 0.5) + 0.5) + 0.75) + 1.0) + 0.75) + 0.5) + 0.5) + 0.75) + 0.5) + 0.5); - _28 _704 = _699; - _704._m0 = float4(_702.x, _702.y, _702.z, _698.w); - _28 _705 = _704; - _705._m0.w = 1.0; - out.m_5 = _705._m0; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/tesc/tess-level-overrun.asm.tesc b/third_party/spirv-cross/reference/shaders-msl/asm/tesc/tess-level-overrun.asm.tesc deleted file mode 100644 index 6c9903e02b..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/tesc/tess-level-overrun.asm.tesc +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace metal; - -struct TessLevels -{ - float inner0; - float inner1; - float outer0; - float outer1; - float outer2; - float outer3; -}; - -kernel void main0(const device TessLevels& sb_levels [[buffer(0)]], uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], constant uint* spvIndirectParams [[buffer(29)]], device MTLTriangleTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - spvTessLevel[gl_PrimitiveID].insideTessellationFactor = half(sb_levels.inner0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(sb_levels.outer0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(sb_levels.outer1); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(sb_levels.outer2); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/tesc/tess-level-overrun.multi-patch.asm.tesc b/third_party/spirv-cross/reference/shaders-msl/asm/tesc/tess-level-overrun.multi-patch.asm.tesc deleted file mode 100644 index 79395a4bbb..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/tesc/tess-level-overrun.multi-patch.asm.tesc +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include - -using namespace metal; - -struct TessLevels -{ - float inner0; - float inner1; - float outer0; - float outer1; - float outer2; - float outer3; -}; - -kernel void main0(const device TessLevels& sb_levels [[buffer(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]], constant uint* spvIndirectParams [[buffer(29)]], device MTLTriangleTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 1, spvIndirectParams[1] - 1); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor = half(sb_levels.inner0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(sb_levels.outer0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(sb_levels.outer1); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(sb_levels.outer2); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/tese/unnamed-builtin-array.asm.tese b/third_party/spirv-cross/reference/shaders-msl/asm/tese/unnamed-builtin-array.asm.tese deleted file mode 100644 index 99803754d8..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/tese/unnamed-builtin-array.asm.tese +++ /dev/null @@ -1,72 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_patchIn -{ - float4 gl_TessLevelOuter [[attribute(0)]]; - float2 gl_TessLevelInner [[attribute(1)]]; -}; - -[[ patch(quad, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]], float2 gl_TessCoord [[position_in_patch]]) -{ - main0_out out = {}; - spvUnsafeArray gl_TessLevelInner = {}; - spvUnsafeArray gl_TessLevelOuter = {}; - gl_TessLevelInner[0] = patchIn.gl_TessLevelInner.x; - gl_TessLevelInner[1] = patchIn.gl_TessLevelInner.y; - gl_TessLevelOuter[0] = patchIn.gl_TessLevelOuter.x; - gl_TessLevelOuter[1] = patchIn.gl_TessLevelOuter.y; - gl_TessLevelOuter[2] = patchIn.gl_TessLevelOuter.z; - gl_TessLevelOuter[3] = patchIn.gl_TessLevelOuter.w; - out.gl_Position = float4(((gl_TessCoord.x * gl_TessLevelInner[0]) * gl_TessLevelOuter[0]) + (((1.0 - gl_TessCoord.x) * gl_TessLevelInner[0]) * gl_TessLevelOuter[2]), ((gl_TessCoord.y * gl_TessLevelInner[1]) * gl_TessLevelOuter[1]) + (((1.0 - gl_TessCoord.y) * gl_TessLevelInner[1]) * gl_TessLevelOuter[3]), 0.0, 1.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/vert/clip-distance-plain-variable.asm.vert b/third_party/spirv-cross/reference/shaders-msl/asm/vert/clip-distance-plain-variable.asm.vert deleted file mode 100644 index ae42798e31..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/vert/clip-distance-plain-variable.asm.vert +++ /dev/null @@ -1,49 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct VSOut -{ - float4 pos; - float2 clip; -}; - -struct main0_out -{ - float4 gl_Position [[position]]; - float gl_ClipDistance [[clip_distance]] [2]; - float gl_ClipDistance_0 [[user(clip0)]]; - float gl_ClipDistance_1 [[user(clip1)]]; -}; - -struct main0_in -{ - float4 pos [[attribute(0)]]; -}; - -static inline __attribute__((always_inline)) -VSOut _main(thread const float4& pos) -{ - VSOut vout; - vout.pos = pos; - vout.clip = pos.xy; - return vout; -} - -vertex main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - float4 pos = in.pos; - float4 param = pos; - VSOut flattenTemp = _main(param); - out.gl_Position = flattenTemp.pos; - out.gl_ClipDistance[0] = flattenTemp.clip.x; - out.gl_ClipDistance[1] = flattenTemp.clip.y; - out.gl_ClipDistance_0 = out.gl_ClipDistance[0]; - out.gl_ClipDistance_1 = out.gl_ClipDistance[1]; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/vert/clip-distance-plain-variable.no-user-varying.asm.vert b/third_party/spirv-cross/reference/shaders-msl/asm/vert/clip-distance-plain-variable.no-user-varying.asm.vert deleted file mode 100644 index c1e59b9c14..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/vert/clip-distance-plain-variable.no-user-varying.asm.vert +++ /dev/null @@ -1,45 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct VSOut -{ - float4 pos; - float2 clip; -}; - -struct main0_out -{ - float4 gl_Position [[position]]; - float gl_ClipDistance [[clip_distance]] [2]; -}; - -struct main0_in -{ - float4 pos [[attribute(0)]]; -}; - -static inline __attribute__((always_inline)) -VSOut _main(thread const float4& pos) -{ - VSOut vout; - vout.pos = pos; - vout.clip = pos.xy; - return vout; -} - -vertex main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - float4 pos = in.pos; - float4 param = pos; - VSOut flattenTemp = _main(param); - out.gl_Position = flattenTemp.pos; - out.gl_ClipDistance[0] = flattenTemp.clip.x; - out.gl_ClipDistance[1] = flattenTemp.clip.y; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/vert/copy-memory-interface.asm.vert b/third_party/spirv-cross/reference/shaders-msl/asm/vert/copy-memory-interface.asm.vert deleted file mode 100644 index 63ab796e8e..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/vert/copy-memory-interface.asm.vert +++ /dev/null @@ -1,25 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 o1 [[user(locn1)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 v0 [[attribute(0)]]; - float4 v1 [[attribute(1)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.gl_Position = in.v0; - out.o1 = in.v1; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/vert/extract-transposed-matrix-from-struct.asm.vert b/third_party/spirv-cross/reference/shaders-msl/asm/vert/extract-transposed-matrix-from-struct.asm.vert deleted file mode 100644 index b94687a52b..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/vert/extract-transposed-matrix-from-struct.asm.vert +++ /dev/null @@ -1,66 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct V2F -{ - float4 Position; - float4 Color; -}; - -struct InstanceData -{ - float4x4 MATRIX_MVP; - float4 Color; -}; - -struct InstanceData_1 -{ - float4x4 MATRIX_MVP; - float4 Color; -}; - -struct gInstanceData -{ - InstanceData_1 _data[1]; -}; - -struct main0_out -{ - float4 _entryPointOutput_Color [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float3 PosL [[attribute(0)]]; -}; - -static inline __attribute__((always_inline)) -V2F _VS(thread const float3& PosL, thread const uint& instanceID, const device gInstanceData& gInstanceData_1) -{ - InstanceData instData; - instData.MATRIX_MVP = transpose(gInstanceData_1._data[instanceID].MATRIX_MVP); - instData.Color = gInstanceData_1._data[instanceID].Color; - V2F v2f; - v2f.Position = instData.MATRIX_MVP * float4(PosL, 1.0); - v2f.Color = instData.Color; - return v2f; -} - -vertex main0_out main0(main0_in in [[stage_in]], const device gInstanceData& gInstanceData_1 [[buffer(0)]], uint gl_InstanceIndex [[instance_id]]) -{ - main0_out out = {}; - float3 PosL = in.PosL; - uint instanceID = gl_InstanceIndex; - float3 param = PosL; - uint param_1 = instanceID; - V2F flattenTemp = _VS(param, param_1, gInstanceData_1); - out.gl_Position = flattenTemp.Position; - out._entryPointOutput_Color = flattenTemp.Color; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/vert/fake-builtin-input.asm.vert b/third_party/spirv-cross/reference/shaders-msl/asm/vert/fake-builtin-input.asm.vert deleted file mode 100644 index 3079ae9bcb..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/vert/fake-builtin-input.asm.vert +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - half4 out_var_SV_Target [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float2 in_var_POSITION [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.gl_Position = float4(in.in_var_POSITION, 0.0, 1.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/vert/invariant.msl21.asm.vert b/third_party/spirv-cross/reference/shaders-msl/asm/vert/invariant.msl21.asm.vert deleted file mode 100644 index d74c43b3f0..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/vert/invariant.msl21.asm.vert +++ /dev/null @@ -1,26 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position, invariant]]; -}; - -static inline __attribute__((always_inline)) -float4 _main() -{ - return float4(1.0); -} - -vertex main0_out main0() -{ - main0_out out = {}; - float4 _14 = _main(); - out.gl_Position = _14; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/vert/packed-bool-to-uint.asm.vert b/third_party/spirv-cross/reference/shaders-msl/asm/vert/packed-bool-to-uint.asm.vert deleted file mode 100644 index 1926ff9e14..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/vert/packed-bool-to-uint.asm.vert +++ /dev/null @@ -1,38 +0,0 @@ -#include -#include - -using namespace metal; - -struct Struct -{ - uint flags[1]; -}; - -struct defaultUniformsVS -{ - Struct flags; - float4 uquad[4]; - float4x4 umatrix; -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 a_position [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant defaultUniformsVS& _9 [[buffer(0)]], uint gl_VertexIndex [[vertex_id]]) -{ - main0_out out = {}; - out.gl_Position = _9.umatrix * float4(_9.uquad[int(gl_VertexIndex)].x, _9.uquad[int(gl_VertexIndex)].y, in.a_position.z, in.a_position.w); - if (_9.flags.flags[0] != 0u) - { - out.gl_Position.z = 0.0; - } - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/vert/packed-bool2-to-packed_uint2.asm.vert b/third_party/spirv-cross/reference/shaders-msl/asm/vert/packed-bool2-to-packed_uint2.asm.vert deleted file mode 100644 index ee20638574..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/vert/packed-bool2-to-packed_uint2.asm.vert +++ /dev/null @@ -1,38 +0,0 @@ -#include -#include - -using namespace metal; - -struct Struct -{ - uint2 flags[1]; -}; - -struct defaultUniformsVS -{ - Struct flags; - float4 uquad[4]; - float4x4 umatrix; -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 a_position [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant defaultUniformsVS& _9 [[buffer(0)]], uint gl_VertexIndex [[vertex_id]]) -{ - main0_out out = {}; - out.gl_Position = _9.umatrix * float4(_9.uquad[int(gl_VertexIndex)].x, _9.uquad[int(gl_VertexIndex)].y, in.a_position.z, in.a_position.w); - if (_9.flags.flags[0].x != 0u) - { - out.gl_Position.z = 0.0; - } - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/vert/packing-test.asm.vert b/third_party/spirv-cross/reference/shaders-msl/asm/vert/packing-test.asm.vert deleted file mode 100644 index ac2d30c8df..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/vert/packing-test.asm.vert +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include - -using namespace metal; - -struct TestStruct -{ - float4x4 transforms[6]; -}; - -struct CB0 -{ - TestStruct CB0[16]; -}; - -vertex void main0() -{ -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/vert/spec-constant-op-composite.asm.vert b/third_party/spirv-cross/reference/shaders-msl/asm/vert/spec-constant-op-composite.asm.vert deleted file mode 100644 index 05a69e48a0..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/vert/spec-constant-op-composite.asm.vert +++ /dev/null @@ -1,37 +0,0 @@ -#include -#include - -using namespace metal; - -constant int _7_tmp [[function_constant(201)]]; -constant int _7 = is_function_constant_defined(_7_tmp) ? _7_tmp : -10; -constant int _20 = (_7 + 2); -constant uint _8_tmp [[function_constant(202)]]; -constant uint _8 = is_function_constant_defined(_8_tmp) ? _8_tmp : 100u; -constant uint _25 = (_8 % 5u); -constant int4 _30 = int4(20, 30, _20, _20); -constant int2 _32 = int2(_30.y, _30.x); -constant int _33 = _30.y; -constant float _9_tmp [[function_constant(200)]]; -constant float _9 = is_function_constant_defined(_9_tmp) ? _9_tmp : 3.141590118408203125; - -struct main0_out -{ - int m_4 [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -vertex main0_out main0() -{ - main0_out out = {}; - float4 pos = float4(0.0); - pos.y += float(_20); - pos.z += float(_25); - pos += float4(_30); - float2 _56 = pos.xy + float2(_32); - pos = float4(_56.x, _56.y, pos.z, pos.w); - out.gl_Position = pos; - out.m_4 = _33; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/asm/vert/uint-vertex-id-instance-id.asm.vert b/third_party/spirv-cross/reference/shaders-msl/asm/vert/uint-vertex-id-instance-id.asm.vert deleted file mode 100644 index 30df905e6a..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/asm/vert/uint-vertex-id-instance-id.asm.vert +++ /dev/null @@ -1,29 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -static inline __attribute__((always_inline)) -float4 _main(thread const uint& vid, thread const uint& iid) -{ - return float4(float(vid + iid)); -} - -vertex main0_out main0(uint gl_VertexIndex [[vertex_id]], uint gl_InstanceIndex [[instance_id]]) -{ - main0_out out = {}; - uint vid = gl_VertexIndex; - uint iid = gl_InstanceIndex; - uint param = vid; - uint param_1 = iid; - out.gl_Position = _main(param, param_1); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/access-private-workgroup-in-function.comp b/third_party/spirv-cross/reference/shaders-msl/comp/access-private-workgroup-in-function.comp deleted file mode 100644 index 85185e6df6..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/access-private-workgroup-in-function.comp +++ /dev/null @@ -1,38 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -static inline __attribute__((always_inline)) -void set_f(thread int& f) -{ - f = 40; -} - -static inline __attribute__((always_inline)) -void set_shared_u(threadgroup int& u) -{ - u = 50; -} - -kernel void main0(uint gl_LocalInvocationIndex [[thread_index_in_threadgroup]]) -{ - threadgroup int u; - int f; - set_f(f); - set_shared_u(u); - if (gl_LocalInvocationIndex == 0u) - { - f = 10; - } - else - { - f = 30; - u = 20; - } -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/argument-buffers-discrete.msl2.argument.discrete.comp b/third_party/spirv-cross/reference/shaders-msl/comp/argument-buffers-discrete.msl2.argument.discrete.comp deleted file mode 100644 index 18cfd68c19..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/argument-buffers-discrete.msl2.argument.discrete.comp +++ /dev/null @@ -1,42 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO3 -{ - float4 v; -}; - -struct SSBO0 -{ - float4 v; -}; - -struct SSBO1 -{ - float4 v; -}; - -struct SSBO2 -{ - float4 v; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -struct spvDescriptorSetBuffer0 -{ - const device SSBO0* ssbo0 [[id(0)]]; -}; - -struct spvDescriptorSetBuffer1 -{ - const device SSBO1* ssbo1 [[id(0)]]; -}; - -kernel void main0(constant spvDescriptorSetBuffer0& spvDescriptorSet0 [[buffer(0)]], constant spvDescriptorSetBuffer1& spvDescriptorSet1 [[buffer(1)]], device SSBO3& ssbo3 [[buffer(2)]], const device SSBO2& ssbo2 [[buffer(3)]]) -{ - ssbo3.v = ((*spvDescriptorSet0.ssbo0).v + (*spvDescriptorSet1.ssbo1).v) + ssbo2.v; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/argument-buffers-image-load-store.ios.msl2.argument.comp b/third_party/spirv-cross/reference/shaders-msl/comp/argument-buffers-image-load-store.ios.msl2.argument.comp deleted file mode 100644 index c23a9d1d00..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/argument-buffers-image-load-store.ios.msl2.argument.comp +++ /dev/null @@ -1,11 +0,0 @@ -#include -#include - -using namespace metal; - -kernel void main0(texture2d uImage [[texture(0)]], texture2d uImageRead [[texture(1)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - int2 coord = int2(gl_GlobalInvocationID.xy); - uImage.write(uImageRead.read(uint2(coord)), uint2(coord)); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/argument-buffers-image-load-store.msl2.argument.comp b/third_party/spirv-cross/reference/shaders-msl/comp/argument-buffers-image-load-store.msl2.argument.comp deleted file mode 100644 index 9bd15acf75..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/argument-buffers-image-load-store.msl2.argument.comp +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct spvDescriptorSetBuffer0 -{ - texture2d uImage [[id(0)]]; - texture2d uImageRead [[id(1)]]; -}; - -kernel void main0(constant spvDescriptorSetBuffer0& spvDescriptorSet0 [[buffer(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - int2 coord = int2(gl_GlobalInvocationID.xy); - spvDescriptorSet0.uImage.write(spvDescriptorSet0.uImageRead.read(uint2(coord)), uint2(coord)); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/array-length.comp b/third_party/spirv-cross/reference/shaders-msl/comp/array-length.comp deleted file mode 100644 index 9ac8c827e6..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/array-length.comp +++ /dev/null @@ -1,39 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBO -{ - uint size; - float4 v[1]; -}; - -struct SSBO1 -{ - float bz[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -static inline __attribute__((always_inline)) -uint get_size(device SSBO& v_14, constant uint& v_14BufferSize, device SSBO1* (&ssbos)[2], constant uint* ssbosBufferSize) -{ - return uint(int((v_14BufferSize - 16) / 16) + int((ssbosBufferSize[1] - 0) / 4)); -} - -kernel void main0(constant uint* spvBufferSizeConstants [[buffer(25)]], device SSBO& v_14 [[buffer(0)]], device SSBO1* ssbos_0 [[buffer(1)]], device SSBO1* ssbos_1 [[buffer(2)]]) -{ - device SSBO1* ssbos[] = - { - ssbos_0, - ssbos_1, - }; - - constant uint& v_14BufferSize = spvBufferSizeConstants[0]; - constant uint* ssbosBufferSize = &spvBufferSizeConstants[1]; - v_14.size = get_size(v_14, v_14BufferSize, ssbos, ssbosBufferSize); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/array-length.msl2.argument.discrete.comp b/third_party/spirv-cross/reference/shaders-msl/comp/array-length.msl2.argument.discrete.comp deleted file mode 100644 index aa1f4424d1..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/array-length.msl2.argument.discrete.comp +++ /dev/null @@ -1,68 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBO -{ - uint size; - float4 v[1]; -}; - -struct SSBO1 -{ - float bz[1]; -}; - -struct SSBO2 -{ - uint size2; - float4 w[1]; -}; - -struct SSBO3 -{ - float bz[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -struct spvDescriptorSetBuffer0 -{ - device SSBO* v_16 [[id(0)]]; - constant uint* spvBufferSizeConstants [[id(1)]]; -}; - -struct spvDescriptorSetBuffer1 -{ - device SSBO1* ssbos [[id(0)]][2]; - constant uint* spvBufferSizeConstants [[id(2)]]; -}; - -static inline __attribute__((always_inline)) -uint get_size(device SSBO& v_16, constant uint& v_16BufferSize, device SSBO1* constant (&ssbos)[2], constant uint* ssbosBufferSize, device SSBO2& v_38, constant uint& v_38BufferSize, device SSBO3* (&ssbos2)[2], constant uint* ssbos2BufferSize) -{ - uint len = uint(int((v_16BufferSize - 16) / 16)); - len += uint(int((ssbosBufferSize[1] - 0) / 4)); - len += uint(int((v_38BufferSize - 16) / 16)); - len += uint(int((ssbos2BufferSize[0] - 0) / 4)); - return len; -} - -kernel void main0(constant spvDescriptorSetBuffer0& spvDescriptorSet0 [[buffer(0)]], constant spvDescriptorSetBuffer1& spvDescriptorSet1 [[buffer(1)]], constant uint* spvBufferSizeConstants [[buffer(25)]], device SSBO2& v_38 [[buffer(2)]], device SSBO3* ssbos2_0 [[buffer(3)]], device SSBO3* ssbos2_1 [[buffer(4)]]) -{ - device SSBO3* ssbos2[] = - { - ssbos2_0, - ssbos2_1, - }; - - constant uint& spvDescriptorSet0_v_16BufferSize = spvDescriptorSet0.spvBufferSizeConstants[0]; - constant uint* spvDescriptorSet1_ssbosBufferSize = &spvDescriptorSet1.spvBufferSizeConstants[0]; - constant uint& v_38BufferSize = spvBufferSizeConstants[2]; - constant uint* ssbos2BufferSize = &spvBufferSizeConstants[3]; - (*spvDescriptorSet0.v_16).size = get_size((*spvDescriptorSet0.v_16), spvDescriptorSet0_v_16BufferSize, spvDescriptorSet1.ssbos, spvDescriptorSet1_ssbosBufferSize, v_38, v_38BufferSize, ssbos2, ssbos2BufferSize); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/atomic.comp b/third_party/spirv-cross/reference/shaders-msl/comp/atomic.comp deleted file mode 100644 index fca72bfcfe..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/atomic.comp +++ /dev/null @@ -1,72 +0,0 @@ -#pragma clang diagnostic ignored "-Wunused-variable" - -#include -#include -#include - -using namespace metal; - -struct SSBO -{ - uint u32; - int i32; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO& ssbo [[buffer(0)]]) -{ - threadgroup uint shared_u32; - threadgroup int shared_i32; - uint _16 = atomic_fetch_add_explicit((device atomic_uint*)&ssbo.u32, 1u, memory_order_relaxed); - uint _18 = atomic_fetch_or_explicit((device atomic_uint*)&ssbo.u32, 1u, memory_order_relaxed); - uint _20 = atomic_fetch_xor_explicit((device atomic_uint*)&ssbo.u32, 1u, memory_order_relaxed); - uint _22 = atomic_fetch_and_explicit((device atomic_uint*)&ssbo.u32, 1u, memory_order_relaxed); - uint _24 = atomic_fetch_min_explicit((device atomic_uint*)&ssbo.u32, 1u, memory_order_relaxed); - uint _26 = atomic_fetch_max_explicit((device atomic_uint*)&ssbo.u32, 1u, memory_order_relaxed); - uint _28 = atomic_exchange_explicit((device atomic_uint*)&ssbo.u32, 1u, memory_order_relaxed); - uint _32; - do - { - _32 = 10u; - } while (!atomic_compare_exchange_weak_explicit((device atomic_uint*)&ssbo.u32, &_32, 2u, memory_order_relaxed, memory_order_relaxed) && _32 == 10u); - int _36 = atomic_fetch_add_explicit((device atomic_int*)&ssbo.i32, 1, memory_order_relaxed); - int _38 = atomic_fetch_or_explicit((device atomic_int*)&ssbo.i32, 1, memory_order_relaxed); - int _40 = atomic_fetch_xor_explicit((device atomic_int*)&ssbo.i32, 1, memory_order_relaxed); - int _42 = atomic_fetch_and_explicit((device atomic_int*)&ssbo.i32, 1, memory_order_relaxed); - int _44 = atomic_fetch_min_explicit((device atomic_int*)&ssbo.i32, 1, memory_order_relaxed); - int _46 = atomic_fetch_max_explicit((device atomic_int*)&ssbo.i32, 1, memory_order_relaxed); - int _48 = atomic_exchange_explicit((device atomic_int*)&ssbo.i32, 1, memory_order_relaxed); - int _52; - do - { - _52 = 10; - } while (!atomic_compare_exchange_weak_explicit((device atomic_int*)&ssbo.i32, &_52, 2, memory_order_relaxed, memory_order_relaxed) && _52 == 10); - shared_u32 = 10u; - shared_i32 = 10; - uint _57 = atomic_fetch_add_explicit((threadgroup atomic_uint*)&shared_u32, 1u, memory_order_relaxed); - uint _58 = atomic_fetch_or_explicit((threadgroup atomic_uint*)&shared_u32, 1u, memory_order_relaxed); - uint _59 = atomic_fetch_xor_explicit((threadgroup atomic_uint*)&shared_u32, 1u, memory_order_relaxed); - uint _60 = atomic_fetch_and_explicit((threadgroup atomic_uint*)&shared_u32, 1u, memory_order_relaxed); - uint _61 = atomic_fetch_min_explicit((threadgroup atomic_uint*)&shared_u32, 1u, memory_order_relaxed); - uint _62 = atomic_fetch_max_explicit((threadgroup atomic_uint*)&shared_u32, 1u, memory_order_relaxed); - uint _63 = atomic_exchange_explicit((threadgroup atomic_uint*)&shared_u32, 1u, memory_order_relaxed); - uint _64; - do - { - _64 = 10u; - } while (!atomic_compare_exchange_weak_explicit((threadgroup atomic_uint*)&shared_u32, &_64, 2u, memory_order_relaxed, memory_order_relaxed) && _64 == 10u); - int _65 = atomic_fetch_add_explicit((threadgroup atomic_int*)&shared_i32, 1, memory_order_relaxed); - int _66 = atomic_fetch_or_explicit((threadgroup atomic_int*)&shared_i32, 1, memory_order_relaxed); - int _67 = atomic_fetch_xor_explicit((threadgroup atomic_int*)&shared_i32, 1, memory_order_relaxed); - int _68 = atomic_fetch_and_explicit((threadgroup atomic_int*)&shared_i32, 1, memory_order_relaxed); - int _69 = atomic_fetch_min_explicit((threadgroup atomic_int*)&shared_i32, 1, memory_order_relaxed); - int _70 = atomic_fetch_max_explicit((threadgroup atomic_int*)&shared_i32, 1, memory_order_relaxed); - int _71 = atomic_exchange_explicit((threadgroup atomic_int*)&shared_i32, 1, memory_order_relaxed); - int _72; - do - { - _72 = 10; - } while (!atomic_compare_exchange_weak_explicit((threadgroup atomic_int*)&shared_i32, &_72, 2, memory_order_relaxed, memory_order_relaxed) && _72 == 10); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/barriers.comp b/third_party/spirv-cross/reference/shaders-msl/comp/barriers.comp deleted file mode 100644 index 82813906f6..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/barriers.comp +++ /dev/null @@ -1,90 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(4u, 1u, 1u); - -static inline __attribute__((always_inline)) -void barrier_shared() -{ - threadgroup_barrier(mem_flags::mem_threadgroup); -} - -static inline __attribute__((always_inline)) -void full_barrier() -{ - threadgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup | mem_flags::mem_texture); -} - -static inline __attribute__((always_inline)) -void image_barrier() -{ - threadgroup_barrier(mem_flags::mem_texture); -} - -static inline __attribute__((always_inline)) -void buffer_barrier() -{ - threadgroup_barrier(mem_flags::mem_device); -} - -static inline __attribute__((always_inline)) -void group_barrier() -{ - threadgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup | mem_flags::mem_texture); -} - -static inline __attribute__((always_inline)) -void barrier_shared_exec() -{ - threadgroup_barrier(mem_flags::mem_threadgroup); -} - -static inline __attribute__((always_inline)) -void full_barrier_exec() -{ - threadgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup | mem_flags::mem_texture); -} - -static inline __attribute__((always_inline)) -void image_barrier_exec() -{ - threadgroup_barrier(mem_flags::mem_texture); -} - -static inline __attribute__((always_inline)) -void buffer_barrier_exec() -{ - threadgroup_barrier(mem_flags::mem_device); -} - -static inline __attribute__((always_inline)) -void group_barrier_exec() -{ - threadgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup | mem_flags::mem_texture); -} - -static inline __attribute__((always_inline)) -void exec_barrier() -{ - threadgroup_barrier(mem_flags::mem_threadgroup); -} - -kernel void main0() -{ - barrier_shared(); - full_barrier(); - image_barrier(); - buffer_barrier(); - group_barrier(); - barrier_shared_exec(); - full_barrier_exec(); - image_barrier_exec(); - buffer_barrier_exec(); - group_barrier_exec(); - exec_barrier(); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/basic.comp b/third_party/spirv-cross/reference/shaders-msl/comp/basic.comp deleted file mode 100644 index 42518f0d1d..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/basic.comp +++ /dev/null @@ -1,36 +0,0 @@ -#pragma clang diagnostic ignored "-Wunused-variable" - -#include -#include -#include - -using namespace metal; - -struct SSBO -{ - float4 in_data[1]; -}; - -struct SSBO2 -{ - float4 out_data[1]; -}; - -struct SSBO3 -{ - uint counter; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(const device SSBO& _23 [[buffer(0)]], device SSBO2& _45 [[buffer(1)]], device SSBO3& _48 [[buffer(2)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - uint ident = gl_GlobalInvocationID.x; - float4 idata = _23.in_data[ident]; - if (dot(idata, float4(1.0, 5.0, 6.0, 2.0)) > 8.19999980926513671875) - { - uint _52 = atomic_fetch_add_explicit((device atomic_uint*)&_48.counter, 1u, memory_order_relaxed); - _45.out_data[_52] = idata; - } -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/basic.dispatchbase.comp b/third_party/spirv-cross/reference/shaders-msl/comp/basic.dispatchbase.comp deleted file mode 100644 index 92d517cffb..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/basic.dispatchbase.comp +++ /dev/null @@ -1,41 +0,0 @@ -#pragma clang diagnostic ignored "-Wunused-variable" - -#include -#include -#include - -using namespace metal; - -struct SSBO -{ - float4 in_data[1]; -}; - -struct SSBO2 -{ - float4 out_data[1]; -}; - -struct SSBO3 -{ - uint counter; -}; - -constant uint _59_tmp [[function_constant(10)]]; -constant uint _59 = is_function_constant_defined(_59_tmp) ? _59_tmp : 1u; -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(_59, 1u, 1u); - -kernel void main0(const device SSBO& _27 [[buffer(0)]], device SSBO2& _49 [[buffer(1)]], device SSBO3& _52 [[buffer(2)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint3 gl_WorkGroupID [[threadgroup_position_in_grid]], uint3 spvDispatchBase [[grid_origin]]) -{ - gl_GlobalInvocationID += spvDispatchBase * gl_WorkGroupSize; - gl_WorkGroupID += spvDispatchBase; - uint ident = gl_GlobalInvocationID.x; - uint workgroup = gl_WorkGroupID.x; - float4 idata = _27.in_data[ident]; - if (dot(idata, float4(1.0, 5.0, 6.0, 2.0)) > 8.19999980926513671875) - { - uint _56 = atomic_fetch_add_explicit((device atomic_uint*)&_52.counter, 1u, memory_order_relaxed); - _49.out_data[_56] = idata; - } -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/basic.dispatchbase.msl11.comp b/third_party/spirv-cross/reference/shaders-msl/comp/basic.dispatchbase.msl11.comp deleted file mode 100644 index 87b0b44291..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/basic.dispatchbase.msl11.comp +++ /dev/null @@ -1,39 +0,0 @@ -#pragma clang diagnostic ignored "-Wunused-variable" - -#include -#include -#include - -using namespace metal; - -struct SSBO -{ - float4 in_data[1]; -}; - -struct SSBO2 -{ - float4 out_data[1]; -}; - -struct SSBO3 -{ - uint counter; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(constant uint3& spvDispatchBase [[buffer(29)]], const device SSBO& _27 [[buffer(0)]], device SSBO2& _49 [[buffer(1)]], device SSBO3& _52 [[buffer(2)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint3 gl_WorkGroupID [[threadgroup_position_in_grid]]) -{ - gl_GlobalInvocationID += spvDispatchBase * gl_WorkGroupSize; - gl_WorkGroupID += spvDispatchBase; - uint ident = gl_GlobalInvocationID.x; - uint workgroup = gl_WorkGroupID.x; - float4 idata = _27.in_data[ident]; - if (dot(idata, float4(1.0, 5.0, 6.0, 2.0)) > 8.19999980926513671875) - { - uint _56 = atomic_fetch_add_explicit((device atomic_uint*)&_52.counter, 1u, memory_order_relaxed); - _49.out_data[_56] = idata; - } -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/basic.inline-block.msl2.comp b/third_party/spirv-cross/reference/shaders-msl/comp/basic.inline-block.msl2.comp deleted file mode 100644 index 337b1b7336..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/basic.inline-block.msl2.comp +++ /dev/null @@ -1,54 +0,0 @@ -#include -#include - -using namespace metal; - -typedef packed_float4 packed_float4x4[4]; - -struct Baz -{ - int f; - int g; -}; - -struct X -{ - int x; - int y; - float z; -}; - -struct Foo -{ - int a; - int b; - packed_float4x4 c; - X x[2]; -}; - -struct Bar -{ - int d; - int e; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(3u, 3u, 2u); - -struct spvDescriptorSetBuffer0 -{ - constant Bar* m_38 [[id(0)]]; - Foo m_32 [[id(1)]]; -}; - -struct spvDescriptorSetBuffer1 -{ - device Baz* baz [[id(0)]][3]; -}; - -kernel void main0(constant spvDescriptorSetBuffer0& spvDescriptorSet0 [[buffer(0)]], constant spvDescriptorSetBuffer1& spvDescriptorSet1 [[buffer(1)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - uint3 coords = gl_GlobalInvocationID; - spvDescriptorSet1.baz[coords.x]->f = spvDescriptorSet0.m_32.a + (*spvDescriptorSet0.m_38).d; - spvDescriptorSet1.baz[coords.x]->g = spvDescriptorSet0.m_32.b * (*spvDescriptorSet0.m_38).e; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/builtins.comp b/third_party/spirv-cross/reference/shaders-msl/comp/builtins.comp deleted file mode 100644 index 4f03b09980..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/builtins.comp +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(8u, 4u, 2u); - -kernel void main0(uint3 gl_LocalInvocationID [[thread_position_in_threadgroup]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint gl_LocalInvocationIndex [[thread_index_in_threadgroup]], uint3 gl_NumWorkGroups [[threadgroups_per_grid]], uint3 gl_WorkGroupID [[threadgroup_position_in_grid]]) -{ - uint3 local_id = gl_LocalInvocationID; - uint3 global_id = gl_GlobalInvocationID; - uint local_index = gl_LocalInvocationIndex; - uint3 work_group_size = gl_WorkGroupSize; - uint3 num_work_groups = gl_NumWorkGroups; - uint3 work_group_id = gl_WorkGroupID; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/cfg-preserve-parameter.comp b/third_party/spirv-cross/reference/shaders-msl/comp/cfg-preserve-parameter.comp deleted file mode 100644 index ce1bef3f8e..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/cfg-preserve-parameter.comp +++ /dev/null @@ -1,82 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -static inline __attribute__((always_inline)) -void out_test_0(thread const int& cond, thread int& i) -{ - if (cond == 0) - { - i = 40; - } - else - { - i = 60; - } -} - -static inline __attribute__((always_inline)) -void out_test_1(thread const int& cond, thread int& i) -{ - switch (cond) - { - case 40: - { - i = 40; - break; - } - default: - { - i = 70; - break; - } - } -} - -static inline __attribute__((always_inline)) -void inout_test_0(thread const int& cond, thread int& i) -{ - if (cond == 0) - { - i = 40; - } -} - -static inline __attribute__((always_inline)) -void inout_test_1(thread const int& cond, thread int& i) -{ - switch (cond) - { - case 40: - { - i = 40; - break; - } - } -} - -kernel void main0() -{ - int cond = 40; - int i = 50; - int param = cond; - int param_1 = i; - out_test_0(param, param_1); - i = param_1; - int param_2 = cond; - int param_3 = i; - out_test_1(param_2, param_3); - i = param_3; - int param_4 = cond; - int param_5 = i; - inout_test_0(param_4, param_5); - i = param_5; - int param_6 = cond; - int param_7 = i; - inout_test_1(param_6, param_7); - i = param_7; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/coherent-block.comp b/third_party/spirv-cross/reference/shaders-msl/comp/coherent-block.comp deleted file mode 100644 index 58bbacb7f0..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/coherent-block.comp +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - float4 value; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(volatile device SSBO& _10 [[buffer(0)]]) -{ - _10.value = float4(20.0); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/coherent-image.comp b/third_party/spirv-cross/reference/shaders-msl/comp/coherent-image.comp deleted file mode 100644 index 5090484464..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/coherent-image.comp +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - int4 value; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(volatile device SSBO& _10 [[buffer(0)]], texture2d uImage [[texture(0)]]) -{ - _10.value = uImage.read(uint2(int2(10))); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/complex-composite-constant-array.comp b/third_party/spirv-cross/reference/shaders-msl/comp/complex-composite-constant-array.comp deleted file mode 100644 index 2f5549f5fb..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/complex-composite-constant-array.comp +++ /dev/null @@ -1,65 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct SSBO -{ - float4x4 a; - uint index; -}; - -constant spvUnsafeArray _32 = spvUnsafeArray({ float4x4(float4(1.0, 0.0, 0.0, 0.0), float4(0.0, 1.0, 0.0, 0.0), float4(0.0, 0.0, 1.0, 0.0), float4(0.0, 0.0, 0.0, 1.0)), float4x4(float4(2.0, 0.0, 0.0, 0.0), float4(0.0, 2.0, 0.0, 0.0), float4(0.0, 0.0, 2.0, 0.0), float4(0.0, 0.0, 0.0, 2.0)) }); - -static inline __attribute__((always_inline)) -void write_global(device SSBO& v_14) -{ - v_14.a = _32[v_14.index]; -} - -kernel void main0(device SSBO& v_14 [[buffer(0)]]) -{ - write_global(v_14); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/complex-type-alias.comp b/third_party/spirv-cross/reference/shaders-msl/comp/complex-type-alias.comp deleted file mode 100644 index fc0d57500b..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/complex-type-alias.comp +++ /dev/null @@ -1,69 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct Foo0 -{ - float a; -}; - -struct Foo1 -{ - Foo0 a; -}; - -struct Foo2 -{ - Foo1 a; - float weight; -}; - -struct Foo0_1 -{ - float a; -}; - -struct Foo1_1 -{ - Foo0_1 a; -}; - -struct Foo2_1 -{ - Foo1_1 a; - float weight; -}; - -struct SSBO -{ - Foo2_1 outputs[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(8u, 8u, 1u); - -static inline __attribute__((always_inline)) -void Zero(thread Foo0& v) -{ - v.a = 0.0; -} - -kernel void main0(device SSBO& _53 [[buffer(0)]], uint gl_LocalInvocationIndex [[thread_index_in_threadgroup]], uint3 gl_WorkGroupID [[threadgroup_position_in_grid]]) -{ - threadgroup Foo2 coeffs[64]; - Foo2 data; - data.weight = 0.0; - Foo0 param; - Zero(param); - data.a.a = param; - coeffs[gl_LocalInvocationIndex] = data; - threadgroup_barrier(mem_flags::mem_threadgroup); - if (gl_LocalInvocationIndex == 0u) - { - _53.outputs[gl_WorkGroupID.x].a.a.a = coeffs[0].a.a.a; - _53.outputs[gl_WorkGroupID.x].weight = coeffs[0].weight; - } -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/composite-array-initialization.comp b/third_party/spirv-cross/reference/shaders-msl/comp/composite-array-initialization.comp deleted file mode 100644 index c6c17b1f39..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/composite-array-initialization.comp +++ /dev/null @@ -1,89 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct Data -{ - float a; - float b; -}; - -constant float X_tmp [[function_constant(0)]]; -constant float X = is_function_constant_defined(X_tmp) ? X_tmp : 4.0; - -struct Data_1 -{ - float a; - float b; -}; - -struct SSBO -{ - Data_1 outdata[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(2u, 1u, 1u); - -constant spvUnsafeArray _25 = spvUnsafeArray({ Data{ 1.0, 2.0 }, Data{ 3.0, 4.0 } }); - -static inline __attribute__((always_inline)) -Data combine(thread const Data& a, thread const Data& b) -{ - return Data{ a.a + b.a, a.b + b.b }; -} - -kernel void main0(device SSBO& _53 [[buffer(0)]], uint3 gl_WorkGroupID [[threadgroup_position_in_grid]], uint3 gl_LocalInvocationID [[thread_position_in_threadgroup]]) -{ - spvUnsafeArray data = spvUnsafeArray({ Data{ 1.0, 2.0 }, Data{ 3.0, 4.0 } }); - spvUnsafeArray _31 = spvUnsafeArray({ Data{ X, 2.0 }, Data{ 3.0, 5.0 } }); - spvUnsafeArray data2; - data2 = _31; - Data param = data[gl_LocalInvocationID.x]; - Data param_1 = data2[gl_LocalInvocationID.x]; - Data _73 = combine(param, param_1); - _53.outdata[gl_WorkGroupID.x].a = _73.a; - _53.outdata[gl_WorkGroupID.x].b = _73.b; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/composite-array-initialization.force-native-array.comp b/third_party/spirv-cross/reference/shaders-msl/comp/composite-array-initialization.force-native-array.comp deleted file mode 100644 index 7320219817..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/composite-array-initialization.force-native-array.comp +++ /dev/null @@ -1,158 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct Data -{ - float a; - float b; -}; - -constant float X_tmp [[function_constant(0)]]; -constant float X = is_function_constant_defined(X_tmp) ? X_tmp : 4.0; - -struct Data_1 -{ - float a; - float b; -}; - -struct SSBO -{ - Data_1 outdata[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(2u, 1u, 1u); - -constant Data _25[2] = { Data{ 1.0, 2.0 }, Data{ 3.0, 4.0 } }; - -template -inline void spvArrayCopyFromConstantToStack1(thread T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromConstantToThreadGroup1(threadgroup T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToStack1(thread T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToThreadGroup1(threadgroup T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToStack1(thread T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToThreadGroup1(threadgroup T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToDevice1(device T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromConstantToDevice1(device T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToDevice1(device T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToDevice1(device T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToStack1(thread T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToThreadGroup1(threadgroup T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -static inline __attribute__((always_inline)) -Data combine(thread const Data& a, thread const Data& b) -{ - return Data{ a.a + b.a, a.b + b.b }; -} - -kernel void main0(device SSBO& _53 [[buffer(0)]], uint3 gl_WorkGroupID [[threadgroup_position_in_grid]], uint3 gl_LocalInvocationID [[thread_position_in_threadgroup]]) -{ - Data data[2] = { Data{ 1.0, 2.0 }, Data{ 3.0, 4.0 } }; - Data _31[2] = { Data{ X, 2.0 }, Data{ 3.0, 5.0 } }; - Data data2[2]; - spvArrayCopyFromStackToStack1(data2, _31); - Data param = data[gl_LocalInvocationID.x]; - Data param_1 = data2[gl_LocalInvocationID.x]; - Data _73 = combine(param, param_1); - _53.outdata[gl_WorkGroupID.x].a = _73.a; - _53.outdata[gl_WorkGroupID.x].b = _73.b; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/composite-construct.comp b/third_party/spirv-cross/reference/shaders-msl/comp/composite-construct.comp deleted file mode 100644 index aada82fc92..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/composite-construct.comp +++ /dev/null @@ -1,76 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct SSBO0 -{ - float4 as[1]; -}; - -struct SSBO1 -{ - float4 bs[1]; -}; - -struct Composite -{ - float4 a; - float4 b; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -constant spvUnsafeArray _43 = spvUnsafeArray({ float4(20.0), float4(40.0) }); - -kernel void main0(device SSBO0& _16 [[buffer(0)]], device SSBO1& _32 [[buffer(1)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint gl_LocalInvocationIndex [[thread_index_in_threadgroup]]) -{ - spvUnsafeArray _37 = spvUnsafeArray({ _16.as[gl_GlobalInvocationID.x], _32.bs[gl_GlobalInvocationID.x] }); - spvUnsafeArray values; - values = _37; - Composite c = Composite{ values[0], _43[1] }; - _16.as[0] = values[gl_LocalInvocationIndex]; - _32.bs[1] = c.b; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/copy-array-of-arrays.comp b/third_party/spirv-cross/reference/shaders-msl/comp/copy-array-of-arrays.comp deleted file mode 100644 index 21fb9b367c..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/copy-array-of-arrays.comp +++ /dev/null @@ -1,79 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct BUF -{ - int a; - float b; - float c; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -constant spvUnsafeArray _16 = spvUnsafeArray({ 1.0, 2.0 }); -constant spvUnsafeArray _19 = spvUnsafeArray({ 3.0, 4.0 }); -constant spvUnsafeArray, 2> _20 = spvUnsafeArray, 2>({ spvUnsafeArray({ 1.0, 2.0 }), spvUnsafeArray({ 3.0, 4.0 }) }); -constant spvUnsafeArray, 2>, 2> _21 = spvUnsafeArray, 2>, 2>({ spvUnsafeArray, 2>({ spvUnsafeArray({ 1.0, 2.0 }), spvUnsafeArray({ 3.0, 4.0 }) }), spvUnsafeArray, 2>({ spvUnsafeArray({ 1.0, 2.0 }), spvUnsafeArray({ 3.0, 4.0 }) }) }); - -kernel void main0(device BUF& o [[buffer(0)]]) -{ - spvUnsafeArray, 2>, 2> c; - c = _21; - o.a = int(c[1][1][1]); - spvUnsafeArray _43 = spvUnsafeArray({ o.b, o.c }); - spvUnsafeArray _48 = spvUnsafeArray({ o.b, o.b }); - spvUnsafeArray, 2> _49 = spvUnsafeArray, 2>({ _43, _48 }); - spvUnsafeArray _54 = spvUnsafeArray({ o.c, o.c }); - spvUnsafeArray _59 = spvUnsafeArray({ o.c, o.b }); - spvUnsafeArray, 2> _60 = spvUnsafeArray, 2>({ _54, _59 }); - spvUnsafeArray, 2>, 2> _61 = spvUnsafeArray, 2>, 2>({ _49, _60 }); - spvUnsafeArray, 2>, 2> d; - d = _61; - spvUnsafeArray, 2>, 2> e; - e = d; - o.b = e[1][0][1]; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/copy-array-of-arrays.force-native-array.comp b/third_party/spirv-cross/reference/shaders-msl/comp/copy-array-of-arrays.force-native-array.comp deleted file mode 100644 index 67078d8998..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/copy-array-of-arrays.force-native-array.comp +++ /dev/null @@ -1,364 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct BUF -{ - int a; - float b; - float c; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -constant float _16[2] = { 1.0, 2.0 }; -constant float _19[2] = { 3.0, 4.0 }; -constant float _20[2][2] = { { 1.0, 2.0 }, { 3.0, 4.0 } }; -constant float _21[2][2][2] = { { { 1.0, 2.0 }, { 3.0, 4.0 } }, { { 1.0, 2.0 }, { 3.0, 4.0 } } }; - -template -inline void spvArrayCopyFromConstantToStack1(thread T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromConstantToThreadGroup1(threadgroup T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToStack1(thread T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToThreadGroup1(threadgroup T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToStack1(thread T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToThreadGroup1(threadgroup T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToDevice1(device T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromConstantToDevice1(device T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToDevice1(device T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToDevice1(device T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToStack1(thread T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToThreadGroup1(threadgroup T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromConstantToStack2(thread T (&dst)[A][B], constant T (&src)[A][B]) -{ - for (uint i = 0; i < A; i++) - { - spvArrayCopyFromConstantToStack1(dst[i], src[i]); - } -} - -template -inline void spvArrayCopyFromConstantToThreadGroup2(threadgroup T (&dst)[A][B], constant T (&src)[A][B]) -{ - for (uint i = 0; i < A; i++) - { - spvArrayCopyFromConstantToThreadGroup1(dst[i], src[i]); - } -} - -template -inline void spvArrayCopyFromStackToStack2(thread T (&dst)[A][B], thread const T (&src)[A][B]) -{ - for (uint i = 0; i < A; i++) - { - spvArrayCopyFromStackToStack1(dst[i], src[i]); - } -} - -template -inline void spvArrayCopyFromStackToThreadGroup2(threadgroup T (&dst)[A][B], thread const T (&src)[A][B]) -{ - for (uint i = 0; i < A; i++) - { - spvArrayCopyFromStackToThreadGroup1(dst[i], src[i]); - } -} - -template -inline void spvArrayCopyFromThreadGroupToStack2(thread T (&dst)[A][B], threadgroup const T (&src)[A][B]) -{ - for (uint i = 0; i < A; i++) - { - spvArrayCopyFromThreadGroupToStack1(dst[i], src[i]); - } -} - -template -inline void spvArrayCopyFromThreadGroupToThreadGroup2(threadgroup T (&dst)[A][B], threadgroup const T (&src)[A][B]) -{ - for (uint i = 0; i < A; i++) - { - spvArrayCopyFromThreadGroupToThreadGroup1(dst[i], src[i]); - } -} - -template -inline void spvArrayCopyFromDeviceToDevice2(device T (&dst)[A][B], device const T (&src)[A][B]) -{ - for (uint i = 0; i < A; i++) - { - spvArrayCopyFromDeviceToDevice1(dst[i], src[i]); - } -} - -template -inline void spvArrayCopyFromConstantToDevice2(device T (&dst)[A][B], constant T (&src)[A][B]) -{ - for (uint i = 0; i < A; i++) - { - spvArrayCopyFromConstantToDevice1(dst[i], src[i]); - } -} - -template -inline void spvArrayCopyFromStackToDevice2(device T (&dst)[A][B], thread const T (&src)[A][B]) -{ - for (uint i = 0; i < A; i++) - { - spvArrayCopyFromStackToDevice1(dst[i], src[i]); - } -} - -template -inline void spvArrayCopyFromThreadGroupToDevice2(device T (&dst)[A][B], threadgroup const T (&src)[A][B]) -{ - for (uint i = 0; i < A; i++) - { - spvArrayCopyFromThreadGroupToDevice1(dst[i], src[i]); - } -} - -template -inline void spvArrayCopyFromDeviceToStack2(thread T (&dst)[A][B], device const T (&src)[A][B]) -{ - for (uint i = 0; i < A; i++) - { - spvArrayCopyFromDeviceToStack1(dst[i], src[i]); - } -} - -template -inline void spvArrayCopyFromDeviceToThreadGroup2(threadgroup T (&dst)[A][B], device const T (&src)[A][B]) -{ - for (uint i = 0; i < A; i++) - { - spvArrayCopyFromDeviceToThreadGroup1(dst[i], src[i]); - } -} - -template -inline void spvArrayCopyFromConstantToStack3(thread T (&dst)[A][B][C], constant T (&src)[A][B][C]) -{ - for (uint i = 0; i < A; i++) - { - spvArrayCopyFromConstantToStack2(dst[i], src[i]); - } -} - -template -inline void spvArrayCopyFromConstantToThreadGroup3(threadgroup T (&dst)[A][B][C], constant T (&src)[A][B][C]) -{ - for (uint i = 0; i < A; i++) - { - spvArrayCopyFromConstantToThreadGroup2(dst[i], src[i]); - } -} - -template -inline void spvArrayCopyFromStackToStack3(thread T (&dst)[A][B][C], thread const T (&src)[A][B][C]) -{ - for (uint i = 0; i < A; i++) - { - spvArrayCopyFromStackToStack2(dst[i], src[i]); - } -} - -template -inline void spvArrayCopyFromStackToThreadGroup3(threadgroup T (&dst)[A][B][C], thread const T (&src)[A][B][C]) -{ - for (uint i = 0; i < A; i++) - { - spvArrayCopyFromStackToThreadGroup2(dst[i], src[i]); - } -} - -template -inline void spvArrayCopyFromThreadGroupToStack3(thread T (&dst)[A][B][C], threadgroup const T (&src)[A][B][C]) -{ - for (uint i = 0; i < A; i++) - { - spvArrayCopyFromThreadGroupToStack2(dst[i], src[i]); - } -} - -template -inline void spvArrayCopyFromThreadGroupToThreadGroup3(threadgroup T (&dst)[A][B][C], threadgroup const T (&src)[A][B][C]) -{ - for (uint i = 0; i < A; i++) - { - spvArrayCopyFromThreadGroupToThreadGroup2(dst[i], src[i]); - } -} - -template -inline void spvArrayCopyFromDeviceToDevice3(device T (&dst)[A][B][C], device const T (&src)[A][B][C]) -{ - for (uint i = 0; i < A; i++) - { - spvArrayCopyFromDeviceToDevice2(dst[i], src[i]); - } -} - -template -inline void spvArrayCopyFromConstantToDevice3(device T (&dst)[A][B][C], constant T (&src)[A][B][C]) -{ - for (uint i = 0; i < A; i++) - { - spvArrayCopyFromConstantToDevice2(dst[i], src[i]); - } -} - -template -inline void spvArrayCopyFromStackToDevice3(device T (&dst)[A][B][C], thread const T (&src)[A][B][C]) -{ - for (uint i = 0; i < A; i++) - { - spvArrayCopyFromStackToDevice2(dst[i], src[i]); - } -} - -template -inline void spvArrayCopyFromThreadGroupToDevice3(device T (&dst)[A][B][C], threadgroup const T (&src)[A][B][C]) -{ - for (uint i = 0; i < A; i++) - { - spvArrayCopyFromThreadGroupToDevice2(dst[i], src[i]); - } -} - -template -inline void spvArrayCopyFromDeviceToStack3(thread T (&dst)[A][B][C], device const T (&src)[A][B][C]) -{ - for (uint i = 0; i < A; i++) - { - spvArrayCopyFromDeviceToStack2(dst[i], src[i]); - } -} - -template -inline void spvArrayCopyFromDeviceToThreadGroup3(threadgroup T (&dst)[A][B][C], device const T (&src)[A][B][C]) -{ - for (uint i = 0; i < A; i++) - { - spvArrayCopyFromDeviceToThreadGroup2(dst[i], src[i]); - } -} - -kernel void main0(device BUF& o [[buffer(0)]]) -{ - float c[2][2][2]; - spvArrayCopyFromConstantToStack3(c, _21); - o.a = int(c[1][1][1]); - float _43[2] = { o.b, o.c }; - float _48[2] = { o.b, o.b }; - float _49[2][2] = { { _43[0], _43[1] }, { _48[0], _48[1] } }; - float _54[2] = { o.c, o.c }; - float _59[2] = { o.c, o.b }; - float _60[2][2] = { { _54[0], _54[1] }, { _59[0], _59[1] } }; - float _61[2][2][2] = { { { _49[0][0], _49[0][1] }, { _49[1][0], _49[1][1] } }, { { _60[0][0], _60[0][1] }, { _60[1][0], _60[1][1] } } }; - float d[2][2][2]; - spvArrayCopyFromStackToStack3(d, _61); - float e[2][2][2]; - spvArrayCopyFromStackToStack3(e, d); - o.b = e[1][0][1]; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/culling.comp b/third_party/spirv-cross/reference/shaders-msl/comp/culling.comp deleted file mode 100644 index 13578363b7..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/culling.comp +++ /dev/null @@ -1,36 +0,0 @@ -#pragma clang diagnostic ignored "-Wunused-variable" - -#include -#include -#include - -using namespace metal; - -struct SSBO -{ - float in_data[1]; -}; - -struct SSBO2 -{ - float out_data[1]; -}; - -struct SSBO3 -{ - uint count; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(4u, 1u, 1u); - -kernel void main0(const device SSBO& _22 [[buffer(0)]], device SSBO2& _38 [[buffer(1)]], device SSBO3& _41 [[buffer(2)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - uint ident = gl_GlobalInvocationID.x; - float idata = _22.in_data[ident]; - if (idata > 12.0) - { - uint _45 = atomic_fetch_add_explicit((device atomic_uint*)&_41.count, 1u, memory_order_relaxed); - _38.out_data[_45] = idata; - } -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/defer-parens.comp b/third_party/spirv-cross/reference/shaders-msl/comp/defer-parens.comp deleted file mode 100644 index 9a567fa6eb..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/defer-parens.comp +++ /dev/null @@ -1,25 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - float4 data; - int index; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO& _13 [[buffer(0)]]) -{ - float4 d = _13.data; - _13.data = float4(d.x, d.yz + float2(10.0), d.w); - _13.data = (d + d) + d; - _13.data = (d.yz + float2(10.0)).xxyy; - float t = (d.yz + float2(10.0)).y; - _13.data = float4(t); - t = (d.zw + float2(10.0))[_13.index]; - _13.data = float4(t); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/dowhile.comp b/third_party/spirv-cross/reference/shaders-msl/comp/dowhile.comp deleted file mode 100644 index 2b4de9ebb7..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/dowhile.comp +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - float4x4 mvp; - float4 in_data[1]; -}; - -struct SSBO2 -{ - float4 out_data[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(const device SSBO& _28 [[buffer(0)]], device SSBO2& _52 [[buffer(1)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - uint ident = gl_GlobalInvocationID.x; - int i = 0; - float4 idat = _28.in_data[ident]; - do - { - idat = _28.mvp * idat; - i++; - } while (i < 16); - _52.out_data[ident] = idat; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/force-recompile-hooks.swizzle.comp b/third_party/spirv-cross/reference/shaders-msl/comp/force-recompile-hooks.swizzle.comp deleted file mode 100644 index 856efeabaf..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/force-recompile-hooks.swizzle.comp +++ /dev/null @@ -1,74 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -template struct spvRemoveReference { typedef T type; }; -template struct spvRemoveReference { typedef T type; }; -template struct spvRemoveReference { typedef T type; }; -template inline constexpr thread T&& spvForward(thread typename spvRemoveReference::type& x) -{ - return static_cast(x); -} -template inline constexpr thread T&& spvForward(thread typename spvRemoveReference::type&& x) -{ - return static_cast(x); -} - -enum class spvSwizzle : uint -{ - none = 0, - zero, - one, - red, - green, - blue, - alpha -}; - -template -inline T spvGetSwizzle(vec x, T c, spvSwizzle s) -{ - switch (s) - { - case spvSwizzle::none: - return c; - case spvSwizzle::zero: - return 0; - case spvSwizzle::one: - return 1; - case spvSwizzle::red: - return x.r; - case spvSwizzle::green: - return x.g; - case spvSwizzle::blue: - return x.b; - case spvSwizzle::alpha: - return x.a; - } -} - -// Wrapper function that swizzles texture samples and fetches. -template -inline vec spvTextureSwizzle(vec x, uint s) -{ - if (!s) - return x; - return vec(spvGetSwizzle(x, x.r, spvSwizzle((s >> 0) & 0xFF)), spvGetSwizzle(x, x.g, spvSwizzle((s >> 8) & 0xFF)), spvGetSwizzle(x, x.b, spvSwizzle((s >> 16) & 0xFF)), spvGetSwizzle(x, x.a, spvSwizzle((s >> 24) & 0xFF))); -} - -template -inline T spvTextureSwizzle(T x, uint s) -{ - return spvTextureSwizzle(vec(x, 0, 0, 1), s).x; -} - -kernel void main0(constant uint* spvSwizzleConstants [[buffer(30)]], texture2d foo [[texture(0)]], texture2d bar [[texture(1)]], sampler fooSmplr [[sampler(0)]]) -{ - constant uint& fooSwzl = spvSwizzleConstants[0]; - float4 a = spvTextureSwizzle(foo.sample(fooSmplr, float2(1.0), level(0.0)), fooSwzl); - bar.write(a, uint2(int2(0))); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/functions.comp b/third_party/spirv-cross/reference/shaders-msl/comp/functions.comp deleted file mode 100644 index b107260878..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/functions.comp +++ /dev/null @@ -1,19 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -static inline __attribute__((always_inline)) -void myfunc(threadgroup int (&foo)[1337]) -{ - foo[0] = 13; -} - -kernel void main0() -{ - threadgroup int foo[1337]; - myfunc(foo); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/global-invocation-id-writable-ssbo-in-function.comp b/third_party/spirv-cross/reference/shaders-msl/comp/global-invocation-id-writable-ssbo-in-function.comp deleted file mode 100644 index dbc5886356..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/global-invocation-id-writable-ssbo-in-function.comp +++ /dev/null @@ -1,32 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct myBlock -{ - int a; - float b[1]; -}; - -// Implementation of the GLSL mod() function, which is slightly different than Metal fmod() -template -inline Tx mod(Tx x, Ty y) -{ - return x - y * floor(x / y); -} - -static inline __attribute__((always_inline)) -float getB(device myBlock& myStorage, thread uint3& gl_GlobalInvocationID) -{ - return myStorage.b[gl_GlobalInvocationID.x]; -} - -kernel void main0(device myBlock& myStorage [[buffer(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - myStorage.a = (myStorage.a + 1) % 256; - myStorage.b[gl_GlobalInvocationID.x] = mod(getB(myStorage, gl_GlobalInvocationID) + 0.0199999995529651641845703125, 1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/global-invocation-id.comp b/third_party/spirv-cross/reference/shaders-msl/comp/global-invocation-id.comp deleted file mode 100644 index 9900b59311..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/global-invocation-id.comp +++ /dev/null @@ -1,26 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct myBlock -{ - int a; - float b[1]; -}; - -// Implementation of the GLSL mod() function, which is slightly different than Metal fmod() -template -inline Tx mod(Tx x, Ty y) -{ - return x - y * floor(x / y); -} - -kernel void main0(device myBlock& myStorage [[buffer(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - myStorage.a = (myStorage.a + 1) % 256; - myStorage.b[gl_GlobalInvocationID.x] = mod(myStorage.b[gl_GlobalInvocationID.x] + 0.0199999995529651641845703125, 1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/image-atomic-automatic-bindings.argument.msl2.comp b/third_party/spirv-cross/reference/shaders-msl/comp/image-atomic-automatic-bindings.argument.msl2.comp deleted file mode 100644 index 7c0e5ddf23..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/image-atomic-automatic-bindings.argument.msl2.comp +++ /dev/null @@ -1,38 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wunused-variable" - -#include -#include -#include - -using namespace metal; - -struct SSBO -{ - float4 outdata; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -struct spvDescriptorSetBuffer0 -{ - texture2d uImage [[id(0)]]; - device atomic_uint* uImage_atomic [[id(1)]]; - device SSBO* m_31 [[id(2)]]; - texture2d uTexture [[id(3)]]; - sampler uTextureSmplr [[id(4)]]; -}; - -// The required alignment of a linear texture of R32Uint format. -constant uint spvLinearTextureAlignmentOverride [[function_constant(65535)]]; -constant uint spvLinearTextureAlignment = is_function_constant_defined(spvLinearTextureAlignmentOverride) ? spvLinearTextureAlignmentOverride : 4; -// Returns buffer coords corresponding to 2D texture coords for emulating 2D texture atomics -#define spvImage2DAtomicCoord(tc, tex) (((((tex).get_width() + spvLinearTextureAlignment / 4 - 1) & ~( spvLinearTextureAlignment / 4 - 1)) * (tc).y) + (tc).x) - -kernel void main0(constant spvDescriptorSetBuffer0& spvDescriptorSet0 [[buffer(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - uint _26 = atomic_fetch_add_explicit((device atomic_uint*)&spvDescriptorSet0.uImage_atomic[spvImage2DAtomicCoord(int2(gl_GlobalInvocationID.xy), spvDescriptorSet0.uImage)], 10u, memory_order_relaxed); - uint ret = _26; - (*spvDescriptorSet0.m_31).outdata = spvDescriptorSet0.uTexture.sample(spvDescriptorSet0.uTextureSmplr, float2(gl_GlobalInvocationID.xy), level(0.0)) + float4(float(ret)); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/image-atomic-automatic-bindings.comp b/third_party/spirv-cross/reference/shaders-msl/comp/image-atomic-automatic-bindings.comp deleted file mode 100644 index 8e497545bf..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/image-atomic-automatic-bindings.comp +++ /dev/null @@ -1,29 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wunused-variable" - -#include -#include -#include - -using namespace metal; - -struct SSBO -{ - float4 outdata; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -// The required alignment of a linear texture of R32Uint format. -constant uint spvLinearTextureAlignmentOverride [[function_constant(65535)]]; -constant uint spvLinearTextureAlignment = is_function_constant_defined(spvLinearTextureAlignmentOverride) ? spvLinearTextureAlignmentOverride : 4; -// Returns buffer coords corresponding to 2D texture coords for emulating 2D texture atomics -#define spvImage2DAtomicCoord(tc, tex) (((((tex).get_width() + spvLinearTextureAlignment / 4 - 1) & ~( spvLinearTextureAlignment / 4 - 1)) * (tc).y) + (tc).x) - -kernel void main0(device SSBO& _31 [[buffer(1)]], texture2d uImage [[texture(0)]], device atomic_uint* uImage_atomic [[buffer(0)]], texture2d uTexture [[texture(1)]], sampler uTextureSmplr [[sampler(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - uint _26 = atomic_fetch_add_explicit((device atomic_uint*)&uImage_atomic[spvImage2DAtomicCoord(int2(gl_GlobalInvocationID.xy), uImage)], 10u, memory_order_relaxed); - uint ret = _26; - _31.outdata = uTexture.sample(uTextureSmplr, float2(gl_GlobalInvocationID.xy), level(0.0)) + float4(float(ret)); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/image-cube-array-load-store.comp b/third_party/spirv-cross/reference/shaders-msl/comp/image-cube-array-load-store.comp deleted file mode 100644 index c0b83c46c8..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/image-cube-array-load-store.comp +++ /dev/null @@ -1,14 +0,0 @@ -#include -#include - -using namespace metal; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(texturecube_array uImageIn [[texture(0)]], texturecube_array uImageOut [[texture(1)]]) -{ - int3 coord = int3(9, 7, 11); - float4 indata = uImageIn.read(uint2(coord.xy), uint(coord.z) % 6u, uint(coord.z) / 6u); - uImageOut.write(indata, uint2(coord.xy), uint(coord.z) % 6u, uint(coord.z) / 6u); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/image.comp b/third_party/spirv-cross/reference/shaders-msl/comp/image.comp deleted file mode 100644 index e7c9c763a3..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/image.comp +++ /dev/null @@ -1,13 +0,0 @@ -#include -#include - -using namespace metal; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(texture2d uImageIn [[texture(0)]], texture2d uImageOut [[texture(1)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - float4 v = uImageIn.read(uint2((int2(gl_GlobalInvocationID.xy) + int2(uImageIn.get_width(), uImageIn.get_height())))); - uImageOut.write(v, uint2(int2(gl_GlobalInvocationID.xy))); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/insert.comp b/third_party/spirv-cross/reference/shaders-msl/comp/insert.comp deleted file mode 100644 index c4611ba222..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/insert.comp +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - float4 out_data[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO& _27 [[buffer(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - float4 v; - v.x = 10.0; - v.y = 30.0; - v.z = 70.0; - v.w = 90.0; - _27.out_data[gl_GlobalInvocationID.x] = v; - ((device float*)&_27.out_data[gl_GlobalInvocationID.x])[1u] = 20.0; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/inverse.comp b/third_party/spirv-cross/reference/shaders-msl/comp/inverse.comp deleted file mode 100644 index 33aed468f7..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/inverse.comp +++ /dev/null @@ -1,130 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct MatrixOut -{ - float2x2 m2out; - float3x3 m3out; - float4x4 m4out; -}; - -struct MatrixIn -{ - float2x2 m2in; - float3x3 m3in; - float4x4 m4in; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -// Returns the determinant of a 2x2 matrix. -static inline __attribute__((always_inline)) -float spvDet2x2(float a1, float a2, float b1, float b2) -{ - return a1 * b2 - b1 * a2; -} - -// Returns the determinant of a 3x3 matrix. -static inline __attribute__((always_inline)) -float spvDet3x3(float a1, float a2, float a3, float b1, float b2, float b3, float c1, float c2, float c3) -{ - return a1 * spvDet2x2(b2, b3, c2, c3) - b1 * spvDet2x2(a2, a3, c2, c3) + c1 * spvDet2x2(a2, a3, b2, b3); -} - -// Returns the inverse of a matrix, by using the algorithm of calculating the classical -// adjoint and dividing by the determinant. The contents of the matrix are changed. -static inline __attribute__((always_inline)) -float4x4 spvInverse4x4(float4x4 m) -{ - float4x4 adj; // The adjoint matrix (inverse after dividing by determinant) - - // Create the transpose of the cofactors, as the classical adjoint of the matrix. - adj[0][0] = spvDet3x3(m[1][1], m[1][2], m[1][3], m[2][1], m[2][2], m[2][3], m[3][1], m[3][2], m[3][3]); - adj[0][1] = -spvDet3x3(m[0][1], m[0][2], m[0][3], m[2][1], m[2][2], m[2][3], m[3][1], m[3][2], m[3][3]); - adj[0][2] = spvDet3x3(m[0][1], m[0][2], m[0][3], m[1][1], m[1][2], m[1][3], m[3][1], m[3][2], m[3][3]); - adj[0][3] = -spvDet3x3(m[0][1], m[0][2], m[0][3], m[1][1], m[1][2], m[1][3], m[2][1], m[2][2], m[2][3]); - - adj[1][0] = -spvDet3x3(m[1][0], m[1][2], m[1][3], m[2][0], m[2][2], m[2][3], m[3][0], m[3][2], m[3][3]); - adj[1][1] = spvDet3x3(m[0][0], m[0][2], m[0][3], m[2][0], m[2][2], m[2][3], m[3][0], m[3][2], m[3][3]); - adj[1][2] = -spvDet3x3(m[0][0], m[0][2], m[0][3], m[1][0], m[1][2], m[1][3], m[3][0], m[3][2], m[3][3]); - adj[1][3] = spvDet3x3(m[0][0], m[0][2], m[0][3], m[1][0], m[1][2], m[1][3], m[2][0], m[2][2], m[2][3]); - - adj[2][0] = spvDet3x3(m[1][0], m[1][1], m[1][3], m[2][0], m[2][1], m[2][3], m[3][0], m[3][1], m[3][3]); - adj[2][1] = -spvDet3x3(m[0][0], m[0][1], m[0][3], m[2][0], m[2][1], m[2][3], m[3][0], m[3][1], m[3][3]); - adj[2][2] = spvDet3x3(m[0][0], m[0][1], m[0][3], m[1][0], m[1][1], m[1][3], m[3][0], m[3][1], m[3][3]); - adj[2][3] = -spvDet3x3(m[0][0], m[0][1], m[0][3], m[1][0], m[1][1], m[1][3], m[2][0], m[2][1], m[2][3]); - - adj[3][0] = -spvDet3x3(m[1][0], m[1][1], m[1][2], m[2][0], m[2][1], m[2][2], m[3][0], m[3][1], m[3][2]); - adj[3][1] = spvDet3x3(m[0][0], m[0][1], m[0][2], m[2][0], m[2][1], m[2][2], m[3][0], m[3][1], m[3][2]); - adj[3][2] = -spvDet3x3(m[0][0], m[0][1], m[0][2], m[1][0], m[1][1], m[1][2], m[3][0], m[3][1], m[3][2]); - adj[3][3] = spvDet3x3(m[0][0], m[0][1], m[0][2], m[1][0], m[1][1], m[1][2], m[2][0], m[2][1], m[2][2]); - - // Calculate the determinant as a combination of the cofactors of the first row. - float det = (adj[0][0] * m[0][0]) + (adj[0][1] * m[1][0]) + (adj[0][2] * m[2][0]) + (adj[0][3] * m[3][0]); - - // Divide the classical adjoint matrix by the determinant. - // If determinant is zero, matrix is not invertable, so leave it unchanged. - return (det != 0.0f) ? (adj * (1.0f / det)) : m; -} - -// Returns the inverse of a matrix, by using the algorithm of calculating the classical -// adjoint and dividing by the determinant. The contents of the matrix are changed. -static inline __attribute__((always_inline)) -float3x3 spvInverse3x3(float3x3 m) -{ - float3x3 adj; // The adjoint matrix (inverse after dividing by determinant) - - // Create the transpose of the cofactors, as the classical adjoint of the matrix. - adj[0][0] = spvDet2x2(m[1][1], m[1][2], m[2][1], m[2][2]); - adj[0][1] = -spvDet2x2(m[0][1], m[0][2], m[2][1], m[2][2]); - adj[0][2] = spvDet2x2(m[0][1], m[0][2], m[1][1], m[1][2]); - - adj[1][0] = -spvDet2x2(m[1][0], m[1][2], m[2][0], m[2][2]); - adj[1][1] = spvDet2x2(m[0][0], m[0][2], m[2][0], m[2][2]); - adj[1][2] = -spvDet2x2(m[0][0], m[0][2], m[1][0], m[1][2]); - - adj[2][0] = spvDet2x2(m[1][0], m[1][1], m[2][0], m[2][1]); - adj[2][1] = -spvDet2x2(m[0][0], m[0][1], m[2][0], m[2][1]); - adj[2][2] = spvDet2x2(m[0][0], m[0][1], m[1][0], m[1][1]); - - // Calculate the determinant as a combination of the cofactors of the first row. - float det = (adj[0][0] * m[0][0]) + (adj[0][1] * m[1][0]) + (adj[0][2] * m[2][0]); - - // Divide the classical adjoint matrix by the determinant. - // If determinant is zero, matrix is not invertable, so leave it unchanged. - return (det != 0.0f) ? (adj * (1.0f / det)) : m; -} - -// Returns the inverse of a matrix, by using the algorithm of calculating the classical -// adjoint and dividing by the determinant. The contents of the matrix are changed. -static inline __attribute__((always_inline)) -float2x2 spvInverse2x2(float2x2 m) -{ - float2x2 adj; // The adjoint matrix (inverse after dividing by determinant) - - // Create the transpose of the cofactors, as the classical adjoint of the matrix. - adj[0][0] = m[1][1]; - adj[0][1] = -m[0][1]; - - adj[1][0] = -m[1][0]; - adj[1][1] = m[0][0]; - - // Calculate the determinant as a combination of the cofactors of the first row. - float det = (adj[0][0] * m[0][0]) + (adj[0][1] * m[1][0]); - - // Divide the classical adjoint matrix by the determinant. - // If determinant is zero, matrix is not invertable, so leave it unchanged. - return (det != 0.0f) ? (adj * (1.0f / det)) : m; -} - -kernel void main0(device MatrixOut& _15 [[buffer(0)]], const device MatrixIn& _20 [[buffer(1)]]) -{ - _15.m2out = spvInverse2x2(_20.m2in); - _15.m3out = spvInverse3x3(_20.m3in); - _15.m4out = spvInverse4x4(_20.m4in); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/local-invocation-id.comp b/third_party/spirv-cross/reference/shaders-msl/comp/local-invocation-id.comp deleted file mode 100644 index 362aaa30c8..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/local-invocation-id.comp +++ /dev/null @@ -1,26 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct myBlock -{ - int a; - float b[1]; -}; - -// Implementation of the GLSL mod() function, which is slightly different than Metal fmod() -template -inline Tx mod(Tx x, Ty y) -{ - return x - y * floor(x / y); -} - -kernel void main0(device myBlock& myStorage [[buffer(0)]], uint3 gl_LocalInvocationID [[thread_position_in_threadgroup]]) -{ - myStorage.a = (myStorage.a + 1) % 256; - myStorage.b[gl_LocalInvocationID.x] = mod(myStorage.b[gl_LocalInvocationID.x] + 0.0199999995529651641845703125, 1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/local-invocation-index.comp b/third_party/spirv-cross/reference/shaders-msl/comp/local-invocation-index.comp deleted file mode 100644 index f8c1550eab..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/local-invocation-index.comp +++ /dev/null @@ -1,26 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct myBlock -{ - int a; - float b[1]; -}; - -// Implementation of the GLSL mod() function, which is slightly different than Metal fmod() -template -inline Tx mod(Tx x, Ty y) -{ - return x - y * floor(x / y); -} - -kernel void main0(device myBlock& myStorage [[buffer(0)]], uint gl_LocalInvocationIndex [[thread_index_in_threadgroup]]) -{ - myStorage.a = (myStorage.a + 1) % 256; - myStorage.b[gl_LocalInvocationIndex] = mod(myStorage.b[gl_LocalInvocationIndex] + 0.0199999995529651641845703125, 1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/mat3.comp b/third_party/spirv-cross/reference/shaders-msl/comp/mat3.comp deleted file mode 100644 index fcb8f7a60f..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/mat3.comp +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO2 -{ - float3x3 out_data[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO2& _22 [[buffer(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - uint ident = gl_GlobalInvocationID.x; - _22.out_data[ident] = float3x3(float3(10.0), float3(20.0), float3(40.0)); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/mod.comp b/third_party/spirv-cross/reference/shaders-msl/comp/mod.comp deleted file mode 100644 index 96264b05b7..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/mod.comp +++ /dev/null @@ -1,37 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBO -{ - float4 in_data[1]; -}; - -struct SSBO2 -{ - float4 out_data[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -// Implementation of the GLSL mod() function, which is slightly different than Metal fmod() -template -inline Tx mod(Tx x, Ty y) -{ - return x - y * floor(x / y); -} - -kernel void main0(const device SSBO& _23 [[buffer(0)]], device SSBO2& _33 [[buffer(1)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - uint ident = gl_GlobalInvocationID.x; - float4 v = mod(_23.in_data[ident], _33.out_data[ident]); - _33.out_data[ident] = v; - uint4 vu = as_type(_23.in_data[ident]) % as_type(_33.out_data[ident]); - _33.out_data[ident] = as_type(vu); - int4 vi = as_type(_23.in_data[ident]) % as_type(_33.out_data[ident]); - _33.out_data[ident] = as_type(vi); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/modf.comp b/third_party/spirv-cross/reference/shaders-msl/comp/modf.comp deleted file mode 100644 index 5a5ac3dbd7..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/modf.comp +++ /dev/null @@ -1,26 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - float4 in_data[1]; -}; - -struct SSBO2 -{ - float4 out_data[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(const device SSBO& _23 [[buffer(0)]], device SSBO2& _35 [[buffer(1)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - uint ident = gl_GlobalInvocationID.x; - float4 i; - float4 _31 = modf(_23.in_data[ident], i); - float4 v = _31; - _35.out_data[ident] = v; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/outer-product.comp b/third_party/spirv-cross/reference/shaders-msl/comp/outer-product.comp deleted file mode 100644 index e589642dbd..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/outer-product.comp +++ /dev/null @@ -1,40 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - float2x2 m22; - float2x3 m23; - float2x4 m24; - float3x2 m32; - float3x3 m33; - float3x4 m34; - float4x2 m42; - float4x3 m43; - float4x4 m44; -}; - -struct ReadSSBO -{ - float2 v2; - float3 v3; - float4 v4; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO& _21 [[buffer(0)]], const device ReadSSBO& _26 [[buffer(1)]]) -{ - _21.m22 = float2x2(_26.v2 * _26.v2.x, _26.v2 * _26.v2.y); - _21.m23 = float2x3(_26.v3 * _26.v2.x, _26.v3 * _26.v2.y); - _21.m24 = float2x4(_26.v4 * _26.v2.x, _26.v4 * _26.v2.y); - _21.m32 = float3x2(_26.v2 * _26.v3.x, _26.v2 * _26.v3.y, _26.v2 * _26.v3.z); - _21.m33 = float3x3(_26.v3 * _26.v3.x, _26.v3 * _26.v3.y, _26.v3 * _26.v3.z); - _21.m34 = float3x4(_26.v4 * _26.v3.x, _26.v4 * _26.v3.y, _26.v4 * _26.v3.z); - _21.m42 = float4x2(_26.v2 * _26.v4.x, _26.v2 * _26.v4.y, _26.v2 * _26.v4.z, _26.v2 * _26.v4.w); - _21.m43 = float4x3(_26.v3 * _26.v4.x, _26.v3 * _26.v4.y, _26.v3 * _26.v4.z, _26.v3 * _26.v4.w); - _21.m44 = float4x4(_26.v4 * _26.v4.x, _26.v4 * _26.v4.y, _26.v4 * _26.v4.z, _26.v4 * _26.v4.w); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/packing-test-1.comp b/third_party/spirv-cross/reference/shaders-msl/comp/packing-test-1.comp deleted file mode 100644 index 61297429a6..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/packing-test-1.comp +++ /dev/null @@ -1,38 +0,0 @@ -#include -#include - -using namespace metal; - -struct T1 -{ - float3 a; - float b; -}; - -struct T1_1 -{ - packed_float3 a; - float b; -}; - -struct Buffer0 -{ - T1_1 buf0[1]; -}; - -struct Buffer1 -{ - float buf1[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(32u, 1u, 1u); - -kernel void main0(device Buffer0& _15 [[buffer(0)]], device Buffer1& _34 [[buffer(1)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - T1 v; - v.a = float3(_15.buf0[0].a); - v.b = _15.buf0[0].b; - float x = v.b; - _34.buf1[gl_GlobalInvocationID.x] = x; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/packing-test-2.comp b/third_party/spirv-cross/reference/shaders-msl/comp/packing-test-2.comp deleted file mode 100644 index 4b91f3ca93..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/packing-test-2.comp +++ /dev/null @@ -1,29 +0,0 @@ -#include -#include - -using namespace metal; - -struct T1 -{ - packed_float3 a; - float b; -}; - -struct Buffer0 -{ - T1 buf0[1]; -}; - -struct Buffer1 -{ - float buf1[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(32u, 1u, 1u); - -kernel void main0(device Buffer0& _14 [[buffer(0)]], device Buffer1& _24 [[buffer(1)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - float x = _14.buf0[0].b; - _24.buf1[gl_GlobalInvocationID.x] = x; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/read-write-only.comp b/third_party/spirv-cross/reference/shaders-msl/comp/read-write-only.comp deleted file mode 100644 index 0cf8d8e321..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/read-write-only.comp +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO2 -{ - float4 data4; - float4 data5; -}; - -struct SSBO0 -{ - float4 data0; - float4 data1; -}; - -struct SSBO1 -{ - float4 data2; - float4 data3; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO2& _10 [[buffer(0)]], const device SSBO0& _15 [[buffer(1)]], device SSBO1& _21 [[buffer(2)]]) -{ - _10.data4 = _15.data0 + _21.data2; - _10.data5 = _15.data1 + _21.data3; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/rmw-matrix.comp b/third_party/spirv-cross/reference/shaders-msl/comp/rmw-matrix.comp deleted file mode 100644 index b53a3a75c2..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/rmw-matrix.comp +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - float a; - float4 b; - float4x4 c; - float a1; - float4 b1; - float4x4 c1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO& _11 [[buffer(0)]]) -{ - _11.a *= _11.a1; - _11.b *= _11.b1; - _11.c = _11.c * _11.c1; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/rmw-opt.comp b/third_party/spirv-cross/reference/shaders-msl/comp/rmw-opt.comp deleted file mode 100644 index 229154fc21..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/rmw-opt.comp +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - int a; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO& _9 [[buffer(0)]]) -{ - _9.a += 10; - _9.a -= 10; - _9.a *= 10; - _9.a /= 10; - _9.a = _9.a << 2; - _9.a = _9.a >> 3; - _9.a &= 40; - _9.a ^= 10; - _9.a %= 40; - _9.a |= 1; - bool c = false; - bool d = true; - c = c && d; - d = d || c; - _9.a = int(c && d); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/scalar-std450-distance-length-normalize.comp b/third_party/spirv-cross/reference/shaders-msl/comp/scalar-std450-distance-length-normalize.comp deleted file mode 100644 index 9bf8781774..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/scalar-std450-distance-length-normalize.comp +++ /dev/null @@ -1,25 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - float a; - float b; - float c; - float d; - float e; - float f; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO& _9 [[buffer(0)]]) -{ - _9.c = abs(_9.a - _9.b); - _9.d = abs(_9.a); - _9.e = sign(_9.a); - _9.f = abs((_9.a - 1.0) - (_9.b - 2.0)); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/shared-array-of-arrays.comp b/third_party/spirv-cross/reference/shaders-msl/comp/shared-array-of-arrays.comp deleted file mode 100644 index 8b53236895..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/shared-array-of-arrays.comp +++ /dev/null @@ -1,33 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBO -{ - float out_data[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(4u, 4u, 1u); - -static inline __attribute__((always_inline)) -void work(threadgroup float (&foo)[4][4], thread uint3& gl_LocalInvocationID, thread uint& gl_LocalInvocationIndex, device SSBO& v_67, thread uint3& gl_GlobalInvocationID) -{ - foo[gl_LocalInvocationID.x][gl_LocalInvocationID.y] = float(gl_LocalInvocationIndex); - threadgroup_barrier(mem_flags::mem_threadgroup); - float x = 0.0; - x += foo[gl_LocalInvocationID.x][0]; - x += foo[gl_LocalInvocationID.x][1]; - x += foo[gl_LocalInvocationID.x][2]; - x += foo[gl_LocalInvocationID.x][3]; - v_67.out_data[gl_GlobalInvocationID.x] = x; -} - -kernel void main0(device SSBO& v_67 [[buffer(0)]], uint3 gl_LocalInvocationID [[thread_position_in_threadgroup]], uint gl_LocalInvocationIndex [[thread_index_in_threadgroup]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - threadgroup float foo[4][4]; - work(foo, gl_LocalInvocationID, gl_LocalInvocationIndex, v_67, gl_GlobalInvocationID); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/shared.comp b/third_party/spirv-cross/reference/shaders-msl/comp/shared.comp deleted file mode 100644 index c9ffde15e8..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/shared.comp +++ /dev/null @@ -1,27 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - float in_data[1]; -}; - -struct SSBO2 -{ - float out_data[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(4u, 1u, 1u); - -kernel void main0(const device SSBO& _22 [[buffer(0)]], device SSBO2& _44 [[buffer(1)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint gl_LocalInvocationIndex [[thread_index_in_threadgroup]]) -{ - threadgroup float sShared[4]; - uint ident = gl_GlobalInvocationID.x; - float idata = _22.in_data[ident]; - sShared[gl_LocalInvocationIndex] = idata; - threadgroup_barrier(mem_flags::mem_threadgroup); - _44.out_data[ident] = sShared[(4u - gl_LocalInvocationIndex) - 1u]; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/spec-constant-op-member-array.comp b/third_party/spirv-cross/reference/shaders-msl/comp/spec-constant-op-member-array.comp deleted file mode 100644 index 8f54f0528d..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/spec-constant-op-member-array.comp +++ /dev/null @@ -1,49 +0,0 @@ -#include -#include - -using namespace metal; - -#ifndef SPIRV_CROSS_CONSTANT_ID_0 -#define SPIRV_CROSS_CONSTANT_ID_0 100 -#endif -constant int a = SPIRV_CROSS_CONSTANT_ID_0; -#ifndef SPIRV_CROSS_CONSTANT_ID_1 -#define SPIRV_CROSS_CONSTANT_ID_1 200 -#endif -constant int b = SPIRV_CROSS_CONSTANT_ID_1; - -struct A -{ - int member0[a]; - int member1[b]; -}; - -struct B -{ - int member0[b]; - int member1[a]; -}; - -#ifndef SPIRV_CROSS_CONSTANT_ID_2 -#define SPIRV_CROSS_CONSTANT_ID_2 300 -#endif -constant int c = SPIRV_CROSS_CONSTANT_ID_2; -constant int d = (c + 50); - -struct SSBO -{ - A member_a; - B member_b; - int v[a]; - int w[d]; -}; - -constant int e_tmp [[function_constant(3)]]; -constant int e = is_function_constant_defined(e_tmp) ? e_tmp : 400; -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO& _22 [[buffer(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - _22.w[gl_GlobalInvocationID.x] += (_22.v[gl_GlobalInvocationID.x] + e); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/spec-constant-work-group-size.comp b/third_party/spirv-cross/reference/shaders-msl/comp/spec-constant-work-group-size.comp deleted file mode 100644 index de30edec15..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/spec-constant-work-group-size.comp +++ /dev/null @@ -1,75 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -#ifndef SPIRV_CROSS_CONSTANT_ID_1 -#define SPIRV_CROSS_CONSTANT_ID_1 2 -#endif -constant int b = SPIRV_CROSS_CONSTANT_ID_1; -constant int a_tmp [[function_constant(0)]]; -constant int a = is_function_constant_defined(a_tmp) ? a_tmp : 1; - -struct SSBO -{ - int v[1]; -}; - -constant uint _21 = (uint(a) + 0u); -constant uint _22_tmp [[function_constant(10)]]; -constant uint _22 = is_function_constant_defined(_22_tmp) ? _22_tmp : 1u; -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(_22, 20u, 1u); -constant uint _27 = gl_WorkGroupSize.x; -constant uint _28 = (_21 + _27); -constant uint _29 = gl_WorkGroupSize.y; -constant uint _30 = (_28 + _29); -constant int _32 = (1 - a); - -kernel void main0(device SSBO& _17 [[buffer(0)]]) -{ - spvUnsafeArray spec_const_array_size; - spec_const_array_size[a] = a; - _17.v[_30] = b + spec_const_array_size[_32]; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/storage-buffer-std140-vector-array.comp b/third_party/spirv-cross/reference/shaders-msl/comp/storage-buffer-std140-vector-array.comp deleted file mode 100644 index 5593629c06..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/storage-buffer-std140-vector-array.comp +++ /dev/null @@ -1,96 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct Sub -{ - spvUnsafeArray f; - spvUnsafeArray f2; - spvUnsafeArray f3; - spvUnsafeArray f4; -}; - -struct Sub_1 -{ - float4 f[2]; - float4 f2[2]; - float3 f3[2]; - float4 f4[2]; -}; - -struct SSBO -{ - Sub_1 sub[2]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO& _27 [[buffer(0)]], uint3 gl_WorkGroupID [[threadgroup_position_in_grid]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - Sub foo; - foo.f[0] = _27.sub[gl_WorkGroupID.x].f[0].x; - foo.f[1] = _27.sub[gl_WorkGroupID.x].f[1].x; - foo.f2[0] = _27.sub[gl_WorkGroupID.x].f2[0].xy; - foo.f2[1] = _27.sub[gl_WorkGroupID.x].f2[1].xy; - foo.f3[0] = _27.sub[gl_WorkGroupID.x].f3[0]; - foo.f3[1] = _27.sub[gl_WorkGroupID.x].f3[1]; - foo.f4[0] = _27.sub[gl_WorkGroupID.x].f4[0]; - foo.f4[1] = _27.sub[gl_WorkGroupID.x].f4[1]; - foo.f[gl_GlobalInvocationID.x] += 1.0; - foo.f2[gl_GlobalInvocationID.x] += float2(2.0); - foo.f3[gl_GlobalInvocationID.x] += float3(3.0); - foo.f4[gl_GlobalInvocationID.x] += float4(4.0); - (device float&)_27.sub[gl_WorkGroupID.x].f[0] = foo.f[0]; - (device float&)_27.sub[gl_WorkGroupID.x].f[1] = foo.f[1]; - (device float2&)_27.sub[gl_WorkGroupID.x].f2[0] = foo.f2[0]; - (device float2&)_27.sub[gl_WorkGroupID.x].f2[1] = foo.f2[1]; - _27.sub[gl_WorkGroupID.x].f3[0] = foo.f3[0]; - _27.sub[gl_WorkGroupID.x].f3[1] = foo.f3[1]; - _27.sub[gl_WorkGroupID.x].f4[0] = foo.f4[0]; - _27.sub[gl_WorkGroupID.x].f4[1] = foo.f4[1]; - (device float&)_27.sub[0].f[0] = _27.sub[0].f[0].x + 5.0; - (device float2&)_27.sub[0].f2[1] = _27.sub[0].f2[1].xy + float2(5.0); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/struct-layout.comp b/third_party/spirv-cross/reference/shaders-msl/comp/struct-layout.comp deleted file mode 100644 index 8f2ab2d60c..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/struct-layout.comp +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -using namespace metal; - -struct Foo -{ - float4x4 m; -}; - -struct SSBO2 -{ - Foo out_data[1]; -}; - -struct SSBO -{ - Foo in_data[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO2& _23 [[buffer(0)]], const device SSBO& _30 [[buffer(1)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - uint ident = gl_GlobalInvocationID.x; - _23.out_data[ident].m = _30.in_data[ident].m * _30.in_data[ident].m; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/struct-nested.comp b/third_party/spirv-cross/reference/shaders-msl/comp/struct-nested.comp deleted file mode 100644 index e3d04bedaa..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/struct-nested.comp +++ /dev/null @@ -1,39 +0,0 @@ -#include -#include - -using namespace metal; - -struct s1 -{ - int a; -}; - -struct s2 -{ - s1 b; -}; - -struct s1_1 -{ - int a; -}; - -struct s2_1 -{ - s1_1 b; -}; - -struct dstbuffer -{ - s2_1 test[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device dstbuffer& _19 [[buffer(0)]]) -{ - s2 testVal; - testVal.b.a = 0; - _19.test[0].b.a = testVal.b.a; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/struct-packing.comp b/third_party/spirv-cross/reference/shaders-msl/comp/struct-packing.comp deleted file mode 100644 index dc1654399d..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/struct-packing.comp +++ /dev/null @@ -1,152 +0,0 @@ -#include -#include - -using namespace metal; - -struct S0 -{ - float2 a[1]; - float b; - char _m0_final_padding[4]; -}; - -struct S1 -{ - packed_float3 a; - float b; -}; - -struct S2 -{ - float3 a[1]; - float b; - char _m0_final_padding[12]; -}; - -struct S3 -{ - float2 a; - float b; -}; - -struct S4 -{ - float2 c; -}; - -struct Content -{ - S0 m0s[1]; - S1 m1s[1]; - S2 m2s[1]; - S0 m0; - S1 m1; - S2 m2; - S3 m3; - float m4; - S4 m3s[8]; - char _m0_final_padding[8]; -}; - -struct SSBO1 -{ - Content content; - Content content1[2]; - Content content2; - float2x2 m0; - float2x2 m1; - float2x3 m2[4]; - float3x2 m3; - float2x2 m4; - float2x2 m5[9]; - float3x2 m6[4][2]; - float2x3 m7; - float array[1]; -}; - -struct S0_1 -{ - float2 a[1]; - char _m1_pad[8]; - float b; - char _m0_final_padding[12]; -}; - -struct S1_1 -{ - packed_float3 a; - float b; -}; - -struct S2_1 -{ - float3 a[1]; - float b; - char _m0_final_padding[12]; -}; - -struct S3_1 -{ - float2 a; - float b; -}; - -struct S4_1 -{ - float2 c; - char _m0_final_padding[8]; -}; - -struct Content_1 -{ - S0_1 m0s[1]; - S1_1 m1s[1]; - S2_1 m2s[1]; - S0_1 m0; - S1_1 m1; - S2_1 m2; - S3_1 m3; - float m4; - char _m8_pad[8]; - S4_1 m3s[8]; -}; - -struct SSBO0 -{ - Content_1 content; - Content_1 content1[2]; - Content_1 content2; - float4 array[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO1& ssbo_430 [[buffer(0)]], device SSBO0& ssbo_140 [[buffer(1)]]) -{ - Content_1 _60 = ssbo_140.content; - ssbo_430.content.m0s[0].a[0] = _60.m0s[0].a[0]; - ssbo_430.content.m0s[0].b = _60.m0s[0].b; - ssbo_430.content.m1s[0].a = float3(_60.m1s[0].a); - ssbo_430.content.m1s[0].b = _60.m1s[0].b; - ssbo_430.content.m2s[0].a[0] = _60.m2s[0].a[0]; - ssbo_430.content.m2s[0].b = _60.m2s[0].b; - ssbo_430.content.m0.a[0] = _60.m0.a[0]; - ssbo_430.content.m0.b = _60.m0.b; - ssbo_430.content.m1.a = float3(_60.m1.a); - ssbo_430.content.m1.b = _60.m1.b; - ssbo_430.content.m2.a[0] = _60.m2.a[0]; - ssbo_430.content.m2.b = _60.m2.b; - ssbo_430.content.m3.a = _60.m3.a; - ssbo_430.content.m3.b = _60.m3.b; - ssbo_430.content.m4 = _60.m4; - ssbo_430.content.m3s[0].c = _60.m3s[0].c; - ssbo_430.content.m3s[1].c = _60.m3s[1].c; - ssbo_430.content.m3s[2].c = _60.m3s[2].c; - ssbo_430.content.m3s[3].c = _60.m3s[3].c; - ssbo_430.content.m3s[4].c = _60.m3s[4].c; - ssbo_430.content.m3s[5].c = _60.m3s[5].c; - ssbo_430.content.m3s[6].c = _60.m3s[6].c; - ssbo_430.content.m3s[7].c = _60.m3s[7].c; - ssbo_430.content.m1.a = ssbo_430.content.m3.a * ssbo_430.m6[1][1]; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/torture-loop.comp b/third_party/spirv-cross/reference/shaders-msl/comp/torture-loop.comp deleted file mode 100644 index e92e71d61d..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/torture-loop.comp +++ /dev/null @@ -1,53 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO -{ - float4x4 mvp; - float4 in_data[1]; -}; - -struct SSBO2 -{ - float4 out_data[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(const device SSBO& _24 [[buffer(0)]], device SSBO2& _89 [[buffer(1)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - uint ident = gl_GlobalInvocationID.x; - float4 idat = _24.in_data[ident]; - int k = 0; - for (;;) - { - int _39 = k; - int _40 = _39 + 1; - k = _40; - if (_40 < 10) - { - idat *= 2.0; - k++; - continue; - } - else - { - break; - } - } - for (uint i = 0u; i < 16u; i++, k++) - { - for (uint j = 0u; j < 30u; j++) - { - idat = _24.mvp * idat; - } - } - do - { - k++; - } while (k > 10); - _89.out_data[ident] = idat; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/type-alias.comp b/third_party/spirv-cross/reference/shaders-msl/comp/type-alias.comp deleted file mode 100644 index e3ac031668..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/type-alias.comp +++ /dev/null @@ -1,67 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct S0 -{ - float4 a; -}; - -struct S1 -{ - float4 a; -}; - -struct S0_1 -{ - float4 a; -}; - -struct SSBO0 -{ - S0_1 s0s[1]; -}; - -struct S1_1 -{ - float4 a; -}; - -struct SSBO1 -{ - S1_1 s1s[1]; -}; - -struct SSBO2 -{ - float4 outputs[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -static inline __attribute__((always_inline)) -float4 overload(thread const S0& s0) -{ - return s0.a; -} - -static inline __attribute__((always_inline)) -float4 overload(thread const S1& s1) -{ - return s1.a; -} - -kernel void main0(device SSBO0& _36 [[buffer(0)]], device SSBO1& _55 [[buffer(1)]], device SSBO2& _66 [[buffer(2)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - S0 s0; - s0.a = _36.s0s[gl_GlobalInvocationID.x].a; - S1 s1; - s1.a = _55.s1s[gl_GlobalInvocationID.x].a; - S0 param = s0; - S1 param_1 = s1; - _66.outputs[gl_GlobalInvocationID.x] = overload(param) + overload(param_1); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/udiv.comp b/third_party/spirv-cross/reference/shaders-msl/comp/udiv.comp deleted file mode 100644 index 7f7315b882..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/udiv.comp +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBO2 -{ - uint outputs[1]; -}; - -struct SSBO -{ - uint inputs[1]; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBO2& _10 [[buffer(0)]], device SSBO& _23 [[buffer(1)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) -{ - _10.outputs[gl_GlobalInvocationID.x] = _23.inputs[gl_GlobalInvocationID.x] / 29u; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/comp/writable-ssbo.comp b/third_party/spirv-cross/reference/shaders-msl/comp/writable-ssbo.comp deleted file mode 100644 index dcec81a369..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/comp/writable-ssbo.comp +++ /dev/null @@ -1,26 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct myBlock -{ - int a; - float b; -}; - -// Implementation of the GLSL mod() function, which is slightly different than Metal fmod() -template -inline Tx mod(Tx x, Ty y) -{ - return x - y * floor(x / y); -} - -kernel void main0(device myBlock& myStorage [[buffer(0)]]) -{ - myStorage.a = (myStorage.a + 1) % 256; - myStorage.b = mod(myStorage.b + 0.0199999995529651641845703125, 1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/desktop-only/comp/extended-arithmetic.desktop.comp b/third_party/spirv-cross/reference/shaders-msl/desktop-only/comp/extended-arithmetic.desktop.comp deleted file mode 100644 index cea12980c6..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/desktop-only/comp/extended-arithmetic.desktop.comp +++ /dev/null @@ -1,179 +0,0 @@ -#include -#include - -using namespace metal; - -struct SSBOUint -{ - uint a; - uint b; - uint c; - uint d; - uint2 a2; - uint2 b2; - uint2 c2; - uint2 d2; - uint3 a3; - uint3 b3; - uint3 c3; - uint3 d3; - uint4 a4; - uint4 b4; - uint4 c4; - uint4 d4; -}; - -struct ResType -{ - uint _m0; - uint _m1; -}; - -struct ResType_1 -{ - uint2 _m0; - uint2 _m1; -}; - -struct ResType_2 -{ - uint3 _m0; - uint3 _m1; -}; - -struct ResType_3 -{ - uint4 _m0; - uint4 _m1; -}; - -struct SSBOInt -{ - int a; - int b; - int c; - int d; - int2 a2; - int2 b2; - int2 c2; - int2 d2; - int3 a3; - int3 b3; - int3 c3; - int3 d3; - int4 a4; - int4 b4; - int4 c4; - int4 d4; -}; - -struct ResType_4 -{ - int _m0; - int _m1; -}; - -struct ResType_5 -{ - int2 _m0; - int2 _m1; -}; - -struct ResType_6 -{ - int3 _m0; - int3 _m1; -}; - -struct ResType_7 -{ - int4 _m0; - int4 _m1; -}; - -constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); - -kernel void main0(device SSBOUint& u [[buffer(0)]], device SSBOInt& i [[buffer(1)]]) -{ - ResType _25; - _25._m0 = u.a + u.b; - _25._m1 = select(uint(1), uint(0), _25._m0 >= max(u.a, u.b)); - u.d = _25._m1; - u.c = _25._m0; - ResType_1 _40; - _40._m0 = u.a2 + u.b2; - _40._m1 = select(uint2(1), uint2(0), _40._m0 >= max(u.a2, u.b2)); - u.d2 = _40._m1; - u.c2 = _40._m0; - ResType_2 _55; - _55._m0 = u.a3 + u.b3; - _55._m1 = select(uint3(1), uint3(0), _55._m0 >= max(u.a3, u.b3)); - u.d3 = _55._m1; - u.c3 = _55._m0; - ResType_3 _70; - _70._m0 = u.a4 + u.b4; - _70._m1 = select(uint4(1), uint4(0), _70._m0 >= max(u.a4, u.b4)); - u.d4 = _70._m1; - u.c4 = _70._m0; - ResType _79; - _79._m0 = u.a - u.b; - _79._m1 = select(uint(1), uint(0), u.a >= u.b); - u.d = _79._m1; - u.c = _79._m0; - ResType_1 _88; - _88._m0 = u.a2 - u.b2; - _88._m1 = select(uint2(1), uint2(0), u.a2 >= u.b2); - u.d2 = _88._m1; - u.c2 = _88._m0; - ResType_2 _97; - _97._m0 = u.a3 - u.b3; - _97._m1 = select(uint3(1), uint3(0), u.a3 >= u.b3); - u.d3 = _97._m1; - u.c3 = _97._m0; - ResType_3 _106; - _106._m0 = u.a4 - u.b4; - _106._m1 = select(uint4(1), uint4(0), u.a4 >= u.b4); - u.d4 = _106._m1; - u.c4 = _106._m0; - ResType _116; - _116._m0 = u.a * u.b; - _116._m1 = mulhi(u.a, u.b); - u.d = _116._m0; - u.c = _116._m1; - ResType_1 _125; - _125._m0 = u.a2 * u.b2; - _125._m1 = mulhi(u.a2, u.b2); - u.d2 = _125._m0; - u.c2 = _125._m1; - ResType_2 _134; - _134._m0 = u.a3 * u.b3; - _134._m1 = mulhi(u.a3, u.b3); - u.d3 = _134._m0; - u.c3 = _134._m1; - ResType_3 _143; - _143._m0 = u.a4 * u.b4; - _143._m1 = mulhi(u.a4, u.b4); - u.d4 = _143._m0; - u.c4 = _143._m1; - ResType_4 _160; - _160._m0 = i.a * i.b; - _160._m1 = mulhi(i.a, i.b); - i.d = _160._m0; - i.c = _160._m1; - ResType_5 _171; - _171._m0 = i.a2 * i.b2; - _171._m1 = mulhi(i.a2, i.b2); - i.d2 = _171._m0; - i.c2 = _171._m1; - ResType_6 _182; - _182._m0 = i.a3 * i.b3; - _182._m1 = mulhi(i.a3, i.b3); - i.d3 = _182._m0; - i.c3 = _182._m1; - ResType_7 _193; - _193._m0 = i.a4 * i.b4; - _193._m1 = mulhi(i.a4, i.b4); - i.d4 = _193._m0; - i.c4 = _193._m1; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/desktop-only/frag/image-ms.desktop.frag b/third_party/spirv-cross/reference/shaders-msl/desktop-only/frag/image-ms.desktop.frag deleted file mode 100644 index 7957b209d6..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/desktop-only/frag/image-ms.desktop.frag +++ /dev/null @@ -1,13 +0,0 @@ -#include -#include - -using namespace metal; - -fragment void main0(texture2d_ms uImageMS [[texture(0)]], texture2d_array uImageArray [[texture(1)]], texture2d uImage [[texture(2)]]) -{ - float4 a = uImageMS.read(uint2(int2(1, 2)), 2); - float4 b = uImageArray.read(uint2(int3(1, 2, 4).xy), uint(int3(1, 2, 4).z)); - uImage.write(a, uint2(int2(2, 3))); - uImageArray.write(b, uint2(int3(2, 3, 7).xy), uint(int3(2, 3, 7).z)); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/desktop-only/frag/query-levels.desktop.frag b/third_party/spirv-cross/reference/shaders-msl/desktop-only/frag/query-levels.desktop.frag deleted file mode 100644 index 922796b749..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/desktop-only/frag/query-levels.desktop.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(texture2d uSampler [[texture(0)]], sampler uSamplerSmplr [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor = float4(float(int(uSampler.get_num_mip_levels()))); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/desktop-only/frag/sampler-ms-query.desktop.frag b/third_party/spirv-cross/reference/shaders-msl/desktop-only/frag/sampler-ms-query.desktop.frag deleted file mode 100644 index 330bc64037..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/desktop-only/frag/sampler-ms-query.desktop.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(texture2d_ms uSampler [[texture(0)]], texture2d_ms uImage [[texture(1)]], sampler uSamplerSmplr [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor = float4(float(int(uSampler.get_num_samples()) + int(uImage.get_num_samples()))); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/desktop-only/tesc/arrayed-output.desktop.sso.tesc b/third_party/spirv-cross/reference/shaders-msl/desktop-only/tesc/arrayed-output.desktop.sso.tesc deleted file mode 100644 index 01fceeb6c7..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/desktop-only/tesc/arrayed-output.desktop.sso.tesc +++ /dev/null @@ -1,85 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float3 vVertex; -}; - -struct main0_patchOut -{ - spvUnsafeArray vPatch; -}; - -struct main0_in -{ - float3 vInput [[attribute(0)]]; -}; - -kernel void main0(main0_in in [[stage_in]], uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], threadgroup main0_in* gl_in [[threadgroup(0)]]) -{ - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - if (gl_InvocationID < spvIndirectParams[0]) - gl_in[gl_InvocationID] = in; - threadgroup_barrier(mem_flags::mem_threadgroup); - if (gl_InvocationID >= 4) - return; - gl_out[gl_InvocationID].vVertex = gl_in[gl_InvocationID].vInput + gl_in[gl_InvocationID ^ 1].vInput; - threadgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup); - if (gl_InvocationID == 0) - { - patchOut.vPatch[0] = float3(10.0); - patchOut.vPatch[1] = float3(20.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(1.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(2.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(3.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3] = half(4.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[0] = half(1.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[1] = half(2.0); - } -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/desktop-only/tesc/basic.desktop.sso.multi-patch.tesc b/third_party/spirv-cross/reference/shaders-msl/desktop-only/tesc/basic.desktop.sso.multi-patch.tesc deleted file mode 100644 index 6aca015783..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/desktop-only/tesc/basic.desktop.sso.multi-patch.tesc +++ /dev/null @@ -1,47 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position; -}; - -struct main0_patchOut -{ - float3 vFoo; -}; - -struct main0_in -{ - uint3 m_78; - ushort2 m_82; - float4 gl_Position; -}; - -static inline __attribute__((always_inline)) -void set_position(device main0_out* thread & gl_out, thread uint& gl_InvocationID, device main0_in* thread & gl_in) -{ - gl_out[gl_InvocationID].gl_Position = gl_in[0].gl_Position + gl_in[1].gl_Position; -} - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], device main0_in* spvIn [[buffer(22)]]) -{ - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 1]; - device main0_patchOut& patchOut = spvPatchOut[gl_GlobalInvocationID.x / 1]; - device main0_in* gl_in = &spvIn[min(gl_GlobalInvocationID.x / 1, spvIndirectParams[1] - 1) * spvIndirectParams[0]]; - uint gl_InvocationID = gl_GlobalInvocationID.x % 1; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 1, spvIndirectParams[1] - 1); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[0] = half(8.8999996185302734375); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[1] = half(6.900000095367431640625); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(8.8999996185302734375); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(6.900000095367431640625); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(3.900000095367431640625); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3] = half(4.900000095367431640625); - patchOut.vFoo = float3(1.0); - set_position(gl_out, gl_InvocationID, gl_in); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/desktop-only/tesc/basic.desktop.sso.tesc b/third_party/spirv-cross/reference/shaders-msl/desktop-only/tesc/basic.desktop.sso.tesc deleted file mode 100644 index 054b4e7418..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/desktop-only/tesc/basic.desktop.sso.tesc +++ /dev/null @@ -1,47 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position; -}; - -struct main0_patchOut -{ - float3 vFoo; -}; - -struct main0_in -{ - float4 gl_Position [[attribute(0)]]; -}; - -static inline __attribute__((always_inline)) -void set_position(device main0_out* thread & gl_out, thread uint& gl_InvocationID, threadgroup main0_in* thread & gl_in) -{ - gl_out[gl_InvocationID].gl_Position = gl_in[0].gl_Position + gl_in[1].gl_Position; -} - -kernel void main0(main0_in in [[stage_in]], uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], threadgroup main0_in* gl_in [[threadgroup(0)]]) -{ - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 1]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - if (gl_InvocationID < spvIndirectParams[0]) - gl_in[gl_InvocationID] = in; - threadgroup_barrier(mem_flags::mem_threadgroup); - if (gl_InvocationID >= 1) - return; - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[0] = half(8.8999996185302734375); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[1] = half(6.900000095367431640625); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(8.8999996185302734375); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(6.900000095367431640625); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(3.900000095367431640625); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3] = half(4.900000095367431640625); - patchOut.vFoo = float3(1.0); - set_position(gl_out, gl_InvocationID, gl_in); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/desktop-only/tesc/struct-copy.desktop.sso.multi-patch.tesc b/third_party/spirv-cross/reference/shaders-msl/desktop-only/tesc/struct-copy.desktop.sso.multi-patch.tesc deleted file mode 100644 index 184a4a6f9b..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/desktop-only/tesc/struct-copy.desktop.sso.multi-patch.tesc +++ /dev/null @@ -1,36 +0,0 @@ -#include -#include - -using namespace metal; - -struct Boo -{ - float3 a; - uint3 b; -}; - -struct main0_out -{ - Boo vVertex; -}; - -struct main0_in -{ - Boo vInput; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], device main0_in* spvIn [[buffer(22)]]) -{ - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - device main0_in* gl_in = &spvIn[min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1) * spvIndirectParams[0]]; - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - gl_out[gl_InvocationID].vVertex = gl_in[gl_InvocationID].vInput; - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(1.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(2.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(3.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3] = half(4.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[0] = half(1.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[1] = half(2.0); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/desktop-only/tesc/struct-copy.desktop.sso.tesc b/third_party/spirv-cross/reference/shaders-msl/desktop-only/tesc/struct-copy.desktop.sso.tesc deleted file mode 100644 index e7e184a980..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/desktop-only/tesc/struct-copy.desktop.sso.tesc +++ /dev/null @@ -1,40 +0,0 @@ -#include -#include - -using namespace metal; - -struct Boo -{ - float3 a; - float3 b; -}; - -struct main0_out -{ - Boo vVertex; -}; - -struct main0_in -{ - float3 Boo_a [[attribute(0)]]; - float3 Boo_b [[attribute(1)]]; -}; - -kernel void main0(main0_in in [[stage_in]], uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], threadgroup main0_in* gl_in [[threadgroup(0)]]) -{ - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - if (gl_InvocationID < spvIndirectParams[0]) - gl_in[gl_InvocationID] = in; - threadgroup_barrier(mem_flags::mem_threadgroup); - if (gl_InvocationID >= 4) - return; - Boo _25 = Boo{ gl_in[gl_InvocationID].Boo_a, gl_in[gl_InvocationID].Boo_b }; - gl_out[gl_InvocationID].vVertex = _25; - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(1.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(2.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(3.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3] = half(4.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[0] = half(1.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[1] = half(2.0); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/desktop-only/tese/triangle.desktop.sso.tese b/third_party/spirv-cross/reference/shaders-msl/desktop-only/tese/triangle.desktop.sso.tese deleted file mode 100644 index dff8cb7bbd..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/desktop-only/tese/triangle.desktop.sso.tese +++ /dev/null @@ -1,27 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 gl_Position [[attribute(0)]]; -}; - -struct main0_patchIn -{ - patch_control_point gl_in; -}; - -[[ patch(triangle, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]], float3 gl_TessCoord [[position_in_patch]]) -{ - main0_out out = {}; - out.gl_Position = ((patchIn.gl_in[0].gl_Position * gl_TessCoord.x) + (patchIn.gl_in[1].gl_Position * gl_TessCoord.y)) + (patchIn.gl_in[2].gl_Position * gl_TessCoord.z); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/desktop-only/vert/basic.desktop.sso.vert b/third_party/spirv-cross/reference/shaders-msl/desktop-only/vert/basic.desktop.sso.vert deleted file mode 100644 index ffb4357126..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/desktop-only/vert/basic.desktop.sso.vert +++ /dev/null @@ -1,30 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - float4x4 uMVP; -}; - -struct main0_out -{ - float3 vNormal [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 aVertex [[attribute(0)]]; - float3 aNormal [[attribute(1)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant UBO& _16 [[buffer(0)]]) -{ - main0_out out = {}; - out.gl_Position = _16.uMVP * in.aVertex; - out.vNormal = in.aNormal; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/desktop-only/vert/clip-cull-distance..no-user-varying.desktop.vert b/third_party/spirv-cross/reference/shaders-msl/desktop-only/vert/clip-cull-distance..no-user-varying.desktop.vert deleted file mode 100644 index a414c98542..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/desktop-only/vert/clip-cull-distance..no-user-varying.desktop.vert +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; - float gl_ClipDistance [[clip_distance]] [2]; -}; - -vertex main0_out main0() -{ - main0_out out = {}; - out.gl_Position = float4(10.0); - out.gl_ClipDistance[0] = 1.0; - out.gl_ClipDistance[1] = 4.0; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/desktop-only/vert/clip-cull-distance.desktop.vert b/third_party/spirv-cross/reference/shaders-msl/desktop-only/vert/clip-cull-distance.desktop.vert deleted file mode 100644 index 2d98929051..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/desktop-only/vert/clip-cull-distance.desktop.vert +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; - float gl_ClipDistance [[clip_distance]] [2]; - float gl_ClipDistance_0 [[user(clip0)]]; - float gl_ClipDistance_1 [[user(clip1)]]; -}; - -vertex main0_out main0() -{ - main0_out out = {}; - out.gl_Position = float4(10.0); - out.gl_ClipDistance[0] = 1.0; - out.gl_ClipDistance[1] = 4.0; - out.gl_ClipDistance_0 = out.gl_ClipDistance[0]; - out.gl_ClipDistance_1 = out.gl_ClipDistance[1]; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/desktop-only/vert/shader-draw-parameters.desktop.for-tess.vert b/third_party/spirv-cross/reference/shaders-msl/desktop-only/vert/shader-draw-parameters.desktop.for-tess.vert deleted file mode 100644 index b3c8b6bb27..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/desktop-only/vert/shader-draw-parameters.desktop.for-tess.vert +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint3 spvStageInputSize [[grid_size]], uint3 spvDispatchBase [[grid_origin]], device main0_out* spvOut [[buffer(28)]]) -{ - device main0_out& out = spvOut[gl_GlobalInvocationID.y * spvStageInputSize.x + gl_GlobalInvocationID.x]; - if (any(gl_GlobalInvocationID >= spvStageInputSize)) - return; - uint gl_BaseVertex = spvDispatchBase.x; - uint gl_BaseInstance = spvDispatchBase.y; - out.gl_Position = float4(float(int(gl_BaseVertex)), float(int(gl_BaseInstance)), 0.0, 1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/desktop-only/vert/shader-draw-parameters.desktop.vert b/third_party/spirv-cross/reference/shaders-msl/desktop-only/vert/shader-draw-parameters.desktop.vert deleted file mode 100644 index a32c1948f8..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/desktop-only/vert/shader-draw-parameters.desktop.vert +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -vertex main0_out main0(uint gl_BaseVertex [[base_vertex]], uint gl_BaseInstance [[base_instance]]) -{ - main0_out out = {}; - out.gl_Position = float4(float(int(gl_BaseVertex)), float(int(gl_BaseInstance)), 0.0, 1.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/flatten/basic.flatten.vert b/third_party/spirv-cross/reference/shaders-msl/flatten/basic.flatten.vert deleted file mode 100644 index ffb4357126..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/flatten/basic.flatten.vert +++ /dev/null @@ -1,30 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - float4x4 uMVP; -}; - -struct main0_out -{ - float3 vNormal [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 aVertex [[attribute(0)]]; - float3 aNormal [[attribute(1)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant UBO& _16 [[buffer(0)]]) -{ - main0_out out = {}; - out.gl_Position = _16.uMVP * in.aVertex; - out.vNormal = in.aNormal; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/flatten/multiindex.flatten.vert b/third_party/spirv-cross/reference/shaders-msl/flatten/multiindex.flatten.vert deleted file mode 100644 index f4549abab2..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/flatten/multiindex.flatten.vert +++ /dev/null @@ -1,27 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - float4 Data[3][5]; -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - int2 aIndex [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant UBO& _20 [[buffer(0)]]) -{ - main0_out out = {}; - out.gl_Position = _20.Data[in.aIndex.x][in.aIndex.y]; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/flatten/push-constant.flatten.vert b/third_party/spirv-cross/reference/shaders-msl/flatten/push-constant.flatten.vert deleted file mode 100644 index 8f2e8c173f..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/flatten/push-constant.flatten.vert +++ /dev/null @@ -1,32 +0,0 @@ -#include -#include - -using namespace metal; - -struct PushMe -{ - float4x4 MVP; - float2x2 Rot; - float Arr[4]; -}; - -struct main0_out -{ - float2 vRot [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float2 Rot [[attribute(0)]]; - float4 Pos [[attribute(1)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant PushMe& registers [[buffer(0)]]) -{ - main0_out out = {}; - out.gl_Position = registers.MVP * in.Pos; - out.vRot = (registers.Rot * in.Rot) + float2(registers.Arr[2]); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/flatten/rowmajor.flatten.vert b/third_party/spirv-cross/reference/shaders-msl/flatten/rowmajor.flatten.vert deleted file mode 100644 index 3ea30e65c9..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/flatten/rowmajor.flatten.vert +++ /dev/null @@ -1,30 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - float4x4 uMVPR; - float4x4 uMVPC; - float4x4 uMVP; -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 aVertex [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant UBO& _18 [[buffer(0)]]) -{ - main0_out out = {}; - float2 v = float4x2(_18.uMVP[0].xy, _18.uMVP[1].xy, _18.uMVP[2].xy, _18.uMVP[3].xy) * in.aVertex; - out.gl_Position = (_18.uMVPR * in.aVertex) + (in.aVertex * _18.uMVPC); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/flatten/struct.flatten.vert b/third_party/spirv-cross/reference/shaders-msl/flatten/struct.flatten.vert deleted file mode 100644 index 954f9255c4..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/flatten/struct.flatten.vert +++ /dev/null @@ -1,40 +0,0 @@ -#include -#include - -using namespace metal; - -struct Light -{ - packed_float3 Position; - float Radius; - float4 Color; -}; - -struct UBO -{ - float4x4 uMVP; - Light light; -}; - -struct main0_out -{ - float4 vColor [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 aVertex [[attribute(0)]]; - float3 aNormal [[attribute(1)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant UBO& _18 [[buffer(0)]]) -{ - main0_out out = {}; - out.gl_Position = _18.uMVP * in.aVertex; - out.vColor = float4(0.0); - float3 L = in.aVertex.xyz - float3(_18.light.Position); - out.vColor += ((_18.light.Color * fast::clamp(1.0 - (length(L) / _18.light.Radius), 0.0, 1.0)) * dot(in.aNormal, normalize(L))); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/flatten/swizzle.flatten.vert b/third_party/spirv-cross/reference/shaders-msl/flatten/swizzle.flatten.vert deleted file mode 100644 index 05a6bbaeb3..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/flatten/swizzle.flatten.vert +++ /dev/null @@ -1,47 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - float4 A; - float2 B0; - float2 B1; - float C0; - float3 C1; - packed_float3 D0; - float D1; - float E0; - float E1; - float E2; - float E3; - float F0; - float2 F1; - float F2; -}; - -struct main0_out -{ - float4 oA [[user(locn0)]]; - float4 oB [[user(locn1)]]; - float4 oC [[user(locn2)]]; - float4 oD [[user(locn3)]]; - float4 oE [[user(locn4)]]; - float4 oF [[user(locn5)]]; - float4 gl_Position [[position]]; -}; - -vertex main0_out main0(constant UBO& _22 [[buffer(0)]]) -{ - main0_out out = {}; - out.gl_Position = float4(0.0); - out.oA = _22.A; - out.oB = float4(_22.B0, _22.B1); - out.oC = float4(_22.C0, _22.C1) + float4(_22.C1.xy, _22.C1.z, _22.C0); - out.oD = float4(_22.D0[0], _22.D0[1], _22.D0[2], _22.D1) + float4(float2(_22.D0[0], _22.D0[1]), _22.D0[2u], _22.D1); - out.oE = float4(_22.E0, _22.E1, _22.E2, _22.E3); - out.oF = float4(_22.F0, _22.F1, _22.F2); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/flatten/types.flatten.frag b/third_party/spirv-cross/reference/shaders-msl/flatten/types.flatten.frag deleted file mode 100644 index cee53d9e58..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/flatten/types.flatten.frag +++ /dev/null @@ -1,35 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO1 -{ - int4 c; - int4 d; -}; - -struct UBO2 -{ - uint4 e; - uint4 f; -}; - -struct UBO0 -{ - float4 a; - float4 b; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(constant UBO1& _14 [[buffer(0)]], constant UBO2& _29 [[buffer(1)]], constant UBO0& _41 [[buffer(2)]]) -{ - main0_out out = {}; - out.FragColor = ((((float4(_14.c) + float4(_14.d)) + float4(_29.e)) + float4(_29.f)) + _41.a) + _41.b; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/argument-buffers.msl2.argument.frag b/third_party/spirv-cross/reference/shaders-msl/frag/argument-buffers.msl2.argument.frag deleted file mode 100644 index b7005ff981..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/argument-buffers.msl2.argument.frag +++ /dev/null @@ -1,96 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBO -{ - float4 ssbo; -}; - -struct SSBOs -{ - float4 ssbo; -}; - -struct Push -{ - float4 push; -}; - -struct UBO -{ - float4 ubo; -}; - -struct UBOs -{ - float4 ubo; -}; - -struct spvDescriptorSetBuffer0 -{ - texture2d uTexture [[id(0)]]; - sampler uTextureSmplr [[id(1)]]; - array, 2> uTextures [[id(2)]]; - array uTexturesSmplr [[id(4)]]; - constant UBO* v_90 [[id(6)]]; -}; - -struct spvDescriptorSetBuffer1 -{ - array, 4> uTexture2 [[id(0)]]; - array uSampler [[id(4)]]; - device SSBO* v_60 [[id(6)]]; - const device SSBOs* ssbos [[id(7)]][2]; -}; - -struct spvDescriptorSetBuffer2 -{ - constant UBOs* ubos [[id(0)]][4]; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float2 vUV [[user(locn0)]]; -}; - -static inline __attribute__((always_inline)) -float4 sample_in_function2(thread texture2d uTexture, thread const sampler uTextureSmplr, thread float2& vUV, thread const array, 4> uTexture2, thread const array uSampler, thread const array, 2> uTextures, thread const array uTexturesSmplr, device SSBO& v_60, const device SSBOs* constant (&ssbos)[2], constant Push& registers) -{ - float4 ret = uTexture.sample(uTextureSmplr, vUV); - ret += uTexture2[2].sample(uSampler[1], vUV); - ret += uTextures[1].sample(uTexturesSmplr[1], vUV); - ret += v_60.ssbo; - ret += ssbos[0]->ssbo; - ret += registers.push; - return ret; -} - -static inline __attribute__((always_inline)) -float4 sample_in_function(thread texture2d uTexture, thread const sampler uTextureSmplr, thread float2& vUV, thread const array, 4> uTexture2, thread const array uSampler, thread const array, 2> uTextures, thread const array uTexturesSmplr, device SSBO& v_60, const device SSBOs* constant (&ssbos)[2], constant Push& registers, constant UBO& v_90, constant UBOs* constant (&ubos)[4]) -{ - float4 ret = sample_in_function2(uTexture, uTextureSmplr, vUV, uTexture2, uSampler, uTextures, uTexturesSmplr, v_60, ssbos, registers); - ret += v_90.ubo; - ret += ubos[0]->ubo; - return ret; -} - -fragment main0_out main0(main0_in in [[stage_in]], constant spvDescriptorSetBuffer0& spvDescriptorSet0 [[buffer(0)]], constant spvDescriptorSetBuffer1& spvDescriptorSet1 [[buffer(1)]], constant spvDescriptorSetBuffer2& spvDescriptorSet2 [[buffer(2)]], constant Push& registers [[buffer(3)]]) -{ - main0_out out = {}; - out.FragColor = sample_in_function(spvDescriptorSet0.uTexture, spvDescriptorSet0.uTextureSmplr, in.vUV, spvDescriptorSet1.uTexture2, spvDescriptorSet1.uSampler, spvDescriptorSet0.uTextures, spvDescriptorSet0.uTexturesSmplr, (*spvDescriptorSet1.v_60), spvDescriptorSet1.ssbos, registers, (*spvDescriptorSet0.v_90), spvDescriptorSet2.ubos); - out.FragColor += (*spvDescriptorSet0.v_90).ubo; - out.FragColor += (*spvDescriptorSet1.v_60).ssbo; - out.FragColor += spvDescriptorSet2.ubos[1]->ubo; - out.FragColor += registers.push; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/array-component-io.frag b/third_party/spirv-cross/reference/shaders-msl/frag/array-component-io.frag deleted file mode 100644 index 9b4c5b5204..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/array-component-io.frag +++ /dev/null @@ -1,99 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 m_location_0 [[color(0)]]; - float4 m_location_1 [[color(1)]]; - float4 m_location_2 [[color(2)]]; -}; - -struct main0_in -{ - float InC_0 [[user(locn0_1), flat]]; - float InA_0 [[user(locn1), flat]]; - float InC_1 [[user(locn1_1), flat]]; - float2 InB_0 [[user(locn1_2), flat]]; - float InA_1 [[user(locn2), flat]]; - float InC_2 [[user(locn2_1), flat]]; - float2 InB_1 [[user(locn2_2), flat]]; - float InD [[user(locn3_1), sample_perspective]]; - float InE [[user(locn4_2), center_no_perspective]]; - float InF [[user(locn5_3), centroid_perspective]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - spvUnsafeArray A = {}; - spvUnsafeArray B = {}; - spvUnsafeArray C = {}; - float D = {}; - spvUnsafeArray InA = {}; - spvUnsafeArray InB = {}; - spvUnsafeArray InC = {}; - InA[0] = in.InA_0; - InA[1] = in.InA_1; - InB[0] = in.InB_0; - InB[1] = in.InB_1; - InC[0] = in.InC_0; - InC[1] = in.InC_1; - InC[2] = in.InC_2; - A = InA; - B = InB; - C = InC; - D = (in.InD + in.InE) + in.InF; - out.m_location_1.x = A[0]; - out.m_location_2.x = A[1]; - out.m_location_1.zw = B[0]; - out.m_location_2.zw = B[1]; - out.m_location_0.y = C[0]; - out.m_location_1.y = C[1]; - out.m_location_2.y = C[2]; - out.m_location_0.w = D; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/array-lut-no-loop-variable.frag b/third_party/spirv-cross/reference/shaders-msl/frag/array-lut-no-loop-variable.frag deleted file mode 100644 index cdedd73a74..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/array-lut-no-loop-variable.frag +++ /dev/null @@ -1,62 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -constant spvUnsafeArray _17 = spvUnsafeArray({ 1.0, 2.0, 3.0, 4.0, 5.0 }); - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - for (int i = 0; i < 4; i++, out.FragColor += float4(_17[i])) - { - } - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/array-of-array-lut.frag b/third_party/spirv-cross/reference/shaders-msl/frag/array-of-array-lut.frag deleted file mode 100644 index ba553824e7..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/array-of-array-lut.frag +++ /dev/null @@ -1,68 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -constant spvUnsafeArray _17 = spvUnsafeArray({ 1.0, 2.0, 3.0 }); -constant spvUnsafeArray _21 = spvUnsafeArray({ 4.0, 5.0, 6.0 }); -constant spvUnsafeArray, 2> _22 = spvUnsafeArray, 2>({ spvUnsafeArray({ 1.0, 2.0, 3.0 }), spvUnsafeArray({ 4.0, 5.0, 6.0 }) }); - -struct main0_out -{ - float vOutput [[color(0)]]; -}; - -struct main0_in -{ - int vIndex1 [[user(locn0)]]; - int vIndex2 [[user(locn1)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.vOutput = _22[in.vIndex1][in.vIndex2]; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/array-of-texture-swizzle-nonconstant-uniform.msl2.argument.discrete.swizzle.frag b/third_party/spirv-cross/reference/shaders-msl/frag/array-of-texture-swizzle-nonconstant-uniform.msl2.argument.discrete.swizzle.frag deleted file mode 100644 index b2340ad1e3..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/array-of-texture-swizzle-nonconstant-uniform.msl2.argument.discrete.swizzle.frag +++ /dev/null @@ -1,117 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct UBO -{ - uint index; -}; - -struct UBO2 -{ - uint index2; -}; - -struct spvDescriptorSetBuffer0 -{ - array, 4> uSampler [[id(0)]]; - array uSamplerSmplr [[id(4)]]; - constant UBO* uUBO [[id(8)]]; - constant UBO2* m_50 [[id(9)]]; - constant uint* spvSwizzleConstants [[id(10)]]; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float2 vUV [[user(locn0)]]; -}; - -template struct spvRemoveReference { typedef T type; }; -template struct spvRemoveReference { typedef T type; }; -template struct spvRemoveReference { typedef T type; }; -template inline constexpr thread T&& spvForward(thread typename spvRemoveReference::type& x) -{ - return static_cast(x); -} -template inline constexpr thread T&& spvForward(thread typename spvRemoveReference::type&& x) -{ - return static_cast(x); -} - -enum class spvSwizzle : uint -{ - none = 0, - zero, - one, - red, - green, - blue, - alpha -}; - -template -inline T spvGetSwizzle(vec x, T c, spvSwizzle s) -{ - switch (s) - { - case spvSwizzle::none: - return c; - case spvSwizzle::zero: - return 0; - case spvSwizzle::one: - return 1; - case spvSwizzle::red: - return x.r; - case spvSwizzle::green: - return x.g; - case spvSwizzle::blue: - return x.b; - case spvSwizzle::alpha: - return x.a; - } -} - -// Wrapper function that swizzles texture samples and fetches. -template -inline vec spvTextureSwizzle(vec x, uint s) -{ - if (!s) - return x; - return vec(spvGetSwizzle(x, x.r, spvSwizzle((s >> 0) & 0xFF)), spvGetSwizzle(x, x.g, spvSwizzle((s >> 8) & 0xFF)), spvGetSwizzle(x, x.b, spvSwizzle((s >> 16) & 0xFF)), spvGetSwizzle(x, x.a, spvSwizzle((s >> 24) & 0xFF))); -} - -template -inline T spvTextureSwizzle(T x, uint s) -{ - return spvTextureSwizzle(vec(x, 0, 0, 1), s).x; -} - -static inline __attribute__((always_inline)) -float4 sample_in_func(thread const array, 4> uSampler, thread const array uSamplerSmplr, constant uint* uSamplerSwzl, constant UBO& uUBO, thread float2& vUV) -{ - return spvTextureSwizzle(uSampler[uUBO.index].sample(uSamplerSmplr[uUBO.index], vUV), uSamplerSwzl[uUBO.index]); -} - -static inline __attribute__((always_inline)) -float4 sample_single_in_func(thread const texture2d s, thread const sampler sSmplr, constant uint& sSwzl, thread float2& vUV) -{ - return spvTextureSwizzle(s.sample(sSmplr, vUV), sSwzl); -} - -fragment main0_out main0(main0_in in [[stage_in]], constant spvDescriptorSetBuffer0& spvDescriptorSet0 [[buffer(0)]], constant uint* spvSwizzleConstants [[buffer(30)]]) -{ - main0_out out = {}; - constant uint* spvDescriptorSet0_uSamplerSwzl = &spvDescriptorSet0.spvSwizzleConstants[0]; - out.FragColor = sample_in_func(spvDescriptorSet0.uSampler, spvDescriptorSet0.uSamplerSmplr, spvDescriptorSet0_uSamplerSwzl, (*spvDescriptorSet0.uUBO), in.vUV); - out.FragColor += sample_single_in_func(spvDescriptorSet0.uSampler[(*spvDescriptorSet0.m_50).index2], spvDescriptorSet0.uSamplerSmplr[(*spvDescriptorSet0.m_50).index2], spvDescriptorSet0_uSamplerSwzl[(*spvDescriptorSet0.m_50).index2], in.vUV); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/array-of-texture-swizzle-nonconstant-uniform.msl2.swizzle.frag b/third_party/spirv-cross/reference/shaders-msl/frag/array-of-texture-swizzle-nonconstant-uniform.msl2.swizzle.frag deleted file mode 100644 index 82da43f34e..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/array-of-texture-swizzle-nonconstant-uniform.msl2.swizzle.frag +++ /dev/null @@ -1,108 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct UBO -{ - uint index; -}; - -struct UBO2 -{ - uint index2; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float2 vUV [[user(locn0)]]; -}; - -template struct spvRemoveReference { typedef T type; }; -template struct spvRemoveReference { typedef T type; }; -template struct spvRemoveReference { typedef T type; }; -template inline constexpr thread T&& spvForward(thread typename spvRemoveReference::type& x) -{ - return static_cast(x); -} -template inline constexpr thread T&& spvForward(thread typename spvRemoveReference::type&& x) -{ - return static_cast(x); -} - -enum class spvSwizzle : uint -{ - none = 0, - zero, - one, - red, - green, - blue, - alpha -}; - -template -inline T spvGetSwizzle(vec x, T c, spvSwizzle s) -{ - switch (s) - { - case spvSwizzle::none: - return c; - case spvSwizzle::zero: - return 0; - case spvSwizzle::one: - return 1; - case spvSwizzle::red: - return x.r; - case spvSwizzle::green: - return x.g; - case spvSwizzle::blue: - return x.b; - case spvSwizzle::alpha: - return x.a; - } -} - -// Wrapper function that swizzles texture samples and fetches. -template -inline vec spvTextureSwizzle(vec x, uint s) -{ - if (!s) - return x; - return vec(spvGetSwizzle(x, x.r, spvSwizzle((s >> 0) & 0xFF)), spvGetSwizzle(x, x.g, spvSwizzle((s >> 8) & 0xFF)), spvGetSwizzle(x, x.b, spvSwizzle((s >> 16) & 0xFF)), spvGetSwizzle(x, x.a, spvSwizzle((s >> 24) & 0xFF))); -} - -template -inline T spvTextureSwizzle(T x, uint s) -{ - return spvTextureSwizzle(vec(x, 0, 0, 1), s).x; -} - -static inline __attribute__((always_inline)) -float4 sample_in_func(thread const array, 4> uSampler, thread const array uSamplerSmplr, constant uint* uSamplerSwzl, constant UBO& uUBO, thread float2& vUV) -{ - return spvTextureSwizzle(uSampler[uUBO.index].sample(uSamplerSmplr[uUBO.index], vUV), uSamplerSwzl[uUBO.index]); -} - -static inline __attribute__((always_inline)) -float4 sample_single_in_func(thread const texture2d s, thread const sampler sSmplr, constant uint& sSwzl, thread float2& vUV) -{ - return spvTextureSwizzle(s.sample(sSmplr, vUV), sSwzl); -} - -fragment main0_out main0(main0_in in [[stage_in]], constant uint* spvSwizzleConstants [[buffer(30)]], constant UBO& uUBO [[buffer(0)]], constant UBO2& _50 [[buffer(1)]], array, 4> uSampler [[texture(0)]], array uSamplerSmplr [[sampler(0)]]) -{ - main0_out out = {}; - constant uint* uSamplerSwzl = &spvSwizzleConstants[0]; - out.FragColor = sample_in_func(uSampler, uSamplerSmplr, uSamplerSwzl, uUBO, in.vUV); - out.FragColor += sample_single_in_func(uSampler[_50.index2], uSamplerSmplr[_50.index2], uSamplerSwzl[_50.index2], in.vUV); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/array-of-texture-swizzle.msl2.argument.discrete.swizzle.frag b/third_party/spirv-cross/reference/shaders-msl/frag/array-of-texture-swizzle.msl2.argument.discrete.swizzle.frag deleted file mode 100644 index 833ddec011..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/array-of-texture-swizzle.msl2.argument.discrete.swizzle.frag +++ /dev/null @@ -1,114 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct spvDescriptorSetBuffer0 -{ - array, 4> uSampler0 [[id(0)]]; - array uSampler0Smplr [[id(4)]]; - constant uint* spvSwizzleConstants [[id(8)]]; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float2 vUV [[user(locn0)]]; -}; - -template struct spvRemoveReference { typedef T type; }; -template struct spvRemoveReference { typedef T type; }; -template struct spvRemoveReference { typedef T type; }; -template inline constexpr thread T&& spvForward(thread typename spvRemoveReference::type& x) -{ - return static_cast(x); -} -template inline constexpr thread T&& spvForward(thread typename spvRemoveReference::type&& x) -{ - return static_cast(x); -} - -enum class spvSwizzle : uint -{ - none = 0, - zero, - one, - red, - green, - blue, - alpha -}; - -template -inline T spvGetSwizzle(vec x, T c, spvSwizzle s) -{ - switch (s) - { - case spvSwizzle::none: - return c; - case spvSwizzle::zero: - return 0; - case spvSwizzle::one: - return 1; - case spvSwizzle::red: - return x.r; - case spvSwizzle::green: - return x.g; - case spvSwizzle::blue: - return x.b; - case spvSwizzle::alpha: - return x.a; - } -} - -// Wrapper function that swizzles texture samples and fetches. -template -inline vec spvTextureSwizzle(vec x, uint s) -{ - if (!s) - return x; - return vec(spvGetSwizzle(x, x.r, spvSwizzle((s >> 0) & 0xFF)), spvGetSwizzle(x, x.g, spvSwizzle((s >> 8) & 0xFF)), spvGetSwizzle(x, x.b, spvSwizzle((s >> 16) & 0xFF)), spvGetSwizzle(x, x.a, spvSwizzle((s >> 24) & 0xFF))); -} - -template -inline T spvTextureSwizzle(T x, uint s) -{ - return spvTextureSwizzle(vec(x, 0, 0, 1), s).x; -} - -static inline __attribute__((always_inline)) -float4 sample_in_func_1(thread const array, 4> uSampler0, thread const array uSampler0Smplr, constant uint* uSampler0Swzl, thread float2& vUV) -{ - return spvTextureSwizzle(uSampler0[2].sample(uSampler0Smplr[2], vUV), uSampler0Swzl[2]); -} - -static inline __attribute__((always_inline)) -float4 sample_in_func_2(thread float2& vUV, thread texture2d uSampler1, thread const sampler uSampler1Smplr, constant uint& uSampler1Swzl) -{ - return spvTextureSwizzle(uSampler1.sample(uSampler1Smplr, vUV), uSampler1Swzl); -} - -static inline __attribute__((always_inline)) -float4 sample_single_in_func(thread const texture2d s, thread const sampler sSmplr, constant uint& sSwzl, thread float2& vUV) -{ - return spvTextureSwizzle(s.sample(sSmplr, vUV), sSwzl); -} - -fragment main0_out main0(main0_in in [[stage_in]], constant spvDescriptorSetBuffer0& spvDescriptorSet0 [[buffer(0)]], constant uint* spvSwizzleConstants [[buffer(30)]], texture2d uSampler1 [[texture(0)]], sampler uSampler1Smplr [[sampler(0)]]) -{ - main0_out out = {}; - constant uint* spvDescriptorSet0_uSampler0Swzl = &spvDescriptorSet0.spvSwizzleConstants[0]; - constant uint& uSampler1Swzl = spvSwizzleConstants[0]; - out.FragColor = sample_in_func_1(spvDescriptorSet0.uSampler0, spvDescriptorSet0.uSampler0Smplr, spvDescriptorSet0_uSampler0Swzl, in.vUV); - out.FragColor += sample_in_func_2(in.vUV, uSampler1, uSampler1Smplr, uSampler1Swzl); - out.FragColor += sample_single_in_func(spvDescriptorSet0.uSampler0[1], spvDescriptorSet0.uSampler0Smplr[1], spvDescriptorSet0_uSampler0Swzl[1], in.vUV); - out.FragColor += sample_single_in_func(uSampler1, uSampler1Smplr, uSampler1Swzl, in.vUV); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/array-of-texture-swizzle.msl2.swizzle.frag b/third_party/spirv-cross/reference/shaders-msl/frag/array-of-texture-swizzle.msl2.swizzle.frag deleted file mode 100644 index 64b361ec97..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/array-of-texture-swizzle.msl2.swizzle.frag +++ /dev/null @@ -1,98 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float2 vUV [[user(locn0)]]; -}; - -template struct spvRemoveReference { typedef T type; }; -template struct spvRemoveReference { typedef T type; }; -template struct spvRemoveReference { typedef T type; }; -template inline constexpr thread T&& spvForward(thread typename spvRemoveReference::type& x) -{ - return static_cast(x); -} -template inline constexpr thread T&& spvForward(thread typename spvRemoveReference::type&& x) -{ - return static_cast(x); -} - -enum class spvSwizzle : uint -{ - none = 0, - zero, - one, - red, - green, - blue, - alpha -}; - -template -inline T spvGetSwizzle(vec x, T c, spvSwizzle s) -{ - switch (s) - { - case spvSwizzle::none: - return c; - case spvSwizzle::zero: - return 0; - case spvSwizzle::one: - return 1; - case spvSwizzle::red: - return x.r; - case spvSwizzle::green: - return x.g; - case spvSwizzle::blue: - return x.b; - case spvSwizzle::alpha: - return x.a; - } -} - -// Wrapper function that swizzles texture samples and fetches. -template -inline vec spvTextureSwizzle(vec x, uint s) -{ - if (!s) - return x; - return vec(spvGetSwizzle(x, x.r, spvSwizzle((s >> 0) & 0xFF)), spvGetSwizzle(x, x.g, spvSwizzle((s >> 8) & 0xFF)), spvGetSwizzle(x, x.b, spvSwizzle((s >> 16) & 0xFF)), spvGetSwizzle(x, x.a, spvSwizzle((s >> 24) & 0xFF))); -} - -template -inline T spvTextureSwizzle(T x, uint s) -{ - return spvTextureSwizzle(vec(x, 0, 0, 1), s).x; -} - -static inline __attribute__((always_inline)) -float4 sample_in_func(thread const array, 4> uSampler, thread const array uSamplerSmplr, constant uint* uSamplerSwzl, thread float2& vUV) -{ - return spvTextureSwizzle(uSampler[2].sample(uSamplerSmplr[2], vUV), uSamplerSwzl[2]); -} - -static inline __attribute__((always_inline)) -float4 sample_single_in_func(thread const texture2d s, thread const sampler sSmplr, constant uint& sSwzl, thread float2& vUV) -{ - return spvTextureSwizzle(s.sample(sSmplr, vUV), sSwzl); -} - -fragment main0_out main0(main0_in in [[stage_in]], constant uint* spvSwizzleConstants [[buffer(30)]], array, 4> uSampler [[texture(0)]], array uSamplerSmplr [[sampler(0)]]) -{ - main0_out out = {}; - constant uint* uSamplerSwzl = &spvSwizzleConstants[0]; - out.FragColor = sample_in_func(uSampler, uSamplerSmplr, uSamplerSwzl, in.vUV); - out.FragColor += sample_single_in_func(uSampler[1], uSamplerSmplr[1], uSamplerSwzl[1], in.vUV); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/barycentric-nv-nopersp.msl22.frag b/third_party/spirv-cross/reference/shaders-msl/frag/barycentric-nv-nopersp.msl22.frag deleted file mode 100644 index ef19fbf856..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/barycentric-nv-nopersp.msl22.frag +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include - -using namespace metal; - -struct Vertices -{ - float2 uvs[1]; -}; - -struct main0_out -{ - float2 value [[color(0)]]; -}; - -struct main0_in -{ - float3 gl_BaryCoordNoPerspNV [[barycentric_coord, center_no_perspective]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], const device Vertices& _19 [[buffer(0)]], uint gl_PrimitiveID [[primitive_id]]) -{ - main0_out out = {}; - int prim = int(gl_PrimitiveID); - float2 uv0 = _19.uvs[(3 * prim) + 0]; - float2 uv1 = _19.uvs[(3 * prim) + 1]; - float2 uv2 = _19.uvs[(3 * prim) + 2]; - out.value = ((uv0 * in.gl_BaryCoordNoPerspNV.x) + (uv1 * in.gl_BaryCoordNoPerspNV.y)) + (uv2 * in.gl_BaryCoordNoPerspNV.z); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/barycentric-nv.msl22.frag b/third_party/spirv-cross/reference/shaders-msl/frag/barycentric-nv.msl22.frag deleted file mode 100644 index 1d2e4c2f21..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/barycentric-nv.msl22.frag +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include - -using namespace metal; - -struct Vertices -{ - float2 uvs[1]; -}; - -struct main0_out -{ - float2 value [[color(0)]]; -}; - -struct main0_in -{ - float3 gl_BaryCoordNV [[barycentric_coord, center_perspective]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], const device Vertices& _19 [[buffer(0)]], uint gl_PrimitiveID [[primitive_id]]) -{ - main0_out out = {}; - int prim = int(gl_PrimitiveID); - float2 uv0 = _19.uvs[(3 * prim) + 0]; - float2 uv1 = _19.uvs[(3 * prim) + 1]; - float2 uv2 = _19.uvs[(3 * prim) + 2]; - out.value = ((uv0 * in.gl_BaryCoordNV.x) + (uv1 * in.gl_BaryCoordNV.y)) + (uv2 * in.gl_BaryCoordNV.z); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/basic.force-sample.frag b/third_party/spirv-cross/reference/shaders-msl/frag/basic.force-sample.frag deleted file mode 100644 index b9706b73f5..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/basic.force-sample.frag +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 vColor [[user(locn0)]]; - float2 vTex [[user(locn1)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texture2d uTex [[texture(0)]], sampler uTexSmplr [[sampler(0)]], uint gl_SampleID [[sample_id]]) -{ - main0_out out = {}; - out.FragColor = in.vColor * uTex.sample(uTexSmplr, in.vTex); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/basic.frag b/third_party/spirv-cross/reference/shaders-msl/frag/basic.frag deleted file mode 100644 index f33db61eba..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/basic.frag +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 vColor [[user(locn0)]]; - float2 vTex [[user(locn1)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texture2d uTex [[texture(0)]], sampler uTexSmplr [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor = in.vColor * uTex.sample(uTexSmplr, in.vTex); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/binary-func-unpack-pack-arguments.frag b/third_party/spirv-cross/reference/shaders-msl/frag/binary-func-unpack-pack-arguments.frag deleted file mode 100644 index 134cfe1847..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/binary-func-unpack-pack-arguments.frag +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - packed_float3 color; - float v; -}; - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -struct main0_in -{ - float3 vIn [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], constant UBO& _15 [[buffer(0)]]) -{ - main0_out out = {}; - out.FragColor = dot(in.vIn, float3(_15.color)); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/binary-unpack-pack-arguments.frag b/third_party/spirv-cross/reference/shaders-msl/frag/binary-unpack-pack-arguments.frag deleted file mode 100644 index 8bd538bec6..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/binary-unpack-pack-arguments.frag +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - packed_float3 color; - float v; -}; - -struct main0_out -{ - float3 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float3 vIn [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], constant UBO& _15 [[buffer(0)]]) -{ - main0_out out = {}; - out.FragColor = cross(in.vIn, float3(_15.color) - in.vIn); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/bitcasting.1d-as-2d.frag b/third_party/spirv-cross/reference/shaders-msl/frag/bitcasting.1d-as-2d.frag deleted file mode 100644 index ea49c067c2..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/bitcasting.1d-as-2d.frag +++ /dev/null @@ -1,30 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor0 [[color(0)]]; - float4 FragColor1 [[color(1)]]; -}; - -struct main0_in -{ - float4 VertGeom [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texture2d TextureBase [[texture(0)]], texture2d TextureDetail [[texture(1)]], sampler TextureBaseSmplr [[sampler(0)]], sampler TextureDetailSmplr [[sampler(1)]]) -{ - main0_out out = {}; - float4 texSample0 = TextureBase.sample(TextureBaseSmplr, float2(in.VertGeom.x, 0.5)); - float4 texSample1 = TextureDetail.sample(TextureDetailSmplr, float2(in.VertGeom.x, 0.5), int2(3, 0)); - int4 iResult0 = as_type(texSample0); - int4 iResult1 = as_type(texSample1); - out.FragColor0 = as_type(iResult0) * as_type(iResult1); - uint4 uResult0 = as_type(texSample0); - uint4 uResult1 = as_type(texSample1); - out.FragColor1 = as_type(uResult0) * as_type(uResult1); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/bitcasting.frag b/third_party/spirv-cross/reference/shaders-msl/frag/bitcasting.frag deleted file mode 100644 index 475b573a23..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/bitcasting.frag +++ /dev/null @@ -1,30 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor0 [[color(0)]]; - float4 FragColor1 [[color(1)]]; -}; - -struct main0_in -{ - float4 VertGeom [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texture2d TextureBase [[texture(0)]], texture2d TextureDetail [[texture(1)]], sampler TextureBaseSmplr [[sampler(0)]], sampler TextureDetailSmplr [[sampler(1)]]) -{ - main0_out out = {}; - float4 texSample0 = TextureBase.sample(TextureBaseSmplr, in.VertGeom.xy); - float4 texSample1 = TextureDetail.sample(TextureDetailSmplr, in.VertGeom.xy, int2(3, 2)); - int4 iResult0 = as_type(texSample0); - int4 iResult1 = as_type(texSample1); - out.FragColor0 = as_type(iResult0) * as_type(iResult1); - uint4 uResult0 = as_type(texSample0); - uint4 uResult1 = as_type(texSample1); - out.FragColor1 = as_type(uResult0) * as_type(uResult1); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/buffer-read-write.frag b/third_party/spirv-cross/reference/shaders-msl/frag/buffer-read-write.frag deleted file mode 100644 index 166d4311ba..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/buffer-read-write.frag +++ /dev/null @@ -1,27 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -// Returns 2D texture coords corresponding to 1D texel buffer coords -static inline __attribute__((always_inline)) -uint2 spvTexelBufferCoord(uint tc) -{ - return uint2(tc % 4096, tc / 4096); -} - -fragment main0_out main0(texture2d buf [[texture(0)]], texture2d bufOut [[texture(1)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - out.FragColor = buf.read(spvTexelBufferCoord(0)); - bufOut.write(out.FragColor, spvTexelBufferCoord(int(gl_FragCoord.x))); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/buffer-read-write.texture-buffer-native.msl21.frag b/third_party/spirv-cross/reference/shaders-msl/frag/buffer-read-write.texture-buffer-native.msl21.frag deleted file mode 100644 index 71496a4efe..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/buffer-read-write.texture-buffer-native.msl21.frag +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(texture_buffer buf [[texture(0)]], texture_buffer bufOut [[texture(1)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - out.FragColor = buf.read(uint(0)); - bufOut.write(out.FragColor, uint(int(gl_FragCoord.x))); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/builtins.frag b/third_party/spirv-cross/reference/shaders-msl/frag/builtins.frag deleted file mode 100644 index f9085252b3..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/builtins.frag +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; - float gl_FragDepth [[depth(any)]]; -}; - -struct main0_in -{ - float4 vColor [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - out.FragColor = gl_FragCoord + in.vColor; - out.gl_FragDepth = 0.5; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/clip-distance-varying.frag b/third_party/spirv-cross/reference/shaders-msl/frag/clip-distance-varying.frag deleted file mode 100644 index 9a72d5ba39..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/clip-distance-varying.frag +++ /dev/null @@ -1,67 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float gl_ClipDistance_0 [[user(clip0)]]; - float gl_ClipDistance_1 [[user(clip1)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - spvUnsafeArray gl_ClipDistance = {}; - gl_ClipDistance[0] = in.gl_ClipDistance_0; - gl_ClipDistance[1] = in.gl_ClipDistance_1; - out.FragColor = float4((1.0 - gl_ClipDistance[0]) - gl_ClipDistance[1]); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/complex-expression-in-access-chain.frag b/third_party/spirv-cross/reference/shaders-msl/frag/complex-expression-in-access-chain.frag deleted file mode 100644 index 9cd8bdc21c..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/complex-expression-in-access-chain.frag +++ /dev/null @@ -1,32 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - float4 results[1024]; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - int vIn [[user(locn0)]]; - int vIn2 [[user(locn1)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], device UBO& _34 [[buffer(0)]], texture2d Buf [[texture(0)]], sampler BufSmplr [[sampler(0)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - int4 coords = Buf.read(uint2(int2(gl_FragCoord.xy)), 0); - float4 foo = _34.results[coords.x % 16]; - int c = in.vIn * in.vIn; - int d = in.vIn2 * in.vIn2; - out.FragColor = (foo + foo) + _34.results[c + d]; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/composite-extract-forced-temporary.frag b/third_party/spirv-cross/reference/shaders-msl/frag/composite-extract-forced-temporary.frag deleted file mode 100644 index dfab4d26f0..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/composite-extract-forced-temporary.frag +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float2 vTexCoord [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texture2d Texture [[texture(0)]], sampler TextureSmplr [[sampler(0)]]) -{ - main0_out out = {}; - float f = Texture.sample(TextureSmplr, in.vTexCoord).x; - out.FragColor = float4(f * f); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/constant-array.frag b/third_party/spirv-cross/reference/shaders-msl/frag/constant-array.frag deleted file mode 100644 index 990860762c..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/constant-array.frag +++ /dev/null @@ -1,83 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct Foobar -{ - float a; - float b; -}; - -constant spvUnsafeArray _37 = spvUnsafeArray({ float4(1.0), float4(2.0), float4(3.0) }); -constant spvUnsafeArray _49 = spvUnsafeArray({ float4(1.0), float4(2.0) }); -constant spvUnsafeArray _54 = spvUnsafeArray({ float4(8.0), float4(10.0) }); -constant spvUnsafeArray, 2> _55 = spvUnsafeArray, 2>({ spvUnsafeArray({ float4(1.0), float4(2.0) }), spvUnsafeArray({ float4(8.0), float4(10.0) }) }); -constant spvUnsafeArray _75 = spvUnsafeArray({ Foobar{ 10.0, 40.0 }, Foobar{ 90.0, 70.0 } }); - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - int index [[user(locn0)]]; -}; - -static inline __attribute__((always_inline)) -float4 resolve(thread const Foobar& f) -{ - return float4(f.a + f.b); -} - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - Foobar param = Foobar{ 10.0, 20.0 }; - Foobar param_1 = _75[in.index]; - out.FragColor = ((_37[in.index] + _55[in.index][in.index + 1]) + resolve(param)) + resolve(param_1); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/constant-composites.frag b/third_party/spirv-cross/reference/shaders-msl/frag/constant-composites.frag deleted file mode 100644 index e0fa980fb8..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/constant-composites.frag +++ /dev/null @@ -1,74 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct Foo -{ - float a; - float b; -}; - -constant spvUnsafeArray _16 = spvUnsafeArray({ 1.0, 4.0, 3.0, 2.0 }); - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - int line [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - spvUnsafeArray _28 = spvUnsafeArray({ Foo{ 10.0, 20.0 }, Foo{ 30.0, 40.0 } }); - - main0_out out = {}; - out.FragColor = float4(_16[in.line]); - out.FragColor += float4(_28[in.line].a * _28[1 - in.line].a); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/control-dependent-in-branch.desktop.frag b/third_party/spirv-cross/reference/shaders-msl/frag/control-dependent-in-branch.desktop.frag deleted file mode 100644 index 4d10167130..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/control-dependent-in-branch.desktop.frag +++ /dev/null @@ -1,45 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 vInput [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texture2d uSampler [[texture(0)]], sampler uSamplerSmplr [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor = in.vInput; - float4 t = uSampler.sample(uSamplerSmplr, in.vInput.xy); - float4 d0 = dfdx(in.vInput); - float4 d1 = dfdy(in.vInput); - float4 d2 = fwidth(in.vInput); - float4 d3 = dfdx(in.vInput); - float4 d4 = dfdy(in.vInput); - float4 d5 = fwidth(in.vInput); - float4 d6 = dfdx(in.vInput); - float4 d7 = dfdy(in.vInput); - float4 d8 = fwidth(in.vInput); - if (in.vInput.y > 10.0) - { - out.FragColor += t; - out.FragColor += d0; - out.FragColor += d1; - out.FragColor += d2; - out.FragColor += d3; - out.FragColor += d4; - out.FragColor += d5; - out.FragColor += d6; - out.FragColor += d7; - out.FragColor += d8; - } - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/cull-distance-varying.frag b/third_party/spirv-cross/reference/shaders-msl/frag/cull-distance-varying.frag deleted file mode 100644 index 708a295710..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/cull-distance-varying.frag +++ /dev/null @@ -1,67 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float gl_CullDistance_0 [[user(cull0)]]; - float gl_CullDistance_1 [[user(cull1)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - spvUnsafeArray gl_CullDistance = {}; - gl_CullDistance[0] = in.gl_CullDistance_0; - gl_CullDistance[1] = in.gl_CullDistance_1; - out.FragColor = float4((1.0 - gl_CullDistance[0]) - gl_CullDistance[1]); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/depth-greater-than.frag b/third_party/spirv-cross/reference/shaders-msl/frag/depth-greater-than.frag deleted file mode 100644 index 5861509fc1..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/depth-greater-than.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float gl_FragDepth [[depth(greater)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - out.gl_FragDepth = 0.5; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/depth-less-than.frag b/third_party/spirv-cross/reference/shaders-msl/frag/depth-less-than.frag deleted file mode 100644 index f1177fa640..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/depth-less-than.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float gl_FragDepth [[depth(less)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - out.gl_FragDepth = 0.5; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/disable-frag-output.frag-output.frag b/third_party/spirv-cross/reference/shaders-msl/frag/disable-frag-output.frag-output.frag deleted file mode 100644 index 63bc45b8af..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/disable-frag-output.frag-output.frag +++ /dev/null @@ -1,35 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 buf1 [[color(1)]]; - float4 buf3 [[color(3)]]; - float4 buf6 [[color(6)]]; - float4 buf7 [[color(7)]]; -}; - -fragment main0_out main0() -{ - float4 buf0; - float4 buf2; - float4 buf4; - float4 buf5; - float gl_FragDepth; - int gl_FragStencilRefARB; - main0_out out = {}; - buf0 = float4(0.0, 0.0, 0.0, 1.0); - out.buf1 = float4(1.0, 0.0, 0.0, 1.0); - buf2 = float4(0.0, 1.0, 0.0, 1.0); - out.buf3 = float4(0.0, 0.0, 1.0, 1.0); - buf4 = float4(1.0, 0.0, 1.0, 0.5); - buf5 = float4(0.25); - out.buf6 = float4(0.75); - out.buf7 = float4(1.0); - gl_FragDepth = 0.89999997615814208984375; - gl_FragStencilRefARB = uint(127); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/dual-source-blending.frag b/third_party/spirv-cross/reference/shaders-msl/frag/dual-source-blending.frag deleted file mode 100644 index 37938bf8ca..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/dual-source-blending.frag +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor0 [[color(0), index(0)]]; - float4 FragColor1 [[color(0), index(1)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - out.FragColor0 = float4(1.0); - out.FragColor1 = float4(2.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/early-fragment-tests.frag b/third_party/spirv-cross/reference/shaders-msl/frag/early-fragment-tests.frag deleted file mode 100644 index 850fdc9205..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/early-fragment-tests.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -[[ early_fragment_tests ]] fragment main0_out main0() -{ - main0_out out = {}; - out.FragColor = float4(1.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/false-loop-init.frag b/third_party/spirv-cross/reference/shaders-msl/frag/false-loop-init.frag deleted file mode 100644 index 7a4d6d5a3f..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/false-loop-init.frag +++ /dev/null @@ -1,35 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 result [[color(0)]]; -}; - -struct main0_in -{ - float4 accum [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.result = float4(0.0); - uint j; - for (int i = 0; i < 4; i += int(j)) - { - if (in.accum.y > 10.0) - { - j = 40u; - } - else - { - j = 30u; - } - out.result += in.accum; - } - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/flush_params.frag b/third_party/spirv-cross/reference/shaders-msl/frag/flush_params.frag deleted file mode 100644 index 905a179bc6..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/flush_params.frag +++ /dev/null @@ -1,40 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct Structy -{ - float4 c; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -static inline __attribute__((always_inline)) -void foo2(thread Structy& f) -{ - f.c = float4(10.0); -} - -static inline __attribute__((always_inline)) -Structy foo() -{ - Structy param; - foo2(param); - Structy f = param; - return f; -} - -fragment main0_out main0() -{ - main0_out out = {}; - Structy s = foo(); - out.FragColor = s.c; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/for-loop-continue-control-flow.frag b/third_party/spirv-cross/reference/shaders-msl/frag/for-loop-continue-control-flow.frag deleted file mode 100644 index 847ec6532f..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/for-loop-continue-control-flow.frag +++ /dev/null @@ -1,42 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - out.FragColor = float4(0.0); - int i = 0; - int _36; - for (;;) - { - if (i < 3) - { - int a = i; - out.FragColor[a] += float(i); - if (false) - { - _36 = 1; - } - else - { - int _41 = i; - i = _41 + 1; - _36 = _41; - } - continue; - } - else - { - break; - } - } - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/for-loop-init.frag b/third_party/spirv-cross/reference/shaders-msl/frag/for-loop-init.frag deleted file mode 100644 index 9f3191b971..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/for-loop-init.frag +++ /dev/null @@ -1,58 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - int FragColor [[color(0)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - out.FragColor = 16; - for (int i = 0; i < 25; i++) - { - out.FragColor += 10; - } - for (int i_1 = 1, j = 4; i_1 < 30; i_1++, j += 4) - { - out.FragColor += 11; - } - int k = 0; - for (; k < 20; k++) - { - out.FragColor += 12; - } - k += 3; - out.FragColor += k; - int l; - if (k == 40) - { - l = 0; - for (; l < 40; l++) - { - out.FragColor += 13; - } - return out; - } - else - { - l = k; - out.FragColor += l; - } - int2 i_2 = int2(0); - for (; i_2.x < 10; i_2.x += 4) - { - out.FragColor += i_2.y; - } - int o = k; - for (int m = k; m < 40; m++) - { - out.FragColor += m; - } - out.FragColor += o; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/fp16-packing.frag b/third_party/spirv-cross/reference/shaders-msl/frag/fp16-packing.frag deleted file mode 100644 index e21feb43ec..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/fp16-packing.frag +++ /dev/null @@ -1,25 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float2 FP32Out [[color(0)]]; - uint FP16Out [[color(1)]]; -}; - -struct main0_in -{ - uint FP16 [[user(locn0)]]; - float2 FP32 [[user(locn1), flat]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.FP32Out = float2(as_type(in.FP16)); - out.FP16Out = as_type(half2(in.FP32)); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/fragment-component-padding.pad-fragment.frag b/third_party/spirv-cross/reference/shaders-msl/frag/fragment-component-padding.pad-fragment.frag deleted file mode 100644 index 6420bb9f4e..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/fragment-component-padding.pad-fragment.frag +++ /dev/null @@ -1,82 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 FragColors_0 [[color(0)]]; - float4 FragColors_1 [[color(1)]]; - float4 FragColor2 [[color(2)]]; - float4 FragColor3 [[color(3)]]; -}; - -struct main0_in -{ - float3 vColor [[user(locn0)]]; -}; - -static inline __attribute__((always_inline)) -void set_globals(thread spvUnsafeArray& FragColors, thread float3& vColor, thread float2& FragColor2, thread float3& FragColor3) -{ - FragColors[0] = vColor.x; - FragColors[1] = vColor.y; - FragColor2 = vColor.xz; - FragColor3 = vColor.zzz; -} - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - spvUnsafeArray FragColors = {}; - float2 FragColor2 = {}; - float3 FragColor3 = {}; - set_globals(FragColors, in.vColor, FragColor2, FragColor3); - out.FragColors_0 = float4(FragColors[0]); - out.FragColors_1 = float4(FragColors[1]); - out.FragColor2.xy = FragColor2; - out.FragColor3.xyz = FragColor3; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/front-facing.frag b/third_party/spirv-cross/reference/shaders-msl/frag/front-facing.frag deleted file mode 100644 index 2f83642492..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/front-facing.frag +++ /dev/null @@ -1,30 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 vA [[user(locn0)]]; - float4 vB [[user(locn1)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], bool gl_FrontFacing [[front_facing]]) -{ - main0_out out = {}; - if (gl_FrontFacing) - { - out.FragColor = in.vA; - } - else - { - out.FragColor = in.vB; - } - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/gather-dref.frag b/third_party/spirv-cross/reference/shaders-msl/frag/gather-dref.frag deleted file mode 100644 index c5c5ccf0bb..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/gather-dref.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float3 vUV [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], depth2d uT [[texture(0)]], sampler uTSmplr [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor = uT.gather_compare(uTSmplr, in.vUV.xy, in.vUV.z); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/gather-offset.frag b/third_party/spirv-cross/reference/shaders-msl/frag/gather-offset.frag deleted file mode 100644 index 02b80194b5..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/gather-offset.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(texture2d uT [[texture(0)]], sampler uTSmplr [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor = uT.gather(uTSmplr, float2(0.5), int2(0), component::w); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/helper-invocation.msl21.frag b/third_party/spirv-cross/reference/shaders-msl/frag/helper-invocation.msl21.frag deleted file mode 100644 index 97d69e19dc..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/helper-invocation.msl21.frag +++ /dev/null @@ -1,40 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float2 vUV [[user(locn0)]]; -}; - -static inline __attribute__((always_inline)) -float4 foo(thread bool& gl_HelperInvocation, thread texture2d uSampler, thread const sampler uSamplerSmplr, thread float2& vUV) -{ - float4 color; - if (!gl_HelperInvocation) - { - color = uSampler.sample(uSamplerSmplr, vUV, level(0.0)); - } - else - { - color = float4(1.0); - } - return color; -} - -fragment main0_out main0(main0_in in [[stage_in]], texture2d uSampler [[texture(0)]], sampler uSamplerSmplr [[sampler(0)]]) -{ - main0_out out = {}; - bool gl_HelperInvocation = simd_is_helper_thread(); - out.FragColor = foo(gl_HelperInvocation, uSampler, uSamplerSmplr, in.vUV); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/huge-argument-buffer.device-argument-buffer.argument.msl2.frag b/third_party/spirv-cross/reference/shaders-msl/frag/huge-argument-buffer.device-argument-buffer.argument.msl2.frag deleted file mode 100644 index 0e35c2485a..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/huge-argument-buffer.device-argument-buffer.argument.msl2.frag +++ /dev/null @@ -1,58 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct UBO -{ - float4 v; -}; - -struct spvDescriptorSetBuffer0 -{ - array, 10000> uSamplers [[id(0)]]; - array uSamplersSmplr [[id(10000)]]; -}; - -struct spvDescriptorSetBuffer1 -{ - constant UBO* vs [[id(0)]][10000]; -}; - -struct spvDescriptorSetBuffer2 -{ - texture2d uSampler [[id(0)]]; - sampler uSamplerSmplr [[id(1)]]; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float2 vUV [[user(locn0)]]; -}; - -static inline __attribute__((always_inline)) -float4 samp_array(thread const array, 10000> uSamplers, thread const array uSamplersSmplr, thread float2& vUV, constant UBO* const device (&vs)[10000]) -{ - return uSamplers[9999].sample(uSamplersSmplr[9999], vUV) + vs[5000]->v; -} - -static inline __attribute__((always_inline)) -float4 samp_single(thread float2& vUV, thread texture2d uSampler, thread const sampler uSamplerSmplr) -{ - return uSampler.sample(uSamplerSmplr, vUV); -} - -fragment main0_out main0(main0_in in [[stage_in]], const device spvDescriptorSetBuffer0& spvDescriptorSet0 [[buffer(0)]], const device spvDescriptorSetBuffer1& spvDescriptorSet1 [[buffer(1)]], constant spvDescriptorSetBuffer2& spvDescriptorSet2 [[buffer(2)]]) -{ - main0_out out = {}; - out.FragColor = samp_array(spvDescriptorSet0.uSamplers, spvDescriptorSet0.uSamplersSmplr, in.vUV, spvDescriptorSet1.vs) + samp_single(in.vUV, spvDescriptorSet2.uSampler, spvDescriptorSet2.uSamplerSmplr); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/illegal-name-test-0.frag b/third_party/spirv-cross/reference/shaders-msl/frag/illegal-name-test-0.frag deleted file mode 100644 index 6b209b49d5..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/illegal-name-test-0.frag +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - float4 fragment0 = float4(10.0); - float4 compute0 = float4(10.0); - float4 kernel0 = float4(10.0); - float4 vertex0 = float4(10.0); - out.FragColor = ((fragment0 + compute0) + kernel0) + vertex0; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/image-query-lod.msl22.frag b/third_party/spirv-cross/reference/shaders-msl/frag/image-query-lod.msl22.frag deleted file mode 100644 index 6e7991f28a..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/image-query-lod.msl22.frag +++ /dev/null @@ -1,78 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float2 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float3 vUV [[user(locn0)]]; -}; - -static inline __attribute__((always_inline)) -void from_function(thread float2& FragColor, thread texture2d uSampler2D, thread const sampler uSampler2DSmplr, thread float3& vUV, thread texture3d uSampler3D, thread const sampler uSampler3DSmplr, thread texturecube uSamplerCube, thread const sampler uSamplerCubeSmplr, thread texture2d uTexture2D, thread sampler uSampler, thread texture3d uTexture3D, thread texturecube uTextureCube) -{ - float2 _22; - _22.x = uSampler2D.calculate_clamped_lod(uSampler2DSmplr, vUV.xy); - _22.y = uSampler2D.calculate_unclamped_lod(uSampler2DSmplr, vUV.xy); - FragColor += _22; - float2 _31; - _31.x = uSampler3D.calculate_clamped_lod(uSampler3DSmplr, vUV); - _31.y = uSampler3D.calculate_unclamped_lod(uSampler3DSmplr, vUV); - FragColor += _31; - float2 _40; - _40.x = uSamplerCube.calculate_clamped_lod(uSamplerCubeSmplr, vUV); - _40.y = uSamplerCube.calculate_unclamped_lod(uSamplerCubeSmplr, vUV); - FragColor += _40; - float2 _53; - _53.x = uTexture2D.calculate_clamped_lod(uSampler, vUV.xy); - _53.y = uTexture2D.calculate_unclamped_lod(uSampler, vUV.xy); - FragColor += _53; - float2 _62; - _62.x = uTexture3D.calculate_clamped_lod(uSampler, vUV); - _62.y = uTexture3D.calculate_unclamped_lod(uSampler, vUV); - FragColor += _62; - float2 _71; - _71.x = uTextureCube.calculate_clamped_lod(uSampler, vUV); - _71.y = uTextureCube.calculate_unclamped_lod(uSampler, vUV); - FragColor += _71; -} - -fragment main0_out main0(main0_in in [[stage_in]], texture2d uSampler2D [[texture(0)]], texture3d uSampler3D [[texture(1)]], texturecube uSamplerCube [[texture(2)]], texture2d uTexture2D [[texture(3)]], texture3d uTexture3D [[texture(4)]], texturecube uTextureCube [[texture(5)]], sampler uSampler2DSmplr [[sampler(0)]], sampler uSampler3DSmplr [[sampler(1)]], sampler uSamplerCubeSmplr [[sampler(2)]], sampler uSampler [[sampler(3)]]) -{ - main0_out out = {}; - out.FragColor = float2(0.0); - float2 _79; - _79.x = uSampler2D.calculate_clamped_lod(uSampler2DSmplr, in.vUV.xy); - _79.y = uSampler2D.calculate_unclamped_lod(uSampler2DSmplr, in.vUV.xy); - out.FragColor += _79; - float2 _84; - _84.x = uSampler3D.calculate_clamped_lod(uSampler3DSmplr, in.vUV); - _84.y = uSampler3D.calculate_unclamped_lod(uSampler3DSmplr, in.vUV); - out.FragColor += _84; - float2 _89; - _89.x = uSamplerCube.calculate_clamped_lod(uSamplerCubeSmplr, in.vUV); - _89.y = uSamplerCube.calculate_unclamped_lod(uSamplerCubeSmplr, in.vUV); - out.FragColor += _89; - float2 _97; - _97.x = uTexture2D.calculate_clamped_lod(uSampler, in.vUV.xy); - _97.y = uTexture2D.calculate_unclamped_lod(uSampler, in.vUV.xy); - out.FragColor += _97; - float2 _104; - _104.x = uTexture3D.calculate_clamped_lod(uSampler, in.vUV); - _104.y = uTexture3D.calculate_unclamped_lod(uSampler, in.vUV); - out.FragColor += _104; - float2 _111; - _111.x = uTextureCube.calculate_clamped_lod(uSampler, in.vUV); - _111.y = uTextureCube.calculate_unclamped_lod(uSampler, in.vUV); - out.FragColor += _111; - from_function(out.FragColor, uSampler2D, uSampler2DSmplr, in.vUV, uSampler3D, uSampler3DSmplr, uSamplerCube, uSamplerCubeSmplr, uTexture2D, uSampler, uTexture3D, uTextureCube); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/in_block.frag b/third_party/spirv-cross/reference/shaders-msl/frag/in_block.frag deleted file mode 100644 index 8178c9a4ed..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/in_block.frag +++ /dev/null @@ -1,32 +0,0 @@ -#include -#include - -using namespace metal; - -struct VertexOut -{ - float4 color; - float4 color2; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 VertexOut_color [[user(locn2)]]; - float4 VertexOut_color2 [[user(locn3)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - VertexOut inputs = {}; - inputs.color = in.VertexOut_color; - inputs.color2 = in.VertexOut_color2; - out.FragColor = inputs.color + inputs.color2; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/in_mat.frag b/third_party/spirv-cross/reference/shaders-msl/frag/in_mat.frag deleted file mode 100644 index 70ff4860b8..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/in_mat.frag +++ /dev/null @@ -1,37 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 outFragColor [[color(0)]]; -}; - -struct main0_in -{ - float3 inPos [[user(locn0)]]; - float3 inNormal [[user(locn1)]]; - float4 inInvModelView_0 [[user(locn2)]]; - float4 inInvModelView_1 [[user(locn3)]]; - float4 inInvModelView_2 [[user(locn4)]]; - float4 inInvModelView_3 [[user(locn5)]]; - float inLodBias [[user(locn6)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texturecube samplerColor [[texture(0)]], sampler samplerColorSmplr [[sampler(0)]]) -{ - main0_out out = {}; - float4x4 inInvModelView = {}; - inInvModelView[0] = in.inInvModelView_0; - inInvModelView[1] = in.inInvModelView_1; - inInvModelView[2] = in.inInvModelView_2; - inInvModelView[3] = in.inInvModelView_3; - float3 cI = normalize(in.inPos); - float3 cR = reflect(cI, normalize(in.inNormal)); - cR = float3((inInvModelView * float4(cR, 0.0)).xyz); - cR.x *= (-1.0); - out.outFragColor = samplerColor.sample(samplerColorSmplr, cR, bias(in.inLodBias)); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/input-attachment-ms.arrayed-subpass.msl21.frag b/third_party/spirv-cross/reference/shaders-msl/frag/input-attachment-ms.arrayed-subpass.msl21.frag deleted file mode 100644 index f7b1441fe1..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/input-attachment-ms.arrayed-subpass.msl21.frag +++ /dev/null @@ -1,27 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -static inline __attribute__((always_inline)) -float4 load_subpasses(thread const texture2d_ms_array uInput, thread uint& gl_SampleID, thread float4& gl_FragCoord, thread uint& gl_Layer) -{ - float4 _24 = uInput.read(uint2(gl_FragCoord.xy), gl_Layer, gl_SampleID); - return _24; -} - -fragment main0_out main0(texture2d_ms_array uSubpass0 [[texture(0)]], texture2d_ms_array uSubpass1 [[texture(1)]], uint gl_SampleID [[sample_id]], float4 gl_FragCoord [[position]], uint gl_Layer [[render_target_array_index]]) -{ - main0_out out = {}; - gl_FragCoord.xy += get_sample_position(gl_SampleID) - 0.5; - out.FragColor = (uSubpass0.read(uint2(gl_FragCoord.xy), gl_Layer, 1) + uSubpass1.read(uint2(gl_FragCoord.xy), gl_Layer, 2)) + load_subpasses(uSubpass0, gl_SampleID, gl_FragCoord, gl_Layer); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/input-attachment-ms.frag b/third_party/spirv-cross/reference/shaders-msl/frag/input-attachment-ms.frag deleted file mode 100644 index 5e1f504aed..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/input-attachment-ms.frag +++ /dev/null @@ -1,27 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -static inline __attribute__((always_inline)) -float4 load_subpasses(thread const texture2d_ms uInput, thread uint& gl_SampleID, thread float4& gl_FragCoord) -{ - float4 _24 = uInput.read(uint2(gl_FragCoord.xy), gl_SampleID); - return _24; -} - -fragment main0_out main0(texture2d_ms uSubpass0 [[texture(0)]], texture2d_ms uSubpass1 [[texture(1)]], uint gl_SampleID [[sample_id]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - gl_FragCoord.xy += get_sample_position(gl_SampleID) - 0.5; - out.FragColor = (uSubpass0.read(uint2(gl_FragCoord.xy), 1) + uSubpass1.read(uint2(gl_FragCoord.xy), 2)) + load_subpasses(uSubpass0, gl_SampleID, gl_FragCoord); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/input-attachment-ms.multiview.msl21.frag b/third_party/spirv-cross/reference/shaders-msl/frag/input-attachment-ms.multiview.msl21.frag deleted file mode 100644 index 5e8c5339b8..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/input-attachment-ms.multiview.msl21.frag +++ /dev/null @@ -1,28 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -static inline __attribute__((always_inline)) -float4 load_subpasses(thread const texture2d_ms_array uInput, thread uint& gl_SampleID, thread float4& gl_FragCoord, thread uint& gl_ViewIndex) -{ - float4 _24 = uInput.read(uint2(gl_FragCoord.xy), gl_ViewIndex, gl_SampleID); - return _24; -} - -fragment main0_out main0(constant uint* spvViewMask [[buffer(24)]], texture2d_ms_array uSubpass0 [[texture(0)]], texture2d_ms_array uSubpass1 [[texture(1)]], uint gl_SampleID [[sample_id]], float4 gl_FragCoord [[position]], uint gl_ViewIndex [[render_target_array_index]]) -{ - main0_out out = {}; - gl_FragCoord.xy += get_sample_position(gl_SampleID) - 0.5; - gl_ViewIndex += spvViewMask[0]; - out.FragColor = (uSubpass0.read(uint2(gl_FragCoord.xy), gl_ViewIndex, 1) + uSubpass1.read(uint2(gl_FragCoord.xy), gl_ViewIndex, 2)) + load_subpasses(uSubpass0, gl_SampleID, gl_FragCoord, gl_ViewIndex); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/input-attachment.arrayed-subpass.frag b/third_party/spirv-cross/reference/shaders-msl/frag/input-attachment.arrayed-subpass.frag deleted file mode 100644 index 76d0a3cf14..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/input-attachment.arrayed-subpass.frag +++ /dev/null @@ -1,25 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -static inline __attribute__((always_inline)) -float4 load_subpasses(thread const texture2d_array uInput, thread float4& gl_FragCoord, thread uint& gl_Layer) -{ - return uInput.read(uint2(gl_FragCoord.xy), gl_Layer); -} - -fragment main0_out main0(texture2d_array uSubpass0 [[texture(0)]], texture2d_array uSubpass1 [[texture(1)]], float4 gl_FragCoord [[position]], uint gl_Layer [[render_target_array_index]]) -{ - main0_out out = {}; - out.FragColor = uSubpass0.read(uint2(gl_FragCoord.xy), gl_Layer) + load_subpasses(uSubpass1, gl_FragCoord, gl_Layer); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/input-attachment.frag b/third_party/spirv-cross/reference/shaders-msl/frag/input-attachment.frag deleted file mode 100644 index 93bbaec04d..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/input-attachment.frag +++ /dev/null @@ -1,25 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -static inline __attribute__((always_inline)) -float4 load_subpasses(thread const texture2d uInput, thread float4& gl_FragCoord) -{ - return uInput.read(uint2(gl_FragCoord.xy)); -} - -fragment main0_out main0(texture2d uSubpass0 [[texture(0)]], texture2d uSubpass1 [[texture(1)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - out.FragColor = uSubpass0.read(uint2(gl_FragCoord.xy)) + load_subpasses(uSubpass1, gl_FragCoord); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/input-attachment.multiview.frag b/third_party/spirv-cross/reference/shaders-msl/frag/input-attachment.multiview.frag deleted file mode 100644 index 931790b838..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/input-attachment.multiview.frag +++ /dev/null @@ -1,26 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -static inline __attribute__((always_inline)) -float4 load_subpasses(thread const texture2d_array uInput, thread float4& gl_FragCoord, thread uint& gl_ViewIndex) -{ - return uInput.read(uint2(gl_FragCoord.xy), gl_ViewIndex); -} - -fragment main0_out main0(constant uint* spvViewMask [[buffer(24)]], texture2d_array uSubpass0 [[texture(0)]], texture2d_array uSubpass1 [[texture(1)]], float4 gl_FragCoord [[position]], uint gl_ViewIndex [[render_target_array_index]]) -{ - main0_out out = {}; - gl_ViewIndex += spvViewMask[0]; - out.FragColor = uSubpass0.read(uint2(gl_FragCoord.xy), gl_ViewIndex) + load_subpasses(uSubpass1, gl_FragCoord, gl_ViewIndex); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/interpolation-qualifiers-block.frag b/third_party/spirv-cross/reference/shaders-msl/frag/interpolation-qualifiers-block.frag deleted file mode 100644 index 2b420195ff..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/interpolation-qualifiers-block.frag +++ /dev/null @@ -1,47 +0,0 @@ -#include -#include - -using namespace metal; - -struct Input -{ - float2 v0; - float2 v1; - float3 v2; - float4 v3; - float v4; - float v5; - float v6; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float2 Input_v0 [[user(locn0), centroid_no_perspective]]; - float2 Input_v1 [[user(locn1), centroid_no_perspective]]; - float3 Input_v2 [[user(locn2), centroid_no_perspective]]; - float4 Input_v3 [[user(locn3), centroid_no_perspective]]; - float Input_v4 [[user(locn4), centroid_no_perspective]]; - float Input_v5 [[user(locn5), centroid_no_perspective]]; - float Input_v6 [[user(locn6), centroid_no_perspective]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - Input inp = {}; - inp.v0 = in.Input_v0; - inp.v1 = in.Input_v1; - inp.v2 = in.Input_v2; - inp.v3 = in.Input_v3; - inp.v4 = in.Input_v4; - inp.v5 = in.Input_v5; - inp.v6 = in.Input_v6; - out.FragColor = float4(inp.v0.x + inp.v1.y, inp.v2.xy, ((inp.v3.w * inp.v4) + inp.v5) - inp.v6); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/interpolation-qualifiers.frag b/third_party/spirv-cross/reference/shaders-msl/frag/interpolation-qualifiers.frag deleted file mode 100644 index aff6e1b0f7..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/interpolation-qualifiers.frag +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float2 v0 [[user(locn0)]]; - float2 v1 [[user(locn1), center_no_perspective]]; - float3 v2 [[user(locn2), centroid_perspective]]; - float4 v3 [[user(locn3), centroid_no_perspective]]; - float v4 [[user(locn4), sample_perspective]]; - float v5 [[user(locn5), sample_no_perspective]]; - float v6 [[user(locn6), flat]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.FragColor = float4(in.v0.x + in.v1.y, in.v2.xy, ((in.v3.w * in.v4) + in.v5) - in.v6); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/lut-promotion.frag b/third_party/spirv-cross/reference/shaders-msl/frag/lut-promotion.frag deleted file mode 100644 index b1e0e7311d..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/lut-promotion.frag +++ /dev/null @@ -1,92 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -constant spvUnsafeArray _16 = spvUnsafeArray({ 1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0, 4.0 }); -constant spvUnsafeArray _60 = spvUnsafeArray({ float4(0.0), float4(1.0), float4(8.0), float4(5.0) }); -constant spvUnsafeArray _104 = spvUnsafeArray({ float4(20.0), float4(30.0), float4(50.0), float4(60.0) }); - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -struct main0_in -{ - int index [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.FragColor = _16[in.index]; - if (in.index < 10) - { - out.FragColor += _16[in.index ^ 1]; - } - else - { - out.FragColor += _16[in.index & 1]; - } - if (in.index > 30) - { - out.FragColor += _60[in.index & 3].y; - } - else - { - out.FragColor += _60[in.index & 1].x; - } - spvUnsafeArray foobar = spvUnsafeArray({ float4(0.0), float4(1.0), float4(8.0), float4(5.0) }); - if (in.index > 30) - { - foobar[1].z = 20.0; - } - out.FragColor += foobar[in.index & 3].z; - spvUnsafeArray baz = spvUnsafeArray({ float4(0.0), float4(1.0), float4(8.0), float4(5.0) }); - baz = _104; - out.FragColor += baz[in.index & 3].z; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/mix.frag b/third_party/spirv-cross/reference/shaders-msl/frag/mix.frag deleted file mode 100644 index ee28bf9261..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/mix.frag +++ /dev/null @@ -1,30 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 vIn0 [[user(locn0)]]; - float4 vIn1 [[user(locn1)]]; - float vIn2 [[user(locn2)]]; - float vIn3 [[user(locn3)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - bool4 l = bool4(false, true, false, false); - out.FragColor = select(in.vIn0, in.vIn1, l); - bool f = true; - out.FragColor = float4(f ? in.vIn3 : in.vIn2); - out.FragColor = select(in.vIn1, in.vIn0, bool4(f)); - out.FragColor = float4(f ? in.vIn2 : in.vIn3); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/mrt-array.frag b/third_party/spirv-cross/reference/shaders-msl/frag/mrt-array.frag deleted file mode 100644 index 2628fbc930..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/mrt-array.frag +++ /dev/null @@ -1,94 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 FragColor_0 [[color(0)]]; - float4 FragColor_1 [[color(1)]]; - float4 FragColor_2 [[color(2)]]; - float4 FragColor_3 [[color(3)]]; -}; - -struct main0_in -{ - float4 vA [[user(locn0)]]; - float4 vB [[user(locn1)]]; -}; - -// Implementation of the GLSL mod() function, which is slightly different than Metal fmod() -template -inline Tx mod(Tx x, Ty y) -{ - return x - y * floor(x / y); -} - -static inline __attribute__((always_inline)) -void write_deeper_in_function(thread spvUnsafeArray& FragColor, thread float4& vA, thread float4& vB) -{ - FragColor[3] = vA * vB; -} - -static inline __attribute__((always_inline)) -void write_in_function(thread spvUnsafeArray& FragColor, thread float4& vA, thread float4& vB) -{ - FragColor[2] = vA - vB; - write_deeper_in_function(FragColor, vA, vB); -} - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - spvUnsafeArray FragColor = {}; - FragColor[0] = mod(in.vA, in.vB); - FragColor[1] = in.vA + in.vB; - write_in_function(FragColor, in.vA, in.vB); - out.FragColor_0 = FragColor[0]; - out.FragColor_1 = FragColor[1]; - out.FragColor_2 = FragColor[2]; - out.FragColor_3 = FragColor[3]; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/nonuniform-qualifier.msl2.frag b/third_party/spirv-cross/reference/shaders-msl/frag/nonuniform-qualifier.msl2.frag deleted file mode 100644 index 401703cbaf..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/nonuniform-qualifier.msl2.frag +++ /dev/null @@ -1,56 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - float4 v[64]; -}; - -struct SSBO -{ - float4 v[1]; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - int vIndex [[user(locn0)]]; - float2 vUV [[user(locn1)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], constant UBO* ubos_0 [[buffer(0)]], constant UBO* ubos_1 [[buffer(1)]], const device SSBO* ssbos_0 [[buffer(2)]], const device SSBO* ssbos_1 [[buffer(3)]], array, 8> uSamplers [[texture(0)]], array, 8> uCombinedSamplers [[texture(8)]], array uSamps [[sampler(0)]], array uCombinedSamplersSmplr [[sampler(7)]]) -{ - constant UBO* ubos[] = - { - ubos_0, - ubos_1, - }; - - const device SSBO* ssbos[] = - { - ssbos_0, - ssbos_1, - }; - - main0_out out = {}; - int i = in.vIndex; - int _25 = i + 10; - int _37 = i + 40; - out.FragColor = uSamplers[_25].sample(uSamps[_37], in.vUV); - int _53 = i + 10; - out.FragColor = uCombinedSamplers[_53].sample(uCombinedSamplersSmplr[_53], in.vUV); - int _69 = i + 20; - int _73 = i + 40; - out.FragColor += ubos[_69]->v[_73]; - int _87 = i + 50; - int _91 = i + 60; - out.FragColor += ssbos[_87]->v[_91]; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/packed-expression-vector-shuffle.frag b/third_party/spirv-cross/reference/shaders-msl/frag/packed-expression-vector-shuffle.frag deleted file mode 100644 index dc8947425a..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/packed-expression-vector-shuffle.frag +++ /dev/null @@ -1,25 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - packed_float3 color; - float v; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(constant UBO& _15 [[buffer(0)]]) -{ - main0_out out = {}; - float4 f = float4(1.0); - f = float4(_15.color[0], _15.color[1], _15.color[2], f.w); - out.FragColor = f; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/packing-test-3.frag b/third_party/spirv-cross/reference/shaders-msl/frag/packing-test-3.frag deleted file mode 100644 index f82d8a5797..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/packing-test-3.frag +++ /dev/null @@ -1,55 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct VertexOutput -{ - float4 HPosition; -}; - -struct TestStruct -{ - float3 position; - float radius; -}; - -struct TestStruct_1 -{ - packed_float3 position; - float radius; -}; - -struct CB0 -{ - TestStruct_1 CB0[16]; -}; - -struct main0_out -{ - float4 _entryPointOutput [[color(0)]]; -}; - -static inline __attribute__((always_inline)) -float4 _main(thread const VertexOutput& IN, constant CB0& _RESERVED_IDENTIFIER_FIXUP_24) -{ - TestStruct st; - st.position = float3(_RESERVED_IDENTIFIER_FIXUP_24.CB0[1].position); - st.radius = _RESERVED_IDENTIFIER_FIXUP_24.CB0[1].radius; - float4 col = float4(st.position, st.radius); - return col; -} - -fragment main0_out main0(constant CB0& _RESERVED_IDENTIFIER_FIXUP_24 [[buffer(0)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - VertexOutput IN; - IN.HPosition = gl_FragCoord; - VertexOutput param = IN; - VertexOutput param_1 = param; - out._entryPointOutput = _main(param_1, _RESERVED_IDENTIFIER_FIXUP_24); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/pixel-interlock-ordered.msl2.argument.frag b/third_party/spirv-cross/reference/shaders-msl/frag/pixel-interlock-ordered.msl2.argument.frag deleted file mode 100644 index adea453d06..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/pixel-interlock-ordered.msl2.argument.frag +++ /dev/null @@ -1,53 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wunused-variable" - -#include -#include -#include - -using namespace metal; - -struct Buffer3 -{ - int baz; -}; - -struct Buffer -{ - int foo; - uint bar; -}; - -struct Buffer2 -{ - uint quux; -}; - -struct spvDescriptorSetBuffer0 -{ - device Buffer3* m_9 [[id(0)]]; - texture2d img4 [[id(1)]]; - texture2d img [[id(2), raster_order_group(0)]]; - texture2d img3 [[id(3), raster_order_group(0)]]; - texture2d img2 [[id(4), raster_order_group(0)]]; - device atomic_uint* img2_atomic [[id(5), raster_order_group(0)]]; - volatile device Buffer* m_42 [[id(6), raster_order_group(0)]]; - device Buffer2* m_52 [[id(7), raster_order_group(0)]]; -}; - -// The required alignment of a linear texture of R32Uint format. -constant uint spvLinearTextureAlignmentOverride [[function_constant(65535)]]; -constant uint spvLinearTextureAlignment = is_function_constant_defined(spvLinearTextureAlignmentOverride) ? spvLinearTextureAlignmentOverride : 4; -// Returns buffer coords corresponding to 2D texture coords for emulating 2D texture atomics -#define spvImage2DAtomicCoord(tc, tex) (((((tex).get_width() + spvLinearTextureAlignment / 4 - 1) & ~( spvLinearTextureAlignment / 4 - 1)) * (tc).y) + (tc).x) - -fragment void main0(constant spvDescriptorSetBuffer0& spvDescriptorSet0 [[buffer(0)]]) -{ - (*spvDescriptorSet0.m_9).baz = 0; - spvDescriptorSet0.img4.write(float4(1.0, 0.0, 0.0, 1.0), uint2(int2(1))); - spvDescriptorSet0.img.write(spvDescriptorSet0.img3.read(uint2(int2(0))), uint2(int2(0))); - uint _39 = atomic_fetch_add_explicit((device atomic_uint*)&spvDescriptorSet0.img2_atomic[spvImage2DAtomicCoord(int2(0), spvDescriptorSet0.img2)], 1u, memory_order_relaxed); - (*spvDescriptorSet0.m_42).foo += 42; - uint _55 = atomic_fetch_and_explicit((volatile device atomic_uint*)&(*spvDescriptorSet0.m_42).bar, (*spvDescriptorSet0.m_52).quux, memory_order_relaxed); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/pixel-interlock-ordered.msl2.frag b/third_party/spirv-cross/reference/shaders-msl/frag/pixel-interlock-ordered.msl2.frag deleted file mode 100644 index e409ea06b2..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/pixel-interlock-ordered.msl2.frag +++ /dev/null @@ -1,41 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wunused-variable" - -#include -#include -#include - -using namespace metal; - -struct Buffer3 -{ - int baz; -}; - -struct Buffer -{ - int foo; - uint bar; -}; - -struct Buffer2 -{ - uint quux; -}; - -// The required alignment of a linear texture of R32Uint format. -constant uint spvLinearTextureAlignmentOverride [[function_constant(65535)]]; -constant uint spvLinearTextureAlignment = is_function_constant_defined(spvLinearTextureAlignmentOverride) ? spvLinearTextureAlignmentOverride : 4; -// Returns buffer coords corresponding to 2D texture coords for emulating 2D texture atomics -#define spvImage2DAtomicCoord(tc, tex) (((((tex).get_width() + spvLinearTextureAlignment / 4 - 1) & ~( spvLinearTextureAlignment / 4 - 1)) * (tc).y) + (tc).x) - -fragment void main0(device Buffer3& _9 [[buffer(0)]], volatile device Buffer& _42 [[buffer(2), raster_order_group(0)]], device Buffer2& _52 [[buffer(3), raster_order_group(0)]], texture2d img4 [[texture(0)]], texture2d img [[texture(1), raster_order_group(0)]], texture2d img3 [[texture(2), raster_order_group(0)]], texture2d img2 [[texture(3), raster_order_group(0)]], device atomic_uint* img2_atomic [[buffer(1), raster_order_group(0)]]) -{ - _9.baz = 0; - img4.write(float4(1.0, 0.0, 0.0, 1.0), uint2(int2(1))); - img.write(img3.read(uint2(int2(0))), uint2(int2(0))); - uint _39 = atomic_fetch_add_explicit((device atomic_uint*)&img2_atomic[spvImage2DAtomicCoord(int2(0), img2)], 1u, memory_order_relaxed); - _42.foo += 42; - uint _55 = atomic_fetch_and_explicit((volatile device atomic_uint*)&_42.bar, _52.quux, memory_order_relaxed); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/pls.frag b/third_party/spirv-cross/reference/shaders-msl/frag/pls.frag deleted file mode 100644 index ee774a04af..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/pls.frag +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 PLSOut0 [[color(0)]]; - float4 PLSOut1 [[color(1)]]; - float4 PLSOut2 [[color(2)]]; - float4 PLSOut3 [[color(3)]]; -}; - -struct main0_in -{ - float4 PLSIn0 [[user(locn0)]]; - float4 PLSIn1 [[user(locn1)]]; - float4 PLSIn2 [[user(locn2)]]; - float4 PLSIn3 [[user(locn3)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.PLSOut0 = in.PLSIn0 * 2.0; - out.PLSOut1 = in.PLSIn1 * 6.0; - out.PLSOut2 = in.PLSIn2 * 7.0; - out.PLSOut3 = in.PLSIn3 * 4.0; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/post-depth-coverage.ios.msl2.frag b/third_party/spirv-cross/reference/shaders-msl/frag/post-depth-coverage.ios.msl2.frag deleted file mode 100644 index 3b2885e2e2..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/post-depth-coverage.ios.msl2.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -[[ early_fragment_tests ]] fragment main0_out main0(uint gl_SampleMaskIn [[sample_mask, post_depth_coverage]]) -{ - main0_out out = {}; - out.FragColor = float4(float(gl_SampleMaskIn)); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/post-depth-coverage.msl23.frag b/third_party/spirv-cross/reference/shaders-msl/frag/post-depth-coverage.msl23.frag deleted file mode 100644 index 3b2885e2e2..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/post-depth-coverage.msl23.frag +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -[[ early_fragment_tests ]] fragment main0_out main0(uint gl_SampleMaskIn [[sample_mask, post_depth_coverage]]) -{ - main0_out out = {}; - out.FragColor = float4(float(gl_SampleMaskIn)); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/private-variable-prototype-declaration.frag b/third_party/spirv-cross/reference/shaders-msl/frag/private-variable-prototype-declaration.frag deleted file mode 100644 index 7c11a937a2..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/private-variable-prototype-declaration.frag +++ /dev/null @@ -1,41 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct AStruct -{ - float4 foobar; -}; - -struct main0_out -{ - float3 FragColor [[color(0)]]; -}; - -static inline __attribute__((always_inline)) -void someFunction(thread AStruct& s) -{ - s.foobar = float4(1.0); -} - -static inline __attribute__((always_inline)) -void otherFunction(thread float3& global_variable) -{ - global_variable = float3(1.0); -} - -fragment main0_out main0() -{ - main0_out out = {}; - AStruct param; - someFunction(param); - AStruct inputs = param; - float3 global_variable; - otherFunction(global_variable); - out.FragColor = global_variable; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/read-cull-clip-distance-in-function.frag b/third_party/spirv-cross/reference/shaders-msl/frag/read-cull-clip-distance-in-function.frag deleted file mode 100644 index 02d57d9bee..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/read-cull-clip-distance-in-function.frag +++ /dev/null @@ -1,78 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float gl_ClipDistance_0 [[user(clip0)]]; - float gl_ClipDistance_1 [[user(clip1)]]; - float gl_CullDistance_0 [[user(cull0)]]; - float gl_CullDistance_1 [[user(cull1)]]; -}; - -static inline __attribute__((always_inline)) -float4 read_in_func(thread spvUnsafeArray& gl_CullDistance, thread spvUnsafeArray& gl_ClipDistance) -{ - return float4(gl_CullDistance[0], gl_CullDistance[1], gl_ClipDistance[0], gl_ClipDistance[1]); -} - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - spvUnsafeArray gl_CullDistance = {}; - spvUnsafeArray gl_ClipDistance = {}; - gl_CullDistance[0] = in.gl_CullDistance_0; - gl_CullDistance[1] = in.gl_CullDistance_1; - gl_ClipDistance[0] = in.gl_ClipDistance_0; - gl_ClipDistance[1] = in.gl_ClipDistance_1; - out.FragColor = read_in_func(gl_CullDistance, gl_ClipDistance); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/readonly-ssbo.frag b/third_party/spirv-cross/reference/shaders-msl/frag/readonly-ssbo.frag deleted file mode 100644 index 7d73da79b2..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/readonly-ssbo.frag +++ /dev/null @@ -1,30 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBO -{ - float4 v; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -static inline __attribute__((always_inline)) -float4 read_from_function(const device SSBO& v_13) -{ - return v_13.v; -} - -fragment main0_out main0(const device SSBO& v_13 [[buffer(0)]]) -{ - main0_out out = {}; - out.FragColor = v_13.v + read_from_function(v_13); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/sample-depth-propagate-state-from-resource.frag b/third_party/spirv-cross/reference/shaders-msl/frag/sample-depth-propagate-state-from-resource.frag deleted file mode 100644 index a093d3f489..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/sample-depth-propagate-state-from-resource.frag +++ /dev/null @@ -1,43 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -struct main0_in -{ - float3 vUV [[user(locn0)]]; -}; - -static inline __attribute__((always_inline)) -float sample_normal2(thread const depth2d tex, thread sampler uSampler, thread float3& vUV) -{ - return float4(tex.sample(uSampler, vUV.xy)).x; -} - -static inline __attribute__((always_inline)) -float sample_normal(thread const depth2d tex, thread sampler uSampler, thread float3& vUV) -{ - return sample_normal2(tex, uSampler, vUV); -} - -static inline __attribute__((always_inline)) -float sample_comp(thread const depth2d tex, thread float3& vUV, thread sampler uSamplerShadow) -{ - return tex.sample_compare(uSamplerShadow, vUV.xy, vUV.z); -} - -fragment main0_out main0(main0_in in [[stage_in]], depth2d uTexture [[texture(0)]], sampler uSampler [[sampler(0)]], sampler uSamplerShadow [[sampler(1)]]) -{ - main0_out out = {}; - out.FragColor = sample_normal(uTexture, uSampler, in.vUV); - out.FragColor += sample_comp(uTexture, in.vUV, uSamplerShadow); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/sample-depth-separate-image-sampler.frag b/third_party/spirv-cross/reference/shaders-msl/frag/sample-depth-separate-image-sampler.frag deleted file mode 100644 index 115ed9fa73..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/sample-depth-separate-image-sampler.frag +++ /dev/null @@ -1,31 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -static inline __attribute__((always_inline)) -float sample_depth_from_function(thread const depth2d uT, thread const sampler uS) -{ - return uT.sample_compare(uS, float3(0.5).xy, 0.5); -} - -static inline __attribute__((always_inline)) -float sample_color_from_function(thread const texture2d uT, thread const sampler uS) -{ - return uT.sample(uS, float2(0.5)).x; -} - -fragment main0_out main0(depth2d uDepth [[texture(0)]], texture2d uColor [[texture(1)]], sampler uSamplerShadow [[sampler(0)]], sampler uSampler [[sampler(1)]]) -{ - main0_out out = {}; - out.FragColor = sample_depth_from_function(uDepth, uSamplerShadow) + sample_color_from_function(uColor, uSampler); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/sample-mask-in-and-out.fixed-sample-mask.frag b/third_party/spirv-cross/reference/shaders-msl/frag/sample-mask-in-and-out.fixed-sample-mask.frag deleted file mode 100644 index 21ca717845..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/sample-mask-in-and-out.fixed-sample-mask.frag +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; - uint gl_SampleMask [[sample_mask]]; -}; - -fragment main0_out main0(uint gl_SampleMaskIn [[sample_mask]]) -{ - main0_out out = {}; - out.FragColor = float4(1.0); - out.gl_SampleMask = gl_SampleMaskIn; - out.gl_SampleMask &= 34; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/sample-mask-not-used.fixed-sample-mask.frag b/third_party/spirv-cross/reference/shaders-msl/frag/sample-mask-not-used.fixed-sample-mask.frag deleted file mode 100644 index 040c641412..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/sample-mask-not-used.fixed-sample-mask.frag +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; - uint gl_SampleMask [[sample_mask]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - out.FragColor = float4(1.0); - out.gl_SampleMask = 34; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/sample-mask.fixed-sample-mask.frag b/third_party/spirv-cross/reference/shaders-msl/frag/sample-mask.fixed-sample-mask.frag deleted file mode 100644 index 20444779ae..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/sample-mask.fixed-sample-mask.frag +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; - uint gl_SampleMask [[sample_mask]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - out.FragColor = float4(1.0); - out.gl_SampleMask = 0; - out.gl_SampleMask &= 34; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/sample-mask.frag b/third_party/spirv-cross/reference/shaders-msl/frag/sample-mask.frag deleted file mode 100644 index 6a282395d6..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/sample-mask.frag +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; - uint gl_SampleMask [[sample_mask]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - out.FragColor = float4(1.0); - out.gl_SampleMask = 0; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/sample-position-func.frag b/third_party/spirv-cross/reference/shaders-msl/frag/sample-position-func.frag deleted file mode 100644 index 025f874d26..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/sample-position-func.frag +++ /dev/null @@ -1,32 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - int index [[user(locn0)]]; -}; - -static inline __attribute__((always_inline)) -float4 getColor(thread const int& i, thread float2& gl_SamplePosition) -{ - return float4(gl_SamplePosition, float(i), 1.0); -} - -fragment main0_out main0(main0_in in [[stage_in]], uint gl_SampleID [[sample_id]]) -{ - main0_out out = {}; - float2 gl_SamplePosition = get_sample_position(gl_SampleID); - int param = in.index; - out.FragColor = getColor(param, gl_SamplePosition); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/sample-position.frag b/third_party/spirv-cross/reference/shaders-msl/frag/sample-position.frag deleted file mode 100644 index 8d26acb9f1..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/sample-position.frag +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(uint gl_SampleID [[sample_id]]) -{ - main0_out out = {}; - float2 gl_SamplePosition = get_sample_position(gl_SampleID); - out.FragColor = float4(gl_SamplePosition, float(gl_SampleID), 1.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/sample-rate-frag-coord-sample-id.frag b/third_party/spirv-cross/reference/shaders-msl/frag/sample-rate-frag-coord-sample-id.frag deleted file mode 100644 index 5df60f909e..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/sample-rate-frag-coord-sample-id.frag +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(texture2d_array tex [[texture(0)]], sampler texSmplr [[sampler(0)]], float4 gl_FragCoord [[position]], uint gl_SampleID [[sample_id]]) -{ - main0_out out = {}; - gl_FragCoord.xy += get_sample_position(gl_SampleID) - 0.5; - float3 _28 = float3(gl_FragCoord.xy, float(gl_SampleID)); - out.FragColor = tex.sample(texSmplr, _28.xy, uint(round(_28.z))); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/sample-rate-frag-coord-sample-input.frag b/third_party/spirv-cross/reference/shaders-msl/frag/sample-rate-frag-coord-sample-input.frag deleted file mode 100644 index 386230ef0c..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/sample-rate-frag-coord-sample-input.frag +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float foo [[user(locn0), sample_perspective]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texture2d_array tex [[texture(0)]], sampler texSmplr [[sampler(0)]], float4 gl_FragCoord [[position]], uint gl_SampleID [[sample_id]]) -{ - main0_out out = {}; - gl_FragCoord.xy += get_sample_position(gl_SampleID) - 0.5; - float3 _26 = float3(gl_FragCoord.xy, in.foo); - out.FragColor = tex.sample(texSmplr, _26.xy, uint(round(_26.z))); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/sample-rate-frag-coord-sample-pos.frag b/third_party/spirv-cross/reference/shaders-msl/frag/sample-rate-frag-coord-sample-pos.frag deleted file mode 100644 index f8f357fe7c..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/sample-rate-frag-coord-sample-pos.frag +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(texture2d tex [[texture(0)]], sampler texSmplr [[sampler(0)]], float4 gl_FragCoord [[position]], uint gl_SampleID [[sample_id]]) -{ - main0_out out = {}; - gl_FragCoord.xy += get_sample_position(gl_SampleID) - 0.5; - float2 gl_SamplePosition = get_sample_position(gl_SampleID); - out.FragColor = tex.sample(texSmplr, (gl_FragCoord.xy - gl_SamplePosition)); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/sample-rate-frag-coord.force-sample.frag b/third_party/spirv-cross/reference/shaders-msl/frag/sample-rate-frag-coord.force-sample.frag deleted file mode 100644 index 1ed8148d4c..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/sample-rate-frag-coord.force-sample.frag +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(texture2d tex [[texture(0)]], sampler texSmplr [[sampler(0)]], float4 gl_FragCoord [[position]], uint gl_SampleID [[sample_id]]) -{ - main0_out out = {}; - gl_FragCoord.xy += get_sample_position(gl_SampleID) - 0.5; - out.FragColor = tex.sample(texSmplr, gl_FragCoord.xy); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/sampler-1d-lod.1d-as-2d.frag b/third_party/spirv-cross/reference/shaders-msl/frag/sampler-1d-lod.1d-as-2d.frag deleted file mode 100644 index 70278b1290..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/sampler-1d-lod.1d-as-2d.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float vTex [[user(locn0), flat]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texture2d uSampler [[texture(0)]], sampler uSamplerSmplr [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor += ((uSampler.sample(uSamplerSmplr, float2(in.vTex, 0.5), bias(2.0)) + uSampler.sample(uSamplerSmplr, float2(in.vTex, 0.5), level(3.0))) + uSampler.sample(uSamplerSmplr, float2(in.vTex, 0.5), gradient2d(5.0, 8.0))); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/sampler-1d-lod.frag b/third_party/spirv-cross/reference/shaders-msl/frag/sampler-1d-lod.frag deleted file mode 100644 index 96914f8056..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/sampler-1d-lod.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float vTex [[user(locn0), flat]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texture1d uSampler [[texture(0)]], sampler uSamplerSmplr [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor += ((uSampler.sample(uSamplerSmplr, in.vTex) + uSampler.sample(uSamplerSmplr, in.vTex)) + uSampler.sample(uSamplerSmplr, in.vTex)); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/sampler-compare-bias.msl23.1d-as-2d.frag b/third_party/spirv-cross/reference/shaders-msl/frag/sampler-compare-bias.msl23.1d-as-2d.frag deleted file mode 100644 index 6aaffe532b..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/sampler-compare-bias.msl23.1d-as-2d.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -struct main0_in -{ - float3 vUV [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], depth2d_array uTex [[texture(0)]], sampler uShadow [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor = uTex.sample_compare(uShadow, float2(in.vUV.x, 0.5), uint(round(in.vUV.y)), in.vUV.z, bias(1.0)); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/sampler-compare-cascade-gradient.frag b/third_party/spirv-cross/reference/shaders-msl/frag/sampler-compare-cascade-gradient.frag deleted file mode 100644 index 630511b34b..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/sampler-compare-cascade-gradient.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 vUV [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], depth2d_array uTex [[texture(0)]], sampler uShadow [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor = uTex.sample_compare(uShadow, in.vUV.xy, uint(round(in.vUV.z)), in.vUV.w, level(0)); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/sampler-compare-cascade-gradient.ios.frag b/third_party/spirv-cross/reference/shaders-msl/frag/sampler-compare-cascade-gradient.ios.frag deleted file mode 100644 index a29ebf08b5..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/sampler-compare-cascade-gradient.ios.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 vUV [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], depth2d_array uTex [[texture(0)]], sampler uShadow [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor = uTex.sample_compare(uShadow, in.vUV.xy, uint(round(in.vUV.z)), in.vUV.w, gradient2d(float2(0.0), float2(0.0))); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/sampler-compare-cascade-gradient.msl23.frag b/third_party/spirv-cross/reference/shaders-msl/frag/sampler-compare-cascade-gradient.msl23.frag deleted file mode 100644 index 0784569194..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/sampler-compare-cascade-gradient.msl23.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 vUV [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], depth2d_array uTex [[texture(0)]], sampler uShadow [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor = uTex.sample_compare(uShadow, in.vUV.xy, uint(round(in.vUV.z)), in.vUV.w, level(0)) + uTex.sample_compare(uShadow, in.vUV.xy, uint(round(in.vUV.z)), in.vUV.w, gradient2d(float2(1.0), float2(1.0))); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/sampler-image-arrays.msl2.frag b/third_party/spirv-cross/reference/shaders-msl/frag/sampler-image-arrays.msl2.frag deleted file mode 100644 index dec6d051ae..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/sampler-image-arrays.msl2.frag +++ /dev/null @@ -1,48 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float2 vTex [[user(locn0), flat]]; - int vIndex [[user(locn1)]]; -}; - -static inline __attribute__((always_inline)) -float4 sample_from_global(thread int& vIndex, thread float2& vTex, thread const array, 4> uSampler, thread const array uSamplerSmplr) -{ - return uSampler[vIndex].sample(uSamplerSmplr[vIndex], (vTex + float2(0.100000001490116119384765625))); -} - -static inline __attribute__((always_inline)) -float4 sample_from_argument(thread const array, 4> samplers, thread const array samplersSmplr, thread int& vIndex, thread float2& vTex) -{ - return samplers[vIndex].sample(samplersSmplr[vIndex], (vTex + float2(0.20000000298023223876953125))); -} - -static inline __attribute__((always_inline)) -float4 sample_single_from_argument(thread const texture2d samp, thread const sampler sampSmplr, thread float2& vTex) -{ - return samp.sample(sampSmplr, (vTex + float2(0.300000011920928955078125))); -} - -fragment main0_out main0(main0_in in [[stage_in]], array, 4> uSampler [[texture(0)]], array, 4> uTextures [[texture(4)]], array uSamplerSmplr [[sampler(0)]], array uSamplers [[sampler(4)]]) -{ - main0_out out = {}; - out.FragColor = float4(0.0); - out.FragColor += uTextures[2].sample(uSamplers[1], in.vTex); - out.FragColor += uSampler[in.vIndex].sample(uSamplerSmplr[in.vIndex], in.vTex); - out.FragColor += sample_from_global(in.vIndex, in.vTex, uSampler, uSamplerSmplr); - out.FragColor += sample_from_argument(uSampler, uSamplerSmplr, in.vIndex, in.vTex); - out.FragColor += sample_single_from_argument(uSampler[3], uSamplerSmplr[3], in.vTex); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/sampler-ms.frag b/third_party/spirv-cross/reference/shaders-msl/frag/sampler-ms.frag deleted file mode 100644 index 1ceb3f96bd..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/sampler-ms.frag +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(texture2d_ms uSampler [[texture(0)]], sampler uSamplerSmplr [[sampler(0)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - int2 coord = int2(gl_FragCoord.xy); - out.FragColor = ((uSampler.read(uint2(coord), 0) + uSampler.read(uint2(coord), 1)) + uSampler.read(uint2(coord), 2)) + uSampler.read(uint2(coord), 3); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/sampler.frag b/third_party/spirv-cross/reference/shaders-msl/frag/sampler.frag deleted file mode 100644 index 6484161b69..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/sampler.frag +++ /dev/null @@ -1,32 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 vColor [[user(locn0)]]; - float2 vTex [[user(locn1)]]; -}; - -static inline __attribute__((always_inline)) -float4 sample_texture(thread const texture2d tex, thread const sampler texSmplr, thread const float2& uv) -{ - return tex.sample(texSmplr, uv); -} - -fragment main0_out main0(main0_in in [[stage_in]], texture2d uTex [[texture(0)]], sampler uTexSmplr [[sampler(0)]]) -{ - main0_out out = {}; - float2 param = in.vTex; - out.FragColor = in.vColor * sample_texture(uTex, uTexSmplr, param); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/scalar-refract-reflect.frag b/third_party/spirv-cross/reference/shaders-msl/frag/scalar-refract-reflect.frag deleted file mode 100644 index 592d445810..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/scalar-refract-reflect.frag +++ /dev/null @@ -1,49 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -struct main0_in -{ - float3 vRefract [[user(locn0)]]; -}; - -template -inline T spvReflect(T i, T n) -{ - return i - T(2) * i * n * n; -} - -template -inline T spvRefract(T i, T n, T eta) -{ - T NoI = n * i; - T NoI2 = NoI * NoI; - T k = T(1) - eta * eta * (T(1) - NoI2); - if (k < T(0)) - { - return T(0); - } - else - { - return eta * i - (eta * NoI + sqrt(k)) * n; - } -} - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.FragColor = spvRefract(in.vRefract.x, in.vRefract.y, in.vRefract.z); - out.FragColor += spvReflect(in.vRefract.x, in.vRefract.y); - out.FragColor += refract(in.vRefract.xy, in.vRefract.yz, in.vRefract.z).y; - out.FragColor += reflect(in.vRefract.xy, in.vRefract.zy).y; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/separate-image-sampler-argument.frag b/third_party/spirv-cross/reference/shaders-msl/frag/separate-image-sampler-argument.frag deleted file mode 100644 index d196243d4b..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/separate-image-sampler-argument.frag +++ /dev/null @@ -1,25 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -static inline __attribute__((always_inline)) -float4 samp(thread const texture2d t, thread const sampler s) -{ - return t.sample(s, float2(0.5)); -} - -fragment main0_out main0(texture2d uDepth [[texture(0)]], sampler uSampler [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor = samp(uDepth, uSampler); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/shader-arithmetic-8bit.frag b/third_party/spirv-cross/reference/shaders-msl/frag/shader-arithmetic-8bit.frag deleted file mode 100644 index e9694aa196..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/shader-arithmetic-8bit.frag +++ /dev/null @@ -1,102 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct SSBO -{ - char i8[16]; - uchar u8[16]; -}; - -struct Push -{ - char i8; - uchar u8; -}; - -struct UBO -{ - char i8; - uchar u8; -}; - -struct main0_out -{ - int4 FragColorInt [[color(0)]]; - uint4 FragColorUint [[color(1)]]; -}; - -struct main0_in -{ - int4 vColor [[user(locn0)]]; -}; - -static inline __attribute__((always_inline)) -void packing_int8(device SSBO& ssbo) -{ - short i16 = short(10); - int i32 = 20; - char2 i8_2 = as_type(i16); - char4 i8_4 = as_type(i32); - i16 = as_type(i8_2); - i32 = as_type(i8_4); - ssbo.i8[0] = i8_4.x; - ssbo.i8[1] = i8_4.y; - ssbo.i8[2] = i8_4.z; - ssbo.i8[3] = i8_4.w; -} - -static inline __attribute__((always_inline)) -void packing_uint8(device SSBO& ssbo) -{ - ushort u16 = ushort(10); - uint u32 = 20u; - uchar2 u8_2 = as_type(u16); - uchar4 u8_4 = as_type(u32); - u16 = as_type(u8_2); - u32 = as_type(u8_4); - ssbo.u8[0] = u8_4.x; - ssbo.u8[1] = u8_4.y; - ssbo.u8[2] = u8_4.z; - ssbo.u8[3] = u8_4.w; -} - -static inline __attribute__((always_inline)) -void compute_int8(device SSBO& ssbo, thread int4& vColor, constant Push& registers, constant UBO& ubo, thread int4& FragColorInt) -{ - char4 tmp = char4(vColor); - tmp += char4(registers.i8); - tmp += char4(char(-40)); - tmp += char4(-50); - tmp += char4(char(10), char(20), char(30), char(40)); - tmp += char4(ssbo.i8[4]); - tmp += char4(ubo.i8); - FragColorInt = int4(tmp); -} - -static inline __attribute__((always_inline)) -void compute_uint8(device SSBO& ssbo, thread int4& vColor, constant Push& registers, constant UBO& ubo, thread uint4& FragColorUint) -{ - uchar4 tmp = uchar4(char4(vColor)); - tmp += uchar4(registers.u8); - tmp += uchar4(uchar(216)); - tmp += uchar4(206); - tmp += uchar4(uchar(10), uchar(20), uchar(30), uchar(40)); - tmp += uchar4(ssbo.u8[4]); - tmp += uchar4(ubo.u8); - FragColorUint = uint4(tmp); -} - -fragment main0_out main0(main0_in in [[stage_in]], device SSBO& ssbo [[buffer(0)]], constant Push& registers [[buffer(1)]], constant UBO& ubo [[buffer(2)]]) -{ - main0_out out = {}; - packing_int8(ssbo); - packing_uint8(ssbo); - compute_int8(ssbo, in.vColor, registers, ubo, out.FragColorInt); - compute_uint8(ssbo, in.vColor, registers, ubo, out.FragColorUint); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/spec-constant-block-size.frag b/third_party/spirv-cross/reference/shaders-msl/frag/spec-constant-block-size.frag deleted file mode 100644 index 36456b814b..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/spec-constant-block-size.frag +++ /dev/null @@ -1,32 +0,0 @@ -#include -#include - -using namespace metal; - -#ifndef SPIRV_CROSS_CONSTANT_ID_10 -#define SPIRV_CROSS_CONSTANT_ID_10 2 -#endif -constant int Value = SPIRV_CROSS_CONSTANT_ID_10; - -struct SpecConstArray -{ - float4 samples[Value]; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - int Index [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], constant SpecConstArray& _15 [[buffer(0)]]) -{ - main0_out out = {}; - out.FragColor = _15.samples[in.Index]; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/spec-constant-ternary.frag b/third_party/spirv-cross/reference/shaders-msl/frag/spec-constant-ternary.frag deleted file mode 100644 index 059006509a..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/spec-constant-ternary.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -constant uint s_tmp [[function_constant(0)]]; -constant uint s = is_function_constant_defined(s_tmp) ? s_tmp : 10u; -constant bool _13 = (s > 20u); -constant uint f = _13 ? 30u : 50u; - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - out.FragColor = float(f); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/stencil-export.msl21.frag b/third_party/spirv-cross/reference/shaders-msl/frag/stencil-export.msl21.frag deleted file mode 100644 index f3629e18be..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/stencil-export.msl21.frag +++ /dev/null @@ -1,30 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 MRT0 [[color(0)]]; - float4 MRT1 [[color(1)]]; - uint gl_FragStencilRefARB [[stencil]]; -}; - -static inline __attribute__((always_inline)) -void update_stencil(thread uint& gl_FragStencilRefARB) -{ - gl_FragStencilRefARB = uint(int(gl_FragStencilRefARB) + 10); -} - -fragment main0_out main0() -{ - main0_out out = {}; - out.MRT0 = float4(1.0); - out.MRT1 = float4(1.0, 0.0, 1.0, 1.0); - out.gl_FragStencilRefARB = uint(100); - update_stencil(out.gl_FragStencilRefARB); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/subgroup-builtins.msl22.frag b/third_party/spirv-cross/reference/shaders-msl/frag/subgroup-builtins.msl22.frag deleted file mode 100644 index 03a536f0c6..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/subgroup-builtins.msl22.frag +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - uint2 FragColor [[color(0)]]; -}; - -fragment main0_out main0(uint gl_SubgroupSize [[threads_per_simdgroup]], uint gl_SubgroupInvocationID [[thread_index_in_simdgroup]]) -{ - main0_out out = {}; - out.FragColor.x = gl_SubgroupSize; - out.FragColor.y = gl_SubgroupInvocationID; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/subgroup-globals-extract.msl22.frag b/third_party/spirv-cross/reference/shaders-msl/frag/subgroup-globals-extract.msl22.frag deleted file mode 100644 index ccd83bb50b..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/subgroup-globals-extract.msl22.frag +++ /dev/null @@ -1,86 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - uint2 FragColor [[color(0)]]; -}; - -inline uint spvSubgroupBallotFindLSB(uint4 ballot, uint gl_SubgroupSize) -{ - uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, min(gl_SubgroupSize, 32u)), extract_bits(0xFFFFFFFF, 0, (uint)max((int)gl_SubgroupSize - 32, 0)), uint2(0)); - ballot &= mask; - return select(ctz(ballot.x), select(32 + ctz(ballot.y), select(64 + ctz(ballot.z), select(96 + ctz(ballot.w), uint(-1), ballot.w == 0), ballot.z == 0), ballot.y == 0), ballot.x == 0); -} - -inline uint spvSubgroupBallotFindMSB(uint4 ballot, uint gl_SubgroupSize) -{ - uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, min(gl_SubgroupSize, 32u)), extract_bits(0xFFFFFFFF, 0, (uint)max((int)gl_SubgroupSize - 32, 0)), uint2(0)); - ballot &= mask; - return select(128 - (clz(ballot.w) + 1), select(96 - (clz(ballot.z) + 1), select(64 - (clz(ballot.y) + 1), select(32 - (clz(ballot.x) + 1), uint(-1), ballot.x == 0), ballot.y == 0), ballot.z == 0), ballot.w == 0); -} - -inline uint spvPopCount4(uint4 ballot) -{ - return popcount(ballot.x) + popcount(ballot.y) + popcount(ballot.z) + popcount(ballot.w); -} - -inline uint spvSubgroupBallotBitCount(uint4 ballot, uint gl_SubgroupSize) -{ - uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, min(gl_SubgroupSize, 32u)), extract_bits(0xFFFFFFFF, 0, (uint)max((int)gl_SubgroupSize - 32, 0)), uint2(0)); - return spvPopCount4(ballot & mask); -} - -inline uint spvSubgroupBallotInclusiveBitCount(uint4 ballot, uint gl_SubgroupInvocationID) -{ - uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, min(gl_SubgroupInvocationID + 1, 32u)), extract_bits(0xFFFFFFFF, 0, (uint)max((int)gl_SubgroupInvocationID + 1 - 32, 0)), uint2(0)); - return spvPopCount4(ballot & mask); -} - -inline uint spvSubgroupBallotExclusiveBitCount(uint4 ballot, uint gl_SubgroupInvocationID) -{ - uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, min(gl_SubgroupInvocationID, 32u)), extract_bits(0xFFFFFFFF, 0, (uint)max((int)gl_SubgroupInvocationID - 32, 0)), uint2(0)); - return spvPopCount4(ballot & mask); -} - -static inline __attribute__((always_inline)) -uint sub1(thread uint& gl_SubgroupSize) -{ - return spvSubgroupBallotFindLSB(uint4(1u, 2u, 3u, 4u), gl_SubgroupSize); -} - -static inline __attribute__((always_inline)) -uint sub2(thread uint& gl_SubgroupSize) -{ - return spvSubgroupBallotFindMSB(uint4(1u, 2u, 3u, 4u), gl_SubgroupSize); -} - -static inline __attribute__((always_inline)) -uint sub3(thread uint& gl_SubgroupSize) -{ - return spvSubgroupBallotBitCount(uint4(1u, 2u, 3u, 4u), gl_SubgroupSize); -} - -static inline __attribute__((always_inline)) -uint sub4(thread uint& gl_SubgroupInvocationID) -{ - return spvSubgroupBallotInclusiveBitCount(uint4(1u, 2u, 3u, 4u), gl_SubgroupInvocationID); -} - -static inline __attribute__((always_inline)) -uint sub5(thread uint& gl_SubgroupInvocationID) -{ - return spvSubgroupBallotExclusiveBitCount(uint4(1u, 2u, 3u, 4u), gl_SubgroupInvocationID); -} - -fragment main0_out main0(uint gl_SubgroupInvocationID [[thread_index_in_simdgroup]], uint gl_SubgroupSize [[threads_per_simdgroup]]) -{ - main0_out out = {}; - out.FragColor.x = (((sub1(gl_SubgroupSize) + sub2(gl_SubgroupSize)) + sub3(gl_SubgroupSize)) + sub4(gl_SubgroupInvocationID)) + sub5(gl_SubgroupInvocationID); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/switch-unsigned-case.frag b/third_party/spirv-cross/reference/shaders-msl/frag/switch-unsigned-case.frag deleted file mode 100644 index 4cd2b6852a..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/switch-unsigned-case.frag +++ /dev/null @@ -1,35 +0,0 @@ -#include -#include - -using namespace metal; - -struct Buff -{ - uint TestVal; -}; - -struct main0_out -{ - float4 fsout_Color [[color(0)]]; -}; - -fragment main0_out main0(constant Buff& _15 [[buffer(0)]]) -{ - main0_out out = {}; - out.fsout_Color = float4(1.0); - switch (_15.TestVal) - { - case 0u: - { - out.fsout_Color = float4(0.100000001490116119384765625); - break; - } - case 1u: - { - out.fsout_Color = float4(0.20000000298023223876953125); - break; - } - } - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/swizzle.frag b/third_party/spirv-cross/reference/shaders-msl/frag/swizzle.frag deleted file mode 100644 index 7a0494e064..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/swizzle.frag +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float3 vNormal [[user(locn1)]]; - float2 vUV [[user(locn2)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texture2d samp [[texture(0)]], sampler sampSmplr [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor = float4(samp.sample(sampSmplr, in.vUV).xyz, 1.0); - out.FragColor = float4(samp.sample(sampSmplr, in.vUV).xz, 1.0, 4.0); - out.FragColor = float4(samp.sample(sampSmplr, in.vUV).xx, samp.sample(sampSmplr, (in.vUV + float2(0.100000001490116119384765625))).yy); - out.FragColor = float4(in.vNormal, 1.0); - out.FragColor = float4(in.vNormal + float3(1.7999999523162841796875), 1.0); - out.FragColor = float4(in.vUV, in.vUV + float2(1.7999999523162841796875)); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/texel-fetch-offset.1d-as-2d.frag b/third_party/spirv-cross/reference/shaders-msl/frag/texel-fetch-offset.1d-as-2d.frag deleted file mode 100644 index 98b9bb7ef8..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/texel-fetch-offset.1d-as-2d.frag +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(texture2d uTexture [[texture(0)]], texture2d uTexture2 [[texture(1)]], sampler uTextureSmplr [[sampler(0)]], sampler uTexture2Smplr [[sampler(1)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - out.FragColor = uTexture.read(uint2(int2(gl_FragCoord.xy)) + uint2(int2(1)), 0); - out.FragColor += uTexture2.read(uint2(uint(int(gl_FragCoord.x)), 0) + uint2(uint(-1), 0), 0); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/texel-fetch-offset.frag b/third_party/spirv-cross/reference/shaders-msl/frag/texel-fetch-offset.frag deleted file mode 100644 index 4d4301e1ca..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/texel-fetch-offset.frag +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(texture2d uTexture [[texture(0)]], sampler uTextureSmplr [[sampler(0)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - out.FragColor = uTexture.read(uint2(int2(gl_FragCoord.xy)) + uint2(int2(1)), 0); - out.FragColor += uTexture.read(uint2(int2(gl_FragCoord.xy)) + uint2(int2(-1, 1)), 0); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/texture-cube-array.frag b/third_party/spirv-cross/reference/shaders-msl/frag/texture-cube-array.frag deleted file mode 100644 index 9f1832ec04..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/texture-cube-array.frag +++ /dev/null @@ -1,25 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 vUV [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texturecube cubeSampler [[texture(0)]], texturecube_array cubeArraySampler [[texture(1)]], texture2d_array texArraySampler [[texture(2)]], sampler cubeSamplerSmplr [[sampler(0)]], sampler cubeArraySamplerSmplr [[sampler(1)]], sampler texArraySamplerSmplr [[sampler(2)]]) -{ - main0_out out = {}; - float4 a = cubeSampler.sample(cubeSamplerSmplr, in.vUV.xyz); - float4 b = cubeArraySampler.sample(cubeArraySamplerSmplr, in.vUV.xyz, uint(round(in.vUV.w))); - float4 c = texArraySampler.sample(texArraySamplerSmplr, in.vUV.xyz.xy, uint(round(in.vUV.xyz.z))); - out.FragColor = (a + b) + c; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/texture-cube-array.ios.emulate-cube-array.frag b/third_party/spirv-cross/reference/shaders-msl/frag/texture-cube-array.ios.emulate-cube-array.frag deleted file mode 100644 index 3c4d0adb51..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/texture-cube-array.ios.emulate-cube-array.frag +++ /dev/null @@ -1,61 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 vUV [[user(locn0)]]; -}; - -static inline __attribute__((always_inline)) -float3 spvCubemapTo2DArrayFace(float3 P) -{ - float3 Coords = abs(P.xyz); - float CubeFace = 0; - float ProjectionAxis = 0; - float u = 0; - float v = 0; - if (Coords.x >= Coords.y && Coords.x >= Coords.z) - { - CubeFace = P.x >= 0 ? 0 : 1; - ProjectionAxis = Coords.x; - u = P.x >= 0 ? -P.z : P.z; - v = -P.y; - } - else if (Coords.y >= Coords.x && Coords.y >= Coords.z) - { - CubeFace = P.y >= 0 ? 2 : 3; - ProjectionAxis = Coords.y; - u = P.x; - v = P.y >= 0 ? P.z : -P.z; - } - else - { - CubeFace = P.z >= 0 ? 4 : 5; - ProjectionAxis = Coords.z; - u = P.z >= 0 ? P.x : -P.x; - v = -P.y; - } - u = 0.5 * (u/ProjectionAxis + 1); - v = 0.5 * (v/ProjectionAxis + 1); - return float3(u, v, CubeFace); -} - -fragment main0_out main0(main0_in in [[stage_in]], texturecube cubeSampler [[texture(0)]], texture2d_array cubeArraySampler [[texture(1)]], texture2d_array texArraySampler [[texture(2)]], sampler cubeSamplerSmplr [[sampler(0)]], sampler cubeArraySamplerSmplr [[sampler(1)]], sampler texArraySamplerSmplr [[sampler(2)]]) -{ - main0_out out = {}; - float4 a = cubeSampler.sample(cubeSamplerSmplr, in.vUV.xyz); - float4 b = cubeArraySampler.sample(cubeArraySamplerSmplr, spvCubemapTo2DArrayFace(in.vUV.xyz).xy, uint(spvCubemapTo2DArrayFace(in.vUV.xyz).z) + (uint(round(in.vUV.w)) * 6u)); - float4 c = texArraySampler.sample(texArraySamplerSmplr, in.vUV.xyz.xy, uint(round(in.vUV.xyz.z))); - out.FragColor = (a + b) + c; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/texture-multisample-array.msl21.frag b/third_party/spirv-cross/reference/shaders-msl/frag/texture-multisample-array.msl21.frag deleted file mode 100644 index ed1e81f3e8..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/texture-multisample-array.msl21.frag +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - int3 vCoord [[user(locn0)]]; - int vSample [[user(locn1)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], texture2d_ms_array uTexture [[texture(0)]], sampler uTextureSmplr [[sampler(0)]]) -{ - main0_out out = {}; - out.FragColor = uTexture.read(uint2(in.vCoord.xy), uint(in.vCoord.z), in.vSample); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/texture-proj-shadow.frag b/third_party/spirv-cross/reference/shaders-msl/frag/texture-proj-shadow.frag deleted file mode 100644 index 52d4a026d2..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/texture-proj-shadow.frag +++ /dev/null @@ -1,29 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float FragColor [[color(0)]]; -}; - -struct main0_in -{ - float3 vClip3 [[user(locn0)]]; - float4 vClip4 [[user(locn1)]]; - float2 vClip2 [[user(locn2)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], depth2d uShadow2D [[texture(0)]], texture1d uSampler1D [[texture(1)]], texture2d uSampler2D [[texture(2)]], texture3d uSampler3D [[texture(3)]], sampler uShadow2DSmplr [[sampler(0)]], sampler uSampler1DSmplr [[sampler(1)]], sampler uSampler2DSmplr [[sampler(2)]], sampler uSampler3DSmplr [[sampler(3)]]) -{ - main0_out out = {}; - float4 _20 = in.vClip4; - _20.z = in.vClip4.w; - out.FragColor = uShadow2D.sample_compare(uShadow2DSmplr, _20.xy / _20.z, in.vClip4.z / _20.z); - out.FragColor = uSampler1D.sample(uSampler1DSmplr, in.vClip2.x / in.vClip2.y).x; - out.FragColor = uSampler2D.sample(uSampler2DSmplr, in.vClip3.xy / in.vClip3.z).x; - out.FragColor = uSampler3D.sample(uSampler3DSmplr, in.vClip4.xyz / in.vClip4.w).x; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/ubo_layout.frag b/third_party/spirv-cross/reference/shaders-msl/frag/ubo_layout.frag deleted file mode 100644 index 4ca603d643..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/ubo_layout.frag +++ /dev/null @@ -1,37 +0,0 @@ -#include -#include - -using namespace metal; - -struct Str -{ - float4x4 foo; -}; - -struct UBO1 -{ - Str foo; -}; - -struct Str_1 -{ - float4x4 foo; -}; - -struct UBO2 -{ - Str_1 foo; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0(constant UBO1& ubo1 [[buffer(0)]], constant UBO2& ubo0 [[buffer(1)]]) -{ - main0_out out = {}; - out.FragColor = float4(ubo1.foo.foo[0][0], ubo1.foo.foo[1][0], ubo1.foo.foo[2][0], ubo1.foo.foo[3][0]) + ubo0.foo.foo[0]; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/unary-enclose.frag b/third_party/spirv-cross/reference/shaders-msl/frag/unary-enclose.frag deleted file mode 100644 index c33269f2bf..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/unary-enclose.frag +++ /dev/null @@ -1,26 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 vIn [[user(locn0)]]; - int4 vIn1 [[user(locn1)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.FragColor = -(-in.vIn); - int4 a = ~(~in.vIn1); - bool b = false; - b = !(!b); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/vecsize-mismatch.shader-inputs.frag b/third_party/spirv-cross/reference/shaders-msl/frag/vecsize-mismatch.shader-inputs.frag deleted file mode 100644 index 6116deab6d..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/vecsize-mismatch.shader-inputs.frag +++ /dev/null @@ -1,75 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - ushort2 a [[user(locn0)]]; - uint3 b [[user(locn1)]]; - ushort c_0 [[user(locn2)]]; - ushort c_1 [[user(locn3)]]; - uint4 e_0 [[user(locn4)]]; - uint4 e_1 [[user(locn5)]]; - float4 d [[user(locn6)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - spvUnsafeArray c = {}; - spvUnsafeArray e = {}; - c[0] = in.c_0; - c[1] = in.c_1; - e[0] = in.e_0; - e[1] = in.e_1; - out.FragColor = float4(float(int(in.a.x)), float(in.b.x), float2(float(uint(c[1])), float(e[0].w)) + in.d.xy); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/frag/write-depth-in-function.frag b/third_party/spirv-cross/reference/shaders-msl/frag/write-depth-in-function.frag deleted file mode 100644 index c3ab221fc3..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/frag/write-depth-in-function.frag +++ /dev/null @@ -1,27 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float FragColor [[color(0)]]; - float gl_FragDepth [[depth(any)]]; -}; - -static inline __attribute__((always_inline)) -void set_output_depth(thread float& gl_FragDepth) -{ - gl_FragDepth = 0.20000000298023223876953125; -} - -fragment main0_out main0() -{ - main0_out out = {}; - out.FragColor = 1.0; - set_output_depth(out.gl_FragDepth); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/intel/shader-integer-functions2.asm.comp b/third_party/spirv-cross/reference/shaders-msl/intel/shader-integer-functions2.asm.comp deleted file mode 100644 index 1e5d889d46..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/intel/shader-integer-functions2.asm.comp +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include - -using namespace metal; - -struct foo -{ - uint a; - uint b; - int c; - int d; -}; - -kernel void main0(device foo& _4 [[buffer(0)]]) -{ - _4.a = clz(_4.a); - _4.a = ctz(_4.a); - _4.a = absdiff(_4.c, _4.d); - _4.a = absdiff(_4.a, _4.b); - _4.c = addsat(_4.c, _4.d); - _4.a = addsat(_4.a, _4.b); - _4.c = hadd(_4.c, _4.d); - _4.a = hadd(_4.a, _4.b); - _4.c = rhadd(_4.c, _4.d); - _4.a = rhadd(_4.a, _4.b); - _4.c = subsat(_4.c, _4.d); - _4.a = subsat(_4.a, _4.b); - _4.c = int(short(_4.c)) * int(short(_4.d)); - _4.a = uint(ushort(_4.a)) * uint(ushort(_4.b)); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/legacy/vert/transpose.legacy.vert b/third_party/spirv-cross/reference/shaders-msl/legacy/vert/transpose.legacy.vert deleted file mode 100644 index 3837c8bc04..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/legacy/vert/transpose.legacy.vert +++ /dev/null @@ -1,33 +0,0 @@ -#include -#include - -using namespace metal; - -struct Buffer -{ - float4x4 MVPRowMajor; - float4x4 MVPColMajor; - float4x4 M; -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 Position [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant Buffer& _13 [[buffer(0)]]) -{ - main0_out out = {}; - float4 c0 = _13.M * (in.Position * _13.MVPRowMajor); - float4 c1 = _13.M * (_13.MVPColMajor * in.Position); - float4 c2 = _13.M * (_13.MVPRowMajor * in.Position); - float4 c3 = _13.M * (in.Position * _13.MVPColMajor); - out.gl_Position = ((c0 + c1) + c2) + c3; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/masking/copy-arrays.mask-location-0.msl2.multi-patch.tesc b/third_party/spirv-cross/reference/shaders-msl/masking/copy-arrays.mask-location-0.msl2.multi-patch.tesc deleted file mode 100644 index 406feed975..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/masking/copy-arrays.mask-location-0.msl2.multi-patch.tesc +++ /dev/null @@ -1,188 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 gl_Position; -}; - -struct main0_patchOut -{ - spvUnsafeArray pFoo; -}; - -struct main0_in -{ - spvUnsafeArray iFoo; - float4 ipFoo; -}; - -template -inline void spvArrayCopyFromConstantToStack1(thread T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromConstantToThreadGroup1(threadgroup T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToStack1(thread T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToThreadGroup1(threadgroup T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToStack1(thread T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToThreadGroup1(threadgroup T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToDevice1(device T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromConstantToDevice1(device T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToDevice1(device T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToDevice1(device T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToStack1(thread T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToThreadGroup1(threadgroup T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], device main0_in* spvIn [[buffer(22)]]) -{ - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - threadgroup float4 spvStorageFoo[8][4][2]; - threadgroup float4 (&Foo)[4][2] = spvStorageFoo[(gl_GlobalInvocationID.x / 4) % 8]; - device main0_patchOut& patchOut = spvPatchOut[gl_GlobalInvocationID.x / 4]; - device main0_in* gl_in = &spvIn[min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1) * spvIndirectParams[0]]; - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - gl_out[gl_InvocationID].gl_Position = float4(1.0); - spvArrayCopyFromDeviceToThreadGroup1(Foo[gl_InvocationID], gl_in[gl_InvocationID].iFoo.elements); - if (gl_InvocationID == 0) - { - spvUnsafeArray _56 = spvUnsafeArray({ gl_in[0].ipFoo, gl_in[1].ipFoo }); - patchOut.pFoo = _56; - } -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/masking/copy-arrays.mask-location-0.msl2.tesc b/third_party/spirv-cross/reference/shaders-msl/masking/copy-arrays.mask-location-0.msl2.tesc deleted file mode 100644 index e9dd68dc37..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/masking/copy-arrays.mask-location-0.msl2.tesc +++ /dev/null @@ -1,191 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 gl_Position; -}; - -struct main0_patchOut -{ - spvUnsafeArray pFoo; -}; - -struct main0_in -{ - float4 iFoo_0 [[attribute(0)]]; - float4 iFoo_1 [[attribute(1)]]; - float4 ipFoo [[attribute(2)]]; -}; - -template -inline void spvArrayCopyFromConstantToStack1(thread T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromConstantToThreadGroup1(threadgroup T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToStack1(thread T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToThreadGroup1(threadgroup T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToStack1(thread T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToThreadGroup1(threadgroup T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToDevice1(device T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromConstantToDevice1(device T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToDevice1(device T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToDevice1(device T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToStack1(thread T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToThreadGroup1(threadgroup T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -kernel void main0(main0_in in [[stage_in]], uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], threadgroup main0_in* gl_in [[threadgroup(0)]]) -{ - threadgroup float4 Foo[4][2]; - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - if (gl_InvocationID < spvIndirectParams[0]) - gl_in[gl_InvocationID] = in; - threadgroup_barrier(mem_flags::mem_threadgroup); - if (gl_InvocationID >= 4) - return; - gl_out[gl_InvocationID].gl_Position = float4(1.0); - spvUnsafeArray _38 = spvUnsafeArray({ gl_in[gl_InvocationID].iFoo_0, gl_in[gl_InvocationID].iFoo_1 }); - spvArrayCopyFromStackToThreadGroup1(Foo[gl_InvocationID], _38.elements); - if (gl_InvocationID == 0) - { - spvUnsafeArray _56 = spvUnsafeArray({ gl_in[0].ipFoo, gl_in[1].ipFoo }); - patchOut.pFoo = _56; - } -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/masking/copy-arrays.mask-location-1.msl2.multi-patch.tesc b/third_party/spirv-cross/reference/shaders-msl/masking/copy-arrays.mask-location-1.msl2.multi-patch.tesc deleted file mode 100644 index abc95ca899..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/masking/copy-arrays.mask-location-1.msl2.multi-patch.tesc +++ /dev/null @@ -1,79 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - spvUnsafeArray Foo; - float4 gl_Position; -}; - -struct main0_patchOut -{ - spvUnsafeArray pFoo; -}; - -struct main0_in -{ - spvUnsafeArray iFoo; - float4 ipFoo; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], device main0_in* spvIn [[buffer(22)]]) -{ - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - device main0_patchOut& patchOut = spvPatchOut[gl_GlobalInvocationID.x / 4]; - device main0_in* gl_in = &spvIn[min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1) * spvIndirectParams[0]]; - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - gl_out[gl_InvocationID].gl_Position = float4(1.0); - gl_out[gl_InvocationID].Foo = gl_in[gl_InvocationID].iFoo; - if (gl_InvocationID == 0) - { - spvUnsafeArray _56 = spvUnsafeArray({ gl_in[0].ipFoo, gl_in[1].ipFoo }); - patchOut.pFoo = _56; - } -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/masking/copy-arrays.mask-location-1.msl2.tesc b/third_party/spirv-cross/reference/shaders-msl/masking/copy-arrays.mask-location-1.msl2.tesc deleted file mode 100644 index 3da1d18c61..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/masking/copy-arrays.mask-location-1.msl2.tesc +++ /dev/null @@ -1,83 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - spvUnsafeArray Foo; - float4 gl_Position; -}; - -struct main0_patchOut -{ - spvUnsafeArray pFoo; -}; - -struct main0_in -{ - float4 iFoo_0 [[attribute(0)]]; - float4 iFoo_1 [[attribute(1)]]; - float4 ipFoo [[attribute(2)]]; -}; - -kernel void main0(main0_in in [[stage_in]], uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], threadgroup main0_in* gl_in [[threadgroup(0)]]) -{ - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - if (gl_InvocationID < spvIndirectParams[0]) - gl_in[gl_InvocationID] = in; - threadgroup_barrier(mem_flags::mem_threadgroup); - if (gl_InvocationID >= 4) - return; - gl_out[gl_InvocationID].gl_Position = float4(1.0); - spvUnsafeArray _38 = spvUnsafeArray({ gl_in[gl_InvocationID].iFoo_0, gl_in[gl_InvocationID].iFoo_1 }); - gl_out[gl_InvocationID].Foo = _38; - if (gl_InvocationID == 0) - { - spvUnsafeArray _56 = spvUnsafeArray({ gl_in[0].ipFoo, gl_in[1].ipFoo }); - patchOut.pFoo = _56; - } -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs-block.mask-location-0.for-tess.vert b/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs-block.mask-location-0.for-tess.vert deleted file mode 100644 index f7b1acb576..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs-block.mask-location-0.for-tess.vert +++ /dev/null @@ -1,35 +0,0 @@ -#include -#include - -using namespace metal; - -struct V -{ - float4 a; - float4 b; - float4 c; - float4 d; -}; - -struct main0_out -{ - float4 V_b; - float4 V_c; - float4 V_d; - float4 gl_Position; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint3 spvStageInputSize [[grid_size]], device main0_out* spvOut [[buffer(28)]]) -{ - V _22 = {}; - device main0_out& out = spvOut[gl_GlobalInvocationID.y * spvStageInputSize.x + gl_GlobalInvocationID.x]; - if (any(gl_GlobalInvocationID >= spvStageInputSize)) - return; - out.gl_Position = float4(1.0); - _22.a = float4(2.0); - _22.b = float4(3.0); - out.V_b = _22.b; - out.V_c = _22.c; - out.V_d = _22.d; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs-block.mask-location-0.msl2.tesc b/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs-block.mask-location-0.msl2.tesc deleted file mode 100644 index e0641663f6..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs-block.mask-location-0.msl2.tesc +++ /dev/null @@ -1,49 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct P -{ - float a; - float b; -}; - -struct C -{ - float a; - float b; -}; - -struct main0_out -{ - float C_a; - float C_b; - float4 gl_Position; -}; - -struct main0_patchOut -{ - float P_b; -}; - -static inline __attribute__((always_inline)) -void write_in_function(threadgroup P& _11, device main0_patchOut& patchOut, device main0_out* thread & gl_out, thread uint& gl_InvocationID) -{ - _11.a = 1.0; - patchOut.P_b = 2.0; - gl_out[gl_InvocationID].C_a = 3.0; - gl_out[gl_InvocationID].C_b = 4.0; - gl_out[gl_InvocationID].gl_Position = float4(1.0); -} - -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - threadgroup P _11; - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - write_in_function(_11, patchOut, gl_out, gl_InvocationID); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs-block.mask-location-0.multi-patch.msl2.tesc b/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs-block.mask-location-0.multi-patch.msl2.tesc deleted file mode 100644 index 6ba7a48498..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs-block.mask-location-0.multi-patch.msl2.tesc +++ /dev/null @@ -1,52 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct P -{ - float a; - float b; -}; - -struct C -{ - float a; - float b; -}; - -struct main0_out -{ - float C_a; - float C_b; - float4 gl_Position; -}; - -struct main0_patchOut -{ - float P_b; -}; - -static inline __attribute__((always_inline)) -void write_in_function(threadgroup P& _11, device main0_patchOut& patchOut, device main0_out* thread & gl_out, thread uint& gl_InvocationID) -{ - _11.a = 1.0; - patchOut.P_b = 2.0; - gl_out[gl_InvocationID].C_a = 3.0; - gl_out[gl_InvocationID].C_b = 4.0; - gl_out[gl_InvocationID].gl_Position = float4(1.0); -} - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - device main0_patchOut& patchOut = spvPatchOut[gl_GlobalInvocationID.x / 4]; - threadgroup P spvStorage_11[8]; - threadgroup P (&_11) = spvStorage_11[(gl_GlobalInvocationID.x / 4) % 8]; - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - write_in_function(_11, patchOut, gl_out, gl_InvocationID); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs-block.mask-location-0.vert b/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs-block.mask-location-0.vert deleted file mode 100644 index 648a11adce..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs-block.mask-location-0.vert +++ /dev/null @@ -1,34 +0,0 @@ -#include -#include - -using namespace metal; - -struct V -{ - float4 a; - float4 b; - float4 c; - float4 d; -}; - -struct main0_out -{ - float4 V_b [[user(locn1)]]; - float4 V_c [[user(locn2)]]; - float4 V_d [[user(locn3)]]; - float4 gl_Position [[position]]; -}; - -vertex main0_out main0() -{ - main0_out out = {}; - V _22 = {}; - out.gl_Position = float4(1.0); - _22.a = float4(2.0); - _22.b = float4(3.0); - out.V_b = _22.b; - out.V_c = _22.c; - out.V_d = _22.d; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs-block.mask-location-1.for-tess.vert b/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs-block.mask-location-1.for-tess.vert deleted file mode 100644 index 25fd5f5089..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs-block.mask-location-1.for-tess.vert +++ /dev/null @@ -1,35 +0,0 @@ -#include -#include - -using namespace metal; - -struct V -{ - float4 a; - float4 b; - float4 c; - float4 d; -}; - -struct main0_out -{ - float4 V_a; - float4 V_c; - float4 V_d; - float4 gl_Position; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint3 spvStageInputSize [[grid_size]], device main0_out* spvOut [[buffer(28)]]) -{ - V _22 = {}; - device main0_out& out = spvOut[gl_GlobalInvocationID.y * spvStageInputSize.x + gl_GlobalInvocationID.x]; - if (any(gl_GlobalInvocationID >= spvStageInputSize)) - return; - out.gl_Position = float4(1.0); - _22.a = float4(2.0); - _22.b = float4(3.0); - out.V_a = _22.a; - out.V_c = _22.c; - out.V_d = _22.d; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs-block.mask-location-1.msl2.tesc b/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs-block.mask-location-1.msl2.tesc deleted file mode 100644 index e40fa2d663..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs-block.mask-location-1.msl2.tesc +++ /dev/null @@ -1,49 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct P -{ - float a; - float b; -}; - -struct C -{ - float a; - float b; -}; - -struct main0_out -{ - float C_b; - float4 gl_Position; -}; - -struct main0_patchOut -{ - float P_a; - float P_b; -}; - -static inline __attribute__((always_inline)) -void write_in_function(device main0_patchOut& patchOut, threadgroup C (&c)[4], device main0_out* thread & gl_out, thread uint& gl_InvocationID) -{ - patchOut.P_a = 1.0; - patchOut.P_b = 2.0; - c[gl_InvocationID].a = 3.0; - gl_out[gl_InvocationID].C_b = 4.0; - gl_out[gl_InvocationID].gl_Position = float4(1.0); -} - -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - threadgroup C c[4]; - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - write_in_function(patchOut, c, gl_out, gl_InvocationID); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs-block.mask-location-1.multi-patch.msl2.tesc b/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs-block.mask-location-1.multi-patch.msl2.tesc deleted file mode 100644 index 9629253138..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs-block.mask-location-1.multi-patch.msl2.tesc +++ /dev/null @@ -1,52 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct P -{ - float a; - float b; -}; - -struct C -{ - float a; - float b; -}; - -struct main0_out -{ - float C_b; - float4 gl_Position; -}; - -struct main0_patchOut -{ - float P_a; - float P_b; -}; - -static inline __attribute__((always_inline)) -void write_in_function(device main0_patchOut& patchOut, threadgroup C (&c)[4], device main0_out* thread & gl_out, thread uint& gl_InvocationID) -{ - patchOut.P_a = 1.0; - patchOut.P_b = 2.0; - c[gl_InvocationID].a = 3.0; - gl_out[gl_InvocationID].C_b = 4.0; - gl_out[gl_InvocationID].gl_Position = float4(1.0); -} - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - threadgroup C spvStoragec[8][4]; - threadgroup C (&c)[4] = spvStoragec[(gl_GlobalInvocationID.x / 4) % 8]; - device main0_patchOut& patchOut = spvPatchOut[gl_GlobalInvocationID.x / 4]; - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - write_in_function(patchOut, c, gl_out, gl_InvocationID); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs-block.mask-location-1.vert b/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs-block.mask-location-1.vert deleted file mode 100644 index 1a4c18f05b..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs-block.mask-location-1.vert +++ /dev/null @@ -1,34 +0,0 @@ -#include -#include - -using namespace metal; - -struct V -{ - float4 a; - float4 b; - float4 c; - float4 d; -}; - -struct main0_out -{ - float4 V_a [[user(locn0)]]; - float4 V_c [[user(locn2)]]; - float4 V_d [[user(locn3)]]; - float4 gl_Position [[position]]; -}; - -vertex main0_out main0() -{ - main0_out out = {}; - V _22 = {}; - out.gl_Position = float4(1.0); - _22.a = float4(2.0); - _22.b = float4(3.0); - out.V_a = _22.a; - out.V_c = _22.c; - out.V_d = _22.d; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-clip-distance.vert b/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-clip-distance.vert deleted file mode 100644 index 2a0508361e..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-clip-distance.vert +++ /dev/null @@ -1,73 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 v0 [[user(locn0)]]; - float4 v1 [[user(locn1)]]; - float4 gl_Position [[position]]; - float gl_PointSize [[point_size]]; -}; - -static inline __attribute__((always_inline)) -void write_in_func(thread float4& v0, thread float4& v1, thread float4& gl_Position, thread float& gl_PointSize, thread spvUnsafeArray& gl_ClipDistance) -{ - v0 = float4(1.0); - v1 = float4(2.0); - gl_Position = float4(3.0); - gl_PointSize = 4.0; - gl_ClipDistance[0] = 1.0; - gl_ClipDistance[1] = 0.5; -} - -vertex main0_out main0() -{ - main0_out out = {}; - spvUnsafeArray gl_ClipDistance = {}; - write_in_func(out.v0, out.v1, out.gl_Position, out.gl_PointSize, gl_ClipDistance); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-0.for-tess.vert b/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-0.for-tess.vert deleted file mode 100644 index 53f76b575e..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-0.for-tess.vert +++ /dev/null @@ -1,74 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 v1; - float4 gl_Position; - float gl_PointSize; - spvUnsafeArray gl_ClipDistance; -}; - -static inline __attribute__((always_inline)) -void write_in_func(thread float4& v0, device float4& v1, device float4& gl_Position, device float& gl_PointSize, device spvUnsafeArray& gl_ClipDistance) -{ - v0 = float4(1.0); - v1 = float4(2.0); - gl_Position = float4(3.0); - gl_PointSize = 4.0; - gl_ClipDistance[0] = 1.0; - gl_ClipDistance[1] = 0.5; -} - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint3 spvStageInputSize [[grid_size]], device main0_out* spvOut [[buffer(28)]]) -{ - float4 v0 = {}; - device main0_out& out = spvOut[gl_GlobalInvocationID.y * spvStageInputSize.x + gl_GlobalInvocationID.x]; - if (any(gl_GlobalInvocationID >= spvStageInputSize)) - return; - write_in_func(v0, out.v1, out.gl_Position, out.gl_PointSize, out.gl_ClipDistance); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-0.msl2.tesc b/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-0.msl2.tesc deleted file mode 100644 index e4f047d3e3..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-0.msl2.tesc +++ /dev/null @@ -1,42 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position; - float gl_PointSize; -}; - -struct main0_patchOut -{ - float4 v1; -}; - -static inline __attribute__((always_inline)) -void write_in_func(threadgroup float4 (&v0)[4], thread uint& gl_InvocationID, device float4& v1, device main0_out* thread & gl_out) -{ - v0[gl_InvocationID] = float4(1.0); - v0[gl_InvocationID].x = 2.0; - if (gl_InvocationID == 0) - { - v1 = float4(2.0); - ((device float*)&v1)[3u] = 4.0; - } - gl_out[gl_InvocationID].gl_Position = float4(3.0); - gl_out[gl_InvocationID].gl_PointSize = 4.0; - gl_out[gl_InvocationID].gl_Position.z = 5.0; - gl_out[gl_InvocationID].gl_PointSize = 4.0; -} - -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - threadgroup float4 v0[4]; - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - write_in_func(v0, gl_InvocationID, patchOut.v1, gl_out); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-0.multi-patch.tesc b/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-0.multi-patch.tesc deleted file mode 100644 index 7465cc64db..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-0.multi-patch.tesc +++ /dev/null @@ -1,87 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 gl_Position; - float gl_PointSize; -}; - -struct main0_patchOut -{ - spvUnsafeArray v1; - float4 v3; -}; - -static inline __attribute__((always_inline)) -void write_in_func(threadgroup float4 (&v0)[4], thread uint& gl_InvocationID, device spvUnsafeArray& v1, device float4& v3, device main0_out* thread & gl_out) -{ - v0[gl_InvocationID] = float4(1.0); - v0[gl_InvocationID].z = 3.0; - if (gl_InvocationID == 0) - { - v1[0] = float4(2.0); - ((device float*)&v1[0])[0u] = 3.0; - v1[1] = float4(2.0); - ((device float*)&v1[1])[0u] = 5.0; - } - v3 = float4(5.0); - gl_out[gl_InvocationID].gl_Position = float4(10.0); - gl_out[gl_InvocationID].gl_Position.z = 20.0; - gl_out[gl_InvocationID].gl_PointSize = 40.0; -} - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - threadgroup float4 spvStoragev0[8][4]; - threadgroup float4 (&v0)[4] = spvStoragev0[(gl_GlobalInvocationID.x / 4) % 8]; - device main0_patchOut& patchOut = spvPatchOut[gl_GlobalInvocationID.x / 4]; - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - write_in_func(v0, gl_InvocationID, patchOut.v1, patchOut.v3, gl_out); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-0.tesc b/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-0.tesc deleted file mode 100644 index 0ae265e9e7..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-0.tesc +++ /dev/null @@ -1,84 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 gl_Position; - float gl_PointSize; -}; - -struct main0_patchOut -{ - spvUnsafeArray v1; - float4 v3; -}; - -static inline __attribute__((always_inline)) -void write_in_func(threadgroup float4 (&v0)[4], thread uint& gl_InvocationID, device spvUnsafeArray& v1, device float4& v3, device main0_out* thread & gl_out) -{ - v0[gl_InvocationID] = float4(1.0); - v0[gl_InvocationID].z = 3.0; - if (gl_InvocationID == 0) - { - v1[0] = float4(2.0); - ((device float*)&v1[0])[0u] = 3.0; - v1[1] = float4(2.0); - ((device float*)&v1[1])[0u] = 5.0; - } - v3 = float4(5.0); - gl_out[gl_InvocationID].gl_Position = float4(10.0); - gl_out[gl_InvocationID].gl_Position.z = 20.0; - gl_out[gl_InvocationID].gl_PointSize = 40.0; -} - -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - threadgroup float4 v0[4]; - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - write_in_func(v0, gl_InvocationID, patchOut.v1, patchOut.v3, gl_out); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-0.vert b/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-0.vert deleted file mode 100644 index 12c111aef4..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-0.vert +++ /dev/null @@ -1,38 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 v1 [[user(locn1)]]; - float4 gl_Position [[position]]; - float gl_PointSize [[point_size]]; - float gl_ClipDistance [[clip_distance]] [2]; - float gl_ClipDistance_0 [[user(clip0)]]; - float gl_ClipDistance_1 [[user(clip1)]]; -}; - -static inline __attribute__((always_inline)) -void write_in_func(thread float4& v0, thread float4& v1, thread float4& gl_Position, thread float& gl_PointSize, thread float (&gl_ClipDistance)[2]) -{ - v0 = float4(1.0); - v1 = float4(2.0); - gl_Position = float4(3.0); - gl_PointSize = 4.0; - gl_ClipDistance[0] = 1.0; - gl_ClipDistance[1] = 0.5; -} - -vertex main0_out main0() -{ - main0_out out = {}; - float4 v0 = {}; - write_in_func(v0, out.v1, out.gl_Position, out.gl_PointSize, out.gl_ClipDistance); - out.gl_ClipDistance_0 = out.gl_ClipDistance[0]; - out.gl_ClipDistance_1 = out.gl_ClipDistance[1]; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-1.for-tess.vert b/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-1.for-tess.vert deleted file mode 100644 index 8f9cfce536..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-1.for-tess.vert +++ /dev/null @@ -1,74 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 v0; - float4 gl_Position; - float gl_PointSize; - spvUnsafeArray gl_ClipDistance; -}; - -static inline __attribute__((always_inline)) -void write_in_func(device float4& v0, thread float4& v1, device float4& gl_Position, device float& gl_PointSize, device spvUnsafeArray& gl_ClipDistance) -{ - v0 = float4(1.0); - v1 = float4(2.0); - gl_Position = float4(3.0); - gl_PointSize = 4.0; - gl_ClipDistance[0] = 1.0; - gl_ClipDistance[1] = 0.5; -} - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint3 spvStageInputSize [[grid_size]], device main0_out* spvOut [[buffer(28)]]) -{ - float4 v1 = {}; - device main0_out& out = spvOut[gl_GlobalInvocationID.y * spvStageInputSize.x + gl_GlobalInvocationID.x]; - if (any(gl_GlobalInvocationID >= spvStageInputSize)) - return; - write_in_func(out.v0, v1, out.gl_Position, out.gl_PointSize, out.gl_ClipDistance); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-1.msl2.tesc b/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-1.msl2.tesc deleted file mode 100644 index 85160a9dee..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-1.msl2.tesc +++ /dev/null @@ -1,41 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 v0; - float4 gl_Position; - float gl_PointSize; -}; - -struct main0_patchOut -{ -}; -static inline __attribute__((always_inline)) -void write_in_func(device main0_out* thread & gl_out, thread uint& gl_InvocationID, threadgroup float4& v1) -{ - gl_out[gl_InvocationID].v0 = float4(1.0); - gl_out[gl_InvocationID].v0.x = 2.0; - if (gl_InvocationID == 0) - { - v1 = float4(2.0); - ((threadgroup float*)&v1)[3u] = 4.0; - } - gl_out[gl_InvocationID].gl_Position = float4(3.0); - gl_out[gl_InvocationID].gl_PointSize = 4.0; - gl_out[gl_InvocationID].gl_Position.z = 5.0; - gl_out[gl_InvocationID].gl_PointSize = 4.0; -} - -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - threadgroup float4 v1; - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - write_in_func(gl_out, gl_InvocationID, v1); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-1.multi-patch.tesc b/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-1.multi-patch.tesc deleted file mode 100644 index df057861ee..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-1.multi-patch.tesc +++ /dev/null @@ -1,48 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 v0; - float4 gl_Position; - float gl_PointSize; -}; - -struct main0_patchOut -{ - float4 v3; -}; - -static inline __attribute__((always_inline)) -void write_in_func(device main0_out* thread & gl_out, thread uint& gl_InvocationID, threadgroup float4 (&v1)[2], device float4& v3) -{ - gl_out[gl_InvocationID].v0 = float4(1.0); - gl_out[gl_InvocationID].v0.z = 3.0; - if (gl_InvocationID == 0) - { - v1[0] = float4(2.0); - ((threadgroup float*)&v1[0])[0u] = 3.0; - v1[1] = float4(2.0); - ((threadgroup float*)&v1[1])[0u] = 5.0; - } - v3 = float4(5.0); - gl_out[gl_InvocationID].gl_Position = float4(10.0); - gl_out[gl_InvocationID].gl_Position.z = 20.0; - gl_out[gl_InvocationID].gl_PointSize = 40.0; -} - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - device main0_patchOut& patchOut = spvPatchOut[gl_GlobalInvocationID.x / 4]; - threadgroup float4 spvStoragev1[8][2]; - threadgroup float4 (&v1)[2] = spvStoragev1[(gl_GlobalInvocationID.x / 4) % 8]; - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - write_in_func(gl_out, gl_InvocationID, v1, patchOut.v3); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-1.tesc b/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-1.tesc deleted file mode 100644 index 0ad2727673..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-1.tesc +++ /dev/null @@ -1,45 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 v0; - float4 gl_Position; - float gl_PointSize; -}; - -struct main0_patchOut -{ - float4 v3; -}; - -static inline __attribute__((always_inline)) -void write_in_func(device main0_out* thread & gl_out, thread uint& gl_InvocationID, threadgroup float4 (&v1)[2], device float4& v3) -{ - gl_out[gl_InvocationID].v0 = float4(1.0); - gl_out[gl_InvocationID].v0.z = 3.0; - if (gl_InvocationID == 0) - { - v1[0] = float4(2.0); - ((threadgroup float*)&v1[0])[0u] = 3.0; - v1[1] = float4(2.0); - ((threadgroup float*)&v1[1])[0u] = 5.0; - } - v3 = float4(5.0); - gl_out[gl_InvocationID].gl_Position = float4(10.0); - gl_out[gl_InvocationID].gl_Position.z = 20.0; - gl_out[gl_InvocationID].gl_PointSize = 40.0; -} - -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - threadgroup float4 v1[2]; - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - write_in_func(gl_out, gl_InvocationID, v1, patchOut.v3); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-1.vert b/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-1.vert deleted file mode 100644 index 2290e5cca4..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-location-1.vert +++ /dev/null @@ -1,38 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 v0 [[user(locn0)]]; - float4 gl_Position [[position]]; - float gl_PointSize [[point_size]]; - float gl_ClipDistance [[clip_distance]] [2]; - float gl_ClipDistance_0 [[user(clip0)]]; - float gl_ClipDistance_1 [[user(clip1)]]; -}; - -static inline __attribute__((always_inline)) -void write_in_func(thread float4& v0, thread float4& v1, thread float4& gl_Position, thread float& gl_PointSize, thread float (&gl_ClipDistance)[2]) -{ - v0 = float4(1.0); - v1 = float4(2.0); - gl_Position = float4(3.0); - gl_PointSize = 4.0; - gl_ClipDistance[0] = 1.0; - gl_ClipDistance[1] = 0.5; -} - -vertex main0_out main0() -{ - main0_out out = {}; - float4 v1 = {}; - write_in_func(out.v0, v1, out.gl_Position, out.gl_PointSize, out.gl_ClipDistance); - out.gl_ClipDistance_0 = out.gl_ClipDistance[0]; - out.gl_ClipDistance_1 = out.gl_ClipDistance[1]; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-point-size.for-tess.vert b/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-point-size.for-tess.vert deleted file mode 100644 index 07494ea399..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-point-size.for-tess.vert +++ /dev/null @@ -1,74 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 v0; - float4 v1; - float4 gl_Position; - spvUnsafeArray gl_ClipDistance; -}; - -static inline __attribute__((always_inline)) -void write_in_func(device float4& v0, device float4& v1, device float4& gl_Position, thread float& gl_PointSize, device spvUnsafeArray& gl_ClipDistance) -{ - v0 = float4(1.0); - v1 = float4(2.0); - gl_Position = float4(3.0); - gl_PointSize = 4.0; - gl_ClipDistance[0] = 1.0; - gl_ClipDistance[1] = 0.5; -} - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint3 spvStageInputSize [[grid_size]], device main0_out* spvOut [[buffer(28)]]) -{ - float gl_PointSize = {}; - device main0_out& out = spvOut[gl_GlobalInvocationID.y * spvStageInputSize.x + gl_GlobalInvocationID.x]; - if (any(gl_GlobalInvocationID >= spvStageInputSize)) - return; - write_in_func(out.v0, out.v1, out.gl_Position, gl_PointSize, out.gl_ClipDistance); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-point-size.multi-patch.tesc b/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-point-size.multi-patch.tesc deleted file mode 100644 index 05d58634ef..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-point-size.multi-patch.tesc +++ /dev/null @@ -1,95 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct gl_PerVertex -{ - float4 gl_Position; - float gl_PointSize; - spvUnsafeArray gl_ClipDistance; - spvUnsafeArray gl_CullDistance; -}; - -struct main0_out -{ - float4 v0; - float4 gl_Position; -}; - -struct main0_patchOut -{ - spvUnsafeArray v1; - float4 v3; -}; - -static inline __attribute__((always_inline)) -void write_in_func(device main0_out* thread & gl_out, thread uint& gl_InvocationID, device spvUnsafeArray& v1, device float4& v3, threadgroup gl_PerVertex (&gl_out_masked)[4]) -{ - gl_out[gl_InvocationID].v0 = float4(1.0); - gl_out[gl_InvocationID].v0.z = 3.0; - if (gl_InvocationID == 0) - { - v1[0] = float4(2.0); - ((device float*)&v1[0])[0u] = 3.0; - v1[1] = float4(2.0); - ((device float*)&v1[1])[0u] = 5.0; - } - v3 = float4(5.0); - gl_out[gl_InvocationID].gl_Position = float4(10.0); - gl_out[gl_InvocationID].gl_Position.z = 20.0; - gl_out_masked[gl_InvocationID].gl_PointSize = 40.0; -} - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - threadgroup gl_PerVertex spvStoragegl_out_masked[8][4]; - threadgroup gl_PerVertex (&gl_out_masked)[4] = spvStoragegl_out_masked[(gl_GlobalInvocationID.x / 4) % 8]; - device main0_patchOut& patchOut = spvPatchOut[gl_GlobalInvocationID.x / 4]; - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - write_in_func(gl_out, gl_InvocationID, patchOut.v1, patchOut.v3, gl_out_masked); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-point-size.tesc b/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-point-size.tesc deleted file mode 100644 index 8ec2a663b7..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-point-size.tesc +++ /dev/null @@ -1,92 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct gl_PerVertex -{ - float4 gl_Position; - float gl_PointSize; - spvUnsafeArray gl_ClipDistance; - spvUnsafeArray gl_CullDistance; -}; - -struct main0_out -{ - float4 v0; - float4 gl_Position; -}; - -struct main0_patchOut -{ - spvUnsafeArray v1; - float4 v3; -}; - -static inline __attribute__((always_inline)) -void write_in_func(device main0_out* thread & gl_out, thread uint& gl_InvocationID, device spvUnsafeArray& v1, device float4& v3, threadgroup gl_PerVertex (&gl_out_masked)[4]) -{ - gl_out[gl_InvocationID].v0 = float4(1.0); - gl_out[gl_InvocationID].v0.z = 3.0; - if (gl_InvocationID == 0) - { - v1[0] = float4(2.0); - ((device float*)&v1[0])[0u] = 3.0; - v1[1] = float4(2.0); - ((device float*)&v1[1])[0u] = 5.0; - } - v3 = float4(5.0); - gl_out[gl_InvocationID].gl_Position = float4(10.0); - gl_out[gl_InvocationID].gl_Position.z = 20.0; - gl_out_masked[gl_InvocationID].gl_PointSize = 40.0; -} - -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - threadgroup gl_PerVertex gl_out_masked[4]; - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - write_in_func(gl_out, gl_InvocationID, patchOut.v1, patchOut.v3, gl_out_masked); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-point-size.vert b/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-point-size.vert deleted file mode 100644 index b37b92dd4a..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-point-size.vert +++ /dev/null @@ -1,38 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 v0 [[user(locn0)]]; - float4 v1 [[user(locn1)]]; - float4 gl_Position [[position]]; - float gl_ClipDistance [[clip_distance]] [2]; - float gl_ClipDistance_0 [[user(clip0)]]; - float gl_ClipDistance_1 [[user(clip1)]]; -}; - -static inline __attribute__((always_inline)) -void write_in_func(thread float4& v0, thread float4& v1, thread float4& gl_Position, thread float& gl_PointSize, thread float (&gl_ClipDistance)[2]) -{ - v0 = float4(1.0); - v1 = float4(2.0); - gl_Position = float4(3.0); - gl_PointSize = 4.0; - gl_ClipDistance[0] = 1.0; - gl_ClipDistance[1] = 0.5; -} - -vertex main0_out main0() -{ - main0_out out = {}; - float gl_PointSize = {}; - write_in_func(out.v0, out.v1, out.gl_Position, gl_PointSize, out.gl_ClipDistance); - out.gl_ClipDistance_0 = out.gl_ClipDistance[0]; - out.gl_ClipDistance_1 = out.gl_ClipDistance[1]; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-position.multi-patch.tesc b/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-position.multi-patch.tesc deleted file mode 100644 index 86bc7d37be..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-position.multi-patch.tesc +++ /dev/null @@ -1,95 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct gl_PerVertex -{ - float4 gl_Position; - float gl_PointSize; - spvUnsafeArray gl_ClipDistance; - spvUnsafeArray gl_CullDistance; -}; - -struct main0_out -{ - float4 v0; - float gl_PointSize; -}; - -struct main0_patchOut -{ - spvUnsafeArray v1; - float4 v3; -}; - -static inline __attribute__((always_inline)) -void write_in_func(device main0_out* thread & gl_out, thread uint& gl_InvocationID, device spvUnsafeArray& v1, device float4& v3, threadgroup gl_PerVertex (&gl_out_masked)[4]) -{ - gl_out[gl_InvocationID].v0 = float4(1.0); - gl_out[gl_InvocationID].v0.z = 3.0; - if (gl_InvocationID == 0) - { - v1[0] = float4(2.0); - ((device float*)&v1[0])[0u] = 3.0; - v1[1] = float4(2.0); - ((device float*)&v1[1])[0u] = 5.0; - } - v3 = float4(5.0); - gl_out_masked[gl_InvocationID].gl_Position = float4(10.0); - gl_out_masked[gl_InvocationID].gl_Position.z = 20.0; - gl_out[gl_InvocationID].gl_PointSize = 40.0; -} - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - threadgroup gl_PerVertex spvStoragegl_out_masked[8][4]; - threadgroup gl_PerVertex (&gl_out_masked)[4] = spvStoragegl_out_masked[(gl_GlobalInvocationID.x / 4) % 8]; - device main0_patchOut& patchOut = spvPatchOut[gl_GlobalInvocationID.x / 4]; - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - write_in_func(gl_out, gl_InvocationID, patchOut.v1, patchOut.v3, gl_out_masked); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-position.tesc b/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-position.tesc deleted file mode 100644 index da0d2a2d10..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/masking/write-outputs.mask-position.tesc +++ /dev/null @@ -1,92 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct gl_PerVertex -{ - float4 gl_Position; - float gl_PointSize; - spvUnsafeArray gl_ClipDistance; - spvUnsafeArray gl_CullDistance; -}; - -struct main0_out -{ - float4 v0; - float gl_PointSize; -}; - -struct main0_patchOut -{ - spvUnsafeArray v1; - float4 v3; -}; - -static inline __attribute__((always_inline)) -void write_in_func(device main0_out* thread & gl_out, thread uint& gl_InvocationID, device spvUnsafeArray& v1, device float4& v3, threadgroup gl_PerVertex (&gl_out_masked)[4]) -{ - gl_out[gl_InvocationID].v0 = float4(1.0); - gl_out[gl_InvocationID].v0.z = 3.0; - if (gl_InvocationID == 0) - { - v1[0] = float4(2.0); - ((device float*)&v1[0])[0u] = 3.0; - v1[1] = float4(2.0); - ((device float*)&v1[1])[0u] = 5.0; - } - v3 = float4(5.0); - gl_out_masked[gl_InvocationID].gl_Position = float4(10.0); - gl_out_masked[gl_InvocationID].gl_Position.z = 20.0; - gl_out[gl_InvocationID].gl_PointSize = 40.0; -} - -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - threadgroup gl_PerVertex gl_out_masked[4]; - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - write_in_func(gl_out, gl_InvocationID, patchOut.v1, patchOut.v3, gl_out_masked); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/tesc/basic.multi-patch.tesc b/third_party/spirv-cross/reference/shaders-msl/tesc/basic.multi-patch.tesc deleted file mode 100644 index fe26831673..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/tesc/basic.multi-patch.tesc +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_patchOut -{ - float3 vFoo; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - device main0_patchOut& patchOut = spvPatchOut[gl_GlobalInvocationID.x / 1]; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 1, spvIndirectParams[1] - 1); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[0] = half(8.8999996185302734375); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[1] = half(6.900000095367431640625); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(8.8999996185302734375); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(6.900000095367431640625); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(3.900000095367431640625); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3] = half(4.900000095367431640625); - patchOut.vFoo = float3(1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/tesc/basic.tesc b/third_party/spirv-cross/reference/shaders-msl/tesc/basic.tesc deleted file mode 100644 index a9ff5b37ea..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/tesc/basic.tesc +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_patchOut -{ - float3 vFoo; -}; - -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[0] = half(8.8999996185302734375); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[1] = half(6.900000095367431640625); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(8.8999996185302734375); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(6.900000095367431640625); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(3.900000095367431640625); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3] = half(4.900000095367431640625); - patchOut.vFoo = float3(1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/tesc/complex-control-point-inout-types.multi-patch.tesc b/third_party/spirv-cross/reference/shaders-msl/tesc/complex-control-point-inout-types.multi-patch.tesc deleted file mode 100644 index 36a630f3a5..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/tesc/complex-control-point-inout-types.multi-patch.tesc +++ /dev/null @@ -1,134 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct Meep -{ - float a; - float b; -}; - -struct Block -{ - spvUnsafeArray a; - float b; - float2x2 m; - Meep meep; - spvUnsafeArray meeps; -}; - -struct Block_1 -{ - spvUnsafeArray a; - float b; - float2x2 m; - Meep meep; - spvUnsafeArray meeps; -}; - -struct main0_out -{ - spvUnsafeArray a; - float b; - float2x2 m; - Meep meep; - spvUnsafeArray meeps; - spvUnsafeArray Block_a; - float Block_b; - float2x2 Block_m; - Meep Block_meep; - spvUnsafeArray Block_meeps; - float4 gl_Position; -}; - -struct main0_in -{ - spvUnsafeArray in_a; - float in_b; - float2x2 in_m; - Meep in_meep; - spvUnsafeArray in_meeps; - spvUnsafeArray Block_a; - float Block_b; - float2x2 Block_m; - Meep Block_meep; - spvUnsafeArray Block_meeps; -}; - -static inline __attribute__((always_inline)) -void write_in_func(device main0_out* thread & gl_out, thread uint& gl_InvocationID, device main0_in* thread & gl_in) -{ - gl_out[gl_InvocationID].gl_Position = float4(1.0); - gl_out[gl_InvocationID].a[0] = gl_in[gl_InvocationID].in_a[0]; - gl_out[gl_InvocationID].a[1] = gl_in[gl_InvocationID].in_a[1]; - gl_out[gl_InvocationID].b = gl_in[gl_InvocationID].in_b; - gl_out[gl_InvocationID].m = gl_in[gl_InvocationID].in_m; - gl_out[gl_InvocationID].meep.a = gl_in[gl_InvocationID].in_meep.a; - gl_out[gl_InvocationID].meep.b = gl_in[gl_InvocationID].in_meep.b; - gl_out[gl_InvocationID].meeps[0].a = gl_in[gl_InvocationID].in_meeps[0].a; - gl_out[gl_InvocationID].meeps[0].b = gl_in[gl_InvocationID].in_meeps[0].b; - gl_out[gl_InvocationID].meeps[1].a = gl_in[gl_InvocationID].in_meeps[1].a; - gl_out[gl_InvocationID].meeps[1].b = gl_in[gl_InvocationID].in_meeps[1].b; - gl_out[gl_InvocationID].Block_a[0] = gl_in[gl_InvocationID].Block_a[0]; - gl_out[gl_InvocationID].Block_a[1] = gl_in[gl_InvocationID].Block_a[1]; - gl_out[gl_InvocationID].Block_b = gl_in[gl_InvocationID].Block_b; - gl_out[gl_InvocationID].Block_m = gl_in[gl_InvocationID].Block_m; - gl_out[gl_InvocationID].Block_meep.a = gl_in[gl_InvocationID].Block_meep.a; - gl_out[gl_InvocationID].Block_meep.b = gl_in[gl_InvocationID].Block_meep.b; - gl_out[gl_InvocationID].Block_meeps[0].a = gl_in[gl_InvocationID].Block_meeps[0].a; - gl_out[gl_InvocationID].Block_meeps[0].b = gl_in[gl_InvocationID].Block_meeps[0].b; - gl_out[gl_InvocationID].Block_meeps[1].a = gl_in[gl_InvocationID].Block_meeps[1].a; - gl_out[gl_InvocationID].Block_meeps[1].b = gl_in[gl_InvocationID].Block_meeps[1].b; -} - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], device main0_in* spvIn [[buffer(22)]]) -{ - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - device main0_in* gl_in = &spvIn[min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1) * spvIndirectParams[0]]; - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - write_in_func(gl_out, gl_InvocationID, gl_in); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/tesc/complex-control-point-inout-types.tesc b/third_party/spirv-cross/reference/shaders-msl/tesc/complex-control-point-inout-types.tesc deleted file mode 100644 index 4bfb1a43ed..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/tesc/complex-control-point-inout-types.tesc +++ /dev/null @@ -1,138 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct Meep -{ - float a; - float b; -}; - -struct Block -{ - spvUnsafeArray a; - float b; - float2x2 m; - Meep meep; - spvUnsafeArray meeps; -}; - -struct Block_1 -{ - spvUnsafeArray a; - float b; - float2x2 m; -}; - -struct main0_out -{ - spvUnsafeArray a; - float b; - float2x2 m; - Meep meep; - spvUnsafeArray meeps; - spvUnsafeArray Block_a; - float Block_b; - float2x2 Block_m; - Meep Block_meep; - spvUnsafeArray Block_meeps; - float4 gl_Position; -}; - -struct main0_in -{ - float in_a_0 [[attribute(0)]]; - float in_a_1 [[attribute(1)]]; - float in_b [[attribute(2)]]; - float2 in_m_0 [[attribute(3)]]; - float2 in_m_1 [[attribute(4)]]; - float Meep_a [[attribute(5)]]; - float Meep_b [[attribute(6)]]; - float Block_a_0 [[attribute(11)]]; - float Block_a_1 [[attribute(12)]]; - float Block_b [[attribute(13)]]; - float2 Block_m_0 [[attribute(14)]]; - float2 Block_m_1 [[attribute(15)]]; -}; - -static inline __attribute__((always_inline)) -void write_in_func(device main0_out* thread & gl_out, thread uint& gl_InvocationID, threadgroup main0_in* thread & gl_in) -{ - gl_out[gl_InvocationID].gl_Position = float4(1.0); - gl_out[gl_InvocationID].a[0] = gl_in[gl_InvocationID].in_a_0; - gl_out[gl_InvocationID].a[1] = gl_in[gl_InvocationID].in_a_1; - gl_out[gl_InvocationID].b = gl_in[gl_InvocationID].in_b; - float2x2 _72 = float2x2(gl_in[gl_InvocationID].in_m_0, gl_in[gl_InvocationID].in_m_1); - gl_out[gl_InvocationID].m = _72; - gl_out[gl_InvocationID].meep.a = gl_in[gl_InvocationID].Meep_a; - gl_out[gl_InvocationID].meep.b = gl_in[gl_InvocationID].Meep_b; - gl_out[gl_InvocationID].meeps[0].a = 1.0; - gl_out[gl_InvocationID].meeps[0].b = 2.0; - gl_out[gl_InvocationID].meeps[1].a = 3.0; - gl_out[gl_InvocationID].meeps[1].b = 4.0; - gl_out[gl_InvocationID].Block_a[0] = gl_in[gl_InvocationID].Block_a_0; - gl_out[gl_InvocationID].Block_a[1] = gl_in[gl_InvocationID].Block_a_1; - gl_out[gl_InvocationID].Block_b = gl_in[gl_InvocationID].Block_b; - float2x2 _134 = float2x2(gl_in[gl_InvocationID].Block_m_0, gl_in[gl_InvocationID].Block_m_1); - gl_out[gl_InvocationID].Block_m = _134; - gl_out[gl_InvocationID].Block_meep.a = 10.0; - gl_out[gl_InvocationID].Block_meep.b = 20.0; - gl_out[gl_InvocationID].Block_meeps[0].a = 5.0; - gl_out[gl_InvocationID].Block_meeps[0].b = 6.0; - gl_out[gl_InvocationID].Block_meeps[1].a = 7.0; - gl_out[gl_InvocationID].Block_meeps[1].b = 8.0; -} - -kernel void main0(main0_in in [[stage_in]], uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], threadgroup main0_in* gl_in [[threadgroup(0)]]) -{ - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - if (gl_InvocationID < spvIndirectParams[0]) - gl_in[gl_InvocationID] = in; - threadgroup_barrier(mem_flags::mem_threadgroup); - if (gl_InvocationID >= 4) - return; - write_in_func(gl_out, gl_InvocationID, gl_in); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/tesc/complex-patch-out-types.tesc b/third_party/spirv-cross/reference/shaders-msl/tesc/complex-patch-out-types.tesc deleted file mode 100644 index b27f8ad956..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/tesc/complex-patch-out-types.tesc +++ /dev/null @@ -1,113 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct Meep -{ - float a; - float b; -}; - -struct Block -{ - spvUnsafeArray a; - float b; - float2x2 m; - Meep meep; - spvUnsafeArray meeps; -}; - -struct main0_out -{ - float4 gl_Position; -}; - -struct main0_patchOut -{ - spvUnsafeArray a; - float b; - float2x2 m; - Meep meep; - spvUnsafeArray meeps; - spvUnsafeArray Block_a; - float Block_b; - float2x2 Block_m; - Meep Block_meep; - spvUnsafeArray Block_meeps; -}; - -static inline __attribute__((always_inline)) -void write_in_func(device main0_out* thread & gl_out, thread uint& gl_InvocationID, device spvUnsafeArray& a, device float& b, device float2x2& m, device Meep& meep, device spvUnsafeArray& meeps, device main0_patchOut& patchOut) -{ - gl_out[gl_InvocationID].gl_Position = float4(1.0); - a[0] = 1.0; - a[1] = 2.0; - b = 3.0; - m = float2x2(float2(2.0, 0.0), float2(0.0, 2.0)); - meep.a = 4.0; - meep.b = 5.0; - meeps[0].a = 6.0; - meeps[0].b = 7.0; - meeps[1].a = 8.0; - meeps[1].b = 9.0; - patchOut.Block_a[0] = 1.0; - patchOut.Block_a[1] = 2.0; - patchOut.Block_b = 3.0; - patchOut.Block_m = float2x2(float2(4.0, 0.0), float2(0.0, 4.0)); - patchOut.Block_meep.a = 4.0; - patchOut.Block_meep.b = 5.0; - patchOut.Block_meeps[0].a = 6.0; - patchOut.Block_meeps[0].b = 7.0; - patchOut.Block_meeps[1].a = 8.0; - patchOut.Block_meeps[1].b = 9.0; -} - -kernel void main0(uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]]) -{ - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - write_in_func(gl_out, gl_InvocationID, patchOut.a, patchOut.b, patchOut.m, patchOut.meep, patchOut.meeps, patchOut); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/tesc/load-control-point-array-of-matrix.multi-patch.tesc b/third_party/spirv-cross/reference/shaders-msl/tesc/load-control-point-array-of-matrix.multi-patch.tesc deleted file mode 100644 index 28effad215..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/tesc/load-control-point-array-of-matrix.multi-patch.tesc +++ /dev/null @@ -1,68 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4x4 vOutputs; -}; - -struct main0_in -{ - float4x4 vInputs; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], device main0_in* spvIn [[buffer(22)]]) -{ - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - device main0_in* gl_in = &spvIn[min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1) * spvIndirectParams[0]]; - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - spvUnsafeArray _16 = spvUnsafeArray({ gl_in[0].vInputs, gl_in[1].vInputs, gl_in[2].vInputs, gl_in[3].vInputs, gl_in[4].vInputs, gl_in[5].vInputs, gl_in[6].vInputs, gl_in[7].vInputs, gl_in[8].vInputs, gl_in[9].vInputs, gl_in[10].vInputs, gl_in[11].vInputs, gl_in[12].vInputs, gl_in[13].vInputs, gl_in[14].vInputs, gl_in[15].vInputs, gl_in[16].vInputs, gl_in[17].vInputs, gl_in[18].vInputs, gl_in[19].vInputs, gl_in[20].vInputs, gl_in[21].vInputs, gl_in[22].vInputs, gl_in[23].vInputs, gl_in[24].vInputs, gl_in[25].vInputs, gl_in[26].vInputs, gl_in[27].vInputs, gl_in[28].vInputs, gl_in[29].vInputs, gl_in[30].vInputs, gl_in[31].vInputs }); - spvUnsafeArray tmp; - tmp = _16; - gl_out[gl_InvocationID].vOutputs = tmp[gl_InvocationID]; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/tesc/load-control-point-array-of-matrix.tesc b/third_party/spirv-cross/reference/shaders-msl/tesc/load-control-point-array-of-matrix.tesc deleted file mode 100644 index 46d4b4ad58..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/tesc/load-control-point-array-of-matrix.tesc +++ /dev/null @@ -1,73 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4x4 vOutputs; -}; - -struct main0_in -{ - float4 vInputs_0 [[attribute(0)]]; - float4 vInputs_1 [[attribute(1)]]; - float4 vInputs_2 [[attribute(2)]]; - float4 vInputs_3 [[attribute(3)]]; -}; - -kernel void main0(main0_in in [[stage_in]], uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], threadgroup main0_in* gl_in [[threadgroup(0)]]) -{ - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - if (gl_InvocationID < spvIndirectParams[0]) - gl_in[gl_InvocationID] = in; - threadgroup_barrier(mem_flags::mem_threadgroup); - if (gl_InvocationID >= 4) - return; - spvUnsafeArray _16 = spvUnsafeArray({ float4x4(gl_in[0].vInputs_0, gl_in[0].vInputs_1, gl_in[0].vInputs_2, gl_in[0].vInputs_3), float4x4(gl_in[1].vInputs_0, gl_in[1].vInputs_1, gl_in[1].vInputs_2, gl_in[1].vInputs_3), float4x4(gl_in[2].vInputs_0, gl_in[2].vInputs_1, gl_in[2].vInputs_2, gl_in[2].vInputs_3), float4x4(gl_in[3].vInputs_0, gl_in[3].vInputs_1, gl_in[3].vInputs_2, gl_in[3].vInputs_3), float4x4(gl_in[4].vInputs_0, gl_in[4].vInputs_1, gl_in[4].vInputs_2, gl_in[4].vInputs_3), float4x4(gl_in[5].vInputs_0, gl_in[5].vInputs_1, gl_in[5].vInputs_2, gl_in[5].vInputs_3), float4x4(gl_in[6].vInputs_0, gl_in[6].vInputs_1, gl_in[6].vInputs_2, gl_in[6].vInputs_3), float4x4(gl_in[7].vInputs_0, gl_in[7].vInputs_1, gl_in[7].vInputs_2, gl_in[7].vInputs_3), float4x4(gl_in[8].vInputs_0, gl_in[8].vInputs_1, gl_in[8].vInputs_2, gl_in[8].vInputs_3), float4x4(gl_in[9].vInputs_0, gl_in[9].vInputs_1, gl_in[9].vInputs_2, gl_in[9].vInputs_3), float4x4(gl_in[10].vInputs_0, gl_in[10].vInputs_1, gl_in[10].vInputs_2, gl_in[10].vInputs_3), float4x4(gl_in[11].vInputs_0, gl_in[11].vInputs_1, gl_in[11].vInputs_2, gl_in[11].vInputs_3), float4x4(gl_in[12].vInputs_0, gl_in[12].vInputs_1, gl_in[12].vInputs_2, gl_in[12].vInputs_3), float4x4(gl_in[13].vInputs_0, gl_in[13].vInputs_1, gl_in[13].vInputs_2, gl_in[13].vInputs_3), float4x4(gl_in[14].vInputs_0, gl_in[14].vInputs_1, gl_in[14].vInputs_2, gl_in[14].vInputs_3), float4x4(gl_in[15].vInputs_0, gl_in[15].vInputs_1, gl_in[15].vInputs_2, gl_in[15].vInputs_3), float4x4(gl_in[16].vInputs_0, gl_in[16].vInputs_1, gl_in[16].vInputs_2, gl_in[16].vInputs_3), float4x4(gl_in[17].vInputs_0, gl_in[17].vInputs_1, gl_in[17].vInputs_2, gl_in[17].vInputs_3), float4x4(gl_in[18].vInputs_0, gl_in[18].vInputs_1, gl_in[18].vInputs_2, gl_in[18].vInputs_3), float4x4(gl_in[19].vInputs_0, gl_in[19].vInputs_1, gl_in[19].vInputs_2, gl_in[19].vInputs_3), float4x4(gl_in[20].vInputs_0, gl_in[20].vInputs_1, gl_in[20].vInputs_2, gl_in[20].vInputs_3), float4x4(gl_in[21].vInputs_0, gl_in[21].vInputs_1, gl_in[21].vInputs_2, gl_in[21].vInputs_3), float4x4(gl_in[22].vInputs_0, gl_in[22].vInputs_1, gl_in[22].vInputs_2, gl_in[22].vInputs_3), float4x4(gl_in[23].vInputs_0, gl_in[23].vInputs_1, gl_in[23].vInputs_2, gl_in[23].vInputs_3), float4x4(gl_in[24].vInputs_0, gl_in[24].vInputs_1, gl_in[24].vInputs_2, gl_in[24].vInputs_3), float4x4(gl_in[25].vInputs_0, gl_in[25].vInputs_1, gl_in[25].vInputs_2, gl_in[25].vInputs_3), float4x4(gl_in[26].vInputs_0, gl_in[26].vInputs_1, gl_in[26].vInputs_2, gl_in[26].vInputs_3), float4x4(gl_in[27].vInputs_0, gl_in[27].vInputs_1, gl_in[27].vInputs_2, gl_in[27].vInputs_3), float4x4(gl_in[28].vInputs_0, gl_in[28].vInputs_1, gl_in[28].vInputs_2, gl_in[28].vInputs_3), float4x4(gl_in[29].vInputs_0, gl_in[29].vInputs_1, gl_in[29].vInputs_2, gl_in[29].vInputs_3), float4x4(gl_in[30].vInputs_0, gl_in[30].vInputs_1, gl_in[30].vInputs_2, gl_in[30].vInputs_3), float4x4(gl_in[31].vInputs_0, gl_in[31].vInputs_1, gl_in[31].vInputs_2, gl_in[31].vInputs_3) }); - spvUnsafeArray tmp; - tmp = _16; - gl_out[gl_InvocationID].vOutputs = tmp[gl_InvocationID]; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/tesc/load-control-point-array-of-struct.multi-patch.tesc b/third_party/spirv-cross/reference/shaders-msl/tesc/load-control-point-array-of-struct.multi-patch.tesc deleted file mode 100644 index d24c271dd4..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/tesc/load-control-point-array-of-struct.multi-patch.tesc +++ /dev/null @@ -1,76 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct VertexData -{ - float4x4 a; - spvUnsafeArray b; - float4 c; -}; - -struct main0_out -{ - float4 vOutputs; -}; - -struct main0_in -{ - VertexData vInputs; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], device main0_in* spvIn [[buffer(22)]]) -{ - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - device main0_in* gl_in = &spvIn[min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1) * spvIndirectParams[0]]; - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - spvUnsafeArray _19 = spvUnsafeArray({ gl_in[0].vInputs, gl_in[1].vInputs, gl_in[2].vInputs, gl_in[3].vInputs, gl_in[4].vInputs, gl_in[5].vInputs, gl_in[6].vInputs, gl_in[7].vInputs, gl_in[8].vInputs, gl_in[9].vInputs, gl_in[10].vInputs, gl_in[11].vInputs, gl_in[12].vInputs, gl_in[13].vInputs, gl_in[14].vInputs, gl_in[15].vInputs, gl_in[16].vInputs, gl_in[17].vInputs, gl_in[18].vInputs, gl_in[19].vInputs, gl_in[20].vInputs, gl_in[21].vInputs, gl_in[22].vInputs, gl_in[23].vInputs, gl_in[24].vInputs, gl_in[25].vInputs, gl_in[26].vInputs, gl_in[27].vInputs, gl_in[28].vInputs, gl_in[29].vInputs, gl_in[30].vInputs, gl_in[31].vInputs }); - spvUnsafeArray tmp; - tmp = _19; - VertexData tmp_single = gl_in[gl_InvocationID ^ 1].vInputs; - gl_out[gl_InvocationID].vOutputs = ((tmp[gl_InvocationID].a[1] + tmp[gl_InvocationID].b[1]) + tmp[gl_InvocationID].c) + tmp_single.c; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/tesc/load-control-point-array-of-struct.tesc b/third_party/spirv-cross/reference/shaders-msl/tesc/load-control-point-array-of-struct.tesc deleted file mode 100644 index 91d3521dfa..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/tesc/load-control-point-array-of-struct.tesc +++ /dev/null @@ -1,86 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct VertexData -{ - float4x4 a; - spvUnsafeArray b; - float4 c; -}; - -struct main0_out -{ - float4 vOutputs; -}; - -struct main0_in -{ - float4 VertexData_a_0 [[attribute(0)]]; - float4 VertexData_a_1 [[attribute(1)]]; - float4 VertexData_a_2 [[attribute(2)]]; - float4 VertexData_a_3 [[attribute(3)]]; - float4 VertexData_b_0 [[attribute(4)]]; - float4 VertexData_b_1 [[attribute(5)]]; - float4 VertexData_c [[attribute(6)]]; -}; - -kernel void main0(main0_in in [[stage_in]], uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], threadgroup main0_in* gl_in [[threadgroup(0)]]) -{ - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - if (gl_InvocationID < spvIndirectParams[0]) - gl_in[gl_InvocationID] = in; - threadgroup_barrier(mem_flags::mem_threadgroup); - if (gl_InvocationID >= 4) - return; - spvUnsafeArray _19 = spvUnsafeArray({ VertexData{ float4x4(gl_in[0].VertexData_a_0, gl_in[0].VertexData_a_1, gl_in[0].VertexData_a_2, gl_in[0].VertexData_a_3), spvUnsafeArray({ gl_in[0].VertexData_b_0, gl_in[0].VertexData_b_1 }), gl_in[0].VertexData_c }, VertexData{ float4x4(gl_in[1].VertexData_a_0, gl_in[1].VertexData_a_1, gl_in[1].VertexData_a_2, gl_in[1].VertexData_a_3), spvUnsafeArray({ gl_in[1].VertexData_b_0, gl_in[1].VertexData_b_1 }), gl_in[1].VertexData_c }, VertexData{ float4x4(gl_in[2].VertexData_a_0, gl_in[2].VertexData_a_1, gl_in[2].VertexData_a_2, gl_in[2].VertexData_a_3), spvUnsafeArray({ gl_in[2].VertexData_b_0, gl_in[2].VertexData_b_1 }), gl_in[2].VertexData_c }, VertexData{ float4x4(gl_in[3].VertexData_a_0, gl_in[3].VertexData_a_1, gl_in[3].VertexData_a_2, gl_in[3].VertexData_a_3), spvUnsafeArray({ gl_in[3].VertexData_b_0, gl_in[3].VertexData_b_1 }), gl_in[3].VertexData_c }, VertexData{ float4x4(gl_in[4].VertexData_a_0, gl_in[4].VertexData_a_1, gl_in[4].VertexData_a_2, gl_in[4].VertexData_a_3), spvUnsafeArray({ gl_in[4].VertexData_b_0, gl_in[4].VertexData_b_1 }), gl_in[4].VertexData_c }, VertexData{ float4x4(gl_in[5].VertexData_a_0, gl_in[5].VertexData_a_1, gl_in[5].VertexData_a_2, gl_in[5].VertexData_a_3), spvUnsafeArray({ gl_in[5].VertexData_b_0, gl_in[5].VertexData_b_1 }), gl_in[5].VertexData_c }, VertexData{ float4x4(gl_in[6].VertexData_a_0, gl_in[6].VertexData_a_1, gl_in[6].VertexData_a_2, gl_in[6].VertexData_a_3), spvUnsafeArray({ gl_in[6].VertexData_b_0, gl_in[6].VertexData_b_1 }), gl_in[6].VertexData_c }, VertexData{ float4x4(gl_in[7].VertexData_a_0, gl_in[7].VertexData_a_1, gl_in[7].VertexData_a_2, gl_in[7].VertexData_a_3), spvUnsafeArray({ gl_in[7].VertexData_b_0, gl_in[7].VertexData_b_1 }), gl_in[7].VertexData_c }, VertexData{ float4x4(gl_in[8].VertexData_a_0, gl_in[8].VertexData_a_1, gl_in[8].VertexData_a_2, gl_in[8].VertexData_a_3), spvUnsafeArray({ gl_in[8].VertexData_b_0, gl_in[8].VertexData_b_1 }), gl_in[8].VertexData_c }, VertexData{ float4x4(gl_in[9].VertexData_a_0, gl_in[9].VertexData_a_1, gl_in[9].VertexData_a_2, gl_in[9].VertexData_a_3), spvUnsafeArray({ gl_in[9].VertexData_b_0, gl_in[9].VertexData_b_1 }), gl_in[9].VertexData_c }, VertexData{ float4x4(gl_in[10].VertexData_a_0, gl_in[10].VertexData_a_1, gl_in[10].VertexData_a_2, gl_in[10].VertexData_a_3), spvUnsafeArray({ gl_in[10].VertexData_b_0, gl_in[10].VertexData_b_1 }), gl_in[10].VertexData_c }, VertexData{ float4x4(gl_in[11].VertexData_a_0, gl_in[11].VertexData_a_1, gl_in[11].VertexData_a_2, gl_in[11].VertexData_a_3), spvUnsafeArray({ gl_in[11].VertexData_b_0, gl_in[11].VertexData_b_1 }), gl_in[11].VertexData_c }, VertexData{ float4x4(gl_in[12].VertexData_a_0, gl_in[12].VertexData_a_1, gl_in[12].VertexData_a_2, gl_in[12].VertexData_a_3), spvUnsafeArray({ gl_in[12].VertexData_b_0, gl_in[12].VertexData_b_1 }), gl_in[12].VertexData_c }, VertexData{ float4x4(gl_in[13].VertexData_a_0, gl_in[13].VertexData_a_1, gl_in[13].VertexData_a_2, gl_in[13].VertexData_a_3), spvUnsafeArray({ gl_in[13].VertexData_b_0, gl_in[13].VertexData_b_1 }), gl_in[13].VertexData_c }, VertexData{ float4x4(gl_in[14].VertexData_a_0, gl_in[14].VertexData_a_1, gl_in[14].VertexData_a_2, gl_in[14].VertexData_a_3), spvUnsafeArray({ gl_in[14].VertexData_b_0, gl_in[14].VertexData_b_1 }), gl_in[14].VertexData_c }, VertexData{ float4x4(gl_in[15].VertexData_a_0, gl_in[15].VertexData_a_1, gl_in[15].VertexData_a_2, gl_in[15].VertexData_a_3), spvUnsafeArray({ gl_in[15].VertexData_b_0, gl_in[15].VertexData_b_1 }), gl_in[15].VertexData_c }, VertexData{ float4x4(gl_in[16].VertexData_a_0, gl_in[16].VertexData_a_1, gl_in[16].VertexData_a_2, gl_in[16].VertexData_a_3), spvUnsafeArray({ gl_in[16].VertexData_b_0, gl_in[16].VertexData_b_1 }), gl_in[16].VertexData_c }, VertexData{ float4x4(gl_in[17].VertexData_a_0, gl_in[17].VertexData_a_1, gl_in[17].VertexData_a_2, gl_in[17].VertexData_a_3), spvUnsafeArray({ gl_in[17].VertexData_b_0, gl_in[17].VertexData_b_1 }), gl_in[17].VertexData_c }, VertexData{ float4x4(gl_in[18].VertexData_a_0, gl_in[18].VertexData_a_1, gl_in[18].VertexData_a_2, gl_in[18].VertexData_a_3), spvUnsafeArray({ gl_in[18].VertexData_b_0, gl_in[18].VertexData_b_1 }), gl_in[18].VertexData_c }, VertexData{ float4x4(gl_in[19].VertexData_a_0, gl_in[19].VertexData_a_1, gl_in[19].VertexData_a_2, gl_in[19].VertexData_a_3), spvUnsafeArray({ gl_in[19].VertexData_b_0, gl_in[19].VertexData_b_1 }), gl_in[19].VertexData_c }, VertexData{ float4x4(gl_in[20].VertexData_a_0, gl_in[20].VertexData_a_1, gl_in[20].VertexData_a_2, gl_in[20].VertexData_a_3), spvUnsafeArray({ gl_in[20].VertexData_b_0, gl_in[20].VertexData_b_1 }), gl_in[20].VertexData_c }, VertexData{ float4x4(gl_in[21].VertexData_a_0, gl_in[21].VertexData_a_1, gl_in[21].VertexData_a_2, gl_in[21].VertexData_a_3), spvUnsafeArray({ gl_in[21].VertexData_b_0, gl_in[21].VertexData_b_1 }), gl_in[21].VertexData_c }, VertexData{ float4x4(gl_in[22].VertexData_a_0, gl_in[22].VertexData_a_1, gl_in[22].VertexData_a_2, gl_in[22].VertexData_a_3), spvUnsafeArray({ gl_in[22].VertexData_b_0, gl_in[22].VertexData_b_1 }), gl_in[22].VertexData_c }, VertexData{ float4x4(gl_in[23].VertexData_a_0, gl_in[23].VertexData_a_1, gl_in[23].VertexData_a_2, gl_in[23].VertexData_a_3), spvUnsafeArray({ gl_in[23].VertexData_b_0, gl_in[23].VertexData_b_1 }), gl_in[23].VertexData_c }, VertexData{ float4x4(gl_in[24].VertexData_a_0, gl_in[24].VertexData_a_1, gl_in[24].VertexData_a_2, gl_in[24].VertexData_a_3), spvUnsafeArray({ gl_in[24].VertexData_b_0, gl_in[24].VertexData_b_1 }), gl_in[24].VertexData_c }, VertexData{ float4x4(gl_in[25].VertexData_a_0, gl_in[25].VertexData_a_1, gl_in[25].VertexData_a_2, gl_in[25].VertexData_a_3), spvUnsafeArray({ gl_in[25].VertexData_b_0, gl_in[25].VertexData_b_1 }), gl_in[25].VertexData_c }, VertexData{ float4x4(gl_in[26].VertexData_a_0, gl_in[26].VertexData_a_1, gl_in[26].VertexData_a_2, gl_in[26].VertexData_a_3), spvUnsafeArray({ gl_in[26].VertexData_b_0, gl_in[26].VertexData_b_1 }), gl_in[26].VertexData_c }, VertexData{ float4x4(gl_in[27].VertexData_a_0, gl_in[27].VertexData_a_1, gl_in[27].VertexData_a_2, gl_in[27].VertexData_a_3), spvUnsafeArray({ gl_in[27].VertexData_b_0, gl_in[27].VertexData_b_1 }), gl_in[27].VertexData_c }, VertexData{ float4x4(gl_in[28].VertexData_a_0, gl_in[28].VertexData_a_1, gl_in[28].VertexData_a_2, gl_in[28].VertexData_a_3), spvUnsafeArray({ gl_in[28].VertexData_b_0, gl_in[28].VertexData_b_1 }), gl_in[28].VertexData_c }, VertexData{ float4x4(gl_in[29].VertexData_a_0, gl_in[29].VertexData_a_1, gl_in[29].VertexData_a_2, gl_in[29].VertexData_a_3), spvUnsafeArray({ gl_in[29].VertexData_b_0, gl_in[29].VertexData_b_1 }), gl_in[29].VertexData_c }, VertexData{ float4x4(gl_in[30].VertexData_a_0, gl_in[30].VertexData_a_1, gl_in[30].VertexData_a_2, gl_in[30].VertexData_a_3), spvUnsafeArray({ gl_in[30].VertexData_b_0, gl_in[30].VertexData_b_1 }), gl_in[30].VertexData_c }, VertexData{ float4x4(gl_in[31].VertexData_a_0, gl_in[31].VertexData_a_1, gl_in[31].VertexData_a_2, gl_in[31].VertexData_a_3), spvUnsafeArray({ gl_in[31].VertexData_b_0, gl_in[31].VertexData_b_1 }), gl_in[31].VertexData_c } }); - spvUnsafeArray tmp; - tmp = _19; - int _27 = gl_InvocationID ^ 1; - VertexData _30 = VertexData{ float4x4(gl_in[_27].VertexData_a_0, gl_in[_27].VertexData_a_1, gl_in[_27].VertexData_a_2, gl_in[_27].VertexData_a_3), spvUnsafeArray({ gl_in[_27].VertexData_b_0, gl_in[_27].VertexData_b_1 }), gl_in[_27].VertexData_c }; - VertexData tmp_single = _30; - gl_out[gl_InvocationID].vOutputs = ((tmp[gl_InvocationID].a[1] + tmp[gl_InvocationID].b[1]) + tmp[gl_InvocationID].c) + tmp_single.c; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/tesc/load-control-point-array.multi-patch.tesc b/third_party/spirv-cross/reference/shaders-msl/tesc/load-control-point-array.multi-patch.tesc deleted file mode 100644 index 45baadb6f2..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/tesc/load-control-point-array.multi-patch.tesc +++ /dev/null @@ -1,69 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 vOutputs; -}; - -struct main0_in -{ - float4 vInputs; - ushort2 m_43; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], device main0_in* spvIn [[buffer(22)]]) -{ - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - device main0_in* gl_in = &spvIn[min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1) * spvIndirectParams[0]]; - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - spvUnsafeArray _15 = spvUnsafeArray({ gl_in[0].vInputs, gl_in[1].vInputs, gl_in[2].vInputs, gl_in[3].vInputs, gl_in[4].vInputs, gl_in[5].vInputs, gl_in[6].vInputs, gl_in[7].vInputs, gl_in[8].vInputs, gl_in[9].vInputs, gl_in[10].vInputs, gl_in[11].vInputs, gl_in[12].vInputs, gl_in[13].vInputs, gl_in[14].vInputs, gl_in[15].vInputs, gl_in[16].vInputs, gl_in[17].vInputs, gl_in[18].vInputs, gl_in[19].vInputs, gl_in[20].vInputs, gl_in[21].vInputs, gl_in[22].vInputs, gl_in[23].vInputs, gl_in[24].vInputs, gl_in[25].vInputs, gl_in[26].vInputs, gl_in[27].vInputs, gl_in[28].vInputs, gl_in[29].vInputs, gl_in[30].vInputs, gl_in[31].vInputs }); - spvUnsafeArray tmp; - tmp = _15; - gl_out[gl_InvocationID].vOutputs = tmp[gl_InvocationID]; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/tesc/load-control-point-array.tesc b/third_party/spirv-cross/reference/shaders-msl/tesc/load-control-point-array.tesc deleted file mode 100644 index d04571ae36..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/tesc/load-control-point-array.tesc +++ /dev/null @@ -1,70 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 vOutputs; -}; - -struct main0_in -{ - float4 vInputs [[attribute(0)]]; -}; - -kernel void main0(main0_in in [[stage_in]], uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], threadgroup main0_in* gl_in [[threadgroup(0)]]) -{ - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - if (gl_InvocationID < spvIndirectParams[0]) - gl_in[gl_InvocationID] = in; - threadgroup_barrier(mem_flags::mem_threadgroup); - if (gl_InvocationID >= 4) - return; - spvUnsafeArray _15 = spvUnsafeArray({ gl_in[0].vInputs, gl_in[1].vInputs, gl_in[2].vInputs, gl_in[3].vInputs, gl_in[4].vInputs, gl_in[5].vInputs, gl_in[6].vInputs, gl_in[7].vInputs, gl_in[8].vInputs, gl_in[9].vInputs, gl_in[10].vInputs, gl_in[11].vInputs, gl_in[12].vInputs, gl_in[13].vInputs, gl_in[14].vInputs, gl_in[15].vInputs, gl_in[16].vInputs, gl_in[17].vInputs, gl_in[18].vInputs, gl_in[19].vInputs, gl_in[20].vInputs, gl_in[21].vInputs, gl_in[22].vInputs, gl_in[23].vInputs, gl_in[24].vInputs, gl_in[25].vInputs, gl_in[26].vInputs, gl_in[27].vInputs, gl_in[28].vInputs, gl_in[29].vInputs, gl_in[30].vInputs, gl_in[31].vInputs }); - spvUnsafeArray tmp; - tmp = _15; - gl_out[gl_InvocationID].vOutputs = tmp[gl_InvocationID]; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/tesc/matrix-output.multi-patch.tesc b/third_party/spirv-cross/reference/shaders-msl/tesc/matrix-output.multi-patch.tesc deleted file mode 100644 index 98b9dd0524..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/tesc/matrix-output.multi-patch.tesc +++ /dev/null @@ -1,39 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float in_te_attr; - float4x3 in_te_data0; - float4x3 in_te_data1; -}; - -struct main0_in -{ - float3 in_tc_attr; - ushort2 m_103; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], device main0_in* spvIn [[buffer(22)]]) -{ - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 3]; - device main0_in* gl_in = &spvIn[min(gl_GlobalInvocationID.x / 3, spvIndirectParams[1] - 1) * spvIndirectParams[0]]; - uint gl_InvocationID = gl_GlobalInvocationID.x % 3; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 3, spvIndirectParams[1] - 1); - float _15 = float(gl_InvocationID); - float4x3 d = float4x3(float3(_15, 0.0, 0.0), float3(0.0, _15, 0.0), float3(0.0, 0.0, _15), float3(0.0)); - gl_out[gl_InvocationID].in_te_data0 = d; - threadgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup); - int _42 = (gl_InvocationID + 1) % 3; - gl_out[gl_InvocationID].in_te_data1 = float4x3(d[0] + gl_out[_42].in_te_data0[0], d[1] + gl_out[_42].in_te_data0[1], d[2] + gl_out[_42].in_te_data0[2], d[3] + gl_out[_42].in_te_data0[3]); - gl_out[gl_InvocationID].in_te_attr = gl_in[gl_InvocationID].in_tc_attr.x; - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[0] = half(1.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[1] = half(1.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(1.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(1.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(1.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3] = half(1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/tesc/reload-tess-level.multi-patch.tesc b/third_party/spirv-cross/reference/shaders-msl/tesc/reload-tess-level.multi-patch.tesc deleted file mode 100644 index ae33de517a..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/tesc/reload-tess-level.multi-patch.tesc +++ /dev/null @@ -1,35 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position; -}; - -struct main0_in -{ - uint3 m_82; - ushort2 m_86; - float4 gl_Position; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], device main0_in* spvIn [[buffer(22)]]) -{ - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 4]; - device main0_in* gl_in = &spvIn[min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1) * spvIndirectParams[0]]; - uint gl_InvocationID = gl_GlobalInvocationID.x % 4; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 4, spvIndirectParams[1] - 1); - if (gl_InvocationID == 0) - { - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(2.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(3.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(4.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3] = half(5.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[0] = half(mix(float(spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0]), float(spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3]), 0.5)); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[1] = half(mix(float(spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2]), float(spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1]), 0.5)); - } - gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/tesc/reload-tess-level.tesc b/third_party/spirv-cross/reference/shaders-msl/tesc/reload-tess-level.tesc deleted file mode 100644 index eafc50607d..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/tesc/reload-tess-level.tesc +++ /dev/null @@ -1,35 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position; -}; - -struct main0_in -{ - float4 gl_Position [[attribute(0)]]; -}; - -kernel void main0(main0_in in [[stage_in]], uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], threadgroup main0_in* gl_in [[threadgroup(0)]]) -{ - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 4]; - if (gl_InvocationID < spvIndirectParams[0]) - gl_in[gl_InvocationID] = in; - threadgroup_barrier(mem_flags::mem_threadgroup); - if (gl_InvocationID >= 4) - return; - if (gl_InvocationID == 0) - { - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(2.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(3.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(4.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3] = half(5.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[0] = half(mix(float(spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0]), float(spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3]), 0.5)); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[1] = half(mix(float(spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2]), float(spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1]), 0.5)); - } - gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/tesc/struct-output.multi-patch.tesc b/third_party/spirv-cross/reference/shaders-msl/tesc/struct-output.multi-patch.tesc deleted file mode 100644 index eaab245c1c..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/tesc/struct-output.multi-patch.tesc +++ /dev/null @@ -1,45 +0,0 @@ -#include -#include - -using namespace metal; - -struct te_data -{ - float a; - float b; - uint c; -}; - -struct main0_out -{ - float in_te_attr; - te_data in_te_data0; - te_data in_te_data1; -}; - -struct main0_in -{ - float3 in_tc_attr; - ushort2 m_107; -}; - -kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], device main0_in* spvIn [[buffer(22)]]) -{ - device main0_out* gl_out = &spvOut[gl_GlobalInvocationID.x - gl_GlobalInvocationID.x % 3]; - device main0_in* gl_in = &spvIn[min(gl_GlobalInvocationID.x / 3, spvIndirectParams[1] - 1) * spvIndirectParams[0]]; - uint gl_InvocationID = gl_GlobalInvocationID.x % 3; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 3, spvIndirectParams[1] - 1); - te_data d = te_data{ float(gl_InvocationID), float(gl_InvocationID + 1), uint(gl_InvocationID) }; - gl_out[gl_InvocationID].in_te_data0 = d; - threadgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup); - te_data e = gl_out[(gl_InvocationID + 1) % 3].in_te_data0; - gl_out[gl_InvocationID].in_te_data1 = te_data{ d.a + e.a, d.b + e.b, d.c + e.c }; - gl_out[gl_InvocationID].in_te_attr = gl_in[gl_InvocationID].in_tc_attr.x; - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[0] = half(1.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[1] = half(1.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(1.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(1.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(1.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3] = half(1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/tesc/water_tess.multi-patch.tesc b/third_party/spirv-cross/reference/shaders-msl/tesc/water_tess.multi-patch.tesc deleted file mode 100644 index f302302ae2..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/tesc/water_tess.multi-patch.tesc +++ /dev/null @@ -1,135 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct UBO -{ - float4 uScale; - float3 uCamPos; - float2 uPatchSize; - float2 uMaxTessLevel; - float uDistanceMod; - float4 uFrustum[6]; -}; - -struct main0_patchOut -{ - float2 vOutPatchPosBase; - float4 vPatchLods; -}; - -struct main0_in -{ - float3 vPatchPosBase; - ushort2 m_430; -}; - -static inline __attribute__((always_inline)) -bool frustum_cull(thread const float2& p0, constant UBO& v_41) -{ - float2 min_xz = (p0 - float2(10.0)) * v_41.uScale.xy; - float2 max_xz = ((p0 + v_41.uPatchSize) + float2(10.0)) * v_41.uScale.xy; - float3 bb_min = float3(min_xz.x, -10.0, min_xz.y); - float3 bb_max = float3(max_xz.x, 10.0, max_xz.y); - float3 center = (bb_min + bb_max) * 0.5; - float radius = 0.5 * length(bb_max - bb_min); - float3 f0 = float3(dot(v_41.uFrustum[0], float4(center, 1.0)), dot(v_41.uFrustum[1], float4(center, 1.0)), dot(v_41.uFrustum[2], float4(center, 1.0))); - float3 f1 = float3(dot(v_41.uFrustum[3], float4(center, 1.0)), dot(v_41.uFrustum[4], float4(center, 1.0)), dot(v_41.uFrustum[5], float4(center, 1.0))); - bool _205 = any(f0 <= float3(-radius)); - bool _215; - if (!_205) - { - _215 = any(f1 <= float3(-radius)); - } - else - { - _215 = _205; - } - return !_215; -} - -static inline __attribute__((always_inline)) -float lod_factor(thread const float2& pos_, constant UBO& v_41) -{ - float2 pos = pos_ * v_41.uScale.xy; - float3 dist_to_cam = v_41.uCamPos - float3(pos.x, 0.0, pos.y); - float level0 = log2((length(dist_to_cam) + 9.9999997473787516355514526367188e-05) * v_41.uDistanceMod); - return fast::clamp(level0, 0.0, v_41.uMaxTessLevel.x); -} - -static inline __attribute__((always_inline)) -float4 tess_level(thread const float4& lod, constant UBO& v_41) -{ - return exp2(-lod) * v_41.uMaxTessLevel.y; -} - -static inline __attribute__((always_inline)) -float tess_level(thread const float& lod, constant UBO& v_41) -{ - return v_41.uMaxTessLevel.y * exp2(-lod); -} - -static inline __attribute__((always_inline)) -void compute_tess_levels(thread const float2& p0, constant UBO& v_41, device float2& vOutPatchPosBase, device float4& vPatchLods, device half (&gl_TessLevelOuter)[4], device half (&gl_TessLevelInner)[2]) -{ - vOutPatchPosBase = p0; - float2 param = p0 + (float2(-0.5) * v_41.uPatchSize); - float l00 = lod_factor(param, v_41); - float2 param_1 = p0 + (float2(0.5, -0.5) * v_41.uPatchSize); - float l10 = lod_factor(param_1, v_41); - float2 param_2 = p0 + (float2(1.5, -0.5) * v_41.uPatchSize); - float l20 = lod_factor(param_2, v_41); - float2 param_3 = p0 + (float2(-0.5, 0.5) * v_41.uPatchSize); - float l01 = lod_factor(param_3, v_41); - float2 param_4 = p0 + (float2(0.5) * v_41.uPatchSize); - float l11 = lod_factor(param_4, v_41); - float2 param_5 = p0 + (float2(1.5, 0.5) * v_41.uPatchSize); - float l21 = lod_factor(param_5, v_41); - float2 param_6 = p0 + (float2(-0.5, 1.5) * v_41.uPatchSize); - float l02 = lod_factor(param_6, v_41); - float2 param_7 = p0 + (float2(0.5, 1.5) * v_41.uPatchSize); - float l12 = lod_factor(param_7, v_41); - float2 param_8 = p0 + (float2(1.5) * v_41.uPatchSize); - float l22 = lod_factor(param_8, v_41); - float4 lods = float4(dot(float4(l01, l11, l02, l12), float4(0.25)), dot(float4(l00, l10, l01, l11), float4(0.25)), dot(float4(l10, l20, l11, l21), float4(0.25)), dot(float4(l11, l21, l12, l22), float4(0.25))); - vPatchLods = lods; - float4 outer_lods = fast::min(lods, lods.yzwx); - float4 param_9 = outer_lods; - float4 levels = tess_level(param_9, v_41); - gl_TessLevelOuter[0] = half(levels.x); - gl_TessLevelOuter[1] = half(levels.y); - gl_TessLevelOuter[2] = half(levels.z); - gl_TessLevelOuter[3] = half(levels.w); - float min_lod = fast::min(fast::min(lods.x, lods.y), fast::min(lods.z, lods.w)); - float param_10 = fast::min(min_lod, l11); - float inner = tess_level(param_10, v_41); - gl_TessLevelInner[0] = half(inner); - gl_TessLevelInner[1] = half(inner); -} - -kernel void main0(constant UBO& v_41 [[buffer(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], device main0_in* spvIn [[buffer(22)]]) -{ - device main0_patchOut& patchOut = spvPatchOut[gl_GlobalInvocationID.x / 1]; - device main0_in* gl_in = &spvIn[min(gl_GlobalInvocationID.x / 1, spvIndirectParams[1] - 1) * spvIndirectParams[0]]; - uint gl_PrimitiveID = min(gl_GlobalInvocationID.x / 1, spvIndirectParams[1] - 1); - float2 p0 = gl_in[0].vPatchPosBase.xy; - float2 param = p0; - if (!frustum_cull(param, v_41)) - { - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(-1.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(-1.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(-1.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3] = half(-1.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[0] = half(-1.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[1] = half(-1.0); - } - else - { - float2 param_1 = p0; - compute_tess_levels(param_1, v_41, patchOut.vOutPatchPosBase, patchOut.vPatchLods, spvTessLevel[gl_PrimitiveID].edgeTessellationFactor, spvTessLevel[gl_PrimitiveID].insideTessellationFactor); - } -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/tesc/water_tess.tesc b/third_party/spirv-cross/reference/shaders-msl/tesc/water_tess.tesc deleted file mode 100644 index 0287df0cd7..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/tesc/water_tess.tesc +++ /dev/null @@ -1,137 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct UBO -{ - float4 uScale; - float3 uCamPos; - float2 uPatchSize; - float2 uMaxTessLevel; - float uDistanceMod; - float4 uFrustum[6]; -}; - -struct main0_patchOut -{ - float2 vOutPatchPosBase; - float4 vPatchLods; -}; - -struct main0_in -{ - float2 vPatchPosBase [[attribute(0)]]; -}; - -static inline __attribute__((always_inline)) -bool frustum_cull(thread const float2& p0, constant UBO& v_41) -{ - float2 min_xz = (p0 - float2(10.0)) * v_41.uScale.xy; - float2 max_xz = ((p0 + v_41.uPatchSize) + float2(10.0)) * v_41.uScale.xy; - float3 bb_min = float3(min_xz.x, -10.0, min_xz.y); - float3 bb_max = float3(max_xz.x, 10.0, max_xz.y); - float3 center = (bb_min + bb_max) * 0.5; - float radius = 0.5 * length(bb_max - bb_min); - float3 f0 = float3(dot(v_41.uFrustum[0], float4(center, 1.0)), dot(v_41.uFrustum[1], float4(center, 1.0)), dot(v_41.uFrustum[2], float4(center, 1.0))); - float3 f1 = float3(dot(v_41.uFrustum[3], float4(center, 1.0)), dot(v_41.uFrustum[4], float4(center, 1.0)), dot(v_41.uFrustum[5], float4(center, 1.0))); - bool _205 = any(f0 <= float3(-radius)); - bool _215; - if (!_205) - { - _215 = any(f1 <= float3(-radius)); - } - else - { - _215 = _205; - } - return !_215; -} - -static inline __attribute__((always_inline)) -float lod_factor(thread const float2& pos_, constant UBO& v_41) -{ - float2 pos = pos_ * v_41.uScale.xy; - float3 dist_to_cam = v_41.uCamPos - float3(pos.x, 0.0, pos.y); - float level0 = log2((length(dist_to_cam) + 9.9999997473787516355514526367188e-05) * v_41.uDistanceMod); - return fast::clamp(level0, 0.0, v_41.uMaxTessLevel.x); -} - -static inline __attribute__((always_inline)) -float4 tess_level(thread const float4& lod, constant UBO& v_41) -{ - return exp2(-lod) * v_41.uMaxTessLevel.y; -} - -static inline __attribute__((always_inline)) -float tess_level(thread const float& lod, constant UBO& v_41) -{ - return v_41.uMaxTessLevel.y * exp2(-lod); -} - -static inline __attribute__((always_inline)) -void compute_tess_levels(thread const float2& p0, constant UBO& v_41, device float2& vOutPatchPosBase, device float4& vPatchLods, device half (&gl_TessLevelOuter)[4], device half (&gl_TessLevelInner)[2]) -{ - vOutPatchPosBase = p0; - float2 param = p0 + (float2(-0.5) * v_41.uPatchSize); - float l00 = lod_factor(param, v_41); - float2 param_1 = p0 + (float2(0.5, -0.5) * v_41.uPatchSize); - float l10 = lod_factor(param_1, v_41); - float2 param_2 = p0 + (float2(1.5, -0.5) * v_41.uPatchSize); - float l20 = lod_factor(param_2, v_41); - float2 param_3 = p0 + (float2(-0.5, 0.5) * v_41.uPatchSize); - float l01 = lod_factor(param_3, v_41); - float2 param_4 = p0 + (float2(0.5) * v_41.uPatchSize); - float l11 = lod_factor(param_4, v_41); - float2 param_5 = p0 + (float2(1.5, 0.5) * v_41.uPatchSize); - float l21 = lod_factor(param_5, v_41); - float2 param_6 = p0 + (float2(-0.5, 1.5) * v_41.uPatchSize); - float l02 = lod_factor(param_6, v_41); - float2 param_7 = p0 + (float2(0.5, 1.5) * v_41.uPatchSize); - float l12 = lod_factor(param_7, v_41); - float2 param_8 = p0 + (float2(1.5) * v_41.uPatchSize); - float l22 = lod_factor(param_8, v_41); - float4 lods = float4(dot(float4(l01, l11, l02, l12), float4(0.25)), dot(float4(l00, l10, l01, l11), float4(0.25)), dot(float4(l10, l20, l11, l21), float4(0.25)), dot(float4(l11, l21, l12, l22), float4(0.25))); - vPatchLods = lods; - float4 outer_lods = fast::min(lods, lods.yzwx); - float4 param_9 = outer_lods; - float4 levels = tess_level(param_9, v_41); - gl_TessLevelOuter[0] = half(levels.x); - gl_TessLevelOuter[1] = half(levels.y); - gl_TessLevelOuter[2] = half(levels.z); - gl_TessLevelOuter[3] = half(levels.w); - float min_lod = fast::min(fast::min(lods.x, lods.y), fast::min(lods.z, lods.w)); - float param_10 = fast::min(min_lod, l11); - float inner = tess_level(param_10, v_41); - gl_TessLevelInner[0] = half(inner); - gl_TessLevelInner[1] = half(inner); -} - -kernel void main0(main0_in in [[stage_in]], constant UBO& v_41 [[buffer(0)]], uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLQuadTessellationFactorsHalf* spvTessLevel [[buffer(26)]], threadgroup main0_in* gl_in [[threadgroup(0)]]) -{ - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - if (gl_InvocationID < spvIndirectParams[0]) - gl_in[gl_InvocationID] = in; - threadgroup_barrier(mem_flags::mem_threadgroup); - if (gl_InvocationID >= 1) - return; - float2 p0 = gl_in[0].vPatchPosBase; - float2 param = p0; - if (!frustum_cull(param, v_41)) - { - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0] = half(-1.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1] = half(-1.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2] = half(-1.0); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[3] = half(-1.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[0] = half(-1.0); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor[1] = half(-1.0); - } - else - { - float2 param_1 = p0; - compute_tess_levels(param_1, v_41, patchOut.vOutPatchPosBase, patchOut.vPatchLods, spvTessLevel[gl_PrimitiveID].edgeTessellationFactor, spvTessLevel[gl_PrimitiveID].insideTessellationFactor); - } -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/tese/input-array.tese b/third_party/spirv-cross/reference/shaders-msl/tese/input-array.tese deleted file mode 100644 index f6cfa2fb90..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/tese/input-array.tese +++ /dev/null @@ -1,36 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 Floats [[attribute(0)]]; - float4 Floats2 [[attribute(2)]]; -}; - -struct main0_patchIn -{ - patch_control_point gl_in; -}; - -static inline __attribute__((always_inline)) -void set_position(thread float4& gl_Position, thread patch_control_point& gl_in, thread float2& gl_TessCoord) -{ - gl_Position = (gl_in[0].Floats * gl_TessCoord.x) + (gl_in[1].Floats2 * gl_TessCoord.y); -} - -[[ patch(quad, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]], float2 gl_TessCoord [[position_in_patch]]) -{ - main0_out out = {}; - set_position(out.gl_Position, patchIn.gl_in, gl_TessCoord); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/tese/input-types.tese b/third_party/spirv-cross/reference/shaders-msl/tese/input-types.tese deleted file mode 100644 index af6db4626c..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/tese/input-types.tese +++ /dev/null @@ -1,87 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct Block -{ - float4 a; - float4 b; -}; - -struct PatchBlock -{ - float4 a; - float4 b; -}; - -struct Foo -{ - float4 a; - float4 b; -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 vColor [[attribute(0)]]; - float4 Block_a [[attribute(4)]]; - float4 Block_b [[attribute(5)]]; - float4 Foo_a [[attribute(14)]]; - float4 Foo_b [[attribute(15)]]; -}; - -struct main0_patchIn -{ - float4 vColors [[attribute(1)]]; - float4 PatchBlock_a [[attribute(6)]]; - float4 PatchBlock_b [[attribute(7)]]; - float4 Foo_a [[attribute(8)]]; - float4 Foo_b [[attribute(9)]]; - patch_control_point gl_in; -}; - -static inline __attribute__((always_inline)) -void set_from_function(thread float4& gl_Position, thread patch_control_point& gl_in, thread PatchBlock& patch_block, thread float4& vColors, thread Foo& vFoo) -{ - gl_Position = gl_in[0].Block_a; - gl_Position += gl_in[0].Block_b; - gl_Position += gl_in[1].Block_a; - gl_Position += gl_in[1].Block_b; - gl_Position += patch_block.a; - gl_Position += patch_block.b; - gl_Position += gl_in[0].vColor; - gl_Position += gl_in[1].vColor; - gl_Position += vColors; - Foo foo = vFoo; - gl_Position += foo.a; - gl_Position += foo.b; - Foo _106 = Foo{ gl_in[0].Foo_a, gl_in[0].Foo_b }; - foo = _106; - gl_Position += foo.a; - gl_Position += foo.b; - Foo _120 = Foo{ gl_in[1].Foo_a, gl_in[1].Foo_b }; - foo = _120; - gl_Position += foo.a; - gl_Position += foo.b; -} - -[[ patch(quad, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]]) -{ - main0_out out = {}; - PatchBlock patch_block = {}; - Foo vFoo = {}; - patch_block.a = patchIn.PatchBlock_a; - patch_block.b = patchIn.PatchBlock_b; - vFoo.a = patchIn.Foo_a; - vFoo.b = patchIn.Foo_b; - set_from_function(out.gl_Position, patchIn.gl_in, patch_block, patchIn.vColors, vFoo); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/tese/load-control-point-array-of-matrix.tese b/third_party/spirv-cross/reference/shaders-msl/tese/load-control-point-array-of-matrix.tese deleted file mode 100644 index 162874abd0..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/tese/load-control-point-array-of-matrix.tese +++ /dev/null @@ -1,84 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 vInputs_0 [[attribute(0)]]; - float4 vInputs_1 [[attribute(1)]]; - float4 vInputs_2 [[attribute(2)]]; - float4 vInputs_3 [[attribute(3)]]; -}; - -struct main0_patchIn -{ - float4 vBoo_0 [[attribute(4)]]; - float4 vBoo_1 [[attribute(5)]]; - float4 vBoo_2 [[attribute(6)]]; - float4 vBoo_3 [[attribute(7)]]; - int vIndex [[attribute(8)]]; - patch_control_point gl_in; -}; - -[[ patch(quad, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]]) -{ - main0_out out = {}; - spvUnsafeArray vBoo = {}; - vBoo[0] = patchIn.vBoo_0; - vBoo[1] = patchIn.vBoo_1; - vBoo[2] = patchIn.vBoo_2; - vBoo[3] = patchIn.vBoo_3; - spvUnsafeArray _16 = spvUnsafeArray({ float4x4(patchIn.gl_in[0].vInputs_0, patchIn.gl_in[0].vInputs_1, patchIn.gl_in[0].vInputs_2, patchIn.gl_in[0].vInputs_3), float4x4(patchIn.gl_in[1].vInputs_0, patchIn.gl_in[1].vInputs_1, patchIn.gl_in[1].vInputs_2, patchIn.gl_in[1].vInputs_3), float4x4(patchIn.gl_in[2].vInputs_0, patchIn.gl_in[2].vInputs_1, patchIn.gl_in[2].vInputs_2, patchIn.gl_in[2].vInputs_3), float4x4(patchIn.gl_in[3].vInputs_0, patchIn.gl_in[3].vInputs_1, patchIn.gl_in[3].vInputs_2, patchIn.gl_in[3].vInputs_3), float4x4(patchIn.gl_in[4].vInputs_0, patchIn.gl_in[4].vInputs_1, patchIn.gl_in[4].vInputs_2, patchIn.gl_in[4].vInputs_3), float4x4(patchIn.gl_in[5].vInputs_0, patchIn.gl_in[5].vInputs_1, patchIn.gl_in[5].vInputs_2, patchIn.gl_in[5].vInputs_3), float4x4(patchIn.gl_in[6].vInputs_0, patchIn.gl_in[6].vInputs_1, patchIn.gl_in[6].vInputs_2, patchIn.gl_in[6].vInputs_3), float4x4(patchIn.gl_in[7].vInputs_0, patchIn.gl_in[7].vInputs_1, patchIn.gl_in[7].vInputs_2, patchIn.gl_in[7].vInputs_3), float4x4(patchIn.gl_in[8].vInputs_0, patchIn.gl_in[8].vInputs_1, patchIn.gl_in[8].vInputs_2, patchIn.gl_in[8].vInputs_3), float4x4(patchIn.gl_in[9].vInputs_0, patchIn.gl_in[9].vInputs_1, patchIn.gl_in[9].vInputs_2, patchIn.gl_in[9].vInputs_3), float4x4(patchIn.gl_in[10].vInputs_0, patchIn.gl_in[10].vInputs_1, patchIn.gl_in[10].vInputs_2, patchIn.gl_in[10].vInputs_3), float4x4(patchIn.gl_in[11].vInputs_0, patchIn.gl_in[11].vInputs_1, patchIn.gl_in[11].vInputs_2, patchIn.gl_in[11].vInputs_3), float4x4(patchIn.gl_in[12].vInputs_0, patchIn.gl_in[12].vInputs_1, patchIn.gl_in[12].vInputs_2, patchIn.gl_in[12].vInputs_3), float4x4(patchIn.gl_in[13].vInputs_0, patchIn.gl_in[13].vInputs_1, patchIn.gl_in[13].vInputs_2, patchIn.gl_in[13].vInputs_3), float4x4(patchIn.gl_in[14].vInputs_0, patchIn.gl_in[14].vInputs_1, patchIn.gl_in[14].vInputs_2, patchIn.gl_in[14].vInputs_3), float4x4(patchIn.gl_in[15].vInputs_0, patchIn.gl_in[15].vInputs_1, patchIn.gl_in[15].vInputs_2, patchIn.gl_in[15].vInputs_3), float4x4(patchIn.gl_in[16].vInputs_0, patchIn.gl_in[16].vInputs_1, patchIn.gl_in[16].vInputs_2, patchIn.gl_in[16].vInputs_3), float4x4(patchIn.gl_in[17].vInputs_0, patchIn.gl_in[17].vInputs_1, patchIn.gl_in[17].vInputs_2, patchIn.gl_in[17].vInputs_3), float4x4(patchIn.gl_in[18].vInputs_0, patchIn.gl_in[18].vInputs_1, patchIn.gl_in[18].vInputs_2, patchIn.gl_in[18].vInputs_3), float4x4(patchIn.gl_in[19].vInputs_0, patchIn.gl_in[19].vInputs_1, patchIn.gl_in[19].vInputs_2, patchIn.gl_in[19].vInputs_3), float4x4(patchIn.gl_in[20].vInputs_0, patchIn.gl_in[20].vInputs_1, patchIn.gl_in[20].vInputs_2, patchIn.gl_in[20].vInputs_3), float4x4(patchIn.gl_in[21].vInputs_0, patchIn.gl_in[21].vInputs_1, patchIn.gl_in[21].vInputs_2, patchIn.gl_in[21].vInputs_3), float4x4(patchIn.gl_in[22].vInputs_0, patchIn.gl_in[22].vInputs_1, patchIn.gl_in[22].vInputs_2, patchIn.gl_in[22].vInputs_3), float4x4(patchIn.gl_in[23].vInputs_0, patchIn.gl_in[23].vInputs_1, patchIn.gl_in[23].vInputs_2, patchIn.gl_in[23].vInputs_3), float4x4(patchIn.gl_in[24].vInputs_0, patchIn.gl_in[24].vInputs_1, patchIn.gl_in[24].vInputs_2, patchIn.gl_in[24].vInputs_3), float4x4(patchIn.gl_in[25].vInputs_0, patchIn.gl_in[25].vInputs_1, patchIn.gl_in[25].vInputs_2, patchIn.gl_in[25].vInputs_3), float4x4(patchIn.gl_in[26].vInputs_0, patchIn.gl_in[26].vInputs_1, patchIn.gl_in[26].vInputs_2, patchIn.gl_in[26].vInputs_3), float4x4(patchIn.gl_in[27].vInputs_0, patchIn.gl_in[27].vInputs_1, patchIn.gl_in[27].vInputs_2, patchIn.gl_in[27].vInputs_3), float4x4(patchIn.gl_in[28].vInputs_0, patchIn.gl_in[28].vInputs_1, patchIn.gl_in[28].vInputs_2, patchIn.gl_in[28].vInputs_3), float4x4(patchIn.gl_in[29].vInputs_0, patchIn.gl_in[29].vInputs_1, patchIn.gl_in[29].vInputs_2, patchIn.gl_in[29].vInputs_3), float4x4(patchIn.gl_in[30].vInputs_0, patchIn.gl_in[30].vInputs_1, patchIn.gl_in[30].vInputs_2, patchIn.gl_in[30].vInputs_3), float4x4(patchIn.gl_in[31].vInputs_0, patchIn.gl_in[31].vInputs_1, patchIn.gl_in[31].vInputs_2, patchIn.gl_in[31].vInputs_3) }); - spvUnsafeArray tmp; - tmp = _16; - out.gl_Position = (tmp[0][patchIn.vIndex] + tmp[1][patchIn.vIndex]) + vBoo[patchIn.vIndex]; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/tese/load-control-point-array.tese b/third_party/spirv-cross/reference/shaders-msl/tese/load-control-point-array.tese deleted file mode 100644 index 09c19cb47f..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/tese/load-control-point-array.tese +++ /dev/null @@ -1,81 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 vInputs [[attribute(0)]]; -}; - -struct main0_patchIn -{ - float4 vBoo_0 [[attribute(1)]]; - float4 vBoo_1 [[attribute(2)]]; - float4 vBoo_2 [[attribute(3)]]; - float4 vBoo_3 [[attribute(4)]]; - int vIndex [[attribute(5)]]; - patch_control_point gl_in; -}; - -[[ patch(quad, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]]) -{ - main0_out out = {}; - spvUnsafeArray vBoo = {}; - vBoo[0] = patchIn.vBoo_0; - vBoo[1] = patchIn.vBoo_1; - vBoo[2] = patchIn.vBoo_2; - vBoo[3] = patchIn.vBoo_3; - spvUnsafeArray _15 = spvUnsafeArray({ patchIn.gl_in[0].vInputs, patchIn.gl_in[1].vInputs, patchIn.gl_in[2].vInputs, patchIn.gl_in[3].vInputs, patchIn.gl_in[4].vInputs, patchIn.gl_in[5].vInputs, patchIn.gl_in[6].vInputs, patchIn.gl_in[7].vInputs, patchIn.gl_in[8].vInputs, patchIn.gl_in[9].vInputs, patchIn.gl_in[10].vInputs, patchIn.gl_in[11].vInputs, patchIn.gl_in[12].vInputs, patchIn.gl_in[13].vInputs, patchIn.gl_in[14].vInputs, patchIn.gl_in[15].vInputs, patchIn.gl_in[16].vInputs, patchIn.gl_in[17].vInputs, patchIn.gl_in[18].vInputs, patchIn.gl_in[19].vInputs, patchIn.gl_in[20].vInputs, patchIn.gl_in[21].vInputs, patchIn.gl_in[22].vInputs, patchIn.gl_in[23].vInputs, patchIn.gl_in[24].vInputs, patchIn.gl_in[25].vInputs, patchIn.gl_in[26].vInputs, patchIn.gl_in[27].vInputs, patchIn.gl_in[28].vInputs, patchIn.gl_in[29].vInputs, patchIn.gl_in[30].vInputs, patchIn.gl_in[31].vInputs }); - spvUnsafeArray tmp; - tmp = _15; - out.gl_Position = (tmp[0] + tmp[1]) + vBoo[patchIn.vIndex]; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/tese/quad.domain.tese b/third_party/spirv-cross/reference/shaders-msl/tese/quad.domain.tese deleted file mode 100644 index 9dadebc4e4..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/tese/quad.domain.tese +++ /dev/null @@ -1,73 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_patchIn -{ - float4 gl_TessLevelOuter [[attribute(0)]]; - float2 gl_TessLevelInner [[attribute(1)]]; -}; - -[[ patch(quad, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]], float2 gl_TessCoord [[position_in_patch]]) -{ - main0_out out = {}; - spvUnsafeArray gl_TessLevelInner = {}; - spvUnsafeArray gl_TessLevelOuter = {}; - gl_TessLevelInner[0] = patchIn.gl_TessLevelInner.x; - gl_TessLevelInner[1] = patchIn.gl_TessLevelInner.y; - gl_TessLevelOuter[0] = patchIn.gl_TessLevelOuter.x; - gl_TessLevelOuter[1] = patchIn.gl_TessLevelOuter.y; - gl_TessLevelOuter[2] = patchIn.gl_TessLevelOuter.z; - gl_TessLevelOuter[3] = patchIn.gl_TessLevelOuter.w; - gl_TessCoord.y = 1.0 - gl_TessCoord.y; - out.gl_Position = float4(((gl_TessCoord.x * gl_TessLevelInner[0]) * gl_TessLevelOuter[0]) + (((1.0 - gl_TessCoord.x) * gl_TessLevelInner[0]) * gl_TessLevelOuter[2]), ((gl_TessCoord.y * gl_TessLevelInner[1]) * gl_TessLevelOuter[3]) + (((1.0 - gl_TessCoord.y) * gl_TessLevelInner[1]) * gl_TessLevelOuter[1]), 0.0, 1.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/tese/quad.tese b/third_party/spirv-cross/reference/shaders-msl/tese/quad.tese deleted file mode 100644 index ae320812df..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/tese/quad.tese +++ /dev/null @@ -1,78 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_patchIn -{ - float4 gl_TessLevelOuter [[attribute(0)]]; - float2 gl_TessLevelInner [[attribute(1)]]; -}; - -static inline __attribute__((always_inline)) -void set_position(thread float4& gl_Position, thread float2& gl_TessCoord, thread spvUnsafeArray& gl_TessLevelInner, thread spvUnsafeArray& gl_TessLevelOuter) -{ - gl_Position = float4(((gl_TessCoord.x * gl_TessLevelInner[0]) * gl_TessLevelOuter[0]) + (((1.0 - gl_TessCoord.x) * gl_TessLevelInner[0]) * gl_TessLevelOuter[2]), ((gl_TessCoord.y * gl_TessLevelInner[1]) * gl_TessLevelOuter[1]) + (((1.0 - gl_TessCoord.y) * gl_TessLevelInner[1]) * gl_TessLevelOuter[3]), 0.0, 1.0); -} - -[[ patch(quad, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]], float2 gl_TessCoord [[position_in_patch]]) -{ - main0_out out = {}; - spvUnsafeArray gl_TessLevelInner = {}; - spvUnsafeArray gl_TessLevelOuter = {}; - gl_TessLevelInner[0] = patchIn.gl_TessLevelInner.x; - gl_TessLevelInner[1] = patchIn.gl_TessLevelInner.y; - gl_TessLevelOuter[0] = patchIn.gl_TessLevelOuter.x; - gl_TessLevelOuter[1] = patchIn.gl_TessLevelOuter.y; - gl_TessLevelOuter[2] = patchIn.gl_TessLevelOuter.z; - gl_TessLevelOuter[3] = patchIn.gl_TessLevelOuter.w; - set_position(out.gl_Position, gl_TessCoord, gl_TessLevelInner, gl_TessLevelOuter); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/tese/read-tess-level-in-func-quad.msl2.tese b/third_party/spirv-cross/reference/shaders-msl/tese/read-tess-level-in-func-quad.msl2.tese deleted file mode 100644 index 14d2565e01..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/tese/read-tess-level-in-func-quad.msl2.tese +++ /dev/null @@ -1,78 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_patchIn -{ - float4 gl_TessLevelOuter [[attribute(0)]]; - float2 gl_TessLevelInner [[attribute(1)]]; -}; - -static inline __attribute__((always_inline)) -float4 read_tess_levels(thread spvUnsafeArray& gl_TessLevelOuter, thread spvUnsafeArray& gl_TessLevelInner) -{ - return float4(gl_TessLevelOuter[0], gl_TessLevelOuter[1], gl_TessLevelOuter[2], gl_TessLevelOuter[3]) + float2(gl_TessLevelInner[0], gl_TessLevelInner[1]).xyxy; -} - -[[ patch(quad, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]]) -{ - main0_out out = {}; - spvUnsafeArray gl_TessLevelOuter = {}; - spvUnsafeArray gl_TessLevelInner = {}; - gl_TessLevelOuter[0] = patchIn.gl_TessLevelOuter.x; - gl_TessLevelOuter[1] = patchIn.gl_TessLevelOuter.y; - gl_TessLevelOuter[2] = patchIn.gl_TessLevelOuter.z; - gl_TessLevelOuter[3] = patchIn.gl_TessLevelOuter.w; - gl_TessLevelInner[0] = patchIn.gl_TessLevelInner.x; - gl_TessLevelInner[1] = patchIn.gl_TessLevelInner.y; - out.gl_Position = read_tess_levels(gl_TessLevelOuter, gl_TessLevelInner); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/tese/read-tess-level-in-func.msl2.tese b/third_party/spirv-cross/reference/shaders-msl/tese/read-tess-level-in-func.msl2.tese deleted file mode 100644 index f2fd49e9a4..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/tese/read-tess-level-in-func.msl2.tese +++ /dev/null @@ -1,75 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_patchIn -{ - float4 gl_TessLevel [[attribute(0)]]; -}; - -static inline __attribute__((always_inline)) -float4 read_tess_levels(thread spvUnsafeArray& gl_TessLevelOuter, thread spvUnsafeArray& gl_TessLevelInner) -{ - return float4(gl_TessLevelOuter[0], gl_TessLevelOuter[1], gl_TessLevelOuter[2], gl_TessLevelOuter[3]) + float2(gl_TessLevelInner[0], gl_TessLevelInner[1]).xyxy; -} - -[[ patch(triangle, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]]) -{ - main0_out out = {}; - spvUnsafeArray gl_TessLevelOuter = {}; - spvUnsafeArray gl_TessLevelInner = {}; - gl_TessLevelOuter[0] = patchIn.gl_TessLevel.x; - gl_TessLevelOuter[1] = patchIn.gl_TessLevel.y; - gl_TessLevelOuter[2] = patchIn.gl_TessLevel.z; - gl_TessLevelInner[0] = patchIn.gl_TessLevel.w; - out.gl_Position = read_tess_levels(gl_TessLevelOuter, gl_TessLevelInner); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/tese/set-from-function.tese b/third_party/spirv-cross/reference/shaders-msl/tese/set-from-function.tese deleted file mode 100644 index 30bb720c01..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/tese/set-from-function.tese +++ /dev/null @@ -1,63 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct Block -{ - float4 a; - float4 b; -}; - -struct Foo -{ - float4 a; - float4 b; -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 vColor [[attribute(0)]]; - float4 Block_a [[attribute(2)]]; - float4 Block_b [[attribute(3)]]; -}; - -struct main0_patchIn -{ - float4 vColors [[attribute(1)]]; - float4 Foo_a [[attribute(4)]]; - float4 Foo_b [[attribute(5)]]; - patch_control_point gl_in; -}; - -static inline __attribute__((always_inline)) -void set_from_function(thread float4& gl_Position, thread patch_control_point& gl_in, thread float4& vColors, thread Foo& vFoo) -{ - gl_Position = gl_in[0].Block_a; - gl_Position += gl_in[0].Block_b; - gl_Position += gl_in[1].Block_a; - gl_Position += gl_in[1].Block_b; - gl_Position += gl_in[0].vColor; - gl_Position += gl_in[1].vColor; - gl_Position += vColors; - gl_Position += vFoo.a; - gl_Position += vFoo.b; -} - -[[ patch(quad, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]]) -{ - main0_out out = {}; - Foo vFoo = {}; - vFoo.a = patchIn.Foo_a; - vFoo.b = patchIn.Foo_b; - set_from_function(out.gl_Position, patchIn.gl_in, patchIn.vColors, vFoo); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/tese/triangle-tess-level.tese b/third_party/spirv-cross/reference/shaders-msl/tese/triangle-tess-level.tese deleted file mode 100644 index 6930e1479d..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/tese/triangle-tess-level.tese +++ /dev/null @@ -1,69 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_patchIn -{ - float4 gl_TessLevel [[attribute(0)]]; -}; - -[[ patch(triangle, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]], float3 gl_TessCoord [[position_in_patch]]) -{ - main0_out out = {}; - spvUnsafeArray gl_TessLevelInner = {}; - spvUnsafeArray gl_TessLevelOuter = {}; - gl_TessLevelInner[0] = patchIn.gl_TessLevel.w; - gl_TessLevelOuter[0] = patchIn.gl_TessLevel.x; - gl_TessLevelOuter[1] = patchIn.gl_TessLevel.y; - gl_TessLevelOuter[2] = patchIn.gl_TessLevel.z; - out.gl_Position = float4((gl_TessCoord.x * gl_TessLevelInner[0]) * gl_TessLevelOuter[0], (gl_TessCoord.y * gl_TessLevelInner[0]) * gl_TessLevelOuter[1], (gl_TessCoord.z * gl_TessLevelInner[0]) * gl_TessLevelOuter[2], 1.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/tese/triangle.tese b/third_party/spirv-cross/reference/shaders-msl/tese/triangle.tese deleted file mode 100644 index 12715be198..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/tese/triangle.tese +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -[[ patch(triangle, 0) ]] vertex main0_out main0() -{ - main0_out out = {}; - out.gl_Position = float4(1.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/tese/water_tess.tese b/third_party/spirv-cross/reference/shaders-msl/tese/water_tess.tese deleted file mode 100644 index 1295c459cb..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/tese/water_tess.tese +++ /dev/null @@ -1,75 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct UBO -{ - float4x4 uMVP; - float4 uScale; - float2 uInvScale; - float3 uCamPos; - float2 uPatchSize; - float2 uInvHeightmapSize; -}; - -struct main0_out -{ - float3 vWorld [[user(locn0)]]; - float4 vGradNormalTex [[user(locn1)]]; - float4 gl_Position [[position]]; -}; - -struct main0_patchIn -{ - float2 vOutPatchPosBase [[attribute(0)]]; - float4 vPatchLods [[attribute(1)]]; -}; - -static inline __attribute__((always_inline)) -float2 lerp_vertex(thread const float2& tess_coord, thread float2& vOutPatchPosBase, constant UBO& v_31) -{ - return vOutPatchPosBase + (tess_coord * v_31.uPatchSize); -} - -static inline __attribute__((always_inline)) -float2 lod_factor(thread const float2& tess_coord, thread float4& vPatchLods) -{ - float2 x = mix(vPatchLods.yx, vPatchLods.zw, float2(tess_coord.x)); - float level0 = mix(x.x, x.y, tess_coord.y); - float floor_level = floor(level0); - float fract_level = level0 - floor_level; - return float2(floor_level, fract_level); -} - -static inline __attribute__((always_inline)) -float3 sample_height_displacement(thread const float2& uv, thread const float2& off, thread const float2& lod, thread texture2d uHeightmapDisplacement, thread const sampler uHeightmapDisplacementSmplr) -{ - return mix(uHeightmapDisplacement.sample(uHeightmapDisplacementSmplr, (uv + (off * 0.5)), level(lod.x)).xyz, uHeightmapDisplacement.sample(uHeightmapDisplacementSmplr, (uv + (off * 1.0)), level(lod.x + 1.0)).xyz, float3(lod.y)); -} - -[[ patch(quad, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]], constant UBO& v_31 [[buffer(0)]], texture2d uHeightmapDisplacement [[texture(0)]], sampler uHeightmapDisplacementSmplr [[sampler(0)]], float2 gl_TessCoord [[position_in_patch]]) -{ - main0_out out = {}; - float2 tess_coord = float3(gl_TessCoord, 0).xy; - float2 param = tess_coord; - float2 pos = lerp_vertex(param, patchIn.vOutPatchPosBase, v_31); - float2 param_1 = tess_coord; - float2 lod = lod_factor(param_1, patchIn.vPatchLods); - float2 tex = pos * v_31.uInvHeightmapSize; - pos *= v_31.uScale.xy; - float delta_mod = exp2(lod.x); - float2 off = v_31.uInvHeightmapSize * delta_mod; - out.vGradNormalTex = float4(tex + (v_31.uInvHeightmapSize * 0.5), tex * v_31.uScale.zw); - float2 param_2 = tex; - float2 param_3 = off; - float2 param_4 = lod; - float3 height_displacement = sample_height_displacement(param_2, param_3, param_4, uHeightmapDisplacement, uHeightmapDisplacementSmplr); - pos += height_displacement.yz; - out.vWorld = float3(pos.x, height_displacement.x, pos.y); - out.gl_Position = v_31.uMVP * float4(out.vWorld, 1.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/array-component-io.for-tess.vert b/third_party/spirv-cross/reference/shaders-msl/vert/array-component-io.for-tess.vert deleted file mode 100644 index 24958eb50d..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/array-component-io.for-tess.vert +++ /dev/null @@ -1,98 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 m_location_0; - float4 m_location_1; - float4 m_location_2; - float4 gl_Position; -}; - -struct main0_in -{ - float4 m_location_0 [[attribute(0)]]; - float4 m_location_1 [[attribute(1)]]; - float4 m_location_2 [[attribute(2)]]; - float4 Pos [[attribute(4)]]; -}; - -kernel void main0(main0_in in [[stage_in]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint3 spvStageInputSize [[grid_size]], device main0_out* spvOut [[buffer(28)]]) -{ - spvUnsafeArray A = {}; - spvUnsafeArray B = {}; - spvUnsafeArray C = {}; - float D = {}; - spvUnsafeArray InA = {}; - spvUnsafeArray InB = {}; - spvUnsafeArray InC = {}; - float InD = {}; - device main0_out& out = spvOut[gl_GlobalInvocationID.y * spvStageInputSize.x + gl_GlobalInvocationID.x]; - InA[0] = in.m_location_1.x; - InA[1] = in.m_location_2.x; - InB[0] = in.m_location_1.zw; - InB[1] = in.m_location_2.zw; - InC[0] = in.m_location_0.y; - InC[1] = in.m_location_1.y; - InC[2] = in.m_location_2.y; - InD = in.m_location_0.w; - if (any(gl_GlobalInvocationID >= spvStageInputSize)) - return; - out.gl_Position = in.Pos; - A = InA; - B = InB; - C = InC; - D = InD; - out.m_location_1.x = A[0]; - out.m_location_2.x = A[1]; - out.m_location_1.zw = B[0]; - out.m_location_2.zw = B[1]; - out.m_location_0.y = C[0]; - out.m_location_1.y = C[1]; - out.m_location_2.y = C[2]; - out.m_location_0.w = D; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/array-component-io.vert b/third_party/spirv-cross/reference/shaders-msl/vert/array-component-io.vert deleted file mode 100644 index 352c9d2ef0..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/array-component-io.vert +++ /dev/null @@ -1,100 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float C_0 [[user(locn0_1)]]; - float D [[user(locn0_3)]]; - float A_0 [[user(locn1)]]; - float C_1 [[user(locn1_1)]]; - float2 B_0 [[user(locn1_2)]]; - float A_1 [[user(locn2)]]; - float C_2 [[user(locn2_1)]]; - float2 B_1 [[user(locn2_2)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 m_location_0 [[attribute(0)]]; - float4 m_location_1 [[attribute(1)]]; - float4 m_location_2 [[attribute(2)]]; - float4 Pos [[attribute(4)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - spvUnsafeArray A = {}; - spvUnsafeArray B = {}; - spvUnsafeArray C = {}; - spvUnsafeArray InA = {}; - spvUnsafeArray InB = {}; - spvUnsafeArray InC = {}; - float InD = {}; - InA[0] = in.m_location_1.x; - InA[1] = in.m_location_2.x; - InB[0] = in.m_location_1.zw; - InB[1] = in.m_location_2.zw; - InC[0] = in.m_location_0.y; - InC[1] = in.m_location_1.y; - InC[2] = in.m_location_2.y; - InD = in.m_location_0.w; - out.gl_Position = in.Pos; - A = InA; - B = InB; - C = InC; - out.D = InD; - out.A_0 = A[0]; - out.A_1 = A[1]; - out.B_0 = B[0]; - out.B_1 = B[1]; - out.C_0 = C[0]; - out.C_1 = C[1]; - out.C_2 = C[2]; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/basic.capture.vert b/third_party/spirv-cross/reference/shaders-msl/vert/basic.capture.vert deleted file mode 100644 index a4177d3c30..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/basic.capture.vert +++ /dev/null @@ -1,29 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - float4x4 uMVP; -}; - -struct main0_out -{ - float3 vNormal [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 aVertex [[attribute(0)]]; - float3 aNormal [[attribute(1)]]; -}; - -vertex void main0(main0_in in [[stage_in]], constant UBO& _16 [[buffer(0)]], uint gl_VertexIndex [[vertex_id]], uint gl_BaseVertex [[base_vertex]], uint gl_InstanceIndex [[instance_id]], uint gl_BaseInstance [[base_instance]], device main0_out* spvOut [[buffer(28)]], device uint* spvIndirectParams [[buffer(29)]]) -{ - device main0_out& out = spvOut[(gl_InstanceIndex - gl_BaseInstance) * spvIndirectParams[0] + gl_VertexIndex - gl_BaseVertex]; - out.gl_Position = _16.uMVP * in.aVertex; - out.vNormal = in.aNormal; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/basic.for-tess.vert b/third_party/spirv-cross/reference/shaders-msl/vert/basic.for-tess.vert deleted file mode 100644 index c99a95ac89..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/basic.for-tess.vert +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - float4x4 uMVP; -}; - -struct main0_out -{ - float3 vNormal; - float4 gl_Position; -}; - -struct main0_in -{ - float4 aVertex [[attribute(0)]]; - float3 aNormal [[attribute(1)]]; -}; - -kernel void main0(main0_in in [[stage_in]], constant UBO& _16 [[buffer(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint3 spvStageInputSize [[grid_size]], device main0_out* spvOut [[buffer(28)]]) -{ - device main0_out& out = spvOut[gl_GlobalInvocationID.y * spvStageInputSize.x + gl_GlobalInvocationID.x]; - if (any(gl_GlobalInvocationID >= spvStageInputSize)) - return; - out.gl_Position = _16.uMVP * in.aVertex; - out.vNormal = in.aNormal; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/basic.vert b/third_party/spirv-cross/reference/shaders-msl/vert/basic.vert deleted file mode 100644 index ffb4357126..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/basic.vert +++ /dev/null @@ -1,30 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - float4x4 uMVP; -}; - -struct main0_out -{ - float3 vNormal [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 aVertex [[attribute(0)]]; - float3 aNormal [[attribute(1)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant UBO& _16 [[buffer(0)]]) -{ - main0_out out = {}; - out.gl_Position = _16.uMVP * in.aVertex; - out.vNormal = in.aNormal; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/clip-distance-block.no-user-varying.vert b/third_party/spirv-cross/reference/shaders-msl/vert/clip-distance-block.no-user-varying.vert deleted file mode 100644 index c78105e0ce..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/clip-distance-block.no-user-varying.vert +++ /dev/null @@ -1,25 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; - float gl_ClipDistance [[clip_distance]] [2]; -}; - -struct main0_in -{ - float4 Position [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.gl_Position = in.Position; - out.gl_ClipDistance[0] = in.Position.x; - out.gl_ClipDistance[1] = in.Position.y; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/clip-distance-block.vert b/third_party/spirv-cross/reference/shaders-msl/vert/clip-distance-block.vert deleted file mode 100644 index af58f35ff5..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/clip-distance-block.vert +++ /dev/null @@ -1,29 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; - float gl_ClipDistance [[clip_distance]] [2]; - float gl_ClipDistance_0 [[user(clip0)]]; - float gl_ClipDistance_1 [[user(clip1)]]; -}; - -struct main0_in -{ - float4 Position [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.gl_Position = in.Position; - out.gl_ClipDistance[0] = in.Position.x; - out.gl_ClipDistance[1] = in.Position.y; - out.gl_ClipDistance_0 = out.gl_ClipDistance[0]; - out.gl_ClipDistance_1 = out.gl_ClipDistance[1]; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/copy.flatten.vert b/third_party/spirv-cross/reference/shaders-msl/vert/copy.flatten.vert deleted file mode 100644 index a762f7e792..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/copy.flatten.vert +++ /dev/null @@ -1,54 +0,0 @@ -#include -#include - -using namespace metal; - -struct Light -{ - packed_float3 Position; - float Radius; - float4 Color; -}; - -struct UBO -{ - float4x4 uMVP; - Light lights[4]; -}; - -struct Light_1 -{ - float3 Position; - float Radius; - float4 Color; -}; - -struct main0_out -{ - float4 vColor [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 aVertex [[attribute(0)]]; - float3 aNormal [[attribute(1)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant UBO& _21 [[buffer(0)]]) -{ - main0_out out = {}; - out.gl_Position = _21.uMVP * in.aVertex; - out.vColor = float4(0.0); - Light_1 light; - for (int i = 0; i < 4; i++) - { - light.Position = float3(_21.lights[i].Position); - light.Radius = _21.lights[i].Radius; - light.Color = _21.lights[i].Color; - float3 L = in.aVertex.xyz - light.Position; - out.vColor += ((_21.lights[i].Color * fast::clamp(1.0 - (length(L) / light.Radius), 0.0, 1.0)) * dot(in.aNormal, normalize(L))); - } - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/dynamic.flatten.vert b/third_party/spirv-cross/reference/shaders-msl/vert/dynamic.flatten.vert deleted file mode 100644 index c285f3c873..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/dynamic.flatten.vert +++ /dev/null @@ -1,43 +0,0 @@ -#include -#include - -using namespace metal; - -struct Light -{ - packed_float3 Position; - float Radius; - float4 Color; -}; - -struct UBO -{ - float4x4 uMVP; - Light lights[4]; -}; - -struct main0_out -{ - float4 vColor [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 aVertex [[attribute(0)]]; - float3 aNormal [[attribute(1)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant UBO& _21 [[buffer(0)]]) -{ - main0_out out = {}; - out.gl_Position = _21.uMVP * in.aVertex; - out.vColor = float4(0.0); - for (int i = 0; i < 4; i++) - { - float3 L = in.aVertex.xyz - float3(_21.lights[i].Position); - out.vColor += ((_21.lights[i].Color * fast::clamp(1.0 - (length(L) / _21.lights[i].Radius), 0.0, 1.0)) * dot(in.aNormal, normalize(L))); - } - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/float-math.invariant-float-math.vert b/third_party/spirv-cross/reference/shaders-msl/vert/float-math.invariant-float-math.vert deleted file mode 100644 index d603884cd8..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/float-math.invariant-float-math.vert +++ /dev/null @@ -1,136 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct Matrices -{ - float4x4 vpMatrix; - float4x4 wMatrix; - float4x3 wMatrix4x3; - float3x4 wMatrix3x4; -}; - -struct main0_out -{ - float3 OutNormal [[user(locn0)]]; - float4 OutWorldPos_0 [[user(locn1)]]; - float4 OutWorldPos_1 [[user(locn2)]]; - float4 OutWorldPos_2 [[user(locn3)]]; - float4 OutWorldPos_3 [[user(locn4)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float3 InPos [[attribute(0)]]; - float3 InNormal [[attribute(1)]]; -}; - -template -T spvFMul(T l, T r) -{ - return fma(l, r, T(0)); -} - -template -vec spvFMulVectorMatrix(vec v, matrix m) -{ - vec res = vec(0); - for (uint i = Rows; i > 0; --i) - { - vec tmp(0); - for (uint j = 0; j < Cols; ++j) - { - tmp[j] = m[j][i - 1]; - } - res = fma(tmp, vec(v[i - 1]), res); - } - return res; -} - -template -vec spvFMulMatrixVector(matrix m, vec v) -{ - vec res = vec(0); - for (uint i = Cols; i > 0; --i) - { - res = fma(m[i - 1], vec(v[i - 1]), res); - } - return res; -} - -template -matrix spvFMulMatrixMatrix(matrix l, matrix r) -{ - matrix res; - for (uint i = 0; i < RCols; i++) - { - vec tmp(0); - for (uint j = 0; j < LCols; j++) - { - tmp = fma(vec(r[i][j]), l[j], tmp); - } - res[i] = tmp; - } - return res; -} - -vertex main0_out main0(main0_in in [[stage_in]], constant Matrices& _22 [[buffer(0)]]) -{ - main0_out out = {}; - spvUnsafeArray OutWorldPos = {}; - out.gl_Position = spvFMulMatrixVector(spvFMulMatrixMatrix(_22.vpMatrix, _22.wMatrix), float4(in.InPos, 1.0)); - OutWorldPos[0] = spvFMulMatrixVector(_22.wMatrix, float4(in.InPos, 1.0)); - OutWorldPos[1] = spvFMulVectorMatrix(float4(in.InPos, 1.0), _22.wMatrix); - OutWorldPos[2] = spvFMulMatrixVector(_22.wMatrix3x4, in.InPos); - OutWorldPos[3] = spvFMulVectorMatrix(in.InPos, _22.wMatrix4x3); - out.OutNormal = spvFMulMatrixVector(_22.wMatrix, float4(in.InNormal, 0.0)).xyz; - out.OutWorldPos_0 = OutWorldPos[0]; - out.OutWorldPos_1 = OutWorldPos[1]; - out.OutWorldPos_2 = OutWorldPos[2]; - out.OutWorldPos_3 = OutWorldPos[3]; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/float-math.vert b/third_party/spirv-cross/reference/shaders-msl/vert/float-math.vert deleted file mode 100644 index e96fdaedc2..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/float-math.vert +++ /dev/null @@ -1,87 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct Matrices -{ - float4x4 vpMatrix; - float4x4 wMatrix; - float4x3 wMatrix4x3; - float3x4 wMatrix3x4; -}; - -struct main0_out -{ - float3 OutNormal [[user(locn0)]]; - float4 OutWorldPos_0 [[user(locn1)]]; - float4 OutWorldPos_1 [[user(locn2)]]; - float4 OutWorldPos_2 [[user(locn3)]]; - float4 OutWorldPos_3 [[user(locn4)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float3 InPos [[attribute(0)]]; - float3 InNormal [[attribute(1)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant Matrices& _22 [[buffer(0)]]) -{ - main0_out out = {}; - spvUnsafeArray OutWorldPos = {}; - out.gl_Position = (_22.vpMatrix * _22.wMatrix) * float4(in.InPos, 1.0); - OutWorldPos[0] = _22.wMatrix * float4(in.InPos, 1.0); - OutWorldPos[1] = float4(in.InPos, 1.0) * _22.wMatrix; - OutWorldPos[2] = _22.wMatrix3x4 * in.InPos; - OutWorldPos[3] = in.InPos * _22.wMatrix4x3; - out.OutNormal = (_22.wMatrix * float4(in.InNormal, 0.0)).xyz; - out.OutWorldPos_0 = OutWorldPos[0]; - out.OutWorldPos_1 = OutWorldPos[1]; - out.OutWorldPos_2 = OutWorldPos[2]; - out.OutWorldPos_3 = OutWorldPos[3]; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/functions.vert b/third_party/spirv-cross/reference/shaders-msl/vert/functions.vert deleted file mode 100644 index 73eaa8b751..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/functions.vert +++ /dev/null @@ -1,122 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct UBO -{ - float4x4 uMVP; - float3 rotDeg; - float3 rotRad; - int2 bits; -}; - -struct main0_out -{ - float3 vNormal [[user(locn0)]]; - float3 vRotDeg [[user(locn1)]]; - float3 vRotRad [[user(locn2)]]; - int2 vLSB [[user(locn3)]]; - int2 vMSB [[user(locn4)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 aVertex [[attribute(0)]]; - float3 aNormal [[attribute(1)]]; -}; - -// Implementation of the GLSL radians() function -template -inline T radians(T d) -{ - return d * T(0.01745329251); -} - -// Implementation of the GLSL degrees() function -template -inline T degrees(T r) -{ - return r * T(57.2957795131); -} - -// Implementation of the GLSL findLSB() function -template -inline T spvFindLSB(T x) -{ - return select(ctz(x), T(-1), x == T(0)); -} - -// Implementation of the signed GLSL findMSB() function -template -inline T spvFindSMSB(T x) -{ - T v = select(x, T(-1) - x, x < T(0)); - return select(clz(T(0)) - (clz(v) + T(1)), T(-1), v == T(0)); -} - -// Returns the determinant of a 2x2 matrix. -static inline __attribute__((always_inline)) -float spvDet2x2(float a1, float a2, float b1, float b2) -{ - return a1 * b2 - b1 * a2; -} - -// Returns the determinant of a 3x3 matrix. -static inline __attribute__((always_inline)) -float spvDet3x3(float a1, float a2, float a3, float b1, float b2, float b3, float c1, float c2, float c3) -{ - return a1 * spvDet2x2(b2, b3, c2, c3) - b1 * spvDet2x2(a2, a3, c2, c3) + c1 * spvDet2x2(a2, a3, b2, b3); -} - -// Returns the inverse of a matrix, by using the algorithm of calculating the classical -// adjoint and dividing by the determinant. The contents of the matrix are changed. -static inline __attribute__((always_inline)) -float4x4 spvInverse4x4(float4x4 m) -{ - float4x4 adj; // The adjoint matrix (inverse after dividing by determinant) - - // Create the transpose of the cofactors, as the classical adjoint of the matrix. - adj[0][0] = spvDet3x3(m[1][1], m[1][2], m[1][3], m[2][1], m[2][2], m[2][3], m[3][1], m[3][2], m[3][3]); - adj[0][1] = -spvDet3x3(m[0][1], m[0][2], m[0][3], m[2][1], m[2][2], m[2][3], m[3][1], m[3][2], m[3][3]); - adj[0][2] = spvDet3x3(m[0][1], m[0][2], m[0][3], m[1][1], m[1][2], m[1][3], m[3][1], m[3][2], m[3][3]); - adj[0][3] = -spvDet3x3(m[0][1], m[0][2], m[0][3], m[1][1], m[1][2], m[1][3], m[2][1], m[2][2], m[2][3]); - - adj[1][0] = -spvDet3x3(m[1][0], m[1][2], m[1][3], m[2][0], m[2][2], m[2][3], m[3][0], m[3][2], m[3][3]); - adj[1][1] = spvDet3x3(m[0][0], m[0][2], m[0][3], m[2][0], m[2][2], m[2][3], m[3][0], m[3][2], m[3][3]); - adj[1][2] = -spvDet3x3(m[0][0], m[0][2], m[0][3], m[1][0], m[1][2], m[1][3], m[3][0], m[3][2], m[3][3]); - adj[1][3] = spvDet3x3(m[0][0], m[0][2], m[0][3], m[1][0], m[1][2], m[1][3], m[2][0], m[2][2], m[2][3]); - - adj[2][0] = spvDet3x3(m[1][0], m[1][1], m[1][3], m[2][0], m[2][1], m[2][3], m[3][0], m[3][1], m[3][3]); - adj[2][1] = -spvDet3x3(m[0][0], m[0][1], m[0][3], m[2][0], m[2][1], m[2][3], m[3][0], m[3][1], m[3][3]); - adj[2][2] = spvDet3x3(m[0][0], m[0][1], m[0][3], m[1][0], m[1][1], m[1][3], m[3][0], m[3][1], m[3][3]); - adj[2][3] = -spvDet3x3(m[0][0], m[0][1], m[0][3], m[1][0], m[1][1], m[1][3], m[2][0], m[2][1], m[2][3]); - - adj[3][0] = -spvDet3x3(m[1][0], m[1][1], m[1][2], m[2][0], m[2][1], m[2][2], m[3][0], m[3][1], m[3][2]); - adj[3][1] = spvDet3x3(m[0][0], m[0][1], m[0][2], m[2][0], m[2][1], m[2][2], m[3][0], m[3][1], m[3][2]); - adj[3][2] = -spvDet3x3(m[0][0], m[0][1], m[0][2], m[1][0], m[1][1], m[1][2], m[3][0], m[3][1], m[3][2]); - adj[3][3] = spvDet3x3(m[0][0], m[0][1], m[0][2], m[1][0], m[1][1], m[1][2], m[2][0], m[2][1], m[2][2]); - - // Calculate the determinant as a combination of the cofactors of the first row. - float det = (adj[0][0] * m[0][0]) + (adj[0][1] * m[1][0]) + (adj[0][2] * m[2][0]) + (adj[0][3] * m[3][0]); - - // Divide the classical adjoint matrix by the determinant. - // If determinant is zero, matrix is not invertable, so leave it unchanged. - return (det != 0.0f) ? (adj * (1.0f / det)) : m; -} - -vertex main0_out main0(main0_in in [[stage_in]], constant UBO& _18 [[buffer(0)]]) -{ - main0_out out = {}; - out.gl_Position = spvInverse4x4(_18.uMVP) * in.aVertex; - out.vNormal = in.aNormal; - out.vRotDeg = degrees(_18.rotRad); - out.vRotRad = radians(_18.rotDeg); - out.vLSB = spvFindLSB(_18.bits); - out.vMSB = spvFindSMSB(_18.bits); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/implicit-position-1.vert b/third_party/spirv-cross/reference/shaders-msl/vert/implicit-position-1.vert deleted file mode 100644 index 5cea4ee2c2..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/implicit-position-1.vert +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 V [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -vertex main0_out main0() -{ - main0_out out = {}; - out.V = float4(1.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/implicit-position-2.vert b/third_party/spirv-cross/reference/shaders-msl/vert/implicit-position-2.vert deleted file mode 100644 index 9e024c2095..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/implicit-position-2.vert +++ /dev/null @@ -1,9 +0,0 @@ -#include -#include - -using namespace metal; - -vertex void main0() -{ -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/in_out_array_mat.vert b/third_party/spirv-cross/reference/shaders-msl/vert/in_out_array_mat.vert deleted file mode 100644 index 19bfa7311e..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/in_out_array_mat.vert +++ /dev/null @@ -1,119 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct UBO -{ - float4x4 projection; - float4x4 model; - float lodBias; -}; - -struct main0_out -{ - float3 outPos [[user(locn0)]]; - float3 outNormal [[user(locn1)]]; - float4 outTransModel_0 [[user(locn2)]]; - float4 outTransModel_1 [[user(locn3)]]; - float4 outTransModel_2 [[user(locn4)]]; - float4 outTransModel_3 [[user(locn5)]]; - float outLodBias [[user(locn6)]]; - float4 color [[user(locn7)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float3 inPos [[attribute(0)]]; - float4 colors_0 [[attribute(1)]]; - float4 colors_1 [[attribute(2)]]; - float4 colors_2 [[attribute(3)]]; - float3 inNormal [[attribute(4)]]; - float4 inViewMat_0 [[attribute(5)]]; - float4 inViewMat_1 [[attribute(6)]]; - float4 inViewMat_2 [[attribute(7)]]; - float4 inViewMat_3 [[attribute(8)]]; -}; - -static inline __attribute__((always_inline)) -void write_deeper_in_function(thread float4x4& outTransModel, constant UBO& ubo, thread float4& color, thread spvUnsafeArray& colors) -{ - outTransModel[1].y = ubo.lodBias; - color = colors[2]; -} - -static inline __attribute__((always_inline)) -void write_in_function(thread float4x4& outTransModel, constant UBO& ubo, thread float4& color, thread spvUnsafeArray& colors, thread float3& inNormal) -{ - outTransModel[2] = float4(inNormal, 1.0); - write_deeper_in_function(outTransModel, ubo, color, colors); -} - -vertex main0_out main0(main0_in in [[stage_in]], constant UBO& ubo [[buffer(0)]]) -{ - main0_out out = {}; - float4x4 outTransModel = {}; - spvUnsafeArray colors = {}; - float4x4 inViewMat = {}; - colors[0] = in.colors_0; - colors[1] = in.colors_1; - colors[2] = in.colors_2; - inViewMat[0] = in.inViewMat_0; - inViewMat[1] = in.inViewMat_1; - inViewMat[2] = in.inViewMat_2; - inViewMat[3] = in.inViewMat_3; - out.gl_Position = (ubo.projection * ubo.model) * float4(in.inPos, 1.0); - out.outPos = float3((ubo.model * float4(in.inPos, 1.0)).xyz); - out.outNormal = float3x3(float3(float3(ubo.model[0].x, ubo.model[0].y, ubo.model[0].z)), float3(float3(ubo.model[1].x, ubo.model[1].y, ubo.model[1].z)), float3(float3(ubo.model[2].x, ubo.model[2].y, ubo.model[2].z))) * in.inNormal; - out.outLodBias = ubo.lodBias; - outTransModel = transpose(ubo.model) * inViewMat; - write_in_function(outTransModel, ubo, out.color, colors, in.inNormal); - out.outTransModel_0 = outTransModel[0]; - out.outTransModel_1 = outTransModel[1]; - out.outTransModel_2 = outTransModel[2]; - out.outTransModel_3 = outTransModel[3]; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/interface-block-block-composites.frag b/third_party/spirv-cross/reference/shaders-msl/vert/interface-block-block-composites.frag deleted file mode 100644 index c160ade2dd..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/interface-block-block-composites.frag +++ /dev/null @@ -1,97 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct Vert -{ - float3x3 wMatrix; - float4 wTmp; - spvUnsafeArray arr; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float3 vMatrix_0 [[user(locn0)]]; - float3 vMatrix_1 [[user(locn1)]]; - float3 vMatrix_2 [[user(locn2)]]; - float3 Vert_wMatrix_0 [[user(locn4)]]; - float3 Vert_wMatrix_1 [[user(locn5)]]; - float3 Vert_wMatrix_2 [[user(locn6)]]; - float4 Vert_wTmp [[user(locn7)]]; - float Vert_arr_0 [[user(locn8)]]; - float Vert_arr_1 [[user(locn9)]]; - float Vert_arr_2 [[user(locn10)]]; - float Vert_arr_3 [[user(locn11)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - Vert _17 = {}; - float3x3 vMatrix = {}; - _17.wMatrix[0] = in.Vert_wMatrix_0; - _17.wMatrix[1] = in.Vert_wMatrix_1; - _17.wMatrix[2] = in.Vert_wMatrix_2; - _17.wTmp = in.Vert_wTmp; - _17.arr[0] = in.Vert_arr_0; - _17.arr[1] = in.Vert_arr_1; - _17.arr[2] = in.Vert_arr_2; - _17.arr[3] = in.Vert_arr_3; - vMatrix[0] = in.vMatrix_0; - vMatrix[1] = in.vMatrix_1; - vMatrix[2] = in.vMatrix_2; - out.FragColor = (_17.wMatrix[0].xxyy + _17.wTmp) + vMatrix[1].yyzz; - for (int i = 0; i < 4; i++) - { - out.FragColor += float4(_17.arr[i]); - } - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/interface-block-block-composites.vert b/third_party/spirv-cross/reference/shaders-msl/vert/interface-block-block-composites.vert deleted file mode 100644 index 69f271a83c..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/interface-block-block-composites.vert +++ /dev/null @@ -1,105 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct Vert -{ - spvUnsafeArray arr; - float3x3 wMatrix; - float4 wTmp; -}; - -struct main0_out -{ - float3 vMatrix_0 [[user(locn0)]]; - float3 vMatrix_1 [[user(locn1)]]; - float3 vMatrix_2 [[user(locn2)]]; - float Vert_arr_0 [[user(locn4)]]; - float Vert_arr_1 [[user(locn5)]]; - float Vert_arr_2 [[user(locn6)]]; - float3 Vert_wMatrix_0 [[user(locn7)]]; - float3 Vert_wMatrix_1 [[user(locn8)]]; - float3 Vert_wMatrix_2 [[user(locn9)]]; - float4 Vert_wTmp [[user(locn10)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float3 Matrix_0 [[attribute(0)]]; - float3 Matrix_1 [[attribute(1)]]; - float3 Matrix_2 [[attribute(2)]]; - float4 Pos [[attribute(4)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - float3x3 vMatrix = {}; - Vert _20 = {}; - float3x3 Matrix = {}; - Matrix[0] = in.Matrix_0; - Matrix[1] = in.Matrix_1; - Matrix[2] = in.Matrix_2; - vMatrix = Matrix; - _20.wMatrix = Matrix; - _20.arr[0] = 1.0; - _20.arr[1] = 2.0; - _20.arr[2] = 3.0; - _20.wTmp = in.Pos; - out.gl_Position = in.Pos; - out.vMatrix_0 = vMatrix[0]; - out.vMatrix_1 = vMatrix[1]; - out.vMatrix_2 = vMatrix[2]; - out.Vert_arr_0 = _20.arr[0]; - out.Vert_arr_1 = _20.arr[1]; - out.Vert_arr_2 = _20.arr[2]; - out.Vert_wMatrix_0 = _20.wMatrix[0]; - out.Vert_wMatrix_1 = _20.wMatrix[1]; - out.Vert_wMatrix_2 = _20.wMatrix[2]; - out.Vert_wTmp = _20.wTmp; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/interpolation-qualifiers-block.vert b/third_party/spirv-cross/reference/shaders-msl/vert/interpolation-qualifiers-block.vert deleted file mode 100644 index 4206623b4f..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/interpolation-qualifiers-block.vert +++ /dev/null @@ -1,55 +0,0 @@ -#include -#include - -using namespace metal; - -struct Output -{ - float2 v0; - float2 v1; - float3 v2; - float4 v3; - float v4; - float v5; - float v6; -}; - -struct main0_out -{ - float2 Output_v0 [[user(locn0)]]; - float2 Output_v1 [[user(locn1)]]; - float3 Output_v2 [[user(locn2)]]; - float4 Output_v3 [[user(locn3)]]; - float Output_v4 [[user(locn4)]]; - float Output_v5 [[user(locn5)]]; - float Output_v6 [[user(locn6)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 Position [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - Output outp = {}; - outp.v0 = in.Position.xy; - outp.v1 = in.Position.zw; - outp.v2 = float3(in.Position.x, in.Position.z * in.Position.y, in.Position.x); - outp.v3 = in.Position.xxyy; - outp.v4 = in.Position.w; - outp.v5 = in.Position.y; - outp.v6 = in.Position.x * in.Position.w; - out.gl_Position = in.Position; - out.Output_v0 = outp.v0; - out.Output_v1 = outp.v1; - out.Output_v2 = outp.v2; - out.Output_v3 = outp.v3; - out.Output_v4 = outp.v4; - out.Output_v5 = outp.v5; - out.Output_v6 = outp.v6; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/interpolation-qualifiers.vert b/third_party/spirv-cross/reference/shaders-msl/vert/interpolation-qualifiers.vert deleted file mode 100644 index ba2c4fbd23..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/interpolation-qualifiers.vert +++ /dev/null @@ -1,36 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float2 v0 [[user(locn0)]]; - float2 v1 [[user(locn1)]]; - float3 v2 [[user(locn2)]]; - float4 v3 [[user(locn3)]]; - float v4 [[user(locn4)]]; - float v5 [[user(locn5)]]; - float v6 [[user(locn6)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 Position [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.v0 = in.Position.xy; - out.v1 = in.Position.zw; - out.v2 = float3(in.Position.x, in.Position.z * in.Position.y, in.Position.x); - out.v3 = in.Position.xxyy; - out.v4 = in.Position.w; - out.v5 = in.Position.y; - out.v6 = in.Position.x * in.Position.w; - out.gl_Position = in.Position; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/invariant.msl21.vert b/third_party/spirv-cross/reference/shaders-msl/vert/invariant.msl21.vert deleted file mode 100644 index 73b0ec7449..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/invariant.msl21.vert +++ /dev/null @@ -1,26 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position, invariant]]; -}; - -struct main0_in -{ - float4 vInput0 [[attribute(0)]]; - float4 vInput1 [[attribute(1)]]; - float4 vInput2 [[attribute(2)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - float4 _20 = in.vInput1 * in.vInput2; - float4 _21 = in.vInput0 + _20; - out.gl_Position = _21; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/leaf-function.capture.vert b/third_party/spirv-cross/reference/shaders-msl/vert/leaf-function.capture.vert deleted file mode 100644 index 6519e56b8f..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/leaf-function.capture.vert +++ /dev/null @@ -1,37 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct UBO -{ - float4x4 uMVP; -}; - -struct main0_out -{ - float3 vNormal [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 aVertex [[attribute(0)]]; - float3 aNormal [[attribute(1)]]; -}; - -static inline __attribute__((always_inline)) -void set_output(device float4& gl_Position, constant UBO& v_18, thread float4& aVertex, device float3& vNormal, thread float3& aNormal) -{ - gl_Position = v_18.uMVP * aVertex; - vNormal = aNormal; -} - -vertex void main0(main0_in in [[stage_in]], constant UBO& v_18 [[buffer(0)]], uint gl_VertexIndex [[vertex_id]], uint gl_BaseVertex [[base_vertex]], uint gl_InstanceIndex [[instance_id]], uint gl_BaseInstance [[base_instance]], device main0_out* spvOut [[buffer(28)]], device uint* spvIndirectParams [[buffer(29)]]) -{ - device main0_out& out = spvOut[(gl_InstanceIndex - gl_BaseInstance) * spvIndirectParams[0] + gl_VertexIndex - gl_BaseVertex]; - set_output(out.gl_Position, v_18, in.aVertex, out.vNormal, in.aNormal); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/leaf-function.for-tess.vert b/third_party/spirv-cross/reference/shaders-msl/vert/leaf-function.for-tess.vert deleted file mode 100644 index 5a960e5ec8..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/leaf-function.for-tess.vert +++ /dev/null @@ -1,39 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct UBO -{ - float4x4 uMVP; -}; - -struct main0_out -{ - float3 vNormal; - float4 gl_Position; -}; - -struct main0_in -{ - float4 aVertex [[attribute(0)]]; - float3 aNormal [[attribute(1)]]; -}; - -static inline __attribute__((always_inline)) -void set_output(device float4& gl_Position, constant UBO& v_18, thread float4& aVertex, device float3& vNormal, thread float3& aNormal) -{ - gl_Position = v_18.uMVP * aVertex; - vNormal = aNormal; -} - -kernel void main0(main0_in in [[stage_in]], constant UBO& v_18 [[buffer(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint3 spvStageInputSize [[grid_size]], device main0_out* spvOut [[buffer(28)]]) -{ - device main0_out& out = spvOut[gl_GlobalInvocationID.y * spvStageInputSize.x + gl_GlobalInvocationID.x]; - if (any(gl_GlobalInvocationID >= spvStageInputSize)) - return; - set_output(out.gl_Position, v_18, in.aVertex, out.vNormal, in.aNormal); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/no-contraction.vert b/third_party/spirv-cross/reference/shaders-msl/vert/no-contraction.vert deleted file mode 100644 index 907d9010fa..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/no-contraction.vert +++ /dev/null @@ -1,92 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 vA [[attribute(0)]]; - float4 vB [[attribute(1)]]; - float4 vC [[attribute(2)]]; -}; - -template -T spvFMul(T l, T r) -{ - return fma(l, r, T(0)); -} - -template -vec spvFMulVectorMatrix(vec v, matrix m) -{ - vec res = vec(0); - for (uint i = Rows; i > 0; --i) - { - vec tmp(0); - for (uint j = 0; j < Cols; ++j) - { - tmp[j] = m[j][i - 1]; - } - res = fma(tmp, vec(v[i - 1]), res); - } - return res; -} - -template -vec spvFMulMatrixVector(matrix m, vec v) -{ - vec res = vec(0); - for (uint i = Cols; i > 0; --i) - { - res = fma(m[i - 1], vec(v[i - 1]), res); - } - return res; -} - -template -matrix spvFMulMatrixMatrix(matrix l, matrix r) -{ - matrix res; - for (uint i = 0; i < RCols; i++) - { - vec tmp(0); - for (uint j = 0; j < LCols; j++) - { - tmp = fma(vec(r[i][j]), l[j], tmp); - } - res[i] = tmp; - } - return res; -} - -template -T spvFAdd(T l, T r) -{ - return fma(T(1), l, r); -} - -template -T spvFSub(T l, T r) -{ - return fma(T(-1), r, l); -} - -vertex main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - float4 mul = spvFMul(in.vA, in.vB); - float4 add = spvFAdd(in.vA, in.vB); - float4 sub = spvFSub(in.vA, in.vB); - float4 mad = spvFAdd(spvFMul(in.vA, in.vB), in.vC); - float4 summed = spvFAdd(spvFAdd(spvFAdd(mul, add), sub), mad); - out.gl_Position = summed; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/no-disable-vertex-out.frag-output.vert b/third_party/spirv-cross/reference/shaders-msl/vert/no-disable-vertex-out.frag-output.vert deleted file mode 100644 index 14cc94937c..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/no-disable-vertex-out.frag-output.vert +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -using namespace metal; - -struct buf -{ - float4x4 MVP; - float4 position[36]; - float4 attr[36]; -}; - -struct main0_out -{ - float4 texcoord [[user(locn0)]]; - float3 frag_pos [[user(locn1)]]; - float4 gl_Position [[position]]; -}; - -vertex main0_out main0(constant buf& ubuf [[buffer(0)]], uint gl_VertexIndex [[vertex_id]]) -{ - main0_out out = {}; - out.texcoord = ubuf.attr[int(gl_VertexIndex)]; - out.gl_Position = ubuf.MVP * ubuf.position[int(gl_VertexIndex)]; - out.frag_pos = out.gl_Position.xyz; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/no_stage_out.for-tess.vert b/third_party/spirv-cross/reference/shaders-msl/vert/no_stage_out.for-tess.vert deleted file mode 100644 index 984e83260a..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/no_stage_out.for-tess.vert +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace metal; - -struct _RESERVED_IDENTIFIER_FIXUP_10_12 -{ - uint4 _RESERVED_IDENTIFIER_FIXUP_m0[1024]; -}; - -struct main0_in -{ - uint4 _RESERVED_IDENTIFIER_FIXUP_19 [[attribute(0)]]; -}; - -kernel void main0(main0_in in [[stage_in]], device _RESERVED_IDENTIFIER_FIXUP_10_12& _RESERVED_IDENTIFIER_FIXUP_12 [[buffer(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint3 spvStageInputSize [[grid_size]], uint3 spvDispatchBase [[grid_origin]]) -{ - if (any(gl_GlobalInvocationID >= spvStageInputSize)) - return; - uint gl_VertexIndex = gl_GlobalInvocationID.x + spvDispatchBase.x; - _RESERVED_IDENTIFIER_FIXUP_12._RESERVED_IDENTIFIER_FIXUP_m0[int(gl_VertexIndex)] = in._RESERVED_IDENTIFIER_FIXUP_19; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/no_stage_out.vert b/third_party/spirv-cross/reference/shaders-msl/vert/no_stage_out.vert deleted file mode 100644 index e804da6753..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/no_stage_out.vert +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include - -using namespace metal; - -struct _RESERVED_IDENTIFIER_FIXUP_10_12 -{ - uint4 _RESERVED_IDENTIFIER_FIXUP_m0[1024]; -}; - -struct main0_in -{ - uint4 _RESERVED_IDENTIFIER_FIXUP_19 [[attribute(0)]]; -}; - -vertex void main0(main0_in in [[stage_in]], device _RESERVED_IDENTIFIER_FIXUP_10_12& _RESERVED_IDENTIFIER_FIXUP_12 [[buffer(0)]], uint gl_VertexIndex [[vertex_id]]) -{ - _RESERVED_IDENTIFIER_FIXUP_12._RESERVED_IDENTIFIER_FIXUP_m0[int(gl_VertexIndex)] = in._RESERVED_IDENTIFIER_FIXUP_19; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/no_stage_out.write_buff.vert b/third_party/spirv-cross/reference/shaders-msl/vert/no_stage_out.write_buff.vert deleted file mode 100644 index fb8060f072..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/no_stage_out.write_buff.vert +++ /dev/null @@ -1,35 +0,0 @@ -#include -#include - -using namespace metal; - -struct _RESERVED_IDENTIFIER_FIXUP_33_35 -{ - uint4 _RESERVED_IDENTIFIER_FIXUP_m0[1024]; -}; - -struct _RESERVED_IDENTIFIER_FIXUP_38_40 -{ - uint4 _RESERVED_IDENTIFIER_FIXUP_m0[1024]; -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 _RESERVED_IDENTIFIER_FIXUP_14 [[attribute(0)]]; -}; - -vertex void main0(main0_in in [[stage_in]], device _RESERVED_IDENTIFIER_FIXUP_33_35& _RESERVED_IDENTIFIER_FIXUP_35 [[buffer(0)]], constant _RESERVED_IDENTIFIER_FIXUP_38_40& _RESERVED_IDENTIFIER_FIXUP_40 [[buffer(1)]]) -{ - main0_out out = {}; - out.gl_Position = in._RESERVED_IDENTIFIER_FIXUP_14; - for (int _RESERVED_IDENTIFIER_FIXUP_19 = 0; _RESERVED_IDENTIFIER_FIXUP_19 < 1024; _RESERVED_IDENTIFIER_FIXUP_19++) - { - _RESERVED_IDENTIFIER_FIXUP_35._RESERVED_IDENTIFIER_FIXUP_m0[_RESERVED_IDENTIFIER_FIXUP_19] = _RESERVED_IDENTIFIER_FIXUP_40._RESERVED_IDENTIFIER_FIXUP_m0[_RESERVED_IDENTIFIER_FIXUP_19]; - } -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/no_stage_out.write_buff_atomic.vert b/third_party/spirv-cross/reference/shaders-msl/vert/no_stage_out.write_buff_atomic.vert deleted file mode 100644 index 68c649ed6c..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/no_stage_out.write_buff_atomic.vert +++ /dev/null @@ -1,31 +0,0 @@ -#pragma clang diagnostic ignored "-Wunused-variable" - -#include -#include -#include - -using namespace metal; - -struct _RESERVED_IDENTIFIER_FIXUP_19_21 -{ - uint _RESERVED_IDENTIFIER_FIXUP_m0; -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 _RESERVED_IDENTIFIER_FIXUP_14 [[attribute(0)]]; -}; - -vertex void main0(main0_in in [[stage_in]], volatile device _RESERVED_IDENTIFIER_FIXUP_19_21& _RESERVED_IDENTIFIER_FIXUP_21 [[buffer(0)]]) -{ - main0_out out = {}; - out.gl_Position = in._RESERVED_IDENTIFIER_FIXUP_14; - uint _29 = atomic_fetch_add_explicit((volatile device atomic_uint*)&_RESERVED_IDENTIFIER_FIXUP_21._RESERVED_IDENTIFIER_FIXUP_m0, 1u, memory_order_relaxed); - uint _RESERVED_IDENTIFIER_FIXUP_26 = _29; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/no_stage_out.write_tex.vert b/third_party/spirv-cross/reference/shaders-msl/vert/no_stage_out.write_tex.vert deleted file mode 100644 index dfe1c328d9..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/no_stage_out.write_tex.vert +++ /dev/null @@ -1,25 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 _RESERVED_IDENTIFIER_FIXUP_14 [[attribute(0)]]; -}; - -vertex void main0(main0_in in [[stage_in]], texture1d _RESERVED_IDENTIFIER_FIXUP_32 [[texture(0)]], texture1d _RESERVED_IDENTIFIER_FIXUP_35 [[texture(1)]]) -{ - main0_out out = {}; - out.gl_Position = in._RESERVED_IDENTIFIER_FIXUP_14; - for (int _RESERVED_IDENTIFIER_FIXUP_19 = 0; _RESERVED_IDENTIFIER_FIXUP_19 < 128; _RESERVED_IDENTIFIER_FIXUP_19++) - { - _RESERVED_IDENTIFIER_FIXUP_32.write(_RESERVED_IDENTIFIER_FIXUP_35.read(uint(_RESERVED_IDENTIFIER_FIXUP_19)), uint(_RESERVED_IDENTIFIER_FIXUP_19)); - } -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/out_block.vert b/third_party/spirv-cross/reference/shaders-msl/vert/out_block.vert deleted file mode 100644 index 45b897013b..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/out_block.vert +++ /dev/null @@ -1,41 +0,0 @@ -#include -#include - -using namespace metal; - -struct Transform -{ - float4x4 transform; -}; - -struct VertexOut -{ - float4 color; - float4 color2; -}; - -struct main0_out -{ - float4 VertexOut_color [[user(locn2)]]; - float4 VertexOut_color2 [[user(locn3)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float3 position [[attribute(0)]]; - float4 color [[attribute(1)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant Transform& block [[buffer(0)]]) -{ - main0_out out = {}; - VertexOut outputs = {}; - out.gl_Position = block.transform * float4(in.position, 1.0); - outputs.color = in.color; - outputs.color2 = in.color + float4(1.0); - out.VertexOut_color = outputs.color; - out.VertexOut_color2 = outputs.color2; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/packed-bool-to-uint.vert b/third_party/spirv-cross/reference/shaders-msl/vert/packed-bool-to-uint.vert deleted file mode 100644 index 6cc5520484..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/packed-bool-to-uint.vert +++ /dev/null @@ -1,38 +0,0 @@ -#include -#include - -using namespace metal; - -struct Struct -{ - uint flags[1]; -}; - -struct defaultUniformsVS -{ - Struct flags; - float4 uquad[4]; - float4x4 umatrix; -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 a_position [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant defaultUniformsVS& _24 [[buffer(0)]], uint gl_VertexIndex [[vertex_id]]) -{ - main0_out out = {}; - out.gl_Position = _24.umatrix * float4(_24.uquad[int(gl_VertexIndex)].x, _24.uquad[int(gl_VertexIndex)].y, in.a_position.z, in.a_position.w); - if (_24.flags.flags[0] != 0u) - { - out.gl_Position.z = 0.0; - } - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/packed-bool2-to-packed_uint2.vert b/third_party/spirv-cross/reference/shaders-msl/vert/packed-bool2-to-packed_uint2.vert deleted file mode 100644 index 4c46aaeb4e..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/packed-bool2-to-packed_uint2.vert +++ /dev/null @@ -1,38 +0,0 @@ -#include -#include - -using namespace metal; - -struct Struct -{ - uint2 flags[1]; -}; - -struct defaultUniformsVS -{ - Struct flags; - float4 uquad[4]; - float4x4 umatrix; -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 a_position [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant defaultUniformsVS& _25 [[buffer(0)]], uint gl_VertexIndex [[vertex_id]]) -{ - main0_out out = {}; - out.gl_Position = _25.umatrix * float4(_25.uquad[int(gl_VertexIndex)].x, _25.uquad[int(gl_VertexIndex)].y, in.a_position.z, in.a_position.w); - if (_25.flags.flags[0].x != 0u) - { - out.gl_Position.z = 0.0; - } - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/packed_matrix.vert b/third_party/spirv-cross/reference/shaders-msl/vert/packed_matrix.vert deleted file mode 100644 index 9cc416a30a..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/packed_matrix.vert +++ /dev/null @@ -1,55 +0,0 @@ -#include -#include - -using namespace metal; - -struct _RESERVED_IDENTIFIER_FIXUP_1365_18812 -{ - float3x4 _RESERVED_IDENTIFIER_FIXUP_m0; - float3x4 _RESERVED_IDENTIFIER_FIXUP_m1; -}; - -struct _RESERVED_IDENTIFIER_FIXUP_1126_22044 -{ - float4x4 _RESERVED_IDENTIFIER_FIXUP_m0; - float4x4 _RESERVED_IDENTIFIER_FIXUP_m1; - float _RESERVED_IDENTIFIER_FIXUP_m9; - char _m3_pad[12]; - packed_float3 _RESERVED_IDENTIFIER_FIXUP_m10; - float _RESERVED_IDENTIFIER_FIXUP_m11; - packed_float3 _RESERVED_IDENTIFIER_FIXUP_m12; - float _RESERVED_IDENTIFIER_FIXUP_m17; - float _RESERVED_IDENTIFIER_FIXUP_m18; - float _RESERVED_IDENTIFIER_FIXUP_m19; - float2 _RESERVED_IDENTIFIER_FIXUP_m20; -}; - -struct main0_out -{ - float3 _RESERVED_IDENTIFIER_FIXUP_3976 [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 _RESERVED_IDENTIFIER_FIXUP_5275 [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant _RESERVED_IDENTIFIER_FIXUP_1365_18812& _RESERVED_IDENTIFIER_FIXUP_18812 [[buffer(0)]], constant _RESERVED_IDENTIFIER_FIXUP_1126_22044& _RESERVED_IDENTIFIER_FIXUP_22044 [[buffer(1)]]) -{ - main0_out out = {}; - float3 _RESERVED_IDENTIFIER_FIXUP_2; - float3 _RESERVED_IDENTIFIER_FIXUP_23783; - for (;;) - { - _RESERVED_IDENTIFIER_FIXUP_23783 = normalize(float4(in._RESERVED_IDENTIFIER_FIXUP_5275.xyz, 0.0) * _RESERVED_IDENTIFIER_FIXUP_18812._RESERVED_IDENTIFIER_FIXUP_m1); - break; - } - float4 _RESERVED_IDENTIFIER_FIXUP_14995 = _RESERVED_IDENTIFIER_FIXUP_22044._RESERVED_IDENTIFIER_FIXUP_m0 * float4(float3(_RESERVED_IDENTIFIER_FIXUP_22044._RESERVED_IDENTIFIER_FIXUP_m10) + (in._RESERVED_IDENTIFIER_FIXUP_5275.xyz * (_RESERVED_IDENTIFIER_FIXUP_22044._RESERVED_IDENTIFIER_FIXUP_m17 + _RESERVED_IDENTIFIER_FIXUP_22044._RESERVED_IDENTIFIER_FIXUP_m18)), 1.0); - out._RESERVED_IDENTIFIER_FIXUP_3976 = _RESERVED_IDENTIFIER_FIXUP_23783; - float4 _RESERVED_IDENTIFIER_FIXUP_6282 = _RESERVED_IDENTIFIER_FIXUP_14995; - _RESERVED_IDENTIFIER_FIXUP_6282.y = -_RESERVED_IDENTIFIER_FIXUP_14995.y; - out.gl_Position = _RESERVED_IDENTIFIER_FIXUP_6282; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/pointsize.vert b/third_party/spirv-cross/reference/shaders-msl/vert/pointsize.vert deleted file mode 100644 index 8e5782bde4..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/pointsize.vert +++ /dev/null @@ -1,33 +0,0 @@ -#include -#include - -using namespace metal; - -struct params -{ - float4x4 mvp; - float psize; -}; - -struct main0_out -{ - float4 color [[user(locn0)]]; - float4 gl_Position [[position]]; - float gl_PointSize [[point_size]]; -}; - -struct main0_in -{ - float4 position [[attribute(0)]]; - float4 color0 [[attribute(1)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant params& _19 [[buffer(0)]]) -{ - main0_out out = {}; - out.gl_Position = _19.mvp * in.position; - out.gl_PointSize = _19.psize; - out.color = in.color0; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/read-from-row-major-array.vert b/third_party/spirv-cross/reference/shaders-msl/vert/read-from-row-major-array.vert deleted file mode 100644 index d6ade7c38b..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/read-from-row-major-array.vert +++ /dev/null @@ -1,63 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct Block -{ - float3x4 var[3][4]; -}; - -struct main0_out -{ - float v_vtxResult [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 a_position [[attribute(0)]]; -}; - -static inline __attribute__((always_inline)) -float compare_float(thread const float& a, thread const float& b) -{ - return float(abs(a - b) < 0.0500000007450580596923828125); -} - -static inline __attribute__((always_inline)) -float compare_vec3(thread const float3& a, thread const float3& b) -{ - float param = a.x; - float param_1 = b.x; - float param_2 = a.y; - float param_3 = b.y; - float param_4 = a.z; - float param_5 = b.z; - return (compare_float(param, param_1) * compare_float(param_2, param_3)) * compare_float(param_4, param_5); -} - -static inline __attribute__((always_inline)) -float compare_mat2x3(thread const float2x3& a, thread const float2x3& b) -{ - float3 param = a[0]; - float3 param_1 = b[0]; - float3 param_2 = a[1]; - float3 param_3 = b[1]; - return compare_vec3(param, param_1) * compare_vec3(param_2, param_3); -} - -vertex main0_out main0(main0_in in [[stage_in]], constant Block& _104 [[buffer(0)]]) -{ - main0_out out = {}; - out.gl_Position = in.a_position; - float result = 1.0; - float2x3 param = transpose(float3x2(_104.var[0][0][0].xy, _104.var[0][0][1].xy, _104.var[0][0][2].xy)); - float2x3 param_1 = float2x3(float3(2.0, 6.0, -6.0), float3(0.0, 5.0, 5.0)); - result *= compare_mat2x3(param, param_1); - out.v_vtxResult = result; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/resource-arrays-leaf.ios.vert b/third_party/spirv-cross/reference/shaders-msl/vert/resource-arrays-leaf.ios.vert deleted file mode 100644 index 8ab252f535..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/resource-arrays-leaf.ios.vert +++ /dev/null @@ -1,50 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct storage_block -{ - uint4 baz; - int2 quux; -}; - -struct constant_block -{ - float4 foo; - int bar; -}; - -#ifndef SPIRV_CROSS_CONSTANT_ID_0 -#define SPIRV_CROSS_CONSTANT_ID_0 3 -#endif -constant int arraySize = SPIRV_CROSS_CONSTANT_ID_0; - -static inline __attribute__((always_inline)) -void doWork(device storage_block* (&storage)[2], constant constant_block* (&constants)[4], thread const array, 3> images) -{ - storage[0]->baz = uint4(constants[3]->foo); - storage[1]->quux = images[2].read(uint2(int2(constants[1]->bar))).xy; -} - -vertex void main0(device storage_block* storage_0 [[buffer(0)]], device storage_block* storage_1 [[buffer(1)]], constant constant_block* constants_0 [[buffer(2)]], constant constant_block* constants_1 [[buffer(3)]], constant constant_block* constants_2 [[buffer(4)]], constant constant_block* constants_3 [[buffer(5)]], array, 3> images [[texture(0)]]) -{ - device storage_block* storage[] = - { - storage_0, - storage_1, - }; - - constant constant_block* constants[] = - { - constants_0, - constants_1, - constants_2, - constants_3, - }; - - doWork(storage, constants, images); -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/resource-arrays.ios.vert b/third_party/spirv-cross/reference/shaders-msl/vert/resource-arrays.ios.vert deleted file mode 100644 index 91be3a0477..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/resource-arrays.ios.vert +++ /dev/null @@ -1,42 +0,0 @@ -#include -#include - -using namespace metal; - -struct storage_block -{ - uint4 baz; - int2 quux; -}; - -struct constant_block -{ - float4 foo; - int bar; -}; - -#ifndef SPIRV_CROSS_CONSTANT_ID_0 -#define SPIRV_CROSS_CONSTANT_ID_0 3 -#endif -constant int arraySize = SPIRV_CROSS_CONSTANT_ID_0; - -vertex void main0(device storage_block* storage_0 [[buffer(0)]], device storage_block* storage_1 [[buffer(1)]], constant constant_block* constants_0 [[buffer(2)]], constant constant_block* constants_1 [[buffer(3)]], constant constant_block* constants_2 [[buffer(4)]], constant constant_block* constants_3 [[buffer(5)]], array, 3> images [[texture(0)]]) -{ - device storage_block* storage[] = - { - storage_0, - storage_1, - }; - - constant constant_block* constants[] = - { - constants_0, - constants_1, - constants_2, - constants_3, - }; - - storage[0]->baz = uint4(constants[3]->foo); - storage[1]->quux = images[2].read(uint2(int2(constants[1]->bar))).xy; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/return-array.force-native-array.vert b/third_party/spirv-cross/reference/shaders-msl/vert/return-array.force-native-array.vert deleted file mode 100644 index bff0ed74af..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/return-array.force-native-array.vert +++ /dev/null @@ -1,154 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -constant float4 _20[2] = { float4(10.0), float4(20.0) }; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 vInput0 [[attribute(0)]]; - float4 vInput1 [[attribute(1)]]; -}; - -template -inline void spvArrayCopyFromConstantToStack1(thread T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromConstantToThreadGroup1(threadgroup T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToStack1(thread T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToThreadGroup1(threadgroup T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToStack1(thread T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToThreadGroup1(threadgroup T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToDevice1(device T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromConstantToDevice1(device T (&dst)[A], constant T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromStackToDevice1(device T (&dst)[A], thread const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromThreadGroupToDevice1(device T (&dst)[A], threadgroup const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToStack1(thread T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -template -inline void spvArrayCopyFromDeviceToThreadGroup1(threadgroup T (&dst)[A], device const T (&src)[A]) -{ - for (uint i = 0; i < A; i++) - { - dst[i] = src[i]; - } -} - -static inline __attribute__((always_inline)) -void test(thread float4 (&spvReturnValue)[2]) -{ - spvArrayCopyFromConstantToStack1(spvReturnValue, _20); -} - -static inline __attribute__((always_inline)) -void test2(thread float4 (&spvReturnValue)[2], thread float4& vInput0, thread float4& vInput1) -{ - float4 foobar[2]; - foobar[0] = vInput0; - foobar[1] = vInput1; - spvArrayCopyFromStackToStack1(spvReturnValue, foobar); -} - -vertex main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - float4 _42[2]; - test(_42); - float4 _44[2]; - test2(_44, in.vInput0, in.vInput1); - out.gl_Position = _42[0] + _44[1]; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/return-array.vert b/third_party/spirv-cross/reference/shaders-msl/vert/return-array.vert deleted file mode 100644 index dacb0ba305..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/return-array.vert +++ /dev/null @@ -1,81 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -constant spvUnsafeArray _20 = spvUnsafeArray({ float4(10.0), float4(20.0) }); - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 vInput0 [[attribute(0)]]; - float4 vInput1 [[attribute(1)]]; -}; - -static inline __attribute__((always_inline)) -spvUnsafeArray test() -{ - return _20; -} - -static inline __attribute__((always_inline)) -spvUnsafeArray test2(thread float4& vInput0, thread float4& vInput1) -{ - spvUnsafeArray foobar; - foobar[0] = vInput0; - foobar[1] = vInput1; - return foobar; -} - -vertex main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - out.gl_Position = test()[0] + test2(in.vInput0, in.vInput1)[1]; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/set_builtin_in_func.vert b/third_party/spirv-cross/reference/shaders-msl/vert/set_builtin_in_func.vert deleted file mode 100644 index 91057da2ba..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/set_builtin_in_func.vert +++ /dev/null @@ -1,27 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; - float gl_PointSize [[point_size]]; -}; - -static inline __attribute__((always_inline)) -void write_outblock(thread float4& gl_Position, thread float& gl_PointSize) -{ - gl_PointSize = 1.0; - gl_Position = float4(gl_PointSize); -} - -vertex main0_out main0() -{ - main0_out out = {}; - write_outblock(out.gl_Position, out.gl_PointSize); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/sign-int-types.vert b/third_party/spirv-cross/reference/shaders-msl/vert/sign-int-types.vert deleted file mode 100644 index a510645223..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/sign-int-types.vert +++ /dev/null @@ -1,60 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct UBO -{ - float4x4 uMVP; - float4 uFloatVec4; - float3 uFloatVec3; - float2 uFloatVec2; - float uFloat; - int4 uIntVec4; - int3 uIntVec3; - int2 uIntVec2; - int uInt; -}; - -struct main0_out -{ - float4 vFloatVec4 [[user(locn0)]]; - float3 vFloatVec3 [[user(locn1)]]; - float2 vFloatVec2 [[user(locn2)]]; - float vFloat [[user(locn3)]]; - int4 vIntVec4 [[user(locn4)]]; - int3 vIntVec3 [[user(locn5)]]; - int2 vIntVec2 [[user(locn6)]]; - int vInt [[user(locn7)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 aVertex [[attribute(0)]]; -}; - -// Implementation of the GLSL sign() function for integer types -template::value>::type> -inline T sign(T x) -{ - return select(select(select(x, T(0), x == T(0)), T(1), x > T(0)), T(-1), x < T(0)); -} - -vertex main0_out main0(main0_in in [[stage_in]], constant UBO& _21 [[buffer(0)]]) -{ - main0_out out = {}; - out.gl_Position = _21.uMVP * in.aVertex; - out.vFloatVec4 = sign(_21.uFloatVec4); - out.vFloatVec3 = sign(_21.uFloatVec3); - out.vFloatVec2 = sign(_21.uFloatVec2); - out.vFloat = sign(_21.uFloat); - out.vIntVec4 = sign(_21.uIntVec4); - out.vIntVec3 = sign(_21.uIntVec3); - out.vIntVec2 = sign(_21.uIntVec2); - out.vInt = sign(_21.uInt); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/signedness-mismatch.shader-inputs.vert b/third_party/spirv-cross/reference/shaders-msl/vert/signedness-mismatch.shader-inputs.vert deleted file mode 100644 index d6e056be33..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/signedness-mismatch.shader-inputs.vert +++ /dev/null @@ -1,74 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - ushort2 a [[attribute(0)]]; - uint3 b [[attribute(1)]]; - ushort c_0 [[attribute(2)]]; - ushort c_1 [[attribute(3)]]; - uint4 d_0 [[attribute(4)]]; - uint4 d_1 [[attribute(5)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]]) -{ - main0_out out = {}; - spvUnsafeArray c = {}; - spvUnsafeArray d = {}; - c[0] = in.c_0; - c[1] = in.c_1; - d[0] = in.d_0; - d[1] = in.d_1; - out.gl_Position = float4(float(int(in.a.x)), float(in.b.x), float(uint(c[1])), float(d[0].w)); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/texture_buffer.texture-buffer-native.msl21.vert b/third_party/spirv-cross/reference/shaders-msl/vert/texture_buffer.texture-buffer-native.msl21.vert deleted file mode 100644 index 33c077c57a..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/texture_buffer.texture-buffer-native.msl21.vert +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -vertex main0_out main0(texture_buffer uSamp [[texture(0)]], texture_buffer uSampo [[texture(1)]]) -{ - main0_out out = {}; - out.gl_Position = uSamp.read(uint(10)) + uSampo.read(uint(100)); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/texture_buffer.vert b/third_party/spirv-cross/reference/shaders-msl/vert/texture_buffer.vert deleted file mode 100644 index 3b3d92b565..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/texture_buffer.vert +++ /dev/null @@ -1,26 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -// Returns 2D texture coords corresponding to 1D texel buffer coords -static inline __attribute__((always_inline)) -uint2 spvTexelBufferCoord(uint tc) -{ - return uint2(tc % 4096, tc / 4096); -} - -vertex main0_out main0(texture2d uSamp [[texture(0)]], texture2d uSampo [[texture(1)]]) -{ - main0_out out = {}; - out.gl_Position = uSamp.read(spvTexelBufferCoord(10)) + uSampo.read(spvTexelBufferCoord(100)); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/ubo.alignment.vert b/third_party/spirv-cross/reference/shaders-msl/vert/ubo.alignment.vert deleted file mode 100644 index c48111ed67..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/ubo.alignment.vert +++ /dev/null @@ -1,38 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - float4x4 mvp; - float2 targSize; - char _m2_pad[8]; - packed_float3 color; - float opacity; -}; - -struct main0_out -{ - float3 vNormal [[user(locn0)]]; - float3 vColor [[user(locn1)]]; - float2 vSize [[user(locn2)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 aVertex [[attribute(0)]]; - float3 aNormal [[attribute(1)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant UBO& _18 [[buffer(0)]]) -{ - main0_out out = {}; - out.gl_Position = _18.mvp * in.aVertex; - out.vNormal = in.aNormal; - out.vColor = float3(_18.color) * _18.opacity; - out.vSize = _18.targSize * _18.opacity; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vert/ubo.vert b/third_party/spirv-cross/reference/shaders-msl/vert/ubo.vert deleted file mode 100644 index 86ba1e9687..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vert/ubo.vert +++ /dev/null @@ -1,30 +0,0 @@ -#include -#include - -using namespace metal; - -struct UBO -{ - float4x4 mvp; -}; - -struct main0_out -{ - float3 vNormal [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 aVertex [[attribute(0)]]; - float3 aNormal [[attribute(1)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant UBO& _16 [[buffer(0)]]) -{ - main0_out out = {}; - out.gl_Position = _16.mvp * in.aVertex; - out.vNormal = in.aNormal; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vulkan/frag/basic.multiview.no-layered.nocompat.vk.frag b/third_party/spirv-cross/reference/shaders-msl/vulkan/frag/basic.multiview.no-layered.nocompat.vk.frag deleted file mode 100644 index f0935f6dcf..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vulkan/frag/basic.multiview.no-layered.nocompat.vk.frag +++ /dev/null @@ -1,73 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 vColor [[user(locn0)]]; - float2 vTex_0 [[user(locn1)]]; - float2 vTex_1 [[user(locn2)]]; - float2 vTex_2 [[user(locn3)]]; - float2 vTex_3 [[user(locn4)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], constant uint* spvViewMask [[buffer(24)]], texture2d uTex [[texture(0)]], sampler uTexSmplr [[sampler(0)]]) -{ - main0_out out = {}; - spvUnsafeArray vTex = {}; - vTex[0] = in.vTex_0; - vTex[1] = in.vTex_1; - vTex[2] = in.vTex_2; - vTex[3] = in.vTex_3; - const uint gl_ViewIndex = spvViewMask[0]; - out.FragColor = in.vColor * uTex.sample(uTexSmplr, vTex[int(gl_ViewIndex)]); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vulkan/frag/basic.multiview.nocompat.vk.frag b/third_party/spirv-cross/reference/shaders-msl/vulkan/frag/basic.multiview.nocompat.vk.frag deleted file mode 100644 index 67895e3e92..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vulkan/frag/basic.multiview.nocompat.vk.frag +++ /dev/null @@ -1,73 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 vColor [[user(locn0)]]; - float2 vTex_0 [[user(locn1)]]; - float2 vTex_1 [[user(locn2)]]; - float2 vTex_2 [[user(locn3)]]; - float2 vTex_3 [[user(locn4)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], constant uint* spvViewMask [[buffer(24)]], texture2d uTex [[texture(0)]], sampler uTexSmplr [[sampler(0)]], uint gl_ViewIndex [[render_target_array_index]]) -{ - main0_out out = {}; - spvUnsafeArray vTex = {}; - vTex[0] = in.vTex_0; - vTex[1] = in.vTex_1; - vTex[2] = in.vTex_2; - vTex[3] = in.vTex_3; - gl_ViewIndex += spvViewMask[0]; - out.FragColor = in.vColor * uTex.sample(uTexSmplr, vTex[int(gl_ViewIndex)]); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vulkan/frag/demote-to-helper-forwarding.asm.vk.nocompat.msl23.frag b/third_party/spirv-cross/reference/shaders-msl/vulkan/frag/demote-to-helper-forwarding.asm.vk.nocompat.msl23.frag deleted file mode 100644 index 0992a7661b..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vulkan/frag/demote-to-helper-forwarding.asm.vk.nocompat.msl23.frag +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - bool _15 = simd_is_helper_thread(); - discard_fragment(); - if (!_15) - { - out.FragColor = float4(1.0, 0.0, 0.0, 1.0); - } - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vulkan/frag/demote-to-helper.vk.nocompat.msl23.frag b/third_party/spirv-cross/reference/shaders-msl/vulkan/frag/demote-to-helper.vk.nocompat.msl23.frag deleted file mode 100644 index 4bfd06f7ab..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vulkan/frag/demote-to-helper.vk.nocompat.msl23.frag +++ /dev/null @@ -1,12 +0,0 @@ -#include -#include - -using namespace metal; - -fragment void main0() -{ - discard_fragment(); - bool _9 = simd_is_helper_thread(); - bool helper = _9; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vulkan/frag/demote-to-helper.vk.nocompat.msl23.ios.frag b/third_party/spirv-cross/reference/shaders-msl/vulkan/frag/demote-to-helper.vk.nocompat.msl23.ios.frag deleted file mode 100644 index 4bfd06f7ab..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vulkan/frag/demote-to-helper.vk.nocompat.msl23.ios.frag +++ /dev/null @@ -1,12 +0,0 @@ -#include -#include - -using namespace metal; - -fragment void main0() -{ - discard_fragment(); - bool _9 = simd_is_helper_thread(); - bool helper = _9; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vulkan/frag/push-constant.vk.frag b/third_party/spirv-cross/reference/shaders-msl/vulkan/frag/push-constant.vk.frag deleted file mode 100644 index 7b8c502b32..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vulkan/frag/push-constant.vk.frag +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -using namespace metal; - -struct PushConstants -{ - float4 value0; - float4 value1; -}; - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -struct main0_in -{ - float4 vColor [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], constant PushConstants& push [[buffer(0)]]) -{ - main0_out out = {}; - out.FragColor = (in.vColor + push.value0) + push.value1; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vulkan/frag/spec-constant.msl11.vk.frag b/third_party/spirv-cross/reference/shaders-msl/vulkan/frag/spec-constant.msl11.vk.frag deleted file mode 100644 index 74fe26eca2..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vulkan/frag/spec-constant.msl11.vk.frag +++ /dev/null @@ -1,126 +0,0 @@ -#include -#include - -using namespace metal; - -#ifndef SPIRV_CROSS_CONSTANT_ID_1 -#define SPIRV_CROSS_CONSTANT_ID_1 1.0 -#endif -constant float a = SPIRV_CROSS_CONSTANT_ID_1; -#ifndef SPIRV_CROSS_CONSTANT_ID_2 -#define SPIRV_CROSS_CONSTANT_ID_2 2.0 -#endif -constant float b = SPIRV_CROSS_CONSTANT_ID_2; -#ifndef SPIRV_CROSS_CONSTANT_ID_3 -#define SPIRV_CROSS_CONSTANT_ID_3 3 -#endif -constant int c = SPIRV_CROSS_CONSTANT_ID_3; -constant uint _18 = (uint(c) + 0u); -constant int _21 = (-c); -constant int _23 = (~c); -#ifndef SPIRV_CROSS_CONSTANT_ID_4 -#define SPIRV_CROSS_CONSTANT_ID_4 4 -#endif -constant int d = SPIRV_CROSS_CONSTANT_ID_4; -constant int _26 = (c + d); -constant int _28 = (c - d); -constant int _30 = (c * d); -constant int _32 = (c / d); -#ifndef SPIRV_CROSS_CONSTANT_ID_5 -#define SPIRV_CROSS_CONSTANT_ID_5 5u -#endif -constant uint e = SPIRV_CROSS_CONSTANT_ID_5; -#ifndef SPIRV_CROSS_CONSTANT_ID_6 -#define SPIRV_CROSS_CONSTANT_ID_6 6u -#endif -constant uint f = SPIRV_CROSS_CONSTANT_ID_6; -constant uint _36 = (e / f); -constant int _38 = (c % d); -constant uint _40 = (e % f); -constant int _42 = (c >> d); -constant uint _44 = (e >> f); -constant int _46 = (c << d); -constant int _48 = (c | d); -constant int _50 = (c ^ d); -constant int _52 = (c & d); -#ifndef SPIRV_CROSS_CONSTANT_ID_7 -#define SPIRV_CROSS_CONSTANT_ID_7 false -#endif -constant bool g = SPIRV_CROSS_CONSTANT_ID_7; -#ifndef SPIRV_CROSS_CONSTANT_ID_8 -#define SPIRV_CROSS_CONSTANT_ID_8 true -#endif -constant bool h = SPIRV_CROSS_CONSTANT_ID_8; -constant bool _58 = (g || h); -constant bool _60 = (g && h); -constant bool _62 = (!g); -constant bool _64 = (g == h); -constant bool _66 = (g != h); -constant bool _68 = (c == d); -constant bool _70 = (c != d); -constant bool _72 = (c < d); -constant bool _74 = (e < f); -constant bool _76 = (c > d); -constant bool _78 = (e > f); -constant bool _80 = (c <= d); -constant bool _82 = (e <= f); -constant bool _84 = (c >= d); -constant bool _86 = (e >= f); -constant int _92 = int(e + 0u); -constant bool _94 = (c != int(0u)); -constant bool _96 = (e != 0u); -constant int _100 = int(g); -constant uint _103 = uint(g); - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - float t0 = a; - float t1 = b; - uint c0 = _18; - int c1 = _21; - int c2 = _23; - int c3 = _26; - int c4 = _28; - int c5 = _30; - int c6 = _32; - uint c7 = _36; - int c8 = _38; - uint c9 = _40; - int c10 = _42; - uint c11 = _44; - int c12 = _46; - int c13 = _48; - int c14 = _50; - int c15 = _52; - bool c16 = _58; - bool c17 = _60; - bool c18 = _62; - bool c19 = _64; - bool c20 = _66; - bool c21 = _68; - bool c22 = _70; - bool c23 = _72; - bool c24 = _74; - bool c25 = _76; - bool c26 = _78; - bool c27 = _80; - bool c28 = _82; - bool c29 = _84; - bool c30 = _86; - int c31 = c8 + c3; - int c32 = _92; - bool c33 = _94; - bool c34 = _96; - int c35 = _100; - uint c36 = _103; - float c37 = float(g); - out.FragColor = float4(t0 + t1); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vulkan/frag/spec-constant.vk.frag b/third_party/spirv-cross/reference/shaders-msl/vulkan/frag/spec-constant.vk.frag deleted file mode 100644 index aa10a501a6..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vulkan/frag/spec-constant.vk.frag +++ /dev/null @@ -1,110 +0,0 @@ -#include -#include - -using namespace metal; - -constant float a_tmp [[function_constant(1)]]; -constant float a = is_function_constant_defined(a_tmp) ? a_tmp : 1.0; -constant float b_tmp [[function_constant(2)]]; -constant float b = is_function_constant_defined(b_tmp) ? b_tmp : 2.0; -constant int c_tmp [[function_constant(3)]]; -constant int c = is_function_constant_defined(c_tmp) ? c_tmp : 3; -constant uint _18 = (uint(c) + 0u); -constant int _21 = (-c); -constant int _23 = (~c); -constant int d_tmp [[function_constant(4)]]; -constant int d = is_function_constant_defined(d_tmp) ? d_tmp : 4; -constant int _26 = (c + d); -constant int _28 = (c - d); -constant int _30 = (c * d); -constant int _32 = (c / d); -constant uint e_tmp [[function_constant(5)]]; -constant uint e = is_function_constant_defined(e_tmp) ? e_tmp : 5u; -constant uint f_tmp [[function_constant(6)]]; -constant uint f = is_function_constant_defined(f_tmp) ? f_tmp : 6u; -constant uint _36 = (e / f); -constant int _38 = (c % d); -constant uint _40 = (e % f); -constant int _42 = (c >> d); -constant uint _44 = (e >> f); -constant int _46 = (c << d); -constant int _48 = (c | d); -constant int _50 = (c ^ d); -constant int _52 = (c & d); -constant bool g_tmp [[function_constant(7)]]; -constant bool g = is_function_constant_defined(g_tmp) ? g_tmp : false; -constant bool h_tmp [[function_constant(8)]]; -constant bool h = is_function_constant_defined(h_tmp) ? h_tmp : true; -constant bool _58 = (g || h); -constant bool _60 = (g && h); -constant bool _62 = (!g); -constant bool _64 = (g == h); -constant bool _66 = (g != h); -constant bool _68 = (c == d); -constant bool _70 = (c != d); -constant bool _72 = (c < d); -constant bool _74 = (e < f); -constant bool _76 = (c > d); -constant bool _78 = (e > f); -constant bool _80 = (c <= d); -constant bool _82 = (e <= f); -constant bool _84 = (c >= d); -constant bool _86 = (e >= f); -constant int _92 = int(e + 0u); -constant bool _94 = (c != int(0u)); -constant bool _96 = (e != 0u); -constant int _100 = int(g); -constant uint _103 = uint(g); - -struct main0_out -{ - float4 FragColor [[color(0)]]; -}; - -fragment main0_out main0() -{ - main0_out out = {}; - float t0 = a; - float t1 = b; - uint c0 = _18; - int c1 = _21; - int c2 = _23; - int c3 = _26; - int c4 = _28; - int c5 = _30; - int c6 = _32; - uint c7 = _36; - int c8 = _38; - uint c9 = _40; - int c10 = _42; - uint c11 = _44; - int c12 = _46; - int c13 = _48; - int c14 = _50; - int c15 = _52; - bool c16 = _58; - bool c17 = _60; - bool c18 = _62; - bool c19 = _64; - bool c20 = _66; - bool c21 = _68; - bool c22 = _70; - bool c23 = _72; - bool c24 = _74; - bool c25 = _76; - bool c26 = _78; - bool c27 = _80; - bool c28 = _82; - bool c29 = _84; - bool c30 = _86; - int c31 = c8 + c3; - int c32 = _92; - bool c33 = _94; - bool c34 = _96; - int c35 = _100; - uint c36 = _103; - float c37 = float(g); - out.FragColor = float4(t0 + t1); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vulkan/vert/device-group.multiview.viewfromdev.nocompat.vk.vert b/third_party/spirv-cross/reference/shaders-msl/vulkan/vert/device-group.multiview.viewfromdev.nocompat.vk.vert deleted file mode 100644 index e36576b86f..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vulkan/vert/device-group.multiview.viewfromdev.nocompat.vk.vert +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -vertex main0_out main0() -{ - main0_out out = {}; - const int gl_DeviceIndex = 0; - const uint gl_ViewIndex = 0; - out.gl_Position = float4(float(gl_DeviceIndex), float(int(gl_ViewIndex)), 0.0, 1.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vulkan/vert/device-group.nocompat.vk.vert b/third_party/spirv-cross/reference/shaders-msl/vulkan/vert/device-group.nocompat.vk.vert deleted file mode 100644 index cc4bcc4202..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vulkan/vert/device-group.nocompat.vk.vert +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -vertex main0_out main0() -{ - main0_out out = {}; - const int gl_DeviceIndex = 0; - out.gl_Position = float4(float(gl_DeviceIndex)); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vulkan/vert/multiview.multiview.no-layered.nocompat.vk.vert b/third_party/spirv-cross/reference/shaders-msl/vulkan/vert/multiview.multiview.no-layered.nocompat.vk.vert deleted file mode 100644 index 8959afe821..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vulkan/vert/multiview.multiview.no-layered.nocompat.vk.vert +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -using namespace metal; - -struct MVPs -{ - float4x4 MVP[2]; -}; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 Position [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant uint* spvViewMask [[buffer(24)]], constant MVPs& _19 [[buffer(0)]]) -{ - main0_out out = {}; - const uint gl_ViewIndex = spvViewMask[0]; - out.gl_Position = _19.MVP[int(gl_ViewIndex)] * in.Position; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vulkan/vert/multiview.multiview.nocompat.vk.vert b/third_party/spirv-cross/reference/shaders-msl/vulkan/vert/multiview.multiview.nocompat.vk.vert deleted file mode 100644 index 20eff0a124..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vulkan/vert/multiview.multiview.nocompat.vk.vert +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include - -using namespace metal; - -struct MVPs -{ - float4x4 MVP[2]; -}; - -struct main0_out -{ - float4 gl_Position [[position]]; - uint gl_Layer [[render_target_array_index]]; -}; - -struct main0_in -{ - float4 Position [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant uint* spvViewMask [[buffer(24)]], constant MVPs& _19 [[buffer(0)]], uint gl_InstanceIndex [[instance_id]], uint gl_BaseInstance [[base_instance]]) -{ - main0_out out = {}; - uint gl_ViewIndex = spvViewMask[0] + (gl_InstanceIndex - gl_BaseInstance) % spvViewMask[1]; - gl_InstanceIndex = (gl_InstanceIndex - gl_BaseInstance) / spvViewMask[1] + gl_BaseInstance; - out.gl_Position = _19.MVP[int(gl_ViewIndex)] * in.Position; - out.gl_Layer = gl_ViewIndex - spvViewMask[0]; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vulkan/vert/multiview.nocompat.vk.vert b/third_party/spirv-cross/reference/shaders-msl/vulkan/vert/multiview.nocompat.vk.vert deleted file mode 100644 index 5152b6222e..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vulkan/vert/multiview.nocompat.vk.vert +++ /dev/null @@ -1,29 +0,0 @@ -#include -#include - -using namespace metal; - -struct MVPs -{ - float4x4 MVP[2]; -}; - -struct main0_out -{ - float4 gl_Position [[position]]; - uint gl_Layer [[render_target_array_index]]; -}; - -struct main0_in -{ - float4 Position [[attribute(0)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant MVPs& _19 [[buffer(0)]], uint gl_InstanceIndex [[instance_id]], uint gl_BaseInstance [[base_instance]]) -{ - main0_out out = {}; - const uint gl_ViewIndex = 0; - out.gl_Position = _19.MVP[int(gl_ViewIndex)] * in.Position; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vulkan/vert/small-storage.vk.vert b/third_party/spirv-cross/reference/shaders-msl/vulkan/vert/small-storage.vk.vert deleted file mode 100644 index c9ef91b247..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vulkan/vert/small-storage.vk.vert +++ /dev/null @@ -1,48 +0,0 @@ -#include -#include - -using namespace metal; - -struct block -{ - short2 a; - ushort2 b; - char2 c; - uchar2 d; - half2 e; -}; - -struct storage -{ - short3 f; - ushort3 g; - char3 h; - uchar3 i; - half3 j; -}; - -struct main0_out -{ - short4 p [[user(locn0)]]; - ushort4 q [[user(locn1)]]; - half4 r [[user(locn2)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - short foo [[attribute(0)]]; - ushort bar [[attribute(1)]]; - half baz [[attribute(2)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant block& _26 [[buffer(0)]], const device storage& _53 [[buffer(1)]]) -{ - main0_out out = {}; - out.p = short4((int4(int(in.foo)) + int4(int2(_26.a), int2(_26.c))) - int4(int3(_53.f) / int3(_53.h), 1)); - out.q = ushort4((uint4(uint(in.bar)) + uint4(uint2(_26.b), uint2(_26.d))) - uint4(uint3(_53.g) / uint3(_53.i), 1u)); - out.r = half4((float4(float(in.baz)) + float4(float2(_26.e), 0.0, 1.0)) - float4(float3(_53.j), 1.0)); - out.gl_Position = float4(0.0, 0.0, 0.0, 1.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-msl/vulkan/vert/vulkan-vertex.vk.vert b/third_party/spirv-cross/reference/shaders-msl/vulkan/vert/vulkan-vertex.vk.vert deleted file mode 100644 index 86a0cea5bb..0000000000 --- a/third_party/spirv-cross/reference/shaders-msl/vulkan/vert/vulkan-vertex.vk.vert +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace metal; - -struct main0_out -{ - float4 gl_Position [[position]]; -}; - -vertex main0_out main0(uint gl_VertexIndex [[vertex_id]], uint gl_InstanceIndex [[instance_id]]) -{ - main0_out out = {}; - out.gl_Position = float4(1.0, 2.0, 3.0, 4.0) * float(int(gl_VertexIndex) + int(gl_InstanceIndex)); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/access-chain-dominator-in-loop-body-2.asm.comp b/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/access-chain-dominator-in-loop-body-2.asm.comp deleted file mode 100644 index c27bef6a6d..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/access-chain-dominator-in-loop-body-2.asm.comp +++ /dev/null @@ -1,30 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer SSBO -{ - int values[]; -} _4; - -void main() -{ - int _17 = 0; - for (;;) - { - if (_17 < 100) - { - int _24 = _4.values[_17]; - _4.values[_24] = _17; - int _26 = _24 + 1; - int _18 = _4.values[_26]; - _4.values[_17] = _18; - _17 = _18; - continue; - } - else - { - break; - } - } -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/access-chain-dominator-in-loop-body.asm.comp b/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/access-chain-dominator-in-loop-body.asm.comp deleted file mode 100644 index 0517ec4d8b..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/access-chain-dominator-in-loop-body.asm.comp +++ /dev/null @@ -1,27 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer SSBO -{ - int values[]; -} _4; - -void main() -{ - int _17 = 0; - for (;;) - { - if (_17 < 100) - { - int _24 = _4.values[_17]; - _4.values[_24] = _17; - _17 = _4.values[_24 + 1]; - continue; - } - else - { - break; - } - } -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/access-tracking-function-call-result.asm.comp b/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/access-tracking-function-call-result.asm.comp deleted file mode 100644 index e4dfdb87a8..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/access-tracking-function-call-result.asm.comp +++ /dev/null @@ -1,24 +0,0 @@ -#version 460 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer Output -{ - int myout; -} _5; - -int foo() -{ - return 12; -} - -void main() -{ - int _17 = foo(); - while (true) - { - _5.myout = _17; - return; - } - _5.myout = _17; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/aliased-struct-divergent-member-name.asm.comp b/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/aliased-struct-divergent-member-name.asm.comp deleted file mode 100644 index d36f543108..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/aliased-struct-divergent-member-name.asm.comp +++ /dev/null @@ -1,25 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -struct T -{ - float c; -}; - -layout(binding = 0, std430) buffer SSBO1 -{ - T foo[]; -} _7; - -layout(binding = 1, std140) buffer SSBO2 -{ - T bar[]; -} _10; - -void main() -{ - T v = T(40.0); - _7.foo[10].c = v.c; - _10.bar[30].c = v.c; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/arithmetic-conversion-signs.asm.nocompat.vk.comp.vk b/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/arithmetic-conversion-signs.asm.nocompat.vk.comp.vk deleted file mode 100644 index 5f480728e4..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/arithmetic-conversion-signs.asm.nocompat.vk.comp.vk +++ /dev/null @@ -1,46 +0,0 @@ -#version 450 -#extension GL_EXT_shader_explicit_arithmetic_types_int16 : require -#extension GL_EXT_shader_16bit_storage : require -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(set = 0, binding = 0, std430) buffer SSBO -{ - int s32; - uint u32; - int16_t s16; - uint16_t u16; - float f32; -} _4; - -void main() -{ - int _29 = _4.s32; - uint _30 = _4.u32; - int16_t _31 = _4.s16; - uint16_t _32 = _4.u16; - float _33 = _4.f32; - _4.s32 = int(_31); - _4.u32 = uint(_31); - _4.s32 = int(int16_t(_32)); - _4.u32 = uint(int16_t(_32)); - _4.u32 = uint(uint16_t(_31)); - _4.u32 = uint(_32); - _4.s16 = int16_t(_29); - _4.u16 = uint16_t(_29); - _4.s16 = int16_t(_30); - _4.u16 = uint16_t(_30); - _4.u16 = uint16_t(_29); - _4.u16 = uint16_t(_30); - _4.f32 = float(_31); - _4.f32 = float(int16_t(_32)); - _4.f32 = float(_29); - _4.f32 = float(int(_30)); - _4.f32 = float(uint16_t(_31)); - _4.f32 = float(_32); - _4.f32 = float(uint(_29)); - _4.f32 = float(_30); - _4.s16 = int16_t(_33); - _4.u16 = uint16_t(int16_t(_33)); - _4.u16 = uint16_t(_33); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/atomic-load-store.asm.comp b/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/atomic-load-store.asm.comp deleted file mode 100644 index 10a54fc8cf..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/atomic-load-store.asm.comp +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer SSBO -{ - uint a; - uint b; -} _5; - -void main() -{ - uint _20 = atomicAdd(_5.b, 0u); - uint c = _20; - atomicExchange(_5.a, c); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/atomic-result-temporary.asm.comp b/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/atomic-result-temporary.asm.comp deleted file mode 100644 index b51c6c58de..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/atomic-result-temporary.asm.comp +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer SSBO -{ - uint count; - uint data[]; -} _5; - -void main() -{ - uint _24 = atomicAdd(_5.count, 1u); - if (_24 < 1024u) - { - _5.data[_24] = gl_GlobalInvocationID.x; - } -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/bitcast-fp16-fp32.asm.vk.comp b/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/bitcast-fp16-fp32.asm.vk.comp deleted file mode 100644 index 66a70f1848..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/bitcast-fp16-fp32.asm.vk.comp +++ /dev/null @@ -1,24 +0,0 @@ -#version 450 -#if defined(GL_AMD_gpu_shader_half_float) -#extension GL_AMD_gpu_shader_half_float : require -#elif defined(GL_NV_gpu_shader5) -#extension GL_NV_gpu_shader5 : require -#else -#error No extension available for FP16. -#endif -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer SSBO -{ - f16vec2 a; - float b; - float c; - f16vec2 d; -} _4; - -void main() -{ - _4.b = uintBitsToFloat(packFloat2x16(_4.a)); - _4.d = unpackFloat2x16(floatBitsToUint(_4.c)); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/bitcast-fp16-fp32.asm.vk.comp.vk b/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/bitcast-fp16-fp32.asm.vk.comp.vk deleted file mode 100644 index 09eccf4b31..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/bitcast-fp16-fp32.asm.vk.comp.vk +++ /dev/null @@ -1,25 +0,0 @@ -#version 450 -#if defined(GL_AMD_gpu_shader_half_float) -#extension GL_AMD_gpu_shader_half_float : require -#elif defined(GL_EXT_shader_explicit_arithmetic_types_float16) -#extension GL_EXT_shader_explicit_arithmetic_types_float16 : require -#else -#error No extension available for FP16. -#endif -#extension GL_EXT_shader_16bit_storage : require -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(set = 0, binding = 0, std430) buffer SSBO -{ - f16vec2 a; - float b; - float c; - f16vec2 d; -} _4; - -void main() -{ - _4.b = uintBitsToFloat(packFloat2x16(_4.a)); - _4.d = unpackFloat2x16(floatBitsToUint(_4.c)); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/bitfield-signed-operations.asm.comp b/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/bitfield-signed-operations.asm.comp deleted file mode 100644 index f535ba7f49..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/bitfield-signed-operations.asm.comp +++ /dev/null @@ -1,27 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer SSBO -{ - ivec4 ints; - uvec4 uints; -} _3; - -void main() -{ - ivec4 _19 = _3.ints; - uvec4 _20 = _3.uints; - _3.ints = bitCount(_19); - _3.uints = uvec4(bitCount(_19)); - _3.ints = bitCount(_20); - _3.uints = uvec4(bitCount(_20)); - _3.ints = bitfieldReverse(_19); - _3.uints = bitfieldReverse(_20); - _3.ints = bitfieldExtract(_19, 1, int(11u)); - _3.uints = uvec4(bitfieldExtract(ivec4(_20), int(11u), 1)); - _3.ints = ivec4(bitfieldExtract(uvec4(_19), 1, int(11u))); - _3.uints = bitfieldExtract(_20, int(11u), 1); - _3.ints = bitfieldInsert(_19, _19.wzyx, 1, int(11u)); - _3.uints = bitfieldInsert(_20, _20.wzyx, int(11u), 1); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/bitscan.asm.comp b/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/bitscan.asm.comp deleted file mode 100644 index 31a6234abb..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/bitscan.asm.comp +++ /dev/null @@ -1,27 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer SSBO -{ - uvec4 u; - ivec4 i; -} _4; - -void main() -{ - uvec4 _19 = _4.u; - ivec4 _20 = _4.i; - _4.u = uvec4(findLSB(_19)); - _4.i = findLSB(_19); - _4.u = uvec4(findLSB(_20)); - _4.i = findLSB(_20); - _4.u = uvec4(findMSB(_19)); - _4.i = findMSB(_19); - _4.u = uvec4(findMSB(uvec4(_20))); - _4.i = findMSB(uvec4(_20)); - _4.u = uvec4(findMSB(ivec4(_19))); - _4.i = findMSB(ivec4(_19)); - _4.u = uvec4(findMSB(_20)); - _4.i = findMSB(_20); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/buffer-atomic-nonuniform.vk.nocompat.asm.comp.vk b/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/buffer-atomic-nonuniform.vk.nocompat.asm.comp.vk deleted file mode 100644 index d700d61353..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/buffer-atomic-nonuniform.vk.nocompat.asm.comp.vk +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 -#extension GL_EXT_nonuniform_qualifier : require -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(set = 0, binding = 0, std430) buffer SSBO -{ - uint v; -} ssbos[]; - -void main() -{ - uint _24 = gl_GlobalInvocationID.z; - uint _25 = atomicAdd(ssbos[nonuniformEXT(_24)].v, 1u); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/buffer-reference-aliased-block-name.nocompat.vk.asm.comp.vk b/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/buffer-reference-aliased-block-name.nocompat.vk.asm.comp.vk deleted file mode 100644 index cabf8352e5..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/buffer-reference-aliased-block-name.nocompat.vk.asm.comp.vk +++ /dev/null @@ -1,35 +0,0 @@ -#version 450 -#extension GL_EXT_buffer_reference : require -layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in; - -layout(buffer_reference) buffer Alias; -layout(buffer_reference) buffer _6; -layout(buffer_reference) buffer _7; -layout(buffer_reference, std430) readonly buffer Alias -{ - vec4 v[]; -}; - -layout(buffer_reference, std430) restrict buffer _6 -{ - vec4 v[]; -}; - -layout(buffer_reference, std430) coherent writeonly buffer _7 -{ - vec4 v[]; -}; - -layout(push_constant, std430) uniform Registers -{ - Alias ro; - _6 rw; - _7 wo; -} registers; - -void main() -{ - registers.rw.v[gl_GlobalInvocationID.x] = registers.ro.v[gl_GlobalInvocationID.x]; - registers.wo.v[gl_GlobalInvocationID.x] = registers.ro.v[gl_GlobalInvocationID.x]; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/buffer-reference-synthesized-pointer-2.asm.nocompat.vk.comp.vk b/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/buffer-reference-synthesized-pointer-2.asm.nocompat.vk.comp.vk deleted file mode 100644 index 0288931915..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/buffer-reference-synthesized-pointer-2.asm.nocompat.vk.comp.vk +++ /dev/null @@ -1,21 +0,0 @@ -#version 450 -#extension GL_ARB_gpu_shader_int64 : require -#extension GL_EXT_buffer_reference : require -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(buffer_reference) buffer uintPointer -{ - uint value; -}; - -layout(push_constant, std430) uniform _4_12 -{ - uint64_t _m0; -} _12; - -void main() -{ - uintPointer _3 = uintPointer(_12._m0); - _3.value = 20u; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/buffer-reference-synthesized-pointer.asm.nocompat.vk.comp.vk b/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/buffer-reference-synthesized-pointer.asm.nocompat.vk.comp.vk deleted file mode 100644 index 9553199b46..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/buffer-reference-synthesized-pointer.asm.nocompat.vk.comp.vk +++ /dev/null @@ -1,21 +0,0 @@ -#version 450 -#extension GL_ARB_gpu_shader_int64 : require -#extension GL_EXT_buffer_reference : require -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(buffer_reference) buffer uint0_Pointer -{ - uint value[]; -}; - -layout(push_constant, std430) uniform _6_14 -{ - uint64_t _m0; -} _14; - -void main() -{ - uint0_Pointer _5 = uint0_Pointer(_14._m0); - _5.value[10] = 20u; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/constant-composite-undef.asm.comp b/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/constant-composite-undef.asm.comp deleted file mode 100644 index 279dede112..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/constant-composite-undef.asm.comp +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer Block -{ - vec4 f; -} block; - -float _15; - -void main() -{ - block.f = vec4(0.100000001490116119384765625, 0.20000000298023223876953125, 0.300000011920928955078125, 0.0); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/copy-logical.spv14.asm.comp b/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/copy-logical.spv14.asm.comp deleted file mode 100644 index 28b2d1d0e9..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/copy-logical.spv14.asm.comp +++ /dev/null @@ -1,45 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -struct B2 -{ - vec4 elem2; -}; - -struct C -{ - vec4 c; - B2 b2; - B2 b2_array[4]; -}; - -struct B1 -{ - vec4 elem1; -}; - -struct A -{ - vec4 a; - B1 b1; - B1 b1_array[4]; -}; - -layout(binding = 0, std430) buffer _8_3 -{ - A a_block; - C c_block; -} _3; - -void main() -{ - A _27; - _27.a = _3.c_block.c; - _27.b1.elem1 = _3.c_block.b2.elem2; - _27.b1_array[0].elem1 = _3.c_block.b2_array[0].elem2; - _27.b1_array[1].elem1 = _3.c_block.b2_array[1].elem2; - _27.b1_array[2].elem1 = _3.c_block.b2_array[2].elem2; - _27.b1_array[3].elem1 = _3.c_block.b2_array[3].elem2; - _3.a_block = _27; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/eliminate-globals-not-in-entry-point.noeliminate.spv14.asm.comp b/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/eliminate-globals-not-in-entry-point.noeliminate.spv14.asm.comp deleted file mode 100644 index 77ea03495f..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/eliminate-globals-not-in-entry-point.noeliminate.spv14.asm.comp +++ /dev/null @@ -1,7 +0,0 @@ -#version 450 -layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in; - -void main() -{ -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/extended-debug-extinst.invalid.asm.comp b/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/extended-debug-extinst.invalid.asm.comp deleted file mode 100644 index 7755593f57..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/extended-debug-extinst.invalid.asm.comp +++ /dev/null @@ -1,18 +0,0 @@ -#version 430 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer _8_9 -{ - float _m0[]; -} _9; - -layout(binding = 1, std430) buffer _8_10 -{ - float _m0[]; -} _10; - -void main() -{ - _10._m0[gl_GlobalInvocationID.x] = -_9._m0[gl_GlobalInvocationID.x]; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/glsl-signed-operations.asm.comp b/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/glsl-signed-operations.asm.comp deleted file mode 100644 index 35edd4dd6d..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/glsl-signed-operations.asm.comp +++ /dev/null @@ -1,47 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer SSBO -{ - ivec4 ints; - uvec4 uints; -} _4; - -void main() -{ - ivec4 _19 = _4.ints; - uvec4 _20 = _4.uints; - _4.ints = abs(_19); - _4.uints = uvec4(abs(_19)); - _4.ints = abs(ivec4(_20)); - _4.uints = uvec4(abs(ivec4(_20))); - _4.ints = sign(_19); - _4.uints = uvec4(sign(_19)); - _4.ints = sign(ivec4(_20)); - _4.uints = uvec4(sign(ivec4(_20))); - _4.ints = findMSB(ivec4(_20)); - _4.uints = uvec4(findMSB(ivec4(_20))); - _4.ints = findMSB(uvec4(_19)); - _4.uints = uvec4(findMSB(uvec4(_19))); - _4.ints = min(_19, _19); - _4.uints = uvec4(min(_19, ivec4(_20))); - _4.ints = min(ivec4(_20), ivec4(_20)); - _4.uints = uvec4(min(ivec4(_20), _19)); - _4.ints = ivec4(min(uvec4(_19), _20)); - _4.uints = min(uvec4(_19), _20); - _4.ints = ivec4(min(_20, uvec4(_19))); - _4.uints = min(_20, uvec4(_19)); - _4.ints = max(_19, _19); - _4.uints = uvec4(max(_19, _19)); - _4.ints = max(ivec4(_20), _19); - _4.uints = uvec4(max(ivec4(_20), _19)); - _4.ints = ivec4(max(uvec4(_19), _20)); - _4.uints = max(uvec4(_19), uvec4(_19)); - _4.ints = ivec4(max(_20, uvec4(_19))); - _4.uints = max(_20, uvec4(_19)); - _4.ints = clamp(ivec4(_20), ivec4(_20), ivec4(_20)); - _4.uints = uvec4(clamp(ivec4(_20), ivec4(_20), ivec4(_20))); - _4.ints = ivec4(clamp(uvec4(_19), uvec4(_19), uvec4(_19))); - _4.uints = clamp(uvec4(_19), uvec4(_19), uvec4(_19)); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/glsl.std450.frexp-modf-struct.asm.comp b/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/glsl.std450.frexp-modf-struct.asm.comp deleted file mode 100644 index dc0956c345..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/glsl.std450.frexp-modf-struct.asm.comp +++ /dev/null @@ -1,33 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -struct _8 -{ - float _m0; - float _m1; -}; - -struct _15 -{ - float _m0; - int _m1; -}; - -layout(binding = 0, std430) buffer _3_4 -{ - float _m0; - int _m1; -} _4; - -void main() -{ - _8 _23; - _23._m0 = modf(20.0, _23._m1); - _15 _24; - _24._m0 = frexp(40.0, _24._m1); - _4._m0 = _23._m0; - _4._m0 = _23._m1; - _4._m0 = _24._m0; - _4._m1 = _24._m1; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/image-atomic-nonuniform.vk.nocompat.asm.comp.vk b/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/image-atomic-nonuniform.vk.nocompat.asm.comp.vk deleted file mode 100644 index c6c1ea3e26..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/image-atomic-nonuniform.vk.nocompat.asm.comp.vk +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 -#extension GL_EXT_nonuniform_qualifier : require -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(set = 0, binding = 0, r32ui) uniform uimage2D uImage[]; - -void main() -{ - uint _26 = gl_GlobalInvocationID.z; - uint _31 = imageAtomicAdd(uImage[nonuniformEXT(_26)], ivec2(gl_GlobalInvocationID.xy), 1u); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/loop-variable-with-initializer.asm.comp b/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/loop-variable-with-initializer.asm.comp deleted file mode 100644 index ca8e58cfc7..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/loop-variable-with-initializer.asm.comp +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -void main() -{ - uint i = 0u; - for (;;) - { - break; - } -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/nonuniform-bracket-handling.vk.nocompat.asm.comp.vk b/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/nonuniform-bracket-handling.vk.nocompat.asm.comp.vk deleted file mode 100644 index 9b7de0622f..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/nonuniform-bracket-handling.vk.nocompat.asm.comp.vk +++ /dev/null @@ -1,55 +0,0 @@ -#version 450 -#extension GL_EXT_buffer_reference : require -#extension GL_EXT_nonuniform_qualifier : require -#extension GL_KHR_shader_subgroup_ballot : require -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(set = 0, binding = 0, std430) restrict readonly buffer SSBO_Offsets -{ - uvec2 _m0[]; -} _7; - -layout(push_constant, std430) uniform RootConstants -{ - uint _m0; - uint _m1; - uint _m2; - uint _m3; - uint _m4; - uint _m5; - uint _m6; - uint _m7; -} registers; - -layout(set = 1, binding = 0) uniform samplerBuffer _8[]; -layout(set = 4, binding = 0, r32f) uniform imageBuffer _9[]; -layout(set = 4, binding = 0, r32ui) uniform uimageBuffer _10[]; - -void main() -{ - uint _61 = registers._m4 + 2u; - uint _64 = subgroupBroadcastFirst(_61); - uint _71 = subgroupBroadcastFirst(registers._m4); - uint _76 = registers._m1 + 1u; - uint _79 = subgroupBroadcastFirst(_76); - uint _88 = gl_GlobalInvocationID.x + 4u; - uint _99 = gl_GlobalInvocationID.x + 1024u; - imageStore(_9[registers._m4], int((_99 < _7._m0[_71].y) ? (_99 + _7._m0[_71].x) : 4294967295u), vec4(imageLoad(_9[registers._m4], int((_88 < _7._m0[_71].y) ? (_88 + _7._m0[_71].x) : 4294967295u)))); - uint _106 = gl_GlobalInvocationID.x + 2u; - uint _117 = gl_GlobalInvocationID.x + 2048u; - imageStore(_9[registers._m4], int((_117 < _7._m0[_71].y) ? (_117 + _7._m0[_71].x) : 4294967295u), vec4(texelFetch(_8[_76], int((_106 < _7._m0[_79].y) ? (_106 + _7._m0[_79].x) : 4294967295u)))); - uint _130 = imageAtomicAdd(_10[_61], int((gl_GlobalInvocationID.x < _7._m0[_64].y) ? (gl_GlobalInvocationID.x + _7._m0[_64].x) : 4294967295u), 40u); - uint _137 = imageAtomicCompSwap(_10[_61], int((gl_GlobalInvocationID.y < _7._m0[_64].y) ? (gl_GlobalInvocationID.y + _7._m0[_64].x) : 4294967295u), 40u, 50u); - imageStore(_9[registers._m4], int((0u < _7._m0[_71].y) ? (0u + _7._m0[_71].x) : 4294967295u), vec4(float(_7._m0[_71].y))); - imageStore(_9[registers._m4], int((1u < _7._m0[_71].y) ? (1u + _7._m0[_71].x) : 4294967295u), vec4(float(_7._m0[_79].y))); - uint _11 = registers._m4 + (gl_GlobalInvocationID.z + 0u); - imageStore(_9[nonuniformEXT(_11)], int((_99 < _7._m0[_11].y) ? (_99 + _7._m0[_11].x) : 4294967295u), vec4(imageLoad(_9[nonuniformEXT(_11)], int((_88 < _7._m0[_11].y) ? (_88 + _7._m0[_11].x) : 4294967295u)))); - uint _13 = registers._m1 + (gl_GlobalInvocationID.z + 0u); - imageStore(_9[nonuniformEXT(_11)], int((_117 < _7._m0[_11].y) ? (_117 + _7._m0[_11].x) : 4294967295u), vec4(texelFetch(_8[nonuniformEXT(_13)], int((_88 < _7._m0[_13].y) ? (_88 + _7._m0[_13].x) : 4294967295u)))); - uint _15 = registers._m4 + (gl_GlobalInvocationID.z + 0u); - uint _209 = imageAtomicAdd(_10[nonuniformEXT(_15)], int((gl_GlobalInvocationID.y < _7._m0[_15].y) ? (gl_GlobalInvocationID.y + _7._m0[_15].x) : 4294967295u), 40u); - uint _215 = imageAtomicCompSwap(_10[nonuniformEXT(_15)], int((gl_GlobalInvocationID.y < _7._m0[_15].y) ? (gl_GlobalInvocationID.y + _7._m0[_15].x) : 4294967295u), 40u, 70u); - imageStore(_9[registers._m4], int((2u < _7._m0[_71].y) ? (2u + _7._m0[_71].x) : 4294967295u), vec4(float(_7._m0[_11].y))); - imageStore(_9[registers._m4], int((3u < _7._m0[_71].y) ? (3u + _7._m0[_71].x) : 4294967295u), vec4(float(_7._m0[_13].y))); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/phi-temporary-copy-loop-variable.asm.invalid.comp b/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/phi-temporary-copy-loop-variable.asm.invalid.comp deleted file mode 100644 index f8650b5e5c..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/phi-temporary-copy-loop-variable.asm.invalid.comp +++ /dev/null @@ -1,20 +0,0 @@ -#version 450 -layout(local_size_x = 8, local_size_y = 8, local_size_z = 1) in; - -layout(binding = 1, rgba32f) uniform writeonly image2D outImageTexture; - -void main() -{ - int _27_copy; - int _30; - _30 = 7; - for (int _27 = 7; _27 >= 0; _27_copy = _27, _27--, _30 = _27_copy) - { - if (5.0 > float(_27)) - { - break; - } - } - imageStore(outImageTexture, ivec2(gl_GlobalInvocationID.xy), vec4(float(_30 - 1), float(_30), 1.0, 1.0)); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/spec-constant-op-convert-sign.asm.comp b/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/spec-constant-op-convert-sign.asm.comp deleted file mode 100644 index c6aa711f65..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/spec-constant-op-convert-sign.asm.comp +++ /dev/null @@ -1,33 +0,0 @@ -#version 450 -#extension GL_ARB_gpu_shader_int64 : require -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -#ifndef SPIRV_CROSS_CONSTANT_ID_0 -#define SPIRV_CROSS_CONSTANT_ID_0 1 -#endif -const int ConstantInt = SPIRV_CROSS_CONSTANT_ID_0; -#ifndef SPIRV_CROSS_CONSTANT_ID_1 -#define SPIRV_CROSS_CONSTANT_ID_1 2u -#endif -const uint ConstantUint = SPIRV_CROSS_CONSTANT_ID_1; -const int64_t ConstantInt64_1 = int64_t(ConstantInt); -const int64_t ConstantInt64_2 = int64_t(int(ConstantUint)); -const uint64_t ConstantUint64_1 = uint64_t(ConstantInt); -const uint64_t ConstantUint64_2 = uint64_t(int(ConstantUint)); -const int64_t _20 = (ConstantInt64_1 + ConstantInt64_2); -const uint64_t _21 = (ConstantUint64_1 + ConstantUint64_2); -const int _22 = int(_20); -const uint _23 = uint(_21); - -layout(binding = 0, std430) buffer SSBO -{ - int s64; - uint u64; -} _4; - -void main() -{ - _4.s64 = _22; - _4.u64 = _23; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/storage-buffer-basic.asm.comp b/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/storage-buffer-basic.asm.comp deleted file mode 100644 index 482cfd8a06..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/comp/storage-buffer-basic.asm.comp +++ /dev/null @@ -1,28 +0,0 @@ -#version 450 - -#ifndef SPIRV_CROSS_CONSTANT_ID_0 -#define SPIRV_CROSS_CONSTANT_ID_0 1u -#endif -#ifndef SPIRV_CROSS_CONSTANT_ID_2 -#define SPIRV_CROSS_CONSTANT_ID_2 3u -#endif - -layout(local_size_x = SPIRV_CROSS_CONSTANT_ID_0, local_size_y = 2, local_size_z = SPIRV_CROSS_CONSTANT_ID_2) in; - -layout(binding = 0, std430) buffer _6_8 -{ - float _m0[]; -} _8; - -layout(binding = 1, std430) buffer _6_9 -{ - float _m0[]; -} _9; - -uvec3 _22 = gl_WorkGroupSize; - -void main() -{ - _8._m0[gl_WorkGroupID.x] = _9._m0[gl_WorkGroupID.x] + _8._m0[gl_WorkGroupID.x]; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/array-builtin-bitcast-load-store.asm.frag b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/array-builtin-bitcast-load-store.asm.frag deleted file mode 100644 index 40f6ee714b..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/array-builtin-bitcast-load-store.asm.frag +++ /dev/null @@ -1,28 +0,0 @@ -#version 450 - -layout(binding = 0, std140) uniform uBuffer -{ - vec4 color; -} x_12; - -layout(location = 0) out vec4 fragColor; -const vec4 _2_init = vec4(0.0); - -void main() -{ - fragColor = _2_init; - gl_SampleMask[0] = 0; - fragColor = x_12.color; - gl_SampleMask[0] = int(uint(6)); - gl_SampleMask[0] = int(uint(gl_SampleMask[0])); - uint _30_unrolled[1]; - for (int i = 0; i < int(1); i++) - { - _30_unrolled[i] = int(gl_SampleMask[i]); - } - for (int i = 0; i < int(1); i++) - { - gl_SampleMask[i] = int(_30_unrolled[i]); - } -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/combined-image-sampler-dxc-min16float.asm.invalid.frag b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/combined-image-sampler-dxc-min16float.asm.invalid.frag deleted file mode 100644 index 5fa822b39f..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/combined-image-sampler-dxc-min16float.asm.invalid.frag +++ /dev/null @@ -1,28 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -struct PSInput -{ - highp vec4 color; - highp vec2 uv; -}; - -uniform mediump sampler2D SPIRV_Cross_CombinedtexSamp; - -layout(location = 0) in highp vec4 in_var_COLOR; -layout(location = 1) in highp vec2 in_var_TEXCOORD0; -layout(location = 0) out highp vec4 out_var_SV_TARGET; - -highp vec4 src_PSMain(PSInput _input) -{ - vec4 a = _input.color * texture(SPIRV_Cross_CombinedtexSamp, _input.uv); - return a; -} - -void main() -{ - PSInput param_var_input = PSInput(in_var_COLOR, in_var_TEXCOORD0); - out_var_SV_TARGET = src_PSMain(param_var_input); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/demote-impure-function-call.vk.nocompat.asm.frag.vk b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/demote-impure-function-call.vk.nocompat.asm.frag.vk deleted file mode 100644 index adde5fcbf4..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/demote-impure-function-call.vk.nocompat.asm.frag.vk +++ /dev/null @@ -1,22 +0,0 @@ -#version 450 -#extension GL_EXT_demote_to_helper_invocation : require - -layout(location = 0) flat in int vA; -layout(location = 0) out vec4 FragColor; - -vec4 foobar(int a) -{ - if (a < 0) - { - demote; - } - return vec4(10.0); -} - -void main() -{ - int param = vA; - vec4 _25 = foobar(param); - FragColor = vec4(10.0); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/discard-impure-function-call.asm.frag b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/discard-impure-function-call.asm.frag deleted file mode 100644 index 0fe71f64b4..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/discard-impure-function-call.asm.frag +++ /dev/null @@ -1,21 +0,0 @@ -#version 450 - -layout(location = 0) flat in int vA; -layout(location = 0) out vec4 FragColor; - -vec4 foobar(int a) -{ - if (a < 0) - { - discard; - } - return vec4(10.0); -} - -void main() -{ - int param = vA; - vec4 _25 = foobar(param); - FragColor = vec4(10.0); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/do-while-continue-phi.asm.invalid.frag b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/do-while-continue-phi.asm.invalid.frag deleted file mode 100644 index 2024c302ef..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/do-while-continue-phi.asm.invalid.frag +++ /dev/null @@ -1,37 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) out highp vec4 _GLF_color; - -void main() -{ - for (;;) - { - bool _32; - for (;;) - { - if (gl_FragCoord.x != gl_FragCoord.x) - { - _32 = true; - break; - } - if (false) - { - continue; - } - else - { - _32 = false; - break; - } - } - if (_32) - { - break; - } - _GLF_color = vec4(1.0, 0.0, 0.0, 1.0); - break; - } -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/do-while-loop-inverted-test.asm.frag b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/do-while-loop-inverted-test.asm.frag deleted file mode 100644 index 67587763ad..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/do-while-loop-inverted-test.asm.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 - -void main() -{ - int j = 0; - int i = 0; - do - { - j = ((j + i) + 1) * j; - i++; - } while (!(i == 20)); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/early-conditional-return-switch.asm.frag b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/early-conditional-return-switch.asm.frag deleted file mode 100644 index 34fffb85ac..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/early-conditional-return-switch.asm.frag +++ /dev/null @@ -1,67 +0,0 @@ -#version 450 - -layout(binding = 0, std140) uniform type_gCBuffarrayIndex -{ - uint gArrayIndex; -} gCBuffarrayIndex; - -uniform sampler2D SPIRV_Cross_Combinedg_textureArray0SPIRV_Cross_DummySampler; -uniform sampler2D SPIRV_Cross_Combinedg_textureArray1SPIRV_Cross_DummySampler; -uniform sampler2D SPIRV_Cross_Combinedg_textureArray2SPIRV_Cross_DummySampler; -uniform sampler2D SPIRV_Cross_Combinedg_textureArray3SPIRV_Cross_DummySampler; - -layout(location = 0) out vec4 out_var_SV_TARGET; - -vec4 _32; - -void main() -{ - vec4 _80; - do - { - vec4 _77; - bool _78; - switch (gCBuffarrayIndex.gArrayIndex) - { - case 0u: - { - _77 = texelFetch(SPIRV_Cross_Combinedg_textureArray0SPIRV_Cross_DummySampler, ivec3(int(gl_FragCoord.x), int(gl_FragCoord.y), 0).xy, 0); - _78 = true; - break; - } - case 1u: - { - _77 = texelFetch(SPIRV_Cross_Combinedg_textureArray1SPIRV_Cross_DummySampler, ivec3(int(gl_FragCoord.x), int(gl_FragCoord.y), 0).xy, 0); - _78 = true; - break; - } - case 2u: - { - _77 = texelFetch(SPIRV_Cross_Combinedg_textureArray2SPIRV_Cross_DummySampler, ivec3(int(gl_FragCoord.x), int(gl_FragCoord.y), 0).xy, 0); - _78 = true; - break; - } - case 3u: - { - _77 = texelFetch(SPIRV_Cross_Combinedg_textureArray3SPIRV_Cross_DummySampler, ivec3(int(gl_FragCoord.x), int(gl_FragCoord.y), 0).xy, 0); - _78 = true; - break; - } - default: - { - _77 = _32; - _78 = false; - break; - } - } - if (_78) - { - _80 = _77; - break; - } - _80 = vec4(0.0, 1.0, 0.0, 1.0); - break; - } while(false); - out_var_SV_TARGET = _80; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/empty-struct-in-struct.asm.frag b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/empty-struct-in-struct.asm.frag deleted file mode 100644 index 0d3958b5b0..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/empty-struct-in-struct.asm.frag +++ /dev/null @@ -1,31 +0,0 @@ -#version 450 - -struct EmptyStructTest -{ - int empty_struct_member; -}; - -struct EmptyStruct2Test -{ - EmptyStructTest _m0; -}; - -float GetValue(EmptyStruct2Test self) -{ - return 0.0; -} - -float GetValue_1(EmptyStruct2Test self) -{ - return 0.0; -} - -void main() -{ - EmptyStructTest _25 = EmptyStructTest(0); - EmptyStruct2Test emptyStruct; - float value = GetValue(emptyStruct); - value = GetValue_1(EmptyStruct2Test(_25)); - value = GetValue_1(EmptyStruct2Test(EmptyStructTest(0))); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/for-loop-dedicated-merge-block-inverted.asm.invalid.frag b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/for-loop-dedicated-merge-block-inverted.asm.invalid.frag deleted file mode 100644 index 16c7dc3630..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/for-loop-dedicated-merge-block-inverted.asm.invalid.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 - -void main() -{ - int _13; - for (int _12 = 0; !(_12 == 16); _12 = _13) - { - _13 = _12 + 1; - } -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/for-loop-dedicated-merge-block-non-inverted.asm.invalid.frag b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/for-loop-dedicated-merge-block-non-inverted.asm.invalid.frag deleted file mode 100644 index b4c0631852..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/for-loop-dedicated-merge-block-non-inverted.asm.invalid.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 - -void main() -{ - int _13; - for (int _12 = 0; _12 != 16; _12 = _13) - { - _13 = _12 + 1; - } -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/for-loop-inverted-test.asm.frag b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/for-loop-inverted-test.asm.frag deleted file mode 100644 index 16c7dc3630..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/for-loop-inverted-test.asm.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 - -void main() -{ - int _13; - for (int _12 = 0; !(_12 == 16); _12 = _13) - { - _13 = _12 + 1; - } -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/image-fetch-uint-coord.asm.frag b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/image-fetch-uint-coord.asm.frag deleted file mode 100644 index 8b8d0c8580..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/image-fetch-uint-coord.asm.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -uniform sampler2D SPIRV_Cross_CombinedTexSPIRV_Cross_DummySampler; - -layout(location = 0) flat in uvec3 in_var_TEXCOORD0; -layout(location = 0) out vec4 out_var_SV_Target0; - -void main() -{ - out_var_SV_Target0 = texelFetch(SPIRV_Cross_CombinedTexSPIRV_Cross_DummySampler, ivec2(in_var_TEXCOORD0.xy), int(in_var_TEXCOORD0.z)); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/inliner-dominator-inside-loop.asm.frag b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/inliner-dominator-inside-loop.asm.frag deleted file mode 100644 index 4049c4826b..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/inliner-dominator-inside-loop.asm.frag +++ /dev/null @@ -1,230 +0,0 @@ -#version 450 - -struct VertexOutput -{ - vec4 HPosition; - vec4 Uv_EdgeDistance1; - vec4 UvStuds_EdgeDistance2; - vec4 Color; - vec4 LightPosition_Fog; - vec4 View_Depth; - vec4 Normal_SpecPower; - vec3 Tangent; - vec4 PosLightSpace_Reflectance; - float studIndex; -}; - -struct Surface -{ - vec3 albedo; - vec3 normal; - float specular; - float gloss; - float reflectance; - float opacity; -}; - -struct SurfaceInput -{ - vec4 Color; - vec2 Uv; - vec2 UvStuds; -}; - -struct Globals -{ - mat4 ViewProjection; - vec4 ViewRight; - vec4 ViewUp; - vec4 ViewDir; - vec3 CameraPosition; - vec3 AmbientColor; - vec3 Lamp0Color; - vec3 Lamp0Dir; - vec3 Lamp1Color; - vec4 FogParams; - vec3 FogColor; - vec4 LightBorder; - vec4 LightConfig0; - vec4 LightConfig1; - vec4 LightConfig2; - vec4 LightConfig3; - vec4 RefractionBias_FadeDistance_GlowFactor; - vec4 OutlineBrightness_ShadowInfo; - vec4 ShadowMatrix0; - vec4 ShadowMatrix1; - vec4 ShadowMatrix2; -}; - -struct Params -{ - vec4 LqmatFarTilingFactor; -}; - -layout(binding = 0, std140) uniform CB0 -{ - Globals CB0; -} _19; - -uniform sampler2D SPIRV_Cross_CombinedDiffuseMapTextureDiffuseMapSampler; -uniform sampler2D SPIRV_Cross_CombinedNormalMapTextureNormalMapSampler; -uniform sampler2D SPIRV_Cross_CombinedNormalDetailMapTextureNormalDetailMapSampler; -uniform sampler2D SPIRV_Cross_CombinedStudsMapTextureStudsMapSampler; -uniform sampler2D SPIRV_Cross_CombinedSpecularMapTextureSpecularMapSampler; -uniform sampler3D SPIRV_Cross_CombinedLightMapTextureLightMapSampler; -uniform sampler2D SPIRV_Cross_CombinedShadowMapTextureShadowMapSampler; -uniform samplerCube SPIRV_Cross_CombinedEnvironmentMapTextureEnvironmentMapSampler; - -layout(location = 0) in vec4 IN_Uv_EdgeDistance1; -layout(location = 1) in vec4 IN_UvStuds_EdgeDistance2; -layout(location = 2) in vec4 IN_Color; -layout(location = 3) in vec4 IN_LightPosition_Fog; -layout(location = 4) in vec4 IN_View_Depth; -layout(location = 5) in vec4 IN_Normal_SpecPower; -layout(location = 6) in vec3 IN_Tangent; -layout(location = 7) in vec4 IN_PosLightSpace_Reflectance; -layout(location = 8) in float IN_studIndex; -layout(location = 0) out vec4 _entryPointOutput; - -VertexOutput _121; -SurfaceInput _122; -vec2 _123; -vec4 _124; -Surface _125; -vec4 _192; -vec4 _219; -vec4 _297; - -void main() -{ - VertexOutput _128 = _121; - _128.HPosition = gl_FragCoord; - VertexOutput _130 = _128; - _130.Uv_EdgeDistance1 = IN_Uv_EdgeDistance1; - VertexOutput _132 = _130; - _132.UvStuds_EdgeDistance2 = IN_UvStuds_EdgeDistance2; - VertexOutput _134 = _132; - _134.Color = IN_Color; - VertexOutput _136 = _134; - _136.LightPosition_Fog = IN_LightPosition_Fog; - VertexOutput _138 = _136; - _138.View_Depth = IN_View_Depth; - VertexOutput _140 = _138; - _140.Normal_SpecPower = IN_Normal_SpecPower; - VertexOutput _142 = _140; - _142.Tangent = IN_Tangent; - VertexOutput _144 = _142; - _144.PosLightSpace_Reflectance = IN_PosLightSpace_Reflectance; - VertexOutput _146 = _144; - _146.studIndex = IN_studIndex; - SurfaceInput _147 = _122; - _147.Color = IN_Color; - SurfaceInput _149 = _147; - _149.Uv = IN_Uv_EdgeDistance1.xy; - SurfaceInput _151 = _149; - _151.UvStuds = IN_UvStuds_EdgeDistance2.xy; - SurfaceInput _156 = _151; - _156.UvStuds.y = (fract(_151.UvStuds.y) + IN_studIndex) * 0.25; - float _160 = clamp(1.0 - (_146.View_Depth.w * 0.00333332992158830165863037109375), 0.0, 1.0); - float _163 = _146.View_Depth.w * _19.CB0.RefractionBias_FadeDistance_GlowFactor.y; - float _165 = clamp(1.0 - _163, 0.0, 1.0); - vec2 _166 = IN_Uv_EdgeDistance1.xy * 1.0; - bool _173; - vec4 _193; - for (;;) - { - _173 = 0.0 == 0.0; - if (_173) - { - _193 = texture(SPIRV_Cross_CombinedDiffuseMapTextureDiffuseMapSampler, _166); - break; - } - else - { - float _180 = 1.0 / (1.0 - 0.0); - _193 = mix(texture(SPIRV_Cross_CombinedDiffuseMapTextureDiffuseMapSampler, _166 * 0.25), texture(SPIRV_Cross_CombinedDiffuseMapTextureDiffuseMapSampler, _166), vec4(clamp((_160 * _180) - (0.0 * _180), 0.0, 1.0))); - break; - } - _193 = _192; - break; - } - vec4 _220; - for (;;) - { - if (_173) - { - _220 = texture(SPIRV_Cross_CombinedNormalMapTextureNormalMapSampler, _166); - break; - } - else - { - float _207 = 1.0 / (1.0 - 0.0); - _220 = mix(texture(SPIRV_Cross_CombinedNormalMapTextureNormalMapSampler, _166 * 0.25), texture(SPIRV_Cross_CombinedNormalMapTextureNormalMapSampler, _166), vec4(clamp((_165 * _207) - (0.0 * _207), 0.0, 1.0))); - break; - } - _220 = _219; - break; - } - vec2 _223 = vec2(1.0); - vec2 _224 = (_220.wy * 2.0) - _223; - vec3 _232 = vec3(_224, sqrt(clamp(1.0 + dot(-_224, _224), 0.0, 1.0))); - vec4 _237 = texture(SPIRV_Cross_CombinedNormalDetailMapTextureNormalDetailMapSampler, _166 * 0.0); - vec2 _240 = (_237.wy * 2.0) - _223; - vec2 _252 = _232.xy + (vec3(_240, sqrt(clamp(1.0 + dot(-_240, _240), 0.0, 1.0))).xy * 0.0); - vec3 _253 = vec3(_252.x, _252.y, _232.z); - vec2 _255 = _253.xy * _165; - vec3 _256 = vec3(_255.x, _255.y, _253.z); - vec4 _268 = texture(SPIRV_Cross_CombinedStudsMapTextureStudsMapSampler, _156.UvStuds); - vec3 _271 = ((IN_Color.xyz * (_193 * 1.0).xyz) * (1.0 + (_256.x * 0.300000011920928955078125))) * (_268.x * 2.0); - vec4 _298; - for (;;) - { - if (0.75 == 0.0) - { - _298 = texture(SPIRV_Cross_CombinedSpecularMapTextureSpecularMapSampler, _166); - break; - } - else - { - float _285 = 1.0 / (1.0 - 0.75); - _298 = mix(texture(SPIRV_Cross_CombinedSpecularMapTextureSpecularMapSampler, _166 * 0.25), texture(SPIRV_Cross_CombinedSpecularMapTextureSpecularMapSampler, _166), vec4(clamp((_165 * _285) - (0.75 * _285), 0.0, 1.0))); - break; - } - _298 = _297; - break; - } - vec2 _303 = mix(vec2(0.800000011920928955078125, 120.0), (_298.xy * vec2(2.0, 256.0)) + vec2(0.0, 0.00999999977648258209228515625), vec2(_165)); - Surface _304 = _125; - _304.albedo = _271; - Surface _305 = _304; - _305.normal = _256; - float _306 = _303.x; - Surface _307 = _305; - _307.specular = _306; - float _308 = _303.y; - Surface _309 = _307; - _309.gloss = _308; - float _312 = (_298.xy.y * _165) * 0.0; - Surface _313 = _309; - _313.reflectance = _312; - vec4 _318 = vec4(_271, _146.Color.w); - vec3 _329 = normalize(((IN_Tangent * _313.normal.x) + (cross(IN_Normal_SpecPower.xyz, IN_Tangent) * _313.normal.y)) + (IN_Normal_SpecPower.xyz * _313.normal.z)); - vec3 _332 = -_19.CB0.Lamp0Dir; - float _333 = dot(_329, _332); - float _357 = clamp(dot(step(_19.CB0.LightConfig3.xyz, abs(IN_LightPosition_Fog.xyz - _19.CB0.LightConfig2.xyz)), vec3(1.0)), 0.0, 1.0); - vec4 _368 = mix(texture(SPIRV_Cross_CombinedLightMapTextureLightMapSampler, IN_LightPosition_Fog.xyz.yzx - (IN_LightPosition_Fog.xyz.yzx * _357)), _19.CB0.LightBorder, vec4(_357)); - vec2 _376 = texture(SPIRV_Cross_CombinedShadowMapTextureShadowMapSampler, IN_PosLightSpace_Reflectance.xyz.xy).xy; - float _392 = (1.0 - (((step(_376.x, IN_PosLightSpace_Reflectance.xyz.z) * clamp(9.0 - (20.0 * abs(IN_PosLightSpace_Reflectance.xyz.z - 0.5)), 0.0, 1.0)) * _376.y) * _19.CB0.OutlineBrightness_ShadowInfo.w)) * _368.w; - vec3 _403 = mix(_318.xyz, texture(SPIRV_Cross_CombinedEnvironmentMapTextureEnvironmentMapSampler, reflect(-IN_View_Depth.xyz, _329)).xyz, vec3(_312)); - vec4 _404 = vec4(_403.x, _403.y, _403.z, _318.w); - vec3 _422 = (((_19.CB0.AmbientColor + (((_19.CB0.Lamp0Color * clamp(_333, 0.0, 1.0)) + (_19.CB0.Lamp1Color * max(-_333, 0.0))) * _392)) + _368.xyz) * _404.xyz) + (_19.CB0.Lamp0Color * (((step(0.0, _333) * _306) * _392) * pow(clamp(dot(_329, normalize(_332 + normalize(IN_View_Depth.xyz))), 0.0, 1.0), _308))); - vec4 _425 = vec4(_422.x, _422.y, _422.z, _124.w); - _425.w = _404.w; - vec2 _435 = min(IN_Uv_EdgeDistance1.wz, IN_UvStuds_EdgeDistance2.wz); - float _439 = min(_435.x, _435.y) / _163; - vec3 _445 = _425.xyz * clamp((clamp((_163 * _19.CB0.OutlineBrightness_ShadowInfo.x) + _19.CB0.OutlineBrightness_ShadowInfo.y, 0.0, 1.0) * (1.5 - _439)) + _439, 0.0, 1.0); - vec4 _446 = vec4(_445.x, _445.y, _445.z, _425.w); - vec3 _453 = mix(_19.CB0.FogColor, _446.xyz, vec3(clamp(_146.LightPosition_Fog.w, 0.0, 1.0))); - _entryPointOutput = vec4(_453.x, _453.y, _453.z, _446.w); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/ldexp-uint-exponent.asm.frag b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/ldexp-uint-exponent.asm.frag deleted file mode 100644 index 9acdd0196e..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/ldexp-uint-exponent.asm.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) out highp vec4 _GLF_color; - -void main() -{ - _GLF_color = ldexp(vec4(1.0), ivec4(uvec4(bitCount(uvec4(1u))))); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/loop-merge-to-continue.asm.invalid.frag b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/loop-merge-to-continue.asm.invalid.frag deleted file mode 100644 index 55db70cf6f..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/loop-merge-to-continue.asm.invalid.frag +++ /dev/null @@ -1,17 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 v0; - -void main() -{ - FragColor = vec4(1.0); - for (int i = 0; i < 4; i++) - { - for (int j = 0; j < 4; j++) - { - FragColor += vec4(v0[(i + j) & 3]); - } - } -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/nonuniform-bracket-handling-2.vk.nocompat.asm.frag.vk b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/nonuniform-bracket-handling-2.vk.nocompat.asm.frag.vk deleted file mode 100644 index d2f964674f..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/nonuniform-bracket-handling-2.vk.nocompat.asm.frag.vk +++ /dev/null @@ -1,20 +0,0 @@ -#version 450 -#extension GL_EXT_nonuniform_qualifier : require - -layout(set = 0, binding = 0, std430) readonly buffer SSBO -{ - uint indices[]; -} _8; - -layout(set = 0, binding = 0) uniform sampler2D uSamplers[]; -layout(set = 1, binding = 0) uniform sampler2D uSampler; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec2 vUV; - -void main() -{ - FragColor = textureLod(uSamplers[nonuniformEXT(_8.indices[10])], vUV, 0.0); - FragColor += textureLod(uSampler, vUV, float(_8.indices[int(gl_FragCoord.y)])); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/nonuniform-qualifier-propagation.vk.nocompat.asm.frag.vk b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/nonuniform-qualifier-propagation.vk.nocompat.asm.frag.vk deleted file mode 100644 index 289f576f6d..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/nonuniform-qualifier-propagation.vk.nocompat.asm.frag.vk +++ /dev/null @@ -1,37 +0,0 @@ -#version 450 -#extension GL_EXT_nonuniform_qualifier : require - -layout(set = 0, binding = 2, std140) uniform UBO -{ - vec4 v[64]; -} ubos[]; - -layout(set = 0, binding = 3, std430) readonly buffer SSBO -{ - vec4 v[]; -} ssbos[]; - -layout(set = 0, binding = 0) uniform texture2D uSamplers[]; -layout(set = 0, binding = 1) uniform sampler uSamps[]; -layout(set = 0, binding = 4) uniform sampler2D uCombinedSamplers[]; - -layout(location = 0) flat in int vIndex; -layout(location = 0) out vec4 FragColor; -layout(location = 1) in vec2 vUV; - -void main() -{ - int i = vIndex; - int _59 = i + 10; - int _64 = i + 40; - FragColor = texture(nonuniformEXT(sampler2D(uSamplers[_59], uSamps[_64])), vUV); - int _71 = i + 10; - FragColor = texture(uCombinedSamplers[nonuniformEXT(_71)], vUV); - int _77 = i + 20; - int _80 = i + 40; - FragColor += ubos[nonuniformEXT(_77)].v[_80]; - int _87 = i + 50; - int _90 = i + 60; - FragColor += ssbos[nonuniformEXT(_87)].v[_90]; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/nonuniform-ssbo.nocompat.vk.asm.frag.vk b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/nonuniform-ssbo.nocompat.vk.asm.frag.vk deleted file mode 100644 index 2d98ec5fdf..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/nonuniform-ssbo.nocompat.vk.asm.frag.vk +++ /dev/null @@ -1,24 +0,0 @@ -#version 450 -#extension GL_EXT_nonuniform_qualifier : require - -layout(set = 0, binding = 3, std430) buffer SSBO -{ - uint counter; - vec4 v[]; -} ssbos[]; - -layout(location = 0) flat in int vIndex; -layout(location = 0) out vec4 FragColor; - -void main() -{ - int i = vIndex; - int _42 = i + 60; - int _45 = i + 70; - ssbos[nonuniformEXT(_42)].v[_45] = vec4(20.0); - int _48 = i + 100; - uint _49 = atomicAdd(ssbos[nonuniformEXT(_48)].counter, 100u); - int _51 = i; - FragColor.z += float(int(uint(ssbos[nonuniformEXT(_51)].v.length()))); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/only-initializer-frag-depth.asm.frag b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/only-initializer-frag-depth.asm.frag deleted file mode 100644 index 1041f711f8..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/only-initializer-frag-depth.asm.frag +++ /dev/null @@ -1,8 +0,0 @@ -#version 450 - -const float _3_init = 0.5; -void main() -{ - gl_FragDepth = _3_init; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/opaque-id-literal-alias.preserve.asm.frag b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/opaque-id-literal-alias.preserve.asm.frag deleted file mode 100644 index 745922871b..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/opaque-id-literal-alias.preserve.asm.frag +++ /dev/null @@ -1,20 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler2DMS uSampled; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec2 vUV; - -void main() -{ - FragColor = vec4(0.0); - if (gl_FragCoord.x < 10.0) - { - FragColor += texelFetch(uSampled, ivec2(vUV), 0); - } - else - { - FragColor += texelFetch(uSampled, ivec2(vUV), 1); - } -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/out-of-order-struct-id.asm.frag b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/out-of-order-struct-id.asm.frag deleted file mode 100644 index 22d72a6e48..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/out-of-order-struct-id.asm.frag +++ /dev/null @@ -1,25 +0,0 @@ -#version 450 - -struct Foo -{ - vec4 a; -}; - -struct Bar -{ - Foo foo; - Foo foo2; -}; - -layout(binding = 0, std140) uniform UBO -{ - Bar bar; -} _7; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = _7.bar.foo.a + _7.bar.foo2.a; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/phi.zero-initialize.asm.frag b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/phi.zero-initialize.asm.frag deleted file mode 100644 index ce14c4616f..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/phi.zero-initialize.asm.frag +++ /dev/null @@ -1,29 +0,0 @@ -#version 450 - -struct Foo -{ - int a; -}; - -layout(location = 0) in vec4 vColor; -layout(location = 0) out vec4 FragColor; - -int uninit_int = 0; -ivec4 uninit_vector = ivec4(0); -mat4 uninit_matrix = mat4(vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); -Foo uninit_foo = Foo(0); - -void main() -{ - int _39 = 0; - if (vColor.x > 10.0) - { - _39 = 10; - } - else - { - _39 = 20; - } - FragColor = vColor; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/pixel-interlock-callstack.asm.frag b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/pixel-interlock-callstack.asm.frag deleted file mode 100644 index 948803c671..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/pixel-interlock-callstack.asm.frag +++ /dev/null @@ -1,39 +0,0 @@ -#version 450 -#extension GL_ARB_fragment_shader_interlock : require -layout(pixel_interlock_ordered) in; - -layout(binding = 1, std430) buffer SSBO1 -{ - uint values1[]; -} _7; - -layout(binding = 0, std430) buffer SSBO0 -{ - uint values0[]; -} _9; - -void callee2() -{ - int _31 = int(gl_FragCoord.x); - _7.values1[_31]++; -} - -void callee() -{ - int _39 = int(gl_FragCoord.x); - _9.values0[_39]++; - callee2(); -} - -void spvMainInterlockedBody() -{ - callee(); -} - -void main() -{ - // Interlocks were used in a way not compatible with GLSL, this is very slow. - beginInvocationInterlockARB(); - spvMainInterlockedBody(); - endInvocationInterlockARB(); -} diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/pixel-interlock-control-flow.asm.frag b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/pixel-interlock-control-flow.asm.frag deleted file mode 100644 index 72dca0d7f8..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/pixel-interlock-control-flow.asm.frag +++ /dev/null @@ -1,53 +0,0 @@ -#version 450 -#extension GL_ARB_fragment_shader_interlock : require -layout(pixel_interlock_ordered) in; - -layout(binding = 1, std430) buffer SSBO1 -{ - uint values1[]; -} _7; - -layout(binding = 2, std430) buffer _12_13 -{ - uint _m0[]; -} _13; - -layout(binding = 0, std430) buffer SSBO0 -{ - uint values0[]; -} _9; - -void callee2() -{ - int _44 = int(gl_FragCoord.x); - _7.values1[_44]++; -} - -void callee() -{ - int _52 = int(gl_FragCoord.x); - _9.values0[_52]++; - callee2(); - if (true) - { - } -} - -void _35() -{ - _13._m0[int(gl_FragCoord.x)] = 4u; -} - -void spvMainInterlockedBody() -{ - callee(); - _35(); -} - -void main() -{ - // Interlocks were used in a way not compatible with GLSL, this is very slow. - beginInvocationInterlockARB(); - spvMainInterlockedBody(); - endInvocationInterlockARB(); -} diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/pixel-interlock-split-functions.asm.frag b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/pixel-interlock-split-functions.asm.frag deleted file mode 100644 index b09eb66671..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/pixel-interlock-split-functions.asm.frag +++ /dev/null @@ -1,49 +0,0 @@ -#version 450 -#extension GL_ARB_fragment_shader_interlock : require -layout(pixel_interlock_ordered) in; - -layout(binding = 1, std430) buffer SSBO1 -{ - uint values1[]; -} _7; - -layout(binding = 0, std430) buffer SSBO0 -{ - uint values0[]; -} _9; - -void callee2() -{ - int _37 = int(gl_FragCoord.x); - _7.values1[_37]++; -} - -void callee() -{ - int _45 = int(gl_FragCoord.x); - _9.values0[_45]++; - callee2(); -} - -void _29() -{ -} - -void _31() -{ -} - -void spvMainInterlockedBody() -{ - callee(); - _29(); - _31(); -} - -void main() -{ - // Interlocks were used in a way not compatible with GLSL, this is very slow. - beginInvocationInterlockARB(); - spvMainInterlockedBody(); - endInvocationInterlockARB(); -} diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/reserved-function-identifier.asm.frag b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/reserved-function-identifier.asm.frag deleted file mode 100644 index 52f0c61661..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/reserved-function-identifier.asm.frag +++ /dev/null @@ -1,21 +0,0 @@ -#version 450 - -layout(location = 0) out float FragColor; - -float _mat3(float a) -{ - return a + 1.0; -} - -float _RESERVED_IDENTIFIER_FIXUP_gl_Foo(int a) -{ - return float(a) + 1.0; -} - -void main() -{ - float param = 2.0; - int param_1 = 4; - FragColor = _mat3(param) + _RESERVED_IDENTIFIER_FIXUP_gl_Foo(param_1); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/reserved-identifiers.asm.frag b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/reserved-identifiers.asm.frag deleted file mode 100644 index 5d75a44a33..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/reserved-identifiers.asm.frag +++ /dev/null @@ -1,17 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 _RESERVED_IDENTIFIER_FIXUP_spvFoo; -layout(location = 1) out vec4 SPIRV_Cross_blah; -layout(location = 2) out vec4 _40Bar; -layout(location = 3) out vec4 _m40; -layout(location = 4) out vec4 _underscore_foo_bar_meep_; - -void main() -{ - _RESERVED_IDENTIFIER_FIXUP_spvFoo = vec4(0.0); - SPIRV_Cross_blah = vec4(1.0); - _40Bar = vec4(2.0); - _m40 = vec4(3.0); - _underscore_foo_bar_meep_ = vec4(4.0); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/selection-merge-to-continue.asm.invalid.frag b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/selection-merge-to-continue.asm.invalid.frag deleted file mode 100644 index edbce0ccaf..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/selection-merge-to-continue.asm.invalid.frag +++ /dev/null @@ -1,21 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 v0; - -void main() -{ - FragColor = vec4(1.0); - for (int i = 0; i < 4; i++) - { - if (v0.x == 20.0) - { - FragColor += vec4(v0[i & 3]); - } - else - { - FragColor += vec4(v0[i & 1]); - } - } -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/sparse-texture-feedback-uint-code.asm.desktop.frag b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/sparse-texture-feedback-uint-code.asm.desktop.frag deleted file mode 100644 index 540978c434..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/sparse-texture-feedback-uint-code.asm.desktop.frag +++ /dev/null @@ -1,23 +0,0 @@ -#version 450 -#extension GL_ARB_sparse_texture2 : require - -struct ResType -{ - uint _m0; - vec4 _m1; -}; - -layout(binding = 0) uniform sampler2D uSamp; - -layout(location = 0) in vec2 vUV; - -void main() -{ - uint _30; - vec4 _31; - _30 = sparseTextureARB(uSamp, vUV, _31); - ResType _26 = ResType(_30, _31); - vec4 texel = _26._m1; - bool ret = sparseTexelsResidentARB(int(_26._m0)); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/subgroup-arithmetic-cast.nocompat.vk.asm.frag.vk b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/subgroup-arithmetic-cast.nocompat.vk.asm.frag.vk deleted file mode 100644 index 130cab7d1a..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/subgroup-arithmetic-cast.nocompat.vk.asm.frag.vk +++ /dev/null @@ -1,24 +0,0 @@ -#version 450 -#extension GL_KHR_shader_subgroup_arithmetic : require -#extension GL_KHR_shader_subgroup_clustered : require - -layout(location = 0) flat in int index; -layout(location = 0) out uint FragColor; - -void main() -{ - uint _17 = uint(index); - FragColor = uint(subgroupMin(index)); - FragColor = uint(subgroupMax(int(_17))); - FragColor = subgroupMin(uint(index)); - FragColor = subgroupMax(_17); - FragColor = uint(subgroupInclusiveMax(index)); - FragColor = uint(subgroupInclusiveMin(int(_17))); - FragColor = subgroupExclusiveMax(uint(index)); - FragColor = subgroupExclusiveMin(_17); - FragColor = uint(subgroupClusteredMin(index, 4u)); - FragColor = uint(subgroupClusteredMax(int(_17), 4u)); - FragColor = subgroupClusteredMin(uint(index), 4u); - FragColor = subgroupClusteredMax(_17, 4u); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/subgroup-ballot-only.vk.asm.frag b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/subgroup-ballot-only.vk.asm.frag deleted file mode 100644 index 8a918c035c..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/subgroup-ballot-only.vk.asm.frag +++ /dev/null @@ -1,32 +0,0 @@ -#version 450 - -#if defined(GL_KHR_shader_subgroup_ballot) -#extension GL_KHR_shader_subgroup_ballot : require -#elif defined(GL_NV_shader_thread_group) -#extension GL_NV_shader_thread_group : require -#elif defined(GL_ARB_shader_ballot) && defined(GL_ARB_shader_int64) -#extension GL_ARB_shader_int64 : enable -#extension GL_ARB_shader_ballot : require -#else -#error No extensions available to emulate requested subgroup feature. -#endif - -layout(location = 0) flat in uint INDEX; -layout(location = 0) out uvec4 SV_Target; - -#if defined(GL_KHR_shader_subgroup_ballot) -#elif defined(GL_NV_shader_thread_group) -uvec4 subgroupBallot(bool v) { return uvec4(ballotThreadNV(v), 0u, 0u, 0u); } -#elif defined(GL_ARB_shader_ballot) -uvec4 subgroupBallot(bool v) { return uvec4(unpackUint2x32(ballotARB(v)), 0u, 0u); } -#endif - -void main() -{ - uvec4 _21 = subgroupBallot(INDEX < 100u); - SV_Target.x = _21.x; - SV_Target.y = _21.y; - SV_Target.z = _21.z; - SV_Target.w = _21.w; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/subgroup-ballot-only.vk.asm.frag.vk b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/subgroup-ballot-only.vk.asm.frag.vk deleted file mode 100644 index ed5933f312..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/subgroup-ballot-only.vk.asm.frag.vk +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 -#extension GL_KHR_shader_subgroup_ballot : require - -layout(location = 0) flat in uint INDEX; -layout(location = 0) out uvec4 SV_Target; - -void main() -{ - uvec4 _21 = subgroupBallot(INDEX < 100u); - SV_Target.x = _21.x; - SV_Target.y = _21.y; - SV_Target.z = _21.z; - SV_Target.w = _21.w; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/switch-block-case-fallthrough.asm.invalid.frag b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/switch-block-case-fallthrough.asm.invalid.frag deleted file mode 100644 index de8090e317..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/switch-block-case-fallthrough.asm.invalid.frag +++ /dev/null @@ -1,63 +0,0 @@ -#version 450 - -layout(location = 0) flat in int vIndex; -layout(location = 0) out vec4 FragColor; - -void main() -{ - int i; - int j; - int _30; - int _31; - if (vIndex != 0 && vIndex != 1 && vIndex != 11 && vIndex != 2 && vIndex != 3 && vIndex != 4 && vIndex != 5) - { - _30 = 2; - } - if (vIndex == 1 || vIndex == 11) - { - _31 = 1; - } - switch (vIndex) - { - case 0: - { - _30 = 3; - } - default: - { - j = _30; - _31 = 0; - } - case 1: - case 11: - { - j = _31; - } - case 2: - { - break; - } - case 3: - { - if (vIndex > 3) - { - i = 0; - break; - } - else - { - break; - } - } - case 4: - { - } - case 5: - { - i = 0; - break; - } - } - FragColor = vec4(float(i)); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/switch-merge-to-continue.asm.invalid.frag b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/switch-merge-to-continue.asm.invalid.frag deleted file mode 100644 index 88f76cf1d6..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/switch-merge-to-continue.asm.invalid.frag +++ /dev/null @@ -1,30 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(1.0); - for (int i = 0; i < 4; i++) - { - switch (i) - { - case 0: - { - FragColor.x += 1.0; - break; - } - case 1: - { - FragColor.y += 3.0; - break; - } - default: - { - FragColor.z += 3.0; - break; - } - } - } -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/switch-single-case-multiple-exit-cfg.asm.frag b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/switch-single-case-multiple-exit-cfg.asm.frag deleted file mode 100644 index 2f7fee6401..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/switch-single-case-multiple-exit-cfg.asm.frag +++ /dev/null @@ -1,26 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) out highp vec4 _GLF_color; - -vec2 _19; - -void main() -{ - highp vec2 _30; - do - { - if (gl_FragCoord.x != gl_FragCoord.x) - { - _30 = _19; - break; - } - highp vec2 _29 = _19; - _29.y = _19.y; - _30 = _29; - break; - } while(false); - _GLF_color = vec4(_30, 1.0, 1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/unordered-compare.asm.frag b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/unordered-compare.asm.frag deleted file mode 100644 index 2cc8129552..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/unordered-compare.asm.frag +++ /dev/null @@ -1,33 +0,0 @@ -#version 450 - -layout(location = 0) in vec4 A; -layout(location = 1) in vec4 B; -layout(location = 0) out vec4 FragColor; - -vec4 test_vector() -{ - bvec4 le = not(greaterThanEqual(A, B)); - bvec4 leq = not(greaterThan(A, B)); - bvec4 ge = not(lessThanEqual(A, B)); - bvec4 geq = not(lessThan(A, B)); - bvec4 eq = not(notEqual(A, B)); - bvec4 neq = not(equal(A, B)); - return ((((mix(vec4(0.0), vec4(1.0), le) + mix(vec4(0.0), vec4(1.0), leq)) + mix(vec4(0.0), vec4(1.0), ge)) + mix(vec4(0.0), vec4(1.0), geq)) + mix(vec4(0.0), vec4(1.0), eq)) + mix(vec4(0.0), vec4(1.0), neq); -} - -float test_scalar() -{ - bool le = !(A.x >= B.x); - bool leq = !(A.x > B.x); - bool ge = !(A.x <= B.x); - bool geq = !(A.x < B.x); - bool eq = !(A.x != B.x); - bool neq = !(A.x == B.x); - return ((((float(le) + float(leq)) + float(ge)) + float(geq)) + float(eq)) + float(neq); -} - -void main() -{ - FragColor = test_vector() + vec4(test_scalar()); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/vector-extract-dynamic-spec-constant.asm.frag b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/vector-extract-dynamic-spec-constant.asm.frag deleted file mode 100644 index d4f3acae09..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/vector-extract-dynamic-spec-constant.asm.frag +++ /dev/null @@ -1,27 +0,0 @@ -#version 450 - -#ifndef SPIRV_CROSS_CONSTANT_ID_0 -#define SPIRV_CROSS_CONSTANT_ID_0 0 -#endif -const int omap_r = SPIRV_CROSS_CONSTANT_ID_0; -#ifndef SPIRV_CROSS_CONSTANT_ID_1 -#define SPIRV_CROSS_CONSTANT_ID_1 1 -#endif -const int omap_g = SPIRV_CROSS_CONSTANT_ID_1; -#ifndef SPIRV_CROSS_CONSTANT_ID_2 -#define SPIRV_CROSS_CONSTANT_ID_2 2 -#endif -const int omap_b = SPIRV_CROSS_CONSTANT_ID_2; -#ifndef SPIRV_CROSS_CONSTANT_ID_3 -#define SPIRV_CROSS_CONSTANT_ID_3 3 -#endif -const int omap_a = SPIRV_CROSS_CONSTANT_ID_3; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 vColor; - -void main() -{ - FragColor = vec4(vColor[omap_r], vColor[omap_g], vColor[omap_b], vColor[omap_a]); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/vector-shuffle-undef-index.asm.frag b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/vector-shuffle-undef-index.asm.frag deleted file mode 100644 index b32d187485..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/vector-shuffle-undef-index.asm.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 vFloat; - -vec4 undef; - -void main() -{ - FragColor = vec4(undef.x, vFloat.y, 0.0, vFloat.w) + vec4(vFloat.z, vFloat.y, 0.0, vFloat.w); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/while-loop-inverted-test.asm.frag b/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/while-loop-inverted-test.asm.frag deleted file mode 100644 index 0dd9869195..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/frag/while-loop-inverted-test.asm.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 - -void main() -{ - int i = 0; - int j = 0; - while (!(i == 20)) - { - j = ((j + i) + 1) * j; - i++; - } -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/geom/store-uint-layer.invalid.asm.geom b/third_party/spirv-cross/reference/shaders-no-opt/asm/geom/store-uint-layer.invalid.asm.geom deleted file mode 100644 index c768d5da86..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/geom/store-uint-layer.invalid.asm.geom +++ /dev/null @@ -1,41 +0,0 @@ -#version 450 -layout(triangles) in; -layout(max_vertices = 3, triangle_strip) out; - -struct VertexOutput -{ - vec4 pos; -}; - -struct GeometryOutput -{ - vec4 pos; - uint layer; -}; - -void _main(VertexOutput _input[3], GeometryOutput stream) -{ - GeometryOutput _output; - _output.layer = 1u; - for (int v = 0; v < 3; v++) - { - _output.pos = _input[v].pos; - gl_Position = _output.pos; - gl_Layer = int(_output.layer); - EmitVertex(); - } - EndPrimitive(); -} - -void main() -{ - VertexOutput _input[3]; - _input[0].pos = gl_in[0].gl_Position; - _input[1].pos = gl_in[1].gl_Position; - _input[2].pos = gl_in[2].gl_Position; - VertexOutput param[3] = _input; - GeometryOutput param_1; - _main(param, param_1); - GeometryOutput stream = param_1; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/loop-header-self-continue-break.asm.comp b/third_party/spirv-cross/reference/shaders-no-opt/asm/loop-header-self-continue-break.asm.comp deleted file mode 100644 index bd2a3c2736..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/loop-header-self-continue-break.asm.comp +++ /dev/null @@ -1,89 +0,0 @@ -#version 450 - -#ifndef SPIRV_CROSS_CONSTANT_ID_0 -#define SPIRV_CROSS_CONSTANT_ID_0 1u -#endif -#ifndef SPIRV_CROSS_CONSTANT_ID_1 -#define SPIRV_CROSS_CONSTANT_ID_1 1u -#endif -#ifndef SPIRV_CROSS_CONSTANT_ID_2 -#define SPIRV_CROSS_CONSTANT_ID_2 1u -#endif - -layout(local_size_x = SPIRV_CROSS_CONSTANT_ID_0, local_size_y = SPIRV_CROSS_CONSTANT_ID_1, local_size_z = SPIRV_CROSS_CONSTANT_ID_2) in; - -layout(binding = 0, std430) buffer _4_6 -{ - float _m0[]; -} _6; - -layout(binding = 1, std430) buffer _4_7 -{ - float _m0[]; -} _7; - -uvec3 _28 = gl_WorkGroupSize; - -void main() -{ - float _44_copy; - float _46; - uint _47; - float _63; - uint _65; - float _36 = _6._m0[0u]; - uint _39 = 0u; - float _44; - for (;;) - { - _44 = _36; - _46 = _6._m0[35u]; - _47 = 0u; - for (;;) - { - uint _48 = _47 + 1u; - float _45 = _6._m0[_48]; - _6._m0[_47] = ((_46 + _44) + _45) / 3.0; - if (!(_47 < 34u)) - { - break; - } - else - { - _44_copy = _44; - _44 = _45; - _46 = _44_copy; - _47 = _48; - } - } - _6._m0[35u] = (_36 + (_44 + _6._m0[35u])) / 3.0; - if (!(_39 < 5u)) - { - _63 = _6._m0[0u]; - _65 = 1u; - break; - } - else - { - _36 = _6._m0[0u]; - _39++; - continue; - } - } - float _64; - for (;;) - { - _64 = (_63 < _6._m0[_65]) ? _6._m0[_65] : _63; - if (!(_65 < 35u)) - { - break; - } - else - { - _63 = _64; - _65++; - } - } - _7._m0[gl_GlobalInvocationID.x] = _64; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/rgen/acceleration-nonuniform.spv14.vk.nocompat.asm.rgen.vk b/third_party/spirv-cross/reference/shaders-no-opt/asm/rgen/acceleration-nonuniform.spv14.vk.nocompat.asm.rgen.vk deleted file mode 100644 index a72a7cf48a..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/rgen/acceleration-nonuniform.spv14.vk.nocompat.asm.rgen.vk +++ /dev/null @@ -1,19 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require -#extension GL_EXT_nonuniform_qualifier : require - -layout(set = 0, binding = 1) uniform accelerationStructureEXT as[]; -layout(location = 0) rayPayloadEXT float payload; -layout(set = 0, binding = 0, rgba8) uniform writeonly image2D image; - -void main() -{ - vec4 col = vec4(0.0, 0.0, 0.0, 1.0); - vec3 origin = vec3(float(gl_LaunchIDEXT.x) / float(gl_LaunchSizeEXT.x), float(gl_LaunchIDEXT.y) / float(gl_LaunchSizeEXT.y), 1.0); - vec3 direction = vec3(0.0, 0.0, -1.0); - uint _62 = gl_LaunchIDEXT.x; - traceRayEXT(as[nonuniformEXT(_62)], 0u, 255u, 0u, 1u, 0u, origin, 0.0, direction, 1000.0, 0); - col.y = payload; - imageStore(image, ivec2(gl_LaunchIDEXT.xy), col); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/temporary.zero-initialize.asm.frag b/third_party/spirv-cross/reference/shaders-no-opt/asm/temporary.zero-initialize.asm.frag deleted file mode 100644 index 1b8e8cd329..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/temporary.zero-initialize.asm.frag +++ /dev/null @@ -1,28 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) flat in mediump int vA; -layout(location = 1) flat in mediump int vB; - -void main() -{ - FragColor = vec4(0.0); - mediump int _10 = 0; - mediump int _15 = 0; - for (mediump int _16 = 0, _17 = 0; _16 < vA; _17 = _15, _16 += _10) - { - if ((vA + _16) == 20) - { - _15 = 50; - } - else - { - _15 = ((vB + _16) == 40) ? 60 : _17; - } - _10 = _15 + 10; - FragColor += vec4(1.0); - } -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/tesc/array-of-block-output-initializer.asm.tesc b/third_party/spirv-cross/reference/shaders-no-opt/asm/tesc/array-of-block-output-initializer.asm.tesc deleted file mode 100644 index 13e1d3294b..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/tesc/array-of-block-output-initializer.asm.tesc +++ /dev/null @@ -1,82 +0,0 @@ -#version 450 -layout(vertices = 4) out; - -out gl_PerVertex -{ - vec4 gl_Position; - float gl_PointSize; - float gl_ClipDistance[1]; - float gl_CullDistance[1]; -} gl_out[4]; - -layout(location = 0) patch out vert -{ - float v0; - float v1; -} _5; - -layout(location = 2) patch out vert_patch -{ - float v2; - float v3; -} patches[2]; - -layout(location = 6) patch out float v2; -layout(location = 7) out float v3[4]; -layout(location = 8) out vert2 -{ - float v4; - float v5; -} verts[4]; - -const vec4 _3_0_init[4] = vec4[](vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); -const float _3_1_init[4] = float[](0.0, 0.0, 0.0, 0.0); -const float _3_2_init[4][1] = float[][](float[](0.0), float[](0.0), float[](0.0), float[](0.0)); -const float _3_3_init[4][1] = float[][](float[](0.0), float[](0.0), float[](0.0), float[](0.0)); -const float _6_0_init[2] = float[](0.0, 0.0); -const float _6_1_init[2] = float[](0.0, 0.0); -const float _7_init = 0.0; -const float _8_init[4] = float[](0.0, 0.0, 0.0, 0.0); -const float _9_0_init[4] = float[](0.0, 0.0, 0.0, 0.0); -const float _9_1_init[4] = float[](0.0, 0.0, 0.0, 0.0); - -void main() -{ - gl_out[gl_InvocationID].gl_Position = _3_0_init[gl_InvocationID]; - gl_out[gl_InvocationID].gl_PointSize = _3_1_init[gl_InvocationID]; - gl_out[gl_InvocationID].gl_ClipDistance = _3_2_init[gl_InvocationID]; - gl_out[gl_InvocationID].gl_CullDistance = _3_3_init[gl_InvocationID]; - if (gl_InvocationID == 0) - { - _5.v0 = 0.0; - } - if (gl_InvocationID == 0) - { - _5.v1 = 0.0; - } - if (gl_InvocationID == 0) - { - patches[0].v2 = _6_0_init[0]; - } - if (gl_InvocationID == 0) - { - patches[1].v2 = _6_0_init[1]; - } - if (gl_InvocationID == 0) - { - patches[0].v3 = _6_1_init[0]; - } - if (gl_InvocationID == 0) - { - patches[1].v3 = _6_1_init[1]; - } - if (gl_InvocationID == 0) - { - v2 = _7_init; - } - v3[gl_InvocationID] = _8_init[gl_InvocationID]; - verts[gl_InvocationID].v4 = _9_0_init[gl_InvocationID]; - verts[gl_InvocationID].v5 = _9_1_init[gl_InvocationID]; - gl_out[gl_InvocationID].gl_Position = vec4(1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/tesc/copy-memory-control-point.asm.tesc b/third_party/spirv-cross/reference/shaders-no-opt/asm/tesc/copy-memory-control-point.asm.tesc deleted file mode 100644 index 3412f1cf5c..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/tesc/copy-memory-control-point.asm.tesc +++ /dev/null @@ -1,73 +0,0 @@ -#version 450 -layout(vertices = 3) out; - -layout(binding = 0, std140) uniform cb1_struct -{ - vec4 _m0[1]; -} cb0_0; - -layout(location = 0) in vec4 v0[]; -layout(location = 1) in vec4 v1[]; -layout(location = 2) in vec3 vicp0[]; -layout(location = 3) out vec3 vocp0[3]; -layout(location = 4) in vec4 vicp1[]; -layout(location = 5) out vec4 vocp1[3]; -vec4 opc[4]; -vec4 vicp[2][3]; -vec4 _48; -vec4 _49; -vec4 _50; -vec4 _56; - -void fork0_epilogue(vec4 _87, vec4 _88, vec4 _89) -{ - gl_TessLevelOuter[0u] = _87.x; - gl_TessLevelOuter[1u] = _88.x; - gl_TessLevelOuter[2u] = _89.x; -} - -void fork0(uint vForkInstanceId) -{ - vec4 r0; - r0.x = uintBitsToFloat(vForkInstanceId); - opc[floatBitsToInt(r0.x)].x = cb0_0._m0[0u].x; - _48 = opc[0u]; - _49 = opc[1u]; - _50 = opc[2u]; - fork0_epilogue(_48, _49, _50); -} - -void fork1_epilogue(vec4 _109) -{ - gl_TessLevelInner[0u] = _109.x; -} - -void fork1() -{ - opc[3u].x = cb0_0._m0[0u].x; - _56 = opc[3u]; - fork1_epilogue(_56); -} - -void main() -{ - vec4 _126_unrolled[3]; - for (int i = 0; i < int(3); i++) - { - _126_unrolled[i] = v0[i]; - } - vicp[0u] = _126_unrolled; - vec4 _127_unrolled[3]; - for (int i = 0; i < int(3); i++) - { - _127_unrolled[i] = v1[i]; - } - vicp[1u] = _127_unrolled; - vocp0[gl_InvocationID] = vicp0[gl_InvocationID]; - vocp1[gl_InvocationID] = vicp1[gl_InvocationID]; - fork0(0u); - fork0(1u); - fork0(2u); - fork1(); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/tesc/tess-fixed-input-array-builtin-array.invalid.asm.tesc b/third_party/spirv-cross/reference/shaders-no-opt/asm/tesc/tess-fixed-input-array-builtin-array.invalid.asm.tesc deleted file mode 100644 index 8cb7a4e64c..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/tesc/tess-fixed-input-array-builtin-array.invalid.asm.tesc +++ /dev/null @@ -1,79 +0,0 @@ -#version 450 -layout(vertices = 3) out; - -struct VertexOutput -{ - vec4 pos; - vec2 uv; -}; - -struct HSOut -{ - vec4 pos; - vec2 uv; -}; - -struct HSConstantOut -{ - float EdgeTess[3]; - float InsideTess; -}; - -struct VertexOutput_1 -{ - vec2 uv; -}; - -struct HSOut_1 -{ - vec2 uv; -}; - -layout(location = 0) in VertexOutput_1 p[]; -layout(location = 0) out HSOut_1 _entryPointOutput[3]; - -HSOut _hs_main(VertexOutput p_1[3], uint i) -{ - HSOut _output; - _output.pos = p_1[i].pos; - _output.uv = p_1[i].uv; - return _output; -} - -HSConstantOut PatchHS(VertexOutput _patch[3]) -{ - HSConstantOut _output; - _output.EdgeTess[0] = (vec2(1.0) + _patch[0].uv).x; - _output.EdgeTess[1] = (vec2(1.0) + _patch[0].uv).x; - _output.EdgeTess[2] = (vec2(1.0) + _patch[0].uv).x; - _output.InsideTess = (vec2(1.0) + _patch[0].uv).x; - return _output; -} - -void main() -{ - VertexOutput p_1[3]; - p_1[0].pos = gl_in[0].gl_Position; - p_1[0].uv = p[0].uv; - p_1[1].pos = gl_in[1].gl_Position; - p_1[1].uv = p[1].uv; - p_1[2].pos = gl_in[2].gl_Position; - p_1[2].uv = p[2].uv; - uint i = gl_InvocationID; - VertexOutput param[3] = p_1; - uint param_1 = i; - HSOut flattenTemp = _hs_main(param, param_1); - gl_out[gl_InvocationID].gl_Position = flattenTemp.pos; - _entryPointOutput[gl_InvocationID].uv = flattenTemp.uv; - barrier(); - if (int(gl_InvocationID) == 0) - { - VertexOutput param_2[3] = p_1; - HSConstantOut _patchConstantResult = PatchHS(param_2); - gl_TessLevelOuter[0] = _patchConstantResult.EdgeTess[0]; - gl_TessLevelOuter[1] = _patchConstantResult.EdgeTess[1]; - gl_TessLevelOuter[2] = _patchConstantResult.EdgeTess[2]; - gl_TessLevelInner[0] = _patchConstantResult.InsideTess; - } -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/tesc/tess-level-initializer.asm.tesc b/third_party/spirv-cross/reference/shaders-no-opt/asm/tesc/tess-level-initializer.asm.tesc deleted file mode 100644 index ebd2d8aeac..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/tesc/tess-level-initializer.asm.tesc +++ /dev/null @@ -1,24 +0,0 @@ -#version 450 -layout(vertices = 4) out; - -const float _5_init[2] = float[](0.0, 0.0); -const float _6_init[4] = float[](0.0, 0.0, 0.0, 0.0); -void main() -{ - if (gl_InvocationID == 0) - { - gl_TessLevelInner = _5_init; - } - if (gl_InvocationID == 0) - { - gl_TessLevelOuter = _6_init; - } - gl_out[gl_InvocationID].gl_Position = vec4(1.0); - gl_TessLevelInner[0] = 1.0; - gl_TessLevelInner[1] = 2.0; - gl_TessLevelOuter[0] = 3.0; - gl_TessLevelOuter[1] = 4.0; - gl_TessLevelOuter[2] = 5.0; - gl_TessLevelOuter[3] = 6.0; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/vert/block-struct-initializer.asm.vert b/third_party/spirv-cross/reference/shaders-no-opt/asm/vert/block-struct-initializer.asm.vert deleted file mode 100644 index 6060888d81..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/vert/block-struct-initializer.asm.vert +++ /dev/null @@ -1,24 +0,0 @@ -#version 450 - -struct Foo -{ - float c; - float d; -}; - -layout(location = 0) out Vert -{ - float a; - float b; -} _3; - -layout(location = 2) out Foo foo; -const Foo _4_init = Foo(0.0, 0.0); - -void main() -{ - _3.a = 0.0; - _3.b = 0.0; - foo = _4_init; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/vert/builtin-output-initializer.asm.vert b/third_party/spirv-cross/reference/shaders-no-opt/asm/vert/builtin-output-initializer.asm.vert deleted file mode 100644 index b449f08057..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/vert/builtin-output-initializer.asm.vert +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 - -out float gl_ClipDistance[1]; -out float gl_CullDistance[1]; - -void main() -{ - gl_Position = vec4(0.0); - gl_PointSize = 0.0; - gl_ClipDistance = float[](0.0); - gl_CullDistance = float[](0.0); - gl_Position = vec4(1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/vert/complex-link-by-name.asm.vert b/third_party/spirv-cross/reference/shaders-no-opt/asm/vert/complex-link-by-name.asm.vert deleted file mode 100644 index 03271409b7..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/vert/complex-link-by-name.asm.vert +++ /dev/null @@ -1,35 +0,0 @@ -#version 450 - -struct Struct_vec4 -{ - vec4 m0; -}; - -layout(binding = 0, std140) uniform UBO -{ - Struct_vec4 m0; - Struct_vec4 m1; -} ubo_binding_0; - -layout(location = 0) out VertexOut -{ - Struct_vec4 m0; - Struct_vec4 m1; -} output_location_0; - -layout(location = 2) out Struct_vec4 output_location_2; -layout(location = 3) out Struct_vec4 output_location_3; - -void main() -{ - Struct_vec4 c; - c.m0 = ubo_binding_0.m0.m0; - Struct_vec4 b; - b.m0 = ubo_binding_0.m1.m0; - gl_Position = c.m0 + b.m0; - output_location_0.m0 = c; - output_location_0.m1 = b; - output_location_2 = c; - output_location_3 = b; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/vert/complex-link-by-name.force-flattened-io.legacy.asm.vert b/third_party/spirv-cross/reference/shaders-no-opt/asm/vert/complex-link-by-name.force-flattened-io.legacy.asm.vert deleted file mode 100644 index 280399b44d..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/vert/complex-link-by-name.force-flattened-io.legacy.asm.vert +++ /dev/null @@ -1,33 +0,0 @@ -#version 100 - -struct Struct_vec4 -{ - vec4 m0; -}; - -struct UBO -{ - Struct_vec4 m0; - Struct_vec4 m1; -}; - -uniform UBO ubo_binding_0; - -varying vec4 output_location_0_m0_m0; -varying vec4 output_location_0_m1_m0; -varying vec4 output_location_2_m0; -varying vec4 output_location_3_m0; - -void main() -{ - Struct_vec4 c; - c.m0 = ubo_binding_0.m0.m0; - Struct_vec4 b; - b.m0 = ubo_binding_0.m1.m0; - gl_Position = c.m0 + b.m0; - output_location_0_m0_m0 = c.m0; - output_location_0_m1_m0 = b.m0; - output_location_2_m0 = c.m0; - output_location_3_m0 = b.m0; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/vert/constant-composite-extract.asm.vert b/third_party/spirv-cross/reference/shaders-no-opt/asm/vert/constant-composite-extract.asm.vert deleted file mode 100644 index a1fe3e50ac..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/vert/constant-composite-extract.asm.vert +++ /dev/null @@ -1,7 +0,0 @@ -#version 450 - -void main() -{ - gl_Position = (vec4(1.0, 2.0, 3.0, 4.0) + vec4(5.0, 6.0, 7.0, 8.0)) + (vec4(1.0, 2.0, 3.0, 4.0) + vec4(4.0, 3.0, 8.0, 2.0)); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/vert/empty-struct-composite.asm.vert b/third_party/spirv-cross/reference/shaders-no-opt/asm/vert/empty-struct-composite.asm.vert deleted file mode 100644 index 8f786d49e1..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/vert/empty-struct-composite.asm.vert +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 - -struct Test -{ - int empty_struct_member; -}; - -void main() -{ - Test _14 = Test(0); - Test t = _14; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/asm/vert/semantic-decoration.asm.vert b/third_party/spirv-cross/reference/shaders-no-opt/asm/vert/semantic-decoration.asm.vert deleted file mode 100644 index 9af0e241eb..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/asm/vert/semantic-decoration.asm.vert +++ /dev/null @@ -1,25 +0,0 @@ -#version 450 - -struct VOut -{ - vec4 p; - vec4 c; -}; - -layout(location = 0) out vec4 _entryPointOutput_c; - -VOut _main() -{ - VOut v; - v.p = vec4(1.0); - v.c = vec4(2.0); - return v; -} - -void main() -{ - VOut flattenTemp = _main(); - gl_Position = flattenTemp.p; - _entryPointOutput_c = flattenTemp.c; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/comp/bitcast-16bit-1.invalid.comp b/third_party/spirv-cross/reference/shaders-no-opt/comp/bitcast-16bit-1.invalid.comp deleted file mode 100644 index a570948a85..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/comp/bitcast-16bit-1.invalid.comp +++ /dev/null @@ -1,36 +0,0 @@ -#version 450 -#if defined(GL_AMD_gpu_shader_half_float) -#extension GL_AMD_gpu_shader_half_float : require -#elif defined(GL_NV_gpu_shader5) -#extension GL_NV_gpu_shader5 : require -#else -#error No extension available for FP16. -#endif -#if defined(GL_AMD_gpu_shader_int16) -#extension GL_AMD_gpu_shader_int16 : require -#elif defined(GL_NV_gpu_shader5) -#extension GL_NV_gpu_shader5 : require -#else -#error No extension available for Int16. -#endif -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer SSBO0 -{ - i16vec4 inputs[]; -} _25; - -layout(binding = 1, std430) buffer SSBO1 -{ - ivec4 outputs[]; -} _39; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - f16vec2 a = int16BitsToFloat16(_25.inputs[ident].xy); - _39.outputs[ident].x = int(packFloat2x16(a + f16vec2(float16_t(1.0)))); - _39.outputs[ident].y = packInt2x16(_25.inputs[ident].zw); - _39.outputs[ident].z = int(packUint2x16(u16vec2(_25.inputs[ident].xy))); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/comp/bitcast-16bit-2.invalid.comp b/third_party/spirv-cross/reference/shaders-no-opt/comp/bitcast-16bit-2.invalid.comp deleted file mode 100644 index 78a1255268..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/comp/bitcast-16bit-2.invalid.comp +++ /dev/null @@ -1,41 +0,0 @@ -#version 450 -#if defined(GL_AMD_gpu_shader_int16) -#extension GL_AMD_gpu_shader_int16 : require -#elif defined(GL_NV_gpu_shader5) -#extension GL_NV_gpu_shader5 : require -#else -#error No extension available for Int16. -#endif -#if defined(GL_AMD_gpu_shader_half_float) -#extension GL_AMD_gpu_shader_half_float : require -#elif defined(GL_NV_gpu_shader5) -#extension GL_NV_gpu_shader5 : require -#else -#error No extension available for FP16. -#endif -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 1, std430) buffer SSBO1 -{ - i16vec4 outputs[]; -} _21; - -layout(binding = 0, std430) buffer SSBO0 -{ - ivec4 inputs[]; -} _29; - -layout(binding = 2, std140) uniform UBO -{ - f16vec4 const0; -} _40; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - i16vec2 _47 = unpackInt2x16(_29.inputs[ident].x) + float16BitsToInt16(_40.const0.xy); - _21.outputs[ident] = i16vec4(_47.x, _47.y, _21.outputs[ident].z, _21.outputs[ident].w); - i16vec2 _66 = i16vec2(unpackUint2x16(uint(_29.inputs[ident].y)) - float16BitsToUint16(_40.const0.zw)); - _21.outputs[ident] = i16vec4(_21.outputs[ident].x, _21.outputs[ident].y, _66.x, _66.y); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/comp/bitfield.comp b/third_party/spirv-cross/reference/shaders-no-opt/comp/bitfield.comp deleted file mode 100644 index 49bbddb0ab..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/comp/bitfield.comp +++ /dev/null @@ -1,19 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -void main() -{ - int signed_value = 0; - uint unsigned_value = 0u; - int s = bitfieldExtract(signed_value, 5, 20); - uint u = bitfieldExtract(unsigned_value, 6, 21); - s = bitfieldInsert(s, 40, 5, 4); - u = bitfieldInsert(u, 60u, 5, 4); - u = bitfieldReverse(u); - s = bitfieldReverse(s); - int v0 = bitCount(u); - int v1 = bitCount(s); - int v2 = findMSB(u); - int v3 = findLSB(s); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/comp/glsl.std450.comp b/third_party/spirv-cross/reference/shaders-no-opt/comp/glsl.std450.comp deleted file mode 100644 index d2628a9ab6..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/comp/glsl.std450.comp +++ /dev/null @@ -1,112 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -struct ResType -{ - float _m0; - int _m1; -}; - -layout(binding = 0, std430) buffer SSBO -{ - float res; - int ires; - uint ures; - vec4 f32; - ivec4 s32; - uvec4 u32; - mat2 m2; - mat3 m3; - mat4 m4; -} _19; - -void main() -{ - _19.res = round(_19.f32.x); - _19.res = roundEven(_19.f32.x); - _19.res = trunc(_19.f32.x); - _19.res = abs(_19.f32.x); - _19.ires = abs(_19.s32.x); - _19.res = sign(_19.f32.x); - _19.ires = sign(_19.s32.x); - _19.res = floor(_19.f32.x); - _19.res = ceil(_19.f32.x); - _19.res = fract(_19.f32.x); - _19.res = radians(_19.f32.x); - _19.res = degrees(_19.f32.x); - _19.res = sin(_19.f32.x); - _19.res = cos(_19.f32.x); - _19.res = tan(_19.f32.x); - _19.res = asin(_19.f32.x); - _19.res = acos(_19.f32.x); - _19.res = atan(_19.f32.x); - _19.res = sinh(_19.f32.x); - _19.res = cosh(_19.f32.x); - _19.res = tanh(_19.f32.x); - _19.res = asinh(_19.f32.x); - _19.res = acosh(_19.f32.x); - _19.res = atanh(_19.f32.x); - _19.res = atan(_19.f32.x, _19.f32.y); - _19.res = pow(_19.f32.x, _19.f32.y); - _19.res = exp(_19.f32.x); - _19.res = log(_19.f32.x); - _19.res = exp2(_19.f32.x); - _19.res = log2(_19.f32.x); - _19.res = sqrt(_19.f32.x); - _19.res = inversesqrt(_19.f32.x); - _19.res = length(_19.f32.x); - _19.res = distance(_19.f32.x, _19.f32.y); - _19.res = normalize(_19.f32.x); - _19.res = faceforward(_19.f32.x, _19.f32.y, _19.f32.z); - _19.res = reflect(_19.f32.x, _19.f32.y); - _19.res = refract(_19.f32.x, _19.f32.y, _19.f32.z); - _19.res = length(_19.f32.xy); - _19.res = distance(_19.f32.xy, _19.f32.zw); - vec2 v2 = normalize(_19.f32.xy); - v2 = faceforward(_19.f32.xy, _19.f32.yz, _19.f32.zw); - v2 = reflect(_19.f32.xy, _19.f32.zw); - v2 = refract(_19.f32.xy, _19.f32.yz, _19.f32.w); - vec3 v3 = cross(_19.f32.xyz, _19.f32.yzw); - _19.res = determinant(_19.m2); - _19.res = determinant(_19.m3); - _19.res = determinant(_19.m4); - _19.m2 = inverse(_19.m2); - _19.m3 = inverse(_19.m3); - _19.m4 = inverse(_19.m4); - float tmp; - float _287 = modf(_19.f32.x, tmp); - _19.res = _287; - _19.res = min(_19.f32.x, _19.f32.y); - _19.ures = min(_19.u32.x, _19.u32.y); - _19.ires = min(_19.s32.x, _19.s32.y); - _19.res = max(_19.f32.x, _19.f32.y); - _19.ures = max(_19.u32.x, _19.u32.y); - _19.ires = max(_19.s32.x, _19.s32.y); - _19.res = clamp(_19.f32.x, _19.f32.y, _19.f32.z); - _19.ures = clamp(_19.u32.x, _19.u32.y, _19.u32.z); - _19.ires = clamp(_19.s32.x, _19.s32.y, _19.s32.z); - _19.res = mix(_19.f32.x, _19.f32.y, _19.f32.z); - _19.res = step(_19.f32.x, _19.f32.y); - _19.res = smoothstep(_19.f32.x, _19.f32.y, _19.f32.z); - _19.res = fma(_19.f32.x, _19.f32.y, _19.f32.z); - ResType _387; - _387._m0 = frexp(_19.f32.x, _387._m1); - int itmp = _387._m1; - _19.res = _387._m0; - _19.res = ldexp(_19.f32.x, itmp); - _19.ures = packSnorm4x8(_19.f32); - _19.ures = packUnorm4x8(_19.f32); - _19.ures = packSnorm2x16(_19.f32.xy); - _19.ures = packUnorm2x16(_19.f32.xy); - _19.ures = packHalf2x16(_19.f32.xy); - v2 = unpackSnorm2x16(_19.u32.x); - v2 = unpackUnorm2x16(_19.u32.x); - v2 = unpackHalf2x16(_19.u32.x); - vec4 v4 = unpackSnorm4x8(_19.u32.x); - v4 = unpackUnorm4x8(_19.u32.x); - _19.s32 = findLSB(_19.s32); - _19.s32 = findLSB(_19.u32); - _19.s32 = findMSB(_19.s32); - _19.s32 = findMSB(_19.u32); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/comp/illegal-struct-name.asm.comp b/third_party/spirv-cross/reference/shaders-no-opt/comp/illegal-struct-name.asm.comp deleted file mode 100644 index 885dcb3baa..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/comp/illegal-struct-name.asm.comp +++ /dev/null @@ -1,22 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -struct Foo -{ - float _abs; -}; - -layout(binding = 0, std430) buffer SSBO -{ - Foo foo; - Foo foo2; -} _7; - -void main() -{ - Foo f; - f._abs = _7.foo._abs; - int _abs = 10; - _7.foo2._abs = f._abs; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/comp/image-load-formatted.comp b/third_party/spirv-cross/reference/shaders-no-opt/comp/image-load-formatted.comp deleted file mode 100644 index e11b8febfa..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/comp/image-load-formatted.comp +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 -#extension GL_EXT_shader_image_load_formatted : require -layout(local_size_x = 8, local_size_y = 8, local_size_z = 1) in; - -layout(binding = 0) uniform image2D img; - -void main() -{ - vec4 v = imageLoad(img, ivec2(gl_GlobalInvocationID.xy)); - imageStore(img, ivec2(gl_GlobalInvocationID.xy), v + vec4(1.0)); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/comp/inout-struct.invalid.comp b/third_party/spirv-cross/reference/shaders-no-opt/comp/inout-struct.invalid.comp deleted file mode 100644 index 640e25bb95..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/comp/inout-struct.invalid.comp +++ /dev/null @@ -1,65 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -struct Foo -{ - vec4 a; - vec4 b; - vec4 c; - vec4 d; -}; - -layout(binding = 1, std430) readonly buffer SSBO2 -{ - vec4 data[]; -} indata; - -layout(binding = 0, std430) writeonly buffer SSBO -{ - vec4 data[]; -} outdata; - -layout(binding = 2, std430) readonly buffer SSBO3 -{ - Foo foos[]; -} foobar; - -void baz(inout Foo foo) -{ - uint ident = gl_GlobalInvocationID.x; - foo.a = indata.data[(4u * ident) + 0u]; - foo.b = indata.data[(4u * ident) + 1u]; - foo.c = indata.data[(4u * ident) + 2u]; - foo.d = indata.data[(4u * ident) + 3u]; -} - -void meow(inout Foo foo) -{ - foo.a += vec4(10.0); - foo.b += vec4(20.0); - foo.c += vec4(30.0); - foo.d += vec4(40.0); -} - -vec4 bar(Foo foo) -{ - return ((foo.a + foo.b) + foo.c) + foo.d; -} - -void main() -{ - Foo param; - baz(param); - Foo foo = param; - Foo param_1 = foo; - meow(param_1); - foo = param_1; - Foo param_2 = foo; - Foo param_3; - param_3.a = foobar.foos[gl_GlobalInvocationID.x].a; - param_3.b = foobar.foos[gl_GlobalInvocationID.x].b; - param_3.c = foobar.foos[gl_GlobalInvocationID.x].c; - param_3.d = foobar.foos[gl_GlobalInvocationID.x].d; - outdata.data[gl_GlobalInvocationID.x] = bar(param_2) + bar(param_3); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/comp/loop.comp b/third_party/spirv-cross/reference/shaders-no-opt/comp/loop.comp deleted file mode 100644 index 2ba731cdc7..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/comp/loop.comp +++ /dev/null @@ -1,82 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) readonly buffer SSBO -{ - mat4 mvp; - vec4 in_data[]; -} _24; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - vec4 idat = _24.in_data[ident]; - int k = 0; - uint i = 0u; - if (idat.y == 20.0) - { - do - { - k *= 2; - i++; - } while (i < ident); - } - switch (k) - { - case 10: - { - for (;;) - { - i++; - if (i > 10u) - { - break; - } - continue; - } - break; - } - default: - { - for (;;) - { - i += 2u; - if (i > 20u) - { - break; - } - continue; - } - break; - } - } - while (k < 10) - { - idat *= 2.0; - k++; - } - for (uint i_1 = 0u; i_1 < 16u; i_1++, k++) - { - for (uint j = 0u; j < 30u; j++) - { - idat = _24.mvp * idat; - } - } - k = 0; - for (;;) - { - k++; - if (k > 10) - { - k += 2; - } - else - { - k += 3; - continue; - } - k += 10; - continue; - } -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/comp/return.comp b/third_party/spirv-cross/reference/shaders-no-opt/comp/return.comp deleted file mode 100644 index 4802be2244..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/comp/return.comp +++ /dev/null @@ -1,35 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 1, std430) writeonly buffer SSBO2 -{ - vec4 out_data[]; -} _27; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - if (ident == 2u) - { - _27.out_data[ident] = vec4(20.0); - } - else - { - if (ident == 4u) - { - _27.out_data[ident] = vec4(10.0); - return; - } - } - int i = 0; - while (i < 20) - { - if (i == 10) - { - break; - } - return; - } - _27.out_data[ident] = vec4(10.0); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/comp/shader_ballot_nonuniform_invocations.invalid.comp b/third_party/spirv-cross/reference/shaders-no-opt/comp/shader_ballot_nonuniform_invocations.invalid.comp deleted file mode 100644 index a14343ae12..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/comp/shader_ballot_nonuniform_invocations.invalid.comp +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 -#extension GL_AMD_shader_ballot : require -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -void main() -{ - float addInvocations = addInvocationsNonUniformAMD(0.0); - int minInvocations = minInvocationsNonUniformAMD(1); - uint maxInvocations = uint(maxInvocationsNonUniformAMD(4)); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/comp/specialization-constant-evaluation.comp b/third_party/spirv-cross/reference/shaders-no-opt/comp/specialization-constant-evaluation.comp deleted file mode 100644 index 695835968a..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/comp/specialization-constant-evaluation.comp +++ /dev/null @@ -1,321 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -#ifndef SPIRV_CROSS_CONSTANT_ID_2 -#define SPIRV_CROSS_CONSTANT_ID_2 1 -#endif -const int SONE = SPIRV_CROSS_CONSTANT_ID_2; -#ifndef SPIRV_CROSS_CONSTANT_ID_3 -#define SPIRV_CROSS_CONSTANT_ID_3 2 -#endif -const int STWO = SPIRV_CROSS_CONSTANT_ID_3; -const int _10 = (SONE + STWO); -const uint _13 = (uint(_10) + 0u); -#ifndef SPIRV_CROSS_CONSTANT_ID_5 -#define SPIRV_CROSS_CONSTANT_ID_5 1u -#endif -const uint UONE = SPIRV_CROSS_CONSTANT_ID_5; -const uint _15 = (_13 + UONE); -#ifndef SPIRV_CROSS_CONSTANT_ID_6 -#define SPIRV_CROSS_CONSTANT_ID_6 2u -#endif -const uint UTWO = SPIRV_CROSS_CONSTANT_ID_6; -const uint IADD = (_15 + UTWO); -const uint _19 = (IADD - 5u); -const uint _28 = (uint(SONE) + 0u); -const uint ISUB = (UTWO - _28); -const uint IMUL = (UTWO * UTWO); -const uint _37 = (IMUL - 3u); -const uint UDIV = (UTWO / UTWO); -#ifndef SPIRV_CROSS_CONSTANT_ID_4 -#define SPIRV_CROSS_CONSTANT_ID_4 -2 -#endif -const int SNEG_TWO = SPIRV_CROSS_CONSTANT_ID_4; -const int SDIV = (STWO / SNEG_TWO); -const int _52 = (SDIV + 2); -#ifndef SPIRV_CROSS_CONSTANT_ID_7 -#define SPIRV_CROSS_CONSTANT_ID_7 -3 -#endif -const int SNEG_THREE = SPIRV_CROSS_CONSTANT_ID_7; -const int SMOD = (STWO % SNEG_THREE); -const int _66 = (SMOD + 2); -const uint UMOD = (IADD % IMUL); -const uint _73 = (UMOD - 1u); -const uint LSHL = (IADD << ISUB); -const uint _81 = (LSHL - 11u); -const uint RSHL = (IADD >> ISUB); -const uint _89 = (RSHL - 2u); -const int _95 = int(IADD + 0u); -const int _96 = (-_95); -const int _97 = (-SDIV); -const int RSHA = (_96 >> _97); -const int _100 = (RSHA + 4); -const bool IEQ = (IADD == ISUB); -const int _109 = IEQ ? 2 : 1; -const bool INEQ = (IADD != ISUB); -const int _116 = INEQ ? 1 : 2; -const bool ULT = (IADD < ISUB); -const int _123 = ULT ? 2 : 1; -const bool ULE = (IADD <= ISUB); -const int _130 = ULE ? 2 : 1; -const bool UGT = (IADD > ISUB); -const int _137 = UGT ? 1 : 2; -const bool UGE = (IADD >= ISUB); -const int _144 = UGE ? 1 : 2; -const bool SLT = (SMOD < 1); -const int _151 = SLT ? 1 : 2; -const bool SLE = (SMOD <= 1); -const int _158 = SLE ? 1 : 2; -const bool SGT = (SMOD > 1); -const int _165 = SGT ? 2 : 1; -const bool SGE = (SMOD >= 1); -const int _172 = SGE ? 2 : 1; -const bool LOR = (IEQ || SLT); -const int _179 = LOR ? 1 : 2; -const bool LAND = (IEQ && SLT); -const int _186 = LAND ? 2 : 1; -const bool LNOT = (!LOR); -const int _193 = LNOT ? 2 : 1; -const uint AND = (IADD & IADD); -const uint _200 = (AND - 5u); -const uint OR = (IADD | ISUB); -const uint _208 = (OR - 6u); -const uint XOR = (IADD ^ IADD); -const uint _215 = (XOR + 1u); -const uint NOT = (~XOR); -const uint _223 = (NOT - 4294967294u); -const bool LEQ = (LAND == LNOT); -const int _230 = LEQ ? 1 : 2; -const bool LNEQ = (LAND != LNOT); -const int _237 = LNEQ ? 2 : 1; -const uint SEL = IEQ ? IADD : ISUB; -#ifndef SPIRV_CROSS_CONSTANT_ID_0 -#define SPIRV_CROSS_CONSTANT_ID_0 true -#endif -const bool TRUE = SPIRV_CROSS_CONSTANT_ID_0; -#ifndef SPIRV_CROSS_CONSTANT_ID_1 -#define SPIRV_CROSS_CONSTANT_ID_1 false -#endif -const bool FALSE = SPIRV_CROSS_CONSTANT_ID_1; - -layout(binding = 0, std430) buffer SSBO_IAdd -{ - float val[_19]; - float dummy; -} IAdd; - -layout(binding = 1, std430) buffer SSBO_ISub -{ - float val[ISUB]; - float dummy; -} ISub; - -layout(binding = 2, std430) buffer SSBO_IMul -{ - float val[_37]; - float dummy; -} IMul; - -layout(binding = 3, std430) buffer SSBO_UDiv -{ - float val[UDIV]; - float dummy; -} UDiv; - -layout(binding = 4, std430) buffer SSBO_SDiv -{ - float val[_52]; - float dummy; -} SDiv; - -layout(binding = 5, std430) buffer SSBO_SRem -{ - float val[1]; - float dummy; -} SRem; - -layout(binding = 6, std430) buffer SSBO_SMod -{ - float val[_66]; - float dummy; -} SMod; - -layout(binding = 7, std430) buffer SSBO_UMod -{ - float val[_73]; - float dummy; -} UMod; - -layout(binding = 8, std430) buffer SSBO_LShl -{ - float val[_81]; - float dummy; -} LShl; - -layout(binding = 9, std430) buffer SSBO_RShl -{ - float val[_89]; - float dummy; -} RShl; - -layout(binding = 10, std430) buffer SSBO_RSha -{ - float val[_100]; - float dummy; -} RSha; - -layout(binding = 11, std430) buffer SSBO_IEq -{ - float val[_109]; - float dummy; -} IEq; - -layout(binding = 12, std430) buffer SSBO_INeq -{ - float val[_116]; - float dummy; -} INeq; - -layout(binding = 13, std430) buffer SSBO_Ult -{ - float val[_123]; - float dummy; -} Ult; - -layout(binding = 14, std430) buffer SSBO_Ule -{ - float val[_130]; - float dummy; -} Ule; - -layout(binding = 15, std430) buffer SSBO_Ugt -{ - float val[_137]; - float dummy; -} Ugt; - -layout(binding = 16, std430) buffer SSBO_Uge -{ - float val[_144]; - float dummy; -} Uge; - -layout(binding = 17, std430) buffer SSBO_Slt -{ - float val[_151]; - float dummy; -} Slt; - -layout(binding = 18, std430) buffer SSBO_Sle -{ - float val[_158]; - float dummy; -} Sle; - -layout(binding = 19, std430) buffer SSBO_Sgt -{ - float val[_165]; - float dummy; -} Sgt; - -layout(binding = 20, std430) buffer SSBO_Sge -{ - float val[_172]; - float dummy; -} Sge; - -layout(binding = 21, std430) buffer SSBO_Lor -{ - float val[_179]; - float dummy; -} Lor; - -layout(binding = 22, std430) buffer SSBO_Land -{ - float val[_186]; - float dummy; -} Land; - -layout(binding = 23, std430) buffer SSBO_Lnot -{ - float val[_193]; - float dummy; -} Lnot; - -layout(binding = 24, std430) buffer SSBO_And -{ - float val[_200]; - float dummy; -} And; - -layout(binding = 24, std430) buffer SSBO_Or -{ - float val[_208]; - float dummy; -} Or; - -layout(binding = 24, std430) buffer SSBO_Xor -{ - float val[_215]; - float dummy; -} Xor; - -layout(binding = 25, std430) buffer SSBO_Not -{ - float val[_223]; - float dummy; -} Not; - -layout(binding = 26, std430) buffer SSBO_Leq -{ - float val[_230]; - float dummy; -} Leq; - -layout(binding = 27, std430) buffer SSBO_Lneq -{ - float val[_237]; - float dummy; -} Lneq; - -layout(binding = 28, std430) buffer SSBO_Sel -{ - float val[SEL]; - float dummy; -} Sel; - -void main() -{ - IAdd.val[0] = 0.0; - ISub.val[0] = 0.0; - IMul.val[0] = 0.0; - UDiv.val[0] = 0.0; - SDiv.val[0] = 0.0; - SRem.val[0] = 0.0; - SMod.val[0] = 0.0; - UMod.val[0] = 0.0; - LShl.val[0] = 0.0; - RShl.val[0] = 0.0; - RSha.val[0] = 0.0; - IEq.val[0] = 0.0; - INeq.val[0] = 0.0; - Ult.val[0] = 0.0; - Ule.val[0] = 0.0; - Ugt.val[0] = 0.0; - Uge.val[0] = 0.0; - Slt.val[0] = 0.0; - Sle.val[0] = 0.0; - Sgt.val[0] = 0.0; - Sge.val[0] = 0.0; - Lor.val[0] = 0.0; - Land.val[0] = 0.0; - Lnot.val[0] = 0.0; - And.val[0] = 0.0; - Or.val[0] = 0.0; - Xor.val[0] = 0.0; - Not.val[0] = 0.0; - Leq.val[0] = 0.0; - Lneq.val[0] = 0.0; - Sel.val[0] = 0.0; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/comp/struct-packing-scalar.nocompat.invalid.vk.comp.vk b/third_party/spirv-cross/reference/shaders-no-opt/comp/struct-packing-scalar.nocompat.invalid.vk.comp.vk deleted file mode 100644 index a037b301ca..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/comp/struct-packing-scalar.nocompat.invalid.vk.comp.vk +++ /dev/null @@ -1,105 +0,0 @@ -#version 310 es -#extension GL_EXT_scalar_block_layout : require -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -struct S0 -{ - vec2 a[1]; - float b; -}; - -struct S1 -{ - vec3 a; - float b; -}; - -struct S2 -{ - vec3 a[1]; - float b; -}; - -struct S3 -{ - vec2 a; - float b; -}; - -struct S4 -{ - vec2 c; -}; - -struct Content -{ - S0 m0s[1]; - S1 m1s[1]; - S2 m2s[1]; - S0 m0; - S1 m1; - S2 m2; - S3 m3; - float m4; - S4 m3s[8]; -}; - -layout(set = 0, binding = 1, scalar) restrict buffer SSBO1 -{ - Content content; - Content content1[2]; - Content content2; - mat2 m0; - mat2 m1; - mat2x3 m2[4]; - mat3x2 m3; - layout(row_major) mat2 m4; - layout(row_major) mat2 m5[9]; - layout(row_major) mat2x3 m6[4][2]; - layout(row_major) mat3x2 m7; - float array[]; -} ssbo_430; - -layout(set = 0, binding = 0, std140) restrict buffer SSBO0 -{ - Content content; - Content content1[2]; - Content content2; - mat2 m0; - mat2 m1; - mat2x3 m2[4]; - mat3x2 m3; - layout(row_major) mat2 m4; - layout(row_major) mat2 m5[9]; - layout(row_major) mat2x3 m6[4][2]; - layout(row_major) mat3x2 m7; - float array[]; -} ssbo_140; - -void main() -{ - ssbo_430.content.m0s[0].a[0] = ssbo_140.content.m0s[0].a[0]; - ssbo_430.content.m0s[0].b = ssbo_140.content.m0s[0].b; - ssbo_430.content.m1s[0].a = ssbo_140.content.m1s[0].a; - ssbo_430.content.m1s[0].b = ssbo_140.content.m1s[0].b; - ssbo_430.content.m2s[0].a[0] = ssbo_140.content.m2s[0].a[0]; - ssbo_430.content.m2s[0].b = ssbo_140.content.m2s[0].b; - ssbo_430.content.m0.a[0] = ssbo_140.content.m0.a[0]; - ssbo_430.content.m0.b = ssbo_140.content.m0.b; - ssbo_430.content.m1.a = ssbo_140.content.m1.a; - ssbo_430.content.m1.b = ssbo_140.content.m1.b; - ssbo_430.content.m2.a[0] = ssbo_140.content.m2.a[0]; - ssbo_430.content.m2.b = ssbo_140.content.m2.b; - ssbo_430.content.m3.a = ssbo_140.content.m3.a; - ssbo_430.content.m3.b = ssbo_140.content.m3.b; - ssbo_430.content.m4 = ssbo_140.content.m4; - ssbo_430.content.m3s[0].c = ssbo_140.content.m3s[0].c; - ssbo_430.content.m3s[1].c = ssbo_140.content.m3s[1].c; - ssbo_430.content.m3s[2].c = ssbo_140.content.m3s[2].c; - ssbo_430.content.m3s[3].c = ssbo_140.content.m3s[3].c; - ssbo_430.content.m3s[4].c = ssbo_140.content.m3s[4].c; - ssbo_430.content.m3s[5].c = ssbo_140.content.m3s[5].c; - ssbo_430.content.m3s[6].c = ssbo_140.content.m3s[6].c; - ssbo_430.content.m3s[7].c = ssbo_140.content.m3s[7].c; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/comp/subgroups.nocompat.invalid.vk.comp.vk b/third_party/spirv-cross/reference/shaders-no-opt/comp/subgroups.nocompat.invalid.vk.comp.vk deleted file mode 100644 index f3fa6dd00c..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/comp/subgroups.nocompat.invalid.vk.comp.vk +++ /dev/null @@ -1,116 +0,0 @@ -#version 450 -#extension GL_KHR_shader_subgroup_basic : require -#extension GL_KHR_shader_subgroup_ballot : require -#extension GL_KHR_shader_subgroup_shuffle : require -#extension GL_KHR_shader_subgroup_shuffle_relative : require -#extension GL_KHR_shader_subgroup_vote : require -#extension GL_KHR_shader_subgroup_arithmetic : require -#extension GL_KHR_shader_subgroup_clustered : require -#extension GL_KHR_shader_subgroup_quad : require -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(set = 0, binding = 0, std430) buffer SSBO -{ - float FragColor; -} _9; - -void main() -{ - _9.FragColor = float(gl_NumSubgroups); - _9.FragColor = float(gl_SubgroupID); - _9.FragColor = float(gl_SubgroupSize); - _9.FragColor = float(gl_SubgroupInvocationID); - subgroupMemoryBarrier(); - subgroupBarrier(); - subgroupMemoryBarrier(); - subgroupMemoryBarrierBuffer(); - subgroupMemoryBarrierShared(); - subgroupMemoryBarrierImage(); - bool elected = subgroupElect(); - _9.FragColor = vec4(gl_SubgroupEqMask).x; - _9.FragColor = vec4(gl_SubgroupGeMask).x; - _9.FragColor = vec4(gl_SubgroupGtMask).x; - _9.FragColor = vec4(gl_SubgroupLeMask).x; - _9.FragColor = vec4(gl_SubgroupLtMask).x; - vec4 broadcasted = subgroupBroadcast(vec4(10.0), 8u); - vec3 first = subgroupBroadcastFirst(vec3(20.0)); - uvec4 ballot_value = subgroupBallot(true); - bool inverse_ballot_value = subgroupInverseBallot(ballot_value); - bool bit_extracted = subgroupBallotBitExtract(uvec4(10u), 8u); - uint bit_count = subgroupBallotBitCount(ballot_value); - uint inclusive_bit_count = subgroupBallotInclusiveBitCount(ballot_value); - uint exclusive_bit_count = subgroupBallotExclusiveBitCount(ballot_value); - uint lsb = subgroupBallotFindLSB(ballot_value); - uint msb = subgroupBallotFindMSB(ballot_value); - uint shuffled = subgroupShuffle(10u, 8u); - uint shuffled_xor = subgroupShuffleXor(30u, 8u); - uint shuffled_up = subgroupShuffleUp(20u, 4u); - uint shuffled_down = subgroupShuffleDown(20u, 4u); - bool has_all = subgroupAll(true); - bool has_any = subgroupAny(true); - bool has_equal = subgroupAllEqual(true); - vec4 added = subgroupAdd(vec4(20.0)); - ivec4 iadded = subgroupAdd(ivec4(20)); - vec4 multiplied = subgroupMul(vec4(20.0)); - ivec4 imultiplied = subgroupMul(ivec4(20)); - vec4 lo = subgroupMin(vec4(20.0)); - vec4 hi = subgroupMax(vec4(20.0)); - ivec4 slo = subgroupMin(ivec4(20)); - ivec4 shi = subgroupMax(ivec4(20)); - uvec4 ulo = subgroupMin(uvec4(20u)); - uvec4 uhi = subgroupMax(uvec4(20u)); - uvec4 anded = subgroupAnd(ballot_value); - uvec4 ored = subgroupOr(ballot_value); - uvec4 xored = subgroupXor(ballot_value); - bvec4 anded_b = subgroupAnd(equal(ballot_value, uvec4(42u))); - bvec4 ored_b = subgroupOr(equal(ballot_value, uvec4(42u))); - bvec4 xored_b = subgroupXor(equal(ballot_value, uvec4(42u))); - added = subgroupInclusiveAdd(added); - iadded = subgroupInclusiveAdd(iadded); - multiplied = subgroupInclusiveMul(multiplied); - imultiplied = subgroupInclusiveMul(imultiplied); - lo = subgroupInclusiveMin(lo); - hi = subgroupInclusiveMax(hi); - slo = subgroupInclusiveMin(slo); - shi = subgroupInclusiveMax(shi); - ulo = subgroupInclusiveMin(ulo); - uhi = subgroupInclusiveMax(uhi); - anded = subgroupInclusiveAnd(anded); - ored = subgroupInclusiveOr(ored); - xored = subgroupInclusiveXor(ored); - added = subgroupExclusiveAdd(lo); - added = subgroupExclusiveAdd(multiplied); - multiplied = subgroupExclusiveMul(multiplied); - iadded = subgroupExclusiveAdd(imultiplied); - imultiplied = subgroupExclusiveMul(imultiplied); - lo = subgroupExclusiveMin(lo); - hi = subgroupExclusiveMax(hi); - ulo = subgroupExclusiveMin(ulo); - uhi = subgroupExclusiveMax(uhi); - slo = subgroupExclusiveMin(slo); - shi = subgroupExclusiveMax(shi); - anded = subgroupExclusiveAnd(anded); - ored = subgroupExclusiveOr(ored); - xored = subgroupExclusiveXor(ored); - added = subgroupClusteredAdd(added, 4u); - multiplied = subgroupClusteredMul(multiplied, 4u); - iadded = subgroupClusteredAdd(iadded, 4u); - imultiplied = subgroupClusteredMul(imultiplied, 4u); - lo = subgroupClusteredMin(lo, 4u); - hi = subgroupClusteredMax(hi, 4u); - ulo = subgroupClusteredMin(ulo, 4u); - uhi = subgroupClusteredMax(uhi, 4u); - slo = subgroupClusteredMin(slo, 4u); - shi = subgroupClusteredMax(shi, 4u); - anded = subgroupClusteredAnd(anded, 4u); - ored = subgroupClusteredOr(ored, 4u); - xored = subgroupClusteredXor(xored, 4u); - anded_b = subgroupClusteredAnd(equal(anded, uvec4(2u)), 4u); - ored_b = subgroupClusteredOr(equal(ored, uvec4(3u)), 4u); - xored_b = subgroupClusteredXor(equal(xored, uvec4(4u)), 4u); - vec4 swap_horiz = subgroupQuadSwapHorizontal(vec4(20.0)); - vec4 swap_vertical = subgroupQuadSwapVertical(vec4(20.0)); - vec4 swap_diagonal = subgroupQuadSwapDiagonal(vec4(20.0)); - vec4 quad_broadcast = subgroupQuadBroadcast(vec4(20.0), 3u); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/comp/subgroups_basicvoteballot.vk.comp b/third_party/spirv-cross/reference/shaders-no-opt/comp/subgroups_basicvoteballot.vk.comp deleted file mode 100644 index 00b3fa7e1f..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/comp/subgroups_basicvoteballot.vk.comp +++ /dev/null @@ -1,401 +0,0 @@ -#version 450 - -#if defined(GL_KHR_shader_subgroup_ballot) -#extension GL_KHR_shader_subgroup_ballot : require -#elif defined(GL_NV_shader_thread_group) -#extension GL_NV_shader_thread_group : require -#elif defined(GL_ARB_shader_ballot) && defined(GL_ARB_shader_int64) -#extension GL_ARB_shader_int64 : enable -#extension GL_ARB_shader_ballot : require -#else -#error No extensions available to emulate requested subgroup feature. -#endif - -#if defined(GL_KHR_shader_subgroup_basic) -#extension GL_KHR_shader_subgroup_basic : require -#elif defined(GL_NV_shader_thread_group) -#extension GL_NV_shader_thread_group : require -#elif defined(GL_ARB_shader_ballot) && defined(GL_ARB_shader_int64) -#extension GL_ARB_shader_int64 : enable -#extension GL_ARB_shader_ballot : require -#elif defined(GL_AMD_gcn_shader) && (defined(GL_AMD_gpu_shader_int64) || defined(GL_NV_gpu_shader5)) -#extension GL_AMD_gpu_shader_int64 : enable -#extension GL_NV_gpu_shader5 : enable -#extension GL_AMD_gcn_shader : require -#else -#error No extensions available to emulate requested subgroup feature. -#endif - -#if defined(GL_KHR_shader_subgroup_basic) -#extension GL_KHR_shader_subgroup_basic : require -#elif defined(GL_NV_shader_thread_group) -#extension GL_NV_shader_thread_group : require -#elif defined(GL_ARB_shader_ballot) && defined(GL_ARB_shader_int64) -#extension GL_ARB_shader_int64 : enable -#extension GL_ARB_shader_ballot : require -#else -#error No extensions available to emulate requested subgroup feature. -#endif - -#if defined(GL_KHR_shader_subgroup_basic) -#extension GL_KHR_shader_subgroup_basic : require -#elif defined(GL_NV_shader_thread_group) -#extension GL_NV_shader_thread_group : require -#else -#error No extensions available to emulate requested subgroup feature. -#endif - -#if defined(GL_KHR_shader_subgroup_basic) -#extension GL_KHR_shader_subgroup_basic : require -#elif defined(GL_NV_shader_thread_group) -#extension GL_NV_shader_thread_group : require -#else -#error No extensions available to emulate requested subgroup feature. -#endif - -#if defined(GL_KHR_shader_subgroup_ballot) -#extension GL_KHR_shader_subgroup_ballot : require -#elif defined(GL_ARB_shader_ballot) && defined(GL_ARB_shader_int64) -#extension GL_ARB_shader_int64 : enable -#extension GL_ARB_shader_ballot : require -#elif defined(GL_NV_shader_thread_shuffle) -#extension GL_NV_shader_thread_shuffle : require -#else -#error No extensions available to emulate requested subgroup feature. -#endif - -#if defined(GL_KHR_shader_subgroup_ballot) -#extension GL_KHR_shader_subgroup_ballot : require -#elif defined(GL_NV_shader_thread_group) -#extension GL_NV_shader_thread_group : require -#endif - -#if defined(GL_KHR_shader_subgroup_vote) -#extension GL_KHR_shader_subgroup_vote : require -#elif defined(GL_AMD_gcn_shader) && (defined(GL_AMD_gpu_shader_int64) || defined(GL_NV_gpu_shader5)) -#extension GL_AMD_gpu_shader_int64 : enable -#extension GL_NV_gpu_shader5 : enable -#extension GL_AMD_gcn_shader : require -#elif defined(GL_NV_gpu_shader_5) -#extension GL_NV_gpu_shader_5 : require -#elif defined(GL_ARB_shader_group_vote) -#extension GL_ARB_shader_group_vote : require -#else -#error No extensions available to emulate requested subgroup feature. -#endif - -#if defined(GL_KHR_shader_subgroup_basic) -#extension GL_KHR_shader_subgroup_basic : require -#elif defined(GL_NV_shader_thread_group) -#extension GL_NV_shader_thread_group : require -#elif defined(GL_ARB_shader_ballot) && defined(GL_ARB_shader_int64) -#extension GL_ARB_shader_int64 : enable -#extension GL_ARB_shader_ballot : require -#elif defined(GL_AMD_gcn_shader) && (defined(GL_AMD_gpu_shader_int64) || defined(GL_NV_gpu_shader5)) -#extension GL_AMD_gpu_shader_int64 : enable -#extension GL_NV_gpu_shader5 : enable -#extension GL_AMD_gcn_shader : require -#else -#error No extensions available to emulate requested subgroup feature. -#endif - -#if defined(GL_KHR_shader_subgroup_basic) -#extension GL_KHR_shader_subgroup_basic : require -#endif - -#if defined(GL_KHR_shader_subgroup_ballot) -#extension GL_KHR_shader_subgroup_ballot : require -#elif defined(GL_NV_shader_thread_group) -#extension GL_NV_shader_thread_group : require -#elif defined(GL_ARB_shader_ballot) && defined(GL_ARB_shader_int64) -#extension GL_ARB_shader_int64 : enable -#extension GL_ARB_shader_ballot : require -#else -#error No extensions available to emulate requested subgroup feature. -#endif - -#if defined(GL_NV_shader_thread_group) -#extension GL_NV_shader_thread_group : require -#endif -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer SSBO -{ - float FragColor; -} _9; - -#if defined(GL_KHR_shader_subgroup_ballot) -#elif defined(GL_NV_shader_thread_group) -#define gl_SubgroupEqMask uvec4(gl_ThreadEqMaskNV, 0u, 0u, 0u) -#define gl_SubgroupGeMask uvec4(gl_ThreadGeMaskNV, 0u, 0u, 0u) -#define gl_SubgroupGtMask uvec4(gl_ThreadGtMaskNV, 0u, 0u, 0u) -#define gl_SubgroupLeMask uvec4(gl_ThreadLeMaskNV, 0u, 0u, 0u) -#define gl_SubgroupLtMask uvec4(gl_ThreadLtMaskNV, 0u, 0u, 0u) -#elif defined(GL_ARB_shader_ballot) -#define gl_SubgroupEqMask uvec4(unpackUint2x32(gl_SubGroupEqMaskARB), 0u, 0u) -#define gl_SubgroupGeMask uvec4(unpackUint2x32(gl_SubGroupGeMaskARB), 0u, 0u) -#define gl_SubgroupGtMask uvec4(unpackUint2x32(gl_SubGroupGtMaskARB), 0u, 0u) -#define gl_SubgroupLeMask uvec4(unpackUint2x32(gl_SubGroupLeMaskARB), 0u, 0u) -#define gl_SubgroupLtMask uvec4(unpackUint2x32(gl_SubGroupLtMaskARB), 0u, 0u) -#endif - -#if defined(GL_KHR_shader_subgroup_basic) -#elif defined(GL_NV_shader_thread_group) -#define gl_SubgroupSize gl_WarpSizeNV -#elif defined(GL_ARB_shader_ballot) -#define gl_SubgroupSize gl_SubGroupSizeARB -#elif defined(GL_AMD_gcn_shader) -#define gl_SubgroupSize uint(gl_SIMDGroupSizeAMD) -#endif - -#if defined(GL_KHR_shader_subgroup_basic) -#elif defined(GL_NV_shader_thread_group) -#define gl_SubgroupInvocationID gl_ThreadInWarpNV -#elif defined(GL_ARB_shader_ballot) -#define gl_SubgroupInvocationID gl_SubGroupInvocationARB -#endif - -#if defined(GL_KHR_shader_subgroup_basic) -#elif defined(GL_NV_shader_thread_group) -#define gl_SubgroupID gl_WarpIDNV -#endif - -#if defined(GL_KHR_shader_subgroup_basic) -#elif defined(GL_NV_shader_thread_group) -#define gl_NumSubgroups gl_WarpsPerSMNV -#endif - -#if defined(GL_KHR_shader_subgroup_ballot) -#elif defined(GL_ARB_shader_ballot) -int subgroupBroadcastFirst(int value) { return readFirstInvocationARB(value); } -ivec2 subgroupBroadcastFirst(ivec2 value) { return readFirstInvocationARB(value); } -ivec3 subgroupBroadcastFirst(ivec3 value) { return readFirstInvocationARB(value); } -ivec4 subgroupBroadcastFirst(ivec4 value) { return readFirstInvocationARB(value); } -uint subgroupBroadcastFirst(uint value) { return readFirstInvocationARB(value); } -uvec2 subgroupBroadcastFirst(uvec2 value) { return readFirstInvocationARB(value); } -uvec3 subgroupBroadcastFirst(uvec3 value) { return readFirstInvocationARB(value); } -uvec4 subgroupBroadcastFirst(uvec4 value) { return readFirstInvocationARB(value); } -float subgroupBroadcastFirst(float value) { return readFirstInvocationARB(value); } -vec2 subgroupBroadcastFirst(vec2 value) { return readFirstInvocationARB(value); } -vec3 subgroupBroadcastFirst(vec3 value) { return readFirstInvocationARB(value); } -vec4 subgroupBroadcastFirst(vec4 value) { return readFirstInvocationARB(value); } -double subgroupBroadcastFirst(double value) { return readFirstInvocationARB(value); } -dvec2 subgroupBroadcastFirst(dvec2 value) { return readFirstInvocationARB(value); } -dvec3 subgroupBroadcastFirst(dvec3 value) { return readFirstInvocationARB(value); } -dvec4 subgroupBroadcastFirst(dvec4 value) { return readFirstInvocationARB(value); } -int subgroupBroadcast(int value, uint id) { return readInvocationARB(value, id); } -ivec2 subgroupBroadcast(ivec2 value, uint id) { return readInvocationARB(value, id); } -ivec3 subgroupBroadcast(ivec3 value, uint id) { return readInvocationARB(value, id); } -ivec4 subgroupBroadcast(ivec4 value, uint id) { return readInvocationARB(value, id); } -uint subgroupBroadcast(uint value, uint id) { return readInvocationARB(value, id); } -uvec2 subgroupBroadcast(uvec2 value, uint id) { return readInvocationARB(value, id); } -uvec3 subgroupBroadcast(uvec3 value, uint id) { return readInvocationARB(value, id); } -uvec4 subgroupBroadcast(uvec4 value, uint id) { return readInvocationARB(value, id); } -float subgroupBroadcast(float value, uint id) { return readInvocationARB(value, id); } -vec2 subgroupBroadcast(vec2 value, uint id) { return readInvocationARB(value, id); } -vec3 subgroupBroadcast(vec3 value, uint id) { return readInvocationARB(value, id); } -vec4 subgroupBroadcast(vec4 value, uint id) { return readInvocationARB(value, id); } -double subgroupBroadcast(double value, uint id) { return readInvocationARB(value, id); } -dvec2 subgroupBroadcast(dvec2 value, uint id) { return readInvocationARB(value, id); } -dvec3 subgroupBroadcast(dvec3 value, uint id) { return readInvocationARB(value, id); } -dvec4 subgroupBroadcast(dvec4 value, uint id) { return readInvocationARB(value, id); } -#elif defined(GL_NV_shader_thread_shuffle) -int subgroupBroadcastFirst(int value) { return shuffleNV(value, findLSB(ballotThreadNV(true)), gl_WarpSizeNV); } -ivec2 subgroupBroadcastFirst(ivec2 value) { return shuffleNV(value, findLSB(ballotThreadNV(true)), gl_WarpSizeNV); } -ivec3 subgroupBroadcastFirst(ivec3 value) { return shuffleNV(value, findLSB(ballotThreadNV(true)), gl_WarpSizeNV); } -ivec4 subgroupBroadcastFirst(ivec4 value) { return shuffleNV(value, findLSB(ballotThreadNV(true)), gl_WarpSizeNV); } -uint subgroupBroadcastFirst(uint value) { return shuffleNV(value, findLSB(ballotThreadNV(true)), gl_WarpSizeNV); } -uvec2 subgroupBroadcastFirst(uvec2 value) { return shuffleNV(value, findLSB(ballotThreadNV(true)), gl_WarpSizeNV); } -uvec3 subgroupBroadcastFirst(uvec3 value) { return shuffleNV(value, findLSB(ballotThreadNV(true)), gl_WarpSizeNV); } -uvec4 subgroupBroadcastFirst(uvec4 value) { return shuffleNV(value, findLSB(ballotThreadNV(true)), gl_WarpSizeNV); } -float subgroupBroadcastFirst(float value) { return shuffleNV(value, findLSB(ballotThreadNV(true)), gl_WarpSizeNV); } -vec2 subgroupBroadcastFirst(vec2 value) { return shuffleNV(value, findLSB(ballotThreadNV(true)), gl_WarpSizeNV); } -vec3 subgroupBroadcastFirst(vec3 value) { return shuffleNV(value, findLSB(ballotThreadNV(true)), gl_WarpSizeNV); } -vec4 subgroupBroadcastFirst(vec4 value) { return shuffleNV(value, findLSB(ballotThreadNV(true)), gl_WarpSizeNV); } -double subgroupBroadcastFirst(double value) { return shuffleNV(value, findLSB(ballotThreadNV(true)), gl_WarpSizeNV); } -dvec2 subgroupBroadcastFirst(dvec2 value) { return shuffleNV(value, findLSB(ballotThreadNV(true)), gl_WarpSizeNV); } -dvec3 subgroupBroadcastFirst(dvec3 value) { return shuffleNV(value, findLSB(ballotThreadNV(true)), gl_WarpSizeNV); } -dvec4 subgroupBroadcastFirst(dvec4 value) { return shuffleNV(value, findLSB(ballotThreadNV(true)), gl_WarpSizeNV); } -int subgroupBroadcast(int value, uint id) { return shuffleNV(value, id, gl_WarpSizeNV); } -ivec2 subgroupBroadcast(ivec2 value, uint id) { return shuffleNV(value, id, gl_WarpSizeNV); } -ivec3 subgroupBroadcast(ivec3 value, uint id) { return shuffleNV(value, id, gl_WarpSizeNV); } -ivec4 subgroupBroadcast(ivec4 value, uint id) { return shuffleNV(value, id, gl_WarpSizeNV); } -uint subgroupBroadcast(uint value, uint id) { return shuffleNV(value, id, gl_WarpSizeNV); } -uvec2 subgroupBroadcast(uvec2 value, uint id) { return shuffleNV(value, id, gl_WarpSizeNV); } -uvec3 subgroupBroadcast(uvec3 value, uint id) { return shuffleNV(value, id, gl_WarpSizeNV); } -uvec4 subgroupBroadcast(uvec4 value, uint id) { return shuffleNV(value, id, gl_WarpSizeNV); } -float subgroupBroadcast(float value, uint id) { return shuffleNV(value, id, gl_WarpSizeNV); } -vec2 subgroupBroadcast(vec2 value, uint id) { return shuffleNV(value, id, gl_WarpSizeNV); } -vec3 subgroupBroadcast(vec3 value, uint id) { return shuffleNV(value, id, gl_WarpSizeNV); } -vec4 subgroupBroadcast(vec4 value, uint id) { return shuffleNV(value, id, gl_WarpSizeNV); } -double subgroupBroadcast(double value, uint id) { return shuffleNV(value, id, gl_WarpSizeNV); } -dvec2 subgroupBroadcast(dvec2 value, uint id) { return shuffleNV(value, id, gl_WarpSizeNV); } -dvec3 subgroupBroadcast(dvec3 value, uint id) { return shuffleNV(value, id, gl_WarpSizeNV); } -dvec4 subgroupBroadcast(dvec4 value, uint id) { return shuffleNV(value, id, gl_WarpSizeNV); } -#endif - -#if defined(GL_KHR_shader_subgroup_ballot) -#elif defined(GL_NV_shader_thread_group) -uint subgroupBallotFindLSB(uvec4 value) { return findLSB(value.x); } -uint subgroupBallotFindMSB(uvec4 value) { return findMSB(value.x); } -#else -uint subgroupBallotFindLSB(uvec4 value) -{ - int firstLive = findLSB(value.x); - return uint(firstLive != -1 ? firstLive : (findLSB(value.y) + 32)); -} -uint subgroupBallotFindMSB(uvec4 value) -{ - int firstLive = findMSB(value.y); - return uint(firstLive != -1 ? (firstLive + 32) : findMSB(value.x)); -} -#endif - -#if defined(GL_KHR_shader_subgroup_vote) -#elif defined(GL_AMD_gcn_shader) -bool subgroupAll(bool value) { return ballotAMD(value) == ballotAMD(true); } -bool subgroupAny(bool value) { return ballotAMD(value) != 0ull; } -bool subgroupAllEqual(bool value) { uint64_t b = ballotAMD(value); return b == 0ull || b == ballotAMD(true); } -#elif defined(GL_NV_gpu_shader_5) -bool subgroupAll(bool value) { return allThreadsNV(value); } -bool subgroupAny(bool value) { return anyThreadNV(value); } -bool subgroupAllEqual(bool value) { return allThreadsEqualNV(value); } -#elif defined(GL_ARB_shader_group_vote) -bool subgroupAll(bool v) { return allInvocationsARB(v); } -bool subgroupAny(bool v) { return anyInvocationARB(v); } -bool subgroupAllEqual(bool v) { return allInvocationsEqualARB(v); } -#endif - -#ifndef GL_KHR_shader_subgroup_vote -#define _SPIRV_CROSS_SUBGROUP_ALL_EQUAL_WORKAROUND(type) bool subgroupAllEqual(type value) { return subgroupAllEqual(subgroupBroadcastFirst(value) == value); } -_SPIRV_CROSS_SUBGROUP_ALL_EQUAL_WORKAROUND(int) -_SPIRV_CROSS_SUBGROUP_ALL_EQUAL_WORKAROUND(ivec2) -_SPIRV_CROSS_SUBGROUP_ALL_EQUAL_WORKAROUND(ivec3) -_SPIRV_CROSS_SUBGROUP_ALL_EQUAL_WORKAROUND(ivec4) -_SPIRV_CROSS_SUBGROUP_ALL_EQUAL_WORKAROUND(uint) -_SPIRV_CROSS_SUBGROUP_ALL_EQUAL_WORKAROUND(uvec2) -_SPIRV_CROSS_SUBGROUP_ALL_EQUAL_WORKAROUND(uvec3) -_SPIRV_CROSS_SUBGROUP_ALL_EQUAL_WORKAROUND(uvec4) -_SPIRV_CROSS_SUBGROUP_ALL_EQUAL_WORKAROUND(float) -_SPIRV_CROSS_SUBGROUP_ALL_EQUAL_WORKAROUND(vec2) -_SPIRV_CROSS_SUBGROUP_ALL_EQUAL_WORKAROUND(vec3) -_SPIRV_CROSS_SUBGROUP_ALL_EQUAL_WORKAROUND(vec4) -_SPIRV_CROSS_SUBGROUP_ALL_EQUAL_WORKAROUND(double) -_SPIRV_CROSS_SUBGROUP_ALL_EQUAL_WORKAROUND(dvec2) -_SPIRV_CROSS_SUBGROUP_ALL_EQUAL_WORKAROUND(dvec3) -_SPIRV_CROSS_SUBGROUP_ALL_EQUAL_WORKAROUND(dvec4) -#undef _SPIRV_CROSS_SUBGROUP_ALL_EQUAL_WORKAROUND -#endif - -#if defined(GL_KHR_shader_subgroup_ballot) -#elif defined(GL_NV_shader_thread_group) -uvec4 subgroupBallot(bool v) { return uvec4(ballotThreadNV(v), 0u, 0u, 0u); } -#elif defined(GL_ARB_shader_ballot) -uvec4 subgroupBallot(bool v) { return uvec4(unpackUint2x32(ballotARB(v)), 0u, 0u); } -#endif - -#ifndef GL_KHR_shader_subgroup_basic -bool subgroupElect() -{ - uvec4 activeMask = subgroupBallot(true); - uint firstLive = subgroupBallotFindLSB(activeMask); - return gl_SubgroupInvocationID == firstLive; -} -#endif - -#ifndef GL_KHR_shader_subgroup_basic -void subgroupBarrier() { memoryBarrierShared(); } -#endif - -#ifndef GL_KHR_shader_subgroup_basic -void subgroupMemoryBarrier() { groupMemoryBarrier(); } -void subgroupMemoryBarrierBuffer() { groupMemoryBarrier(); } -void subgroupMemoryBarrierShared() { memoryBarrierShared(); } -void subgroupMemoryBarrierImage() { groupMemoryBarrier(); } -#endif - -#ifndef GL_KHR_shader_subgroup_ballot -bool subgroupInverseBallot(uvec4 value) -{ - return any(notEqual(value.xy & gl_SubgroupEqMask.xy, uvec2(0u))); -} -uint subgroupBallotInclusiveBitCount(uvec4 value) -{ - uvec2 v = value.xy & gl_SubgroupLeMask.xy; - ivec2 c = bitCount(v); -#ifdef GL_NV_shader_thread_group - return uint(c.x); -#else - return uint(c.x + c.y); -#endif -} -uint subgroupBallotExclusiveBitCount(uvec4 value) -{ - uvec2 v = value.xy & gl_SubgroupLtMask.xy; - ivec2 c = bitCount(v); -#ifdef GL_NV_shader_thread_group - return uint(c.x); -#else - return uint(c.x + c.y); -#endif -} -#endif - -#ifndef GL_KHR_shader_subgroup_ballot -uint subgroupBallotBitCount(uvec4 value) -{ - ivec2 c = bitCount(value.xy); -#ifdef GL_NV_shader_thread_group - return uint(c.x); -#else - return uint(c.x + c.y); -#endif -} -#endif - -#ifndef GL_KHR_shader_subgroup_ballot -bool subgroupBallotBitExtract(uvec4 value, uint index) -{ -#ifdef GL_NV_shader_thread_group - uint shifted = value.x >> index; -#else - uint shifted = value[index >> 5u] >> (index & 0x1fu); -#endif - return (shifted & 1u) != 0u; -} -#endif - -void main() -{ - _9.FragColor = float(gl_NumSubgroups); - _9.FragColor = float(gl_SubgroupID); - _9.FragColor = float(gl_SubgroupSize); - _9.FragColor = float(gl_SubgroupInvocationID); - subgroupMemoryBarrier(); - subgroupBarrier(); - subgroupMemoryBarrier(); - subgroupMemoryBarrierBuffer(); - subgroupMemoryBarrierShared(); - subgroupMemoryBarrierImage(); - bool elected = subgroupElect(); - _9.FragColor = vec4(gl_SubgroupEqMask).x; - _9.FragColor = vec4(gl_SubgroupGeMask).x; - _9.FragColor = vec4(gl_SubgroupGtMask).x; - _9.FragColor = vec4(gl_SubgroupLeMask).x; - _9.FragColor = vec4(gl_SubgroupLtMask).x; - vec4 broadcasted = subgroupBroadcast(vec4(10.0), 8u); - vec3 first = subgroupBroadcastFirst(vec3(20.0)); - uvec4 ballot_value = subgroupBallot(true); - bool inverse_ballot_value = subgroupInverseBallot(ballot_value); - bool bit_extracted = subgroupBallotBitExtract(uvec4(10u), 8u); - uint bit_count = subgroupBallotBitCount(ballot_value); - uint inclusive_bit_count = subgroupBallotInclusiveBitCount(ballot_value); - uint exclusive_bit_count = subgroupBallotExclusiveBitCount(ballot_value); - uint lsb = subgroupBallotFindLSB(ballot_value); - uint msb = subgroupBallotFindMSB(ballot_value); - bool has_all = subgroupAll(true); - bool has_any = subgroupAny(true); - bool has_equal_bool = subgroupAllEqual(true); - bool has_equal_T = subgroupAllEqual(uvec3(5u)); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/comp/subgroups_basicvoteballot.vk.comp.vk b/third_party/spirv-cross/reference/shaders-no-opt/comp/subgroups_basicvoteballot.vk.comp.vk deleted file mode 100644 index 61aa2f7a56..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/comp/subgroups_basicvoteballot.vk.comp.vk +++ /dev/null @@ -1,45 +0,0 @@ -#version 450 -#extension GL_KHR_shader_subgroup_basic : require -#extension GL_KHR_shader_subgroup_ballot : require -#extension GL_KHR_shader_subgroup_vote : require -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(set = 0, binding = 0, std430) buffer SSBO -{ - float FragColor; -} _9; - -void main() -{ - _9.FragColor = float(gl_NumSubgroups); - _9.FragColor = float(gl_SubgroupID); - _9.FragColor = float(gl_SubgroupSize); - _9.FragColor = float(gl_SubgroupInvocationID); - subgroupMemoryBarrier(); - subgroupBarrier(); - subgroupMemoryBarrier(); - subgroupMemoryBarrierBuffer(); - subgroupMemoryBarrierShared(); - subgroupMemoryBarrierImage(); - bool elected = subgroupElect(); - _9.FragColor = vec4(gl_SubgroupEqMask).x; - _9.FragColor = vec4(gl_SubgroupGeMask).x; - _9.FragColor = vec4(gl_SubgroupGtMask).x; - _9.FragColor = vec4(gl_SubgroupLeMask).x; - _9.FragColor = vec4(gl_SubgroupLtMask).x; - vec4 broadcasted = subgroupBroadcast(vec4(10.0), 8u); - vec3 first = subgroupBroadcastFirst(vec3(20.0)); - uvec4 ballot_value = subgroupBallot(true); - bool inverse_ballot_value = subgroupInverseBallot(ballot_value); - bool bit_extracted = subgroupBallotBitExtract(uvec4(10u), 8u); - uint bit_count = subgroupBallotBitCount(ballot_value); - uint inclusive_bit_count = subgroupBallotInclusiveBitCount(ballot_value); - uint exclusive_bit_count = subgroupBallotExclusiveBitCount(ballot_value); - uint lsb = subgroupBallotFindLSB(ballot_value); - uint msb = subgroupBallotFindMSB(ballot_value); - bool has_all = subgroupAll(true); - bool has_any = subgroupAny(true); - bool has_equal_bool = subgroupAllEqual(true); - bool has_equal_T = subgroupAllEqual(uvec3(5u)); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/frag/16bit-constants.invalid.frag b/third_party/spirv-cross/reference/shaders-no-opt/frag/16bit-constants.invalid.frag deleted file mode 100644 index a3037d15ee..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/frag/16bit-constants.invalid.frag +++ /dev/null @@ -1,27 +0,0 @@ -#version 450 -#if defined(GL_AMD_gpu_shader_half_float) -#extension GL_AMD_gpu_shader_half_float : require -#elif defined(GL_NV_gpu_shader5) -#extension GL_NV_gpu_shader5 : require -#else -#error No extension available for FP16. -#endif -#if defined(GL_AMD_gpu_shader_int16) -#extension GL_AMD_gpu_shader_int16 : require -#elif defined(GL_NV_gpu_shader5) -#extension GL_NV_gpu_shader5 : require -#else -#error No extension available for Int16. -#endif - -layout(location = 0) out float16_t foo; -layout(location = 1) out int16_t bar; -layout(location = 2) out uint16_t baz; - -void main() -{ - foo = float16_t(1.0); - bar = 2s; - baz = 3us; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/frag/fp16.invalid.desktop.frag b/third_party/spirv-cross/reference/shaders-no-opt/frag/fp16.invalid.desktop.frag deleted file mode 100644 index 55f5235e0f..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/frag/fp16.invalid.desktop.frag +++ /dev/null @@ -1,159 +0,0 @@ -#version 450 -#if defined(GL_AMD_gpu_shader_half_float) -#extension GL_AMD_gpu_shader_half_float : require -#elif defined(GL_NV_gpu_shader5) -#extension GL_NV_gpu_shader5 : require -#else -#error No extension available for FP16. -#endif - -struct ResType -{ - f16vec4 _m0; - ivec4 _m1; -}; - -layout(location = 3) in f16vec4 v4; -layout(location = 2) in f16vec3 v3; -layout(location = 0) in float16_t v1; -layout(location = 1) in f16vec2 v2; - -f16mat2 test_mat2(f16vec2 a, f16vec2 b, f16vec2 c, f16vec2 d) -{ - return f16mat2(f16vec2(a), f16vec2(b)) * f16mat2(f16vec2(c), f16vec2(d)); -} - -f16mat3 test_mat3(f16vec3 a, f16vec3 b, f16vec3 c, f16vec3 d, f16vec3 e, f16vec3 f) -{ - return f16mat3(f16vec3(a), f16vec3(b), f16vec3(c)) * f16mat3(f16vec3(d), f16vec3(e), f16vec3(f)); -} - -void test_constants() -{ - float16_t a = float16_t(1.0); - float16_t b = float16_t(1.5); - float16_t c = float16_t(-1.5); - float16_t d = float16_t(0.0 / 0.0); - float16_t e = float16_t(1.0 / 0.0); - float16_t f = float16_t(-1.0 / 0.0); - float16_t g = float16_t(1014.0); - float16_t h = float16_t(9.5367431640625e-07); -} - -float16_t test_result() -{ - return float16_t(1.0); -} - -void test_conversions() -{ - float16_t one = test_result(); - int a = int(one); - uint b = uint(one); - bool c = !(one == float16_t(0.0)); - float d = float(one); - double e = double(one); - float16_t a2 = float16_t(a); - float16_t b2 = float16_t(b); - float16_t c2 = float16_t(c); - float16_t d2 = float16_t(d); - float16_t e2 = float16_t(e); -} - -void test_builtins() -{ - f16vec4 res = radians(v4); - res = degrees(v4); - res = sin(v4); - res = cos(v4); - res = tan(v4); - res = asin(v4); - res = atan(v4, v3.xyzz); - res = atan(v4); - res = sinh(v4); - res = cosh(v4); - res = tanh(v4); - res = asinh(v4); - res = acosh(v4); - res = atanh(v4); - res = pow(v4, v4); - res = exp(v4); - res = log(v4); - res = exp2(v4); - res = log2(v4); - res = sqrt(v4); - res = inversesqrt(v4); - res = abs(v4); - res = sign(v4); - res = floor(v4); - res = trunc(v4); - res = round(v4); - res = roundEven(v4); - res = ceil(v4); - res = fract(v4); - res = mod(v4, v4); - f16vec4 tmp; - f16vec4 _231 = modf(v4, tmp); - res = _231; - res = min(v4, v4); - res = max(v4, v4); - res = clamp(v4, v4, v4); - res = mix(v4, v4, v4); - res = mix(v4, v4, lessThan(v4, v4)); - res = step(v4, v4); - res = smoothstep(v4, v4, v4); - bvec4 btmp = isnan(v4); - btmp = isinf(v4); - res = fma(v4, v4, v4); - ResType _275; - _275._m0 = frexp(v4, _275._m1); - ivec4 itmp = _275._m1; - res = _275._m0; - res = ldexp(res, itmp); - uint pack0 = packFloat2x16(v4.xy); - uint pack1 = packFloat2x16(v4.zw); - res = f16vec4(unpackFloat2x16(pack0), unpackFloat2x16(pack1)); - float16_t t0 = length(v4); - t0 = distance(v4, v4); - t0 = dot(v4, v4); - f16vec3 res3 = cross(v3, v3); - res = normalize(v4); - res = faceforward(v4, v4, v4); - res = reflect(v4, v4); - res = refract(v4, v4, v1); - btmp = lessThan(v4, v4); - btmp = lessThanEqual(v4, v4); - btmp = greaterThan(v4, v4); - btmp = greaterThanEqual(v4, v4); - btmp = equal(v4, v4); - btmp = not(equal(v4, v4)); - res = dFdx(v4); - res = dFdy(v4); - res = dFdxFine(v4); - res = dFdyFine(v4); - res = dFdxCoarse(v4); - res = dFdyCoarse(v4); - res = fwidth(v4); - res = fwidthFine(v4); - res = fwidthCoarse(v4); -} - -void main() -{ - f16vec2 param = v2; - f16vec2 param_1 = v2; - f16vec2 param_2 = v3.xy; - f16vec2 param_3 = v3.xy; - f16mat2 m0 = test_mat2(param, param_1, param_2, param_3); - f16vec3 param_4 = v3; - f16vec3 param_5 = v3; - f16vec3 param_6 = v3; - f16vec3 param_7 = v4.xyz; - f16vec3 param_8 = v4.xyz; - f16vec3 param_9 = v4.yzw; - f16mat3 m1 = test_mat3(param_4, param_5, param_6, param_7, param_8, param_9); - test_constants(); - test_conversions(); - test_builtins(); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/frag/frag-fully-covered.frag b/third_party/spirv-cross/reference/shaders-no-opt/frag/frag-fully-covered.frag deleted file mode 100644 index 0f22a7de2a..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/frag/frag-fully-covered.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 -#extension GL_NV_conservative_raster_underestimation : require - -layout(location = 0) out vec4 FragColor; - -void main() -{ - if (!gl_FragFullyCoveredNV) - { - discard; - } - FragColor = vec4(1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/frag/fragmentMaskFetch_subpassInput.vk.nocompat.invalid.frag.vk b/third_party/spirv-cross/reference/shaders-no-opt/frag/fragmentMaskFetch_subpassInput.vk.nocompat.invalid.frag.vk deleted file mode 100644 index 4aaf397a0f..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/frag/fragmentMaskFetch_subpassInput.vk.nocompat.invalid.frag.vk +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 -#extension GL_AMD_shader_fragment_mask : require - -layout(input_attachment_index = 0, set = 0, binding = 0) uniform subpassInputMS t; - -void main() -{ - vec4 test2 = fragmentFetchAMD(t, 4u); - uint testi2 = fragmentMaskFetchAMD(t); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/frag/fs.invalid.frag b/third_party/spirv-cross/reference/shaders-no-opt/frag/fs.invalid.frag deleted file mode 100644 index aecf69eba7..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/frag/fs.invalid.frag +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 -#extension GL_AMD_shader_fragment_mask : require -#extension GL_AMD_shader_explicit_vertex_parameter : require - -layout(binding = 0) uniform sampler2DMS texture1; - -layout(location = 0) __explicitInterpAMD in vec4 vary; - -void main() -{ - uint testi1 = fragmentMaskFetchAMD(texture1, ivec2(0)); - vec4 test1 = fragmentFetchAMD(texture1, ivec2(1), 2u); - vec4 pos = interpolateAtVertexAMD(vary, 0u); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/frag/image-gather.frag b/third_party/spirv-cross/reference/shaders-no-opt/frag/image-gather.frag deleted file mode 100644 index 1baccdfa53..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/frag/image-gather.frag +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler2D uSamp; -layout(binding = 1) uniform sampler2DShadow uSampShadow; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec3 vUV; - -void main() -{ - FragColor = textureGather(uSamp, vUV.xy); - FragColor += textureGather(uSamp, vUV.xy, 1); - FragColor += textureGather(uSampShadow, vUV.xy, vUV.z); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/frag/multi-dimensional.desktop.invalid.flatten_dim.frag b/third_party/spirv-cross/reference/shaders-no-opt/frag/multi-dimensional.desktop.invalid.flatten_dim.frag deleted file mode 100644 index ef6bb526ab..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/frag/multi-dimensional.desktop.invalid.flatten_dim.frag +++ /dev/null @@ -1,24 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler2D uTextures[2 * 3 * 1]; - -layout(location = 1) in vec2 vUV; -layout(location = 0) out vec4 FragColor; -layout(location = 0) flat in int vIndex; - -void main() -{ - vec4 values3[2 * 3 * 1]; - for (int z = 0; z < 2; z++) - { - for (int y = 0; y < 3; y++) - { - for (int x = 0; x < 1; x++) - { - values3[z * 3 * 1 + y * 1 + x] = texture(uTextures[z * 3 * 1 + y * 1 + x], vUV); - } - } - } - FragColor = (values3[1 * 3 * 1 + 2 * 1 + 0] + values3[0 * 3 * 1 + 2 * 1 + 0]) + values3[(vIndex + 1) * 3 * 1 + 2 * 1 + vIndex]; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/frag/nonuniform-constructor.vk.nocompat.frag.vk b/third_party/spirv-cross/reference/shaders-no-opt/frag/nonuniform-constructor.vk.nocompat.frag.vk deleted file mode 100644 index ab58862ffd..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/frag/nonuniform-constructor.vk.nocompat.frag.vk +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 -#extension GL_EXT_nonuniform_qualifier : require - -layout(set = 0, binding = 0) uniform texture2D uTex[]; -layout(set = 1, binding = 0) uniform sampler Immut; - -layout(location = 0) out vec4 FragColor; -layout(location = 1) flat in int vIndex; -layout(location = 0) in vec2 vUV; - -void main() -{ - FragColor = texture(nonuniformEXT(sampler2D(uTex[vIndex], Immut)), vUV); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/frag/pixel-interlock-simple-callstack.frag b/third_party/spirv-cross/reference/shaders-no-opt/frag/pixel-interlock-simple-callstack.frag deleted file mode 100644 index 151ed01d4b..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/frag/pixel-interlock-simple-callstack.frag +++ /dev/null @@ -1,34 +0,0 @@ -#version 450 -#extension GL_ARB_fragment_shader_interlock : require -layout(pixel_interlock_ordered) in; - -layout(binding = 1, std430) buffer SSBO1 -{ - uint values1[]; -} _14; - -layout(binding = 0, std430) buffer SSBO0 -{ - uint values0[]; -} _35; - -void callee2() -{ - int _25 = int(gl_FragCoord.x); - _14.values1[_25]++; -} - -void callee() -{ - int _38 = int(gl_FragCoord.x); - _35.values0[_38]++; - callee2(); -} - -void main() -{ - beginInvocationInterlockARB(); - callee(); - endInvocationInterlockARB(); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/frag/scalar-block-layout-ubo-std430.vk.nocompat.invalid.frag.vk b/third_party/spirv-cross/reference/shaders-no-opt/frag/scalar-block-layout-ubo-std430.vk.nocompat.invalid.frag.vk deleted file mode 100644 index 434cb3d3d9..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/frag/scalar-block-layout-ubo-std430.vk.nocompat.invalid.frag.vk +++ /dev/null @@ -1,24 +0,0 @@ -#version 450 -#extension GL_EXT_scalar_block_layout : require - -layout(set = 0, binding = 0, std430) uniform UBO -{ - float a[1024]; - vec3 b[2]; -} _17; - -layout(set = 0, binding = 1, std430) uniform UBOEnhancedLayout -{ - layout(offset = 0) float c[1024]; - layout(offset = 4096) vec3 d[2]; - layout(offset = 10000) float e; -} _30; - -layout(location = 0) out float FragColor; -layout(location = 0) flat in int vIndex; - -void main() -{ - FragColor = (_17.a[vIndex] + _30.c[vIndex]) + _30.e; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/frag/sparse-texture-clamp.desktop.frag b/third_party/spirv-cross/reference/shaders-no-opt/frag/sparse-texture-clamp.desktop.frag deleted file mode 100644 index df0daa79de..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/frag/sparse-texture-clamp.desktop.frag +++ /dev/null @@ -1,46 +0,0 @@ -#version 450 -#extension GL_ARB_sparse_texture2 : require -#extension GL_ARB_sparse_texture_clamp : require - -struct ResType -{ - int _m0; - vec4 _m1; -}; - -layout(binding = 0) uniform sampler2D uSamp; - -layout(location = 0) in vec2 vUV; - -void main() -{ - int _66; - vec4 _67; - _66 = sparseTextureClampARB(uSamp, vUV, 1.0, _67, 2.0); - ResType _25 = ResType(_66, _67); - vec4 texel = _25._m1; - int code = _25._m0; - texel = textureClampARB(uSamp, vUV, 1.0, 2.0); - int _68; - vec4 _69; - _68 = sparseTextureOffsetClampARB(uSamp, vUV, ivec2(1, 2), 1.0, _69, 2.0); - ResType _37 = ResType(_68, _69); - texel = _37._m1; - code = _37._m0; - texel = textureOffsetClampARB(uSamp, vUV, ivec2(1, 2), 1.0, 2.0); - int _70; - vec4 _71; - _70 = sparseTextureGradClampARB(uSamp, vUV, vec2(1.0), vec2(2.0), 1.0, _71); - ResType _47 = ResType(_70, _71); - texel = _47._m1; - code = _47._m0; - texel = textureGradClampARB(uSamp, vUV, vec2(1.0), vec2(2.0), 1.0); - int _72; - vec4 _73; - _72 = sparseTextureGradOffsetClampARB(uSamp, vUV, vec2(1.0), vec2(2.0), ivec2(-1, -2), 1.0, _73); - ResType _58 = ResType(_72, _73); - texel = _58._m1; - code = _58._m0; - texel = textureGradOffsetClampARB(uSamp, vUV, vec2(1.0), vec2(2.0), ivec2(-1, -2), 1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/frag/sparse-texture-feedback.desktop.frag b/third_party/spirv-cross/reference/shaders-no-opt/frag/sparse-texture-feedback.desktop.frag deleted file mode 100644 index 7faa226430..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/frag/sparse-texture-feedback.desktop.frag +++ /dev/null @@ -1,105 +0,0 @@ -#version 450 -#extension GL_ARB_sparse_texture2 : require -#extension GL_ARB_sparse_texture_clamp : require - -struct ResType -{ - int _m0; - vec4 _m1; -}; - -layout(binding = 0) uniform sampler2D uSamp; -layout(binding = 1) uniform sampler2DMS uSampMS; -layout(binding = 2, rgba8) uniform readonly image2D uImage; -layout(binding = 3, rgba8) uniform readonly image2DMS uImageMS; - -layout(location = 0) in vec2 vUV; - -void main() -{ - int _144; - vec4 _145; - _144 = sparseTextureARB(uSamp, vUV, _145); - ResType _24 = ResType(_144, _145); - vec4 texel = _24._m1; - bool ret = sparseTexelsResidentARB(_24._m0); - int _146; - vec4 _147; - _146 = sparseTextureARB(uSamp, vUV, _147, 1.10000002384185791015625); - ResType _31 = ResType(_146, _147); - texel = _31._m1; - ret = sparseTexelsResidentARB(_31._m0); - int _148; - vec4 _149; - _148 = sparseTextureLodARB(uSamp, vUV, 1.0, _149); - ResType _38 = ResType(_148, _149); - texel = _38._m1; - ret = sparseTexelsResidentARB(_38._m0); - int _150; - vec4 _151; - _150 = sparseTextureOffsetARB(uSamp, vUV, ivec2(1), _151); - ResType _47 = ResType(_150, _151); - texel = _47._m1; - ret = sparseTexelsResidentARB(_47._m0); - int _152; - vec4 _153; - _152 = sparseTextureOffsetARB(uSamp, vUV, ivec2(2), _153, 0.5); - ResType _56 = ResType(_152, _153); - texel = _56._m1; - ret = sparseTexelsResidentARB(_56._m0); - int _154; - vec4 _155; - _154 = sparseTexelFetchARB(uSamp, ivec2(vUV), 1, _155); - ResType _64 = ResType(_154, _155); - texel = _64._m1; - ret = sparseTexelsResidentARB(_64._m0); - int _156; - vec4 _157; - _156 = sparseTexelFetchARB(uSampMS, ivec2(vUV), 2, _157); - ResType _76 = ResType(_156, _157); - texel = _76._m1; - ret = sparseTexelsResidentARB(_76._m0); - int _158; - vec4 _159; - _158 = sparseTexelFetchOffsetARB(uSamp, ivec2(vUV), 1, ivec2(2, 3), _159); - ResType _86 = ResType(_158, _159); - texel = _86._m1; - ret = sparseTexelsResidentARB(_86._m0); - int _160; - vec4 _161; - _160 = sparseTextureLodOffsetARB(uSamp, vUV, 1.5, ivec2(2, 3), _161); - ResType _93 = ResType(_160, _161); - texel = _93._m1; - ret = sparseTexelsResidentARB(_93._m0); - int _162; - vec4 _163; - _162 = sparseTextureGradARB(uSamp, vUV, vec2(1.0), vec2(3.0), _163); - ResType _102 = ResType(_162, _163); - texel = _102._m1; - ret = sparseTexelsResidentARB(_102._m0); - int _164; - vec4 _165; - _164 = sparseTextureGradOffsetARB(uSamp, vUV, vec2(1.0), vec2(3.0), ivec2(-2, -3), _165); - ResType _111 = ResType(_164, _165); - texel = _111._m1; - ret = sparseTexelsResidentARB(_111._m0); - int _166; - vec4 _167; - _166 = sparseTextureClampARB(uSamp, vUV, 4.0, _167); - ResType _118 = ResType(_166, _167); - texel = _118._m1; - ret = sparseTexelsResidentARB(_118._m0); - int _168; - vec4 _169; - _168 = sparseImageLoadARB(uImage, ivec2(vUV), _169); - ResType _128 = ResType(_168, _169); - texel = _128._m1; - ret = sparseTexelsResidentARB(_128._m0); - int _170; - vec4 _171; - _170 = sparseImageLoadARB(uImageMS, ivec2(vUV), 1, _171); - ResType _138 = ResType(_170, _171); - texel = _138._m1; - ret = sparseTexelsResidentARB(_138._m0); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/frag/subpass-input.framebuffer-fetch.nocompat.frag b/third_party/spirv-cross/reference/shaders-no-opt/frag/subpass-input.framebuffer-fetch.nocompat.frag deleted file mode 100644 index 00a146c4d3..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/frag/subpass-input.framebuffer-fetch.nocompat.frag +++ /dev/null @@ -1,18 +0,0 @@ -#version 310 es -#extension GL_EXT_shader_framebuffer_fetch : require -precision mediump float; -precision highp int; - -mediump vec4 uSubpass0; -mediump vec4 uSubpass1; - -layout(location = 0) inout vec3 FragColor; -layout(location = 1) inout vec4 FragColor2; - -void main() -{ - uSubpass0.xyz = FragColor; - uSubpass1 = FragColor2; - FragColor = uSubpass0.xyz + uSubpass1.xyz; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/frag/subpass-input.framebuffer-fetch.nocompat.framebuffer-fetch-noncoherent.frag b/third_party/spirv-cross/reference/shaders-no-opt/frag/subpass-input.framebuffer-fetch.nocompat.framebuffer-fetch-noncoherent.frag deleted file mode 100644 index 8600549859..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/frag/subpass-input.framebuffer-fetch.nocompat.framebuffer-fetch-noncoherent.frag +++ /dev/null @@ -1,18 +0,0 @@ -#version 310 es -#extension GL_EXT_shader_framebuffer_fetch_non_coherent : require -precision mediump float; -precision highp int; - -mediump vec4 uSubpass0; -mediump vec4 uSubpass1; - -layout(location = 0, noncoherent) inout vec3 FragColor; -layout(location = 1, noncoherent) inout vec4 FragColor2; - -void main() -{ - uSubpass0.xyz = FragColor; - uSubpass1 = FragColor2; - FragColor = uSubpass0.xyz + uSubpass1.xyz; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/frag/subpass-input.framebuffer-fetch.nocompat.legacy.frag b/third_party/spirv-cross/reference/shaders-no-opt/frag/subpass-input.framebuffer-fetch.nocompat.legacy.frag deleted file mode 100644 index d1b7265121..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/frag/subpass-input.framebuffer-fetch.nocompat.legacy.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 100 -#extension GL_EXT_shader_framebuffer_fetch : require -#extension GL_EXT_draw_buffers : require -precision mediump float; -precision highp int; - -mediump vec4 uSubpass0; -mediump vec4 uSubpass1; - -void main() -{ - uSubpass0 = gl_LastFragData[0]; - uSubpass1 = gl_LastFragData[1]; - gl_FragData[0] = uSubpass0.xyz + uSubpass1.xyz; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/frag/subpass-input.framebuffer-fetch.nocompat.legacy.framebuffer-fetch-noncoherent.frag b/third_party/spirv-cross/reference/shaders-no-opt/frag/subpass-input.framebuffer-fetch.nocompat.legacy.framebuffer-fetch-noncoherent.frag deleted file mode 100644 index c0a40571b0..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/frag/subpass-input.framebuffer-fetch.nocompat.legacy.framebuffer-fetch-noncoherent.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 100 -#extension GL_EXT_shader_framebuffer_fetch_non_coherent : require -#extension GL_EXT_draw_buffers : require -precision mediump float; -precision highp int; - -mediump vec4 uSubpass0; -mediump vec4 uSubpass1; - -void main() -{ - uSubpass0 = gl_LastFragData[0]; - uSubpass1 = gl_LastFragData[1]; - gl_FragData[0] = uSubpass0.xyz + uSubpass1.xyz; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/frag/variables.zero-initialize.frag b/third_party/spirv-cross/reference/shaders-no-opt/frag/variables.zero-initialize.frag deleted file mode 100644 index c902723508..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/frag/variables.zero-initialize.frag +++ /dev/null @@ -1,28 +0,0 @@ -#version 450 - -struct Foo -{ - int a; -}; - -layout(location = 0) in vec4 vColor; -layout(location = 0) out vec4 FragColor; -int uninit_int = 0; -ivec4 uninit_vector = ivec4(0); -mat4 uninit_matrix = mat4(vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); -Foo uninit_foo = Foo(0); - -void main() -{ - int uninit_function_int = 0; - if (vColor.x > 10.0) - { - uninit_function_int = 10; - } - else - { - uninit_function_int = 20; - } - FragColor = vColor; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/legacy/frag/switch-single-case-multiple-exit-cfg.legacy.asm.frag b/third_party/spirv-cross/reference/shaders-no-opt/legacy/frag/switch-single-case-multiple-exit-cfg.legacy.asm.frag deleted file mode 100644 index be41ceef0f..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/legacy/frag/switch-single-case-multiple-exit-cfg.legacy.asm.frag +++ /dev/null @@ -1,24 +0,0 @@ -#version 100 -precision mediump float; -precision highp int; - -vec2 _19; - -void main() -{ - highp vec2 _30; - for (int spvDummy15 = 0; spvDummy15 < 1; spvDummy15++) - { - if (gl_FragCoord.x != gl_FragCoord.x) - { - _30 = _19; - break; - } - highp vec2 _29 = _19; - _29.y = _19.y; - _30 = _29; - break; - } - gl_FragData[0] = vec4(_30, 1.0, 1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/vert/io-blocks.force-flattened-io.vert b/third_party/spirv-cross/reference/shaders-no-opt/vert/io-blocks.force-flattened-io.vert deleted file mode 100644 index 604de8a2cc..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/vert/io-blocks.force-flattened-io.vert +++ /dev/null @@ -1,25 +0,0 @@ -#version 450 - -struct Foo -{ - vec4 bar[2]; - vec4 baz[2]; -}; - -out vec4 _14_foo_bar[2]; -out vec4 _14_foo_baz[2]; -out vec4 _14_foo2_bar[2]; -out vec4 _14_foo2_baz[2]; -out vec4 foo3_bar[2]; -out vec4 foo3_baz[2]; - -void main() -{ - _14_foo_bar[0] = vec4(1.0); - _14_foo_baz[1] = vec4(2.0); - _14_foo2_bar[0] = vec4(3.0); - _14_foo2_baz[1] = vec4(4.0); - foo3_bar[0] = vec4(5.0); - foo3_baz[1] = vec4(6.0); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/vert/pass-array-by-value.vert b/third_party/spirv-cross/reference/shaders-no-opt/vert/pass-array-by-value.vert deleted file mode 100644 index 45d4210819..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/vert/pass-array-by-value.vert +++ /dev/null @@ -1,27 +0,0 @@ -#version 310 es - -layout(location = 0) in int Index1; -layout(location = 1) in int Index2; - -vec4 consume_constant_arrays2(vec4 positions[4], vec4 positions2[4]) -{ - vec4 indexable[4] = positions; - vec4 indexable_1[4] = positions2; - return indexable[Index1] + indexable_1[Index2]; -} - -vec4 consume_constant_arrays(vec4 positions[4], vec4 positions2[4]) -{ - return consume_constant_arrays2(positions, positions2); -} - -void main() -{ - vec4 LUT2[4]; - LUT2[0] = vec4(10.0); - LUT2[1] = vec4(11.0); - LUT2[2] = vec4(12.0); - LUT2[3] = vec4(13.0); - gl_Position = consume_constant_arrays(vec4[](vec4(0.0), vec4(1.0), vec4(2.0), vec4(3.0)), LUT2); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/vulkan/frag/shading-rate.vk.nocompat.frag.vk b/third_party/spirv-cross/reference/shaders-no-opt/vulkan/frag/shading-rate.vk.nocompat.frag.vk deleted file mode 100644 index e5c67115ca..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/vulkan/frag/shading-rate.vk.nocompat.frag.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 -#extension GL_EXT_fragment_shading_rate : require - -layout(location = 0) out uint FragColor; - -void main() -{ - FragColor = uint(gl_ShadingRateEXT); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/vulkan/frag/spec-constant.vk.frag b/third_party/spirv-cross/reference/shaders-no-opt/vulkan/frag/spec-constant.vk.frag deleted file mode 100644 index 2ae3b6b54f..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/vulkan/frag/spec-constant.vk.frag +++ /dev/null @@ -1,131 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -#ifndef SPIRV_CROSS_CONSTANT_ID_1 -#define SPIRV_CROSS_CONSTANT_ID_1 1.0 -#endif -const float a = SPIRV_CROSS_CONSTANT_ID_1; -#ifndef SPIRV_CROSS_CONSTANT_ID_2 -#define SPIRV_CROSS_CONSTANT_ID_2 2.0 -#endif -const float b = SPIRV_CROSS_CONSTANT_ID_2; -#ifndef SPIRV_CROSS_CONSTANT_ID_3 -#define SPIRV_CROSS_CONSTANT_ID_3 3 -#endif -const int c = SPIRV_CROSS_CONSTANT_ID_3; -const uint _18 = (uint(c) + 0u); -const int _21 = (-c); -const int _23 = (~c); -#ifndef SPIRV_CROSS_CONSTANT_ID_4 -#define SPIRV_CROSS_CONSTANT_ID_4 4 -#endif -const int d = SPIRV_CROSS_CONSTANT_ID_4; -const int _26 = (c + d); -const int _28 = (c - d); -const int _30 = (c * d); -const int _32 = (c / d); -#ifndef SPIRV_CROSS_CONSTANT_ID_5 -#define SPIRV_CROSS_CONSTANT_ID_5 5u -#endif -const uint e = SPIRV_CROSS_CONSTANT_ID_5; -#ifndef SPIRV_CROSS_CONSTANT_ID_6 -#define SPIRV_CROSS_CONSTANT_ID_6 6u -#endif -const uint f = SPIRV_CROSS_CONSTANT_ID_6; -const uint _36 = (e / f); -const int _38 = (c % d); -const uint _40 = (e % f); -const int _42 = (c >> d); -const uint _44 = (e >> f); -const int _46 = (c << d); -const int _48 = (c | d); -const int _50 = (c ^ d); -const int _52 = (c & d); -#ifndef SPIRV_CROSS_CONSTANT_ID_7 -#define SPIRV_CROSS_CONSTANT_ID_7 false -#endif -const bool g = SPIRV_CROSS_CONSTANT_ID_7; -#ifndef SPIRV_CROSS_CONSTANT_ID_8 -#define SPIRV_CROSS_CONSTANT_ID_8 true -#endif -const bool h = SPIRV_CROSS_CONSTANT_ID_8; -const bool _58 = (g || h); -const bool _60 = (g && h); -const bool _62 = (!g); -const bool _64 = (g == h); -const bool _66 = (g != h); -const bool _68 = (c == d); -const bool _70 = (c != d); -const bool _72 = (c < d); -const bool _74 = (e < f); -const bool _76 = (c > d); -const bool _78 = (e > f); -const bool _80 = (c <= d); -const bool _82 = (e <= f); -const bool _84 = (c >= d); -const bool _86 = (e >= f); -const int _92 = int(e + 0u); -const bool _94 = (c != int(0u)); -const bool _96 = (e != 0u); -const int _100 = int(g); -const uint _103 = uint(g); -const int _118 = (c + 3); -const int _127 = (c + 2); -const int _135 = (d + 2); - -struct Foo -{ - float elems[_135]; -}; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - float t0 = a; - float t1 = b; - mediump uint c0 = _18; - mediump int c1 = _21; - mediump int c2 = _23; - mediump int c3 = _26; - mediump int c4 = _28; - mediump int c5 = _30; - mediump int c6 = _32; - mediump uint c7 = _36; - mediump int c8 = _38; - mediump uint c9 = _40; - mediump int c10 = _42; - mediump uint c11 = _44; - mediump int c12 = _46; - mediump int c13 = _48; - mediump int c14 = _50; - mediump int c15 = _52; - bool c16 = _58; - bool c17 = _60; - bool c18 = _62; - bool c19 = _64; - bool c20 = _66; - bool c21 = _68; - bool c22 = _70; - bool c23 = _72; - bool c24 = _74; - bool c25 = _76; - bool c26 = _78; - bool c27 = _80; - bool c28 = _82; - bool c29 = _84; - bool c30 = _86; - mediump int c31 = c8 + c3; - mediump int c32 = _92; - bool c33 = _94; - bool c34 = _96; - mediump int c35 = _100; - mediump uint c36 = _103; - float c37 = float(g); - float vec0[_118][8]; - float vec1[_127]; - Foo foo; - FragColor = ((vec4(t0 + t1) + vec4(vec0[0][0])) + vec4(vec1[0])) + vec4(foo.elems[c]); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/vulkan/frag/spec-constant.vk.frag.vk b/third_party/spirv-cross/reference/shaders-no-opt/vulkan/frag/spec-constant.vk.frag.vk deleted file mode 100644 index c5ae60b276..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/vulkan/frag/spec-constant.vk.frag.vk +++ /dev/null @@ -1,107 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(constant_id = 1) const float a = 1.0; -layout(constant_id = 2) const float b = 2.0; -layout(constant_id = 3) const int c = 3; -const uint _18 = (uint(c) + 0u); -const int _21 = (-c); -const int _23 = (~c); -layout(constant_id = 4) const int d = 4; -const int _26 = (c + d); -const int _28 = (c - d); -const int _30 = (c * d); -const int _32 = (c / d); -layout(constant_id = 5) const uint e = 5u; -layout(constant_id = 6) const uint f = 6u; -const uint _36 = (e / f); -const int _38 = (c % d); -const uint _40 = (e % f); -const int _42 = (c >> d); -const uint _44 = (e >> f); -const int _46 = (c << d); -const int _48 = (c | d); -const int _50 = (c ^ d); -const int _52 = (c & d); -layout(constant_id = 7) const bool g = false; -layout(constant_id = 8) const bool h = true; -const bool _58 = (g || h); -const bool _60 = (g && h); -const bool _62 = (!g); -const bool _64 = (g == h); -const bool _66 = (g != h); -const bool _68 = (c == d); -const bool _70 = (c != d); -const bool _72 = (c < d); -const bool _74 = (e < f); -const bool _76 = (c > d); -const bool _78 = (e > f); -const bool _80 = (c <= d); -const bool _82 = (e <= f); -const bool _84 = (c >= d); -const bool _86 = (e >= f); -const int _92 = int(e + 0u); -const bool _94 = (c != int(0u)); -const bool _96 = (e != 0u); -const int _100 = int(g); -const uint _103 = uint(g); -const int _118 = (c + 3); -const int _127 = (c + 2); -const int _135 = (d + 2); - -struct Foo -{ - float elems[_135]; -}; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - float t0 = a; - float t1 = b; - mediump uint c0 = _18; - mediump int c1 = _21; - mediump int c2 = _23; - mediump int c3 = _26; - mediump int c4 = _28; - mediump int c5 = _30; - mediump int c6 = _32; - mediump uint c7 = _36; - mediump int c8 = _38; - mediump uint c9 = _40; - mediump int c10 = _42; - mediump uint c11 = _44; - mediump int c12 = _46; - mediump int c13 = _48; - mediump int c14 = _50; - mediump int c15 = _52; - bool c16 = _58; - bool c17 = _60; - bool c18 = _62; - bool c19 = _64; - bool c20 = _66; - bool c21 = _68; - bool c22 = _70; - bool c23 = _72; - bool c24 = _74; - bool c25 = _76; - bool c26 = _78; - bool c27 = _80; - bool c28 = _82; - bool c29 = _84; - bool c30 = _86; - mediump int c31 = c8 + c3; - mediump int c32 = _92; - bool c33 = _94; - bool c34 = _96; - mediump int c35 = _100; - mediump uint c36 = _103; - float c37 = float(g); - float vec0[_118][8]; - float vec1[_127]; - Foo foo; - FragColor = ((vec4(t0 + t1) + vec4(vec0[0][0])) + vec4(vec1[0])) + vec4(foo.elems[c]); -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/vulkan/frag/ubo-offset-out-of-order.vk.nocompat.frag.vk b/third_party/spirv-cross/reference/shaders-no-opt/vulkan/frag/ubo-offset-out-of-order.vk.nocompat.frag.vk deleted file mode 100644 index 380b746591..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/vulkan/frag/ubo-offset-out-of-order.vk.nocompat.frag.vk +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 - -layout(set = 0, binding = 0, std140) uniform UBO -{ - layout(offset = 16) mat4 m; - layout(offset = 0) vec4 v; -} _13; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 vColor; - -void main() -{ - FragColor = (_13.m * vColor) + _13.v; -} - diff --git a/third_party/spirv-cross/reference/shaders-no-opt/vulkan/vert/primitive-shading-rate.vk.nocompat.vert.vk b/third_party/spirv-cross/reference/shaders-no-opt/vulkan/vert/primitive-shading-rate.vk.nocompat.vert.vk deleted file mode 100644 index 4736723322..0000000000 --- a/third_party/spirv-cross/reference/shaders-no-opt/vulkan/vert/primitive-shading-rate.vk.nocompat.vert.vk +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 -#extension GL_EXT_fragment_shading_rate : require - -void main() -{ - gl_PrimitiveShadingRateEXT = 3; - gl_Position = vec4(1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders-reflection/asm/aliased-entry-point-names.asm.multi.json b/third_party/spirv-cross/reference/shaders-reflection/asm/aliased-entry-point-names.asm.multi.json deleted file mode 100644 index 666167af4a..0000000000 --- a/third_party/spirv-cross/reference/shaders-reflection/asm/aliased-entry-point-names.asm.multi.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "entryPoints" : [ - { - "name" : "maim", - "mode" : "vert" - }, - { - "name" : "main", - "mode" : "vert" - }, - { - "name" : "maim", - "mode" : "frag" - }, - { - "name" : "main", - "mode" : "frag" - } - ], - "types" : { - "_8" : { - "name" : "_8", - "members" : [ - { - "name" : "_m0", - "type" : "vec4" - }, - { - "name" : "_m1", - "type" : "float" - }, - { - "name" : "_m2", - "type" : "float", - "array" : [ - 1 - ], - "array_size_is_literal" : [ - true - ] - }, - { - "name" : "_m3", - "type" : "float", - "array" : [ - 1 - ], - "array_size_is_literal" : [ - true - ] - } - ] - } - } -} \ No newline at end of file diff --git a/third_party/spirv-cross/reference/shaders-reflection/asm/comp/pointer-to-array-of-physical-pointer.asm.comp.json b/third_party/spirv-cross/reference/shaders-reflection/asm/comp/pointer-to-array-of-physical-pointer.asm.comp.json deleted file mode 100644 index b9224eccdb..0000000000 --- a/third_party/spirv-cross/reference/shaders-reflection/asm/comp/pointer-to-array-of-physical-pointer.asm.comp.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "entryPoints" : [ - { - "name" : "main", - "mode" : "comp", - "workgroup_size" : [ - 1, - 1, - 1 - ], - "workgroup_size_is_spec_constant_id" : [ - false, - false, - false - ] - } - ], - "types" : { - "_3" : { - "name" : "Params", - "members" : [ - { - "name" : "x", - "type" : "float", - "offset" : 0 - }, - { - "name" : "y", - "type" : "_6", - "offset" : 16, - "physical_pointer" : true - } - ] - }, - "_4" : { - "name" : "IntBuf", - "members" : [ - { - "name" : "v", - "type" : "int", - "offset" : 0 - } - ] - }, - "_11" : { - "name" : "IntBuf", - "type" : "_4", - "physical_pointer" : true - }, - "_6" : { - "name" : "IntBuf", - "array" : [ - 3 - ], - "array_size_is_literal" : [ - true - ], - "type" : "_11", - "array_stride" : 16 - } - }, - "ubos" : [ - { - "type" : "_3", - "name" : "Params", - "block_size" : 24, - "set" : 0, - "binding" : 0 - } - ] -} \ No newline at end of file diff --git a/third_party/spirv-cross/reference/shaders-reflection/asm/op-source-glsl-ssbo-1.asm.comp.json b/third_party/spirv-cross/reference/shaders-reflection/asm/op-source-glsl-ssbo-1.asm.comp.json deleted file mode 100644 index 3b0c9868e5..0000000000 --- a/third_party/spirv-cross/reference/shaders-reflection/asm/op-source-glsl-ssbo-1.asm.comp.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "entryPoints" : [ - { - "name" : "main", - "mode" : "comp", - "workgroup_size" : [ - 1, - 1, - 1 - ], - "workgroup_size_is_spec_constant_id" : [ - false, - false, - false - ] - } - ], - "types" : { - "_5" : { - "name" : "SSBO0", - "members" : [ - { - "name" : "a", - "type" : "vec4", - "array" : [ - 0 - ], - "array_size_is_literal" : [ - true - ], - "offset" : 0, - "array_stride" : 16 - } - ] - } - }, - "ssbos" : [ - { - "type" : "_5", - "name" : "SSBO0", - "block_size" : 0, - "set" : 0, - "binding" : 0 - } - ] -} \ No newline at end of file diff --git a/third_party/spirv-cross/reference/shaders-reflection/asm/op-source-glsl-ssbo-2.asm.comp.json b/third_party/spirv-cross/reference/shaders-reflection/asm/op-source-glsl-ssbo-2.asm.comp.json deleted file mode 100644 index 80cf862227..0000000000 --- a/third_party/spirv-cross/reference/shaders-reflection/asm/op-source-glsl-ssbo-2.asm.comp.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "entryPoints" : [ - { - "name" : "main", - "mode" : "comp", - "workgroup_size" : [ - 1, - 1, - 1 - ], - "workgroup_size_is_spec_constant_id" : [ - false, - false, - false - ] - } - ], - "types" : { - "_4" : { - "name" : "SSBO0", - "members" : [ - { - "name" : "a", - "type" : "vec4", - "array" : [ - 0 - ], - "array_size_is_literal" : [ - true - ], - "offset" : 0, - "array_stride" : 16 - } - ] - }, - "_6" : { - "name" : "SSBO1", - "members" : [ - { - "name" : "b", - "type" : "vec4", - "array" : [ - 0 - ], - "array_size_is_literal" : [ - true - ], - "offset" : 0, - "array_stride" : 16 - } - ] - } - }, - "ssbos" : [ - { - "type" : "_4", - "name" : "SSBO0", - "block_size" : 0, - "set" : 0, - "binding" : 0 - }, - { - "type" : "_6", - "name" : "SSBO1", - "block_size" : 0, - "set" : 0, - "binding" : 1 - } - ] -} \ No newline at end of file diff --git a/third_party/spirv-cross/reference/shaders-reflection/asm/op-source-hlsl-uav-1.asm.comp.json b/third_party/spirv-cross/reference/shaders-reflection/asm/op-source-hlsl-uav-1.asm.comp.json deleted file mode 100644 index b34f85bb5a..0000000000 --- a/third_party/spirv-cross/reference/shaders-reflection/asm/op-source-hlsl-uav-1.asm.comp.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "entryPoints" : [ - { - "name" : "main", - "mode" : "comp", - "workgroup_size" : [ - 1, - 1, - 1 - ], - "workgroup_size_is_spec_constant_id" : [ - false, - false, - false - ] - } - ], - "types" : { - "_4" : { - "name" : "UAV0", - "members" : [ - { - "name" : "@data", - "type" : "vec4", - "array" : [ - 0 - ], - "array_size_is_literal" : [ - true - ], - "offset" : 0, - "array_stride" : 16 - } - ] - } - }, - "ssbos" : [ - { - "type" : "_4", - "name" : "UAV0", - "block_size" : 0, - "set" : 0, - "binding" : 0 - } - ] -} \ No newline at end of file diff --git a/third_party/spirv-cross/reference/shaders-reflection/asm/op-source-hlsl-uav-2.asm.comp.json b/third_party/spirv-cross/reference/shaders-reflection/asm/op-source-hlsl-uav-2.asm.comp.json deleted file mode 100644 index 052e3ba814..0000000000 --- a/third_party/spirv-cross/reference/shaders-reflection/asm/op-source-hlsl-uav-2.asm.comp.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "entryPoints" : [ - { - "name" : "main", - "mode" : "comp", - "workgroup_size" : [ - 1, - 1, - 1 - ], - "workgroup_size_is_spec_constant_id" : [ - false, - false, - false - ] - } - ], - "types" : { - "_4" : { - "name" : "UAV0", - "members" : [ - { - "name" : "@data", - "type" : "vec4", - "array" : [ - 0 - ], - "array_size_is_literal" : [ - true - ], - "offset" : 0, - "array_stride" : 16 - } - ] - } - }, - "ssbos" : [ - { - "type" : "_4", - "name" : "UAV0", - "block_size" : 0, - "set" : 0, - "binding" : 0 - }, - { - "type" : "_4", - "name" : "UAV1", - "block_size" : 0, - "set" : 0, - "binding" : 1 - } - ] -} \ No newline at end of file diff --git a/third_party/spirv-cross/reference/shaders-reflection/asm/op-source-none-ssbo-1.asm.comp.json b/third_party/spirv-cross/reference/shaders-reflection/asm/op-source-none-ssbo-1.asm.comp.json deleted file mode 100644 index 3b0c9868e5..0000000000 --- a/third_party/spirv-cross/reference/shaders-reflection/asm/op-source-none-ssbo-1.asm.comp.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "entryPoints" : [ - { - "name" : "main", - "mode" : "comp", - "workgroup_size" : [ - 1, - 1, - 1 - ], - "workgroup_size_is_spec_constant_id" : [ - false, - false, - false - ] - } - ], - "types" : { - "_5" : { - "name" : "SSBO0", - "members" : [ - { - "name" : "a", - "type" : "vec4", - "array" : [ - 0 - ], - "array_size_is_literal" : [ - true - ], - "offset" : 0, - "array_stride" : 16 - } - ] - } - }, - "ssbos" : [ - { - "type" : "_5", - "name" : "SSBO0", - "block_size" : 0, - "set" : 0, - "binding" : 0 - } - ] -} \ No newline at end of file diff --git a/third_party/spirv-cross/reference/shaders-reflection/asm/op-source-none-ssbo-2.asm.comp.json b/third_party/spirv-cross/reference/shaders-reflection/asm/op-source-none-ssbo-2.asm.comp.json deleted file mode 100644 index 80cf862227..0000000000 --- a/third_party/spirv-cross/reference/shaders-reflection/asm/op-source-none-ssbo-2.asm.comp.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "entryPoints" : [ - { - "name" : "main", - "mode" : "comp", - "workgroup_size" : [ - 1, - 1, - 1 - ], - "workgroup_size_is_spec_constant_id" : [ - false, - false, - false - ] - } - ], - "types" : { - "_4" : { - "name" : "SSBO0", - "members" : [ - { - "name" : "a", - "type" : "vec4", - "array" : [ - 0 - ], - "array_size_is_literal" : [ - true - ], - "offset" : 0, - "array_stride" : 16 - } - ] - }, - "_6" : { - "name" : "SSBO1", - "members" : [ - { - "name" : "b", - "type" : "vec4", - "array" : [ - 0 - ], - "array_size_is_literal" : [ - true - ], - "offset" : 0, - "array_stride" : 16 - } - ] - } - }, - "ssbos" : [ - { - "type" : "_4", - "name" : "SSBO0", - "block_size" : 0, - "set" : 0, - "binding" : 0 - }, - { - "type" : "_6", - "name" : "SSBO1", - "block_size" : 0, - "set" : 0, - "binding" : 1 - } - ] -} \ No newline at end of file diff --git a/third_party/spirv-cross/reference/shaders-reflection/asm/op-source-none-uav-1.asm.comp.json b/third_party/spirv-cross/reference/shaders-reflection/asm/op-source-none-uav-1.asm.comp.json deleted file mode 100644 index b34f85bb5a..0000000000 --- a/third_party/spirv-cross/reference/shaders-reflection/asm/op-source-none-uav-1.asm.comp.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "entryPoints" : [ - { - "name" : "main", - "mode" : "comp", - "workgroup_size" : [ - 1, - 1, - 1 - ], - "workgroup_size_is_spec_constant_id" : [ - false, - false, - false - ] - } - ], - "types" : { - "_4" : { - "name" : "UAV0", - "members" : [ - { - "name" : "@data", - "type" : "vec4", - "array" : [ - 0 - ], - "array_size_is_literal" : [ - true - ], - "offset" : 0, - "array_stride" : 16 - } - ] - } - }, - "ssbos" : [ - { - "type" : "_4", - "name" : "UAV0", - "block_size" : 0, - "set" : 0, - "binding" : 0 - } - ] -} \ No newline at end of file diff --git a/third_party/spirv-cross/reference/shaders-reflection/asm/op-source-none-uav-2.asm.comp.json b/third_party/spirv-cross/reference/shaders-reflection/asm/op-source-none-uav-2.asm.comp.json deleted file mode 100644 index 052e3ba814..0000000000 --- a/third_party/spirv-cross/reference/shaders-reflection/asm/op-source-none-uav-2.asm.comp.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "entryPoints" : [ - { - "name" : "main", - "mode" : "comp", - "workgroup_size" : [ - 1, - 1, - 1 - ], - "workgroup_size_is_spec_constant_id" : [ - false, - false, - false - ] - } - ], - "types" : { - "_4" : { - "name" : "UAV0", - "members" : [ - { - "name" : "@data", - "type" : "vec4", - "array" : [ - 0 - ], - "array_size_is_literal" : [ - true - ], - "offset" : 0, - "array_stride" : 16 - } - ] - } - }, - "ssbos" : [ - { - "type" : "_4", - "name" : "UAV0", - "block_size" : 0, - "set" : 0, - "binding" : 0 - }, - { - "type" : "_4", - "name" : "UAV1", - "block_size" : 0, - "set" : 0, - "binding" : 1 - } - ] -} \ No newline at end of file diff --git a/third_party/spirv-cross/reference/shaders-reflection/comp/array-of-physical-pointer.comp.json b/third_party/spirv-cross/reference/shaders-reflection/comp/array-of-physical-pointer.comp.json deleted file mode 100644 index a5da58c1a7..0000000000 --- a/third_party/spirv-cross/reference/shaders-reflection/comp/array-of-physical-pointer.comp.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "entryPoints" : [ - { - "name" : "main", - "mode" : "comp", - "workgroup_size" : [ - 1, - 1, - 1 - ], - "workgroup_size_is_spec_constant_id" : [ - false, - false, - false - ] - } - ], - "types" : { - "_11" : { - "name" : "Params", - "members" : [ - { - "name" : "x", - "type" : "float", - "offset" : 0 - }, - { - "name" : "y", - "type" : "_7", - "array" : [ - 3 - ], - "array_size_is_literal" : [ - true - ], - "offset" : 16, - "array_stride" : 16 - } - ] - }, - "_13" : { - "name" : "IntBuf", - "members" : [ - { - "name" : "v", - "type" : "int", - "offset" : 0 - } - ] - }, - "_7" : { - "name" : "IntBuf", - "type" : "_13", - "physical_pointer" : true - } - }, - "ubos" : [ - { - "type" : "_11", - "name" : "Params", - "block_size" : 64, - "set" : 0, - "binding" : 0 - } - ] -} \ No newline at end of file diff --git a/third_party/spirv-cross/reference/shaders-reflection/comp/function-pointer.invalid.asm.comp.json b/third_party/spirv-cross/reference/shaders-reflection/comp/function-pointer.invalid.asm.comp.json deleted file mode 100644 index bed59455f0..0000000000 --- a/third_party/spirv-cross/reference/shaders-reflection/comp/function-pointer.invalid.asm.comp.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "entryPoints" : [ - { - "name" : "main", - "mode" : "comp", - "workgroup_size" : [ - 1, - 1, - 1 - ], - "workgroup_size_is_spec_constant_id" : [ - false, - false, - false - ] - } - ] -} \ No newline at end of file diff --git a/third_party/spirv-cross/reference/shaders-reflection/comp/physical-pointer.comp.json b/third_party/spirv-cross/reference/shaders-reflection/comp/physical-pointer.comp.json deleted file mode 100644 index a397d0febc..0000000000 --- a/third_party/spirv-cross/reference/shaders-reflection/comp/physical-pointer.comp.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "entryPoints" : [ - { - "name" : "main", - "mode" : "comp", - "workgroup_size" : [ - 1, - 1, - 1 - ], - "workgroup_size_is_spec_constant_id" : [ - false, - false, - false - ] - } - ], - "types" : { - "_8" : { - "name" : "Params", - "members" : [ - { - "name" : "x", - "type" : "float", - "offset" : 0 - }, - { - "name" : "y", - "type" : "_10", - "offset" : 8, - "physical_pointer" : true - } - ] - }, - "_10" : { - "name" : "IntBuf", - "members" : [ - { - "name" : "v", - "type" : "int", - "offset" : 0 - } - ] - } - }, - "ubos" : [ - { - "type" : "_8", - "name" : "Params", - "block_size" : 16, - "set" : 0, - "binding" : 0 - } - ] -} \ No newline at end of file diff --git a/third_party/spirv-cross/reference/shaders-reflection/comp/struct-layout.comp.json b/third_party/spirv-cross/reference/shaders-reflection/comp/struct-layout.comp.json deleted file mode 100644 index e9bf7eea90..0000000000 --- a/third_party/spirv-cross/reference/shaders-reflection/comp/struct-layout.comp.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "entryPoints" : [ - { - "name" : "main", - "mode" : "comp", - "workgroup_size" : [ - 1, - 1, - 1 - ], - "workgroup_size_is_spec_constant_id" : [ - false, - false, - false - ] - } - ], - "types" : { - "_19" : { - "name" : "Foo", - "members" : [ - { - "name" : "m", - "type" : "mat4", - "offset" : 0, - "matrix_stride" : 16 - } - ] - }, - "_21" : { - "name" : "SSBO2", - "members" : [ - { - "name" : "out_data", - "type" : "_19", - "array" : [ - 0 - ], - "array_size_is_literal" : [ - true - ], - "offset" : 0, - "array_stride" : 64 - } - ] - }, - "_28" : { - "name" : "SSBO", - "members" : [ - { - "name" : "in_data", - "type" : "_19", - "array" : [ - 0 - ], - "array_size_is_literal" : [ - true - ], - "offset" : 0, - "array_stride" : 64 - } - ] - } - }, - "ssbos" : [ - { - "type" : "_21", - "name" : "SSBO2", - "writeonly" : true, - "block_size" : 0, - "set" : 0, - "binding" : 1 - }, - { - "type" : "_28", - "name" : "SSBO", - "readonly" : true, - "block_size" : 0, - "set" : 0, - "binding" : 0 - } - ] -} \ No newline at end of file diff --git a/third_party/spirv-cross/reference/shaders-reflection/comp/struct-packing.comp.json b/third_party/spirv-cross/reference/shaders-reflection/comp/struct-packing.comp.json deleted file mode 100644 index 12285ae24e..0000000000 --- a/third_party/spirv-cross/reference/shaders-reflection/comp/struct-packing.comp.json +++ /dev/null @@ -1,590 +0,0 @@ -{ - "entryPoints" : [ - { - "name" : "main", - "mode" : "comp", - "workgroup_size" : [ - 1, - 1, - 1 - ], - "workgroup_size_is_spec_constant_id" : [ - false, - false, - false - ] - } - ], - "types" : { - "_11" : { - "name" : "S0", - "members" : [ - { - "name" : "a", - "type" : "vec2", - "array" : [ - 1 - ], - "array_size_is_literal" : [ - true - ], - "offset" : 0, - "array_stride" : 8 - }, - { - "name" : "b", - "type" : "float", - "offset" : 8 - } - ] - }, - "_14" : { - "name" : "S1", - "members" : [ - { - "name" : "a", - "type" : "vec3", - "offset" : 0 - }, - { - "name" : "b", - "type" : "float", - "offset" : 12 - } - ] - }, - "_17" : { - "name" : "S2", - "members" : [ - { - "name" : "a", - "type" : "vec3", - "array" : [ - 1 - ], - "array_size_is_literal" : [ - true - ], - "offset" : 0, - "array_stride" : 16 - }, - { - "name" : "b", - "type" : "float", - "offset" : 16 - } - ] - }, - "_19" : { - "name" : "S3", - "members" : [ - { - "name" : "a", - "type" : "vec2", - "offset" : 0 - }, - { - "name" : "b", - "type" : "float", - "offset" : 8 - } - ] - }, - "_20" : { - "name" : "S4", - "members" : [ - { - "name" : "c", - "type" : "vec2", - "offset" : 0 - } - ] - }, - "_23" : { - "name" : "Content", - "members" : [ - { - "name" : "m0s", - "type" : "_11", - "array" : [ - 1 - ], - "array_size_is_literal" : [ - true - ], - "offset" : 0, - "array_stride" : 16 - }, - { - "name" : "m1s", - "type" : "_14", - "array" : [ - 1 - ], - "array_size_is_literal" : [ - true - ], - "offset" : 16, - "array_stride" : 16 - }, - { - "name" : "m2s", - "type" : "_17", - "array" : [ - 1 - ], - "array_size_is_literal" : [ - true - ], - "offset" : 32, - "array_stride" : 32 - }, - { - "name" : "m0", - "type" : "_11", - "offset" : 64 - }, - { - "name" : "m1", - "type" : "_14", - "offset" : 80 - }, - { - "name" : "m2", - "type" : "_17", - "offset" : 96 - }, - { - "name" : "m3", - "type" : "_19", - "offset" : 128 - }, - { - "name" : "m4", - "type" : "float", - "offset" : 144 - }, - { - "name" : "m3s", - "type" : "_20", - "array" : [ - 8 - ], - "array_size_is_literal" : [ - true - ], - "offset" : 152, - "array_stride" : 8 - } - ] - }, - "_36" : { - "name" : "SSBO1", - "members" : [ - { - "name" : "content", - "type" : "_23", - "offset" : 0 - }, - { - "name" : "content1", - "type" : "_23", - "array" : [ - 2 - ], - "array_size_is_literal" : [ - true - ], - "offset" : 224, - "array_stride" : 224 - }, - { - "name" : "content2", - "type" : "_23", - "offset" : 672 - }, - { - "name" : "m0", - "type" : "mat2", - "offset" : 896, - "matrix_stride" : 8 - }, - { - "name" : "m1", - "type" : "mat2", - "offset" : 912, - "matrix_stride" : 8 - }, - { - "name" : "m2", - "type" : "mat2x3", - "array" : [ - 4 - ], - "array_size_is_literal" : [ - true - ], - "offset" : 928, - "array_stride" : 32, - "matrix_stride" : 16 - }, - { - "name" : "m3", - "type" : "mat3x2", - "offset" : 1056, - "matrix_stride" : 8 - }, - { - "name" : "m4", - "type" : "mat2", - "offset" : 1080, - "matrix_stride" : 8, - "row_major" : true - }, - { - "name" : "m5", - "type" : "mat2", - "array" : [ - 9 - ], - "array_size_is_literal" : [ - true - ], - "offset" : 1096, - "array_stride" : 16, - "matrix_stride" : 8, - "row_major" : true - }, - { - "name" : "m6", - "type" : "mat2x3", - "array" : [ - 2, - 4 - ], - "array_size_is_literal" : [ - true, - true - ], - "offset" : 1240, - "array_stride" : 48, - "matrix_stride" : 8, - "row_major" : true - }, - { - "name" : "m7", - "type" : "mat3x2", - "offset" : 1440, - "matrix_stride" : 16, - "row_major" : true - }, - { - "name" : "array", - "type" : "float", - "array" : [ - 0 - ], - "array_size_is_literal" : [ - true - ], - "offset" : 1472, - "array_stride" : 4 - } - ] - }, - "_42" : { - "name" : "S0", - "members" : [ - { - "name" : "a", - "type" : "vec2", - "array" : [ - 1 - ], - "array_size_is_literal" : [ - true - ], - "offset" : 0, - "array_stride" : 16 - }, - { - "name" : "b", - "type" : "float", - "offset" : 16 - } - ] - }, - "_44" : { - "name" : "S1", - "members" : [ - { - "name" : "a", - "type" : "vec3", - "offset" : 0 - }, - { - "name" : "b", - "type" : "float", - "offset" : 12 - } - ] - }, - "_47" : { - "name" : "S2", - "members" : [ - { - "name" : "a", - "type" : "vec3", - "array" : [ - 1 - ], - "array_size_is_literal" : [ - true - ], - "offset" : 0, - "array_stride" : 16 - }, - { - "name" : "b", - "type" : "float", - "offset" : 16 - } - ] - }, - "_49" : { - "name" : "S3", - "members" : [ - { - "name" : "a", - "type" : "vec2", - "offset" : 0 - }, - { - "name" : "b", - "type" : "float", - "offset" : 8 - } - ] - }, - "_50" : { - "name" : "S4", - "members" : [ - { - "name" : "c", - "type" : "vec2", - "offset" : 0 - } - ] - }, - "_52" : { - "name" : "Content", - "members" : [ - { - "name" : "m0s", - "type" : "_42", - "array" : [ - 1 - ], - "array_size_is_literal" : [ - true - ], - "offset" : 0, - "array_stride" : 32 - }, - { - "name" : "m1s", - "type" : "_44", - "array" : [ - 1 - ], - "array_size_is_literal" : [ - true - ], - "offset" : 32, - "array_stride" : 16 - }, - { - "name" : "m2s", - "type" : "_47", - "array" : [ - 1 - ], - "array_size_is_literal" : [ - true - ], - "offset" : 48, - "array_stride" : 32 - }, - { - "name" : "m0", - "type" : "_42", - "offset" : 80 - }, - { - "name" : "m1", - "type" : "_44", - "offset" : 112 - }, - { - "name" : "m2", - "type" : "_47", - "offset" : 128 - }, - { - "name" : "m3", - "type" : "_49", - "offset" : 160 - }, - { - "name" : "m4", - "type" : "float", - "offset" : 176 - }, - { - "name" : "m3s", - "type" : "_50", - "array" : [ - 8 - ], - "array_size_is_literal" : [ - true - ], - "offset" : 192, - "array_stride" : 16 - } - ] - }, - "_59" : { - "name" : "SSBO0", - "members" : [ - { - "name" : "content", - "type" : "_52", - "offset" : 0 - }, - { - "name" : "content1", - "type" : "_52", - "array" : [ - 2 - ], - "array_size_is_literal" : [ - true - ], - "offset" : 320, - "array_stride" : 320 - }, - { - "name" : "content2", - "type" : "_52", - "offset" : 960 - }, - { - "name" : "m0", - "type" : "mat2", - "offset" : 1280, - "matrix_stride" : 16 - }, - { - "name" : "m1", - "type" : "mat2", - "offset" : 1312, - "matrix_stride" : 16 - }, - { - "name" : "m2", - "type" : "mat2x3", - "array" : [ - 4 - ], - "array_size_is_literal" : [ - true - ], - "offset" : 1344, - "array_stride" : 32, - "matrix_stride" : 16 - }, - { - "name" : "m3", - "type" : "mat3x2", - "offset" : 1472, - "matrix_stride" : 16 - }, - { - "name" : "m4", - "type" : "mat2", - "offset" : 1520, - "matrix_stride" : 16, - "row_major" : true - }, - { - "name" : "m5", - "type" : "mat2", - "array" : [ - 9 - ], - "array_size_is_literal" : [ - true - ], - "offset" : 1552, - "array_stride" : 32, - "matrix_stride" : 16, - "row_major" : true - }, - { - "name" : "m6", - "type" : "mat2x3", - "array" : [ - 2, - 4 - ], - "array_size_is_literal" : [ - true, - true - ], - "offset" : 1840, - "array_stride" : 96, - "matrix_stride" : 16, - "row_major" : true - }, - { - "name" : "m7", - "type" : "mat3x2", - "offset" : 2224, - "matrix_stride" : 16, - "row_major" : true - }, - { - "name" : "array", - "type" : "float", - "array" : [ - 0 - ], - "array_size_is_literal" : [ - true - ], - "offset" : 2256, - "array_stride" : 16 - } - ] - } - }, - "ssbos" : [ - { - "type" : "_36", - "name" : "SSBO1", - "restrict" : true, - "block_size" : 1472, - "set" : 0, - "binding" : 1 - }, - { - "type" : "_59", - "name" : "SSBO0", - "restrict" : true, - "block_size" : 2256, - "set" : 0, - "binding" : 0 - } - ] -} \ No newline at end of file diff --git a/third_party/spirv-cross/reference/shaders-reflection/comp/workgroup-size-spec-constant.comp.json b/third_party/spirv-cross/reference/shaders-reflection/comp/workgroup-size-spec-constant.comp.json deleted file mode 100644 index c67d723003..0000000000 --- a/third_party/spirv-cross/reference/shaders-reflection/comp/workgroup-size-spec-constant.comp.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "entryPoints" : [ - { - "name" : "main", - "mode" : "comp", - "workgroup_size" : [ - 10, - 40, - 60 - ], - "workgroup_size_is_spec_constant_id" : [ - true, - true, - true - ] - } - ], - "types" : { - "_8" : { - "name" : "SSBO", - "members" : [ - { - "name" : "v", - "type" : "vec4", - "offset" : 0 - } - ] - } - }, - "ssbos" : [ - { - "type" : "_8", - "name" : "SSBO", - "block_size" : 16, - "set" : 0, - "binding" : 0 - } - ], - "specialization_constants" : [ - { - "name" : "", - "id" : 10, - "type" : "uint", - "variable_id" : 18, - "default_value" : 1 - }, - { - "name" : "", - "id" : 40, - "type" : "uint", - "variable_id" : 19, - "default_value" : 1 - }, - { - "name" : "", - "id" : 60, - "type" : "uint", - "variable_id" : 20, - "default_value" : 1 - } - ] -} \ No newline at end of file diff --git a/third_party/spirv-cross/reference/shaders-reflection/frag/combined-texture-sampler-shadow.vk.frag.json b/third_party/spirv-cross/reference/shaders-reflection/frag/combined-texture-sampler-shadow.vk.frag.json deleted file mode 100644 index 5b4d3c6f7b..0000000000 --- a/third_party/spirv-cross/reference/shaders-reflection/frag/combined-texture-sampler-shadow.vk.frag.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "entryPoints" : [ - { - "name" : "main", - "mode" : "frag" - } - ], - "outputs" : [ - { - "type" : "float", - "name" : "FragColor", - "location" : 0 - } - ], - "separate_images" : [ - { - "type" : "texture2D", - "name" : "uDepth", - "set" : 0, - "binding" : 2 - } - ], - "separate_samplers" : [ - { - "type" : "sampler", - "name" : "uSampler", - "set" : 0, - "binding" : 0 - }, - { - "type" : "sampler", - "name" : "uSampler1", - "set" : 0, - "binding" : 1 - } - ] -} \ No newline at end of file diff --git a/third_party/spirv-cross/reference/shaders-reflection/frag/combined-texture-sampler.vk.frag.json b/third_party/spirv-cross/reference/shaders-reflection/frag/combined-texture-sampler.vk.frag.json deleted file mode 100644 index 8b6a184299..0000000000 --- a/third_party/spirv-cross/reference/shaders-reflection/frag/combined-texture-sampler.vk.frag.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "entryPoints" : [ - { - "name" : "main", - "mode" : "frag" - } - ], - "inputs" : [ - { - "type" : "vec2", - "name" : "vTex", - "location" : 0 - } - ], - "outputs" : [ - { - "type" : "vec4", - "name" : "FragColor", - "location" : 0 - } - ], - "separate_images" : [ - { - "type" : "texture2D", - "name" : "uTexture0", - "set" : 0, - "binding" : 2 - }, - { - "type" : "texture2D", - "name" : "uTexture1", - "set" : 0, - "binding" : 3 - } - ], - "separate_samplers" : [ - { - "type" : "sampler", - "name" : "uSampler0", - "set" : 0, - "binding" : 0 - }, - { - "type" : "sampler", - "name" : "uSampler1", - "set" : 0, - "binding" : 1 - } - ] -} \ No newline at end of file diff --git a/third_party/spirv-cross/reference/shaders-reflection/frag/image-load-store-uint-coord.asm.frag.json b/third_party/spirv-cross/reference/shaders-reflection/frag/image-load-store-uint-coord.asm.frag.json deleted file mode 100644 index c239527c84..0000000000 --- a/third_party/spirv-cross/reference/shaders-reflection/frag/image-load-store-uint-coord.asm.frag.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "entryPoints" : [ - { - "name" : "main", - "mode" : "frag" - } - ], - "outputs" : [ - { - "type" : "vec4", - "name" : "@entryPointOutput", - "location" : 0 - } - ], - "textures" : [ - { - "type" : "sampler2D", - "name" : "ROIm", - "set" : 0, - "binding" : 1 - } - ], - "separate_images" : [ - { - "type" : "samplerBuffer", - "name" : "ROBuf", - "set" : 0, - "binding" : 0 - } - ], - "images" : [ - { - "type" : "image2D", - "name" : "RWIm", - "set" : 0, - "binding" : 1, - "format" : "rgba32f" - }, - { - "type" : "imageBuffer", - "name" : "RWBuf", - "set" : 0, - "binding" : 0, - "format" : "rgba32f" - } - ] -} \ No newline at end of file diff --git a/third_party/spirv-cross/reference/shaders-reflection/frag/input-attachment-ms.vk.frag.json b/third_party/spirv-cross/reference/shaders-reflection/frag/input-attachment-ms.vk.frag.json deleted file mode 100644 index 5f381911ac..0000000000 --- a/third_party/spirv-cross/reference/shaders-reflection/frag/input-attachment-ms.vk.frag.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "entryPoints" : [ - { - "name" : "main", - "mode" : "frag" - } - ], - "subpass_inputs" : [ - { - "type" : "subpassInputMS", - "name" : "uSubpass0", - "set" : 0, - "binding" : 0, - "input_attachment_index" : 0 - }, - { - "type" : "subpassInputMS", - "name" : "uSubpass1", - "set" : 0, - "binding" : 1, - "input_attachment_index" : 1 - } - ], - "outputs" : [ - { - "type" : "vec4", - "name" : "FragColor", - "location" : 0 - } - ] -} \ No newline at end of file diff --git a/third_party/spirv-cross/reference/shaders-reflection/frag/input-attachment.vk.frag.json b/third_party/spirv-cross/reference/shaders-reflection/frag/input-attachment.vk.frag.json deleted file mode 100644 index 16ae6a4683..0000000000 --- a/third_party/spirv-cross/reference/shaders-reflection/frag/input-attachment.vk.frag.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "entryPoints" : [ - { - "name" : "main", - "mode" : "frag" - } - ], - "subpass_inputs" : [ - { - "type" : "subpassInput", - "name" : "uSubpass0", - "set" : 0, - "binding" : 0, - "input_attachment_index" : 0 - }, - { - "type" : "subpassInput", - "name" : "uSubpass1", - "set" : 0, - "binding" : 1, - "input_attachment_index" : 1 - } - ], - "outputs" : [ - { - "type" : "vec4", - "name" : "FragColor", - "location" : 0 - } - ] -} \ No newline at end of file diff --git a/third_party/spirv-cross/reference/shaders-reflection/frag/push-constant.vk.frag.json b/third_party/spirv-cross/reference/shaders-reflection/frag/push-constant.vk.frag.json deleted file mode 100644 index f72a8fd654..0000000000 --- a/third_party/spirv-cross/reference/shaders-reflection/frag/push-constant.vk.frag.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "entryPoints" : [ - { - "name" : "main", - "mode" : "frag" - } - ], - "types" : { - "_13" : { - "name" : "PushConstants", - "members" : [ - { - "name" : "value0", - "type" : "vec4", - "offset" : 0 - }, - { - "name" : "value1", - "type" : "vec4", - "offset" : 16 - } - ] - } - }, - "inputs" : [ - { - "type" : "vec4", - "name" : "vColor", - "location" : 0 - } - ], - "outputs" : [ - { - "type" : "vec4", - "name" : "FragColor", - "location" : 0 - } - ], - "push_constants" : [ - { - "type" : "_13", - "name" : "push", - "push_constant" : true - } - ] -} \ No newline at end of file diff --git a/third_party/spirv-cross/reference/shaders-reflection/frag/separate-sampler-texture-array.vk.frag.json b/third_party/spirv-cross/reference/shaders-reflection/frag/separate-sampler-texture-array.vk.frag.json deleted file mode 100644 index e5f2f75624..0000000000 --- a/third_party/spirv-cross/reference/shaders-reflection/frag/separate-sampler-texture-array.vk.frag.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "entryPoints" : [ - { - "name" : "main", - "mode" : "frag" - } - ], - "inputs" : [ - { - "type" : "vec2", - "name" : "vTex", - "location" : 0 - }, - { - "type" : "vec3", - "name" : "vTex3", - "location" : 1 - } - ], - "outputs" : [ - { - "type" : "vec4", - "name" : "FragColor", - "location" : 0 - } - ], - "separate_images" : [ - { - "type" : "texture2D", - "name" : "uTexture", - "array" : [ - 4 - ], - "array_size_is_literal" : [ - true - ], - "set" : 0, - "binding" : 1 - }, - { - "type" : "texture2DArray", - "name" : "uTextureArray", - "array" : [ - 4 - ], - "array_size_is_literal" : [ - true - ], - "set" : 0, - "binding" : 4 - }, - { - "type" : "textureCube", - "name" : "uTextureCube", - "array" : [ - 4 - ], - "array_size_is_literal" : [ - true - ], - "set" : 0, - "binding" : 3 - }, - { - "type" : "texture3D", - "name" : "uTexture3D", - "array" : [ - 4 - ], - "array_size_is_literal" : [ - true - ], - "set" : 0, - "binding" : 2 - } - ], - "separate_samplers" : [ - { - "type" : "sampler", - "name" : "uSampler", - "set" : 0, - "binding" : 0 - } - ] -} \ No newline at end of file diff --git a/third_party/spirv-cross/reference/shaders-reflection/frag/spec-constant.vk.frag.json b/third_party/spirv-cross/reference/shaders-reflection/frag/spec-constant.vk.frag.json deleted file mode 100644 index dd876dde96..0000000000 --- a/third_party/spirv-cross/reference/shaders-reflection/frag/spec-constant.vk.frag.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "entryPoints" : [ - { - "name" : "main", - "mode" : "frag" - } - ], - "types" : { - "_137" : { - "name" : "Foo", - "members" : [ - { - "name" : "elems", - "type" : "float", - "array" : [ - 135 - ], - "array_size_is_literal" : [ - false - ] - } - ] - } - }, - "outputs" : [ - { - "type" : "vec4", - "name" : "FragColor", - "location" : 0 - } - ], - "specialization_constants" : [ - { - "name" : "a", - "id" : 1, - "type" : "float", - "variable_id" : 9, - "default_value" : 1.5 - }, - { - "name" : "b", - "id" : 2, - "type" : "float", - "variable_id" : 11, - "default_value" : 2.5 - }, - { - "name" : "c", - "id" : 3, - "type" : "int", - "variable_id" : 16, - "default_value" : 3 - }, - { - "name" : "d", - "id" : 4, - "type" : "int", - "variable_id" : 25, - "default_value" : 4 - }, - { - "name" : "e", - "id" : 5, - "type" : "uint", - "variable_id" : 34, - "default_value" : 5 - }, - { - "name" : "f", - "id" : 6, - "type" : "uint", - "variable_id" : 35, - "default_value" : 6 - }, - { - "name" : "g", - "id" : 7, - "type" : "bool", - "variable_id" : 56, - "default_value" : false - }, - { - "name" : "h", - "id" : 8, - "type" : "bool", - "variable_id" : 57, - "default_value" : true - } - ] -} \ No newline at end of file diff --git a/third_party/spirv-cross/reference/shaders-reflection/rgen/acceleration_structure.vk.rgen.json b/third_party/spirv-cross/reference/shaders-reflection/rgen/acceleration_structure.vk.rgen.json deleted file mode 100644 index 6574f7528c..0000000000 --- a/third_party/spirv-cross/reference/shaders-reflection/rgen/acceleration_structure.vk.rgen.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "entryPoints" : [ - { - "name" : "main", - "mode" : "rgen" - } - ], - "acceleration_structures" : [ - { - "type" : "accelerationStructureNV", - "name" : "as", - "set" : 0, - "binding" : 1 - } - ] -} \ No newline at end of file diff --git a/third_party/spirv-cross/reference/shaders-reflection/vert/array-size-reflection.vert.json b/third_party/spirv-cross/reference/shaders-reflection/vert/array-size-reflection.vert.json deleted file mode 100644 index 87b6cb060f..0000000000 --- a/third_party/spirv-cross/reference/shaders-reflection/vert/array-size-reflection.vert.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "entryPoints" : [ - { - "name" : "main", - "mode" : "vert" - } - ], - "types" : { - "_11" : { - "name" : "gl_PerVertex", - "members" : [ - { - "name" : "gl_Position", - "type" : "vec4" - }, - { - "name" : "gl_PointSize", - "type" : "float" - }, - { - "name" : "gl_ClipDistance", - "type" : "float", - "array" : [ - 1 - ], - "array_size_is_literal" : [ - true - ] - }, - { - "name" : "gl_CullDistance", - "type" : "float", - "array" : [ - 1 - ], - "array_size_is_literal" : [ - true - ] - } - ] - }, - "_18" : { - "name" : "u_", - "members" : [ - { - "name" : "u_0", - "type" : "vec4", - "array" : [ - 16 - ], - "array_size_is_literal" : [ - false - ], - "offset" : 0, - "array_stride" : 16 - } - ] - } - }, - "ubos" : [ - { - "type" : "_18", - "name" : "u_", - "block_size" : 16, - "set" : 1, - "binding" : 0 - } - ], - "specialization_constants" : [ - { - "name" : "ARR_SIZE", - "id" : 0, - "type" : "int", - "variable_id" : 16, - "default_value" : 1 - } - ] -} \ No newline at end of file diff --git a/third_party/spirv-cross/reference/shaders-reflection/vert/read-from-row-major-array.vert.json b/third_party/spirv-cross/reference/shaders-reflection/vert/read-from-row-major-array.vert.json deleted file mode 100644 index cebd66bd9a..0000000000 --- a/third_party/spirv-cross/reference/shaders-reflection/vert/read-from-row-major-array.vert.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "entryPoints" : [ - { - "name" : "main", - "mode" : "vert" - } - ], - "types" : { - "_89" : { - "name" : "gl_PerVertex", - "members" : [ - { - "name" : "gl_Position", - "type" : "vec4" - }, - { - "name" : "gl_PointSize", - "type" : "float" - } - ] - }, - "_102" : { - "name" : "Block", - "members" : [ - { - "name" : "var", - "type" : "mat2x3", - "array" : [ - 4, - 3 - ], - "array_size_is_literal" : [ - true, - true - ], - "offset" : 0, - "array_stride" : 192, - "matrix_stride" : 16, - "row_major" : true - } - ] - } - }, - "inputs" : [ - { - "type" : "vec4", - "name" : "a_position", - "location" : 0 - } - ], - "outputs" : [ - { - "type" : "float", - "name" : "v_vtxResult", - "location" : 0 - } - ], - "ubos" : [ - { - "type" : "_102", - "name" : "Block", - "block_size" : 576, - "set" : 0, - "binding" : 0 - } - ] -} \ No newline at end of file diff --git a/third_party/spirv-cross/reference/shaders-reflection/vert/stride-reflection.vert.json b/third_party/spirv-cross/reference/shaders-reflection/vert/stride-reflection.vert.json deleted file mode 100644 index 1dd8f18957..0000000000 --- a/third_party/spirv-cross/reference/shaders-reflection/vert/stride-reflection.vert.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "entryPoints" : [ - { - "name" : "main", - "mode" : "vert" - } - ], - "types" : { - "_11" : { - "name" : "gl_PerVertex", - "members" : [ - { - "name" : "gl_Position", - "type" : "vec4" - }, - { - "name" : "gl_PointSize", - "type" : "float" - }, - { - "name" : "gl_ClipDistance", - "type" : "float", - "array" : [ - 1 - ], - "array_size_is_literal" : [ - true - ] - }, - { - "name" : "gl_CullDistance", - "type" : "float", - "array" : [ - 1 - ], - "array_size_is_literal" : [ - true - ] - } - ] - }, - "_21" : { - "name" : "U", - "members" : [ - { - "name" : "v", - "type" : "vec4", - "array" : [ - 4 - ], - "array_size_is_literal" : [ - true - ], - "offset" : 0, - "array_stride" : 16 - }, - { - "name" : "c", - "type" : "mat4", - "array" : [ - 4 - ], - "array_size_is_literal" : [ - true - ], - "offset" : 64, - "array_stride" : 64, - "matrix_stride" : 16 - }, - { - "name" : "r", - "type" : "mat4", - "array" : [ - 4 - ], - "array_size_is_literal" : [ - true - ], - "offset" : 320, - "array_stride" : 64, - "matrix_stride" : 16, - "row_major" : true - } - ] - } - }, - "ubos" : [ - { - "type" : "_21", - "name" : "U", - "block_size" : 576, - "set" : 0, - "binding" : 0 - } - ] -} \ No newline at end of file diff --git a/third_party/spirv-cross/reference/shaders-reflection/vert/texture_buffer.vert.json b/third_party/spirv-cross/reference/shaders-reflection/vert/texture_buffer.vert.json deleted file mode 100644 index 3c69e24cbc..0000000000 --- a/third_party/spirv-cross/reference/shaders-reflection/vert/texture_buffer.vert.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "entryPoints" : [ - { - "name" : "main", - "mode" : "vert" - } - ], - "types" : { - "_8" : { - "name" : "gl_PerVertex", - "members" : [ - { - "name" : "gl_Position", - "type" : "vec4" - }, - { - "name" : "gl_PointSize", - "type" : "float" - } - ] - } - }, - "textures" : [ - { - "type" : "samplerBuffer", - "name" : "uSamp", - "set" : 0, - "binding" : 4 - } - ], - "images" : [ - { - "type" : "imageBuffer", - "name" : "uSampo", - "set" : 0, - "binding" : 5, - "format" : "rgba32f" - } - ] -} \ No newline at end of file diff --git a/third_party/spirv-cross/reference/shaders-ue4-no-opt/asm/frag/accesschain-invalid-expression.asm.invalid.frag b/third_party/spirv-cross/reference/shaders-ue4-no-opt/asm/frag/accesschain-invalid-expression.asm.invalid.frag deleted file mode 100644 index 3a13024df8..0000000000 --- a/third_party/spirv-cross/reference/shaders-ue4-no-opt/asm/frag/accesschain-invalid-expression.asm.invalid.frag +++ /dev/null @@ -1,369 +0,0 @@ -#include -#include - -using namespace metal; - -struct type_View -{ - float4x4 View_TranslatedWorldToClip; - float4x4 View_WorldToClip; - float4x4 View_TranslatedWorldToView; - float4x4 View_ViewToTranslatedWorld; - float4x4 View_TranslatedWorldToCameraView; - float4x4 View_CameraViewToTranslatedWorld; - float4x4 View_ViewToClip; - float4x4 View_ViewToClipNoAA; - float4x4 View_ClipToView; - float4x4 View_ClipToTranslatedWorld; - float4x4 View_SVPositionToTranslatedWorld; - float4x4 View_ScreenToWorld; - float4x4 View_ScreenToTranslatedWorld; - packed_float3 View_ViewForward; - float PrePadding_View_844; - packed_float3 View_ViewUp; - float PrePadding_View_860; - packed_float3 View_ViewRight; - float PrePadding_View_876; - packed_float3 View_HMDViewNoRollUp; - float PrePadding_View_892; - packed_float3 View_HMDViewNoRollRight; - float PrePadding_View_908; - float4 View_InvDeviceZToWorldZTransform; - float4 View_ScreenPositionScaleBias; - packed_float3 View_WorldCameraOrigin; - float PrePadding_View_956; - packed_float3 View_TranslatedWorldCameraOrigin; - float PrePadding_View_972; - packed_float3 View_WorldViewOrigin; - float PrePadding_View_988; - packed_float3 View_PreViewTranslation; - float PrePadding_View_1004; - float4x4 View_PrevProjection; - float4x4 View_PrevViewProj; - float4x4 View_PrevViewRotationProj; - float4x4 View_PrevViewToClip; - float4x4 View_PrevClipToView; - float4x4 View_PrevTranslatedWorldToClip; - float4x4 View_PrevTranslatedWorldToView; - float4x4 View_PrevViewToTranslatedWorld; - float4x4 View_PrevTranslatedWorldToCameraView; - float4x4 View_PrevCameraViewToTranslatedWorld; - packed_float3 View_PrevWorldCameraOrigin; - float PrePadding_View_1660; - packed_float3 View_PrevWorldViewOrigin; - float PrePadding_View_1676; - packed_float3 View_PrevPreViewTranslation; - float PrePadding_View_1692; - float4x4 View_PrevInvViewProj; - float4x4 View_PrevScreenToTranslatedWorld; - float4x4 View_ClipToPrevClip; - float4 View_TemporalAAJitter; - float4 View_GlobalClippingPlane; - float2 View_FieldOfViewWideAngles; - float2 View_PrevFieldOfViewWideAngles; - float4 View_ViewRectMin; - float4 View_ViewSizeAndInvSize; - float4 View_BufferSizeAndInvSize; - float4 View_BufferBilinearUVMinMax; - int View_NumSceneColorMSAASamples; - float View_PreExposure; - float View_OneOverPreExposure; - float PrePadding_View_2012; - float4 View_DiffuseOverrideParameter; - float4 View_SpecularOverrideParameter; - float4 View_NormalOverrideParameter; - float2 View_RoughnessOverrideParameter; - float View_PrevFrameGameTime; - float View_PrevFrameRealTime; - float View_OutOfBoundsMask; - float PrePadding_View_2084; - float PrePadding_View_2088; - float PrePadding_View_2092; - packed_float3 View_WorldCameraMovementSinceLastFrame; - float View_CullingSign; - float View_NearPlane; - float View_AdaptiveTessellationFactor; - float View_GameTime; - float View_RealTime; - float View_DeltaTime; - float View_MaterialTextureMipBias; - float View_MaterialTextureDerivativeMultiply; - uint View_Random; - uint View_FrameNumber; - uint View_StateFrameIndexMod8; - uint View_StateFrameIndex; - float View_CameraCut; - float View_UnlitViewmodeMask; - float PrePadding_View_2164; - float PrePadding_View_2168; - float PrePadding_View_2172; - float4 View_DirectionalLightColor; - packed_float3 View_DirectionalLightDirection; - float PrePadding_View_2204; - float4 View_TranslucencyLightingVolumeMin[2]; - float4 View_TranslucencyLightingVolumeInvSize[2]; - float4 View_TemporalAAParams; - float4 View_CircleDOFParams; - float View_DepthOfFieldSensorWidth; - float View_DepthOfFieldFocalDistance; - float View_DepthOfFieldScale; - float View_DepthOfFieldFocalLength; - float View_DepthOfFieldFocalRegion; - float View_DepthOfFieldNearTransitionRegion; - float View_DepthOfFieldFarTransitionRegion; - float View_MotionBlurNormalizedToPixel; - float View_bSubsurfacePostprocessEnabled; - float View_GeneralPurposeTweak; - float View_DemosaicVposOffset; - float PrePadding_View_2348; - packed_float3 View_IndirectLightingColorScale; - float View_HDR32bppEncodingMode; - packed_float3 View_AtmosphericFogSunDirection; - float View_AtmosphericFogSunPower; - float View_AtmosphericFogPower; - float View_AtmosphericFogDensityScale; - float View_AtmosphericFogDensityOffset; - float View_AtmosphericFogGroundOffset; - float View_AtmosphericFogDistanceScale; - float View_AtmosphericFogAltitudeScale; - float View_AtmosphericFogHeightScaleRayleigh; - float View_AtmosphericFogStartDistance; - float View_AtmosphericFogDistanceOffset; - float View_AtmosphericFogSunDiscScale; - uint View_AtmosphericFogRenderMask; - uint View_AtmosphericFogInscatterAltitudeSampleNum; - float4 View_AtmosphericFogSunColor; - packed_float3 View_NormalCurvatureToRoughnessScaleBias; - float View_RenderingReflectionCaptureMask; - float4 View_AmbientCubemapTint; - float View_AmbientCubemapIntensity; - float View_SkyLightParameters; - float PrePadding_View_2488; - float PrePadding_View_2492; - float4 View_SkyLightColor; - float4 View_SkyIrradianceEnvironmentMap[7]; - float View_MobilePreviewMode; - float View_HMDEyePaddingOffset; - float View_ReflectionCubemapMaxMip; - float View_ShowDecalsMask; - uint View_DistanceFieldAOSpecularOcclusionMode; - float View_IndirectCapsuleSelfShadowingIntensity; - float PrePadding_View_2648; - float PrePadding_View_2652; - packed_float3 View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight; - int View_StereoPassIndex; - float4 View_GlobalVolumeCenterAndExtent[4]; - float4 View_GlobalVolumeWorldToUVAddAndMul[4]; - float View_GlobalVolumeDimension; - float View_GlobalVolumeTexelSize; - float View_MaxGlobalDistance; - float View_bCheckerboardSubsurfaceProfileRendering; - packed_float3 View_VolumetricFogInvGridSize; - float PrePadding_View_2828; - packed_float3 View_VolumetricFogGridZParams; - float PrePadding_View_2844; - float2 View_VolumetricFogSVPosToVolumeUV; - float View_VolumetricFogMaxDistance; - float PrePadding_View_2860; - packed_float3 View_VolumetricLightmapWorldToUVScale; - float PrePadding_View_2876; - packed_float3 View_VolumetricLightmapWorldToUVAdd; - float PrePadding_View_2892; - packed_float3 View_VolumetricLightmapIndirectionTextureSize; - float View_VolumetricLightmapBrickSize; - packed_float3 View_VolumetricLightmapBrickTexelSize; - float View_StereoIPD; - float View_IndirectLightingCacheShowFlag; - float View_EyeToPixelSpreadAngle; -}; - -struct type_MobileDirectionalLight -{ - float4 MobileDirectionalLight_DirectionalLightColor; - float4 MobileDirectionalLight_DirectionalLightDirectionAndShadowTransition; - float4 MobileDirectionalLight_DirectionalLightShadowSize; - float4 MobileDirectionalLight_DirectionalLightDistanceFadeMAD; - float4 MobileDirectionalLight_DirectionalLightShadowDistances; - float4x4 MobileDirectionalLight_DirectionalLightScreenToShadow[4]; -}; - -struct type_Globals -{ - int NumDynamicPointLights; - float4 LightPositionAndInvRadius[4]; - float4 LightColorAndFalloffExponent[4]; - float4 MobileReflectionParams; -}; - -constant float3 _136 = {}; -constant float4 _137 = {}; -constant float _138 = {}; -constant float3 _139 = {}; - -struct main0_out -{ - float4 out_var_SV_Target0 [[color(0)]]; -}; - -struct main0_in -{ - float2 in_var_TEXCOORD0 [[user(locn0)]]; - float4 in_var_TEXCOORD7 [[user(locn1)]]; - float4 in_var_TEXCOORD8 [[user(locn2)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], constant type_View& View [[buffer(0)]], constant type_MobileDirectionalLight& MobileDirectionalLight [[buffer(1)]], constant type_Globals& _Globals [[buffer(2)]], texture2d MobileDirectionalLight_DirectionalLightShadowTexture [[texture(0)]], texture2d Material_Texture2D_0 [[texture(1)]], texture2d Material_Texture2D_1 [[texture(2)]], texturecube ReflectionCubemap [[texture(3)]], sampler MobileDirectionalLight_DirectionalLightShadowSampler [[sampler(0)]], sampler Material_Texture2D_0Sampler [[sampler(1)]], sampler Material_Texture2D_1Sampler [[sampler(2)]], sampler ReflectionCubemapSampler [[sampler(3)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - float4 _177 = float4((((gl_FragCoord.xy - View.View_ViewRectMin.xy) * View.View_ViewSizeAndInvSize.zw) - float2(0.5)) * float2(2.0, -2.0), _138, 1.0) * float4(gl_FragCoord.w); - float3 _179 = in.in_var_TEXCOORD8.xyz - float3(View.View_PreViewTranslation); - float3 _181 = normalize(-in.in_var_TEXCOORD8.xyz); - float4 _187 = Material_Texture2D_0.sample(Material_Texture2D_0Sampler, (in.in_var_TEXCOORD0 * float2(10.0))); - float2 _190 = (_187.xy * float2(2.0)) - float2(1.0); - float3 _206 = normalize(float3x3(float3(1.0, 0.0, 0.0), float3(0.0, 1.0, 0.0), float3(0.0, 0.0, 1.0)) * (((float4(_190, sqrt(fast::clamp(1.0 - dot(_190, _190), 0.0, 1.0)), 1.0).xyz * float3(0.300000011920928955078125, 0.300000011920928955078125, 1.0)) * float3(View.View_NormalOverrideParameter.w)) + View.View_NormalOverrideParameter.xyz)); - float _208 = dot(_206, _181); - float4 _217 = Material_Texture2D_1.sample(Material_Texture2D_1Sampler, (in.in_var_TEXCOORD0 * float2(20.0))); - float _219 = mix(0.4000000059604644775390625, 1.0, _217.x); - float4 _223 = Material_Texture2D_1.sample(Material_Texture2D_1Sampler, (in.in_var_TEXCOORD0 * float2(5.0))); - float _224 = _177.w; - float _228 = fast::min(fast::max((_224 - 24.0) * 0.000666666659526526927947998046875, 0.0), 1.0); - float _229 = _223.y; - float4 _233 = Material_Texture2D_1.sample(Material_Texture2D_1Sampler, (in.in_var_TEXCOORD0 * float2(0.5))); - float _235 = _233.y; - float _253 = fast::clamp((fast::min(fast::max(mix(0.0, 0.5, _235) + mix(mix(0.699999988079071044921875, 1.0, _229), 1.0, _228), 0.0), 1.0) * View.View_RoughnessOverrideParameter.y) + View.View_RoughnessOverrideParameter.x, 0.119999997317790985107421875, 1.0); - float2 _257 = (float2(_253) * float2(-1.0, -0.0274999998509883880615234375)) + float2(1.0, 0.0425000004470348358154296875); - float _258 = _257.x; - float3 _270 = (fast::clamp(float3(mix(_219, 1.0 - _219, mix(_229, 1.0, _228)) * (mix(0.2949999868869781494140625, 0.660000026226043701171875, mix(_235 + mix(_229, 0.0, _228), 0.5, 0.5)) * 0.5)), float3(0.0), float3(1.0)) * float3(View.View_DiffuseOverrideParameter.w)) + View.View_DiffuseOverrideParameter.xyz; - float3 _275 = float3(((fast::min(_258 * _258, exp2((-9.27999973297119140625) * fast::max(_208, 0.0))) * _258) + _257.y) * View.View_SpecularOverrideParameter.w) + View.View_SpecularOverrideParameter.xyz; - float _276 = _275.x; - float4 _303; - int _286 = 0; - for (;;) - { - if (_286 < 2) - { - if (_224 < MobileDirectionalLight.MobileDirectionalLight_DirectionalLightShadowDistances[uint(_286)]) - { - _303 = MobileDirectionalLight.MobileDirectionalLight_DirectionalLightScreenToShadow[_286] * float4(_177.xy, _224, 1.0); - break; - } - _286++; - continue; - } - else - { - _303 = float4(0.0); - break; - } - } - float _423; - if (_303.z > 0.0) - { - float2 _311 = _303.xy * MobileDirectionalLight.MobileDirectionalLight_DirectionalLightShadowSize.xy; - float2 _312 = fract(_311); - float2 _313 = floor(_311); - float3 _320 = _139; - _320.x = MobileDirectionalLight_DirectionalLightShadowTexture.sample(MobileDirectionalLight_DirectionalLightShadowSampler, ((_313 + float2(-0.5)) * MobileDirectionalLight.MobileDirectionalLight_DirectionalLightShadowSize.zw), level(0.0)).x; - float3 _326 = _320; - _326.y = MobileDirectionalLight_DirectionalLightShadowTexture.sample(MobileDirectionalLight_DirectionalLightShadowSampler, ((_313 + float2(0.5, -0.5)) * MobileDirectionalLight.MobileDirectionalLight_DirectionalLightShadowSize.zw), level(0.0)).x; - float3 _332 = _326; - _332.z = MobileDirectionalLight_DirectionalLightShadowTexture.sample(MobileDirectionalLight_DirectionalLightShadowSampler, ((_313 + float2(1.5, -0.5)) * MobileDirectionalLight.MobileDirectionalLight_DirectionalLightShadowSize.zw), level(0.0)).x; - float3 _335 = float3(MobileDirectionalLight.MobileDirectionalLight_DirectionalLightDirectionAndShadowTransition.w); - float3 _337 = float3((fast::min(_303.z, 0.999989986419677734375) * MobileDirectionalLight.MobileDirectionalLight_DirectionalLightDirectionAndShadowTransition.w) - 1.0); - float3 _339 = fast::clamp((_332 * _335) - _337, float3(0.0), float3(1.0)); - float3 _345 = _139; - _345.x = MobileDirectionalLight_DirectionalLightShadowTexture.sample(MobileDirectionalLight_DirectionalLightShadowSampler, ((_313 + float2(-0.5, 0.5)) * MobileDirectionalLight.MobileDirectionalLight_DirectionalLightShadowSize.zw), level(0.0)).x; - float3 _351 = _345; - _351.y = MobileDirectionalLight_DirectionalLightShadowTexture.sample(MobileDirectionalLight_DirectionalLightShadowSampler, ((_313 + float2(0.5)) * MobileDirectionalLight.MobileDirectionalLight_DirectionalLightShadowSize.zw), level(0.0)).x; - float3 _357 = _351; - _357.z = MobileDirectionalLight_DirectionalLightShadowTexture.sample(MobileDirectionalLight_DirectionalLightShadowSampler, ((_313 + float2(1.5, 0.5)) * MobileDirectionalLight.MobileDirectionalLight_DirectionalLightShadowSize.zw), level(0.0)).x; - float3 _360 = fast::clamp((_357 * _335) - _337, float3(0.0), float3(1.0)); - float3 _366 = _139; - _366.x = MobileDirectionalLight_DirectionalLightShadowTexture.sample(MobileDirectionalLight_DirectionalLightShadowSampler, ((_313 + float2(-0.5, 1.5)) * MobileDirectionalLight.MobileDirectionalLight_DirectionalLightShadowSize.zw), level(0.0)).x; - float3 _372 = _366; - _372.y = MobileDirectionalLight_DirectionalLightShadowTexture.sample(MobileDirectionalLight_DirectionalLightShadowSampler, ((_313 + float2(0.5, 1.5)) * MobileDirectionalLight.MobileDirectionalLight_DirectionalLightShadowSize.zw), level(0.0)).x; - float3 _378 = _372; - _378.z = MobileDirectionalLight_DirectionalLightShadowTexture.sample(MobileDirectionalLight_DirectionalLightShadowSampler, ((_313 + float2(1.5)) * MobileDirectionalLight.MobileDirectionalLight_DirectionalLightShadowSize.zw), level(0.0)).x; - float3 _381 = fast::clamp((_378 * _335) - _337, float3(0.0), float3(1.0)); - float _383 = _312.x; - float _384 = 1.0 - _383; - float3 _399 = _136; - _399.x = ((_339.x * _384) + _339.y) + (_339.z * _383); - float3 _403 = _399; - _403.y = ((_360.x * _384) + _360.y) + (_360.z * _383); - float3 _407 = _403; - _407.z = ((_381.x * _384) + _381.y) + (_381.z * _383); - float _408 = _312.y; - float _420 = fast::clamp((_224 * MobileDirectionalLight.MobileDirectionalLight_DirectionalLightDistanceFadeMAD.x) + MobileDirectionalLight.MobileDirectionalLight_DirectionalLightDistanceFadeMAD.y, 0.0, 1.0); - _423 = mix(fast::clamp(0.25 * dot(_407, float3(1.0 - _408, 1.0, _408)), 0.0, 1.0), 1.0, _420 * _420); - } - else - { - _423 = 1.0; - } - float3 _429 = normalize(_181 + MobileDirectionalLight.MobileDirectionalLight_DirectionalLightDirectionAndShadowTransition.xyz); - float _439 = (_253 * 0.25) + 0.25; - float3 _440 = cross(_206, _429); - float _442 = _253 * _253; - float _443 = fast::max(0.0, dot(_206, _429)) * _442; - float _446 = _442 / (dot(_440, _440) + (_443 * _443)); - bool _458 = float(_Globals.MobileReflectionParams.w > 0.0) != 0.0; - float4 _468 = ReflectionCubemap.sample(ReflectionCubemapSampler, ((-_181) + ((_206 * float3(_208)) * float3(2.0))), level(((_458 ? _Globals.MobileReflectionParams.w : View.View_ReflectionCubemapMaxMip) - 1.0) - (1.0 - (1.2000000476837158203125 * log2(_253))))); - float3 _481; - if (_458) - { - _481 = _468.xyz * View.View_SkyLightColor.xyz; - } - else - { - float3 _476 = _468.xyz * float3(_468.w * 16.0); - _481 = _476 * _476; - } - float3 _484 = float3(_276); - float3 _488; - _488 = ((float3(_423 * fast::max(0.0, dot(_206, MobileDirectionalLight.MobileDirectionalLight_DirectionalLightDirectionAndShadowTransition.xyz))) * MobileDirectionalLight.MobileDirectionalLight_DirectionalLightColor.xyz) * (_270 + float3(_276 * (_439 * fast::min(_446 * _446, 65504.0))))) + ((_481 * float3(fast::clamp(1.0, 0.0, 1.0))) * _484); - float3 _507; - float _509; - float _511; - float _537; - int _491 = 0; - for (;;) - { - if (_491 < _Globals.NumDynamicPointLights) - { - float3 _501 = _Globals.LightPositionAndInvRadius[_491].xyz - _179; - float _502 = dot(_501, _501); - float3 _505 = _501 * float3(rsqrt(_502)); - _507 = normalize(_181 + _505); - _509 = fast::max(0.0, dot(_206, _505)); - _511 = fast::max(0.0, dot(_206, _507)); - if (_Globals.LightColorAndFalloffExponent[_491].w == 0.0) - { - float _531 = _502 * (_Globals.LightPositionAndInvRadius[_491].w * _Globals.LightPositionAndInvRadius[_491].w); - float _534 = fast::clamp(1.0 - (_531 * _531), 0.0, 1.0); - _537 = (1.0 / (_502 + 1.0)) * (_534 * _534); - } - else - { - float3 _521 = _501 * float3(_Globals.LightPositionAndInvRadius[_491].w); - _537 = pow(1.0 - fast::clamp(dot(_521, _521), 0.0, 1.0), _Globals.LightColorAndFalloffExponent[_491].w); - } - float3 _544 = cross(_206, _507); - float _546 = _511 * _442; - float _549 = _442 / (dot(_544, _544) + (_546 * _546)); - _488 += fast::min(float3(65000.0), ((float3(_537 * _509) * _Globals.LightColorAndFalloffExponent[_491].xyz) * float3(0.3183098733425140380859375)) * (_270 + float3(_276 * (_439 * fast::min(_549 * _549, 65504.0))))); - _491++; - continue; - } - else - { - break; - } - } - float3 _567 = (mix(_488 + fast::max(float3(0.0), float3(0.0)), _270 + _484, float3(View.View_UnlitViewmodeMask)) * float3(in.in_var_TEXCOORD7.w)) + in.in_var_TEXCOORD7.xyz; - float4 _571 = float4(_567.x, _567.y, _567.z, _137.w); - _571.w = fast::min(in.in_var_TEXCOORD8.w, 65500.0); - out.out_var_SV_Target0 = _571; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-ue4-no-opt/asm/frag/array-copy-error.asm.invalid.frag b/third_party/spirv-cross/reference/shaders-ue4-no-opt/asm/frag/array-copy-error.asm.invalid.frag deleted file mode 100644 index bc40c7ccf7..0000000000 --- a/third_party/spirv-cross/reference/shaders-ue4-no-opt/asm/frag/array-copy-error.asm.invalid.frag +++ /dev/null @@ -1,353 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct type_View -{ - float4x4 View_TranslatedWorldToClip; - float4x4 View_WorldToClip; - float4x4 View_ClipToWorld; - float4x4 View_TranslatedWorldToView; - float4x4 View_ViewToTranslatedWorld; - float4x4 View_TranslatedWorldToCameraView; - float4x4 View_CameraViewToTranslatedWorld; - float4x4 View_ViewToClip; - float4x4 View_ViewToClipNoAA; - float4x4 View_ClipToView; - float4x4 View_ClipToTranslatedWorld; - float4x4 View_SVPositionToTranslatedWorld; - float4x4 View_ScreenToWorld; - float4x4 View_ScreenToTranslatedWorld; - packed_float3 View_ViewForward; - float PrePadding_View_908; - packed_float3 View_ViewUp; - float PrePadding_View_924; - packed_float3 View_ViewRight; - float PrePadding_View_940; - packed_float3 View_HMDViewNoRollUp; - float PrePadding_View_956; - packed_float3 View_HMDViewNoRollRight; - float PrePadding_View_972; - float4 View_InvDeviceZToWorldZTransform; - float4 View_ScreenPositionScaleBias; - packed_float3 View_WorldCameraOrigin; - float PrePadding_View_1020; - packed_float3 View_TranslatedWorldCameraOrigin; - float PrePadding_View_1036; - packed_float3 View_WorldViewOrigin; - float PrePadding_View_1052; - packed_float3 View_PreViewTranslation; - float PrePadding_View_1068; - float4x4 View_PrevProjection; - float4x4 View_PrevViewProj; - float4x4 View_PrevViewRotationProj; - float4x4 View_PrevViewToClip; - float4x4 View_PrevClipToView; - float4x4 View_PrevTranslatedWorldToClip; - float4x4 View_PrevTranslatedWorldToView; - float4x4 View_PrevViewToTranslatedWorld; - float4x4 View_PrevTranslatedWorldToCameraView; - float4x4 View_PrevCameraViewToTranslatedWorld; - packed_float3 View_PrevWorldCameraOrigin; - float PrePadding_View_1724; - packed_float3 View_PrevWorldViewOrigin; - float PrePadding_View_1740; - packed_float3 View_PrevPreViewTranslation; - float PrePadding_View_1756; - float4x4 View_PrevInvViewProj; - float4x4 View_PrevScreenToTranslatedWorld; - float4x4 View_ClipToPrevClip; - float4 View_TemporalAAJitter; - float4 View_GlobalClippingPlane; - float2 View_FieldOfViewWideAngles; - float2 View_PrevFieldOfViewWideAngles; - float4 View_ViewRectMin; - float4 View_ViewSizeAndInvSize; - float4 View_BufferSizeAndInvSize; - float4 View_BufferBilinearUVMinMax; - int View_NumSceneColorMSAASamples; - float View_PreExposure; - float View_OneOverPreExposure; - float PrePadding_View_2076; - float4 View_DiffuseOverrideParameter; - float4 View_SpecularOverrideParameter; - float4 View_NormalOverrideParameter; - float2 View_RoughnessOverrideParameter; - float View_PrevFrameGameTime; - float View_PrevFrameRealTime; - float View_OutOfBoundsMask; - float PrePadding_View_2148; - float PrePadding_View_2152; - float PrePadding_View_2156; - packed_float3 View_WorldCameraMovementSinceLastFrame; - float View_CullingSign; - float View_NearPlane; - float View_AdaptiveTessellationFactor; - float View_GameTime; - float View_RealTime; - float View_DeltaTime; - float View_MaterialTextureMipBias; - float View_MaterialTextureDerivativeMultiply; - uint View_Random; - uint View_FrameNumber; - uint View_StateFrameIndexMod8; - uint View_StateFrameIndex; - float View_CameraCut; - float View_UnlitViewmodeMask; - float PrePadding_View_2228; - float PrePadding_View_2232; - float PrePadding_View_2236; - float4 View_DirectionalLightColor; - packed_float3 View_DirectionalLightDirection; - float PrePadding_View_2268; - float4 View_TranslucencyLightingVolumeMin[2]; - float4 View_TranslucencyLightingVolumeInvSize[2]; - float4 View_TemporalAAParams; - float4 View_CircleDOFParams; - float View_DepthOfFieldSensorWidth; - float View_DepthOfFieldFocalDistance; - float View_DepthOfFieldScale; - float View_DepthOfFieldFocalLength; - float View_DepthOfFieldFocalRegion; - float View_DepthOfFieldNearTransitionRegion; - float View_DepthOfFieldFarTransitionRegion; - float View_MotionBlurNormalizedToPixel; - float View_bSubsurfacePostprocessEnabled; - float View_GeneralPurposeTweak; - float View_DemosaicVposOffset; - float PrePadding_View_2412; - packed_float3 View_IndirectLightingColorScale; - float View_HDR32bppEncodingMode; - packed_float3 View_AtmosphericFogSunDirection; - float View_AtmosphericFogSunPower; - float View_AtmosphericFogPower; - float View_AtmosphericFogDensityScale; - float View_AtmosphericFogDensityOffset; - float View_AtmosphericFogGroundOffset; - float View_AtmosphericFogDistanceScale; - float View_AtmosphericFogAltitudeScale; - float View_AtmosphericFogHeightScaleRayleigh; - float View_AtmosphericFogStartDistance; - float View_AtmosphericFogDistanceOffset; - float View_AtmosphericFogSunDiscScale; - float View_AtmosphericFogSunDiscHalfApexAngleRadian; - float PrePadding_View_2492; - float4 View_AtmosphericFogSunDiscLuminance; - uint View_AtmosphericFogRenderMask; - uint View_AtmosphericFogInscatterAltitudeSampleNum; - uint PrePadding_View_2520; - uint PrePadding_View_2524; - float4 View_AtmosphericFogSunColor; - packed_float3 View_NormalCurvatureToRoughnessScaleBias; - float View_RenderingReflectionCaptureMask; - float4 View_AmbientCubemapTint; - float View_AmbientCubemapIntensity; - float View_SkyLightParameters; - float PrePadding_View_2584; - float PrePadding_View_2588; - float4 View_SkyLightColor; - float4 View_SkyIrradianceEnvironmentMap[7]; - float View_MobilePreviewMode; - float View_HMDEyePaddingOffset; - float View_ReflectionCubemapMaxMip; - float View_ShowDecalsMask; - uint View_DistanceFieldAOSpecularOcclusionMode; - float View_IndirectCapsuleSelfShadowingIntensity; - float PrePadding_View_2744; - float PrePadding_View_2748; - packed_float3 View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight; - int View_StereoPassIndex; - float4 View_GlobalVolumeCenterAndExtent[4]; - float4 View_GlobalVolumeWorldToUVAddAndMul[4]; - float View_GlobalVolumeDimension; - float View_GlobalVolumeTexelSize; - float View_MaxGlobalDistance; - float PrePadding_View_2908; - int2 View_CursorPosition; - float View_bCheckerboardSubsurfaceProfileRendering; - float PrePadding_View_2924; - packed_float3 View_VolumetricFogInvGridSize; - float PrePadding_View_2940; - packed_float3 View_VolumetricFogGridZParams; - float PrePadding_View_2956; - float2 View_VolumetricFogSVPosToVolumeUV; - float View_VolumetricFogMaxDistance; - float PrePadding_View_2972; - packed_float3 View_VolumetricLightmapWorldToUVScale; - float PrePadding_View_2988; - packed_float3 View_VolumetricLightmapWorldToUVAdd; - float PrePadding_View_3004; - packed_float3 View_VolumetricLightmapIndirectionTextureSize; - float View_VolumetricLightmapBrickSize; - packed_float3 View_VolumetricLightmapBrickTexelSize; - float View_StereoIPD; - float View_IndirectLightingCacheShowFlag; - float View_EyeToPixelSpreadAngle; -}; - -struct type_PrimitiveDither -{ - float PrimitiveDither_LODFactor; -}; - -struct type_PrimitiveFade -{ - float2 PrimitiveFade_FadeTimeScaleBias; -}; - -struct type_Material -{ - float4 Material_VectorExpressions[9]; - float4 Material_ScalarExpressions[3]; -}; - -constant float _98 = {}; -constant float _103 = {}; - -struct main0_out -{ - float4 out_var_SV_Target0 [[color(0)]]; - float gl_FragDepth [[depth(less)]]; -}; - -struct main0_in -{ - float4 in_var_TEXCOORD6 [[user(locn0)]]; - float4 in_var_TEXCOORD7 [[user(locn1)]]; - float4 in_var_TEXCOORD10_centroid [[user(locn2)]]; - float4 in_var_TEXCOORD11_centroid [[user(locn3)]]; - float4 in_var_TEXCOORD0_0 [[user(locn4)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], constant type_View& View [[buffer(0)]], constant type_PrimitiveDither& PrimitiveDither [[buffer(1)]], constant type_PrimitiveFade& PrimitiveFade [[buffer(2)]], constant type_Material& Material [[buffer(3)]], texture2d Material_Texture2D_0 [[texture(0)]], texture2d Material_Texture2D_3 [[texture(1)]], sampler Material_Texture2D_0Sampler [[sampler(0)]], sampler Material_Texture2D_3Sampler [[sampler(1)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - spvUnsafeArray in_var_TEXCOORD0 = {}; - in_var_TEXCOORD0[0] = in.in_var_TEXCOORD0_0; - float2 _135 = gl_FragCoord.xy - View.View_ViewRectMin.xy; - float4 _140 = float4(_103, _103, gl_FragCoord.z, 1.0) * float4(gl_FragCoord.w); - float4 _144 = View.View_SVPositionToTranslatedWorld * float4(gl_FragCoord.xyz, 1.0); - float3 _148 = _144.xyz / float3(_144.w); - float3 _149 = _148 - float3(View.View_PreViewTranslation); - float3 _151 = normalize(-_148); - float3 _152 = _151 * float3x3(in.in_var_TEXCOORD10_centroid.xyz, cross(in.in_var_TEXCOORD11_centroid.xyz, in.in_var_TEXCOORD10_centroid.xyz) * float3(in.in_var_TEXCOORD11_centroid.w), in.in_var_TEXCOORD11_centroid.xyz); - float _170 = mix(Material.Material_ScalarExpressions[0].y, Material.Material_ScalarExpressions[0].z, fast::min(fast::max(abs(dot(_151, in.in_var_TEXCOORD11_centroid.xyz)), 0.0), 1.0)); - float _171 = floor(_170); - float _172 = 1.0 / _170; - float2 _174 = (float2(Material.Material_ScalarExpressions[0].x) * ((_152.xy * float2(-1.0)) / float2(_152.z))) * float2(_172); - float2 _175 = dfdx(float2(in_var_TEXCOORD0[0].x, in_var_TEXCOORD0[0].y)); - float2 _176 = dfdy(float2(in_var_TEXCOORD0[0].x, in_var_TEXCOORD0[0].y)); - float _180_copy; - float2 _183; - _183 = float2(0.0); - float _188; - float _211; - float2 _212; - float _180 = 1.0; - int _185 = 0; - float _187 = 1.0; - float _189 = 1.0; - for (;;) - { - if (float(_185) < (_171 + 2.0)) - { - _188 = Material_Texture2D_0.sample(Material_Texture2D_0Sampler, (float2(in_var_TEXCOORD0[0].x, in_var_TEXCOORD0[0].y) + _183), gradient2d(_175, _176)).y; - if (_180 < _188) - { - float _201 = _188 - _180; - float _203 = _201 / ((_189 - _187) + _201); - _211 = (_189 * _203) + (_180 * (1.0 - _203)); - _212 = _183 - (float2(_203) * _174); - break; - } - _180_copy = _180; - _180 -= _172; - _183 += _174; - _185++; - _187 = _188; - _189 = _180_copy; - continue; - } - else - { - _211 = _98; - _212 = _183; - break; - } - } - float4 _218 = Material_Texture2D_0.sample(Material_Texture2D_0Sampler, (float2(in_var_TEXCOORD0[0].x, in_var_TEXCOORD0[0].y) + _212.xy), bias(View.View_MaterialTextureMipBias)); - float2 _229 = _135 + float2(View.View_TemporalAAParams.x); - float _237 = float((uint(_229.x) + (2u * uint(_229.y))) % 5u); - float2 _238 = _135 * float2(0.015625); - float4 _242 = Material_Texture2D_3.sample(Material_Texture2D_3Sampler, _238, bias(View.View_MaterialTextureMipBias)); - float4 _254 = Material_Texture2D_3.sample(Material_Texture2D_3Sampler, _238, bias(View.View_MaterialTextureMipBias)); - float3 _272 = float3(_212, (1.0 - _211) * Material.Material_ScalarExpressions[0].x); - float2 _275 = dfdx(float2(in_var_TEXCOORD0[0].x, in_var_TEXCOORD0[0].y)); - float2 _276 = abs(_275); - float3 _279 = dfdx(_149); - float2 _283 = dfdy(float2(in_var_TEXCOORD0[0].x, in_var_TEXCOORD0[0].y)); - float2 _284 = abs(_283); - float3 _287 = dfdy(_149); - if (PrimitiveDither.PrimitiveDither_LODFactor != 0.0) - { - if (abs(PrimitiveDither.PrimitiveDither_LODFactor) > 0.001000000047497451305389404296875) - { - float _317 = fract(cos(dot(floor(gl_FragCoord.xy), float2(347.834503173828125, 3343.28369140625))) * 1000.0); - if ((float((PrimitiveDither.PrimitiveDither_LODFactor < 0.0) ? ((PrimitiveDither.PrimitiveDither_LODFactor + 1.0) > _317) : (PrimitiveDither.PrimitiveDither_LODFactor < _317)) - 0.001000000047497451305389404296875) < 0.0) - { - discard_fragment(); - } - } - } - if ((((_218.z + ((fast::min(fast::max(1.0 - (_218.x * Material.Material_ScalarExpressions[2].y), 0.0), 1.0) + ((_237 + (_242.x * Material.Material_ScalarExpressions[2].z)) * 0.16666667163372039794921875)) + (-0.5))) * ((fast::clamp((View.View_RealTime * PrimitiveFade.PrimitiveFade_FadeTimeScaleBias.x) + PrimitiveFade.PrimitiveFade_FadeTimeScaleBias.y, 0.0, 1.0) + ((_237 + _254.x) * 0.16666667163372039794921875)) + (-0.5))) - 0.33329999446868896484375) < 0.0) - { - discard_fragment(); - } - float2 _351 = ((((in.in_var_TEXCOORD6.xy / float2(in.in_var_TEXCOORD6.w)) - View.View_TemporalAAJitter.xy) - ((in.in_var_TEXCOORD7.xy / float2(in.in_var_TEXCOORD7.w)) - View.View_TemporalAAJitter.zw)) * float2(0.2495000064373016357421875)) + float2(0.49999237060546875); - out.gl_FragDepth = fast::min(_140.z / (_140.w + (sqrt(dot(_272, _272)) / (fast::max(sqrt(dot(_276, _276)) / sqrt(dot(_279, _279)), sqrt(dot(_284, _284)) / sqrt(dot(_287, _287))) / abs(dot(float3x3(View.View_ViewToTranslatedWorld[0].xyz, View.View_ViewToTranslatedWorld[1].xyz, View.View_ViewToTranslatedWorld[2].xyz) * float3(0.0, 0.0, 1.0), _151))))), gl_FragCoord.z); - out.out_var_SV_Target0 = float4(_351.x, _351.y, float2(0.0).x, float2(0.0).y); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-ue4-no-opt/asm/frag/phi-variable-declaration.asm.invalid.frag b/third_party/spirv-cross/reference/shaders-ue4-no-opt/asm/frag/phi-variable-declaration.asm.invalid.frag deleted file mode 100644 index bc40c7ccf7..0000000000 --- a/third_party/spirv-cross/reference/shaders-ue4-no-opt/asm/frag/phi-variable-declaration.asm.invalid.frag +++ /dev/null @@ -1,353 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct type_View -{ - float4x4 View_TranslatedWorldToClip; - float4x4 View_WorldToClip; - float4x4 View_ClipToWorld; - float4x4 View_TranslatedWorldToView; - float4x4 View_ViewToTranslatedWorld; - float4x4 View_TranslatedWorldToCameraView; - float4x4 View_CameraViewToTranslatedWorld; - float4x4 View_ViewToClip; - float4x4 View_ViewToClipNoAA; - float4x4 View_ClipToView; - float4x4 View_ClipToTranslatedWorld; - float4x4 View_SVPositionToTranslatedWorld; - float4x4 View_ScreenToWorld; - float4x4 View_ScreenToTranslatedWorld; - packed_float3 View_ViewForward; - float PrePadding_View_908; - packed_float3 View_ViewUp; - float PrePadding_View_924; - packed_float3 View_ViewRight; - float PrePadding_View_940; - packed_float3 View_HMDViewNoRollUp; - float PrePadding_View_956; - packed_float3 View_HMDViewNoRollRight; - float PrePadding_View_972; - float4 View_InvDeviceZToWorldZTransform; - float4 View_ScreenPositionScaleBias; - packed_float3 View_WorldCameraOrigin; - float PrePadding_View_1020; - packed_float3 View_TranslatedWorldCameraOrigin; - float PrePadding_View_1036; - packed_float3 View_WorldViewOrigin; - float PrePadding_View_1052; - packed_float3 View_PreViewTranslation; - float PrePadding_View_1068; - float4x4 View_PrevProjection; - float4x4 View_PrevViewProj; - float4x4 View_PrevViewRotationProj; - float4x4 View_PrevViewToClip; - float4x4 View_PrevClipToView; - float4x4 View_PrevTranslatedWorldToClip; - float4x4 View_PrevTranslatedWorldToView; - float4x4 View_PrevViewToTranslatedWorld; - float4x4 View_PrevTranslatedWorldToCameraView; - float4x4 View_PrevCameraViewToTranslatedWorld; - packed_float3 View_PrevWorldCameraOrigin; - float PrePadding_View_1724; - packed_float3 View_PrevWorldViewOrigin; - float PrePadding_View_1740; - packed_float3 View_PrevPreViewTranslation; - float PrePadding_View_1756; - float4x4 View_PrevInvViewProj; - float4x4 View_PrevScreenToTranslatedWorld; - float4x4 View_ClipToPrevClip; - float4 View_TemporalAAJitter; - float4 View_GlobalClippingPlane; - float2 View_FieldOfViewWideAngles; - float2 View_PrevFieldOfViewWideAngles; - float4 View_ViewRectMin; - float4 View_ViewSizeAndInvSize; - float4 View_BufferSizeAndInvSize; - float4 View_BufferBilinearUVMinMax; - int View_NumSceneColorMSAASamples; - float View_PreExposure; - float View_OneOverPreExposure; - float PrePadding_View_2076; - float4 View_DiffuseOverrideParameter; - float4 View_SpecularOverrideParameter; - float4 View_NormalOverrideParameter; - float2 View_RoughnessOverrideParameter; - float View_PrevFrameGameTime; - float View_PrevFrameRealTime; - float View_OutOfBoundsMask; - float PrePadding_View_2148; - float PrePadding_View_2152; - float PrePadding_View_2156; - packed_float3 View_WorldCameraMovementSinceLastFrame; - float View_CullingSign; - float View_NearPlane; - float View_AdaptiveTessellationFactor; - float View_GameTime; - float View_RealTime; - float View_DeltaTime; - float View_MaterialTextureMipBias; - float View_MaterialTextureDerivativeMultiply; - uint View_Random; - uint View_FrameNumber; - uint View_StateFrameIndexMod8; - uint View_StateFrameIndex; - float View_CameraCut; - float View_UnlitViewmodeMask; - float PrePadding_View_2228; - float PrePadding_View_2232; - float PrePadding_View_2236; - float4 View_DirectionalLightColor; - packed_float3 View_DirectionalLightDirection; - float PrePadding_View_2268; - float4 View_TranslucencyLightingVolumeMin[2]; - float4 View_TranslucencyLightingVolumeInvSize[2]; - float4 View_TemporalAAParams; - float4 View_CircleDOFParams; - float View_DepthOfFieldSensorWidth; - float View_DepthOfFieldFocalDistance; - float View_DepthOfFieldScale; - float View_DepthOfFieldFocalLength; - float View_DepthOfFieldFocalRegion; - float View_DepthOfFieldNearTransitionRegion; - float View_DepthOfFieldFarTransitionRegion; - float View_MotionBlurNormalizedToPixel; - float View_bSubsurfacePostprocessEnabled; - float View_GeneralPurposeTweak; - float View_DemosaicVposOffset; - float PrePadding_View_2412; - packed_float3 View_IndirectLightingColorScale; - float View_HDR32bppEncodingMode; - packed_float3 View_AtmosphericFogSunDirection; - float View_AtmosphericFogSunPower; - float View_AtmosphericFogPower; - float View_AtmosphericFogDensityScale; - float View_AtmosphericFogDensityOffset; - float View_AtmosphericFogGroundOffset; - float View_AtmosphericFogDistanceScale; - float View_AtmosphericFogAltitudeScale; - float View_AtmosphericFogHeightScaleRayleigh; - float View_AtmosphericFogStartDistance; - float View_AtmosphericFogDistanceOffset; - float View_AtmosphericFogSunDiscScale; - float View_AtmosphericFogSunDiscHalfApexAngleRadian; - float PrePadding_View_2492; - float4 View_AtmosphericFogSunDiscLuminance; - uint View_AtmosphericFogRenderMask; - uint View_AtmosphericFogInscatterAltitudeSampleNum; - uint PrePadding_View_2520; - uint PrePadding_View_2524; - float4 View_AtmosphericFogSunColor; - packed_float3 View_NormalCurvatureToRoughnessScaleBias; - float View_RenderingReflectionCaptureMask; - float4 View_AmbientCubemapTint; - float View_AmbientCubemapIntensity; - float View_SkyLightParameters; - float PrePadding_View_2584; - float PrePadding_View_2588; - float4 View_SkyLightColor; - float4 View_SkyIrradianceEnvironmentMap[7]; - float View_MobilePreviewMode; - float View_HMDEyePaddingOffset; - float View_ReflectionCubemapMaxMip; - float View_ShowDecalsMask; - uint View_DistanceFieldAOSpecularOcclusionMode; - float View_IndirectCapsuleSelfShadowingIntensity; - float PrePadding_View_2744; - float PrePadding_View_2748; - packed_float3 View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight; - int View_StereoPassIndex; - float4 View_GlobalVolumeCenterAndExtent[4]; - float4 View_GlobalVolumeWorldToUVAddAndMul[4]; - float View_GlobalVolumeDimension; - float View_GlobalVolumeTexelSize; - float View_MaxGlobalDistance; - float PrePadding_View_2908; - int2 View_CursorPosition; - float View_bCheckerboardSubsurfaceProfileRendering; - float PrePadding_View_2924; - packed_float3 View_VolumetricFogInvGridSize; - float PrePadding_View_2940; - packed_float3 View_VolumetricFogGridZParams; - float PrePadding_View_2956; - float2 View_VolumetricFogSVPosToVolumeUV; - float View_VolumetricFogMaxDistance; - float PrePadding_View_2972; - packed_float3 View_VolumetricLightmapWorldToUVScale; - float PrePadding_View_2988; - packed_float3 View_VolumetricLightmapWorldToUVAdd; - float PrePadding_View_3004; - packed_float3 View_VolumetricLightmapIndirectionTextureSize; - float View_VolumetricLightmapBrickSize; - packed_float3 View_VolumetricLightmapBrickTexelSize; - float View_StereoIPD; - float View_IndirectLightingCacheShowFlag; - float View_EyeToPixelSpreadAngle; -}; - -struct type_PrimitiveDither -{ - float PrimitiveDither_LODFactor; -}; - -struct type_PrimitiveFade -{ - float2 PrimitiveFade_FadeTimeScaleBias; -}; - -struct type_Material -{ - float4 Material_VectorExpressions[9]; - float4 Material_ScalarExpressions[3]; -}; - -constant float _98 = {}; -constant float _103 = {}; - -struct main0_out -{ - float4 out_var_SV_Target0 [[color(0)]]; - float gl_FragDepth [[depth(less)]]; -}; - -struct main0_in -{ - float4 in_var_TEXCOORD6 [[user(locn0)]]; - float4 in_var_TEXCOORD7 [[user(locn1)]]; - float4 in_var_TEXCOORD10_centroid [[user(locn2)]]; - float4 in_var_TEXCOORD11_centroid [[user(locn3)]]; - float4 in_var_TEXCOORD0_0 [[user(locn4)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], constant type_View& View [[buffer(0)]], constant type_PrimitiveDither& PrimitiveDither [[buffer(1)]], constant type_PrimitiveFade& PrimitiveFade [[buffer(2)]], constant type_Material& Material [[buffer(3)]], texture2d Material_Texture2D_0 [[texture(0)]], texture2d Material_Texture2D_3 [[texture(1)]], sampler Material_Texture2D_0Sampler [[sampler(0)]], sampler Material_Texture2D_3Sampler [[sampler(1)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - spvUnsafeArray in_var_TEXCOORD0 = {}; - in_var_TEXCOORD0[0] = in.in_var_TEXCOORD0_0; - float2 _135 = gl_FragCoord.xy - View.View_ViewRectMin.xy; - float4 _140 = float4(_103, _103, gl_FragCoord.z, 1.0) * float4(gl_FragCoord.w); - float4 _144 = View.View_SVPositionToTranslatedWorld * float4(gl_FragCoord.xyz, 1.0); - float3 _148 = _144.xyz / float3(_144.w); - float3 _149 = _148 - float3(View.View_PreViewTranslation); - float3 _151 = normalize(-_148); - float3 _152 = _151 * float3x3(in.in_var_TEXCOORD10_centroid.xyz, cross(in.in_var_TEXCOORD11_centroid.xyz, in.in_var_TEXCOORD10_centroid.xyz) * float3(in.in_var_TEXCOORD11_centroid.w), in.in_var_TEXCOORD11_centroid.xyz); - float _170 = mix(Material.Material_ScalarExpressions[0].y, Material.Material_ScalarExpressions[0].z, fast::min(fast::max(abs(dot(_151, in.in_var_TEXCOORD11_centroid.xyz)), 0.0), 1.0)); - float _171 = floor(_170); - float _172 = 1.0 / _170; - float2 _174 = (float2(Material.Material_ScalarExpressions[0].x) * ((_152.xy * float2(-1.0)) / float2(_152.z))) * float2(_172); - float2 _175 = dfdx(float2(in_var_TEXCOORD0[0].x, in_var_TEXCOORD0[0].y)); - float2 _176 = dfdy(float2(in_var_TEXCOORD0[0].x, in_var_TEXCOORD0[0].y)); - float _180_copy; - float2 _183; - _183 = float2(0.0); - float _188; - float _211; - float2 _212; - float _180 = 1.0; - int _185 = 0; - float _187 = 1.0; - float _189 = 1.0; - for (;;) - { - if (float(_185) < (_171 + 2.0)) - { - _188 = Material_Texture2D_0.sample(Material_Texture2D_0Sampler, (float2(in_var_TEXCOORD0[0].x, in_var_TEXCOORD0[0].y) + _183), gradient2d(_175, _176)).y; - if (_180 < _188) - { - float _201 = _188 - _180; - float _203 = _201 / ((_189 - _187) + _201); - _211 = (_189 * _203) + (_180 * (1.0 - _203)); - _212 = _183 - (float2(_203) * _174); - break; - } - _180_copy = _180; - _180 -= _172; - _183 += _174; - _185++; - _187 = _188; - _189 = _180_copy; - continue; - } - else - { - _211 = _98; - _212 = _183; - break; - } - } - float4 _218 = Material_Texture2D_0.sample(Material_Texture2D_0Sampler, (float2(in_var_TEXCOORD0[0].x, in_var_TEXCOORD0[0].y) + _212.xy), bias(View.View_MaterialTextureMipBias)); - float2 _229 = _135 + float2(View.View_TemporalAAParams.x); - float _237 = float((uint(_229.x) + (2u * uint(_229.y))) % 5u); - float2 _238 = _135 * float2(0.015625); - float4 _242 = Material_Texture2D_3.sample(Material_Texture2D_3Sampler, _238, bias(View.View_MaterialTextureMipBias)); - float4 _254 = Material_Texture2D_3.sample(Material_Texture2D_3Sampler, _238, bias(View.View_MaterialTextureMipBias)); - float3 _272 = float3(_212, (1.0 - _211) * Material.Material_ScalarExpressions[0].x); - float2 _275 = dfdx(float2(in_var_TEXCOORD0[0].x, in_var_TEXCOORD0[0].y)); - float2 _276 = abs(_275); - float3 _279 = dfdx(_149); - float2 _283 = dfdy(float2(in_var_TEXCOORD0[0].x, in_var_TEXCOORD0[0].y)); - float2 _284 = abs(_283); - float3 _287 = dfdy(_149); - if (PrimitiveDither.PrimitiveDither_LODFactor != 0.0) - { - if (abs(PrimitiveDither.PrimitiveDither_LODFactor) > 0.001000000047497451305389404296875) - { - float _317 = fract(cos(dot(floor(gl_FragCoord.xy), float2(347.834503173828125, 3343.28369140625))) * 1000.0); - if ((float((PrimitiveDither.PrimitiveDither_LODFactor < 0.0) ? ((PrimitiveDither.PrimitiveDither_LODFactor + 1.0) > _317) : (PrimitiveDither.PrimitiveDither_LODFactor < _317)) - 0.001000000047497451305389404296875) < 0.0) - { - discard_fragment(); - } - } - } - if ((((_218.z + ((fast::min(fast::max(1.0 - (_218.x * Material.Material_ScalarExpressions[2].y), 0.0), 1.0) + ((_237 + (_242.x * Material.Material_ScalarExpressions[2].z)) * 0.16666667163372039794921875)) + (-0.5))) * ((fast::clamp((View.View_RealTime * PrimitiveFade.PrimitiveFade_FadeTimeScaleBias.x) + PrimitiveFade.PrimitiveFade_FadeTimeScaleBias.y, 0.0, 1.0) + ((_237 + _254.x) * 0.16666667163372039794921875)) + (-0.5))) - 0.33329999446868896484375) < 0.0) - { - discard_fragment(); - } - float2 _351 = ((((in.in_var_TEXCOORD6.xy / float2(in.in_var_TEXCOORD6.w)) - View.View_TemporalAAJitter.xy) - ((in.in_var_TEXCOORD7.xy / float2(in.in_var_TEXCOORD7.w)) - View.View_TemporalAAJitter.zw)) * float2(0.2495000064373016357421875)) + float2(0.49999237060546875); - out.gl_FragDepth = fast::min(_140.z / (_140.w + (sqrt(dot(_272, _272)) / (fast::max(sqrt(dot(_276, _276)) / sqrt(dot(_279, _279)), sqrt(dot(_284, _284)) / sqrt(dot(_287, _287))) / abs(dot(float3x3(View.View_ViewToTranslatedWorld[0].xyz, View.View_ViewToTranslatedWorld[1].xyz, View.View_ViewToTranslatedWorld[2].xyz) * float3(0.0, 0.0, 1.0), _151))))), gl_FragCoord.z); - out.out_var_SV_Target0 = float4(_351.x, _351.y, float2(0.0).x, float2(0.0).y); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-ue4-no-opt/asm/vert/loop-accesschain-writethrough.asm.invalid.vert b/third_party/spirv-cross/reference/shaders-ue4-no-opt/asm/vert/loop-accesschain-writethrough.asm.invalid.vert deleted file mode 100644 index b1298b7e68..0000000000 --- a/third_party/spirv-cross/reference/shaders-ue4-no-opt/asm/vert/loop-accesschain-writethrough.asm.invalid.vert +++ /dev/null @@ -1,122 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct type_Globals -{ - float4 ViewportSize; - float ScatteringScaling; - float CocRadiusToCircumscribedRadius; -}; - -struct type_StructuredBuffer_v4float -{ - float4 _m0[1]; -}; - -struct main0_out -{ - float2 out_var_TEXCOORD0 [[user(locn0)]]; - float4 out_var_TEXCOORD1 [[user(locn1)]]; - float4 out_var_TEXCOORD2 [[user(locn2)]]; - float4 out_var_TEXCOORD3 [[user(locn3)]]; - float4 out_var_TEXCOORD4 [[user(locn4)]]; - float4 out_var_TEXCOORD5 [[user(locn5)]]; - float4 out_var_TEXCOORD6 [[user(locn6)]]; - float4 gl_Position [[position]]; -}; - -vertex main0_out main0(constant type_Globals& _Globals [[buffer(0)]], const device type_StructuredBuffer_v4float& ScatterDrawList [[buffer(1)]], uint gl_VertexIndex [[vertex_id]], uint gl_InstanceIndex [[instance_id]]) -{ - main0_out out = {}; - uint _66 = gl_VertexIndex / 4u; - uint _68 = gl_VertexIndex - (_66 * 4u); - uint _70 = (16u * gl_InstanceIndex) + _66; - float _72; - _72 = 0.0; - spvUnsafeArray _61; - spvUnsafeArray _62; - spvUnsafeArray _63; - float _73; - uint _75 = 0u; - for (;;) - { - if (_75 < 4u) - { - uint _82 = ((5u * _70) + _75) + 1u; - _61[_75] = float4(ScatterDrawList._m0[_82].xyz, 0.0); - _62[_75] = ScatterDrawList._m0[_82].w; - if (_75 == 0u) - { - _73 = _62[_75]; - } - else - { - _73 = fast::max(_72, _62[_75]); - } - _63[_75].x = (-0.5) / _62[_75]; - _63[_75].y = (0.5 * _62[_75]) + 0.5; - _72 = _73; - _75++; - continue; - } - else - { - break; - } - } - float2 _144 = float2(_Globals.ScatteringScaling) * ScatterDrawList._m0[5u * _70].xy; - float2 _173 = (((float2((_72 * _Globals.CocRadiusToCircumscribedRadius) + 1.0) * ((float2(float(_68 % 2u), float(_68 / 2u)) * float2(2.0)) - float2(1.0))) + _144) + float2(0.5)) * _Globals.ViewportSize.zw; - out.out_var_TEXCOORD0 = _144; - out.out_var_TEXCOORD1 = float4(_61[0].xyz, _62[0]); - out.out_var_TEXCOORD2 = float4(_61[1].xyz, _62[1]); - out.out_var_TEXCOORD3 = float4(_61[2].xyz, _62[2]); - out.out_var_TEXCOORD4 = float4(_61[3].xyz, _62[3]); - out.out_var_TEXCOORD5 = float4(_63[0].x, _63[0].y, _63[1].x, _63[1].y); - out.out_var_TEXCOORD6 = float4(_63[2].x, _63[2].y, _63[3].x, _63[3].y); - out.gl_Position = float4((_173.x * 2.0) - 1.0, 1.0 - (_173.y * 2.0), 0.0, 1.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-ue4/asm/frag/depth-compare.asm.frag b/third_party/spirv-cross/reference/shaders-ue4/asm/frag/depth-compare.asm.frag deleted file mode 100644 index bdeccc2f55..0000000000 --- a/third_party/spirv-cross/reference/shaders-ue4/asm/frag/depth-compare.asm.frag +++ /dev/null @@ -1,314 +0,0 @@ -#include -#include - -using namespace metal; - -struct type_View -{ - float4x4 View_TranslatedWorldToClip; - float4x4 View_WorldToClip; - float4x4 View_TranslatedWorldToView; - float4x4 View_ViewToTranslatedWorld; - float4x4 View_TranslatedWorldToCameraView; - float4x4 View_CameraViewToTranslatedWorld; - float4x4 View_ViewToClip; - float4x4 View_ViewToClipNoAA; - float4x4 View_ClipToView; - float4x4 View_ClipToTranslatedWorld; - float4x4 View_SVPositionToTranslatedWorld; - float4x4 View_ScreenToWorld; - float4x4 View_ScreenToTranslatedWorld; - packed_float3 View_ViewForward; - float PrePadding_View_844; - packed_float3 View_ViewUp; - float PrePadding_View_860; - packed_float3 View_ViewRight; - float PrePadding_View_876; - packed_float3 View_HMDViewNoRollUp; - float PrePadding_View_892; - packed_float3 View_HMDViewNoRollRight; - float PrePadding_View_908; - float4 View_InvDeviceZToWorldZTransform; - float4 View_ScreenPositionScaleBias; - packed_float3 View_WorldCameraOrigin; - float PrePadding_View_956; - packed_float3 View_TranslatedWorldCameraOrigin; - float PrePadding_View_972; - packed_float3 View_WorldViewOrigin; - float PrePadding_View_988; - packed_float3 View_PreViewTranslation; - float PrePadding_View_1004; - float4x4 View_PrevProjection; - float4x4 View_PrevViewProj; - float4x4 View_PrevViewRotationProj; - float4x4 View_PrevViewToClip; - float4x4 View_PrevClipToView; - float4x4 View_PrevTranslatedWorldToClip; - float4x4 View_PrevTranslatedWorldToView; - float4x4 View_PrevViewToTranslatedWorld; - float4x4 View_PrevTranslatedWorldToCameraView; - float4x4 View_PrevCameraViewToTranslatedWorld; - packed_float3 View_PrevWorldCameraOrigin; - float PrePadding_View_1660; - packed_float3 View_PrevWorldViewOrigin; - float PrePadding_View_1676; - packed_float3 View_PrevPreViewTranslation; - float PrePadding_View_1692; - float4x4 View_PrevInvViewProj; - float4x4 View_PrevScreenToTranslatedWorld; - float4x4 View_ClipToPrevClip; - float4 View_TemporalAAJitter; - float4 View_GlobalClippingPlane; - float2 View_FieldOfViewWideAngles; - float2 View_PrevFieldOfViewWideAngles; - float4 View_ViewRectMin; - float4 View_ViewSizeAndInvSize; - float4 View_BufferSizeAndInvSize; - float4 View_BufferBilinearUVMinMax; - int View_NumSceneColorMSAASamples; - float View_PreExposure; - float View_OneOverPreExposure; - float PrePadding_View_2012; - float4 View_DiffuseOverrideParameter; - float4 View_SpecularOverrideParameter; - float4 View_NormalOverrideParameter; - float2 View_RoughnessOverrideParameter; - float View_PrevFrameGameTime; - float View_PrevFrameRealTime; - float View_OutOfBoundsMask; - float PrePadding_View_2084; - float PrePadding_View_2088; - float PrePadding_View_2092; - packed_float3 View_WorldCameraMovementSinceLastFrame; - float View_CullingSign; - float View_NearPlane; - float View_AdaptiveTessellationFactor; - float View_GameTime; - float View_RealTime; - float View_DeltaTime; - float View_MaterialTextureMipBias; - float View_MaterialTextureDerivativeMultiply; - uint View_Random; - uint View_FrameNumber; - uint View_StateFrameIndexMod8; - uint View_StateFrameIndex; - float View_CameraCut; - float View_UnlitViewmodeMask; - float PrePadding_View_2164; - float PrePadding_View_2168; - float PrePadding_View_2172; - float4 View_DirectionalLightColor; - packed_float3 View_DirectionalLightDirection; - float PrePadding_View_2204; - float4 View_TranslucencyLightingVolumeMin[2]; - float4 View_TranslucencyLightingVolumeInvSize[2]; - float4 View_TemporalAAParams; - float4 View_CircleDOFParams; - float View_DepthOfFieldSensorWidth; - float View_DepthOfFieldFocalDistance; - float View_DepthOfFieldScale; - float View_DepthOfFieldFocalLength; - float View_DepthOfFieldFocalRegion; - float View_DepthOfFieldNearTransitionRegion; - float View_DepthOfFieldFarTransitionRegion; - float View_MotionBlurNormalizedToPixel; - float View_bSubsurfacePostprocessEnabled; - float View_GeneralPurposeTweak; - float View_DemosaicVposOffset; - float PrePadding_View_2348; - packed_float3 View_IndirectLightingColorScale; - float View_HDR32bppEncodingMode; - packed_float3 View_AtmosphericFogSunDirection; - float View_AtmosphericFogSunPower; - float View_AtmosphericFogPower; - float View_AtmosphericFogDensityScale; - float View_AtmosphericFogDensityOffset; - float View_AtmosphericFogGroundOffset; - float View_AtmosphericFogDistanceScale; - float View_AtmosphericFogAltitudeScale; - float View_AtmosphericFogHeightScaleRayleigh; - float View_AtmosphericFogStartDistance; - float View_AtmosphericFogDistanceOffset; - float View_AtmosphericFogSunDiscScale; - uint View_AtmosphericFogRenderMask; - uint View_AtmosphericFogInscatterAltitudeSampleNum; - float4 View_AtmosphericFogSunColor; - packed_float3 View_NormalCurvatureToRoughnessScaleBias; - float View_RenderingReflectionCaptureMask; - float4 View_AmbientCubemapTint; - float View_AmbientCubemapIntensity; - float View_SkyLightParameters; - float PrePadding_View_2488; - float PrePadding_View_2492; - float4 View_SkyLightColor; - float4 View_SkyIrradianceEnvironmentMap[7]; - float View_MobilePreviewMode; - float View_HMDEyePaddingOffset; - float View_ReflectionCubemapMaxMip; - float View_ShowDecalsMask; - uint View_DistanceFieldAOSpecularOcclusionMode; - float View_IndirectCapsuleSelfShadowingIntensity; - float PrePadding_View_2648; - float PrePadding_View_2652; - packed_float3 View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight; - int View_StereoPassIndex; - float4 View_GlobalVolumeCenterAndExtent[4]; - float4 View_GlobalVolumeWorldToUVAddAndMul[4]; - float View_GlobalVolumeDimension; - float View_GlobalVolumeTexelSize; - float View_MaxGlobalDistance; - float View_bCheckerboardSubsurfaceProfileRendering; - packed_float3 View_VolumetricFogInvGridSize; - float PrePadding_View_2828; - packed_float3 View_VolumetricFogGridZParams; - float PrePadding_View_2844; - float2 View_VolumetricFogSVPosToVolumeUV; - float View_VolumetricFogMaxDistance; - float PrePadding_View_2860; - packed_float3 View_VolumetricLightmapWorldToUVScale; - float PrePadding_View_2876; - packed_float3 View_VolumetricLightmapWorldToUVAdd; - float PrePadding_View_2892; - packed_float3 View_VolumetricLightmapIndirectionTextureSize; - float View_VolumetricLightmapBrickSize; - packed_float3 View_VolumetricLightmapBrickTexelSize; - float View_StereoIPD; - float View_IndirectLightingCacheShowFlag; - float View_EyeToPixelSpreadAngle; -}; - -struct type_Globals -{ - float3 SoftTransitionScale; - float4x4 ShadowViewProjectionMatrices[6]; - float InvShadowmapResolution; - float ShadowFadeFraction; - float ShadowSharpen; - float4 LightPositionAndInvRadius; - float2 ProjectionDepthBiasParameters; - float4 PointLightDepthBiasAndProjParameters; -}; - -constant float4 _107 = {}; - -struct main0_out -{ - float4 out_var_SV_Target0 [[color(0)]]; -}; - -fragment main0_out main0(constant type_View& View [[buffer(0)]], constant type_Globals& _Globals [[buffer(1)]], texture2d SceneTexturesStruct_SceneDepthTexture [[texture(0)]], texture2d SceneTexturesStruct_GBufferATexture [[texture(1)]], texture2d SceneTexturesStruct_GBufferBTexture [[texture(2)]], texture2d SceneTexturesStruct_GBufferDTexture [[texture(3)]], depthcube ShadowDepthCubeTexture [[texture(4)]], texture2d SSProfilesTexture [[texture(5)]], sampler SceneTexturesStruct_SceneDepthTextureSampler [[sampler(0)]], sampler SceneTexturesStruct_GBufferATextureSampler [[sampler(1)]], sampler SceneTexturesStruct_GBufferBTextureSampler [[sampler(2)]], sampler SceneTexturesStruct_GBufferDTextureSampler [[sampler(3)]], sampler ShadowDepthTextureSampler [[sampler(4)]], sampler ShadowDepthCubeTextureSampler [[sampler(5)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - float2 _114 = gl_FragCoord.xy * View.View_BufferSizeAndInvSize.zw; - float4 _118 = SceneTexturesStruct_SceneDepthTexture.sample(SceneTexturesStruct_SceneDepthTextureSampler, _114, level(0.0)); - float _119 = _118.x; - float _133 = ((_119 * View.View_InvDeviceZToWorldZTransform.x) + View.View_InvDeviceZToWorldZTransform.y) + (1.0 / ((_119 * View.View_InvDeviceZToWorldZTransform.z) - View.View_InvDeviceZToWorldZTransform.w)); - float4 _147 = View.View_ScreenToWorld * float4(((_114 - View.View_ScreenPositionScaleBias.wz) / View.View_ScreenPositionScaleBias.xy) * float2(_133), _133, 1.0); - float3 _148 = _147.xyz; - float3 _152 = _Globals.LightPositionAndInvRadius.xyz - _148; - float _158 = length(_152); - bool _160 = (_158 * _Globals.LightPositionAndInvRadius.w) < 1.0; - float _207; - if (_160) - { - float3 _165 = abs(_152); - float _166 = _165.x; - float _167 = _165.y; - float _168 = _165.z; - float _170 = fast::max(_166, fast::max(_167, _168)); - int _189; - if (_170 == _166) - { - _189 = (_166 == _152.x) ? 0 : 1; - } - else - { - int _185; - if (_170 == _167) - { - _185 = (_167 == _152.y) ? 2 : 3; - } - else - { - _185 = (_168 == _152.z) ? 4 : 5; - } - _189 = _185; - } - float4 _196 = _Globals.ShadowViewProjectionMatrices[_189] * float4(_147.xyz, 1.0); - float _198 = _196.w; - _207 = ShadowDepthCubeTexture.sample_compare(ShadowDepthCubeTextureSampler, (_152 / float3(_158)), (_196.z / _198) + ((-_Globals.PointLightDepthBiasAndProjParameters.x) / _198), level(0.0)); - } - else - { - _207 = 1.0; - } - float _213 = fast::clamp(((_207 - 0.5) * _Globals.ShadowSharpen) + 0.5, 0.0, 1.0); - float _218 = sqrt(mix(1.0, _213 * _213, _Globals.ShadowFadeFraction)); - float4 _219 = _107; - _219.z = _218; - float3 _236 = normalize((SceneTexturesStruct_GBufferATexture.sample(SceneTexturesStruct_GBufferATextureSampler, _114, level(0.0)).xyz * float3(2.0)) - float3(1.0)); - uint _240 = uint(round(SceneTexturesStruct_GBufferBTexture.sample(SceneTexturesStruct_GBufferBTextureSampler, _114, level(0.0)).w * 255.0)); - bool _248 = (_240 & 15u) == 5u; - float _448; - if (_248) - { - float4 _260 = SSProfilesTexture.read(uint2(int3(1, int(uint((select(float4(0.0), SceneTexturesStruct_GBufferDTexture.sample(SceneTexturesStruct_GBufferDTextureSampler, _114, level(0.0)), bool4(!(((_240 & 4294967280u) & 16u) != 0u))).x * 255.0) + 0.5)), 0).xy), 0); - float _263 = _260.y * 0.5; - float _274 = pow(fast::clamp(dot(-(_152 * float3(rsqrt(dot(_152, _152)))), _236), 0.0, 1.0), 1.0); - float _445; - if (_160) - { - float3 _278 = _152 / float3(_158); - float3 _280 = normalize(cross(_278, float3(0.0, 0.0, 1.0))); - float3 _284 = float3(_Globals.InvShadowmapResolution); - float3 _285 = _280 * _284; - float3 _286 = cross(_280, _278) * _284; - float3 _287 = abs(_278); - float _288 = _287.x; - float _289 = _287.y; - float _290 = _287.z; - float _292 = fast::max(_288, fast::max(_289, _290)); - int _311; - if (_292 == _288) - { - _311 = (_288 == _278.x) ? 0 : 1; - } - else - { - int _307; - if (_292 == _289) - { - _307 = (_289 == _278.y) ? 2 : 3; - } - else - { - _307 = (_290 == _278.z) ? 4 : 5; - } - _311 = _307; - } - float4 _318 = _Globals.ShadowViewProjectionMatrices[_311] * float4(_148 - (_236 * float3(_263)), 1.0); - float _323 = _260.x * (10.0 / _Globals.LightPositionAndInvRadius.w); - float _329 = (1.0 / (((_318.z / _318.w) * _Globals.PointLightDepthBiasAndProjParameters.z) - _Globals.PointLightDepthBiasAndProjParameters.w)) * _Globals.LightPositionAndInvRadius.w; - float _342 = (_329 - ((1.0 / ((float4(ShadowDepthCubeTexture.sample(ShadowDepthTextureSampler, (_278 + (_286 * float3(2.5))), level(0.0))).x * _Globals.PointLightDepthBiasAndProjParameters.z) - _Globals.PointLightDepthBiasAndProjParameters.w)) * _Globals.LightPositionAndInvRadius.w)) * _323; - float _364 = (_329 - ((1.0 / ((float4(ShadowDepthCubeTexture.sample(ShadowDepthTextureSampler, ((_278 + (_285 * float3(2.3776409626007080078125))) + (_286 * float3(0.77254199981689453125))), level(0.0))).x * _Globals.PointLightDepthBiasAndProjParameters.z) - _Globals.PointLightDepthBiasAndProjParameters.w)) * _Globals.LightPositionAndInvRadius.w)) * _323; - float _387 = (_329 - ((1.0 / ((float4(ShadowDepthCubeTexture.sample(ShadowDepthTextureSampler, ((_278 + (_285 * float3(1.46946299076080322265625))) + (_286 * float3(-2.0225429534912109375))), level(0.0))).x * _Globals.PointLightDepthBiasAndProjParameters.z) - _Globals.PointLightDepthBiasAndProjParameters.w)) * _Globals.LightPositionAndInvRadius.w)) * _323; - float _410 = (_329 - ((1.0 / ((float4(ShadowDepthCubeTexture.sample(ShadowDepthTextureSampler, ((_278 + (_285 * float3(-1.46946299076080322265625))) + (_286 * float3(-2.02254199981689453125))), level(0.0))).x * _Globals.PointLightDepthBiasAndProjParameters.z) - _Globals.PointLightDepthBiasAndProjParameters.w)) * _Globals.LightPositionAndInvRadius.w)) * _323; - float _433 = (_329 - ((1.0 / ((float4(ShadowDepthCubeTexture.sample(ShadowDepthTextureSampler, ((_278 + (_285 * float3(-2.3776409626007080078125))) + (_286 * float3(0.772543013095855712890625))), level(0.0))).x * _Globals.PointLightDepthBiasAndProjParameters.z) - _Globals.PointLightDepthBiasAndProjParameters.w)) * _Globals.LightPositionAndInvRadius.w)) * _323; - _445 = (((((fast::clamp(abs((_342 > 0.0) ? (_342 + _263) : fast::max(0.0, (_342 * _274) + _263)), 0.1500000059604644775390625, 5.0) + 0.25) + (fast::clamp(abs((_364 > 0.0) ? (_364 + _263) : fast::max(0.0, (_364 * _274) + _263)), 0.1500000059604644775390625, 5.0) + 0.25)) + (fast::clamp(abs((_387 > 0.0) ? (_387 + _263) : fast::max(0.0, (_387 * _274) + _263)), 0.1500000059604644775390625, 5.0) + 0.25)) + (fast::clamp(abs((_410 > 0.0) ? (_410 + _263) : fast::max(0.0, (_410 * _274) + _263)), 0.1500000059604644775390625, 5.0) + 0.25)) + (fast::clamp(abs((_433 > 0.0) ? (_433 + _263) : fast::max(0.0, (_433 * _274) + _263)), 0.1500000059604644775390625, 5.0) + 0.25)) * 0.20000000298023223876953125; - } - else - { - _445 = 1.0; - } - _448 = 1.0 - (_445 * 0.20000000298023223876953125); - } - else - { - _448 = 1.0; - } - float4 _451 = float4(float3(1.0).x, float3(1.0).y, _219.z, float3(1.0).z); - _451.w = _248 ? sqrt(_448) : _218; - out.out_var_SV_Target0 = _451; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-ue4/asm/frag/global-constant-arrays.asm.frag b/third_party/spirv-cross/reference/shaders-ue4/asm/frag/global-constant-arrays.asm.frag deleted file mode 100644 index 210d4f98d1..0000000000 --- a/third_party/spirv-cross/reference/shaders-ue4/asm/frag/global-constant-arrays.asm.frag +++ /dev/null @@ -1,1365 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct type_Globals -{ - float4 MappingPolynomial; - float3 InverseGamma; - float4 ColorMatrixR_ColorCurveCd1; - float4 ColorMatrixG_ColorCurveCd3Cm3; - float4 ColorMatrixB_ColorCurveCm2; - float4 ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3; - float4 ColorCurve_Ch1_Ch2; - float4 ColorShadow_Luma; - float4 ColorShadow_Tint1; - float4 ColorShadow_Tint2; - float FilmSlope; - float FilmToe; - float FilmShoulder; - float FilmBlackClip; - float FilmWhiteClip; - packed_float3 ColorScale; - float4 OverlayColor; - float WhiteTemp; - float WhiteTint; - float4 ColorSaturation; - float4 ColorContrast; - float4 ColorGamma; - float4 ColorGain; - float4 ColorOffset; - float4 ColorSaturationShadows; - float4 ColorContrastShadows; - float4 ColorGammaShadows; - float4 ColorGainShadows; - float4 ColorOffsetShadows; - float4 ColorSaturationMidtones; - float4 ColorContrastMidtones; - float4 ColorGammaMidtones; - float4 ColorGainMidtones; - float4 ColorOffsetMidtones; - float4 ColorSaturationHighlights; - float4 ColorContrastHighlights; - float4 ColorGammaHighlights; - float4 ColorGainHighlights; - float4 ColorOffsetHighlights; - float ColorCorrectionShadowsMax; - float ColorCorrectionHighlightsMin; - uint OutputDevice; - uint OutputGamut; - float BlueCorrection; - float ExpandGamut; -}; - -constant spvUnsafeArray _475 = spvUnsafeArray({ -4.0, -4.0, -3.1573765277862548828125, -0.485249996185302734375, 1.84773242473602294921875, 1.84773242473602294921875 }); -constant spvUnsafeArray _476 = spvUnsafeArray({ -0.718548238277435302734375, 2.0810306072235107421875, 3.66812419891357421875, 4.0, 4.0, 4.0 }); -constant spvUnsafeArray _479 = spvUnsafeArray({ -4.97062206268310546875, -3.0293781757354736328125, -2.1261999607086181640625, -1.5104999542236328125, -1.0578000545501708984375, -0.4668000042438507080078125, 0.11937999725341796875, 0.7088134288787841796875, 1.2911865711212158203125, 1.2911865711212158203125 }); -constant spvUnsafeArray _480 = spvUnsafeArray({ 0.80891323089599609375, 1.19108676910400390625, 1.5683000087738037109375, 1.94830000400543212890625, 2.308300018310546875, 2.63840007781982421875, 2.85949993133544921875, 2.9872608184814453125, 3.0127391815185546875, 3.0127391815185546875 }); -constant spvUnsafeArray _482 = spvUnsafeArray({ -2.3010299205780029296875, -2.3010299205780029296875, -1.9312000274658203125, -1.5204999446868896484375, -1.0578000545501708984375, -0.4668000042438507080078125, 0.11937999725341796875, 0.7088134288787841796875, 1.2911865711212158203125, 1.2911865711212158203125 }); -constant spvUnsafeArray _483 = spvUnsafeArray({ 0.801995217800140380859375, 1.19800484180450439453125, 1.5943000316619873046875, 1.99730002880096435546875, 2.3782999515533447265625, 2.7683999538421630859375, 3.0515000820159912109375, 3.2746293544769287109375, 3.32743072509765625, 3.32743072509765625 }); - -constant float3 _391 = {}; - -struct main0_out -{ - float4 out_var_SV_Target0 [[color(0)]]; -}; - -struct main0_in -{ - float2 in_var_TEXCOORD0 [[user(locn0), center_no_perspective]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], constant type_Globals& _Globals [[buffer(0)]], uint gl_Layer [[render_target_array_index]]) -{ - main0_out out = {}; - float3x3 _546 = float3x3(float3(0.41245639324188232421875, 0.3575761020183563232421875, 0.180437505245208740234375), float3(0.21267290413379669189453125, 0.715152204036712646484375, 0.072175003588199615478515625), float3(0.01933390088379383087158203125, 0.119191996753215789794921875, 0.950304090976715087890625)) * float3x3(float3(1.01303005218505859375, 0.0061053098179399967193603515625, -0.014971000142395496368408203125), float3(0.0076982299797236919403076171875, 0.99816501140594482421875, -0.005032029934227466583251953125), float3(-0.0028413101099431514739990234375, 0.0046851597726345062255859375, 0.92450702190399169921875)); - float3x3 _547 = _546 * float3x3(float3(1.6410233974456787109375, -0.324803292751312255859375, -0.23642469942569732666015625), float3(-0.663662850856781005859375, 1.6153316497802734375, 0.016756348311901092529296875), float3(0.01172189414501190185546875, -0.008284442126750946044921875, 0.98839485645294189453125)); - float3x3 _548 = float3x3(float3(0.662454187870025634765625, 0.1340042054653167724609375, 0.1561876833438873291015625), float3(0.272228717803955078125, 0.674081742763519287109375, 0.053689517080783843994140625), float3(-0.0055746496655046939849853515625, 0.0040607335977256298065185546875, 1.01033914089202880859375)) * float3x3(float3(0.98722398281097412109375, -0.0061132698319852352142333984375, 0.01595330052077770233154296875), float3(-0.007598360069096088409423828125, 1.00186002254486083984375, 0.0053300200961530208587646484375), float3(0.003072570078074932098388671875, -0.0050959498621523380279541015625, 1.0816800594329833984375)); - float3x3 _549 = _548 * float3x3(float3(3.2409698963165283203125, -1.53738319873809814453125, -0.4986107647418975830078125), float3(-0.96924364566802978515625, 1.875967502593994140625, 0.0415550582110881805419921875), float3(0.055630080401897430419921875, -0.2039769589900970458984375, 1.05697154998779296875)); - float3x3 _550 = float3x3(float3(0.952552378177642822265625, 0.0, 9.25), float3(0.3439664542675018310546875, 0.728166103363037109375, -0.07213254272937774658203125), float3(0.0, 0.0, 1.00882518291473388671875)) * float3x3(float3(1.6410233974456787109375, -0.324803292751312255859375, -0.23642469942569732666015625), float3(-0.663662850856781005859375, 1.6153316497802734375, 0.016756348311901092529296875), float3(0.01172189414501190185546875, -0.008284442126750946044921875, 0.98839485645294189453125)); - float3x3 _551 = float3x3(float3(0.662454187870025634765625, 0.1340042054653167724609375, 0.1561876833438873291015625), float3(0.272228717803955078125, 0.674081742763519287109375, 0.053689517080783843994140625), float3(-0.0055746496655046939849853515625, 0.0040607335977256298065185546875, 1.01033914089202880859375)) * float3x3(float3(1.04981100559234619140625, 0.0, -9.74845024757087230682373046875e-05), float3(-0.49590301513671875, 1.37331306934356689453125, 0.09824003279209136962890625), float3(0.0, 0.0, 0.991252005100250244140625)); - float3x3 _576; - for (;;) - { - if (_Globals.OutputGamut == 1u) - { - _576 = _548 * float3x3(float3(2.493396282196044921875, -0.931345880031585693359375, -0.4026944935321807861328125), float3(-0.829486787319183349609375, 1.76265966892242431640625, 0.02362460084259510040283203125), float3(0.0358506999909877777099609375, -0.076182700693607330322265625, 0.957014024257659912109375)); - break; - } - else - { - if (_Globals.OutputGamut == 2u) - { - _576 = _548 * float3x3(float3(1.71660840511322021484375, -0.3556621074676513671875, -0.253360092639923095703125), float3(-0.666682898998260498046875, 1.61647760868072509765625, 0.01576850004494190216064453125), float3(0.017642199993133544921875, -0.04277630150318145751953125, 0.94222867488861083984375)); - break; - } - else - { - if (_Globals.OutputGamut == 3u) - { - _576 = float3x3(float3(0.695452213287353515625, 0.140678703784942626953125, 0.16386906802654266357421875), float3(0.0447945632040500640869140625, 0.859671115875244140625, 0.095534317195415496826171875), float3(-0.0055258828215301036834716796875, 0.0040252101607620716094970703125, 1.00150072574615478515625)); - break; - } - else - { - if (_Globals.OutputGamut == 4u) - { - _576 = float3x3(float3(1.0, 0.0, 0.0), float3(0.0, 1.0, 0.0), float3(0.0, 0.0, 1.0)); - break; - } - else - { - _576 = _549; - break; - } - } - } - } - } - float3 _577 = float4((in.in_var_TEXCOORD0 - float2(0.015625)) * float2(1.03225803375244140625), float(gl_Layer) * 0.0322580635547637939453125, 0.0).xyz; - float3 _599; - if (_Globals.OutputDevice >= 3u) - { - float3 _591 = pow(_577, float3(0.0126833133399486541748046875)); - _599 = pow(fast::max(float3(0.0), _591 - float3(0.8359375)) / (float3(18.8515625) - (float3(18.6875) * _591)), float3(6.277394771575927734375)) * float3(10000.0); - } - else - { - _599 = (exp2((_577 - float3(0.434017598628997802734375)) * float3(14.0)) * float3(0.180000007152557373046875)) - (exp2(float3(-6.0762462615966796875)) * float3(0.180000007152557373046875)); - } - float _602 = _Globals.WhiteTemp * 1.00055634975433349609375; - float _616 = (_602 <= 7000.0) ? (0.24406300485134124755859375 + ((99.1100006103515625 + ((2967800.0 - (4604438528.0 / _Globals.WhiteTemp)) / _602)) / _602)) : (0.23703999817371368408203125 + ((247.4799957275390625 + ((1901800.0 - (2005284352.0 / _Globals.WhiteTemp)) / _602)) / _602)); - float _633 = ((0.860117733478546142578125 + (0.00015411825734190642833709716796875 * _Globals.WhiteTemp)) + ((1.2864121856637211749330163002014e-07 * _Globals.WhiteTemp) * _Globals.WhiteTemp)) / ((1.0 + (0.0008424202096648514270782470703125 * _Globals.WhiteTemp)) + ((7.0814513719597016461193561553955e-07 * _Globals.WhiteTemp) * _Globals.WhiteTemp)); - float _644 = ((0.317398726940155029296875 + (4.25 * _Globals.WhiteTemp)) + ((4.2048167614439080352894961833954e-08 * _Globals.WhiteTemp) * _Globals.WhiteTemp)) / ((1.0 - (2.8974181986995972692966461181641e-05 * _Globals.WhiteTemp)) + ((1.6145605741257895715534687042236e-07 * _Globals.WhiteTemp) * _Globals.WhiteTemp)); - float _649 = ((2.0 * _633) - (8.0 * _644)) + 4.0; - float2 _653 = float2((3.0 * _633) / _649, (2.0 * _644) / _649); - float2 _660 = normalize(float2(_633, _644)); - float _665 = _633 + (((-_660.y) * _Globals.WhiteTint) * 0.0500000007450580596923828125); - float _669 = _644 + ((_660.x * _Globals.WhiteTint) * 0.0500000007450580596923828125); - float _674 = ((2.0 * _665) - (8.0 * _669)) + 4.0; - float2 _680 = select(float2(_616, ((((-3.0) * _616) * _616) + (2.86999988555908203125 * _616)) - 0.2750000059604644775390625), _653, bool2(_Globals.WhiteTemp < 4000.0)) + (float2((3.0 * _665) / _674, (2.0 * _669) / _674) - _653); - float _681 = _680.x; - float _682 = _680.y; - float _683 = fast::max(_682, 1.0000000133514319600180897396058e-10); - float3 _685 = _391; - _685.x = _681 / _683; - float3 _686 = _685; - _686.y = 1.0; - float3 _690 = _686; - _690.z = ((1.0 - _681) - _682) / _683; - float _691 = fast::max(0.328999996185302734375, 1.0000000133514319600180897396058e-10); - float3 _693 = _391; - _693.x = 0.3127000033855438232421875 / _691; - float3 _694 = _693; - _694.y = 1.0; - float3 _696 = _694; - _696.z = 0.3582999706268310546875 / _691; - float3 _697 = _690 * float3x3(float3(0.89509999752044677734375, 0.2664000093936920166015625, -0.16140000522136688232421875), float3(-0.750199973583221435546875, 1.71350002288818359375, 0.0366999991238117218017578125), float3(0.0388999991118907928466796875, -0.06849999725818634033203125, 1.02960002422332763671875)); - float3 _698 = _696 * float3x3(float3(0.89509999752044677734375, 0.2664000093936920166015625, -0.16140000522136688232421875), float3(-0.750199973583221435546875, 1.71350002288818359375, 0.0366999991238117218017578125), float3(0.0388999991118907928466796875, -0.06849999725818634033203125, 1.02960002422332763671875)); - float3 _717 = (_599 * ((float3x3(float3(0.41245639324188232421875, 0.3575761020183563232421875, 0.180437505245208740234375), float3(0.21267290413379669189453125, 0.715152204036712646484375, 0.072175003588199615478515625), float3(0.01933390088379383087158203125, 0.119191996753215789794921875, 0.950304090976715087890625)) * ((float3x3(float3(0.89509999752044677734375, 0.2664000093936920166015625, -0.16140000522136688232421875), float3(-0.750199973583221435546875, 1.71350002288818359375, 0.0366999991238117218017578125), float3(0.0388999991118907928466796875, -0.06849999725818634033203125, 1.02960002422332763671875)) * float3x3(float3(_698.x / _697.x, 0.0, 0.0), float3(0.0, _698.y / _697.y, 0.0), float3(0.0, 0.0, _698.z / _697.z))) * float3x3(float3(0.986992895603179931640625, -0.14705429971218109130859375, 0.15996269881725311279296875), float3(0.4323053061962127685546875, 0.518360316753387451171875, 0.049291200935840606689453125), float3(-0.00852870009839534759521484375, 0.0400427989661693572998046875, 0.968486726284027099609375)))) * float3x3(float3(3.2409698963165283203125, -1.53738319873809814453125, -0.4986107647418975830078125), float3(-0.96924364566802978515625, 1.875967502593994140625, 0.0415550582110881805419921875), float3(0.055630080401897430419921875, -0.2039769589900970458984375, 1.05697154998779296875)))) * _547; - float3 _745; - if (_Globals.ColorShadow_Tint2.w != 0.0) - { - float _724 = dot(_717, float3(0.272228717803955078125, 0.674081742763519287109375, 0.053689517080783843994140625)); - float3 _727 = (_717 / float3(_724)) - float3(1.0); - _745 = mix(_717, _717 * (_549 * (float3x3(float3(0.544169127941131591796875, 0.23959259688854217529296875, 0.16669429838657379150390625), float3(0.23946559429168701171875, 0.702153027057647705078125, 0.058381401002407073974609375), float3(-0.0023439000360667705535888671875, 0.0361833982169628143310546875, 1.05521833896636962890625)) * float3x3(float3(1.6410233974456787109375, -0.324803292751312255859375, -0.23642469942569732666015625), float3(-0.663662850856781005859375, 1.6153316497802734375, 0.016756348311901092529296875), float3(0.01172189414501190185546875, -0.008284442126750946044921875, 0.98839485645294189453125)))), float3((1.0 - exp2((-4.0) * dot(_727, _727))) * (1.0 - exp2((((-4.0) * _Globals.ExpandGamut) * _724) * _724)))); - } - else - { - _745 = _717; - } - float _746 = dot(_745, float3(0.272228717803955078125, 0.674081742763519287109375, 0.053689517080783843994140625)); - float4 _751 = _Globals.ColorSaturationShadows * _Globals.ColorSaturation; - float4 _756 = _Globals.ColorContrastShadows * _Globals.ColorContrast; - float4 _761 = _Globals.ColorGammaShadows * _Globals.ColorGamma; - float4 _766 = _Globals.ColorGainShadows * _Globals.ColorGain; - float4 _771 = _Globals.ColorOffsetShadows + _Globals.ColorOffset; - float3 _772 = float3(_746); - float _804 = smoothstep(0.0, _Globals.ColorCorrectionShadowsMax, _746); - float4 _808 = _Globals.ColorSaturationHighlights * _Globals.ColorSaturation; - float4 _811 = _Globals.ColorContrastHighlights * _Globals.ColorContrast; - float4 _814 = _Globals.ColorGammaHighlights * _Globals.ColorGamma; - float4 _817 = _Globals.ColorGainHighlights * _Globals.ColorGain; - float4 _820 = _Globals.ColorOffsetHighlights + _Globals.ColorOffset; - float _852 = smoothstep(_Globals.ColorCorrectionHighlightsMin, 1.0, _746); - float4 _855 = _Globals.ColorSaturationMidtones * _Globals.ColorSaturation; - float4 _858 = _Globals.ColorContrastMidtones * _Globals.ColorContrast; - float4 _861 = _Globals.ColorGammaMidtones * _Globals.ColorGamma; - float4 _864 = _Globals.ColorGainMidtones * _Globals.ColorGain; - float4 _867 = _Globals.ColorOffsetMidtones + _Globals.ColorOffset; - float3 _905 = ((((pow(pow(fast::max(float3(0.0), mix(_772, _745, _751.xyz * float3(_751.w))) * float3(5.5555553436279296875), _756.xyz * float3(_756.w)) * float3(0.180000007152557373046875), float3(1.0) / (_761.xyz * float3(_761.w))) * (_766.xyz * float3(_766.w))) + (_771.xyz + float3(_771.w))) * float3(1.0 - _804)) + (((pow(pow(fast::max(float3(0.0), mix(_772, _745, _855.xyz * float3(_855.w))) * float3(5.5555553436279296875), _858.xyz * float3(_858.w)) * float3(0.180000007152557373046875), float3(1.0) / (_861.xyz * float3(_861.w))) * (_864.xyz * float3(_864.w))) + (_867.xyz + float3(_867.w))) * float3(_804 - _852))) + (((pow(pow(fast::max(float3(0.0), mix(_772, _745, _808.xyz * float3(_808.w))) * float3(5.5555553436279296875), _811.xyz * float3(_811.w)) * float3(0.180000007152557373046875), float3(1.0) / (_814.xyz * float3(_814.w))) * (_817.xyz * float3(_817.w))) + (_820.xyz + float3(_820.w))) * float3(_852)); - float3 _906 = _905 * _549; - float3 _914 = float3(_Globals.BlueCorrection); - float3 _916 = mix(_905, _905 * ((_551 * float3x3(float3(0.940437257289886474609375, -0.01830687932670116424560546875, 0.07786960899829864501953125), float3(0.008378696627914905548095703125, 0.82866001129150390625, 0.162961304187774658203125), float3(0.0005471261101774871349334716796875, -0.00088337459601461887359619140625, 1.00033628940582275390625))) * _550), _914) * _551; - float _917 = _916.x; - float _918 = _916.y; - float _920 = _916.z; - float _923 = fast::max(fast::max(_917, _918), _920); - float _928 = (fast::max(_923, 1.0000000133514319600180897396058e-10) - fast::max(fast::min(fast::min(_917, _918), _920), 1.0000000133514319600180897396058e-10)) / fast::max(_923, 0.00999999977648258209228515625); - float _941 = ((_920 + _918) + _917) + (1.75 * sqrt(((_920 * (_920 - _918)) + (_918 * (_918 - _917))) + (_917 * (_917 - _920)))); - float _942 = _941 * 0.3333333432674407958984375; - float _943 = _928 - 0.4000000059604644775390625; - float _948 = fast::max(1.0 - abs(_943 * 2.5), 0.0); - float _956 = (1.0 + (float(int(sign(_943 * 5.0))) * (1.0 - (_948 * _948)))) * 0.02500000037252902984619140625; - float _969; - if (_942 <= 0.053333334624767303466796875) - { - _969 = _956; - } - else - { - float _968; - if (_942 >= 0.1599999964237213134765625) - { - _968 = 0.0; - } - else - { - _968 = _956 * ((0.23999999463558197021484375 / _941) - 0.5); - } - _969 = _968; - } - float3 _972 = _916 * float3(1.0 + _969); - float _973 = _972.x; - float _974 = _972.y; - float _976 = _972.z; - float _990; - if ((_973 == _974) && (_974 == _976)) - { - _990 = 0.0; - } - else - { - _990 = 57.2957763671875 * atan2(sqrt(3.0) * (_974 - _976), ((2.0 * _973) - _974) - _976); - } - float _995; - if (_990 < 0.0) - { - _995 = _990 + 360.0; - } - else - { - _995 = _990; - } - float _996 = fast::clamp(_995, 0.0, 360.0); - float _1001; - if (_996 > 180.0) - { - _1001 = _996 - 360.0; - } - else - { - _1001 = _996; - } - float _1005 = smoothstep(0.0, 1.0, 1.0 - abs(_1001 * 0.01481481455266475677490234375)); - float3 _1012 = _972; - _1012.x = _973 + ((((_1005 * _1005) * _928) * (0.02999999932944774627685546875 - _973)) * 0.180000007152557373046875); - float3 _1014 = fast::max(float3(0.0), _1012 * float3x3(float3(1.45143926143646240234375, -0.236510753631591796875, -0.214928567409515380859375), float3(-0.07655377686023712158203125, 1.1762297153472900390625, -0.0996759235858917236328125), float3(0.0083161480724811553955078125, -0.0060324496589601039886474609375, 0.99771630764007568359375))); - float _1023 = (1.0 + _Globals.FilmBlackClip) - _Globals.FilmToe; - float _1026 = 1.0 + _Globals.FilmWhiteClip; - float _1029 = _1026 - _Globals.FilmShoulder; - float _1056; - if (_Globals.FilmToe > 0.800000011920928955078125) - { - _1056 = ((0.819999992847442626953125 - _Globals.FilmToe) / _Globals.FilmSlope) + (log(0.180000007152557373046875) / log(10.0)); - } - else - { - float _1035 = (0.180000007152557373046875 + _Globals.FilmBlackClip) / _1023; - _1056 = (log(0.180000007152557373046875) / log(10.0)) - ((0.5 * log(_1035 / (2.0 - _1035))) * (_1023 / _Globals.FilmSlope)); - } - float _1061 = ((1.0 - _Globals.FilmToe) / _Globals.FilmSlope) - _1056; - float _1063 = (_Globals.FilmShoulder / _Globals.FilmSlope) - _1061; - float _1065 = log(10.0); - float3 _1067 = log(mix(float3(dot(_1014, float3(0.272228717803955078125, 0.674081742763519287109375, 0.053689517080783843994140625))), _1014, float3(0.959999978542327880859375))) / float3(_1065); - float3 _1071 = float3(_Globals.FilmSlope) * (_1067 + float3(_1061)); - float3 _1079 = float3(_1056); - float3 _1080 = _1067 - _1079; - float3 _1092 = float3(_1063); - float3 _1106 = fast::clamp(_1080 / float3(_1063 - _1056), float3(0.0), float3(1.0)); - float3 _1110 = select(_1106, float3(1.0) - _1106, bool3(_1063 < _1056)); - float3 _1115 = mix(select(_1071, float3(-_Globals.FilmBlackClip) + (float3(2.0 * _1023) / (float3(1.0) + exp(float3(((-2.0) * _Globals.FilmSlope) / _1023) * _1080))), _1067 < _1079), select(_1071, float3(_1026) - (float3(2.0 * _1029) / (float3(1.0) + exp(float3((2.0 * _Globals.FilmSlope) / _1029) * (_1067 - _1092)))), _1067 > _1092), ((float3(3.0) - (float3(2.0) * _1110)) * _1110) * _1110); - float3 _1119 = fast::max(float3(0.0), mix(float3(dot(_1115, float3(0.272228717803955078125, 0.674081742763519287109375, 0.053689517080783843994140625))), _1115, float3(0.930000007152557373046875))); - float3 _1189; - if (_Globals.ColorShadow_Tint2.w == 0.0) - { - float3 _1131 = _391; - _1131.x = dot(_906, _Globals.ColorMatrixR_ColorCurveCd1.xyz); - float3 _1136 = _1131; - _1136.y = dot(_906, _Globals.ColorMatrixG_ColorCurveCd3Cm3.xyz); - float3 _1141 = _1136; - _1141.z = dot(_906, _Globals.ColorMatrixB_ColorCurveCm2.xyz); - float3 _1157 = fast::max(float3(0.0), _1141 * (_Globals.ColorShadow_Tint1.xyz + (_Globals.ColorShadow_Tint2.xyz * float3(1.0 / (dot(_906, _Globals.ColorShadow_Luma.xyz) + 1.0))))); - float3 _1162 = fast::max(float3(0.0), _Globals.ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3.xxx - _1157); - float3 _1164 = fast::max(_1157, _Globals.ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3.zzz); - _1189 = ((((_1164 * _Globals.ColorCurve_Ch1_Ch2.xxx) + _Globals.ColorCurve_Ch1_Ch2.yyy) * (float3(1.0) / (_1164 + _Globals.ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3.www))) + ((fast::clamp(_1157, _Globals.ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3.xxx, _Globals.ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3.zzz) * _Globals.ColorMatrixB_ColorCurveCm2.www) + (((_1162 * _Globals.ColorMatrixR_ColorCurveCd1.www) * (float3(1.0) / (_1162 + _Globals.ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3.yyy))) + _Globals.ColorMatrixG_ColorCurveCd3Cm3.www))) - float3(0.00200000009499490261077880859375); - } - else - { - _1189 = fast::max(float3(0.0), mix(_1119, _1119 * ((_551 * float3x3(float3(1.06317996978759765625, 0.02339559979736804962158203125, -0.08657260239124298095703125), float3(-0.010633699595928192138671875, 1.2063200473785400390625, -0.1956900060176849365234375), float3(-0.0005908869788981974124908447265625, 0.00105247995816171169281005859375, 0.999538004398345947265625))) * _550), _914) * _549); - } - float3 _1218 = pow(fast::max(float3(0.0), mix((((float3(_Globals.MappingPolynomial.x) * (_1189 * _1189)) + (float3(_Globals.MappingPolynomial.y) * _1189)) + float3(_Globals.MappingPolynomial.z)) * float3(_Globals.ColorScale), _Globals.OverlayColor.xyz, float3(_Globals.OverlayColor.w))), float3(_Globals.InverseGamma.y)); - float3 _3001; - if (_Globals.OutputDevice == 0u) - { - float _2961 = _1218.x; - float _2973; - for (;;) - { - if (_2961 < 0.00313066993840038776397705078125) - { - _2973 = _2961 * 12.9200000762939453125; - break; - } - _2973 = (pow(_2961, 0.4166666567325592041015625) * 1.05499994754791259765625) - 0.054999999701976776123046875; - break; - } - float _2974 = _1218.y; - float _2986; - for (;;) - { - if (_2974 < 0.00313066993840038776397705078125) - { - _2986 = _2974 * 12.9200000762939453125; - break; - } - _2986 = (pow(_2974, 0.4166666567325592041015625) * 1.05499994754791259765625) - 0.054999999701976776123046875; - break; - } - float _2987 = _1218.z; - float _2999; - for (;;) - { - if (_2987 < 0.00313066993840038776397705078125) - { - _2999 = _2987 * 12.9200000762939453125; - break; - } - _2999 = (pow(_2987, 0.4166666567325592041015625) * 1.05499994754791259765625) - 0.054999999701976776123046875; - break; - } - _3001 = float3(_2973, _2986, _2999); - } - else - { - float3 _2960; - if (_Globals.OutputDevice == 1u) - { - float3 _2953 = fast::max(float3(6.1035199905745685100555419921875e-05), (_1218 * _547) * _576); - _2960 = fast::min(_2953 * float3(4.5), (pow(fast::max(_2953, float3(0.017999999225139617919921875)), float3(0.449999988079071044921875)) * float3(1.09899997711181640625)) - float3(0.098999999463558197021484375)); - } - else - { - float3 _2950; - if ((_Globals.OutputDevice == 3u) || (_Globals.OutputDevice == 5u)) - { - float3 _2100 = (_906 * float3(1.5)) * (_546 * float3x3(float3(1.04981100559234619140625, 0.0, -9.74845024757087230682373046875e-05), float3(-0.49590301513671875, 1.37331306934356689453125, 0.09824003279209136962890625), float3(0.0, 0.0, 0.991252005100250244140625))); - float _2101 = _2100.x; - float _2102 = _2100.y; - float _2104 = _2100.z; - float _2107 = fast::max(fast::max(_2101, _2102), _2104); - float _2112 = (fast::max(_2107, 1.0000000133514319600180897396058e-10) - fast::max(fast::min(fast::min(_2101, _2102), _2104), 1.0000000133514319600180897396058e-10)) / fast::max(_2107, 0.00999999977648258209228515625); - float _2125 = ((_2104 + _2102) + _2101) + (1.75 * sqrt(((_2104 * (_2104 - _2102)) + (_2102 * (_2102 - _2101))) + (_2101 * (_2101 - _2104)))); - float _2126 = _2125 * 0.3333333432674407958984375; - float _2127 = _2112 - 0.4000000059604644775390625; - float _2132 = fast::max(1.0 - abs(_2127 * 2.5), 0.0); - float _2140 = (1.0 + (float(int(sign(_2127 * 5.0))) * (1.0 - (_2132 * _2132)))) * 0.02500000037252902984619140625; - float _2153; - if (_2126 <= 0.053333334624767303466796875) - { - _2153 = _2140; - } - else - { - float _2152; - if (_2126 >= 0.1599999964237213134765625) - { - _2152 = 0.0; - } - else - { - _2152 = _2140 * ((0.23999999463558197021484375 / _2125) - 0.5); - } - _2153 = _2152; - } - float3 _2156 = _2100 * float3(1.0 + _2153); - float _2157 = _2156.x; - float _2158 = _2156.y; - float _2160 = _2156.z; - float _2174; - if ((_2157 == _2158) && (_2158 == _2160)) - { - _2174 = 0.0; - } - else - { - _2174 = 57.2957763671875 * atan2(sqrt(3.0) * (_2158 - _2160), ((2.0 * _2157) - _2158) - _2160); - } - float _2179; - if (_2174 < 0.0) - { - _2179 = _2174 + 360.0; - } - else - { - _2179 = _2174; - } - float _2180 = fast::clamp(_2179, 0.0, 360.0); - float _2185; - if (_2180 > 180.0) - { - _2185 = _2180 - 360.0; - } - else - { - _2185 = _2180; - } - float _2235; - if ((_2185 > (-67.5)) && (_2185 < 67.5)) - { - float _2192 = (_2185 - (-67.5)) * 0.0296296291053295135498046875; - int _2193 = int(_2192); - float _2195 = _2192 - float(_2193); - float _2196 = _2195 * _2195; - float _2197 = _2196 * _2195; - float _2234; - if (_2193 == 3) - { - _2234 = (((_2197 * (-0.16666667163372039794921875)) + (_2196 * 0.5)) + (_2195 * (-0.5))) + 0.16666667163372039794921875; - } - else - { - float _2227; - if (_2193 == 2) - { - _2227 = ((_2197 * 0.5) + (_2196 * (-1.0))) + 0.666666686534881591796875; - } - else - { - float _2222; - if (_2193 == 1) - { - _2222 = (((_2197 * (-0.5)) + (_2196 * 0.5)) + (_2195 * 0.5)) + 0.16666667163372039794921875; - } - else - { - float _2215; - if (_2193 == 0) - { - _2215 = _2197 * 0.16666667163372039794921875; - } - else - { - _2215 = 0.0; - } - _2222 = _2215; - } - _2227 = _2222; - } - _2234 = _2227; - } - _2235 = _2234; - } - else - { - _2235 = 0.0; - } - float3 _2242 = _2156; - _2242.x = _2157 + ((((_2235 * 1.5) * _2112) * (0.02999999932944774627685546875 - _2157)) * 0.180000007152557373046875); - float3 _2245 = fast::clamp(fast::clamp(_2242, float3(0.0), float3(65535.0)) * float3x3(float3(1.45143926143646240234375, -0.236510753631591796875, -0.214928567409515380859375), float3(-0.07655377686023712158203125, 1.1762297153472900390625, -0.0996759235858917236328125), float3(0.0083161480724811553955078125, -0.0060324496589601039886474609375, 0.99771630764007568359375)), float3(0.0), float3(65535.0)); - float3 _2248 = mix(float3(dot(_2245, float3(0.272228717803955078125, 0.674081742763519287109375, 0.053689517080783843994140625))), _2245, float3(0.959999978542327880859375)); - float _2249 = _2248.x; - float _2253 = 0.17999999225139617919921875 * exp2(18.0); - float _2255 = exp2(-14.0); - float _2258 = log((_2249 <= 0.0) ? _2255 : _2249) / _1065; - float _2260 = log(0.17999999225139617919921875 * exp2(-15.0)) / _1065; - float _2327; - if (_2258 <= _2260) - { - _2327 = log(9.9999997473787516355514526367188e-05) / _1065; - } - else - { - float _2267 = log(0.180000007152557373046875) / _1065; - float _2324; - if ((_2258 > _2260) && (_2258 < _2267)) - { - float _2307 = (3.0 * (_2258 - _2260)) / (_2267 - _2260); - int _2308 = int(_2307); - float _2310 = _2307 - float(_2308); - _2324 = dot(float3(_2310 * _2310, _2310, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_475[_2308], _475[_2308 + 1], _475[_2308 + 2])); - } - else - { - float _2275 = log(_2253) / _1065; - float _2303; - if ((_2258 >= _2267) && (_2258 < _2275)) - { - float _2286 = (3.0 * (_2258 - _2267)) / (_2275 - _2267); - int _2287 = int(_2286); - float _2289 = _2286 - float(_2287); - _2303 = dot(float3(_2289 * _2289, _2289, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_476[_2287], _476[_2287 + 1], _476[_2287 + 2])); - } - else - { - _2303 = log(10000.0) / _1065; - } - _2324 = _2303; - } - _2327 = _2324; - } - float3 _2329 = _391; - _2329.x = pow(10.0, _2327); - float _2330 = _2248.y; - float _2334 = log((_2330 <= 0.0) ? _2255 : _2330) / _1065; - float _2401; - if (_2334 <= _2260) - { - _2401 = log(9.9999997473787516355514526367188e-05) / _1065; - } - else - { - float _2341 = log(0.180000007152557373046875) / _1065; - float _2398; - if ((_2334 > _2260) && (_2334 < _2341)) - { - float _2381 = (3.0 * (_2334 - _2260)) / (_2341 - _2260); - int _2382 = int(_2381); - float _2384 = _2381 - float(_2382); - _2398 = dot(float3(_2384 * _2384, _2384, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_475[_2382], _475[_2382 + 1], _475[_2382 + 2])); - } - else - { - float _2349 = log(_2253) / _1065; - float _2377; - if ((_2334 >= _2341) && (_2334 < _2349)) - { - float _2360 = (3.0 * (_2334 - _2341)) / (_2349 - _2341); - int _2361 = int(_2360); - float _2363 = _2360 - float(_2361); - _2377 = dot(float3(_2363 * _2363, _2363, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_476[_2361], _476[_2361 + 1], _476[_2361 + 2])); - } - else - { - _2377 = log(10000.0) / _1065; - } - _2398 = _2377; - } - _2401 = _2398; - } - float3 _2403 = _2329; - _2403.y = pow(10.0, _2401); - float _2404 = _2248.z; - float _2408 = log((_2404 <= 0.0) ? _2255 : _2404) / _1065; - float _2475; - if (_2408 <= _2260) - { - _2475 = log(9.9999997473787516355514526367188e-05) / _1065; - } - else - { - float _2415 = log(0.180000007152557373046875) / _1065; - float _2472; - if ((_2408 > _2260) && (_2408 < _2415)) - { - float _2455 = (3.0 * (_2408 - _2260)) / (_2415 - _2260); - int _2456 = int(_2455); - float _2458 = _2455 - float(_2456); - _2472 = dot(float3(_2458 * _2458, _2458, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_475[_2456], _475[_2456 + 1], _475[_2456 + 2])); - } - else - { - float _2423 = log(_2253) / _1065; - float _2451; - if ((_2408 >= _2415) && (_2408 < _2423)) - { - float _2434 = (3.0 * (_2408 - _2415)) / (_2423 - _2415); - int _2435 = int(_2434); - float _2437 = _2434 - float(_2435); - _2451 = dot(float3(_2437 * _2437, _2437, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_476[_2435], _476[_2435 + 1], _476[_2435 + 2])); - } - else - { - _2451 = log(10000.0) / _1065; - } - _2472 = _2451; - } - _2475 = _2472; - } - float3 _2477 = _2403; - _2477.z = pow(10.0, _2475); - float3 _2479 = (_2477 * float3x3(float3(0.695452213287353515625, 0.140678703784942626953125, 0.16386906802654266357421875), float3(0.0447945632040500640869140625, 0.859671115875244140625, 0.095534317195415496826171875), float3(-0.0055258828215301036834716796875, 0.0040252101607620716094970703125, 1.00150072574615478515625))) * float3x3(float3(1.45143926143646240234375, -0.236510753631591796875, -0.214928567409515380859375), float3(-0.07655377686023712158203125, 1.1762297153472900390625, -0.0996759235858917236328125), float3(0.0083161480724811553955078125, -0.0060324496589601039886474609375, 0.99771630764007568359375)); - float _2481 = 0.17999999225139617919921875 * pow(2.0, -12.0); - float _2485 = log((_2481 <= 0.0) ? _2255 : _2481) / _1065; - float _2552; - if (_2485 <= _2260) - { - _2552 = log(9.9999997473787516355514526367188e-05) / _1065; - } - else - { - float _2492 = log(0.180000007152557373046875) / _1065; - float _2549; - if ((_2485 > _2260) && (_2485 < _2492)) - { - float _2532 = (3.0 * (_2485 - _2260)) / (_2492 - _2260); - int _2533 = int(_2532); - float _2535 = _2532 - float(_2533); - _2549 = dot(float3(_2535 * _2535, _2535, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_475[_2533], _475[_2533 + 1], _475[_2533 + 2])); - } - else - { - float _2500 = log(_2253) / _1065; - float _2528; - if ((_2485 >= _2492) && (_2485 < _2500)) - { - float _2511 = (3.0 * (_2485 - _2492)) / (_2500 - _2492); - int _2512 = int(_2511); - float _2514 = _2511 - float(_2512); - _2528 = dot(float3(_2514 * _2514, _2514, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_476[_2512], _476[_2512 + 1], _476[_2512 + 2])); - } - else - { - _2528 = log(10000.0) / _1065; - } - _2549 = _2528; - } - _2552 = _2549; - } - float _2555 = log(0.180000007152557373046875) / _1065; - float _2611; - if (_2555 <= _2260) - { - _2611 = log(9.9999997473787516355514526367188e-05) / _1065; - } - else - { - float _2608; - if ((_2555 > _2260) && (_2555 < _2555)) - { - _2608 = (float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_475[3], _475[4], _475[5])).z; - } - else - { - float _2568 = log(_2253) / _1065; - float _2596; - if ((_2555 >= _2555) && (_2555 < _2568)) - { - float _2579 = (3.0 * (_2555 - _2555)) / (_2568 - _2555); - int _2580 = int(_2579); - float _2582 = _2579 - float(_2580); - _2596 = dot(float3(_2582 * _2582, _2582, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_476[_2580], _476[_2580 + 1], _476[_2580 + 2])); - } - else - { - _2596 = log(10000.0) / _1065; - } - _2608 = _2596; - } - _2611 = _2608; - } - float _2612 = pow(10.0, _2611); - float _2614 = 0.17999999225139617919921875 * pow(2.0, 10.0); - float _2618 = log((_2614 <= 0.0) ? _2255 : _2614) / _1065; - float _2683; - if (_2618 <= _2260) - { - _2683 = log(9.9999997473787516355514526367188e-05) / _1065; - } - else - { - float _2680; - if ((_2618 > _2260) && (_2618 < _2555)) - { - float _2663 = (3.0 * (_2618 - _2260)) / (_2555 - _2260); - int _2664 = int(_2663); - float _2666 = _2663 - float(_2664); - _2680 = dot(float3(_2666 * _2666, _2666, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_475[_2664], _475[_2664 + 1], _475[_2664 + 2])); - } - else - { - float _2631 = log(_2253) / _1065; - float _2659; - if ((_2618 >= _2555) && (_2618 < _2631)) - { - float _2642 = (3.0 * (_2618 - _2555)) / (_2631 - _2555); - int _2643 = int(_2642); - float _2645 = _2642 - float(_2643); - _2659 = dot(float3(_2645 * _2645, _2645, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_476[_2643], _476[_2643 + 1], _476[_2643 + 2])); - } - else - { - _2659 = log(10000.0) / _1065; - } - _2680 = _2659; - } - _2683 = _2680; - } - float _2684 = pow(10.0, _2683); - float _2685 = _2479.x; - float _2689 = log((_2685 <= 0.0) ? 9.9999997473787516355514526367188e-05 : _2685) / _1065; - float _2690 = log(pow(10.0, _2552)); - float _2691 = _2690 / _1065; - float _2768; - if (_2689 <= _2691) - { - _2768 = (_2689 * 3.0) + ((log(9.9999997473787516355514526367188e-05) / _1065) - ((3.0 * _2690) / _1065)); - } - else - { - float _2698 = log(_2612) / _1065; - float _2760; - if ((_2689 > _2691) && (_2689 < _2698)) - { - float _2743 = (7.0 * (_2689 - _2691)) / (_2698 - _2691); - int _2744 = int(_2743); - float _2746 = _2743 - float(_2744); - _2760 = dot(float3(_2746 * _2746, _2746, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_479[_2744], _479[_2744 + 1], _479[_2744 + 2])); - } - else - { - float _2705 = log(_2684); - float _2706 = _2705 / _1065; - float _2739; - if ((_2689 >= _2698) && (_2689 < _2706)) - { - float _2722 = (7.0 * (_2689 - _2698)) / (_2706 - _2698); - int _2723 = int(_2722); - float _2725 = _2722 - float(_2723); - _2739 = dot(float3(_2725 * _2725, _2725, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_480[_2723], _480[_2723 + 1], _480[_2723 + 2])); - } - else - { - _2739 = (_2689 * 0.0599999986588954925537109375) + ((log(1000.0) / _1065) - ((0.0599999986588954925537109375 * _2705) / _1065)); - } - _2760 = _2739; - } - _2768 = _2760; - } - float3 _2770 = _391; - _2770.x = pow(10.0, _2768); - float _2771 = _2479.y; - float _2775 = log((_2771 <= 0.0) ? 9.9999997473787516355514526367188e-05 : _2771) / _1065; - float _2852; - if (_2775 <= _2691) - { - _2852 = (_2775 * 3.0) + ((log(9.9999997473787516355514526367188e-05) / _1065) - ((3.0 * _2690) / _1065)); - } - else - { - float _2782 = log(_2612) / _1065; - float _2844; - if ((_2775 > _2691) && (_2775 < _2782)) - { - float _2827 = (7.0 * (_2775 - _2691)) / (_2782 - _2691); - int _2828 = int(_2827); - float _2830 = _2827 - float(_2828); - _2844 = dot(float3(_2830 * _2830, _2830, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_479[_2828], _479[_2828 + 1], _479[_2828 + 2])); - } - else - { - float _2789 = log(_2684); - float _2790 = _2789 / _1065; - float _2823; - if ((_2775 >= _2782) && (_2775 < _2790)) - { - float _2806 = (7.0 * (_2775 - _2782)) / (_2790 - _2782); - int _2807 = int(_2806); - float _2809 = _2806 - float(_2807); - _2823 = dot(float3(_2809 * _2809, _2809, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_480[_2807], _480[_2807 + 1], _480[_2807 + 2])); - } - else - { - _2823 = (_2775 * 0.0599999986588954925537109375) + ((log(1000.0) / _1065) - ((0.0599999986588954925537109375 * _2789) / _1065)); - } - _2844 = _2823; - } - _2852 = _2844; - } - float3 _2854 = _2770; - _2854.y = pow(10.0, _2852); - float _2855 = _2479.z; - float _2859 = log((_2855 <= 0.0) ? 9.9999997473787516355514526367188e-05 : _2855) / _1065; - float _2936; - if (_2859 <= _2691) - { - _2936 = (_2859 * 3.0) + ((log(9.9999997473787516355514526367188e-05) / _1065) - ((3.0 * _2690) / _1065)); - } - else - { - float _2866 = log(_2612) / _1065; - float _2928; - if ((_2859 > _2691) && (_2859 < _2866)) - { - float _2911 = (7.0 * (_2859 - _2691)) / (_2866 - _2691); - int _2912 = int(_2911); - float _2914 = _2911 - float(_2912); - _2928 = dot(float3(_2914 * _2914, _2914, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_479[_2912], _479[_2912 + 1], _479[_2912 + 2])); - } - else - { - float _2873 = log(_2684); - float _2874 = _2873 / _1065; - float _2907; - if ((_2859 >= _2866) && (_2859 < _2874)) - { - float _2890 = (7.0 * (_2859 - _2866)) / (_2874 - _2866); - int _2891 = int(_2890); - float _2893 = _2890 - float(_2891); - _2907 = dot(float3(_2893 * _2893, _2893, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_480[_2891], _480[_2891 + 1], _480[_2891 + 2])); - } - else - { - _2907 = (_2859 * 0.0599999986588954925537109375) + ((log(1000.0) / _1065) - ((0.0599999986588954925537109375 * _2873) / _1065)); - } - _2928 = _2907; - } - _2936 = _2928; - } - float3 _2938 = _2854; - _2938.z = pow(10.0, _2936); - float3 _2942 = pow(((_2938 - float3(3.5073844628641381859779357910156e-05)) * _576) * float3(9.9999997473787516355514526367188e-05), float3(0.1593017578125)); - _2950 = pow((float3(0.8359375) + (float3(18.8515625) * _2942)) * (float3(1.0) / (float3(1.0) + (float3(18.6875) * _2942))), float3(78.84375)); - } - else - { - float3 _2097; - if ((_Globals.OutputDevice == 4u) || (_Globals.OutputDevice == 6u)) - { - float3 _1263 = (_906 * float3(1.5)) * (_546 * float3x3(float3(1.04981100559234619140625, 0.0, -9.74845024757087230682373046875e-05), float3(-0.49590301513671875, 1.37331306934356689453125, 0.09824003279209136962890625), float3(0.0, 0.0, 0.991252005100250244140625))); - float _1264 = _1263.x; - float _1265 = _1263.y; - float _1267 = _1263.z; - float _1270 = fast::max(fast::max(_1264, _1265), _1267); - float _1275 = (fast::max(_1270, 1.0000000133514319600180897396058e-10) - fast::max(fast::min(fast::min(_1264, _1265), _1267), 1.0000000133514319600180897396058e-10)) / fast::max(_1270, 0.00999999977648258209228515625); - float _1288 = ((_1267 + _1265) + _1264) + (1.75 * sqrt(((_1267 * (_1267 - _1265)) + (_1265 * (_1265 - _1264))) + (_1264 * (_1264 - _1267)))); - float _1289 = _1288 * 0.3333333432674407958984375; - float _1290 = _1275 - 0.4000000059604644775390625; - float _1295 = fast::max(1.0 - abs(_1290 * 2.5), 0.0); - float _1303 = (1.0 + (float(int(sign(_1290 * 5.0))) * (1.0 - (_1295 * _1295)))) * 0.02500000037252902984619140625; - float _1316; - if (_1289 <= 0.053333334624767303466796875) - { - _1316 = _1303; - } - else - { - float _1315; - if (_1289 >= 0.1599999964237213134765625) - { - _1315 = 0.0; - } - else - { - _1315 = _1303 * ((0.23999999463558197021484375 / _1288) - 0.5); - } - _1316 = _1315; - } - float3 _1319 = _1263 * float3(1.0 + _1316); - float _1320 = _1319.x; - float _1321 = _1319.y; - float _1323 = _1319.z; - float _1337; - if ((_1320 == _1321) && (_1321 == _1323)) - { - _1337 = 0.0; - } - else - { - _1337 = 57.2957763671875 * atan2(sqrt(3.0) * (_1321 - _1323), ((2.0 * _1320) - _1321) - _1323); - } - float _1342; - if (_1337 < 0.0) - { - _1342 = _1337 + 360.0; - } - else - { - _1342 = _1337; - } - float _1343 = fast::clamp(_1342, 0.0, 360.0); - float _1348; - if (_1343 > 180.0) - { - _1348 = _1343 - 360.0; - } - else - { - _1348 = _1343; - } - float _1398; - if ((_1348 > (-67.5)) && (_1348 < 67.5)) - { - float _1355 = (_1348 - (-67.5)) * 0.0296296291053295135498046875; - int _1356 = int(_1355); - float _1358 = _1355 - float(_1356); - float _1359 = _1358 * _1358; - float _1360 = _1359 * _1358; - float _1397; - if (_1356 == 3) - { - _1397 = (((_1360 * (-0.16666667163372039794921875)) + (_1359 * 0.5)) + (_1358 * (-0.5))) + 0.16666667163372039794921875; - } - else - { - float _1390; - if (_1356 == 2) - { - _1390 = ((_1360 * 0.5) + (_1359 * (-1.0))) + 0.666666686534881591796875; - } - else - { - float _1385; - if (_1356 == 1) - { - _1385 = (((_1360 * (-0.5)) + (_1359 * 0.5)) + (_1358 * 0.5)) + 0.16666667163372039794921875; - } - else - { - float _1378; - if (_1356 == 0) - { - _1378 = _1360 * 0.16666667163372039794921875; - } - else - { - _1378 = 0.0; - } - _1385 = _1378; - } - _1390 = _1385; - } - _1397 = _1390; - } - _1398 = _1397; - } - else - { - _1398 = 0.0; - } - float3 _1405 = _1319; - _1405.x = _1320 + ((((_1398 * 1.5) * _1275) * (0.02999999932944774627685546875 - _1320)) * 0.180000007152557373046875); - float3 _1408 = fast::clamp(fast::clamp(_1405, float3(0.0), float3(65535.0)) * float3x3(float3(1.45143926143646240234375, -0.236510753631591796875, -0.214928567409515380859375), float3(-0.07655377686023712158203125, 1.1762297153472900390625, -0.0996759235858917236328125), float3(0.0083161480724811553955078125, -0.0060324496589601039886474609375, 0.99771630764007568359375)), float3(0.0), float3(65535.0)); - float3 _1411 = mix(float3(dot(_1408, float3(0.272228717803955078125, 0.674081742763519287109375, 0.053689517080783843994140625))), _1408, float3(0.959999978542327880859375)); - float _1412 = _1411.x; - float _1416 = 0.17999999225139617919921875 * exp2(18.0); - float _1418 = exp2(-14.0); - float _1421 = log((_1412 <= 0.0) ? _1418 : _1412) / _1065; - float _1423 = log(0.17999999225139617919921875 * exp2(-15.0)) / _1065; - float _1490; - if (_1421 <= _1423) - { - _1490 = log(9.9999997473787516355514526367188e-05) / _1065; - } - else - { - float _1430 = log(0.180000007152557373046875) / _1065; - float _1487; - if ((_1421 > _1423) && (_1421 < _1430)) - { - float _1470 = (3.0 * (_1421 - _1423)) / (_1430 - _1423); - int _1471 = int(_1470); - float _1473 = _1470 - float(_1471); - _1487 = dot(float3(_1473 * _1473, _1473, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_475[_1471], _475[_1471 + 1], _475[_1471 + 2])); - } - else - { - float _1438 = log(_1416) / _1065; - float _1466; - if ((_1421 >= _1430) && (_1421 < _1438)) - { - float _1449 = (3.0 * (_1421 - _1430)) / (_1438 - _1430); - int _1450 = int(_1449); - float _1452 = _1449 - float(_1450); - _1466 = dot(float3(_1452 * _1452, _1452, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_476[_1450], _476[_1450 + 1], _476[_1450 + 2])); - } - else - { - _1466 = log(10000.0) / _1065; - } - _1487 = _1466; - } - _1490 = _1487; - } - float3 _1492 = _391; - _1492.x = pow(10.0, _1490); - float _1493 = _1411.y; - float _1497 = log((_1493 <= 0.0) ? _1418 : _1493) / _1065; - float _1564; - if (_1497 <= _1423) - { - _1564 = log(9.9999997473787516355514526367188e-05) / _1065; - } - else - { - float _1504 = log(0.180000007152557373046875) / _1065; - float _1561; - if ((_1497 > _1423) && (_1497 < _1504)) - { - float _1544 = (3.0 * (_1497 - _1423)) / (_1504 - _1423); - int _1545 = int(_1544); - float _1547 = _1544 - float(_1545); - _1561 = dot(float3(_1547 * _1547, _1547, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_475[_1545], _475[_1545 + 1], _475[_1545 + 2])); - } - else - { - float _1512 = log(_1416) / _1065; - float _1540; - if ((_1497 >= _1504) && (_1497 < _1512)) - { - float _1523 = (3.0 * (_1497 - _1504)) / (_1512 - _1504); - int _1524 = int(_1523); - float _1526 = _1523 - float(_1524); - _1540 = dot(float3(_1526 * _1526, _1526, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_476[_1524], _476[_1524 + 1], _476[_1524 + 2])); - } - else - { - _1540 = log(10000.0) / _1065; - } - _1561 = _1540; - } - _1564 = _1561; - } - float3 _1566 = _1492; - _1566.y = pow(10.0, _1564); - float _1567 = _1411.z; - float _1571 = log((_1567 <= 0.0) ? _1418 : _1567) / _1065; - float _1638; - if (_1571 <= _1423) - { - _1638 = log(9.9999997473787516355514526367188e-05) / _1065; - } - else - { - float _1578 = log(0.180000007152557373046875) / _1065; - float _1635; - if ((_1571 > _1423) && (_1571 < _1578)) - { - float _1618 = (3.0 * (_1571 - _1423)) / (_1578 - _1423); - int _1619 = int(_1618); - float _1621 = _1618 - float(_1619); - _1635 = dot(float3(_1621 * _1621, _1621, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_475[_1619], _475[_1619 + 1], _475[_1619 + 2])); - } - else - { - float _1586 = log(_1416) / _1065; - float _1614; - if ((_1571 >= _1578) && (_1571 < _1586)) - { - float _1597 = (3.0 * (_1571 - _1578)) / (_1586 - _1578); - int _1598 = int(_1597); - float _1600 = _1597 - float(_1598); - _1614 = dot(float3(_1600 * _1600, _1600, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_476[_1598], _476[_1598 + 1], _476[_1598 + 2])); - } - else - { - _1614 = log(10000.0) / _1065; - } - _1635 = _1614; - } - _1638 = _1635; - } - float3 _1640 = _1566; - _1640.z = pow(10.0, _1638); - float3 _1642 = (_1640 * float3x3(float3(0.695452213287353515625, 0.140678703784942626953125, 0.16386906802654266357421875), float3(0.0447945632040500640869140625, 0.859671115875244140625, 0.095534317195415496826171875), float3(-0.0055258828215301036834716796875, 0.0040252101607620716094970703125, 1.00150072574615478515625))) * float3x3(float3(1.45143926143646240234375, -0.236510753631591796875, -0.214928567409515380859375), float3(-0.07655377686023712158203125, 1.1762297153472900390625, -0.0996759235858917236328125), float3(0.0083161480724811553955078125, -0.0060324496589601039886474609375, 0.99771630764007568359375)); - float _1644 = 0.17999999225139617919921875 * pow(2.0, -12.0); - float _1648 = log((_1644 <= 0.0) ? _1418 : _1644) / _1065; - float _1715; - if (_1648 <= _1423) - { - _1715 = log(9.9999997473787516355514526367188e-05) / _1065; - } - else - { - float _1655 = log(0.180000007152557373046875) / _1065; - float _1712; - if ((_1648 > _1423) && (_1648 < _1655)) - { - float _1695 = (3.0 * (_1648 - _1423)) / (_1655 - _1423); - int _1696 = int(_1695); - float _1698 = _1695 - float(_1696); - _1712 = dot(float3(_1698 * _1698, _1698, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_475[_1696], _475[_1696 + 1], _475[_1696 + 2])); - } - else - { - float _1663 = log(_1416) / _1065; - float _1691; - if ((_1648 >= _1655) && (_1648 < _1663)) - { - float _1674 = (3.0 * (_1648 - _1655)) / (_1663 - _1655); - int _1675 = int(_1674); - float _1677 = _1674 - float(_1675); - _1691 = dot(float3(_1677 * _1677, _1677, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_476[_1675], _476[_1675 + 1], _476[_1675 + 2])); - } - else - { - _1691 = log(10000.0) / _1065; - } - _1712 = _1691; - } - _1715 = _1712; - } - float _1718 = log(0.180000007152557373046875) / _1065; - float _1774; - if (_1718 <= _1423) - { - _1774 = log(9.9999997473787516355514526367188e-05) / _1065; - } - else - { - float _1771; - if ((_1718 > _1423) && (_1718 < _1718)) - { - _1771 = (float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_475[3], _475[4], _475[5])).z; - } - else - { - float _1731 = log(_1416) / _1065; - float _1759; - if ((_1718 >= _1718) && (_1718 < _1731)) - { - float _1742 = (3.0 * (_1718 - _1718)) / (_1731 - _1718); - int _1743 = int(_1742); - float _1745 = _1742 - float(_1743); - _1759 = dot(float3(_1745 * _1745, _1745, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_476[_1743], _476[_1743 + 1], _476[_1743 + 2])); - } - else - { - _1759 = log(10000.0) / _1065; - } - _1771 = _1759; - } - _1774 = _1771; - } - float _1775 = pow(10.0, _1774); - float _1777 = 0.17999999225139617919921875 * pow(2.0, 11.0); - float _1781 = log((_1777 <= 0.0) ? _1418 : _1777) / _1065; - float _1846; - if (_1781 <= _1423) - { - _1846 = log(9.9999997473787516355514526367188e-05) / _1065; - } - else - { - float _1843; - if ((_1781 > _1423) && (_1781 < _1718)) - { - float _1826 = (3.0 * (_1781 - _1423)) / (_1718 - _1423); - int _1827 = int(_1826); - float _1829 = _1826 - float(_1827); - _1843 = dot(float3(_1829 * _1829, _1829, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_475[_1827], _475[_1827 + 1], _475[_1827 + 2])); - } - else - { - float _1794 = log(_1416) / _1065; - float _1822; - if ((_1781 >= _1718) && (_1781 < _1794)) - { - float _1805 = (3.0 * (_1781 - _1718)) / (_1794 - _1718); - int _1806 = int(_1805); - float _1808 = _1805 - float(_1806); - _1822 = dot(float3(_1808 * _1808, _1808, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_476[_1806], _476[_1806 + 1], _476[_1806 + 2])); - } - else - { - _1822 = log(10000.0) / _1065; - } - _1843 = _1822; - } - _1846 = _1843; - } - float _1847 = pow(10.0, _1846); - float _1848 = _1642.x; - float _1852 = log((_1848 <= 0.0) ? 9.9999997473787516355514526367188e-05 : _1848) / _1065; - float _1854 = log(pow(10.0, _1715)) / _1065; - float _1926; - if (_1852 <= _1854) - { - _1926 = log(0.004999999888241291046142578125) / _1065; - } - else - { - float _1861 = log(_1775) / _1065; - float _1923; - if ((_1852 > _1854) && (_1852 < _1861)) - { - float _1906 = (7.0 * (_1852 - _1854)) / (_1861 - _1854); - int _1907 = int(_1906); - float _1909 = _1906 - float(_1907); - _1923 = dot(float3(_1909 * _1909, _1909, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_482[_1907], _482[_1907 + 1], _482[_1907 + 2])); - } - else - { - float _1868 = log(_1847); - float _1869 = _1868 / _1065; - float _1902; - if ((_1852 >= _1861) && (_1852 < _1869)) - { - float _1885 = (7.0 * (_1852 - _1861)) / (_1869 - _1861); - int _1886 = int(_1885); - float _1888 = _1885 - float(_1886); - _1902 = dot(float3(_1888 * _1888, _1888, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_483[_1886], _483[_1886 + 1], _483[_1886 + 2])); - } - else - { - _1902 = (_1852 * 0.119999997317790985107421875) + ((log(2000.0) / _1065) - ((0.119999997317790985107421875 * _1868) / _1065)); - } - _1923 = _1902; - } - _1926 = _1923; - } - float3 _1928 = _391; - _1928.x = pow(10.0, _1926); - float _1929 = _1642.y; - float _1933 = log((_1929 <= 0.0) ? 9.9999997473787516355514526367188e-05 : _1929) / _1065; - float _2005; - if (_1933 <= _1854) - { - _2005 = log(0.004999999888241291046142578125) / _1065; - } - else - { - float _1940 = log(_1775) / _1065; - float _2002; - if ((_1933 > _1854) && (_1933 < _1940)) - { - float _1985 = (7.0 * (_1933 - _1854)) / (_1940 - _1854); - int _1986 = int(_1985); - float _1988 = _1985 - float(_1986); - _2002 = dot(float3(_1988 * _1988, _1988, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_482[_1986], _482[_1986 + 1], _482[_1986 + 2])); - } - else - { - float _1947 = log(_1847); - float _1948 = _1947 / _1065; - float _1981; - if ((_1933 >= _1940) && (_1933 < _1948)) - { - float _1964 = (7.0 * (_1933 - _1940)) / (_1948 - _1940); - int _1965 = int(_1964); - float _1967 = _1964 - float(_1965); - _1981 = dot(float3(_1967 * _1967, _1967, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_483[_1965], _483[_1965 + 1], _483[_1965 + 2])); - } - else - { - _1981 = (_1933 * 0.119999997317790985107421875) + ((log(2000.0) / _1065) - ((0.119999997317790985107421875 * _1947) / _1065)); - } - _2002 = _1981; - } - _2005 = _2002; - } - float3 _2007 = _1928; - _2007.y = pow(10.0, _2005); - float _2008 = _1642.z; - float _2012 = log((_2008 <= 0.0) ? 9.9999997473787516355514526367188e-05 : _2008) / _1065; - float _2084; - if (_2012 <= _1854) - { - _2084 = log(0.004999999888241291046142578125) / _1065; - } - else - { - float _2019 = log(_1775) / _1065; - float _2081; - if ((_2012 > _1854) && (_2012 < _2019)) - { - float _2064 = (7.0 * (_2012 - _1854)) / (_2019 - _1854); - int _2065 = int(_2064); - float _2067 = _2064 - float(_2065); - _2081 = dot(float3(_2067 * _2067, _2067, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_482[_2065], _482[_2065 + 1], _482[_2065 + 2])); - } - else - { - float _2026 = log(_1847); - float _2027 = _2026 / _1065; - float _2060; - if ((_2012 >= _2019) && (_2012 < _2027)) - { - float _2043 = (7.0 * (_2012 - _2019)) / (_2027 - _2019); - int _2044 = int(_2043); - float _2046 = _2043 - float(_2044); - _2060 = dot(float3(_2046 * _2046, _2046, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_483[_2044], _483[_2044 + 1], _483[_2044 + 2])); - } - else - { - _2060 = (_2012 * 0.119999997317790985107421875) + ((log(2000.0) / _1065) - ((0.119999997317790985107421875 * _2026) / _1065)); - } - _2081 = _2060; - } - _2084 = _2081; - } - float3 _2086 = _2007; - _2086.z = pow(10.0, _2084); - float3 _2089 = pow((_2086 * _576) * float3(9.9999997473787516355514526367188e-05), float3(0.1593017578125)); - _2097 = pow((float3(0.8359375) + (float3(18.8515625) * _2089)) * (float3(1.0) / (float3(1.0) + (float3(18.6875) * _2089))), float3(78.84375)); - } - else - { - float3 _1260; - if (_Globals.OutputDevice == 7u) - { - float3 _1252 = pow(((_906 * _547) * _576) * float3(9.9999997473787516355514526367188e-05), float3(0.1593017578125)); - _1260 = pow((float3(0.8359375) + (float3(18.8515625) * _1252)) * (float3(1.0) / (float3(1.0) + (float3(18.6875) * _1252))), float3(78.84375)); - } - else - { - _1260 = pow((_1218 * _547) * _576, float3(_Globals.InverseGamma.z)); - } - _2097 = _1260; - } - _2950 = _2097; - } - _2960 = _2950; - } - _3001 = _2960; - } - float3 _3002 = _3001 * float3(0.95238101482391357421875); - float4 _3004 = float4(_3002.x, _3002.y, _3002.z, float4(0.0).w); - _3004.w = 0.0; - out.out_var_SV_Target0 = _3004; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-ue4/asm/frag/padded-float-array-member-defef.asm.frag b/third_party/spirv-cross/reference/shaders-ue4/asm/frag/padded-float-array-member-defef.asm.frag deleted file mode 100644 index 67fa21aadd..0000000000 --- a/third_party/spirv-cross/reference/shaders-ue4/asm/frag/padded-float-array-member-defef.asm.frag +++ /dev/null @@ -1,1414 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct type_Globals -{ - float4 MappingPolynomial; - float3 InverseGamma; - float4 ColorMatrixR_ColorCurveCd1; - float4 ColorMatrixG_ColorCurveCd3Cm3; - float4 ColorMatrixB_ColorCurveCm2; - float4 ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3; - float4 ColorCurve_Ch1_Ch2; - float4 ColorShadow_Luma; - float4 ColorShadow_Tint1; - float4 ColorShadow_Tint2; - float FilmSlope; - float FilmToe; - float FilmShoulder; - float FilmBlackClip; - float FilmWhiteClip; - float4 LUTWeights[5]; - float3 ColorScale; - float4 OverlayColor; - float WhiteTemp; - float WhiteTint; - float4 ColorSaturation; - float4 ColorContrast; - float4 ColorGamma; - float4 ColorGain; - float4 ColorOffset; - float4 ColorSaturationShadows; - float4 ColorContrastShadows; - float4 ColorGammaShadows; - float4 ColorGainShadows; - float4 ColorOffsetShadows; - float4 ColorSaturationMidtones; - float4 ColorContrastMidtones; - float4 ColorGammaMidtones; - float4 ColorGainMidtones; - float4 ColorOffsetMidtones; - float4 ColorSaturationHighlights; - float4 ColorContrastHighlights; - float4 ColorGammaHighlights; - float4 ColorGainHighlights; - float4 ColorOffsetHighlights; - float ColorCorrectionShadowsMax; - float ColorCorrectionHighlightsMin; - uint OutputDevice; - uint OutputGamut; - float BlueCorrection; - float ExpandGamut; -}; - -constant spvUnsafeArray _499 = spvUnsafeArray({ -4.0, -4.0, -3.1573765277862548828125, -0.485249996185302734375, 1.84773242473602294921875, 1.84773242473602294921875 }); -constant spvUnsafeArray _500 = spvUnsafeArray({ -0.718548238277435302734375, 2.0810306072235107421875, 3.66812419891357421875, 4.0, 4.0, 4.0 }); -constant spvUnsafeArray _503 = spvUnsafeArray({ -4.97062206268310546875, -3.0293781757354736328125, -2.1261999607086181640625, -1.5104999542236328125, -1.0578000545501708984375, -0.4668000042438507080078125, 0.11937999725341796875, 0.7088134288787841796875, 1.2911865711212158203125, 1.2911865711212158203125 }); -constant spvUnsafeArray _504 = spvUnsafeArray({ 0.80891323089599609375, 1.19108676910400390625, 1.5683000087738037109375, 1.94830000400543212890625, 2.308300018310546875, 2.63840007781982421875, 2.85949993133544921875, 2.9872608184814453125, 3.0127391815185546875, 3.0127391815185546875 }); -constant spvUnsafeArray _506 = spvUnsafeArray({ -2.3010299205780029296875, -2.3010299205780029296875, -1.9312000274658203125, -1.5204999446868896484375, -1.0578000545501708984375, -0.4668000042438507080078125, 0.11937999725341796875, 0.7088134288787841796875, 1.2911865711212158203125, 1.2911865711212158203125 }); -constant spvUnsafeArray _507 = spvUnsafeArray({ 0.801995217800140380859375, 1.19800484180450439453125, 1.5943000316619873046875, 1.99730002880096435546875, 2.3782999515533447265625, 2.7683999538421630859375, 3.0515000820159912109375, 3.2746293544769287109375, 3.32743072509765625, 3.32743072509765625 }); - -constant float3 _523 = {}; -constant float3 _525 = {}; - -struct main0_out -{ - float4 out_var_SV_Target0 [[color(0)]]; -}; - -struct main0_in -{ - float2 in_var_TEXCOORD0 [[user(locn0), center_no_perspective]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], constant type_Globals& _Globals [[buffer(0)]], texture2d Texture1 [[texture(0)]], sampler Texture1Sampler [[sampler(0)]], uint gl_Layer [[render_target_array_index]]) -{ - main0_out out = {}; - float3x3 _572 = float3x3(float3(0.41245639324188232421875, 0.3575761020183563232421875, 0.180437505245208740234375), float3(0.21267290413379669189453125, 0.715152204036712646484375, 0.072175003588199615478515625), float3(0.01933390088379383087158203125, 0.119191996753215789794921875, 0.950304090976715087890625)) * float3x3(float3(1.01303005218505859375, 0.0061053098179399967193603515625, -0.014971000142395496368408203125), float3(0.0076982299797236919403076171875, 0.99816501140594482421875, -0.005032029934227466583251953125), float3(-0.0028413101099431514739990234375, 0.0046851597726345062255859375, 0.92450702190399169921875)); - float3x3 _573 = _572 * float3x3(float3(1.6410233974456787109375, -0.324803292751312255859375, -0.23642469942569732666015625), float3(-0.663662850856781005859375, 1.6153316497802734375, 0.016756348311901092529296875), float3(0.01172189414501190185546875, -0.008284442126750946044921875, 0.98839485645294189453125)); - float3x3 _574 = float3x3(float3(0.662454187870025634765625, 0.1340042054653167724609375, 0.1561876833438873291015625), float3(0.272228717803955078125, 0.674081742763519287109375, 0.053689517080783843994140625), float3(-0.0055746496655046939849853515625, 0.0040607335977256298065185546875, 1.01033914089202880859375)) * float3x3(float3(0.98722398281097412109375, -0.0061132698319852352142333984375, 0.01595330052077770233154296875), float3(-0.007598360069096088409423828125, 1.00186002254486083984375, 0.0053300200961530208587646484375), float3(0.003072570078074932098388671875, -0.0050959498621523380279541015625, 1.0816800594329833984375)); - float3x3 _575 = _574 * float3x3(float3(3.2409698963165283203125, -1.53738319873809814453125, -0.4986107647418975830078125), float3(-0.96924364566802978515625, 1.875967502593994140625, 0.0415550582110881805419921875), float3(0.055630080401897430419921875, -0.2039769589900970458984375, 1.05697154998779296875)); - float3x3 _576 = float3x3(float3(0.952552378177642822265625, 0.0, 9.25), float3(0.3439664542675018310546875, 0.728166103363037109375, -0.07213254272937774658203125), float3(0.0, 0.0, 1.00882518291473388671875)) * float3x3(float3(1.6410233974456787109375, -0.324803292751312255859375, -0.23642469942569732666015625), float3(-0.663662850856781005859375, 1.6153316497802734375, 0.016756348311901092529296875), float3(0.01172189414501190185546875, -0.008284442126750946044921875, 0.98839485645294189453125)); - float3x3 _577 = float3x3(float3(0.662454187870025634765625, 0.1340042054653167724609375, 0.1561876833438873291015625), float3(0.272228717803955078125, 0.674081742763519287109375, 0.053689517080783843994140625), float3(-0.0055746496655046939849853515625, 0.0040607335977256298065185546875, 1.01033914089202880859375)) * float3x3(float3(1.04981100559234619140625, 0.0, -9.74845024757087230682373046875e-05), float3(-0.49590301513671875, 1.37331306934356689453125, 0.09824003279209136962890625), float3(0.0, 0.0, 0.991252005100250244140625)); - float3x3 _602; - for (;;) - { - if (_Globals.OutputGamut == 1u) - { - _602 = _574 * float3x3(float3(2.493396282196044921875, -0.931345880031585693359375, -0.4026944935321807861328125), float3(-0.829486787319183349609375, 1.76265966892242431640625, 0.02362460084259510040283203125), float3(0.0358506999909877777099609375, -0.076182700693607330322265625, 0.957014024257659912109375)); - break; - } - else - { - if (_Globals.OutputGamut == 2u) - { - _602 = _574 * float3x3(float3(1.71660840511322021484375, -0.3556621074676513671875, -0.253360092639923095703125), float3(-0.666682898998260498046875, 1.61647760868072509765625, 0.01576850004494190216064453125), float3(0.017642199993133544921875, -0.04277630150318145751953125, 0.94222867488861083984375)); - break; - } - else - { - if (_Globals.OutputGamut == 3u) - { - _602 = float3x3(float3(0.695452213287353515625, 0.140678703784942626953125, 0.16386906802654266357421875), float3(0.0447945632040500640869140625, 0.859671115875244140625, 0.095534317195415496826171875), float3(-0.0055258828215301036834716796875, 0.0040252101607620716094970703125, 1.00150072574615478515625)); - break; - } - else - { - if (_Globals.OutputGamut == 4u) - { - _602 = float3x3(float3(1.0, 0.0, 0.0), float3(0.0, 1.0, 0.0), float3(0.0, 0.0, 1.0)); - break; - } - else - { - _602 = _575; - break; - } - } - } - } - } - float3 _603 = float4((in.in_var_TEXCOORD0 - float2(0.015625)) * float2(1.03225803375244140625), float(gl_Layer) * 0.0322580635547637939453125, 0.0).xyz; - float3 _625; - if (_Globals.OutputDevice >= 3u) - { - float3 _617 = pow(_603, float3(0.0126833133399486541748046875)); - _625 = pow(fast::max(float3(0.0), _617 - float3(0.8359375)) / (float3(18.8515625) - (float3(18.6875) * _617)), float3(6.277394771575927734375)) * float3(10000.0); - } - else - { - _625 = (exp2((_603 - float3(0.434017598628997802734375)) * float3(14.0)) * float3(0.180000007152557373046875)) - (exp2(float3(-6.0762462615966796875)) * float3(0.180000007152557373046875)); - } - float _628 = _Globals.WhiteTemp * 1.00055634975433349609375; - float _642 = (_628 <= 7000.0) ? (0.24406300485134124755859375 + ((99.1100006103515625 + ((2967800.0 - (4604438528.0 / _Globals.WhiteTemp)) / _628)) / _628)) : (0.23703999817371368408203125 + ((247.4799957275390625 + ((1901800.0 - (2005284352.0 / _Globals.WhiteTemp)) / _628)) / _628)); - float _659 = ((0.860117733478546142578125 + (0.00015411825734190642833709716796875 * _Globals.WhiteTemp)) + ((1.2864121856637211749330163002014e-07 * _Globals.WhiteTemp) * _Globals.WhiteTemp)) / ((1.0 + (0.0008424202096648514270782470703125 * _Globals.WhiteTemp)) + ((7.0814513719597016461193561553955e-07 * _Globals.WhiteTemp) * _Globals.WhiteTemp)); - float _670 = ((0.317398726940155029296875 + (4.25 * _Globals.WhiteTemp)) + ((4.2048167614439080352894961833954e-08 * _Globals.WhiteTemp) * _Globals.WhiteTemp)) / ((1.0 - (2.8974181986995972692966461181641e-05 * _Globals.WhiteTemp)) + ((1.6145605741257895715534687042236e-07 * _Globals.WhiteTemp) * _Globals.WhiteTemp)); - float _675 = ((2.0 * _659) - (8.0 * _670)) + 4.0; - float2 _679 = float2((3.0 * _659) / _675, (2.0 * _670) / _675); - float2 _686 = normalize(float2(_659, _670)); - float _691 = _659 + (((-_686.y) * _Globals.WhiteTint) * 0.0500000007450580596923828125); - float _695 = _670 + ((_686.x * _Globals.WhiteTint) * 0.0500000007450580596923828125); - float _700 = ((2.0 * _691) - (8.0 * _695)) + 4.0; - float2 _706 = select(float2(_642, ((((-3.0) * _642) * _642) + (2.86999988555908203125 * _642)) - 0.2750000059604644775390625), _679, bool2(_Globals.WhiteTemp < 4000.0)) + (float2((3.0 * _691) / _700, (2.0 * _695) / _700) - _679); - float _707 = _706.x; - float _708 = _706.y; - float _709 = fast::max(_708, 1.0000000133514319600180897396058e-10); - float3 _711 = _523; - _711.x = _707 / _709; - float3 _712 = _711; - _712.y = 1.0; - float3 _716 = _712; - _716.z = ((1.0 - _707) - _708) / _709; - float _717 = fast::max(0.328999996185302734375, 1.0000000133514319600180897396058e-10); - float3 _719 = _523; - _719.x = 0.3127000033855438232421875 / _717; - float3 _720 = _719; - _720.y = 1.0; - float3 _722 = _720; - _722.z = 0.3582999706268310546875 / _717; - float3 _723 = _716 * float3x3(float3(0.89509999752044677734375, 0.2664000093936920166015625, -0.16140000522136688232421875), float3(-0.750199973583221435546875, 1.71350002288818359375, 0.0366999991238117218017578125), float3(0.0388999991118907928466796875, -0.06849999725818634033203125, 1.02960002422332763671875)); - float3 _724 = _722 * float3x3(float3(0.89509999752044677734375, 0.2664000093936920166015625, -0.16140000522136688232421875), float3(-0.750199973583221435546875, 1.71350002288818359375, 0.0366999991238117218017578125), float3(0.0388999991118907928466796875, -0.06849999725818634033203125, 1.02960002422332763671875)); - float3 _743 = (_625 * ((float3x3(float3(0.41245639324188232421875, 0.3575761020183563232421875, 0.180437505245208740234375), float3(0.21267290413379669189453125, 0.715152204036712646484375, 0.072175003588199615478515625), float3(0.01933390088379383087158203125, 0.119191996753215789794921875, 0.950304090976715087890625)) * ((float3x3(float3(0.89509999752044677734375, 0.2664000093936920166015625, -0.16140000522136688232421875), float3(-0.750199973583221435546875, 1.71350002288818359375, 0.0366999991238117218017578125), float3(0.0388999991118907928466796875, -0.06849999725818634033203125, 1.02960002422332763671875)) * float3x3(float3(_724.x / _723.x, 0.0, 0.0), float3(0.0, _724.y / _723.y, 0.0), float3(0.0, 0.0, _724.z / _723.z))) * float3x3(float3(0.986992895603179931640625, -0.14705429971218109130859375, 0.15996269881725311279296875), float3(0.4323053061962127685546875, 0.518360316753387451171875, 0.049291200935840606689453125), float3(-0.00852870009839534759521484375, 0.0400427989661693572998046875, 0.968486726284027099609375)))) * float3x3(float3(3.2409698963165283203125, -1.53738319873809814453125, -0.4986107647418975830078125), float3(-0.96924364566802978515625, 1.875967502593994140625, 0.0415550582110881805419921875), float3(0.055630080401897430419921875, -0.2039769589900970458984375, 1.05697154998779296875)))) * _573; - float3 _771; - if (_Globals.ColorShadow_Tint2.w != 0.0) - { - float _750 = dot(_743, float3(0.272228717803955078125, 0.674081742763519287109375, 0.053689517080783843994140625)); - float3 _753 = (_743 / float3(_750)) - float3(1.0); - _771 = mix(_743, _743 * (_575 * (float3x3(float3(0.544169127941131591796875, 0.23959259688854217529296875, 0.16669429838657379150390625), float3(0.23946559429168701171875, 0.702153027057647705078125, 0.058381401002407073974609375), float3(-0.0023439000360667705535888671875, 0.0361833982169628143310546875, 1.05521833896636962890625)) * float3x3(float3(1.6410233974456787109375, -0.324803292751312255859375, -0.23642469942569732666015625), float3(-0.663662850856781005859375, 1.6153316497802734375, 0.016756348311901092529296875), float3(0.01172189414501190185546875, -0.008284442126750946044921875, 0.98839485645294189453125)))), float3((1.0 - exp2((-4.0) * dot(_753, _753))) * (1.0 - exp2((((-4.0) * _Globals.ExpandGamut) * _750) * _750)))); - } - else - { - _771 = _743; - } - float _772 = dot(_771, float3(0.272228717803955078125, 0.674081742763519287109375, 0.053689517080783843994140625)); - float4 _777 = _Globals.ColorSaturationShadows * _Globals.ColorSaturation; - float4 _782 = _Globals.ColorContrastShadows * _Globals.ColorContrast; - float4 _787 = _Globals.ColorGammaShadows * _Globals.ColorGamma; - float4 _792 = _Globals.ColorGainShadows * _Globals.ColorGain; - float4 _797 = _Globals.ColorOffsetShadows + _Globals.ColorOffset; - float3 _798 = float3(_772); - float _830 = smoothstep(0.0, _Globals.ColorCorrectionShadowsMax, _772); - float4 _834 = _Globals.ColorSaturationHighlights * _Globals.ColorSaturation; - float4 _837 = _Globals.ColorContrastHighlights * _Globals.ColorContrast; - float4 _840 = _Globals.ColorGammaHighlights * _Globals.ColorGamma; - float4 _843 = _Globals.ColorGainHighlights * _Globals.ColorGain; - float4 _846 = _Globals.ColorOffsetHighlights + _Globals.ColorOffset; - float _878 = smoothstep(_Globals.ColorCorrectionHighlightsMin, 1.0, _772); - float4 _881 = _Globals.ColorSaturationMidtones * _Globals.ColorSaturation; - float4 _884 = _Globals.ColorContrastMidtones * _Globals.ColorContrast; - float4 _887 = _Globals.ColorGammaMidtones * _Globals.ColorGamma; - float4 _890 = _Globals.ColorGainMidtones * _Globals.ColorGain; - float4 _893 = _Globals.ColorOffsetMidtones + _Globals.ColorOffset; - float3 _931 = ((((pow(pow(fast::max(float3(0.0), mix(_798, _771, _777.xyz * float3(_777.w))) * float3(5.5555553436279296875), _782.xyz * float3(_782.w)) * float3(0.180000007152557373046875), float3(1.0) / (_787.xyz * float3(_787.w))) * (_792.xyz * float3(_792.w))) + (_797.xyz + float3(_797.w))) * float3(1.0 - _830)) + (((pow(pow(fast::max(float3(0.0), mix(_798, _771, _881.xyz * float3(_881.w))) * float3(5.5555553436279296875), _884.xyz * float3(_884.w)) * float3(0.180000007152557373046875), float3(1.0) / (_887.xyz * float3(_887.w))) * (_890.xyz * float3(_890.w))) + (_893.xyz + float3(_893.w))) * float3(_830 - _878))) + (((pow(pow(fast::max(float3(0.0), mix(_798, _771, _834.xyz * float3(_834.w))) * float3(5.5555553436279296875), _837.xyz * float3(_837.w)) * float3(0.180000007152557373046875), float3(1.0) / (_840.xyz * float3(_840.w))) * (_843.xyz * float3(_843.w))) + (_846.xyz + float3(_846.w))) * float3(_878)); - float3 _932 = _931 * _575; - float3 _940 = float3(_Globals.BlueCorrection); - float3 _942 = mix(_931, _931 * ((_577 * float3x3(float3(0.940437257289886474609375, -0.01830687932670116424560546875, 0.07786960899829864501953125), float3(0.008378696627914905548095703125, 0.82866001129150390625, 0.162961304187774658203125), float3(0.0005471261101774871349334716796875, -0.00088337459601461887359619140625, 1.00033628940582275390625))) * _576), _940) * _577; - float _943 = _942.x; - float _944 = _942.y; - float _946 = _942.z; - float _949 = fast::max(fast::max(_943, _944), _946); - float _954 = (fast::max(_949, 1.0000000133514319600180897396058e-10) - fast::max(fast::min(fast::min(_943, _944), _946), 1.0000000133514319600180897396058e-10)) / fast::max(_949, 0.00999999977648258209228515625); - float _967 = ((_946 + _944) + _943) + (1.75 * sqrt(((_946 * (_946 - _944)) + (_944 * (_944 - _943))) + (_943 * (_943 - _946)))); - float _968 = _967 * 0.3333333432674407958984375; - float _969 = _954 - 0.4000000059604644775390625; - float _974 = fast::max(1.0 - abs(_969 * 2.5), 0.0); - float _982 = (1.0 + (float(int(sign(_969 * 5.0))) * (1.0 - (_974 * _974)))) * 0.02500000037252902984619140625; - float _995; - if (_968 <= 0.053333334624767303466796875) - { - _995 = _982; - } - else - { - float _994; - if (_968 >= 0.1599999964237213134765625) - { - _994 = 0.0; - } - else - { - _994 = _982 * ((0.23999999463558197021484375 / _967) - 0.5); - } - _995 = _994; - } - float3 _998 = _942 * float3(1.0 + _995); - float _999 = _998.x; - float _1000 = _998.y; - float _1002 = _998.z; - float _1016; - if ((_999 == _1000) && (_1000 == _1002)) - { - _1016 = 0.0; - } - else - { - _1016 = 57.2957763671875 * atan2(sqrt(3.0) * (_1000 - _1002), ((2.0 * _999) - _1000) - _1002); - } - float _1021; - if (_1016 < 0.0) - { - _1021 = _1016 + 360.0; - } - else - { - _1021 = _1016; - } - float _1022 = fast::clamp(_1021, 0.0, 360.0); - float _1027; - if (_1022 > 180.0) - { - _1027 = _1022 - 360.0; - } - else - { - _1027 = _1022; - } - float _1031 = smoothstep(0.0, 1.0, 1.0 - abs(_1027 * 0.01481481455266475677490234375)); - float3 _1038 = _998; - _1038.x = _999 + ((((_1031 * _1031) * _954) * (0.02999999932944774627685546875 - _999)) * 0.180000007152557373046875); - float3 _1040 = fast::max(float3(0.0), _1038 * float3x3(float3(1.45143926143646240234375, -0.236510753631591796875, -0.214928567409515380859375), float3(-0.07655377686023712158203125, 1.1762297153472900390625, -0.0996759235858917236328125), float3(0.0083161480724811553955078125, -0.0060324496589601039886474609375, 0.99771630764007568359375))); - float _1049 = (1.0 + _Globals.FilmBlackClip) - _Globals.FilmToe; - float _1052 = 1.0 + _Globals.FilmWhiteClip; - float _1055 = _1052 - _Globals.FilmShoulder; - float _1082; - if (_Globals.FilmToe > 0.800000011920928955078125) - { - _1082 = ((0.819999992847442626953125 - _Globals.FilmToe) / _Globals.FilmSlope) + (log(0.180000007152557373046875) / log(10.0)); - } - else - { - float _1061 = (0.180000007152557373046875 + _Globals.FilmBlackClip) / _1049; - _1082 = (log(0.180000007152557373046875) / log(10.0)) - ((0.5 * log(_1061 / (2.0 - _1061))) * (_1049 / _Globals.FilmSlope)); - } - float _1087 = ((1.0 - _Globals.FilmToe) / _Globals.FilmSlope) - _1082; - float _1089 = (_Globals.FilmShoulder / _Globals.FilmSlope) - _1087; - float _1091 = log(10.0); - float3 _1093 = log(mix(float3(dot(_1040, float3(0.272228717803955078125, 0.674081742763519287109375, 0.053689517080783843994140625))), _1040, float3(0.959999978542327880859375))) / float3(_1091); - float3 _1097 = float3(_Globals.FilmSlope) * (_1093 + float3(_1087)); - float3 _1105 = float3(_1082); - float3 _1106 = _1093 - _1105; - float3 _1118 = float3(_1089); - float3 _1132 = fast::clamp(_1106 / float3(_1089 - _1082), float3(0.0), float3(1.0)); - float3 _1136 = select(_1132, float3(1.0) - _1132, bool3(_1089 < _1082)); - float3 _1141 = mix(select(_1097, float3(-_Globals.FilmBlackClip) + (float3(2.0 * _1049) / (float3(1.0) + exp(float3(((-2.0) * _Globals.FilmSlope) / _1049) * _1106))), _1093 < _1105), select(_1097, float3(_1052) - (float3(2.0 * _1055) / (float3(1.0) + exp(float3((2.0 * _Globals.FilmSlope) / _1055) * (_1093 - _1118)))), _1093 > _1118), ((float3(3.0) - (float3(2.0) * _1136)) * _1136) * _1136); - float3 _1145 = fast::max(float3(0.0), mix(float3(dot(_1141, float3(0.272228717803955078125, 0.674081742763519287109375, 0.053689517080783843994140625))), _1141, float3(0.930000007152557373046875))); - float3 _1215; - if (_Globals.ColorShadow_Tint2.w == 0.0) - { - float3 _1157 = _525; - _1157.x = dot(_932, _Globals.ColorMatrixR_ColorCurveCd1.xyz); - float3 _1162 = _1157; - _1162.y = dot(_932, _Globals.ColorMatrixG_ColorCurveCd3Cm3.xyz); - float3 _1167 = _1162; - _1167.z = dot(_932, _Globals.ColorMatrixB_ColorCurveCm2.xyz); - float3 _1183 = fast::max(float3(0.0), _1167 * (_Globals.ColorShadow_Tint1.xyz + (_Globals.ColorShadow_Tint2.xyz * float3(1.0 / (dot(_932, _Globals.ColorShadow_Luma.xyz) + 1.0))))); - float3 _1188 = fast::max(float3(0.0), _Globals.ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3.xxx - _1183); - float3 _1190 = fast::max(_1183, _Globals.ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3.zzz); - _1215 = ((((_1190 * _Globals.ColorCurve_Ch1_Ch2.xxx) + _Globals.ColorCurve_Ch1_Ch2.yyy) * (float3(1.0) / (_1190 + _Globals.ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3.www))) + ((fast::clamp(_1183, _Globals.ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3.xxx, _Globals.ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3.zzz) * _Globals.ColorMatrixB_ColorCurveCm2.www) + (((_1188 * _Globals.ColorMatrixR_ColorCurveCd1.www) * (float3(1.0) / (_1188 + _Globals.ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3.yyy))) + _Globals.ColorMatrixG_ColorCurveCd3Cm3.www))) - float3(0.00200000009499490261077880859375); - } - else - { - _1215 = fast::max(float3(0.0), mix(_1145, _1145 * ((_577 * float3x3(float3(1.06317996978759765625, 0.02339559979736804962158203125, -0.08657260239124298095703125), float3(-0.010633699595928192138671875, 1.2063200473785400390625, -0.1956900060176849365234375), float3(-0.0005908869788981974124908447265625, 0.00105247995816171169281005859375, 0.999538004398345947265625))) * _576), _940) * _575); - } - float3 _1216 = fast::clamp(_1215, float3(0.0), float3(1.0)); - float _1217 = _1216.x; - float _1229; - for (;;) - { - if (_1217 < 0.00313066993840038776397705078125) - { - _1229 = _1217 * 12.9200000762939453125; - break; - } - _1229 = (pow(_1217, 0.4166666567325592041015625) * 1.05499994754791259765625) - 0.054999999701976776123046875; - break; - } - float _1230 = _1216.y; - float _1242; - for (;;) - { - if (_1230 < 0.00313066993840038776397705078125) - { - _1242 = _1230 * 12.9200000762939453125; - break; - } - _1242 = (pow(_1230, 0.4166666567325592041015625) * 1.05499994754791259765625) - 0.054999999701976776123046875; - break; - } - float _1243 = _1216.z; - float _1255; - for (;;) - { - if (_1243 < 0.00313066993840038776397705078125) - { - _1255 = _1243 * 12.9200000762939453125; - break; - } - _1255 = (pow(_1243, 0.4166666567325592041015625) * 1.05499994754791259765625) - 0.054999999701976776123046875; - break; - } - float3 _1256 = float3(_1229, _1242, _1255); - float3 _1258 = (_1256 * float3(0.9375)) + float3(0.03125); - float _1270 = (_1258.z * 16.0) - 0.5; - float _1271 = floor(_1270); - float _1275 = (_1258.x + _1271) * 0.0625; - float _1276 = _1258.y; - float4 _1279 = Texture1.sample(Texture1Sampler, float2(_1275, _1276)); - float4 _1283 = Texture1.sample(Texture1Sampler, float2(_1275 + 0.0625, _1276)); - float3 _1289 = fast::max(float3(6.1035199905745685100555419921875e-05), (float3(_Globals.LUTWeights[0].x) * _1256) + (float3(_Globals.LUTWeights[1].x) * mix(_1279, _1283, float4(_1270 - _1271)).xyz)); - float3 _1295 = select(_1289 * float3(0.077399380505084991455078125), pow((_1289 * float3(0.94786727428436279296875)) + float3(0.0521326996386051177978515625), float3(2.400000095367431640625)), _1289 > float3(0.040449999272823333740234375)); - float3 _1324 = pow(fast::max(float3(0.0), mix((((float3(_Globals.MappingPolynomial.x) * (_1295 * _1295)) + (float3(_Globals.MappingPolynomial.y) * _1295)) + float3(_Globals.MappingPolynomial.z)) * _Globals.ColorScale, _Globals.OverlayColor.xyz, float3(_Globals.OverlayColor.w))), float3(_Globals.InverseGamma.y)); - float3 _3103; - if (_Globals.OutputDevice == 0u) - { - float _3063 = _1324.x; - float _3075; - for (;;) - { - if (_3063 < 0.00313066993840038776397705078125) - { - _3075 = _3063 * 12.9200000762939453125; - break; - } - _3075 = (pow(_3063, 0.4166666567325592041015625) * 1.05499994754791259765625) - 0.054999999701976776123046875; - break; - } - float _3076 = _1324.y; - float _3088; - for (;;) - { - if (_3076 < 0.00313066993840038776397705078125) - { - _3088 = _3076 * 12.9200000762939453125; - break; - } - _3088 = (pow(_3076, 0.4166666567325592041015625) * 1.05499994754791259765625) - 0.054999999701976776123046875; - break; - } - float _3089 = _1324.z; - float _3101; - for (;;) - { - if (_3089 < 0.00313066993840038776397705078125) - { - _3101 = _3089 * 12.9200000762939453125; - break; - } - _3101 = (pow(_3089, 0.4166666567325592041015625) * 1.05499994754791259765625) - 0.054999999701976776123046875; - break; - } - _3103 = float3(_3075, _3088, _3101); - } - else - { - float3 _3062; - if (_Globals.OutputDevice == 1u) - { - float3 _3055 = fast::max(float3(6.1035199905745685100555419921875e-05), (_1324 * _573) * _602); - _3062 = fast::min(_3055 * float3(4.5), (pow(fast::max(_3055, float3(0.017999999225139617919921875)), float3(0.449999988079071044921875)) * float3(1.09899997711181640625)) - float3(0.098999999463558197021484375)); - } - else - { - float3 _3052; - if ((_Globals.OutputDevice == 3u) || (_Globals.OutputDevice == 5u)) - { - float3 _2204 = (_932 * float3(1.5)) * (_572 * float3x3(float3(1.04981100559234619140625, 0.0, -9.74845024757087230682373046875e-05), float3(-0.49590301513671875, 1.37331306934356689453125, 0.09824003279209136962890625), float3(0.0, 0.0, 0.991252005100250244140625))); - float _2205 = _2204.x; - float _2206 = _2204.y; - float _2208 = _2204.z; - float _2211 = fast::max(fast::max(_2205, _2206), _2208); - float _2216 = (fast::max(_2211, 1.0000000133514319600180897396058e-10) - fast::max(fast::min(fast::min(_2205, _2206), _2208), 1.0000000133514319600180897396058e-10)) / fast::max(_2211, 0.00999999977648258209228515625); - float _2229 = ((_2208 + _2206) + _2205) + (1.75 * sqrt(((_2208 * (_2208 - _2206)) + (_2206 * (_2206 - _2205))) + (_2205 * (_2205 - _2208)))); - float _2230 = _2229 * 0.3333333432674407958984375; - float _2231 = _2216 - 0.4000000059604644775390625; - float _2236 = fast::max(1.0 - abs(_2231 * 2.5), 0.0); - float _2244 = (1.0 + (float(int(sign(_2231 * 5.0))) * (1.0 - (_2236 * _2236)))) * 0.02500000037252902984619140625; - float _2257; - if (_2230 <= 0.053333334624767303466796875) - { - _2257 = _2244; - } - else - { - float _2256; - if (_2230 >= 0.1599999964237213134765625) - { - _2256 = 0.0; - } - else - { - _2256 = _2244 * ((0.23999999463558197021484375 / _2229) - 0.5); - } - _2257 = _2256; - } - float3 _2260 = _2204 * float3(1.0 + _2257); - float _2261 = _2260.x; - float _2262 = _2260.y; - float _2264 = _2260.z; - float _2278; - if ((_2261 == _2262) && (_2262 == _2264)) - { - _2278 = 0.0; - } - else - { - _2278 = 57.2957763671875 * atan2(sqrt(3.0) * (_2262 - _2264), ((2.0 * _2261) - _2262) - _2264); - } - float _2283; - if (_2278 < 0.0) - { - _2283 = _2278 + 360.0; - } - else - { - _2283 = _2278; - } - float _2284 = fast::clamp(_2283, 0.0, 360.0); - float _2289; - if (_2284 > 180.0) - { - _2289 = _2284 - 360.0; - } - else - { - _2289 = _2284; - } - float _2339; - if ((_2289 > (-67.5)) && (_2289 < 67.5)) - { - float _2296 = (_2289 - (-67.5)) * 0.0296296291053295135498046875; - int _2297 = int(_2296); - float _2299 = _2296 - float(_2297); - float _2300 = _2299 * _2299; - float _2301 = _2300 * _2299; - float _2338; - if (_2297 == 3) - { - _2338 = (((_2301 * (-0.16666667163372039794921875)) + (_2300 * 0.5)) + (_2299 * (-0.5))) + 0.16666667163372039794921875; - } - else - { - float _2331; - if (_2297 == 2) - { - _2331 = ((_2301 * 0.5) + (_2300 * (-1.0))) + 0.666666686534881591796875; - } - else - { - float _2326; - if (_2297 == 1) - { - _2326 = (((_2301 * (-0.5)) + (_2300 * 0.5)) + (_2299 * 0.5)) + 0.16666667163372039794921875; - } - else - { - float _2319; - if (_2297 == 0) - { - _2319 = _2301 * 0.16666667163372039794921875; - } - else - { - _2319 = 0.0; - } - _2326 = _2319; - } - _2331 = _2326; - } - _2338 = _2331; - } - _2339 = _2338; - } - else - { - _2339 = 0.0; - } - float3 _2346 = _2260; - _2346.x = _2261 + ((((_2339 * 1.5) * _2216) * (0.02999999932944774627685546875 - _2261)) * 0.180000007152557373046875); - float3 _2349 = fast::clamp(fast::clamp(_2346, float3(0.0), float3(65535.0)) * float3x3(float3(1.45143926143646240234375, -0.236510753631591796875, -0.214928567409515380859375), float3(-0.07655377686023712158203125, 1.1762297153472900390625, -0.0996759235858917236328125), float3(0.0083161480724811553955078125, -0.0060324496589601039886474609375, 0.99771630764007568359375)), float3(0.0), float3(65535.0)); - float3 _2352 = mix(float3(dot(_2349, float3(0.272228717803955078125, 0.674081742763519287109375, 0.053689517080783843994140625))), _2349, float3(0.959999978542327880859375)); - float _2353 = _2352.x; - float _2357 = 0.17999999225139617919921875 * exp2(18.0); - float _2359 = exp2(-14.0); - float _2362 = log((_2353 <= 0.0) ? _2359 : _2353) / _1091; - float _2364 = log(0.17999999225139617919921875 * exp2(-15.0)) / _1091; - float _2431; - if (_2362 <= _2364) - { - _2431 = log(9.9999997473787516355514526367188e-05) / _1091; - } - else - { - float _2371 = log(0.180000007152557373046875) / _1091; - float _2428; - if ((_2362 > _2364) && (_2362 < _2371)) - { - float _2411 = (3.0 * (_2362 - _2364)) / (_2371 - _2364); - int _2412 = int(_2411); - float _2414 = _2411 - float(_2412); - _2428 = dot(float3(_2414 * _2414, _2414, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_499[_2412], _499[_2412 + 1], _499[_2412 + 2])); - } - else - { - float _2379 = log(_2357) / _1091; - float _2407; - if ((_2362 >= _2371) && (_2362 < _2379)) - { - float _2390 = (3.0 * (_2362 - _2371)) / (_2379 - _2371); - int _2391 = int(_2390); - float _2393 = _2390 - float(_2391); - _2407 = dot(float3(_2393 * _2393, _2393, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_500[_2391], _500[_2391 + 1], _500[_2391 + 2])); - } - else - { - _2407 = log(10000.0) / _1091; - } - _2428 = _2407; - } - _2431 = _2428; - } - float3 _2433 = _523; - _2433.x = pow(10.0, _2431); - float _2434 = _2352.y; - float _2438 = log((_2434 <= 0.0) ? _2359 : _2434) / _1091; - float _2505; - if (_2438 <= _2364) - { - _2505 = log(9.9999997473787516355514526367188e-05) / _1091; - } - else - { - float _2445 = log(0.180000007152557373046875) / _1091; - float _2502; - if ((_2438 > _2364) && (_2438 < _2445)) - { - float _2485 = (3.0 * (_2438 - _2364)) / (_2445 - _2364); - int _2486 = int(_2485); - float _2488 = _2485 - float(_2486); - _2502 = dot(float3(_2488 * _2488, _2488, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_499[_2486], _499[_2486 + 1], _499[_2486 + 2])); - } - else - { - float _2453 = log(_2357) / _1091; - float _2481; - if ((_2438 >= _2445) && (_2438 < _2453)) - { - float _2464 = (3.0 * (_2438 - _2445)) / (_2453 - _2445); - int _2465 = int(_2464); - float _2467 = _2464 - float(_2465); - _2481 = dot(float3(_2467 * _2467, _2467, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_500[_2465], _500[_2465 + 1], _500[_2465 + 2])); - } - else - { - _2481 = log(10000.0) / _1091; - } - _2502 = _2481; - } - _2505 = _2502; - } - float3 _2507 = _2433; - _2507.y = pow(10.0, _2505); - float _2508 = _2352.z; - float _2512 = log((_2508 <= 0.0) ? _2359 : _2508) / _1091; - float _2579; - if (_2512 <= _2364) - { - _2579 = log(9.9999997473787516355514526367188e-05) / _1091; - } - else - { - float _2519 = log(0.180000007152557373046875) / _1091; - float _2576; - if ((_2512 > _2364) && (_2512 < _2519)) - { - float _2559 = (3.0 * (_2512 - _2364)) / (_2519 - _2364); - int _2560 = int(_2559); - float _2562 = _2559 - float(_2560); - _2576 = dot(float3(_2562 * _2562, _2562, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_499[_2560], _499[_2560 + 1], _499[_2560 + 2])); - } - else - { - float _2527 = log(_2357) / _1091; - float _2555; - if ((_2512 >= _2519) && (_2512 < _2527)) - { - float _2538 = (3.0 * (_2512 - _2519)) / (_2527 - _2519); - int _2539 = int(_2538); - float _2541 = _2538 - float(_2539); - _2555 = dot(float3(_2541 * _2541, _2541, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_500[_2539], _500[_2539 + 1], _500[_2539 + 2])); - } - else - { - _2555 = log(10000.0) / _1091; - } - _2576 = _2555; - } - _2579 = _2576; - } - float3 _2581 = _2507; - _2581.z = pow(10.0, _2579); - float3 _2583 = (_2581 * float3x3(float3(0.695452213287353515625, 0.140678703784942626953125, 0.16386906802654266357421875), float3(0.0447945632040500640869140625, 0.859671115875244140625, 0.095534317195415496826171875), float3(-0.0055258828215301036834716796875, 0.0040252101607620716094970703125, 1.00150072574615478515625))) * float3x3(float3(1.45143926143646240234375, -0.236510753631591796875, -0.214928567409515380859375), float3(-0.07655377686023712158203125, 1.1762297153472900390625, -0.0996759235858917236328125), float3(0.0083161480724811553955078125, -0.0060324496589601039886474609375, 0.99771630764007568359375)); - float _2585 = 0.17999999225139617919921875 * pow(2.0, -12.0); - float _2589 = log((_2585 <= 0.0) ? _2359 : _2585) / _1091; - float _2656; - if (_2589 <= _2364) - { - _2656 = log(9.9999997473787516355514526367188e-05) / _1091; - } - else - { - float _2596 = log(0.180000007152557373046875) / _1091; - float _2653; - if ((_2589 > _2364) && (_2589 < _2596)) - { - float _2636 = (3.0 * (_2589 - _2364)) / (_2596 - _2364); - int _2637 = int(_2636); - float _2639 = _2636 - float(_2637); - _2653 = dot(float3(_2639 * _2639, _2639, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_499[_2637], _499[_2637 + 1], _499[_2637 + 2])); - } - else - { - float _2604 = log(_2357) / _1091; - float _2632; - if ((_2589 >= _2596) && (_2589 < _2604)) - { - float _2615 = (3.0 * (_2589 - _2596)) / (_2604 - _2596); - int _2616 = int(_2615); - float _2618 = _2615 - float(_2616); - _2632 = dot(float3(_2618 * _2618, _2618, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_500[_2616], _500[_2616 + 1], _500[_2616 + 2])); - } - else - { - _2632 = log(10000.0) / _1091; - } - _2653 = _2632; - } - _2656 = _2653; - } - float _2659 = log(0.180000007152557373046875) / _1091; - float _2713; - if (_2659 <= _2364) - { - _2713 = log(9.9999997473787516355514526367188e-05) / _1091; - } - else - { - float _2710; - if ((_2659 > _2364) && (_2659 < _2659)) - { - _2710 = (float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_499[3], _499[4], _499[5])).z; - } - else - { - float _2672 = log(_2357) / _1091; - float _2700; - if ((_2659 >= _2659) && (_2659 < _2672)) - { - float _2683 = (3.0 * (_2659 - _2659)) / (_2672 - _2659); - int _2684 = int(_2683); - float _2686 = _2683 - float(_2684); - _2700 = dot(float3(_2686 * _2686, _2686, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_500[_2684], _500[_2684 + 1], _500[_2684 + 2])); - } - else - { - _2700 = log(10000.0) / _1091; - } - _2710 = _2700; - } - _2713 = _2710; - } - float _2714 = pow(10.0, _2713); - float _2716 = 0.17999999225139617919921875 * pow(2.0, 10.0); - float _2720 = log((_2716 <= 0.0) ? _2359 : _2716) / _1091; - float _2785; - if (_2720 <= _2364) - { - _2785 = log(9.9999997473787516355514526367188e-05) / _1091; - } - else - { - float _2782; - if ((_2720 > _2364) && (_2720 < _2659)) - { - float _2765 = (3.0 * (_2720 - _2364)) / (_2659 - _2364); - int _2766 = int(_2765); - float _2768 = _2765 - float(_2766); - _2782 = dot(float3(_2768 * _2768, _2768, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_499[_2766], _499[_2766 + 1], _499[_2766 + 2])); - } - else - { - float _2733 = log(_2357) / _1091; - float _2761; - if ((_2720 >= _2659) && (_2720 < _2733)) - { - float _2744 = (3.0 * (_2720 - _2659)) / (_2733 - _2659); - int _2745 = int(_2744); - float _2747 = _2744 - float(_2745); - _2761 = dot(float3(_2747 * _2747, _2747, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_500[_2745], _500[_2745 + 1], _500[_2745 + 2])); - } - else - { - _2761 = log(10000.0) / _1091; - } - _2782 = _2761; - } - _2785 = _2782; - } - float _2786 = pow(10.0, _2785); - float _2787 = _2583.x; - float _2791 = log((_2787 <= 0.0) ? 9.9999997473787516355514526367188e-05 : _2787) / _1091; - float _2792 = log(pow(10.0, _2656)); - float _2793 = _2792 / _1091; - float _2870; - if (_2791 <= _2793) - { - _2870 = (_2791 * 3.0) + ((log(9.9999997473787516355514526367188e-05) / _1091) - ((3.0 * _2792) / _1091)); - } - else - { - float _2800 = log(_2714) / _1091; - float _2862; - if ((_2791 > _2793) && (_2791 < _2800)) - { - float _2845 = (7.0 * (_2791 - _2793)) / (_2800 - _2793); - int _2846 = int(_2845); - float _2848 = _2845 - float(_2846); - _2862 = dot(float3(_2848 * _2848, _2848, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_503[_2846], _503[_2846 + 1], _503[_2846 + 2])); - } - else - { - float _2807 = log(_2786); - float _2808 = _2807 / _1091; - float _2841; - if ((_2791 >= _2800) && (_2791 < _2808)) - { - float _2824 = (7.0 * (_2791 - _2800)) / (_2808 - _2800); - int _2825 = int(_2824); - float _2827 = _2824 - float(_2825); - _2841 = dot(float3(_2827 * _2827, _2827, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_504[_2825], _504[_2825 + 1], _504[_2825 + 2])); - } - else - { - _2841 = (_2791 * 0.0599999986588954925537109375) + ((log(1000.0) / _1091) - ((0.0599999986588954925537109375 * _2807) / _1091)); - } - _2862 = _2841; - } - _2870 = _2862; - } - float3 _2872 = _523; - _2872.x = pow(10.0, _2870); - float _2873 = _2583.y; - float _2877 = log((_2873 <= 0.0) ? 9.9999997473787516355514526367188e-05 : _2873) / _1091; - float _2954; - if (_2877 <= _2793) - { - _2954 = (_2877 * 3.0) + ((log(9.9999997473787516355514526367188e-05) / _1091) - ((3.0 * _2792) / _1091)); - } - else - { - float _2884 = log(_2714) / _1091; - float _2946; - if ((_2877 > _2793) && (_2877 < _2884)) - { - float _2929 = (7.0 * (_2877 - _2793)) / (_2884 - _2793); - int _2930 = int(_2929); - float _2932 = _2929 - float(_2930); - _2946 = dot(float3(_2932 * _2932, _2932, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_503[_2930], _503[_2930 + 1], _503[_2930 + 2])); - } - else - { - float _2891 = log(_2786); - float _2892 = _2891 / _1091; - float _2925; - if ((_2877 >= _2884) && (_2877 < _2892)) - { - float _2908 = (7.0 * (_2877 - _2884)) / (_2892 - _2884); - int _2909 = int(_2908); - float _2911 = _2908 - float(_2909); - _2925 = dot(float3(_2911 * _2911, _2911, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_504[_2909], _504[_2909 + 1], _504[_2909 + 2])); - } - else - { - _2925 = (_2877 * 0.0599999986588954925537109375) + ((log(1000.0) / _1091) - ((0.0599999986588954925537109375 * _2891) / _1091)); - } - _2946 = _2925; - } - _2954 = _2946; - } - float3 _2956 = _2872; - _2956.y = pow(10.0, _2954); - float _2957 = _2583.z; - float _2961 = log((_2957 <= 0.0) ? 9.9999997473787516355514526367188e-05 : _2957) / _1091; - float _3038; - if (_2961 <= _2793) - { - _3038 = (_2961 * 3.0) + ((log(9.9999997473787516355514526367188e-05) / _1091) - ((3.0 * _2792) / _1091)); - } - else - { - float _2968 = log(_2714) / _1091; - float _3030; - if ((_2961 > _2793) && (_2961 < _2968)) - { - float _3013 = (7.0 * (_2961 - _2793)) / (_2968 - _2793); - int _3014 = int(_3013); - float _3016 = _3013 - float(_3014); - _3030 = dot(float3(_3016 * _3016, _3016, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_503[_3014], _503[_3014 + 1], _503[_3014 + 2])); - } - else - { - float _2975 = log(_2786); - float _2976 = _2975 / _1091; - float _3009; - if ((_2961 >= _2968) && (_2961 < _2976)) - { - float _2992 = (7.0 * (_2961 - _2968)) / (_2976 - _2968); - int _2993 = int(_2992); - float _2995 = _2992 - float(_2993); - _3009 = dot(float3(_2995 * _2995, _2995, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_504[_2993], _504[_2993 + 1], _504[_2993 + 2])); - } - else - { - _3009 = (_2961 * 0.0599999986588954925537109375) + ((log(1000.0) / _1091) - ((0.0599999986588954925537109375 * _2975) / _1091)); - } - _3030 = _3009; - } - _3038 = _3030; - } - float3 _3040 = _2956; - _3040.z = pow(10.0, _3038); - float3 _3044 = pow(((_3040 - float3(3.5073844628641381859779357910156e-05)) * _602) * float3(9.9999997473787516355514526367188e-05), float3(0.1593017578125)); - _3052 = pow((float3(0.8359375) + (float3(18.8515625) * _3044)) * (float3(1.0) / (float3(1.0) + (float3(18.6875) * _3044))), float3(78.84375)); - } - else - { - float3 _2201; - if ((_Globals.OutputDevice == 4u) || (_Globals.OutputDevice == 6u)) - { - float3 _1369 = (_932 * float3(1.5)) * (_572 * float3x3(float3(1.04981100559234619140625, 0.0, -9.74845024757087230682373046875e-05), float3(-0.49590301513671875, 1.37331306934356689453125, 0.09824003279209136962890625), float3(0.0, 0.0, 0.991252005100250244140625))); - float _1370 = _1369.x; - float _1371 = _1369.y; - float _1373 = _1369.z; - float _1376 = fast::max(fast::max(_1370, _1371), _1373); - float _1381 = (fast::max(_1376, 1.0000000133514319600180897396058e-10) - fast::max(fast::min(fast::min(_1370, _1371), _1373), 1.0000000133514319600180897396058e-10)) / fast::max(_1376, 0.00999999977648258209228515625); - float _1394 = ((_1373 + _1371) + _1370) + (1.75 * sqrt(((_1373 * (_1373 - _1371)) + (_1371 * (_1371 - _1370))) + (_1370 * (_1370 - _1373)))); - float _1395 = _1394 * 0.3333333432674407958984375; - float _1396 = _1381 - 0.4000000059604644775390625; - float _1401 = fast::max(1.0 - abs(_1396 * 2.5), 0.0); - float _1409 = (1.0 + (float(int(sign(_1396 * 5.0))) * (1.0 - (_1401 * _1401)))) * 0.02500000037252902984619140625; - float _1422; - if (_1395 <= 0.053333334624767303466796875) - { - _1422 = _1409; - } - else - { - float _1421; - if (_1395 >= 0.1599999964237213134765625) - { - _1421 = 0.0; - } - else - { - _1421 = _1409 * ((0.23999999463558197021484375 / _1394) - 0.5); - } - _1422 = _1421; - } - float3 _1425 = _1369 * float3(1.0 + _1422); - float _1426 = _1425.x; - float _1427 = _1425.y; - float _1429 = _1425.z; - float _1443; - if ((_1426 == _1427) && (_1427 == _1429)) - { - _1443 = 0.0; - } - else - { - _1443 = 57.2957763671875 * atan2(sqrt(3.0) * (_1427 - _1429), ((2.0 * _1426) - _1427) - _1429); - } - float _1448; - if (_1443 < 0.0) - { - _1448 = _1443 + 360.0; - } - else - { - _1448 = _1443; - } - float _1449 = fast::clamp(_1448, 0.0, 360.0); - float _1454; - if (_1449 > 180.0) - { - _1454 = _1449 - 360.0; - } - else - { - _1454 = _1449; - } - float _1504; - if ((_1454 > (-67.5)) && (_1454 < 67.5)) - { - float _1461 = (_1454 - (-67.5)) * 0.0296296291053295135498046875; - int _1462 = int(_1461); - float _1464 = _1461 - float(_1462); - float _1465 = _1464 * _1464; - float _1466 = _1465 * _1464; - float _1503; - if (_1462 == 3) - { - _1503 = (((_1466 * (-0.16666667163372039794921875)) + (_1465 * 0.5)) + (_1464 * (-0.5))) + 0.16666667163372039794921875; - } - else - { - float _1496; - if (_1462 == 2) - { - _1496 = ((_1466 * 0.5) + (_1465 * (-1.0))) + 0.666666686534881591796875; - } - else - { - float _1491; - if (_1462 == 1) - { - _1491 = (((_1466 * (-0.5)) + (_1465 * 0.5)) + (_1464 * 0.5)) + 0.16666667163372039794921875; - } - else - { - float _1484; - if (_1462 == 0) - { - _1484 = _1466 * 0.16666667163372039794921875; - } - else - { - _1484 = 0.0; - } - _1491 = _1484; - } - _1496 = _1491; - } - _1503 = _1496; - } - _1504 = _1503; - } - else - { - _1504 = 0.0; - } - float3 _1511 = _1425; - _1511.x = _1426 + ((((_1504 * 1.5) * _1381) * (0.02999999932944774627685546875 - _1426)) * 0.180000007152557373046875); - float3 _1514 = fast::clamp(fast::clamp(_1511, float3(0.0), float3(65535.0)) * float3x3(float3(1.45143926143646240234375, -0.236510753631591796875, -0.214928567409515380859375), float3(-0.07655377686023712158203125, 1.1762297153472900390625, -0.0996759235858917236328125), float3(0.0083161480724811553955078125, -0.0060324496589601039886474609375, 0.99771630764007568359375)), float3(0.0), float3(65535.0)); - float3 _1517 = mix(float3(dot(_1514, float3(0.272228717803955078125, 0.674081742763519287109375, 0.053689517080783843994140625))), _1514, float3(0.959999978542327880859375)); - float _1518 = _1517.x; - float _1522 = 0.17999999225139617919921875 * exp2(18.0); - float _1524 = exp2(-14.0); - float _1527 = log((_1518 <= 0.0) ? _1524 : _1518) / _1091; - float _1529 = log(0.17999999225139617919921875 * exp2(-15.0)) / _1091; - float _1596; - if (_1527 <= _1529) - { - _1596 = log(9.9999997473787516355514526367188e-05) / _1091; - } - else - { - float _1536 = log(0.180000007152557373046875) / _1091; - float _1593; - if ((_1527 > _1529) && (_1527 < _1536)) - { - float _1576 = (3.0 * (_1527 - _1529)) / (_1536 - _1529); - int _1577 = int(_1576); - float _1579 = _1576 - float(_1577); - _1593 = dot(float3(_1579 * _1579, _1579, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_499[_1577], _499[_1577 + 1], _499[_1577 + 2])); - } - else - { - float _1544 = log(_1522) / _1091; - float _1572; - if ((_1527 >= _1536) && (_1527 < _1544)) - { - float _1555 = (3.0 * (_1527 - _1536)) / (_1544 - _1536); - int _1556 = int(_1555); - float _1558 = _1555 - float(_1556); - _1572 = dot(float3(_1558 * _1558, _1558, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_500[_1556], _500[_1556 + 1], _500[_1556 + 2])); - } - else - { - _1572 = log(10000.0) / _1091; - } - _1593 = _1572; - } - _1596 = _1593; - } - float3 _1598 = _523; - _1598.x = pow(10.0, _1596); - float _1599 = _1517.y; - float _1603 = log((_1599 <= 0.0) ? _1524 : _1599) / _1091; - float _1670; - if (_1603 <= _1529) - { - _1670 = log(9.9999997473787516355514526367188e-05) / _1091; - } - else - { - float _1610 = log(0.180000007152557373046875) / _1091; - float _1667; - if ((_1603 > _1529) && (_1603 < _1610)) - { - float _1650 = (3.0 * (_1603 - _1529)) / (_1610 - _1529); - int _1651 = int(_1650); - float _1653 = _1650 - float(_1651); - _1667 = dot(float3(_1653 * _1653, _1653, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_499[_1651], _499[_1651 + 1], _499[_1651 + 2])); - } - else - { - float _1618 = log(_1522) / _1091; - float _1646; - if ((_1603 >= _1610) && (_1603 < _1618)) - { - float _1629 = (3.0 * (_1603 - _1610)) / (_1618 - _1610); - int _1630 = int(_1629); - float _1632 = _1629 - float(_1630); - _1646 = dot(float3(_1632 * _1632, _1632, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_500[_1630], _500[_1630 + 1], _500[_1630 + 2])); - } - else - { - _1646 = log(10000.0) / _1091; - } - _1667 = _1646; - } - _1670 = _1667; - } - float3 _1672 = _1598; - _1672.y = pow(10.0, _1670); - float _1673 = _1517.z; - float _1677 = log((_1673 <= 0.0) ? _1524 : _1673) / _1091; - float _1744; - if (_1677 <= _1529) - { - _1744 = log(9.9999997473787516355514526367188e-05) / _1091; - } - else - { - float _1684 = log(0.180000007152557373046875) / _1091; - float _1741; - if ((_1677 > _1529) && (_1677 < _1684)) - { - float _1724 = (3.0 * (_1677 - _1529)) / (_1684 - _1529); - int _1725 = int(_1724); - float _1727 = _1724 - float(_1725); - _1741 = dot(float3(_1727 * _1727, _1727, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_499[_1725], _499[_1725 + 1], _499[_1725 + 2])); - } - else - { - float _1692 = log(_1522) / _1091; - float _1720; - if ((_1677 >= _1684) && (_1677 < _1692)) - { - float _1703 = (3.0 * (_1677 - _1684)) / (_1692 - _1684); - int _1704 = int(_1703); - float _1706 = _1703 - float(_1704); - _1720 = dot(float3(_1706 * _1706, _1706, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_500[_1704], _500[_1704 + 1], _500[_1704 + 2])); - } - else - { - _1720 = log(10000.0) / _1091; - } - _1741 = _1720; - } - _1744 = _1741; - } - float3 _1746 = _1672; - _1746.z = pow(10.0, _1744); - float3 _1748 = (_1746 * float3x3(float3(0.695452213287353515625, 0.140678703784942626953125, 0.16386906802654266357421875), float3(0.0447945632040500640869140625, 0.859671115875244140625, 0.095534317195415496826171875), float3(-0.0055258828215301036834716796875, 0.0040252101607620716094970703125, 1.00150072574615478515625))) * float3x3(float3(1.45143926143646240234375, -0.236510753631591796875, -0.214928567409515380859375), float3(-0.07655377686023712158203125, 1.1762297153472900390625, -0.0996759235858917236328125), float3(0.0083161480724811553955078125, -0.0060324496589601039886474609375, 0.99771630764007568359375)); - float _1750 = 0.17999999225139617919921875 * pow(2.0, -12.0); - float _1754 = log((_1750 <= 0.0) ? _1524 : _1750) / _1091; - float _1821; - if (_1754 <= _1529) - { - _1821 = log(9.9999997473787516355514526367188e-05) / _1091; - } - else - { - float _1761 = log(0.180000007152557373046875) / _1091; - float _1818; - if ((_1754 > _1529) && (_1754 < _1761)) - { - float _1801 = (3.0 * (_1754 - _1529)) / (_1761 - _1529); - int _1802 = int(_1801); - float _1804 = _1801 - float(_1802); - _1818 = dot(float3(_1804 * _1804, _1804, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_499[_1802], _499[_1802 + 1], _499[_1802 + 2])); - } - else - { - float _1769 = log(_1522) / _1091; - float _1797; - if ((_1754 >= _1761) && (_1754 < _1769)) - { - float _1780 = (3.0 * (_1754 - _1761)) / (_1769 - _1761); - int _1781 = int(_1780); - float _1783 = _1780 - float(_1781); - _1797 = dot(float3(_1783 * _1783, _1783, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_500[_1781], _500[_1781 + 1], _500[_1781 + 2])); - } - else - { - _1797 = log(10000.0) / _1091; - } - _1818 = _1797; - } - _1821 = _1818; - } - float _1824 = log(0.180000007152557373046875) / _1091; - float _1878; - if (_1824 <= _1529) - { - _1878 = log(9.9999997473787516355514526367188e-05) / _1091; - } - else - { - float _1875; - if ((_1824 > _1529) && (_1824 < _1824)) - { - _1875 = (float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_499[3], _499[4], _499[5])).z; - } - else - { - float _1837 = log(_1522) / _1091; - float _1865; - if ((_1824 >= _1824) && (_1824 < _1837)) - { - float _1848 = (3.0 * (_1824 - _1824)) / (_1837 - _1824); - int _1849 = int(_1848); - float _1851 = _1848 - float(_1849); - _1865 = dot(float3(_1851 * _1851, _1851, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_500[_1849], _500[_1849 + 1], _500[_1849 + 2])); - } - else - { - _1865 = log(10000.0) / _1091; - } - _1875 = _1865; - } - _1878 = _1875; - } - float _1879 = pow(10.0, _1878); - float _1881 = 0.17999999225139617919921875 * pow(2.0, 11.0); - float _1885 = log((_1881 <= 0.0) ? _1524 : _1881) / _1091; - float _1950; - if (_1885 <= _1529) - { - _1950 = log(9.9999997473787516355514526367188e-05) / _1091; - } - else - { - float _1947; - if ((_1885 > _1529) && (_1885 < _1824)) - { - float _1930 = (3.0 * (_1885 - _1529)) / (_1824 - _1529); - int _1931 = int(_1930); - float _1933 = _1930 - float(_1931); - _1947 = dot(float3(_1933 * _1933, _1933, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_499[_1931], _499[_1931 + 1], _499[_1931 + 2])); - } - else - { - float _1898 = log(_1522) / _1091; - float _1926; - if ((_1885 >= _1824) && (_1885 < _1898)) - { - float _1909 = (3.0 * (_1885 - _1824)) / (_1898 - _1824); - int _1910 = int(_1909); - float _1912 = _1909 - float(_1910); - _1926 = dot(float3(_1912 * _1912, _1912, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_500[_1910], _500[_1910 + 1], _500[_1910 + 2])); - } - else - { - _1926 = log(10000.0) / _1091; - } - _1947 = _1926; - } - _1950 = _1947; - } - float _1951 = pow(10.0, _1950); - float _1952 = _1748.x; - float _1956 = log((_1952 <= 0.0) ? 9.9999997473787516355514526367188e-05 : _1952) / _1091; - float _1958 = log(pow(10.0, _1821)) / _1091; - float _2030; - if (_1956 <= _1958) - { - _2030 = log(0.004999999888241291046142578125) / _1091; - } - else - { - float _1965 = log(_1879) / _1091; - float _2027; - if ((_1956 > _1958) && (_1956 < _1965)) - { - float _2010 = (7.0 * (_1956 - _1958)) / (_1965 - _1958); - int _2011 = int(_2010); - float _2013 = _2010 - float(_2011); - _2027 = dot(float3(_2013 * _2013, _2013, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_506[_2011], _506[_2011 + 1], _506[_2011 + 2])); - } - else - { - float _1972 = log(_1951); - float _1973 = _1972 / _1091; - float _2006; - if ((_1956 >= _1965) && (_1956 < _1973)) - { - float _1989 = (7.0 * (_1956 - _1965)) / (_1973 - _1965); - int _1990 = int(_1989); - float _1992 = _1989 - float(_1990); - _2006 = dot(float3(_1992 * _1992, _1992, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_507[_1990], _507[_1990 + 1], _507[_1990 + 2])); - } - else - { - _2006 = (_1956 * 0.119999997317790985107421875) + ((log(2000.0) / _1091) - ((0.119999997317790985107421875 * _1972) / _1091)); - } - _2027 = _2006; - } - _2030 = _2027; - } - float3 _2032 = _523; - _2032.x = pow(10.0, _2030); - float _2033 = _1748.y; - float _2037 = log((_2033 <= 0.0) ? 9.9999997473787516355514526367188e-05 : _2033) / _1091; - float _2109; - if (_2037 <= _1958) - { - _2109 = log(0.004999999888241291046142578125) / _1091; - } - else - { - float _2044 = log(_1879) / _1091; - float _2106; - if ((_2037 > _1958) && (_2037 < _2044)) - { - float _2089 = (7.0 * (_2037 - _1958)) / (_2044 - _1958); - int _2090 = int(_2089); - float _2092 = _2089 - float(_2090); - _2106 = dot(float3(_2092 * _2092, _2092, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_506[_2090], _506[_2090 + 1], _506[_2090 + 2])); - } - else - { - float _2051 = log(_1951); - float _2052 = _2051 / _1091; - float _2085; - if ((_2037 >= _2044) && (_2037 < _2052)) - { - float _2068 = (7.0 * (_2037 - _2044)) / (_2052 - _2044); - int _2069 = int(_2068); - float _2071 = _2068 - float(_2069); - _2085 = dot(float3(_2071 * _2071, _2071, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_507[_2069], _507[_2069 + 1], _507[_2069 + 2])); - } - else - { - _2085 = (_2037 * 0.119999997317790985107421875) + ((log(2000.0) / _1091) - ((0.119999997317790985107421875 * _2051) / _1091)); - } - _2106 = _2085; - } - _2109 = _2106; - } - float3 _2111 = _2032; - _2111.y = pow(10.0, _2109); - float _2112 = _1748.z; - float _2116 = log((_2112 <= 0.0) ? 9.9999997473787516355514526367188e-05 : _2112) / _1091; - float _2188; - if (_2116 <= _1958) - { - _2188 = log(0.004999999888241291046142578125) / _1091; - } - else - { - float _2123 = log(_1879) / _1091; - float _2185; - if ((_2116 > _1958) && (_2116 < _2123)) - { - float _2168 = (7.0 * (_2116 - _1958)) / (_2123 - _1958); - int _2169 = int(_2168); - float _2171 = _2168 - float(_2169); - _2185 = dot(float3(_2171 * _2171, _2171, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_506[_2169], _506[_2169 + 1], _506[_2169 + 2])); - } - else - { - float _2130 = log(_1951); - float _2131 = _2130 / _1091; - float _2164; - if ((_2116 >= _2123) && (_2116 < _2131)) - { - float _2147 = (7.0 * (_2116 - _2123)) / (_2131 - _2123); - int _2148 = int(_2147); - float _2150 = _2147 - float(_2148); - _2164 = dot(float3(_2150 * _2150, _2150, 1.0), float3x3(float3(0.5, -1.0, 0.5), float3(-1.0, 1.0, 0.5), float3(0.5, 0.0, 0.0)) * float3(_507[_2148], _507[_2148 + 1], _507[_2148 + 2])); - } - else - { - _2164 = (_2116 * 0.119999997317790985107421875) + ((log(2000.0) / _1091) - ((0.119999997317790985107421875 * _2130) / _1091)); - } - _2185 = _2164; - } - _2188 = _2185; - } - float3 _2190 = _2111; - _2190.z = pow(10.0, _2188); - float3 _2193 = pow((_2190 * _602) * float3(9.9999997473787516355514526367188e-05), float3(0.1593017578125)); - _2201 = pow((float3(0.8359375) + (float3(18.8515625) * _2193)) * (float3(1.0) / (float3(1.0) + (float3(18.6875) * _2193))), float3(78.84375)); - } - else - { - float3 _1366; - if (_Globals.OutputDevice == 7u) - { - float3 _1358 = pow(((_932 * _573) * _602) * float3(9.9999997473787516355514526367188e-05), float3(0.1593017578125)); - _1366 = pow((float3(0.8359375) + (float3(18.8515625) * _1358)) * (float3(1.0) / (float3(1.0) + (float3(18.6875) * _1358))), float3(78.84375)); - } - else - { - _1366 = pow((_1324 * _573) * _602, float3(_Globals.InverseGamma.z)); - } - _2201 = _1366; - } - _3052 = _2201; - } - _3062 = _3052; - } - _3103 = _3062; - } - float3 _3104 = _3103 * float3(0.95238101482391357421875); - float4 _3106 = float4(_3104.x, _3104.y, _3104.z, float4(0.0).w); - _3106.w = 0.0; - out.out_var_SV_Target0 = _3106; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-ue4/asm/frag/sample-mask-not-array.asm.frag b/third_party/spirv-cross/reference/shaders-ue4/asm/frag/sample-mask-not-array.asm.frag deleted file mode 100644 index dd54893a24..0000000000 --- a/third_party/spirv-cross/reference/shaders-ue4/asm/frag/sample-mask-not-array.asm.frag +++ /dev/null @@ -1,503 +0,0 @@ -#include -#include - -using namespace metal; - -struct type_View -{ - float4x4 View_TranslatedWorldToClip; - float4x4 View_WorldToClip; - float4x4 View_TranslatedWorldToView; - float4x4 View_ViewToTranslatedWorld; - float4x4 View_TranslatedWorldToCameraView; - float4x4 View_CameraViewToTranslatedWorld; - float4x4 View_ViewToClip; - float4x4 View_ViewToClipNoAA; - float4x4 View_ClipToView; - float4x4 View_ClipToTranslatedWorld; - float4x4 View_SVPositionToTranslatedWorld; - float4x4 View_ScreenToWorld; - float4x4 View_ScreenToTranslatedWorld; - packed_float3 View_ViewForward; - float PrePadding_View_844; - packed_float3 View_ViewUp; - float PrePadding_View_860; - packed_float3 View_ViewRight; - float PrePadding_View_876; - packed_float3 View_HMDViewNoRollUp; - float PrePadding_View_892; - packed_float3 View_HMDViewNoRollRight; - float PrePadding_View_908; - float4 View_InvDeviceZToWorldZTransform; - float4 View_ScreenPositionScaleBias; - packed_float3 View_WorldCameraOrigin; - float PrePadding_View_956; - packed_float3 View_TranslatedWorldCameraOrigin; - float PrePadding_View_972; - packed_float3 View_WorldViewOrigin; - float PrePadding_View_988; - packed_float3 View_PreViewTranslation; - float PrePadding_View_1004; - float4x4 View_PrevProjection; - float4x4 View_PrevViewProj; - float4x4 View_PrevViewRotationProj; - float4x4 View_PrevViewToClip; - float4x4 View_PrevClipToView; - float4x4 View_PrevTranslatedWorldToClip; - float4x4 View_PrevTranslatedWorldToView; - float4x4 View_PrevViewToTranslatedWorld; - float4x4 View_PrevTranslatedWorldToCameraView; - float4x4 View_PrevCameraViewToTranslatedWorld; - packed_float3 View_PrevWorldCameraOrigin; - float PrePadding_View_1660; - packed_float3 View_PrevWorldViewOrigin; - float PrePadding_View_1676; - packed_float3 View_PrevPreViewTranslation; - float PrePadding_View_1692; - float4x4 View_PrevInvViewProj; - float4x4 View_PrevScreenToTranslatedWorld; - float4x4 View_ClipToPrevClip; - float4 View_TemporalAAJitter; - float4 View_GlobalClippingPlane; - float2 View_FieldOfViewWideAngles; - float2 View_PrevFieldOfViewWideAngles; - float4 View_ViewRectMin; - float4 View_ViewSizeAndInvSize; - float4 View_BufferSizeAndInvSize; - float4 View_BufferBilinearUVMinMax; - int View_NumSceneColorMSAASamples; - float View_PreExposure; - float View_OneOverPreExposure; - float PrePadding_View_2012; - float4 View_DiffuseOverrideParameter; - float4 View_SpecularOverrideParameter; - float4 View_NormalOverrideParameter; - float2 View_RoughnessOverrideParameter; - float View_PrevFrameGameTime; - float View_PrevFrameRealTime; - float View_OutOfBoundsMask; - float PrePadding_View_2084; - float PrePadding_View_2088; - float PrePadding_View_2092; - packed_float3 View_WorldCameraMovementSinceLastFrame; - float View_CullingSign; - float View_NearPlane; - float View_AdaptiveTessellationFactor; - float View_GameTime; - float View_RealTime; - float View_DeltaTime; - float View_MaterialTextureMipBias; - float View_MaterialTextureDerivativeMultiply; - uint View_Random; - uint View_FrameNumber; - uint View_StateFrameIndexMod8; - uint View_StateFrameIndex; - float View_CameraCut; - float View_UnlitViewmodeMask; - float PrePadding_View_2164; - float PrePadding_View_2168; - float PrePadding_View_2172; - float4 View_DirectionalLightColor; - packed_float3 View_DirectionalLightDirection; - float PrePadding_View_2204; - float4 View_TranslucencyLightingVolumeMin[2]; - float4 View_TranslucencyLightingVolumeInvSize[2]; - float4 View_TemporalAAParams; - float4 View_CircleDOFParams; - float View_DepthOfFieldSensorWidth; - float View_DepthOfFieldFocalDistance; - float View_DepthOfFieldScale; - float View_DepthOfFieldFocalLength; - float View_DepthOfFieldFocalRegion; - float View_DepthOfFieldNearTransitionRegion; - float View_DepthOfFieldFarTransitionRegion; - float View_MotionBlurNormalizedToPixel; - float View_bSubsurfacePostprocessEnabled; - float View_GeneralPurposeTweak; - float View_DemosaicVposOffset; - float PrePadding_View_2348; - packed_float3 View_IndirectLightingColorScale; - float View_HDR32bppEncodingMode; - packed_float3 View_AtmosphericFogSunDirection; - float View_AtmosphericFogSunPower; - float View_AtmosphericFogPower; - float View_AtmosphericFogDensityScale; - float View_AtmosphericFogDensityOffset; - float View_AtmosphericFogGroundOffset; - float View_AtmosphericFogDistanceScale; - float View_AtmosphericFogAltitudeScale; - float View_AtmosphericFogHeightScaleRayleigh; - float View_AtmosphericFogStartDistance; - float View_AtmosphericFogDistanceOffset; - float View_AtmosphericFogSunDiscScale; - uint View_AtmosphericFogRenderMask; - uint View_AtmosphericFogInscatterAltitudeSampleNum; - float4 View_AtmosphericFogSunColor; - packed_float3 View_NormalCurvatureToRoughnessScaleBias; - float View_RenderingReflectionCaptureMask; - float4 View_AmbientCubemapTint; - float View_AmbientCubemapIntensity; - float View_SkyLightParameters; - float PrePadding_View_2488; - float PrePadding_View_2492; - float4 View_SkyLightColor; - float4 View_SkyIrradianceEnvironmentMap[7]; - float View_MobilePreviewMode; - float View_HMDEyePaddingOffset; - float View_ReflectionCubemapMaxMip; - float View_ShowDecalsMask; - uint View_DistanceFieldAOSpecularOcclusionMode; - float View_IndirectCapsuleSelfShadowingIntensity; - float PrePadding_View_2648; - float PrePadding_View_2652; - packed_float3 View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight; - int View_StereoPassIndex; - float4 View_GlobalVolumeCenterAndExtent[4]; - float4 View_GlobalVolumeWorldToUVAddAndMul[4]; - float View_GlobalVolumeDimension; - float View_GlobalVolumeTexelSize; - float View_MaxGlobalDistance; - float View_bCheckerboardSubsurfaceProfileRendering; - packed_float3 View_VolumetricFogInvGridSize; - float PrePadding_View_2828; - packed_float3 View_VolumetricFogGridZParams; - float PrePadding_View_2844; - float2 View_VolumetricFogSVPosToVolumeUV; - float View_VolumetricFogMaxDistance; - float PrePadding_View_2860; - packed_float3 View_VolumetricLightmapWorldToUVScale; - float PrePadding_View_2876; - packed_float3 View_VolumetricLightmapWorldToUVAdd; - float PrePadding_View_2892; - packed_float3 View_VolumetricLightmapIndirectionTextureSize; - float View_VolumetricLightmapBrickSize; - packed_float3 View_VolumetricLightmapBrickTexelSize; - float View_StereoIPD; - float View_IndirectLightingCacheShowFlag; - float View_EyeToPixelSpreadAngle; -}; - -struct type_StructuredBuffer_v4float -{ - float4 _m0[1]; -}; - -struct type_TranslucentBasePass -{ - uint TranslucentBasePass_Shared_Forward_NumLocalLights; - uint TranslucentBasePass_Shared_Forward_NumReflectionCaptures; - uint TranslucentBasePass_Shared_Forward_HasDirectionalLight; - uint TranslucentBasePass_Shared_Forward_NumGridCells; - packed_int3 TranslucentBasePass_Shared_Forward_CulledGridSize; - uint TranslucentBasePass_Shared_Forward_MaxCulledLightsPerCell; - uint TranslucentBasePass_Shared_Forward_LightGridPixelSizeShift; - uint PrePadding_TranslucentBasePass_Shared_Forward_36; - uint PrePadding_TranslucentBasePass_Shared_Forward_40; - uint PrePadding_TranslucentBasePass_Shared_Forward_44; - packed_float3 TranslucentBasePass_Shared_Forward_LightGridZParams; - float PrePadding_TranslucentBasePass_Shared_Forward_60; - packed_float3 TranslucentBasePass_Shared_Forward_DirectionalLightDirection; - float PrePadding_TranslucentBasePass_Shared_Forward_76; - packed_float3 TranslucentBasePass_Shared_Forward_DirectionalLightColor; - float TranslucentBasePass_Shared_Forward_DirectionalLightVolumetricScatteringIntensity; - uint TranslucentBasePass_Shared_Forward_DirectionalLightShadowMapChannelMask; - uint PrePadding_TranslucentBasePass_Shared_Forward_100; - float2 TranslucentBasePass_Shared_Forward_DirectionalLightDistanceFadeMAD; - uint TranslucentBasePass_Shared_Forward_NumDirectionalLightCascades; - uint PrePadding_TranslucentBasePass_Shared_Forward_116; - uint PrePadding_TranslucentBasePass_Shared_Forward_120; - uint PrePadding_TranslucentBasePass_Shared_Forward_124; - float4 TranslucentBasePass_Shared_Forward_CascadeEndDepths; - float4x4 TranslucentBasePass_Shared_Forward_DirectionalLightWorldToShadowMatrix[4]; - float4 TranslucentBasePass_Shared_Forward_DirectionalLightShadowmapMinMax[4]; - float4 TranslucentBasePass_Shared_Forward_DirectionalLightShadowmapAtlasBufferSize; - float TranslucentBasePass_Shared_Forward_DirectionalLightDepthBias; - uint TranslucentBasePass_Shared_Forward_DirectionalLightUseStaticShadowing; - uint PrePadding_TranslucentBasePass_Shared_Forward_488; - uint PrePadding_TranslucentBasePass_Shared_Forward_492; - float4 TranslucentBasePass_Shared_Forward_DirectionalLightStaticShadowBufferSize; - float4x4 TranslucentBasePass_Shared_Forward_DirectionalLightWorldToStaticShadow; - float PrePadding_TranslucentBasePass_Shared_ForwardISR_576; - float PrePadding_TranslucentBasePass_Shared_ForwardISR_580; - float PrePadding_TranslucentBasePass_Shared_ForwardISR_584; - float PrePadding_TranslucentBasePass_Shared_ForwardISR_588; - float PrePadding_TranslucentBasePass_Shared_ForwardISR_592; - float PrePadding_TranslucentBasePass_Shared_ForwardISR_596; - float PrePadding_TranslucentBasePass_Shared_ForwardISR_600; - float PrePadding_TranslucentBasePass_Shared_ForwardISR_604; - float PrePadding_TranslucentBasePass_Shared_ForwardISR_608; - float PrePadding_TranslucentBasePass_Shared_ForwardISR_612; - float PrePadding_TranslucentBasePass_Shared_ForwardISR_616; - float PrePadding_TranslucentBasePass_Shared_ForwardISR_620; - float PrePadding_TranslucentBasePass_Shared_ForwardISR_624; - float PrePadding_TranslucentBasePass_Shared_ForwardISR_628; - float PrePadding_TranslucentBasePass_Shared_ForwardISR_632; - float PrePadding_TranslucentBasePass_Shared_ForwardISR_636; - uint TranslucentBasePass_Shared_ForwardISR_NumLocalLights; - uint TranslucentBasePass_Shared_ForwardISR_NumReflectionCaptures; - uint TranslucentBasePass_Shared_ForwardISR_HasDirectionalLight; - uint TranslucentBasePass_Shared_ForwardISR_NumGridCells; - packed_int3 TranslucentBasePass_Shared_ForwardISR_CulledGridSize; - uint TranslucentBasePass_Shared_ForwardISR_MaxCulledLightsPerCell; - uint TranslucentBasePass_Shared_ForwardISR_LightGridPixelSizeShift; - uint PrePadding_TranslucentBasePass_Shared_ForwardISR_676; - uint PrePadding_TranslucentBasePass_Shared_ForwardISR_680; - uint PrePadding_TranslucentBasePass_Shared_ForwardISR_684; - packed_float3 TranslucentBasePass_Shared_ForwardISR_LightGridZParams; - float PrePadding_TranslucentBasePass_Shared_ForwardISR_700; - packed_float3 TranslucentBasePass_Shared_ForwardISR_DirectionalLightDirection; - float PrePadding_TranslucentBasePass_Shared_ForwardISR_716; - packed_float3 TranslucentBasePass_Shared_ForwardISR_DirectionalLightColor; - float TranslucentBasePass_Shared_ForwardISR_DirectionalLightVolumetricScatteringIntensity; - uint TranslucentBasePass_Shared_ForwardISR_DirectionalLightShadowMapChannelMask; - uint PrePadding_TranslucentBasePass_Shared_ForwardISR_740; - float2 TranslucentBasePass_Shared_ForwardISR_DirectionalLightDistanceFadeMAD; - uint TranslucentBasePass_Shared_ForwardISR_NumDirectionalLightCascades; - uint PrePadding_TranslucentBasePass_Shared_ForwardISR_756; - uint PrePadding_TranslucentBasePass_Shared_ForwardISR_760; - uint PrePadding_TranslucentBasePass_Shared_ForwardISR_764; - float4 TranslucentBasePass_Shared_ForwardISR_CascadeEndDepths; - float4x4 TranslucentBasePass_Shared_ForwardISR_DirectionalLightWorldToShadowMatrix[4]; - float4 TranslucentBasePass_Shared_ForwardISR_DirectionalLightShadowmapMinMax[4]; - float4 TranslucentBasePass_Shared_ForwardISR_DirectionalLightShadowmapAtlasBufferSize; - float TranslucentBasePass_Shared_ForwardISR_DirectionalLightDepthBias; - uint TranslucentBasePass_Shared_ForwardISR_DirectionalLightUseStaticShadowing; - uint PrePadding_TranslucentBasePass_Shared_ForwardISR_1128; - uint PrePadding_TranslucentBasePass_Shared_ForwardISR_1132; - float4 TranslucentBasePass_Shared_ForwardISR_DirectionalLightStaticShadowBufferSize; - float4x4 TranslucentBasePass_Shared_ForwardISR_DirectionalLightWorldToStaticShadow; - float PrePadding_TranslucentBasePass_Shared_Reflection_1216; - float PrePadding_TranslucentBasePass_Shared_Reflection_1220; - float PrePadding_TranslucentBasePass_Shared_Reflection_1224; - float PrePadding_TranslucentBasePass_Shared_Reflection_1228; - float PrePadding_TranslucentBasePass_Shared_Reflection_1232; - float PrePadding_TranslucentBasePass_Shared_Reflection_1236; - float PrePadding_TranslucentBasePass_Shared_Reflection_1240; - float PrePadding_TranslucentBasePass_Shared_Reflection_1244; - float PrePadding_TranslucentBasePass_Shared_Reflection_1248; - float PrePadding_TranslucentBasePass_Shared_Reflection_1252; - float PrePadding_TranslucentBasePass_Shared_Reflection_1256; - float PrePadding_TranslucentBasePass_Shared_Reflection_1260; - float PrePadding_TranslucentBasePass_Shared_Reflection_1264; - float PrePadding_TranslucentBasePass_Shared_Reflection_1268; - float PrePadding_TranslucentBasePass_Shared_Reflection_1272; - float PrePadding_TranslucentBasePass_Shared_Reflection_1276; - float4 TranslucentBasePass_Shared_Reflection_SkyLightParameters; - float TranslucentBasePass_Shared_Reflection_SkyLightCubemapBrightness; - float PrePadding_TranslucentBasePass_Shared_PlanarReflection_1300; - float PrePadding_TranslucentBasePass_Shared_PlanarReflection_1304; - float PrePadding_TranslucentBasePass_Shared_PlanarReflection_1308; - float PrePadding_TranslucentBasePass_Shared_PlanarReflection_1312; - float PrePadding_TranslucentBasePass_Shared_PlanarReflection_1316; - float PrePadding_TranslucentBasePass_Shared_PlanarReflection_1320; - float PrePadding_TranslucentBasePass_Shared_PlanarReflection_1324; - float PrePadding_TranslucentBasePass_Shared_PlanarReflection_1328; - float PrePadding_TranslucentBasePass_Shared_PlanarReflection_1332; - float PrePadding_TranslucentBasePass_Shared_PlanarReflection_1336; - float PrePadding_TranslucentBasePass_Shared_PlanarReflection_1340; - float PrePadding_TranslucentBasePass_Shared_PlanarReflection_1344; - float PrePadding_TranslucentBasePass_Shared_PlanarReflection_1348; - float PrePadding_TranslucentBasePass_Shared_PlanarReflection_1352; - float PrePadding_TranslucentBasePass_Shared_PlanarReflection_1356; - float4 TranslucentBasePass_Shared_PlanarReflection_ReflectionPlane; - float4 TranslucentBasePass_Shared_PlanarReflection_PlanarReflectionOrigin; - float4 TranslucentBasePass_Shared_PlanarReflection_PlanarReflectionXAxis; - float4 TranslucentBasePass_Shared_PlanarReflection_PlanarReflectionYAxis; - float3x4 TranslucentBasePass_Shared_PlanarReflection_InverseTransposeMirrorMatrix; - packed_float3 TranslucentBasePass_Shared_PlanarReflection_PlanarReflectionParameters; - float PrePadding_TranslucentBasePass_Shared_PlanarReflection_1484; - float2 TranslucentBasePass_Shared_PlanarReflection_PlanarReflectionParameters2; - float PrePadding_TranslucentBasePass_Shared_PlanarReflection_1496; - float PrePadding_TranslucentBasePass_Shared_PlanarReflection_1500; - float4x4 TranslucentBasePass_Shared_PlanarReflection_ProjectionWithExtraFOV[2]; - float4 TranslucentBasePass_Shared_PlanarReflection_PlanarReflectionScreenScaleBias[2]; - float2 TranslucentBasePass_Shared_PlanarReflection_PlanarReflectionScreenBound; - uint TranslucentBasePass_Shared_PlanarReflection_bIsStereo; - float PrePadding_TranslucentBasePass_Shared_Fog_1676; - float PrePadding_TranslucentBasePass_Shared_Fog_1680; - float PrePadding_TranslucentBasePass_Shared_Fog_1684; - float PrePadding_TranslucentBasePass_Shared_Fog_1688; - float PrePadding_TranslucentBasePass_Shared_Fog_1692; - float4 TranslucentBasePass_Shared_Fog_ExponentialFogParameters; - float4 TranslucentBasePass_Shared_Fog_ExponentialFogParameters2; - float4 TranslucentBasePass_Shared_Fog_ExponentialFogColorParameter; - float4 TranslucentBasePass_Shared_Fog_ExponentialFogParameters3; - float4 TranslucentBasePass_Shared_Fog_InscatteringLightDirection; - float4 TranslucentBasePass_Shared_Fog_DirectionalInscatteringColor; - float2 TranslucentBasePass_Shared_Fog_SinCosInscatteringColorCubemapRotation; - float PrePadding_TranslucentBasePass_Shared_Fog_1800; - float PrePadding_TranslucentBasePass_Shared_Fog_1804; - packed_float3 TranslucentBasePass_Shared_Fog_FogInscatteringTextureParameters; - float TranslucentBasePass_Shared_Fog_ApplyVolumetricFog; - float PrePadding_TranslucentBasePass_1824; - float PrePadding_TranslucentBasePass_1828; - float PrePadding_TranslucentBasePass_1832; - float PrePadding_TranslucentBasePass_1836; - float PrePadding_TranslucentBasePass_1840; - float PrePadding_TranslucentBasePass_1844; - float PrePadding_TranslucentBasePass_1848; - float PrePadding_TranslucentBasePass_1852; - float PrePadding_TranslucentBasePass_1856; - float PrePadding_TranslucentBasePass_1860; - float PrePadding_TranslucentBasePass_1864; - float PrePadding_TranslucentBasePass_1868; - float PrePadding_TranslucentBasePass_1872; - float PrePadding_TranslucentBasePass_1876; - float PrePadding_TranslucentBasePass_1880; - float PrePadding_TranslucentBasePass_1884; - float PrePadding_TranslucentBasePass_1888; - float PrePadding_TranslucentBasePass_1892; - float PrePadding_TranslucentBasePass_1896; - float PrePadding_TranslucentBasePass_1900; - float PrePadding_TranslucentBasePass_1904; - float PrePadding_TranslucentBasePass_1908; - float PrePadding_TranslucentBasePass_1912; - float PrePadding_TranslucentBasePass_1916; - float PrePadding_TranslucentBasePass_1920; - float PrePadding_TranslucentBasePass_1924; - float PrePadding_TranslucentBasePass_1928; - float PrePadding_TranslucentBasePass_1932; - float PrePadding_TranslucentBasePass_1936; - float PrePadding_TranslucentBasePass_1940; - float PrePadding_TranslucentBasePass_1944; - float PrePadding_TranslucentBasePass_1948; - float PrePadding_TranslucentBasePass_1952; - float PrePadding_TranslucentBasePass_1956; - float PrePadding_TranslucentBasePass_1960; - float PrePadding_TranslucentBasePass_1964; - float PrePadding_TranslucentBasePass_1968; - float PrePadding_TranslucentBasePass_1972; - float PrePadding_TranslucentBasePass_1976; - float PrePadding_TranslucentBasePass_1980; - float PrePadding_TranslucentBasePass_1984; - float PrePadding_TranslucentBasePass_1988; - float PrePadding_TranslucentBasePass_1992; - float PrePadding_TranslucentBasePass_1996; - float PrePadding_TranslucentBasePass_2000; - float PrePadding_TranslucentBasePass_2004; - float PrePadding_TranslucentBasePass_2008; - float PrePadding_TranslucentBasePass_2012; - float PrePadding_TranslucentBasePass_2016; - float PrePadding_TranslucentBasePass_2020; - float PrePadding_TranslucentBasePass_2024; - float PrePadding_TranslucentBasePass_2028; - float PrePadding_TranslucentBasePass_2032; - float PrePadding_TranslucentBasePass_2036; - float PrePadding_TranslucentBasePass_2040; - float PrePadding_TranslucentBasePass_2044; - float PrePadding_TranslucentBasePass_2048; - float PrePadding_TranslucentBasePass_2052; - float PrePadding_TranslucentBasePass_2056; - float PrePadding_TranslucentBasePass_2060; - float PrePadding_TranslucentBasePass_2064; - float PrePadding_TranslucentBasePass_2068; - float PrePadding_TranslucentBasePass_2072; - float PrePadding_TranslucentBasePass_2076; - float PrePadding_TranslucentBasePass_2080; - float PrePadding_TranslucentBasePass_2084; - float PrePadding_TranslucentBasePass_2088; - float PrePadding_TranslucentBasePass_2092; - float PrePadding_TranslucentBasePass_2096; - float PrePadding_TranslucentBasePass_2100; - float PrePadding_TranslucentBasePass_2104; - float PrePadding_TranslucentBasePass_2108; - float PrePadding_TranslucentBasePass_2112; - float PrePadding_TranslucentBasePass_2116; - float PrePadding_TranslucentBasePass_2120; - float PrePadding_TranslucentBasePass_2124; - float PrePadding_TranslucentBasePass_2128; - float PrePadding_TranslucentBasePass_2132; - float PrePadding_TranslucentBasePass_2136; - float PrePadding_TranslucentBasePass_2140; - float4 TranslucentBasePass_HZBUvFactorAndInvFactor; - float4 TranslucentBasePass_PrevScreenPositionScaleBias; - float TranslucentBasePass_PrevSceneColorPreExposureInv; -}; - -struct type_Material -{ - float4 Material_VectorExpressions[2]; - float4 Material_ScalarExpressions[1]; -}; - -constant float _108 = {}; - -struct main0_out -{ - float4 out_var_SV_Target0 [[color(0)]]; - uint gl_SampleMask [[sample_mask]]; -}; - -struct main0_in -{ - float4 in_var_TEXCOORD10_centroid [[user(locn0)]]; - float4 in_var_TEXCOORD11_centroid [[user(locn1)]]; - uint in_var_PRIMITIVE_ID [[user(locn2)]]; - float4 in_var_TEXCOORD7 [[user(locn3)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], constant type_View& View [[buffer(0)]], const device type_StructuredBuffer_v4float& View_PrimitiveSceneData [[buffer(1)]], constant type_TranslucentBasePass& TranslucentBasePass [[buffer(2)]], constant type_Material& Material [[buffer(3)]], texture3d TranslucentBasePass_Shared_Fog_IntegratedLightScattering [[texture(0)]], sampler View_SharedBilinearClampedSampler [[sampler(0)]], float4 gl_FragCoord [[position]], uint gl_SampleMaskIn [[sample_mask]]) -{ - main0_out out = {}; - float4 _137 = View.View_SVPositionToTranslatedWorld * float4(gl_FragCoord.xyz, 1.0); - float3 _142 = (_137.xyz / float3(_137.w)) - float3(View.View_PreViewTranslation); - bool _165 = TranslucentBasePass.TranslucentBasePass_Shared_Fog_ApplyVolumetricFog > 0.0; - float4 _215; - if (_165) - { - float4 _172 = View.View_WorldToClip * float4(_142, 1.0); - float _173 = _172.w; - float4 _202; - if (_165) - { - _202 = TranslucentBasePass_Shared_Fog_IntegratedLightScattering.sample(View_SharedBilinearClampedSampler, float3(((_172.xy / float2(_173)).xy * float2(0.5, -0.5)) + float2(0.5), (log2((_173 * View.View_VolumetricFogGridZParams[0]) + View.View_VolumetricFogGridZParams[1]) * View.View_VolumetricFogGridZParams[2]) * View.View_VolumetricFogInvGridSize[2]), level(0.0)); - } - else - { - _202 = float4(0.0, 0.0, 0.0, 1.0); - } - _215 = float4(_202.xyz + (in.in_var_TEXCOORD7.xyz * float3(_202.w)), _202.w * in.in_var_TEXCOORD7.w); - } - else - { - _215 = in.in_var_TEXCOORD7; - } - float3 _216 = fast::max(Material.Material_VectorExpressions[1].xyz * float3(((1.0 + dot(float3(-1.0, -1.5, 3.0) / float3(sqrt(12.25)), normalize(float3x3(in.in_var_TEXCOORD10_centroid.xyz, cross(in.in_var_TEXCOORD11_centroid.xyz, in.in_var_TEXCOORD10_centroid.xyz) * float3(in.in_var_TEXCOORD11_centroid.w), in.in_var_TEXCOORD11_centroid.xyz) * normalize((float3(0.0, 0.0, 1.0) * float3(View.View_NormalOverrideParameter.w)) + View.View_NormalOverrideParameter.xyz)))) * 0.5) + 0.20000000298023223876953125), float3(0.0)); - float3 _246; - if (View.View_OutOfBoundsMask > 0.0) - { - uint _222 = in.in_var_PRIMITIVE_ID * 26u; - float3 _245; - if (any(abs(_142 - View_PrimitiveSceneData._m0[_222 + 5u].xyz) > (View_PrimitiveSceneData._m0[_222 + 19u].xyz + float3(1.0)))) - { - _245 = mix(float3(1.0, 1.0, 0.0), float3(0.0, 1.0, 1.0), select(float3(0.0), float3(1.0), float3(fract(dot(_142, float3(0.57700002193450927734375)) * 0.00200000009499490261077880859375)) > float3(0.5))); - } - else - { - _245 = _216; - } - _246 = _245; - } - else - { - _246 = _216; - } - float4 _256 = float4((_246 * float3(_215.w)) + _215.xyz, _108); - _256.w = 1.0; - float4 _268; - uint _269; - if (View.View_NumSceneColorMSAASamples > 1) - { - _268 = _256 * float4(float(View.View_NumSceneColorMSAASamples) * 0.25); - _269 = gl_SampleMaskIn & 15u; - } - else - { - _268 = _256; - _269 = gl_SampleMaskIn; - } - out.out_var_SV_Target0 = _268; - out.gl_SampleMask = _269; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-ue4/asm/frag/subpass-input.ios.framebuffer-fetch.asm.frag b/third_party/spirv-cross/reference/shaders-ue4/asm/frag/subpass-input.ios.framebuffer-fetch.asm.frag deleted file mode 100644 index 8bffca1733..0000000000 --- a/third_party/spirv-cross/reference/shaders-ue4/asm/frag/subpass-input.ios.framebuffer-fetch.asm.frag +++ /dev/null @@ -1,214 +0,0 @@ -#include -#include - -using namespace metal; - -struct type_View -{ - float4x4 View_TranslatedWorldToClip; - float4x4 View_WorldToClip; - float4x4 View_TranslatedWorldToView; - float4x4 View_ViewToTranslatedWorld; - float4x4 View_TranslatedWorldToCameraView; - float4x4 View_CameraViewToTranslatedWorld; - float4x4 View_ViewToClip; - float4x4 View_ViewToClipNoAA; - float4x4 View_ClipToView; - float4x4 View_ClipToTranslatedWorld; - float4x4 View_SVPositionToTranslatedWorld; - float4x4 View_ScreenToWorld; - float4x4 View_ScreenToTranslatedWorld; - packed_float3 View_ViewForward; - float PrePadding_View_844; - packed_float3 View_ViewUp; - float PrePadding_View_860; - packed_float3 View_ViewRight; - float PrePadding_View_876; - packed_float3 View_HMDViewNoRollUp; - float PrePadding_View_892; - packed_float3 View_HMDViewNoRollRight; - float PrePadding_View_908; - float4 View_InvDeviceZToWorldZTransform; - float4 View_ScreenPositionScaleBias; - packed_float3 View_WorldCameraOrigin; - float PrePadding_View_956; - packed_float3 View_TranslatedWorldCameraOrigin; - float PrePadding_View_972; - packed_float3 View_WorldViewOrigin; - float PrePadding_View_988; - packed_float3 View_PreViewTranslation; - float PrePadding_View_1004; - float4x4 View_PrevProjection; - float4x4 View_PrevViewProj; - float4x4 View_PrevViewRotationProj; - float4x4 View_PrevViewToClip; - float4x4 View_PrevClipToView; - float4x4 View_PrevTranslatedWorldToClip; - float4x4 View_PrevTranslatedWorldToView; - float4x4 View_PrevViewToTranslatedWorld; - float4x4 View_PrevTranslatedWorldToCameraView; - float4x4 View_PrevCameraViewToTranslatedWorld; - packed_float3 View_PrevWorldCameraOrigin; - float PrePadding_View_1660; - packed_float3 View_PrevWorldViewOrigin; - float PrePadding_View_1676; - packed_float3 View_PrevPreViewTranslation; - float PrePadding_View_1692; - float4x4 View_PrevInvViewProj; - float4x4 View_PrevScreenToTranslatedWorld; - float4x4 View_ClipToPrevClip; - float4 View_TemporalAAJitter; - float4 View_GlobalClippingPlane; - float2 View_FieldOfViewWideAngles; - float2 View_PrevFieldOfViewWideAngles; - float4 View_ViewRectMin; - float4 View_ViewSizeAndInvSize; - float4 View_BufferSizeAndInvSize; - float4 View_BufferBilinearUVMinMax; - int View_NumSceneColorMSAASamples; - float View_PreExposure; - float View_OneOverPreExposure; - float PrePadding_View_2012; - float4 View_DiffuseOverrideParameter; - float4 View_SpecularOverrideParameter; - float4 View_NormalOverrideParameter; - float2 View_RoughnessOverrideParameter; - float View_PrevFrameGameTime; - float View_PrevFrameRealTime; - float View_OutOfBoundsMask; - float PrePadding_View_2084; - float PrePadding_View_2088; - float PrePadding_View_2092; - packed_float3 View_WorldCameraMovementSinceLastFrame; - float View_CullingSign; - float View_NearPlane; - float View_AdaptiveTessellationFactor; - float View_GameTime; - float View_RealTime; - float View_DeltaTime; - float View_MaterialTextureMipBias; - float View_MaterialTextureDerivativeMultiply; - uint View_Random; - uint View_FrameNumber; - uint View_StateFrameIndexMod8; - uint View_StateFrameIndex; - float View_CameraCut; - float View_UnlitViewmodeMask; - float PrePadding_View_2164; - float PrePadding_View_2168; - float PrePadding_View_2172; - float4 View_DirectionalLightColor; - packed_float3 View_DirectionalLightDirection; - float PrePadding_View_2204; - float4 View_TranslucencyLightingVolumeMin[2]; - float4 View_TranslucencyLightingVolumeInvSize[2]; - float4 View_TemporalAAParams; - float4 View_CircleDOFParams; - float View_DepthOfFieldSensorWidth; - float View_DepthOfFieldFocalDistance; - float View_DepthOfFieldScale; - float View_DepthOfFieldFocalLength; - float View_DepthOfFieldFocalRegion; - float View_DepthOfFieldNearTransitionRegion; - float View_DepthOfFieldFarTransitionRegion; - float View_MotionBlurNormalizedToPixel; - float View_bSubsurfacePostprocessEnabled; - float View_GeneralPurposeTweak; - float View_DemosaicVposOffset; - float PrePadding_View_2348; - packed_float3 View_IndirectLightingColorScale; - float View_HDR32bppEncodingMode; - packed_float3 View_AtmosphericFogSunDirection; - float View_AtmosphericFogSunPower; - float View_AtmosphericFogPower; - float View_AtmosphericFogDensityScale; - float View_AtmosphericFogDensityOffset; - float View_AtmosphericFogGroundOffset; - float View_AtmosphericFogDistanceScale; - float View_AtmosphericFogAltitudeScale; - float View_AtmosphericFogHeightScaleRayleigh; - float View_AtmosphericFogStartDistance; - float View_AtmosphericFogDistanceOffset; - float View_AtmosphericFogSunDiscScale; - uint View_AtmosphericFogRenderMask; - uint View_AtmosphericFogInscatterAltitudeSampleNum; - float4 View_AtmosphericFogSunColor; - packed_float3 View_NormalCurvatureToRoughnessScaleBias; - float View_RenderingReflectionCaptureMask; - float4 View_AmbientCubemapTint; - float View_AmbientCubemapIntensity; - float View_SkyLightParameters; - float PrePadding_View_2488; - float PrePadding_View_2492; - float4 View_SkyLightColor; - float4 View_SkyIrradianceEnvironmentMap[7]; - float View_MobilePreviewMode; - float View_HMDEyePaddingOffset; - float View_ReflectionCubemapMaxMip; - float View_ShowDecalsMask; - uint View_DistanceFieldAOSpecularOcclusionMode; - float View_IndirectCapsuleSelfShadowingIntensity; - float PrePadding_View_2648; - float PrePadding_View_2652; - packed_float3 View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight; - int View_StereoPassIndex; - float4 View_GlobalVolumeCenterAndExtent[4]; - float4 View_GlobalVolumeWorldToUVAddAndMul[4]; - float View_GlobalVolumeDimension; - float View_GlobalVolumeTexelSize; - float View_MaxGlobalDistance; - float View_bCheckerboardSubsurfaceProfileRendering; - packed_float3 View_VolumetricFogInvGridSize; - float PrePadding_View_2828; - packed_float3 View_VolumetricFogGridZParams; - float PrePadding_View_2844; - float2 View_VolumetricFogSVPosToVolumeUV; - float View_VolumetricFogMaxDistance; - float PrePadding_View_2860; - packed_float3 View_VolumetricLightmapWorldToUVScale; - float PrePadding_View_2876; - packed_float3 View_VolumetricLightmapWorldToUVAdd; - float PrePadding_View_2892; - packed_float3 View_VolumetricLightmapIndirectionTextureSize; - float View_VolumetricLightmapBrickSize; - packed_float3 View_VolumetricLightmapBrickTexelSize; - float View_StereoIPD; - float View_IndirectLightingCacheShowFlag; - float View_EyeToPixelSpreadAngle; -}; - -struct type_Globals -{ - float3 SoftTransitionScale; - float4 ShadowBufferSize; - float ShadowFadeFraction; - float ShadowSharpen; - float4 LightPositionAndInvRadius; - float4x4 ScreenToShadowMatrix; - float2 ProjectionDepthBiasParameters; - float4 ModulatedShadowColor; - float4 ShadowTileOffsetAndSize; -}; - -constant float4 _58 = {}; - -struct main0_out -{ - float4 out_var_SV_Target0 [[color(0)]]; -}; - -fragment main0_out main0(constant type_View& View [[buffer(0)]], constant type_Globals& _Globals [[buffer(1)]], float4 _RESERVED_IDENTIFIER_FIXUP_gl_LastFragData [[color(0)]], texture2d ShadowDepthTexture [[texture(0)]], sampler ShadowDepthTextureSampler [[sampler(0)]], float4 gl_FragCoord [[position]], uint gl_SampleID [[sample_id]]) -{ - main0_out out = {}; - gl_FragCoord.xy += get_sample_position(gl_SampleID) - 0.5; - float4 _67 = _RESERVED_IDENTIFIER_FIXUP_gl_LastFragData; - float _68 = _67.w; - float4 _82 = _Globals.ScreenToShadowMatrix * float4((((gl_FragCoord.xy * View.View_BufferSizeAndInvSize.zw) - View.View_ScreenPositionScaleBias.wz) / View.View_ScreenPositionScaleBias.xy) * float2(_68), _68, 1.0); - float _118 = fast::clamp(((fast::clamp((ShadowDepthTexture.sample(ShadowDepthTextureSampler, (((_82.xyz / float3(_82.w)).xy * _Globals.ShadowTileOffsetAndSize.zw).xy + _Globals.ShadowTileOffsetAndSize.xy).xy, level(0.0)).xxx * float3(_Globals.SoftTransitionScale.z)) - float3((fast::min(_82.z, 0.999989986419677734375) * _Globals.SoftTransitionScale.z) - 1.0), float3(0.0), float3(1.0)).x - 0.5) * _Globals.ShadowSharpen) + 0.5, 0.0, 1.0); - float3 _127 = mix(_Globals.ModulatedShadowColor.xyz, float3(1.0), float3(mix(1.0, _118 * _118, _Globals.ShadowFadeFraction))); - float4 _129 = float4(_127.x, _127.y, _127.z, _58.w); - _129.w = 0.0; - out.out_var_SV_Target0 = _129; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-ue4/asm/frag/subpass-input.msl23.framebuffer-fetch.asm.frag b/third_party/spirv-cross/reference/shaders-ue4/asm/frag/subpass-input.msl23.framebuffer-fetch.asm.frag deleted file mode 100644 index 8bffca1733..0000000000 --- a/third_party/spirv-cross/reference/shaders-ue4/asm/frag/subpass-input.msl23.framebuffer-fetch.asm.frag +++ /dev/null @@ -1,214 +0,0 @@ -#include -#include - -using namespace metal; - -struct type_View -{ - float4x4 View_TranslatedWorldToClip; - float4x4 View_WorldToClip; - float4x4 View_TranslatedWorldToView; - float4x4 View_ViewToTranslatedWorld; - float4x4 View_TranslatedWorldToCameraView; - float4x4 View_CameraViewToTranslatedWorld; - float4x4 View_ViewToClip; - float4x4 View_ViewToClipNoAA; - float4x4 View_ClipToView; - float4x4 View_ClipToTranslatedWorld; - float4x4 View_SVPositionToTranslatedWorld; - float4x4 View_ScreenToWorld; - float4x4 View_ScreenToTranslatedWorld; - packed_float3 View_ViewForward; - float PrePadding_View_844; - packed_float3 View_ViewUp; - float PrePadding_View_860; - packed_float3 View_ViewRight; - float PrePadding_View_876; - packed_float3 View_HMDViewNoRollUp; - float PrePadding_View_892; - packed_float3 View_HMDViewNoRollRight; - float PrePadding_View_908; - float4 View_InvDeviceZToWorldZTransform; - float4 View_ScreenPositionScaleBias; - packed_float3 View_WorldCameraOrigin; - float PrePadding_View_956; - packed_float3 View_TranslatedWorldCameraOrigin; - float PrePadding_View_972; - packed_float3 View_WorldViewOrigin; - float PrePadding_View_988; - packed_float3 View_PreViewTranslation; - float PrePadding_View_1004; - float4x4 View_PrevProjection; - float4x4 View_PrevViewProj; - float4x4 View_PrevViewRotationProj; - float4x4 View_PrevViewToClip; - float4x4 View_PrevClipToView; - float4x4 View_PrevTranslatedWorldToClip; - float4x4 View_PrevTranslatedWorldToView; - float4x4 View_PrevViewToTranslatedWorld; - float4x4 View_PrevTranslatedWorldToCameraView; - float4x4 View_PrevCameraViewToTranslatedWorld; - packed_float3 View_PrevWorldCameraOrigin; - float PrePadding_View_1660; - packed_float3 View_PrevWorldViewOrigin; - float PrePadding_View_1676; - packed_float3 View_PrevPreViewTranslation; - float PrePadding_View_1692; - float4x4 View_PrevInvViewProj; - float4x4 View_PrevScreenToTranslatedWorld; - float4x4 View_ClipToPrevClip; - float4 View_TemporalAAJitter; - float4 View_GlobalClippingPlane; - float2 View_FieldOfViewWideAngles; - float2 View_PrevFieldOfViewWideAngles; - float4 View_ViewRectMin; - float4 View_ViewSizeAndInvSize; - float4 View_BufferSizeAndInvSize; - float4 View_BufferBilinearUVMinMax; - int View_NumSceneColorMSAASamples; - float View_PreExposure; - float View_OneOverPreExposure; - float PrePadding_View_2012; - float4 View_DiffuseOverrideParameter; - float4 View_SpecularOverrideParameter; - float4 View_NormalOverrideParameter; - float2 View_RoughnessOverrideParameter; - float View_PrevFrameGameTime; - float View_PrevFrameRealTime; - float View_OutOfBoundsMask; - float PrePadding_View_2084; - float PrePadding_View_2088; - float PrePadding_View_2092; - packed_float3 View_WorldCameraMovementSinceLastFrame; - float View_CullingSign; - float View_NearPlane; - float View_AdaptiveTessellationFactor; - float View_GameTime; - float View_RealTime; - float View_DeltaTime; - float View_MaterialTextureMipBias; - float View_MaterialTextureDerivativeMultiply; - uint View_Random; - uint View_FrameNumber; - uint View_StateFrameIndexMod8; - uint View_StateFrameIndex; - float View_CameraCut; - float View_UnlitViewmodeMask; - float PrePadding_View_2164; - float PrePadding_View_2168; - float PrePadding_View_2172; - float4 View_DirectionalLightColor; - packed_float3 View_DirectionalLightDirection; - float PrePadding_View_2204; - float4 View_TranslucencyLightingVolumeMin[2]; - float4 View_TranslucencyLightingVolumeInvSize[2]; - float4 View_TemporalAAParams; - float4 View_CircleDOFParams; - float View_DepthOfFieldSensorWidth; - float View_DepthOfFieldFocalDistance; - float View_DepthOfFieldScale; - float View_DepthOfFieldFocalLength; - float View_DepthOfFieldFocalRegion; - float View_DepthOfFieldNearTransitionRegion; - float View_DepthOfFieldFarTransitionRegion; - float View_MotionBlurNormalizedToPixel; - float View_bSubsurfacePostprocessEnabled; - float View_GeneralPurposeTweak; - float View_DemosaicVposOffset; - float PrePadding_View_2348; - packed_float3 View_IndirectLightingColorScale; - float View_HDR32bppEncodingMode; - packed_float3 View_AtmosphericFogSunDirection; - float View_AtmosphericFogSunPower; - float View_AtmosphericFogPower; - float View_AtmosphericFogDensityScale; - float View_AtmosphericFogDensityOffset; - float View_AtmosphericFogGroundOffset; - float View_AtmosphericFogDistanceScale; - float View_AtmosphericFogAltitudeScale; - float View_AtmosphericFogHeightScaleRayleigh; - float View_AtmosphericFogStartDistance; - float View_AtmosphericFogDistanceOffset; - float View_AtmosphericFogSunDiscScale; - uint View_AtmosphericFogRenderMask; - uint View_AtmosphericFogInscatterAltitudeSampleNum; - float4 View_AtmosphericFogSunColor; - packed_float3 View_NormalCurvatureToRoughnessScaleBias; - float View_RenderingReflectionCaptureMask; - float4 View_AmbientCubemapTint; - float View_AmbientCubemapIntensity; - float View_SkyLightParameters; - float PrePadding_View_2488; - float PrePadding_View_2492; - float4 View_SkyLightColor; - float4 View_SkyIrradianceEnvironmentMap[7]; - float View_MobilePreviewMode; - float View_HMDEyePaddingOffset; - float View_ReflectionCubemapMaxMip; - float View_ShowDecalsMask; - uint View_DistanceFieldAOSpecularOcclusionMode; - float View_IndirectCapsuleSelfShadowingIntensity; - float PrePadding_View_2648; - float PrePadding_View_2652; - packed_float3 View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight; - int View_StereoPassIndex; - float4 View_GlobalVolumeCenterAndExtent[4]; - float4 View_GlobalVolumeWorldToUVAddAndMul[4]; - float View_GlobalVolumeDimension; - float View_GlobalVolumeTexelSize; - float View_MaxGlobalDistance; - float View_bCheckerboardSubsurfaceProfileRendering; - packed_float3 View_VolumetricFogInvGridSize; - float PrePadding_View_2828; - packed_float3 View_VolumetricFogGridZParams; - float PrePadding_View_2844; - float2 View_VolumetricFogSVPosToVolumeUV; - float View_VolumetricFogMaxDistance; - float PrePadding_View_2860; - packed_float3 View_VolumetricLightmapWorldToUVScale; - float PrePadding_View_2876; - packed_float3 View_VolumetricLightmapWorldToUVAdd; - float PrePadding_View_2892; - packed_float3 View_VolumetricLightmapIndirectionTextureSize; - float View_VolumetricLightmapBrickSize; - packed_float3 View_VolumetricLightmapBrickTexelSize; - float View_StereoIPD; - float View_IndirectLightingCacheShowFlag; - float View_EyeToPixelSpreadAngle; -}; - -struct type_Globals -{ - float3 SoftTransitionScale; - float4 ShadowBufferSize; - float ShadowFadeFraction; - float ShadowSharpen; - float4 LightPositionAndInvRadius; - float4x4 ScreenToShadowMatrix; - float2 ProjectionDepthBiasParameters; - float4 ModulatedShadowColor; - float4 ShadowTileOffsetAndSize; -}; - -constant float4 _58 = {}; - -struct main0_out -{ - float4 out_var_SV_Target0 [[color(0)]]; -}; - -fragment main0_out main0(constant type_View& View [[buffer(0)]], constant type_Globals& _Globals [[buffer(1)]], float4 _RESERVED_IDENTIFIER_FIXUP_gl_LastFragData [[color(0)]], texture2d ShadowDepthTexture [[texture(0)]], sampler ShadowDepthTextureSampler [[sampler(0)]], float4 gl_FragCoord [[position]], uint gl_SampleID [[sample_id]]) -{ - main0_out out = {}; - gl_FragCoord.xy += get_sample_position(gl_SampleID) - 0.5; - float4 _67 = _RESERVED_IDENTIFIER_FIXUP_gl_LastFragData; - float _68 = _67.w; - float4 _82 = _Globals.ScreenToShadowMatrix * float4((((gl_FragCoord.xy * View.View_BufferSizeAndInvSize.zw) - View.View_ScreenPositionScaleBias.wz) / View.View_ScreenPositionScaleBias.xy) * float2(_68), _68, 1.0); - float _118 = fast::clamp(((fast::clamp((ShadowDepthTexture.sample(ShadowDepthTextureSampler, (((_82.xyz / float3(_82.w)).xy * _Globals.ShadowTileOffsetAndSize.zw).xy + _Globals.ShadowTileOffsetAndSize.xy).xy, level(0.0)).xxx * float3(_Globals.SoftTransitionScale.z)) - float3((fast::min(_82.z, 0.999989986419677734375) * _Globals.SoftTransitionScale.z) - 1.0), float3(0.0), float3(1.0)).x - 0.5) * _Globals.ShadowSharpen) + 0.5, 0.0, 1.0); - float3 _127 = mix(_Globals.ModulatedShadowColor.xyz, float3(1.0), float3(mix(1.0, _118 * _118, _Globals.ShadowFadeFraction))); - float4 _129 = float4(_127.x, _127.y, _127.z, _58.w); - _129.w = 0.0; - out.out_var_SV_Target0 = _129; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-ue4/asm/frag/texture-atomics.asm.argument.msl2.frag b/third_party/spirv-cross/reference/shaders-ue4/asm/frag/texture-atomics.asm.argument.msl2.frag deleted file mode 100644 index 938bd98281..0000000000 --- a/third_party/spirv-cross/reference/shaders-ue4/asm/frag/texture-atomics.asm.argument.msl2.frag +++ /dev/null @@ -1,130 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" -#pragma clang diagnostic ignored "-Wunused-variable" - -#include -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct type_StructuredBuffer_v4float -{ - float4 _m0[1]; -}; - -struct type_Globals -{ - uint2 ShadowTileListGroupSize; -}; - -struct spvDescriptorSetBuffer0 -{ - const device type_StructuredBuffer_v4float* CulledObjectBoxBounds [[id(0)]]; - constant type_Globals* _Globals [[id(1)]]; - texture2d RWShadowTileNumCulledObjects [[id(2)]]; - device atomic_uint* RWShadowTileNumCulledObjects_atomic [[id(3)]]; -}; - -constant float3 _70 = {}; - -struct main0_out -{ - float4 out_var_SV_Target0 [[color(0)]]; -}; - -struct main0_in -{ - uint in_var_TEXCOORD0 [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], constant spvDescriptorSetBuffer0& spvDescriptorSet0 [[buffer(0)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - uint2 _77 = uint2(gl_FragCoord.xy); - uint _78 = _77.y; - uint _83 = _77.x; - float2 _91 = float2(float(_83), float(((*spvDescriptorSet0._Globals).ShadowTileListGroupSize.y - 1u) - _78)); - float2 _93 = float2((*spvDescriptorSet0._Globals).ShadowTileListGroupSize); - float2 _96 = ((_91 / _93) * float2(2.0)) - float2(1.0); - float2 _100 = (((_91 + float2(1.0)) / _93) * float2(2.0)) - float2(1.0); - float3 _102 = float3(_100.x, _100.y, _70.z); - _102.z = 1.0; - uint _103 = in.in_var_TEXCOORD0 * 5u; - uint _107 = _103 + 1u; - if (all((*spvDescriptorSet0.CulledObjectBoxBounds)._m0[_107].xy > _96.xy) && all((*spvDescriptorSet0.CulledObjectBoxBounds)._m0[_103].xyz < _102)) - { - float3 _121 = float3(0.5) * ((*spvDescriptorSet0.CulledObjectBoxBounds)._m0[_103].xyz + (*spvDescriptorSet0.CulledObjectBoxBounds)._m0[_107].xyz); - float _122 = _96.x; - float _123 = _96.y; - spvUnsafeArray _73; - _73[0] = float3(_122, _123, -1000.0); - float _126 = _100.x; - _73[1] = float3(_126, _123, -1000.0); - float _129 = _100.y; - _73[2] = float3(_122, _129, -1000.0); - _73[3] = float3(_126, _129, -1000.0); - _73[4] = float3(_122, _123, 1.0); - _73[5] = float3(_126, _123, 1.0); - _73[6] = float3(_122, _129, 1.0); - _73[7] = float3(_126, _129, 1.0); - float3 _155; - float3 _158; - _155 = float3(-500000.0); - _158 = float3(500000.0); - for (int _160 = 0; _160 < 8; ) - { - float3 _166 = _73[_160] - _121; - float3 _170 = float3(dot(_166, (*spvDescriptorSet0.CulledObjectBoxBounds)._m0[_103 + 2u].xyz), dot(_166, (*spvDescriptorSet0.CulledObjectBoxBounds)._m0[_103 + 3u].xyz), dot(_166, (*spvDescriptorSet0.CulledObjectBoxBounds)._m0[_103 + 4u].xyz)); - _155 = fast::max(_155, _170); - _158 = fast::min(_158, _170); - _160++; - continue; - } - if (all(_158 < float3(1.0)) && all(_155 > float3(-1.0))) - { - uint _179 = atomic_fetch_add_explicit((device atomic_uint*)&spvDescriptorSet0.RWShadowTileNumCulledObjects_atomic[(_78 * (*spvDescriptorSet0._Globals).ShadowTileListGroupSize.x) + _83], 1u, memory_order_relaxed); - } - } - out.out_var_SV_Target0 = float4(0.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-ue4/asm/frag/texture-atomics.asm.frag b/third_party/spirv-cross/reference/shaders-ue4/asm/frag/texture-atomics.asm.frag deleted file mode 100644 index d73c30cbda..0000000000 --- a/third_party/spirv-cross/reference/shaders-ue4/asm/frag/texture-atomics.asm.frag +++ /dev/null @@ -1,122 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" -#pragma clang diagnostic ignored "-Wunused-variable" - -#include -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct type_StructuredBuffer_v4float -{ - float4 _m0[1]; -}; - -struct type_Globals -{ - uint2 ShadowTileListGroupSize; -}; - -constant float3 _70 = {}; - -struct main0_out -{ - float4 out_var_SV_Target0 [[color(0)]]; -}; - -struct main0_in -{ - uint in_var_TEXCOORD0 [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], const device type_StructuredBuffer_v4float& CulledObjectBoxBounds [[buffer(0)]], constant type_Globals& _Globals [[buffer(1)]], texture2d RWShadowTileNumCulledObjects [[texture(0)]], device atomic_uint* RWShadowTileNumCulledObjects_atomic [[buffer(2)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - uint2 _77 = uint2(gl_FragCoord.xy); - uint _78 = _77.y; - uint _83 = _77.x; - float2 _91 = float2(float(_83), float((_Globals.ShadowTileListGroupSize.y - 1u) - _78)); - float2 _93 = float2(_Globals.ShadowTileListGroupSize); - float2 _96 = ((_91 / _93) * float2(2.0)) - float2(1.0); - float2 _100 = (((_91 + float2(1.0)) / _93) * float2(2.0)) - float2(1.0); - float3 _102 = float3(_100.x, _100.y, _70.z); - _102.z = 1.0; - uint _103 = in.in_var_TEXCOORD0 * 5u; - uint _107 = _103 + 1u; - if (all(CulledObjectBoxBounds._m0[_107].xy > _96.xy) && all(CulledObjectBoxBounds._m0[_103].xyz < _102)) - { - float3 _121 = float3(0.5) * (CulledObjectBoxBounds._m0[_103].xyz + CulledObjectBoxBounds._m0[_107].xyz); - float _122 = _96.x; - float _123 = _96.y; - spvUnsafeArray _73; - _73[0] = float3(_122, _123, -1000.0); - float _126 = _100.x; - _73[1] = float3(_126, _123, -1000.0); - float _129 = _100.y; - _73[2] = float3(_122, _129, -1000.0); - _73[3] = float3(_126, _129, -1000.0); - _73[4] = float3(_122, _123, 1.0); - _73[5] = float3(_126, _123, 1.0); - _73[6] = float3(_122, _129, 1.0); - _73[7] = float3(_126, _129, 1.0); - float3 _155; - float3 _158; - _155 = float3(-500000.0); - _158 = float3(500000.0); - for (int _160 = 0; _160 < 8; ) - { - float3 _166 = _73[_160] - _121; - float3 _170 = float3(dot(_166, CulledObjectBoxBounds._m0[_103 + 2u].xyz), dot(_166, CulledObjectBoxBounds._m0[_103 + 3u].xyz), dot(_166, CulledObjectBoxBounds._m0[_103 + 4u].xyz)); - _155 = fast::max(_155, _170); - _158 = fast::min(_158, _170); - _160++; - continue; - } - if (all(_158 < float3(1.0)) && all(_155 > float3(-1.0))) - { - uint _179 = atomic_fetch_add_explicit((device atomic_uint*)&RWShadowTileNumCulledObjects_atomic[(_78 * _Globals.ShadowTileListGroupSize.x) + _83], 1u, memory_order_relaxed); - } - } - out.out_var_SV_Target0 = float4(0.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-ue4/asm/frag/texture-atomics.asm.graphics-robust-access.frag b/third_party/spirv-cross/reference/shaders-ue4/asm/frag/texture-atomics.asm.graphics-robust-access.frag deleted file mode 100644 index d73c30cbda..0000000000 --- a/third_party/spirv-cross/reference/shaders-ue4/asm/frag/texture-atomics.asm.graphics-robust-access.frag +++ /dev/null @@ -1,122 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" -#pragma clang diagnostic ignored "-Wunused-variable" - -#include -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct type_StructuredBuffer_v4float -{ - float4 _m0[1]; -}; - -struct type_Globals -{ - uint2 ShadowTileListGroupSize; -}; - -constant float3 _70 = {}; - -struct main0_out -{ - float4 out_var_SV_Target0 [[color(0)]]; -}; - -struct main0_in -{ - uint in_var_TEXCOORD0 [[user(locn0)]]; -}; - -fragment main0_out main0(main0_in in [[stage_in]], const device type_StructuredBuffer_v4float& CulledObjectBoxBounds [[buffer(0)]], constant type_Globals& _Globals [[buffer(1)]], texture2d RWShadowTileNumCulledObjects [[texture(0)]], device atomic_uint* RWShadowTileNumCulledObjects_atomic [[buffer(2)]], float4 gl_FragCoord [[position]]) -{ - main0_out out = {}; - uint2 _77 = uint2(gl_FragCoord.xy); - uint _78 = _77.y; - uint _83 = _77.x; - float2 _91 = float2(float(_83), float((_Globals.ShadowTileListGroupSize.y - 1u) - _78)); - float2 _93 = float2(_Globals.ShadowTileListGroupSize); - float2 _96 = ((_91 / _93) * float2(2.0)) - float2(1.0); - float2 _100 = (((_91 + float2(1.0)) / _93) * float2(2.0)) - float2(1.0); - float3 _102 = float3(_100.x, _100.y, _70.z); - _102.z = 1.0; - uint _103 = in.in_var_TEXCOORD0 * 5u; - uint _107 = _103 + 1u; - if (all(CulledObjectBoxBounds._m0[_107].xy > _96.xy) && all(CulledObjectBoxBounds._m0[_103].xyz < _102)) - { - float3 _121 = float3(0.5) * (CulledObjectBoxBounds._m0[_103].xyz + CulledObjectBoxBounds._m0[_107].xyz); - float _122 = _96.x; - float _123 = _96.y; - spvUnsafeArray _73; - _73[0] = float3(_122, _123, -1000.0); - float _126 = _100.x; - _73[1] = float3(_126, _123, -1000.0); - float _129 = _100.y; - _73[2] = float3(_122, _129, -1000.0); - _73[3] = float3(_126, _129, -1000.0); - _73[4] = float3(_122, _123, 1.0); - _73[5] = float3(_126, _123, 1.0); - _73[6] = float3(_122, _129, 1.0); - _73[7] = float3(_126, _129, 1.0); - float3 _155; - float3 _158; - _155 = float3(-500000.0); - _158 = float3(500000.0); - for (int _160 = 0; _160 < 8; ) - { - float3 _166 = _73[_160] - _121; - float3 _170 = float3(dot(_166, CulledObjectBoxBounds._m0[_103 + 2u].xyz), dot(_166, CulledObjectBoxBounds._m0[_103 + 3u].xyz), dot(_166, CulledObjectBoxBounds._m0[_103 + 4u].xyz)); - _155 = fast::max(_155, _170); - _158 = fast::min(_158, _170); - _160++; - continue; - } - if (all(_158 < float3(1.0)) && all(_155 > float3(-1.0))) - { - uint _179 = atomic_fetch_add_explicit((device atomic_uint*)&RWShadowTileNumCulledObjects_atomic[(_78 * _Globals.ShadowTileListGroupSize.x) + _83], 1u, memory_order_relaxed); - } - } - out.out_var_SV_Target0 = float4(0.0); - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-ue4/asm/tesc/hs-incorrect-base-type.asm.tesc b/third_party/spirv-cross/reference/shaders-ue4/asm/tesc/hs-incorrect-base-type.asm.tesc deleted file mode 100644 index 70d17d47f2..0000000000 --- a/third_party/spirv-cross/reference/shaders-ue4/asm/tesc/hs-incorrect-base-type.asm.tesc +++ /dev/null @@ -1,399 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct FVertexFactoryInterpolantsVSToPS -{ - float4 TangentToWorld0; - float4 TangentToWorld2; - float4 Color; - spvUnsafeArray TexCoords; - float4 LightMapCoordinate; - uint PrimitiveId; - uint LightmapDataIndex; -}; - -struct FVertexFactoryInterpolantsVSToDS -{ - FVertexFactoryInterpolantsVSToPS InterpolantsVSToPS; -}; - -struct FSharedBasePassInterpolants -{ -}; -struct FBasePassInterpolantsVSToDS -{ - FSharedBasePassInterpolants _m0; -}; - -struct FBasePassVSToDS -{ - FVertexFactoryInterpolantsVSToDS FactoryInterpolants; - FBasePassInterpolantsVSToDS BasePassInterpolants; - float4 Position; -}; - -struct FPNTessellationHSToDS -{ - FBasePassVSToDS PassSpecificData; - spvUnsafeArray WorldPosition; - float3 DisplacementScale; - float TessellationMultiplier; - float WorldDisplacementMultiplier; -}; - -struct type_View -{ - float4x4 View_TranslatedWorldToClip; - float4x4 View_WorldToClip; - float4x4 View_TranslatedWorldToView; - float4x4 View_ViewToTranslatedWorld; - float4x4 View_TranslatedWorldToCameraView; - float4x4 View_CameraViewToTranslatedWorld; - float4x4 View_ViewToClip; - float4x4 View_ViewToClipNoAA; - float4x4 View_ClipToView; - float4x4 View_ClipToTranslatedWorld; - float4x4 View_SVPositionToTranslatedWorld; - float4x4 View_ScreenToWorld; - float4x4 View_ScreenToTranslatedWorld; - packed_float3 View_ViewForward; - float PrePadding_View_844; - packed_float3 View_ViewUp; - float PrePadding_View_860; - packed_float3 View_ViewRight; - float PrePadding_View_876; - packed_float3 View_HMDViewNoRollUp; - float PrePadding_View_892; - packed_float3 View_HMDViewNoRollRight; - float PrePadding_View_908; - float4 View_InvDeviceZToWorldZTransform; - float4 View_ScreenPositionScaleBias; - packed_float3 View_WorldCameraOrigin; - float PrePadding_View_956; - packed_float3 View_TranslatedWorldCameraOrigin; - float PrePadding_View_972; - packed_float3 View_WorldViewOrigin; - float PrePadding_View_988; - packed_float3 View_PreViewTranslation; - float PrePadding_View_1004; - float4x4 View_PrevProjection; - float4x4 View_PrevViewProj; - float4x4 View_PrevViewRotationProj; - float4x4 View_PrevViewToClip; - float4x4 View_PrevClipToView; - float4x4 View_PrevTranslatedWorldToClip; - float4x4 View_PrevTranslatedWorldToView; - float4x4 View_PrevViewToTranslatedWorld; - float4x4 View_PrevTranslatedWorldToCameraView; - float4x4 View_PrevCameraViewToTranslatedWorld; - packed_float3 View_PrevWorldCameraOrigin; - float PrePadding_View_1660; - packed_float3 View_PrevWorldViewOrigin; - float PrePadding_View_1676; - packed_float3 View_PrevPreViewTranslation; - float PrePadding_View_1692; - float4x4 View_PrevInvViewProj; - float4x4 View_PrevScreenToTranslatedWorld; - float4x4 View_ClipToPrevClip; - float4 View_TemporalAAJitter; - float4 View_GlobalClippingPlane; - float2 View_FieldOfViewWideAngles; - float2 View_PrevFieldOfViewWideAngles; - float4 View_ViewRectMin; - float4 View_ViewSizeAndInvSize; - float4 View_BufferSizeAndInvSize; - float4 View_BufferBilinearUVMinMax; - int View_NumSceneColorMSAASamples; - float View_PreExposure; - float View_OneOverPreExposure; - float PrePadding_View_2012; - float4 View_DiffuseOverrideParameter; - float4 View_SpecularOverrideParameter; - float4 View_NormalOverrideParameter; - float2 View_RoughnessOverrideParameter; - float View_PrevFrameGameTime; - float View_PrevFrameRealTime; - float View_OutOfBoundsMask; - float PrePadding_View_2084; - float PrePadding_View_2088; - float PrePadding_View_2092; - packed_float3 View_WorldCameraMovementSinceLastFrame; - float View_CullingSign; - float View_NearPlane; - float View_AdaptiveTessellationFactor; - float View_GameTime; - float View_RealTime; - float View_DeltaTime; - float View_MaterialTextureMipBias; - float View_MaterialTextureDerivativeMultiply; - uint View_Random; - uint View_FrameNumber; - uint View_StateFrameIndexMod8; - uint View_StateFrameIndex; - float View_CameraCut; - float View_UnlitViewmodeMask; - float PrePadding_View_2164; - float PrePadding_View_2168; - float PrePadding_View_2172; - float4 View_DirectionalLightColor; - packed_float3 View_DirectionalLightDirection; - float PrePadding_View_2204; - float4 View_TranslucencyLightingVolumeMin[2]; - float4 View_TranslucencyLightingVolumeInvSize[2]; - float4 View_TemporalAAParams; - float4 View_CircleDOFParams; - float View_DepthOfFieldSensorWidth; - float View_DepthOfFieldFocalDistance; - float View_DepthOfFieldScale; - float View_DepthOfFieldFocalLength; - float View_DepthOfFieldFocalRegion; - float View_DepthOfFieldNearTransitionRegion; - float View_DepthOfFieldFarTransitionRegion; - float View_MotionBlurNormalizedToPixel; - float View_bSubsurfacePostprocessEnabled; - float View_GeneralPurposeTweak; - float View_DemosaicVposOffset; - float PrePadding_View_2348; - packed_float3 View_IndirectLightingColorScale; - float View_HDR32bppEncodingMode; - packed_float3 View_AtmosphericFogSunDirection; - float View_AtmosphericFogSunPower; - float View_AtmosphericFogPower; - float View_AtmosphericFogDensityScale; - float View_AtmosphericFogDensityOffset; - float View_AtmosphericFogGroundOffset; - float View_AtmosphericFogDistanceScale; - float View_AtmosphericFogAltitudeScale; - float View_AtmosphericFogHeightScaleRayleigh; - float View_AtmosphericFogStartDistance; - float View_AtmosphericFogDistanceOffset; - float View_AtmosphericFogSunDiscScale; - uint View_AtmosphericFogRenderMask; - uint View_AtmosphericFogInscatterAltitudeSampleNum; - float4 View_AtmosphericFogSunColor; - packed_float3 View_NormalCurvatureToRoughnessScaleBias; - float View_RenderingReflectionCaptureMask; - float4 View_AmbientCubemapTint; - float View_AmbientCubemapIntensity; - float View_SkyLightParameters; - float PrePadding_View_2488; - float PrePadding_View_2492; - float4 View_SkyLightColor; - float4 View_SkyIrradianceEnvironmentMap[7]; - float View_MobilePreviewMode; - float View_HMDEyePaddingOffset; - float View_ReflectionCubemapMaxMip; - float View_ShowDecalsMask; - uint View_DistanceFieldAOSpecularOcclusionMode; - float View_IndirectCapsuleSelfShadowingIntensity; - float PrePadding_View_2648; - float PrePadding_View_2652; - packed_float3 View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight; - int View_StereoPassIndex; - float4 View_GlobalVolumeCenterAndExtent[4]; - float4 View_GlobalVolumeWorldToUVAddAndMul[4]; - float View_GlobalVolumeDimension; - float View_GlobalVolumeTexelSize; - float View_MaxGlobalDistance; - float View_bCheckerboardSubsurfaceProfileRendering; - packed_float3 View_VolumetricFogInvGridSize; - float PrePadding_View_2828; - packed_float3 View_VolumetricFogGridZParams; - float PrePadding_View_2844; - float2 View_VolumetricFogSVPosToVolumeUV; - float View_VolumetricFogMaxDistance; - float PrePadding_View_2860; - packed_float3 View_VolumetricLightmapWorldToUVScale; - float PrePadding_View_2876; - packed_float3 View_VolumetricLightmapWorldToUVAdd; - float PrePadding_View_2892; - packed_float3 View_VolumetricLightmapIndirectionTextureSize; - float View_VolumetricLightmapBrickSize; - packed_float3 View_VolumetricLightmapBrickTexelSize; - float View_StereoIPD; - float View_IndirectLightingCacheShowFlag; - float View_EyeToPixelSpreadAngle; -}; - -struct type_StructuredBuffer_v4float -{ - float4 _m0[1]; -}; - -constant float4 _142 = {}; - -struct main0_out -{ - float4 out_var_COLOR0; - uint out_var_LIGHTMAP_ID; - float3 out_var_PN_DisplacementScales; - spvUnsafeArray out_var_PN_POSITION; - float out_var_PN_TessellationMultiplier; - float out_var_PN_WorldDisplacementMultiplier; - uint out_var_PRIMITIVE_ID; - spvUnsafeArray out_var_TEXCOORD0; - float4 out_var_TEXCOORD10_centroid; - float4 out_var_TEXCOORD11_centroid; - float4 out_var_TEXCOORD4; - float4 out_var_VS_To_DS_Position; -}; - -struct main0_patchOut -{ - float4 out_var_PN_POSITION9; -}; - -struct main0_in -{ - float4 in_var_TEXCOORD10_centroid [[attribute(0)]]; - float4 in_var_TEXCOORD11_centroid [[attribute(1)]]; - float4 in_var_COLOR0 [[attribute(2)]]; - float4 in_var_TEXCOORD0_0 [[attribute(3)]]; - float4 in_var_TEXCOORD4 [[attribute(4)]]; - uint in_var_PRIMITIVE_ID [[attribute(5)]]; - uint in_var_LIGHTMAP_ID [[attribute(6)]]; - float4 in_var_VS_To_DS_Position [[attribute(7)]]; -}; - -kernel void main0(main0_in in [[stage_in]], constant type_View& View [[buffer(0)]], const device type_StructuredBuffer_v4float& View_PrimitiveSceneData [[buffer(1)]], uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLTriangleTessellationFactorsHalf* spvTessLevel [[buffer(26)]], threadgroup main0_in* gl_in [[threadgroup(0)]]) -{ - threadgroup FPNTessellationHSToDS temp_var_hullMainRetVal[3]; - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 3]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - if (gl_InvocationID < spvIndirectParams[0]) - gl_in[gl_InvocationID] = in; - threadgroup_barrier(mem_flags::mem_threadgroup); - if (gl_InvocationID >= 3) - return; - spvUnsafeArray _144 = spvUnsafeArray({ gl_in[0].in_var_TEXCOORD10_centroid, gl_in[1].in_var_TEXCOORD10_centroid, gl_in[2].in_var_TEXCOORD10_centroid, gl_in[3].in_var_TEXCOORD10_centroid, gl_in[4].in_var_TEXCOORD10_centroid, gl_in[5].in_var_TEXCOORD10_centroid, gl_in[6].in_var_TEXCOORD10_centroid, gl_in[7].in_var_TEXCOORD10_centroid, gl_in[8].in_var_TEXCOORD10_centroid, gl_in[9].in_var_TEXCOORD10_centroid, gl_in[10].in_var_TEXCOORD10_centroid, gl_in[11].in_var_TEXCOORD10_centroid }); - spvUnsafeArray _145 = spvUnsafeArray({ gl_in[0].in_var_TEXCOORD11_centroid, gl_in[1].in_var_TEXCOORD11_centroid, gl_in[2].in_var_TEXCOORD11_centroid, gl_in[3].in_var_TEXCOORD11_centroid, gl_in[4].in_var_TEXCOORD11_centroid, gl_in[5].in_var_TEXCOORD11_centroid, gl_in[6].in_var_TEXCOORD11_centroid, gl_in[7].in_var_TEXCOORD11_centroid, gl_in[8].in_var_TEXCOORD11_centroid, gl_in[9].in_var_TEXCOORD11_centroid, gl_in[10].in_var_TEXCOORD11_centroid, gl_in[11].in_var_TEXCOORD11_centroid }); - spvUnsafeArray _146 = spvUnsafeArray({ gl_in[0].in_var_COLOR0, gl_in[1].in_var_COLOR0, gl_in[2].in_var_COLOR0, gl_in[3].in_var_COLOR0, gl_in[4].in_var_COLOR0, gl_in[5].in_var_COLOR0, gl_in[6].in_var_COLOR0, gl_in[7].in_var_COLOR0, gl_in[8].in_var_COLOR0, gl_in[9].in_var_COLOR0, gl_in[10].in_var_COLOR0, gl_in[11].in_var_COLOR0 }); - spvUnsafeArray, 12> _147 = spvUnsafeArray, 12>({ spvUnsafeArray({ gl_in[0].in_var_TEXCOORD0_0 }), spvUnsafeArray({ gl_in[1].in_var_TEXCOORD0_0 }), spvUnsafeArray({ gl_in[2].in_var_TEXCOORD0_0 }), spvUnsafeArray({ gl_in[3].in_var_TEXCOORD0_0 }), spvUnsafeArray({ gl_in[4].in_var_TEXCOORD0_0 }), spvUnsafeArray({ gl_in[5].in_var_TEXCOORD0_0 }), spvUnsafeArray({ gl_in[6].in_var_TEXCOORD0_0 }), spvUnsafeArray({ gl_in[7].in_var_TEXCOORD0_0 }), spvUnsafeArray({ gl_in[8].in_var_TEXCOORD0_0 }), spvUnsafeArray({ gl_in[9].in_var_TEXCOORD0_0 }), spvUnsafeArray({ gl_in[10].in_var_TEXCOORD0_0 }), spvUnsafeArray({ gl_in[11].in_var_TEXCOORD0_0 }) }); - spvUnsafeArray _148 = spvUnsafeArray({ gl_in[0].in_var_TEXCOORD4, gl_in[1].in_var_TEXCOORD4, gl_in[2].in_var_TEXCOORD4, gl_in[3].in_var_TEXCOORD4, gl_in[4].in_var_TEXCOORD4, gl_in[5].in_var_TEXCOORD4, gl_in[6].in_var_TEXCOORD4, gl_in[7].in_var_TEXCOORD4, gl_in[8].in_var_TEXCOORD4, gl_in[9].in_var_TEXCOORD4, gl_in[10].in_var_TEXCOORD4, gl_in[11].in_var_TEXCOORD4 }); - spvUnsafeArray _149 = spvUnsafeArray({ gl_in[0].in_var_PRIMITIVE_ID, gl_in[1].in_var_PRIMITIVE_ID, gl_in[2].in_var_PRIMITIVE_ID, gl_in[3].in_var_PRIMITIVE_ID, gl_in[4].in_var_PRIMITIVE_ID, gl_in[5].in_var_PRIMITIVE_ID, gl_in[6].in_var_PRIMITIVE_ID, gl_in[7].in_var_PRIMITIVE_ID, gl_in[8].in_var_PRIMITIVE_ID, gl_in[9].in_var_PRIMITIVE_ID, gl_in[10].in_var_PRIMITIVE_ID, gl_in[11].in_var_PRIMITIVE_ID }); - spvUnsafeArray _150 = spvUnsafeArray({ gl_in[0].in_var_LIGHTMAP_ID, gl_in[1].in_var_LIGHTMAP_ID, gl_in[2].in_var_LIGHTMAP_ID, gl_in[3].in_var_LIGHTMAP_ID, gl_in[4].in_var_LIGHTMAP_ID, gl_in[5].in_var_LIGHTMAP_ID, gl_in[6].in_var_LIGHTMAP_ID, gl_in[7].in_var_LIGHTMAP_ID, gl_in[8].in_var_LIGHTMAP_ID, gl_in[9].in_var_LIGHTMAP_ID, gl_in[10].in_var_LIGHTMAP_ID, gl_in[11].in_var_LIGHTMAP_ID }); - spvUnsafeArray _259 = spvUnsafeArray({ gl_in[0].in_var_VS_To_DS_Position, gl_in[1].in_var_VS_To_DS_Position, gl_in[2].in_var_VS_To_DS_Position, gl_in[3].in_var_VS_To_DS_Position, gl_in[4].in_var_VS_To_DS_Position, gl_in[5].in_var_VS_To_DS_Position, gl_in[6].in_var_VS_To_DS_Position, gl_in[7].in_var_VS_To_DS_Position, gl_in[8].in_var_VS_To_DS_Position, gl_in[9].in_var_VS_To_DS_Position, gl_in[10].in_var_VS_To_DS_Position, gl_in[11].in_var_VS_To_DS_Position }); - spvUnsafeArray _284 = spvUnsafeArray({ FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _144[0], _145[0], _146[0], _147[0], _148[0], _149[0], _150[0] } }, FBasePassInterpolantsVSToDS{ { } }, _259[0] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _144[1], _145[1], _146[1], _147[1], _148[1], _149[1], _150[1] } }, FBasePassInterpolantsVSToDS{ { } }, _259[1] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _144[2], _145[2], _146[2], _147[2], _148[2], _149[2], _150[2] } }, FBasePassInterpolantsVSToDS{ { } }, _259[2] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _144[3], _145[3], _146[3], _147[3], _148[3], _149[3], _150[3] } }, FBasePassInterpolantsVSToDS{ { } }, _259[3] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _144[4], _145[4], _146[4], _147[4], _148[4], _149[4], _150[4] } }, FBasePassInterpolantsVSToDS{ { } }, _259[4] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _144[5], _145[5], _146[5], _147[5], _148[5], _149[5], _150[5] } }, FBasePassInterpolantsVSToDS{ { } }, _259[5] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _144[6], _145[6], _146[6], _147[6], _148[6], _149[6], _150[6] } }, FBasePassInterpolantsVSToDS{ { } }, _259[6] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _144[7], _145[7], _146[7], _147[7], _148[7], _149[7], _150[7] } }, FBasePassInterpolantsVSToDS{ { } }, _259[7] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _144[8], _145[8], _146[8], _147[8], _148[8], _149[8], _150[8] } }, FBasePassInterpolantsVSToDS{ { } }, _259[8] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _144[9], _145[9], _146[9], _147[9], _148[9], _149[9], _150[9] } }, FBasePassInterpolantsVSToDS{ { } }, _259[9] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _144[10], _145[10], _146[10], _147[10], _148[10], _149[10], _150[10] } }, FBasePassInterpolantsVSToDS{ { } }, _259[10] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _144[11], _145[11], _146[11], _147[11], _148[11], _149[11], _150[11] } }, FBasePassInterpolantsVSToDS{ { } }, _259[11] } }); - spvUnsafeArray param_var_I; - param_var_I = _284; - float4 _301 = float4(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0); - float3 _310 = View_PrimitiveSceneData._m0[(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.PrimitiveId * 26u) + 22u].xyz * float3x3(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0.xyz, cross(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0.xyz) * float3(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.w), param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz); - uint _313 = (gl_InvocationID < 2u) ? (gl_InvocationID + 1u) : 0u; - uint _314 = 2u * gl_InvocationID; - uint _315 = 3u + _314; - uint _316 = _314 + 4u; - float4 _328 = float4(param_var_I[_313].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0); - float4 _336 = float4(param_var_I[_315].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0); - float4 _344 = float4(param_var_I[_316].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0); - spvUnsafeArray _392 = spvUnsafeArray({ param_var_I[gl_InvocationID].Position, (((((float4(2.0) * param_var_I[gl_InvocationID].Position) + param_var_I[_313].Position) - (float4(dot(param_var_I[_313].Position - param_var_I[gl_InvocationID].Position, _301)) * _301)) * float4(0.3333333432674407958984375)) + ((((float4(2.0) * param_var_I[_315].Position) + param_var_I[_316].Position) - (float4(dot(param_var_I[_316].Position - param_var_I[_315].Position, _336)) * _336)) * float4(0.3333333432674407958984375))) * float4(0.5), (((((float4(2.0) * param_var_I[_313].Position) + param_var_I[gl_InvocationID].Position) - (float4(dot(param_var_I[gl_InvocationID].Position - param_var_I[_313].Position, _328)) * _328)) * float4(0.3333333432674407958984375)) + ((((float4(2.0) * param_var_I[_316].Position) + param_var_I[_315].Position) - (float4(dot(param_var_I[_315].Position - param_var_I[_316].Position, _344)) * _344)) * float4(0.3333333432674407958984375))) * float4(0.5) }); - gl_out[gl_InvocationID].out_var_TEXCOORD10_centroid = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0; - gl_out[gl_InvocationID].out_var_TEXCOORD11_centroid = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2; - gl_out[gl_InvocationID].out_var_COLOR0 = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.Color; - gl_out[gl_InvocationID].out_var_TEXCOORD0 = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TexCoords; - gl_out[gl_InvocationID].out_var_TEXCOORD4 = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.LightMapCoordinate; - gl_out[gl_InvocationID].out_var_PRIMITIVE_ID = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.PrimitiveId; - gl_out[gl_InvocationID].out_var_LIGHTMAP_ID = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.LightmapDataIndex; - gl_out[gl_InvocationID].out_var_VS_To_DS_Position = param_var_I[gl_InvocationID].Position; - gl_out[gl_InvocationID].out_var_PN_POSITION = _392; - gl_out[gl_InvocationID].out_var_PN_DisplacementScales = _310; - gl_out[gl_InvocationID].out_var_PN_TessellationMultiplier = 1.0; - gl_out[gl_InvocationID].out_var_PN_WorldDisplacementMultiplier = 1.0; - temp_var_hullMainRetVal[gl_InvocationID] = FPNTessellationHSToDS{ param_var_I[gl_InvocationID], _392, _310, 1.0, 1.0 }; - threadgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup); - if (gl_InvocationID == 0u) - { - float4 _450 = (((((temp_var_hullMainRetVal[0u].WorldPosition[1] + temp_var_hullMainRetVal[0u].WorldPosition[2]) + temp_var_hullMainRetVal[1u].WorldPosition[1]) + temp_var_hullMainRetVal[1u].WorldPosition[2]) + temp_var_hullMainRetVal[2u].WorldPosition[1]) + temp_var_hullMainRetVal[2u].WorldPosition[2]) * float4(0.16666667163372039794921875); - float4 _463 = _142; - _463.x = 0.5 * (temp_var_hullMainRetVal[1u].TessellationMultiplier + temp_var_hullMainRetVal[2u].TessellationMultiplier); - float4 _469 = _463; - _469.y = 0.5 * (temp_var_hullMainRetVal[2u].TessellationMultiplier + temp_var_hullMainRetVal[0u].TessellationMultiplier); - float4 _474 = _469; - _474.z = 0.5 * (temp_var_hullMainRetVal[0u].TessellationMultiplier + temp_var_hullMainRetVal[1u].TessellationMultiplier); - float4 _481 = _474; - _481.w = 0.333000004291534423828125 * ((temp_var_hullMainRetVal[0u].TessellationMultiplier + temp_var_hullMainRetVal[1u].TessellationMultiplier) + temp_var_hullMainRetVal[2u].TessellationMultiplier); - float4 _589; - for (;;) - { - float4 _489 = View.View_ViewToClip * float4(0.0); - float4 _494 = View.View_TranslatedWorldToClip * float4(temp_var_hullMainRetVal[0u].WorldPosition[0].xyz, 1.0); - float3 _495 = _494.xyz; - float3 _496 = _489.xyz; - float _498 = _494.w; - float _499 = _489.w; - float4 _516 = View.View_TranslatedWorldToClip * float4(temp_var_hullMainRetVal[1u].WorldPosition[0].xyz, 1.0); - float3 _517 = _516.xyz; - float _519 = _516.w; - float4 _537 = View.View_TranslatedWorldToClip * float4(temp_var_hullMainRetVal[2u].WorldPosition[0].xyz, 1.0); - float3 _538 = _537.xyz; - float _540 = _537.w; - if (any((((select(int3(0), int3(1), (_495 - _496) < float3(_498 + _499)) + (int3(2) * select(int3(0), int3(1), (_495 + _496) > float3((-_498) - _499)))) | (select(int3(0), int3(1), (_517 - _496) < float3(_519 + _499)) + (int3(2) * select(int3(0), int3(1), (_517 + _496) > float3((-_519) - _499))))) | (select(int3(0), int3(1), (_538 - _496) < float3(_540 + _499)) + (int3(2) * select(int3(0), int3(1), (_538 + _496) > float3((-_540) - _499))))) != int3(3))) - { - _589 = float4(0.0); - break; - } - float3 _558 = temp_var_hullMainRetVal[0u].WorldPosition[0].xyz - temp_var_hullMainRetVal[1u].WorldPosition[0].xyz; - float3 _559 = temp_var_hullMainRetVal[1u].WorldPosition[0].xyz - temp_var_hullMainRetVal[2u].WorldPosition[0].xyz; - float3 _560 = temp_var_hullMainRetVal[2u].WorldPosition[0].xyz - temp_var_hullMainRetVal[0u].WorldPosition[0].xyz; - float3 _563 = (float3(0.5) * (temp_var_hullMainRetVal[0u].WorldPosition[0].xyz + temp_var_hullMainRetVal[1u].WorldPosition[0].xyz)) - float3(View.View_TranslatedWorldCameraOrigin); - float3 _566 = (float3(0.5) * (temp_var_hullMainRetVal[1u].WorldPosition[0].xyz + temp_var_hullMainRetVal[2u].WorldPosition[0].xyz)) - float3(View.View_TranslatedWorldCameraOrigin); - float3 _569 = (float3(0.5) * (temp_var_hullMainRetVal[2u].WorldPosition[0].xyz + temp_var_hullMainRetVal[0u].WorldPosition[0].xyz)) - float3(View.View_TranslatedWorldCameraOrigin); - float _573 = sqrt(dot(_559, _559) / dot(_566, _566)); - float _577 = sqrt(dot(_560, _560) / dot(_569, _569)); - float _581 = sqrt(dot(_558, _558) / dot(_563, _563)); - float4 _586 = float4(_573, _577, _581, 1.0); - _586.w = 0.333000004291534423828125 * ((_573 + _577) + _581); - _589 = float4(View.View_AdaptiveTessellationFactor) * _586; - break; - } - float4 _591 = fast::clamp(_481 * _589, float4(1.0), float4(15.0)); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0u] = half(_591.x); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1u] = half(_591.y); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2u] = half(_591.z); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor = half(_591.w); - patchOut.out_var_PN_POSITION9 = _450 + ((_450 - (((temp_var_hullMainRetVal[2u].WorldPosition[0] + temp_var_hullMainRetVal[1u].WorldPosition[0]) + temp_var_hullMainRetVal[0u].WorldPosition[0]) * float4(0.3333333432674407958984375))) * float4(0.5)); - } -} - diff --git a/third_party/spirv-cross/reference/shaders-ue4/asm/tesc/hs-input-array-access.asm.tesc b/third_party/spirv-cross/reference/shaders-ue4/asm/tesc/hs-input-array-access.asm.tesc deleted file mode 100644 index 2ec930609f..0000000000 --- a/third_party/spirv-cross/reference/shaders-ue4/asm/tesc/hs-input-array-access.asm.tesc +++ /dev/null @@ -1,467 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct FVertexFactoryInterpolantsVSToPS -{ - float4 TangentToWorld0; - float4 TangentToWorld2; -}; - -struct FVertexFactoryInterpolantsVSToDS -{ - FVertexFactoryInterpolantsVSToPS InterpolantsVSToPS; -}; - -struct FHitProxyVSToDS -{ - FVertexFactoryInterpolantsVSToDS FactoryInterpolants; - float4 Position; - uint VertexID; -}; - -struct FHullShaderConstantDominantVertexData -{ - float2 UV; - float4 Normal; - float3 Tangent; -}; - -struct FHullShaderConstantDominantEdgeData -{ - float2 UV0; - float2 UV1; - float4 Normal0; - float4 Normal1; - float3 Tangent0; - float3 Tangent1; -}; - -struct FPNTessellationHSToDS -{ - FHitProxyVSToDS PassSpecificData; - spvUnsafeArray WorldPosition; - float3 DisplacementScale; - float TessellationMultiplier; - float WorldDisplacementMultiplier; - FHullShaderConstantDominantVertexData DominantVertex; - FHullShaderConstantDominantEdgeData DominantEdge; -}; - -struct type_View -{ - float4x4 View_TranslatedWorldToClip; - float4x4 View_WorldToClip; - float4x4 View_ClipToWorld; - float4x4 View_TranslatedWorldToView; - float4x4 View_ViewToTranslatedWorld; - float4x4 View_TranslatedWorldToCameraView; - float4x4 View_CameraViewToTranslatedWorld; - float4x4 View_ViewToClip; - float4x4 View_ViewToClipNoAA; - float4x4 View_ClipToView; - float4x4 View_ClipToTranslatedWorld; - float4x4 View_SVPositionToTranslatedWorld; - float4x4 View_ScreenToWorld; - float4x4 View_ScreenToTranslatedWorld; - packed_float3 View_ViewForward; - float PrePadding_View_908; - packed_float3 View_ViewUp; - float PrePadding_View_924; - packed_float3 View_ViewRight; - float PrePadding_View_940; - packed_float3 View_HMDViewNoRollUp; - float PrePadding_View_956; - packed_float3 View_HMDViewNoRollRight; - float PrePadding_View_972; - float4 View_InvDeviceZToWorldZTransform; - float4 View_ScreenPositionScaleBias; - packed_float3 View_WorldCameraOrigin; - float PrePadding_View_1020; - packed_float3 View_TranslatedWorldCameraOrigin; - float PrePadding_View_1036; - packed_float3 View_WorldViewOrigin; - float PrePadding_View_1052; - packed_float3 View_PreViewTranslation; - float PrePadding_View_1068; - float4x4 View_PrevProjection; - float4x4 View_PrevViewProj; - float4x4 View_PrevViewRotationProj; - float4x4 View_PrevViewToClip; - float4x4 View_PrevClipToView; - float4x4 View_PrevTranslatedWorldToClip; - float4x4 View_PrevTranslatedWorldToView; - float4x4 View_PrevViewToTranslatedWorld; - float4x4 View_PrevTranslatedWorldToCameraView; - float4x4 View_PrevCameraViewToTranslatedWorld; - packed_float3 View_PrevWorldCameraOrigin; - float PrePadding_View_1724; - packed_float3 View_PrevWorldViewOrigin; - float PrePadding_View_1740; - packed_float3 View_PrevPreViewTranslation; - float PrePadding_View_1756; - float4x4 View_PrevInvViewProj; - float4x4 View_PrevScreenToTranslatedWorld; - float4x4 View_ClipToPrevClip; - float4 View_TemporalAAJitter; - float4 View_GlobalClippingPlane; - float2 View_FieldOfViewWideAngles; - float2 View_PrevFieldOfViewWideAngles; - float4 View_ViewRectMin; - float4 View_ViewSizeAndInvSize; - float4 View_BufferSizeAndInvSize; - float4 View_BufferBilinearUVMinMax; - int View_NumSceneColorMSAASamples; - float View_PreExposure; - float View_OneOverPreExposure; - float PrePadding_View_2076; - float4 View_DiffuseOverrideParameter; - float4 View_SpecularOverrideParameter; - float4 View_NormalOverrideParameter; - float2 View_RoughnessOverrideParameter; - float View_PrevFrameGameTime; - float View_PrevFrameRealTime; - float View_OutOfBoundsMask; - float PrePadding_View_2148; - float PrePadding_View_2152; - float PrePadding_View_2156; - packed_float3 View_WorldCameraMovementSinceLastFrame; - float View_CullingSign; - float View_NearPlane; - float View_AdaptiveTessellationFactor; - float View_GameTime; - float View_RealTime; - float View_DeltaTime; - float View_MaterialTextureMipBias; - float View_MaterialTextureDerivativeMultiply; - uint View_Random; - uint View_FrameNumber; - uint View_StateFrameIndexMod8; - uint View_StateFrameIndex; - float View_CameraCut; - float View_UnlitViewmodeMask; - float PrePadding_View_2228; - float PrePadding_View_2232; - float PrePadding_View_2236; - float4 View_DirectionalLightColor; - packed_float3 View_DirectionalLightDirection; - float PrePadding_View_2268; - float4 View_TranslucencyLightingVolumeMin[2]; - float4 View_TranslucencyLightingVolumeInvSize[2]; - float4 View_TemporalAAParams; - float4 View_CircleDOFParams; - float View_DepthOfFieldSensorWidth; - float View_DepthOfFieldFocalDistance; - float View_DepthOfFieldScale; - float View_DepthOfFieldFocalLength; - float View_DepthOfFieldFocalRegion; - float View_DepthOfFieldNearTransitionRegion; - float View_DepthOfFieldFarTransitionRegion; - float View_MotionBlurNormalizedToPixel; - float View_bSubsurfacePostprocessEnabled; - float View_GeneralPurposeTweak; - float View_DemosaicVposOffset; - float PrePadding_View_2412; - packed_float3 View_IndirectLightingColorScale; - float View_HDR32bppEncodingMode; - packed_float3 View_AtmosphericFogSunDirection; - float View_AtmosphericFogSunPower; - float View_AtmosphericFogPower; - float View_AtmosphericFogDensityScale; - float View_AtmosphericFogDensityOffset; - float View_AtmosphericFogGroundOffset; - float View_AtmosphericFogDistanceScale; - float View_AtmosphericFogAltitudeScale; - float View_AtmosphericFogHeightScaleRayleigh; - float View_AtmosphericFogStartDistance; - float View_AtmosphericFogDistanceOffset; - float View_AtmosphericFogSunDiscScale; - float View_AtmosphericFogSunDiscHalfApexAngleRadian; - float PrePadding_View_2492; - float4 View_AtmosphericFogSunDiscLuminance; - uint View_AtmosphericFogRenderMask; - uint View_AtmosphericFogInscatterAltitudeSampleNum; - uint PrePadding_View_2520; - uint PrePadding_View_2524; - float4 View_AtmosphericFogSunColor; - packed_float3 View_NormalCurvatureToRoughnessScaleBias; - float View_RenderingReflectionCaptureMask; - float4 View_AmbientCubemapTint; - float View_AmbientCubemapIntensity; - float View_SkyLightParameters; - float PrePadding_View_2584; - float PrePadding_View_2588; - float4 View_SkyLightColor; - float4 View_SkyIrradianceEnvironmentMap[7]; - float View_MobilePreviewMode; - float View_HMDEyePaddingOffset; - float View_ReflectionCubemapMaxMip; - float View_ShowDecalsMask; - uint View_DistanceFieldAOSpecularOcclusionMode; - float View_IndirectCapsuleSelfShadowingIntensity; - float PrePadding_View_2744; - float PrePadding_View_2748; - packed_float3 View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight; - int View_StereoPassIndex; - float4 View_GlobalVolumeCenterAndExtent[4]; - float4 View_GlobalVolumeWorldToUVAddAndMul[4]; - float View_GlobalVolumeDimension; - float View_GlobalVolumeTexelSize; - float View_MaxGlobalDistance; - float PrePadding_View_2908; - int2 View_CursorPosition; - float View_bCheckerboardSubsurfaceProfileRendering; - float PrePadding_View_2924; - packed_float3 View_VolumetricFogInvGridSize; - float PrePadding_View_2940; - packed_float3 View_VolumetricFogGridZParams; - float PrePadding_View_2956; - float2 View_VolumetricFogSVPosToVolumeUV; - float View_VolumetricFogMaxDistance; - float PrePadding_View_2972; - packed_float3 View_VolumetricLightmapWorldToUVScale; - float PrePadding_View_2988; - packed_float3 View_VolumetricLightmapWorldToUVAdd; - float PrePadding_View_3004; - packed_float3 View_VolumetricLightmapIndirectionTextureSize; - float View_VolumetricLightmapBrickSize; - packed_float3 View_VolumetricLightmapBrickTexelSize; - float View_StereoIPD; - float View_IndirectLightingCacheShowFlag; - float View_EyeToPixelSpreadAngle; -}; - -struct type_Primitive -{ - float4x4 Primitive_LocalToWorld; - float4 Primitive_InvNonUniformScaleAndDeterminantSign; - float4 Primitive_ObjectWorldPositionAndRadius; - float4x4 Primitive_WorldToLocal; - float4x4 Primitive_PreviousLocalToWorld; - float4x4 Primitive_PreviousWorldToLocal; - packed_float3 Primitive_ActorWorldPosition; - float Primitive_UseSingleSampleShadowFromStationaryLights; - packed_float3 Primitive_ObjectBounds; - float Primitive_LpvBiasMultiplier; - float Primitive_DecalReceiverMask; - float Primitive_PerObjectGBufferData; - float Primitive_UseVolumetricLightmapShadowFromStationaryLights; - float Primitive_DrawsVelocity; - float4 Primitive_ObjectOrientation; - float4 Primitive_NonUniformScale; - packed_float3 Primitive_LocalObjectBoundsMin; - uint Primitive_LightingChannelMask; - packed_float3 Primitive_LocalObjectBoundsMax; - uint Primitive_LightmapDataIndex; - packed_float3 Primitive_PreSkinnedLocalBounds; - int Primitive_SingleCaptureIndex; - uint Primitive_OutputVelocity; - uint PrePadding_Primitive_420; - uint PrePadding_Primitive_424; - uint PrePadding_Primitive_428; - float4 Primitive_CustomPrimitiveData[4]; -}; - -constant float4 _140 = {}; - -struct main0_out -{ - float3 out_var_PN_DisplacementScales; - float2 out_var_PN_DominantEdge; - float2 out_var_PN_DominantEdge1; - float4 out_var_PN_DominantEdge2; - float4 out_var_PN_DominantEdge3; - float3 out_var_PN_DominantEdge4; - float3 out_var_PN_DominantEdge5; - float2 out_var_PN_DominantVertex; - float4 out_var_PN_DominantVertex1; - float3 out_var_PN_DominantVertex2; - spvUnsafeArray out_var_PN_POSITION; - float out_var_PN_TessellationMultiplier; - float out_var_PN_WorldDisplacementMultiplier; - float4 out_var_TEXCOORD10_centroid; - float4 out_var_TEXCOORD11_centroid; - float4 out_var_VS_To_DS_Position; - uint out_var_VS_To_DS_VertexID; -}; - -struct main0_patchOut -{ - float4 out_var_PN_POSITION9; -}; - -struct main0_in -{ - float4 in_var_TEXCOORD10_centroid [[attribute(0)]]; - float4 in_var_TEXCOORD11_centroid [[attribute(1)]]; - float4 in_var_VS_To_DS_Position [[attribute(2)]]; - uint in_var_VS_To_DS_VertexID [[attribute(3)]]; -}; - -kernel void main0(main0_in in [[stage_in]], constant type_View& View [[buffer(0)]], constant type_Primitive& Primitive [[buffer(1)]], uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLTriangleTessellationFactorsHalf* spvTessLevel [[buffer(26)]], threadgroup main0_in* gl_in [[threadgroup(0)]]) -{ - threadgroup FPNTessellationHSToDS temp_var_hullMainRetVal[3]; - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 3]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - if (gl_InvocationID < spvIndirectParams[0]) - gl_in[gl_InvocationID] = in; - threadgroup_barrier(mem_flags::mem_threadgroup); - if (gl_InvocationID >= 3) - return; - spvUnsafeArray _142 = spvUnsafeArray({ gl_in[0].in_var_TEXCOORD10_centroid, gl_in[1].in_var_TEXCOORD10_centroid, gl_in[2].in_var_TEXCOORD10_centroid, gl_in[3].in_var_TEXCOORD10_centroid, gl_in[4].in_var_TEXCOORD10_centroid, gl_in[5].in_var_TEXCOORD10_centroid, gl_in[6].in_var_TEXCOORD10_centroid, gl_in[7].in_var_TEXCOORD10_centroid, gl_in[8].in_var_TEXCOORD10_centroid, gl_in[9].in_var_TEXCOORD10_centroid, gl_in[10].in_var_TEXCOORD10_centroid, gl_in[11].in_var_TEXCOORD10_centroid }); - spvUnsafeArray _143 = spvUnsafeArray({ gl_in[0].in_var_TEXCOORD11_centroid, gl_in[1].in_var_TEXCOORD11_centroid, gl_in[2].in_var_TEXCOORD11_centroid, gl_in[3].in_var_TEXCOORD11_centroid, gl_in[4].in_var_TEXCOORD11_centroid, gl_in[5].in_var_TEXCOORD11_centroid, gl_in[6].in_var_TEXCOORD11_centroid, gl_in[7].in_var_TEXCOORD11_centroid, gl_in[8].in_var_TEXCOORD11_centroid, gl_in[9].in_var_TEXCOORD11_centroid, gl_in[10].in_var_TEXCOORD11_centroid, gl_in[11].in_var_TEXCOORD11_centroid }); - spvUnsafeArray _192 = spvUnsafeArray({ gl_in[0].in_var_VS_To_DS_Position, gl_in[1].in_var_VS_To_DS_Position, gl_in[2].in_var_VS_To_DS_Position, gl_in[3].in_var_VS_To_DS_Position, gl_in[4].in_var_VS_To_DS_Position, gl_in[5].in_var_VS_To_DS_Position, gl_in[6].in_var_VS_To_DS_Position, gl_in[7].in_var_VS_To_DS_Position, gl_in[8].in_var_VS_To_DS_Position, gl_in[9].in_var_VS_To_DS_Position, gl_in[10].in_var_VS_To_DS_Position, gl_in[11].in_var_VS_To_DS_Position }); - spvUnsafeArray _193 = spvUnsafeArray({ gl_in[0].in_var_VS_To_DS_VertexID, gl_in[1].in_var_VS_To_DS_VertexID, gl_in[2].in_var_VS_To_DS_VertexID, gl_in[3].in_var_VS_To_DS_VertexID, gl_in[4].in_var_VS_To_DS_VertexID, gl_in[5].in_var_VS_To_DS_VertexID, gl_in[6].in_var_VS_To_DS_VertexID, gl_in[7].in_var_VS_To_DS_VertexID, gl_in[8].in_var_VS_To_DS_VertexID, gl_in[9].in_var_VS_To_DS_VertexID, gl_in[10].in_var_VS_To_DS_VertexID, gl_in[11].in_var_VS_To_DS_VertexID }); - spvUnsafeArray _230 = spvUnsafeArray({ FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _142[0], _143[0] } }, _192[0], _193[0] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _142[1], _143[1] } }, _192[1], _193[1] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _142[2], _143[2] } }, _192[2], _193[2] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _142[3], _143[3] } }, _192[3], _193[3] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _142[4], _143[4] } }, _192[4], _193[4] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _142[5], _143[5] } }, _192[5], _193[5] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _142[6], _143[6] } }, _192[6], _193[6] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _142[7], _143[7] } }, _192[7], _193[7] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _142[8], _143[8] } }, _192[8], _193[8] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _142[9], _143[9] } }, _192[9], _193[9] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _142[10], _143[10] } }, _192[10], _193[10] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _142[11], _143[11] } }, _192[11], _193[11] } }); - spvUnsafeArray param_var_I; - param_var_I = _230; - float4 _247 = float4(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0); - float3 _251 = Primitive.Primitive_NonUniformScale.xyz * float3x3(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0.xyz, cross(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0.xyz) * float3(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.w), param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz); - uint _254 = (gl_InvocationID < 2u) ? (gl_InvocationID + 1u) : 0u; - uint _255 = 2u * gl_InvocationID; - uint _256 = 3u + _255; - uint _257 = _255 + 4u; - uint _264 = (_254 < 2u) ? (_254 + 1u) : 0u; - uint _265 = 2u * _254; - uint _266 = 3u + _265; - uint _267 = _265 + 4u; - float4 _279 = float4(param_var_I[9u + gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0); - float4 _315; - float4 _316; - float4 _317; - float4 _318; - if ((param_var_I[_266].VertexID < param_var_I[_254].VertexID) || ((param_var_I[_266].VertexID == param_var_I[_254].VertexID) && (param_var_I[_267].VertexID < param_var_I[_264].VertexID))) - { - _315 = param_var_I[_267].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0; - _316 = param_var_I[_267].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2; - _317 = param_var_I[_266].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0; - _318 = param_var_I[_266].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2; - } - else - { - _315 = param_var_I[_264].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0; - _316 = param_var_I[_264].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2; - _317 = param_var_I[_254].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0; - _318 = param_var_I[_254].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2; - } - float4 _324 = float4(_318.xyz, 0.0); - float4 _328 = float4(_316.xyz, 0.0); - float4 _336 = float4(param_var_I[_254].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0); - float4 _344 = float4(param_var_I[_256].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0); - float4 _352 = float4(param_var_I[_257].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0); - spvUnsafeArray _402 = spvUnsafeArray({ param_var_I[gl_InvocationID].Position, (((((float4(2.0) * param_var_I[gl_InvocationID].Position) + param_var_I[_254].Position) - (float4(dot(param_var_I[_254].Position - param_var_I[gl_InvocationID].Position, _247)) * _247)) * float4(0.3333333432674407958984375)) + ((((float4(2.0) * param_var_I[_256].Position) + param_var_I[_257].Position) - (float4(dot(param_var_I[_257].Position - param_var_I[_256].Position, _344)) * _344)) * float4(0.3333333432674407958984375))) * float4(0.5), (((((float4(2.0) * param_var_I[_254].Position) + param_var_I[gl_InvocationID].Position) - (float4(dot(param_var_I[gl_InvocationID].Position - param_var_I[_254].Position, _336)) * _336)) * float4(0.3333333432674407958984375)) + ((((float4(2.0) * param_var_I[_257].Position) + param_var_I[_256].Position) - (float4(dot(param_var_I[_256].Position - param_var_I[_257].Position, _352)) * _352)) * float4(0.3333333432674407958984375))) * float4(0.5) }); - gl_out[gl_InvocationID].out_var_TEXCOORD10_centroid = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0; - gl_out[gl_InvocationID].out_var_TEXCOORD11_centroid = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2; - gl_out[gl_InvocationID].out_var_VS_To_DS_Position = param_var_I[gl_InvocationID].Position; - gl_out[gl_InvocationID].out_var_VS_To_DS_VertexID = param_var_I[gl_InvocationID].VertexID; - gl_out[gl_InvocationID].out_var_PN_POSITION = _402; - gl_out[gl_InvocationID].out_var_PN_DisplacementScales = _251; - gl_out[gl_InvocationID].out_var_PN_TessellationMultiplier = 1.0; - gl_out[gl_InvocationID].out_var_PN_WorldDisplacementMultiplier = 1.0; - gl_out[gl_InvocationID].out_var_PN_DominantVertex = float2(0.0); - gl_out[gl_InvocationID].out_var_PN_DominantVertex1 = _279; - gl_out[gl_InvocationID].out_var_PN_DominantVertex2 = param_var_I[9u + gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0.xyz; - gl_out[gl_InvocationID].out_var_PN_DominantEdge = float2(0.0); - gl_out[gl_InvocationID].out_var_PN_DominantEdge1 = float2(0.0); - gl_out[gl_InvocationID].out_var_PN_DominantEdge2 = _324; - gl_out[gl_InvocationID].out_var_PN_DominantEdge3 = _328; - gl_out[gl_InvocationID].out_var_PN_DominantEdge4 = _317.xyz; - gl_out[gl_InvocationID].out_var_PN_DominantEdge5 = _315.xyz; - temp_var_hullMainRetVal[gl_InvocationID] = FPNTessellationHSToDS{ param_var_I[gl_InvocationID], _402, _251, 1.0, 1.0, FHullShaderConstantDominantVertexData{ float2(0.0), _279, param_var_I[9u + gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0.xyz }, FHullShaderConstantDominantEdgeData{ float2(0.0), float2(0.0), _324, _328, _317.xyz, _315.xyz } }; - threadgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup); - if (gl_InvocationID == 0u) - { - float4 _461 = (((((temp_var_hullMainRetVal[0u].WorldPosition[1] + temp_var_hullMainRetVal[0u].WorldPosition[2]) + temp_var_hullMainRetVal[1u].WorldPosition[1]) + temp_var_hullMainRetVal[1u].WorldPosition[2]) + temp_var_hullMainRetVal[2u].WorldPosition[1]) + temp_var_hullMainRetVal[2u].WorldPosition[2]) * float4(0.16666667163372039794921875); - float4 _474 = _140; - _474.x = 0.5 * (temp_var_hullMainRetVal[1u].TessellationMultiplier + temp_var_hullMainRetVal[2u].TessellationMultiplier); - float4 _480 = _474; - _480.y = 0.5 * (temp_var_hullMainRetVal[2u].TessellationMultiplier + temp_var_hullMainRetVal[0u].TessellationMultiplier); - float4 _485 = _480; - _485.z = 0.5 * (temp_var_hullMainRetVal[0u].TessellationMultiplier + temp_var_hullMainRetVal[1u].TessellationMultiplier); - float4 _492 = _485; - _492.w = 0.333000004291534423828125 * ((temp_var_hullMainRetVal[0u].TessellationMultiplier + temp_var_hullMainRetVal[1u].TessellationMultiplier) + temp_var_hullMainRetVal[2u].TessellationMultiplier); - float4 _600; - for (;;) - { - float4 _500 = View.View_ViewToClip * float4(0.0); - float4 _505 = View.View_TranslatedWorldToClip * float4(temp_var_hullMainRetVal[0u].WorldPosition[0].xyz, 1.0); - float3 _506 = _505.xyz; - float3 _507 = _500.xyz; - float _509 = _505.w; - float _510 = _500.w; - float4 _527 = View.View_TranslatedWorldToClip * float4(temp_var_hullMainRetVal[1u].WorldPosition[0].xyz, 1.0); - float3 _528 = _527.xyz; - float _530 = _527.w; - float4 _548 = View.View_TranslatedWorldToClip * float4(temp_var_hullMainRetVal[2u].WorldPosition[0].xyz, 1.0); - float3 _549 = _548.xyz; - float _551 = _548.w; - if (any((((select(int3(0), int3(1), (_506 - _507) < float3(_509 + _510)) + (int3(2) * select(int3(0), int3(1), (_506 + _507) > float3((-_509) - _510)))) | (select(int3(0), int3(1), (_528 - _507) < float3(_530 + _510)) + (int3(2) * select(int3(0), int3(1), (_528 + _507) > float3((-_530) - _510))))) | (select(int3(0), int3(1), (_549 - _507) < float3(_551 + _510)) + (int3(2) * select(int3(0), int3(1), (_549 + _507) > float3((-_551) - _510))))) != int3(3))) - { - _600 = float4(0.0); - break; - } - float3 _569 = temp_var_hullMainRetVal[0u].WorldPosition[0].xyz - temp_var_hullMainRetVal[1u].WorldPosition[0].xyz; - float3 _570 = temp_var_hullMainRetVal[1u].WorldPosition[0].xyz - temp_var_hullMainRetVal[2u].WorldPosition[0].xyz; - float3 _571 = temp_var_hullMainRetVal[2u].WorldPosition[0].xyz - temp_var_hullMainRetVal[0u].WorldPosition[0].xyz; - float3 _574 = (float3(0.5) * (temp_var_hullMainRetVal[0u].WorldPosition[0].xyz + temp_var_hullMainRetVal[1u].WorldPosition[0].xyz)) - float3(View.View_TranslatedWorldCameraOrigin); - float3 _577 = (float3(0.5) * (temp_var_hullMainRetVal[1u].WorldPosition[0].xyz + temp_var_hullMainRetVal[2u].WorldPosition[0].xyz)) - float3(View.View_TranslatedWorldCameraOrigin); - float3 _580 = (float3(0.5) * (temp_var_hullMainRetVal[2u].WorldPosition[0].xyz + temp_var_hullMainRetVal[0u].WorldPosition[0].xyz)) - float3(View.View_TranslatedWorldCameraOrigin); - float _584 = sqrt(dot(_570, _570) / dot(_577, _577)); - float _588 = sqrt(dot(_571, _571) / dot(_580, _580)); - float _592 = sqrt(dot(_569, _569) / dot(_574, _574)); - float4 _597 = float4(_584, _588, _592, 1.0); - _597.w = 0.333000004291534423828125 * ((_584 + _588) + _592); - _600 = float4(View.View_AdaptiveTessellationFactor) * _597; - break; - } - float4 _602 = fast::clamp(_492 * _600, float4(1.0), float4(15.0)); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0u] = half(_602.x); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1u] = half(_602.y); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2u] = half(_602.z); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor = half(_602.w); - patchOut.out_var_PN_POSITION9 = _461 + ((_461 - (((temp_var_hullMainRetVal[2u].WorldPosition[0] + temp_var_hullMainRetVal[1u].WorldPosition[0]) + temp_var_hullMainRetVal[0u].WorldPosition[0]) * float4(0.3333333432674407958984375))) * float4(0.5)); - } -} - diff --git a/third_party/spirv-cross/reference/shaders-ue4/asm/tesc/hs-texcoord-array.asm.tesc b/third_party/spirv-cross/reference/shaders-ue4/asm/tesc/hs-texcoord-array.asm.tesc deleted file mode 100644 index 833122cde5..0000000000 --- a/third_party/spirv-cross/reference/shaders-ue4/asm/tesc/hs-texcoord-array.asm.tesc +++ /dev/null @@ -1,411 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct FVertexFactoryInterpolantsVSToPS -{ - float4 TangentToWorld0; - float4 TangentToWorld2; - float4 Color; - spvUnsafeArray TexCoords; -}; - -struct FVertexFactoryInterpolantsVSToDS -{ - FVertexFactoryInterpolantsVSToPS InterpolantsVSToPS; -}; - -struct FHitProxyVSToDS -{ - FVertexFactoryInterpolantsVSToDS FactoryInterpolants; - float4 Position; -}; - -struct FPNTessellationHSToDS -{ - FHitProxyVSToDS PassSpecificData; - spvUnsafeArray WorldPosition; - float3 DisplacementScale; - float TessellationMultiplier; - float WorldDisplacementMultiplier; -}; - -struct type_View -{ - float4x4 View_TranslatedWorldToClip; - float4x4 View_WorldToClip; - float4x4 View_ClipToWorld; - float4x4 View_TranslatedWorldToView; - float4x4 View_ViewToTranslatedWorld; - float4x4 View_TranslatedWorldToCameraView; - float4x4 View_CameraViewToTranslatedWorld; - float4x4 View_ViewToClip; - float4x4 View_ViewToClipNoAA; - float4x4 View_ClipToView; - float4x4 View_ClipToTranslatedWorld; - float4x4 View_SVPositionToTranslatedWorld; - float4x4 View_ScreenToWorld; - float4x4 View_ScreenToTranslatedWorld; - packed_float3 View_ViewForward; - float PrePadding_View_908; - packed_float3 View_ViewUp; - float PrePadding_View_924; - packed_float3 View_ViewRight; - float PrePadding_View_940; - packed_float3 View_HMDViewNoRollUp; - float PrePadding_View_956; - packed_float3 View_HMDViewNoRollRight; - float PrePadding_View_972; - float4 View_InvDeviceZToWorldZTransform; - float4 View_ScreenPositionScaleBias; - packed_float3 View_WorldCameraOrigin; - float PrePadding_View_1020; - packed_float3 View_TranslatedWorldCameraOrigin; - float PrePadding_View_1036; - packed_float3 View_WorldViewOrigin; - float PrePadding_View_1052; - packed_float3 View_PreViewTranslation; - float PrePadding_View_1068; - float4x4 View_PrevProjection; - float4x4 View_PrevViewProj; - float4x4 View_PrevViewRotationProj; - float4x4 View_PrevViewToClip; - float4x4 View_PrevClipToView; - float4x4 View_PrevTranslatedWorldToClip; - float4x4 View_PrevTranslatedWorldToView; - float4x4 View_PrevViewToTranslatedWorld; - float4x4 View_PrevTranslatedWorldToCameraView; - float4x4 View_PrevCameraViewToTranslatedWorld; - packed_float3 View_PrevWorldCameraOrigin; - float PrePadding_View_1724; - packed_float3 View_PrevWorldViewOrigin; - float PrePadding_View_1740; - packed_float3 View_PrevPreViewTranslation; - float PrePadding_View_1756; - float4x4 View_PrevInvViewProj; - float4x4 View_PrevScreenToTranslatedWorld; - float4x4 View_ClipToPrevClip; - float4 View_TemporalAAJitter; - float4 View_GlobalClippingPlane; - float2 View_FieldOfViewWideAngles; - float2 View_PrevFieldOfViewWideAngles; - float4 View_ViewRectMin; - float4 View_ViewSizeAndInvSize; - float4 View_BufferSizeAndInvSize; - float4 View_BufferBilinearUVMinMax; - int View_NumSceneColorMSAASamples; - float View_PreExposure; - float View_OneOverPreExposure; - float PrePadding_View_2076; - float4 View_DiffuseOverrideParameter; - float4 View_SpecularOverrideParameter; - float4 View_NormalOverrideParameter; - float2 View_RoughnessOverrideParameter; - float View_PrevFrameGameTime; - float View_PrevFrameRealTime; - float View_OutOfBoundsMask; - float PrePadding_View_2148; - float PrePadding_View_2152; - float PrePadding_View_2156; - packed_float3 View_WorldCameraMovementSinceLastFrame; - float View_CullingSign; - float View_NearPlane; - float View_AdaptiveTessellationFactor; - float View_GameTime; - float View_RealTime; - float View_DeltaTime; - float View_MaterialTextureMipBias; - float View_MaterialTextureDerivativeMultiply; - uint View_Random; - uint View_FrameNumber; - uint View_StateFrameIndexMod8; - uint View_StateFrameIndex; - float View_CameraCut; - float View_UnlitViewmodeMask; - float PrePadding_View_2228; - float PrePadding_View_2232; - float PrePadding_View_2236; - float4 View_DirectionalLightColor; - packed_float3 View_DirectionalLightDirection; - float PrePadding_View_2268; - float4 View_TranslucencyLightingVolumeMin[2]; - float4 View_TranslucencyLightingVolumeInvSize[2]; - float4 View_TemporalAAParams; - float4 View_CircleDOFParams; - float View_DepthOfFieldSensorWidth; - float View_DepthOfFieldFocalDistance; - float View_DepthOfFieldScale; - float View_DepthOfFieldFocalLength; - float View_DepthOfFieldFocalRegion; - float View_DepthOfFieldNearTransitionRegion; - float View_DepthOfFieldFarTransitionRegion; - float View_MotionBlurNormalizedToPixel; - float View_bSubsurfacePostprocessEnabled; - float View_GeneralPurposeTweak; - float View_DemosaicVposOffset; - float PrePadding_View_2412; - packed_float3 View_IndirectLightingColorScale; - float View_HDR32bppEncodingMode; - packed_float3 View_AtmosphericFogSunDirection; - float View_AtmosphericFogSunPower; - float View_AtmosphericFogPower; - float View_AtmosphericFogDensityScale; - float View_AtmosphericFogDensityOffset; - float View_AtmosphericFogGroundOffset; - float View_AtmosphericFogDistanceScale; - float View_AtmosphericFogAltitudeScale; - float View_AtmosphericFogHeightScaleRayleigh; - float View_AtmosphericFogStartDistance; - float View_AtmosphericFogDistanceOffset; - float View_AtmosphericFogSunDiscScale; - float View_AtmosphericFogSunDiscHalfApexAngleRadian; - float PrePadding_View_2492; - float4 View_AtmosphericFogSunDiscLuminance; - uint View_AtmosphericFogRenderMask; - uint View_AtmosphericFogInscatterAltitudeSampleNum; - uint PrePadding_View_2520; - uint PrePadding_View_2524; - float4 View_AtmosphericFogSunColor; - packed_float3 View_NormalCurvatureToRoughnessScaleBias; - float View_RenderingReflectionCaptureMask; - float4 View_AmbientCubemapTint; - float View_AmbientCubemapIntensity; - float View_SkyLightParameters; - float PrePadding_View_2584; - float PrePadding_View_2588; - float4 View_SkyLightColor; - float4 View_SkyIrradianceEnvironmentMap[7]; - float View_MobilePreviewMode; - float View_HMDEyePaddingOffset; - float View_ReflectionCubemapMaxMip; - float View_ShowDecalsMask; - uint View_DistanceFieldAOSpecularOcclusionMode; - float View_IndirectCapsuleSelfShadowingIntensity; - float PrePadding_View_2744; - float PrePadding_View_2748; - packed_float3 View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight; - int View_StereoPassIndex; - float4 View_GlobalVolumeCenterAndExtent[4]; - float4 View_GlobalVolumeWorldToUVAddAndMul[4]; - float View_GlobalVolumeDimension; - float View_GlobalVolumeTexelSize; - float View_MaxGlobalDistance; - float PrePadding_View_2908; - int2 View_CursorPosition; - float View_bCheckerboardSubsurfaceProfileRendering; - float PrePadding_View_2924; - packed_float3 View_VolumetricFogInvGridSize; - float PrePadding_View_2940; - packed_float3 View_VolumetricFogGridZParams; - float PrePadding_View_2956; - float2 View_VolumetricFogSVPosToVolumeUV; - float View_VolumetricFogMaxDistance; - float PrePadding_View_2972; - packed_float3 View_VolumetricLightmapWorldToUVScale; - float PrePadding_View_2988; - packed_float3 View_VolumetricLightmapWorldToUVAdd; - float PrePadding_View_3004; - packed_float3 View_VolumetricLightmapIndirectionTextureSize; - float View_VolumetricLightmapBrickSize; - packed_float3 View_VolumetricLightmapBrickTexelSize; - float View_StereoIPD; - float View_IndirectLightingCacheShowFlag; - float View_EyeToPixelSpreadAngle; -}; - -struct type_Primitive -{ - float4x4 Primitive_LocalToWorld; - float4 Primitive_InvNonUniformScaleAndDeterminantSign; - float4 Primitive_ObjectWorldPositionAndRadius; - float4x4 Primitive_WorldToLocal; - float4x4 Primitive_PreviousLocalToWorld; - float4x4 Primitive_PreviousWorldToLocal; - packed_float3 Primitive_ActorWorldPosition; - float Primitive_UseSingleSampleShadowFromStationaryLights; - packed_float3 Primitive_ObjectBounds; - float Primitive_LpvBiasMultiplier; - float Primitive_DecalReceiverMask; - float Primitive_PerObjectGBufferData; - float Primitive_UseVolumetricLightmapShadowFromStationaryLights; - float Primitive_DrawsVelocity; - float4 Primitive_ObjectOrientation; - float4 Primitive_NonUniformScale; - packed_float3 Primitive_LocalObjectBoundsMin; - uint Primitive_LightingChannelMask; - packed_float3 Primitive_LocalObjectBoundsMax; - uint Primitive_LightmapDataIndex; - packed_float3 Primitive_PreSkinnedLocalBounds; - int Primitive_SingleCaptureIndex; - uint Primitive_OutputVelocity; - uint PrePadding_Primitive_420; - uint PrePadding_Primitive_424; - uint PrePadding_Primitive_428; - float4 Primitive_CustomPrimitiveData[4]; -}; - -constant float4 _127 = {}; - -struct main0_out -{ - float4 out_var_COLOR0; - float3 out_var_PN_DisplacementScales; - spvUnsafeArray out_var_PN_POSITION; - float out_var_PN_TessellationMultiplier; - float out_var_PN_WorldDisplacementMultiplier; - spvUnsafeArray out_var_TEXCOORD0; - float4 out_var_TEXCOORD10_centroid; - float4 out_var_TEXCOORD11_centroid; - float4 out_var_VS_To_DS_Position; -}; - -struct main0_patchOut -{ - float4 out_var_PN_POSITION9; -}; - -struct main0_in -{ - float4 in_var_TEXCOORD10_centroid [[attribute(0)]]; - float4 in_var_TEXCOORD11_centroid [[attribute(1)]]; - float4 in_var_COLOR0 [[attribute(2)]]; - float2 in_var_TEXCOORD0_0 [[attribute(3)]]; - float2 in_var_TEXCOORD0_1 [[attribute(4)]]; - float4 in_var_VS_To_DS_Position [[attribute(5)]]; -}; - -kernel void main0(main0_in in [[stage_in]], constant type_View& View [[buffer(0)]], constant type_Primitive& Primitive [[buffer(1)]], uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device main0_patchOut* spvPatchOut [[buffer(27)]], device MTLTriangleTessellationFactorsHalf* spvTessLevel [[buffer(26)]], threadgroup main0_in* gl_in [[threadgroup(0)]]) -{ - threadgroup FPNTessellationHSToDS temp_var_hullMainRetVal[3]; - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 3]; - device main0_patchOut& patchOut = spvPatchOut[gl_PrimitiveID]; - if (gl_InvocationID < spvIndirectParams[0]) - gl_in[gl_InvocationID] = in; - threadgroup_barrier(mem_flags::mem_threadgroup); - if (gl_InvocationID >= 3) - return; - spvUnsafeArray _129 = spvUnsafeArray({ gl_in[0].in_var_TEXCOORD10_centroid, gl_in[1].in_var_TEXCOORD10_centroid, gl_in[2].in_var_TEXCOORD10_centroid, gl_in[3].in_var_TEXCOORD10_centroid, gl_in[4].in_var_TEXCOORD10_centroid, gl_in[5].in_var_TEXCOORD10_centroid, gl_in[6].in_var_TEXCOORD10_centroid, gl_in[7].in_var_TEXCOORD10_centroid, gl_in[8].in_var_TEXCOORD10_centroid, gl_in[9].in_var_TEXCOORD10_centroid, gl_in[10].in_var_TEXCOORD10_centroid, gl_in[11].in_var_TEXCOORD10_centroid }); - spvUnsafeArray _130 = spvUnsafeArray({ gl_in[0].in_var_TEXCOORD11_centroid, gl_in[1].in_var_TEXCOORD11_centroid, gl_in[2].in_var_TEXCOORD11_centroid, gl_in[3].in_var_TEXCOORD11_centroid, gl_in[4].in_var_TEXCOORD11_centroid, gl_in[5].in_var_TEXCOORD11_centroid, gl_in[6].in_var_TEXCOORD11_centroid, gl_in[7].in_var_TEXCOORD11_centroid, gl_in[8].in_var_TEXCOORD11_centroid, gl_in[9].in_var_TEXCOORD11_centroid, gl_in[10].in_var_TEXCOORD11_centroid, gl_in[11].in_var_TEXCOORD11_centroid }); - spvUnsafeArray _131 = spvUnsafeArray({ gl_in[0].in_var_COLOR0, gl_in[1].in_var_COLOR0, gl_in[2].in_var_COLOR0, gl_in[3].in_var_COLOR0, gl_in[4].in_var_COLOR0, gl_in[5].in_var_COLOR0, gl_in[6].in_var_COLOR0, gl_in[7].in_var_COLOR0, gl_in[8].in_var_COLOR0, gl_in[9].in_var_COLOR0, gl_in[10].in_var_COLOR0, gl_in[11].in_var_COLOR0 }); - spvUnsafeArray, 12> _132 = spvUnsafeArray, 12>({ spvUnsafeArray({ gl_in[0].in_var_TEXCOORD0_0, gl_in[0].in_var_TEXCOORD0_1 }), spvUnsafeArray({ gl_in[1].in_var_TEXCOORD0_0, gl_in[1].in_var_TEXCOORD0_1 }), spvUnsafeArray({ gl_in[2].in_var_TEXCOORD0_0, gl_in[2].in_var_TEXCOORD0_1 }), spvUnsafeArray({ gl_in[3].in_var_TEXCOORD0_0, gl_in[3].in_var_TEXCOORD0_1 }), spvUnsafeArray({ gl_in[4].in_var_TEXCOORD0_0, gl_in[4].in_var_TEXCOORD0_1 }), spvUnsafeArray({ gl_in[5].in_var_TEXCOORD0_0, gl_in[5].in_var_TEXCOORD0_1 }), spvUnsafeArray({ gl_in[6].in_var_TEXCOORD0_0, gl_in[6].in_var_TEXCOORD0_1 }), spvUnsafeArray({ gl_in[7].in_var_TEXCOORD0_0, gl_in[7].in_var_TEXCOORD0_1 }), spvUnsafeArray({ gl_in[8].in_var_TEXCOORD0_0, gl_in[8].in_var_TEXCOORD0_1 }), spvUnsafeArray({ gl_in[9].in_var_TEXCOORD0_0, gl_in[9].in_var_TEXCOORD0_1 }), spvUnsafeArray({ gl_in[10].in_var_TEXCOORD0_0, gl_in[10].in_var_TEXCOORD0_1 }), spvUnsafeArray({ gl_in[11].in_var_TEXCOORD0_0, gl_in[11].in_var_TEXCOORD0_1 }) }); - spvUnsafeArray _205 = spvUnsafeArray({ gl_in[0].in_var_VS_To_DS_Position, gl_in[1].in_var_VS_To_DS_Position, gl_in[2].in_var_VS_To_DS_Position, gl_in[3].in_var_VS_To_DS_Position, gl_in[4].in_var_VS_To_DS_Position, gl_in[5].in_var_VS_To_DS_Position, gl_in[6].in_var_VS_To_DS_Position, gl_in[7].in_var_VS_To_DS_Position, gl_in[8].in_var_VS_To_DS_Position, gl_in[9].in_var_VS_To_DS_Position, gl_in[10].in_var_VS_To_DS_Position, gl_in[11].in_var_VS_To_DS_Position }); - spvUnsafeArray _230 = spvUnsafeArray({ FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _129[0], _130[0], _131[0], _132[0] } }, _205[0] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _129[1], _130[1], _131[1], _132[1] } }, _205[1] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _129[2], _130[2], _131[2], _132[2] } }, _205[2] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _129[3], _130[3], _131[3], _132[3] } }, _205[3] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _129[4], _130[4], _131[4], _132[4] } }, _205[4] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _129[5], _130[5], _131[5], _132[5] } }, _205[5] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _129[6], _130[6], _131[6], _132[6] } }, _205[6] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _129[7], _130[7], _131[7], _132[7] } }, _205[7] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _129[8], _130[8], _131[8], _132[8] } }, _205[8] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _129[9], _130[9], _131[9], _132[9] } }, _205[9] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _129[10], _130[10], _131[10], _132[10] } }, _205[10] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _129[11], _130[11], _131[11], _132[11] } }, _205[11] } }); - spvUnsafeArray param_var_I; - param_var_I = _230; - float4 _247 = float4(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0); - float3 _251 = Primitive.Primitive_NonUniformScale.xyz * float3x3(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0.xyz, cross(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0.xyz) * float3(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.w), param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz); - uint _254 = (gl_InvocationID < 2u) ? (gl_InvocationID + 1u) : 0u; - uint _255 = 2u * gl_InvocationID; - uint _256 = 3u + _255; - uint _257 = _255 + 4u; - float4 _269 = float4(param_var_I[_254].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0); - float4 _277 = float4(param_var_I[_256].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0); - float4 _285 = float4(param_var_I[_257].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0); - spvUnsafeArray _333 = spvUnsafeArray({ param_var_I[gl_InvocationID].Position, (((((float4(2.0) * param_var_I[gl_InvocationID].Position) + param_var_I[_254].Position) - (float4(dot(param_var_I[_254].Position - param_var_I[gl_InvocationID].Position, _247)) * _247)) * float4(0.3333333432674407958984375)) + ((((float4(2.0) * param_var_I[_256].Position) + param_var_I[_257].Position) - (float4(dot(param_var_I[_257].Position - param_var_I[_256].Position, _277)) * _277)) * float4(0.3333333432674407958984375))) * float4(0.5), (((((float4(2.0) * param_var_I[_254].Position) + param_var_I[gl_InvocationID].Position) - (float4(dot(param_var_I[gl_InvocationID].Position - param_var_I[_254].Position, _269)) * _269)) * float4(0.3333333432674407958984375)) + ((((float4(2.0) * param_var_I[_257].Position) + param_var_I[_256].Position) - (float4(dot(param_var_I[_256].Position - param_var_I[_257].Position, _285)) * _285)) * float4(0.3333333432674407958984375))) * float4(0.5) }); - gl_out[gl_InvocationID].out_var_TEXCOORD10_centroid = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0; - gl_out[gl_InvocationID].out_var_TEXCOORD11_centroid = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2; - gl_out[gl_InvocationID].out_var_COLOR0 = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.Color; - gl_out[gl_InvocationID].out_var_TEXCOORD0 = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TexCoords; - gl_out[gl_InvocationID].out_var_VS_To_DS_Position = param_var_I[gl_InvocationID].Position; - gl_out[gl_InvocationID].out_var_PN_POSITION = _333; - gl_out[gl_InvocationID].out_var_PN_DisplacementScales = _251; - gl_out[gl_InvocationID].out_var_PN_TessellationMultiplier = 1.0; - gl_out[gl_InvocationID].out_var_PN_WorldDisplacementMultiplier = 1.0; - temp_var_hullMainRetVal[gl_InvocationID] = FPNTessellationHSToDS{ param_var_I[gl_InvocationID], _333, _251, 1.0, 1.0 }; - threadgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup); - if (gl_InvocationID == 0u) - { - float4 _385 = (((((temp_var_hullMainRetVal[0u].WorldPosition[1] + temp_var_hullMainRetVal[0u].WorldPosition[2]) + temp_var_hullMainRetVal[1u].WorldPosition[1]) + temp_var_hullMainRetVal[1u].WorldPosition[2]) + temp_var_hullMainRetVal[2u].WorldPosition[1]) + temp_var_hullMainRetVal[2u].WorldPosition[2]) * float4(0.16666667163372039794921875); - float4 _398 = _127; - _398.x = 0.5 * (temp_var_hullMainRetVal[1u].TessellationMultiplier + temp_var_hullMainRetVal[2u].TessellationMultiplier); - float4 _404 = _398; - _404.y = 0.5 * (temp_var_hullMainRetVal[2u].TessellationMultiplier + temp_var_hullMainRetVal[0u].TessellationMultiplier); - float4 _409 = _404; - _409.z = 0.5 * (temp_var_hullMainRetVal[0u].TessellationMultiplier + temp_var_hullMainRetVal[1u].TessellationMultiplier); - float4 _416 = _409; - _416.w = 0.333000004291534423828125 * ((temp_var_hullMainRetVal[0u].TessellationMultiplier + temp_var_hullMainRetVal[1u].TessellationMultiplier) + temp_var_hullMainRetVal[2u].TessellationMultiplier); - float4 _524; - for (;;) - { - float4 _424 = View.View_ViewToClip * float4(0.0); - float4 _429 = View.View_TranslatedWorldToClip * float4(temp_var_hullMainRetVal[0u].WorldPosition[0].xyz, 1.0); - float3 _430 = _429.xyz; - float3 _431 = _424.xyz; - float _433 = _429.w; - float _434 = _424.w; - float4 _451 = View.View_TranslatedWorldToClip * float4(temp_var_hullMainRetVal[1u].WorldPosition[0].xyz, 1.0); - float3 _452 = _451.xyz; - float _454 = _451.w; - float4 _472 = View.View_TranslatedWorldToClip * float4(temp_var_hullMainRetVal[2u].WorldPosition[0].xyz, 1.0); - float3 _473 = _472.xyz; - float _475 = _472.w; - if (any((((select(int3(0), int3(1), (_430 - _431) < float3(_433 + _434)) + (int3(2) * select(int3(0), int3(1), (_430 + _431) > float3((-_433) - _434)))) | (select(int3(0), int3(1), (_452 - _431) < float3(_454 + _434)) + (int3(2) * select(int3(0), int3(1), (_452 + _431) > float3((-_454) - _434))))) | (select(int3(0), int3(1), (_473 - _431) < float3(_475 + _434)) + (int3(2) * select(int3(0), int3(1), (_473 + _431) > float3((-_475) - _434))))) != int3(3))) - { - _524 = float4(0.0); - break; - } - float3 _493 = temp_var_hullMainRetVal[0u].WorldPosition[0].xyz - temp_var_hullMainRetVal[1u].WorldPosition[0].xyz; - float3 _494 = temp_var_hullMainRetVal[1u].WorldPosition[0].xyz - temp_var_hullMainRetVal[2u].WorldPosition[0].xyz; - float3 _495 = temp_var_hullMainRetVal[2u].WorldPosition[0].xyz - temp_var_hullMainRetVal[0u].WorldPosition[0].xyz; - float3 _498 = (float3(0.5) * (temp_var_hullMainRetVal[0u].WorldPosition[0].xyz + temp_var_hullMainRetVal[1u].WorldPosition[0].xyz)) - float3(View.View_TranslatedWorldCameraOrigin); - float3 _501 = (float3(0.5) * (temp_var_hullMainRetVal[1u].WorldPosition[0].xyz + temp_var_hullMainRetVal[2u].WorldPosition[0].xyz)) - float3(View.View_TranslatedWorldCameraOrigin); - float3 _504 = (float3(0.5) * (temp_var_hullMainRetVal[2u].WorldPosition[0].xyz + temp_var_hullMainRetVal[0u].WorldPosition[0].xyz)) - float3(View.View_TranslatedWorldCameraOrigin); - float _508 = sqrt(dot(_494, _494) / dot(_501, _501)); - float _512 = sqrt(dot(_495, _495) / dot(_504, _504)); - float _516 = sqrt(dot(_493, _493) / dot(_498, _498)); - float4 _521 = float4(_508, _512, _516, 1.0); - _521.w = 0.333000004291534423828125 * ((_508 + _512) + _516); - _524 = float4(View.View_AdaptiveTessellationFactor) * _521; - break; - } - float4 _526 = fast::clamp(_416 * _524, float4(1.0), float4(15.0)); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0u] = half(_526.x); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1u] = half(_526.y); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2u] = half(_526.z); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor = half(_526.w); - patchOut.out_var_PN_POSITION9 = _385 + ((_385 - (((temp_var_hullMainRetVal[2u].WorldPosition[0] + temp_var_hullMainRetVal[1u].WorldPosition[0]) + temp_var_hullMainRetVal[0u].WorldPosition[0]) * float4(0.3333333432674407958984375))) * float4(0.5)); - } -} - diff --git a/third_party/spirv-cross/reference/shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.asm.tesc b/third_party/spirv-cross/reference/shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.asm.tesc deleted file mode 100644 index 04f5a1d384..0000000000 --- a/third_party/spirv-cross/reference/shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.asm.tesc +++ /dev/null @@ -1,178 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct FVertexFactoryInterpolantsVSToPS -{ - float4 TangentToWorld0; - float4 TangentToWorld2; -}; - -struct FVertexFactoryInterpolantsVSToDS -{ - FVertexFactoryInterpolantsVSToPS InterpolantsVSToPS; -}; - -struct FSharedBasePassInterpolants -{ -}; -struct FBasePassInterpolantsVSToDS -{ - FSharedBasePassInterpolants _m0; -}; - -struct FBasePassVSToDS -{ - FVertexFactoryInterpolantsVSToDS FactoryInterpolants; - FBasePassInterpolantsVSToDS BasePassInterpolants; - float4 Position; -}; - -struct FFlatTessellationHSToDS -{ - FBasePassVSToDS PassSpecificData; - float3 DisplacementScale; - float TessellationMultiplier; - float WorldDisplacementMultiplier; -}; - -struct type_Primitive -{ - float4x4 Primitive_LocalToWorld; - float4 Primitive_InvNonUniformScaleAndDeterminantSign; - float4 Primitive_ObjectWorldPositionAndRadius; - float4x4 Primitive_WorldToLocal; - float4x4 Primitive_PreviousLocalToWorld; - float4x4 Primitive_PreviousWorldToLocal; - packed_float3 Primitive_ActorWorldPosition; - float Primitive_UseSingleSampleShadowFromStationaryLights; - packed_float3 Primitive_ObjectBounds; - float Primitive_LpvBiasMultiplier; - float Primitive_DecalReceiverMask; - float Primitive_PerObjectGBufferData; - float Primitive_UseVolumetricLightmapShadowFromStationaryLights; - float Primitive_DrawsVelocity; - float4 Primitive_ObjectOrientation; - float4 Primitive_NonUniformScale; - packed_float3 Primitive_LocalObjectBoundsMin; - uint Primitive_LightingChannelMask; - packed_float3 Primitive_LocalObjectBoundsMax; - uint Primitive_LightmapDataIndex; - packed_float3 Primitive_PreSkinnedLocalBounds; - int Primitive_SingleCaptureIndex; - uint Primitive_OutputVelocity; - uint PrePadding_Primitive_420; - uint PrePadding_Primitive_424; - uint PrePadding_Primitive_428; - float4 Primitive_CustomPrimitiveData[4]; -}; - -struct type_Material -{ - float4 Material_VectorExpressions[3]; - float4 Material_ScalarExpressions[1]; -}; - -constant float4 _88 = {}; - -struct main0_out -{ - float3 out_var_Flat_DisplacementScales; - float out_var_Flat_TessellationMultiplier; - float out_var_Flat_WorldDisplacementMultiplier; - float4 out_var_TEXCOORD10_centroid; - float4 out_var_TEXCOORD11_centroid; - float4 out_var_VS_To_DS_Position; -}; - -struct main0_in -{ - float4 in_var_TEXCOORD10_centroid [[attribute(0)]]; - float4 in_var_TEXCOORD11_centroid [[attribute(1)]]; - float4 in_var_VS_To_DS_Position [[attribute(2)]]; -}; - -kernel void main0(main0_in in [[stage_in]], constant type_Primitive& Primitive [[buffer(0)]], constant type_Material& Material [[buffer(1)]], uint gl_InvocationID [[thread_index_in_threadgroup]], uint gl_PrimitiveID [[threadgroup_position_in_grid]], device main0_out* spvOut [[buffer(28)]], constant uint* spvIndirectParams [[buffer(29)]], device MTLTriangleTessellationFactorsHalf* spvTessLevel [[buffer(26)]], threadgroup main0_in* gl_in [[threadgroup(0)]]) -{ - threadgroup FFlatTessellationHSToDS temp_var_hullMainRetVal[3]; - device main0_out* gl_out = &spvOut[gl_PrimitiveID * 3]; - if (gl_InvocationID < spvIndirectParams[0]) - gl_in[gl_InvocationID] = in; - threadgroup_barrier(mem_flags::mem_threadgroup); - if (gl_InvocationID >= 3) - return; - spvUnsafeArray _90 = spvUnsafeArray({ gl_in[0].in_var_TEXCOORD10_centroid, gl_in[1].in_var_TEXCOORD10_centroid, gl_in[2].in_var_TEXCOORD10_centroid }); - spvUnsafeArray _91 = spvUnsafeArray({ gl_in[0].in_var_TEXCOORD11_centroid, gl_in[1].in_var_TEXCOORD11_centroid, gl_in[2].in_var_TEXCOORD11_centroid }); - spvUnsafeArray _104 = spvUnsafeArray({ gl_in[0].in_var_VS_To_DS_Position, gl_in[1].in_var_VS_To_DS_Position, gl_in[2].in_var_VS_To_DS_Position }); - spvUnsafeArray _111 = spvUnsafeArray({ FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _90[0], _91[0] } }, FBasePassInterpolantsVSToDS{ { } }, _104[0] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _90[1], _91[1] } }, FBasePassInterpolantsVSToDS{ { } }, _104[1] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _90[2], _91[2] } }, FBasePassInterpolantsVSToDS{ { } }, _104[2] } }); - spvUnsafeArray param_var_I; - param_var_I = _111; - float3 _128 = Primitive.Primitive_NonUniformScale.xyz * float3x3(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0.xyz, cross(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0.xyz) * float3(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.w), param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz); - gl_out[gl_InvocationID].out_var_TEXCOORD10_centroid = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0; - gl_out[gl_InvocationID].out_var_TEXCOORD11_centroid = param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2; - gl_out[gl_InvocationID].out_var_VS_To_DS_Position = param_var_I[gl_InvocationID].Position; - gl_out[gl_InvocationID].out_var_Flat_DisplacementScales = _128; - gl_out[gl_InvocationID].out_var_Flat_TessellationMultiplier = Material.Material_ScalarExpressions[0].x; - gl_out[gl_InvocationID].out_var_Flat_WorldDisplacementMultiplier = 1.0; - temp_var_hullMainRetVal[gl_InvocationID] = FFlatTessellationHSToDS{ param_var_I[gl_InvocationID], _128, Material.Material_ScalarExpressions[0].x, 1.0 }; - threadgroup_barrier(mem_flags::mem_device | mem_flags::mem_threadgroup); - if (gl_InvocationID == 0u) - { - float4 _154 = _88; - _154.x = 0.5 * (temp_var_hullMainRetVal[1u].TessellationMultiplier + temp_var_hullMainRetVal[2u].TessellationMultiplier); - float4 _160 = _154; - _160.y = 0.5 * (temp_var_hullMainRetVal[2u].TessellationMultiplier + temp_var_hullMainRetVal[0u].TessellationMultiplier); - float4 _165 = _160; - _165.z = 0.5 * (temp_var_hullMainRetVal[0u].TessellationMultiplier + temp_var_hullMainRetVal[1u].TessellationMultiplier); - float4 _172 = _165; - _172.w = 0.333000004291534423828125 * ((temp_var_hullMainRetVal[0u].TessellationMultiplier + temp_var_hullMainRetVal[1u].TessellationMultiplier) + temp_var_hullMainRetVal[2u].TessellationMultiplier); - float4 _173 = fast::clamp(_172, float4(1.0), float4(15.0)); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[0u] = half(_173.x); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[1u] = half(_173.y); - spvTessLevel[gl_PrimitiveID].edgeTessellationFactor[2u] = half(_173.z); - spvTessLevel[gl_PrimitiveID].insideTessellationFactor = half(_173.w); - } -} - diff --git a/third_party/spirv-cross/reference/shaders-ue4/asm/tese/ds-double-gl-in-deref.asm.tese b/third_party/spirv-cross/reference/shaders-ue4/asm/tese/ds-double-gl-in-deref.asm.tese deleted file mode 100644 index b2e5eccac2..0000000000 --- a/third_party/spirv-cross/reference/shaders-ue4/asm/tese/ds-double-gl-in-deref.asm.tese +++ /dev/null @@ -1,420 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct type_View -{ - float4x4 View_TranslatedWorldToClip; - float4x4 View_WorldToClip; - float4x4 View_ClipToWorld; - float4x4 View_TranslatedWorldToView; - float4x4 View_ViewToTranslatedWorld; - float4x4 View_TranslatedWorldToCameraView; - float4x4 View_CameraViewToTranslatedWorld; - float4x4 View_ViewToClip; - float4x4 View_ViewToClipNoAA; - float4x4 View_ClipToView; - float4x4 View_ClipToTranslatedWorld; - float4x4 View_SVPositionToTranslatedWorld; - float4x4 View_ScreenToWorld; - float4x4 View_ScreenToTranslatedWorld; - packed_float3 View_ViewForward; - float PrePadding_View_908; - packed_float3 View_ViewUp; - float PrePadding_View_924; - packed_float3 View_ViewRight; - float PrePadding_View_940; - packed_float3 View_HMDViewNoRollUp; - float PrePadding_View_956; - packed_float3 View_HMDViewNoRollRight; - float PrePadding_View_972; - float4 View_InvDeviceZToWorldZTransform; - float4 View_ScreenPositionScaleBias; - packed_float3 View_WorldCameraOrigin; - float PrePadding_View_1020; - packed_float3 View_TranslatedWorldCameraOrigin; - float PrePadding_View_1036; - packed_float3 View_WorldViewOrigin; - float PrePadding_View_1052; - packed_float3 View_PreViewTranslation; - float PrePadding_View_1068; - float4x4 View_PrevProjection; - float4x4 View_PrevViewProj; - float4x4 View_PrevViewRotationProj; - float4x4 View_PrevViewToClip; - float4x4 View_PrevClipToView; - float4x4 View_PrevTranslatedWorldToClip; - float4x4 View_PrevTranslatedWorldToView; - float4x4 View_PrevViewToTranslatedWorld; - float4x4 View_PrevTranslatedWorldToCameraView; - float4x4 View_PrevCameraViewToTranslatedWorld; - packed_float3 View_PrevWorldCameraOrigin; - float PrePadding_View_1724; - packed_float3 View_PrevWorldViewOrigin; - float PrePadding_View_1740; - packed_float3 View_PrevPreViewTranslation; - float PrePadding_View_1756; - float4x4 View_PrevInvViewProj; - float4x4 View_PrevScreenToTranslatedWorld; - float4x4 View_ClipToPrevClip; - float4 View_TemporalAAJitter; - float4 View_GlobalClippingPlane; - float2 View_FieldOfViewWideAngles; - float2 View_PrevFieldOfViewWideAngles; - float4 View_ViewRectMin; - float4 View_ViewSizeAndInvSize; - float4 View_BufferSizeAndInvSize; - float4 View_BufferBilinearUVMinMax; - int View_NumSceneColorMSAASamples; - float View_PreExposure; - float View_OneOverPreExposure; - float PrePadding_View_2076; - float4 View_DiffuseOverrideParameter; - float4 View_SpecularOverrideParameter; - float4 View_NormalOverrideParameter; - float2 View_RoughnessOverrideParameter; - float View_PrevFrameGameTime; - float View_PrevFrameRealTime; - float View_OutOfBoundsMask; - float PrePadding_View_2148; - float PrePadding_View_2152; - float PrePadding_View_2156; - packed_float3 View_WorldCameraMovementSinceLastFrame; - float View_CullingSign; - float View_NearPlane; - float View_AdaptiveTessellationFactor; - float View_GameTime; - float View_RealTime; - float View_DeltaTime; - float View_MaterialTextureMipBias; - float View_MaterialTextureDerivativeMultiply; - uint View_Random; - uint View_FrameNumber; - uint View_StateFrameIndexMod8; - uint View_StateFrameIndex; - float View_CameraCut; - float View_UnlitViewmodeMask; - float PrePadding_View_2228; - float PrePadding_View_2232; - float PrePadding_View_2236; - float4 View_DirectionalLightColor; - packed_float3 View_DirectionalLightDirection; - float PrePadding_View_2268; - float4 View_TranslucencyLightingVolumeMin[2]; - float4 View_TranslucencyLightingVolumeInvSize[2]; - float4 View_TemporalAAParams; - float4 View_CircleDOFParams; - float View_DepthOfFieldSensorWidth; - float View_DepthOfFieldFocalDistance; - float View_DepthOfFieldScale; - float View_DepthOfFieldFocalLength; - float View_DepthOfFieldFocalRegion; - float View_DepthOfFieldNearTransitionRegion; - float View_DepthOfFieldFarTransitionRegion; - float View_MotionBlurNormalizedToPixel; - float View_bSubsurfacePostprocessEnabled; - float View_GeneralPurposeTweak; - float View_DemosaicVposOffset; - float PrePadding_View_2412; - packed_float3 View_IndirectLightingColorScale; - float View_HDR32bppEncodingMode; - packed_float3 View_AtmosphericFogSunDirection; - float View_AtmosphericFogSunPower; - float View_AtmosphericFogPower; - float View_AtmosphericFogDensityScale; - float View_AtmosphericFogDensityOffset; - float View_AtmosphericFogGroundOffset; - float View_AtmosphericFogDistanceScale; - float View_AtmosphericFogAltitudeScale; - float View_AtmosphericFogHeightScaleRayleigh; - float View_AtmosphericFogStartDistance; - float View_AtmosphericFogDistanceOffset; - float View_AtmosphericFogSunDiscScale; - float View_AtmosphericFogSunDiscHalfApexAngleRadian; - float PrePadding_View_2492; - float4 View_AtmosphericFogSunDiscLuminance; - uint View_AtmosphericFogRenderMask; - uint View_AtmosphericFogInscatterAltitudeSampleNum; - uint PrePadding_View_2520; - uint PrePadding_View_2524; - float4 View_AtmosphericFogSunColor; - packed_float3 View_NormalCurvatureToRoughnessScaleBias; - float View_RenderingReflectionCaptureMask; - float4 View_AmbientCubemapTint; - float View_AmbientCubemapIntensity; - float View_SkyLightParameters; - float PrePadding_View_2584; - float PrePadding_View_2588; - float4 View_SkyLightColor; - float4 View_SkyIrradianceEnvironmentMap[7]; - float View_MobilePreviewMode; - float View_HMDEyePaddingOffset; - float View_ReflectionCubemapMaxMip; - float View_ShowDecalsMask; - uint View_DistanceFieldAOSpecularOcclusionMode; - float View_IndirectCapsuleSelfShadowingIntensity; - float PrePadding_View_2744; - float PrePadding_View_2748; - packed_float3 View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight; - int View_StereoPassIndex; - float4 View_GlobalVolumeCenterAndExtent[4]; - float4 View_GlobalVolumeWorldToUVAddAndMul[4]; - float View_GlobalVolumeDimension; - float View_GlobalVolumeTexelSize; - float View_MaxGlobalDistance; - float PrePadding_View_2908; - int2 View_CursorPosition; - float View_bCheckerboardSubsurfaceProfileRendering; - float PrePadding_View_2924; - packed_float3 View_VolumetricFogInvGridSize; - float PrePadding_View_2940; - packed_float3 View_VolumetricFogGridZParams; - float PrePadding_View_2956; - float2 View_VolumetricFogSVPosToVolumeUV; - float View_VolumetricFogMaxDistance; - float PrePadding_View_2972; - packed_float3 View_VolumetricLightmapWorldToUVScale; - float PrePadding_View_2988; - packed_float3 View_VolumetricLightmapWorldToUVAdd; - float PrePadding_View_3004; - packed_float3 View_VolumetricLightmapIndirectionTextureSize; - float View_VolumetricLightmapBrickSize; - packed_float3 View_VolumetricLightmapBrickTexelSize; - float View_StereoIPD; - float View_IndirectLightingCacheShowFlag; - float View_EyeToPixelSpreadAngle; -}; - -struct type_ShadowDepthPass -{ - float PrePadding_ShadowDepthPass_LPV_0; - float PrePadding_ShadowDepthPass_LPV_4; - float PrePadding_ShadowDepthPass_LPV_8; - float PrePadding_ShadowDepthPass_LPV_12; - float PrePadding_ShadowDepthPass_LPV_16; - float PrePadding_ShadowDepthPass_LPV_20; - float PrePadding_ShadowDepthPass_LPV_24; - float PrePadding_ShadowDepthPass_LPV_28; - float PrePadding_ShadowDepthPass_LPV_32; - float PrePadding_ShadowDepthPass_LPV_36; - float PrePadding_ShadowDepthPass_LPV_40; - float PrePadding_ShadowDepthPass_LPV_44; - float PrePadding_ShadowDepthPass_LPV_48; - float PrePadding_ShadowDepthPass_LPV_52; - float PrePadding_ShadowDepthPass_LPV_56; - float PrePadding_ShadowDepthPass_LPV_60; - float PrePadding_ShadowDepthPass_LPV_64; - float PrePadding_ShadowDepthPass_LPV_68; - float PrePadding_ShadowDepthPass_LPV_72; - float PrePadding_ShadowDepthPass_LPV_76; - float PrePadding_ShadowDepthPass_LPV_80; - float PrePadding_ShadowDepthPass_LPV_84; - float PrePadding_ShadowDepthPass_LPV_88; - float PrePadding_ShadowDepthPass_LPV_92; - float PrePadding_ShadowDepthPass_LPV_96; - float PrePadding_ShadowDepthPass_LPV_100; - float PrePadding_ShadowDepthPass_LPV_104; - float PrePadding_ShadowDepthPass_LPV_108; - float PrePadding_ShadowDepthPass_LPV_112; - float PrePadding_ShadowDepthPass_LPV_116; - float PrePadding_ShadowDepthPass_LPV_120; - float PrePadding_ShadowDepthPass_LPV_124; - float PrePadding_ShadowDepthPass_LPV_128; - float PrePadding_ShadowDepthPass_LPV_132; - float PrePadding_ShadowDepthPass_LPV_136; - float PrePadding_ShadowDepthPass_LPV_140; - float PrePadding_ShadowDepthPass_LPV_144; - float PrePadding_ShadowDepthPass_LPV_148; - float PrePadding_ShadowDepthPass_LPV_152; - float PrePadding_ShadowDepthPass_LPV_156; - float PrePadding_ShadowDepthPass_LPV_160; - float PrePadding_ShadowDepthPass_LPV_164; - float PrePadding_ShadowDepthPass_LPV_168; - float PrePadding_ShadowDepthPass_LPV_172; - float PrePadding_ShadowDepthPass_LPV_176; - float PrePadding_ShadowDepthPass_LPV_180; - float PrePadding_ShadowDepthPass_LPV_184; - float PrePadding_ShadowDepthPass_LPV_188; - float PrePadding_ShadowDepthPass_LPV_192; - float PrePadding_ShadowDepthPass_LPV_196; - float PrePadding_ShadowDepthPass_LPV_200; - float PrePadding_ShadowDepthPass_LPV_204; - float PrePadding_ShadowDepthPass_LPV_208; - float PrePadding_ShadowDepthPass_LPV_212; - float PrePadding_ShadowDepthPass_LPV_216; - float PrePadding_ShadowDepthPass_LPV_220; - float PrePadding_ShadowDepthPass_LPV_224; - float PrePadding_ShadowDepthPass_LPV_228; - float PrePadding_ShadowDepthPass_LPV_232; - float PrePadding_ShadowDepthPass_LPV_236; - float PrePadding_ShadowDepthPass_LPV_240; - float PrePadding_ShadowDepthPass_LPV_244; - float PrePadding_ShadowDepthPass_LPV_248; - float PrePadding_ShadowDepthPass_LPV_252; - float PrePadding_ShadowDepthPass_LPV_256; - float PrePadding_ShadowDepthPass_LPV_260; - float PrePadding_ShadowDepthPass_LPV_264; - float PrePadding_ShadowDepthPass_LPV_268; - float4x4 ShadowDepthPass_LPV_mRsmToWorld; - float4 ShadowDepthPass_LPV_mLightColour; - float4 ShadowDepthPass_LPV_GeometryVolumeCaptureLightDirection; - float4 ShadowDepthPass_LPV_mEyePos; - packed_int3 ShadowDepthPass_LPV_mOldGridOffset; - int PrePadding_ShadowDepthPass_LPV_396; - packed_int3 ShadowDepthPass_LPV_mLpvGridOffset; - float ShadowDepthPass_LPV_ClearMultiplier; - float ShadowDepthPass_LPV_LpvScale; - float ShadowDepthPass_LPV_OneOverLpvScale; - float ShadowDepthPass_LPV_DirectionalOcclusionIntensity; - float ShadowDepthPass_LPV_DirectionalOcclusionRadius; - float ShadowDepthPass_LPV_RsmAreaIntensityMultiplier; - float ShadowDepthPass_LPV_RsmPixelToTexcoordMultiplier; - float ShadowDepthPass_LPV_SecondaryOcclusionStrength; - float ShadowDepthPass_LPV_SecondaryBounceStrength; - float ShadowDepthPass_LPV_VplInjectionBias; - float ShadowDepthPass_LPV_GeometryVolumeInjectionBias; - float ShadowDepthPass_LPV_EmissiveInjectionMultiplier; - int ShadowDepthPass_LPV_PropagationIndex; - float4x4 ShadowDepthPass_ProjectionMatrix; - float4x4 ShadowDepthPass_ViewMatrix; - float4 ShadowDepthPass_ShadowParams; - float ShadowDepthPass_bClampToNearPlane; - float PrePadding_ShadowDepthPass_612; - float PrePadding_ShadowDepthPass_616; - float PrePadding_ShadowDepthPass_620; - float4x4 ShadowDepthPass_ShadowViewProjectionMatrices[6]; - float4x4 ShadowDepthPass_ShadowViewMatrices[6]; -}; - -constant float4 _113 = {}; - -struct main0_out -{ - float4 out_var_TEXCOORD10_centroid [[user(locn0)]]; - float4 out_var_TEXCOORD11_centroid [[user(locn1)]]; - float4 out_var_COLOR0 [[user(locn2)]]; - float4 out_var_TEXCOORD0_0 [[user(locn3)]]; - uint out_var_PRIMITIVE_ID [[user(locn4)]]; - float out_var_TEXCOORD6 [[user(locn5)]]; - float out_var_TEXCOORD8 [[user(locn6)]]; - float3 out_var_TEXCOORD7 [[user(locn7)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 in_var_COLOR0 [[attribute(0)]]; - float4 in_var_PN_POSITION_0 [[attribute(2)]]; - float4 in_var_PN_POSITION_1 [[attribute(3)]]; - float4 in_var_PN_POSITION_2 [[attribute(4)]]; - float in_var_PN_WorldDisplacementMultiplier [[attribute(7)]]; - uint in_var_PRIMITIVE_ID [[attribute(8)]]; - float4 in_var_TEXCOORD0_0 [[attribute(9)]]; - float4 in_var_TEXCOORD10_centroid [[attribute(10)]]; - float4 in_var_TEXCOORD11_centroid [[attribute(11)]]; -}; - -struct main0_patchIn -{ - float4 in_var_PN_POSITION9 [[attribute(5)]]; - patch_control_point gl_in; -}; - -[[ patch(triangle, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]], constant type_View& View [[buffer(0)]], constant type_ShadowDepthPass& ShadowDepthPass [[buffer(1)]], texture2d Material_Texture2D_3 [[texture(0)]], sampler Material_Texture2D_3Sampler [[sampler(0)]], float3 gl_TessCoord [[position_in_patch]]) -{ - main0_out out = {}; - spvUnsafeArray out_var_TEXCOORD0 = {}; - spvUnsafeArray _117 = spvUnsafeArray({ patchIn.gl_in[0].in_var_TEXCOORD10_centroid, patchIn.gl_in[1].in_var_TEXCOORD10_centroid, patchIn.gl_in[2].in_var_TEXCOORD10_centroid }); - spvUnsafeArray _118 = spvUnsafeArray({ patchIn.gl_in[0].in_var_TEXCOORD11_centroid, patchIn.gl_in[1].in_var_TEXCOORD11_centroid, patchIn.gl_in[2].in_var_TEXCOORD11_centroid }); - spvUnsafeArray _119 = spvUnsafeArray({ patchIn.gl_in[0].in_var_COLOR0, patchIn.gl_in[1].in_var_COLOR0, patchIn.gl_in[2].in_var_COLOR0 }); - spvUnsafeArray, 3> _120 = spvUnsafeArray, 3>({ spvUnsafeArray({ patchIn.gl_in[0].in_var_TEXCOORD0_0 }), spvUnsafeArray({ patchIn.gl_in[1].in_var_TEXCOORD0_0 }), spvUnsafeArray({ patchIn.gl_in[2].in_var_TEXCOORD0_0 }) }); - spvUnsafeArray, 3> _135 = spvUnsafeArray, 3>({ spvUnsafeArray({ patchIn.gl_in[0].in_var_PN_POSITION_0, patchIn.gl_in[0].in_var_PN_POSITION_1, patchIn.gl_in[0].in_var_PN_POSITION_2 }), spvUnsafeArray({ patchIn.gl_in[1].in_var_PN_POSITION_0, patchIn.gl_in[1].in_var_PN_POSITION_1, patchIn.gl_in[1].in_var_PN_POSITION_2 }), spvUnsafeArray({ patchIn.gl_in[2].in_var_PN_POSITION_0, patchIn.gl_in[2].in_var_PN_POSITION_1, patchIn.gl_in[2].in_var_PN_POSITION_2 }) }); - spvUnsafeArray _136 = spvUnsafeArray({ patchIn.gl_in[0].in_var_PN_WorldDisplacementMultiplier, patchIn.gl_in[1].in_var_PN_WorldDisplacementMultiplier, patchIn.gl_in[2].in_var_PN_WorldDisplacementMultiplier }); - float _157 = gl_TessCoord.x * gl_TessCoord.x; - float _158 = gl_TessCoord.y * gl_TessCoord.y; - float _159 = gl_TessCoord.z * gl_TessCoord.z; - float4 _165 = float4(gl_TessCoord.x); - float4 _169 = float4(gl_TessCoord.y); - float4 _174 = float4(gl_TessCoord.z); - float4 _177 = float4(_157 * 3.0); - float4 _181 = float4(_158 * 3.0); - float4 _188 = float4(_159 * 3.0); - float4 _202 = ((((((((((_135[0][0] * float4(_157)) * _165) + ((_135[1][0] * float4(_158)) * _169)) + ((_135[2][0] * float4(_159)) * _174)) + ((_135[0][1] * _177) * _169)) + ((_135[0][2] * _181) * _165)) + ((_135[1][1] * _181) * _174)) + ((_135[1][2] * _188) * _169)) + ((_135[2][1] * _188) * _165)) + ((_135[2][2] * _177) * _174)) + ((((patchIn.in_var_PN_POSITION9 * float4(6.0)) * _174) * _165) * _169); - float3 _226 = ((_117[0].xyz * float3(gl_TessCoord.x)) + (_117[1].xyz * float3(gl_TessCoord.y))).xyz + (_117[2].xyz * float3(gl_TessCoord.z)); - float4 _229 = ((_118[0] * _165) + (_118[1] * _169)) + (_118[2] * _174); - float4 _231 = ((_119[0] * _165) + (_119[1] * _169)) + (_119[2] * _174); - float4 _233 = ((_120[0][0] * _165) + (_120[1][0] * _169)) + (_120[2][0] * _174); - spvUnsafeArray _234 = spvUnsafeArray({ _233 }); - float3 _236 = _229.xyz; - float3 _264 = _202.xyz + (((float3((Material_Texture2D_3.sample(Material_Texture2D_3Sampler, (float2(View.View_GameTime * 0.20000000298023223876953125, View.View_GameTime * (-0.699999988079071044921875)) + (_233.zw * float2(1.0, 2.0))), level(-1.0)).x * 10.0) * (1.0 - _231.x)) * _236) * float3(0.5)) * float3(((_136[0] * gl_TessCoord.x) + (_136[1] * gl_TessCoord.y)) + (_136[2] * gl_TessCoord.z))); - float4x4 _116 = ShadowDepthPass.ShadowDepthPass_ViewMatrix; - float4 _270 = ShadowDepthPass.ShadowDepthPass_ProjectionMatrix * float4(_264.x, _264.y, _264.z, _202.w); - float4 _281; - if ((ShadowDepthPass.ShadowDepthPass_bClampToNearPlane > 0.0) && (_270.z < 0.0)) - { - float4 _279 = _270; - _279.z = 9.9999999747524270787835121154785e-07; - float4 _280 = _279; - _280.w = 1.0; - _281 = _280; - } - else - { - _281 = _270; - } - float _290 = abs(dot(float3(_116[0u].z, _116[1u].z, _116[2u].z), _236)); - out.out_var_TEXCOORD10_centroid = float4(_226.x, _226.y, _226.z, _113.w); - out.out_var_TEXCOORD11_centroid = _229; - out.out_var_COLOR0 = _231; - out_var_TEXCOORD0 = _234; - out.out_var_PRIMITIVE_ID = patchIn.gl_in[0u].in_var_PRIMITIVE_ID; - out.out_var_TEXCOORD6 = _281.z; - out.out_var_TEXCOORD8 = (ShadowDepthPass.ShadowDepthPass_ShadowParams.y * fast::clamp((abs(_290) > 0.0) ? (sqrt(fast::clamp(1.0 - (_290 * _290), 0.0, 1.0)) / _290) : ShadowDepthPass.ShadowDepthPass_ShadowParams.z, 0.0, ShadowDepthPass.ShadowDepthPass_ShadowParams.z)) + ShadowDepthPass.ShadowDepthPass_ShadowParams.x; - out.out_var_TEXCOORD7 = _264.xyz; - out.gl_Position = _281; - out.out_var_TEXCOORD0_0 = out_var_TEXCOORD0[0]; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-ue4/asm/tese/ds-patch-input-fixes.asm.tese b/third_party/spirv-cross/reference/shaders-ue4/asm/tese/ds-patch-input-fixes.asm.tese deleted file mode 100644 index 3c063c93b1..0000000000 --- a/third_party/spirv-cross/reference/shaders-ue4/asm/tese/ds-patch-input-fixes.asm.tese +++ /dev/null @@ -1,417 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct type_View -{ - float4x4 View_TranslatedWorldToClip; - float4x4 View_WorldToClip; - float4x4 View_ClipToWorld; - float4x4 View_TranslatedWorldToView; - float4x4 View_ViewToTranslatedWorld; - float4x4 View_TranslatedWorldToCameraView; - float4x4 View_CameraViewToTranslatedWorld; - float4x4 View_ViewToClip; - float4x4 View_ViewToClipNoAA; - float4x4 View_ClipToView; - float4x4 View_ClipToTranslatedWorld; - float4x4 View_SVPositionToTranslatedWorld; - float4x4 View_ScreenToWorld; - float4x4 View_ScreenToTranslatedWorld; - packed_float3 View_ViewForward; - float PrePadding_View_908; - packed_float3 View_ViewUp; - float PrePadding_View_924; - packed_float3 View_ViewRight; - float PrePadding_View_940; - packed_float3 View_HMDViewNoRollUp; - float PrePadding_View_956; - packed_float3 View_HMDViewNoRollRight; - float PrePadding_View_972; - float4 View_InvDeviceZToWorldZTransform; - float4 View_ScreenPositionScaleBias; - packed_float3 View_WorldCameraOrigin; - float PrePadding_View_1020; - packed_float3 View_TranslatedWorldCameraOrigin; - float PrePadding_View_1036; - packed_float3 View_WorldViewOrigin; - float PrePadding_View_1052; - packed_float3 View_PreViewTranslation; - float PrePadding_View_1068; - float4x4 View_PrevProjection; - float4x4 View_PrevViewProj; - float4x4 View_PrevViewRotationProj; - float4x4 View_PrevViewToClip; - float4x4 View_PrevClipToView; - float4x4 View_PrevTranslatedWorldToClip; - float4x4 View_PrevTranslatedWorldToView; - float4x4 View_PrevViewToTranslatedWorld; - float4x4 View_PrevTranslatedWorldToCameraView; - float4x4 View_PrevCameraViewToTranslatedWorld; - packed_float3 View_PrevWorldCameraOrigin; - float PrePadding_View_1724; - packed_float3 View_PrevWorldViewOrigin; - float PrePadding_View_1740; - packed_float3 View_PrevPreViewTranslation; - float PrePadding_View_1756; - float4x4 View_PrevInvViewProj; - float4x4 View_PrevScreenToTranslatedWorld; - float4x4 View_ClipToPrevClip; - float4 View_TemporalAAJitter; - float4 View_GlobalClippingPlane; - float2 View_FieldOfViewWideAngles; - float2 View_PrevFieldOfViewWideAngles; - float4 View_ViewRectMin; - float4 View_ViewSizeAndInvSize; - float4 View_BufferSizeAndInvSize; - float4 View_BufferBilinearUVMinMax; - int View_NumSceneColorMSAASamples; - float View_PreExposure; - float View_OneOverPreExposure; - float PrePadding_View_2076; - float4 View_DiffuseOverrideParameter; - float4 View_SpecularOverrideParameter; - float4 View_NormalOverrideParameter; - float2 View_RoughnessOverrideParameter; - float View_PrevFrameGameTime; - float View_PrevFrameRealTime; - float View_OutOfBoundsMask; - float PrePadding_View_2148; - float PrePadding_View_2152; - float PrePadding_View_2156; - packed_float3 View_WorldCameraMovementSinceLastFrame; - float View_CullingSign; - float View_NearPlane; - float View_AdaptiveTessellationFactor; - float View_GameTime; - float View_RealTime; - float View_DeltaTime; - float View_MaterialTextureMipBias; - float View_MaterialTextureDerivativeMultiply; - uint View_Random; - uint View_FrameNumber; - uint View_StateFrameIndexMod8; - uint View_StateFrameIndex; - float View_CameraCut; - float View_UnlitViewmodeMask; - float PrePadding_View_2228; - float PrePadding_View_2232; - float PrePadding_View_2236; - float4 View_DirectionalLightColor; - packed_float3 View_DirectionalLightDirection; - float PrePadding_View_2268; - float4 View_TranslucencyLightingVolumeMin[2]; - float4 View_TranslucencyLightingVolumeInvSize[2]; - float4 View_TemporalAAParams; - float4 View_CircleDOFParams; - float View_DepthOfFieldSensorWidth; - float View_DepthOfFieldFocalDistance; - float View_DepthOfFieldScale; - float View_DepthOfFieldFocalLength; - float View_DepthOfFieldFocalRegion; - float View_DepthOfFieldNearTransitionRegion; - float View_DepthOfFieldFarTransitionRegion; - float View_MotionBlurNormalizedToPixel; - float View_bSubsurfacePostprocessEnabled; - float View_GeneralPurposeTweak; - float View_DemosaicVposOffset; - float PrePadding_View_2412; - packed_float3 View_IndirectLightingColorScale; - float View_HDR32bppEncodingMode; - packed_float3 View_AtmosphericFogSunDirection; - float View_AtmosphericFogSunPower; - float View_AtmosphericFogPower; - float View_AtmosphericFogDensityScale; - float View_AtmosphericFogDensityOffset; - float View_AtmosphericFogGroundOffset; - float View_AtmosphericFogDistanceScale; - float View_AtmosphericFogAltitudeScale; - float View_AtmosphericFogHeightScaleRayleigh; - float View_AtmosphericFogStartDistance; - float View_AtmosphericFogDistanceOffset; - float View_AtmosphericFogSunDiscScale; - float View_AtmosphericFogSunDiscHalfApexAngleRadian; - float PrePadding_View_2492; - float4 View_AtmosphericFogSunDiscLuminance; - uint View_AtmosphericFogRenderMask; - uint View_AtmosphericFogInscatterAltitudeSampleNum; - uint PrePadding_View_2520; - uint PrePadding_View_2524; - float4 View_AtmosphericFogSunColor; - packed_float3 View_NormalCurvatureToRoughnessScaleBias; - float View_RenderingReflectionCaptureMask; - float4 View_AmbientCubemapTint; - float View_AmbientCubemapIntensity; - float View_SkyLightParameters; - float PrePadding_View_2584; - float PrePadding_View_2588; - float4 View_SkyLightColor; - float4 View_SkyIrradianceEnvironmentMap[7]; - float View_MobilePreviewMode; - float View_HMDEyePaddingOffset; - float View_ReflectionCubemapMaxMip; - float View_ShowDecalsMask; - uint View_DistanceFieldAOSpecularOcclusionMode; - float View_IndirectCapsuleSelfShadowingIntensity; - float PrePadding_View_2744; - float PrePadding_View_2748; - packed_float3 View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight; - int View_StereoPassIndex; - float4 View_GlobalVolumeCenterAndExtent[4]; - float4 View_GlobalVolumeWorldToUVAddAndMul[4]; - float View_GlobalVolumeDimension; - float View_GlobalVolumeTexelSize; - float View_MaxGlobalDistance; - float PrePadding_View_2908; - int2 View_CursorPosition; - float View_bCheckerboardSubsurfaceProfileRendering; - float PrePadding_View_2924; - packed_float3 View_VolumetricFogInvGridSize; - float PrePadding_View_2940; - packed_float3 View_VolumetricFogGridZParams; - float PrePadding_View_2956; - float2 View_VolumetricFogSVPosToVolumeUV; - float View_VolumetricFogMaxDistance; - float PrePadding_View_2972; - packed_float3 View_VolumetricLightmapWorldToUVScale; - float PrePadding_View_2988; - packed_float3 View_VolumetricLightmapWorldToUVAdd; - float PrePadding_View_3004; - packed_float3 View_VolumetricLightmapIndirectionTextureSize; - float View_VolumetricLightmapBrickSize; - packed_float3 View_VolumetricLightmapBrickTexelSize; - float View_StereoIPD; - float View_IndirectLightingCacheShowFlag; - float View_EyeToPixelSpreadAngle; - float PrePadding_View_3048; - float PrePadding_View_3052; - float4x4 View_WorldToVirtualTexture; - float4 View_VirtualTextureParams; - float4 View_XRPassthroughCameraUVs[2]; -}; - -struct type_Material -{ - float4 Material_VectorExpressions[5]; - float4 Material_ScalarExpressions[2]; -}; - -constant float4 _118 = {}; - -struct main0_out -{ - float4 out_var_TEXCOORD6 [[user(locn0)]]; - float4 out_var_TEXCOORD7 [[user(locn1)]]; - float4 out_var_TEXCOORD10_centroid [[user(locn2)]]; - float4 out_var_TEXCOORD11_centroid [[user(locn3)]]; - float4 gl_Position [[position]]; - float gl_ClipDistance [[clip_distance]] [1]; - float gl_ClipDistance_0 [[user(clip0)]]; -}; - -struct main0_in -{ - float4 in_var_PN_DominantEdge2 [[attribute(3)]]; - float4 in_var_PN_DominantEdge3 [[attribute(4)]]; - float3 in_var_PN_DominantEdge4 [[attribute(5)]]; - float3 in_var_PN_DominantEdge5 [[attribute(6)]]; - float4 in_var_PN_DominantVertex1 [[attribute(8)]]; - float3 in_var_PN_DominantVertex2 [[attribute(9)]]; - float4 in_var_PN_POSITION_0 [[attribute(10)]]; - float4 in_var_PN_POSITION_1 [[attribute(11)]]; - float4 in_var_PN_POSITION_2 [[attribute(12)]]; - float in_var_PN_WorldDisplacementMultiplier [[attribute(15)]]; - float4 in_var_TEXCOORD10_centroid [[attribute(16)]]; - float4 in_var_TEXCOORD11_centroid [[attribute(17)]]; - float4 in_var_TEXCOORD6 [[attribute(18)]]; - float4 in_var_TEXCOORD8 [[attribute(19)]]; -}; - -struct main0_patchIn -{ - float4 in_var_PN_POSITION9 [[attribute(13)]]; - patch_control_point gl_in; -}; - -[[ patch(triangle, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]], constant type_View& View [[buffer(0)]], constant type_Material& Material [[buffer(1)]], texture3d View_GlobalDistanceFieldTexture0 [[texture(0)]], texture3d View_GlobalDistanceFieldTexture1 [[texture(1)]], texture3d View_GlobalDistanceFieldTexture2 [[texture(2)]], texture3d View_GlobalDistanceFieldTexture3 [[texture(3)]], sampler View_GlobalDistanceFieldSampler0 [[sampler(0)]], float3 gl_TessCoord [[position_in_patch]]) -{ - main0_out out = {}; - spvUnsafeArray _120 = spvUnsafeArray({ patchIn.gl_in[0].in_var_TEXCOORD6, patchIn.gl_in[1].in_var_TEXCOORD6, patchIn.gl_in[2].in_var_TEXCOORD6 }); - spvUnsafeArray _121 = spvUnsafeArray({ patchIn.gl_in[0].in_var_TEXCOORD8, patchIn.gl_in[1].in_var_TEXCOORD8, patchIn.gl_in[2].in_var_TEXCOORD8 }); - spvUnsafeArray _128 = spvUnsafeArray({ patchIn.gl_in[0].in_var_TEXCOORD10_centroid, patchIn.gl_in[1].in_var_TEXCOORD10_centroid, patchIn.gl_in[2].in_var_TEXCOORD10_centroid }); - spvUnsafeArray _129 = spvUnsafeArray({ patchIn.gl_in[0].in_var_TEXCOORD11_centroid, patchIn.gl_in[1].in_var_TEXCOORD11_centroid, patchIn.gl_in[2].in_var_TEXCOORD11_centroid }); - spvUnsafeArray, 3> _136 = spvUnsafeArray, 3>({ spvUnsafeArray({ patchIn.gl_in[0].in_var_PN_POSITION_0, patchIn.gl_in[0].in_var_PN_POSITION_1, patchIn.gl_in[0].in_var_PN_POSITION_2 }), spvUnsafeArray({ patchIn.gl_in[1].in_var_PN_POSITION_0, patchIn.gl_in[1].in_var_PN_POSITION_1, patchIn.gl_in[1].in_var_PN_POSITION_2 }), spvUnsafeArray({ patchIn.gl_in[2].in_var_PN_POSITION_0, patchIn.gl_in[2].in_var_PN_POSITION_1, patchIn.gl_in[2].in_var_PN_POSITION_2 }) }); - spvUnsafeArray _137 = spvUnsafeArray({ patchIn.gl_in[0].in_var_PN_WorldDisplacementMultiplier, patchIn.gl_in[1].in_var_PN_WorldDisplacementMultiplier, patchIn.gl_in[2].in_var_PN_WorldDisplacementMultiplier }); - spvUnsafeArray _138 = spvUnsafeArray({ patchIn.gl_in[0].in_var_PN_DominantVertex1, patchIn.gl_in[1].in_var_PN_DominantVertex1, patchIn.gl_in[2].in_var_PN_DominantVertex1 }); - spvUnsafeArray _139 = spvUnsafeArray({ patchIn.gl_in[0].in_var_PN_DominantVertex2, patchIn.gl_in[1].in_var_PN_DominantVertex2, patchIn.gl_in[2].in_var_PN_DominantVertex2 }); - spvUnsafeArray _146 = spvUnsafeArray({ patchIn.gl_in[0].in_var_PN_DominantEdge2, patchIn.gl_in[1].in_var_PN_DominantEdge2, patchIn.gl_in[2].in_var_PN_DominantEdge2 }); - spvUnsafeArray _147 = spvUnsafeArray({ patchIn.gl_in[0].in_var_PN_DominantEdge3, patchIn.gl_in[1].in_var_PN_DominantEdge3, patchIn.gl_in[2].in_var_PN_DominantEdge3 }); - spvUnsafeArray _148 = spvUnsafeArray({ patchIn.gl_in[0].in_var_PN_DominantEdge4, patchIn.gl_in[1].in_var_PN_DominantEdge4, patchIn.gl_in[2].in_var_PN_DominantEdge4 }); - spvUnsafeArray _149 = spvUnsafeArray({ patchIn.gl_in[0].in_var_PN_DominantEdge5, patchIn.gl_in[1].in_var_PN_DominantEdge5, patchIn.gl_in[2].in_var_PN_DominantEdge5 }); - float _190 = gl_TessCoord.x * gl_TessCoord.x; - float _191 = gl_TessCoord.y * gl_TessCoord.y; - float _192 = gl_TessCoord.z * gl_TessCoord.z; - float4 _198 = float4(gl_TessCoord.x); - float4 _202 = float4(gl_TessCoord.y); - float4 _207 = float4(gl_TessCoord.z); - float4 _210 = float4(_190 * 3.0); - float4 _214 = float4(_191 * 3.0); - float4 _221 = float4(_192 * 3.0); - float4 _235 = ((((((((((_136[0][0] * float4(_190)) * _198) + ((_136[1][0] * float4(_191)) * _202)) + ((_136[2][0] * float4(_192)) * _207)) + ((_136[0][1] * _210) * _202)) + ((_136[0][2] * _214) * _198)) + ((_136[1][1] * _214) * _207)) + ((_136[1][2] * _221) * _202)) + ((_136[2][1] * _221) * _198)) + ((_136[2][2] * _210) * _207)) + ((((patchIn.in_var_PN_POSITION9 * float4(6.0)) * _207) * _198) * _202); - float3 _237 = float3(gl_TessCoord.x); - float3 _240 = float3(gl_TessCoord.y); - float3 _254 = float3(gl_TessCoord.z); - float3 _256 = ((_128[0].xyz * _237) + (_128[1].xyz * _240)).xyz + (_128[2].xyz * _254); - float4 _259 = ((_129[0] * _198) + (_129[1] * _202)) + (_129[2] * _207); - float3 _264 = _235.xyz; - float3 _265 = _256.xyz; - float3 _266 = _259.xyz; - float3 _272 = _264 + float3(View.View_WorldCameraOrigin); - float _279 = float(int(gl_TessCoord.x == 0.0)); - float _282 = float(int(gl_TessCoord.y == 0.0)); - float _285 = float(int(gl_TessCoord.z == 0.0)); - float _286 = _279 + _282; - float _287 = _286 + _285; - float4 _387; - float3 _388; - if (float(int(_287 == 2.0)) == 1.0) - { - float _363 = float(int((_282 + _285) == 2.0)); - float _367 = float(int((_285 + _279) == 2.0)); - float _370 = float(int(_286 == 2.0)); - _387 = ((float4(_363) * _138[0]) + (float4(_367) * _138[1])) + (float4(_370) * _138[2]); - _388 = ((float3(_363) * _139[0]) + (float3(_367) * _139[1])) + (float3(_370) * _139[2]); - } - else - { - float4 _358; - float3 _359; - if (float(int(_287 == 1.0)) != 0.0) - { - float4 _304 = float4(_279); - float4 _306 = float4(_282); - float4 _309 = float4(_285); - float4 _311 = ((_304 * _146[0]) + (_306 * _146[1])) + (_309 * _146[2]); - float4 _316 = ((_304 * _147[0]) + (_306 * _147[1])) + (_309 * _147[2]); - float3 _331 = float3(_279); - float3 _333 = float3(_282); - float3 _336 = float3(_285); - float3 _338 = ((_331 * _148[0]) + (_333 * _148[1])) + (_336 * _148[2]); - float3 _343 = ((_331 * _149[0]) + (_333 * _149[1])) + (_336 * _149[2]); - _358 = ((_304 * ((_202 * _311) + (_207 * _316))) + (_306 * ((_207 * _311) + (_198 * _316)))) + (_309 * ((_198 * _311) + (_202 * _316))); - _359 = ((_331 * ((_240 * _338) + (_254 * _343))) + (_333 * ((_254 * _338) + (_237 * _343)))) + (_336 * ((_237 * _338) + (_240 * _343))); - } - else - { - _358 = float4(_259.xyz, 0.0); - _359 = _265; - } - _387 = _358; - _388 = _359; - } - float3x3 _398; - if (float(int(_287 == 0.0)) == 0.0) - { - _398 = float3x3(_388, cross(_387.xyz, _388) * float3(_387.w), _387.xyz); - } - else - { - _398 = float3x3(_265, cross(_266, _265) * float3(_259.w), _266); - } - float3 _411 = fast::min(fast::max((_272 - View.View_GlobalVolumeCenterAndExtent[0].xyz) + View.View_GlobalVolumeCenterAndExtent[0].www, float3(0.0)), fast::max((View.View_GlobalVolumeCenterAndExtent[0].xyz + View.View_GlobalVolumeCenterAndExtent[0].www) - _272, float3(0.0))); - float _547; - if (fast::min(_411.x, fast::min(_411.y, _411.z)) > (View.View_GlobalVolumeCenterAndExtent[0].w * View.View_GlobalVolumeTexelSize)) - { - _547 = View_GlobalDistanceFieldTexture0.sample(View_GlobalDistanceFieldSampler0, ((_272 * View.View_GlobalVolumeWorldToUVAddAndMul[0u].www) + View.View_GlobalVolumeWorldToUVAddAndMul[0u].xyz), level(0.0)).x; - } - else - { - float3 _436 = fast::min(fast::max((_272 - View.View_GlobalVolumeCenterAndExtent[1].xyz) + View.View_GlobalVolumeCenterAndExtent[1].www, float3(0.0)), fast::max((View.View_GlobalVolumeCenterAndExtent[1].xyz + View.View_GlobalVolumeCenterAndExtent[1].www) - _272, float3(0.0))); - float _535; - if (fast::min(_436.x, fast::min(_436.y, _436.z)) > (View.View_GlobalVolumeCenterAndExtent[1].w * View.View_GlobalVolumeTexelSize)) - { - _535 = View_GlobalDistanceFieldTexture1.sample(View_GlobalDistanceFieldSampler0, ((_272 * View.View_GlobalVolumeWorldToUVAddAndMul[1u].www) + View.View_GlobalVolumeWorldToUVAddAndMul[1u].xyz), level(0.0)).x; - } - else - { - float3 _459 = fast::min(fast::max((_272 - View.View_GlobalVolumeCenterAndExtent[2].xyz) + View.View_GlobalVolumeCenterAndExtent[2].www, float3(0.0)), fast::max((View.View_GlobalVolumeCenterAndExtent[2].xyz + View.View_GlobalVolumeCenterAndExtent[2].www) - _272, float3(0.0))); - float3 _475 = fast::min(fast::max((_272 - View.View_GlobalVolumeCenterAndExtent[3].xyz) + View.View_GlobalVolumeCenterAndExtent[3].www, float3(0.0)), fast::max((View.View_GlobalVolumeCenterAndExtent[3].xyz + View.View_GlobalVolumeCenterAndExtent[3].www) - _272, float3(0.0))); - float _480 = fast::min(_475.x, fast::min(_475.y, _475.z)); - float _523; - if (fast::min(_459.x, fast::min(_459.y, _459.z)) > (View.View_GlobalVolumeCenterAndExtent[2].w * View.View_GlobalVolumeTexelSize)) - { - _523 = View_GlobalDistanceFieldTexture2.sample(View_GlobalDistanceFieldSampler0, ((_272 * View.View_GlobalVolumeWorldToUVAddAndMul[2u].www) + View.View_GlobalVolumeWorldToUVAddAndMul[2u].xyz), level(0.0)).x; - } - else - { - float _511; - if (_480 > (View.View_GlobalVolumeCenterAndExtent[3].w * View.View_GlobalVolumeTexelSize)) - { - _511 = mix(View.View_MaxGlobalDistance, View_GlobalDistanceFieldTexture3.sample(View_GlobalDistanceFieldSampler0, ((_272 * View.View_GlobalVolumeWorldToUVAddAndMul[3u].www) + View.View_GlobalVolumeWorldToUVAddAndMul[3u].xyz), level(0.0)).x, fast::clamp((_480 * 10.0) * View.View_GlobalVolumeWorldToUVAddAndMul[3].w, 0.0, 1.0)); - } - else - { - _511 = View.View_MaxGlobalDistance; - } - _523 = _511; - } - _535 = _523; - } - _547 = _535; - } - float3 _565 = _264 + ((_398[2] * float3(fast::min(_547 + Material.Material_ScalarExpressions[0].z, 0.0) * Material.Material_ScalarExpressions[0].w)) * float3(((_137[0] * gl_TessCoord.x) + (_137[1] * gl_TessCoord.y)) + (_137[2] * gl_TessCoord.z))); - float4 _574 = View.View_TranslatedWorldToClip * float4(_565.x, _565.y, _565.z, _235.w); - float4 _579 = _574; - _579.z = _574.z + (0.001000000047497451305389404296875 * _574.w); - out.gl_Position = _579; - out.out_var_TEXCOORD6 = ((_120[0] * _198) + (_120[1] * _202)) + (_120[2] * _207); - out.out_var_TEXCOORD7 = ((_121[0] * _198) + (_121[1] * _202)) + (_121[2] * _207); - out.out_var_TEXCOORD10_centroid = float4(_256.x, _256.y, _256.z, _118.w); - out.out_var_TEXCOORD11_centroid = _259; - out.gl_ClipDistance[0u] = dot(View.View_GlobalClippingPlane, float4(_565.xyz - float3(View.View_PreViewTranslation), 1.0)); - out.gl_ClipDistance_0 = out.gl_ClipDistance[0]; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-ue4/asm/tese/ds-patch-inputs.asm.tese b/third_party/spirv-cross/reference/shaders-ue4/asm/tese/ds-patch-inputs.asm.tese deleted file mode 100644 index d0b6fbdd9a..0000000000 --- a/third_party/spirv-cross/reference/shaders-ue4/asm/tese/ds-patch-inputs.asm.tese +++ /dev/null @@ -1,217 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct type_ShadowDepthPass -{ - float PrePadding_ShadowDepthPass_LPV_0; - float PrePadding_ShadowDepthPass_LPV_4; - float PrePadding_ShadowDepthPass_LPV_8; - float PrePadding_ShadowDepthPass_LPV_12; - float PrePadding_ShadowDepthPass_LPV_16; - float PrePadding_ShadowDepthPass_LPV_20; - float PrePadding_ShadowDepthPass_LPV_24; - float PrePadding_ShadowDepthPass_LPV_28; - float PrePadding_ShadowDepthPass_LPV_32; - float PrePadding_ShadowDepthPass_LPV_36; - float PrePadding_ShadowDepthPass_LPV_40; - float PrePadding_ShadowDepthPass_LPV_44; - float PrePadding_ShadowDepthPass_LPV_48; - float PrePadding_ShadowDepthPass_LPV_52; - float PrePadding_ShadowDepthPass_LPV_56; - float PrePadding_ShadowDepthPass_LPV_60; - float PrePadding_ShadowDepthPass_LPV_64; - float PrePadding_ShadowDepthPass_LPV_68; - float PrePadding_ShadowDepthPass_LPV_72; - float PrePadding_ShadowDepthPass_LPV_76; - float PrePadding_ShadowDepthPass_LPV_80; - float PrePadding_ShadowDepthPass_LPV_84; - float PrePadding_ShadowDepthPass_LPV_88; - float PrePadding_ShadowDepthPass_LPV_92; - float PrePadding_ShadowDepthPass_LPV_96; - float PrePadding_ShadowDepthPass_LPV_100; - float PrePadding_ShadowDepthPass_LPV_104; - float PrePadding_ShadowDepthPass_LPV_108; - float PrePadding_ShadowDepthPass_LPV_112; - float PrePadding_ShadowDepthPass_LPV_116; - float PrePadding_ShadowDepthPass_LPV_120; - float PrePadding_ShadowDepthPass_LPV_124; - float PrePadding_ShadowDepthPass_LPV_128; - float PrePadding_ShadowDepthPass_LPV_132; - float PrePadding_ShadowDepthPass_LPV_136; - float PrePadding_ShadowDepthPass_LPV_140; - float PrePadding_ShadowDepthPass_LPV_144; - float PrePadding_ShadowDepthPass_LPV_148; - float PrePadding_ShadowDepthPass_LPV_152; - float PrePadding_ShadowDepthPass_LPV_156; - float PrePadding_ShadowDepthPass_LPV_160; - float PrePadding_ShadowDepthPass_LPV_164; - float PrePadding_ShadowDepthPass_LPV_168; - float PrePadding_ShadowDepthPass_LPV_172; - float PrePadding_ShadowDepthPass_LPV_176; - float PrePadding_ShadowDepthPass_LPV_180; - float PrePadding_ShadowDepthPass_LPV_184; - float PrePadding_ShadowDepthPass_LPV_188; - float PrePadding_ShadowDepthPass_LPV_192; - float PrePadding_ShadowDepthPass_LPV_196; - float PrePadding_ShadowDepthPass_LPV_200; - float PrePadding_ShadowDepthPass_LPV_204; - float PrePadding_ShadowDepthPass_LPV_208; - float PrePadding_ShadowDepthPass_LPV_212; - float PrePadding_ShadowDepthPass_LPV_216; - float PrePadding_ShadowDepthPass_LPV_220; - float PrePadding_ShadowDepthPass_LPV_224; - float PrePadding_ShadowDepthPass_LPV_228; - float PrePadding_ShadowDepthPass_LPV_232; - float PrePadding_ShadowDepthPass_LPV_236; - float PrePadding_ShadowDepthPass_LPV_240; - float PrePadding_ShadowDepthPass_LPV_244; - float PrePadding_ShadowDepthPass_LPV_248; - float PrePadding_ShadowDepthPass_LPV_252; - float PrePadding_ShadowDepthPass_LPV_256; - float PrePadding_ShadowDepthPass_LPV_260; - float PrePadding_ShadowDepthPass_LPV_264; - float PrePadding_ShadowDepthPass_LPV_268; - float4x4 ShadowDepthPass_LPV_mRsmToWorld; - float4 ShadowDepthPass_LPV_mLightColour; - float4 ShadowDepthPass_LPV_GeometryVolumeCaptureLightDirection; - float4 ShadowDepthPass_LPV_mEyePos; - packed_int3 ShadowDepthPass_LPV_mOldGridOffset; - int PrePadding_ShadowDepthPass_LPV_396; - packed_int3 ShadowDepthPass_LPV_mLpvGridOffset; - float ShadowDepthPass_LPV_ClearMultiplier; - float ShadowDepthPass_LPV_LpvScale; - float ShadowDepthPass_LPV_OneOverLpvScale; - float ShadowDepthPass_LPV_DirectionalOcclusionIntensity; - float ShadowDepthPass_LPV_DirectionalOcclusionRadius; - float ShadowDepthPass_LPV_RsmAreaIntensityMultiplier; - float ShadowDepthPass_LPV_RsmPixelToTexcoordMultiplier; - float ShadowDepthPass_LPV_SecondaryOcclusionStrength; - float ShadowDepthPass_LPV_SecondaryBounceStrength; - float ShadowDepthPass_LPV_VplInjectionBias; - float ShadowDepthPass_LPV_GeometryVolumeInjectionBias; - float ShadowDepthPass_LPV_EmissiveInjectionMultiplier; - int ShadowDepthPass_LPV_PropagationIndex; - float4x4 ShadowDepthPass_ProjectionMatrix; - float4x4 ShadowDepthPass_ViewMatrix; - float4 ShadowDepthPass_ShadowParams; - float ShadowDepthPass_bClampToNearPlane; - float PrePadding_ShadowDepthPass_612; - float PrePadding_ShadowDepthPass_616; - float PrePadding_ShadowDepthPass_620; - float4x4 ShadowDepthPass_ShadowViewProjectionMatrices[6]; - float4x4 ShadowDepthPass_ShadowViewMatrices[6]; -}; - -constant float4 _90 = {}; - -struct main0_out -{ - float4 out_var_TEXCOORD10_centroid [[user(locn0)]]; - float4 out_var_TEXCOORD11_centroid [[user(locn1)]]; - float out_var_TEXCOORD6 [[user(locn2)]]; - float3 out_var_TEXCOORD7 [[user(locn3)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 in_var_PN_POSITION_0 [[attribute(10)]]; - float4 in_var_PN_POSITION_1 [[attribute(11)]]; - float4 in_var_PN_POSITION_2 [[attribute(12)]]; - float4 in_var_TEXCOORD10_centroid [[attribute(16)]]; - float4 in_var_TEXCOORD11_centroid [[attribute(17)]]; -}; - -struct main0_patchIn -{ - float4 in_var_PN_POSITION9 [[attribute(13)]]; - patch_control_point gl_in; -}; - -[[ patch(triangle, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]], constant type_ShadowDepthPass& ShadowDepthPass [[buffer(0)]], float3 gl_TessCoord [[position_in_patch]]) -{ - main0_out out = {}; - spvUnsafeArray _93 = spvUnsafeArray({ patchIn.gl_in[0].in_var_TEXCOORD10_centroid, patchIn.gl_in[1].in_var_TEXCOORD10_centroid, patchIn.gl_in[2].in_var_TEXCOORD10_centroid }); - spvUnsafeArray _94 = spvUnsafeArray({ patchIn.gl_in[0].in_var_TEXCOORD11_centroid, patchIn.gl_in[1].in_var_TEXCOORD11_centroid, patchIn.gl_in[2].in_var_TEXCOORD11_centroid }); - spvUnsafeArray, 3> _101 = spvUnsafeArray, 3>({ spvUnsafeArray({ patchIn.gl_in[0].in_var_PN_POSITION_0, patchIn.gl_in[0].in_var_PN_POSITION_1, patchIn.gl_in[0].in_var_PN_POSITION_2 }), spvUnsafeArray({ patchIn.gl_in[1].in_var_PN_POSITION_0, patchIn.gl_in[1].in_var_PN_POSITION_1, patchIn.gl_in[1].in_var_PN_POSITION_2 }), spvUnsafeArray({ patchIn.gl_in[2].in_var_PN_POSITION_0, patchIn.gl_in[2].in_var_PN_POSITION_1, patchIn.gl_in[2].in_var_PN_POSITION_2 }) }); - float _119 = gl_TessCoord.x * gl_TessCoord.x; - float _120 = gl_TessCoord.y * gl_TessCoord.y; - float _121 = gl_TessCoord.z * gl_TessCoord.z; - float4 _127 = float4(gl_TessCoord.x); - float4 _131 = float4(gl_TessCoord.y); - float4 _136 = float4(gl_TessCoord.z); - float4 _139 = float4(_119 * 3.0); - float4 _143 = float4(_120 * 3.0); - float4 _150 = float4(_121 * 3.0); - float4 _164 = ((((((((((_101[0][0] * float4(_119)) * _127) + ((_101[1][0] * float4(_120)) * _131)) + ((_101[2][0] * float4(_121)) * _136)) + ((_101[0][1] * _139) * _131)) + ((_101[0][2] * _143) * _127)) + ((_101[1][1] * _143) * _136)) + ((_101[1][2] * _150) * _131)) + ((_101[2][1] * _150) * _127)) + ((_101[2][2] * _139) * _136)) + ((((patchIn.in_var_PN_POSITION9 * float4(6.0)) * _136) * _127) * _131); - float3 _179 = ((_93[0].xyz * float3(gl_TessCoord.x)) + (_93[1].xyz * float3(gl_TessCoord.y))).xyz + (_93[2].xyz * float3(gl_TessCoord.z)); - float4 _182 = ((_94[0] * _127) + (_94[1] * _131)) + (_94[2] * _136); - float4x4 _92 = ShadowDepthPass.ShadowDepthPass_ViewMatrix; - float4 _189 = ShadowDepthPass.ShadowDepthPass_ProjectionMatrix * float4(_164.x, _164.y, _164.z, _164.w); - float4 _200; - if ((ShadowDepthPass.ShadowDepthPass_bClampToNearPlane > 0.0) && (_189.z < 0.0)) - { - float4 _198 = _189; - _198.z = 9.9999999747524270787835121154785e-07; - float4 _199 = _198; - _199.w = 1.0; - _200 = _199; - } - else - { - _200 = _189; - } - float _209 = abs(dot(float3(_92[0u].z, _92[1u].z, _92[2u].z), _182.xyz)); - float4 _234 = _200; - _234.z = ((_200.z * ShadowDepthPass.ShadowDepthPass_ShadowParams.w) + ((ShadowDepthPass.ShadowDepthPass_ShadowParams.y * fast::clamp((abs(_209) > 0.0) ? (sqrt(fast::clamp(1.0 - (_209 * _209), 0.0, 1.0)) / _209) : ShadowDepthPass.ShadowDepthPass_ShadowParams.z, 0.0, ShadowDepthPass.ShadowDepthPass_ShadowParams.z)) + ShadowDepthPass.ShadowDepthPass_ShadowParams.x)) * _200.w; - out.out_var_TEXCOORD10_centroid = float4(_179.x, _179.y, _179.z, _90.w); - out.out_var_TEXCOORD11_centroid = _182; - out.out_var_TEXCOORD6 = 0.0; - out.out_var_TEXCOORD7 = _164.xyz; - out.gl_Position = _234; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-ue4/asm/tese/ds-texcoord-array.asm.tese b/third_party/spirv-cross/reference/shaders-ue4/asm/tese/ds-texcoord-array.asm.tese deleted file mode 100644 index 346d7e3fc9..0000000000 --- a/third_party/spirv-cross/reference/shaders-ue4/asm/tese/ds-texcoord-array.asm.tese +++ /dev/null @@ -1,318 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct type_View -{ - float4x4 View_TranslatedWorldToClip; - float4x4 View_WorldToClip; - float4x4 View_ClipToWorld; - float4x4 View_TranslatedWorldToView; - float4x4 View_ViewToTranslatedWorld; - float4x4 View_TranslatedWorldToCameraView; - float4x4 View_CameraViewToTranslatedWorld; - float4x4 View_ViewToClip; - float4x4 View_ViewToClipNoAA; - float4x4 View_ClipToView; - float4x4 View_ClipToTranslatedWorld; - float4x4 View_SVPositionToTranslatedWorld; - float4x4 View_ScreenToWorld; - float4x4 View_ScreenToTranslatedWorld; - packed_float3 View_ViewForward; - float PrePadding_View_908; - packed_float3 View_ViewUp; - float PrePadding_View_924; - packed_float3 View_ViewRight; - float PrePadding_View_940; - packed_float3 View_HMDViewNoRollUp; - float PrePadding_View_956; - packed_float3 View_HMDViewNoRollRight; - float PrePadding_View_972; - float4 View_InvDeviceZToWorldZTransform; - float4 View_ScreenPositionScaleBias; - packed_float3 View_WorldCameraOrigin; - float PrePadding_View_1020; - packed_float3 View_TranslatedWorldCameraOrigin; - float PrePadding_View_1036; - packed_float3 View_WorldViewOrigin; - float PrePadding_View_1052; - packed_float3 View_PreViewTranslation; - float PrePadding_View_1068; - float4x4 View_PrevProjection; - float4x4 View_PrevViewProj; - float4x4 View_PrevViewRotationProj; - float4x4 View_PrevViewToClip; - float4x4 View_PrevClipToView; - float4x4 View_PrevTranslatedWorldToClip; - float4x4 View_PrevTranslatedWorldToView; - float4x4 View_PrevViewToTranslatedWorld; - float4x4 View_PrevTranslatedWorldToCameraView; - float4x4 View_PrevCameraViewToTranslatedWorld; - packed_float3 View_PrevWorldCameraOrigin; - float PrePadding_View_1724; - packed_float3 View_PrevWorldViewOrigin; - float PrePadding_View_1740; - packed_float3 View_PrevPreViewTranslation; - float PrePadding_View_1756; - float4x4 View_PrevInvViewProj; - float4x4 View_PrevScreenToTranslatedWorld; - float4x4 View_ClipToPrevClip; - float4 View_TemporalAAJitter; - float4 View_GlobalClippingPlane; - float2 View_FieldOfViewWideAngles; - float2 View_PrevFieldOfViewWideAngles; - float4 View_ViewRectMin; - float4 View_ViewSizeAndInvSize; - float4 View_BufferSizeAndInvSize; - float4 View_BufferBilinearUVMinMax; - int View_NumSceneColorMSAASamples; - float View_PreExposure; - float View_OneOverPreExposure; - float PrePadding_View_2076; - float4 View_DiffuseOverrideParameter; - float4 View_SpecularOverrideParameter; - float4 View_NormalOverrideParameter; - float2 View_RoughnessOverrideParameter; - float View_PrevFrameGameTime; - float View_PrevFrameRealTime; - float View_OutOfBoundsMask; - float PrePadding_View_2148; - float PrePadding_View_2152; - float PrePadding_View_2156; - packed_float3 View_WorldCameraMovementSinceLastFrame; - float View_CullingSign; - float View_NearPlane; - float View_AdaptiveTessellationFactor; - float View_GameTime; - float View_RealTime; - float View_DeltaTime; - float View_MaterialTextureMipBias; - float View_MaterialTextureDerivativeMultiply; - uint View_Random; - uint View_FrameNumber; - uint View_StateFrameIndexMod8; - uint View_StateFrameIndex; - float View_CameraCut; - float View_UnlitViewmodeMask; - float PrePadding_View_2228; - float PrePadding_View_2232; - float PrePadding_View_2236; - float4 View_DirectionalLightColor; - packed_float3 View_DirectionalLightDirection; - float PrePadding_View_2268; - float4 View_TranslucencyLightingVolumeMin[2]; - float4 View_TranslucencyLightingVolumeInvSize[2]; - float4 View_TemporalAAParams; - float4 View_CircleDOFParams; - float View_DepthOfFieldSensorWidth; - float View_DepthOfFieldFocalDistance; - float View_DepthOfFieldScale; - float View_DepthOfFieldFocalLength; - float View_DepthOfFieldFocalRegion; - float View_DepthOfFieldNearTransitionRegion; - float View_DepthOfFieldFarTransitionRegion; - float View_MotionBlurNormalizedToPixel; - float View_bSubsurfacePostprocessEnabled; - float View_GeneralPurposeTweak; - float View_DemosaicVposOffset; - float PrePadding_View_2412; - packed_float3 View_IndirectLightingColorScale; - float View_HDR32bppEncodingMode; - packed_float3 View_AtmosphericFogSunDirection; - float View_AtmosphericFogSunPower; - float View_AtmosphericFogPower; - float View_AtmosphericFogDensityScale; - float View_AtmosphericFogDensityOffset; - float View_AtmosphericFogGroundOffset; - float View_AtmosphericFogDistanceScale; - float View_AtmosphericFogAltitudeScale; - float View_AtmosphericFogHeightScaleRayleigh; - float View_AtmosphericFogStartDistance; - float View_AtmosphericFogDistanceOffset; - float View_AtmosphericFogSunDiscScale; - float View_AtmosphericFogSunDiscHalfApexAngleRadian; - float PrePadding_View_2492; - float4 View_AtmosphericFogSunDiscLuminance; - uint View_AtmosphericFogRenderMask; - uint View_AtmosphericFogInscatterAltitudeSampleNum; - uint PrePadding_View_2520; - uint PrePadding_View_2524; - float4 View_AtmosphericFogSunColor; - packed_float3 View_NormalCurvatureToRoughnessScaleBias; - float View_RenderingReflectionCaptureMask; - float4 View_AmbientCubemapTint; - float View_AmbientCubemapIntensity; - float View_SkyLightParameters; - float PrePadding_View_2584; - float PrePadding_View_2588; - float4 View_SkyLightColor; - float4 View_SkyIrradianceEnvironmentMap[7]; - float View_MobilePreviewMode; - float View_HMDEyePaddingOffset; - float View_ReflectionCubemapMaxMip; - float View_ShowDecalsMask; - uint View_DistanceFieldAOSpecularOcclusionMode; - float View_IndirectCapsuleSelfShadowingIntensity; - float PrePadding_View_2744; - float PrePadding_View_2748; - packed_float3 View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight; - int View_StereoPassIndex; - float4 View_GlobalVolumeCenterAndExtent[4]; - float4 View_GlobalVolumeWorldToUVAddAndMul[4]; - float View_GlobalVolumeDimension; - float View_GlobalVolumeTexelSize; - float View_MaxGlobalDistance; - float PrePadding_View_2908; - int2 View_CursorPosition; - float View_bCheckerboardSubsurfaceProfileRendering; - float PrePadding_View_2924; - packed_float3 View_VolumetricFogInvGridSize; - float PrePadding_View_2940; - packed_float3 View_VolumetricFogGridZParams; - float PrePadding_View_2956; - float2 View_VolumetricFogSVPosToVolumeUV; - float View_VolumetricFogMaxDistance; - float PrePadding_View_2972; - packed_float3 View_VolumetricLightmapWorldToUVScale; - float PrePadding_View_2988; - packed_float3 View_VolumetricLightmapWorldToUVAdd; - float PrePadding_View_3004; - packed_float3 View_VolumetricLightmapIndirectionTextureSize; - float View_VolumetricLightmapBrickSize; - packed_float3 View_VolumetricLightmapBrickTexelSize; - float View_StereoIPD; - float View_IndirectLightingCacheShowFlag; - float View_EyeToPixelSpreadAngle; - float PrePadding_View_3048; - float PrePadding_View_3052; - float4x4 View_WorldToVirtualTexture; - float4 View_VirtualTextureParams; - float4 View_XRPassthroughCameraUVs[2]; -}; - -constant float4 _68 = {}; - -struct main0_out -{ - float4 out_var_TEXCOORD10_centroid [[user(locn0)]]; - float4 out_var_TEXCOORD11_centroid [[user(locn1)]]; - float4 out_var_TEXCOORD0_0 [[user(locn2)]]; - float4 out_var_COLOR1 [[user(locn3)]]; - float4 out_var_COLOR2 [[user(locn4)]]; - float4 out_var_TEXCOORD6 [[user(locn5)]]; - float3 out_var_TEXCOORD7 [[user(locn6)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 in_var_COLOR1 [[attribute(0)]]; - float4 in_var_COLOR2 [[attribute(1)]]; - float4 in_var_TEXCOORD0_0 [[attribute(5)]]; - float4 in_var_TEXCOORD10_centroid [[attribute(6)]]; - float4 in_var_TEXCOORD11_centroid [[attribute(7)]]; - float3 in_var_TEXCOORD7 [[attribute(8)]]; - float4 in_var_VS_To_DS_Position [[attribute(9)]]; -}; - -struct main0_patchIn -{ - patch_control_point gl_in; -}; - -[[ patch(triangle, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]], constant type_View& View [[buffer(0)]], float3 gl_TessCoord [[position_in_patch]]) -{ - main0_out out = {}; - spvUnsafeArray out_var_TEXCOORD0 = {}; - spvUnsafeArray _77 = spvUnsafeArray({ patchIn.gl_in[0].in_var_TEXCOORD10_centroid, patchIn.gl_in[1].in_var_TEXCOORD10_centroid, patchIn.gl_in[2].in_var_TEXCOORD10_centroid }); - spvUnsafeArray _78 = spvUnsafeArray({ patchIn.gl_in[0].in_var_TEXCOORD11_centroid, patchIn.gl_in[1].in_var_TEXCOORD11_centroid, patchIn.gl_in[2].in_var_TEXCOORD11_centroid }); - spvUnsafeArray, 3> _79 = spvUnsafeArray, 3>({ spvUnsafeArray({ patchIn.gl_in[0].in_var_TEXCOORD0_0 }), spvUnsafeArray({ patchIn.gl_in[1].in_var_TEXCOORD0_0 }), spvUnsafeArray({ patchIn.gl_in[2].in_var_TEXCOORD0_0 }) }); - spvUnsafeArray _80 = spvUnsafeArray({ patchIn.gl_in[0].in_var_COLOR1, patchIn.gl_in[1].in_var_COLOR1, patchIn.gl_in[2].in_var_COLOR1 }); - spvUnsafeArray _81 = spvUnsafeArray({ patchIn.gl_in[0].in_var_COLOR2, patchIn.gl_in[1].in_var_COLOR2, patchIn.gl_in[2].in_var_COLOR2 }); - spvUnsafeArray _97 = spvUnsafeArray({ patchIn.gl_in[0].in_var_VS_To_DS_Position, patchIn.gl_in[1].in_var_VS_To_DS_Position, patchIn.gl_in[2].in_var_VS_To_DS_Position }); - spvUnsafeArray _98 = spvUnsafeArray({ patchIn.gl_in[0].in_var_TEXCOORD7, patchIn.gl_in[1].in_var_TEXCOORD7, patchIn.gl_in[2].in_var_TEXCOORD7 }); - float4 _111 = float4(gl_TessCoord.x); - float4 _113 = float4(gl_TessCoord.y); - float4 _116 = float4(gl_TessCoord.z); - float4 _118 = ((_97[0] * _111) + (_97[1] * _113)) + (_97[2] * _116); - spvUnsafeArray _72; - _72 = _79[0]; - spvUnsafeArray _71; - _71 = _79[1]; - float3 _120 = float3(gl_TessCoord.x); - float3 _123 = float3(gl_TessCoord.y); - spvUnsafeArray _73; - for (int _133 = 0; _133 < 1; ) - { - _73[_133] = (_72[_133] * _111) + (_71[_133] * _113); - _133++; - continue; - } - spvUnsafeArray _75; - _75 = _73; - spvUnsafeArray _74; - _74 = _79[2]; - float3 _155 = float3(gl_TessCoord.z); - float3 _157 = ((_77[0].xyz * _120) + (_77[1].xyz * _123)).xyz + (_77[2].xyz * _155); - spvUnsafeArray _76; - for (int _164 = 0; _164 < 1; ) - { - _76[_164] = _75[_164] + (_74[_164] * _116); - _164++; - continue; - } - float4 _181 = float4(_118.x, _118.y, _118.z, _118.w); - out.out_var_TEXCOORD10_centroid = float4(_157.x, _157.y, _157.z, _68.w); - out.out_var_TEXCOORD11_centroid = ((_78[0] * _111) + (_78[1] * _113)) + (_78[2] * _116); - out_var_TEXCOORD0 = _76; - out.out_var_COLOR1 = ((_80[0] * _111) + (_80[1] * _113)) + (_80[2] * _116); - out.out_var_COLOR2 = ((_81[0] * _111) + (_81[1] * _113)) + (_81[2] * _116); - out.out_var_TEXCOORD6 = _181; - out.out_var_TEXCOORD7 = ((_98[0] * _120) + (_98[1] * _123)) + (_98[2] * _155); - out.gl_Position = View.View_TranslatedWorldToClip * _181; - out.out_var_TEXCOORD0_0 = out_var_TEXCOORD0[0]; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-ue4/asm/vert/array-missing-copies.asm.vert b/third_party/spirv-cross/reference/shaders-ue4/asm/vert/array-missing-copies.asm.vert deleted file mode 100644 index 3d3e0e51f5..0000000000 --- a/third_party/spirv-cross/reference/shaders-ue4/asm/vert/array-missing-copies.asm.vert +++ /dev/null @@ -1,466 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wmissing-braces" - -#include -#include - -using namespace metal; - -template -struct spvUnsafeArray -{ - T elements[Num ? Num : 1]; - - thread T& operator [] (size_t pos) thread - { - return elements[pos]; - } - constexpr const thread T& operator [] (size_t pos) const thread - { - return elements[pos]; - } - - device T& operator [] (size_t pos) device - { - return elements[pos]; - } - constexpr const device T& operator [] (size_t pos) const device - { - return elements[pos]; - } - - constexpr const constant T& operator [] (size_t pos) const constant - { - return elements[pos]; - } - - threadgroup T& operator [] (size_t pos) threadgroup - { - return elements[pos]; - } - constexpr const threadgroup T& operator [] (size_t pos) const threadgroup - { - return elements[pos]; - } -}; - -struct type_View -{ - float4x4 View_TranslatedWorldToClip; - float4x4 View_WorldToClip; - float4x4 View_TranslatedWorldToView; - float4x4 View_ViewToTranslatedWorld; - float4x4 View_TranslatedWorldToCameraView; - float4x4 View_CameraViewToTranslatedWorld; - float4x4 View_ViewToClip; - float4x4 View_ViewToClipNoAA; - float4x4 View_ClipToView; - float4x4 View_ClipToTranslatedWorld; - float4x4 View_SVPositionToTranslatedWorld; - float4x4 View_ScreenToWorld; - float4x4 View_ScreenToTranslatedWorld; - packed_float3 View_ViewForward; - float PrePadding_View_844; - packed_float3 View_ViewUp; - float PrePadding_View_860; - packed_float3 View_ViewRight; - float PrePadding_View_876; - packed_float3 View_HMDViewNoRollUp; - float PrePadding_View_892; - packed_float3 View_HMDViewNoRollRight; - float PrePadding_View_908; - float4 View_InvDeviceZToWorldZTransform; - float4 View_ScreenPositionScaleBias; - packed_float3 View_WorldCameraOrigin; - float PrePadding_View_956; - packed_float3 View_TranslatedWorldCameraOrigin; - float PrePadding_View_972; - packed_float3 View_WorldViewOrigin; - float PrePadding_View_988; - packed_float3 View_PreViewTranslation; - float PrePadding_View_1004; - float4x4 View_PrevProjection; - float4x4 View_PrevViewProj; - float4x4 View_PrevViewRotationProj; - float4x4 View_PrevViewToClip; - float4x4 View_PrevClipToView; - float4x4 View_PrevTranslatedWorldToClip; - float4x4 View_PrevTranslatedWorldToView; - float4x4 View_PrevViewToTranslatedWorld; - float4x4 View_PrevTranslatedWorldToCameraView; - float4x4 View_PrevCameraViewToTranslatedWorld; - packed_float3 View_PrevWorldCameraOrigin; - float PrePadding_View_1660; - packed_float3 View_PrevWorldViewOrigin; - float PrePadding_View_1676; - packed_float3 View_PrevPreViewTranslation; - float PrePadding_View_1692; - float4x4 View_PrevInvViewProj; - float4x4 View_PrevScreenToTranslatedWorld; - float4x4 View_ClipToPrevClip; - float4 View_TemporalAAJitter; - float4 View_GlobalClippingPlane; - float2 View_FieldOfViewWideAngles; - float2 View_PrevFieldOfViewWideAngles; - float4 View_ViewRectMin; - float4 View_ViewSizeAndInvSize; - float4 View_BufferSizeAndInvSize; - float4 View_BufferBilinearUVMinMax; - int View_NumSceneColorMSAASamples; - float View_PreExposure; - float View_OneOverPreExposure; - float PrePadding_View_2012; - float4 View_DiffuseOverrideParameter; - float4 View_SpecularOverrideParameter; - float4 View_NormalOverrideParameter; - float2 View_RoughnessOverrideParameter; - float View_PrevFrameGameTime; - float View_PrevFrameRealTime; - float View_OutOfBoundsMask; - float PrePadding_View_2084; - float PrePadding_View_2088; - float PrePadding_View_2092; - packed_float3 View_WorldCameraMovementSinceLastFrame; - float View_CullingSign; - float View_NearPlane; - float View_AdaptiveTessellationFactor; - float View_GameTime; - float View_RealTime; - float View_DeltaTime; - float View_MaterialTextureMipBias; - float View_MaterialTextureDerivativeMultiply; - uint View_Random; - uint View_FrameNumber; - uint View_StateFrameIndexMod8; - uint View_StateFrameIndex; - float View_CameraCut; - float View_UnlitViewmodeMask; - float PrePadding_View_2164; - float PrePadding_View_2168; - float PrePadding_View_2172; - float4 View_DirectionalLightColor; - packed_float3 View_DirectionalLightDirection; - float PrePadding_View_2204; - float4 View_TranslucencyLightingVolumeMin[2]; - float4 View_TranslucencyLightingVolumeInvSize[2]; - float4 View_TemporalAAParams; - float4 View_CircleDOFParams; - float View_DepthOfFieldSensorWidth; - float View_DepthOfFieldFocalDistance; - float View_DepthOfFieldScale; - float View_DepthOfFieldFocalLength; - float View_DepthOfFieldFocalRegion; - float View_DepthOfFieldNearTransitionRegion; - float View_DepthOfFieldFarTransitionRegion; - float View_MotionBlurNormalizedToPixel; - float View_bSubsurfacePostprocessEnabled; - float View_GeneralPurposeTweak; - float View_DemosaicVposOffset; - float PrePadding_View_2348; - packed_float3 View_IndirectLightingColorScale; - float View_HDR32bppEncodingMode; - packed_float3 View_AtmosphericFogSunDirection; - float View_AtmosphericFogSunPower; - float View_AtmosphericFogPower; - float View_AtmosphericFogDensityScale; - float View_AtmosphericFogDensityOffset; - float View_AtmosphericFogGroundOffset; - float View_AtmosphericFogDistanceScale; - float View_AtmosphericFogAltitudeScale; - float View_AtmosphericFogHeightScaleRayleigh; - float View_AtmosphericFogStartDistance; - float View_AtmosphericFogDistanceOffset; - float View_AtmosphericFogSunDiscScale; - uint View_AtmosphericFogRenderMask; - uint View_AtmosphericFogInscatterAltitudeSampleNum; - float4 View_AtmosphericFogSunColor; - packed_float3 View_NormalCurvatureToRoughnessScaleBias; - float View_RenderingReflectionCaptureMask; - float4 View_AmbientCubemapTint; - float View_AmbientCubemapIntensity; - float View_SkyLightParameters; - float PrePadding_View_2488; - float PrePadding_View_2492; - float4 View_SkyLightColor; - float4 View_SkyIrradianceEnvironmentMap[7]; - float View_MobilePreviewMode; - float View_HMDEyePaddingOffset; - float View_ReflectionCubemapMaxMip; - float View_ShowDecalsMask; - uint View_DistanceFieldAOSpecularOcclusionMode; - float View_IndirectCapsuleSelfShadowingIntensity; - float PrePadding_View_2648; - float PrePadding_View_2652; - packed_float3 View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight; - int View_StereoPassIndex; - float4 View_GlobalVolumeCenterAndExtent[4]; - float4 View_GlobalVolumeWorldToUVAddAndMul[4]; - float View_GlobalVolumeDimension; - float View_GlobalVolumeTexelSize; - float View_MaxGlobalDistance; - float View_bCheckerboardSubsurfaceProfileRendering; - packed_float3 View_VolumetricFogInvGridSize; - float PrePadding_View_2828; - packed_float3 View_VolumetricFogGridZParams; - float PrePadding_View_2844; - float2 View_VolumetricFogSVPosToVolumeUV; - float View_VolumetricFogMaxDistance; - float PrePadding_View_2860; - packed_float3 View_VolumetricLightmapWorldToUVScale; - float PrePadding_View_2876; - packed_float3 View_VolumetricLightmapWorldToUVAdd; - float PrePadding_View_2892; - packed_float3 View_VolumetricLightmapIndirectionTextureSize; - float View_VolumetricLightmapBrickSize; - packed_float3 View_VolumetricLightmapBrickTexelSize; - float View_StereoIPD; - float View_IndirectLightingCacheShowFlag; - float View_EyeToPixelSpreadAngle; -}; - -struct type_MobileBasePass -{ - float4 MobileBasePass_Fog_ExponentialFogParameters; - float4 MobileBasePass_Fog_ExponentialFogParameters2; - float4 MobileBasePass_Fog_ExponentialFogColorParameter; - float4 MobileBasePass_Fog_ExponentialFogParameters3; - float4 MobileBasePass_Fog_InscatteringLightDirection; - float4 MobileBasePass_Fog_DirectionalInscatteringColor; - float2 MobileBasePass_Fog_SinCosInscatteringColorCubemapRotation; - float PrePadding_MobileBasePass_Fog_104; - float PrePadding_MobileBasePass_Fog_108; - packed_float3 MobileBasePass_Fog_FogInscatteringTextureParameters; - float MobileBasePass_Fog_ApplyVolumetricFog; - float PrePadding_MobileBasePass_PlanarReflection_128; - float PrePadding_MobileBasePass_PlanarReflection_132; - float PrePadding_MobileBasePass_PlanarReflection_136; - float PrePadding_MobileBasePass_PlanarReflection_140; - float PrePadding_MobileBasePass_PlanarReflection_144; - float PrePadding_MobileBasePass_PlanarReflection_148; - float PrePadding_MobileBasePass_PlanarReflection_152; - float PrePadding_MobileBasePass_PlanarReflection_156; - float4 MobileBasePass_PlanarReflection_ReflectionPlane; - float4 MobileBasePass_PlanarReflection_PlanarReflectionOrigin; - float4 MobileBasePass_PlanarReflection_PlanarReflectionXAxis; - float4 MobileBasePass_PlanarReflection_PlanarReflectionYAxis; - float3x4 MobileBasePass_PlanarReflection_InverseTransposeMirrorMatrix; - packed_float3 MobileBasePass_PlanarReflection_PlanarReflectionParameters; - float PrePadding_MobileBasePass_PlanarReflection_284; - float2 MobileBasePass_PlanarReflection_PlanarReflectionParameters2; - float PrePadding_MobileBasePass_PlanarReflection_296; - float PrePadding_MobileBasePass_PlanarReflection_300; - float4x4 MobileBasePass_PlanarReflection_ProjectionWithExtraFOV[2]; - float4 MobileBasePass_PlanarReflection_PlanarReflectionScreenScaleBias[2]; - float2 MobileBasePass_PlanarReflection_PlanarReflectionScreenBound; - uint MobileBasePass_PlanarReflection_bIsStereo; -}; - -struct type_Primitive -{ - float4x4 Primitive_LocalToWorld; - float4 Primitive_InvNonUniformScaleAndDeterminantSign; - float4 Primitive_ObjectWorldPositionAndRadius; - float4x4 Primitive_WorldToLocal; - float4x4 Primitive_PreviousLocalToWorld; - float4x4 Primitive_PreviousWorldToLocal; - packed_float3 Primitive_ActorWorldPosition; - float Primitive_UseSingleSampleShadowFromStationaryLights; - packed_float3 Primitive_ObjectBounds; - float Primitive_LpvBiasMultiplier; - float Primitive_DecalReceiverMask; - float Primitive_PerObjectGBufferData; - float Primitive_UseVolumetricLightmapShadowFromStationaryLights; - float Primitive_UseEditorDepthTest; - float4 Primitive_ObjectOrientation; - float4 Primitive_NonUniformScale; - packed_float3 Primitive_LocalObjectBoundsMin; - float PrePadding_Primitive_380; - packed_float3 Primitive_LocalObjectBoundsMax; - uint Primitive_LightingChannelMask; - uint Primitive_LightmapDataIndex; - int Primitive_SingleCaptureIndex; -}; - -struct type_LandscapeParameters -{ - float4 LandscapeParameters_HeightmapUVScaleBias; - float4 LandscapeParameters_WeightmapUVScaleBias; - float4 LandscapeParameters_LandscapeLightmapScaleBias; - float4 LandscapeParameters_SubsectionSizeVertsLayerUVPan; - float4 LandscapeParameters_SubsectionOffsetParams; - float4 LandscapeParameters_LightmapSubsectionOffsetParams; - float4x4 LandscapeParameters_LocalToWorldNoScaling; -}; - -struct type_Globals -{ - float4 LodBias; - float4 LodValues; - float4 SectionLods; - float4 NeighborSectionLod[4]; -}; - -struct main0_out -{ - float2 out_var_TEXCOORD0 [[user(locn0)]]; - float2 out_var_TEXCOORD1 [[user(locn1)]]; - float4 out_var_TEXCOORD2 [[user(locn2)]]; - float4 out_var_TEXCOORD3 [[user(locn3)]]; - float4 out_var_TEXCOORD8 [[user(locn4)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float4 in_var_ATTRIBUTE0 [[attribute(0)]]; - float4 in_var_ATTRIBUTE1_0 [[attribute(1)]]; - float4 in_var_ATTRIBUTE1_1 [[attribute(2)]]; -}; - -vertex main0_out main0(main0_in in [[stage_in]], constant type_View& View [[buffer(0)]], constant type_MobileBasePass& MobileBasePass [[buffer(1)]], constant type_Primitive& Primitive [[buffer(2)]], constant type_LandscapeParameters& LandscapeParameters [[buffer(3)]], constant type_Globals& _Globals [[buffer(4)]]) -{ - main0_out out = {}; - spvUnsafeArray in_var_ATTRIBUTE1 = {}; - in_var_ATTRIBUTE1[0] = in.in_var_ATTRIBUTE1_0; - in_var_ATTRIBUTE1[1] = in.in_var_ATTRIBUTE1_1; - spvUnsafeArray _97; - for (int _107 = 0; _107 < 1; ) - { - _97[_107] = float4(0.0); - _107++; - continue; - } - float4 _115 = in.in_var_ATTRIBUTE0 * float4(255.0); - float2 _116 = _115.zw; - float2 _119 = fract(_116 * float2(0.5)) * float2(2.0); - float2 _121 = (_116 - _119) * float2(0.0039215688593685626983642578125); - float2 _122 = _115.xy; - float2 _126 = _122 * float2(_Globals.LodValues.w); - float _127 = _126.y; - float _128 = _126.x; - float4 _132 = float4(_127, _128, 1.0 - _128, 1.0 - _127) * float4(2.0); - float4 _186; - if (_119.y > 0.5) - { - float4 _161; - if (_119.x > 0.5) - { - _161 = (_132 * float4(_Globals.SectionLods.w)) + ((float4(1.0) - _132) * _Globals.NeighborSectionLod[3]); - } - else - { - _161 = (_132 * float4(_Globals.SectionLods.z)) + ((float4(1.0) - _132) * _Globals.NeighborSectionLod[2]); - } - _186 = _161; - } - else - { - float4 _185; - if (_119.x > 0.5) - { - _185 = (_132 * float4(_Globals.SectionLods.y)) + ((float4(1.0) - _132) * _Globals.NeighborSectionLod[1]); - } - else - { - _185 = (_132 * float4(_Globals.SectionLods.x)) + ((float4(1.0) - _132) * _Globals.NeighborSectionLod[0]); - } - _186 = _185; - } - float _206; - if ((_128 + _127) > 1.0) - { - float _198; - if (_128 < _127) - { - _198 = _186.w; - } - else - { - _198 = _186.z; - } - _206 = _198; - } - else - { - float _205; - if (_128 < _127) - { - _205 = _186.y; - } - else - { - _205 = _186.x; - } - _206 = _205; - } - float _207 = floor(_206); - float _220 = _121.x; - float3 _235 = select(select(select(select(select(float3(0.03125, _121.yy), float3(0.0625, _220, _121.y), bool3(_207 < 5.0)), float3(0.125, in_var_ATTRIBUTE1[1].w, _220), bool3(_207 < 4.0)), float3(0.25, in_var_ATTRIBUTE1[1].zw), bool3(_207 < 3.0)), float3(0.5, in_var_ATTRIBUTE1[1].yz), bool3(_207 < 2.0)), float3(1.0, in_var_ATTRIBUTE1[1].xy), bool3(_207 < 1.0)); - float _236 = _235.x; - float _245 = (((in_var_ATTRIBUTE1[0].x * 65280.0) + (in_var_ATTRIBUTE1[0].y * 255.0)) - 32768.0) * 0.0078125; - float _252 = (((in_var_ATTRIBUTE1[0].z * 65280.0) + (in_var_ATTRIBUTE1[0].w * 255.0)) - 32768.0) * 0.0078125; - float2 _257 = floor(_122 * float2(_236)); - float2 _271 = float2((LandscapeParameters.LandscapeParameters_SubsectionSizeVertsLayerUVPan.x * _236) - 1.0, fast::max((LandscapeParameters.LandscapeParameters_SubsectionSizeVertsLayerUVPan.x * 0.5) * _236, 2.0) - 1.0) * float2(LandscapeParameters.LandscapeParameters_SubsectionSizeVertsLayerUVPan.y); - float3 _287 = mix(float3(_257 / float2(_271.x), mix(_245, _252, _235.y)), float3(floor(_257 * float2(0.5)) / float2(_271.y), mix(_245, _252, _235.z)), float3(_206 - _207)); - float2 _288 = _119.xy; - float2 _292 = _288 * LandscapeParameters.LandscapeParameters_SubsectionOffsetParams.ww; - float3 _296 = _287 + float3(_292, 0.0); - float4 _322 = float4((((Primitive.Primitive_LocalToWorld[0u].xyz * _296.xxx) + (Primitive.Primitive_LocalToWorld[1u].xyz * _296.yyy)) + (Primitive.Primitive_LocalToWorld[2u].xyz * _296.zzz)) + (Primitive.Primitive_LocalToWorld[3u].xyz + float3(View.View_PreViewTranslation)), 1.0); - float2 _323 = _287.xy; - float4 _338 = float4(_322.x, _322.y, _322.z, _322.w); - float4 _339 = View.View_TranslatedWorldToClip * _338; - float3 _341 = _322.xyz - float3(View.View_TranslatedWorldCameraOrigin); - float _345 = dot(_341, _341); - float _346 = rsqrt(_345); - float _347 = _345 * _346; - float _354 = _341.z; - float _357 = fast::max(0.0, MobileBasePass.MobileBasePass_Fog_ExponentialFogParameters.w); - float _393; - float _394; - float _395; - float _396; - if (_357 > 0.0) - { - float _361 = _357 * _346; - float _362 = _361 * _354; - float _365 = View.View_WorldCameraOrigin[2] + _362; - _393 = (1.0 - _361) * _347; - _394 = MobileBasePass.MobileBasePass_Fog_ExponentialFogParameters2.z * exp2(-fast::max(-127.0, MobileBasePass.MobileBasePass_Fog_ExponentialFogParameters2.y * (_365 - MobileBasePass.MobileBasePass_Fog_ExponentialFogParameters2.w))); - _395 = MobileBasePass.MobileBasePass_Fog_ExponentialFogParameters3.x * exp2(-fast::max(-127.0, MobileBasePass.MobileBasePass_Fog_ExponentialFogParameters.y * (_365 - MobileBasePass.MobileBasePass_Fog_ExponentialFogParameters3.y))); - _396 = _354 - _362; - } - else - { - _393 = _347; - _394 = MobileBasePass.MobileBasePass_Fog_ExponentialFogParameters2.x; - _395 = MobileBasePass.MobileBasePass_Fog_ExponentialFogParameters.x; - _396 = _354; - } - float _400 = fast::max(-127.0, MobileBasePass.MobileBasePass_Fog_ExponentialFogParameters.y * _396); - float _405 = log(2.0); - float _407 = 0.5 * (_405 * _405); - float _417 = fast::max(-127.0, MobileBasePass.MobileBasePass_Fog_ExponentialFogParameters2.y * _396); - float _428 = (_395 * ((abs(_400) > 0.00999999977648258209228515625) ? ((1.0 - exp2(-_400)) / _400) : (_405 - (_407 * _400)))) + (_394 * ((abs(_417) > 0.00999999977648258209228515625) ? ((1.0 - exp2(-_417)) / _417) : (_405 - (_407 * _417)))); - float3 _459; - if (MobileBasePass.MobileBasePass_Fog_InscatteringLightDirection.w >= 0.0) - { - _459 = (MobileBasePass.MobileBasePass_Fog_DirectionalInscatteringColor.xyz * float3(pow(fast::clamp(dot(_341 * float3(_346), MobileBasePass.MobileBasePass_Fog_InscatteringLightDirection.xyz), 0.0, 1.0), MobileBasePass.MobileBasePass_Fog_DirectionalInscatteringColor.w))) * float3(1.0 - fast::clamp(exp2(-(_428 * fast::max(_393 - MobileBasePass.MobileBasePass_Fog_InscatteringLightDirection.w, 0.0))), 0.0, 1.0)); - } - else - { - _459 = float3(0.0); - } - bool _468 = (MobileBasePass.MobileBasePass_Fog_ExponentialFogParameters3.w > 0.0) && (_347 > MobileBasePass.MobileBasePass_Fog_ExponentialFogParameters3.w); - float _471 = _468 ? 1.0 : fast::max(fast::clamp(exp2(-(_428 * _393)), 0.0, 1.0), MobileBasePass.MobileBasePass_Fog_ExponentialFogColorParameter.w); - _97[0] = float4((MobileBasePass.MobileBasePass_Fog_ExponentialFogColorParameter.xyz * float3(1.0 - _471)) + select(_459, float3(0.0), bool3(_468)), _471); - float4 _482 = _338; - _482.w = _339.w; - out.out_var_TEXCOORD0 = ((_323 + LandscapeParameters.LandscapeParameters_SubsectionSizeVertsLayerUVPan.zw) + _292).xy; - out.out_var_TEXCOORD1 = ((_323 * LandscapeParameters.LandscapeParameters_WeightmapUVScaleBias.xy) + LandscapeParameters.LandscapeParameters_WeightmapUVScaleBias.zw) + (_288 * LandscapeParameters.LandscapeParameters_SubsectionOffsetParams.zz); - out.out_var_TEXCOORD2 = float4(float4(0.0).x, float4(0.0).y, _97[0].x, _97[0].y); - out.out_var_TEXCOORD3 = float4(float4(0.0).x, float4(0.0).y, _97[0].z, _97[0].w); - out.out_var_TEXCOORD8 = _482; - out.gl_Position = _339; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders-ue4/asm/vert/texture-buffer.asm.vert b/third_party/spirv-cross/reference/shaders-ue4/asm/vert/texture-buffer.asm.vert deleted file mode 100644 index 6384e1b9d4..0000000000 --- a/third_party/spirv-cross/reference/shaders-ue4/asm/vert/texture-buffer.asm.vert +++ /dev/null @@ -1,387 +0,0 @@ -#pragma clang diagnostic ignored "-Wmissing-prototypes" - -#include -#include - -using namespace metal; - -struct type_View -{ - float4x4 View_TranslatedWorldToClip; - float4x4 View_WorldToClip; - float4x4 View_TranslatedWorldToView; - float4x4 View_ViewToTranslatedWorld; - float4x4 View_TranslatedWorldToCameraView; - float4x4 View_CameraViewToTranslatedWorld; - float4x4 View_ViewToClip; - float4x4 View_ViewToClipNoAA; - float4x4 View_ClipToView; - float4x4 View_ClipToTranslatedWorld; - float4x4 View_SVPositionToTranslatedWorld; - float4x4 View_ScreenToWorld; - float4x4 View_ScreenToTranslatedWorld; - packed_float3 View_ViewForward; - float PrePadding_View_844; - packed_float3 View_ViewUp; - float PrePadding_View_860; - packed_float3 View_ViewRight; - float PrePadding_View_876; - packed_float3 View_HMDViewNoRollUp; - float PrePadding_View_892; - packed_float3 View_HMDViewNoRollRight; - float PrePadding_View_908; - float4 View_InvDeviceZToWorldZTransform; - float4 View_ScreenPositionScaleBias; - packed_float3 View_WorldCameraOrigin; - float PrePadding_View_956; - packed_float3 View_TranslatedWorldCameraOrigin; - float PrePadding_View_972; - packed_float3 View_WorldViewOrigin; - float PrePadding_View_988; - packed_float3 View_PreViewTranslation; - float PrePadding_View_1004; - float4x4 View_PrevProjection; - float4x4 View_PrevViewProj; - float4x4 View_PrevViewRotationProj; - float4x4 View_PrevViewToClip; - float4x4 View_PrevClipToView; - float4x4 View_PrevTranslatedWorldToClip; - float4x4 View_PrevTranslatedWorldToView; - float4x4 View_PrevViewToTranslatedWorld; - float4x4 View_PrevTranslatedWorldToCameraView; - float4x4 View_PrevCameraViewToTranslatedWorld; - packed_float3 View_PrevWorldCameraOrigin; - float PrePadding_View_1660; - packed_float3 View_PrevWorldViewOrigin; - float PrePadding_View_1676; - packed_float3 View_PrevPreViewTranslation; - float PrePadding_View_1692; - float4x4 View_PrevInvViewProj; - float4x4 View_PrevScreenToTranslatedWorld; - float4x4 View_ClipToPrevClip; - float4 View_TemporalAAJitter; - float4 View_GlobalClippingPlane; - float2 View_FieldOfViewWideAngles; - float2 View_PrevFieldOfViewWideAngles; - float4 View_ViewRectMin; - float4 View_ViewSizeAndInvSize; - float4 View_BufferSizeAndInvSize; - float4 View_BufferBilinearUVMinMax; - int View_NumSceneColorMSAASamples; - float View_PreExposure; - float View_OneOverPreExposure; - float PrePadding_View_2012; - float4 View_DiffuseOverrideParameter; - float4 View_SpecularOverrideParameter; - float4 View_NormalOverrideParameter; - float2 View_RoughnessOverrideParameter; - float View_PrevFrameGameTime; - float View_PrevFrameRealTime; - float View_OutOfBoundsMask; - float PrePadding_View_2084; - float PrePadding_View_2088; - float PrePadding_View_2092; - packed_float3 View_WorldCameraMovementSinceLastFrame; - float View_CullingSign; - float View_NearPlane; - float View_AdaptiveTessellationFactor; - float View_GameTime; - float View_RealTime; - float View_DeltaTime; - float View_MaterialTextureMipBias; - float View_MaterialTextureDerivativeMultiply; - uint View_Random; - uint View_FrameNumber; - uint View_StateFrameIndexMod8; - uint View_StateFrameIndex; - float View_CameraCut; - float View_UnlitViewmodeMask; - float PrePadding_View_2164; - float PrePadding_View_2168; - float PrePadding_View_2172; - float4 View_DirectionalLightColor; - packed_float3 View_DirectionalLightDirection; - float PrePadding_View_2204; - float4 View_TranslucencyLightingVolumeMin[2]; - float4 View_TranslucencyLightingVolumeInvSize[2]; - float4 View_TemporalAAParams; - float4 View_CircleDOFParams; - float View_DepthOfFieldSensorWidth; - float View_DepthOfFieldFocalDistance; - float View_DepthOfFieldScale; - float View_DepthOfFieldFocalLength; - float View_DepthOfFieldFocalRegion; - float View_DepthOfFieldNearTransitionRegion; - float View_DepthOfFieldFarTransitionRegion; - float View_MotionBlurNormalizedToPixel; - float View_bSubsurfacePostprocessEnabled; - float View_GeneralPurposeTweak; - float View_DemosaicVposOffset; - float PrePadding_View_2348; - packed_float3 View_IndirectLightingColorScale; - float View_HDR32bppEncodingMode; - packed_float3 View_AtmosphericFogSunDirection; - float View_AtmosphericFogSunPower; - float View_AtmosphericFogPower; - float View_AtmosphericFogDensityScale; - float View_AtmosphericFogDensityOffset; - float View_AtmosphericFogGroundOffset; - float View_AtmosphericFogDistanceScale; - float View_AtmosphericFogAltitudeScale; - float View_AtmosphericFogHeightScaleRayleigh; - float View_AtmosphericFogStartDistance; - float View_AtmosphericFogDistanceOffset; - float View_AtmosphericFogSunDiscScale; - uint View_AtmosphericFogRenderMask; - uint View_AtmosphericFogInscatterAltitudeSampleNum; - float4 View_AtmosphericFogSunColor; - packed_float3 View_NormalCurvatureToRoughnessScaleBias; - float View_RenderingReflectionCaptureMask; - float4 View_AmbientCubemapTint; - float View_AmbientCubemapIntensity; - float View_SkyLightParameters; - float PrePadding_View_2488; - float PrePadding_View_2492; - float4 View_SkyLightColor; - float4 View_SkyIrradianceEnvironmentMap[7]; - float View_MobilePreviewMode; - float View_HMDEyePaddingOffset; - float View_ReflectionCubemapMaxMip; - float View_ShowDecalsMask; - uint View_DistanceFieldAOSpecularOcclusionMode; - float View_IndirectCapsuleSelfShadowingIntensity; - float PrePadding_View_2648; - float PrePadding_View_2652; - packed_float3 View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight; - int View_StereoPassIndex; - float4 View_GlobalVolumeCenterAndExtent[4]; - float4 View_GlobalVolumeWorldToUVAddAndMul[4]; - float View_GlobalVolumeDimension; - float View_GlobalVolumeTexelSize; - float View_MaxGlobalDistance; - float View_bCheckerboardSubsurfaceProfileRendering; - packed_float3 View_VolumetricFogInvGridSize; - float PrePadding_View_2828; - packed_float3 View_VolumetricFogGridZParams; - float PrePadding_View_2844; - float2 View_VolumetricFogSVPosToVolumeUV; - float View_VolumetricFogMaxDistance; - float PrePadding_View_2860; - packed_float3 View_VolumetricLightmapWorldToUVScale; - float PrePadding_View_2876; - packed_float3 View_VolumetricLightmapWorldToUVAdd; - float PrePadding_View_2892; - packed_float3 View_VolumetricLightmapIndirectionTextureSize; - float View_VolumetricLightmapBrickSize; - packed_float3 View_VolumetricLightmapBrickTexelSize; - float View_StereoIPD; - float View_IndirectLightingCacheShowFlag; - float View_EyeToPixelSpreadAngle; -}; - -struct type_Primitive -{ - float4x4 Primitive_LocalToWorld; - float4 Primitive_InvNonUniformScaleAndDeterminantSign; - float4 Primitive_ObjectWorldPositionAndRadius; - float4x4 Primitive_WorldToLocal; - float4x4 Primitive_PreviousLocalToWorld; - float4x4 Primitive_PreviousWorldToLocal; - packed_float3 Primitive_ActorWorldPosition; - float Primitive_UseSingleSampleShadowFromStationaryLights; - packed_float3 Primitive_ObjectBounds; - float Primitive_LpvBiasMultiplier; - float Primitive_DecalReceiverMask; - float Primitive_PerObjectGBufferData; - float Primitive_UseVolumetricLightmapShadowFromStationaryLights; - float Primitive_UseEditorDepthTest; - float4 Primitive_ObjectOrientation; - float4 Primitive_NonUniformScale; - packed_float3 Primitive_LocalObjectBoundsMin; - float PrePadding_Primitive_380; - packed_float3 Primitive_LocalObjectBoundsMax; - uint Primitive_LightingChannelMask; - uint Primitive_LightmapDataIndex; - int Primitive_SingleCaptureIndex; -}; - -struct type_MobileShadowDepthPass -{ - float PrePadding_MobileShadowDepthPass_0; - float PrePadding_MobileShadowDepthPass_4; - float PrePadding_MobileShadowDepthPass_8; - float PrePadding_MobileShadowDepthPass_12; - float PrePadding_MobileShadowDepthPass_16; - float PrePadding_MobileShadowDepthPass_20; - float PrePadding_MobileShadowDepthPass_24; - float PrePadding_MobileShadowDepthPass_28; - float PrePadding_MobileShadowDepthPass_32; - float PrePadding_MobileShadowDepthPass_36; - float PrePadding_MobileShadowDepthPass_40; - float PrePadding_MobileShadowDepthPass_44; - float PrePadding_MobileShadowDepthPass_48; - float PrePadding_MobileShadowDepthPass_52; - float PrePadding_MobileShadowDepthPass_56; - float PrePadding_MobileShadowDepthPass_60; - float PrePadding_MobileShadowDepthPass_64; - float PrePadding_MobileShadowDepthPass_68; - float PrePadding_MobileShadowDepthPass_72; - float PrePadding_MobileShadowDepthPass_76; - float4x4 MobileShadowDepthPass_ProjectionMatrix; - float2 MobileShadowDepthPass_ShadowParams; - float MobileShadowDepthPass_bClampToNearPlane; - float PrePadding_MobileShadowDepthPass_156; - float4x4 MobileShadowDepthPass_ShadowViewProjectionMatrices[6]; -}; - -struct type_EmitterDynamicUniforms -{ - float2 EmitterDynamicUniforms_LocalToWorldScale; - float EmitterDynamicUniforms_EmitterInstRandom; - float PrePadding_EmitterDynamicUniforms_12; - float4 EmitterDynamicUniforms_AxisLockRight; - float4 EmitterDynamicUniforms_AxisLockUp; - float4 EmitterDynamicUniforms_DynamicColor; - float4 EmitterDynamicUniforms_MacroUVParameters; -}; - -struct type_EmitterUniforms -{ - float4 EmitterUniforms_ColorCurve; - float4 EmitterUniforms_ColorScale; - float4 EmitterUniforms_ColorBias; - float4 EmitterUniforms_MiscCurve; - float4 EmitterUniforms_MiscScale; - float4 EmitterUniforms_MiscBias; - float4 EmitterUniforms_SizeBySpeed; - float4 EmitterUniforms_SubImageSize; - float4 EmitterUniforms_TangentSelector; - packed_float3 EmitterUniforms_CameraFacingBlend; - float EmitterUniforms_RemoveHMDRoll; - float EmitterUniforms_RotationRateScale; - float EmitterUniforms_RotationBias; - float EmitterUniforms_CameraMotionBlurAmount; - float PrePadding_EmitterUniforms_172; - float2 EmitterUniforms_PivotOffset; -}; - -struct type_Globals -{ - uint ParticleIndicesOffset; -}; - -struct main0_out -{ - float out_var_TEXCOORD6 [[user(locn0)]]; - float4 gl_Position [[position]]; -}; - -struct main0_in -{ - float2 in_var_ATTRIBUTE0 [[attribute(0)]]; -}; - -// Returns 2D texture coords corresponding to 1D texel buffer coords -static inline __attribute__((always_inline)) -uint2 spvTexelBufferCoord(uint tc) -{ - return uint2(tc % 4096, tc / 4096); -} - -vertex main0_out main0(main0_in in [[stage_in]], constant type_View& View [[buffer(0)]], constant type_Primitive& Primitive [[buffer(1)]], constant type_MobileShadowDepthPass& MobileShadowDepthPass [[buffer(2)]], constant type_EmitterDynamicUniforms& EmitterDynamicUniforms [[buffer(3)]], constant type_EmitterUniforms& EmitterUniforms [[buffer(4)]], constant type_Globals& _Globals [[buffer(5)]], texture2d ParticleIndices [[texture(0)]], texture2d PositionTexture [[texture(1)]], texture2d VelocityTexture [[texture(2)]], texture2d AttributesTexture [[texture(3)]], texture2d CurveTexture [[texture(4)]], sampler PositionTextureSampler [[sampler(0)]], sampler VelocityTextureSampler [[sampler(1)]], sampler AttributesTextureSampler [[sampler(2)]], sampler CurveTextureSampler [[sampler(3)]], uint gl_VertexIndex [[vertex_id]], uint gl_InstanceIndex [[instance_id]]) -{ - main0_out out = {}; - float2 _133 = ParticleIndices.read(spvTexelBufferCoord((_Globals.ParticleIndicesOffset + ((gl_InstanceIndex * 16u) + (gl_VertexIndex / 4u))))).xy; - float4 _137 = PositionTexture.sample(PositionTextureSampler, _133, level(0.0)); - float4 _145 = AttributesTexture.sample(AttributesTextureSampler, _133, level(0.0)); - float _146 = _137.w; - float3 _158 = float3x3(Primitive.Primitive_LocalToWorld[0].xyz, Primitive.Primitive_LocalToWorld[1].xyz, Primitive.Primitive_LocalToWorld[2].xyz) * VelocityTexture.sample(VelocityTextureSampler, _133, level(0.0)).xyz; - float3 _160 = normalize(_158 + float3(0.0, 0.0, 9.9999997473787516355514526367188e-05)); - float2 _204 = ((((_145.xy + float2((_145.x < 0.5) ? 0.0 : (-0.5), (_145.y < 0.5) ? 0.0 : (-0.5))) * float2(2.0)) * (((CurveTexture.sample(CurveTextureSampler, (EmitterUniforms.EmitterUniforms_MiscCurve.xy + (EmitterUniforms.EmitterUniforms_MiscCurve.zw * float2(_146))), level(0.0)) * EmitterUniforms.EmitterUniforms_MiscScale) + EmitterUniforms.EmitterUniforms_MiscBias).xy * EmitterDynamicUniforms.EmitterDynamicUniforms_LocalToWorldScale)) * fast::min(fast::max(EmitterUniforms.EmitterUniforms_SizeBySpeed.xy * float2(length(_158)), float2(1.0)), EmitterUniforms.EmitterUniforms_SizeBySpeed.zw)) * float2(step(_146, 1.0)); - float3 _239 = float4((((Primitive.Primitive_LocalToWorld[0u].xyz * _137.xxx) + (Primitive.Primitive_LocalToWorld[1u].xyz * _137.yyy)) + (Primitive.Primitive_LocalToWorld[2u].xyz * _137.zzz)) + (Primitive.Primitive_LocalToWorld[3u].xyz + float3(View.View_PreViewTranslation)), 1.0).xyz; - float3 _242 = float3(EmitterUniforms.EmitterUniforms_RemoveHMDRoll); - float3 _251 = mix(mix(float3(View.View_ViewRight), float3(View.View_HMDViewNoRollRight), _242), EmitterDynamicUniforms.EmitterDynamicUniforms_AxisLockRight.xyz, float3(EmitterDynamicUniforms.EmitterDynamicUniforms_AxisLockRight.w)); - float3 _259 = mix(-mix(float3(View.View_ViewUp), float3(View.View_HMDViewNoRollUp), _242), EmitterDynamicUniforms.EmitterDynamicUniforms_AxisLockUp.xyz, float3(EmitterDynamicUniforms.EmitterDynamicUniforms_AxisLockUp.w)); - float3 _260 = float3(View.View_TranslatedWorldCameraOrigin) - _239; - float _261 = dot(_260, _260); - float3 _265 = _260 / float3(sqrt(fast::max(_261, 0.00999999977648258209228515625))); - float3 _335; - float3 _336; - if (EmitterUniforms.EmitterUniforms_CameraFacingBlend[0] > 0.0) - { - float3 _279 = cross(_265, float3(0.0, 0.0, 1.0)); - float3 _284 = _279 / float3(sqrt(fast::max(dot(_279, _279), 0.00999999977648258209228515625))); - float3 _286 = float3(fast::clamp((_261 * EmitterUniforms.EmitterUniforms_CameraFacingBlend[1]) - EmitterUniforms.EmitterUniforms_CameraFacingBlend[2], 0.0, 1.0)); - _335 = normalize(mix(_251, _284, _286)); - _336 = normalize(mix(_259, cross(_265, _284), _286)); - } - else - { - float3 _333; - float3 _334; - if (EmitterUniforms.EmitterUniforms_TangentSelector.y > 0.0) - { - float3 _297 = cross(_265, _160); - _333 = _297 / float3(sqrt(fast::max(dot(_297, _297), 0.00999999977648258209228515625))); - _334 = -_160; - } - else - { - float3 _331; - float3 _332; - if (EmitterUniforms.EmitterUniforms_TangentSelector.z > 0.0) - { - float3 _310 = cross(EmitterDynamicUniforms.EmitterDynamicUniforms_AxisLockRight.xyz, _265); - _331 = EmitterDynamicUniforms.EmitterDynamicUniforms_AxisLockRight.xyz; - _332 = -(_310 / float3(sqrt(fast::max(dot(_310, _310), 0.00999999977648258209228515625)))); - } - else - { - float3 _329; - float3 _330; - if (EmitterUniforms.EmitterUniforms_TangentSelector.w > 0.0) - { - float3 _322 = cross(_265, float3(0.0, 0.0, 1.0)); - float3 _327 = _322 / float3(sqrt(fast::max(dot(_322, _322), 0.00999999977648258209228515625))); - _329 = _327; - _330 = cross(_265, _327); - } - else - { - _329 = _251; - _330 = _259; - } - _331 = _329; - _332 = _330; - } - _333 = _331; - _334 = _332; - } - _335 = _333; - _336 = _334; - } - float _339 = ((_145.z + ((_145.w * EmitterUniforms.EmitterUniforms_RotationRateScale) * _146)) * 6.283185482025146484375) + EmitterUniforms.EmitterUniforms_RotationBias; - float3 _342 = float3(sin(_339)); - float3 _344 = float3(cos(_339)); - float4 _371 = float4(_239 + ((float3(_204.x * (in.in_var_ATTRIBUTE0.x + EmitterUniforms.EmitterUniforms_PivotOffset.x)) * ((_342 * _336) + (_344 * _335))) + (float3(_204.y * (in.in_var_ATTRIBUTE0.y + EmitterUniforms.EmitterUniforms_PivotOffset.y)) * ((_344 * _336) - (_342 * _335)))), 1.0); - float4 _375 = MobileShadowDepthPass.MobileShadowDepthPass_ProjectionMatrix * float4(_371.x, _371.y, _371.z, _371.w); - float4 _386; - if ((MobileShadowDepthPass.MobileShadowDepthPass_bClampToNearPlane > 0.0) && (_375.z < 0.0)) - { - float4 _384 = _375; - _384.z = 9.9999999747524270787835121154785e-07; - float4 _385 = _384; - _385.w = 1.0; - _386 = _385; - } - else - { - _386 = _375; - } - float4 _396 = _386; - _396.z = ((_386.z * MobileShadowDepthPass.MobileShadowDepthPass_ShadowParams.y) + MobileShadowDepthPass.MobileShadowDepthPass_ShadowParams.x) * _386.w; - out.out_var_TEXCOORD6 = 0.0; - out.gl_Position = _396; - return out; -} - diff --git a/third_party/spirv-cross/reference/shaders/amd/gcn_shader.comp b/third_party/spirv-cross/reference/shaders/amd/gcn_shader.comp deleted file mode 100644 index 1c0c5ae38b..0000000000 --- a/third_party/spirv-cross/reference/shaders/amd/gcn_shader.comp +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 -#extension GL_ARB_gpu_shader_int64 : require -#extension GL_AMD_gcn_shader : require -layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in; - -void main() -{ - float cubeFace = cubeFaceIndexAMD(vec3(0.0)); - vec2 cubeFaceCoord = cubeFaceCoordAMD(vec3(1.0)); - uint64_t time = timeAMD(); -} - diff --git a/third_party/spirv-cross/reference/shaders/amd/shader_ballot.comp b/third_party/spirv-cross/reference/shaders/amd/shader_ballot.comp deleted file mode 100644 index 1fade727c6..0000000000 --- a/third_party/spirv-cross/reference/shaders/amd/shader_ballot.comp +++ /dev/null @@ -1,32 +0,0 @@ -#version 450 -#extension GL_ARB_gpu_shader_int64 : require -#extension GL_ARB_shader_ballot : require -#extension GL_AMD_shader_ballot : require -layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer inputData -{ - float inputDataArray[]; -} _12; - -layout(binding = 1, std430) buffer outputData -{ - float outputDataArray[]; -} _74; - -void main() -{ - float thisLaneData = _12.inputDataArray[gl_LocalInvocationID.x]; - bool laneActive = thisLaneData > 0.0; - uint thisLaneOutputSlot = mbcntAMD(packUint2x32(uvec2(uvec4(unpackUint2x32(ballotARB(laneActive)), 0u, 0u).xy))); - int firstInvocation = readFirstInvocationARB(1); - int invocation = readInvocationARB(1, 0u); - vec3 swizzleInvocations = swizzleInvocationsAMD(vec3(0.0, 2.0, 1.0), uvec4(3u)); - vec3 swizzelInvocationsMasked = swizzleInvocationsMaskedAMD(vec3(0.0, 2.0, 1.0), uvec3(2u)); - vec3 writeInvocation = writeInvocationAMD(swizzleInvocations, swizzelInvocationsMasked, 0u); - if (laneActive) - { - _74.outputDataArray[thisLaneOutputSlot] = thisLaneData; - } -} - diff --git a/third_party/spirv-cross/reference/shaders/amd/shader_group_vote.comp b/third_party/spirv-cross/reference/shaders/amd/shader_group_vote.comp deleted file mode 100644 index 007d9f9841..0000000000 --- a/third_party/spirv-cross/reference/shaders/amd/shader_group_vote.comp +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 -#extension GL_ARB_shader_group_vote : require -layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer inputData -{ - float inputDataArray[]; -} _12; - -void main() -{ - float thisLaneData = _12.inputDataArray[gl_LocalInvocationID.x]; - bool laneActive = thisLaneData > 0.0; - bool allInvocations = allInvocationsARB(laneActive); - bool anyInvocations = anyInvocationARB(laneActive); - bool allInvocationsEqual = allInvocationsEqualARB(laneActive); -} - diff --git a/third_party/spirv-cross/reference/shaders/amd/shader_trinary_minmax.comp b/third_party/spirv-cross/reference/shaders/amd/shader_trinary_minmax.comp deleted file mode 100644 index ece39b7106..0000000000 --- a/third_party/spirv-cross/reference/shaders/amd/shader_trinary_minmax.comp +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 -#extension GL_AMD_shader_trinary_minmax : require -layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in; - -void main() -{ - int t11 = min3(0, 3, 2); - int t12 = max3(0, 3, 2); - int t13 = mid3(0, 3, 2); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/comp/atomic-decrement.asm.comp b/third_party/spirv-cross/reference/shaders/asm/comp/atomic-decrement.asm.comp deleted file mode 100644 index 5ece8257da..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/comp/atomic-decrement.asm.comp +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 -layout(local_size_x = 4, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer u0_counters -{ - uint c; -} u0_counter; - -layout(binding = 0, r32ui) uniform writeonly uimageBuffer u0; - -void main() -{ - uint _29 = atomicAdd(u0_counter.c, uint(-1)); - vec4 r0; - r0.x = uintBitsToFloat(_29); - imageStore(u0, int((uint(floatBitsToInt(r0.x)) * 1u) + (uint(0) >> 2u)), uvec4(uint(int(gl_GlobalInvocationID.x)))); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/comp/atomic-increment.asm.comp b/third_party/spirv-cross/reference/shaders/asm/comp/atomic-increment.asm.comp deleted file mode 100644 index 2a8f711823..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/comp/atomic-increment.asm.comp +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 -layout(local_size_x = 4, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer u0_counters -{ - uint c; -} u0_counter; - -layout(binding = 0, r32ui) uniform writeonly uimageBuffer u0; - -void main() -{ - uint _29 = atomicAdd(u0_counter.c, 1u); - vec4 r0; - r0.x = uintBitsToFloat(_29); - imageStore(u0, int((uint(floatBitsToInt(r0.x)) * 1u) + (uint(0) >> 2u)), uvec4(uint(int(gl_GlobalInvocationID.x)))); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/comp/bitcast_iadd.asm.comp b/third_party/spirv-cross/reference/shaders/asm/comp/bitcast_iadd.asm.comp deleted file mode 100644 index bed2dffccb..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/comp/bitcast_iadd.asm.comp +++ /dev/null @@ -1,27 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) restrict buffer _3_5 -{ - ivec4 _m0; - uvec4 _m1; -} _5; - -layout(binding = 1, std430) restrict buffer _4_6 -{ - uvec4 _m0; - ivec4 _m1; -} _6; - -void main() -{ - _6._m0 = _5._m1 + uvec4(_5._m0); - _6._m0 = uvec4(_5._m0) + _5._m1; - _6._m0 = _5._m1 + _5._m1; - _6._m0 = uvec4(_5._m0 + _5._m0); - _6._m1 = ivec4(_5._m1 + _5._m1); - _6._m1 = _5._m0 + _5._m0; - _6._m1 = ivec4(_5._m1) + _5._m0; - _6._m1 = _5._m0 + ivec4(_5._m1); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/comp/bitcast_icmp.asm.comp b/third_party/spirv-cross/reference/shaders/asm/comp/bitcast_icmp.asm.comp deleted file mode 100644 index bed3b90a7b..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/comp/bitcast_icmp.asm.comp +++ /dev/null @@ -1,27 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) restrict buffer _3_5 -{ - ivec4 _m0; - uvec4 _m1; -} _5; - -layout(binding = 1, std430) restrict buffer _4_6 -{ - uvec4 _m0; - ivec4 _m1; -} _6; - -void main() -{ - _6._m0 = mix(uvec4(0u), uvec4(1u), lessThan(ivec4(_5._m1), _5._m0)); - _6._m0 = mix(uvec4(0u), uvec4(1u), lessThanEqual(ivec4(_5._m1), _5._m0)); - _6._m0 = mix(uvec4(0u), uvec4(1u), lessThan(_5._m1, uvec4(_5._m0))); - _6._m0 = mix(uvec4(0u), uvec4(1u), lessThanEqual(_5._m1, uvec4(_5._m0))); - _6._m0 = mix(uvec4(0u), uvec4(1u), greaterThan(ivec4(_5._m1), _5._m0)); - _6._m0 = mix(uvec4(0u), uvec4(1u), greaterThanEqual(ivec4(_5._m1), _5._m0)); - _6._m0 = mix(uvec4(0u), uvec4(1u), greaterThan(_5._m1, uvec4(_5._m0))); - _6._m0 = mix(uvec4(0u), uvec4(1u), greaterThanEqual(_5._m1, uvec4(_5._m0))); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/comp/bitcast_iequal.asm.comp b/third_party/spirv-cross/reference/shaders/asm/comp/bitcast_iequal.asm.comp deleted file mode 100644 index bdb3eeb9af..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/comp/bitcast_iequal.asm.comp +++ /dev/null @@ -1,33 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer _3_5 -{ - ivec4 _m0; - uvec4 _m1; -} _5; - -layout(binding = 1, std430) buffer _4_6 -{ - uvec4 _m0; - ivec4 _m1; -} _6; - -void main() -{ - ivec4 _30 = _5._m0; - uvec4 _31 = _5._m1; - bvec4 _34 = equal(ivec4(_31), _30); - bvec4 _35 = equal(_30, ivec4(_31)); - bvec4 _36 = equal(_31, _31); - bvec4 _37 = equal(_30, _30); - _6._m0 = mix(uvec4(0u), uvec4(1u), _34); - _6._m0 = mix(uvec4(0u), uvec4(1u), _35); - _6._m0 = mix(uvec4(0u), uvec4(1u), _36); - _6._m0 = mix(uvec4(0u), uvec4(1u), _37); - _6._m1 = mix(ivec4(0), ivec4(1), _34); - _6._m1 = mix(ivec4(0), ivec4(1), _35); - _6._m1 = mix(ivec4(0), ivec4(1), _36); - _6._m1 = mix(ivec4(0), ivec4(1), _37); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/comp/bitcast_sar.asm.comp b/third_party/spirv-cross/reference/shaders/asm/comp/bitcast_sar.asm.comp deleted file mode 100644 index 283b444cce..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/comp/bitcast_sar.asm.comp +++ /dev/null @@ -1,29 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer _3_5 -{ - ivec4 _m0; - uvec4 _m1; -} _5; - -layout(binding = 1, std430) buffer _4_6 -{ - uvec4 _m0; - ivec4 _m1; -} _6; - -void main() -{ - ivec4 _22 = _5._m0; - uvec4 _23 = _5._m1; - _6._m0 = uvec4(ivec4(_23) >> _22); - _6._m0 = uvec4(_22 >> ivec4(_23)); - _6._m0 = uvec4(ivec4(_23) >> ivec4(_23)); - _6._m0 = uvec4(_22 >> _22); - _6._m1 = ivec4(_23) >> ivec4(_23); - _6._m1 = _22 >> _22; - _6._m1 = ivec4(_23) >> _22; - _6._m1 = _22 >> ivec4(_23); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/comp/bitcast_sdiv.asm.comp b/third_party/spirv-cross/reference/shaders/asm/comp/bitcast_sdiv.asm.comp deleted file mode 100644 index e28c481d21..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/comp/bitcast_sdiv.asm.comp +++ /dev/null @@ -1,29 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer _3_5 -{ - ivec4 _m0; - uvec4 _m1; -} _5; - -layout(binding = 1, std430) buffer _4_6 -{ - uvec4 _m0; - ivec4 _m1; -} _6; - -void main() -{ - ivec4 _22 = _5._m0; - uvec4 _23 = _5._m1; - _6._m0 = uvec4(ivec4(_23) / _22); - _6._m0 = uvec4(_22 / ivec4(_23)); - _6._m0 = uvec4(ivec4(_23) / ivec4(_23)); - _6._m0 = uvec4(_22 / _22); - _6._m1 = ivec4(_23) / ivec4(_23); - _6._m1 = _22 / _22; - _6._m1 = ivec4(_23) / _22; - _6._m1 = _22 / ivec4(_23); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/comp/bitcast_slr.asm.comp b/third_party/spirv-cross/reference/shaders/asm/comp/bitcast_slr.asm.comp deleted file mode 100644 index 78efaf3852..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/comp/bitcast_slr.asm.comp +++ /dev/null @@ -1,29 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer _3_5 -{ - ivec4 _m0; - uvec4 _m1; -} _5; - -layout(binding = 1, std430) buffer _4_6 -{ - uvec4 _m0; - ivec4 _m1; -} _6; - -void main() -{ - ivec4 _22 = _5._m0; - uvec4 _23 = _5._m1; - _6._m0 = _23 >> uvec4(_22); - _6._m0 = uvec4(_22) >> _23; - _6._m0 = _23 >> _23; - _6._m0 = uvec4(_22) >> uvec4(_22); - _6._m1 = ivec4(_23 >> _23); - _6._m1 = ivec4(uvec4(_22) >> uvec4(_22)); - _6._m1 = ivec4(_23 >> uvec4(_22)); - _6._m1 = ivec4(uvec4(_22) >> _23); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/comp/block-name-alias-global.asm.comp b/third_party/spirv-cross/reference/shaders/asm/comp/block-name-alias-global.asm.comp deleted file mode 100644 index 86ba0a3b9f..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/comp/block-name-alias-global.asm.comp +++ /dev/null @@ -1,37 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -struct A -{ - int a; - int b; -}; - -layout(binding = 1, std430) buffer C1 -{ - A Data[]; -} C1_1; - -layout(binding = 2, std140) uniform C2 -{ - A Data[1024]; -} C2_1; - -layout(binding = 0, std430) buffer B -{ - A Data[]; -} C3; - -layout(binding = 3, std140) uniform B -{ - A Data[1024]; -} C4; - -void main() -{ - C1_1.Data[gl_GlobalInvocationID.x].a = C2_1.Data[gl_GlobalInvocationID.x].a; - C1_1.Data[gl_GlobalInvocationID.x].b = C2_1.Data[gl_GlobalInvocationID.x].b; - C3.Data[gl_GlobalInvocationID.x].a = C4.Data[gl_GlobalInvocationID.x].a; - C3.Data[gl_GlobalInvocationID.x].b = C4.Data[gl_GlobalInvocationID.x].b; -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/comp/builtin-compute-bitcast.asm.comp b/third_party/spirv-cross/reference/shaders/asm/comp/builtin-compute-bitcast.asm.comp deleted file mode 100644 index abb8a7976c..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/comp/builtin-compute-bitcast.asm.comp +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer BUF -{ - int values[]; -} _6; - -void main() -{ - _6.values[int(gl_WorkGroupID.y)] = int(gl_GlobalInvocationID.z); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/comp/decoration-group.asm.comp b/third_party/spirv-cross/reference/shaders/asm/comp/decoration-group.asm.comp deleted file mode 100644 index 28ad4d41fd..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/comp/decoration-group.asm.comp +++ /dev/null @@ -1,38 +0,0 @@ -#version 430 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 5, std430) buffer _6_15 -{ - float _m0[]; -} _15; - -layout(binding = 0, std430) buffer _7_16 -{ - float _m0[]; -} _16; - -layout(binding = 1, std430) buffer _8_17 -{ - float _m0[]; -} _17; - -layout(binding = 2, std430) restrict readonly buffer _9_18 -{ - float _m0[]; -} _18; - -layout(binding = 3, std430) restrict readonly buffer _10_19 -{ - float _m0[]; -} _19; - -layout(binding = 4, std430) restrict readonly buffer _11_20 -{ - float _m0[]; -} _20; - -void main() -{ - _15._m0[gl_GlobalInvocationID.x] = (((_16._m0[gl_GlobalInvocationID.x] + _17._m0[gl_GlobalInvocationID.x]) + _18._m0[gl_GlobalInvocationID.x]) + _19._m0[gl_GlobalInvocationID.x]) + _20._m0[gl_GlobalInvocationID.x]; -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/comp/global-parameter-name-alias.asm.comp b/third_party/spirv-cross/reference/shaders/asm/comp/global-parameter-name-alias.asm.comp deleted file mode 100644 index 20db16f5fb..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/comp/global-parameter-name-alias.asm.comp +++ /dev/null @@ -1,27 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 1, std430) readonly buffer ssbo -{ - uint _data[]; -} ssbo_1; - -void Load(uint size) -{ - int byteAddrTemp = int(size >> uint(2)); - uvec4 data = uvec4(ssbo_1._data[byteAddrTemp], ssbo_1._data[byteAddrTemp + 1], ssbo_1._data[byteAddrTemp + 2], ssbo_1._data[byteAddrTemp + 3]); -} - -void _main(uvec3 id) -{ - uint param = 4u; - Load(param); -} - -void main() -{ - uvec3 id = gl_GlobalInvocationID; - uvec3 param = id; - _main(param); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/comp/hlsl-functionality.asm.comp b/third_party/spirv-cross/reference/shaders/asm/comp/hlsl-functionality.asm.comp deleted file mode 100644 index e80f52404c..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/comp/hlsl-functionality.asm.comp +++ /dev/null @@ -1,24 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer Buf -{ - vec4 _data[]; -} Buf_1; - -layout(binding = 1, std430) buffer Buf_count -{ - int _count; -} Buf_count_1; - -void _main() -{ - int _29 = atomicAdd(Buf_count_1._count, 1); - Buf_1._data[_29] = vec4(1.0); -} - -void main() -{ - _main(); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/comp/logical.asm.comp b/third_party/spirv-cross/reference/shaders/asm/comp/logical.asm.comp deleted file mode 100644 index 9ae25f78a9..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/comp/logical.asm.comp +++ /dev/null @@ -1,56 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer SSBO0 -{ - float a; - vec2 b; - vec3 c; - vec4 d; -} s0; - -layout(binding = 1, std430) buffer SSBO1 -{ - float a; - vec2 b; - vec3 c; - vec4 d; -} s1; - -bool and(bool a, bool b) -{ - return !((a && b) || b); -} - -bvec2 and(bvec2 a, bvec2 b) -{ - bvec2 _98 = bvec2(a.x && b.x, a.y && b.y); - return not(bvec2(_98.x || b.x, _98.y || b.y)); -} - -bvec3 and(bvec3 a, bvec3 b) -{ - return bvec3(a.x && b.x, a.y && b.y, a.z && b.z); -} - -bvec4 and(bvec4 a, bvec4 b) -{ - return bvec4(a.x && b.x, a.y && b.y, a.z && b.z, a.w && b.w); -} - -void main() -{ - bool param = isinf(s0.a); - bool param_1 = isnan(s1.a); - bool b0 = and(param, param_1); - bvec2 param_2 = isinf(s0.b); - bvec2 param_3 = isnan(s1.b); - bvec2 b1 = and(param_2, param_3); - bvec3 param_4 = isinf(s0.c); - bvec3 param_5 = isnan(s1.c); - bvec3 b2 = and(param_4, param_5); - bvec4 param_6 = isinf(s0.d); - bvec4 param_7 = isnan(s1.d); - bvec4 b3 = and(param_6, param_7); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/comp/multiple-entry.asm.comp b/third_party/spirv-cross/reference/shaders/asm/comp/multiple-entry.asm.comp deleted file mode 100644 index 6418464f19..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/comp/multiple-entry.asm.comp +++ /dev/null @@ -1,27 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) restrict buffer _6_8 -{ - ivec4 _m0; - uvec4 _m1; -} _8; - -layout(binding = 1, std430) restrict buffer _7_9 -{ - uvec4 _m0; - ivec4 _m1; -} _9; - -void main() -{ - _9._m0 = _8._m1 + uvec4(_8._m0); - _9._m0 = uvec4(_8._m0) + _8._m1; - _9._m0 = _8._m1 + _8._m1; - _9._m0 = uvec4(_8._m0 + _8._m0); - _9._m1 = ivec4(_8._m1 + _8._m1); - _9._m1 = _8._m0 + _8._m0; - _9._m1 = ivec4(_8._m1) + _8._m0; - _9._m1 = _8._m0 + ivec4(_8._m1); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/comp/nmin-max-clamp.asm.comp b/third_party/spirv-cross/reference/shaders/asm/comp/nmin-max-clamp.asm.comp deleted file mode 100644 index 54c452c5de..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/comp/nmin-max-clamp.asm.comp +++ /dev/null @@ -1,44 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer SSBO -{ - float a1; - vec2 a2; - vec3 a3; - vec4 a4; - float b1; - vec2 b2; - vec3 b3; - vec4 b4; - float c1; - vec2 c2; - vec3 c3; - vec4 c4; -} _4; - -void main() -{ - _4.a1 = isnan(_4.c1) ? _4.b1 : (isnan(_4.b1) ? _4.c1 : min(_4.b1, _4.c1)); - _4.a2 = mix(mix(min(_4.b2, _4.c2), _4.c2, isnan(_4.b2)), _4.b2, isnan(_4.c2)); - _4.a3 = mix(mix(min(_4.b3, _4.c3), _4.c3, isnan(_4.b3)), _4.b3, isnan(_4.c3)); - _4.a4 = mix(mix(min(_4.b4, _4.c4), _4.c4, isnan(_4.b4)), _4.b4, isnan(_4.c4)); - _4.a1 = isnan(_4.c1) ? _4.b1 : (isnan(_4.b1) ? _4.c1 : max(_4.b1, _4.c1)); - _4.a2 = mix(mix(max(_4.b2, _4.c2), _4.c2, isnan(_4.b2)), _4.b2, isnan(_4.c2)); - _4.a3 = mix(mix(max(_4.b3, _4.c3), _4.c3, isnan(_4.b3)), _4.b3, isnan(_4.c3)); - _4.a4 = mix(mix(max(_4.b4, _4.c4), _4.c4, isnan(_4.b4)), _4.b4, isnan(_4.c4)); - float _179 = isnan(_4.b1) ? _4.a1 : (isnan(_4.a1) ? _4.b1 : max(_4.a1, _4.b1)); - _4.a1 = isnan(_4.c1) ? _179 : (isnan(_179) ? _4.c1 : min(_179, _4.c1)); - vec2 _190 = mix(mix(max(_4.a2, _4.b2), _4.b2, isnan(_4.a2)), _4.a2, isnan(_4.b2)); - _4.a2 = mix(mix(min(_190, _4.c2), _4.c2, isnan(_190)), _190, isnan(_4.c2)); - vec3 _201 = mix(mix(max(_4.a3, _4.b3), _4.b3, isnan(_4.a3)), _4.a3, isnan(_4.b3)); - _4.a3 = mix(mix(min(_201, _4.c3), _4.c3, isnan(_201)), _201, isnan(_4.c3)); - vec4 _212 = mix(mix(max(_4.a4, _4.b4), _4.b4, isnan(_4.a4)), _4.a4, isnan(_4.b4)); - _4.a4 = mix(mix(min(_212, _4.c4), _4.c4, isnan(_212)), _212, isnan(_4.c4)); - float _223; - for (int i = 0; i < 2; i++, _223 = isnan(_4.b2.x) ? _4.a1 : (isnan(_4.a1) ? _4.b2.x : max(_4.a1, _4.b2.x)), _4.a1 = isnan(_4.b2.y) ? _223 : (isnan(_223) ? _4.b2.y : min(_223, _4.b2.y))) - { - _4.a2 = mix(mix(min(_4.b2, _4.c2), _4.c2, isnan(_4.b2)), _4.b2, isnan(_4.c2)); - } -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/comp/op-phi-swap.asm.comp b/third_party/spirv-cross/reference/shaders/asm/comp/op-phi-swap.asm.comp deleted file mode 100644 index f8c51c0455..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/comp/op-phi-swap.asm.comp +++ /dev/null @@ -1,40 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer _3_4 -{ - float _m0[]; -} _4; - -layout(binding = 1, std430) buffer _3_5 -{ - float _m0[]; -} _5; - -void main() -{ - float _26 = 8.5; - bool _34; - float _35; - float _35_copy; - float _36; - _34 = true; - _35 = _4._m0[gl_GlobalInvocationID.x]; - _36 = _26; - for (;;) - { - if (_34) - { - _34 = false; - _35_copy = _35; - _35 = _36; - _36 = _35_copy; - } - else - { - break; - } - } - _5._m0[gl_GlobalInvocationID.x] = _35 - _36; -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/comp/quantize.asm.comp b/third_party/spirv-cross/reference/shaders/asm/comp/quantize.asm.comp deleted file mode 100644 index c089213800..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/comp/quantize.asm.comp +++ /dev/null @@ -1,19 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer SSBO0 -{ - float scalar; - vec2 vec2_val; - vec3 vec3_val; - vec4 vec4_val; -} _4; - -void main() -{ - _4.scalar = unpackHalf2x16(packHalf2x16(vec2(_4.scalar))).x; - _4.vec2_val = unpackHalf2x16(packHalf2x16(_4.vec2_val)); - _4.vec3_val = vec3(unpackHalf2x16(packHalf2x16(_4.vec3_val.xy)), unpackHalf2x16(packHalf2x16(_4.vec3_val.zz)).x); - _4.vec4_val = vec4(unpackHalf2x16(packHalf2x16(_4.vec4_val.xy)), unpackHalf2x16(packHalf2x16(_4.vec4_val.zw))); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/comp/recompile-block-naming.asm.comp b/third_party/spirv-cross/reference/shaders/asm/comp/recompile-block-naming.asm.comp deleted file mode 100644 index aeb1ed1633..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/comp/recompile-block-naming.asm.comp +++ /dev/null @@ -1,36 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer MyFirstBuffer -{ - uint _data[]; -} MyFirstBuffer_1; - -layout(binding = 0, std430) buffer MySecondBuffer -{ - uint _data[]; -} MySecondBuffer_1; - -layout(binding = 0, std430) buffer MyThirdBuffer -{ - uint _data[]; -} MyThirdBuffer_1; - -void _main() -{ - int byteAddrTemp = 0 >> 2; - uvec4 a = uvec4(MyFirstBuffer_1._data[byteAddrTemp], MyFirstBuffer_1._data[byteAddrTemp + 1], MyFirstBuffer_1._data[byteAddrTemp + 2], MyFirstBuffer_1._data[byteAddrTemp + 3]); - int byteAddrTemp_1 = 4 >> 2; - uvec4 b = uvec4(MySecondBuffer_1._data[byteAddrTemp_1], MySecondBuffer_1._data[byteAddrTemp_1 + 1], MySecondBuffer_1._data[byteAddrTemp_1 + 2], MySecondBuffer_1._data[byteAddrTemp_1 + 3]); - int byteAddrTemp_2 = 0 >> 2; - MyThirdBuffer_1._data[byteAddrTemp_2] = (a + b).x; - MyThirdBuffer_1._data[byteAddrTemp_2 + 1] = (a + b).y; - MyThirdBuffer_1._data[byteAddrTemp_2 + 2] = (a + b).z; - MyThirdBuffer_1._data[byteAddrTemp_2 + 3] = (a + b).w; -} - -void main() -{ - _main(); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/comp/specialization-constant-workgroup.asm.comp b/third_party/spirv-cross/reference/shaders/asm/comp/specialization-constant-workgroup.asm.comp deleted file mode 100644 index 8016ebaf9f..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/comp/specialization-constant-workgroup.asm.comp +++ /dev/null @@ -1,21 +0,0 @@ -#version 310 es - -#ifndef SPIRV_CROSS_CONSTANT_ID_10 -#define SPIRV_CROSS_CONSTANT_ID_10 9u -#endif -#ifndef SPIRV_CROSS_CONSTANT_ID_12 -#define SPIRV_CROSS_CONSTANT_ID_12 4u -#endif - -layout(local_size_x = SPIRV_CROSS_CONSTANT_ID_10, local_size_y = 20, local_size_z = SPIRV_CROSS_CONSTANT_ID_12) in; - -layout(binding = 0, std430) buffer SSBO -{ - float a; -} _4; - -void main() -{ - _4.a += 1.0; -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/comp/switch-break-ladder.asm.comp b/third_party/spirv-cross/reference/shaders/asm/comp/switch-break-ladder.asm.comp deleted file mode 100644 index f326869cef..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/comp/switch-break-ladder.asm.comp +++ /dev/null @@ -1,64 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer BUF -{ - int a; - int b; - int d; -} o; - -void main() -{ - int c = o.a; - int a; - for (;;) - { - bool _22_ladder_break = false; - switch (c) - { - case 5: - { - for (;;) - { - bool _30_ladder_break = false; - switch (o.d) - { - case 10: - case 20: - { - c += c; - _30_ladder_break = true; - break; - } - default: - { - continue; - } - } - if (_30_ladder_break) - { - break; - } - } - break; - } - case 1: - case 2: - case 3: - { - a = c; - _22_ladder_break = true; - break; - } - } - if (_22_ladder_break) - { - break; - } - c++; - continue; - } - o.b = a; -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/combined-sampler-reuse.vk.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/combined-sampler-reuse.vk.asm.frag deleted file mode 100644 index b5e59f88bb..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/combined-sampler-reuse.vk.asm.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 - -uniform sampler2D SPIRV_Cross_CombineduTexuSampler; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec2 vUV; - -void main() -{ - FragColor = texture(SPIRV_Cross_CombineduTexuSampler, vUV); - FragColor += textureOffset(SPIRV_Cross_CombineduTexuSampler, vUV, ivec2(1)); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/combined-sampler-reuse.vk.asm.frag.vk b/third_party/spirv-cross/reference/shaders/asm/frag/combined-sampler-reuse.vk.asm.frag.vk deleted file mode 100644 index bce9808950..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/combined-sampler-reuse.vk.asm.frag.vk +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 - -layout(set = 0, binding = 1) uniform texture2D uTex; -layout(set = 0, binding = 0) uniform sampler uSampler; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec2 vUV; - -void main() -{ - FragColor = texture(sampler2D(uTex, uSampler), vUV); - FragColor += textureOffset(sampler2D(uTex, uSampler), vUV, ivec2(1)); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/complex-name-workarounds.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/complex-name-workarounds.asm.frag deleted file mode 100644 index 7b120719e6..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/complex-name-workarounds.asm.frag +++ /dev/null @@ -1,28 +0,0 @@ -#version 450 - -layout(location = 0) in vec4 _; -layout(location = 1) in vec4 a; -layout(location = 0) out vec4 b; - -vec4 fu_nc_(vec4 a_) -{ - return a_; -} - -vec4 fu_nc_1(vec4 _0_1) -{ - return _0_1; -} - -void main() -{ - vec4 b_1 = _; - vec4 _0_1 = (_ + a) + fu_nc_(b_1); - vec4 b_3 = a; - vec4 b_2 = (_ - a) + fu_nc_1(b_3); - b = _0_1; - b = b_2; - b = _0_1; - b = b_2; -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/composite-construct-struct-no-swizzle.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/composite-construct-struct-no-swizzle.asm.frag deleted file mode 100644 index c64818d2bf..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/composite-construct-struct-no-swizzle.asm.frag +++ /dev/null @@ -1,19 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -struct SwizzleTest -{ - float a; - float b; -}; - -layout(location = 0) in vec2 foo; -layout(location = 0) out float FooOut; - -void main() -{ - SwizzleTest _22 = SwizzleTest(foo.x, foo.y); - FooOut = _22.a + _22.b; -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/default-member-names.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/default-member-names.asm.frag deleted file mode 100644 index 57d4536c9b..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/default-member-names.asm.frag +++ /dev/null @@ -1,32 +0,0 @@ -#version 450 - -struct _9 -{ - float _m0; -}; - -struct _10 -{ - float _m0; - float _m1; - float _m2; - float _m3; - float _m4; - float _m5; - float _m6; - float _m7; - float _m8; - float _m9; - float _m10; - float _m11; - _9 _m12; -}; - -layout(location = 0) out vec4 _3; - -void main() -{ - _10 _21; - _3 = vec4(_21._m0, _21._m1, _21._m2, _21._m3); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/do-while-statement-fallback.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/do-while-statement-fallback.asm.frag deleted file mode 100644 index 0e6947a395..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/do-while-statement-fallback.asm.frag +++ /dev/null @@ -1,58 +0,0 @@ -#version 450 - -layout(location = 0) out float FragColor; - -void main() -{ - float foo = 1.0; - for (;;) - { - foo = 2.0; - if (false) - { - continue; - } - else - { - break; - } - } - for (;;) - { - foo = 3.0; - if (false) - { - continue; - } - else - { - break; - } - } - for (;;) - { - foo = 4.0; - if (false) - { - continue; - } - else - { - break; - } - } - for (;;) - { - foo = 5.0; - if (false) - { - continue; - } - else - { - break; - } - } - FragColor = foo; -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/empty-struct.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/empty-struct.asm.frag deleted file mode 100644 index 7c9d39338e..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/empty-struct.asm.frag +++ /dev/null @@ -1,25 +0,0 @@ -#version 450 - -struct EmptyStructTest -{ - int empty_struct_member; -}; - -float GetValue(EmptyStructTest self) -{ - return 0.0; -} - -float GetValue_1(EmptyStructTest self) -{ - return 0.0; -} - -void main() -{ - EmptyStructTest _23 = EmptyStructTest(0); - EmptyStructTest emptyStruct; - float value = GetValue(emptyStruct); - value = GetValue_1(_23); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/for-loop-phi-only-continue.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/for-loop-phi-only-continue.asm.frag deleted file mode 100644 index 3101142944..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/for-loop-phi-only-continue.asm.frag +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; - -void main() -{ - float _19; - _19 = 0.0; - float _20; - int _23; - for (int _22 = 0; _22 < 16; _19 = _20, _22 = _23) - { - _20 = _19 + 1.0; - _23 = _22 + 1; - } - FragColor = vec4(_19); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/frem.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/frem.asm.frag deleted file mode 100644 index 1095ab04f2..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/frem.asm.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 vA; -layout(location = 1) in vec4 vB; - -void main() -{ - FragColor = vA - vB * trunc(vA / vB); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/function-overload-alias.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/function-overload-alias.asm.frag deleted file mode 100644 index 676f986801..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/function-overload-alias.asm.frag +++ /dev/null @@ -1,39 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) out vec4 FragColor; - -vec4 foo(vec4 foo_1) -{ - return foo_1 + vec4(1.0); -} - -vec4 foo(vec3 foo_1) -{ - return foo_1.xyzz + vec4(1.0); -} - -vec4 foo_1(vec4 foo_2) -{ - return foo_2 + vec4(2.0); -} - -vec4 foo(vec2 foo_2) -{ - return foo_2.xyxy + vec4(2.0); -} - -void main() -{ - highp vec4 foo_3 = vec4(1.0); - vec4 foo_2 = foo(foo_3); - highp vec3 foo_5 = vec3(1.0); - vec4 foo_4 = foo(foo_5); - highp vec4 foo_7 = vec4(1.0); - vec4 foo_6 = foo_1(foo_7); - highp vec2 foo_9 = vec2(1.0); - vec4 foo_8 = foo(foo_9); - FragColor = ((foo_2 + foo_4) + foo_6) + foo_8; -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/hlsl-sample-cmp-level-zero-cube.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/hlsl-sample-cmp-level-zero-cube.asm.frag deleted file mode 100644 index ec89d44eef..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/hlsl-sample-cmp-level-zero-cube.asm.frag +++ /dev/null @@ -1,17 +0,0 @@ -#version 450 - -uniform samplerCubeShadow SPIRV_Cross_CombinedpointLightShadowMapshadowSamplerPCF; - -layout(location = 0) out float _entryPointOutput; - -float _main() -{ - vec4 _33 = vec4(0.100000001490116119384765625, 0.100000001490116119384765625, 0.100000001490116119384765625, 0.5); - return textureGrad(SPIRV_Cross_CombinedpointLightShadowMapshadowSamplerPCF, vec4(_33.xyz, _33.w), vec3(0.0), vec3(0.0)); -} - -void main() -{ - _entryPointOutput = _main(); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/hlsl-sample-cmp-level-zero.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/hlsl-sample-cmp-level-zero.asm.frag deleted file mode 100644 index 63856ddd46..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/hlsl-sample-cmp-level-zero.asm.frag +++ /dev/null @@ -1,27 +0,0 @@ -#version 450 - -uniform sampler2DArrayShadow SPIRV_Cross_CombinedShadowMapShadowSamplerPCF; - -layout(location = 0) in vec2 texCoords; -layout(location = 1) in float cascadeIndex; -layout(location = 2) in float fragDepth; -layout(location = 0) out vec4 _entryPointOutput; - -vec4 _main(vec2 texCoords_1, float cascadeIndex_1, float fragDepth_1) -{ - vec4 _60 = vec4(vec3(texCoords_1, cascadeIndex_1), fragDepth_1); - float c = textureGrad(SPIRV_Cross_CombinedShadowMapShadowSamplerPCF, vec4(_60.xyz, _60.w), vec2(0.0), vec2(0.0)); - return vec4(c, c, c, c); -} - -void main() -{ - vec2 texCoords_1 = texCoords; - float cascadeIndex_1 = cascadeIndex; - float fragDepth_1 = fragDepth; - vec2 param = texCoords_1; - float param_1 = cascadeIndex_1; - float param_2 = fragDepth_1; - _entryPointOutput = _main(param, param_1, param_2); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/image-extract-reuse.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/image-extract-reuse.asm.frag deleted file mode 100644 index ab2749b4df..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/image-extract-reuse.asm.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler2D uTexture; - -layout(location = 0) out ivec2 Size; - -void main() -{ - Size = textureSize(uTexture, 0) + textureSize(uTexture, 1); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/image-fetch-no-sampler.asm.vk.frag b/third_party/spirv-cross/reference/shaders/asm/frag/image-fetch-no-sampler.asm.vk.frag deleted file mode 100644 index 60bb78aa5c..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/image-fetch-no-sampler.asm.vk.frag +++ /dev/null @@ -1,38 +0,0 @@ -#version 450 - -uniform sampler2D SPIRV_Cross_CombinedparamSPIRV_Cross_DummySampler; -uniform sampler2D SPIRV_Cross_CombinedSampledImageSPIRV_Cross_DummySampler; -uniform sampler2D SPIRV_Cross_CombinedparamSampler; -uniform sampler2D SPIRV_Cross_CombinedSampledImageSampler; - -layout(location = 0) out vec4 _entryPointOutput; - -vec4 sample_fetch(ivec3 UV, sampler2D SPIRV_Cross_CombinedtexSPIRV_Cross_DummySampler) -{ - return texelFetch(SPIRV_Cross_CombinedtexSPIRV_Cross_DummySampler, UV.xy, UV.z); -} - -vec4 sample_sampler(vec2 UV, sampler2D SPIRV_Cross_CombinedtexSampler) -{ - return texture(SPIRV_Cross_CombinedtexSampler, UV); -} - -vec4 _main(vec4 xIn) -{ - ivec3 coord = ivec3(int(xIn.x * 1280.0), int(xIn.y * 720.0), 0); - ivec3 param = coord; - vec4 value = sample_fetch(param, SPIRV_Cross_CombinedparamSPIRV_Cross_DummySampler); - value += texelFetch(SPIRV_Cross_CombinedSampledImageSPIRV_Cross_DummySampler, coord.xy, coord.z); - vec2 param_1 = xIn.xy; - value += sample_sampler(param_1, SPIRV_Cross_CombinedparamSampler); - value += texture(SPIRV_Cross_CombinedSampledImageSampler, xIn.xy); - return value; -} - -void main() -{ - vec4 xIn = gl_FragCoord; - vec4 param = xIn; - _entryPointOutput = _main(param); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/image-fetch-no-sampler.asm.vk.frag.vk b/third_party/spirv-cross/reference/shaders/asm/frag/image-fetch-no-sampler.asm.vk.frag.vk deleted file mode 100644 index 2dab664075..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/image-fetch-no-sampler.asm.vk.frag.vk +++ /dev/null @@ -1,37 +0,0 @@ -#version 450 -#extension GL_EXT_samplerless_texture_functions : require - -layout(set = 0, binding = 0) uniform sampler Sampler; -layout(set = 0, binding = 0) uniform texture2D SampledImage; - -layout(location = 0) out vec4 _entryPointOutput; - -vec4 sample_fetch(texture2D tex, ivec3 UV) -{ - return texelFetch(tex, UV.xy, UV.z); -} - -vec4 sample_sampler(texture2D tex, vec2 UV) -{ - return texture(sampler2D(tex, Sampler), UV); -} - -vec4 _main(vec4 xIn) -{ - ivec3 coord = ivec3(int(xIn.x * 1280.0), int(xIn.y * 720.0), 0); - ivec3 param = coord; - vec4 value = sample_fetch(SampledImage, param); - value += texelFetch(SampledImage, coord.xy, coord.z); - vec2 param_1 = xIn.xy; - value += sample_sampler(SampledImage, param_1); - value += texture(sampler2D(SampledImage, Sampler), xIn.xy); - return value; -} - -void main() -{ - vec4 xIn = gl_FragCoord; - vec4 param = xIn; - _entryPointOutput = _main(param); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/image-fetch-no-sampler.no-samplerless.asm.vk.frag b/third_party/spirv-cross/reference/shaders/asm/frag/image-fetch-no-sampler.no-samplerless.asm.vk.frag deleted file mode 100644 index 60bb78aa5c..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/image-fetch-no-sampler.no-samplerless.asm.vk.frag +++ /dev/null @@ -1,38 +0,0 @@ -#version 450 - -uniform sampler2D SPIRV_Cross_CombinedparamSPIRV_Cross_DummySampler; -uniform sampler2D SPIRV_Cross_CombinedSampledImageSPIRV_Cross_DummySampler; -uniform sampler2D SPIRV_Cross_CombinedparamSampler; -uniform sampler2D SPIRV_Cross_CombinedSampledImageSampler; - -layout(location = 0) out vec4 _entryPointOutput; - -vec4 sample_fetch(ivec3 UV, sampler2D SPIRV_Cross_CombinedtexSPIRV_Cross_DummySampler) -{ - return texelFetch(SPIRV_Cross_CombinedtexSPIRV_Cross_DummySampler, UV.xy, UV.z); -} - -vec4 sample_sampler(vec2 UV, sampler2D SPIRV_Cross_CombinedtexSampler) -{ - return texture(SPIRV_Cross_CombinedtexSampler, UV); -} - -vec4 _main(vec4 xIn) -{ - ivec3 coord = ivec3(int(xIn.x * 1280.0), int(xIn.y * 720.0), 0); - ivec3 param = coord; - vec4 value = sample_fetch(param, SPIRV_Cross_CombinedparamSPIRV_Cross_DummySampler); - value += texelFetch(SPIRV_Cross_CombinedSampledImageSPIRV_Cross_DummySampler, coord.xy, coord.z); - vec2 param_1 = xIn.xy; - value += sample_sampler(param_1, SPIRV_Cross_CombinedparamSampler); - value += texture(SPIRV_Cross_CombinedSampledImageSampler, xIn.xy); - return value; -} - -void main() -{ - vec4 xIn = gl_FragCoord; - vec4 param = xIn; - _entryPointOutput = _main(param); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/image-fetch-no-sampler.no-samplerless.asm.vk.frag.vk b/third_party/spirv-cross/reference/shaders/asm/frag/image-fetch-no-sampler.no-samplerless.asm.vk.frag.vk deleted file mode 100644 index e4d9fc4543..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/image-fetch-no-sampler.no-samplerless.asm.vk.frag.vk +++ /dev/null @@ -1,37 +0,0 @@ -#version 450 - -layout(set = 0, binding = 0) uniform sampler Sampler; -layout(set = 0, binding = 0) uniform texture2D SampledImage; -layout(set = 0, binding = 0) uniform sampler SPIRV_Cross_DummySampler; - -layout(location = 0) out vec4 _entryPointOutput; - -vec4 sample_fetch(texture2D tex, ivec3 UV) -{ - return texelFetch(sampler2D(tex, SPIRV_Cross_DummySampler), UV.xy, UV.z); -} - -vec4 sample_sampler(texture2D tex, vec2 UV) -{ - return texture(sampler2D(tex, Sampler), UV); -} - -vec4 _main(vec4 xIn) -{ - ivec3 coord = ivec3(int(xIn.x * 1280.0), int(xIn.y * 720.0), 0); - ivec3 param = coord; - vec4 value = sample_fetch(SampledImage, param); - value += texelFetch(sampler2D(SampledImage, SPIRV_Cross_DummySampler), coord.xy, coord.z); - vec2 param_1 = xIn.xy; - value += sample_sampler(SampledImage, param_1); - value += texture(sampler2D(SampledImage, Sampler), xIn.xy); - return value; -} - -void main() -{ - vec4 xIn = gl_FragCoord; - vec4 param = xIn; - _entryPointOutput = _main(param); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/image-query-no-sampler.no-samplerless.vk.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/image-query-no-sampler.no-samplerless.vk.asm.frag deleted file mode 100644 index 2040dd1afb..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/image-query-no-sampler.no-samplerless.vk.asm.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 - -uniform sampler2D SPIRV_Cross_CombineduSampler2DSPIRV_Cross_DummySampler; -uniform sampler2DMS SPIRV_Cross_CombineduSampler2DMSSPIRV_Cross_DummySampler; - -void main() -{ - ivec2 b = textureSize(SPIRV_Cross_CombineduSampler2DSPIRV_Cross_DummySampler, 0); - ivec2 c = textureSize(SPIRV_Cross_CombineduSampler2DMSSPIRV_Cross_DummySampler); - int l1 = textureQueryLevels(SPIRV_Cross_CombineduSampler2DSPIRV_Cross_DummySampler); - int s0 = textureSamples(SPIRV_Cross_CombineduSampler2DMSSPIRV_Cross_DummySampler); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/image-query-no-sampler.no-samplerless.vk.asm.frag.vk b/third_party/spirv-cross/reference/shaders/asm/frag/image-query-no-sampler.no-samplerless.vk.asm.frag.vk deleted file mode 100644 index 828d2a8727..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/image-query-no-sampler.no-samplerless.vk.asm.frag.vk +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 - -layout(set = 0, binding = 0) uniform texture2D uSampler2D; -layout(set = 0, binding = 0) uniform texture2DMS uSampler2DMS; -layout(set = 0, binding = 0) uniform sampler SPIRV_Cross_DummySampler; - -void main() -{ - ivec2 b = textureSize(sampler2D(uSampler2D, SPIRV_Cross_DummySampler), 0); - ivec2 c = textureSize(sampler2DMS(uSampler2DMS, SPIRV_Cross_DummySampler)); - int l1 = textureQueryLevels(sampler2D(uSampler2D, SPIRV_Cross_DummySampler)); - int s0 = textureSamples(sampler2DMS(uSampler2DMS, SPIRV_Cross_DummySampler)); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/image-query-no-sampler.vk.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/image-query-no-sampler.vk.asm.frag deleted file mode 100644 index 2040dd1afb..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/image-query-no-sampler.vk.asm.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 - -uniform sampler2D SPIRV_Cross_CombineduSampler2DSPIRV_Cross_DummySampler; -uniform sampler2DMS SPIRV_Cross_CombineduSampler2DMSSPIRV_Cross_DummySampler; - -void main() -{ - ivec2 b = textureSize(SPIRV_Cross_CombineduSampler2DSPIRV_Cross_DummySampler, 0); - ivec2 c = textureSize(SPIRV_Cross_CombineduSampler2DMSSPIRV_Cross_DummySampler); - int l1 = textureQueryLevels(SPIRV_Cross_CombineduSampler2DSPIRV_Cross_DummySampler); - int s0 = textureSamples(SPIRV_Cross_CombineduSampler2DMSSPIRV_Cross_DummySampler); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/image-query-no-sampler.vk.asm.frag.vk b/third_party/spirv-cross/reference/shaders/asm/frag/image-query-no-sampler.vk.asm.frag.vk deleted file mode 100644 index 021d3a60d5..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/image-query-no-sampler.vk.asm.frag.vk +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 -#extension GL_EXT_samplerless_texture_functions : require - -layout(set = 0, binding = 0) uniform texture2D uSampler2D; -layout(set = 0, binding = 0) uniform texture2DMS uSampler2DMS; - -void main() -{ - ivec2 b = textureSize(uSampler2D, 0); - ivec2 c = textureSize(uSampler2DMS); - int l1 = textureQueryLevels(uSampler2D); - int s0 = textureSamples(uSampler2DMS); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/implicit-read-dep-phi.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/implicit-read-dep-phi.asm.frag deleted file mode 100644 index 6bc1be0d0f..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/implicit-read-dep-phi.asm.frag +++ /dev/null @@ -1,39 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler2D uImage; - -layout(location = 0) in vec4 v0; -layout(location = 0) out vec4 FragColor; - -void main() -{ - int i = 0; - float phi; - vec4 _36; - phi = 1.0; - _36 = vec4(1.0, 2.0, 1.0, 2.0); - for (;;) - { - FragColor = _36; - if (i < 4) - { - if (v0[i] > 0.0) - { - vec2 _48 = vec2(phi); - i++; - phi += 2.0; - _36 = textureLod(uImage, _48, 0.0); - continue; - } - else - { - break; - } - } - else - { - break; - } - } -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/inf-nan-constant-double.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/inf-nan-constant-double.asm.frag deleted file mode 100644 index d8e29aa404..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/inf-nan-constant-double.asm.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 -#extension GL_ARB_gpu_shader_int64 : require - -layout(location = 0) out vec3 FragColor; -layout(location = 0) flat in double vTmp; - -void main() -{ - FragColor = vec3(dvec3(uint64BitsToDouble(0x7ff0000000000000ul), uint64BitsToDouble(0xfff0000000000000ul), uint64BitsToDouble(0x7ff8000000000000ul)) + dvec3(vTmp)); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/inf-nan-constant.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/inf-nan-constant.asm.frag deleted file mode 100644 index dd4284c9b1..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/inf-nan-constant.asm.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) out highp vec3 FragColor; - -void main() -{ - FragColor = vec3(uintBitsToFloat(0x7f800000u), uintBitsToFloat(0xff800000u), uintBitsToFloat(0x7fc00000u)); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/invalidation.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/invalidation.asm.frag deleted file mode 100644 index db1181804c..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/invalidation.asm.frag +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 - -layout(location = 0) in float v0; -layout(location = 1) in float v1; -layout(location = 0) out float FragColor; - -void main() -{ - float a = v0; - float b = v1; - float _17 = a; - a = v1; - FragColor = (_17 + b) * b; -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/line-directive.line.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/line-directive.line.asm.frag deleted file mode 100644 index 35aa9f8c4b..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/line-directive.line.asm.frag +++ /dev/null @@ -1,71 +0,0 @@ -#version 450 -#extension GL_GOOGLE_cpp_style_line_directive : require - -layout(location = 0) out float FragColor; -layout(location = 0) in float vColor; - -#line 6 "test.frag" -void func() -{ -#line 8 "test.frag" - FragColor = 1.0; -#line 9 "test.frag" - FragColor = 2.0; -#line 10 "test.frag" - if (vColor < 0.0) - { -#line 12 "test.frag" - FragColor = 3.0; - } - else - { -#line 16 "test.frag" - FragColor = 4.0; - } -#line 19 "test.frag" - for (int i = 0; float(i) < (40.0 + vColor); i += (int(vColor) + 5)) - { -#line 21 "test.frag" - FragColor += 0.20000000298023223876953125; -#line 22 "test.frag" - FragColor += 0.300000011920928955078125; - } -#line 25 "test.frag" - switch (int(vColor)) - { - case 0: - { -#line 28 "test.frag" - FragColor += 0.20000000298023223876953125; -#line 29 "test.frag" - break; - } - case 1: - { -#line 32 "test.frag" - FragColor += 0.4000000059604644775390625; -#line 33 "test.frag" - break; - } - default: - { -#line 36 "test.frag" - FragColor += 0.800000011920928955078125; -#line 37 "test.frag" - break; - } - } - do - { -#line 42 "test.frag" - FragColor += (10.0 + vColor); - } while (FragColor < 100.0); -} - -#line 46 "test.frag" -void main() -{ -#line 48 "test.frag" - func(); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/locations-components.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/locations-components.asm.frag deleted file mode 100644 index 95dcd9ceb7..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/locations-components.asm.frag +++ /dev/null @@ -1,25 +0,0 @@ -#version 450 - -layout(location = 1) in vec2 _2; -layout(location = 1, component = 2) in float _3; -layout(location = 2) flat in float _4; -layout(location = 2, component = 1) flat in uint _5; -layout(location = 2, component = 2) flat in uint _6; -layout(location = 0) out vec4 o0; -vec4 v1; -vec4 v2; - -void main() -{ - v1 = vec4(_2.x, _2.y, v1.z, v1.w); - v1.z = _3; - v2.x = _4; - v2.y = uintBitsToFloat(_5); - v2.z = uintBitsToFloat(_6); - vec4 r0; - r0.x = intBitsToFloat(floatBitsToInt(v2.y) + floatBitsToInt(v2.z)); - o0.y = float(floatBitsToUint(r0.x)); - o0.x = v1.y + v2.x; - o0 = vec4(o0.x, o0.y, v1.z, v1.x); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/loop-body-dominator-continue-access.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/loop-body-dominator-continue-access.asm.frag deleted file mode 100644 index d784c88390..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/loop-body-dominator-continue-access.asm.frag +++ /dev/null @@ -1,50 +0,0 @@ -#version 450 - -layout(binding = 0, std140) uniform Foo -{ - layout(row_major) mat4 lightVP[64]; - uint shadowCascadesNum; - int test; -} _11; - -layout(location = 0) in vec3 fragWorld; -layout(location = 0) out int _entryPointOutput; - -mat4 spvWorkaroundRowMajor(mat4 wrap) { return wrap; } - -mat4 GetClip2TexMatrix() -{ - if (_11.test == 0) - { - return mat4(vec4(0.5, 0.0, 0.0, 0.0), vec4(0.0, 0.5, 0.0, 0.0), vec4(0.0, 0.0, 0.5, 0.0), vec4(0.0, 0.0, 0.0, 1.0)); - } - return mat4(vec4(1.0, 0.0, 0.0, 0.0), vec4(0.0, 1.0, 0.0, 0.0), vec4(0.0, 0.0, 1.0, 0.0), vec4(0.0, 0.0, 0.0, 1.0)); -} - -int GetCascade(vec3 fragWorldPosition) -{ - for (uint cascadeIndex = 0u; cascadeIndex < _11.shadowCascadesNum; cascadeIndex++) - { - mat4 worldToShadowMap = GetClip2TexMatrix() * spvWorkaroundRowMajor(_11.lightVP[cascadeIndex]); - vec4 fragShadowMapPos = worldToShadowMap * vec4(fragWorldPosition, 1.0); - if ((((fragShadowMapPos.z >= 0.0) && (fragShadowMapPos.z <= 1.0)) && (max(fragShadowMapPos.x, fragShadowMapPos.y) <= 1.0)) && (min(fragShadowMapPos.x, fragShadowMapPos.y) >= 0.0)) - { - return int(cascadeIndex); - } - } - return -1; -} - -int _main(vec3 fragWorld_1) -{ - vec3 param = fragWorld_1; - return GetCascade(param); -} - -void main() -{ - vec3 fragWorld_1 = fragWorld; - vec3 param = fragWorld_1; - _entryPointOutput = _main(param); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/loop-header-to-continue.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/loop-header-to-continue.asm.frag deleted file mode 100644 index 8a3b664bc4..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/loop-header-to-continue.asm.frag +++ /dev/null @@ -1,45 +0,0 @@ -#version 450 - -struct Params -{ - vec4 TextureSize; - vec4 Params1; - vec4 Params2; - vec4 Params3; - vec4 Params4; - vec4 Bloom; -}; - -layout(binding = 1, std140) uniform CB1 -{ - Params CB1; -} _8; - -uniform sampler2D SPIRV_Cross_CombinedmapTexturemapSampler; - -layout(location = 0) in vec2 IN_uv; -layout(location = 0) out vec4 _entryPointOutput; - -void main() -{ - vec2 _45 = vec2(0.0, _8.CB1.TextureSize.w); - vec4 _49 = texture(SPIRV_Cross_CombinedmapTexturemapSampler, IN_uv); - float _50 = _49.y; - float _53 = clamp((_50 * 80.0) * 0.0007999999797903001308441162109375, 7.999999797903001308441162109375e-05, 0.008000000379979610443115234375); - float _55; - float _58; - _55 = 0.0; - _58 = 0.0; - for (int _60 = -3; _60 <= 3; ) - { - float _64 = float(_60); - vec4 _72 = texture(SPIRV_Cross_CombinedmapTexturemapSampler, IN_uv + (_45 * _64)); - float _78 = exp(((-_64) * _64) * 0.2222220003604888916015625) * float(abs(_72.y - _50) < _53); - _55 += (_72.x * _78); - _58 += _78; - _60++; - continue; - } - _entryPointOutput = vec4(_55 / _58, _50, 0.0, 1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/lut-promotion-initializer.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/lut-promotion-initializer.asm.frag deleted file mode 100644 index c08bc2c781..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/lut-promotion-initializer.asm.frag +++ /dev/null @@ -1,40 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -const float _46[16] = float[](1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0, 4.0); -const vec4 _76[4] = vec4[](vec4(0.0), vec4(1.0), vec4(8.0), vec4(5.0)); - -layout(location = 0) out float FragColor; -layout(location = 0) flat in mediump int index; - -void main() -{ - vec4 foobar[4] = _76; - vec4 baz[4] = _76; - FragColor = _46[index]; - if (index < 10) - { - FragColor += _46[index ^ 1]; - } - else - { - FragColor += _46[index & 1]; - } - if (index > 30) - { - FragColor += _76[index & 3].y; - } - else - { - FragColor += _76[index & 1].x; - } - if (index > 30) - { - foobar[1].z = 20.0; - } - FragColor += foobar[index & 3].z; - baz = vec4[](vec4(20.0), vec4(30.0), vec4(50.0), vec4(60.0)); - FragColor += baz[index & 3].z; -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/multi-for-loop-init.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/multi-for-loop-init.asm.frag deleted file mode 100644 index b5f30a2471..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/multi-for-loop-init.asm.frag +++ /dev/null @@ -1,19 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) flat in mediump int counter; - -void main() -{ - FragColor = vec4(0.0); - mediump int i = 0; - mediump uint j = 1u; - for (; (i < 10) && (int(j) < int(20u)); i += counter, j += uint(counter)) - { - FragColor += vec4(float(i)); - FragColor += vec4(float(j)); - } -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/op-constant-null.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/op-constant-null.asm.frag deleted file mode 100644 index f293c1802a..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/op-constant-null.asm.frag +++ /dev/null @@ -1,23 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -struct D -{ - vec4 a; - float b; -}; - -const vec4 _14[4] = vec4[](vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); - -layout(location = 0) out float FragColor; - -void main() -{ - float a = 0.0; - vec4 b = vec4(0.0); - mat2x3 c = mat2x3(vec3(0.0), vec3(0.0)); - D d = D(vec4(0.0), 0.0); - FragColor = a; -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/op-phi-swap-continue-block.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/op-phi-swap-continue-block.asm.frag deleted file mode 100644 index d62b63a0e0..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/op-phi-swap-continue-block.asm.frag +++ /dev/null @@ -1,24 +0,0 @@ -#version 450 - -layout(binding = 0, std140) uniform UBO -{ - int uCount; - int uJ; - int uK; -} _5; - -layout(location = 0) out float FragColor; - -void main() -{ - int _23; - int _23_copy; - int _24; - _23 = _5.uK; - _24 = _5.uJ; - for (int _26 = 0; _26 < _5.uCount; _23_copy = _23, _23 = _24, _24 = _23_copy, _26++) - { - } - FragColor = float(_24 - _23) * float(_5.uJ * _5.uK); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/pack-and-unpack-uint2.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/pack-and-unpack-uint2.asm.frag deleted file mode 100644 index d5225f2c5f..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/pack-and-unpack-uint2.asm.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 -#extension GL_ARB_gpu_shader_int64 : require - -layout(location = 0) out vec4 FragColor; - -void main() -{ - uint64_t _packed = packUint2x32(uvec2(18u, 52u)); - uvec2 unpacked = unpackUint2x32(_packed); - FragColor = vec4(float(unpacked.x), float(unpacked.y), 1.0, 1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/pass-by-value.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/pass-by-value.asm.frag deleted file mode 100644 index 35ba2e1535..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/pass-by-value.asm.frag +++ /dev/null @@ -1,21 +0,0 @@ -#version 450 - -struct Registers -{ - float foo; -}; - -uniform Registers registers; - -layout(location = 0) out float FragColor; - -float add_value(float v, float w) -{ - return v + w; -} - -void main() -{ - FragColor = add_value(10.0, registers.foo); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/phi-loop-variable.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/phi-loop-variable.asm.frag deleted file mode 100644 index 786ac74de5..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/phi-loop-variable.asm.frag +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 - -void main() -{ - for (int _22 = 35; _22 >= 0; _22--) - { - } -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/sample-and-compare.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/sample-and-compare.asm.frag deleted file mode 100644 index d6489ed027..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/sample-and-compare.asm.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 - -uniform sampler2D SPIRV_Cross_Combinedg_Textureg_Sampler; -uniform sampler2DShadow SPIRV_Cross_Combinedg_Textureg_CompareSampler; - -layout(location = 0) in vec2 in_var_TEXCOORD0; -layout(location = 0) out float out_var_SV_Target; - -void main() -{ - out_var_SV_Target = texture(SPIRV_Cross_Combinedg_Textureg_Sampler, in_var_TEXCOORD0).x + textureLod(SPIRV_Cross_Combinedg_Textureg_CompareSampler, vec3(in_var_TEXCOORD0, 0.5), 0.0); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/sampler-buffer-array-without-sampler.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/sampler-buffer-array-without-sampler.asm.frag deleted file mode 100644 index 3dc1839d6b..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/sampler-buffer-array-without-sampler.asm.frag +++ /dev/null @@ -1,28 +0,0 @@ -#version 450 - -struct Registers -{ - int index; -}; - -uniform Registers registers; - -uniform sampler2D SPIRV_Cross_CombineduSamplerSPIRV_Cross_DummySampler[4]; - -layout(location = 0) out vec4 FragColor; - -vec4 sample_from_func(sampler2D SPIRV_Cross_CombineduSamplerSPIRV_Cross_DummySampler_1[4]) -{ - return texelFetch(SPIRV_Cross_CombineduSamplerSPIRV_Cross_DummySampler_1[registers.index], ivec2(4), 0); -} - -vec4 sample_one_from_func(sampler2D SPIRV_Cross_CombineduSamplerSPIRV_Cross_DummySampler_1) -{ - return texelFetch(SPIRV_Cross_CombineduSamplerSPIRV_Cross_DummySampler_1, ivec2(4), 0); -} - -void main() -{ - FragColor = (texelFetch(SPIRV_Cross_CombineduSamplerSPIRV_Cross_DummySampler[registers.index], ivec2(10), 0) + sample_from_func(SPIRV_Cross_CombineduSamplerSPIRV_Cross_DummySampler)) + sample_one_from_func(SPIRV_Cross_CombineduSamplerSPIRV_Cross_DummySampler[registers.index]); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/sampler-buffer-without-sampler.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/sampler-buffer-without-sampler.asm.frag deleted file mode 100644 index 1ebf8fb96b..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/sampler-buffer-without-sampler.asm.frag +++ /dev/null @@ -1,20 +0,0 @@ -#version 450 - -layout(binding = 0, rgba32f) uniform writeonly imageBuffer RWTex; -layout(binding = 1) uniform samplerBuffer Tex; - -layout(location = 0) out vec4 _entryPointOutput; - -vec4 _main() -{ - vec4 storeTemp = vec4(1.0, 2.0, 3.0, 4.0); - imageStore(RWTex, 20, storeTemp); - return texelFetch(Tex, 10); -} - -void main() -{ - vec4 _28 = _main(); - _entryPointOutput = _28; -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/single-function-private-lut.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/single-function-private-lut.asm.frag deleted file mode 100644 index 9c45d8542a..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/single-function-private-lut.asm.frag +++ /dev/null @@ -1,26 +0,0 @@ -#version 460 - -struct myType -{ - float data; -}; - -const myType _21[5] = myType[](myType(0.0), myType(1.0), myType(0.0), myType(1.0), myType(0.0)); - -layout(location = 0) out vec4 o_color; - -void main() -{ - vec2 uv = gl_FragCoord.xy; - int index = int(mod(uv.x, 4.0)); - myType elt = _21[index]; - if (elt.data > 0.0) - { - o_color = vec4(0.0, 1.0, 0.0, 1.0); - } - else - { - o_color = vec4(1.0, 0.0, 0.0, 1.0); - } -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/srem.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/srem.asm.frag deleted file mode 100644 index 05a3d7554f..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/srem.asm.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) flat in ivec4 vA; -layout(location = 1) flat in ivec4 vB; - -void main() -{ - FragColor = vec4(vA - vB * (vA / vB)); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/storage-class-output-initializer.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/storage-class-output-initializer.asm.frag deleted file mode 100644 index a5faaefb30..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/storage-class-output-initializer.asm.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColors[2]; -layout(location = 2) out vec4 FragColor; -const vec4 _3_init[2] = vec4[](vec4(1.0, 2.0, 3.0, 4.0), vec4(10.0)); -const vec4 _4_init = vec4(5.0); - -void main() -{ - FragColors = _3_init; - FragColor = _4_init; -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/struct-composite-extract-swizzle.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/struct-composite-extract-swizzle.asm.frag deleted file mode 100644 index b2473f4d03..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/struct-composite-extract-swizzle.asm.frag +++ /dev/null @@ -1,21 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -struct Foo -{ - float var1; - float var2; -}; - -layout(binding = 0) uniform mediump sampler2D uSampler; - -layout(location = 0) out vec4 FragColor; - -Foo _22; - -void main() -{ - FragColor = texture(uSampler, vec2(_22.var1, _22.var2)); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/switch-label-shared-block.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/switch-label-shared-block.asm.frag deleted file mode 100644 index 748f96c8b0..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/switch-label-shared-block.asm.frag +++ /dev/null @@ -1,32 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) flat in mediump int vIndex; -layout(location = 0) out float FragColor; - -void main() -{ - highp float _19; - switch (vIndex) - { - case 0: - case 2: - { - _19 = 1.0; - break; - } - default: - { - _19 = 3.0; - break; - } - case 8: - { - _19 = 8.0; - break; - } - } - FragColor = _19; -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/temporary-name-alias.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/temporary-name-alias.asm.frag deleted file mode 100644 index 927c0434a8..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/temporary-name-alias.asm.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 - -void main() -{ - float constituent = float(0); - mat3 _mat3 = mat3(vec3(constituent), vec3(constituent), vec3(constituent)); - float constituent_1 = float(1); - _mat3 = mat3(vec3(constituent_1), vec3(constituent_1), vec3(constituent_1)); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/temporary-phi-hoisting.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/temporary-phi-hoisting.asm.frag deleted file mode 100644 index 4cee76cca4..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/temporary-phi-hoisting.asm.frag +++ /dev/null @@ -1,26 +0,0 @@ -#version 450 - -struct MyStruct -{ - vec4 color; -}; - -layout(binding = 0, std140) uniform MyStruct_CB -{ - MyStruct g_MyStruct[4]; -} _6; - -layout(location = 0) out vec4 _entryPointOutput; - -void main() -{ - vec3 _28; - _28 = vec3(0.0); - vec3 _29; - for (int _31 = 0; _31 < 4; _28 = _29, _31++) - { - _29 = _28 + _6.g_MyStruct[_31].color.xyz; - } - _entryPointOutput = vec4(_28, 1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/texel-fetch-no-lod.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/texel-fetch-no-lod.asm.frag deleted file mode 100644 index 6193de0da9..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/texel-fetch-no-lod.asm.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler2D uTexture; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = texelFetch(uTexture, ivec2(gl_FragCoord.xy), 0); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/texture-sampling-fp16.asm.vk.frag b/third_party/spirv-cross/reference/shaders/asm/frag/texture-sampling-fp16.asm.vk.frag deleted file mode 100644 index e0feb49327..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/texture-sampling-fp16.asm.vk.frag +++ /dev/null @@ -1,19 +0,0 @@ -#version 450 -#if defined(GL_AMD_gpu_shader_half_float) -#extension GL_AMD_gpu_shader_half_float : require -#elif defined(GL_NV_gpu_shader5) -#extension GL_NV_gpu_shader5 : require -#else -#error No extension available for FP16. -#endif - -layout(binding = 0) uniform sampler2D uTexture; - -layout(location = 0) out f16vec4 FragColor; -layout(location = 0) in f16vec2 UV; - -void main() -{ - FragColor = f16vec4(texture(uTexture, UV)); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/texture-sampling-fp16.asm.vk.frag.vk b/third_party/spirv-cross/reference/shaders/asm/frag/texture-sampling-fp16.asm.vk.frag.vk deleted file mode 100644 index e13e4254ea..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/texture-sampling-fp16.asm.vk.frag.vk +++ /dev/null @@ -1,20 +0,0 @@ -#version 450 -#if defined(GL_AMD_gpu_shader_half_float) -#extension GL_AMD_gpu_shader_half_float : require -#elif defined(GL_EXT_shader_explicit_arithmetic_types_float16) -#extension GL_EXT_shader_explicit_arithmetic_types_float16 : require -#else -#error No extension available for FP16. -#endif -#extension GL_EXT_shader_16bit_storage : require - -layout(set = 0, binding = 0) uniform sampler2D uTexture; - -layout(location = 0) out f16vec4 FragColor; -layout(location = 0) in f16vec2 UV; - -void main() -{ - FragColor = f16vec4(texture(uTexture, UV)); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/undef-variable-store.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/undef-variable-store.asm.frag deleted file mode 100644 index 26ad568ad0..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/undef-variable-store.asm.frag +++ /dev/null @@ -1,29 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 _entryPointOutput; - -vec4 _38; -vec4 _47; - -void main() -{ - vec4 _27; - do - { - vec2 _26 = vec2(0.0); - if (_26.x != 0.0) - { - _27 = vec4(1.0, 0.0, 0.0, 1.0); - break; - } - else - { - _27 = vec4(1.0, 1.0, 0.0, 1.0); - break; - } - _27 = _38; - break; - } while (false); - _entryPointOutput = _27; -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/unknown-depth-state.asm.vk.frag b/third_party/spirv-cross/reference/shaders/asm/frag/unknown-depth-state.asm.vk.frag deleted file mode 100644 index 7729d30c09..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/unknown-depth-state.asm.vk.frag +++ /dev/null @@ -1,23 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler2DShadow uShadow; -uniform sampler2DShadow SPIRV_Cross_CombineduTextureuSampler; - -layout(location = 0) in vec3 vUV; -layout(location = 0) out float FragColor; - -float sample_combined() -{ - return texture(uShadow, vec3(vUV.xy, vUV.z)); -} - -float sample_separate() -{ - return texture(SPIRV_Cross_CombineduTextureuSampler, vec3(vUV.xy, vUV.z)); -} - -void main() -{ - FragColor = sample_combined() + sample_separate(); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/unknown-depth-state.asm.vk.frag.vk b/third_party/spirv-cross/reference/shaders/asm/frag/unknown-depth-state.asm.vk.frag.vk deleted file mode 100644 index 711fa27763..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/unknown-depth-state.asm.vk.frag.vk +++ /dev/null @@ -1,24 +0,0 @@ -#version 450 - -layout(set = 0, binding = 0) uniform sampler2DShadow uShadow; -layout(set = 0, binding = 1) uniform texture2D uTexture; -layout(set = 0, binding = 2) uniform samplerShadow uSampler; - -layout(location = 0) in vec3 vUV; -layout(location = 0) out float FragColor; - -float sample_combined() -{ - return texture(uShadow, vec3(vUV.xy, vUV.z)); -} - -float sample_separate() -{ - return texture(sampler2DShadow(uTexture, uSampler), vec3(vUV.xy, vUV.z)); -} - -void main() -{ - FragColor = sample_combined() + sample_separate(); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/unreachable.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/unreachable.asm.frag deleted file mode 100644 index 8bc88b9f0a..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/unreachable.asm.frag +++ /dev/null @@ -1,28 +0,0 @@ -#version 450 - -layout(location = 0) flat in int counter; -layout(location = 0) out vec4 FragColor; - -vec4 _21; - -void main() -{ - vec4 _24; - _24 = _21; - vec4 _33; - for (;;) - { - if (counter == 10) - { - _33 = vec4(10.0); - break; - } - else - { - _33 = vec4(30.0); - break; - } - } - FragColor = _33; -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/frag/vector-shuffle-oom.asm.frag b/third_party/spirv-cross/reference/shaders/asm/frag/vector-shuffle-oom.asm.frag deleted file mode 100644 index 1c211caa6d..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/frag/vector-shuffle-oom.asm.frag +++ /dev/null @@ -1,316 +0,0 @@ -#version 450 - -struct _28 -{ - vec4 _m0; -}; - -layout(binding = 0, std140) uniform _6_7 -{ - vec4 _m0; - float _m1; - vec4 _m2; -} _7; - -layout(binding = 2, std140) uniform _10_11 -{ - vec3 _m0; - vec3 _m1; - float _m2; - vec3 _m3; - float _m4; - vec3 _m5; - float _m6; - vec3 _m7; - float _m8; - vec3 _m9; - float _m10; - vec3 _m11; - float _m12; - vec2 _m13; - vec2 _m14; - vec3 _m15; - float _m16; - float _m17; - float _m18; - float _m19; - float _m20; - vec4 _m21; - vec4 _m22; - layout(row_major) mat4 _m23; - vec4 _m24; -} _11; - -layout(binding = 1, std140) uniform _18_19 -{ - layout(row_major) mat4 _m0; - layout(row_major) mat4 _m1; - layout(row_major) mat4 _m2; - layout(row_major) mat4 _m3; - vec4 _m4; - vec4 _m5; - float _m6; - float _m7; - float _m8; - float _m9; - vec3 _m10; - float _m11; - vec3 _m12; - float _m13; - vec3 _m14; - float _m15; - vec3 _m16; - float _m17; - float _m18; - float _m19; - vec2 _m20; - vec2 _m21; - vec2 _m22; - vec4 _m23; - vec2 _m24; - vec2 _m25; - vec2 _m26; - vec3 _m27; - float _m28; - float _m29; - float _m30; - float _m31; - float _m32; - vec2 _m33; - float _m34; - float _m35; - vec3 _m36; - layout(row_major) mat4 _m37[2]; - vec4 _m38[2]; -} _19; - -uniform sampler2D SPIRV_Cross_Combined; -uniform sampler2D SPIRV_Cross_Combined_1; -uniform sampler2D SPIRV_Cross_Combined_2; - -layout(location = 0) out vec4 _5; - -_28 _74; - -void main() -{ - _28 _77 = _74; - _77._m0 = vec4(0.0); - vec2 _82 = gl_FragCoord.xy * _19._m23.xy; - vec4 _88 = _7._m2 * _7._m0.xyxy; - vec2 _97 = clamp(_82 + (vec3(0.0, -2.0, 0.5).xy * _7._m0.xy), _88.xy, _88.zw); - vec3 _109 = _11._m5 * clamp(textureLod(SPIRV_Cross_Combined, _97, 0.0).w * _7._m1, 0.0, 1.0); - vec4 _113 = textureLod(SPIRV_Cross_Combined_1, _97, 0.0); - vec3 _129; - if (_113.y > 0.0) - { - _129 = _109 + (textureLod(SPIRV_Cross_Combined_2, _97, 0.0).xyz * clamp(_113.y * _113.z, 0.0, 1.0)); - } - else - { - _129 = _109; - } - vec3 _133 = vec4(0.0).xyz + (_129 * 0.5); - vec4 _134 = vec4(_133.x, _133.y, _133.z, vec4(0.0).w); - _28 _135 = _77; - _135._m0 = _134; - vec2 _144 = clamp(_82 + (vec3(-1.0, -1.0, 0.5).xy * _7._m0.xy), _88.xy, _88.zw); - vec3 _156 = _11._m5 * clamp(textureLod(SPIRV_Cross_Combined, _144, 0.0).w * _7._m1, 0.0, 1.0); - vec4 _160 = textureLod(SPIRV_Cross_Combined_1, _144, 0.0); - vec3 _176; - if (_160.y > 0.0) - { - _176 = _156 + (textureLod(SPIRV_Cross_Combined_2, _144, 0.0).xyz * clamp(_160.y * _160.z, 0.0, 1.0)); - } - else - { - _176 = _156; - } - vec3 _180 = _134.xyz + (_176 * 0.5); - vec4 _181 = vec4(_180.x, _180.y, _180.z, _134.w); - _28 _182 = _135; - _182._m0 = _181; - vec2 _191 = clamp(_82 + (vec3(0.0, -1.0, 0.75).xy * _7._m0.xy), _88.xy, _88.zw); - vec3 _203 = _11._m5 * clamp(textureLod(SPIRV_Cross_Combined, _191, 0.0).w * _7._m1, 0.0, 1.0); - vec4 _207 = textureLod(SPIRV_Cross_Combined_1, _191, 0.0); - vec3 _223; - if (_207.y > 0.0) - { - _223 = _203 + (textureLod(SPIRV_Cross_Combined_2, _191, 0.0).xyz * clamp(_207.y * _207.z, 0.0, 1.0)); - } - else - { - _223 = _203; - } - vec3 _227 = _181.xyz + (_223 * 0.75); - vec4 _228 = vec4(_227.x, _227.y, _227.z, _181.w); - _28 _229 = _182; - _229._m0 = _228; - vec2 _238 = clamp(_82 + (vec3(1.0, -1.0, 0.5).xy * _7._m0.xy), _88.xy, _88.zw); - vec3 _250 = _11._m5 * clamp(textureLod(SPIRV_Cross_Combined, _238, 0.0).w * _7._m1, 0.0, 1.0); - vec4 _254 = textureLod(SPIRV_Cross_Combined_1, _238, 0.0); - vec3 _270; - if (_254.y > 0.0) - { - _270 = _250 + (textureLod(SPIRV_Cross_Combined_2, _238, 0.0).xyz * clamp(_254.y * _254.z, 0.0, 1.0)); - } - else - { - _270 = _250; - } - vec3 _274 = _228.xyz + (_270 * 0.5); - vec4 _275 = vec4(_274.x, _274.y, _274.z, _228.w); - _28 _276 = _229; - _276._m0 = _275; - vec2 _285 = clamp(_82 + (vec3(-2.0, 0.0, 0.5).xy * _7._m0.xy), _88.xy, _88.zw); - vec3 _297 = _11._m5 * clamp(textureLod(SPIRV_Cross_Combined, _285, 0.0).w * _7._m1, 0.0, 1.0); - vec4 _301 = textureLod(SPIRV_Cross_Combined_1, _285, 0.0); - vec3 _317; - if (_301.y > 0.0) - { - _317 = _297 + (textureLod(SPIRV_Cross_Combined_2, _285, 0.0).xyz * clamp(_301.y * _301.z, 0.0, 1.0)); - } - else - { - _317 = _297; - } - vec3 _321 = _275.xyz + (_317 * 0.5); - vec4 _322 = vec4(_321.x, _321.y, _321.z, _275.w); - _28 _323 = _276; - _323._m0 = _322; - vec2 _332 = clamp(_82 + (vec3(-1.0, 0.0, 0.75).xy * _7._m0.xy), _88.xy, _88.zw); - vec3 _344 = _11._m5 * clamp(textureLod(SPIRV_Cross_Combined, _332, 0.0).w * _7._m1, 0.0, 1.0); - vec4 _348 = textureLod(SPIRV_Cross_Combined_1, _332, 0.0); - vec3 _364; - if (_348.y > 0.0) - { - _364 = _344 + (textureLod(SPIRV_Cross_Combined_2, _332, 0.0).xyz * clamp(_348.y * _348.z, 0.0, 1.0)); - } - else - { - _364 = _344; - } - vec3 _368 = _322.xyz + (_364 * 0.75); - vec4 _369 = vec4(_368.x, _368.y, _368.z, _322.w); - _28 _370 = _323; - _370._m0 = _369; - vec2 _379 = clamp(_82 + (vec3(0.0, 0.0, 1.0).xy * _7._m0.xy), _88.xy, _88.zw); - vec3 _391 = _11._m5 * clamp(textureLod(SPIRV_Cross_Combined, _379, 0.0).w * _7._m1, 0.0, 1.0); - vec4 _395 = textureLod(SPIRV_Cross_Combined_1, _379, 0.0); - vec3 _411; - if (_395.y > 0.0) - { - _411 = _391 + (textureLod(SPIRV_Cross_Combined_2, _379, 0.0).xyz * clamp(_395.y * _395.z, 0.0, 1.0)); - } - else - { - _411 = _391; - } - vec3 _415 = _369.xyz + (_411 * 1.0); - vec4 _416 = vec4(_415.x, _415.y, _415.z, _369.w); - _28 _417 = _370; - _417._m0 = _416; - vec2 _426 = clamp(_82 + (vec3(1.0, 0.0, 0.75).xy * _7._m0.xy), _88.xy, _88.zw); - vec3 _438 = _11._m5 * clamp(textureLod(SPIRV_Cross_Combined, _426, 0.0).w * _7._m1, 0.0, 1.0); - vec4 _442 = textureLod(SPIRV_Cross_Combined_1, _426, 0.0); - vec3 _458; - if (_442.y > 0.0) - { - _458 = _438 + (textureLod(SPIRV_Cross_Combined_2, _426, 0.0).xyz * clamp(_442.y * _442.z, 0.0, 1.0)); - } - else - { - _458 = _438; - } - vec3 _462 = _416.xyz + (_458 * 0.75); - vec4 _463 = vec4(_462.x, _462.y, _462.z, _416.w); - _28 _464 = _417; - _464._m0 = _463; - vec2 _473 = clamp(_82 + (vec3(2.0, 0.0, 0.5).xy * _7._m0.xy), _88.xy, _88.zw); - vec3 _485 = _11._m5 * clamp(textureLod(SPIRV_Cross_Combined, _473, 0.0).w * _7._m1, 0.0, 1.0); - vec4 _489 = textureLod(SPIRV_Cross_Combined_1, _473, 0.0); - vec3 _505; - if (_489.y > 0.0) - { - _505 = _485 + (textureLod(SPIRV_Cross_Combined_2, _473, 0.0).xyz * clamp(_489.y * _489.z, 0.0, 1.0)); - } - else - { - _505 = _485; - } - vec3 _509 = _463.xyz + (_505 * 0.5); - vec4 _510 = vec4(_509.x, _509.y, _509.z, _463.w); - _28 _511 = _464; - _511._m0 = _510; - vec2 _520 = clamp(_82 + (vec3(-1.0, 1.0, 0.5).xy * _7._m0.xy), _88.xy, _88.zw); - vec3 _532 = _11._m5 * clamp(textureLod(SPIRV_Cross_Combined, _520, 0.0).w * _7._m1, 0.0, 1.0); - vec4 _536 = textureLod(SPIRV_Cross_Combined_1, _520, 0.0); - vec3 _552; - if (_536.y > 0.0) - { - _552 = _532 + (textureLod(SPIRV_Cross_Combined_2, _520, 0.0).xyz * clamp(_536.y * _536.z, 0.0, 1.0)); - } - else - { - _552 = _532; - } - vec3 _556 = _510.xyz + (_552 * 0.5); - vec4 _557 = vec4(_556.x, _556.y, _556.z, _510.w); - _28 _558 = _511; - _558._m0 = _557; - vec2 _567 = clamp(_82 + (vec3(0.0, 1.0, 0.75).xy * _7._m0.xy), _88.xy, _88.zw); - vec3 _579 = _11._m5 * clamp(textureLod(SPIRV_Cross_Combined, _567, 0.0).w * _7._m1, 0.0, 1.0); - vec4 _583 = textureLod(SPIRV_Cross_Combined_1, _567, 0.0); - vec3 _599; - if (_583.y > 0.0) - { - _599 = _579 + (textureLod(SPIRV_Cross_Combined_2, _567, 0.0).xyz * clamp(_583.y * _583.z, 0.0, 1.0)); - } - else - { - _599 = _579; - } - vec3 _603 = _557.xyz + (_599 * 0.75); - vec4 _604 = vec4(_603.x, _603.y, _603.z, _557.w); - _28 _605 = _558; - _605._m0 = _604; - vec2 _614 = clamp(_82 + (vec3(1.0, 1.0, 0.5).xy * _7._m0.xy), _88.xy, _88.zw); - vec3 _626 = _11._m5 * clamp(textureLod(SPIRV_Cross_Combined, _614, 0.0).w * _7._m1, 0.0, 1.0); - vec4 _630 = textureLod(SPIRV_Cross_Combined_1, _614, 0.0); - vec3 _646; - if (_630.y > 0.0) - { - _646 = _626 + (textureLod(SPIRV_Cross_Combined_2, _614, 0.0).xyz * clamp(_630.y * _630.z, 0.0, 1.0)); - } - else - { - _646 = _626; - } - vec3 _650 = _604.xyz + (_646 * 0.5); - vec4 _651 = vec4(_650.x, _650.y, _650.z, _604.w); - _28 _652 = _605; - _652._m0 = _651; - vec2 _661 = clamp(_82 + (vec3(0.0, 2.0, 0.5).xy * _7._m0.xy), _88.xy, _88.zw); - vec3 _673 = _11._m5 * clamp(textureLod(SPIRV_Cross_Combined, _661, 0.0).w * _7._m1, 0.0, 1.0); - vec4 _677 = textureLod(SPIRV_Cross_Combined_1, _661, 0.0); - vec3 _693; - if (_677.y > 0.0) - { - _693 = _673 + (textureLod(SPIRV_Cross_Combined_2, _661, 0.0).xyz * clamp(_677.y * _677.z, 0.0, 1.0)); - } - else - { - _693 = _673; - } - vec3 _697 = _651.xyz + (_693 * 0.5); - vec4 _698 = vec4(_697.x, _697.y, _697.z, _651.w); - _28 _699 = _652; - _699._m0 = _698; - vec3 _702 = _698.xyz / vec3(((((((((((((0.0 + 0.5) + 0.5) + 0.75) + 0.5) + 0.5) + 0.75) + 1.0) + 0.75) + 0.5) + 0.5) + 0.75) + 0.5) + 0.5); - _28 _704 = _699; - _704._m0 = vec4(_702.x, _702.y, _702.z, _698.w); - _28 _705 = _704; - _705._m0.w = 1.0; - _5 = _705._m0; -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/geom/block-name-namespace.asm.geom b/third_party/spirv-cross/reference/shaders/asm/geom/block-name-namespace.asm.geom deleted file mode 100644 index 417cf34210..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/geom/block-name-namespace.asm.geom +++ /dev/null @@ -1,33 +0,0 @@ -#version 450 -layout(triangles) in; -layout(max_vertices = 4, triangle_strip) out; - -layout(binding = 0, std140) uniform VertexInput -{ - vec4 a; -} VertexInput_1; - -layout(binding = 0, std430) buffer VertexInput -{ - vec4 b; -} VertexInput_2; - -layout(location = 0) out VertexInput -{ - vec4 vColor; -} VertexInput_3; - -layout(location = 0) in VertexInput -{ - vec4 vColor; -} vin[3]; - - -void main() -{ - vec4 VertexInput_4 = vec4(1.0); - gl_Position = (VertexInput_4 + VertexInput_1.a) + VertexInput_2.b; - VertexInput_3.vColor = vin[0].vColor; - EmitVertex(); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/geom/inout-split-access-chain-handle.asm.geom b/third_party/spirv-cross/reference/shaders/asm/geom/inout-split-access-chain-handle.asm.geom deleted file mode 100644 index 71082099e7..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/geom/inout-split-access-chain-handle.asm.geom +++ /dev/null @@ -1,23 +0,0 @@ -#version 440 -layout(triangles) in; -layout(max_vertices = 5, triangle_strip) out; - -struct Data -{ - vec4 ApiPerspectivePosition; -}; - -void Copy(inout Data inputStream[3]) -{ - inputStream[0].ApiPerspectivePosition = gl_in[0].gl_Position; -} - -void main() -{ - Data inputStream[3]; - Data param[3] = inputStream; - Copy(param); - inputStream = param; - gl_Position = inputStream[0].ApiPerspectivePosition; -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/geom/split-access-chain-input.asm.geom b/third_party/spirv-cross/reference/shaders/asm/geom/split-access-chain-input.asm.geom deleted file mode 100644 index 511d87fcbe..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/geom/split-access-chain-input.asm.geom +++ /dev/null @@ -1,9 +0,0 @@ -#version 440 -layout(triangles) in; -layout(max_vertices = 3, triangle_strip) out; - -void main() -{ - gl_Position = gl_in[0].gl_Position; -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/geom/unroll-glposition-load.asm.geom b/third_party/spirv-cross/reference/shaders/asm/geom/unroll-glposition-load.asm.geom deleted file mode 100644 index 39bc097d89..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/geom/unroll-glposition-load.asm.geom +++ /dev/null @@ -1,35 +0,0 @@ -#version 450 -layout(triangles) in; -layout(max_vertices = 3, triangle_strip) out; - -struct SceneOut -{ - vec4 pos; -}; - -void _main(vec4 positions[3], SceneOut OUT) -{ - SceneOut o; - for (int i = 0; i < 3; i++) - { - o.pos = positions[i]; - gl_Position = o.pos; - EmitVertex(); - } - EndPrimitive(); -} - -void main() -{ - vec4 _35_unrolled[3]; - for (int i = 0; i < int(3); i++) - { - _35_unrolled[i] = gl_in[i].gl_Position; - } - vec4 positions[3] = _35_unrolled; - vec4 param[3] = positions; - SceneOut param_1; - _main(param, param_1); - SceneOut OUT = param_1; -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/tese/unroll-input-array-load.asm.tese b/third_party/spirv-cross/reference/shaders/asm/tese/unroll-input-array-load.asm.tese deleted file mode 100644 index 34970b82eb..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/tese/unroll-input-array-load.asm.tese +++ /dev/null @@ -1,48 +0,0 @@ -#version 450 -layout(quads) in; - -struct HS_INPUT -{ - vec4 foo; - vec4 bar; -}; - -struct ControlPoint -{ - vec4 baz; -}; - -struct DS_OUTPUT -{ - vec4 pos; -}; - -layout(location = 0) patch in vec4 input_foo; -layout(location = 1) patch in vec4 input_bar; -layout(location = 2) in ControlPoint CPData[]; - -DS_OUTPUT _main(HS_INPUT _input, vec2 uv, ControlPoint CPData_1[4]) -{ - DS_OUTPUT o; - o.pos = (((_input.foo + _input.bar) + uv.xyxy) + CPData_1[0].baz) + CPData_1[3].baz; - return o; -} - -void main() -{ - HS_INPUT _input; - _input.foo = input_foo; - _input.bar = input_bar; - vec2 uv = vec2(gl_TessCoord.xy); - ControlPoint _54_unrolled[4]; - for (int i = 0; i < int(4); i++) - { - _54_unrolled[i] = CPData[i]; - } - ControlPoint CPData_1[4] = _54_unrolled; - HS_INPUT param = _input; - vec2 param_1 = uv; - ControlPoint param_2[4] = CPData_1; - gl_Position = _main(param, param_1, param_2).pos; -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/vert/empty-io.asm.vert b/third_party/spirv-cross/reference/shaders/asm/vert/empty-io.asm.vert deleted file mode 100644 index 91e65d6d7a..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/vert/empty-io.asm.vert +++ /dev/null @@ -1,35 +0,0 @@ -#version 450 - -struct VSInput -{ - vec4 position; -}; - -struct VSOutput -{ - vec4 position; -}; - -struct VSOutput_1 -{ - int empty_struct_member; -}; - -layout(location = 0) in vec4 position; -layout(location = 0) out VSOutput_1 _entryPointOutput; - -VSOutput _main(VSInput _input) -{ - VSOutput _out; - _out.position = _input.position; - return _out; -} - -void main() -{ - VSInput _input; - _input.position = position; - VSInput param = _input; - gl_Position = _main(param).position; -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/vert/extract-transposed-matrix-from-struct.asm.vert b/third_party/spirv-cross/reference/shaders/asm/vert/extract-transposed-matrix-from-struct.asm.vert deleted file mode 100644 index 40eef2d09d..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/vert/extract-transposed-matrix-from-struct.asm.vert +++ /dev/null @@ -1,52 +0,0 @@ -#version 450 -#ifdef GL_ARB_shader_draw_parameters -#extension GL_ARB_shader_draw_parameters : enable -#endif - -struct V2F -{ - vec4 Position; - vec4 Color; -}; - -struct InstanceData -{ - mat4 MATRIX_MVP; - vec4 Color; -}; - -layout(binding = 0, std430) readonly buffer gInstanceData -{ - layout(row_major) InstanceData _data[]; -} gInstanceData_1; - -layout(location = 0) in vec3 PosL; -#ifdef GL_ARB_shader_draw_parameters -#define SPIRV_Cross_BaseInstance gl_BaseInstanceARB -#else -uniform int SPIRV_Cross_BaseInstance; -#endif -layout(location = 0) out vec4 _entryPointOutput_Color; - -V2F _VS(vec3 PosL_1, uint instanceID) -{ - InstanceData instData; - instData.MATRIX_MVP = gInstanceData_1._data[instanceID].MATRIX_MVP; - instData.Color = gInstanceData_1._data[instanceID].Color; - V2F v2f; - v2f.Position = instData.MATRIX_MVP * vec4(PosL_1, 1.0); - v2f.Color = instData.Color; - return v2f; -} - -void main() -{ - vec3 PosL_1 = PosL; - uint instanceID = uint((gl_InstanceID + SPIRV_Cross_BaseInstance)); - vec3 param = PosL_1; - uint param_1 = instanceID; - V2F flattenTemp = _VS(param, param_1); - gl_Position = flattenTemp.Position; - _entryPointOutput_Color = flattenTemp.Color; -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/vert/global-builtin.sso.asm.vert b/third_party/spirv-cross/reference/shaders/asm/vert/global-builtin.sso.asm.vert deleted file mode 100644 index 7578827019..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/vert/global-builtin.sso.asm.vert +++ /dev/null @@ -1,35 +0,0 @@ -#version 450 - -out gl_PerVertex -{ - vec4 gl_Position; -}; - -struct VSOut -{ - float a; - vec4 pos; -}; - -struct VSOut_1 -{ - float a; -}; - -layout(location = 0) out VSOut_1 _entryPointOutput; - -VSOut _main() -{ - VSOut vout; - vout.a = 40.0; - vout.pos = vec4(1.0); - return vout; -} - -void main() -{ - VSOut flattenTemp = _main(); - _entryPointOutput.a = flattenTemp.a; - gl_Position = flattenTemp.pos; -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/vert/invariant-block.asm.vert b/third_party/spirv-cross/reference/shaders/asm/vert/invariant-block.asm.vert deleted file mode 100644 index 9b2f05a8bd..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/vert/invariant-block.asm.vert +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 - -invariant gl_Position; - -void main() -{ - gl_Position = vec4(1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/vert/invariant-block.sso.asm.vert b/third_party/spirv-cross/reference/shaders/asm/vert/invariant-block.sso.asm.vert deleted file mode 100644 index eb88694196..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/vert/invariant-block.sso.asm.vert +++ /dev/null @@ -1,17 +0,0 @@ -#version 450 - -out gl_PerVertex -{ - vec4 gl_Position; - float gl_PointSize; - float gl_ClipDistance[1]; - float gl_CullDistance[1]; -}; - -invariant gl_Position; - -void main() -{ - gl_Position = vec4(1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/vert/invariant.asm.vert b/third_party/spirv-cross/reference/shaders/asm/vert/invariant.asm.vert deleted file mode 100644 index c4c6ad6ba2..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/vert/invariant.asm.vert +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 - -invariant gl_Position; - -vec4 _main() -{ - return vec4(1.0); -} - -void main() -{ - vec4 _14 = _main(); - gl_Position = _14; -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/vert/invariant.sso.asm.vert b/third_party/spirv-cross/reference/shaders/asm/vert/invariant.sso.asm.vert deleted file mode 100644 index c486be1840..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/vert/invariant.sso.asm.vert +++ /dev/null @@ -1,20 +0,0 @@ -#version 450 - -out gl_PerVertex -{ - vec4 gl_Position; -}; - -invariant gl_Position; - -vec4 _main() -{ - return vec4(1.0); -} - -void main() -{ - vec4 _14 = _main(); - gl_Position = _14; -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/vert/spec-constant-op-composite.asm.vk.vert b/third_party/spirv-cross/reference/shaders/asm/vert/spec-constant-op-composite.asm.vk.vert deleted file mode 100644 index fdba2a2604..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/vert/spec-constant-op-composite.asm.vk.vert +++ /dev/null @@ -1,34 +0,0 @@ -#version 450 - -#ifndef SPIRV_CROSS_CONSTANT_ID_201 -#define SPIRV_CROSS_CONSTANT_ID_201 -10 -#endif -const int _7 = SPIRV_CROSS_CONSTANT_ID_201; -const int _20 = (_7 + 2); -#ifndef SPIRV_CROSS_CONSTANT_ID_202 -#define SPIRV_CROSS_CONSTANT_ID_202 100u -#endif -const uint _8 = SPIRV_CROSS_CONSTANT_ID_202; -const uint _25 = (_8 % 5u); -const ivec4 _30 = ivec4(20, 30, _20, _20); -const ivec2 _32 = ivec2(_30.y, _30.x); -const int _33 = _30.y; -#ifndef SPIRV_CROSS_CONSTANT_ID_200 -#define SPIRV_CROSS_CONSTANT_ID_200 3.141590118408203125 -#endif -const float _9 = SPIRV_CROSS_CONSTANT_ID_200; - -layout(location = 0) flat out int _4; - -void main() -{ - vec4 pos = vec4(0.0); - pos.y += float(_20); - pos.z += float(_25); - pos += vec4(_30); - vec2 _56 = pos.xy + vec2(_32); - pos = vec4(_56.x, _56.y, pos.z, pos.w); - gl_Position = pos; - _4 = _33; -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/vert/spec-constant-op-composite.asm.vk.vert.vk b/third_party/spirv-cross/reference/shaders/asm/vert/spec-constant-op-composite.asm.vk.vert.vk deleted file mode 100644 index 02c3e31257..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/vert/spec-constant-op-composite.asm.vk.vert.vk +++ /dev/null @@ -1,25 +0,0 @@ -#version 450 - -layout(constant_id = 201) const int _7 = -10; -const int _20 = (_7 + 2); -layout(constant_id = 202) const uint _8 = 100u; -const uint _25 = (_8 % 5u); -const ivec4 _30 = ivec4(20, 30, _20, _20); -const ivec2 _32 = ivec2(_30.y, _30.x); -const int _33 = _30.y; -layout(constant_id = 200) const float _9 = 3.141590118408203125; - -layout(location = 0) flat out int _4; - -void main() -{ - vec4 pos = vec4(0.0); - pos.y += float(_20); - pos.z += float(_25); - pos += vec4(_30); - vec2 _56 = pos.xy + vec2(_32); - pos = vec4(_56.x, _56.y, pos.z, pos.w); - gl_Position = pos; - _4 = _33; -} - diff --git a/third_party/spirv-cross/reference/shaders/asm/vert/uint-vertex-id-instance-id.asm.vert b/third_party/spirv-cross/reference/shaders/asm/vert/uint-vertex-id-instance-id.asm.vert deleted file mode 100644 index d79c08f8a3..0000000000 --- a/third_party/spirv-cross/reference/shaders/asm/vert/uint-vertex-id-instance-id.asm.vert +++ /dev/null @@ -1,25 +0,0 @@ -#version 450 -#ifdef GL_ARB_shader_draw_parameters -#extension GL_ARB_shader_draw_parameters : enable -#endif - -#ifdef GL_ARB_shader_draw_parameters -#define SPIRV_Cross_BaseInstance gl_BaseInstanceARB -#else -uniform int SPIRV_Cross_BaseInstance; -#endif - -vec4 _main(uint vid, uint iid) -{ - return vec4(float(vid + iid)); -} - -void main() -{ - uint vid = uint(gl_VertexID); - uint iid = uint((gl_InstanceID + SPIRV_Cross_BaseInstance)); - uint param = vid; - uint param_1 = iid; - gl_Position = _main(param, param_1); -} - diff --git a/third_party/spirv-cross/reference/shaders/comp/atomic.comp b/third_party/spirv-cross/reference/shaders/comp/atomic.comp deleted file mode 100644 index 89b1351c0c..0000000000 --- a/third_party/spirv-cross/reference/shaders/comp/atomic.comp +++ /dev/null @@ -1,49 +0,0 @@ -#version 310 es -#extension GL_OES_shader_image_atomic : require -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 2, std430) buffer SSBO -{ - uint u32; - int i32; -} ssbo; - -layout(binding = 0, r32ui) uniform highp uimage2D uImage; -layout(binding = 1, r32i) uniform highp iimage2D iImage; - -void main() -{ - uint _19 = imageAtomicAdd(uImage, ivec2(1, 5), 1u); - uint _27 = imageAtomicAdd(uImage, ivec2(1, 5), 1u); - imageStore(iImage, ivec2(1, 6), ivec4(int(_27))); - uint _32 = imageAtomicOr(uImage, ivec2(1, 5), 1u); - uint _34 = imageAtomicXor(uImage, ivec2(1, 5), 1u); - uint _36 = imageAtomicAnd(uImage, ivec2(1, 5), 1u); - uint _38 = imageAtomicMin(uImage, ivec2(1, 5), 1u); - uint _40 = imageAtomicMax(uImage, ivec2(1, 5), 1u); - uint _44 = imageAtomicCompSwap(uImage, ivec2(1, 5), 10u, 2u); - int _47 = imageAtomicAdd(iImage, ivec2(1, 6), 1); - int _49 = imageAtomicOr(iImage, ivec2(1, 6), 1); - int _51 = imageAtomicXor(iImage, ivec2(1, 6), 1); - int _53 = imageAtomicAnd(iImage, ivec2(1, 6), 1); - int _55 = imageAtomicMin(iImage, ivec2(1, 6), 1); - int _57 = imageAtomicMax(iImage, ivec2(1, 6), 1); - int _61 = imageAtomicCompSwap(iImage, ivec2(1, 5), 10, 2); - uint _68 = atomicAdd(ssbo.u32, 1u); - uint _70 = atomicOr(ssbo.u32, 1u); - uint _72 = atomicXor(ssbo.u32, 1u); - uint _74 = atomicAnd(ssbo.u32, 1u); - uint _76 = atomicMin(ssbo.u32, 1u); - uint _78 = atomicMax(ssbo.u32, 1u); - uint _80 = atomicExchange(ssbo.u32, 1u); - uint _82 = atomicCompSwap(ssbo.u32, 10u, 2u); - int _85 = atomicAdd(ssbo.i32, 1); - int _87 = atomicOr(ssbo.i32, 1); - int _89 = atomicXor(ssbo.i32, 1); - int _91 = atomicAnd(ssbo.i32, 1); - int _93 = atomicMin(ssbo.i32, 1); - int _95 = atomicMax(ssbo.i32, 1); - int _97 = atomicExchange(ssbo.i32, 1); - int _99 = atomicCompSwap(ssbo.i32, 10, 2); -} - diff --git a/third_party/spirv-cross/reference/shaders/comp/bake_gradient.comp b/third_party/spirv-cross/reference/shaders/comp/bake_gradient.comp deleted file mode 100644 index 49fa953244..0000000000 --- a/third_party/spirv-cross/reference/shaders/comp/bake_gradient.comp +++ /dev/null @@ -1,39 +0,0 @@ -#version 310 es -layout(local_size_x = 8, local_size_y = 8, local_size_z = 1) in; - -layout(binding = 4, std140) uniform UBO -{ - vec4 uInvSize; - vec4 uScale; -} _46; - -layout(binding = 0) uniform mediump sampler2D uHeight; -layout(binding = 1) uniform mediump sampler2D uDisplacement; -layout(binding = 2, rgba16f) uniform writeonly mediump image2D iHeightDisplacement; -layout(binding = 3, rgba16f) uniform writeonly mediump image2D iGradJacobian; - -mediump float jacobian(mediump vec2 dDdx, mediump vec2 dDdy) -{ - return ((1.0 + dDdx.x) * (1.0 + dDdy.y)) - (dDdx.y * dDdy.x); -} - -void main() -{ - vec4 uv = (vec2(gl_GlobalInvocationID.xy) * _46.uInvSize.xy).xyxy + (_46.uInvSize * 0.5); - float h = textureLod(uHeight, uv.xy, 0.0).x; - float x0 = textureLodOffset(uHeight, uv.xy, 0.0, ivec2(-1, 0)).x; - float x1 = textureLodOffset(uHeight, uv.xy, 0.0, ivec2(1, 0)).x; - float y0 = textureLodOffset(uHeight, uv.xy, 0.0, ivec2(0, -1)).x; - float y1 = textureLodOffset(uHeight, uv.xy, 0.0, ivec2(0, 1)).x; - vec2 grad = (_46.uScale.xy * 0.5) * vec2(x1 - x0, y1 - y0); - vec2 displacement = textureLod(uDisplacement, uv.zw, 0.0).xy * 1.2000000476837158203125; - vec2 dDdx = (textureLodOffset(uDisplacement, uv.zw, 0.0, ivec2(1, 0)).xy - textureLodOffset(uDisplacement, uv.zw, 0.0, ivec2(-1, 0)).xy) * 0.60000002384185791015625; - vec2 dDdy = (textureLodOffset(uDisplacement, uv.zw, 0.0, ivec2(0, 1)).xy - textureLodOffset(uDisplacement, uv.zw, 0.0, ivec2(0, -1)).xy) * 0.60000002384185791015625; - mediump vec2 param = dDdx * _46.uScale.z; - mediump vec2 param_1 = dDdy * _46.uScale.z; - float j = jacobian(param, param_1); - displacement = vec2(0.0); - imageStore(iHeightDisplacement, ivec2(gl_GlobalInvocationID.xy), vec4(h, displacement, 0.0)); - imageStore(iGradJacobian, ivec2(gl_GlobalInvocationID.xy), vec4(grad, j, 0.0)); -} - diff --git a/third_party/spirv-cross/reference/shaders/comp/barriers.comp b/third_party/spirv-cross/reference/shaders/comp/barriers.comp deleted file mode 100644 index 1102c91e28..0000000000 --- a/third_party/spirv-cross/reference/shaders/comp/barriers.comp +++ /dev/null @@ -1,77 +0,0 @@ -#version 310 es -layout(local_size_x = 4, local_size_y = 1, local_size_z = 1) in; - -void barrier_shared() -{ - memoryBarrierShared(); -} - -void full_barrier() -{ - memoryBarrier(); -} - -void image_barrier() -{ - memoryBarrierImage(); -} - -void buffer_barrier() -{ - memoryBarrierBuffer(); -} - -void group_barrier() -{ - groupMemoryBarrier(); -} - -void barrier_shared_exec() -{ - barrier(); -} - -void full_barrier_exec() -{ - memoryBarrier(); - barrier(); -} - -void image_barrier_exec() -{ - memoryBarrierImage(); - barrier(); -} - -void buffer_barrier_exec() -{ - memoryBarrierBuffer(); - barrier(); -} - -void group_barrier_exec() -{ - groupMemoryBarrier(); - barrier(); -} - -void exec_barrier() -{ - barrier(); -} - -void main() -{ - barrier_shared(); - full_barrier(); - image_barrier(); - buffer_barrier(); - group_barrier(); - barrier_shared_exec(); - full_barrier_exec(); - image_barrier_exec(); - buffer_barrier_exec(); - group_barrier_exec(); - exec_barrier(); -} - diff --git a/third_party/spirv-cross/reference/shaders/comp/basic.comp b/third_party/spirv-cross/reference/shaders/comp/basic.comp deleted file mode 100644 index 1485089951..0000000000 --- a/third_party/spirv-cross/reference/shaders/comp/basic.comp +++ /dev/null @@ -1,29 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) readonly buffer SSBO -{ - vec4 in_data[]; -} _23; - -layout(binding = 1, std430) writeonly buffer SSBO2 -{ - vec4 out_data[]; -} _45; - -layout(binding = 2, std430) buffer SSBO3 -{ - uint counter; -} _48; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - vec4 idata = _23.in_data[ident]; - if (dot(idata, vec4(1.0, 5.0, 6.0, 2.0)) > 8.19999980926513671875) - { - uint _52 = atomicAdd(_48.counter, 1u); - _45.out_data[_52] = idata; - } -} - diff --git a/third_party/spirv-cross/reference/shaders/comp/casts.comp b/third_party/spirv-cross/reference/shaders/comp/casts.comp deleted file mode 100644 index 973668676a..0000000000 --- a/third_party/spirv-cross/reference/shaders/comp/casts.comp +++ /dev/null @@ -1,19 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 1, std430) buffer SSBO1 -{ - ivec4 outputs[]; -} _21; - -layout(binding = 0, std430) buffer SSBO0 -{ - ivec4 inputs[]; -} _27; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - _21.outputs[ident] = mix(ivec4(0), ivec4(1), notEqual((_27.inputs[ident] & ivec4(3)), ivec4(uvec4(0u)))); -} - diff --git a/third_party/spirv-cross/reference/shaders/comp/cfg-preserve-parameter.comp b/third_party/spirv-cross/reference/shaders/comp/cfg-preserve-parameter.comp deleted file mode 100644 index 72bde44a90..0000000000 --- a/third_party/spirv-cross/reference/shaders/comp/cfg-preserve-parameter.comp +++ /dev/null @@ -1,74 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -void out_test_0(int cond, out int i) -{ - if (cond == 0) - { - i = 40; - } - else - { - i = 60; - } -} - -void out_test_1(int cond, out int i) -{ - switch (cond) - { - case 40: - { - i = 40; - break; - } - default: - { - i = 70; - break; - } - } -} - -void inout_test_0(int cond, inout int i) -{ - if (cond == 0) - { - i = 40; - } -} - -void inout_test_1(int cond, inout int i) -{ - switch (cond) - { - case 40: - { - i = 40; - break; - } - } -} - -void main() -{ - int cond = 40; - int i = 50; - int param = cond; - int param_1 = i; - out_test_0(param, param_1); - i = param_1; - int param_2 = cond; - int param_3 = i; - out_test_1(param_2, param_3); - i = param_3; - int param_4 = cond; - int param_5 = i; - inout_test_0(param_4, param_5); - i = param_5; - int param_6 = cond; - int param_7 = i; - inout_test_1(param_6, param_7); - i = param_7; -} - diff --git a/third_party/spirv-cross/reference/shaders/comp/cfg.comp b/third_party/spirv-cross/reference/shaders/comp/cfg.comp deleted file mode 100644 index a91c873262..0000000000 --- a/third_party/spirv-cross/reference/shaders/comp/cfg.comp +++ /dev/null @@ -1,81 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer SSBO -{ - float data; -} _11; - -void test() -{ - if (!(_11.data == 0.0)) - { - float tmp = 10.0; - _11.data = tmp; - } - else - { - float tmp_1 = 15.0; - _11.data = tmp_1; - } - if (!(_11.data == 0.0)) - { - float e; - if (!(_11.data == 5.0)) - { - if (!(_11.data == 6.0)) - { - e = 10.0; - } - } - else - { - e = 20.0; - } - } - switch (int(_11.data)) - { - case 0: - { - float tmp_2 = 20.0; - _11.data = tmp_2; - break; - } - case 1: - { - float tmp_3 = 30.0; - _11.data = tmp_3; - break; - } - } - float f; - switch (int(_11.data)) - { - case 0: - { - f = 30.0; - break; - } - case 1: - { - f = 40.0; - break; - } - } - float h; - for (int i = 0; i < 20; i++, h += 10.0) - { - } - _11.data = h; - float m; - do - { - } while (!(m == 20.0)); - _11.data = m; -} - -void main() -{ - test(); -} - diff --git a/third_party/spirv-cross/reference/shaders/comp/coherent-block.comp b/third_party/spirv-cross/reference/shaders/comp/coherent-block.comp deleted file mode 100644 index bfab6bbea8..0000000000 --- a/third_party/spirv-cross/reference/shaders/comp/coherent-block.comp +++ /dev/null @@ -1,13 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 1, std430) coherent restrict writeonly buffer SSBO -{ - vec4 value; -} _10; - -void main() -{ - _10.value = vec4(20.0); -} - diff --git a/third_party/spirv-cross/reference/shaders/comp/coherent-image.comp b/third_party/spirv-cross/reference/shaders/comp/coherent-image.comp deleted file mode 100644 index b3992f242e..0000000000 --- a/third_party/spirv-cross/reference/shaders/comp/coherent-image.comp +++ /dev/null @@ -1,15 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 1, std430) coherent restrict writeonly buffer SSBO -{ - ivec4 value; -} _10; - -layout(binding = 3, r32i) uniform coherent restrict readonly mediump iimage2D uImage; - -void main() -{ - _10.value = imageLoad(uImage, ivec2(10)); -} - diff --git a/third_party/spirv-cross/reference/shaders/comp/composite-array-initialization.comp b/third_party/spirv-cross/reference/shaders/comp/composite-array-initialization.comp deleted file mode 100644 index 847a152009..0000000000 --- a/third_party/spirv-cross/reference/shaders/comp/composite-array-initialization.comp +++ /dev/null @@ -1,38 +0,0 @@ -#version 310 es -layout(local_size_x = 2, local_size_y = 1, local_size_z = 1) in; - -struct Data -{ - float a; - float b; -}; - -#ifndef SPIRV_CROSS_CONSTANT_ID_0 -#define SPIRV_CROSS_CONSTANT_ID_0 4.0 -#endif -const float X = SPIRV_CROSS_CONSTANT_ID_0; - -layout(binding = 0, std430) buffer SSBO -{ - Data outdata[]; -} _53; - -Data data[2]; -Data data2[2]; - -Data combine(Data a, Data b) -{ - return Data(a.a + b.a, a.b + b.b); -} - -void main() -{ - data = Data[](Data(1.0, 2.0), Data(3.0, 4.0)); - data2 = Data[](Data(X, 2.0), Data(3.0, 5.0)); - Data param = data[gl_LocalInvocationID.x]; - Data param_1 = data2[gl_LocalInvocationID.x]; - Data _73 = combine(param, param_1); - _53.outdata[gl_WorkGroupID.x].a = _73.a; - _53.outdata[gl_WorkGroupID.x].b = _73.b; -} - diff --git a/third_party/spirv-cross/reference/shaders/comp/composite-construct.comp b/third_party/spirv-cross/reference/shaders/comp/composite-construct.comp deleted file mode 100644 index b397550725..0000000000 --- a/third_party/spirv-cross/reference/shaders/comp/composite-construct.comp +++ /dev/null @@ -1,40 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -const vec4 _66[2] = vec4[](vec4(10.0), vec4(30.0)); - -struct Composite -{ - vec4 a[2]; - vec4 b[2]; -}; - -const float _94[2][3] = float[][](float[](1.0, 1.0, 1.0), float[](2.0, 2.0, 2.0)); - -layout(binding = 0, std430) buffer SSBO0 -{ - vec4 as[]; -} _41; - -layout(binding = 1, std430) buffer SSBO1 -{ - vec4 bs[]; -} _55; - -vec4 summe(vec4 values[3][2]) -{ - return ((values[0][0] + values[2][1]) + values[0][1]) + values[1][0]; -} - -void main() -{ - vec4 values[2] = vec4[](_41.as[gl_GlobalInvocationID.x], _55.bs[gl_GlobalInvocationID.x]); - vec4 copy_values[2] = _66; - vec4 copy_values2[2] = values; - vec4 param[3][2] = vec4[][](values, copy_values, copy_values2); - _41.as[gl_GlobalInvocationID.x] = summe(param); - Composite c = Composite(values, copy_values); - float b = 10.0; - float values_scalar[4] = float[](b, b, b, b); -} - diff --git a/third_party/spirv-cross/reference/shaders/comp/culling.comp b/third_party/spirv-cross/reference/shaders/comp/culling.comp deleted file mode 100644 index fd83bfcb5b..0000000000 --- a/third_party/spirv-cross/reference/shaders/comp/culling.comp +++ /dev/null @@ -1,29 +0,0 @@ -#version 310 es -layout(local_size_x = 4, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) readonly buffer SSBO -{ - float in_data[]; -} _22; - -layout(binding = 1, std430) writeonly buffer SSBO2 -{ - float out_data[]; -} _38; - -layout(binding = 2, std430) buffer SSBO3 -{ - uint count; -} _41; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - float idata = _22.in_data[ident]; - if (idata > 12.0) - { - uint _45 = atomicAdd(_41.count, 1u); - _38.out_data[_45] = idata; - } -} - diff --git a/third_party/spirv-cross/reference/shaders/comp/defer-parens.comp b/third_party/spirv-cross/reference/shaders/comp/defer-parens.comp deleted file mode 100644 index cf98529316..0000000000 --- a/third_party/spirv-cross/reference/shaders/comp/defer-parens.comp +++ /dev/null @@ -1,21 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer SSBO -{ - vec4 data; - int index; -} _13; - -void main() -{ - vec4 d = _13.data; - _13.data = vec4(d.x, d.yz + vec2(10.0), d.w); - _13.data = (d + d) + d; - _13.data = (d.yz + vec2(10.0)).xxyy; - float t = (d.yz + vec2(10.0)).y; - _13.data = vec4(t); - t = (d.zw + vec2(10.0))[_13.index]; - _13.data = vec4(t); -} - diff --git a/third_party/spirv-cross/reference/shaders/comp/dowhile.comp b/third_party/spirv-cross/reference/shaders/comp/dowhile.comp deleted file mode 100644 index e717961abd..0000000000 --- a/third_party/spirv-cross/reference/shaders/comp/dowhile.comp +++ /dev/null @@ -1,29 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) readonly buffer SSBO -{ - mat4 mvp; - vec4 in_data[]; -} _28; - -layout(binding = 1, std430) writeonly buffer SSBO2 -{ - vec4 out_data[]; -} _52; - -int i; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - i = 0; - vec4 idat = _28.in_data[ident]; - do - { - idat = _28.mvp * idat; - i++; - } while (i < 16); - _52.out_data[ident] = idat; -} - diff --git a/third_party/spirv-cross/reference/shaders/comp/generate_height.comp b/third_party/spirv-cross/reference/shaders/comp/generate_height.comp deleted file mode 100644 index e482bf0ca5..0000000000 --- a/third_party/spirv-cross/reference/shaders/comp/generate_height.comp +++ /dev/null @@ -1,95 +0,0 @@ -#version 310 es -layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) readonly buffer Distribution -{ - vec2 distribution[]; -} _137; - -layout(binding = 2, std140) uniform UBO -{ - vec4 uModTime; -} _166; - -layout(binding = 1, std430) writeonly buffer HeightmapFFT -{ - uint heights[]; -} _225; - -uvec2 workaround_mix(uvec2 a, uvec2 b, bvec2 sel) -{ - uint _86; - if (sel.x) - { - _86 = b.x; - } - else - { - _86 = a.x; - } - uint _97; - if (sel.y) - { - _97 = b.y; - } - else - { - _97 = a.y; - } - return uvec2(_86, _97); -} - -vec2 alias(vec2 i, vec2 N) -{ - return mix(i, i - N, greaterThan(i, N * 0.5)); -} - -vec2 cmul(vec2 a, vec2 b) -{ - vec2 r3 = a.yx; - vec2 r1 = b.xx; - vec2 R0 = a * r1; - vec2 r2 = b.yy; - vec2 R1 = r2 * r3; - return R0 + vec2(-R1.x, R1.y); -} - -uint pack2(vec2 v) -{ - return packHalf2x16(v); -} - -void generate_heightmap() -{ - uvec2 N = uvec2(64u, 1u) * gl_NumWorkGroups.xy; - uvec2 i = gl_GlobalInvocationID.xy; - uvec2 param = N - i; - uvec2 param_1 = uvec2(0u); - bvec2 param_2 = equal(i, uvec2(0u)); - uvec2 wi = workaround_mix(param, param_1, param_2); - vec2 a = _137.distribution[(i.y * N.x) + i.x]; - vec2 b = _137.distribution[(wi.y * N.x) + wi.x]; - vec2 param_3 = vec2(i); - vec2 param_4 = vec2(N); - vec2 k = _166.uModTime.xy * alias(param_3, param_4); - float k_len = length(k); - float w = sqrt(9.81000041961669921875 * k_len) * _166.uModTime.z; - float cw = cos(w); - float sw = sin(w); - vec2 param_5 = a; - vec2 param_6 = vec2(cw, sw); - a = cmul(param_5, param_6); - vec2 param_7 = b; - vec2 param_8 = vec2(cw, sw); - b = cmul(param_7, param_8); - b = vec2(b.x, -b.y); - vec2 res = a + b; - vec2 param_9 = res; - _225.heights[(i.y * N.x) + i.x] = pack2(param_9); -} - -void main() -{ - generate_heightmap(); -} - diff --git a/third_party/spirv-cross/reference/shaders/comp/image.comp b/third_party/spirv-cross/reference/shaders/comp/image.comp deleted file mode 100644 index b2bf0d65bb..0000000000 --- a/third_party/spirv-cross/reference/shaders/comp/image.comp +++ /dev/null @@ -1,12 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, rgba8) uniform readonly mediump image2D uImageIn; -layout(binding = 1, rgba8) uniform writeonly mediump image2D uImageOut; - -void main() -{ - vec4 v = imageLoad(uImageIn, ivec2(gl_GlobalInvocationID.xy) + imageSize(uImageIn)); - imageStore(uImageOut, ivec2(gl_GlobalInvocationID.xy), v); -} - diff --git a/third_party/spirv-cross/reference/shaders/comp/insert.comp b/third_party/spirv-cross/reference/shaders/comp/insert.comp deleted file mode 100644 index cbe1e27f45..0000000000 --- a/third_party/spirv-cross/reference/shaders/comp/insert.comp +++ /dev/null @@ -1,19 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) writeonly buffer SSBO -{ - vec4 out_data[]; -} _27; - -void main() -{ - vec4 v; - v.x = 10.0; - v.y = 30.0; - v.z = 70.0; - v.w = 90.0; - _27.out_data[gl_GlobalInvocationID.x] = v; - _27.out_data[gl_GlobalInvocationID.x].y = 20.0; -} - diff --git a/third_party/spirv-cross/reference/shaders/comp/mat3.comp b/third_party/spirv-cross/reference/shaders/comp/mat3.comp deleted file mode 100644 index 2b050f5d01..0000000000 --- a/third_party/spirv-cross/reference/shaders/comp/mat3.comp +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 1, std430) writeonly buffer SSBO2 -{ - mat3 out_data[]; -} _22; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - _22.out_data[ident] = mat3(vec3(10.0), vec3(20.0), vec3(40.0)); -} - diff --git a/third_party/spirv-cross/reference/shaders/comp/mod.comp b/third_party/spirv-cross/reference/shaders/comp/mod.comp deleted file mode 100644 index 4be0c5f7f4..0000000000 --- a/third_party/spirv-cross/reference/shaders/comp/mod.comp +++ /dev/null @@ -1,24 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) readonly buffer SSBO -{ - vec4 in_data[]; -} _23; - -layout(binding = 1, std430) writeonly buffer SSBO2 -{ - vec4 out_data[]; -} _33; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - vec4 v = mod(_23.in_data[ident], _33.out_data[ident]); - _33.out_data[ident] = v; - uvec4 vu = floatBitsToUint(_23.in_data[ident]) % floatBitsToUint(_33.out_data[ident]); - _33.out_data[ident] = uintBitsToFloat(vu); - ivec4 vi = floatBitsToInt(_23.in_data[ident]) % floatBitsToInt(_33.out_data[ident]); - _33.out_data[ident] = intBitsToFloat(vi); -} - diff --git a/third_party/spirv-cross/reference/shaders/comp/modf.comp b/third_party/spirv-cross/reference/shaders/comp/modf.comp deleted file mode 100644 index c92149bf94..0000000000 --- a/third_party/spirv-cross/reference/shaders/comp/modf.comp +++ /dev/null @@ -1,22 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) readonly buffer SSBO -{ - vec4 in_data[]; -} _23; - -layout(binding = 1, std430) writeonly buffer SSBO2 -{ - vec4 out_data[]; -} _35; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - vec4 i; - vec4 _31 = modf(_23.in_data[ident], i); - vec4 v = _31; - _35.out_data[ident] = v; -} - diff --git a/third_party/spirv-cross/reference/shaders/comp/outer-product.comp b/third_party/spirv-cross/reference/shaders/comp/outer-product.comp deleted file mode 100644 index d31dad3b2c..0000000000 --- a/third_party/spirv-cross/reference/shaders/comp/outer-product.comp +++ /dev/null @@ -1,36 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) writeonly buffer SSBO -{ - mat2 m22; - mat2x3 m23; - mat2x4 m24; - mat3x2 m32; - mat3 m33; - mat3x4 m34; - mat4x2 m42; - mat4x3 m43; - mat4 m44; -} _21; - -layout(binding = 1, std430) readonly buffer ReadSSBO -{ - vec2 v2; - vec3 v3; - vec4 v4; -} _26; - -void main() -{ - _21.m22 = outerProduct(_26.v2, _26.v2); - _21.m23 = outerProduct(_26.v3, _26.v2); - _21.m24 = outerProduct(_26.v4, _26.v2); - _21.m32 = outerProduct(_26.v2, _26.v3); - _21.m33 = outerProduct(_26.v3, _26.v3); - _21.m34 = outerProduct(_26.v4, _26.v3); - _21.m42 = outerProduct(_26.v2, _26.v4); - _21.m43 = outerProduct(_26.v3, _26.v4); - _21.m44 = outerProduct(_26.v4, _26.v4); -} - diff --git a/third_party/spirv-cross/reference/shaders/comp/read-write-only.comp b/third_party/spirv-cross/reference/shaders/comp/read-write-only.comp deleted file mode 100644 index 06227ee2c6..0000000000 --- a/third_party/spirv-cross/reference/shaders/comp/read-write-only.comp +++ /dev/null @@ -1,27 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 2, std430) restrict writeonly buffer SSBO2 -{ - vec4 data4; - vec4 data5; -} _10; - -layout(binding = 0, std430) readonly buffer SSBO0 -{ - vec4 data0; - vec4 data1; -} _15; - -layout(binding = 1, std430) restrict buffer SSBO1 -{ - vec4 data2; - vec4 data3; -} _21; - -void main() -{ - _10.data4 = _15.data0 + _21.data2; - _10.data5 = _15.data1 + _21.data3; -} - diff --git a/third_party/spirv-cross/reference/shaders/comp/rmw-matrix.comp b/third_party/spirv-cross/reference/shaders/comp/rmw-matrix.comp deleted file mode 100644 index 5c4ac94bc7..0000000000 --- a/third_party/spirv-cross/reference/shaders/comp/rmw-matrix.comp +++ /dev/null @@ -1,20 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer SSBO -{ - float a; - vec4 b; - mat4 c; - float a1; - vec4 b1; - mat4 c1; -} _11; - -void main() -{ - _11.a *= _11.a1; - _11.b *= _11.b1; - _11.c = _11.c * _11.c1; -} - diff --git a/third_party/spirv-cross/reference/shaders/comp/rmw-opt.comp b/third_party/spirv-cross/reference/shaders/comp/rmw-opt.comp deleted file mode 100644 index e3fba7810d..0000000000 --- a/third_party/spirv-cross/reference/shaders/comp/rmw-opt.comp +++ /dev/null @@ -1,27 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer SSBO -{ - int a; -} _9; - -void main() -{ - _9.a += 10; - _9.a -= 10; - _9.a *= 10; - _9.a /= 10; - _9.a = _9.a << 2; - _9.a = _9.a >> 3; - _9.a &= 40; - _9.a ^= 10; - _9.a %= 40; - _9.a |= 1; - bool c = false; - bool d = true; - c = c && d; - d = d || c; - _9.a = int(c && d); -} - diff --git a/third_party/spirv-cross/reference/shaders/comp/scalar-std450-distance-length-normalize.comp b/third_party/spirv-cross/reference/shaders/comp/scalar-std450-distance-length-normalize.comp deleted file mode 100644 index c28face28a..0000000000 --- a/third_party/spirv-cross/reference/shaders/comp/scalar-std450-distance-length-normalize.comp +++ /dev/null @@ -1,19 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer SSBO -{ - float a; - float b; - float c; - float d; - float e; -} _9; - -void main() -{ - _9.c = distance(_9.a, _9.b); - _9.d = length(_9.a); - _9.e = normalize(_9.a); -} - diff --git a/third_party/spirv-cross/reference/shaders/comp/shared.comp b/third_party/spirv-cross/reference/shaders/comp/shared.comp deleted file mode 100644 index 545ef22e61..0000000000 --- a/third_party/spirv-cross/reference/shaders/comp/shared.comp +++ /dev/null @@ -1,24 +0,0 @@ -#version 310 es -layout(local_size_x = 4, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) readonly buffer SSBO -{ - float in_data[]; -} _22; - -layout(binding = 1, std430) writeonly buffer SSBO2 -{ - float out_data[]; -} _44; - -shared float sShared[4]; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - float idata = _22.in_data[ident]; - sShared[gl_LocalInvocationIndex] = idata; - barrier(); - _44.out_data[ident] = sShared[(4u - gl_LocalInvocationIndex) - 1u]; -} - diff --git a/third_party/spirv-cross/reference/shaders/comp/ssbo-array-length.comp b/third_party/spirv-cross/reference/shaders/comp/ssbo-array-length.comp deleted file mode 100644 index ddc666e9b9..0000000000 --- a/third_party/spirv-cross/reference/shaders/comp/ssbo-array-length.comp +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 1, std140) buffer SSBO -{ - uint size; - float v[]; -} _11; - -void main() -{ - _11.size = uint(int(uint(_11.v.length()))); -} - diff --git a/third_party/spirv-cross/reference/shaders/comp/ssbo-array.comp b/third_party/spirv-cross/reference/shaders/comp/ssbo-array.comp deleted file mode 100644 index e773bd093c..0000000000 --- a/third_party/spirv-cross/reference/shaders/comp/ssbo-array.comp +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer SSBO -{ - vec4 data[]; -} ssbos[2]; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - ssbos[1].data[ident] = ssbos[0].data[ident]; -} - diff --git a/third_party/spirv-cross/reference/shaders/comp/struct-layout.comp b/third_party/spirv-cross/reference/shaders/comp/struct-layout.comp deleted file mode 100644 index 4feea8be54..0000000000 --- a/third_party/spirv-cross/reference/shaders/comp/struct-layout.comp +++ /dev/null @@ -1,24 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -struct Foo -{ - mat4 m; -}; - -layout(binding = 1, std430) writeonly buffer SSBO2 -{ - Foo out_data[]; -} _23; - -layout(binding = 0, std430) readonly buffer SSBO -{ - Foo in_data[]; -} _30; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - _23.out_data[ident].m = _30.in_data[ident].m * _30.in_data[ident].m; -} - diff --git a/third_party/spirv-cross/reference/shaders/comp/struct-packing.comp b/third_party/spirv-cross/reference/shaders/comp/struct-packing.comp deleted file mode 100644 index f4b58342d4..0000000000 --- a/third_party/spirv-cross/reference/shaders/comp/struct-packing.comp +++ /dev/null @@ -1,104 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -struct S0 -{ - vec2 a[1]; - float b; -}; - -struct S1 -{ - vec3 a; - float b; -}; - -struct S2 -{ - vec3 a[1]; - float b; -}; - -struct S3 -{ - vec2 a; - float b; -}; - -struct S4 -{ - vec2 c; -}; - -struct Content -{ - S0 m0s[1]; - S1 m1s[1]; - S2 m2s[1]; - S0 m0; - S1 m1; - S2 m2; - S3 m3; - float m4; - S4 m3s[8]; -}; - -layout(binding = 1, std430) restrict buffer SSBO1 -{ - Content content; - Content content1[2]; - Content content2; - mat2 m0; - mat2 m1; - mat2x3 m2[4]; - mat3x2 m3; - layout(row_major) mat2 m4; - layout(row_major) mat2 m5[9]; - layout(row_major) mat2x3 m6[4][2]; - layout(row_major) mat3x2 m7; - float array[]; -} ssbo_430; - -layout(binding = 0, std140) restrict buffer SSBO0 -{ - Content content; - Content content1[2]; - Content content2; - mat2 m0; - mat2 m1; - mat2x3 m2[4]; - mat3x2 m3; - layout(row_major) mat2 m4; - layout(row_major) mat2 m5[9]; - layout(row_major) mat2x3 m6[4][2]; - layout(row_major) mat3x2 m7; - float array[]; -} ssbo_140; - -void main() -{ - ssbo_430.content.m0s[0].a[0] = ssbo_140.content.m0s[0].a[0]; - ssbo_430.content.m0s[0].b = ssbo_140.content.m0s[0].b; - ssbo_430.content.m1s[0].a = ssbo_140.content.m1s[0].a; - ssbo_430.content.m1s[0].b = ssbo_140.content.m1s[0].b; - ssbo_430.content.m2s[0].a[0] = ssbo_140.content.m2s[0].a[0]; - ssbo_430.content.m2s[0].b = ssbo_140.content.m2s[0].b; - ssbo_430.content.m0.a[0] = ssbo_140.content.m0.a[0]; - ssbo_430.content.m0.b = ssbo_140.content.m0.b; - ssbo_430.content.m1.a = ssbo_140.content.m1.a; - ssbo_430.content.m1.b = ssbo_140.content.m1.b; - ssbo_430.content.m2.a[0] = ssbo_140.content.m2.a[0]; - ssbo_430.content.m2.b = ssbo_140.content.m2.b; - ssbo_430.content.m3.a = ssbo_140.content.m3.a; - ssbo_430.content.m3.b = ssbo_140.content.m3.b; - ssbo_430.content.m4 = ssbo_140.content.m4; - ssbo_430.content.m3s[0].c = ssbo_140.content.m3s[0].c; - ssbo_430.content.m3s[1].c = ssbo_140.content.m3s[1].c; - ssbo_430.content.m3s[2].c = ssbo_140.content.m3s[2].c; - ssbo_430.content.m3s[3].c = ssbo_140.content.m3s[3].c; - ssbo_430.content.m3s[4].c = ssbo_140.content.m3s[4].c; - ssbo_430.content.m3s[5].c = ssbo_140.content.m3s[5].c; - ssbo_430.content.m3s[6].c = ssbo_140.content.m3s[6].c; - ssbo_430.content.m3s[7].c = ssbo_140.content.m3s[7].c; -} - diff --git a/third_party/spirv-cross/reference/shaders/comp/torture-loop.comp b/third_party/spirv-cross/reference/shaders/comp/torture-loop.comp deleted file mode 100644 index 645af5c374..0000000000 --- a/third_party/spirv-cross/reference/shaders/comp/torture-loop.comp +++ /dev/null @@ -1,49 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) readonly buffer SSBO -{ - mat4 mvp; - vec4 in_data[]; -} _24; - -layout(binding = 1, std430) writeonly buffer SSBO2 -{ - vec4 out_data[]; -} _89; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - vec4 idat = _24.in_data[ident]; - int k = 0; - for (;;) - { - int _39 = k; - int _40 = _39 + 1; - k = _40; - if (_40 < 10) - { - idat *= 2.0; - k++; - continue; - } - else - { - break; - } - } - for (uint i = 0u; i < 16u; i++, k++) - { - for (uint j = 0u; j < 30u; j++) - { - idat = _24.mvp * idat; - } - } - do - { - k++; - } while (k > 10); - _89.out_data[ident] = idat; -} - diff --git a/third_party/spirv-cross/reference/shaders/comp/type-alias.comp b/third_party/spirv-cross/reference/shaders/comp/type-alias.comp deleted file mode 100644 index 51f3792e1a..0000000000 --- a/third_party/spirv-cross/reference/shaders/comp/type-alias.comp +++ /dev/null @@ -1,49 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -struct S0 -{ - vec4 a; -}; - -struct S1 -{ - vec4 a; -}; - -layout(binding = 0, std430) buffer SSBO0 -{ - S0 s0s[]; -} _36; - -layout(binding = 1, std430) buffer SSBO1 -{ - S1 s1s[]; -} _55; - -layout(binding = 2, std430) buffer SSBO2 -{ - vec4 outputs[]; -} _66; - -vec4 overload(S0 s0) -{ - return s0.a; -} - -vec4 overload(S1 s1) -{ - return s1.a; -} - -void main() -{ - S0 s0; - s0.a = _36.s0s[gl_GlobalInvocationID.x].a; - S1 s1; - s1.a = _55.s1s[gl_GlobalInvocationID.x].a; - S0 param = s0; - S1 param_1 = s1; - _66.outputs[gl_GlobalInvocationID.x] = overload(param) + overload(param_1); -} - diff --git a/third_party/spirv-cross/reference/shaders/comp/udiv.comp b/third_party/spirv-cross/reference/shaders/comp/udiv.comp deleted file mode 100644 index 0c1f926ad0..0000000000 --- a/third_party/spirv-cross/reference/shaders/comp/udiv.comp +++ /dev/null @@ -1,18 +0,0 @@ -#version 310 es -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, std430) buffer SSBO2 -{ - uint outputs[]; -} _10; - -layout(binding = 0, std430) buffer SSBO -{ - uint inputs[]; -} _23; - -void main() -{ - _10.outputs[gl_GlobalInvocationID.x] = _23.inputs[gl_GlobalInvocationID.x] / 29u; -} - diff --git a/third_party/spirv-cross/reference/shaders/desktop-only/comp/enhanced-layouts.comp b/third_party/spirv-cross/reference/shaders/desktop-only/comp/enhanced-layouts.comp deleted file mode 100644 index ba37ca237b..0000000000 --- a/third_party/spirv-cross/reference/shaders/desktop-only/comp/enhanced-layouts.comp +++ /dev/null @@ -1,40 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -struct Foo -{ - int a; - int b; - int c; -}; - -layout(binding = 1, std140) buffer SSBO1 -{ - layout(offset = 4) int a; - layout(offset = 8) int b; - layout(offset = 16) Foo foo; - layout(offset = 48) int c[8]; -} ssbo1; - -layout(binding = 2, std430) buffer SSBO2 -{ - layout(offset = 4) int a; - layout(offset = 8) int b; - layout(offset = 16) Foo foo; - layout(offset = 48) int c[8]; -} ssbo2; - -layout(binding = 0, std140) uniform UBO -{ - layout(offset = 4) int a; - layout(offset = 8) int b; - layout(offset = 16) Foo foo; - layout(offset = 48) int c[8]; -} ubo; - -void main() -{ - ssbo1.a = ssbo2.a; - ssbo1.b = ubo.b; -} - diff --git a/third_party/spirv-cross/reference/shaders/desktop-only/comp/extended-arithmetic.desktop.comp b/third_party/spirv-cross/reference/shaders/desktop-only/comp/extended-arithmetic.desktop.comp deleted file mode 100644 index 9c55c74db4..0000000000 --- a/third_party/spirv-cross/reference/shaders/desktop-only/comp/extended-arithmetic.desktop.comp +++ /dev/null @@ -1,159 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -struct ResType -{ - uint _m0; - uint _m1; -}; - -struct ResType_1 -{ - uvec2 _m0; - uvec2 _m1; -}; - -struct ResType_2 -{ - uvec3 _m0; - uvec3 _m1; -}; - -struct ResType_3 -{ - uvec4 _m0; - uvec4 _m1; -}; - -struct ResType_4 -{ - int _m0; - int _m1; -}; - -struct ResType_5 -{ - ivec2 _m0; - ivec2 _m1; -}; - -struct ResType_6 -{ - ivec3 _m0; - ivec3 _m1; -}; - -struct ResType_7 -{ - ivec4 _m0; - ivec4 _m1; -}; - -layout(binding = 0, std430) buffer SSBOUint -{ - uint a; - uint b; - uint c; - uint d; - uvec2 a2; - uvec2 b2; - uvec2 c2; - uvec2 d2; - uvec3 a3; - uvec3 b3; - uvec3 c3; - uvec3 d3; - uvec4 a4; - uvec4 b4; - uvec4 c4; - uvec4 d4; -} u; - -layout(binding = 1, std430) buffer SSBOInt -{ - int a; - int b; - int c; - int d; - ivec2 a2; - ivec2 b2; - ivec2 c2; - ivec2 d2; - ivec3 a3; - ivec3 b3; - ivec3 c3; - ivec3 d3; - ivec4 a4; - ivec4 b4; - ivec4 c4; - ivec4 d4; -} i; - -void main() -{ - ResType _25; - _25._m0 = uaddCarry(u.a, u.b, _25._m1); - u.d = _25._m1; - u.c = _25._m0; - ResType_1 _40; - _40._m0 = uaddCarry(u.a2, u.b2, _40._m1); - u.d2 = _40._m1; - u.c2 = _40._m0; - ResType_2 _55; - _55._m0 = uaddCarry(u.a3, u.b3, _55._m1); - u.d3 = _55._m1; - u.c3 = _55._m0; - ResType_3 _70; - _70._m0 = uaddCarry(u.a4, u.b4, _70._m1); - u.d4 = _70._m1; - u.c4 = _70._m0; - ResType _79; - _79._m0 = usubBorrow(u.a, u.b, _79._m1); - u.d = _79._m1; - u.c = _79._m0; - ResType_1 _88; - _88._m0 = usubBorrow(u.a2, u.b2, _88._m1); - u.d2 = _88._m1; - u.c2 = _88._m0; - ResType_2 _97; - _97._m0 = usubBorrow(u.a3, u.b3, _97._m1); - u.d3 = _97._m1; - u.c3 = _97._m0; - ResType_3 _106; - _106._m0 = usubBorrow(u.a4, u.b4, _106._m1); - u.d4 = _106._m1; - u.c4 = _106._m0; - ResType _116; - umulExtended(u.a, u.b, _116._m1, _116._m0); - u.d = _116._m0; - u.c = _116._m1; - ResType_1 _125; - umulExtended(u.a2, u.b2, _125._m1, _125._m0); - u.d2 = _125._m0; - u.c2 = _125._m1; - ResType_2 _134; - umulExtended(u.a3, u.b3, _134._m1, _134._m0); - u.d3 = _134._m0; - u.c3 = _134._m1; - ResType_3 _143; - umulExtended(u.a4, u.b4, _143._m1, _143._m0); - u.d4 = _143._m0; - u.c4 = _143._m1; - ResType_4 _160; - imulExtended(i.a, i.b, _160._m1, _160._m0); - i.d = _160._m0; - i.c = _160._m1; - ResType_5 _171; - imulExtended(i.a2, i.b2, _171._m1, _171._m0); - i.d2 = _171._m0; - i.c2 = _171._m1; - ResType_6 _182; - imulExtended(i.a3, i.b3, _182._m1, _182._m0); - i.d3 = _182._m0; - i.c3 = _182._m1; - ResType_7 _193; - imulExtended(i.a4, i.b4, _193._m1, _193._m0); - i.d4 = _193._m0; - i.c4 = _193._m1; -} - diff --git a/third_party/spirv-cross/reference/shaders/desktop-only/comp/fp64.desktop.comp b/third_party/spirv-cross/reference/shaders/desktop-only/comp/fp64.desktop.comp deleted file mode 100644 index c9e5e84962..0000000000 --- a/third_party/spirv-cross/reference/shaders/desktop-only/comp/fp64.desktop.comp +++ /dev/null @@ -1,83 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -struct M0 -{ - double v; - dvec2 b[2]; - dmat2x3 c; - dmat3x2 d; -}; - -layout(binding = 0, std430) buffer SSBO0 -{ - dvec4 a; - M0 m0; - dmat4 b; -} ssbo_0; - -layout(binding = 1, std430) buffer SSBO1 -{ - dmat4 a; - dvec4 b; - M0 m0; -} ssbo_1; - -layout(binding = 2, std430) buffer SSBO2 -{ - double a[4]; - dvec2 b[4]; -} ssbo_2; - -layout(binding = 3, std140) buffer SSBO3 -{ - double a[4]; - dvec2 b[4]; -} ssbo_3; - -void main() -{ - ssbo_0.a += dvec4(10.0lf, 20.0lf, 30.0lf, 40.0lf); - ssbo_0.a += dvec4(20.0lf); - dvec4 a = ssbo_0.a; - dmat4 amat = ssbo_0.b; - ssbo_0.a = abs(a); - ssbo_0.a = sign(a); - ssbo_0.a = floor(a); - ssbo_0.a = trunc(a); - ssbo_0.a = round(a); - ssbo_0.a = roundEven(a); - ssbo_0.a = ceil(a); - ssbo_0.a = fract(a); - ssbo_0.a = mod(a, dvec4(20.0lf)); - ssbo_0.a = mod(a, a); - ssbo_0.a = min(a, a); - ssbo_0.a = max(a, a); - ssbo_0.a = clamp(a, a, a); - ssbo_0.a = mix(a, a, a); - ssbo_0.a = step(a, a); - ssbo_0.a = smoothstep(a, a, a); - bvec4 b = isnan(a); - bvec4 c = isinf(a); - double f = packDouble2x32(uvec2(10u, 40u)); - uvec2 g = unpackDouble2x32(f); - double d = length(a); - d = distance(a, a); - d = dot(a, a); - dvec3 e = cross(a.xyz, a.yzw); - a = faceforward(a, a, a); - a = reflect(a, a); - dmat4 l = dmat4(amat[0] * amat[0], amat[1] * amat[1], amat[2] * amat[2], amat[3] * amat[3]); - l = outerProduct(a, a); - l = transpose(l); - double m = determinant(l); - l = inverse(l); - bvec4 k = lessThan(a, a); - k = lessThanEqual(a, a); - k = greaterThan(a, a); - k = greaterThanEqual(a, a); - ssbo_1.b.x += 1.0lf; - ssbo_2.b[0].x += 1.0lf; - ssbo_3.b[0].x += 1.0lf; -} - diff --git a/third_party/spirv-cross/reference/shaders/desktop-only/comp/image-formats.desktop.noeliminate.comp b/third_party/spirv-cross/reference/shaders/desktop-only/comp/image-formats.desktop.noeliminate.comp deleted file mode 100644 index 7a0797578b..0000000000 --- a/third_party/spirv-cross/reference/shaders/desktop-only/comp/image-formats.desktop.noeliminate.comp +++ /dev/null @@ -1,47 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(binding = 0, rgba32f) uniform readonly writeonly image2D uImg00; -layout(binding = 1, rgba16f) uniform readonly writeonly image2D uImg01; -layout(binding = 2, rg32f) uniform readonly writeonly image2D uImg02; -layout(binding = 3, rg16f) uniform readonly writeonly image2D uImg03; -layout(binding = 4, r11f_g11f_b10f) uniform readonly writeonly image2D uImg04; -layout(binding = 5, r32f) uniform readonly writeonly image2D uImg05; -layout(binding = 6, r16f) uniform readonly writeonly image2D uImg06; -layout(binding = 7, rgba16) uniform readonly writeonly image2D uImg07; -layout(binding = 8, rgb10_a2) uniform readonly writeonly image2D uImg08; -layout(binding = 9, rgba8) uniform readonly writeonly image2D uImg09; -layout(binding = 10, rg16) uniform readonly writeonly image2D uImg10; -layout(binding = 11, rg8) uniform readonly writeonly image2D uImg11; -layout(binding = 12, r16) uniform readonly writeonly image2D uImg12; -layout(binding = 13, r8) uniform readonly writeonly image2D uImg13; -layout(binding = 14, rgba16_snorm) uniform readonly writeonly image2D uImg14; -layout(binding = 15, rgba8_snorm) uniform readonly writeonly image2D uImg15; -layout(binding = 16, rg16_snorm) uniform readonly writeonly image2D uImg16; -layout(binding = 17, rg8_snorm) uniform readonly writeonly image2D uImg17; -layout(binding = 18, r16_snorm) uniform readonly writeonly image2D uImg18; -layout(binding = 19, r8_snorm) uniform readonly writeonly image2D uImg19; -layout(binding = 20, rgba32i) uniform readonly writeonly iimage2D uImage20; -layout(binding = 21, rgba16i) uniform readonly writeonly iimage2D uImage21; -layout(binding = 22, rgba8i) uniform readonly writeonly iimage2D uImage22; -layout(binding = 23, rg32i) uniform readonly writeonly iimage2D uImage23; -layout(binding = 24, rg16i) uniform readonly writeonly iimage2D uImage24; -layout(binding = 25, rg8i) uniform readonly writeonly iimage2D uImage25; -layout(binding = 26, r32i) uniform readonly writeonly iimage2D uImage26; -layout(binding = 27, r16i) uniform readonly writeonly iimage2D uImage27; -layout(binding = 28, r8i) uniform readonly writeonly iimage2D uImage28; -layout(binding = 29, rgba32ui) uniform readonly writeonly uimage2D uImage29; -layout(binding = 30, rgba16ui) uniform readonly writeonly uimage2D uImage30; -layout(binding = 31, rgb10_a2ui) uniform readonly writeonly uimage2D uImage31; -layout(binding = 32, rgba8ui) uniform readonly writeonly uimage2D uImage32; -layout(binding = 33, rg32ui) uniform readonly writeonly uimage2D uImage33; -layout(binding = 34, rg16ui) uniform readonly writeonly uimage2D uImage34; -layout(binding = 35, rg8ui) uniform readonly writeonly uimage2D uImage35; -layout(binding = 36, r32ui) uniform readonly writeonly uimage2D uImage36; -layout(binding = 37, r16ui) uniform readonly writeonly uimage2D uImage37; -layout(binding = 38, r8ui) uniform readonly writeonly uimage2D uImage38; - -void main() -{ -} - diff --git a/third_party/spirv-cross/reference/shaders/desktop-only/comp/int64.desktop.comp b/third_party/spirv-cross/reference/shaders/desktop-only/comp/int64.desktop.comp deleted file mode 100644 index 702456b303..0000000000 --- a/third_party/spirv-cross/reference/shaders/desktop-only/comp/int64.desktop.comp +++ /dev/null @@ -1,52 +0,0 @@ -#version 450 -#extension GL_ARB_gpu_shader_int64 : require -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -struct M0 -{ - int64_t v; - i64vec2 b[2]; - uint64_t c; - uint64_t d[5]; -}; - -layout(binding = 0, std430) buffer SSBO0 -{ - i64vec4 a; - M0 m0; -} ssbo_0; - -layout(binding = 1, std430) buffer SSBO1 -{ - u64vec4 b; - M0 m0; -} ssbo_1; - -layout(binding = 2, std430) buffer SSBO2 -{ - int64_t a[4]; - i64vec2 b[4]; -} ssbo_2; - -layout(binding = 3, std140) buffer SSBO3 -{ - int64_t a[4]; - i64vec2 b[4]; -} ssbo_3; - -void main() -{ - ssbo_0.a += i64vec4(10l, 20l, 30l, 40l); - ssbo_1.b += u64vec4(999999999999999999ul, 8888888888888888ul, 77777777777777777ul, 6666666666666666ul); - ssbo_0.a += i64vec4(20l); - ssbo_0.a = abs(ssbo_0.a + i64vec4(ssbo_1.b)); - ssbo_0.a += i64vec4(1l); - ssbo_1.b += u64vec4(i64vec4(1l)); - ssbo_0.a -= i64vec4(1l); - ssbo_1.b -= u64vec4(i64vec4(1l)); - ssbo_1.b = doubleBitsToUint64(int64BitsToDouble(ssbo_0.a)); - ssbo_0.a = doubleBitsToInt64(uint64BitsToDouble(ssbo_1.b)); - ssbo_2.a[0] += 1l; - ssbo_3.a[0] += 2l; -} - diff --git a/third_party/spirv-cross/reference/shaders/desktop-only/frag/clip-cull-distance.desktop.frag b/third_party/spirv-cross/reference/shaders/desktop-only/frag/clip-cull-distance.desktop.frag deleted file mode 100644 index 3cc3205509..0000000000 --- a/third_party/spirv-cross/reference/shaders/desktop-only/frag/clip-cull-distance.desktop.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -in float gl_ClipDistance[4]; -in float gl_CullDistance[3]; - -layout(location = 0) out float FragColor; - -void main() -{ - FragColor = gl_ClipDistance[0] + gl_CullDistance[0]; -} - diff --git a/third_party/spirv-cross/reference/shaders/desktop-only/frag/control-dependent-in-branch.desktop.frag b/third_party/spirv-cross/reference/shaders/desktop-only/frag/control-dependent-in-branch.desktop.frag deleted file mode 100644 index 391b4de1c2..0000000000 --- a/third_party/spirv-cross/reference/shaders/desktop-only/frag/control-dependent-in-branch.desktop.frag +++ /dev/null @@ -1,37 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler2D uSampler; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 vInput; - -void main() -{ - FragColor = vInput; - vec4 t = texture(uSampler, vInput.xy); - vec4 d0 = dFdx(vInput); - vec4 d1 = dFdy(vInput); - vec4 d2 = fwidth(vInput); - vec4 d3 = dFdxCoarse(vInput); - vec4 d4 = dFdyCoarse(vInput); - vec4 d5 = fwidthCoarse(vInput); - vec4 d6 = dFdxFine(vInput); - vec4 d7 = dFdyFine(vInput); - vec4 d8 = fwidthFine(vInput); - vec2 lod = textureQueryLod(uSampler, vInput.zw); - if (vInput.y > 10.0) - { - FragColor += t; - FragColor += d0; - FragColor += d1; - FragColor += d2; - FragColor += d3; - FragColor += d4; - FragColor += d5; - FragColor += d6; - FragColor += d7; - FragColor += d8; - FragColor += lod.xyxy; - } -} - diff --git a/third_party/spirv-cross/reference/shaders/desktop-only/frag/depth-greater-than.desktop.frag b/third_party/spirv-cross/reference/shaders/desktop-only/frag/depth-greater-than.desktop.frag deleted file mode 100644 index 8b7c296447..0000000000 --- a/third_party/spirv-cross/reference/shaders/desktop-only/frag/depth-greater-than.desktop.frag +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 -layout(depth_greater) out float gl_FragDepth; -layout(early_fragment_tests) in; - -void main() -{ - gl_FragDepth = 0.5; -} - diff --git a/third_party/spirv-cross/reference/shaders/desktop-only/frag/depth-less-than.desktop.frag b/third_party/spirv-cross/reference/shaders/desktop-only/frag/depth-less-than.desktop.frag deleted file mode 100644 index 44752eb8fb..0000000000 --- a/third_party/spirv-cross/reference/shaders/desktop-only/frag/depth-less-than.desktop.frag +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 -layout(depth_less) out float gl_FragDepth; -layout(early_fragment_tests) in; - -void main() -{ - gl_FragDepth = 0.5; -} - diff --git a/third_party/spirv-cross/reference/shaders/desktop-only/frag/dual-source-blending.desktop.frag b/third_party/spirv-cross/reference/shaders/desktop-only/frag/dual-source-blending.desktop.frag deleted file mode 100644 index 3d946b04a5..0000000000 --- a/third_party/spirv-cross/reference/shaders/desktop-only/frag/dual-source-blending.desktop.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 - -layout(location = 0, index = 0) out vec4 FragColor0; -layout(location = 0, index = 1) out vec4 FragColor1; - -void main() -{ - FragColor0 = vec4(1.0); - FragColor1 = vec4(2.0); -} - diff --git a/third_party/spirv-cross/reference/shaders/desktop-only/frag/hlsl-uav-block-alias.asm.frag b/third_party/spirv-cross/reference/shaders/desktop-only/frag/hlsl-uav-block-alias.asm.frag deleted file mode 100644 index 70843a8563..0000000000 --- a/third_party/spirv-cross/reference/shaders/desktop-only/frag/hlsl-uav-block-alias.asm.frag +++ /dev/null @@ -1,24 +0,0 @@ -#version 450 - -layout(binding = 0, std430) buffer Foobar -{ - vec4 _data[]; -} Foobar_1; - -layout(binding = 1, std430) buffer Foobaz -{ - vec4 _data[]; -} Foobaz_1; - -layout(location = 0) out vec4 _entryPointOutput; - -vec4 _main() -{ - return Foobar_1._data[0] + Foobaz_1._data[0]; -} - -void main() -{ - _entryPointOutput = _main(); -} - diff --git a/third_party/spirv-cross/reference/shaders/desktop-only/frag/image-ms.desktop.frag b/third_party/spirv-cross/reference/shaders/desktop-only/frag/image-ms.desktop.frag deleted file mode 100644 index 24644be170..0000000000 --- a/third_party/spirv-cross/reference/shaders/desktop-only/frag/image-ms.desktop.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 - -layout(binding = 0, rgba8) uniform image2DMS uImage; -layout(binding = 1, rgba8) uniform image2DMSArray uImageArray; - -void main() -{ - vec4 a = imageLoad(uImage, ivec2(1, 2), 2); - vec4 b = imageLoad(uImageArray, ivec3(1, 2, 4), 3); - imageStore(uImage, ivec2(2, 3), 1, a); - imageStore(uImageArray, ivec3(2, 3, 7), 1, b); -} - diff --git a/third_party/spirv-cross/reference/shaders/desktop-only/frag/image-query.desktop.frag b/third_party/spirv-cross/reference/shaders/desktop-only/frag/image-query.desktop.frag deleted file mode 100644 index 6f36d5db3b..0000000000 --- a/third_party/spirv-cross/reference/shaders/desktop-only/frag/image-query.desktop.frag +++ /dev/null @@ -1,53 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler1D uSampler1D; -layout(binding = 1) uniform sampler2D uSampler2D; -layout(binding = 2) uniform sampler2DArray uSampler2DArray; -layout(binding = 3) uniform sampler3D uSampler3D; -layout(binding = 4) uniform samplerCube uSamplerCube; -layout(binding = 5) uniform samplerCubeArray uSamplerCubeArray; -layout(binding = 6) uniform samplerBuffer uSamplerBuffer; -layout(binding = 7) uniform sampler2DMS uSamplerMS; -layout(binding = 8) uniform sampler2DMSArray uSamplerMSArray; -layout(binding = 9, r32f) uniform readonly writeonly image1D uImage1D; -layout(binding = 10, r32f) uniform readonly writeonly image2D uImage2D; -layout(binding = 11, r32f) uniform readonly writeonly image2DArray uImage2DArray; -layout(binding = 12, r32f) uniform readonly writeonly image3D uImage3D; -layout(binding = 13, r32f) uniform readonly writeonly imageCube uImageCube; -layout(binding = 14, r32f) uniform readonly writeonly imageCubeArray uImageCubeArray; -layout(binding = 15, r32f) uniform readonly writeonly imageBuffer uImageBuffer; -layout(binding = 16, r32f) uniform readonly writeonly image2DMS uImageMS; -layout(binding = 17, r32f) uniform readonly writeonly image2DMSArray uImageMSArray; - -void main() -{ - int a = textureSize(uSampler1D, 0); - ivec2 b = textureSize(uSampler2D, 0); - ivec3 c = textureSize(uSampler2DArray, 0); - ivec3 d = textureSize(uSampler3D, 0); - ivec2 e = textureSize(uSamplerCube, 0); - ivec3 f = textureSize(uSamplerCubeArray, 0); - int g = textureSize(uSamplerBuffer); - ivec2 h = textureSize(uSamplerMS); - ivec3 i = textureSize(uSamplerMSArray); - int l0 = textureQueryLevels(uSampler1D); - int l1 = textureQueryLevels(uSampler2D); - int l2 = textureQueryLevels(uSampler2DArray); - int l3 = textureQueryLevels(uSampler3D); - int l4 = textureQueryLevels(uSamplerCube); - int l5 = textureQueryLevels(uSamplerCubeArray); - a = imageSize(uImage1D); - b = imageSize(uImage2D); - c = imageSize(uImage2DArray); - d = imageSize(uImage3D); - e = imageSize(uImageCube); - f = imageSize(uImageCubeArray); - g = imageSize(uImageBuffer); - h = imageSize(uImageMS); - i = imageSize(uImageMSArray); - int s0 = textureSamples(uSamplerMS); - int s1 = textureSamples(uSamplerMSArray); - int s2 = imageSamples(uImageMS); - int s3 = imageSamples(uImageMSArray); -} - diff --git a/third_party/spirv-cross/reference/shaders/desktop-only/frag/image-size.frag b/third_party/spirv-cross/reference/shaders/desktop-only/frag/image-size.frag deleted file mode 100644 index 5bb060398e..0000000000 --- a/third_party/spirv-cross/reference/shaders/desktop-only/frag/image-size.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(binding = 0, r32f) uniform readonly writeonly image2D uImage1; -layout(binding = 1, r32f) uniform readonly writeonly image2D uImage2; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(vec2(imageSize(uImage1)), vec2(imageSize(uImage2))); -} - diff --git a/third_party/spirv-cross/reference/shaders/desktop-only/frag/image-size.no-qualifier-deduction.frag b/third_party/spirv-cross/reference/shaders/desktop-only/frag/image-size.no-qualifier-deduction.frag deleted file mode 100644 index 1d9062064a..0000000000 --- a/third_party/spirv-cross/reference/shaders/desktop-only/frag/image-size.no-qualifier-deduction.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(binding = 0, r32f) uniform image2D uImage1; -layout(binding = 1, r32f) uniform image2D uImage2; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(vec2(imageSize(uImage1)), vec2(imageSize(uImage2))); -} - diff --git a/third_party/spirv-cross/reference/shaders/desktop-only/frag/in-block-qualifiers.frag b/third_party/spirv-cross/reference/shaders/desktop-only/frag/in-block-qualifiers.frag deleted file mode 100644 index d4622801df..0000000000 --- a/third_party/spirv-cross/reference/shaders/desktop-only/frag/in-block-qualifiers.frag +++ /dev/null @@ -1,21 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in VertexData -{ - flat float f; - centroid vec4 g; - flat int h; - float i; -} vin; - -layout(location = 4) flat in float f; -layout(location = 5) centroid in vec4 g; -layout(location = 6) flat in int h; -layout(location = 7) sample in float i; - -void main() -{ - FragColor = ((((((vec4(vin.f) + vin.g) + vec4(float(vin.h))) + vec4(vin.i)) + vec4(f)) + g) + vec4(float(h))) + vec4(i); -} - diff --git a/third_party/spirv-cross/reference/shaders/desktop-only/frag/layout-component.desktop.frag b/third_party/spirv-cross/reference/shaders/desktop-only/frag/layout-component.desktop.frag deleted file mode 100644 index 13f17feeed..0000000000 --- a/third_party/spirv-cross/reference/shaders/desktop-only/frag/layout-component.desktop.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 - -layout(location = 0) out vec2 FragColor; -layout(location = 0, component = 0) in vec2 v0; -layout(location = 0, component = 2) in float v1; -in Vertex -{ - layout(location = 1, component = 2) float v3; -} _20; - - -void main() -{ - FragColor = (v0 + vec2(v1)) + vec2(_20.v3); -} - diff --git a/third_party/spirv-cross/reference/shaders/desktop-only/frag/query-levels.desktop.frag b/third_party/spirv-cross/reference/shaders/desktop-only/frag/query-levels.desktop.frag deleted file mode 100644 index 4a80cbf81f..0000000000 --- a/third_party/spirv-cross/reference/shaders/desktop-only/frag/query-levels.desktop.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler2D uSampler; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(float(textureQueryLevels(uSampler))); -} - diff --git a/third_party/spirv-cross/reference/shaders/desktop-only/frag/query-lod.desktop.frag b/third_party/spirv-cross/reference/shaders/desktop-only/frag/query-lod.desktop.frag deleted file mode 100644 index f43543b8c0..0000000000 --- a/third_party/spirv-cross/reference/shaders/desktop-only/frag/query-lod.desktop.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler2D uSampler; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec2 vTexCoord; - -void main() -{ - FragColor = textureQueryLod(uSampler, vTexCoord).xyxy; -} - diff --git a/third_party/spirv-cross/reference/shaders/desktop-only/frag/sampler-ms-query.desktop.frag b/third_party/spirv-cross/reference/shaders/desktop-only/frag/sampler-ms-query.desktop.frag deleted file mode 100644 index 4c30ed1529..0000000000 --- a/third_party/spirv-cross/reference/shaders/desktop-only/frag/sampler-ms-query.desktop.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler2DMS uSampler; -layout(binding = 1) uniform sampler2DMSArray uSamplerArray; -layout(binding = 2, rgba8) uniform readonly writeonly image2DMS uImage; -layout(binding = 3, rgba8) uniform readonly writeonly image2DMSArray uImageArray; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(float(((textureSamples(uSampler) + textureSamples(uSamplerArray)) + imageSamples(uImage)) + imageSamples(uImageArray))); -} - diff --git a/third_party/spirv-cross/reference/shaders/desktop-only/frag/stencil-export.desktop.frag b/third_party/spirv-cross/reference/shaders/desktop-only/frag/stencil-export.desktop.frag deleted file mode 100644 index 65082a8b2d..0000000000 --- a/third_party/spirv-cross/reference/shaders/desktop-only/frag/stencil-export.desktop.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 -#extension GL_ARB_shader_stencil_export : require - -layout(location = 0) out vec4 MRT0; -layout(location = 1) out vec4 MRT1; - -void main() -{ - MRT0 = vec4(1.0); - MRT1 = vec4(1.0, 0.0, 1.0, 1.0); - gl_FragStencilRefARB = 100; -} - diff --git a/third_party/spirv-cross/reference/shaders/desktop-only/frag/texture-proj-shadow.desktop.frag b/third_party/spirv-cross/reference/shaders/desktop-only/frag/texture-proj-shadow.desktop.frag deleted file mode 100644 index d5e45bda43..0000000000 --- a/third_party/spirv-cross/reference/shaders/desktop-only/frag/texture-proj-shadow.desktop.frag +++ /dev/null @@ -1,26 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler1DShadow uShadow1D; -layout(binding = 1) uniform sampler2DShadow uShadow2D; -layout(binding = 2) uniform sampler1D uSampler1D; -layout(binding = 3) uniform sampler2D uSampler2D; -layout(binding = 4) uniform sampler3D uSampler3D; - -layout(location = 0) out float FragColor; -layout(location = 1) in vec4 vClip4; -layout(location = 2) in vec2 vClip2; -layout(location = 0) in vec3 vClip3; - -void main() -{ - vec4 _20 = vClip4; - _20.y = vClip4.w; - FragColor = textureProj(uShadow1D, vec4(_20.x, 0.0, vClip4.z, _20.y)); - vec4 _30 = vClip4; - _30.z = vClip4.w; - FragColor = textureProj(uShadow2D, vec4(_30.xy, vClip4.z, _30.z)); - FragColor = textureProj(uSampler1D, vClip2).x; - FragColor = textureProj(uSampler2D, vClip3).x; - FragColor = textureProj(uSampler3D, vClip4).x; -} - diff --git a/third_party/spirv-cross/reference/shaders/desktop-only/geom/basic.desktop.sso.geom b/third_party/spirv-cross/reference/shaders/desktop-only/geom/basic.desktop.sso.geom deleted file mode 100644 index f1afee69ec..0000000000 --- a/third_party/spirv-cross/reference/shaders/desktop-only/geom/basic.desktop.sso.geom +++ /dev/null @@ -1,35 +0,0 @@ -#version 450 -layout(invocations = 4, triangles) in; -layout(max_vertices = 3, triangle_strip) out; - -in gl_PerVertex -{ - vec4 gl_Position; -} gl_in[]; - -out gl_PerVertex -{ - vec4 gl_Position; -}; - -layout(location = 0) out vec3 vNormal; -layout(location = 0) in VertexData -{ - vec3 normal; -} vin[3]; - - -void main() -{ - gl_Position = gl_in[0].gl_Position; - vNormal = vin[0].normal + vec3(float(gl_InvocationID)); - EmitVertex(); - gl_Position = gl_in[1].gl_Position; - vNormal = vin[1].normal + vec3(4.0 * float(gl_InvocationID)); - EmitVertex(); - gl_Position = gl_in[2].gl_Position; - vNormal = vin[2].normal + vec3(2.0 * float(gl_InvocationID)); - EmitVertex(); - EndPrimitive(); -} - diff --git a/third_party/spirv-cross/reference/shaders/desktop-only/geom/viewport-index.desktop.geom b/third_party/spirv-cross/reference/shaders/desktop-only/geom/viewport-index.desktop.geom deleted file mode 100644 index 773aeb8bfd..0000000000 --- a/third_party/spirv-cross/reference/shaders/desktop-only/geom/viewport-index.desktop.geom +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 -layout(triangles) in; -layout(max_vertices = 4, triangle_strip) out; - -void main() -{ - gl_ViewportIndex = 1; -} - diff --git a/third_party/spirv-cross/reference/shaders/desktop-only/tesc/basic.desktop.sso.tesc b/third_party/spirv-cross/reference/shaders/desktop-only/tesc/basic.desktop.sso.tesc deleted file mode 100644 index c51699db6d..0000000000 --- a/third_party/spirv-cross/reference/shaders/desktop-only/tesc/basic.desktop.sso.tesc +++ /dev/null @@ -1,27 +0,0 @@ -#version 450 -layout(vertices = 1) out; - -in gl_PerVertex -{ - vec4 gl_Position; -} gl_in[]; - -out gl_PerVertex -{ - vec4 gl_Position; -} gl_out[1]; - -layout(location = 0) patch out vec3 vFoo; - -void main() -{ - gl_TessLevelInner[0] = 8.8999996185302734375; - gl_TessLevelInner[1] = 6.900000095367431640625; - gl_TessLevelOuter[0] = 8.8999996185302734375; - gl_TessLevelOuter[1] = 6.900000095367431640625; - gl_TessLevelOuter[2] = 3.900000095367431640625; - gl_TessLevelOuter[3] = 4.900000095367431640625; - vFoo = vec3(1.0); - gl_out[gl_InvocationID].gl_Position = gl_in[0].gl_Position + gl_in[1].gl_Position; -} - diff --git a/third_party/spirv-cross/reference/shaders/desktop-only/tese/triangle.desktop.sso.tese b/third_party/spirv-cross/reference/shaders/desktop-only/tese/triangle.desktop.sso.tese deleted file mode 100644 index c9bacd464e..0000000000 --- a/third_party/spirv-cross/reference/shaders/desktop-only/tese/triangle.desktop.sso.tese +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 -layout(triangles, cw, fractional_even_spacing) in; - -in gl_PerVertex -{ - vec4 gl_Position; -} gl_in[]; - -out gl_PerVertex -{ - vec4 gl_Position; -}; - -void main() -{ - gl_Position = ((gl_in[0].gl_Position * gl_TessCoord.x) + (gl_in[1].gl_Position * gl_TessCoord.y)) + (gl_in[2].gl_Position * gl_TessCoord.z); -} - diff --git a/third_party/spirv-cross/reference/shaders/desktop-only/vert/basic.desktop.sso.vert b/third_party/spirv-cross/reference/shaders/desktop-only/vert/basic.desktop.sso.vert deleted file mode 100644 index 2f880398e0..0000000000 --- a/third_party/spirv-cross/reference/shaders/desktop-only/vert/basic.desktop.sso.vert +++ /dev/null @@ -1,22 +0,0 @@ -#version 450 - -out gl_PerVertex -{ - vec4 gl_Position; -}; - -layout(binding = 0, std140) uniform UBO -{ - mat4 uMVP; -} _16; - -layout(location = 0) in vec4 aVertex; -layout(location = 0) out vec3 vNormal; -layout(location = 1) in vec3 aNormal; - -void main() -{ - gl_Position = _16.uMVP * aVertex; - vNormal = aNormal; -} - diff --git a/third_party/spirv-cross/reference/shaders/desktop-only/vert/clip-cull-distance.desktop.sso.vert b/third_party/spirv-cross/reference/shaders/desktop-only/vert/clip-cull-distance.desktop.sso.vert deleted file mode 100644 index a7c5d761c9..0000000000 --- a/third_party/spirv-cross/reference/shaders/desktop-only/vert/clip-cull-distance.desktop.sso.vert +++ /dev/null @@ -1,20 +0,0 @@ -#version 450 - -out gl_PerVertex -{ - vec4 gl_Position; - float gl_PointSize; - float gl_ClipDistance[4]; - float gl_CullDistance[3]; -}; - -void main() -{ - gl_Position = vec4(1.0); - gl_ClipDistance[0] = 0.0; - gl_ClipDistance[1] = 0.0; - gl_ClipDistance[2] = 0.0; - gl_ClipDistance[3] = 0.0; - gl_CullDistance[1] = 4.0; -} - diff --git a/third_party/spirv-cross/reference/shaders/desktop-only/vert/clip-cull-distance.desktop.vert b/third_party/spirv-cross/reference/shaders/desktop-only/vert/clip-cull-distance.desktop.vert deleted file mode 100644 index 2f3d49f55d..0000000000 --- a/third_party/spirv-cross/reference/shaders/desktop-only/vert/clip-cull-distance.desktop.vert +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 - -out float gl_ClipDistance[4]; -out float gl_CullDistance[3]; - -void main() -{ - gl_Position = vec4(1.0); - gl_ClipDistance[0] = 0.0; - gl_ClipDistance[1] = 0.0; - gl_ClipDistance[2] = 0.0; - gl_ClipDistance[3] = 0.0; - gl_CullDistance[1] = 4.0; -} - diff --git a/third_party/spirv-cross/reference/shaders/desktop-only/vert/out-block-qualifiers.vert b/third_party/spirv-cross/reference/shaders/desktop-only/vert/out-block-qualifiers.vert deleted file mode 100644 index 7c731684bc..0000000000 --- a/third_party/spirv-cross/reference/shaders/desktop-only/vert/out-block-qualifiers.vert +++ /dev/null @@ -1,27 +0,0 @@ -#version 450 - -layout(location = 0) out VertexData -{ - flat float f; - centroid vec4 g; - flat int h; - float i; -} vout; - -layout(location = 4) flat out float f; -layout(location = 5) centroid out vec4 g; -layout(location = 6) flat out int h; -layout(location = 7) out float i; - -void main() -{ - vout.f = 10.0; - vout.g = vec4(20.0); - vout.h = 20; - vout.i = 30.0; - f = 10.0; - g = vec4(20.0); - h = 20; - i = 30.0; -} - diff --git a/third_party/spirv-cross/reference/shaders/desktop-only/vert/shader-draw-parameters-450.desktop.vk.vert b/third_party/spirv-cross/reference/shaders/desktop-only/vert/shader-draw-parameters-450.desktop.vk.vert deleted file mode 100644 index 2b3c5ce051..0000000000 --- a/third_party/spirv-cross/reference/shaders/desktop-only/vert/shader-draw-parameters-450.desktop.vk.vert +++ /dev/null @@ -1,24 +0,0 @@ -#version 450 -#ifdef GL_ARB_shader_draw_parameters -#extension GL_ARB_shader_draw_parameters : enable -#endif - -#ifdef GL_ARB_shader_draw_parameters -#define SPIRV_Cross_BaseVertex gl_BaseVertexARB -#else -uniform int SPIRV_Cross_BaseVertex; -#endif -#ifdef GL_ARB_shader_draw_parameters -#define SPIRV_Cross_BaseInstance gl_BaseInstanceARB -#else -uniform int SPIRV_Cross_BaseInstance; -#endif -#ifndef GL_ARB_shader_draw_parameters -#error GL_ARB_shader_draw_parameters is not supported. -#endif - -void main() -{ - gl_Position = vec4(float(SPIRV_Cross_BaseVertex), float(SPIRV_Cross_BaseInstance), float(gl_DrawIDARB), 1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders/desktop-only/vert/shader-draw-parameters-450.desktop.vk.vert.vk b/third_party/spirv-cross/reference/shaders/desktop-only/vert/shader-draw-parameters-450.desktop.vk.vert.vk deleted file mode 100644 index 6121dd8f15..0000000000 --- a/third_party/spirv-cross/reference/shaders/desktop-only/vert/shader-draw-parameters-450.desktop.vk.vert.vk +++ /dev/null @@ -1,8 +0,0 @@ -#version 450 -#extension GL_ARB_shader_draw_parameters : require - -void main() -{ - gl_Position = vec4(float(gl_BaseVertexARB), float(gl_BaseInstanceARB), float(gl_DrawIDARB), 1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders/desktop-only/vert/shader-draw-parameters.desktop.vk.vert b/third_party/spirv-cross/reference/shaders/desktop-only/vert/shader-draw-parameters.desktop.vk.vert deleted file mode 100644 index bc16d0431a..0000000000 --- a/third_party/spirv-cross/reference/shaders/desktop-only/vert/shader-draw-parameters.desktop.vk.vert +++ /dev/null @@ -1,24 +0,0 @@ -#version 460 -#ifdef GL_ARB_shader_draw_parameters -#extension GL_ARB_shader_draw_parameters : enable -#endif - -#ifdef GL_ARB_shader_draw_parameters -#define SPIRV_Cross_BaseVertex gl_BaseVertexARB -#else -uniform int SPIRV_Cross_BaseVertex; -#endif -#ifdef GL_ARB_shader_draw_parameters -#define SPIRV_Cross_BaseInstance gl_BaseInstanceARB -#else -uniform int SPIRV_Cross_BaseInstance; -#endif -#ifndef GL_ARB_shader_draw_parameters -#error GL_ARB_shader_draw_parameters is not supported. -#endif - -void main() -{ - gl_Position = vec4(float(SPIRV_Cross_BaseVertex), float(SPIRV_Cross_BaseInstance), float(gl_DrawIDARB), 1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders/desktop-only/vert/shader-draw-parameters.desktop.vk.vert.vk b/third_party/spirv-cross/reference/shaders/desktop-only/vert/shader-draw-parameters.desktop.vk.vert.vk deleted file mode 100644 index b6948fbc4a..0000000000 --- a/third_party/spirv-cross/reference/shaders/desktop-only/vert/shader-draw-parameters.desktop.vk.vert.vk +++ /dev/null @@ -1,7 +0,0 @@ -#version 460 - -void main() -{ - gl_Position = vec4(float(gl_BaseVertex), float(gl_BaseInstance), float(gl_DrawID), 1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders/flatten/array.flatten.vert b/third_party/spirv-cross/reference/shaders/flatten/array.flatten.vert deleted file mode 100644 index 5afde34c55..0000000000 --- a/third_party/spirv-cross/reference/shaders/flatten/array.flatten.vert +++ /dev/null @@ -1,12 +0,0 @@ -#version 310 es - -uniform vec4 UBO[56]; -layout(location = 0) in vec4 aVertex; - -void main() -{ - vec4 a4 = UBO[23]; - vec4 offset = (UBO[50] + UBO[45]) + vec4(UBO[54].x); - gl_Position = ((mat4(UBO[40], UBO[41], UBO[42], UBO[43]) * aVertex) + UBO[55]) + offset; -} - diff --git a/third_party/spirv-cross/reference/shaders/flatten/basic.flatten.vert b/third_party/spirv-cross/reference/shaders/flatten/basic.flatten.vert deleted file mode 100644 index f7eb758f2a..0000000000 --- a/third_party/spirv-cross/reference/shaders/flatten/basic.flatten.vert +++ /dev/null @@ -1,13 +0,0 @@ -#version 310 es - -uniform vec4 UBO[4]; -layout(location = 0) in vec4 aVertex; -layout(location = 0) out vec3 vNormal; -layout(location = 1) in vec3 aNormal; - -void main() -{ - gl_Position = mat4(UBO[0], UBO[1], UBO[2], UBO[3]) * aVertex; - vNormal = aNormal; -} - diff --git a/third_party/spirv-cross/reference/shaders/flatten/copy.flatten.vert b/third_party/spirv-cross/reference/shaders/flatten/copy.flatten.vert deleted file mode 100644 index 4703d938d4..0000000000 --- a/third_party/spirv-cross/reference/shaders/flatten/copy.flatten.vert +++ /dev/null @@ -1,30 +0,0 @@ -#version 310 es - -struct Light -{ - vec3 Position; - float Radius; - vec4 Color; -}; - -uniform vec4 UBO[12]; -layout(location = 0) in vec4 aVertex; -layout(location = 0) out vec4 vColor; -layout(location = 1) in vec3 aNormal; - -void main() -{ - gl_Position = mat4(UBO[0], UBO[1], UBO[2], UBO[3]) * aVertex; - vColor = vec4(0.0); - Light light; - for (int i = 0; i < 4; i++) - { - Light _52 = Light(UBO[i * 2 + 4].xyz, UBO[i * 2 + 4].w, UBO[i * 2 + 5]); - light.Position = _52.Position; - light.Radius = _52.Radius; - light.Color = _52.Color; - vec3 L = aVertex.xyz - light.Position; - vColor += ((UBO[i * 2 + 5] * clamp(1.0 - (length(L) / light.Radius), 0.0, 1.0)) * dot(aNormal, normalize(L))); - } -} - diff --git a/third_party/spirv-cross/reference/shaders/flatten/dynamic.flatten.vert b/third_party/spirv-cross/reference/shaders/flatten/dynamic.flatten.vert deleted file mode 100644 index 8be397ea3f..0000000000 --- a/third_party/spirv-cross/reference/shaders/flatten/dynamic.flatten.vert +++ /dev/null @@ -1,25 +0,0 @@ -#version 310 es - -struct Light -{ - vec3 Position; - float Radius; - vec4 Color; -}; - -uniform vec4 UBO[12]; -layout(location = 0) in vec4 aVertex; -layout(location = 0) out vec4 vColor; -layout(location = 1) in vec3 aNormal; - -void main() -{ - gl_Position = mat4(UBO[0], UBO[1], UBO[2], UBO[3]) * aVertex; - vColor = vec4(0.0); - for (int i = 0; i < 4; i++) - { - vec3 L = aVertex.xyz - UBO[i * 2 + 4].xyz; - vColor += ((UBO[i * 2 + 5] * clamp(1.0 - (length(L) / UBO[i * 2 + 4].w), 0.0, 1.0)) * dot(aNormal, normalize(L))); - } -} - diff --git a/third_party/spirv-cross/reference/shaders/flatten/matrix-conversion.flatten.frag b/third_party/spirv-cross/reference/shaders/flatten/matrix-conversion.flatten.frag deleted file mode 100644 index ee79bf5b8a..0000000000 --- a/third_party/spirv-cross/reference/shaders/flatten/matrix-conversion.flatten.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -uniform vec4 UBO[4]; -layout(location = 0) out vec3 FragColor; -layout(location = 0) flat in vec3 vNormal; - -void main() -{ - mat4 _19 = mat4(UBO[0], UBO[1], UBO[2], UBO[3]); - FragColor = mat3(_19[0].xyz, _19[1].xyz, _19[2].xyz) * vNormal; -} - diff --git a/third_party/spirv-cross/reference/shaders/flatten/matrixindex.flatten.vert b/third_party/spirv-cross/reference/shaders/flatten/matrixindex.flatten.vert deleted file mode 100644 index f6d0fa486d..0000000000 --- a/third_party/spirv-cross/reference/shaders/flatten/matrixindex.flatten.vert +++ /dev/null @@ -1,19 +0,0 @@ -#version 310 es - -uniform vec4 UBO[14]; -layout(location = 0) out vec4 oA; -layout(location = 1) out vec4 oB; -layout(location = 2) out vec4 oC; -layout(location = 3) out vec4 oD; -layout(location = 4) out vec4 oE; - -void main() -{ - gl_Position = vec4(0.0); - oA = UBO[1]; - oB = vec4(UBO[4].y, UBO[5].y, UBO[6].y, UBO[7].y); - oC = UBO[9]; - oD = vec4(UBO[10].x, UBO[11].x, UBO[12].x, UBO[13].x); - oE = vec4(UBO[1].z, UBO[6].y, UBO[9].z, UBO[12].y); -} - diff --git a/third_party/spirv-cross/reference/shaders/flatten/multiindex.flatten.vert b/third_party/spirv-cross/reference/shaders/flatten/multiindex.flatten.vert deleted file mode 100644 index 3850bf6c70..0000000000 --- a/third_party/spirv-cross/reference/shaders/flatten/multiindex.flatten.vert +++ /dev/null @@ -1,10 +0,0 @@ -#version 310 es - -uniform vec4 UBO[15]; -layout(location = 0) in ivec2 aIndex; - -void main() -{ - gl_Position = UBO[aIndex.x * 5 + aIndex.y * 1 + 0]; -} - diff --git a/third_party/spirv-cross/reference/shaders/flatten/push-constant.flatten.vert b/third_party/spirv-cross/reference/shaders/flatten/push-constant.flatten.vert deleted file mode 100644 index 216c1f9d1b..0000000000 --- a/third_party/spirv-cross/reference/shaders/flatten/push-constant.flatten.vert +++ /dev/null @@ -1,13 +0,0 @@ -#version 310 es - -uniform vec4 PushMe[6]; -layout(location = 1) in vec4 Pos; -layout(location = 0) out vec2 vRot; -layout(location = 0) in vec2 Rot; - -void main() -{ - gl_Position = mat4(PushMe[0], PushMe[1], PushMe[2], PushMe[3]) * Pos; - vRot = (mat2(PushMe[4].xy, PushMe[4].zw) * Rot) + vec2(PushMe[5].z); -} - diff --git a/third_party/spirv-cross/reference/shaders/flatten/rowmajor.flatten.vert b/third_party/spirv-cross/reference/shaders/flatten/rowmajor.flatten.vert deleted file mode 100644 index 721c4905c0..0000000000 --- a/third_party/spirv-cross/reference/shaders/flatten/rowmajor.flatten.vert +++ /dev/null @@ -1,11 +0,0 @@ -#version 310 es - -uniform vec4 UBO[12]; -layout(location = 0) in vec4 aVertex; - -void main() -{ - vec2 v = mat4x2(UBO[8].xy, UBO[9].xy, UBO[10].xy, UBO[11].xy) * aVertex; - gl_Position = (mat4(UBO[0], UBO[1], UBO[2], UBO[3]) * aVertex) + (aVertex * mat4(UBO[4], UBO[5], UBO[6], UBO[7])); -} - diff --git a/third_party/spirv-cross/reference/shaders/flatten/struct.flatten.vert b/third_party/spirv-cross/reference/shaders/flatten/struct.flatten.vert deleted file mode 100644 index 3468d52929..0000000000 --- a/third_party/spirv-cross/reference/shaders/flatten/struct.flatten.vert +++ /dev/null @@ -1,22 +0,0 @@ -#version 310 es - -struct Light -{ - vec3 Position; - float Radius; - vec4 Color; -}; - -uniform vec4 UBO[6]; -layout(location = 0) in vec4 aVertex; -layout(location = 0) out vec4 vColor; -layout(location = 1) in vec3 aNormal; - -void main() -{ - gl_Position = mat4(UBO[0], UBO[1], UBO[2], UBO[3]) * aVertex; - vColor = vec4(0.0); - vec3 L = aVertex.xyz - UBO[4].xyz; - vColor += ((UBO[5] * clamp(1.0 - (length(L) / UBO[4].w), 0.0, 1.0)) * dot(aNormal, normalize(L))); -} - diff --git a/third_party/spirv-cross/reference/shaders/flatten/struct.rowmajor.flatten.vert b/third_party/spirv-cross/reference/shaders/flatten/struct.rowmajor.flatten.vert deleted file mode 100644 index 37438498d4..0000000000 --- a/third_party/spirv-cross/reference/shaders/flatten/struct.rowmajor.flatten.vert +++ /dev/null @@ -1,26 +0,0 @@ -#version 310 es - -struct Foo -{ - mat3x4 MVP0; - mat3x4 MVP1; -}; - -uniform vec4 UBO[8]; -layout(location = 0) in vec4 v0; -layout(location = 1) in vec4 v1; -layout(location = 0) out vec3 V0; -layout(location = 1) out vec3 V1; - -void main() -{ - Foo _20 = Foo(transpose(mat4x3(UBO[0].xyz, UBO[1].xyz, UBO[2].xyz, UBO[3].xyz)), transpose(mat4x3(UBO[4].xyz, UBO[5].xyz, UBO[6].xyz, UBO[7].xyz))); - Foo f; - f.MVP0 = _20.MVP0; - f.MVP1 = _20.MVP1; - vec3 a = v0 * f.MVP0; - vec3 b = v1 * f.MVP1; - V0 = a; - V1 = b; -} - diff --git a/third_party/spirv-cross/reference/shaders/flatten/swizzle.flatten.vert b/third_party/spirv-cross/reference/shaders/flatten/swizzle.flatten.vert deleted file mode 100644 index 92afb475e6..0000000000 --- a/third_party/spirv-cross/reference/shaders/flatten/swizzle.flatten.vert +++ /dev/null @@ -1,21 +0,0 @@ -#version 310 es - -uniform vec4 UBO[8]; -layout(location = 0) out vec4 oA; -layout(location = 1) out vec4 oB; -layout(location = 2) out vec4 oC; -layout(location = 3) out vec4 oD; -layout(location = 4) out vec4 oE; -layout(location = 5) out vec4 oF; - -void main() -{ - gl_Position = vec4(0.0); - oA = UBO[0]; - oB = vec4(UBO[1].xy, UBO[1].zw); - oC = vec4(UBO[2].x, UBO[3].xyz); - oD = vec4(UBO[4].xyz, UBO[4].w); - oE = vec4(UBO[5].x, UBO[5].y, UBO[5].z, UBO[5].w); - oF = vec4(UBO[6].x, UBO[6].zw, UBO[7].x); -} - diff --git a/third_party/spirv-cross/reference/shaders/flatten/types.flatten.frag b/third_party/spirv-cross/reference/shaders/flatten/types.flatten.frag deleted file mode 100644 index a74327d97b..0000000000 --- a/third_party/spirv-cross/reference/shaders/flatten/types.flatten.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -uniform mediump ivec4 UBO1[2]; -uniform mediump uvec4 UBO2[2]; -uniform vec4 UBO0[2]; -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = ((((vec4(UBO1[0]) + vec4(UBO1[1])) + vec4(UBO2[0])) + vec4(UBO2[1])) + UBO0[0]) + UBO0[1]; -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/array-lut-no-loop-variable.frag b/third_party/spirv-cross/reference/shaders/frag/array-lut-no-loop-variable.frag deleted file mode 100644 index baf2302519..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/array-lut-no-loop-variable.frag +++ /dev/null @@ -1,15 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -const float _17[5] = float[](1.0, 2.0, 3.0, 4.0, 5.0); - -layout(location = 0) out vec4 FragColor; - -void main() -{ - for (mediump int i = 0; i < 4; i++, FragColor += vec4(_17[i])) - { - } -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/avoid-expression-lowering-to-loop.frag b/third_party/spirv-cross/reference/shaders/frag/avoid-expression-lowering-to-loop.frag deleted file mode 100644 index 6313d896e2..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/avoid-expression-lowering-to-loop.frag +++ /dev/null @@ -1,26 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(binding = 1, std140) uniform Count -{ - float count; -} _44; - -layout(binding = 0) uniform mediump sampler2D tex; - -layout(location = 0) in highp vec4 vertex; -layout(location = 0) out vec4 fragColor; - -void main() -{ - highp float size = 1.0 / float(textureSize(tex, 0).x); - float r = 0.0; - float d = dFdx(vertex.x); - for (float i = 0.0; i < _44.count; i += 1.0) - { - r += (size * d); - } - fragColor = vec4(r); -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/barycentric-nv.frag b/third_party/spirv-cross/reference/shaders/frag/barycentric-nv.frag deleted file mode 100644 index 12d24bb739..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/barycentric-nv.frag +++ /dev/null @@ -1,20 +0,0 @@ -#version 450 -#extension GL_NV_fragment_shader_barycentric : require - -layout(binding = 0, std430) readonly buffer Vertices -{ - vec2 uvs[]; -} _19; - -layout(location = 0) out vec2 value; - -void main() -{ - int prim = gl_PrimitiveID; - vec2 uv0 = _19.uvs[(3 * prim) + 0]; - vec2 uv1 = _19.uvs[(3 * prim) + 1]; - vec2 uv2 = _19.uvs[(3 * prim) + 2]; - value = ((uv0 * gl_BaryCoordNV.x) + (uv1 * gl_BaryCoordNV.y)) + (uv2 * gl_BaryCoordNV.z); - value += (((uv0 * gl_BaryCoordNoPerspNV.x) + (uv1 * gl_BaryCoordNoPerspNV.y)) + (uv2 * gl_BaryCoordNoPerspNV.z)); -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/basic.frag b/third_party/spirv-cross/reference/shaders/frag/basic.frag deleted file mode 100644 index 2a4e440421..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/basic.frag +++ /dev/null @@ -1,15 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(binding = 0) uniform mediump sampler2D uTex; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 vColor; -layout(location = 1) in vec2 vTex; - -void main() -{ - FragColor = vColor * texture(uTex, vTex); -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/complex-expression-in-access-chain.frag b/third_party/spirv-cross/reference/shaders/frag/complex-expression-in-access-chain.frag deleted file mode 100644 index 738ee6e441..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/complex-expression-in-access-chain.frag +++ /dev/null @@ -1,24 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(binding = 0, std430) buffer UBO -{ - vec4 results[1024]; -} _34; - -layout(binding = 1) uniform highp isampler2D Buf; - -layout(location = 0) flat in mediump int vIn; -layout(location = 1) flat in mediump int vIn2; -layout(location = 0) out vec4 FragColor; - -void main() -{ - mediump ivec4 coords = texelFetch(Buf, ivec2(gl_FragCoord.xy), 0); - vec4 foo = _34.results[coords.x % 16]; - mediump int c = vIn * vIn; - mediump int d = vIn2 * vIn2; - FragColor = (foo + foo) + _34.results[c + d]; -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/composite-extract-forced-temporary.frag b/third_party/spirv-cross/reference/shaders/frag/composite-extract-forced-temporary.frag deleted file mode 100644 index e4384f559e..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/composite-extract-forced-temporary.frag +++ /dev/null @@ -1,15 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(binding = 0) uniform mediump sampler2D Texture; - -layout(location = 0) in vec2 vTexCoord; -layout(location = 0) out vec4 FragColor; - -void main() -{ - float f = texture(Texture, vTexCoord).x; - FragColor = vec4(f * f); -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/constant-array.frag b/third_party/spirv-cross/reference/shaders/frag/constant-array.frag deleted file mode 100644 index fac956039b..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/constant-array.frag +++ /dev/null @@ -1,29 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -struct Foobar -{ - float a; - float b; -}; - -const vec4 _37[3] = vec4[](vec4(1.0), vec4(2.0), vec4(3.0)); -const vec4 _55[2][2] = vec4[][](vec4[](vec4(1.0), vec4(2.0)), vec4[](vec4(8.0), vec4(10.0))); -const Foobar _75[2] = Foobar[](Foobar(10.0, 40.0), Foobar(90.0, 70.0)); - -layout(location = 0) out vec4 FragColor; -layout(location = 0) flat in mediump int index; - -vec4 resolve(Foobar f) -{ - return vec4(f.a + f.b); -} - -void main() -{ - Foobar param = Foobar(10.0, 20.0); - Foobar param_1 = _75[index]; - FragColor = ((_37[index] + _55[index][index + 1]) + resolve(param)) + resolve(param_1); -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/constant-composites.frag b/third_party/spirv-cross/reference/shaders/frag/constant-composites.frag deleted file mode 100644 index 7813b98db2..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/constant-composites.frag +++ /dev/null @@ -1,23 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -const float _16[4] = float[](1.0, 4.0, 3.0, 2.0); - -struct Foo -{ - float a; - float b; -}; - -const Foo _28[2] = Foo[](Foo(10.0, 20.0), Foo(30.0, 40.0)); - -layout(location = 0) out vec4 FragColor; -layout(location = 0) flat in mediump int line; - -void main() -{ - FragColor = vec4(_16[line]); - FragColor += vec4(_28[line].a * _28[1 - line].a); -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/false-loop-init.frag b/third_party/spirv-cross/reference/shaders/frag/false-loop-init.frag deleted file mode 100644 index b0ed5577d3..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/false-loop-init.frag +++ /dev/null @@ -1,25 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) out vec4 result; -layout(location = 0) in vec4 accum; - -void main() -{ - result = vec4(0.0); - mediump uint j; - for (mediump int i = 0; i < 4; i += int(j)) - { - if (accum.y > 10.0) - { - j = 40u; - } - else - { - j = 30u; - } - result += accum; - } -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/flush_params.frag b/third_party/spirv-cross/reference/shaders/frag/flush_params.frag deleted file mode 100644 index b4b36ff90d..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/flush_params.frag +++ /dev/null @@ -1,30 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -struct Structy -{ - vec4 c; -}; - -layout(location = 0) out vec4 FragColor; - -void foo2(inout Structy f) -{ - f.c = vec4(10.0); -} - -Structy foo() -{ - Structy param; - foo2(param); - Structy f = param; - return f; -} - -void main() -{ - Structy s = foo(); - FragColor = s.c; -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/for-loop-continue-control-flow.frag b/third_party/spirv-cross/reference/shaders/frag/for-loop-continue-control-flow.frag deleted file mode 100644 index 638d89be6b..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/for-loop-continue-control-flow.frag +++ /dev/null @@ -1,34 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(0.0); - int i = 0; - int _36; - for (;;) - { - if (i < 3) - { - int a = i; - FragColor[a] += float(i); - if (false) - { - _36 = 1; - } - else - { - int _41 = i; - i = _41 + 1; - _36 = _41; - } - continue; - } - else - { - break; - } - } -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/for-loop-init.frag b/third_party/spirv-cross/reference/shaders/frag/for-loop-init.frag deleted file mode 100644 index 7c22e5c785..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/for-loop-init.frag +++ /dev/null @@ -1,52 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) out mediump int FragColor; - -void main() -{ - FragColor = 16; - for (mediump int i = 0; i < 25; i++) - { - FragColor += 10; - } - for (mediump int i_1 = 1, j = 4; i_1 < 30; i_1++, j += 4) - { - FragColor += 11; - } - mediump int k = 0; - for (; k < 20; k++) - { - FragColor += 12; - } - k += 3; - FragColor += k; - mediump int l; - if (k == 40) - { - l = 0; - for (; l < 40; l++) - { - FragColor += 13; - } - return; - } - else - { - l = k; - FragColor += l; - } - mediump ivec2 i_2 = ivec2(0); - for (; i_2.x < 10; i_2.x += 4) - { - FragColor += i_2.y; - } - mediump int o = k; - for (mediump int m = k; m < 40; m++) - { - FragColor += m; - } - FragColor += o; -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/frexp-modf.frag b/third_party/spirv-cross/reference/shaders/frag/frexp-modf.frag deleted file mode 100644 index e495bb3169..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/frexp-modf.frag +++ /dev/null @@ -1,43 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -struct ResType -{ - highp float _m0; - int _m1; -}; - -struct ResType_1 -{ - highp vec2 _m0; - ivec2 _m1; -}; - -layout(location = 0) in float v0; -layout(location = 1) in vec2 v1; -layout(location = 0) out float FragColor; - -void main() -{ - ResType _16; - _16._m0 = frexp(v0, _16._m1); - mediump int e0 = _16._m1; - float f0 = _16._m0; - ResType _22; - _22._m0 = frexp(v0 + 1.0, _22._m1); - e0 = _22._m1; - f0 = _22._m0; - ResType_1 _35; - _35._m0 = frexp(v1, _35._m1); - mediump ivec2 e1 = _35._m1; - vec2 f1 = _35._m0; - float r0; - float _41 = modf(v0, r0); - float m0 = _41; - vec2 r1; - vec2 _45 = modf(v1, r1); - vec2 m1 = _45; - FragColor = ((((f0 + f1.x) + f1.y) + m0) + m1.x) + m1.y; -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/front-facing.frag b/third_party/spirv-cross/reference/shaders/frag/front-facing.frag deleted file mode 100644 index cc9aecc8ba..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/front-facing.frag +++ /dev/null @@ -1,20 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 vA; -layout(location = 1) in vec4 vB; - -void main() -{ - if (gl_FrontFacing) - { - FragColor = vA; - } - else - { - FragColor = vB; - } -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/gather-dref.frag b/third_party/spirv-cross/reference/shaders/frag/gather-dref.frag deleted file mode 100644 index 5416f79cb5..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/gather-dref.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(binding = 0) uniform mediump sampler2DShadow uT; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec3 vUV; - -void main() -{ - FragColor = textureGather(uT, vUV.xy, vUV.z); -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/ground.frag b/third_party/spirv-cross/reference/shaders/frag/ground.frag deleted file mode 100644 index c36bb317b6..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/ground.frag +++ /dev/null @@ -1,62 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(binding = 4, std140) uniform GlobalPSData -{ - vec4 g_CamPos; - vec4 g_SunDir; - vec4 g_SunColor; - vec4 g_ResolutionParams; - vec4 g_TimeParams; - vec4 g_FogColor_Distance; -} _101; - -layout(binding = 2) uniform mediump sampler2D TexNormalmap; - -layout(location = 3) out vec4 LightingOut; -layout(location = 2) out vec4 NormalOut; -layout(location = 1) out vec4 SpecularOut; -layout(location = 0) out vec4 AlbedoOut; -layout(location = 0) in vec2 TexCoord; -layout(location = 1) in vec3 EyeVec; - -float saturate(float x) -{ - return clamp(x, 0.0, 1.0); -} - -void Resolve(vec3 Albedo, vec3 Normal, float Roughness, float Metallic) -{ - LightingOut = vec4(0.0); - NormalOut = vec4((Normal * 0.5) + vec3(0.5), 0.0); - SpecularOut = vec4(Roughness, Metallic, 0.0, 0.0); - AlbedoOut = vec4(Albedo, 1.0); -} - -void main() -{ - vec3 Normal = (texture(TexNormalmap, TexCoord).xyz * 2.0) - vec3(1.0); - Normal = normalize(Normal); - float param = length(EyeVec) / 1000.0; - vec2 scatter_uv; - scatter_uv.x = saturate(param); - vec3 nEye = normalize(EyeVec); - scatter_uv.y = 0.0; - vec3 Color = vec3(0.100000001490116119384765625, 0.300000011920928955078125, 0.100000001490116119384765625); - vec3 grass = vec3(0.100000001490116119384765625, 0.300000011920928955078125, 0.100000001490116119384765625); - vec3 dirt = vec3(0.100000001490116119384765625); - vec3 snow = vec3(0.800000011920928955078125); - float grass_snow = smoothstep(0.0, 0.1500000059604644775390625, (_101.g_CamPos.y + EyeVec.y) / 200.0); - vec3 base = mix(grass, snow, vec3(grass_snow)); - float edge = smoothstep(0.699999988079071044921875, 0.75, Normal.y); - Color = mix(dirt, base, vec3(edge)); - Color *= Color; - float Roughness = 1.0 - (edge * grass_snow); - vec3 param_1 = Color; - vec3 param_2 = Normal; - float param_3 = Roughness; - float param_4 = 0.0; - Resolve(param_1, param_2, param_3, param_4); -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/helper-invocation.frag b/third_party/spirv-cross/reference/shaders/frag/helper-invocation.frag deleted file mode 100644 index e888ad84d8..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/helper-invocation.frag +++ /dev/null @@ -1,28 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(binding = 0) uniform mediump sampler2D uSampler; - -layout(location = 0) in vec2 vUV; -layout(location = 0) out vec4 FragColor; - -vec4 foo() -{ - vec4 color; - if (!gl_HelperInvocation) - { - color = textureLod(uSampler, vUV, 0.0); - } - else - { - color = vec4(1.0); - } - return color; -} - -void main() -{ - FragColor = foo(); -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/hoisted-temporary-use-continue-block-as-value.frag b/third_party/spirv-cross/reference/shaders/frag/hoisted-temporary-use-continue-block-as-value.frag deleted file mode 100644 index cd4f7d4d28..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/hoisted-temporary-use-continue-block-as-value.frag +++ /dev/null @@ -1,31 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) flat in mediump int vA; -layout(location = 1) flat in mediump int vB; - -void main() -{ - FragColor = vec4(0.0); - mediump int k = 0; - mediump int j; - for (mediump int i = 0; i < vA; i += j) - { - if ((vA + i) == 20) - { - k = 50; - } - else - { - if ((vB + i) == 40) - { - k = 60; - } - } - j = k + 10; - FragColor += vec4(1.0); - } -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/image-load-store-uint-coord.asm.frag b/third_party/spirv-cross/reference/shaders/frag/image-load-store-uint-coord.asm.frag deleted file mode 100644 index 414dd956af..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/image-load-store-uint-coord.asm.frag +++ /dev/null @@ -1,26 +0,0 @@ -#version 450 - -layout(binding = 1, rgba32f) uniform image2D RWIm; -layout(binding = 0, rgba32f) uniform writeonly imageBuffer RWBuf; -layout(binding = 1) uniform sampler2D ROIm; -layout(binding = 0) uniform samplerBuffer ROBuf; - -layout(location = 0) out vec4 _entryPointOutput; - -vec4 _main() -{ - vec4 storeTemp = vec4(10.0, 0.5, 8.0, 2.0); - imageStore(RWIm, ivec2(uvec2(10u)), storeTemp); - vec4 v = imageLoad(RWIm, ivec2(uvec2(30u))); - imageStore(RWBuf, int(80u), v); - v += texelFetch(ROIm, ivec2(uvec2(50u, 60u)), 0); - v += texelFetch(ROBuf, int(80u)); - return v; -} - -void main() -{ - vec4 _45 = _main(); - _entryPointOutput = _45; -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/inside-loop-dominated-variable-preservation.frag b/third_party/spirv-cross/reference/shaders/frag/inside-loop-dominated-variable-preservation.frag deleted file mode 100644 index 2947b19fba..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/inside-loop-dominated-variable-preservation.frag +++ /dev/null @@ -1,30 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - bool written = false; - float v; - for (mediump int j = 0; j < 10; j++) - { - for (mediump int i = 0; i < 4; i++) - { - float w = 0.0; - if (written) - { - w += v; - } - else - { - v = 20.0; - } - v += float(i); - written = true; - } - } - FragColor = vec4(1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/loop-dominator-and-switch-default.frag b/third_party/spirv-cross/reference/shaders/frag/loop-dominator-and-switch-default.frag deleted file mode 100644 index df968f1a29..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/loop-dominator-and-switch-default.frag +++ /dev/null @@ -1,50 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) out vec4 fragColor; - -void main() -{ - vec4 f4; - mediump int c = int(f4.x); - for (mediump int j = 0; j < c; j++) - { - switch (c) - { - case 0: - { - f4.y = 0.0; - break; - } - case 1: - { - f4.y = 1.0; - break; - } - default: - { - mediump int i = 0; - for (;;) - { - mediump int _48 = i; - mediump int _50 = _48 + 1; - i = _50; - if (_48 < c) - { - f4.y += 0.5; - continue; - } - else - { - break; - } - } - continue; - } - } - f4.y += 0.5; - } - fragColor = f4; -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/lut-promotion.frag b/third_party/spirv-cross/reference/shaders/frag/lut-promotion.frag deleted file mode 100644 index 019393f9f3..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/lut-promotion.frag +++ /dev/null @@ -1,40 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -const float _16[16] = float[](1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0, 4.0); -const vec4 _60[4] = vec4[](vec4(0.0), vec4(1.0), vec4(8.0), vec4(5.0)); - -layout(location = 0) out float FragColor; -layout(location = 0) flat in mediump int index; - -void main() -{ - FragColor = _16[index]; - if (index < 10) - { - FragColor += _16[index ^ 1]; - } - else - { - FragColor += _16[index & 1]; - } - if (index > 30) - { - FragColor += _60[index & 3].y; - } - else - { - FragColor += _60[index & 1].x; - } - vec4 foobar[4] = _60; - if (index > 30) - { - foobar[1].z = 20.0; - } - FragColor += foobar[index & 3].z; - vec4 baz[4] = _60; - baz = vec4[](vec4(20.0), vec4(30.0), vec4(50.0), vec4(60.0)); - FragColor += baz[index & 3].z; -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/mix.frag b/third_party/spirv-cross/reference/shaders/frag/mix.frag deleted file mode 100644 index 2b288dff02..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/mix.frag +++ /dev/null @@ -1,20 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 vIn0; -layout(location = 1) in vec4 vIn1; -layout(location = 2) in float vIn2; -layout(location = 3) in float vIn3; - -void main() -{ - bvec4 l = bvec4(false, true, false, false); - FragColor = mix(vIn0, vIn1, l); - bool f = true; - FragColor = vec4(f ? vIn3 : vIn2); - FragColor = mix(vIn1, vIn0, bvec4(f)); - FragColor = vec4(f ? vIn2 : vIn3); -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/partial-write-preserve.frag b/third_party/spirv-cross/reference/shaders/frag/partial-write-preserve.frag deleted file mode 100644 index 87e689aff2..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/partial-write-preserve.frag +++ /dev/null @@ -1,109 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -struct B -{ - float a; - float b; -}; - -layout(binding = 0, std140) uniform UBO -{ - mediump int some_value; -} _51; - -void partial_inout(inout vec4 x) -{ - x.x = 10.0; -} - -void complete_inout(out vec4 x) -{ - x = vec4(50.0); -} - -void branchy_inout(inout vec4 v) -{ - v.y = 20.0; - if (_51.some_value == 20) - { - v = vec4(50.0); - } -} - -void branchy_inout_2(out vec4 v) -{ - if (_51.some_value == 20) - { - v = vec4(50.0); - } - else - { - v = vec4(70.0); - } - v.y = 20.0; -} - -void partial_inout(inout B b) -{ - b.b = 40.0; -} - -void complete_inout(out B b) -{ - b = B(100.0, 200.0); -} - -void branchy_inout(inout B b) -{ - b.b = 20.0; - if (_51.some_value == 20) - { - b = B(10.0, 40.0); - } -} - -void branchy_inout_2(out B b) -{ - if (_51.some_value == 20) - { - b = B(10.0, 40.0); - } - else - { - b = B(70.0, 70.0); - } - b.b = 20.0; -} - -void main() -{ - vec4 a = vec4(10.0); - vec4 param = a; - partial_inout(param); - a = param; - vec4 param_1; - complete_inout(param_1); - a = param_1; - vec4 param_2 = a; - branchy_inout(param_2); - a = param_2; - vec4 param_3; - branchy_inout_2(param_3); - a = param_3; - B b = B(10.0, 20.0); - B param_4 = b; - partial_inout(param_4); - b = param_4; - B param_5; - complete_inout(param_5); - b = param_5; - B param_6 = b; - branchy_inout(param_6); - b = param_6; - B param_7; - branchy_inout_2(param_7); - b = param_7; -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/pixel-interlock-ordered.frag b/third_party/spirv-cross/reference/shaders/frag/pixel-interlock-ordered.frag deleted file mode 100644 index 46cca96c6a..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/pixel-interlock-ordered.frag +++ /dev/null @@ -1,23 +0,0 @@ -#version 450 -#extension GL_ARB_fragment_shader_interlock : require -layout(pixel_interlock_ordered) in; - -layout(binding = 2, std430) coherent buffer Buffer -{ - int foo; - uint bar; -} _30; - -layout(binding = 0, rgba8) uniform writeonly image2D img; -layout(binding = 1, r32ui) uniform uimage2D img2; - -void main() -{ - beginInvocationInterlockARB(); - imageStore(img, ivec2(0), vec4(1.0, 0.0, 0.0, 1.0)); - uint _27 = imageAtomicAdd(img2, ivec2(0), 1u); - _30.foo += 42; - uint _41 = atomicAnd(_30.bar, 255u); - endInvocationInterlockARB(); -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/pixel-interlock-unordered.frag b/third_party/spirv-cross/reference/shaders/frag/pixel-interlock-unordered.frag deleted file mode 100644 index d60cd14518..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/pixel-interlock-unordered.frag +++ /dev/null @@ -1,23 +0,0 @@ -#version 450 -#extension GL_ARB_fragment_shader_interlock : require -layout(pixel_interlock_unordered) in; - -layout(binding = 2, std430) coherent buffer Buffer -{ - int foo; - uint bar; -} _30; - -layout(binding = 0, rgba8) uniform writeonly image2D img; -layout(binding = 1, r32ui) uniform uimage2D img2; - -void main() -{ - beginInvocationInterlockARB(); - imageStore(img, ivec2(0), vec4(1.0, 0.0, 0.0, 1.0)); - uint _27 = imageAtomicAdd(img2, ivec2(0), 1u); - _30.foo += 42; - uint _41 = atomicAnd(_30.bar, 255u); - endInvocationInterlockARB(); -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/pls.frag b/third_party/spirv-cross/reference/shaders/frag/pls.frag deleted file mode 100644 index 1cafdbd365..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/pls.frag +++ /dev/null @@ -1,21 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) out vec4 PLSOut0; -layout(location = 0) in vec4 PLSIn0; -layout(location = 1) out vec4 PLSOut1; -layout(location = 1) in vec4 PLSIn1; -layout(location = 2) out vec4 PLSOut2; -layout(location = 2) in vec4 PLSIn2; -layout(location = 3) out vec4 PLSOut3; -layout(location = 3) in vec4 PLSIn3; - -void main() -{ - PLSOut0 = PLSIn0 * 2.0; - PLSOut1 = PLSIn1 * 6.0; - PLSOut2 = PLSIn2 * 7.0; - PLSOut3 = PLSIn3 * 4.0; -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/post-depth-coverage-es.frag b/third_party/spirv-cross/reference/shaders/frag/post-depth-coverage-es.frag deleted file mode 100644 index d086560e5d..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/post-depth-coverage-es.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es -#extension GL_EXT_post_depth_coverage : require -#extension GL_OES_sample_variables : require -precision mediump float; -precision highp int; -layout(early_fragment_tests, post_depth_coverage) in; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(float(gl_SampleMaskIn[0])); -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/post-depth-coverage.frag b/third_party/spirv-cross/reference/shaders/frag/post-depth-coverage.frag deleted file mode 100644 index caca9c03cb..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/post-depth-coverage.frag +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 -#if defined(GL_ARB_post_depth_coverge) -#extension GL_ARB_post_depth_coverage : require -#else -#extension GL_EXT_post_depth_coverage : require -#endif -layout(early_fragment_tests, post_depth_coverage) in; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(float(gl_SampleMaskIn[0])); -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/round-even.frag b/third_party/spirv-cross/reference/shaders/frag/round-even.frag deleted file mode 100644 index ab6f37adc1..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/round-even.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 vA; -layout(location = 1) in float vB; - -void main() -{ - FragColor = roundEven(vA); - FragColor *= roundEven(vB); -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/round.frag b/third_party/spirv-cross/reference/shaders/frag/round.frag deleted file mode 100644 index 0f1fc0db0f..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/round.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 vA; -layout(location = 1) in float vB; - -void main() -{ - FragColor = round(vA); - FragColor *= round(vB); -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/sample-interlock-ordered.frag b/third_party/spirv-cross/reference/shaders/frag/sample-interlock-ordered.frag deleted file mode 100644 index 67ca5560e3..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/sample-interlock-ordered.frag +++ /dev/null @@ -1,23 +0,0 @@ -#version 450 -#extension GL_ARB_fragment_shader_interlock : require -layout(sample_interlock_ordered) in; - -layout(binding = 2, std430) coherent buffer Buffer -{ - int foo; - uint bar; -} _30; - -layout(binding = 0, rgba8) uniform writeonly image2D img; -layout(binding = 1, r32ui) uniform uimage2D img2; - -void main() -{ - beginInvocationInterlockARB(); - imageStore(img, ivec2(0), vec4(1.0, 0.0, 0.0, 1.0)); - uint _27 = imageAtomicAdd(img2, ivec2(0), 1u); - _30.foo += 42; - uint _47 = atomicAnd(_30.bar, uint(gl_SampleMaskIn[0])); - endInvocationInterlockARB(); -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/sample-interlock-unordered.frag b/third_party/spirv-cross/reference/shaders/frag/sample-interlock-unordered.frag deleted file mode 100644 index ea74397d63..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/sample-interlock-unordered.frag +++ /dev/null @@ -1,23 +0,0 @@ -#version 450 -#extension GL_ARB_fragment_shader_interlock : require -layout(sample_interlock_unordered) in; - -layout(binding = 2, std430) coherent buffer Buffer -{ - int foo; - uint bar; -} _30; - -layout(binding = 0, rgba8) uniform writeonly image2D img; -layout(binding = 1, r32ui) uniform uimage2D img2; - -void main() -{ - beginInvocationInterlockARB(); - imageStore(img, ivec2(0), vec4(1.0, 0.0, 0.0, 1.0)); - uint _27 = imageAtomicAdd(img2, ivec2(0), 1u); - _30.foo += 42; - uint _41 = atomicAnd(_30.bar, 255u); - endInvocationInterlockARB(); -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/sample-parameter.frag b/third_party/spirv-cross/reference/shaders/frag/sample-parameter.frag deleted file mode 100644 index 3c130e68d4..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/sample-parameter.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 310 es -#extension GL_OES_sample_variables : require -precision mediump float; -precision highp int; - -layout(location = 0) out vec2 FragColor; - -void main() -{ - FragColor = (gl_SamplePosition + vec2(float(gl_SampleMaskIn[0]))) + vec2(float(gl_SampleID)); - gl_SampleMask[0] = 1; -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/sampler-ms.frag b/third_party/spirv-cross/reference/shaders/frag/sampler-ms.frag deleted file mode 100644 index dbab3fb819..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/sampler-ms.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(binding = 0) uniform mediump sampler2DMS uSampler; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - ivec2 coord = ivec2(gl_FragCoord.xy); - FragColor = ((texelFetch(uSampler, coord, 0) + texelFetch(uSampler, coord, 1)) + texelFetch(uSampler, coord, 2)) + texelFetch(uSampler, coord, 3); -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/sampler-proj.frag b/third_party/spirv-cross/reference/shaders/frag/sampler-proj.frag deleted file mode 100644 index 865dec6c8b..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/sampler-proj.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(binding = 0) uniform mediump sampler2D uTex; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 vTex; - -void main() -{ - highp vec4 _19 = vTex; - _19.z = vTex.w; - FragColor = textureProj(uTex, _19.xyz); -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/sampler.frag b/third_party/spirv-cross/reference/shaders/frag/sampler.frag deleted file mode 100644 index d62f0afeff..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/sampler.frag +++ /dev/null @@ -1,21 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(binding = 0) uniform mediump sampler2D uTex; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 vColor; -layout(location = 1) in vec2 vTex; - -vec4 sample_texture(mediump sampler2D tex, vec2 uv) -{ - return texture(tex, uv); -} - -void main() -{ - vec2 param = vTex; - FragColor = vColor * sample_texture(uTex, param); -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/scalar-refract-reflect.frag b/third_party/spirv-cross/reference/shaders/frag/scalar-refract-reflect.frag deleted file mode 100644 index 94d671b5a9..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/scalar-refract-reflect.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 - -layout(location = 0) out float FragColor; -layout(location = 0) in vec3 vRefract; - -void main() -{ - FragColor = refract(vRefract.x, vRefract.y, vRefract.z); - FragColor += reflect(vRefract.x, vRefract.y); - FragColor += refract(vRefract.xy, vRefract.yz, vRefract.z).y; - FragColor += reflect(vRefract.xy, vRefract.zy).y; -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/selection-block-dominator.frag b/third_party/spirv-cross/reference/shaders/frag/selection-block-dominator.frag deleted file mode 100644 index a0242a00b5..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/selection-block-dominator.frag +++ /dev/null @@ -1,20 +0,0 @@ -#version 450 - -layout(location = 0) flat in int vIndex; -layout(location = 0) out vec4 FragColor; - -void main() -{ - int v; - if (vIndex != 1) - { - FragColor = vec4(1.0); - return; - } - else - { - v = 10; - } - FragColor = vec4(float(v)); -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/struct-type-unrelated-alias.frag b/third_party/spirv-cross/reference/shaders/frag/struct-type-unrelated-alias.frag deleted file mode 100644 index f38d18ff28..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/struct-type-unrelated-alias.frag +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 - -struct T -{ - float a; -}; - -layout(location = 0) out float FragColor; - -void main() -{ - T foo; - foo.a = 10.0; - T bar; - bar.a = 20.0; - FragColor = foo.a + bar.a; -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/switch-unsigned-case.frag b/third_party/spirv-cross/reference/shaders/frag/switch-unsigned-case.frag deleted file mode 100644 index 4177f9e99a..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/switch-unsigned-case.frag +++ /dev/null @@ -1,29 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(binding = 0, std140) uniform Buff -{ - mediump uint TestVal; -} _15; - -layout(location = 0) out vec4 fsout_Color; - -void main() -{ - fsout_Color = vec4(1.0); - switch (_15.TestVal) - { - case 0u: - { - fsout_Color = vec4(0.100000001490116119384765625); - break; - } - case 1u: - { - fsout_Color = vec4(0.20000000298023223876953125); - break; - } - } -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/swizzle.frag b/third_party/spirv-cross/reference/shaders/frag/swizzle.frag deleted file mode 100644 index a229e5b0d5..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/swizzle.frag +++ /dev/null @@ -1,20 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(binding = 0) uniform mediump sampler2D samp; - -layout(location = 0) out vec4 FragColor; -layout(location = 2) in vec2 vUV; -layout(location = 1) in vec3 vNormal; - -void main() -{ - FragColor = vec4(texture(samp, vUV).xyz, 1.0); - FragColor = vec4(texture(samp, vUV).xz, 1.0, 4.0); - FragColor = vec4(texture(samp, vUV).xx, texture(samp, vUV + vec2(0.100000001490116119384765625)).yy); - FragColor = vec4(vNormal, 1.0); - FragColor = vec4(vNormal + vec3(1.7999999523162841796875), 1.0); - FragColor = vec4(vUV, vUV + vec2(1.7999999523162841796875)); -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/texel-fetch-offset.frag b/third_party/spirv-cross/reference/shaders/frag/texel-fetch-offset.frag deleted file mode 100644 index 658468aa41..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/texel-fetch-offset.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(binding = 0) uniform mediump sampler2D uTexture; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = texelFetchOffset(uTexture, ivec2(gl_FragCoord.xy), 0, ivec2(1)); - FragColor += texelFetchOffset(uTexture, ivec2(gl_FragCoord.xy), 0, ivec2(-1, 1)); -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/ubo-load-row-major-workaround.frag b/third_party/spirv-cross/reference/shaders/frag/ubo-load-row-major-workaround.frag deleted file mode 100644 index 13049b456b..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/ubo-load-row-major-workaround.frag +++ /dev/null @@ -1,48 +0,0 @@ -#version 450 - -struct RowMajor -{ - mat4 B; -}; - -struct NestedRowMajor -{ - RowMajor rm; -}; - -layout(binding = 2, std140) uniform UBO3 -{ - layout(row_major) NestedRowMajor rm2; -} _17; - -layout(binding = 1, std140) uniform UBO2 -{ - layout(row_major) RowMajor rm; -} _35; - -layout(binding = 0, std140) uniform UBO -{ - layout(row_major) mat4 A; - mat4 C; -} _42; - -layout(binding = 3, std140) uniform UBONoWorkaround -{ - mat4 D; -} _56; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 Clip; - -NestedRowMajor spvWorkaroundRowMajor(NestedRowMajor wrap) { return wrap; } -mat4 spvWorkaroundRowMajor(mat4 wrap) { return wrap; } - -void main() -{ - NestedRowMajor rm2_loaded; - rm2_loaded.rm.B = spvWorkaroundRowMajor(_17.rm2).rm.B; - FragColor = (((rm2_loaded.rm.B * spvWorkaroundRowMajor(_35.rm.B)) * spvWorkaroundRowMajor(_42.A)) * spvWorkaroundRowMajor(_42.C)) * Clip; - FragColor += (_56.D * Clip); - FragColor += (_42.A[1] * Clip); -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/ubo_layout.frag b/third_party/spirv-cross/reference/shaders/frag/ubo_layout.frag deleted file mode 100644 index bc0b01c065..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/ubo_layout.frag +++ /dev/null @@ -1,26 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -struct Str -{ - mat4 foo; -}; - -layout(binding = 0, std140) uniform UBO1 -{ - layout(row_major) Str foo; -} ubo1; - -layout(binding = 1, std140) uniform UBO2 -{ - Str foo; -} ubo0; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = ubo1.foo.foo[0] + ubo0.foo.foo[0]; -} - diff --git a/third_party/spirv-cross/reference/shaders/frag/unary-enclose.frag b/third_party/spirv-cross/reference/shaders/frag/unary-enclose.frag deleted file mode 100644 index 3006e86cb5..0000000000 --- a/third_party/spirv-cross/reference/shaders/frag/unary-enclose.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 vIn; -layout(location = 1) flat in mediump ivec4 vIn1; - -void main() -{ - FragColor = -(-vIn); - mediump ivec4 a = ~(~vIn1); - bool b = false; - b = !(!b); -} - diff --git a/third_party/spirv-cross/reference/shaders/geom/basic.geom b/third_party/spirv-cross/reference/shaders/geom/basic.geom deleted file mode 100644 index 296ce5792c..0000000000 --- a/third_party/spirv-cross/reference/shaders/geom/basic.geom +++ /dev/null @@ -1,26 +0,0 @@ -#version 310 es -#extension GL_EXT_geometry_shader : require -layout(invocations = 4, triangles) in; -layout(max_vertices = 3, triangle_strip) out; - -layout(location = 0) out vec3 vNormal; -layout(location = 0) in VertexData -{ - vec3 normal; -} vin[3]; - - -void main() -{ - gl_Position = gl_in[0].gl_Position; - vNormal = vin[0].normal + vec3(float(gl_InvocationID)); - EmitVertex(); - gl_Position = gl_in[1].gl_Position; - vNormal = vin[1].normal + vec3(4.0 * float(gl_InvocationID)); - EmitVertex(); - gl_Position = gl_in[2].gl_Position; - vNormal = vin[2].normal + vec3(2.0 * float(gl_InvocationID)); - EmitVertex(); - EndPrimitive(); -} - diff --git a/third_party/spirv-cross/reference/shaders/geom/geometry-passthrough.geom b/third_party/spirv-cross/reference/shaders/geom/geometry-passthrough.geom deleted file mode 100644 index d0d8806ad2..0000000000 --- a/third_party/spirv-cross/reference/shaders/geom/geometry-passthrough.geom +++ /dev/null @@ -1,27 +0,0 @@ -#version 450 -#extension GL_NV_geometry_shader_passthrough : require -layout(triangles) in; - -layout(passthrough) in gl_PerVertex -{ - vec4 gl_Position; -} gl_in[]; - -layout(passthrough, location = 0) in VertexBlock -{ - int a; - int b; -} v1[3]; - -layout(location = 2) in VertexBlock2 -{ - int a; - layout(passthrough) int b; -} v2[3]; - - -void main() -{ - gl_Layer = (gl_InvocationID + v1[0].a) + v2[1].b; -} - diff --git a/third_party/spirv-cross/reference/shaders/geom/lines-adjacency.geom b/third_party/spirv-cross/reference/shaders/geom/lines-adjacency.geom deleted file mode 100644 index 46a21e9fb0..0000000000 --- a/third_party/spirv-cross/reference/shaders/geom/lines-adjacency.geom +++ /dev/null @@ -1,26 +0,0 @@ -#version 310 es -#extension GL_EXT_geometry_shader : require -layout(lines_adjacency) in; -layout(max_vertices = 3, line_strip) out; - -layout(location = 0) out vec3 vNormal; -layout(location = 0) in VertexData -{ - vec3 normal; -} vin[4]; - - -void main() -{ - gl_Position = gl_in[0].gl_Position; - vNormal = vin[0].normal; - EmitVertex(); - gl_Position = gl_in[1].gl_Position; - vNormal = vin[1].normal; - EmitVertex(); - gl_Position = gl_in[2].gl_Position; - vNormal = vin[2].normal; - EmitVertex(); - EndPrimitive(); -} - diff --git a/third_party/spirv-cross/reference/shaders/geom/lines.geom b/third_party/spirv-cross/reference/shaders/geom/lines.geom deleted file mode 100644 index c5aaa53d35..0000000000 --- a/third_party/spirv-cross/reference/shaders/geom/lines.geom +++ /dev/null @@ -1,23 +0,0 @@ -#version 310 es -#extension GL_EXT_geometry_shader : require -layout(lines) in; -layout(max_vertices = 2, line_strip) out; - -layout(location = 0) out vec3 vNormal; -layout(location = 0) in VertexData -{ - vec3 normal; -} vin[2]; - - -void main() -{ - gl_Position = gl_in[0].gl_Position; - vNormal = vin[0].normal; - EmitVertex(); - gl_Position = gl_in[1].gl_Position; - vNormal = vin[1].normal; - EmitVertex(); - EndPrimitive(); -} - diff --git a/third_party/spirv-cross/reference/shaders/geom/multi-stream.geom b/third_party/spirv-cross/reference/shaders/geom/multi-stream.geom deleted file mode 100644 index 548164d780..0000000000 --- a/third_party/spirv-cross/reference/shaders/geom/multi-stream.geom +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 -layout(triangles) in; -layout(max_vertices = 2, points) out; - -void main() -{ - gl_Position = gl_in[0].gl_Position; - EmitStreamVertex(0); - EndStreamPrimitive(0); - gl_Position = gl_in[0].gl_Position + vec4(2.0); - EmitStreamVertex(1); - EndStreamPrimitive(1); -} - diff --git a/third_party/spirv-cross/reference/shaders/geom/points.geom b/third_party/spirv-cross/reference/shaders/geom/points.geom deleted file mode 100644 index 4d59137c3a..0000000000 --- a/third_party/spirv-cross/reference/shaders/geom/points.geom +++ /dev/null @@ -1,26 +0,0 @@ -#version 310 es -#extension GL_EXT_geometry_shader : require -layout(points) in; -layout(max_vertices = 3, points) out; - -layout(location = 0) out vec3 vNormal; -layout(location = 0) in VertexData -{ - vec3 normal; -} vin[1]; - - -void main() -{ - gl_Position = gl_in[0].gl_Position; - vNormal = vin[0].normal; - EmitVertex(); - gl_Position = gl_in[0].gl_Position; - vNormal = vin[0].normal; - EmitVertex(); - gl_Position = gl_in[0].gl_Position; - vNormal = vin[0].normal; - EmitVertex(); - EndPrimitive(); -} - diff --git a/third_party/spirv-cross/reference/shaders/geom/single-invocation.geom b/third_party/spirv-cross/reference/shaders/geom/single-invocation.geom deleted file mode 100644 index fdccacc04f..0000000000 --- a/third_party/spirv-cross/reference/shaders/geom/single-invocation.geom +++ /dev/null @@ -1,26 +0,0 @@ -#version 310 es -#extension GL_EXT_geometry_shader : require -layout(triangles) in; -layout(max_vertices = 3, triangle_strip) out; - -layout(location = 0) out vec3 vNormal; -layout(location = 0) in VertexData -{ - vec3 normal; -} vin[3]; - - -void main() -{ - gl_Position = gl_in[0].gl_Position; - vNormal = vin[0].normal; - EmitVertex(); - gl_Position = gl_in[1].gl_Position; - vNormal = vin[1].normal; - EmitVertex(); - gl_Position = gl_in[2].gl_Position; - vNormal = vin[2].normal; - EmitVertex(); - EndPrimitive(); -} - diff --git a/third_party/spirv-cross/reference/shaders/geom/transform-feedback-streams.geom b/third_party/spirv-cross/reference/shaders/geom/transform-feedback-streams.geom deleted file mode 100644 index 4d238b4adf..0000000000 --- a/third_party/spirv-cross/reference/shaders/geom/transform-feedback-streams.geom +++ /dev/null @@ -1,26 +0,0 @@ -#version 450 -layout(points) in; -layout(max_vertices = 2, points) out; - -layout(xfb_buffer = 1, xfb_stride = 20, stream = 1) out gl_PerVertex -{ - layout(xfb_offset = 4) vec4 gl_Position; - float gl_PointSize; -}; - -layout(location = 0, xfb_buffer = 2, xfb_stride = 32, xfb_offset = 16, stream = 1) out vec4 vFoo; -layout(xfb_buffer = 3, xfb_stride = 16, stream = 2) out VertOut -{ - layout(location = 1, xfb_offset = 0) vec4 vBar; -} _23; - - -void main() -{ - gl_Position = vec4(1.0); - vFoo = vec4(3.0); - EmitStreamVertex(1); - _23.vBar = vec4(5.0); - EmitStreamVertex(2); -} - diff --git a/third_party/spirv-cross/reference/shaders/geom/triangles-adjacency.geom b/third_party/spirv-cross/reference/shaders/geom/triangles-adjacency.geom deleted file mode 100644 index e9e6857a1f..0000000000 --- a/third_party/spirv-cross/reference/shaders/geom/triangles-adjacency.geom +++ /dev/null @@ -1,26 +0,0 @@ -#version 310 es -#extension GL_EXT_geometry_shader : require -layout(triangles_adjacency) in; -layout(max_vertices = 3, triangle_strip) out; - -layout(location = 0) out vec3 vNormal; -layout(location = 0) in VertexData -{ - vec3 normal; -} vin[6]; - - -void main() -{ - gl_Position = gl_in[0].gl_Position; - vNormal = vin[0].normal; - EmitVertex(); - gl_Position = gl_in[1].gl_Position; - vNormal = vin[1].normal; - EmitVertex(); - gl_Position = gl_in[2].gl_Position; - vNormal = vin[2].normal; - EmitVertex(); - EndPrimitive(); -} - diff --git a/third_party/spirv-cross/reference/shaders/geom/triangles.geom b/third_party/spirv-cross/reference/shaders/geom/triangles.geom deleted file mode 100644 index fdccacc04f..0000000000 --- a/third_party/spirv-cross/reference/shaders/geom/triangles.geom +++ /dev/null @@ -1,26 +0,0 @@ -#version 310 es -#extension GL_EXT_geometry_shader : require -layout(triangles) in; -layout(max_vertices = 3, triangle_strip) out; - -layout(location = 0) out vec3 vNormal; -layout(location = 0) in VertexData -{ - vec3 normal; -} vin[3]; - - -void main() -{ - gl_Position = gl_in[0].gl_Position; - vNormal = vin[0].normal; - EmitVertex(); - gl_Position = gl_in[1].gl_Position; - vNormal = vin[1].normal; - EmitVertex(); - gl_Position = gl_in[2].gl_Position; - vNormal = vin[2].normal; - EmitVertex(); - EndPrimitive(); -} - diff --git a/third_party/spirv-cross/reference/shaders/legacy/fragment/explicit-lod.legacy.frag b/third_party/spirv-cross/reference/shaders/legacy/fragment/explicit-lod.legacy.frag deleted file mode 100644 index 6e8dbf1a9c..0000000000 --- a/third_party/spirv-cross/reference/shaders/legacy/fragment/explicit-lod.legacy.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 100 -#extension GL_EXT_shader_texture_lod : require -precision mediump float; -precision highp int; - -uniform mediump sampler2D tex; - -void main() -{ - gl_FragData[0] = texture2DLodEXT(tex, vec2(0.4000000059604644775390625, 0.60000002384185791015625), 0.0); -} - diff --git a/third_party/spirv-cross/reference/shaders/legacy/fragment/explicit-lod.legacy.vert b/third_party/spirv-cross/reference/shaders/legacy/fragment/explicit-lod.legacy.vert deleted file mode 100644 index b73faa47ab..0000000000 --- a/third_party/spirv-cross/reference/shaders/legacy/fragment/explicit-lod.legacy.vert +++ /dev/null @@ -1,11 +0,0 @@ -#version 100 - -uniform mediump sampler2D tex; - -varying mediump vec4 FragColor; - -void main() -{ - FragColor = texture2DLod(tex, vec2(0.4000000059604644775390625, 0.60000002384185791015625), 3.0); -} - diff --git a/third_party/spirv-cross/reference/shaders/legacy/fragment/fma.legacy.frag b/third_party/spirv-cross/reference/shaders/legacy/fragment/fma.legacy.frag deleted file mode 100644 index bcb2d4cca9..0000000000 --- a/third_party/spirv-cross/reference/shaders/legacy/fragment/fma.legacy.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 100 -precision mediump float; -precision highp int; - -varying highp vec4 vA; -varying highp vec4 vB; -varying highp vec4 vC; - -void main() -{ - gl_FragData[0] = vA * vB + vC; -} - diff --git a/third_party/spirv-cross/reference/shaders/legacy/fragment/io-blocks.legacy.frag b/third_party/spirv-cross/reference/shaders/legacy/fragment/io-blocks.legacy.frag deleted file mode 100644 index d5a60d53e9..0000000000 --- a/third_party/spirv-cross/reference/shaders/legacy/fragment/io-blocks.legacy.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 100 -precision mediump float; -precision highp int; - -varying vec4 vin_color; -varying highp vec3 vin_normal; - -void main() -{ - gl_FragData[0] = vin_color + vin_normal.xyzz; -} - diff --git a/third_party/spirv-cross/reference/shaders/legacy/fragment/multiple-struct-flattening.legacy.frag b/third_party/spirv-cross/reference/shaders/legacy/fragment/multiple-struct-flattening.legacy.frag deleted file mode 100644 index 1c811d3089..0000000000 --- a/third_party/spirv-cross/reference/shaders/legacy/fragment/multiple-struct-flattening.legacy.frag +++ /dev/null @@ -1,39 +0,0 @@ -#version 100 -precision mediump float; -precision highp int; - -struct Foo -{ - highp vec4 a; - highp vec4 b; -}; - -struct Bar -{ - highp vec4 a; - highp vec4 b; -}; - -struct Baz -{ - Foo foo; - Bar bar; -}; - -varying highp vec4 baz_foo_a; -varying highp vec4 baz_foo_b; -varying highp vec4 baz_bar_a; -varying highp vec4 baz_bar_b; -varying highp vec4 _33_a_a; -varying highp vec4 _33_a_b; -varying highp vec4 _33_b_a; -varying highp vec4 _33_b_b; - -void main() -{ - Baz bazzy = Baz(Foo(baz_foo_a, baz_foo_b), Bar(baz_bar_a, baz_bar_b)); - Foo bazzy_foo = Foo(baz_foo_a, baz_foo_b); - Bar bazzy_bar = Bar(baz_bar_a, baz_bar_b); - gl_FragData[0] = (((_33_a_a + _33_b_b) + bazzy.foo.b) + bazzy_foo.a) + bazzy_bar.b; -} - diff --git a/third_party/spirv-cross/reference/shaders/legacy/fragment/round.legacy.frag b/third_party/spirv-cross/reference/shaders/legacy/fragment/round.legacy.frag deleted file mode 100644 index 9033bc3c56..0000000000 --- a/third_party/spirv-cross/reference/shaders/legacy/fragment/round.legacy.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 100 -precision mediump float; -precision highp int; - -varying highp vec4 vA; -varying highp float vB; - -void main() -{ - gl_FragData[0] = floor(vA + vec4(0.5)); - gl_FragData[0] *= floor(vB + float(0.5)); -} - diff --git a/third_party/spirv-cross/reference/shaders/legacy/fragment/struct-varying.legacy.frag b/third_party/spirv-cross/reference/shaders/legacy/fragment/struct-varying.legacy.frag deleted file mode 100644 index 81b95dd816..0000000000 --- a/third_party/spirv-cross/reference/shaders/legacy/fragment/struct-varying.legacy.frag +++ /dev/null @@ -1,22 +0,0 @@ -#version 100 -precision mediump float; -precision highp int; - -struct Inputs -{ - highp vec4 a; - highp vec2 b; -}; - -varying highp vec4 vin_a; -varying highp vec2 vin_b; - -void main() -{ - Inputs v0 = Inputs(vin_a, vin_b); - Inputs v1 = Inputs(vin_a, vin_b); - highp vec4 a = vin_a; - highp vec4 b = vin_b.xxyy; - gl_FragData[0] = ((((v0.a + v0.b.xxyy) + v1.a) + v1.b.yyxx) + a) + b; -} - diff --git a/third_party/spirv-cross/reference/shaders/legacy/fragment/switch.legacy.frag b/third_party/spirv-cross/reference/shaders/legacy/fragment/switch.legacy.frag deleted file mode 100644 index 9155d1cdbc..0000000000 --- a/third_party/spirv-cross/reference/shaders/legacy/fragment/switch.legacy.frag +++ /dev/null @@ -1,78 +0,0 @@ -#version 100 -precision mediump float; -precision highp int; - -varying highp float vIndexF; - -void main() -{ - int vIndex = int(vIndexF); - highp vec4 v = vec4(0.0); - for (int spvDummy21 = 0; spvDummy21 < 1; spvDummy21++) - { - if (vIndex == 2) - { - v = vec4(0.0, 2.0, 3.0, 4.0); - break; - } - else if ((vIndex == 4) || (vIndex == 5)) - { - v = vec4(1.0, 2.0, 3.0, 4.0); - break; - } - else if ((vIndex == 8) || (vIndex == 9)) - { - v = vec4(40.0, 20.0, 30.0, 40.0); - break; - } - else if (vIndex == 10) - { - v = vec4(10.0); - highp vec4 _43 = v; - highp vec4 _44 = vec4(1.0); - highp vec4 _45 = _43 + _44; - v = _45; - highp vec4 _46 = v; - highp vec4 _47 = vec4(2.0); - highp vec4 _48 = _46 + _47; - v = _48; - break; - } - else if (vIndex == 11) - { - highp vec4 _43 = v; - highp vec4 _44 = vec4(1.0); - highp vec4 _45 = _43 + _44; - v = _45; - highp vec4 _46 = v; - highp vec4 _47 = vec4(2.0); - highp vec4 _48 = _46 + _47; - v = _48; - break; - } - else if (vIndex == 12) - { - highp vec4 _46 = v; - highp vec4 _47 = vec4(2.0); - highp vec4 _48 = _46 + _47; - v = _48; - break; - } - else - { - v = vec4(10.0, 20.0, 30.0, 40.0); - break; - } - } - highp vec4 w = vec4(20.0); - for (int spvDummy165 = 0; spvDummy165 < 1; spvDummy165++) - { - if ((vIndex == 10) || (vIndex == 20)) - { - w = vec4(40.0); - break; - } - } - gl_FragData[0] = v + w; -} - diff --git a/third_party/spirv-cross/reference/shaders/legacy/vert/implicit-lod.legacy.vert b/third_party/spirv-cross/reference/shaders/legacy/vert/implicit-lod.legacy.vert deleted file mode 100644 index 2d2050498e..0000000000 --- a/third_party/spirv-cross/reference/shaders/legacy/vert/implicit-lod.legacy.vert +++ /dev/null @@ -1,9 +0,0 @@ -#version 100 - -uniform mediump sampler2D tex; - -void main() -{ - gl_Position = texture2DLod(tex, vec2(0.4000000059604644775390625, 0.60000002384185791015625), 0.0); -} - diff --git a/third_party/spirv-cross/reference/shaders/legacy/vert/io-block.legacy.vert b/third_party/spirv-cross/reference/shaders/legacy/vert/io-block.legacy.vert deleted file mode 100644 index 3c518dc79e..0000000000 --- a/third_party/spirv-cross/reference/shaders/legacy/vert/io-block.legacy.vert +++ /dev/null @@ -1,13 +0,0 @@ -#version 100 - -attribute vec4 Position; -varying vec4 vout_color; -varying vec3 vout_normal; - -void main() -{ - gl_Position = Position; - vout_color = vec4(1.0); - vout_normal = vec3(0.5); -} - diff --git a/third_party/spirv-cross/reference/shaders/legacy/vert/struct-flatten-inner-array.legacy.vert b/third_party/spirv-cross/reference/shaders/legacy/vert/struct-flatten-inner-array.legacy.vert deleted file mode 100644 index fa1d643bc4..0000000000 --- a/third_party/spirv-cross/reference/shaders/legacy/vert/struct-flatten-inner-array.legacy.vert +++ /dev/null @@ -1,18 +0,0 @@ -#version 100 - -struct Foo -{ - float a[4]; -}; - -varying float foo_a[4]; - -void main() -{ - gl_Position = vec4(1.0); - for (int i = 0; i < 4; i++) - { - foo_a[i] = float(i + 2); - } -} - diff --git a/third_party/spirv-cross/reference/shaders/legacy/vert/struct-flatten-stores-multi-dimension.legacy.vert b/third_party/spirv-cross/reference/shaders/legacy/vert/struct-flatten-stores-multi-dimension.legacy.vert deleted file mode 100644 index cf807c41f7..0000000000 --- a/third_party/spirv-cross/reference/shaders/legacy/vert/struct-flatten-stores-multi-dimension.legacy.vert +++ /dev/null @@ -1,49 +0,0 @@ -#version 100 - -struct Foo -{ - vec4 a; - vec4 b; -}; - -struct Bar -{ - vec4 a; - vec4 b; -}; - -struct Baz -{ - Foo foo; - Bar bar; -}; - -varying vec4 _12_a_a; -varying vec4 _12_a_b; -varying vec4 _12_b_a; -varying vec4 _12_b_b; -varying vec4 baz_foo_a; -varying vec4 baz_foo_b; -varying vec4 baz_bar_a; -varying vec4 baz_bar_b; - -void main() -{ - _12_a_a = vec4(10.0); - _12_a_b = vec4(20.0); - _12_b_a = vec4(30.0); - _12_b_b = vec4(40.0); - _12_a_a = Foo(vec4(50.0), vec4(60.0)).a; - _12_a_b = Foo(vec4(50.0), vec4(60.0)).b; - _12_b_a = Bar(vec4(50.0), vec4(60.0)).a; - _12_b_b = Bar(vec4(50.0), vec4(60.0)).b; - baz_foo_a = Foo(vec4(100.0), vec4(200.0)).a; - baz_foo_b = Foo(vec4(100.0), vec4(200.0)).b; - baz_bar_a = Bar(vec4(300.0), vec4(400.0)).a; - baz_bar_b = Bar(vec4(300.0), vec4(400.0)).b; - baz_foo_a = Baz(Foo(vec4(1000.0), vec4(2000.0)), Bar(vec4(3000.0), vec4(4000.0))).foo.a; - baz_foo_b = Baz(Foo(vec4(1000.0), vec4(2000.0)), Bar(vec4(3000.0), vec4(4000.0))).foo.b; - baz_bar_a = Baz(Foo(vec4(1000.0), vec4(2000.0)), Bar(vec4(3000.0), vec4(4000.0))).bar.a; - baz_bar_b = Baz(Foo(vec4(1000.0), vec4(2000.0)), Bar(vec4(3000.0), vec4(4000.0))).bar.b; -} - diff --git a/third_party/spirv-cross/reference/shaders/legacy/vert/struct-varying.legacy.vert b/third_party/spirv-cross/reference/shaders/legacy/vert/struct-varying.legacy.vert deleted file mode 100644 index fcdeb55bb6..0000000000 --- a/third_party/spirv-cross/reference/shaders/legacy/vert/struct-varying.legacy.vert +++ /dev/null @@ -1,26 +0,0 @@ -#version 100 - -struct Output -{ - vec4 a; - vec2 b; -}; - -varying vec4 vout_a; -varying vec2 vout_b; - -void main() -{ - Output s = Output(vec4(0.5), vec2(0.25)); - vout_a = s.a; - vout_b = s.b; - vout_a = s.a; - vout_b = s.b; - Output tmp = Output(vout_a, vout_b); - vout_a = tmp.a; - vout_b = tmp.b; - vout_a.x = 1.0; - vout_b.y = 1.0; - float c = vout_a.x; -} - diff --git a/third_party/spirv-cross/reference/shaders/legacy/vert/switch-nested.legacy.vert b/third_party/spirv-cross/reference/shaders/legacy/vert/switch-nested.legacy.vert deleted file mode 100644 index 3ec027b447..0000000000 --- a/third_party/spirv-cross/reference/shaders/legacy/vert/switch-nested.legacy.vert +++ /dev/null @@ -1,41 +0,0 @@ -#version 100 - -struct UBO -{ - int func_arg; - int inner_func_arg; -}; - -uniform UBO _34; - -vec4 test_inner_func(bool b) -{ - if (b) - { - return vec4(1.0); - } - else - { - return vec4(0.0); - } -} - -vec4 test_func(bool b) -{ - if (b) - { - bool param = _34.inner_func_arg != 0; - return test_inner_func(param); - } - else - { - return vec4(0.0); - } -} - -void main() -{ - bool param = _34.func_arg != 0; - gl_Position = test_func(param); -} - diff --git a/third_party/spirv-cross/reference/shaders/legacy/vert/transpose.legacy.vert b/third_party/spirv-cross/reference/shaders/legacy/vert/transpose.legacy.vert deleted file mode 100644 index 8d6ee7c141..0000000000 --- a/third_party/spirv-cross/reference/shaders/legacy/vert/transpose.legacy.vert +++ /dev/null @@ -1,37 +0,0 @@ -#version 100 - -struct Buffer -{ - mat4 MVPRowMajor; - mat4 MVPColMajor; - mat4 M; -}; - -uniform Buffer _13; - -attribute vec4 Position; - -mat4 spvWorkaroundRowMajor(mat4 wrap) { return wrap; } - -mat4 spvTranspose(mat4 m) -{ - return mat4(m[0][0], m[1][0], m[2][0], m[3][0], m[0][1], m[1][1], m[2][1], m[3][1], m[0][2], m[1][2], m[2][2], m[3][2], m[0][3], m[1][3], m[2][3], m[3][3]); -} - -void main() -{ - vec4 c0 = spvWorkaroundRowMajor(_13.M) * (Position * _13.MVPRowMajor); - vec4 c1 = spvWorkaroundRowMajor(_13.M) * (spvWorkaroundRowMajor(_13.MVPColMajor) * Position); - vec4 c2 = spvWorkaroundRowMajor(_13.M) * (_13.MVPRowMajor * Position); - vec4 c3 = spvWorkaroundRowMajor(_13.M) * (Position * spvWorkaroundRowMajor(_13.MVPColMajor)); - vec4 c4 = _13.MVPRowMajor * Position; - vec4 c5 = Position * spvWorkaroundRowMajor(_13.MVPColMajor); - vec4 c6 = Position * _13.MVPRowMajor; - vec4 c7 = spvWorkaroundRowMajor(_13.MVPColMajor) * Position; - vec4 c8 = (spvTranspose(_13.MVPRowMajor) * 2.0) * Position; - vec4 c9 = (spvTranspose(spvWorkaroundRowMajor(_13.MVPColMajor)) * 2.0) * Position; - vec4 c10 = Position * (spvTranspose(_13.MVPRowMajor) * 2.0); - vec4 c11 = Position * (spvTranspose(spvWorkaroundRowMajor(_13.MVPColMajor)) * 2.0); - gl_Position = ((((((((((c0 + c1) + c2) + c3) + c4) + c5) + c6) + c7) + c8) + c9) + c10) + c11; -} - diff --git a/third_party/spirv-cross/reference/shaders/tesc/basic.tesc b/third_party/spirv-cross/reference/shaders/tesc/basic.tesc deleted file mode 100644 index 6019151adb..0000000000 --- a/third_party/spirv-cross/reference/shaders/tesc/basic.tesc +++ /dev/null @@ -1,17 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require -layout(vertices = 1) out; - -layout(location = 0) patch out vec3 vFoo; - -void main() -{ - gl_TessLevelInner[0] = 8.8999996185302734375; - gl_TessLevelInner[1] = 6.900000095367431640625; - gl_TessLevelOuter[0] = 8.8999996185302734375; - gl_TessLevelOuter[1] = 6.900000095367431640625; - gl_TessLevelOuter[2] = 3.900000095367431640625; - gl_TessLevelOuter[3] = 4.900000095367431640625; - vFoo = vec3(1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders/tesc/water_tess.tesc b/third_party/spirv-cross/reference/shaders/tesc/water_tess.tesc deleted file mode 100644 index 6f499380b7..0000000000 --- a/third_party/spirv-cross/reference/shaders/tesc/water_tess.tesc +++ /dev/null @@ -1,116 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require -layout(vertices = 1) out; - -layout(binding = 0, std140) uniform UBO -{ - vec4 uScale; - vec3 uCamPos; - vec2 uPatchSize; - vec2 uMaxTessLevel; - float uDistanceMod; - vec4 uFrustum[6]; -} _41; - -layout(location = 1) patch out vec2 vOutPatchPosBase; -layout(location = 2) patch out vec4 vPatchLods; -layout(location = 0) in vec2 vPatchPosBase[]; - -bool frustum_cull(vec2 p0) -{ - vec2 min_xz = (p0 - vec2(10.0)) * _41.uScale.xy; - vec2 max_xz = ((p0 + _41.uPatchSize) + vec2(10.0)) * _41.uScale.xy; - vec3 bb_min = vec3(min_xz.x, -10.0, min_xz.y); - vec3 bb_max = vec3(max_xz.x, 10.0, max_xz.y); - vec3 center = (bb_min + bb_max) * 0.5; - float radius = 0.5 * length(bb_max - bb_min); - vec3 f0 = vec3(dot(_41.uFrustum[0], vec4(center, 1.0)), dot(_41.uFrustum[1], vec4(center, 1.0)), dot(_41.uFrustum[2], vec4(center, 1.0))); - vec3 f1 = vec3(dot(_41.uFrustum[3], vec4(center, 1.0)), dot(_41.uFrustum[4], vec4(center, 1.0)), dot(_41.uFrustum[5], vec4(center, 1.0))); - bool _205 = any(lessThanEqual(f0, vec3(-radius))); - bool _215; - if (!_205) - { - _215 = any(lessThanEqual(f1, vec3(-radius))); - } - else - { - _215 = _205; - } - return !_215; -} - -float lod_factor(vec2 pos_) -{ - vec2 pos = pos_ * _41.uScale.xy; - vec3 dist_to_cam = _41.uCamPos - vec3(pos.x, 0.0, pos.y); - float level = log2((length(dist_to_cam) + 9.9999997473787516355514526367188e-05) * _41.uDistanceMod); - return clamp(level, 0.0, _41.uMaxTessLevel.x); -} - -vec4 tess_level(vec4 lod) -{ - return exp2(-lod) * _41.uMaxTessLevel.y; -} - -float tess_level(float lod) -{ - return _41.uMaxTessLevel.y * exp2(-lod); -} - -void compute_tess_levels(vec2 p0) -{ - vOutPatchPosBase = p0; - vec2 param = p0 + (vec2(-0.5) * _41.uPatchSize); - float l00 = lod_factor(param); - vec2 param_1 = p0 + (vec2(0.5, -0.5) * _41.uPatchSize); - float l10 = lod_factor(param_1); - vec2 param_2 = p0 + (vec2(1.5, -0.5) * _41.uPatchSize); - float l20 = lod_factor(param_2); - vec2 param_3 = p0 + (vec2(-0.5, 0.5) * _41.uPatchSize); - float l01 = lod_factor(param_3); - vec2 param_4 = p0 + (vec2(0.5) * _41.uPatchSize); - float l11 = lod_factor(param_4); - vec2 param_5 = p0 + (vec2(1.5, 0.5) * _41.uPatchSize); - float l21 = lod_factor(param_5); - vec2 param_6 = p0 + (vec2(-0.5, 1.5) * _41.uPatchSize); - float l02 = lod_factor(param_6); - vec2 param_7 = p0 + (vec2(0.5, 1.5) * _41.uPatchSize); - float l12 = lod_factor(param_7); - vec2 param_8 = p0 + (vec2(1.5) * _41.uPatchSize); - float l22 = lod_factor(param_8); - vec4 lods = vec4(dot(vec4(l01, l11, l02, l12), vec4(0.25)), dot(vec4(l00, l10, l01, l11), vec4(0.25)), dot(vec4(l10, l20, l11, l21), vec4(0.25)), dot(vec4(l11, l21, l12, l22), vec4(0.25))); - vPatchLods = lods; - vec4 outer_lods = min(lods, lods.yzwx); - vec4 param_9 = outer_lods; - vec4 levels = tess_level(param_9); - gl_TessLevelOuter[0] = levels.x; - gl_TessLevelOuter[1] = levels.y; - gl_TessLevelOuter[2] = levels.z; - gl_TessLevelOuter[3] = levels.w; - float min_lod = min(min(lods.x, lods.y), min(lods.z, lods.w)); - float param_10 = min(min_lod, l11); - float inner = tess_level(param_10); - gl_TessLevelInner[0] = inner; - gl_TessLevelInner[1] = inner; -} - -void main() -{ - vec2 p0 = vPatchPosBase[0]; - vec2 param = p0; - if (!frustum_cull(param)) - { - gl_TessLevelOuter[0] = -1.0; - gl_TessLevelOuter[1] = -1.0; - gl_TessLevelOuter[2] = -1.0; - gl_TessLevelOuter[3] = -1.0; - gl_TessLevelInner[0] = -1.0; - gl_TessLevelInner[1] = -1.0; - } - else - { - vec2 param_1 = p0; - compute_tess_levels(param_1); - } -} - diff --git a/third_party/spirv-cross/reference/shaders/tese/ccw.tese b/third_party/spirv-cross/reference/shaders/tese/ccw.tese deleted file mode 100644 index a2a4508ac0..0000000000 --- a/third_party/spirv-cross/reference/shaders/tese/ccw.tese +++ /dev/null @@ -1,9 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require -layout(triangles, ccw, fractional_even_spacing) in; - -void main() -{ - gl_Position = vec4(1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders/tese/cw.tese b/third_party/spirv-cross/reference/shaders/tese/cw.tese deleted file mode 100644 index 95781493d8..0000000000 --- a/third_party/spirv-cross/reference/shaders/tese/cw.tese +++ /dev/null @@ -1,9 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require -layout(triangles, cw, fractional_even_spacing) in; - -void main() -{ - gl_Position = vec4(1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders/tese/equal.tese b/third_party/spirv-cross/reference/shaders/tese/equal.tese deleted file mode 100644 index 6d30518a30..0000000000 --- a/third_party/spirv-cross/reference/shaders/tese/equal.tese +++ /dev/null @@ -1,9 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require -layout(triangles, cw, equal_spacing) in; - -void main() -{ - gl_Position = vec4(1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders/tese/fractional_even.tese b/third_party/spirv-cross/reference/shaders/tese/fractional_even.tese deleted file mode 100644 index 95781493d8..0000000000 --- a/third_party/spirv-cross/reference/shaders/tese/fractional_even.tese +++ /dev/null @@ -1,9 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require -layout(triangles, cw, fractional_even_spacing) in; - -void main() -{ - gl_Position = vec4(1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders/tese/fractional_odd.tese b/third_party/spirv-cross/reference/shaders/tese/fractional_odd.tese deleted file mode 100644 index 608c19aba7..0000000000 --- a/third_party/spirv-cross/reference/shaders/tese/fractional_odd.tese +++ /dev/null @@ -1,9 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require -layout(triangles, cw, fractional_odd_spacing) in; - -void main() -{ - gl_Position = vec4(1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders/tese/input-array.tese b/third_party/spirv-cross/reference/shaders/tese/input-array.tese deleted file mode 100644 index 8a1aaf9fdb..0000000000 --- a/third_party/spirv-cross/reference/shaders/tese/input-array.tese +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 -layout(quads, ccw, fractional_odd_spacing) in; - -layout(location = 0) in vec4 Floats[]; -layout(location = 2) in vec4 Floats2[]; - -void main() -{ - gl_Position = (Floats[0] * gl_TessCoord.x) + (Floats2[1] * gl_TessCoord.y); -} - diff --git a/third_party/spirv-cross/reference/shaders/tese/line.tese b/third_party/spirv-cross/reference/shaders/tese/line.tese deleted file mode 100644 index 8b6ad8da20..0000000000 --- a/third_party/spirv-cross/reference/shaders/tese/line.tese +++ /dev/null @@ -1,9 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require -layout(isolines, point_mode, fractional_even_spacing) in; - -void main() -{ - gl_Position = vec4(1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders/tese/load-array-of-array.tese b/third_party/spirv-cross/reference/shaders/tese/load-array-of-array.tese deleted file mode 100644 index 7fab08ef66..0000000000 --- a/third_party/spirv-cross/reference/shaders/tese/load-array-of-array.tese +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 -layout(quads, ccw, equal_spacing) in; - -layout(location = 0) in vec4 vTexCoord[][1]; - -void main() -{ - vec4 _17_unrolled[32][1]; - for (int i = 0; i < int(32); i++) - { - _17_unrolled[i] = vTexCoord[i]; - } - vec4 tmp[32][1] = _17_unrolled; - gl_Position = (tmp[0][0] + tmp[2][0]) + tmp[3][0]; -} - diff --git a/third_party/spirv-cross/reference/shaders/tese/patch-input-array.tese b/third_party/spirv-cross/reference/shaders/tese/patch-input-array.tese deleted file mode 100644 index 413d8b391f..0000000000 --- a/third_party/spirv-cross/reference/shaders/tese/patch-input-array.tese +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 -layout(quads, ccw, equal_spacing) in; - -layout(location = 0) patch in float P[4]; - -void main() -{ - gl_Position = vec4(P[0], P[1], P[2], P[3]); -} - diff --git a/third_party/spirv-cross/reference/shaders/tese/triangle.tese b/third_party/spirv-cross/reference/shaders/tese/triangle.tese deleted file mode 100644 index 95781493d8..0000000000 --- a/third_party/spirv-cross/reference/shaders/tese/triangle.tese +++ /dev/null @@ -1,9 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require -layout(triangles, cw, fractional_even_spacing) in; - -void main() -{ - gl_Position = vec4(1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders/tese/water_tess.tese b/third_party/spirv-cross/reference/shaders/tese/water_tess.tese deleted file mode 100644 index a0cf42d513..0000000000 --- a/third_party/spirv-cross/reference/shaders/tese/water_tess.tese +++ /dev/null @@ -1,61 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require -layout(quads, cw, fractional_even_spacing) in; - -layout(binding = 1, std140) uniform UBO -{ - mat4 uMVP; - vec4 uScale; - vec2 uInvScale; - vec3 uCamPos; - vec2 uPatchSize; - vec2 uInvHeightmapSize; -} _31; - -layout(binding = 0) uniform mediump sampler2D uHeightmapDisplacement; - -layout(location = 0) patch in vec2 vOutPatchPosBase; -layout(location = 1) patch in vec4 vPatchLods; -layout(location = 1) out vec4 vGradNormalTex; -layout(location = 0) out vec3 vWorld; - -vec2 lerp_vertex(vec2 tess_coord) -{ - return vOutPatchPosBase + (tess_coord * _31.uPatchSize); -} - -mediump vec2 lod_factor(vec2 tess_coord) -{ - mediump vec2 x = mix(vPatchLods.yx, vPatchLods.zw, vec2(tess_coord.x)); - mediump float level = mix(x.x, x.y, tess_coord.y); - mediump float floor_level = floor(level); - mediump float fract_level = level - floor_level; - return vec2(floor_level, fract_level); -} - -mediump vec3 sample_height_displacement(vec2 uv, vec2 off, mediump vec2 lod) -{ - return mix(textureLod(uHeightmapDisplacement, uv + (off * 0.5), lod.x).xyz, textureLod(uHeightmapDisplacement, uv + (off * 1.0), lod.x + 1.0).xyz, vec3(lod.y)); -} - -void main() -{ - vec2 tess_coord = gl_TessCoord.xy; - vec2 param = tess_coord; - vec2 pos = lerp_vertex(param); - vec2 param_1 = tess_coord; - mediump vec2 lod = lod_factor(param_1); - vec2 tex = pos * _31.uInvHeightmapSize; - pos *= _31.uScale.xy; - mediump float delta_mod = exp2(lod.x); - vec2 off = _31.uInvHeightmapSize * delta_mod; - vGradNormalTex = vec4(tex + (_31.uInvHeightmapSize * 0.5), tex * _31.uScale.zw); - vec2 param_2 = tex; - vec2 param_3 = off; - mediump vec2 param_4 = lod; - vec3 height_displacement = sample_height_displacement(param_2, param_3, param_4); - pos += height_displacement.yz; - vWorld = vec3(pos.x, height_displacement.x, pos.y); - gl_Position = _31.uMVP * vec4(vWorld, 1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders/vert/basic.vert b/third_party/spirv-cross/reference/shaders/vert/basic.vert deleted file mode 100644 index 8f251cbedc..0000000000 --- a/third_party/spirv-cross/reference/shaders/vert/basic.vert +++ /dev/null @@ -1,17 +0,0 @@ -#version 310 es - -layout(binding = 0, std140) uniform UBO -{ - mat4 uMVP; -} _16; - -layout(location = 0) in vec4 aVertex; -layout(location = 0) out vec3 vNormal; -layout(location = 1) in vec3 aNormal; - -void main() -{ - gl_Position = _16.uMVP * aVertex; - vNormal = aNormal; -} - diff --git a/third_party/spirv-cross/reference/shaders/vert/ground.vert b/third_party/spirv-cross/reference/shaders/vert/ground.vert deleted file mode 100644 index 73923c447f..0000000000 --- a/third_party/spirv-cross/reference/shaders/vert/ground.vert +++ /dev/null @@ -1,116 +0,0 @@ -#version 310 es -#ifdef GL_ARB_shader_draw_parameters -#extension GL_ARB_shader_draw_parameters : enable -#endif - -struct PatchData -{ - vec4 Position; - vec4 LODs; -}; - -layout(binding = 0, std140) uniform PerPatch -{ - PatchData Patches[256]; -} _53; - -layout(binding = 2, std140) uniform GlobalGround -{ - vec4 GroundScale; - vec4 GroundPosition; - vec4 InvGroundSize_PatchScale; -} _156; - -layout(binding = 0, std140) uniform GlobalVSData -{ - vec4 g_ViewProj_Row0; - vec4 g_ViewProj_Row1; - vec4 g_ViewProj_Row2; - vec4 g_ViewProj_Row3; - vec4 g_CamPos; - vec4 g_CamRight; - vec4 g_CamUp; - vec4 g_CamFront; - vec4 g_SunDir; - vec4 g_SunColor; - vec4 g_TimeParams; - vec4 g_ResolutionParams; - vec4 g_CamAxisRight; - vec4 g_FogColor_Distance; - vec4 g_ShadowVP_Row0; - vec4 g_ShadowVP_Row1; - vec4 g_ShadowVP_Row2; - vec4 g_ShadowVP_Row3; -} _236; - -layout(binding = 1) uniform mediump sampler2D TexLOD; -layout(binding = 0) uniform mediump sampler2D TexHeightmap; - -layout(location = 1) in vec4 LODWeights; -#ifdef GL_ARB_shader_draw_parameters -#define SPIRV_Cross_BaseInstance gl_BaseInstanceARB -#else -uniform int SPIRV_Cross_BaseInstance; -#endif -layout(location = 0) in vec2 Position; -layout(location = 1) out vec3 EyeVec; -layout(location = 0) out vec2 TexCoord; - -vec2 warp_position() -{ - float vlod = dot(LODWeights, _53.Patches[(gl_InstanceID + SPIRV_Cross_BaseInstance)].LODs); - vlod = all(equal(LODWeights, vec4(0.0))) ? _53.Patches[(gl_InstanceID + SPIRV_Cross_BaseInstance)].Position.w : vlod; - float floor_lod = floor(vlod); - float fract_lod = vlod - floor_lod; - uint ufloor_lod = uint(floor_lod); - uvec2 uPosition = uvec2(Position); - uvec2 mask = (uvec2(1u) << uvec2(ufloor_lod, ufloor_lod + 1u)) - uvec2(1u); - uint _110; - if (uPosition.x < 32u) - { - _110 = mask.x; - } - else - { - _110 = 0u; - } - uint _120; - if (uPosition.y < 32u) - { - _120 = mask.y; - } - else - { - _120 = 0u; - } - uvec2 rounding = uvec2(_110, _120); - vec4 lower_upper_snapped = vec4((uPosition + rounding).xyxy & (~mask).xxyy); - return mix(lower_upper_snapped.xy, lower_upper_snapped.zw, vec2(fract_lod)); -} - -vec2 lod_factor(vec2 uv) -{ - float level = textureLod(TexLOD, uv, 0.0).x * 7.96875; - float floor_level = floor(level); - float fract_level = level - floor_level; - return vec2(floor_level, fract_level); -} - -void main() -{ - vec2 PatchPos = _53.Patches[(gl_InstanceID + SPIRV_Cross_BaseInstance)].Position.xz * _156.InvGroundSize_PatchScale.zw; - vec2 WarpedPos = warp_position(); - vec2 VertexPos = PatchPos + WarpedPos; - vec2 NormalizedPos = VertexPos * _156.InvGroundSize_PatchScale.xy; - vec2 param = NormalizedPos; - vec2 lod = lod_factor(param); - vec2 Offset = _156.InvGroundSize_PatchScale.xy * exp2(lod.x); - float Elevation = mix(textureLod(TexHeightmap, NormalizedPos + (Offset * 0.5), lod.x).x, textureLod(TexHeightmap, NormalizedPos + (Offset * 1.0), lod.x + 1.0).x, lod.y); - vec3 WorldPos = vec3(NormalizedPos.x, Elevation, NormalizedPos.y); - WorldPos *= _156.GroundScale.xyz; - WorldPos += _156.GroundPosition.xyz; - EyeVec = WorldPos - _236.g_CamPos.xyz; - TexCoord = NormalizedPos + (_156.InvGroundSize_PatchScale.xy * 0.5); - gl_Position = (((_236.g_ViewProj_Row0 * WorldPos.x) + (_236.g_ViewProj_Row1 * WorldPos.y)) + (_236.g_ViewProj_Row2 * WorldPos.z)) + _236.g_ViewProj_Row3; -} - diff --git a/third_party/spirv-cross/reference/shaders/vert/invariant.vert b/third_party/spirv-cross/reference/shaders/vert/invariant.vert deleted file mode 100644 index 648ea2947c..0000000000 --- a/third_party/spirv-cross/reference/shaders/vert/invariant.vert +++ /dev/null @@ -1,19 +0,0 @@ -#version 310 es - -invariant gl_Position; - -layout(location = 0) in vec4 vInput0; -layout(location = 1) in vec4 vInput1; -layout(location = 2) in vec4 vInput2; -layout(location = 0) invariant out vec4 vColor; - -void main() -{ - vec4 _20 = vInput1 * vInput2; - vec4 _21 = vInput0 + _20; - gl_Position = _21; - vec4 _27 = vInput0 - vInput1; - vec4 _29 = _27 * vInput2; - vColor = _29; -} - diff --git a/third_party/spirv-cross/reference/shaders/vert/no-contraction.vert b/third_party/spirv-cross/reference/shaders/vert/no-contraction.vert deleted file mode 100644 index 83e392c6cc..0000000000 --- a/third_party/spirv-cross/reference/shaders/vert/no-contraction.vert +++ /dev/null @@ -1,24 +0,0 @@ -#version 450 - -layout(location = 0) in vec4 vA; -layout(location = 1) in vec4 vB; -layout(location = 2) in vec4 vC; - -void main() -{ - precise vec4 _15 = vA * vB; - vec4 mul = _15; - precise vec4 _19 = vA + vB; - vec4 add = _19; - precise vec4 _23 = vA - vB; - vec4 sub = _23; - precise vec4 _27 = vA * vB; - precise vec4 _30 = _27 + vC; - vec4 mad = _30; - precise vec4 _34 = mul + add; - precise vec4 _36 = _34 + sub; - precise vec4 _38 = _36 + mad; - vec4 summed = _38; - gl_Position = summed; -} - diff --git a/third_party/spirv-cross/reference/shaders/vert/ocean.vert b/third_party/spirv-cross/reference/shaders/vert/ocean.vert deleted file mode 100644 index 60fa80ebdb..0000000000 --- a/third_party/spirv-cross/reference/shaders/vert/ocean.vert +++ /dev/null @@ -1,140 +0,0 @@ -#version 310 es -#ifdef GL_ARB_shader_draw_parameters -#extension GL_ARB_shader_draw_parameters : enable -#endif - -struct PatchData -{ - vec4 Position; - vec4 LODs; -}; - -layout(binding = 0, std140) uniform Offsets -{ - PatchData Patches[256]; -} _53; - -layout(binding = 4, std140) uniform GlobalOcean -{ - vec4 OceanScale; - vec4 OceanPosition; - vec4 InvOceanSize_PatchScale; - vec4 NormalTexCoordScale; -} _180; - -layout(binding = 0, std140) uniform GlobalVSData -{ - vec4 g_ViewProj_Row0; - vec4 g_ViewProj_Row1; - vec4 g_ViewProj_Row2; - vec4 g_ViewProj_Row3; - vec4 g_CamPos; - vec4 g_CamRight; - vec4 g_CamUp; - vec4 g_CamFront; - vec4 g_SunDir; - vec4 g_SunColor; - vec4 g_TimeParams; - vec4 g_ResolutionParams; - vec4 g_CamAxisRight; - vec4 g_FogColor_Distance; - vec4 g_ShadowVP_Row0; - vec4 g_ShadowVP_Row1; - vec4 g_ShadowVP_Row2; - vec4 g_ShadowVP_Row3; -} _273; - -layout(binding = 1) uniform mediump sampler2D TexLOD; -layout(binding = 0) uniform mediump sampler2D TexDisplacement; - -layout(location = 1) in vec4 LODWeights; -#ifdef GL_ARB_shader_draw_parameters -#define SPIRV_Cross_BaseInstance gl_BaseInstanceARB -#else -uniform int SPIRV_Cross_BaseInstance; -#endif -layout(location = 0) in vec4 Position; -layout(location = 0) out vec3 EyeVec; -layout(location = 1) out vec4 TexCoord; - -vec2 warp_position() -{ - float vlod = dot(LODWeights, _53.Patches[(gl_InstanceID + SPIRV_Cross_BaseInstance)].LODs); - vlod = all(equal(LODWeights, vec4(0.0))) ? _53.Patches[(gl_InstanceID + SPIRV_Cross_BaseInstance)].Position.w : vlod; - float floor_lod = floor(vlod); - float fract_lod = vlod - floor_lod; - uint ufloor_lod = uint(floor_lod); - uvec4 uPosition = uvec4(Position); - uvec2 mask = (uvec2(1u) << uvec2(ufloor_lod, ufloor_lod + 1u)) - uvec2(1u); - uint _111; - if (uPosition.x < 32u) - { - _111 = mask.x; - } - else - { - _111 = 0u; - } - uvec4 rounding; - rounding.x = _111; - uint _122; - if (uPosition.y < 32u) - { - _122 = mask.x; - } - else - { - _122 = 0u; - } - rounding.y = _122; - uint _133; - if (uPosition.x < 32u) - { - _133 = mask.y; - } - else - { - _133 = 0u; - } - rounding.z = _133; - uint _145; - if (uPosition.y < 32u) - { - _145 = mask.y; - } - else - { - _145 = 0u; - } - rounding.w = _145; - vec4 lower_upper_snapped = vec4((uPosition.xyxy + rounding) & (~mask).xxyy); - return mix(lower_upper_snapped.xy, lower_upper_snapped.zw, vec2(fract_lod)); -} - -vec2 lod_factor(vec2 uv) -{ - float level = textureLod(TexLOD, uv, 0.0).x * 7.96875; - float floor_level = floor(level); - float fract_level = level - floor_level; - return vec2(floor_level, fract_level); -} - -void main() -{ - vec2 PatchPos = _53.Patches[(gl_InstanceID + SPIRV_Cross_BaseInstance)].Position.xz * _180.InvOceanSize_PatchScale.zw; - vec2 WarpedPos = warp_position(); - vec2 VertexPos = PatchPos + WarpedPos; - vec2 NormalizedPos = VertexPos * _180.InvOceanSize_PatchScale.xy; - vec2 NormalizedTex = NormalizedPos * _180.NormalTexCoordScale.zw; - vec2 param = NormalizedPos; - vec2 lod = lod_factor(param); - vec2 Offset = (_180.InvOceanSize_PatchScale.xy * exp2(lod.x)) * _180.NormalTexCoordScale.zw; - vec3 Displacement = mix(textureLod(TexDisplacement, NormalizedTex + (Offset * 0.5), lod.x).yxz, textureLod(TexDisplacement, NormalizedTex + (Offset * 1.0), lod.x + 1.0).yxz, vec3(lod.y)); - vec3 WorldPos = vec3(NormalizedPos.x, 0.0, NormalizedPos.y) + Displacement; - WorldPos *= _180.OceanScale.xyz; - WorldPos += _180.OceanPosition.xyz; - EyeVec = WorldPos - _273.g_CamPos.xyz; - TexCoord = vec4(NormalizedTex, NormalizedTex * _180.NormalTexCoordScale.xy) + ((_180.InvOceanSize_PatchScale.xyxy * 0.5) * _180.NormalTexCoordScale.zwzw); - gl_Position = (((_273.g_ViewProj_Row0 * WorldPos.x) + (_273.g_ViewProj_Row1 * WorldPos.y)) + (_273.g_ViewProj_Row2 * WorldPos.z)) + _273.g_ViewProj_Row3; -} - diff --git a/third_party/spirv-cross/reference/shaders/vert/read-from-row-major-array.vert b/third_party/spirv-cross/reference/shaders/vert/read-from-row-major-array.vert deleted file mode 100644 index b7e66c5468..0000000000 --- a/third_party/spirv-cross/reference/shaders/vert/read-from-row-major-array.vert +++ /dev/null @@ -1,47 +0,0 @@ -#version 310 es - -layout(binding = 0, std140) uniform Block -{ - layout(row_major) mat2x3 var[3][4]; -} _104; - -layout(location = 0) in vec4 a_position; -layout(location = 0) out mediump float v_vtxResult; - -mat2x3 spvWorkaroundRowMajor(mat2x3 wrap) { return wrap; } - -mediump float compare_float(float a, float b) -{ - return float(abs(a - b) < 0.0500000007450580596923828125); -} - -mediump float compare_vec3(vec3 a, vec3 b) -{ - float param = a.x; - float param_1 = b.x; - float param_2 = a.y; - float param_3 = b.y; - float param_4 = a.z; - float param_5 = b.z; - return (compare_float(param, param_1) * compare_float(param_2, param_3)) * compare_float(param_4, param_5); -} - -mediump float compare_mat2x3(mat2x3 a, mat2x3 b) -{ - vec3 param = a[0]; - vec3 param_1 = b[0]; - vec3 param_2 = a[1]; - vec3 param_3 = b[1]; - return compare_vec3(param, param_1) * compare_vec3(param_2, param_3); -} - -void main() -{ - gl_Position = a_position; - mediump float result = 1.0; - mat2x3 param = spvWorkaroundRowMajor(_104.var[0][0]); - mat2x3 param_1 = mat2x3(vec3(2.0, 6.0, -6.0), vec3(0.0, 5.0, 5.0)); - result *= compare_mat2x3(param, param_1); - v_vtxResult = result; -} - diff --git a/third_party/spirv-cross/reference/shaders/vert/return-array.vert b/third_party/spirv-cross/reference/shaders/vert/return-array.vert deleted file mode 100644 index 20bb440ece..0000000000 --- a/third_party/spirv-cross/reference/shaders/vert/return-array.vert +++ /dev/null @@ -1,23 +0,0 @@ -#version 310 es - -layout(location = 0) in vec4 vInput0; -layout(location = 1) in vec4 vInput1; - -vec4[2] test() -{ - return vec4[](vec4(10.0), vec4(20.0)); -} - -vec4[2] test2() -{ - vec4 foobar[2]; - foobar[0] = vInput0; - foobar[1] = vInput1; - return foobar; -} - -void main() -{ - gl_Position = test()[0] + test2()[1]; -} - diff --git a/third_party/spirv-cross/reference/shaders/vert/texture_buffer.vert b/third_party/spirv-cross/reference/shaders/vert/texture_buffer.vert deleted file mode 100644 index e9442ce119..0000000000 --- a/third_party/spirv-cross/reference/shaders/vert/texture_buffer.vert +++ /dev/null @@ -1,11 +0,0 @@ -#version 310 es -#extension GL_OES_texture_buffer : require - -layout(binding = 4) uniform highp samplerBuffer uSamp; -layout(binding = 5, rgba32f) uniform readonly highp imageBuffer uSampo; - -void main() -{ - gl_Position = texelFetch(uSamp, 10) + imageLoad(uSampo, 100); -} - diff --git a/third_party/spirv-cross/reference/shaders/vert/transform-feedback-decorations.vert b/third_party/spirv-cross/reference/shaders/vert/transform-feedback-decorations.vert deleted file mode 100644 index 23e7cf3c19..0000000000 --- a/third_party/spirv-cross/reference/shaders/vert/transform-feedback-decorations.vert +++ /dev/null @@ -1,22 +0,0 @@ -#version 450 - -layout(xfb_buffer = 1, xfb_stride = 20) out gl_PerVertex -{ - layout(xfb_offset = 4) vec4 gl_Position; - float gl_PointSize; -}; - -layout(location = 0, xfb_buffer = 2, xfb_stride = 32, xfb_offset = 16) out vec4 vFoo; -layout(xfb_buffer = 3, xfb_stride = 16) out VertOut -{ - layout(location = 1, xfb_offset = 0) vec4 vBar; -} _22; - - -void main() -{ - gl_Position = vec4(1.0); - vFoo = vec4(3.0); - _22.vBar = vec4(5.0); -} - diff --git a/third_party/spirv-cross/reference/shaders/vert/ubo.vert b/third_party/spirv-cross/reference/shaders/vert/ubo.vert deleted file mode 100644 index 4e7236b290..0000000000 --- a/third_party/spirv-cross/reference/shaders/vert/ubo.vert +++ /dev/null @@ -1,17 +0,0 @@ -#version 310 es - -layout(binding = 0, std140) uniform UBO -{ - mat4 mvp; -} _16; - -layout(location = 0) in vec4 aVertex; -layout(location = 0) out vec3 vNormal; -layout(location = 1) in vec3 aNormal; - -void main() -{ - gl_Position = _16.mvp * aVertex; - vNormal = aNormal; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/comp/array-of-buffer-reference.nocompat.vk.comp.vk b/third_party/spirv-cross/reference/shaders/vulkan/comp/array-of-buffer-reference.nocompat.vk.comp.vk deleted file mode 100644 index 82ebb96085..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/comp/array-of-buffer-reference.nocompat.vk.comp.vk +++ /dev/null @@ -1,25 +0,0 @@ -#version 450 -#extension GL_EXT_buffer_reference : require -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(buffer_reference) buffer Block; -layout(buffer_reference, std430) buffer Block -{ - float v; -}; - -layout(set = 0, binding = 0, std140) uniform UBO -{ - Block blocks[4]; -} ubo; - -void main() -{ - Block blocks[4]; - blocks[0] = ubo.blocks[0]; - blocks[1] = ubo.blocks[1]; - blocks[2] = ubo.blocks[2]; - blocks[3] = ubo.blocks[3]; - blocks[gl_WorkGroupID.x].v = 20.0; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/comp/buffer-reference-bitcast.nocompat.vk.comp.vk b/third_party/spirv-cross/reference/shaders/vulkan/comp/buffer-reference-bitcast.nocompat.vk.comp.vk deleted file mode 100644 index 5752f81b26..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/comp/buffer-reference-bitcast.nocompat.vk.comp.vk +++ /dev/null @@ -1,26 +0,0 @@ -#version 450 -#extension GL_EXT_buffer_reference : require -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(buffer_reference) buffer PtrUint; -layout(buffer_reference) buffer PtrInt; -layout(buffer_reference, std430) buffer PtrUint -{ - uint value; -}; - -layout(buffer_reference, std430) buffer PtrInt -{ - int value; -}; - -layout(set = 0, binding = 0, std430) buffer Buf -{ - PtrUint ptr; -} _11; - -void main() -{ - PtrInt(_11.ptr).value = 10; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/comp/buffer-reference-decorations.nocompat.vk.comp.vk b/third_party/spirv-cross/reference/shaders/vulkan/comp/buffer-reference-decorations.nocompat.vk.comp.vk deleted file mode 100644 index 5b3cf49e7a..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/comp/buffer-reference-decorations.nocompat.vk.comp.vk +++ /dev/null @@ -1,35 +0,0 @@ -#version 450 -#extension GL_EXT_buffer_reference : require -layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in; - -layout(buffer_reference) buffer RO; -layout(buffer_reference) buffer RW; -layout(buffer_reference) buffer WO; -layout(buffer_reference, std430) readonly buffer RO -{ - vec4 v[]; -}; - -layout(buffer_reference, std430) restrict buffer RW -{ - vec4 v[]; -}; - -layout(buffer_reference, std430) coherent writeonly buffer WO -{ - vec4 v[]; -}; - -layout(push_constant, std430) uniform Registers -{ - RO ro; - RW rw; - WO wo; -} registers; - -void main() -{ - registers.rw.v[gl_GlobalInvocationID.x] = registers.ro.v[gl_GlobalInvocationID.x]; - registers.wo.v[gl_GlobalInvocationID.x] = registers.ro.v[gl_GlobalInvocationID.x]; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/comp/buffer-reference.nocompat.vk.comp.vk b/third_party/spirv-cross/reference/shaders/vulkan/comp/buffer-reference.nocompat.vk.comp.vk deleted file mode 100644 index e22974114b..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/comp/buffer-reference.nocompat.vk.comp.vk +++ /dev/null @@ -1,56 +0,0 @@ -#version 450 -#extension GL_ARB_gpu_shader_int64 : require -#extension GL_EXT_buffer_reference : require -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(buffer_reference) buffer Node; -layout(buffer_reference, std430) buffer Node -{ - layout(offset = 0) int value; - layout(offset = 16) Node next; - layout(offset = 32) Node prev; -}; - -layout(set = 0, binding = 0, std430) restrict buffer LinkedList -{ - Node head1; - Node head2; -} _50; - -void copy_node(restrict Node dst, restrict Node a, restrict Node b) -{ - dst.value = a.value + b.value; -} - -void overwrite_node(out restrict Node dst, restrict Node src) -{ - dst = src; -} - -void main() -{ - Node _45; - if (gl_WorkGroupID.x < 4u) - { - _45 = _50.head1; - } - else - { - _45 = _50.head2; - } - restrict Node n = _45; - Node param = n.next; - Node param_1 = _50.head1; - Node param_2 = _50.head2; - copy_node(param, param_1, param_2); - Node param_4 = _50.head1; - Node param_3; - overwrite_node(param_3, param_4); - n = param_3; - int v = _50.head2.value; - n.value = 20; - n.value = v * 10; - uint64_t uptr = uint64_t(_50.head2.next); - Node unode = Node(uptr); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/comp/spec-constant-op-member-array.vk.comp b/third_party/spirv-cross/reference/shaders/vulkan/comp/spec-constant-op-member-array.vk.comp deleted file mode 100644 index 7c4c7ed6f4..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/comp/spec-constant-op-member-array.vk.comp +++ /dev/null @@ -1,47 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -#ifndef SPIRV_CROSS_CONSTANT_ID_0 -#define SPIRV_CROSS_CONSTANT_ID_0 100 -#endif -const int a = SPIRV_CROSS_CONSTANT_ID_0; -#ifndef SPIRV_CROSS_CONSTANT_ID_1 -#define SPIRV_CROSS_CONSTANT_ID_1 200 -#endif -const int b = SPIRV_CROSS_CONSTANT_ID_1; - -struct A -{ - int member0[a]; - int member1[b]; -}; - -struct B -{ - int member0[b]; - int member1[a]; -}; - -#ifndef SPIRV_CROSS_CONSTANT_ID_2 -#define SPIRV_CROSS_CONSTANT_ID_2 300 -#endif -const int c = SPIRV_CROSS_CONSTANT_ID_2; -const int d = (c + 50); -#ifndef SPIRV_CROSS_CONSTANT_ID_3 -#define SPIRV_CROSS_CONSTANT_ID_3 400 -#endif -const int e = SPIRV_CROSS_CONSTANT_ID_3; - -layout(binding = 0, std430) buffer SSBO -{ - A member_a; - B member_b; - int v[a]; - int w[d]; -} _22; - -void main() -{ - _22.w[gl_GlobalInvocationID.x] += (_22.v[gl_GlobalInvocationID.x] + e); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/comp/spec-constant-op-member-array.vk.comp.vk b/third_party/spirv-cross/reference/shaders/vulkan/comp/spec-constant-op-member-array.vk.comp.vk deleted file mode 100644 index b7571b7abc..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/comp/spec-constant-op-member-array.vk.comp.vk +++ /dev/null @@ -1,35 +0,0 @@ -#version 450 -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; - -layout(constant_id = 0) const int a = 100; -layout(constant_id = 1) const int b = 200; - -struct A -{ - int member0[a]; - int member1[b]; -}; - -struct B -{ - int member0[b]; - int member1[a]; -}; - -layout(constant_id = 2) const int c = 300; -const int d = (c + 50); -layout(constant_id = 3) const int e = 400; - -layout(set = 1, binding = 0, std430) buffer SSBO -{ - A member_a; - B member_b; - int v[a]; - int w[d]; -} _22; - -void main() -{ - _22.w[gl_GlobalInvocationID.x] += (_22.v[gl_GlobalInvocationID.x] + e); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/comp/spec-constant-work-group-size.vk.comp b/third_party/spirv-cross/reference/shaders/vulkan/comp/spec-constant-work-group-size.vk.comp deleted file mode 100644 index 888f4b1640..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/comp/spec-constant-work-group-size.vk.comp +++ /dev/null @@ -1,34 +0,0 @@ -#version 450 - -#ifndef SPIRV_CROSS_CONSTANT_ID_1 -#define SPIRV_CROSS_CONSTANT_ID_1 2 -#endif -const int b = SPIRV_CROSS_CONSTANT_ID_1; -#ifndef SPIRV_CROSS_CONSTANT_ID_0 -#define SPIRV_CROSS_CONSTANT_ID_0 1 -#endif -const int a = SPIRV_CROSS_CONSTANT_ID_0; -const uint _21 = (uint(a) + 0u); -#ifndef SPIRV_CROSS_CONSTANT_ID_10 -#define SPIRV_CROSS_CONSTANT_ID_10 1u -#endif -const uint _27 = gl_WorkGroupSize.x; -const uint _28 = (_21 + _27); -const uint _29 = gl_WorkGroupSize.y; -const uint _30 = (_28 + _29); -const int _32 = (1 - a); - -layout(local_size_x = SPIRV_CROSS_CONSTANT_ID_10, local_size_y = 20, local_size_z = 1) in; - -layout(binding = 0, std430) writeonly buffer SSBO -{ - int v[]; -} _17; - -void main() -{ - int spec_const_array_size[b]; - spec_const_array_size[a] = a; - _17.v[_30] = b + spec_const_array_size[_32]; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/comp/spec-constant-work-group-size.vk.comp.vk b/third_party/spirv-cross/reference/shaders/vulkan/comp/spec-constant-work-group-size.vk.comp.vk deleted file mode 100644 index bdf72dff4e..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/comp/spec-constant-work-group-size.vk.comp.vk +++ /dev/null @@ -1,24 +0,0 @@ -#version 450 -layout(local_size_x_id = 10, local_size_y = 20, local_size_z = 1) in; - -layout(constant_id = 1) const int b = 2; -layout(constant_id = 0) const int a = 1; -const uint _21 = (uint(a) + 0u); -const uint _27 = gl_WorkGroupSize.x; -const uint _28 = (_21 + _27); -const uint _29 = gl_WorkGroupSize.y; -const uint _30 = (_28 + _29); -const int _32 = (1 - a); - -layout(set = 1, binding = 0, std430) writeonly buffer SSBO -{ - int v[]; -} _17; - -void main() -{ - int spec_const_array_size[b]; - spec_const_array_size[a] = a; - _17.v[_30] = b + spec_const_array_size[_32]; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/frag/combined-texture-sampler-shadow.vk.frag b/third_party/spirv-cross/reference/shaders/vulkan/frag/combined-texture-sampler-shadow.vk.frag deleted file mode 100644 index 716e283baf..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/frag/combined-texture-sampler-shadow.vk.frag +++ /dev/null @@ -1,31 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -uniform mediump sampler2DShadow SPIRV_Cross_CombineduDepthuSampler; -uniform mediump sampler2D SPIRV_Cross_CombineduDepthuSampler1; - -layout(location = 0) out float FragColor; - -float samp2(mediump sampler2DShadow SPIRV_Cross_Combinedts) -{ - return texture(SPIRV_Cross_Combinedts, vec3(vec3(1.0).xy, 1.0)); -} - -float samp3(mediump sampler2D SPIRV_Cross_Combinedts) -{ - return texture(SPIRV_Cross_Combinedts, vec2(1.0)).x; -} - -float samp(mediump sampler2DShadow SPIRV_Cross_Combinedts, mediump sampler2D SPIRV_Cross_Combinedts1) -{ - float r0 = samp2(SPIRV_Cross_Combinedts); - float r1 = samp3(SPIRV_Cross_Combinedts1); - return r0 + r1; -} - -void main() -{ - FragColor = samp(SPIRV_Cross_CombineduDepthuSampler, SPIRV_Cross_CombineduDepthuSampler1); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/frag/combined-texture-sampler-shadow.vk.frag.vk b/third_party/spirv-cross/reference/shaders/vulkan/frag/combined-texture-sampler-shadow.vk.frag.vk deleted file mode 100644 index 5ba3bdf35c..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/frag/combined-texture-sampler-shadow.vk.frag.vk +++ /dev/null @@ -1,32 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(set = 0, binding = 2) uniform mediump texture2D uDepth; -layout(set = 0, binding = 0) uniform mediump samplerShadow uSampler; -layout(set = 0, binding = 1) uniform mediump sampler uSampler1; - -layout(location = 0) out float FragColor; - -float samp2(mediump texture2D t, mediump samplerShadow s) -{ - return texture(sampler2DShadow(t, s), vec3(vec3(1.0).xy, 1.0)); -} - -float samp3(mediump texture2D t, mediump sampler s) -{ - return texture(sampler2D(t, s), vec2(1.0)).x; -} - -float samp(mediump texture2D t, mediump samplerShadow s, mediump sampler s1) -{ - float r0 = samp2(t, s); - float r1 = samp3(t, s1); - return r0 + r1; -} - -void main() -{ - FragColor = samp(uDepth, uSampler, uSampler1); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/frag/combined-texture-sampler.vk.frag b/third_party/spirv-cross/reference/shaders/vulkan/frag/combined-texture-sampler.vk.frag deleted file mode 100644 index 5b9c0ddadf..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/frag/combined-texture-sampler.vk.frag +++ /dev/null @@ -1,48 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -uniform mediump sampler2D SPIRV_Cross_CombineduTexture0uSampler0; -uniform mediump sampler2D SPIRV_Cross_CombineduTexture1uSampler1; -uniform mediump sampler2D SPIRV_Cross_CombineduTexture1uSampler0; -uniform mediump sampler2D SPIRV_Cross_CombineduTexture0uSampler1; - -layout(location = 0) in vec2 vTex; -layout(location = 0) out vec4 FragColor; - -vec4 sample_dual(mediump sampler2D SPIRV_Cross_Combinedtexsamp) -{ - return texture(SPIRV_Cross_Combinedtexsamp, vTex); -} - -vec4 sample_duals() -{ - vec4 a = sample_dual(SPIRV_Cross_CombineduTexture0uSampler0); - vec4 b = sample_dual(SPIRV_Cross_CombineduTexture1uSampler1); - return a + b; -} - -vec4 sample_global_tex(mediump sampler2D SPIRV_Cross_CombineduTexture0samp, mediump sampler2D SPIRV_Cross_CombineduTexture1samp) -{ - vec4 a = texture(SPIRV_Cross_CombineduTexture0samp, vTex); - vec4 b = sample_dual(SPIRV_Cross_CombineduTexture1samp); - return a + b; -} - -vec4 sample_global_sampler(mediump sampler2D SPIRV_Cross_CombinedtexuSampler0, mediump sampler2D SPIRV_Cross_CombinedtexuSampler1) -{ - vec4 a = texture(SPIRV_Cross_CombinedtexuSampler0, vTex); - vec4 b = sample_dual(SPIRV_Cross_CombinedtexuSampler1); - return a + b; -} - -void main() -{ - vec4 c0 = sample_duals(); - vec4 c1 = sample_global_tex(SPIRV_Cross_CombineduTexture0uSampler0, SPIRV_Cross_CombineduTexture1uSampler0); - vec4 c2 = sample_global_tex(SPIRV_Cross_CombineduTexture0uSampler1, SPIRV_Cross_CombineduTexture1uSampler1); - vec4 c3 = sample_global_sampler(SPIRV_Cross_CombineduTexture0uSampler0, SPIRV_Cross_CombineduTexture0uSampler1); - vec4 c4 = sample_global_sampler(SPIRV_Cross_CombineduTexture1uSampler0, SPIRV_Cross_CombineduTexture1uSampler1); - FragColor = (((c0 + c1) + c2) + c3) + c4; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/frag/combined-texture-sampler.vk.frag.vk b/third_party/spirv-cross/reference/shaders/vulkan/frag/combined-texture-sampler.vk.frag.vk deleted file mode 100644 index ae8df4c925..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/frag/combined-texture-sampler.vk.frag.vk +++ /dev/null @@ -1,48 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(set = 0, binding = 2) uniform mediump texture2D uTexture0; -layout(set = 0, binding = 3) uniform mediump texture2D uTexture1; -layout(set = 0, binding = 0) uniform mediump sampler uSampler0; -layout(set = 0, binding = 1) uniform mediump sampler uSampler1; - -layout(location = 0) in vec2 vTex; -layout(location = 0) out vec4 FragColor; - -vec4 sample_dual(mediump sampler samp, mediump texture2D tex) -{ - return texture(sampler2D(tex, samp), vTex); -} - -vec4 sample_duals() -{ - vec4 a = sample_dual(uSampler0, uTexture0); - vec4 b = sample_dual(uSampler1, uTexture1); - return a + b; -} - -vec4 sample_global_tex(mediump sampler samp) -{ - vec4 a = texture(sampler2D(uTexture0, samp), vTex); - vec4 b = sample_dual(samp, uTexture1); - return a + b; -} - -vec4 sample_global_sampler(mediump texture2D tex) -{ - vec4 a = texture(sampler2D(tex, uSampler0), vTex); - vec4 b = sample_dual(uSampler1, tex); - return a + b; -} - -void main() -{ - vec4 c0 = sample_duals(); - vec4 c1 = sample_global_tex(uSampler0); - vec4 c2 = sample_global_tex(uSampler1); - vec4 c3 = sample_global_sampler(uTexture0); - vec4 c4 = sample_global_sampler(uTexture1); - FragColor = (((c0 + c1) + c2) + c3) + c4; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/frag/demote-to-helper-forwarding.asm.vk.nocompat.frag.vk b/third_party/spirv-cross/reference/shaders/vulkan/frag/demote-to-helper-forwarding.asm.vk.nocompat.frag.vk deleted file mode 100644 index 153164920f..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/frag/demote-to-helper-forwarding.asm.vk.nocompat.frag.vk +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 -#extension GL_EXT_demote_to_helper_invocation : require - -layout(location = 0) out vec4 FragColor; - -void main() -{ - bool _15 = helperInvocationEXT(); - demote; - if (!_15) - { - FragColor = vec4(1.0, 0.0, 0.0, 1.0); - } -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/frag/demote-to-helper.vk.nocompat.frag.vk b/third_party/spirv-cross/reference/shaders/vulkan/frag/demote-to-helper.vk.nocompat.frag.vk deleted file mode 100644 index 302f835402..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/frag/demote-to-helper.vk.nocompat.frag.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 -#extension GL_EXT_demote_to_helper_invocation : require - -void main() -{ - demote; - bool _9 = helperInvocationEXT(); - bool helper = _9; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/frag/desktop-mediump.vk.frag b/third_party/spirv-cross/reference/shaders/vulkan/frag/desktop-mediump.vk.frag deleted file mode 100644 index 8f7508ee8e..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/frag/desktop-mediump.vk.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 F; -layout(location = 1) flat in ivec4 I; -layout(location = 2) flat in uvec4 U; - -void main() -{ - FragColor = (F + vec4(I)) + vec4(U); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/frag/desktop-mediump.vk.frag.vk b/third_party/spirv-cross/reference/shaders/vulkan/frag/desktop-mediump.vk.frag.vk deleted file mode 100644 index 4c0506b110..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/frag/desktop-mediump.vk.frag.vk +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(location = 0) out mediump vec4 FragColor; -layout(location = 0) in mediump vec4 F; -layout(location = 1) flat in mediump ivec4 I; -layout(location = 2) flat in mediump uvec4 U; - -void main() -{ - FragColor = (F + vec4(I)) + vec4(U); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/frag/input-attachment-ms.vk.frag b/third_party/spirv-cross/reference/shaders/vulkan/frag/input-attachment-ms.vk.frag deleted file mode 100644 index ea460c1fae..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/frag/input-attachment-ms.vk.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler2DMS uSubpass0; -layout(binding = 1) uniform sampler2DMS uSubpass1; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = (texelFetch(uSubpass0, ivec2(gl_FragCoord.xy), 1) + texelFetch(uSubpass1, ivec2(gl_FragCoord.xy), 2)) + texelFetch(uSubpass0, ivec2(gl_FragCoord.xy), gl_SampleID); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/frag/input-attachment-ms.vk.frag.vk b/third_party/spirv-cross/reference/shaders/vulkan/frag/input-attachment-ms.vk.frag.vk deleted file mode 100644 index 462df22a19..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/frag/input-attachment-ms.vk.frag.vk +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(input_attachment_index = 0, set = 0, binding = 0) uniform subpassInputMS uSubpass0; -layout(input_attachment_index = 1, set = 0, binding = 1) uniform subpassInputMS uSubpass1; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = (subpassLoad(uSubpass0, 1) + subpassLoad(uSubpass1, 2)) + subpassLoad(uSubpass0, gl_SampleID); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/frag/input-attachment.vk.frag b/third_party/spirv-cross/reference/shaders/vulkan/frag/input-attachment.vk.frag deleted file mode 100644 index 8d216b2c49..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/frag/input-attachment.vk.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(binding = 0) uniform mediump sampler2D uSubpass0; -layout(binding = 1) uniform mediump sampler2D uSubpass1; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = texelFetch(uSubpass0, ivec2(gl_FragCoord.xy), 0) + texelFetch(uSubpass1, ivec2(gl_FragCoord.xy), 0); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/frag/input-attachment.vk.frag.vk b/third_party/spirv-cross/reference/shaders/vulkan/frag/input-attachment.vk.frag.vk deleted file mode 100644 index c8b5d9a70d..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/frag/input-attachment.vk.frag.vk +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(input_attachment_index = 0, set = 0, binding = 0) uniform mediump subpassInput uSubpass0; -layout(input_attachment_index = 1, set = 0, binding = 1) uniform mediump subpassInput uSubpass1; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = subpassLoad(uSubpass0) + subpassLoad(uSubpass1); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/frag/nonuniform-qualifier.vk.nocompat.frag.vk b/third_party/spirv-cross/reference/shaders/vulkan/frag/nonuniform-qualifier.vk.nocompat.frag.vk deleted file mode 100644 index bd46cb1f26..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/frag/nonuniform-qualifier.vk.nocompat.frag.vk +++ /dev/null @@ -1,68 +0,0 @@ -#version 450 -#extension GL_EXT_nonuniform_qualifier : require -#extension GL_EXT_samplerless_texture_functions : require - -layout(set = 0, binding = 2, std140) uniform UBO -{ - vec4 v[64]; -} ubos[]; - -layout(set = 0, binding = 3, std430) buffer SSBO -{ - uint counter; - vec4 v[]; -} ssbos[]; - -layout(set = 0, binding = 0) uniform texture2D uSamplers[]; -layout(set = 0, binding = 1) uniform sampler uSamps[]; -layout(set = 0, binding = 4) uniform sampler2D uCombinedSamplers[]; -layout(set = 0, binding = 0) uniform texture2DMS uSamplersMS[]; -layout(set = 0, binding = 5, r32f) uniform image2D uImages[]; -layout(set = 0, binding = 5, r32ui) uniform uimage2D uImagesU32[]; - -layout(location = 0) flat in int vIndex; -layout(location = 0) out vec4 FragColor; -layout(location = 1) in vec2 vUV; - -void main() -{ - int i = vIndex; - FragColor = texture(nonuniformEXT(sampler2D(uSamplers[i + 10], uSamps[i + 40])), vUV); - int _49 = i + 10; - FragColor = texture(uCombinedSamplers[nonuniformEXT(_49)], vUV); - int _65 = i + 20; - int _69 = i + 40; - FragColor += ubos[nonuniformEXT(_65)].v[_69]; - int _83 = i + 50; - int _88 = i + 60; - FragColor += ssbos[nonuniformEXT(_83)].v[_88]; - int _96 = i + 60; - int _100 = i + 70; - ssbos[nonuniformEXT(_96)].v[_100] = vec4(20.0); - int _106 = i + 10; - FragColor = texelFetch(uSamplers[nonuniformEXT(_106)], ivec2(vUV), 0); - int _116 = i + 100; - uint _122 = atomicAdd(ssbos[_116].counter, 100u); - vec2 queried = textureQueryLod(nonuniformEXT(sampler2D(uSamplers[i + 10], uSamps[i + 40])), vUV); - int _139 = i + 10; - queried += textureQueryLod(uCombinedSamplers[nonuniformEXT(_139)], vUV); - vec2 _149 = FragColor.xy + queried; - FragColor = vec4(_149.x, _149.y, FragColor.z, FragColor.w); - int _154 = i + 20; - FragColor.x += float(textureQueryLevels(uSamplers[nonuniformEXT(_154)])); - int _170 = i + 20; - FragColor.y += float(textureSamples(uSamplersMS[nonuniformEXT(_170)])); - int _182 = i + 20; - vec2 _189 = FragColor.xy + vec2(textureSize(uSamplers[nonuniformEXT(_182)], 0)); - FragColor = vec4(_189.x, _189.y, FragColor.z, FragColor.w); - int _198 = i + 50; - FragColor += imageLoad(uImages[nonuniformEXT(_198)], ivec2(vUV)); - int _209 = i + 20; - vec2 _216 = FragColor.xy + vec2(imageSize(uImages[nonuniformEXT(_209)])); - FragColor = vec4(_216.x, _216.y, FragColor.z, FragColor.w); - int _221 = i + 60; - imageStore(uImages[nonuniformEXT(_221)], ivec2(vUV), vec4(50.0)); - int _234 = i + 70; - uint _242 = imageAtomicAdd(uImagesU32[nonuniformEXT(_234)], ivec2(vUV), 40u); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/frag/push-constant-as-ubo.push-ubo.vk.frag b/third_party/spirv-cross/reference/shaders/vulkan/frag/push-constant-as-ubo.push-ubo.vk.frag deleted file mode 100644 index 21618f8885..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/frag/push-constant-as-ubo.push-ubo.vk.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 - -layout(std140) uniform UBO -{ - float ubo[4]; -} _14; - -layout(location = 0) out float FragColor; - -void main() -{ - FragColor = _14.ubo[1]; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/frag/push-constant-as-ubo.push-ubo.vk.frag.vk b/third_party/spirv-cross/reference/shaders/vulkan/frag/push-constant-as-ubo.push-ubo.vk.frag.vk deleted file mode 100644 index 8ca4f23ac4..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/frag/push-constant-as-ubo.push-ubo.vk.frag.vk +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 - -layout(push_constant, std140) uniform UBO -{ - float ubo[4]; -} _14; - -layout(location = 0) out float FragColor; - -void main() -{ - FragColor = _14.ubo[1]; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/frag/push-constant.vk.frag b/third_party/spirv-cross/reference/shaders/vulkan/frag/push-constant.vk.frag deleted file mode 100644 index c04a7ca488..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/frag/push-constant.vk.frag +++ /dev/null @@ -1,20 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -struct PushConstants -{ - vec4 value0; - vec4 value1; -}; - -uniform PushConstants push; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 vColor; - -void main() -{ - FragColor = (vColor + push.value0) + push.value1; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/frag/push-constant.vk.frag.vk b/third_party/spirv-cross/reference/shaders/vulkan/frag/push-constant.vk.frag.vk deleted file mode 100644 index 6cec90f19e..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/frag/push-constant.vk.frag.vk +++ /dev/null @@ -1,18 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(push_constant, std430) uniform PushConstants -{ - vec4 value0; - vec4 value1; -} push; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 vColor; - -void main() -{ - FragColor = (vColor + push.value0) + push.value1; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/frag/separate-combined-fake-overload.vk.frag b/third_party/spirv-cross/reference/shaders/vulkan/frag/separate-combined-fake-overload.vk.frag deleted file mode 100644 index 575c4187eb..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/frag/separate-combined-fake-overload.vk.frag +++ /dev/null @@ -1,22 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler2D uSamp; -uniform sampler2D SPIRV_Cross_CombineduTuS; - -layout(location = 0) out vec4 FragColor; - -vec4 samp(sampler2D uSamp_1) -{ - return texture(uSamp_1, vec2(0.5)); -} - -vec4 samp_1(sampler2D SPIRV_Cross_CombinedTS) -{ - return texture(SPIRV_Cross_CombinedTS, vec2(0.5)); -} - -void main() -{ - FragColor = samp(uSamp) + samp_1(SPIRV_Cross_CombineduTuS); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/frag/separate-combined-fake-overload.vk.frag.vk b/third_party/spirv-cross/reference/shaders/vulkan/frag/separate-combined-fake-overload.vk.frag.vk deleted file mode 100644 index 222b659e40..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/frag/separate-combined-fake-overload.vk.frag.vk +++ /dev/null @@ -1,23 +0,0 @@ -#version 450 - -layout(set = 0, binding = 0) uniform sampler2D uSamp; -layout(set = 0, binding = 1) uniform texture2D uT; -layout(set = 0, binding = 2) uniform sampler uS; - -layout(location = 0) out vec4 FragColor; - -vec4 samp(sampler2D uSamp_1) -{ - return texture(uSamp_1, vec2(0.5)); -} - -vec4 samp(texture2D T, sampler S) -{ - return texture(sampler2D(T, S), vec2(0.5)); -} - -void main() -{ - FragColor = samp(uSamp) + samp(uT, uS); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/frag/separate-sampler-texture-array.vk.frag b/third_party/spirv-cross/reference/shaders/vulkan/frag/separate-sampler-texture-array.vk.frag deleted file mode 100644 index 8ca3085a10..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/frag/separate-sampler-texture-array.vk.frag +++ /dev/null @@ -1,44 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -uniform mediump sampler2D SPIRV_Cross_CombineduTextureuSampler[4]; -uniform mediump sampler2DArray SPIRV_Cross_CombineduTextureArrayuSampler[4]; -uniform mediump samplerCube SPIRV_Cross_CombineduTextureCubeuSampler[4]; -uniform mediump sampler3D SPIRV_Cross_CombineduTexture3DuSampler[4]; - -layout(location = 0) in vec2 vTex; -layout(location = 1) in vec3 vTex3; -layout(location = 0) out vec4 FragColor; - -vec4 sample_func(vec2 uv, mediump sampler2D SPIRV_Cross_CombineduTexturesamp[4]) -{ - return texture(SPIRV_Cross_CombineduTexturesamp[2], uv); -} - -vec4 sample_func_dual(vec2 uv, mediump sampler2D SPIRV_Cross_Combinedtexsamp) -{ - return texture(SPIRV_Cross_Combinedtexsamp, uv); -} - -vec4 sample_func_dual_array(vec2 uv, mediump sampler2D SPIRV_Cross_Combinedtexsamp[4]) -{ - return texture(SPIRV_Cross_Combinedtexsamp[1], uv); -} - -void main() -{ - vec2 off = vec2(1.0) / vec2(textureSize(SPIRV_Cross_CombineduTextureuSampler[1], 0)); - vec2 off2 = vec2(1.0) / vec2(textureSize(SPIRV_Cross_CombineduTextureuSampler[2], 1)); - vec2 param = (vTex + off) + off2; - vec4 c0 = sample_func(param, SPIRV_Cross_CombineduTextureuSampler); - vec2 param_1 = (vTex + off) + off2; - vec4 c1 = sample_func_dual(param_1, SPIRV_Cross_CombineduTextureuSampler[1]); - vec2 param_2 = (vTex + off) + off2; - vec4 c2 = sample_func_dual_array(param_2, SPIRV_Cross_CombineduTextureuSampler); - vec4 c3 = texture(SPIRV_Cross_CombineduTextureArrayuSampler[3], vTex3); - vec4 c4 = texture(SPIRV_Cross_CombineduTextureCubeuSampler[1], vTex3); - vec4 c5 = texture(SPIRV_Cross_CombineduTexture3DuSampler[2], vTex3); - FragColor = ((((c0 + c1) + c2) + c3) + c4) + c5; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/frag/separate-sampler-texture-array.vk.frag.vk b/third_party/spirv-cross/reference/shaders/vulkan/frag/separate-sampler-texture-array.vk.frag.vk deleted file mode 100644 index 0afa489c58..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/frag/separate-sampler-texture-array.vk.frag.vk +++ /dev/null @@ -1,45 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(set = 0, binding = 1) uniform mediump texture2D uTexture[4]; -layout(set = 0, binding = 0) uniform mediump sampler uSampler; -layout(set = 0, binding = 4) uniform mediump texture2DArray uTextureArray[4]; -layout(set = 0, binding = 3) uniform mediump textureCube uTextureCube[4]; -layout(set = 0, binding = 2) uniform mediump texture3D uTexture3D[4]; - -layout(location = 0) in vec2 vTex; -layout(location = 1) in vec3 vTex3; -layout(location = 0) out vec4 FragColor; - -vec4 sample_func(mediump sampler samp, vec2 uv) -{ - return texture(sampler2D(uTexture[2], samp), uv); -} - -vec4 sample_func_dual(mediump sampler samp, mediump texture2D tex, vec2 uv) -{ - return texture(sampler2D(tex, samp), uv); -} - -vec4 sample_func_dual_array(mediump sampler samp, mediump texture2D tex[4], vec2 uv) -{ - return texture(sampler2D(tex[1], samp), uv); -} - -void main() -{ - vec2 off = vec2(1.0) / vec2(textureSize(sampler2D(uTexture[1], uSampler), 0)); - vec2 off2 = vec2(1.0) / vec2(textureSize(sampler2D(uTexture[2], uSampler), 1)); - vec2 param = (vTex + off) + off2; - vec4 c0 = sample_func(uSampler, param); - vec2 param_1 = (vTex + off) + off2; - vec4 c1 = sample_func_dual(uSampler, uTexture[1], param_1); - vec2 param_2 = (vTex + off) + off2; - vec4 c2 = sample_func_dual_array(uSampler, uTexture, param_2); - vec4 c3 = texture(sampler2DArray(uTextureArray[3], uSampler), vTex3); - vec4 c4 = texture(samplerCube(uTextureCube[1], uSampler), vTex3); - vec4 c5 = texture(sampler3D(uTexture3D[2], uSampler), vTex3); - FragColor = ((((c0 + c1) + c2) + c3) + c4) + c5; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/frag/separate-sampler-texture.vk.frag b/third_party/spirv-cross/reference/shaders/vulkan/frag/separate-sampler-texture.vk.frag deleted file mode 100644 index c2530d5d8e..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/frag/separate-sampler-texture.vk.frag +++ /dev/null @@ -1,37 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -uniform mediump sampler2D SPIRV_Cross_CombineduTextureuSampler; -uniform mediump sampler2DArray SPIRV_Cross_CombineduTextureArrayuSampler; -uniform mediump samplerCube SPIRV_Cross_CombineduTextureCubeuSampler; -uniform mediump sampler3D SPIRV_Cross_CombineduTexture3DuSampler; - -layout(location = 0) in vec2 vTex; -layout(location = 1) in vec3 vTex3; -layout(location = 0) out vec4 FragColor; - -vec4 sample_func(vec2 uv, mediump sampler2D SPIRV_Cross_CombineduTexturesamp) -{ - return texture(SPIRV_Cross_CombineduTexturesamp, uv); -} - -vec4 sample_func_dual(vec2 uv, mediump sampler2D SPIRV_Cross_Combinedtexsamp) -{ - return texture(SPIRV_Cross_Combinedtexsamp, uv); -} - -void main() -{ - vec2 off = vec2(1.0) / vec2(textureSize(SPIRV_Cross_CombineduTextureuSampler, 0)); - vec2 off2 = vec2(1.0) / vec2(textureSize(SPIRV_Cross_CombineduTextureuSampler, 1)); - vec2 param = (vTex + off) + off2; - vec4 c0 = sample_func(param, SPIRV_Cross_CombineduTextureuSampler); - vec2 param_1 = (vTex + off) + off2; - vec4 c1 = sample_func_dual(param_1, SPIRV_Cross_CombineduTextureuSampler); - vec4 c2 = texture(SPIRV_Cross_CombineduTextureArrayuSampler, vTex3); - vec4 c3 = texture(SPIRV_Cross_CombineduTextureCubeuSampler, vTex3); - vec4 c4 = texture(SPIRV_Cross_CombineduTexture3DuSampler, vTex3); - FragColor = (((c0 + c1) + c2) + c3) + c4; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/frag/separate-sampler-texture.vk.frag.vk b/third_party/spirv-cross/reference/shaders/vulkan/frag/separate-sampler-texture.vk.frag.vk deleted file mode 100644 index 105379d770..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/frag/separate-sampler-texture.vk.frag.vk +++ /dev/null @@ -1,38 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(set = 0, binding = 1) uniform mediump texture2D uTexture; -layout(set = 0, binding = 0) uniform mediump sampler uSampler; -layout(set = 0, binding = 4) uniform mediump texture2DArray uTextureArray; -layout(set = 0, binding = 3) uniform mediump textureCube uTextureCube; -layout(set = 0, binding = 2) uniform mediump texture3D uTexture3D; - -layout(location = 0) in vec2 vTex; -layout(location = 1) in vec3 vTex3; -layout(location = 0) out vec4 FragColor; - -vec4 sample_func(mediump sampler samp, vec2 uv) -{ - return texture(sampler2D(uTexture, samp), uv); -} - -vec4 sample_func_dual(mediump sampler samp, mediump texture2D tex, vec2 uv) -{ - return texture(sampler2D(tex, samp), uv); -} - -void main() -{ - vec2 off = vec2(1.0) / vec2(textureSize(sampler2D(uTexture, uSampler), 0)); - vec2 off2 = vec2(1.0) / vec2(textureSize(sampler2D(uTexture, uSampler), 1)); - vec2 param = (vTex + off) + off2; - vec4 c0 = sample_func(uSampler, param); - vec2 param_1 = (vTex + off) + off2; - vec4 c1 = sample_func_dual(uSampler, uTexture, param_1); - vec4 c2 = texture(sampler2DArray(uTextureArray, uSampler), vTex3); - vec4 c3 = texture(samplerCube(uTextureCube, uSampler), vTex3); - vec4 c4 = texture(sampler3D(uTexture3D, uSampler), vTex3); - FragColor = (((c0 + c1) + c2) + c3) + c4; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/frag/shader-arithmetic-8bit.nocompat.vk.frag.vk b/third_party/spirv-cross/reference/shaders/vulkan/frag/shader-arithmetic-8bit.nocompat.vk.frag.vk deleted file mode 100644 index 634a37aa3a..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/frag/shader-arithmetic-8bit.nocompat.vk.frag.vk +++ /dev/null @@ -1,88 +0,0 @@ -#version 450 -#extension GL_EXT_shader_explicit_arithmetic_types_int16 : require -#extension GL_EXT_shader_16bit_storage : require -#extension GL_EXT_shader_explicit_arithmetic_types_int8 : require -#extension GL_EXT_shader_8bit_storage : require - -layout(set = 0, binding = 1, std430) buffer SSBO -{ - int8_t i8[16]; - uint8_t u8[16]; -} ssbo; - -layout(set = 0, binding = 0, std140) uniform UBO -{ - int8_t i8; - uint8_t u8; -} ubo; - -layout(push_constant, std430) uniform Push -{ - int8_t i8; - uint8_t u8; -} registers; - -layout(location = 0) flat in ivec4 vColor; -layout(location = 0) out ivec4 FragColorInt; -layout(location = 1) out uvec4 FragColorUint; - -void packing_int8() -{ - int16_t i16 = 10s; - int i32 = 20; - i8vec2 i8_2 = unpack8(i16); - i8vec4 i8_4 = unpack8(i32); - i16 = pack16(i8_2); - i32 = pack32(i8_4); - ssbo.i8[0] = i8_4.x; - ssbo.i8[1] = i8_4.y; - ssbo.i8[2] = i8_4.z; - ssbo.i8[3] = i8_4.w; -} - -void packing_uint8() -{ - uint16_t u16 = 10us; - uint u32 = 20u; - u8vec2 u8_2 = unpack8(u16); - u8vec4 u8_4 = unpack8(u32); - u16 = pack16(u8_2); - u32 = pack32(u8_4); - ssbo.u8[0] = u8_4.x; - ssbo.u8[1] = u8_4.y; - ssbo.u8[2] = u8_4.z; - ssbo.u8[3] = u8_4.w; -} - -void compute_int8() -{ - i8vec4 tmp = i8vec4(vColor); - tmp += i8vec4(registers.i8); - tmp += i8vec4(int8_t(-40)); - tmp += i8vec4(-50); - tmp += i8vec4(int8_t(10), int8_t(20), int8_t(30), int8_t(40)); - tmp += i8vec4(ssbo.i8[4]); - tmp += i8vec4(ubo.i8); - FragColorInt = ivec4(tmp); -} - -void compute_uint8() -{ - u8vec4 tmp = u8vec4(i8vec4(vColor)); - tmp += u8vec4(registers.u8); - tmp += u8vec4(uint8_t(216)); - tmp += u8vec4(206); - tmp += u8vec4(uint8_t(10), uint8_t(20), uint8_t(30), uint8_t(40)); - tmp += u8vec4(ssbo.u8[4]); - tmp += u8vec4(ubo.u8); - FragColorUint = uvec4(tmp); -} - -void main() -{ - packing_int8(); - packing_uint8(); - compute_int8(); - compute_uint8(); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/frag/spec-constant-block-size.vk.frag b/third_party/spirv-cross/reference/shaders/vulkan/frag/spec-constant-block-size.vk.frag deleted file mode 100644 index 19ea6ae064..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/frag/spec-constant-block-size.vk.frag +++ /dev/null @@ -1,22 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -#ifndef SPIRV_CROSS_CONSTANT_ID_10 -#define SPIRV_CROSS_CONSTANT_ID_10 2 -#endif -const int Value = SPIRV_CROSS_CONSTANT_ID_10; - -layout(binding = 0, std140) uniform SpecConstArray -{ - vec4 samples[Value]; -} _15; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) flat in mediump int Index; - -void main() -{ - FragColor = _15.samples[Index]; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/frag/spec-constant-block-size.vk.frag.vk b/third_party/spirv-cross/reference/shaders/vulkan/frag/spec-constant-block-size.vk.frag.vk deleted file mode 100644 index 133761a83d..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/frag/spec-constant-block-size.vk.frag.vk +++ /dev/null @@ -1,19 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(constant_id = 10) const int Value = 2; - -layout(set = 0, binding = 0, std140) uniform SpecConstArray -{ - vec4 samples[Value]; -} _15; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) flat in mediump int Index; - -void main() -{ - FragColor = _15.samples[Index]; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/frag/spec-constant-ternary.vk.frag b/third_party/spirv-cross/reference/shaders/vulkan/frag/spec-constant-ternary.vk.frag deleted file mode 100644 index 081206f1cb..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/frag/spec-constant-ternary.vk.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 - -#ifndef SPIRV_CROSS_CONSTANT_ID_0 -#define SPIRV_CROSS_CONSTANT_ID_0 10u -#endif -const uint s = SPIRV_CROSS_CONSTANT_ID_0; -const bool _13 = (s > 20u); -const uint f = _13 ? 30u : 50u; - -layout(location = 0) out float FragColor; - -void main() -{ - FragColor = float(f); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/frag/spec-constant-ternary.vk.frag.vk b/third_party/spirv-cross/reference/shaders/vulkan/frag/spec-constant-ternary.vk.frag.vk deleted file mode 100644 index 34bfea0260..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/frag/spec-constant-ternary.vk.frag.vk +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 - -layout(constant_id = 0) const uint s = 10u; -const bool _13 = (s > 20u); -const uint f = _13 ? 30u : 50u; - -layout(location = 0) out float FragColor; - -void main() -{ - FragColor = float(f); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rahit/terminators.khr.spv14.nocompat.vk.rahit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rahit/terminators.khr.spv14.nocompat.vk.rahit.vk deleted file mode 100644 index 4cb6bf8d8f..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rahit/terminators.khr.spv14.nocompat.vk.rahit.vk +++ /dev/null @@ -1,22 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT float payload; - -void in_func() -{ - if (payload > 0.0) - { - ignoreIntersectionEXT; - } - else - { - terminateRayEXT; - } -} - -void main() -{ - in_func(); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rahit/terminators.nocompat.vk.rahit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rahit/terminators.nocompat.vk.rahit.vk deleted file mode 100644 index cee09bc0ea..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rahit/terminators.nocompat.vk.rahit.vk +++ /dev/null @@ -1,22 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -rayPayloadInNV float payload; - -void in_func() -{ - if (payload > 0.0) - { - ignoreIntersectionNV(); - } - else - { - terminateRayNV(); - } -} - -void main() -{ - in_func(); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rcall/incoming-callable.khr.spv14.nocompat.vk.rcall.vk b/third_party/spirv-cross/reference/shaders/vulkan/rcall/incoming-callable.khr.spv14.nocompat.vk.rcall.vk deleted file mode 100644 index 5adfac164f..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rcall/incoming-callable.khr.spv14.nocompat.vk.rcall.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) callableDataInEXT float c; - -void main() -{ - executeCallableEXT(10u, 0); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_attribute_block.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_attribute_block.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index b6c1876d31..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_attribute_block.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,24 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -struct Foo -{ - float a; - float b; -}; - -struct Foo2 -{ - float a; - float b; -}; - -layout(location = 0) rayPayloadInEXT Foo payload; -hitAttributeEXT Foo2 hit; - -void main() -{ - payload.a = hit.a; - payload.b = hit.b; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_attribute_block.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_attribute_block.nocompat.vk.rchit.vk deleted file mode 100644 index 614a04d95e..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_attribute_block.nocompat.vk.rchit.vk +++ /dev/null @@ -1,24 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -struct Foo -{ - float a; - float b; -}; - -struct Foo2 -{ - float a; - float b; -}; - -layout(location = 0) rayPayloadInNV Foo payload; -hitAttributeNV Foo2 hit; - -void main() -{ - payload.a = hit.a; - payload.b = hit.b; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_attribute_block_in_function.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_attribute_block_in_function.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index 56e8ff4aa3..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_attribute_block_in_function.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,29 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -struct Foo -{ - float a; - float b; -}; - -struct Foo2 -{ - float a; - float b; -}; - -layout(location = 0) rayPayloadInEXT Foo payload; -hitAttributeEXT Foo2 hit; - -void in_function() -{ - payload.a = hit.a; - payload.b = hit.b; -} - -void main() -{ - in_function(); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_attribute_block_in_function.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_attribute_block_in_function.nocompat.vk.rchit.vk deleted file mode 100644 index e747bb29d0..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_attribute_block_in_function.nocompat.vk.rchit.vk +++ /dev/null @@ -1,29 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -struct Foo -{ - float a; - float b; -}; - -struct Foo2 -{ - float a; - float b; -}; - -layout(location = 0) rayPayloadInNV Foo payload; -hitAttributeNV Foo2 hit; - -void in_function() -{ - payload.a = hit.a; - payload.b = hit.b; -} - -void main() -{ - in_function(); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_attribute_plain.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_attribute_plain.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index eeccd3bb09..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_attribute_plain.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,11 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT vec2 payload; -hitAttributeEXT vec2 hit; - -void main() -{ - payload = hit; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_attribute_plain.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_attribute_plain.nocompat.vk.rchit.vk deleted file mode 100644 index 908d96344f..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_attribute_plain.nocompat.vk.rchit.vk +++ /dev/null @@ -1,11 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV vec2 payload; -hitAttributeNV vec2 hit; - -void main() -{ - payload = hit; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_attribute_struct.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_attribute_struct.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index a51e6b088f..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_attribute_struct.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,17 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -struct Foo -{ - float a; - float b; -}; - -layout(location = 0) rayPayloadInEXT Foo payload; -hitAttributeEXT Foo hit; - -void main() -{ - payload = hit; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_attribute_struct.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_attribute_struct.nocompat.vk.rchit.vk deleted file mode 100644 index 133bdfc1d9..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_attribute_struct.nocompat.vk.rchit.vk +++ /dev/null @@ -1,17 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -struct Foo -{ - float a; - float b; -}; - -layout(location = 0) rayPayloadInNV Foo payload; -hitAttributeNV Foo hit; - -void main() -{ - payload = hit; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_kind.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_kind.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index e4e0103ddb..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_kind.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT uint payload; - -void main() -{ - payload = gl_HitKindEXT; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_kind.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_kind.nocompat.vk.rchit.vk deleted file mode 100644 index 64f79a8dce..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_kind.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV uint payload; - -void main() -{ - payload = gl_HitKindNV; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_t.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_t.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index e94e3323c9..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_t.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT float payload; - -void main() -{ - payload = gl_RayTmaxEXT; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_t.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_t.nocompat.vk.rchit.vk deleted file mode 100644 index 9004a00c40..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/hit_t.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV float payload; - -void main() -{ - payload = gl_HitTNV; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/incoming_ray_flags.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/incoming_ray_flags.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index a013baa11d..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/incoming_ray_flags.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT uint payload; - -void main() -{ - payload = gl_IncomingRayFlagsEXT; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/incoming_ray_flags.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/incoming_ray_flags.nocompat.vk.rchit.vk deleted file mode 100644 index d17ab8ce76..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/incoming_ray_flags.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV uint payload; - -void main() -{ - payload = gl_IncomingRayFlagsNV; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/instance_custom_id.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/instance_custom_id.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index e28af5d252..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/instance_custom_id.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT uint payload; - -void main() -{ - payload = uint(gl_InstanceCustomIndexEXT); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/instance_custom_id.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/instance_custom_id.nocompat.vk.rchit.vk deleted file mode 100644 index 531a1fc284..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/instance_custom_id.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV uint payload; - -void main() -{ - payload = uint(gl_InstanceCustomIndexNV); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/instance_id.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/instance_id.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index 0413e0d234..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/instance_id.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT uint payload; - -void main() -{ - payload = uint(gl_InstanceID); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/instance_id.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/instance_id.nocompat.vk.rchit.vk deleted file mode 100644 index ff551db7c9..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/instance_id.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV uint payload; - -void main() -{ - payload = uint(gl_InstanceID); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/object_ray_direction.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/object_ray_direction.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index 237d4790e5..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/object_ray_direction.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT vec3 payload; - -void main() -{ - payload = gl_ObjectRayDirectionEXT; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/object_ray_direction.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/object_ray_direction.nocompat.vk.rchit.vk deleted file mode 100644 index 01afa0e067..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/object_ray_direction.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV vec3 payload; - -void main() -{ - payload = gl_ObjectRayDirectionNV; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/object_ray_origin.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/object_ray_origin.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index 5739ac09ff..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/object_ray_origin.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT vec3 payload; - -void main() -{ - payload = gl_ObjectRayOriginEXT; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/object_ray_origin.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/object_ray_origin.nocompat.vk.rchit.vk deleted file mode 100644 index a49e17a173..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/object_ray_origin.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV vec3 payload; - -void main() -{ - payload = gl_ObjectRayOriginNV; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/object_to_world.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/object_to_world.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index 7922e1efbf..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/object_to_world.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT vec3 payload; - -void main() -{ - payload = gl_ObjectToWorldEXT * vec4(payload, 1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/object_to_world.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/object_to_world.nocompat.vk.rchit.vk deleted file mode 100644 index fc2c5ed0c2..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/object_to_world.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV vec3 payload; - -void main() -{ - payload = gl_ObjectToWorldNV * vec4(payload, 1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/payloads.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/payloads.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index e896816ec3..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/payloads.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,20 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -struct Payload -{ - vec4 a; -}; - -layout(location = 0) rayPayloadInEXT Payload payload; - -void write_incoming_payload_in_function() -{ - payload.a = vec4(10.0); -} - -void main() -{ - write_incoming_payload_in_function(); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/payloads.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/payloads.nocompat.vk.rchit.vk deleted file mode 100644 index a3ddd56b17..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/payloads.nocompat.vk.rchit.vk +++ /dev/null @@ -1,20 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -struct Payload -{ - vec4 a; -}; - -layout(location = 0) rayPayloadInNV Payload payload; - -void write_incoming_payload_in_function() -{ - payload.a = vec4(10.0); -} - -void main() -{ - write_incoming_payload_in_function(); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/primitive_id.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/primitive_id.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index 667c015e8d..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/primitive_id.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT uint payload; - -void main() -{ - payload = uint(gl_PrimitiveID); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/primitive_id.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/primitive_id.nocompat.vk.rchit.vk deleted file mode 100644 index d3b0ef1942..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/primitive_id.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV uint payload; - -void main() -{ - payload = uint(gl_PrimitiveID); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/ray_tmax.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/ray_tmax.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index e94e3323c9..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/ray_tmax.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT float payload; - -void main() -{ - payload = gl_RayTmaxEXT; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/ray_tmax.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/ray_tmax.nocompat.vk.rchit.vk deleted file mode 100644 index 769c96ad6b..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/ray_tmax.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV float payload; - -void main() -{ - payload = gl_RayTmaxNV; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/ray_tmin.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/ray_tmin.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index 04b8954950..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/ray_tmin.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT float payload; - -void main() -{ - payload = gl_RayTminEXT; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/ray_tmin.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/ray_tmin.nocompat.vk.rchit.vk deleted file mode 100644 index 2709899a13..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/ray_tmin.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV float payload; - -void main() -{ - payload = gl_RayTminNV; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/ray_tracing.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/ray_tracing.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index 05af948b37..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/ray_tracing.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT float payload; - -void main() -{ - payload = 1.0 + float(gl_InstanceID); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/ray_tracing.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/ray_tracing.nocompat.vk.rchit.vk deleted file mode 100644 index 103fd66b80..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/ray_tracing.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV float payload; - -void main() -{ - payload = 1.0 + float(gl_InstanceID); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/world_ray_direction.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/world_ray_direction.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index 68ba2bafa5..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/world_ray_direction.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT vec3 payload; - -void main() -{ - payload = gl_WorldRayDirectionEXT; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/world_ray_direction.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/world_ray_direction.nocompat.vk.rchit.vk deleted file mode 100644 index 4acf03e064..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/world_ray_direction.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV vec3 payload; - -void main() -{ - payload = gl_WorldRayDirectionNV; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/world_ray_origin.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/world_ray_origin.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index a5c6766e05..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/world_ray_origin.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT vec3 payload; - -void main() -{ - payload = gl_WorldRayOriginEXT; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/world_ray_origin.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/world_ray_origin.nocompat.vk.rchit.vk deleted file mode 100644 index 70241f2362..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/world_ray_origin.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV vec3 payload; - -void main() -{ - payload = gl_WorldRayOriginNV; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/world_to_object.khr.spv14.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/world_to_object.khr.spv14.nocompat.vk.rchit.vk deleted file mode 100644 index 309ca4c6f1..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/world_to_object.khr.spv14.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT vec3 payload; - -void main() -{ - payload = gl_WorldToObjectEXT * vec4(payload, 1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rchit/world_to_object.nocompat.vk.rchit.vk b/third_party/spirv-cross/reference/shaders/vulkan/rchit/world_to_object.nocompat.vk.rchit.vk deleted file mode 100644 index 0b93e38acd..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rchit/world_to_object.nocompat.vk.rchit.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV vec3 payload; - -void main() -{ - payload = gl_WorldToObjectNV * vec4(payload, 1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rgen/convert-u-to-as.spv14.vk.nocompat.rgen.vk b/third_party/spirv-cross/reference/shaders/vulkan/rgen/convert-u-to-as.spv14.vk.nocompat.rgen.vk deleted file mode 100644 index d131b0aa80..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rgen/convert-u-to-as.spv14.vk.nocompat.rgen.vk +++ /dev/null @@ -1,17 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(push_constant, std430) uniform Registers -{ - uvec2 ptr; -} _19; - -layout(location = 0) rayPayloadEXT vec4 payload; - -void main() -{ - vec3 origin = vec3(0.0); - vec3 direction = vec3(0.0, 0.0, -1.0); - traceRayEXT(accelerationStructureEXT(_19.ptr), 1u, 255u, 0u, 0u, 0u, origin, 0.0, direction, 100.0, 0); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rgen/execute_callable.nocompat.khr.spv14.vk.rgen.vk b/third_party/spirv-cross/reference/shaders/vulkan/rgen/execute_callable.nocompat.khr.spv14.vk.rgen.vk deleted file mode 100644 index 8bb3d0070b..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rgen/execute_callable.nocompat.khr.spv14.vk.rgen.vk +++ /dev/null @@ -1,17 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(set = 0, binding = 0) uniform accelerationStructureEXT as; -layout(location = 0) rayPayloadEXT vec4 payload; -layout(location = 1) callableDataEXT float blend; -layout(set = 0, binding = 1, rgba32f) uniform writeonly image2D image; - -void main() -{ - vec3 origin = vec3(0.0); - vec3 direction = vec3(0.0, 0.0, -1.0); - traceRayEXT(as, 1u, 255u, 0u, 0u, 0u, origin, 0.0, direction, 100.0, 0); - executeCallableEXT(0u, 1); - imageStore(image, ivec2(gl_LaunchIDEXT.xy), payload + vec4(blend)); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rgen/execute_callable.nocompat.vk.rgen.vk b/third_party/spirv-cross/reference/shaders/vulkan/rgen/execute_callable.nocompat.vk.rgen.vk deleted file mode 100644 index d8c5796736..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rgen/execute_callable.nocompat.vk.rgen.vk +++ /dev/null @@ -1,17 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(set = 0, binding = 0) uniform accelerationStructureNV as; -layout(set = 0, binding = 1, rgba32f) uniform writeonly image2D image; -layout(location = 0) rayPayloadNV vec4 payload; -layout(location = 0) callableDataNV float blend; - -void main() -{ - vec3 origin = vec3(0.0); - vec3 direction = vec3(0.0, 0.0, -1.0); - traceNV(as, 1u, 255u, 0u, 0u, 0u, origin, 0.0, direction, 100.0, 0); - executeCallableNV(0u, 0); - imageStore(image, ivec2(gl_LaunchIDNV.xy), payload + vec4(blend)); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rgen/launch_id.khr.spv14.nocompat.vk.rgen.vk b/third_party/spirv-cross/reference/shaders/vulkan/rgen/launch_id.khr.spv14.nocompat.vk.rgen.vk deleted file mode 100644 index 1614c49626..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rgen/launch_id.khr.spv14.nocompat.vk.rgen.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(set = 0, binding = 0) uniform writeonly image2D uImage; - -void main() -{ - imageStore(uImage, ivec2(gl_LaunchIDEXT.xy), vec4(1.0)); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rgen/launch_id.nocompat.vk.rgen.vk b/third_party/spirv-cross/reference/shaders/vulkan/rgen/launch_id.nocompat.vk.rgen.vk deleted file mode 100644 index f907e6fd60..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rgen/launch_id.nocompat.vk.rgen.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(set = 0, binding = 0) uniform writeonly image2D uImage; - -void main() -{ - imageStore(uImage, ivec2(gl_LaunchIDNV.xy), vec4(1.0)); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rgen/launch_size.khr.spv14.nocompat.vk.rgen.vk b/third_party/spirv-cross/reference/shaders/vulkan/rgen/launch_size.khr.spv14.nocompat.vk.rgen.vk deleted file mode 100644 index 240e93daa4..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rgen/launch_size.khr.spv14.nocompat.vk.rgen.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(set = 0, binding = 0) uniform writeonly image2D uImage; - -void main() -{ - imageStore(uImage, ivec2(gl_LaunchSizeEXT.xy) - ivec2(1), vec4(1.0)); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rgen/launch_size.nocompat.vk.rgen.vk b/third_party/spirv-cross/reference/shaders/vulkan/rgen/launch_size.nocompat.vk.rgen.vk deleted file mode 100644 index 08992c6319..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rgen/launch_size.nocompat.vk.rgen.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(set = 0, binding = 0) uniform writeonly image2D uImage; - -void main() -{ - imageStore(uImage, ivec2(gl_LaunchSizeNV.xy) - ivec2(1), vec4(1.0)); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rgen/payloads.khr.spv14.nocompat.vk.rgen.vk b/third_party/spirv-cross/reference/shaders/vulkan/rgen/payloads.khr.spv14.nocompat.vk.rgen.vk deleted file mode 100644 index 7885f4f3d3..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rgen/payloads.khr.spv14.nocompat.vk.rgen.vk +++ /dev/null @@ -1,47 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -struct Payload -{ - float a; - float b; -}; - -struct Block -{ - float a; - float b; - Payload c; - Payload d; -}; - -layout(set = 0, binding = 1) uniform accelerationStructureEXT as; -layout(location = 0) rayPayloadEXT Payload payload2; -layout(location = 1) rayPayloadEXT float payload1; -layout(location = 2) rayPayloadEXT Block _71; -layout(set = 0, binding = 0, rgba8) uniform writeonly image2D image; - -vec4 trace_in_function() -{ - vec4 result = vec4(0.0); - vec3 origin = vec3(1.0, 0.0, 0.0); - vec3 direction = vec3(0.0, 1.0, 0.0); - traceRayEXT(as, 0u, 255u, 0u, 1u, 0u, origin, 0.0, direction, 1000.0, 0); - result += vec4(payload2.a); - result += vec4(payload2.b); - return result; -} - -void main() -{ - vec3 origin = vec3(1.0, 0.0, 0.0); - vec3 direction = vec3(0.0, 1.0, 0.0); - traceRayEXT(as, 0u, 255u, 0u, 1u, 0u, origin, 0.0, direction, 1000.0, 1); - vec4 result = vec4(payload1); - vec4 _62 = trace_in_function(); - result += _62; - traceRayEXT(as, 0u, 255u, 0u, 1u, 0u, origin, 0.0, direction, 1000.0, 2); - result += vec4(((((_71.a + _71.b) + _71.c.a) + _71.c.b) + _71.d.a) + _71.d.b); - imageStore(image, ivec2(gl_LaunchIDEXT.xy), result); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rgen/payloads.nocompat.vk.rgen.vk b/third_party/spirv-cross/reference/shaders/vulkan/rgen/payloads.nocompat.vk.rgen.vk deleted file mode 100644 index 5d6b24c601..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rgen/payloads.nocompat.vk.rgen.vk +++ /dev/null @@ -1,47 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -struct Payload -{ - float a; - float b; -}; - -struct Block -{ - float a; - float b; - Payload c; - Payload d; -}; - -layout(set = 0, binding = 1) uniform accelerationStructureNV as; -layout(location = 1) rayPayloadNV Payload payload2; -layout(location = 0) rayPayloadNV float payload1; -layout(location = 2) rayPayloadNV Block _71; -layout(set = 0, binding = 0, rgba8) uniform writeonly image2D image; - -vec4 trace_in_function() -{ - vec4 result = vec4(0.0); - vec3 origin = vec3(1.0, 0.0, 0.0); - vec3 direction = vec3(0.0, 1.0, 0.0); - traceNV(as, 0u, 255u, 0u, 1u, 0u, origin, 0.0, direction, 1000.0, 1); - result += vec4(payload2.a); - result += vec4(payload2.b); - return result; -} - -void main() -{ - vec3 origin = vec3(1.0, 0.0, 0.0); - vec3 direction = vec3(0.0, 1.0, 0.0); - traceNV(as, 0u, 255u, 0u, 1u, 0u, origin, 0.0, direction, 1000.0, 0); - vec4 result = vec4(payload1); - vec4 _62 = trace_in_function(); - result += _62; - traceNV(as, 0u, 255u, 0u, 1u, 0u, origin, 0.0, direction, 1000.0, 2); - result += vec4(((((_71.a + _71.b) + _71.c.a) + _71.c.b) + _71.d.a) + _71.d.b); - imageStore(image, ivec2(gl_LaunchIDNV.xy), result); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rgen/pure_call.khr.spv14.nocompat.vk.rgen.vk b/third_party/spirv-cross/reference/shaders/vulkan/rgen/pure_call.khr.spv14.nocompat.vk.rgen.vk deleted file mode 100644 index 71e04d670b..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rgen/pure_call.khr.spv14.nocompat.vk.rgen.vk +++ /dev/null @@ -1,21 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(set = 0, binding = 1) uniform accelerationStructureEXT as; -layout(location = 0) rayPayloadEXT float payload; - -float pure_call(vec2 launchID, vec2 launchSize) -{ - vec3 origin = vec3(launchID.x / launchSize.x, launchID.y / launchSize.y, 1.0); - vec3 direction = vec3(0.0, 0.0, -1.0); - traceRayEXT(as, 0u, 255u, 0u, 1u, 0u, origin, 0.0, direction, 1000.0, 0); - return 0.0; -} - -void main() -{ - vec2 param = vec2(gl_LaunchIDEXT.xy); - vec2 param_1 = vec2(gl_LaunchSizeEXT.xy); - float _64 = pure_call(param, param_1); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rgen/pure_call.nocompat.vk.rgen.vk b/third_party/spirv-cross/reference/shaders/vulkan/rgen/pure_call.nocompat.vk.rgen.vk deleted file mode 100644 index 55e301ab29..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rgen/pure_call.nocompat.vk.rgen.vk +++ /dev/null @@ -1,21 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(set = 0, binding = 1) uniform accelerationStructureNV as; -layout(location = 0) rayPayloadNV float payload; - -float pure_call(vec2 launchID, vec2 launchSize) -{ - vec3 origin = vec3(launchID.x / launchSize.x, launchID.y / launchSize.y, 1.0); - vec3 direction = vec3(0.0, 0.0, -1.0); - traceNV(as, 0u, 255u, 0u, 1u, 0u, origin, 0.0, direction, 1000.0, 0); - return 0.0; -} - -void main() -{ - vec2 param = vec2(gl_LaunchIDNV.xy); - vec2 param_1 = vec2(gl_LaunchSizeNV.xy); - float _62 = pure_call(param, param_1); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rgen/ray_tracing.khr.spv14.nocompat.vk.rgen.vk b/third_party/spirv-cross/reference/shaders/vulkan/rgen/ray_tracing.khr.spv14.nocompat.vk.rgen.vk deleted file mode 100644 index 67deac226d..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rgen/ray_tracing.khr.spv14.nocompat.vk.rgen.vk +++ /dev/null @@ -1,17 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(set = 0, binding = 1) uniform accelerationStructureEXT as; -layout(location = 0) rayPayloadEXT float payload; -layout(set = 0, binding = 0, rgba8) uniform writeonly image2D image; - -void main() -{ - vec4 col = vec4(0.0, 0.0, 0.0, 1.0); - vec3 origin = vec3(float(gl_LaunchIDEXT.x) / float(gl_LaunchSizeEXT.x), float(gl_LaunchIDEXT.y) / float(gl_LaunchSizeEXT.y), 1.0); - vec3 direction = vec3(0.0, 0.0, -1.0); - traceRayEXT(as, 0u, 255u, 0u, 1u, 0u, origin, 0.0, direction, 1000.0, 0); - col.y = payload; - imageStore(image, ivec2(gl_LaunchIDEXT.xy), col); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rgen/ray_tracing.nocompat.vk.rgen.vk b/third_party/spirv-cross/reference/shaders/vulkan/rgen/ray_tracing.nocompat.vk.rgen.vk deleted file mode 100644 index 9c9e4849b5..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rgen/ray_tracing.nocompat.vk.rgen.vk +++ /dev/null @@ -1,17 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(set = 0, binding = 1) uniform accelerationStructureNV as; -layout(location = 0) rayPayloadNV float payload; -layout(set = 0, binding = 0, rgba8) uniform writeonly image2D image; - -void main() -{ - vec4 col = vec4(0.0, 0.0, 0.0, 1.0); - vec3 origin = vec3(float(gl_LaunchIDNV.x) / float(gl_LaunchSizeNV.x), float(gl_LaunchIDNV.y) / float(gl_LaunchSizeNV.y), 1.0); - vec3 direction = vec3(0.0, 0.0, -1.0); - traceNV(as, 0u, 255u, 0u, 1u, 0u, origin, 0.0, direction, 1000.0, 0); - col.y = payload; - imageStore(image, ivec2(gl_LaunchIDNV.xy), col); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rgen/shader_record_buffer.khr.spv14.nocompat.vk.rgen.vk b/third_party/spirv-cross/reference/shaders/vulkan/rgen/shader_record_buffer.khr.spv14.nocompat.vk.rgen.vk deleted file mode 100644 index 3056e8ad28..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rgen/shader_record_buffer.khr.spv14.nocompat.vk.rgen.vk +++ /dev/null @@ -1,17 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(shaderRecordEXT, std430) buffer sbt -{ - vec3 direction; - float tmax; -} _20; - -layout(set = 0, binding = 0) uniform accelerationStructureEXT as; -layout(location = 0) rayPayloadEXT float payload; - -void main() -{ - traceRayEXT(as, 0u, 255u, 0u, 1u, 0u, vec3(0.0), 0.0, _20.direction, _20.tmax, 0); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rgen/shader_record_buffer.nocompat.vk.rgen.vk b/third_party/spirv-cross/reference/shaders/vulkan/rgen/shader_record_buffer.nocompat.vk.rgen.vk deleted file mode 100644 index 058ccf9a64..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rgen/shader_record_buffer.nocompat.vk.rgen.vk +++ /dev/null @@ -1,17 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(shaderRecordNV, std430) buffer sbt -{ - vec3 direction; - float tmax; -} _20; - -layout(set = 0, binding = 0) uniform accelerationStructureNV as; -layout(location = 0) rayPayloadNV float payload; - -void main() -{ - traceNV(as, 0u, 255u, 0u, 1u, 0u, vec3(0.0), 0.0, _20.direction, _20.tmax, 0); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rint/report-intersection.khr.spv14.nocompat.vk.rint.vk b/third_party/spirv-cross/reference/shaders/vulkan/rint/report-intersection.khr.spv14.nocompat.vk.rint.vk deleted file mode 100644 index 761609a812..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rint/report-intersection.khr.spv14.nocompat.vk.rint.vk +++ /dev/null @@ -1,13 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -void in_func() -{ - bool _13 = reportIntersectionEXT(0.5, 10u); -} - -void main() -{ - in_func(); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rint/report-intersection.nocompat.vk.rint.vk b/third_party/spirv-cross/reference/shaders/vulkan/rint/report-intersection.nocompat.vk.rint.vk deleted file mode 100644 index c99b78495a..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rint/report-intersection.nocompat.vk.rint.vk +++ /dev/null @@ -1,13 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -void in_func() -{ - bool _13 = reportIntersectionNV(0.5, 10u); -} - -void main() -{ - in_func(); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rmiss/ray_tracing.khr.spv14.nocompat.vk.rmiss.vk b/third_party/spirv-cross/reference/shaders/vulkan/rmiss/ray_tracing.khr.spv14.nocompat.vk.rmiss.vk deleted file mode 100644 index c055a26814..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rmiss/ray_tracing.khr.spv14.nocompat.vk.rmiss.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT float payload; - -void main() -{ - payload = 0.0; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rmiss/ray_tracing.nocompat.vk.rmiss.vk b/third_party/spirv-cross/reference/shaders/vulkan/rmiss/ray_tracing.nocompat.vk.rmiss.vk deleted file mode 100644 index ec3072a0e2..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rmiss/ray_tracing.nocompat.vk.rmiss.vk +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV float payload; - -void main() -{ - payload = 0.0; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/rmiss/ray_tracing_trace_incoming.khr.spv14.nocompat.vk.rmiss.vk b/third_party/spirv-cross/reference/shaders/vulkan/rmiss/ray_tracing_trace_incoming.khr.spv14.nocompat.vk.rmiss.vk deleted file mode 100644 index 696c998c27..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/rmiss/ray_tracing_trace_incoming.khr.spv14.nocompat.vk.rmiss.vk +++ /dev/null @@ -1,13 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(set = 0, binding = 0) uniform accelerationStructureEXT as; -layout(location = 0) rayPayloadInEXT float p; - -void main() -{ - vec3 origin = vec3(float(gl_LaunchIDEXT.x) / float(gl_LaunchSizeEXT.x), float(gl_LaunchIDEXT.y) / float(gl_LaunchSizeEXT.y), 1.0); - vec3 direction = vec3(0.0, 0.0, -1.0); - traceRayEXT(as, 0u, 255u, 0u, 1u, 0u, origin, 0.0, direction, 1000.0, 0); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/vert/device-group.nocompat.vk.vert.vk b/third_party/spirv-cross/reference/shaders/vulkan/vert/device-group.nocompat.vk.vert.vk deleted file mode 100644 index 9cadcdb6dc..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/vert/device-group.nocompat.vk.vert.vk +++ /dev/null @@ -1,8 +0,0 @@ -#version 450 -#extension GL_EXT_device_group : require - -void main() -{ - gl_Position = vec4(float(gl_DeviceIndex)); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/vert/multiview.nocompat.vk.vert.vk b/third_party/spirv-cross/reference/shaders/vulkan/vert/multiview.nocompat.vk.vert.vk deleted file mode 100644 index 90055473d9..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/vert/multiview.nocompat.vk.vert.vk +++ /dev/null @@ -1,15 +0,0 @@ -#version 310 es -#extension GL_EXT_multiview : require - -layout(set = 0, binding = 0, std140) uniform MVPs -{ - mat4 MVP[2]; -} _19; - -layout(location = 0) in vec4 Position; - -void main() -{ - gl_Position = _19.MVP[gl_ViewIndex] * Position; -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/vert/small-storage.vk.vert b/third_party/spirv-cross/reference/shaders/vulkan/vert/small-storage.vk.vert deleted file mode 100644 index 610618d5b9..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/vert/small-storage.vk.vert +++ /dev/null @@ -1,61 +0,0 @@ -#version 450 -#if defined(GL_AMD_gpu_shader_int16) -#extension GL_AMD_gpu_shader_int16 : require -#elif defined(GL_NV_gpu_shader5) -#extension GL_NV_gpu_shader5 : require -#else -#error No extension available for Int16. -#endif -#extension GL_EXT_shader_explicit_arithmetic_types_int8 : require -#if defined(GL_AMD_gpu_shader_half_float) -#extension GL_AMD_gpu_shader_half_float : require -#elif defined(GL_NV_gpu_shader5) -#extension GL_NV_gpu_shader5 : require -#else -#error No extension available for FP16. -#endif - -layout(binding = 0, std140) uniform block -{ - i16vec2 a; - u16vec2 b; - i8vec2 c; - u8vec2 d; - f16vec2 e; -} _26; - -layout(binding = 1, std430) readonly buffer storage -{ - i16vec3 f; - u16vec3 g; - i8vec3 h; - u8vec3 i; - f16vec3 j; -} _53; - -struct pushconst -{ - i16vec4 k; - u16vec4 l; - i8vec4 m; - u8vec4 n; - f16vec4 o; -}; - -uniform pushconst _76; - -layout(location = 0) out i16vec4 p; -layout(location = 0, component = 0) in int16_t foo; -layout(location = 1) out u16vec4 q; -layout(location = 0, component = 1) in uint16_t bar; -layout(location = 2) out f16vec4 r; -layout(location = 1) in float16_t baz; - -void main() -{ - p = i16vec4((((ivec4(int(foo)) + ivec4(ivec2(_26.a), ivec2(_26.c))) - ivec4(ivec3(_53.f) / ivec3(_53.h), 1)) + ivec4(_76.k)) + ivec4(_76.m)); - q = u16vec4((((uvec4(uint(bar)) + uvec4(uvec2(_26.b), uvec2(_26.d))) - uvec4(uvec3(_53.g) / uvec3(_53.i), 1u)) + uvec4(_76.l)) + uvec4(_76.n)); - r = f16vec4(((vec4(float(baz)) + vec4(vec2(_26.e), 0.0, 1.0)) - vec4(vec3(_53.j), 1.0)) + vec4(_76.o)); - gl_Position = vec4(0.0, 0.0, 0.0, 1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/vert/small-storage.vk.vert.vk b/third_party/spirv-cross/reference/shaders/vulkan/vert/small-storage.vk.vert.vk deleted file mode 100644 index caec60a2c1..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/vert/small-storage.vk.vert.vk +++ /dev/null @@ -1,55 +0,0 @@ -#version 450 -#extension GL_EXT_shader_explicit_arithmetic_types_int16 : require -#extension GL_EXT_shader_16bit_storage : require -#extension GL_EXT_shader_explicit_arithmetic_types_int8 : require -#extension GL_EXT_shader_8bit_storage : require -#if defined(GL_AMD_gpu_shader_half_float) -#extension GL_AMD_gpu_shader_half_float : require -#elif defined(GL_EXT_shader_explicit_arithmetic_types_float16) -#extension GL_EXT_shader_explicit_arithmetic_types_float16 : require -#else -#error No extension available for FP16. -#endif - -layout(set = 0, binding = 0, std140) uniform block -{ - i16vec2 a; - u16vec2 b; - i8vec2 c; - u8vec2 d; - f16vec2 e; -} _26; - -layout(set = 0, binding = 1, std430) readonly buffer storage -{ - i16vec3 f; - u16vec3 g; - i8vec3 h; - u8vec3 i; - f16vec3 j; -} _53; - -layout(push_constant, std430) uniform pushconst -{ - i16vec4 k; - u16vec4 l; - i8vec4 m; - u8vec4 n; - f16vec4 o; -} _76; - -layout(location = 0) out i16vec4 p; -layout(location = 0, component = 0) in int16_t foo; -layout(location = 1) out u16vec4 q; -layout(location = 0, component = 1) in uint16_t bar; -layout(location = 2) out f16vec4 r; -layout(location = 1) in float16_t baz; - -void main() -{ - p = i16vec4((((ivec4(int(foo)) + ivec4(ivec2(_26.a), ivec2(_26.c))) - ivec4(ivec3(_53.f) / ivec3(_53.h), 1)) + ivec4(_76.k)) + ivec4(_76.m)); - q = u16vec4((((uvec4(uint(bar)) + uvec4(uvec2(_26.b), uvec2(_26.d))) - uvec4(uvec3(_53.g) / uvec3(_53.i), 1u)) + uvec4(_76.l)) + uvec4(_76.n)); - r = f16vec4(((vec4(float(baz)) + vec4(vec2(_26.e), 0.0, 1.0)) - vec4(vec3(_53.j), 1.0)) + vec4(_76.o)); - gl_Position = vec4(0.0, 0.0, 0.0, 1.0); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/vert/vulkan-vertex.vk.vert b/third_party/spirv-cross/reference/shaders/vulkan/vert/vulkan-vertex.vk.vert deleted file mode 100644 index d939aa625c..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/vert/vulkan-vertex.vk.vert +++ /dev/null @@ -1,16 +0,0 @@ -#version 310 es -#ifdef GL_ARB_shader_draw_parameters -#extension GL_ARB_shader_draw_parameters : enable -#endif - -#ifdef GL_ARB_shader_draw_parameters -#define SPIRV_Cross_BaseInstance gl_BaseInstanceARB -#else -uniform int SPIRV_Cross_BaseInstance; -#endif - -void main() -{ - gl_Position = vec4(1.0, 2.0, 3.0, 4.0) * float(gl_VertexID + (gl_InstanceID + SPIRV_Cross_BaseInstance)); -} - diff --git a/third_party/spirv-cross/reference/shaders/vulkan/vert/vulkan-vertex.vk.vert.vk b/third_party/spirv-cross/reference/shaders/vulkan/vert/vulkan-vertex.vk.vert.vk deleted file mode 100644 index 8c4930d7a8..0000000000 --- a/third_party/spirv-cross/reference/shaders/vulkan/vert/vulkan-vertex.vk.vert.vk +++ /dev/null @@ -1,7 +0,0 @@ -#version 310 es - -void main() -{ - gl_Position = vec4(1.0, 2.0, 3.0, 4.0) * float(gl_VertexIndex + gl_InstanceIndex); -} - diff --git a/third_party/spirv-cross/samples/cpp/Makefile b/third_party/spirv-cross/samples/cpp/Makefile deleted file mode 100644 index 225bb3d57d..0000000000 --- a/third_party/spirv-cross/samples/cpp/Makefile +++ /dev/null @@ -1,28 +0,0 @@ -SOURCES := $(wildcard *.comp) -SPIRV := $(SOURCES:.comp=.spv) -CPP_INTERFACE := $(SOURCES:.comp=.spv.cpp) -CPP_DRIVER := $(SOURCES:.comp=.cpp) -EXECUTABLES := $(SOURCES:.comp=.shader) -OBJECTS := $(CPP_DRIVER:.cpp=.o) $(CPP_INTERFACE:.cpp=.o) - -CXXFLAGS += -std=c++11 -I../../include -I. -LDFLAGS += -pthread -lm - -all: $(EXECUTABLES) - -%.spv: %.comp - glslangValidator -V -o $@ $< - -%.spv.cpp: %.spv - ../../spirv-cross --cpp --output $@ $< - -%.o: %.cpp - $(CXX) -c -o $@ $< $(CXXFLAGS) - -%.shader: %.o %.spv.o - $(CXX) -o $@ $^ $(LDFLAGS) - -clean: - $(RM) -f $(EXECUTABLES) $(SPIRV) $(CPP_INTERFACE) $(OBJECTS) - -.PHONY: clean diff --git a/third_party/spirv-cross/samples/cpp/atomics.comp b/third_party/spirv-cross/samples/cpp/atomics.comp deleted file mode 100644 index 0bf6d2ad01..0000000000 --- a/third_party/spirv-cross/samples/cpp/atomics.comp +++ /dev/null @@ -1,29 +0,0 @@ -#version 310 es -layout(local_size_x = 64) in; - -layout(set = 0, binding = 0, std430) readonly buffer SSBO0 -{ - float inputs[]; -}; - -layout(set = 0, binding = 1, std430) writeonly buffer SSBO1 -{ - float outputs[]; -}; - -layout(set = 0, binding = 2, std430) buffer SSBO2 -{ - uint counter; -}; - -void main() -{ - // Builds a tightly packed list of all values less than 10.0. - // The output order is random. - float value = inputs[gl_GlobalInvocationID.x]; - if (value < 10.0) - { - uint output_index = atomicAdd(counter, 1u); - outputs[output_index] = value; - } -} diff --git a/third_party/spirv-cross/samples/cpp/atomics.cpp b/third_party/spirv-cross/samples/cpp/atomics.cpp deleted file mode 100644 index 89351a5ae5..0000000000 --- a/third_party/spirv-cross/samples/cpp/atomics.cpp +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright 2015-2017 ARM Limited - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "spirv_cross/external_interface.h" -#include - -#ifndef GLM_SWIZZLE -#define GLM_SWIZZLE -#endif - -#ifndef GLM_FORCE_RADIANS -#define GLM_FORCE_RADIANS -#endif - -#include -using namespace glm; - -int main() -{ - // First, we get the C interface to the shader. - // This can be loaded from a dynamic library, or as here, - // linked in as a static library. - auto *iface = spirv_cross_get_interface(); - - // Create an instance of the shader interface. - auto *shader = iface->construct(); - -// Build some input data for our compute shader. -#define NUM_WORKGROUPS 4 - float a[64 * NUM_WORKGROUPS]; - float b[64 * NUM_WORKGROUPS] = {}; - uint32_t counter = 0; - - for (int i = 0; i < 64 * NUM_WORKGROUPS; i++) - { - a[i] = i * 0.46f; - } - - void *aptr = a; - void *bptr = b; - void *cptr = &counter; - - // Bind resources to the shader. - // For resources like samplers and buffers, we provide a list of pointers, - // since UBOs, SSBOs and samplers can be arrays, and can point to different types, - // which is especially true for samplers. - spirv_cross_set_resource(shader, 0, 0, &aptr, sizeof(aptr)); - spirv_cross_set_resource(shader, 0, 1, &bptr, sizeof(bptr)); - spirv_cross_set_resource(shader, 0, 2, &cptr, sizeof(cptr)); - - // We also have to set builtins. - // The relevant builtins will depend on the shader, - // but for compute, there are few builtins, which are gl_NumWorkGroups and gl_WorkGroupID. - // LocalInvocationID and GlobalInvocationID are inferred when executing the invocation. - uvec3 num_workgroups(NUM_WORKGROUPS, 1, 1); - uvec3 work_group_id(0, 0, 0); - spirv_cross_set_builtin(shader, SPIRV_CROSS_BUILTIN_NUM_WORK_GROUPS, &num_workgroups, sizeof(num_workgroups)); - spirv_cross_set_builtin(shader, SPIRV_CROSS_BUILTIN_WORK_GROUP_ID, &work_group_id, sizeof(work_group_id)); - - // Execute 4 work groups. - for (unsigned i = 0; i < NUM_WORKGROUPS; i++) - { - work_group_id.x = i; - iface->invoke(shader); - } - - // Call destructor. - iface->destruct(shader); - - // Verify our output. - // TODO: Implement a test framework that asserts results computed. - fprintf(stderr, "Counter = %u\n", counter); - for (unsigned i = 0; i < counter; i++) - { - fprintf(stderr, "[%3u] = %.1f\n", i, b[i]); - } -} diff --git a/third_party/spirv-cross/samples/cpp/multiply.comp b/third_party/spirv-cross/samples/cpp/multiply.comp deleted file mode 100644 index 1ac7869ad0..0000000000 --- a/third_party/spirv-cross/samples/cpp/multiply.comp +++ /dev/null @@ -1,22 +0,0 @@ -#version 310 es -layout(local_size_x = 64) in; - -layout(set = 0, binding = 0, std430) readonly buffer SSBO0 -{ - vec4 a[]; -}; - -layout(set = 0, binding = 1, std430) readonly buffer SSBO1 -{ - vec4 b[]; -}; - -layout(set = 0, binding = 2, std430) buffer SSBO2 -{ - vec4 c[]; -}; - -void main() -{ - c[gl_GlobalInvocationID.x] = a[gl_GlobalInvocationID.x] * b[gl_GlobalInvocationID.x]; -} diff --git a/third_party/spirv-cross/samples/cpp/multiply.cpp b/third_party/spirv-cross/samples/cpp/multiply.cpp deleted file mode 100644 index daa1fc6477..0000000000 --- a/third_party/spirv-cross/samples/cpp/multiply.cpp +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright 2015-2017 ARM Limited - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "spirv_cross/external_interface.h" -#include - -#ifndef GLM_SWIZZLE -#define GLM_SWIZZLE -#endif - -#ifndef GLM_FORCE_RADIANS -#define GLM_FORCE_RADIANS -#endif - -#include -using namespace glm; - -int main() -{ - // First, we get the C interface to the shader. - // This can be loaded from a dynamic library, or as here, - // linked in as a static library. - auto *iface = spirv_cross_get_interface(); - - // Create an instance of the shader interface. - auto *shader = iface->construct(); - -// Build some input data for our compute shader. -#define NUM_WORKGROUPS 4 - vec4 a[64 * NUM_WORKGROUPS]; - vec4 b[64 * NUM_WORKGROUPS]; - vec4 c[64 * NUM_WORKGROUPS] = {}; - - for (int i = 0; i < 64 * NUM_WORKGROUPS; i++) - { - a[i] = vec4(100 + i, 101 + i, 102 + i, 103 + i); - b[i] = vec4(100 - i, 99 - i, 98 - i, 97 - i); - } - - void *aptr = a; - void *bptr = b; - void *cptr = c; - - // Bind resources to the shader. - // For resources like samplers and buffers, we provide a list of pointers, - // since UBOs, SSBOs and samplers can be arrays, and can point to different types, - // which is especially true for samplers. - spirv_cross_set_resource(shader, 0, 0, &aptr, sizeof(aptr)); - spirv_cross_set_resource(shader, 0, 1, &bptr, sizeof(bptr)); - spirv_cross_set_resource(shader, 0, 2, &cptr, sizeof(cptr)); - - // We also have to set builtins. - // The relevant builtins will depend on the shader, - // but for compute, there are few builtins, which are gl_NumWorkGroups and gl_WorkGroupID. - // LocalInvocationID and GlobalInvocationID are inferred when executing the invocation. - uvec3 num_workgroups(NUM_WORKGROUPS, 1, 1); - uvec3 work_group_id(0, 0, 0); - spirv_cross_set_builtin(shader, SPIRV_CROSS_BUILTIN_NUM_WORK_GROUPS, &num_workgroups, sizeof(num_workgroups)); - spirv_cross_set_builtin(shader, SPIRV_CROSS_BUILTIN_WORK_GROUP_ID, &work_group_id, sizeof(work_group_id)); - - // Execute 4 work groups. - for (unsigned i = 0; i < NUM_WORKGROUPS; i++) - { - work_group_id.x = i; - iface->invoke(shader); - } - - // Call destructor. - iface->destruct(shader); - - // Verify our output. - // TODO: Implement a test framework that asserts results computed. - for (unsigned i = 0; i < 64 * NUM_WORKGROUPS; i++) - { - fprintf(stderr, "(%.1f, %.1f, %.1f, %.1f) * (%.1f, %.1f, %.1f, %.1f) => (%.1f, %.1f, %.1f, %.1f)\n", a[i].x, - a[i].y, a[i].z, a[i].w, b[i].x, b[i].y, b[i].z, b[i].w, c[i].x, c[i].y, c[i].z, c[i].w); - } -} diff --git a/third_party/spirv-cross/samples/cpp/shared.comp b/third_party/spirv-cross/samples/cpp/shared.comp deleted file mode 100644 index 7d59060aa9..0000000000 --- a/third_party/spirv-cross/samples/cpp/shared.comp +++ /dev/null @@ -1,36 +0,0 @@ -#version 310 es -layout(local_size_x = 64) in; - -layout(set = 0, binding = 0, std430) readonly buffer SSBO0 -{ - float inputs[]; -}; - -layout(set = 0, binding = 1, std430) writeonly buffer SSBO1 -{ - float outputs[]; -}; - -shared float tmp[gl_WorkGroupSize.x]; - -void main() -{ - uint local = gl_LocalInvocationIndex; - uint work_group = gl_WorkGroupID.x; - - // Does a trivial parallel reduction through shared memory. - tmp[local] = inputs[work_group * gl_WorkGroupSize.x * 2u + local] + inputs[work_group * gl_WorkGroupSize.x * 2u + local + gl_WorkGroupSize.x]; - memoryBarrierShared(); - barrier(); - - for (uint limit = 32u; limit > 1u; limit >>= 1u) - { - if (local < limit) - tmp[local] = tmp[local] + tmp[local + limit]; - memoryBarrierShared(); - barrier(); - } - - if (local == 0u) - outputs[work_group] = tmp[0] + tmp[1]; -} diff --git a/third_party/spirv-cross/samples/cpp/shared.cpp b/third_party/spirv-cross/samples/cpp/shared.cpp deleted file mode 100644 index 5be62d681f..0000000000 --- a/third_party/spirv-cross/samples/cpp/shared.cpp +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright 2015-2017 ARM Limited - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "spirv_cross/external_interface.h" -#include - -#ifndef GLM_SWIZZLE -#define GLM_SWIZZLE -#endif - -#ifndef GLM_FORCE_RADIANS -#define GLM_FORCE_RADIANS -#endif - -#include -using namespace glm; - -int main() -{ - // First, we get the C interface to the shader. - // This can be loaded from a dynamic library, or as here, - // linked in as a static library. - auto *iface = spirv_cross_get_interface(); - - // Create an instance of the shader interface. - auto *shader = iface->construct(); - -// Build some input data for our compute shader. -#define NUM_WORKGROUPS 4 - float a[128 * NUM_WORKGROUPS]; - float b[NUM_WORKGROUPS] = {}; - - for (int i = 0; i < 128 * NUM_WORKGROUPS; i++) - { - a[i] = float(i); - } - - void *aptr = a; - void *bptr = b; - - // Bind resources to the shader. - // For resources like samplers and buffers, we provide a list of pointers, - // since UBOs, SSBOs and samplers can be arrays, and can point to different types, - // which is especially true for samplers. - spirv_cross_set_resource(shader, 0, 0, &aptr, sizeof(aptr)); - spirv_cross_set_resource(shader, 0, 1, &bptr, sizeof(bptr)); - - // We also have to set builtins. - // The relevant builtins will depend on the shader, - // but for compute, there are few builtins, which are gl_NumWorkGroups and gl_WorkGroupID. - // LocalInvocationID and GlobalInvocationID are inferred when executing the invocation. - uvec3 num_workgroups(NUM_WORKGROUPS, 1, 1); - uvec3 work_group_id(0, 0, 0); - spirv_cross_set_builtin(shader, SPIRV_CROSS_BUILTIN_NUM_WORK_GROUPS, &num_workgroups, sizeof(num_workgroups)); - spirv_cross_set_builtin(shader, SPIRV_CROSS_BUILTIN_WORK_GROUP_ID, &work_group_id, sizeof(work_group_id)); - - // Execute 4 work groups. - for (unsigned i = 0; i < NUM_WORKGROUPS; i++) - { - work_group_id.x = i; - iface->invoke(shader); - } - - // Call destructor. - iface->destruct(shader); - - // Verify our output. - // TODO: Implement a test framework that asserts results computed. - for (unsigned i = 0; i < NUM_WORKGROUPS; i++) - { - float expected_sum = 0.0f; - for (unsigned j = i * 128; j < (i + 1) * 128; j++) - expected_sum += a[j]; - fprintf(stderr, "Sum in workgroup #%u = %.1f, expected %.1f\n", i, b[i], expected_sum); - } -} diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/access-chain-load-store-composite.asm.comp b/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/access-chain-load-store-composite.asm.comp deleted file mode 100644 index 3371e3af21..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/access-chain-load-store-composite.asm.comp +++ /dev/null @@ -1,118 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 437 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %Baz "Baz" - OpMemberName %Baz 0 "c" - OpName %Bar "Bar" - OpMemberName %Bar 0 "d" - OpMemberName %Bar 1 "baz" - OpName %Foo "Foo" - OpMemberName %Foo 0 "a" - OpMemberName %Foo 1 "b" - OpMemberName %Foo 2 "c" - OpName %Baz_0 "Baz" - OpMemberName %Baz_0 0 "c" - OpName %Bar_0 "Bar" - OpMemberName %Bar_0 0 "d" - OpMemberName %Bar_0 1 "baz" - OpName %Foo_0 "Foo" - OpMemberName %Foo_0 0 "a" - OpMemberName %Foo_0 1 "b" - OpMemberName %Foo_0 2 "c" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "foo" - OpMemberName %SSBO 1 "foo2" - OpName %_ "" - OpDecorate %_arr_float_uint_4_0 ArrayStride 4 - OpDecorate %_arr__arr_float_uint_4_0_uint_2 ArrayStride 16 - OpMemberDecorate %Baz_0 0 Offset 0 - OpDecorate %_arr_Baz_0_uint_2 ArrayStride 4 - OpMemberDecorate %Bar_0 0 Offset 0 - OpMemberDecorate %Bar_0 1 Offset 32 - OpDecorate %_arr_Bar_0_uint_5 ArrayStride 40 - OpMemberDecorate %Foo_0 0 RowMajor - OpMemberDecorate %Foo_0 0 Offset 0 - OpMemberDecorate %Foo_0 0 MatrixStride 8 - OpMemberDecorate %Foo_0 1 Offset 16 - OpMemberDecorate %Foo_0 2 Offset 24 - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %SSBO 1 Offset 224 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v2float = OpTypeVector %float 2 -%mat2v2float = OpTypeMatrix %v2float 2 - %uint = OpTypeInt 32 0 - %uint_4 = OpConstant %uint 4 -%_arr_float_uint_4 = OpTypeArray %float %uint_4 - %uint_2 = OpConstant %uint 2 -%_arr__arr_float_uint_4_uint_2 = OpTypeArray %_arr_float_uint_4 %uint_2 - %Baz = OpTypeStruct %float -%_arr_Baz_uint_2 = OpTypeArray %Baz %uint_2 - %Bar = OpTypeStruct %_arr__arr_float_uint_4_uint_2 %_arr_Baz_uint_2 - %uint_5 = OpConstant %uint 5 -%_arr_Bar_uint_5 = OpTypeArray %Bar %uint_5 - %Foo = OpTypeStruct %mat2v2float %v2float %_arr_Bar_uint_5 -%_ptr_Function_Foo = OpTypePointer Function %Foo -%_arr_float_uint_4_0 = OpTypeArray %float %uint_4 -%_arr__arr_float_uint_4_0_uint_2 = OpTypeArray %_arr_float_uint_4_0 %uint_2 - %Baz_0 = OpTypeStruct %float -%_arr_Baz_0_uint_2 = OpTypeArray %Baz_0 %uint_2 - %Bar_0 = OpTypeStruct %_arr__arr_float_uint_4_0_uint_2 %_arr_Baz_0_uint_2 -%_arr_Bar_0_uint_5 = OpTypeArray %Bar_0 %uint_5 - %Foo_0 = OpTypeStruct %mat2v2float %v2float %_arr_Bar_0_uint_5 - %SSBO = OpTypeStruct %Foo_0 %Foo_0 -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_Uniform_Foo_0 = OpTypePointer Uniform %Foo_0 -%_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float - %int_1 = OpConstant %int 1 -%_ptr_Function_v2float = OpTypePointer Function %v2float - %int_2 = OpConstant %int 2 -%_ptr_Function__arr_Bar_uint_5 = OpTypePointer Function %_arr_Bar_uint_5 -%_ptr_Function_Bar = OpTypePointer Function %Bar -%_ptr_Function__arr__arr_float_uint_4_uint_2 = OpTypePointer Function %_arr__arr_float_uint_4_uint_2 -%_ptr_Function__arr_float_uint_4 = OpTypePointer Function %_arr_float_uint_4 -%_ptr_Function_float = OpTypePointer Function %float - %int_3 = OpConstant %int 3 -%_ptr_Function__arr_Baz_uint_2 = OpTypePointer Function %_arr_Baz_uint_2 -%_ptr_Function_Baz = OpTypePointer Function %Baz - %int_4 = OpConstant %int 4 - %float_1 = OpConstant %float 1 - %float_2 = OpConstant %float 2 - %float_5 = OpConstant %float 5 -%_ptr_Uniform_mat2v2float = OpTypePointer Uniform %mat2v2float -%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float -%_ptr_Uniform__arr_Bar_0_uint_5 = OpTypePointer Uniform %_arr_Bar_0_uint_5 -%_ptr_Uniform_Bar_0 = OpTypePointer Uniform %Bar_0 -%_ptr_Uniform__arr__arr_float_uint_4_0_uint_2 = OpTypePointer Uniform %_arr__arr_float_uint_4_0_uint_2 -%_ptr_Uniform__arr_float_uint_4_0 = OpTypePointer Uniform %_arr_float_uint_4_0 -%_ptr_Uniform_float = OpTypePointer Uniform %float -%_ptr_Uniform__arr_Baz_0_uint_2 = OpTypePointer Uniform %_arr_Baz_0_uint_2 -%_ptr_Uniform_Baz_0 = OpTypePointer Uniform %Baz_0 - %v3uint = OpTypeVector %uint 3 - %uint_1 = OpConstant %uint 1 -%gl_WorkGroupSize = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1 - %main = OpFunction %void None %3 - %5 = OpLabel - %ptr_load = OpAccessChain %_ptr_Uniform_Foo_0 %_ %int_0 - %ptr_store = OpAccessChain %_ptr_Uniform_Foo_0 %_ %int_1 - %loaded = OpLoad %Foo_0 %ptr_load - OpStore %ptr_store %loaded - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/aliased-struct-divergent-member-name.asm.comp b/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/aliased-struct-divergent-member-name.asm.comp deleted file mode 100644 index 87aee2db54..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/aliased-struct-divergent-member-name.asm.comp +++ /dev/null @@ -1,77 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 37 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %T "T" - OpMemberName %T 0 "a" - OpName %v "v" - OpName %T_0 "T" - OpMemberName %T_0 0 "b" - OpName %SSBO1 "SSBO1" - OpMemberName %SSBO1 0 "foo" - OpName %_ "" - OpName %T_1 "T" - OpMemberName %T_1 0 "c" - OpName %SSBO2 "SSBO2" - OpMemberName %SSBO2 0 "bar" - OpName %__0 "" - OpMemberDecorate %T_0 0 Offset 0 - OpDecorate %_runtimearr_T_0 ArrayStride 4 - OpMemberDecorate %SSBO1 0 Offset 0 - OpDecorate %SSBO1 BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - OpMemberDecorate %T_1 0 Offset 0 - OpDecorate %_runtimearr_T_1 ArrayStride 16 - OpMemberDecorate %SSBO2 0 Offset 0 - OpDecorate %SSBO2 BufferBlock - OpDecorate %__0 DescriptorSet 0 - OpDecorate %__0 Binding 1 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %T = OpTypeStruct %float -%_ptr_Function_T = OpTypePointer Function %T - %float_40 = OpConstant %float 40 - %11 = OpConstantComposite %T %float_40 - %T_0 = OpTypeStruct %float -%_runtimearr_T_0 = OpTypeRuntimeArray %T_0 - %SSBO1 = OpTypeStruct %_runtimearr_T_0 -%_ptr_Uniform_SSBO1 = OpTypePointer Uniform %SSBO1 - %_ = OpVariable %_ptr_Uniform_SSBO1 Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %int_10 = OpConstant %int 10 -%_ptr_Uniform_T_0 = OpTypePointer Uniform %T_0 -%_ptr_Uniform_float = OpTypePointer Uniform %float - %T_1 = OpTypeStruct %float -%_runtimearr_T_1 = OpTypeRuntimeArray %T_1 - %SSBO2 = OpTypeStruct %_runtimearr_T_1 -%_ptr_Uniform_SSBO2 = OpTypePointer Uniform %SSBO2 - %__0 = OpVariable %_ptr_Uniform_SSBO2 Uniform - %int_30 = OpConstant %int 30 -%_ptr_Uniform_T_1 = OpTypePointer Uniform %T_1 - %main = OpFunction %void None %3 - %5 = OpLabel - %v = OpVariable %_ptr_Function_T Function - OpStore %v %11 - %20 = OpLoad %T %v - %22 = OpAccessChain %_ptr_Uniform_T_0 %_ %int_0 %int_10 - %23 = OpCompositeExtract %float %20 0 - %25 = OpAccessChain %_ptr_Uniform_float %22 %int_0 - OpStore %25 %23 - %32 = OpLoad %T %v - %34 = OpAccessChain %_ptr_Uniform_T_1 %__0 %int_0 %int_30 - %35 = OpCompositeExtract %float %32 0 - %36 = OpAccessChain %_ptr_Uniform_float %34 %int_0 - OpStore %36 %35 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/atomic-load-store.asm.comp b/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/atomic-load-store.asm.comp deleted file mode 100644 index 3f2d141a1f..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/atomic-load-store.asm.comp +++ /dev/null @@ -1,48 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 23 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %c "c" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "a" - OpMemberName %SSBO 1 "b" - OpName %_ "" - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %SSBO 1 Offset 4 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 -%_ptr_Function_uint = OpTypePointer Function %uint - %SSBO = OpTypeStruct %uint %uint -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform - %int = OpTypeInt 32 1 - %int_1 = OpConstant %int 1 -%_ptr_Uniform_uint = OpTypePointer Uniform %uint - %int_0 = OpConstant %int 0 - %v3uint = OpTypeVector %uint 3 - %uint_1 = OpConstant %uint 1 -%gl_WorkGroupSize = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1 - %main = OpFunction %void None %3 - %5 = OpLabel - %c = OpVariable %_ptr_Function_uint Function - %15 = OpAccessChain %_ptr_Uniform_uint %_ %int_1 - %16 = OpAtomicLoad %uint %15 %int_1 %int_0 - OpStore %c %16 - %18 = OpLoad %uint %c - %19 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 - OpAtomicStore %19 %int_1 %int_0 %18 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/atomic-result-temporary.asm.comp b/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/atomic-result-temporary.asm.comp deleted file mode 100644 index a323841596..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/atomic-result-temporary.asm.comp +++ /dev/null @@ -1,59 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 35 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "count" - OpMemberName %SSBO 1 "data" - OpName %_ "" - OpName %gl_GlobalInvocationID "gl_GlobalInvocationID" - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %SSBO 1 Offset 4 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 -%_runtimearr_uint = OpTypeRuntimeArray %uint - %SSBO = OpTypeStruct %uint %_runtimearr_uint -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_Uniform_uint = OpTypePointer Uniform %uint - %uint_1 = OpConstant %uint 1 - %uint_0 = OpConstant %uint 0 - %uint_1024 = OpConstant %uint 1024 - %bool = OpTypeBool - %int_1 = OpConstant %int 1 - %v3uint = OpTypeVector %uint 3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input -%_ptr_Input_uint = OpTypePointer Input %uint - %main = OpFunction %void None %3 - %5 = OpLabel - %16 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 - %19 = OpAtomicIAdd %uint %16 %uint_1 %uint_0 %uint_1 - %23 = OpULessThan %bool %19 %uint_1024 - OpSelectionMerge %25 None - OpBranchConditional %23 %24 %25 - %24 = OpLabel - %32 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %33 = OpLoad %uint %32 - %34 = OpAccessChain %_ptr_Uniform_uint %_ %int_1 %19 - OpStore %34 %33 - OpBranch %25 - %25 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/bitfield-signed-operations.asm.comp b/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/bitfield-signed-operations.asm.comp deleted file mode 100644 index 435fa32221..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/bitfield-signed-operations.asm.comp +++ /dev/null @@ -1,97 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 26 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "ints" - OpMemberName %SSBO 1 "uints" - OpName %_ "" - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %SSBO 1 Offset 16 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %v4int = OpTypeVector %int 4 - %uint = OpTypeInt 32 0 - %v4uint = OpTypeVector %uint 4 - - %int_1 = OpConstant %int 1 - %uint_11 = OpConstant %uint 11 - - %SSBO = OpTypeStruct %v4int %v4uint -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform - %int_0 = OpConstant %int 0 -%_ptr_Uniform_v4int = OpTypePointer Uniform %v4int -%_ptr_Uniform_v4uint = OpTypePointer Uniform %v4uint - %main = OpFunction %void None %3 - %5 = OpLabel - %ints_ptr = OpAccessChain %_ptr_Uniform_v4int %_ %int_0 - %uints_ptr = OpAccessChain %_ptr_Uniform_v4uint %_ %int_1 - %ints = OpLoad %v4int %ints_ptr - %uints = OpLoad %v4uint %uints_ptr - - %ints_alt = OpVectorShuffle %v4int %ints %ints 3 2 1 0 - %uints_alt = OpVectorShuffle %v4uint %uints %uints 3 2 1 0 - - %int_to_int_popcount = OpBitCount %v4int %ints - %int_to_uint_popcount = OpBitCount %v4uint %ints - %uint_to_int_popcount = OpBitCount %v4int %uints - %uint_to_uint_popcount = OpBitCount %v4uint %uints - - ; BitReverse must have matching types w.r.t. sign, yay. - %int_to_int_reverse = OpBitReverse %v4int %ints - ;%int_to_uint_reverse = OpBitReverse %v4uint %ints - ;%uint_to_int_reverse = OpBitReverse %v4int %uints - %uint_to_uint_reverse = OpBitReverse %v4uint %uints - - ; Base and Result must match. - %int_to_int_sbit = OpBitFieldSExtract %v4int %ints %int_1 %uint_11 - ;%int_to_uint_sbit = OpBitFieldSExtract %v4uint %ints %offset %count - ;%uint_to_int_sbit = OpBitFieldSExtract %v4int %uints %offset %count - %uint_to_uint_sbit = OpBitFieldSExtract %v4uint %uints %uint_11 %int_1 - - ; Base and Result must match. - %int_to_int_ubit = OpBitFieldUExtract %v4int %ints %int_1 %uint_11 - ;%int_to_uint_ubit = OpBitFieldUExtract %v4uint %ints %offset %count - ;%uint_to_int_ubit = OpBitFieldUExtract %v4int %uints %offset %count - %uint_to_uint_ubit = OpBitFieldUExtract %v4uint %uints %uint_11 %int_1 - - %int_to_int_insert = OpBitFieldInsert %v4int %ints %ints_alt %int_1 %uint_11 - %uint_to_uint_insert = OpBitFieldInsert %v4uint %uints %uints_alt %uint_11 %int_1 - - OpStore %ints_ptr %int_to_int_popcount - OpStore %uints_ptr %int_to_uint_popcount - OpStore %ints_ptr %uint_to_int_popcount - OpStore %uints_ptr %uint_to_uint_popcount - - OpStore %ints_ptr %int_to_int_reverse - ;OpStore %uints_ptr %int_to_uint_reverse - ;OpStore %ints_ptr %uint_to_int_reverse - OpStore %uints_ptr %uint_to_uint_reverse - - OpStore %ints_ptr %int_to_int_sbit - ;OpStore %uints_ptr %int_to_uint_sbit - ;OpStore %ints_ptr %uint_to_int_sbit - OpStore %uints_ptr %uint_to_uint_sbit - - OpStore %ints_ptr %int_to_int_ubit - ;OpStore %uints_ptr %int_to_uint_ubit - ;OpStore %ints_ptr %uint_to_int_ubit - OpStore %uints_ptr %uint_to_uint_ubit - - OpStore %ints_ptr %int_to_int_insert - OpStore %uints_ptr %uint_to_uint_insert - - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/bitscan.asm.comp b/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/bitscan.asm.comp deleted file mode 100644 index e3b785cd52..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/bitscan.asm.comp +++ /dev/null @@ -1,72 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 35 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "u" - OpMemberName %SSBO 1 "i" - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %SSBO 1 Offset 16 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %ivec4 = OpTypeVector %int 4 - %uint = OpTypeInt 32 0 - %uvec4 = OpTypeVector %uint 4 - %SSBO = OpTypeStruct %uvec4 %ivec4 -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform - %int_0 = OpConstant %int 0 -%_ptr_Uniform_uvec4 = OpTypePointer Uniform %uvec4 - %int_1 = OpConstant %int 1 -%_ptr_Uniform_ivec4 = OpTypePointer Uniform %ivec4 - %main = OpFunction %void None %3 - %5 = OpLabel - %uptr = OpAccessChain %_ptr_Uniform_uvec4 %_ %int_0 - %iptr = OpAccessChain %_ptr_Uniform_ivec4 %_ %int_1 - %uvalue = OpLoad %uvec4 %uptr - %ivalue = OpLoad %ivec4 %iptr - - %lsb_uint_to_uint = OpExtInst %uvec4 %1 FindILsb %uvalue - %lsb_uint_to_int = OpExtInst %ivec4 %1 FindILsb %uvalue - %lsb_int_to_uint = OpExtInst %uvec4 %1 FindILsb %ivalue - %lsb_int_to_int = OpExtInst %ivec4 %1 FindILsb %ivalue - - %umsb_uint_to_uint = OpExtInst %uvec4 %1 FindUMsb %uvalue - %umsb_uint_to_int = OpExtInst %ivec4 %1 FindUMsb %uvalue - %umsb_int_to_uint = OpExtInst %uvec4 %1 FindUMsb %ivalue - %umsb_int_to_int = OpExtInst %ivec4 %1 FindUMsb %ivalue - - %smsb_uint_to_uint = OpExtInst %uvec4 %1 FindSMsb %uvalue - %smsb_uint_to_int = OpExtInst %ivec4 %1 FindSMsb %uvalue - %smsb_int_to_uint = OpExtInst %uvec4 %1 FindSMsb %ivalue - %smsb_int_to_int = OpExtInst %ivec4 %1 FindSMsb %ivalue - - OpStore %uptr %lsb_uint_to_uint - OpStore %iptr %lsb_uint_to_int - OpStore %uptr %lsb_int_to_uint - OpStore %iptr %lsb_int_to_int - - OpStore %uptr %umsb_uint_to_uint - OpStore %iptr %umsb_uint_to_int - OpStore %uptr %umsb_int_to_uint - OpStore %iptr %umsb_int_to_int - - OpStore %uptr %smsb_uint_to_uint - OpStore %iptr %smsb_uint_to_int - OpStore %uptr %smsb_int_to_uint - OpStore %iptr %smsb_int_to_int - - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/buffer-atomic-nonuniform.asm.sm51.nonuniformresource.comp b/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/buffer-atomic-nonuniform.asm.sm51.nonuniformresource.comp deleted file mode 100644 index 132f38bf72..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/buffer-atomic-nonuniform.asm.sm51.nonuniformresource.comp +++ /dev/null @@ -1,53 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 26 -; Schema: 0 - OpCapability Shader - OpCapability ShaderNonUniform - OpCapability RuntimeDescriptorArray - OpCapability StorageBufferArrayNonUniformIndexing - OpExtension "SPV_EXT_descriptor_indexing" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpSourceExtension "GL_EXT_nonuniform_qualifier" - OpName %main "main" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "v" - OpName %ssbos "ssbos" - OpName %gl_GlobalInvocationID "gl_GlobalInvocationID" - OpMemberDecorate %SSBO 0 Offset 0 - OpDecorate %SSBO BufferBlock - OpDecorate %ssbos DescriptorSet 0 - OpDecorate %ssbos Binding 0 - OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId - OpDecorate %22 NonUniform - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 - %SSBO = OpTypeStruct %uint -%_runtimearr_SSBO = OpTypeRuntimeArray %SSBO -%_ptr_Uniform__runtimearr_SSBO = OpTypePointer Uniform %_runtimearr_SSBO - %ssbos = OpVariable %_ptr_Uniform__runtimearr_SSBO Uniform - %v3uint = OpTypeVector %uint 3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input - %uint_2 = OpConstant %uint 2 -%_ptr_Input_uint = OpTypePointer Input %uint - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_Uniform_uint = OpTypePointer Uniform %uint - %uint_1 = OpConstant %uint 1 - %uint_0 = OpConstant %uint 0 - %main = OpFunction %void None %3 - %5 = OpLabel - %16 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_2 - %17 = OpLoad %uint %16 - %18 = OpCopyObject %uint %17 - %22 = OpAccessChain %_ptr_Uniform_uint %ssbos %18 %int_0 - %25 = OpAtomicIAdd %uint %22 %uint_1 %uint_0 %uint_1 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/constant-composite-undef.asm.comp b/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/constant-composite-undef.asm.comp deleted file mode 100644 index 8997d0aaf9..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/constant-composite-undef.asm.comp +++ /dev/null @@ -1,40 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Khronos SPIR-V Tools Assembler; 0 -; Bound: 20 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %Block "Block" - OpMemberName %Block 0 "f" - OpName %block "block" - OpMemberDecorate %Block 0 Offset 0 - OpDecorate %Block BufferBlock - OpDecorate %block DescriptorSet 0 - OpDecorate %block Binding 0 - %void = OpTypeVoid - %6 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %Block = OpTypeStruct %v4float -%_ptr_Uniform_Block = OpTypePointer Uniform %Block - %block = OpVariable %_ptr_Uniform_Block Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%float_0_100000001 = OpConstant %float 0.100000001 -%float_0_200000003 = OpConstant %float 0.200000003 -%float_0_300000012 = OpConstant %float 0.300000012 - %15 = OpUndef %float - %16 = OpConstantComposite %v4float %float_0_100000001 %float_0_200000003 %float_0_300000012 %15 -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float - %main = OpFunction %void None %6 - %18 = OpLabel - %19 = OpAccessChain %_ptr_Uniform_v4float %block %int_0 - OpStore %19 %16 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/eliminate-globals-not-in-entry-point.noeliminate.spv14.asm.comp b/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/eliminate-globals-not-in-entry-point.noeliminate.spv14.asm.comp deleted file mode 100644 index 73f3ceee1a..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/eliminate-globals-not-in-entry-point.noeliminate.spv14.asm.comp +++ /dev/null @@ -1,59 +0,0 @@ -; SPIR-V -; Version: 1.5 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 26 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - ;OpEntryPoint GLCompute %main "main" %Samp %ubo %ssbo %v %w - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 64 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %Samp "Samp" - OpName %UBO "UBO" - OpMemberName %UBO 0 "v" - OpName %ubo "ubo" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "v" - OpName %ssbo "ssbo" - OpName %v "v" - OpName %w "w" - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %Samp DescriptorSet 0 - OpDecorate %Samp Binding 0 - OpMemberDecorate %UBO 0 Offset 0 - OpDecorate %UBO Block - OpDecorate %ubo DescriptorSet 0 - OpDecorate %ubo Binding 1 - OpMemberDecorate %SSBO 0 Offset 0 - OpDecorate %SSBO Block - OpDecorate %ssbo DescriptorSet 0 - OpDecorate %ssbo Binding 2 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 - %uint_64 = OpConstant %uint 64 - %uint_1 = OpConstant %uint 1 -%gl_WorkGroupSize = OpConstantComposite %v3uint %uint_64 %uint_1 %uint_1 - %float = OpTypeFloat 32 - %12 = OpTypeImage %float 2D 0 0 0 1 Unknown - %13 = OpTypeSampledImage %12 -%_ptr_UniformConstant_13 = OpTypePointer UniformConstant %13 - %Samp = OpVariable %_ptr_UniformConstant_13 UniformConstant - %UBO = OpTypeStruct %float -%_ptr_Uniform_UBO = OpTypePointer Uniform %UBO - %ubo = OpVariable %_ptr_Uniform_UBO Uniform - %SSBO = OpTypeStruct %float -%_ptr_StorageBuffer_SSBO = OpTypePointer StorageBuffer %SSBO - %ssbo = OpVariable %_ptr_StorageBuffer_SSBO StorageBuffer -%_ptr_Private_float = OpTypePointer Private %float - %v = OpVariable %_ptr_Private_float Private -%_ptr_Workgroup_float = OpTypePointer Workgroup %float - %w = OpVariable %_ptr_Workgroup_float Workgroup - %main = OpFunction %void None %3 - %5 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/glsl-signed-operations.asm.comp b/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/glsl-signed-operations.asm.comp deleted file mode 100644 index 7da9f95b9e..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/glsl-signed-operations.asm.comp +++ /dev/null @@ -1,123 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 26 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "ints" - OpMemberName %SSBO 1 "uints" - OpName %_ "" - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %SSBO 1 Offset 16 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %v4int = OpTypeVector %int 4 - %uint = OpTypeInt 32 0 - %v4uint = OpTypeVector %uint 4 - %SSBO = OpTypeStruct %v4int %v4uint -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform - %int_0 = OpConstant %int 0 -%_ptr_Uniform_v4int = OpTypePointer Uniform %v4int - %int_1 = OpConstant %int 1 -%_ptr_Uniform_v4uint = OpTypePointer Uniform %v4uint - %main = OpFunction %void None %3 - %5 = OpLabel - %ints_ptr = OpAccessChain %_ptr_Uniform_v4int %_ %int_0 - %uints_ptr = OpAccessChain %_ptr_Uniform_v4uint %_ %int_1 - %ints = OpLoad %v4int %ints_ptr - %uints = OpLoad %v4uint %uints_ptr - - %int_to_int_sabs = OpExtInst %v4int %1 SAbs %ints - %int_to_uint_sabs = OpExtInst %v4uint %1 SAbs %ints - %uint_to_int_sabs = OpExtInst %v4int %1 SAbs %uints - %uint_to_uint_sabs = OpExtInst %v4uint %1 SAbs %uints - - %int_to_int_ssign = OpExtInst %v4int %1 SSign %ints - %int_to_uint_ssign = OpExtInst %v4uint %1 SSign %ints - %uint_to_int_ssign = OpExtInst %v4int %1 SSign %uints - %uint_to_uint_ssign = OpExtInst %v4uint %1 SSign %uints - - %int_to_int_smsb = OpExtInst %v4int %1 FindSMsb %uints - %int_to_uint_smsb = OpExtInst %v4uint %1 FindSMsb %uints - %uint_to_int_umsb = OpExtInst %v4int %1 FindUMsb %ints - %uint_to_uint_umsb = OpExtInst %v4uint %1 FindUMsb %ints - - %int_to_int_smin = OpExtInst %v4int %1 SMin %ints %ints - %int_to_uint_smin = OpExtInst %v4uint %1 SMin %ints %uints - %uint_to_int_smin = OpExtInst %v4int %1 SMin %uints %uints - %uint_to_uint_smin = OpExtInst %v4uint %1 SMin %uints %ints - - %int_to_int_umin = OpExtInst %v4int %1 UMin %ints %uints - %int_to_uint_umin = OpExtInst %v4uint %1 UMin %ints %uints - %uint_to_int_umin = OpExtInst %v4int %1 UMin %uints %ints - %uint_to_uint_umin = OpExtInst %v4uint %1 UMin %uints %ints - - %int_to_int_smax = OpExtInst %v4int %1 SMax %ints %ints - %int_to_uint_smax = OpExtInst %v4uint %1 SMax %ints %ints - %uint_to_int_smax = OpExtInst %v4int %1 SMax %uints %ints - %uint_to_uint_smax = OpExtInst %v4uint %1 SMax %uints %ints - - %int_to_int_umax = OpExtInst %v4int %1 UMax %ints %uints - %int_to_uint_umax = OpExtInst %v4uint %1 UMax %ints %ints - %uint_to_int_umax = OpExtInst %v4int %1 UMax %uints %ints - %uint_to_uint_umax = OpExtInst %v4uint %1 UMax %uints %ints - - %int_to_int_sclamp = OpExtInst %v4int %1 SClamp %uints %uints %uints - %int_to_uint_sclamp = OpExtInst %v4uint %1 SClamp %uints %uints %uints - %uint_to_int_uclamp = OpExtInst %v4int %1 UClamp %ints %ints %ints - %uint_to_uint_uclamp = OpExtInst %v4uint %1 UClamp %ints %ints %ints - - OpStore %ints_ptr %int_to_int_sabs - OpStore %uints_ptr %int_to_uint_sabs - OpStore %ints_ptr %uint_to_int_sabs - OpStore %uints_ptr %uint_to_uint_sabs - - OpStore %ints_ptr %int_to_int_ssign - OpStore %uints_ptr %int_to_uint_ssign - OpStore %ints_ptr %uint_to_int_ssign - OpStore %uints_ptr %uint_to_uint_ssign - - OpStore %ints_ptr %int_to_int_smsb - OpStore %uints_ptr %int_to_uint_smsb - OpStore %ints_ptr %uint_to_int_umsb - OpStore %uints_ptr %uint_to_uint_umsb - - OpStore %ints_ptr %int_to_int_smin - OpStore %uints_ptr %int_to_uint_smin - OpStore %ints_ptr %uint_to_int_smin - OpStore %uints_ptr %uint_to_uint_smin - - OpStore %ints_ptr %int_to_int_umin - OpStore %uints_ptr %int_to_uint_umin - OpStore %ints_ptr %uint_to_int_umin - OpStore %uints_ptr %uint_to_uint_umin - - OpStore %ints_ptr %int_to_int_smax - OpStore %uints_ptr %int_to_uint_smax - OpStore %ints_ptr %uint_to_int_smax - OpStore %uints_ptr %uint_to_uint_smax - - OpStore %ints_ptr %int_to_int_umax - OpStore %uints_ptr %int_to_uint_umax - OpStore %ints_ptr %uint_to_int_umax - OpStore %uints_ptr %uint_to_uint_umax - - OpStore %ints_ptr %int_to_int_sclamp - OpStore %uints_ptr %int_to_uint_sclamp - OpStore %ints_ptr %uint_to_int_uclamp - OpStore %uints_ptr %uint_to_uint_uclamp - - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/glsl.std450.frexp-modf-struct.fxconly.asm.comp b/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/glsl.std450.frexp-modf-struct.fxconly.asm.comp deleted file mode 100644 index 30db11d45b..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/glsl.std450.frexp-modf-struct.fxconly.asm.comp +++ /dev/null @@ -1,55 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 45 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %SSBO 1 Offset 4 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %ResTypeMod = OpTypeStruct %float %float -%_ptr_Function_ResTypeMod = OpTypePointer Function %ResTypeMod - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %float_20 = OpConstant %float 20 - %int_1 = OpConstant %int 1 -%_ptr_Function_float = OpTypePointer Function %float -%ResTypeFrexp = OpTypeStruct %float %int -%_ptr_Function_ResTypeFrexp = OpTypePointer Function %ResTypeFrexp - %float_40 = OpConstant %float 40 -%_ptr_Function_int = OpTypePointer Function %int - %SSBO = OpTypeStruct %float %int -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform -%_ptr_Uniform_float = OpTypePointer Uniform %float -%_ptr_Uniform_int = OpTypePointer Uniform %int - %main = OpFunction %void None %3 - %5 = OpLabel - %modres = OpExtInst %ResTypeMod %1 ModfStruct %float_20 - %frexpres = OpExtInst %ResTypeFrexp %1 FrexpStruct %float_40 - - %modres_f = OpCompositeExtract %float %modres 0 - %modres_i = OpCompositeExtract %float %modres 1 - %frexpres_f = OpCompositeExtract %float %frexpres 0 - %frexpres_i = OpCompositeExtract %int %frexpres 1 - - %float_ptr = OpAccessChain %_ptr_Uniform_float %_ %int_0 - %int_ptr = OpAccessChain %_ptr_Uniform_int %_ %int_1 - - OpStore %float_ptr %modres_f - OpStore %float_ptr %modres_i - OpStore %float_ptr %frexpres_f - OpStore %int_ptr %frexpres_i - - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/image-atomic-nonuniform.asm.sm51.nonuniformresource.comp b/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/image-atomic-nonuniform.asm.sm51.nonuniformresource.comp deleted file mode 100644 index 5dad9dd5ed..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/image-atomic-nonuniform.asm.sm51.nonuniformresource.comp +++ /dev/null @@ -1,55 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 32 -; Schema: 0 - OpCapability Shader - OpCapability ShaderNonUniform - OpCapability RuntimeDescriptorArray - OpCapability StorageImageArrayNonUniformIndexing - OpExtension "SPV_EXT_descriptor_indexing" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpSourceExtension "GL_EXT_nonuniform_qualifier" - OpName %main "main" - OpName %uImage "uImage" - OpName %gl_GlobalInvocationID "gl_GlobalInvocationID" - OpDecorate %uImage DescriptorSet 0 - OpDecorate %uImage Binding 0 - OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId - OpDecorate %30 NonUniform - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 - %7 = OpTypeImage %uint 2D 0 0 0 2 R32ui -%_runtimearr_7 = OpTypeRuntimeArray %7 -%_ptr_UniformConstant__runtimearr_7 = OpTypePointer UniformConstant %_runtimearr_7 - %uImage = OpVariable %_ptr_UniformConstant__runtimearr_7 UniformConstant - %v3uint = OpTypeVector %uint 3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input - %uint_2 = OpConstant %uint 2 -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7 - %v2uint = OpTypeVector %uint 2 - %int = OpTypeInt 32 1 - %v2int = OpTypeVector %int 2 - %uint_1 = OpConstant %uint 1 - %uint_0 = OpConstant %uint 0 -%_ptr_Image_uint = OpTypePointer Image %uint - %main = OpFunction %void None %3 - %5 = OpLabel - %16 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_2 - %17 = OpLoad %uint %16 - %18 = OpCopyObject %uint %17 - %20 = OpAccessChain %_ptr_UniformConstant_7 %uImage %18 - %22 = OpLoad %v3uint %gl_GlobalInvocationID - %23 = OpVectorShuffle %v2uint %22 %22 0 1 - %26 = OpBitcast %v2int %23 - %30 = OpImageTexelPointer %_ptr_Image_uint %20 %26 %uint_0 - %31 = OpAtomicIAdd %uint %30 %uint_1 %uint_0 %uint_1 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/specialization-constant-workgroup.nofxc.asm.comp b/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/specialization-constant-workgroup.nofxc.asm.comp deleted file mode 100644 index 188e3fec36..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/specialization-constant-workgroup.nofxc.asm.comp +++ /dev/null @@ -1,47 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 24 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 20 1 - OpSource ESSL 310 - OpName %main "main" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "a" - OpName %_ "" - OpMemberDecorate %SSBO 0 Offset 0 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - OpDecorate %19 SpecId 10 - OpDecorate %21 SpecId 12 - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %SSBO = OpTypeStruct %float -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %float_1 = OpConstant %float 1 -%_ptr_Uniform_float = OpTypePointer Uniform %float - %uint = OpTypeInt 32 0 - %19 = OpSpecConstant %uint 9 - %uint_20 = OpConstant %uint 20 - %21 = OpSpecConstant %uint 4 - %v3uint = OpTypeVector %uint 3 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %19 %uint_20 %21 - %main = OpFunction %void None %3 - %5 = OpLabel - %14 = OpAccessChain %_ptr_Uniform_float %_ %int_0 - %15 = OpLoad %float %14 - %16 = OpFAdd %float %15 %float_1 - %17 = OpAccessChain %_ptr_Uniform_float %_ %int_0 - OpStore %17 %16 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/storage-buffer-basic.nofxc.asm.comp b/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/storage-buffer-basic.nofxc.asm.comp deleted file mode 100644 index db9a8490df..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/comp/storage-buffer-basic.nofxc.asm.comp +++ /dev/null @@ -1,57 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Codeplay; 0 -; Bound: 31 -; Schema: 0 - OpCapability Shader - ;OpCapability VariablePointers - OpExtension "SPV_KHR_storage_buffer_storage_class" - ;OpExtension "SPV_KHR_variable_pointers" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %22 "main" %gl_WorkGroupID - OpSource OpenCL_C 120 - OpDecorate %15 SpecId 0 - ;OpDecorate %16 SpecId 1 - OpDecorate %17 SpecId 2 - OpDecorate %_runtimearr_float ArrayStride 4 - OpMemberDecorate %_struct_4 0 Offset 0 - OpDecorate %_struct_4 Block - OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %20 DescriptorSet 0 - OpDecorate %20 Binding 0 - OpDecorate %21 DescriptorSet 0 - OpDecorate %21 Binding 1 - %float = OpTypeFloat 32 -%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float -%_runtimearr_float = OpTypeRuntimeArray %float - %_struct_4 = OpTypeStruct %_runtimearr_float -%_ptr_StorageBuffer__struct_4 = OpTypePointer StorageBuffer %_struct_4 - %uint = OpTypeInt 32 0 - %void = OpTypeVoid - %8 = OpTypeFunction %void - %v3uint = OpTypeVector %uint 3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_Private_v3uint = OpTypePointer Private %v3uint - %uint_0 = OpConstant %uint 0 -%gl_WorkGroupID = OpVariable %_ptr_Input_v3uint Input - %15 = OpSpecConstant %uint 1 - %16 = OpConstant %uint 2 - %17 = OpSpecConstant %uint 3 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %15 %16 %17 - %19 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize - %20 = OpVariable %_ptr_StorageBuffer__struct_4 StorageBuffer - %21 = OpVariable %_ptr_StorageBuffer__struct_4 StorageBuffer - %22 = OpFunction %void None %8 - %23 = OpLabel - %24 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %25 = OpLoad %uint %24 - %26 = OpAccessChain %_ptr_StorageBuffer_float %21 %uint_0 %25 - %27 = OpLoad %float %26 - %28 = OpAccessChain %_ptr_StorageBuffer_float %20 %uint_0 %25 - %29 = OpLoad %float %28 - %30 = OpFAdd %float %27 %29 - OpStore %28 %30 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/empty-struct-in-struct.asm.frag b/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/empty-struct-in-struct.asm.frag deleted file mode 100644 index a9650ddbb6..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/empty-struct-in-struct.asm.frag +++ /dev/null @@ -1,61 +0,0 @@ -; SPIR-V -; Version: 1.2 -; Generator: Khronos; 0 -; Bound: 43 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %EntryPoint_Main "main" - OpExecutionMode %EntryPoint_Main OriginUpperLeft - OpSource Unknown 100 - OpName %EmptyStructTest "EmptyStructTest" - OpName %EmptyStruct2Test "EmptyStruct2Test" - OpName %GetValue "GetValue" - OpName %GetValue2 "GetValue" - OpName %self "self" - OpName %self2 "self" - OpName %emptyStruct "emptyStruct" - OpName %value "value" - OpName %EntryPoint_Main "EntryPoint_Main" - -%EmptyStructTest = OpTypeStruct -%EmptyStruct2Test = OpTypeStruct %EmptyStructTest -%_ptr_Function_EmptyStruct2Test = OpTypePointer Function %EmptyStruct2Test - %float = OpTypeFloat 32 -%_ptr_Function_float = OpTypePointer Function %float - %5 = OpTypeFunction %float %_ptr_Function_EmptyStruct2Test - %6 = OpTypeFunction %float %EmptyStruct2Test - %void = OpTypeVoid -%_ptr_Function_void = OpTypePointer Function %void - %8 = OpTypeFunction %void %_ptr_Function_EmptyStruct2Test - %9 = OpTypeFunction %void - %float_0 = OpConstant %float 0 - %value4 = OpConstantNull %EmptyStruct2Test - - %GetValue = OpFunction %float None %5 - %self = OpFunctionParameter %_ptr_Function_EmptyStruct2Test - %13 = OpLabel - OpReturnValue %float_0 - OpFunctionEnd - - %GetValue2 = OpFunction %float None %6 - %self2 = OpFunctionParameter %EmptyStruct2Test - %14 = OpLabel - OpReturnValue %float_0 - OpFunctionEnd - -%EntryPoint_Main = OpFunction %void None %9 - %37 = OpLabel - %emptyStruct = OpVariable %_ptr_Function_EmptyStruct2Test Function - %18 = OpVariable %_ptr_Function_EmptyStruct2Test Function - %value = OpVariable %_ptr_Function_float Function - %value2 = OpCompositeConstruct %EmptyStructTest - %value3 = OpCompositeConstruct %EmptyStruct2Test %value2 - %22 = OpFunctionCall %float %GetValue %emptyStruct - %23 = OpFunctionCall %float %GetValue2 %value3 - %24 = OpFunctionCall %float %GetValue2 %value4 - OpStore %value %22 - OpStore %value %23 - OpStore %value %24 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/image-fetch-uint-coord.asm.frag b/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/image-fetch-uint-coord.asm.frag deleted file mode 100644 index ca8022d4bb..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/image-fetch-uint-coord.asm.frag +++ /dev/null @@ -1,44 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 29 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %in_var_TEXCOORD0 %out_var_SV_Target0 - OpExecutionMode %main OriginUpperLeft - OpSource HLSL 600 - OpName %type_2d_image "type.2d.image" - OpName %Tex "Tex" - OpName %in_var_TEXCOORD0 "in.var.TEXCOORD0" - OpName %out_var_SV_Target0 "out.var.SV_Target0" - OpName %main "main" - OpDecorate %in_var_TEXCOORD0 Flat - OpDecorate %in_var_TEXCOORD0 Location 0 - OpDecorate %out_var_SV_Target0 Location 0 - OpDecorate %Tex DescriptorSet 0 - OpDecorate %Tex Binding 0 - %int = OpTypeInt 32 1 - %int_2 = OpConstant %int 2 - %float = OpTypeFloat 32 -%type_2d_image = OpTypeImage %float 2D 2 0 0 1 Unknown -%_ptr_UniformConstant_type_2d_image = OpTypePointer UniformConstant %type_2d_image - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %void = OpTypeVoid - %16 = OpTypeFunction %void - %Tex = OpVariable %_ptr_UniformConstant_type_2d_image UniformConstant -%in_var_TEXCOORD0 = OpVariable %_ptr_Input_v3uint Input -%out_var_SV_Target0 = OpVariable %_ptr_Output_v4float Output - %main = OpFunction %void None %16 - %19 = OpLabel - %20 = OpLoad %v3uint %in_var_TEXCOORD0 - %21 = OpCompositeExtract %uint %20 2 - %27 = OpLoad %type_2d_image %Tex - %28 = OpImageFetch %v4float %27 %20 Lod %21 - OpStore %out_var_SV_Target0 %28 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/nonuniform-bracket-handling-2.nonuniformresource.sm51.asm.frag b/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/nonuniform-bracket-handling-2.nonuniformresource.sm51.asm.frag deleted file mode 100644 index 72f6d9d86e..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/nonuniform-bracket-handling-2.nonuniformresource.sm51.asm.frag +++ /dev/null @@ -1,96 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 53 -; Schema: 0 - OpCapability Shader - OpCapability ShaderNonUniform - OpCapability RuntimeDescriptorArray - OpCapability SampledImageArrayNonUniformIndexing - OpExtension "SPV_EXT_descriptor_indexing" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %vUV %gl_FragCoord - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpSourceExtension "GL_EXT_nonuniform_qualifier" - OpName %main "main" - OpName %FragColor "FragColor" - OpName %uSamplers "uSamplers" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "indices" - OpName %_ "" - OpName %vUV "vUV" - OpName %uSampler "uSampler" - OpName %gl_FragCoord "gl_FragCoord" - OpDecorate %FragColor Location 0 - OpDecorate %uSamplers DescriptorSet 0 - OpDecorate %uSamplers Binding 0 - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %SSBO 0 NonWritable - OpMemberDecorate %SSBO 0 Offset 0 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 2 - OpDecorate %_ Binding 0 - OpDecorate %26 NonUniform - OpDecorate %28 NonUniform - OpDecorate %29 NonUniform - OpDecorate %vUV Location 0 - OpDecorate %uSampler DescriptorSet 1 - OpDecorate %uSampler Binding 1 - OpDecorate %38 NonUniform - OpDecorate %gl_FragCoord BuiltIn FragCoord - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %10 = OpTypeImage %float 2D 0 0 0 1 Unknown - %11 = OpTypeSampledImage %10 -%_runtimearr_11 = OpTypeRuntimeArray %11 -%_ptr_UniformConstant__runtimearr_11 = OpTypePointer UniformConstant %_runtimearr_11 - %uSamplers = OpVariable %_ptr_UniformConstant__runtimearr_11 UniformConstant - %uint = OpTypeInt 32 0 -%_runtimearr_uint = OpTypeRuntimeArray %uint - %SSBO = OpTypeStruct %_runtimearr_uint -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %int_10 = OpConstant %int 10 -%_ptr_Uniform_uint = OpTypePointer Uniform %uint -%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11 - %v2float = OpTypeVector %float 2 -%_ptr_Input_v2float = OpTypePointer Input %v2float - %vUV = OpVariable %_ptr_Input_v2float Input - %float_0 = OpConstant %float 0 - %uSampler = OpVariable %_ptr_UniformConstant_11 UniformConstant -%_ptr_Input_v4float = OpTypePointer Input %v4float -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input - %uint_1 = OpConstant %uint 1 -%_ptr_Input_float = OpTypePointer Input %float - %main = OpFunction %void None %3 - %5 = OpLabel - %24 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 %int_10 - %26 = OpLoad %uint %24 - %28 = OpAccessChain %_ptr_UniformConstant_11 %uSamplers %26 - %29 = OpLoad %11 %28 - %33 = OpLoad %v2float %vUV - %35 = OpImageSampleExplicitLod %v4float %29 %33 Lod %float_0 - OpStore %FragColor %35 - %37 = OpLoad %11 %uSampler - %38 = OpCopyObject %11 %37 - %39 = OpLoad %v2float %vUV - %44 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_1 - %45 = OpLoad %float %44 - %46 = OpConvertFToS %int %45 - %47 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 %46 - %48 = OpLoad %uint %47 - %49 = OpConvertUToF %float %48 - %50 = OpImageSampleExplicitLod %v4float %38 %39 Lod %49 - %51 = OpLoad %v4float %FragColor - %52 = OpFAdd %v4float %51 %50 - OpStore %FragColor %52 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/nonuniform-qualifier-propagation.nonuniformresource.sm51.asm.frag b/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/nonuniform-qualifier-propagation.nonuniformresource.sm51.asm.frag deleted file mode 100644 index 5aa68849b1..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/nonuniform-qualifier-propagation.nonuniformresource.sm51.asm.frag +++ /dev/null @@ -1,159 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 93 -; Schema: 0 - OpCapability Shader - OpCapability ShaderNonUniformEXT - OpCapability RuntimeDescriptorArrayEXT - OpCapability UniformBufferArrayNonUniformIndexingEXT - OpCapability SampledImageArrayNonUniformIndexingEXT - OpCapability StorageBufferArrayNonUniformIndexingEXT - OpExtension "SPV_EXT_descriptor_indexing" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %vIndex %FragColor %vUV - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpSourceExtension "GL_EXT_nonuniform_qualifier" - OpName %main "main" - OpName %i "i" - OpName %vIndex "vIndex" - OpName %FragColor "FragColor" - OpName %uSamplers "uSamplers" - OpName %uSamps "uSamps" - OpName %vUV "vUV" - OpName %uCombinedSamplers "uCombinedSamplers" - OpName %UBO "UBO" - OpMemberName %UBO 0 "v" - OpName %ubos "ubos" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "v" - OpName %ssbos "ssbos" - OpDecorate %vIndex Flat - OpDecorate %vIndex Location 0 - OpDecorate %FragColor Location 0 - OpDecorate %uSamplers DescriptorSet 0 - OpDecorate %uSamplers Binding 0 - - OpDecorate %sampled_image NonUniformEXT - OpDecorate %combined_sampler NonUniformEXT - OpDecorate %ubo_ptr_copy NonUniformEXT - OpDecorate %ssbo_ptr_copy NonUniformEXT - - OpDecorate %uSamps DescriptorSet 1 - OpDecorate %uSamps Binding 0 - OpDecorate %vUV Location 1 - OpDecorate %uCombinedSamplers DescriptorSet 0 - OpDecorate %uCombinedSamplers Binding 4 - OpDecorate %_arr_v4float_uint_64 ArrayStride 16 - OpMemberDecorate %UBO 0 Offset 0 - OpDecorate %UBO Block - OpDecorate %ubos DescriptorSet 2 - OpDecorate %ubos Binding 0 - OpDecorate %_runtimearr_v4float ArrayStride 16 - OpMemberDecorate %SSBO 0 NonWritable - OpMemberDecorate %SSBO 0 Offset 0 - OpDecorate %SSBO BufferBlock - OpDecorate %ssbos DescriptorSet 3 - OpDecorate %ssbos Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 -%_ptr_Function_int = OpTypePointer Function %int -%_ptr_Input_int = OpTypePointer Input %int - %vIndex = OpVariable %_ptr_Input_int Input - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %16 = OpTypeImage %float 2D 0 0 0 1 Unknown -%_runtimearr_16 = OpTypeRuntimeArray %16 -%_ptr_UniformConstant__runtimearr_16 = OpTypePointer UniformConstant %_runtimearr_16 - %uSamplers = OpVariable %_ptr_UniformConstant__runtimearr_16 UniformConstant - %int_10 = OpConstant %int 10 -%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16 - %27 = OpTypeSampler -%_runtimearr_27 = OpTypeRuntimeArray %27 -%_ptr_UniformConstant__runtimearr_27 = OpTypePointer UniformConstant %_runtimearr_27 - %uSamps = OpVariable %_ptr_UniformConstant__runtimearr_27 UniformConstant - %int_40 = OpConstant %int 40 -%_ptr_UniformConstant_27 = OpTypePointer UniformConstant %27 - %38 = OpTypeSampledImage %16 - %v2float = OpTypeVector %float 2 -%_ptr_Input_v2float = OpTypePointer Input %v2float - %vUV = OpVariable %_ptr_Input_v2float Input -%_runtimearr_38 = OpTypeRuntimeArray %38 -%_ptr_UniformConstant__runtimearr_38 = OpTypePointer UniformConstant %_runtimearr_38 -%uCombinedSamplers = OpVariable %_ptr_UniformConstant__runtimearr_38 UniformConstant -%_ptr_UniformConstant_38 = OpTypePointer UniformConstant %38 - %uint = OpTypeInt 32 0 - %uint_64 = OpConstant %uint 64 -%_arr_v4float_uint_64 = OpTypeArray %v4float %uint_64 - %UBO = OpTypeStruct %_arr_v4float_uint_64 -%_runtimearr_UBO = OpTypeRuntimeArray %UBO -%_ptr_Uniform__runtimearr_UBO = OpTypePointer Uniform %_runtimearr_UBO - %ubos = OpVariable %_ptr_Uniform__runtimearr_UBO Uniform - %int_20 = OpConstant %int 20 - %int_0 = OpConstant %int 0 -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float -%_runtimearr_v4float = OpTypeRuntimeArray %v4float - %SSBO = OpTypeStruct %_runtimearr_v4float -%_runtimearr_SSBO = OpTypeRuntimeArray %SSBO -%_ptr_Uniform__runtimearr_SSBO = OpTypePointer Uniform %_runtimearr_SSBO - %ssbos = OpVariable %_ptr_Uniform__runtimearr_SSBO Uniform - %int_50 = OpConstant %int 50 - %int_60 = OpConstant %int 60 - %main = OpFunction %void None %3 - %5 = OpLabel - %i = OpVariable %_ptr_Function_int Function - %11 = OpLoad %int %vIndex - OpStore %i %11 - %20 = OpLoad %int %i - %22 = OpIAdd %int %20 %int_10 - %23 = OpCopyObject %int %22 - %25 = OpAccessChain %_ptr_UniformConstant_16 %uSamplers %23 - %26 = OpLoad %16 %25 - %31 = OpLoad %int %i - %33 = OpIAdd %int %31 %int_40 - %34 = OpCopyObject %int %33 - %36 = OpAccessChain %_ptr_UniformConstant_27 %uSamps %34 - %37 = OpLoad %27 %36 - %sampled_image = OpSampledImage %38 %26 %37 - %43 = OpLoad %v2float %vUV - %44 = OpImageSampleImplicitLod %v4float %sampled_image %43 - OpStore %FragColor %44 - %48 = OpLoad %int %i - %49 = OpIAdd %int %48 %int_10 - %50 = OpCopyObject %int %49 - %52 = OpAccessChain %_ptr_UniformConstant_38 %uCombinedSamplers %50 - %combined_sampler = OpLoad %38 %52 - %54 = OpLoad %v2float %vUV - %55 = OpImageSampleImplicitLod %v4float %combined_sampler %54 - OpStore %FragColor %55 - %63 = OpLoad %int %i - %65 = OpIAdd %int %63 %int_20 - %66 = OpCopyObject %int %65 - %68 = OpLoad %int %i - %69 = OpIAdd %int %68 %int_40 - %70 = OpCopyObject %int %69 - %ubo_ptr = OpAccessChain %_ptr_Uniform_v4float %ubos %66 %int_0 %70 - %ubo_ptr_copy = OpCopyObject %_ptr_Uniform_v4float %ubo_ptr - %73 = OpLoad %v4float %ubo_ptr_copy - %74 = OpLoad %v4float %FragColor - %75 = OpFAdd %v4float %74 %73 - OpStore %FragColor %75 - %81 = OpLoad %int %i - %83 = OpIAdd %int %81 %int_50 - %84 = OpCopyObject %int %83 - %85 = OpLoad %int %i - %87 = OpIAdd %int %85 %int_60 - %88 = OpCopyObject %int %87 - %ssbo_ptr = OpAccessChain %_ptr_Uniform_v4float %ssbos %84 %int_0 %88 - %ssbo_ptr_copy = OpCopyObject %_ptr_Uniform_v4float %ssbo_ptr - %90 = OpLoad %v4float %ssbo_ptr_copy - %91 = OpLoad %v4float %FragColor - %92 = OpFAdd %v4float %91 %90 - OpStore %FragColor %92 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/nonuniform-ssbo.sm51.nonuniformresource.asm.frag b/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/nonuniform-ssbo.sm51.nonuniformresource.asm.frag deleted file mode 100644 index c5428a8bb9..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/nonuniform-ssbo.sm51.nonuniformresource.asm.frag +++ /dev/null @@ -1,99 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 59 -; Schema: 0 - OpCapability Shader - OpCapability ShaderNonUniform - OpCapability RuntimeDescriptorArray - OpCapability StorageBufferArrayNonUniformIndexing - OpExtension "SPV_EXT_descriptor_indexing" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %vIndex %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpSourceExtension "GL_EXT_nonuniform_qualifier" - OpSourceExtension "GL_EXT_samplerless_texture_functions" - OpName %main "main" - OpName %i "i" - OpName %vIndex "vIndex" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "counter" - OpMemberName %SSBO 1 "v" - OpName %ssbos "ssbos" - OpName %FragColor "FragColor" - OpDecorate %vIndex Flat - OpDecorate %vIndex Location 0 - OpDecorate %_runtimearr_v4float ArrayStride 16 - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %SSBO 1 Offset 16 - OpDecorate %SSBO BufferBlock - OpDecorate %ssbos DescriptorSet 0 - OpDecorate %ssbos Binding 3 - OpDecorate %32 NonUniform - OpDecorate %39 NonUniform - OpDecorate %49 NonUniform - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 -%_ptr_Function_int = OpTypePointer Function %int -%_ptr_Input_int = OpTypePointer Input %int - %vIndex = OpVariable %_ptr_Input_int Input - %uint = OpTypeInt 32 0 - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_runtimearr_v4float = OpTypeRuntimeArray %v4float - %SSBO = OpTypeStruct %uint %_runtimearr_v4float -%_runtimearr_SSBO = OpTypeRuntimeArray %SSBO -%_ptr_Uniform__runtimearr_SSBO = OpTypePointer Uniform %_runtimearr_SSBO - %ssbos = OpVariable %_ptr_Uniform__runtimearr_SSBO Uniform - %int_60 = OpConstant %int 60 - %int_1 = OpConstant %int 1 - %int_70 = OpConstant %int 70 - %float_20 = OpConstant %float 20 - %30 = OpConstantComposite %v4float %float_20 %float_20 %float_20 %float_20 -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float - %int_100 = OpConstant %int 100 - %int_0 = OpConstant %int 0 -%_ptr_Uniform_uint = OpTypePointer Uniform %uint - %uint_100 = OpConstant %uint 100 - %uint_1 = OpConstant %uint 1 - %uint_0 = OpConstant %uint 0 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %uint_2 = OpConstant %uint 2 -%_ptr_Output_float = OpTypePointer Output %float - %main = OpFunction %void None %3 - %5 = OpLabel - %i = OpVariable %_ptr_Function_int Function - %11 = OpLoad %int %vIndex - OpStore %i %11 - %20 = OpLoad %int %i - %22 = OpIAdd %int %20 %int_60 - %23 = OpCopyObject %int %22 - %25 = OpLoad %int %i - %27 = OpIAdd %int %25 %int_70 - %28 = OpCopyObject %int %27 - %32 = OpAccessChain %_ptr_Uniform_v4float %ssbos %23 %int_1 %28 - OpStore %32 %30 - %33 = OpLoad %int %i - %35 = OpIAdd %int %33 %int_100 - %36 = OpCopyObject %int %35 - %39 = OpAccessChain %_ptr_Uniform_uint %ssbos %36 %int_0 - %43 = OpAtomicIAdd %uint %39 %uint_1 %uint_0 %uint_100 - %46 = OpLoad %int %i - %47 = OpCopyObject %int %46 - %49 = OpAccessChain %_ptr_Uniform_SSBO %ssbos %47 - %50 = OpArrayLength %uint %49 1 - %51 = OpBitcast %int %50 - %52 = OpConvertSToF %float %51 - %55 = OpAccessChain %_ptr_Output_float %FragColor %uint_2 - %56 = OpLoad %float %55 - %57 = OpFAdd %float %56 %52 - %58 = OpAccessChain %_ptr_Output_float %FragColor %uint_2 - OpStore %58 %57 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/only-initializer-frag-depth.asm.frag b/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/only-initializer-frag-depth.asm.frag deleted file mode 100644 index 17aab1d8f7..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/only-initializer-frag-depth.asm.frag +++ /dev/null @@ -1,25 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 10 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %gl_FragDepth - OpExecutionMode %main OriginUpperLeft - OpExecutionMode %main DepthReplacing - OpSource GLSL 450 - OpName %main "main" - OpName %gl_FragDepth "gl_FragDepth" - OpDecorate %gl_FragDepth BuiltIn FragDepth - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 -%_ptr_Output_float = OpTypePointer Output %float - %float_0_5 = OpConstant %float 0.5 -%gl_FragDepth = OpVariable %_ptr_Output_float Output %float_0_5 - %main = OpFunction %void None %3 - %5 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/phi.zero-initialize.asm.frag b/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/phi.zero-initialize.asm.frag deleted file mode 100644 index 3696660d36..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/phi.zero-initialize.asm.frag +++ /dev/null @@ -1,69 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 40 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %vColor %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %vColor "vColor" - OpName %uninit_function_int "uninit_function_int" - OpName %FragColor "FragColor" - OpName %uninit_int "uninit_int" - OpName %uninit_vector "uninit_vector" - OpName %uninit_matrix "uninit_matrix" - OpName %Foo "Foo" - OpMemberName %Foo 0 "a" - OpName %uninit_foo "uninit_foo" - OpDecorate %vColor Location 0 - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Input_v4float = OpTypePointer Input %v4float - %vColor = OpVariable %_ptr_Input_v4float Input - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 -%_ptr_Input_float = OpTypePointer Input %float - %float_10 = OpConstant %float 10 - %bool = OpTypeBool - %int = OpTypeInt 32 1 -%_ptr_Function_int = OpTypePointer Function %int - %int_10 = OpConstant %int 10 - %int_20 = OpConstant %int 20 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output -%_ptr_Private_int = OpTypePointer Private %int - %uninit_int = OpUndef %int - %v4int = OpTypeVector %int 4 -%_ptr_Private_v4int = OpTypePointer Private %v4int -%uninit_vector = OpUndef %v4int -%mat4v4float = OpTypeMatrix %v4float 4 -%_ptr_Private_mat4v4float = OpTypePointer Private %mat4v4float -%uninit_matrix = OpUndef %mat4v4float - %Foo = OpTypeStruct %int -%_ptr_Private_Foo = OpTypePointer Private %Foo - %uninit_foo = OpUndef %Foo - %main = OpFunction %void None %3 - %5 = OpLabel -%uninit_function_int = OpVariable %_ptr_Function_int Function - %13 = OpAccessChain %_ptr_Input_float %vColor %uint_0 - %14 = OpLoad %float %13 - %17 = OpFOrdGreaterThan %bool %14 %float_10 - OpSelectionMerge %19 None - OpBranchConditional %17 %18 %24 - %18 = OpLabel - OpBranch %19 - %24 = OpLabel - OpBranch %19 - %19 = OpLabel - %27 = OpPhi %int %int_10 %18 %int_20 %24 - %28 = OpLoad %v4float %vColor - OpStore %FragColor %28 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/pixel-interlock-callstack.sm51.fxconly.asm.frag b/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/pixel-interlock-callstack.sm51.fxconly.asm.frag deleted file mode 100644 index ebd8d6bab7..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/pixel-interlock-callstack.sm51.fxconly.asm.frag +++ /dev/null @@ -1,89 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 45 -; Schema: 0 - OpCapability Shader - OpCapability FragmentShaderPixelInterlockEXT - OpExtension "SPV_EXT_fragment_shader_interlock" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %gl_FragCoord - OpExecutionMode %main OriginUpperLeft - OpExecutionMode %main PixelInterlockOrderedEXT - OpSource GLSL 450 - OpSourceExtension "GL_ARB_fragment_shader_interlock" - OpName %main "main" - OpName %callee2_ "callee2(" - OpName %callee_ "callee(" - OpName %SSBO1 "SSBO1" - OpMemberName %SSBO1 0 "values1" - OpName %_ "" - OpName %gl_FragCoord "gl_FragCoord" - OpName %SSBO0 "SSBO0" - OpMemberName %SSBO0 0 "values0" - OpName %__0 "" - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %SSBO1 0 Offset 0 - OpDecorate %SSBO1 BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 1 - OpDecorate %gl_FragCoord BuiltIn FragCoord - OpDecorate %_runtimearr_uint_0 ArrayStride 4 - OpMemberDecorate %SSBO0 0 Offset 0 - OpDecorate %SSBO0 BufferBlock - OpDecorate %__0 DescriptorSet 0 - OpDecorate %__0 Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 -%_runtimearr_uint = OpTypeRuntimeArray %uint - %SSBO1 = OpTypeStruct %_runtimearr_uint -%_ptr_Uniform_SSBO1 = OpTypePointer Uniform %SSBO1 - %_ = OpVariable %_ptr_Uniform_SSBO1 Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Input_v4float = OpTypePointer Input %v4float -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input - %uint_0 = OpConstant %uint 0 -%_ptr_Input_float = OpTypePointer Input %float - %uint_1 = OpConstant %uint 1 -%_ptr_Uniform_uint = OpTypePointer Uniform %uint -%_runtimearr_uint_0 = OpTypeRuntimeArray %uint - %SSBO0 = OpTypeStruct %_runtimearr_uint_0 -%_ptr_Uniform_SSBO0 = OpTypePointer Uniform %SSBO0 - %__0 = OpVariable %_ptr_Uniform_SSBO0 Uniform - %main = OpFunction %void None %3 - %5 = OpLabel - %44 = OpFunctionCall %void %callee_ - OpReturn - OpFunctionEnd - %callee2_ = OpFunction %void None %3 - %7 = OpLabel - %23 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_0 - %24 = OpLoad %float %23 - %25 = OpConvertFToS %int %24 - %28 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 %25 - %29 = OpLoad %uint %28 - %30 = OpIAdd %uint %29 %uint_1 - %31 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 %25 - OpStore %31 %30 - OpReturn - OpFunctionEnd - %callee_ = OpFunction %void None %3 - %9 = OpLabel - %36 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_0 - %37 = OpLoad %float %36 - %38 = OpConvertFToS %int %37 - %39 = OpAccessChain %_ptr_Uniform_uint %__0 %int_0 %38 - %40 = OpLoad %uint %39 - %41 = OpIAdd %uint %40 %uint_1 - %42 = OpAccessChain %_ptr_Uniform_uint %__0 %int_0 %38 - OpStore %42 %41 - OpBeginInvocationInterlockEXT - %43 = OpFunctionCall %void %callee2_ - OpEndInvocationInterlockEXT - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/pixel-interlock-control-flow.sm51.fxconly.asm.frag b/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/pixel-interlock-control-flow.sm51.fxconly.asm.frag deleted file mode 100644 index 69b8f91120..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/pixel-interlock-control-flow.sm51.fxconly.asm.frag +++ /dev/null @@ -1,121 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 45 -; Schema: 0 - OpCapability Shader - OpCapability FragmentShaderPixelInterlockEXT - OpExtension "SPV_EXT_fragment_shader_interlock" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %gl_FragCoord - OpExecutionMode %main OriginUpperLeft - OpExecutionMode %main PixelInterlockOrderedEXT - OpSource GLSL 450 - OpSourceExtension "GL_ARB_fragment_shader_interlock" - OpName %main "main" - OpName %callee2_ "callee2(" - OpName %callee_ "callee(" - OpName %SSBO1 "SSBO1" - OpMemberName %SSBO1 0 "values1" - OpName %_ "" - OpName %gl_FragCoord "gl_FragCoord" - OpName %SSBO0 "SSBO0" - OpMemberName %SSBO0 0 "values0" - OpName %__0 "" - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %SSBO1 0 Offset 0 - OpDecorate %SSBO1 BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 1 - OpDecorate %gl_FragCoord BuiltIn FragCoord - OpDecorate %_runtimearr_uint_0 ArrayStride 4 - OpMemberDecorate %SSBO0 0 Offset 0 - OpDecorate %SSBO0 BufferBlock - OpDecorate %__0 DescriptorSet 0 - OpDecorate %__0 Binding 0 - - OpMemberDecorate %SSBO2 0 Offset 0 - OpDecorate %SSBO2 BufferBlock - OpDecorate %ssbo2 DescriptorSet 0 - OpDecorate %ssbo2 Binding 2 - - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 -%_runtimearr_uint = OpTypeRuntimeArray %uint - %SSBO1 = OpTypeStruct %_runtimearr_uint - %SSBO2 = OpTypeStruct %_runtimearr_uint -%_ptr_Uniform_SSBO1 = OpTypePointer Uniform %SSBO1 -%_ptr_Uniform_SSBO2 = OpTypePointer Uniform %SSBO2 - %_ = OpVariable %_ptr_Uniform_SSBO1 Uniform - %ssbo2 = OpVariable %_ptr_Uniform_SSBO2 Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %uint_4 = OpConstant %uint 4 - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %bool = OpTypeBool - %true = OpConstantTrue %bool -%_ptr_Input_v4float = OpTypePointer Input %v4float -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input - %uint_0 = OpConstant %uint 0 -%_ptr_Input_float = OpTypePointer Input %float - %uint_1 = OpConstant %uint 1 -%_ptr_Uniform_uint = OpTypePointer Uniform %uint -%_runtimearr_uint_0 = OpTypeRuntimeArray %uint - %SSBO0 = OpTypeStruct %_runtimearr_uint_0 -%_ptr_Uniform_SSBO0 = OpTypePointer Uniform %SSBO0 - %__0 = OpVariable %_ptr_Uniform_SSBO0 Uniform - %main = OpFunction %void None %3 - %5 = OpLabel - %44 = OpFunctionCall %void %callee_ - %callee3_res = OpFunctionCall %void %callee3_ - OpReturn - OpFunctionEnd - - %callee3_ = OpFunction %void None %3 - %calle3_block = OpLabel - %frag_coord_x_ptr = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_0 - %frag_coord_x = OpLoad %float %frag_coord_x_ptr - %frag_coord_int = OpConvertFToS %int %frag_coord_x - %ssbo_ptr = OpAccessChain %_ptr_Uniform_uint %ssbo2 %int_0 %frag_coord_int - OpStore %ssbo_ptr %uint_4 - OpReturn - OpFunctionEnd - - %callee2_ = OpFunction %void None %3 - %7 = OpLabel - %23 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_0 - %24 = OpLoad %float %23 - %25 = OpConvertFToS %int %24 - %28 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 %25 - %29 = OpLoad %uint %28 - %30 = OpIAdd %uint %29 %uint_1 - %31 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 %25 - OpStore %31 %30 - OpReturn - OpFunctionEnd - %callee_ = OpFunction %void None %3 - %9 = OpLabel - %36 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_0 - %37 = OpLoad %float %36 - %38 = OpConvertFToS %int %37 - %39 = OpAccessChain %_ptr_Uniform_uint %__0 %int_0 %38 - %40 = OpLoad %uint %39 - %41 = OpIAdd %uint %40 %uint_1 - %42 = OpAccessChain %_ptr_Uniform_uint %__0 %int_0 %38 - OpStore %42 %41 - %43 = OpFunctionCall %void %callee2_ - - OpSelectionMerge %merged_block None - OpBranchConditional %true %dummy_block %merged_block - %dummy_block = OpLabel - OpBeginInvocationInterlockEXT - OpEndInvocationInterlockEXT - OpBranch %merged_block - - %merged_block = OpLabel - OpReturn - - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/pixel-interlock-split-functions.sm51.fxconly.asm.frag b/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/pixel-interlock-split-functions.sm51.fxconly.asm.frag deleted file mode 100644 index 7c0fe9a2b2..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/pixel-interlock-split-functions.sm51.fxconly.asm.frag +++ /dev/null @@ -1,102 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 45 -; Schema: 0 - OpCapability Shader - OpCapability FragmentShaderPixelInterlockEXT - OpExtension "SPV_EXT_fragment_shader_interlock" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %gl_FragCoord - OpExecutionMode %main OriginUpperLeft - OpExecutionMode %main PixelInterlockOrderedEXT - OpSource GLSL 450 - OpSourceExtension "GL_ARB_fragment_shader_interlock" - OpName %main "main" - OpName %callee2_ "callee2(" - OpName %callee_ "callee(" - OpName %SSBO1 "SSBO1" - OpMemberName %SSBO1 0 "values1" - OpName %_ "" - OpName %gl_FragCoord "gl_FragCoord" - OpName %SSBO0 "SSBO0" - OpMemberName %SSBO0 0 "values0" - OpName %__0 "" - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %SSBO1 0 Offset 0 - OpDecorate %SSBO1 BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 1 - OpDecorate %gl_FragCoord BuiltIn FragCoord - OpDecorate %_runtimearr_uint_0 ArrayStride 4 - OpMemberDecorate %SSBO0 0 Offset 0 - OpDecorate %SSBO0 BufferBlock - OpDecorate %__0 DescriptorSet 0 - OpDecorate %__0 Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 -%_runtimearr_uint = OpTypeRuntimeArray %uint - %SSBO1 = OpTypeStruct %_runtimearr_uint -%_ptr_Uniform_SSBO1 = OpTypePointer Uniform %SSBO1 - %_ = OpVariable %_ptr_Uniform_SSBO1 Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Input_v4float = OpTypePointer Input %v4float -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input - %uint_0 = OpConstant %uint 0 -%_ptr_Input_float = OpTypePointer Input %float - %uint_1 = OpConstant %uint 1 -%_ptr_Uniform_uint = OpTypePointer Uniform %uint -%_runtimearr_uint_0 = OpTypeRuntimeArray %uint - %SSBO0 = OpTypeStruct %_runtimearr_uint_0 -%_ptr_Uniform_SSBO0 = OpTypePointer Uniform %SSBO0 - %__0 = OpVariable %_ptr_Uniform_SSBO0 Uniform - %main = OpFunction %void None %3 - %5 = OpLabel - %44 = OpFunctionCall %void %callee_ - %call3res = OpFunctionCall %void %callee3_ - %call4res = OpFunctionCall %void %callee4_ - OpReturn - OpFunctionEnd - - %callee3_ = OpFunction %void None %3 - %begin3 = OpLabel - OpBeginInvocationInterlockEXT - OpReturn - OpFunctionEnd - - %callee4_ = OpFunction %void None %3 - %begin4 = OpLabel - OpEndInvocationInterlockEXT - OpReturn - OpFunctionEnd - - %callee2_ = OpFunction %void None %3 - %7 = OpLabel - %23 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_0 - %24 = OpLoad %float %23 - %25 = OpConvertFToS %int %24 - %28 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 %25 - %29 = OpLoad %uint %28 - %30 = OpIAdd %uint %29 %uint_1 - %31 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 %25 - OpStore %31 %30 - OpReturn - OpFunctionEnd - %callee_ = OpFunction %void None %3 - %9 = OpLabel - %36 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_0 - %37 = OpLoad %float %36 - %38 = OpConvertFToS %int %37 - %39 = OpAccessChain %_ptr_Uniform_uint %__0 %int_0 %38 - %40 = OpLoad %uint %39 - %41 = OpIAdd %uint %40 %uint_1 - %42 = OpAccessChain %_ptr_Uniform_uint %__0 %int_0 %38 - OpStore %42 %41 - %43 = OpFunctionCall %void %callee2_ - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/reserved-function-identifier.asm.frag b/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/reserved-function-identifier.asm.frag deleted file mode 100644 index a5a16f2873..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/reserved-function-identifier.asm.frag +++ /dev/null @@ -1,60 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 37 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %ACOS_f1_ "mat3" - OpName %a "a" - OpName %ACOS_i1_ "gl_Foo" - OpName %a_0 "a" - OpName %FragColor "FragColor" - OpName %param "param" - OpName %param_0 "param" - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 -%_ptr_Function_float = OpTypePointer Function %float - %8 = OpTypeFunction %float %_ptr_Function_float - %int = OpTypeInt 32 1 -%_ptr_Function_int = OpTypePointer Function %int - %14 = OpTypeFunction %float %_ptr_Function_int - %float_1 = OpConstant %float 1 -%_ptr_Output_float = OpTypePointer Output %float - %FragColor = OpVariable %_ptr_Output_float Output - %float_2 = OpConstant %float 2 - %int_4 = OpConstant %int 4 - %main = OpFunction %void None %3 - %5 = OpLabel - %param = OpVariable %_ptr_Function_float Function - %param_0 = OpVariable %_ptr_Function_int Function - OpStore %param %float_2 - %32 = OpFunctionCall %float %ACOS_f1_ %param - OpStore %param_0 %int_4 - %35 = OpFunctionCall %float %ACOS_i1_ %param_0 - %36 = OpFAdd %float %32 %35 - OpStore %FragColor %36 - OpReturn - OpFunctionEnd - %ACOS_f1_ = OpFunction %float None %8 - %a = OpFunctionParameter %_ptr_Function_float - %11 = OpLabel - %18 = OpLoad %float %a - %20 = OpFAdd %float %18 %float_1 - OpReturnValue %20 - OpFunctionEnd - %ACOS_i1_ = OpFunction %float None %14 - %a_0 = OpFunctionParameter %_ptr_Function_int - %17 = OpLabel - %23 = OpLoad %int %a_0 - %24 = OpConvertSToF %float %23 - %25 = OpFAdd %float %24 %float_1 - OpReturnValue %25 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/struct-packing-last-element-array-matrix-rule.invalid.asm.frag b/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/struct-packing-last-element-array-matrix-rule.invalid.asm.frag deleted file mode 100644 index 421e466093..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/struct-packing-last-element-array-matrix-rule.invalid.asm.frag +++ /dev/null @@ -1,77 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 33 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %FragColor "FragColor" - OpName %Foo "Foo" - OpMemberName %Foo 0 "m" - OpMemberName %Foo 1 "v" - OpName %FooUBO "FooUBO" - OpMemberName %FooUBO 0 "foo" - OpName %_ "" - OpName %Bar "Bar" - OpMemberName %Bar 0 "m" - OpMemberName %Bar 1 "v" - OpName %BarUBO "BarUBO" - OpMemberName %BarUBO 0 "bar" - OpName %__0 "" - OpDecorate %FragColor Location 0 - OpDecorate %_arr_mat3v3float_uint_2 ArrayStride 48 - OpMemberDecorate %Foo 0 ColMajor - OpMemberDecorate %Foo 0 Offset 0 - OpMemberDecorate %Foo 0 MatrixStride 16 - OpMemberDecorate %Foo 1 Offset 92 - OpMemberDecorate %FooUBO 0 Offset 0 - OpDecorate %FooUBO Block - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - OpMemberDecorate %Bar 0 ColMajor - OpMemberDecorate %Bar 0 Offset 0 - OpMemberDecorate %Bar 0 MatrixStride 16 - OpMemberDecorate %Bar 1 Offset 44 - OpMemberDecorate %BarUBO 0 Offset 0 - OpDecorate %BarUBO Block - OpDecorate %__0 DescriptorSet 0 - OpDecorate %__0 Binding 1 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %v3float = OpTypeVector %float 3 -%mat3v3float = OpTypeMatrix %v3float 3 - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 -%_arr_mat3v3float_uint_2 = OpTypeArray %mat3v3float %uint_2 - %Foo = OpTypeStruct %_arr_mat3v3float_uint_2 %float - %FooUBO = OpTypeStruct %Foo -%_ptr_Uniform_FooUBO = OpTypePointer Uniform %FooUBO - %_ = OpVariable %_ptr_Uniform_FooUBO Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 -%_ptr_Uniform_float = OpTypePointer Uniform %float - %Bar = OpTypeStruct %mat3v3float %float - %BarUBO = OpTypeStruct %Bar -%_ptr_Uniform_BarUBO = OpTypePointer Uniform %BarUBO - %__0 = OpVariable %_ptr_Uniform_BarUBO Uniform - %main = OpFunction %void None %3 - %5 = OpLabel - %23 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_1 - %24 = OpLoad %float %23 - %29 = OpAccessChain %_ptr_Uniform_float %__0 %int_0 %int_1 - %30 = OpLoad %float %29 - %31 = OpFAdd %float %24 %30 - %32 = OpCompositeConstruct %v4float %31 %31 %31 %31 - OpStore %FragColor %32 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/subgroup-arithmetic-cast.invalid.nofxc.sm60.asm.frag b/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/subgroup-arithmetic-cast.invalid.nofxc.sm60.asm.frag deleted file mode 100644 index a9b34893c8..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/subgroup-arithmetic-cast.invalid.nofxc.sm60.asm.frag +++ /dev/null @@ -1,65 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 78 -; Schema: 0 - OpCapability Shader - OpCapability GroupNonUniform - OpCapability GroupNonUniformArithmetic - OpCapability GroupNonUniformClustered - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %index %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpSourceExtension "GL_KHR_shader_subgroup_arithmetic" - OpSourceExtension "GL_KHR_shader_subgroup_basic" - OpSourceExtension "GL_KHR_shader_subgroup_clustered" - OpName %main "main" - OpName %index "index" - OpName %FragColor "FragColor" - OpDecorate %index Flat - OpDecorate %index Location 0 - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 -%_ptr_Function_uint = OpTypePointer Function %uint - %uint_0 = OpConstant %uint 0 - %int = OpTypeInt 32 1 -%_ptr_Input_int = OpTypePointer Input %int - %index = OpVariable %_ptr_Input_int Input - %uint_3 = OpConstant %uint 3 - %uint_4 = OpConstant %uint 4 -%_ptr_Output_uint = OpTypePointer Output %uint - %FragColor = OpVariable %_ptr_Output_uint Output - %main = OpFunction %void None %3 - %5 = OpLabel - %i = OpLoad %int %index - %u = OpBitcast %uint %i - %res0 = OpGroupNonUniformSMin %uint %uint_3 Reduce %i - %res1 = OpGroupNonUniformSMax %uint %uint_3 Reduce %u - %res2 = OpGroupNonUniformUMin %uint %uint_3 Reduce %i - %res3 = OpGroupNonUniformUMax %uint %uint_3 Reduce %u - ;%res4 = OpGroupNonUniformSMax %uint %uint_3 InclusiveScan %i - ;%res5 = OpGroupNonUniformSMin %uint %uint_3 InclusiveScan %u - ;%res6 = OpGroupNonUniformUMax %uint %uint_3 ExclusiveScan %i - ;%res7 = OpGroupNonUniformUMin %uint %uint_3 ExclusiveScan %u - ;%res8 = OpGroupNonUniformSMin %uint %uint_3 ClusteredReduce %i %uint_4 - ;%res9 = OpGroupNonUniformSMax %uint %uint_3 ClusteredReduce %u %uint_4 - ;%res10 = OpGroupNonUniformUMin %uint %uint_3 ClusteredReduce %i %uint_4 - ;%res11 = OpGroupNonUniformUMax %uint %uint_3 ClusteredReduce %u %uint_4 - OpStore %FragColor %res0 - OpStore %FragColor %res1 - OpStore %FragColor %res2 - OpStore %FragColor %res3 - ;OpStore %FragColor %res4 - ;OpStore %FragColor %res5 - ;OpStore %FragColor %res6 - ;OpStore %FragColor %res7 - ;OpStore %FragColor %res8 - ;OpStore %FragColor %res9 - ;OpStore %FragColor %res10 - ;OpStore %FragColor %res11 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/switch-block-case-fallthrough.asm.invalid.frag b/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/switch-block-case-fallthrough.asm.invalid.frag deleted file mode 100644 index 6556c3c8c4..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/switch-block-case-fallthrough.asm.invalid.frag +++ /dev/null @@ -1,80 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 29 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %vIndex %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %vIndex "vIndex" - OpName %FragColor "FragColor" - OpName %i "i" - OpName %j "j" - OpDecorate %vIndex Flat - OpDecorate %vIndex Location 0 - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %bool = OpTypeBool - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 - %int_2 = OpConstant %int 2 - %int_3 = OpConstant %int 3 -%_ptr_Input_int = OpTypePointer Input %int - %vIndex = OpVariable %_ptr_Input_int Input - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output -%_ptr_Function_int = OpTypePointer Function %int - %main = OpFunction %void None %3 - %header = OpLabel - %i = OpVariable %_ptr_Function_int Function %int_0 - %j = OpVariable %_ptr_Function_int Function - %9 = OpLoad %int %vIndex - OpSelectionMerge %switch_merge None - OpSwitch %9 %default_case 100 %default_case 0 %case_0 1 %case_1 11 %case_1 2 %case_2 3 %case_3 4 %case_4 5 %case_5 - - %case_0 = OpLabel - OpBranch %default_case - - %default_case = OpLabel - %default_case_phi = OpPhi %int %int_2 %header %int_3 %case_0 - ; Test what happens when a case block dominates access to a variable. - OpStore %j %default_case_phi - OpBranch %case_1 - - %case_1 = OpLabel - ; Test phi nodes between case labels. - %case_1_phi = OpPhi %int %int_0 %default_case %int_1 %header - OpStore %j %case_1_phi - OpBranch %case_2 - - %case_2 = OpLabel - OpBranch %switch_merge - - %case_3 = OpLabel - ; Conditionally branch to another case block. This is really dumb, but it is apparently legal. - %case_3_cond = OpSGreaterThan %bool %9 %int_3 - OpBranchConditional %case_3_cond %case_4 %switch_merge - - %case_4 = OpLabel - ; When emitted from case 3, we should *not* see fallthrough behavior. - OpBranch %case_5 - - %case_5 = OpLabel - OpStore %i %int_0 - OpBranch %switch_merge - - %switch_merge = OpLabel - %26 = OpLoad %int %i - %27 = OpConvertSToF %float %26 - %28 = OpCompositeConstruct %v4float %27 %27 %27 %27 - OpStore %FragColor %28 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/unordered-compare.asm.frag b/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/unordered-compare.asm.frag deleted file mode 100644 index 4ad8fc5abb..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/unordered-compare.asm.frag +++ /dev/null @@ -1,177 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 132 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %A %B %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %test_vector_ "test_vector(" - OpName %test_scalar_ "test_scalar(" - OpName %le "le" - OpName %A "A" - OpName %B "B" - OpName %leq "leq" - OpName %ge "ge" - OpName %geq "geq" - OpName %eq "eq" - OpName %neq "neq" - OpName %le_0 "le" - OpName %leq_0 "leq" - OpName %ge_0 "ge" - OpName %geq_0 "geq" - OpName %eq_0 "eq" - OpName %neq_0 "neq" - OpName %FragColor "FragColor" - OpDecorate %A Location 0 - OpDecorate %B Location 1 - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %8 = OpTypeFunction %v4float - %11 = OpTypeFunction %float - %bool = OpTypeBool - %v4bool = OpTypeVector %bool 4 -%_ptr_Function_v4bool = OpTypePointer Function %v4bool -%_ptr_Input_v4float = OpTypePointer Input %v4float - %A = OpVariable %_ptr_Input_v4float Input - %B = OpVariable %_ptr_Input_v4float Input - %float_0 = OpConstant %float 0 - %float_1 = OpConstant %float 1 - %47 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 - %48 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Function_bool = OpTypePointer Function %bool - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 -%_ptr_Input_float = OpTypePointer Input %float -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %main = OpFunction %void None %3 - %5 = OpLabel - %128 = OpFunctionCall %v4float %test_vector_ - %129 = OpFunctionCall %float %test_scalar_ - %130 = OpCompositeConstruct %v4float %129 %129 %129 %129 - %131 = OpFAdd %v4float %128 %130 - OpStore %FragColor %131 - OpReturn - OpFunctionEnd -%test_vector_ = OpFunction %v4float None %8 - %10 = OpLabel - %le = OpVariable %_ptr_Function_v4bool Function - %leq = OpVariable %_ptr_Function_v4bool Function - %ge = OpVariable %_ptr_Function_v4bool Function - %geq = OpVariable %_ptr_Function_v4bool Function - %eq = OpVariable %_ptr_Function_v4bool Function - %neq = OpVariable %_ptr_Function_v4bool Function - %20 = OpLoad %v4float %A - %22 = OpLoad %v4float %B - %23 = OpFUnordLessThan %v4bool %20 %22 - OpStore %le %23 - %25 = OpLoad %v4float %A - %26 = OpLoad %v4float %B - %27 = OpFUnordLessThanEqual %v4bool %25 %26 - OpStore %leq %27 - %29 = OpLoad %v4float %A - %30 = OpLoad %v4float %B - %31 = OpFUnordGreaterThan %v4bool %29 %30 - OpStore %ge %31 - %33 = OpLoad %v4float %A - %34 = OpLoad %v4float %B - %35 = OpFUnordGreaterThanEqual %v4bool %33 %34 - OpStore %geq %35 - %37 = OpLoad %v4float %A - %38 = OpLoad %v4float %B - %39 = OpFUnordEqual %v4bool %37 %38 - OpStore %eq %39 - %41 = OpLoad %v4float %A - %42 = OpLoad %v4float %B - %43 = OpFUnordNotEqual %v4bool %41 %42 - OpStore %neq %43 - %44 = OpLoad %v4bool %le - %49 = OpSelect %v4float %44 %48 %47 - %50 = OpLoad %v4bool %leq - %51 = OpSelect %v4float %50 %48 %47 - %52 = OpFAdd %v4float %49 %51 - %53 = OpLoad %v4bool %ge - %54 = OpSelect %v4float %53 %48 %47 - %55 = OpFAdd %v4float %52 %54 - %56 = OpLoad %v4bool %geq - %57 = OpSelect %v4float %56 %48 %47 - %58 = OpFAdd %v4float %55 %57 - %59 = OpLoad %v4bool %eq - %60 = OpSelect %v4float %59 %48 %47 - %61 = OpFAdd %v4float %58 %60 - %62 = OpLoad %v4bool %neq - %63 = OpSelect %v4float %62 %48 %47 - %64 = OpFAdd %v4float %61 %63 - OpReturnValue %64 - OpFunctionEnd -%test_scalar_ = OpFunction %float None %11 - %13 = OpLabel - %le_0 = OpVariable %_ptr_Function_bool Function - %leq_0 = OpVariable %_ptr_Function_bool Function - %ge_0 = OpVariable %_ptr_Function_bool Function - %geq_0 = OpVariable %_ptr_Function_bool Function - %eq_0 = OpVariable %_ptr_Function_bool Function - %neq_0 = OpVariable %_ptr_Function_bool Function - %72 = OpAccessChain %_ptr_Input_float %A %uint_0 - %73 = OpLoad %float %72 - %74 = OpAccessChain %_ptr_Input_float %B %uint_0 - %75 = OpLoad %float %74 - %76 = OpFUnordLessThan %bool %73 %75 - OpStore %le_0 %76 - %78 = OpAccessChain %_ptr_Input_float %A %uint_0 - %79 = OpLoad %float %78 - %80 = OpAccessChain %_ptr_Input_float %B %uint_0 - %81 = OpLoad %float %80 - %82 = OpFUnordLessThanEqual %bool %79 %81 - OpStore %leq_0 %82 - %84 = OpAccessChain %_ptr_Input_float %A %uint_0 - %85 = OpLoad %float %84 - %86 = OpAccessChain %_ptr_Input_float %B %uint_0 - %87 = OpLoad %float %86 - %88 = OpFUnordGreaterThan %bool %85 %87 - OpStore %ge_0 %88 - %90 = OpAccessChain %_ptr_Input_float %A %uint_0 - %91 = OpLoad %float %90 - %92 = OpAccessChain %_ptr_Input_float %B %uint_0 - %93 = OpLoad %float %92 - %94 = OpFUnordGreaterThanEqual %bool %91 %93 - OpStore %geq_0 %94 - %96 = OpAccessChain %_ptr_Input_float %A %uint_0 - %97 = OpLoad %float %96 - %98 = OpAccessChain %_ptr_Input_float %B %uint_0 - %99 = OpLoad %float %98 - %100 = OpFUnordEqual %bool %97 %99 - OpStore %eq_0 %100 - %102 = OpAccessChain %_ptr_Input_float %A %uint_0 - %103 = OpLoad %float %102 - %104 = OpAccessChain %_ptr_Input_float %B %uint_0 - %105 = OpLoad %float %104 - %106 = OpFUnordNotEqual %bool %103 %105 - OpStore %neq_0 %106 - %107 = OpLoad %bool %le_0 - %108 = OpSelect %float %107 %float_1 %float_0 - %109 = OpLoad %bool %leq_0 - %110 = OpSelect %float %109 %float_1 %float_0 - %111 = OpFAdd %float %108 %110 - %112 = OpLoad %bool %ge_0 - %113 = OpSelect %float %112 %float_1 %float_0 - %114 = OpFAdd %float %111 %113 - %115 = OpLoad %bool %geq_0 - %116 = OpSelect %float %115 %float_1 %float_0 - %117 = OpFAdd %float %114 %116 - %118 = OpLoad %bool %eq_0 - %119 = OpSelect %float %118 %float_1 %float_0 - %120 = OpFAdd %float %117 %119 - %121 = OpLoad %bool %neq_0 - %122 = OpSelect %float %121 %float_1 %float_0 - %123 = OpFAdd %float %120 %122 - OpReturnValue %123 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/vector-shuffle-undef-index.asm.frag b/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/vector-shuffle-undef-index.asm.frag deleted file mode 100644 index 22c4efca93..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/frag/vector-shuffle-undef-index.asm.frag +++ /dev/null @@ -1,42 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 29 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %vFloat - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %FragColor "FragColor" - OpName %vFloat "vFloat" - OpName %undef "undef" - OpDecorate %FragColor Location 0 - OpDecorate %vFloat Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output -%_ptr_Input_v4float = OpTypePointer Input %v4float - %vFloat = OpVariable %_ptr_Input_v4float Input - %v2float = OpTypeVector %float 2 -%_ptr_Private_v4float = OpTypePointer Private %v4float - %undef = OpUndef %v4float - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 -%_ptr_Private_float = OpTypePointer Private %float - %uint_3 = OpConstant %uint 3 -%_ptr_Input_float = OpTypePointer Input %float - %main = OpFunction %void None %3 - %5 = OpLabel - %13 = OpLoad %v4float %vFloat - %26 = OpVectorShuffle %v4float %13 %undef 4 1 0xffffffff 3 - %27 = OpVectorShuffle %v4float %13 %13 2 1 0xffffffff 3 - %28 = OpFAdd %v4float %26 %27 - OpStore %FragColor %28 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/temporary.zero-initialize.asm.frag b/third_party/spirv-cross/shaders-hlsl-no-opt/asm/temporary.zero-initialize.asm.frag deleted file mode 100644 index eccff08b33..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/temporary.zero-initialize.asm.frag +++ /dev/null @@ -1,93 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 65 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %vA %vB - OpExecutionMode %main OriginUpperLeft - OpSource ESSL 310 - OpName %main "main" - OpName %FragColor "FragColor" - OpName %vA "vA" - OpName %vB "vB" - OpDecorate %FragColor RelaxedPrecision - OpDecorate %FragColor Location 0 - OpDecorate %vA RelaxedPrecision - OpDecorate %vA Flat - OpDecorate %vA Location 0 - OpDecorate %25 RelaxedPrecision - OpDecorate %30 RelaxedPrecision - OpDecorate %vB RelaxedPrecision - OpDecorate %vB Flat - OpDecorate %vB Location 1 - OpDecorate %38 RelaxedPrecision - OpDecorate %40 RelaxedPrecision - OpDecorate %49 RelaxedPrecision - OpDecorate %51 RelaxedPrecision - OpDecorate %53 RelaxedPrecision - OpDecorate %56 RelaxedPrecision - OpDecorate %64 RelaxedPrecision - OpDecorate %58 RelaxedPrecision - OpDecorate %57 RelaxedPrecision - OpDecorate %60 RelaxedPrecision - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %float_0 = OpConstant %float 0 - %11 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_Input_int = OpTypePointer Input %int - %vA = OpVariable %_ptr_Input_int Input - %bool = OpTypeBool - %int_20 = OpConstant %int 20 - %int_50 = OpConstant %int 50 - %vB = OpVariable %_ptr_Input_int Input - %int_40 = OpConstant %int 40 - %int_60 = OpConstant %int 60 - %int_10 = OpConstant %int 10 - %float_1 = OpConstant %float 1 - %63 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 - %main = OpFunction %void None %3 - %5 = OpLabel - OpStore %FragColor %11 - OpBranch %17 - %17 = OpLabel - %60 = OpPhi %int %int_0 %5 %58 %20 - %57 = OpPhi %int %int_0 %5 %56 %20 - %25 = OpLoad %int %vA - %27 = OpSLessThan %bool %57 %25 - OpLoopMerge %19 %20 None - OpBranchConditional %27 %18 %19 - %18 = OpLabel - %30 = OpIAdd %int %25 %57 - %32 = OpIEqual %bool %30 %int_20 - OpSelectionMerge %34 None - OpBranchConditional %32 %33 %36 - %33 = OpLabel - OpBranch %34 - %36 = OpLabel - %38 = OpLoad %int %vB - %40 = OpIAdd %int %38 %57 - %42 = OpIEqual %bool %40 %int_40 - %64 = OpSelect %int %42 %int_60 %60 - OpBranch %34 - %34 = OpLabel - %58 = OpPhi %int %int_50 %33 %64 %36 - %49 = OpIAdd %int %58 %int_10 - %51 = OpLoad %v4float %FragColor - %53 = OpFAdd %v4float %51 %63 - OpStore %FragColor %53 - OpBranch %20 - %20 = OpLabel - %56 = OpIAdd %int %57 %49 - OpBranch %17 - %19 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/vert/block-struct-initializer.asm.vert b/third_party/spirv-cross/shaders-hlsl-no-opt/asm/vert/block-struct-initializer.asm.vert deleted file mode 100644 index a431e6a717..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/vert/block-struct-initializer.asm.vert +++ /dev/null @@ -1,37 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 13 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %main "main" %_ %foo - OpSource GLSL 450 - OpName %main "main" - OpName %Vert "Vert" - OpMemberName %Vert 0 "a" - OpMemberName %Vert 1 "b" - OpName %_ "" - OpName %Foo "Foo" - OpMemberName %Foo 0 "c" - OpMemberName %Foo 1 "d" - OpName %foo "foo" - OpDecorate %Vert Block - OpDecorate %_ Location 0 - OpDecorate %foo Location 2 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %Vert = OpTypeStruct %float %float -%_ptr_Output_Vert = OpTypePointer Output %Vert - %zero_vert = OpConstantNull %Vert - %_ = OpVariable %_ptr_Output_Vert Output %zero_vert - %Foo = OpTypeStruct %float %float -%_ptr_Output_Foo = OpTypePointer Output %Foo -%zero_foo = OpConstantNull %Foo - %foo = OpVariable %_ptr_Output_Foo Output %zero_foo - %main = OpFunction %void None %3 - %5 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/vert/builtin-output-initializer.asm.vert b/third_party/spirv-cross/shaders-hlsl-no-opt/asm/vert/builtin-output-initializer.asm.vert deleted file mode 100644 index aaa68662e5..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/vert/builtin-output-initializer.asm.vert +++ /dev/null @@ -1,44 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 20 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %main "main" %_ - OpSource GLSL 450 - OpName %main "main" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %_ "" - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %uint = OpTypeInt 32 0 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 -%_ptr_Output_gl_PerVertex = OpTypePointer Output %gl_PerVertex - %zero = OpConstantNull %gl_PerVertex - %_ = OpVariable %_ptr_Output_gl_PerVertex Output %zero - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %float_1 = OpConstant %float 1 - %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %main = OpFunction %void None %3 - %5 = OpLabel - %19 = OpAccessChain %_ptr_Output_v4float %_ %int_0 - OpStore %19 %17 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/vert/complex-link-by-name.asm.vert b/third_party/spirv-cross/shaders-hlsl-no-opt/asm/vert/complex-link-by-name.asm.vert deleted file mode 100644 index 94a883c1ed..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/vert/complex-link-by-name.asm.vert +++ /dev/null @@ -1,119 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 59 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %main "main" %_ %output_location_0 %output_location_2 %output_location_3 - OpSource GLSL 450 - OpName %main "main" - OpName %Foo "Struct_vec4" - OpMemberName %Foo 0 "m0" - OpName %c "c" - OpName %Foo_0 "Struct_vec4" - OpMemberName %Foo_0 0 "m0" - OpName %Bar "Struct_vec4" - OpMemberName %Bar 0 "m0" - OpName %UBO "UBO" - OpMemberName %UBO 0 "m0" - OpMemberName %UBO 1 "m1" - OpName %ubo_binding_0 "ubo_binding_0" - OpName %Bar_0 "Struct_vec4" - OpMemberName %Bar_0 0 "m0" - OpName %b "b" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %_ "" - OpName %VertexOut "VertexOut" - OpMemberName %VertexOut 0 "m0" - OpMemberName %VertexOut 1 "m1" - OpName %output_location_0 "output_location_0" - OpName %output_location_2 "output_location_2" - OpName %output_location_3 "output_location_3" - OpMemberDecorate %Foo_0 0 Offset 0 - OpMemberDecorate %Bar 0 Offset 0 - OpMemberDecorate %UBO 0 Offset 0 - OpMemberDecorate %UBO 1 Offset 16 - OpDecorate %UBO Block - OpDecorate %ubo_binding_0 DescriptorSet 0 - OpDecorate %ubo_binding_0 Binding 0 - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - OpDecorate %VertexOut Block - OpDecorate %output_location_0 Location 0 - OpDecorate %output_location_2 Location 2 - OpDecorate %output_location_3 Location 3 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %Foo = OpTypeStruct %v4float -%_ptr_Function_Foo = OpTypePointer Function %Foo - %Foo_0 = OpTypeStruct %v4float - %Bar = OpTypeStruct %v4float - %UBO = OpTypeStruct %Foo_0 %Bar -%_ptr_Uniform_UBO = OpTypePointer Uniform %UBO -%ubo_binding_0 = OpVariable %_ptr_Uniform_UBO Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_Uniform_Foo_0 = OpTypePointer Uniform %Foo_0 -%_ptr_Function_v4float = OpTypePointer Function %v4float - %Bar_0 = OpTypeStruct %v4float -%_ptr_Function_Bar_0 = OpTypePointer Function %Bar_0 - %int_1 = OpConstant %int 1 -%_ptr_Uniform_Bar = OpTypePointer Uniform %Bar - %uint = OpTypeInt 32 0 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 -%_ptr_Output_gl_PerVertex = OpTypePointer Output %gl_PerVertex - %_ = OpVariable %_ptr_Output_gl_PerVertex Output -%_ptr_Output_v4float = OpTypePointer Output %v4float - %VertexOut = OpTypeStruct %Foo %Bar_0 -%_ptr_Output_VertexOut = OpTypePointer Output %VertexOut -%output_location_0 = OpVariable %_ptr_Output_VertexOut Output -%_ptr_Output_Foo = OpTypePointer Output %Foo -%_ptr_Output_Bar_0 = OpTypePointer Output %Bar_0 -%output_location_2 = OpVariable %_ptr_Output_Foo Output -%output_location_3 = OpVariable %_ptr_Output_Bar_0 Output - %main = OpFunction %void None %3 - %5 = OpLabel - %c = OpVariable %_ptr_Function_Foo Function - %b = OpVariable %_ptr_Function_Bar_0 Function - %19 = OpAccessChain %_ptr_Uniform_Foo_0 %ubo_binding_0 %int_0 - %20 = OpLoad %Foo_0 %19 - %21 = OpCompositeExtract %v4float %20 0 - %23 = OpAccessChain %_ptr_Function_v4float %c %int_0 - OpStore %23 %21 - %29 = OpAccessChain %_ptr_Uniform_Bar %ubo_binding_0 %int_1 - %30 = OpLoad %Bar %29 - %31 = OpCompositeExtract %v4float %30 0 - %32 = OpAccessChain %_ptr_Function_v4float %b %int_0 - OpStore %32 %31 - %39 = OpAccessChain %_ptr_Function_v4float %c %int_0 - %40 = OpLoad %v4float %39 - %41 = OpAccessChain %_ptr_Function_v4float %b %int_0 - %42 = OpLoad %v4float %41 - %43 = OpFAdd %v4float %40 %42 - %45 = OpAccessChain %_ptr_Output_v4float %_ %int_0 - OpStore %45 %43 - %49 = OpLoad %Foo %c - %51 = OpAccessChain %_ptr_Output_Foo %output_location_0 %int_0 - OpStore %51 %49 - %52 = OpLoad %Bar_0 %b - %54 = OpAccessChain %_ptr_Output_Bar_0 %output_location_0 %int_1 - OpStore %54 %52 - %56 = OpLoad %Foo %c - OpStore %output_location_2 %56 - %58 = OpLoad %Bar_0 %b - OpStore %output_location_3 %58 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/vert/empty-struct-composite.asm.vert b/third_party/spirv-cross/shaders-hlsl-no-opt/asm/vert/empty-struct-composite.asm.vert deleted file mode 100644 index 038ecaa6e3..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/asm/vert/empty-struct-composite.asm.vert +++ /dev/null @@ -1,36 +0,0 @@ -; SPIR-V -; Version: 1.1 -; Generator: Google rspirv; 0 -; Bound: 17 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %2 "main" - OpName %Test "Test" - OpName %t "t" - OpName %retvar "retvar" - OpName %main "main" - OpName %retvar_0 "retvar" - %void = OpTypeVoid - %6 = OpTypeFunction %void - %Test = OpTypeStruct -%_ptr_Function_Test = OpTypePointer Function %Test -%_ptr_Function_void = OpTypePointer Function %void - %2 = OpFunction %void None %6 - %7 = OpLabel - %t = OpVariable %_ptr_Function_Test Function - %retvar = OpVariable %_ptr_Function_void Function - OpBranch %4 - %4 = OpLabel - %13 = OpCompositeConstruct %Test - OpStore %t %13 - OpReturn - OpFunctionEnd - %main = OpFunction %void None %6 - %15 = OpLabel - %retvar_0 = OpVariable %_ptr_Function_void Function - OpBranch %14 - %14 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/comp/bitfield.comp b/third_party/spirv-cross/shaders-hlsl-no-opt/comp/bitfield.comp deleted file mode 100644 index a2ef9aa0b7..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/comp/bitfield.comp +++ /dev/null @@ -1,44 +0,0 @@ -#version 310 es - -void main() -{ - int signed_value = 0; - uint unsigned_value = 0u; - - ivec3 signed_values = ivec3(0); - uvec3 unsigned_values = uvec3(0u); - - { - int s = bitfieldExtract(signed_value, 5, 20); - uint u = bitfieldExtract(unsigned_value, 6, 21); - - s = bitfieldInsert(s, 40, 5, 4); - u = bitfieldInsert(u, 60u, 5, 4); - - u = bitfieldReverse(u); - s = bitfieldReverse(s); - - int v0 = bitCount(u); - int v1 = bitCount(s); - - int v2 = findMSB(u); - int v3 = findLSB(s); - } - - { - ivec3 s = bitfieldExtract(signed_values, 5, 20); - uvec3 u = bitfieldExtract(unsigned_values, 6, 21); - - s = bitfieldInsert(s, ivec3(40), 5, 4); - u = bitfieldInsert(u, uvec3(60u), 5, 4); - - u = bitfieldReverse(u); - s = bitfieldReverse(s); - - ivec3 v0 = bitCount(u); - ivec3 v1 = bitCount(s); - - ivec3 v2 = findMSB(u); - ivec3 v3 = findLSB(s); - } -} diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/comp/glsl.std450.fxconly.comp b/third_party/spirv-cross/shaders-hlsl-no-opt/comp/glsl.std450.fxconly.comp deleted file mode 100644 index 83b714bc40..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/comp/glsl.std450.fxconly.comp +++ /dev/null @@ -1,130 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -layout(binding = 0, std430) buffer SSBO -{ - float res; - int ires; - uint ures; - - vec4 f32; - ivec4 s32; - uvec4 u32; - - mat2 m2; - mat3 m3; - mat4 m4; -}; - -void main() -{ - float tmp; - vec2 v2; - vec3 v3; - vec4 v4; - int itmp; - - res = round(f32.x); - //res = roundEven(f32.x); - res = trunc(f32.x); - res = abs(f32.x); - ires = abs(s32.x); - res = sign(f32.x); - ires = sign(s32.x); - res = floor(f32.x); - res = ceil(f32.x); - res = fract(f32.x); - res = radians(f32.x); - res = degrees(f32.x); - res = sin(f32.x); - res = cos(f32.x); - res = tan(f32.x); - res = asin(f32.x); - res = acos(f32.x); - res = atan(f32.x); - res = sinh(f32.x); - res = cosh(f32.x); - res = tanh(f32.x); - //res = asinh(f32.x); - //res = acosh(f32.x); - //res = atanh(f32.x); - res = atan(f32.x, f32.y); - res = pow(f32.x, f32.y); - res = exp(f32.x); - res = log(f32.x); - res = exp2(f32.x); - res = log2(f32.x); - res = sqrt(f32.x); - res = inversesqrt(f32.x); - - res = length(f32.x); - res = distance(f32.x, f32.y); - res = normalize(f32.x); - res = faceforward(f32.x, f32.y, f32.z); - res = reflect(f32.x, f32.y); - res = refract(f32.x, f32.y, f32.z); - - res = length(f32.xy); - res = distance(f32.xy, f32.zw); - v2 = normalize(f32.xy); - v2 = faceforward(f32.xy, f32.yz, f32.zw); - v2 = reflect(f32.xy, f32.zw); - v2 = refract(f32.xy, f32.yz, f32.w); - - v3 = cross(f32.xyz, f32.yzw); - - res = determinant(m2); - res = determinant(m3); - res = determinant(m4); - m2 = inverse(m2); - m3 = inverse(m3); - m4 = inverse(m4); - - res = modf(f32.x, tmp); - // ModfStruct - - res = min(f32.x, f32.y); - ures = min(u32.x, u32.y); - ires = min(s32.x, s32.y); - res = max(f32.x, f32.y); - ures = max(u32.x, u32.y); - ires = max(s32.x, s32.y); - - res = clamp(f32.x, f32.y, f32.z); - ures = clamp(u32.x, u32.y, u32.z); - ires = clamp(s32.x, s32.y, s32.z); - - res = mix(f32.x, f32.y, f32.z); - res = step(f32.x, f32.y); - res = smoothstep(f32.x, f32.y, f32.z); - res = fma(f32.x, f32.y, f32.z); - - res = frexp(f32.x, itmp); - - // FrexpStruct - res = ldexp(f32.x, itmp); - - ures = packSnorm4x8(f32); - ures = packUnorm4x8(f32); - ures = packSnorm2x16(f32.xy); - ures = packUnorm2x16(f32.xy); - ures = packHalf2x16(f32.xy); - // packDouble2x32 - - v2 = unpackSnorm2x16(u32.x); - v2 = unpackUnorm2x16(u32.x); - v2 = unpackHalf2x16(u32.x); - v4 = unpackSnorm4x8(u32.x); - v4 = unpackUnorm4x8(u32.x); - // unpackDouble2x32 - - s32 = findLSB(s32); - s32 = findLSB(u32); - s32 = findMSB(s32); - s32 = findMSB(u32); - - // interpolateAtSample - // interpolateAtOffset - - // NMin, NMax, NClamp -} diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/comp/illegal-struct-name.asm.comp b/third_party/spirv-cross/shaders-hlsl-no-opt/comp/illegal-struct-name.asm.comp deleted file mode 100644 index f7a8787d3d..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/comp/illegal-struct-name.asm.comp +++ /dev/null @@ -1,62 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 31 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %Foo "Foo" - OpMemberName %Foo 0 "abs" - OpName %f "f" - OpName %Foo_0 "Foo" - OpMemberName %Foo_0 0 "abs" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "foo" - OpMemberName %SSBO 1 "foo2" - OpName %_ "" - OpName %linear "abs" - OpMemberDecorate %Foo_0 0 Offset 0 - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %SSBO 1 Offset 4 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %Foo = OpTypeStruct %float -%_ptr_Function_Foo = OpTypePointer Function %Foo - %Foo_0 = OpTypeStruct %float - %SSBO = OpTypeStruct %Foo_0 %Foo_0 -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_Uniform_Foo_0 = OpTypePointer Uniform %Foo_0 -%_ptr_Function_float = OpTypePointer Function %float -%_ptr_Function_int = OpTypePointer Function %int - %int_10 = OpConstant %int 10 - %int_1 = OpConstant %int 1 -%_ptr_Uniform_float = OpTypePointer Uniform %float - %main = OpFunction %void None %3 - %5 = OpLabel - %f = OpVariable %_ptr_Function_Foo Function - %linear = OpVariable %_ptr_Function_int Function - %17 = OpAccessChain %_ptr_Uniform_Foo_0 %_ %int_0 - %18 = OpLoad %Foo_0 %17 - %19 = OpCompositeExtract %float %18 0 - %21 = OpAccessChain %_ptr_Function_float %f %int_0 - OpStore %21 %19 - OpStore %linear %int_10 - %26 = OpLoad %Foo %f - %27 = OpAccessChain %_ptr_Uniform_Foo_0 %_ %int_1 - %28 = OpCompositeExtract %float %26 0 - %30 = OpAccessChain %_ptr_Uniform_float %27 %int_0 - OpStore %30 %28 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/comp/subgroups-boolean.invalid.nofxc.sm60.comp b/third_party/spirv-cross/shaders-hlsl-no-opt/comp/subgroups-boolean.invalid.nofxc.sm60.comp deleted file mode 100644 index bc182c5292..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/comp/subgroups-boolean.invalid.nofxc.sm60.comp +++ /dev/null @@ -1,30 +0,0 @@ -#version 450 -#extension GL_KHR_shader_subgroup_basic : require -#extension GL_KHR_shader_subgroup_ballot : require -#extension GL_KHR_shader_subgroup_vote : require -#extension GL_KHR_shader_subgroup_shuffle : require -#extension GL_KHR_shader_subgroup_shuffle_relative : require -#extension GL_KHR_shader_subgroup_arithmetic : require -#extension GL_KHR_shader_subgroup_clustered : require -#extension GL_KHR_shader_subgroup_quad : require -layout(local_size_x = 30) in; - -layout(std430, binding = 0) buffer SSBO -{ - uint FragColor[]; -}; - -void main() -{ - bool v = gl_GlobalInvocationID.x != 3; - bvec4 v4; - v4.x = subgroupOr(v); - v4.y = subgroupAnd(v); - v4.z = subgroupXor(v); - v4.w = subgroupAllEqual(v); - - uvec4 w = uvec4(v4); - FragColor[gl_GlobalInvocationID.x] = w.x + w.y + w.z + w.w; -} - - diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/comp/subgroups.invalid.nofxc.sm60.comp b/third_party/spirv-cross/shaders-hlsl-no-opt/comp/subgroups.invalid.nofxc.sm60.comp deleted file mode 100644 index 0f29d445c1..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/comp/subgroups.invalid.nofxc.sm60.comp +++ /dev/null @@ -1,138 +0,0 @@ -#version 450 -#extension GL_KHR_shader_subgroup_basic : require -#extension GL_KHR_shader_subgroup_ballot : require -#extension GL_KHR_shader_subgroup_vote : require -#extension GL_KHR_shader_subgroup_shuffle : require -#extension GL_KHR_shader_subgroup_shuffle_relative : require -#extension GL_KHR_shader_subgroup_arithmetic : require -#extension GL_KHR_shader_subgroup_clustered : require -#extension GL_KHR_shader_subgroup_quad : require -layout(local_size_x = 1) in; - -layout(std430, binding = 0) buffer SSBO -{ - float FragColor; -}; - -void main() -{ - // basic - //FragColor = float(gl_NumSubgroups); - //FragColor = float(gl_SubgroupID); - FragColor = float(gl_SubgroupSize); - FragColor = float(gl_SubgroupInvocationID); - subgroupBarrier(); - subgroupMemoryBarrier(); - subgroupMemoryBarrierBuffer(); - subgroupMemoryBarrierShared(); - subgroupMemoryBarrierImage(); - bool elected = subgroupElect(); - - // ballot - FragColor = float(gl_SubgroupEqMask); - FragColor = float(gl_SubgroupGeMask); - FragColor = float(gl_SubgroupGtMask); - FragColor = float(gl_SubgroupLeMask); - FragColor = float(gl_SubgroupLtMask); - vec4 broadcasted = subgroupBroadcast(vec4(10.0), 8u); - vec3 first = subgroupBroadcastFirst(vec3(20.0)); - uvec4 ballot_value = subgroupBallot(true); - //bool inverse_ballot_value = subgroupInverseBallot(ballot_value); - //bool bit_extracted = subgroupBallotBitExtract(uvec4(10u), 8u); - uint bit_count = subgroupBallotBitCount(ballot_value); - //uint inclusive_bit_count = subgroupBallotInclusiveBitCount(ballot_value); - //uint exclusive_bit_count = subgroupBallotExclusiveBitCount(ballot_value); - //uint lsb = subgroupBallotFindLSB(ballot_value); - //uint msb = subgroupBallotFindMSB(ballot_value); - - // shuffle - uint shuffled = subgroupShuffle(10u, 8u); - uint shuffled_xor = subgroupShuffleXor(30u, 8u); - - // shuffle relative - uint shuffled_up = subgroupShuffleUp(20u, 4u); - uint shuffled_down = subgroupShuffleDown(20u, 4u); - - // vote - bool has_all = subgroupAll(true); - bool has_any = subgroupAny(true); - bool has_equal = subgroupAllEqual(true); - - // arithmetic - vec4 added = subgroupAdd(vec4(20.0)); - ivec4 iadded = subgroupAdd(ivec4(20)); - vec4 multiplied = subgroupMul(vec4(20.0)); - ivec4 imultiplied = subgroupMul(ivec4(20)); - vec4 lo = subgroupMin(vec4(20.0)); - vec4 hi = subgroupMax(vec4(20.0)); - ivec4 slo = subgroupMin(ivec4(20)); - ivec4 shi = subgroupMax(ivec4(20)); - uvec4 ulo = subgroupMin(uvec4(20)); - uvec4 uhi = subgroupMax(uvec4(20)); - uvec4 anded = subgroupAnd(ballot_value); - uvec4 ored = subgroupOr(ballot_value); - uvec4 xored = subgroupXor(ballot_value); - bvec4 anded_b = subgroupAnd(equal(ballot_value, uvec4(42))); - bvec4 ored_b = subgroupOr(equal(ballot_value, uvec4(42))); - bvec4 xored_b = subgroupXor(equal(ballot_value, uvec4(42))); - - added = subgroupInclusiveAdd(added); - iadded = subgroupInclusiveAdd(iadded); - multiplied = subgroupInclusiveMul(multiplied); - imultiplied = subgroupInclusiveMul(imultiplied); -#if 0 - lo = subgroupInclusiveMin(lo); - hi = subgroupInclusiveMax(hi); - slo = subgroupInclusiveMin(slo); - shi = subgroupInclusiveMax(shi); - ulo = subgroupInclusiveMin(ulo); - uhi = subgroupInclusiveMax(uhi); - anded = subgroupInclusiveAnd(anded); - ored = subgroupInclusiveOr(ored); - xored = subgroupInclusiveXor(ored); - added = subgroupExclusiveAdd(lo); -#endif - - added = subgroupExclusiveAdd(multiplied); - multiplied = subgroupExclusiveMul(multiplied); - iadded = subgroupExclusiveAdd(imultiplied); - imultiplied = subgroupExclusiveMul(imultiplied); -#if 0 - lo = subgroupExclusiveMin(lo); - hi = subgroupExclusiveMax(hi); - ulo = subgroupExclusiveMin(ulo); - uhi = subgroupExclusiveMax(uhi); - slo = subgroupExclusiveMin(slo); - shi = subgroupExclusiveMax(shi); - anded = subgroupExclusiveAnd(anded); - ored = subgroupExclusiveOr(ored); - xored = subgroupExclusiveXor(ored); -#endif - -#if 0 - // clustered - added = subgroupClusteredAdd(added, 4u); - multiplied = subgroupClusteredMul(multiplied, 4u); - iadded = subgroupClusteredAdd(iadded, 4u); - imultiplied = subgroupClusteredMul(imultiplied, 4u); - lo = subgroupClusteredMin(lo, 4u); - hi = subgroupClusteredMax(hi, 4u); - ulo = subgroupClusteredMin(ulo, 4u); - uhi = subgroupClusteredMax(uhi, 4u); - slo = subgroupClusteredMin(slo, 4u); - shi = subgroupClusteredMax(shi, 4u); - anded = subgroupClusteredAnd(anded, 4u); - ored = subgroupClusteredOr(ored, 4u); - xored = subgroupClusteredXor(xored, 4u); - - anded_b = subgroupClusteredAnd(equal(anded, uvec4(2u)), 4u); - ored_b = subgroupClusteredOr(equal(ored, uvec4(3u)), 4u); - xored_b = subgroupClusteredXor(equal(xored, uvec4(4u)), 4u); -#endif - - // quad - vec4 swap_horiz = subgroupQuadSwapHorizontal(vec4(20.0)); - vec4 swap_vertical = subgroupQuadSwapVertical(vec4(20.0)); - vec4 swap_diagonal = subgroupQuadSwapDiagonal(vec4(20.0)); - vec4 quad_broadcast = subgroupQuadBroadcast(vec4(20.0), 3u); -} diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/frag/cbuffer-packing-straddle.frag b/third_party/spirv-cross/shaders-hlsl-no-opt/frag/cbuffer-packing-straddle.frag deleted file mode 100644 index 4f22da56d9..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/frag/cbuffer-packing-straddle.frag +++ /dev/null @@ -1,50 +0,0 @@ -#version 450 - -layout(set = 0, binding = 0) uniform UBO -{ - vec4 a[2]; // 0 - vec4 b; // 32 - vec4 c; // 48 - mat4x4 d; // 64 - - float e; // 128 - vec2 f; // 136 - - float g; // 144 - vec2 h; // 152 - - float i; // 160 - vec2 j; // 168 - - float k; - vec2 l; - - float m; - float n; - float o; - - vec4 p; - vec4 q; - vec3 r; - vec4 s; - vec4 t; - vec4 u; - float v; - float w; - float x; - float y; - float z; - float aa; - float ab; - float ac; - float ad; - float ae; - vec4 ef; -}; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = a[1]; -} diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/frag/constant-buffer-array.invalid.sm51.frag b/third_party/spirv-cross/shaders-hlsl-no-opt/frag/constant-buffer-array.invalid.sm51.frag deleted file mode 100644 index d60002a0f2..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/frag/constant-buffer-array.invalid.sm51.frag +++ /dev/null @@ -1,32 +0,0 @@ -#version 450 - -layout(std140, binding = 4) uniform CBO -{ - vec4 a; - vec4 b; - vec4 c; - vec4 d; -} cbo[2][4]; - -layout(std430, push_constant) uniform PushMe -{ - vec4 a; - vec4 b; - vec4 c; - vec4 d; -} push; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = cbo[1][2].a; - FragColor += cbo[1][2].b; - FragColor += cbo[1][2].c; - FragColor += cbo[1][2].d; - FragColor += push.a; - FragColor += push.b; - FragColor += push.c; - FragColor += push.d; -} - diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/frag/fp16.invalid.desktop.frag b/third_party/spirv-cross/shaders-hlsl-no-opt/frag/fp16.invalid.desktop.frag deleted file mode 100644 index 4f92e20359..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/frag/fp16.invalid.desktop.frag +++ /dev/null @@ -1,156 +0,0 @@ -#version 450 -#extension GL_AMD_gpu_shader_half_float : require - -layout(location = 0) in float16_t v1; -layout(location = 1) in f16vec2 v2; -layout(location = 2) in f16vec3 v3; -layout(location = 3) in f16vec4 v4; - -layout(location = 0) out float o1; -layout(location = 1) out vec2 o2; -layout(location = 2) out vec3 o3; -layout(location = 3) out vec4 o4; - -#if 0 -// Doesn't work on glslang yet. -f16mat2 test_mat2(f16vec2 a, f16vec2 b, f16vec2 c, f16vec2 d) -{ - return f16mat2(a, b) * f16mat2(c, d); -} - -f16mat3 test_mat3(f16vec3 a, f16vec3 b, f16vec3 c, f16vec3 d, f16vec3 e, f16vec3 f) -{ - return f16mat3(a, b, c) * f16mat3(d, e, f); -} -#endif - -void test_constants() -{ - float16_t a = 1.0hf; - float16_t b = 1.5hf; - float16_t c = -1.5hf; // Negatives - float16_t d = (0.0hf / 0.0hf); // NaN - float16_t e = (1.0hf / 0.0hf); // +Inf - float16_t f = (-1.0hf / 0.0hf); // -Inf - float16_t g = 1014.0hf; // Large. - float16_t h = 0.000001hf; // Denormal -} - -float16_t test_result() -{ - return 1.0hf; -} - -void test_conversions() -{ - float16_t one = test_result(); - int a = int(one); - uint b = uint(one); - bool c = bool(one); - float d = float(one); - double e = double(one); - float16_t a2 = float16_t(a); - float16_t b2 = float16_t(b); - float16_t c2 = float16_t(c); - float16_t d2 = float16_t(d); - float16_t e2 = float16_t(e); -} - -void test_builtins() -{ - f16vec4 res; - res = radians(v4); - res = degrees(v4); - res = sin(v4); - res = cos(v4); - res = tan(v4); - res = asin(v4); - res = atan(v4, v3.xyzz); - res = atan(v4); - res = sinh(v4); - res = cosh(v4); - res = tanh(v4); - //res = asinh(v4); - //res = acosh(v4); - //res = atanh(v4); - res = pow(v4, v4); - res = exp(v4); - res = log(v4); - res = exp2(v4); - res = log2(v4); - res = sqrt(v4); - res = inversesqrt(v4); - res = abs(v4); - res = sign(v4); - res = floor(v4); - res = trunc(v4); - res = round(v4); - //res = roundEven(v4); - res = ceil(v4); - res = fract(v4); - res = mod(v4, v4); - f16vec4 tmp; - res = modf(v4, tmp); - res = min(v4, v4); - res = max(v4, v4); - res = clamp(v4, v4, v4); - res = mix(v4, v4, v4); - res = mix(v4, v4, lessThan(v4, v4)); - res = step(v4, v4); - res = smoothstep(v4, v4, v4); - - bvec4 btmp = isnan(v4); - btmp = isinf(v4); - res = fma(v4, v4, v4); - - //ivec4 itmp; - //res = frexp(v4, itmp); - //res = ldexp(res, itmp); - - uint pack0 = packFloat2x16(v4.xy); - uint pack1 = packFloat2x16(v4.zw); - res = f16vec4(unpackFloat2x16(pack0), unpackFloat2x16(pack1)); - - float16_t t0 = length(v4); - t0 = distance(v4, v4); - t0 = dot(v4, v4); - f16vec3 res3 = cross(v3, v3); - res = normalize(v4); - res = faceforward(v4, v4, v4); - res = reflect(v4, v4); - res = refract(v4, v4, v1); - - btmp = lessThan(v4, v4); - btmp = lessThanEqual(v4, v4); - btmp = greaterThan(v4, v4); - btmp = greaterThanEqual(v4, v4); - btmp = equal(v4, v4); - btmp = notEqual(v4, v4); - - res = dFdx(v4); - res = dFdy(v4); - res = dFdxFine(v4); - res = dFdyFine(v4); - res = dFdxCoarse(v4); - res = dFdyCoarse(v4); - res = fwidth(v4); - res = fwidthFine(v4); - res = fwidthCoarse(v4); - - //res = interpolateAtCentroid(v4); - //res = interpolateAtSample(v4, 0); - //res = interpolateAtOffset(v4, f16vec2(0.1hf)); -} - -void main() -{ - // Basic matrix tests. -#if 0 - f16mat2 m0 = test_mat2(v2, v2, v3.xy, v3.xy); - f16mat3 m1 = test_mat3(v3, v3, v3, v4.xyz, v4.xyz, v4.yzw); -#endif - - test_constants(); - test_conversions(); - test_builtins(); -} diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/frag/frag-coord.frag b/third_party/spirv-cross/shaders-hlsl-no-opt/frag/frag-coord.frag deleted file mode 100644 index e688659a6b..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/frag/frag-coord.frag +++ /dev/null @@ -1,8 +0,0 @@ -#version 450 - -layout(location = 0) out vec3 FragColor; - -void main() -{ - FragColor = gl_FragCoord.xyz / gl_FragCoord.w; -} diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/frag/native-16bit-types.fxconly.nofxc.sm62.native-16bit.frag b/third_party/spirv-cross/shaders-hlsl-no-opt/frag/native-16bit-types.fxconly.nofxc.sm62.native-16bit.frag deleted file mode 100644 index 92e6621fda..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/frag/native-16bit-types.fxconly.nofxc.sm62.native-16bit.frag +++ /dev/null @@ -1,72 +0,0 @@ -#version 450 -#extension GL_EXT_shader_explicit_arithmetic_types : require - -layout(location = 0) out f16vec4 Output; -layout(location = 0) in f16vec4 Input; -layout(location = 1) out i16vec4 OutputI; -layout(location = 1) flat in i16vec4 InputI; -layout(location = 2) out u16vec4 OutputU; -layout(location = 2) flat in u16vec4 InputU; - -layout(set = 0, binding = 0) buffer Buf -{ - float16_t foo0[4]; - int16_t foo1[4]; - uint16_t foo2[4]; - - f16vec4 foo3[4]; - i16vec4 foo4[4]; - u16vec4 foo5[4]; - - f16mat2x3 foo6[4]; - layout(row_major) f16mat2x3 foo7[4]; -}; - -void main() -{ - int index = int(gl_FragCoord.x); - Output = Input + float16_t(20.0); - OutputI = InputI + int16_t(-40); - OutputU = InputU + uint16_t(20); - - // Load 16-bit scalar. - Output += foo0[index]; - OutputI += foo1[index]; - OutputU += foo2[index]; - - // Load 16-bit vector. - Output += foo3[index]; - OutputI += foo4[index]; - OutputU += foo5[index]; - - // Load 16-bit vector from ColMajor matrix. - Output += foo6[index][1].xyzz; - - // Load 16-bit vector from RowMajor matrix. - Output += foo7[index][1].xyzz; - - // Load 16-bit matrix from ColMajor. - f16mat2x3 m0 = foo6[index]; - // Load 16-bit matrix from RowMajor. - f16mat2x3 m1 = foo7[index]; - - // Store 16-bit scalar - foo0[index] = Output.x; - foo1[index] = OutputI.y; - foo2[index] = OutputU.z; - - // Store 16-bit vector - foo3[index] = Output; - foo4[index] = OutputI; - foo5[index] = OutputU; - - // Store 16-bit vector to ColMajor matrix. - foo6[index][1] = Output.xyz; - // Store 16-bit vector to RowMajor matrix. - foo7[index][1] = Output.xyz; - - // Store 16-bit matrix to ColMajor. - foo6[index] = f16mat2x3(Output.xyz, Output.wzy); - // Store 16-bit matrix to RowMajor. - foo7[index] = f16mat2x3(Output.xyz, Output.wzy); -} diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/frag/nonuniform-constructor.sm51.nonuniformresource.frag b/third_party/spirv-cross/shaders-hlsl-no-opt/frag/nonuniform-constructor.sm51.nonuniformresource.frag deleted file mode 100644 index 452aa953a4..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/frag/nonuniform-constructor.sm51.nonuniformresource.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 -#extension GL_EXT_nonuniform_qualifier : require - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec2 vUV; -layout(location = 1) flat in int vIndex; - -layout(set = 0, binding = 0) uniform texture2D uTex[]; -layout(set = 1, binding = 0) uniform sampler Immut; - -void main() -{ - FragColor = texture(nonuniformEXT(sampler2D(uTex[vIndex], Immut)), vUV); -} diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/frag/pixel-interlock-simple-callstack.sm51.fxconly.frag b/third_party/spirv-cross/shaders-hlsl-no-opt/frag/pixel-interlock-simple-callstack.sm51.fxconly.frag deleted file mode 100644 index 59079fe58b..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/frag/pixel-interlock-simple-callstack.sm51.fxconly.frag +++ /dev/null @@ -1,31 +0,0 @@ -#version 450 -#extension GL_ARB_fragment_shader_interlock : require -layout(pixel_interlock_ordered) in; - -layout(set = 0, binding = 0, std430) buffer SSBO0 -{ - uint values0[]; -}; - -layout(set = 0, binding = 1, std430) buffer SSBO1 -{ - uint values1[]; -}; - -void callee2() -{ - values1[int(gl_FragCoord.x)] += 1; -} - -void callee() -{ - values0[int(gl_FragCoord.x)] += 1; - callee2(); -} - -void main() -{ - beginInvocationInterlockARB(); - callee(); - endInvocationInterlockARB(); -} diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/frag/spec-constant.frag b/third_party/spirv-cross/shaders-hlsl-no-opt/frag/spec-constant.frag deleted file mode 100644 index a6c8d94e78..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/frag/spec-constant.frag +++ /dev/null @@ -1,80 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) out vec4 FragColor; -layout(constant_id = 1) const float a = 1.0; -layout(constant_id = 2) const float b = 2.0; -layout(constant_id = 3) const int c = 3; -layout(constant_id = 4) const int d = 4; -layout(constant_id = 5) const uint e = 5u; -layout(constant_id = 6) const uint f = 6u; -layout(constant_id = 7) const bool g = false; -layout(constant_id = 8) const bool h = true; -// glslang doesn't seem to support partial spec constants or composites yet, so only test the basics. - -struct Foo -{ - float elems[d + 2]; -}; - -void main() -{ - float t0 = a; - float t1 = b; - - uint c0 = uint(c); // OpIAdd with different types. - // FConvert, float-to-double. - int c1 = -c; // SNegate - int c2 = ~c; // OpNot - int c3 = c + d; // OpIAdd - int c4 = c - d; // OpISub - int c5 = c * d; // OpIMul - int c6 = c / d; // OpSDiv - uint c7 = e / f; // OpUDiv - int c8 = c % d; // OpSMod - uint c9 = e % f; // OpUMod - // TODO: OpSRem, any way to access this in GLSL? - int c10 = c >> d; // OpShiftRightArithmetic - uint c11 = e >> f; // OpShiftRightLogical - int c12 = c << d; // OpShiftLeftLogical - int c13 = c | d; // OpBitwiseOr - int c14 = c ^ d; // OpBitwiseXor - int c15 = c & d; // OpBitwiseAnd - // VectorShuffle, CompositeExtract, CompositeInsert, not testable atm. - bool c16 = g || h; // OpLogicalOr - bool c17 = g && h; // OpLogicalAnd - bool c18 = !g; // OpLogicalNot - bool c19 = g == h; // OpLogicalEqual - bool c20 = g != h; // OpLogicalNotEqual - // OpSelect not testable atm. - bool c21 = c == d; // OpIEqual - bool c22 = c != d; // OpINotEqual - bool c23 = c < d; // OpSLessThan - bool c24 = e < f; // OpULessThan - bool c25 = c > d; // OpSGreaterThan - bool c26 = e > f; // OpUGreaterThan - bool c27 = c <= d; // OpSLessThanEqual - bool c28 = e <= f; // OpULessThanEqual - bool c29 = c >= d; // OpSGreaterThanEqual - bool c30 = e >= f; // OpUGreaterThanEqual - // OpQuantizeToF16 not testable atm. - - int c31 = c8 + c3; - - int c32 = int(e); // OpIAdd with different types. - bool c33 = bool(c); // int -> bool - bool c34 = bool(e); // uint -> bool - int c35 = int(g); // bool -> int - uint c36 = uint(g); // bool -> uint - float c37 = float(g); // bool -> float - - // Flexible sized arrays with spec constants and spec constant ops. - float vec0[c + 3][8]; - float vec1[c + 2]; - vec0[0][0] = 10.0; - vec1[0] = 20.0; - - Foo foo; - foo.elems[c] = 10.0; - FragColor = vec4(t0 + t1) + vec0[0][0] + vec1[0] + foo.elems[c]; -} diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/frag/ubo-offset-out-of-order.frag b/third_party/spirv-cross/shaders-hlsl-no-opt/frag/ubo-offset-out-of-order.frag deleted file mode 100644 index 77760522f9..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/frag/ubo-offset-out-of-order.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; - -layout(set = 0, binding = 0) uniform UBO -{ - layout(offset = 16) mat4 m; - layout(offset = 0) vec4 v; -}; - -layout(location = 0) in vec4 vColor; - -void main() -{ - FragColor = m * vColor + v; -} diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/frag/variables.zero-initialize.frag b/third_party/spirv-cross/shaders-hlsl-no-opt/frag/variables.zero-initialize.frag deleted file mode 100644 index 41da8001f4..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/frag/variables.zero-initialize.frag +++ /dev/null @@ -1,21 +0,0 @@ -#version 450 - -layout(location = 0) in vec4 vColor; -layout(location = 0) out vec4 FragColor; - -int uninit_int; -ivec4 uninit_vector; -mat4 uninit_matrix; - -struct Foo { int a; }; -Foo uninit_foo; - -void main() -{ - int uninit_function_int; - if (vColor.x > 10.0) - uninit_function_int = 10; - else - uninit_function_int = 20; - FragColor = vColor; -} diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/vert/block-io-auto-location-assignment.vert b/third_party/spirv-cross/shaders-hlsl-no-opt/vert/block-io-auto-location-assignment.vert deleted file mode 100644 index 98c39bd5ef..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/vert/block-io-auto-location-assignment.vert +++ /dev/null @@ -1,31 +0,0 @@ -#version 450 - -struct Bar -{ - float v[2]; - float w; -}; - -layout(location = 0) out V -{ - float a; - float b[2]; - Bar c[2]; - Bar d; -}; - -void main() -{ - a = 1.0; - b[0] = 2.0; - b[1] = 3.0; - c[0].v[0] = 4.0; - c[0].v[1] = 5.0; - c[0].w = 6.0; - c[1].v[0] = 7.0; - c[1].v[1] = 8.0; - c[1].w = 9.0; - d.v[0] = 10.0; - d.v[1] = 11.0; - d.w = 12.0; -} diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/vert/flatten-matrix-input.flatten-matrix-vertex-input.vert b/third_party/spirv-cross/shaders-hlsl-no-opt/vert/flatten-matrix-input.flatten-matrix-vertex-input.vert deleted file mode 100644 index b49480617a..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/vert/flatten-matrix-input.flatten-matrix-vertex-input.vert +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 - -layout(location = 0) in mat4 m4; -layout(location = 4) in mat3 m3; -layout(location = 7) in mat2 m2; -layout(location = 9) in vec4 v; - -void main() -{ - gl_Position = m4 * v; - gl_Position.xyz += m3 * v.xyz; - gl_Position.xy += m2 * v.xy; -} diff --git a/third_party/spirv-cross/shaders-hlsl-no-opt/vert/pass-array-by-value.vert b/third_party/spirv-cross/shaders-hlsl-no-opt/vert/pass-array-by-value.vert deleted file mode 100644 index 2c142a7810..0000000000 --- a/third_party/spirv-cross/shaders-hlsl-no-opt/vert/pass-array-by-value.vert +++ /dev/null @@ -1,26 +0,0 @@ -#version 310 es - -layout(location = 0) in int Index1; -layout(location = 1) in int Index2; - -vec4 consume_constant_arrays2(const vec4 positions[4], const vec4 positions2[4]) -{ - return positions[Index1] + positions2[Index2]; -} - -vec4 consume_constant_arrays(const vec4 positions[4], const vec4 positions2[4]) -{ - return consume_constant_arrays2(positions, positions2); -} - -const vec4 LUT1[] = vec4[](vec4(0.0), vec4(1.0), vec4(2.0), vec4(3.0)); - -void main() -{ - vec4 LUT2[4]; - LUT2[0] = vec4(10.0); - LUT2[1] = vec4(11.0); - LUT2[2] = vec4(12.0); - LUT2[3] = vec4(13.0); - gl_Position = consume_constant_arrays(LUT1, LUT2); -} diff --git a/third_party/spirv-cross/shaders-hlsl/asm/comp/access-chain-invalidate.asm.comp b/third_party/spirv-cross/shaders-hlsl/asm/comp/access-chain-invalidate.asm.comp deleted file mode 100644 index 6e6ced1228..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/asm/comp/access-chain-invalidate.asm.comp +++ /dev/null @@ -1,61 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Shaderc over Glslang; 7 -; Bound: 41 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpSourceExtension "GL_GOOGLE_cpp_style_line_directive" - OpSourceExtension "GL_GOOGLE_include_directive" - OpName %main "main" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "index" - OpMemberName %SSBO 1 "array" - OpName %_ "" - OpDecorate %_arr_uint_uint_64 ArrayStride 4 - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %SSBO 1 Offset 4 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 - %uint_64 = OpConstant %uint 64 -%_arr_uint_uint_64 = OpTypeArray %uint %uint_64 - %SSBO = OpTypeStruct %uint %_arr_uint_uint_64 -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform - %int = OpTypeInt 32 1 - %int_1 = OpConstant %int 1 - %int_0 = OpConstant %int 0 -%_ptr_Uniform_uint = OpTypePointer Uniform %uint - %uint_0 = OpConstant %uint 0 - %bool = OpTypeBool - %main = OpFunction %void None %3 - %5 = OpLabel - %18 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 - %19 = OpLoad %uint %18 - %20 = OpAccessChain %_ptr_Uniform_uint %_ %int_1 %19 - %21 = OpLoad %uint %20 - OpBranch %24 - %24 = OpLabel - %40 = OpPhi %uint %uint_0 %5 %35 %25 - %31 = OpULessThan %bool %40 %uint_64 - OpLoopMerge %26 %25 None - OpBranchConditional %31 %25 %26 - %25 = OpLabel - %33 = OpAccessChain %_ptr_Uniform_uint %_ %int_1 %40 - OpStore %33 %uint_0 - %35 = OpIAdd %uint %40 %int_1 - OpBranch %24 - %26 = OpLabel - %37 = OpLoad %uint %18 - %39 = OpAccessChain %_ptr_Uniform_uint %_ %int_1 %37 - OpStore %39 %21 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl/asm/comp/atomic-decrement.asm.comp b/third_party/spirv-cross/shaders-hlsl/asm/comp/atomic-decrement.asm.comp deleted file mode 100644 index f716cbb944..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/asm/comp/atomic-decrement.asm.comp +++ /dev/null @@ -1,71 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Wine VKD3D Shader Compiler; 0 -; Bound: 43 -; Schema: 0 - OpCapability Shader - OpCapability SampledBuffer - OpCapability ImageBuffer - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %3 "main" %15 - OpExecutionMode %3 LocalSize 4 1 1 - OpName %3 "main" - OpName %8 "u0" - OpName %9 "u0_counters" - OpMemberName %9 0 "c" - OpName %11 "u0_counter" - OpName %15 "vThreadID" - OpName %19 "r0" - OpDecorate %8 DescriptorSet 0 - OpDecorate %8 Binding 0 - OpMemberDecorate %9 0 Offset 0 - OpDecorate %9 BufferBlock - OpDecorate %11 DescriptorSet 1 - OpDecorate %11 Binding 1 - OpDecorate %15 BuiltIn GlobalInvocationId - %1 = OpTypeVoid - %2 = OpTypeFunction %1 - %5 = OpTypeInt 32 0 - %6 = OpTypeImage %5 Buffer 0 0 0 2 R32ui - %7 = OpTypePointer UniformConstant %6 - %8 = OpVariable %7 UniformConstant - %9 = OpTypeStruct %5 - %10 = OpTypePointer Uniform %9 - %11 = OpVariable %10 Uniform - %12 = OpTypeInt 32 1 - %13 = OpTypeVector %12 3 - %14 = OpTypePointer Input %13 - %15 = OpVariable %14 Input - %16 = OpTypeFloat 32 - %17 = OpTypeVector %16 4 - %18 = OpTypePointer Function %17 - %20 = OpTypePointer Uniform %5 - %21 = OpConstant %5 0 - %23 = OpConstant %5 1 - %26 = OpTypePointer Function %16 - %33 = OpConstant %12 0 - %34 = OpConstant %5 2 - %37 = OpTypePointer Input %12 - %41 = OpTypeVector %5 4 - %3 = OpFunction %1 None %2 - %4 = OpLabel - %19 = OpVariable %18 Function - %22 = OpAccessChain %20 %11 %21 - %24 = OpAtomicIDecrement %5 %22 %23 %21 - %25 = OpBitcast %16 %24 - %27 = OpInBoundsAccessChain %26 %19 %21 - OpStore %27 %25 - %28 = OpLoad %6 %8 - %29 = OpInBoundsAccessChain %26 %19 %21 - %30 = OpLoad %16 %29 - %31 = OpBitcast %12 %30 - %32 = OpIMul %5 %31 %23 - %35 = OpShiftRightLogical %5 %33 %34 - %36 = OpIAdd %5 %32 %35 - %38 = OpInBoundsAccessChain %37 %15 %21 - %39 = OpLoad %12 %38 - %40 = OpBitcast %5 %39 - %42 = OpCompositeConstruct %41 %40 %40 %40 %40 - OpImageWrite %28 %36 %42 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl/asm/comp/atomic-increment.asm.comp b/third_party/spirv-cross/shaders-hlsl/asm/comp/atomic-increment.asm.comp deleted file mode 100644 index 40c1de3b9d..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/asm/comp/atomic-increment.asm.comp +++ /dev/null @@ -1,71 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Wine VKD3D Shader Compiler; 0 -; Bound: 43 -; Schema: 0 - OpCapability Shader - OpCapability SampledBuffer - OpCapability ImageBuffer - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %3 "main" %15 - OpExecutionMode %3 LocalSize 4 1 1 - OpName %3 "main" - OpName %8 "u0" - OpName %9 "u0_counters" - OpMemberName %9 0 "c" - OpName %11 "u0_counter" - OpName %15 "vThreadID" - OpName %19 "r0" - OpDecorate %8 DescriptorSet 0 - OpDecorate %8 Binding 0 - OpMemberDecorate %9 0 Offset 0 - OpDecorate %9 BufferBlock - OpDecorate %11 DescriptorSet 1 - OpDecorate %11 Binding 1 - OpDecorate %15 BuiltIn GlobalInvocationId - %1 = OpTypeVoid - %2 = OpTypeFunction %1 - %5 = OpTypeInt 32 0 - %6 = OpTypeImage %5 Buffer 0 0 0 2 R32ui - %7 = OpTypePointer UniformConstant %6 - %8 = OpVariable %7 UniformConstant - %9 = OpTypeStruct %5 - %10 = OpTypePointer Uniform %9 - %11 = OpVariable %10 Uniform - %12 = OpTypeInt 32 1 - %13 = OpTypeVector %12 3 - %14 = OpTypePointer Input %13 - %15 = OpVariable %14 Input - %16 = OpTypeFloat 32 - %17 = OpTypeVector %16 4 - %18 = OpTypePointer Function %17 - %20 = OpTypePointer Uniform %5 - %21 = OpConstant %5 0 - %23 = OpConstant %5 1 - %26 = OpTypePointer Function %16 - %33 = OpConstant %12 0 - %34 = OpConstant %5 2 - %37 = OpTypePointer Input %12 - %41 = OpTypeVector %5 4 - %3 = OpFunction %1 None %2 - %4 = OpLabel - %19 = OpVariable %18 Function - %22 = OpAccessChain %20 %11 %21 - %24 = OpAtomicIIncrement %5 %22 %23 %21 - %25 = OpBitcast %16 %24 - %27 = OpInBoundsAccessChain %26 %19 %21 - OpStore %27 %25 - %28 = OpLoad %6 %8 - %29 = OpInBoundsAccessChain %26 %19 %21 - %30 = OpLoad %16 %29 - %31 = OpBitcast %12 %30 - %32 = OpIMul %5 %31 %23 - %35 = OpShiftRightLogical %5 %33 %34 - %36 = OpIAdd %5 %32 %35 - %38 = OpInBoundsAccessChain %37 %15 %21 - %39 = OpLoad %12 %38 - %40 = OpBitcast %5 %39 - %42 = OpCompositeConstruct %41 %40 %40 %40 %40 - OpImageWrite %28 %36 %42 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl/asm/comp/bitcast_icmp.asm.comp b/third_party/spirv-cross/shaders-hlsl/asm/comp/bitcast_icmp.asm.comp deleted file mode 100644 index b7b4e0b2e1..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/asm/comp/bitcast_icmp.asm.comp +++ /dev/null @@ -1,101 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 30 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %func "main" - OpExecutionMode %func LocalSize 1 1 1 - OpSource ESSL 310 - OpSourceExtension "GL_GOOGLE_cpp_style_line_directive" - OpSourceExtension "GL_GOOGLE_include_directive" - OpMemberDecorate %input_struct 0 Offset 0 - OpMemberDecorate %input_struct 1 Offset 16 - OpMemberDecorate %output_struct 0 Offset 0 - OpMemberDecorate %output_struct 1 Offset 16 - OpDecorate %input_struct BufferBlock - OpDecorate %inputs DescriptorSet 0 - OpDecorate %inputs Binding 0 - OpDecorate %inputs Restrict - OpDecorate %output_struct BufferBlock - OpDecorate %outputs DescriptorSet 0 - OpDecorate %outputs Binding 1 - OpDecorate %outputs Restrict - - %void = OpTypeVoid - %main_func = OpTypeFunction %void - - %bool = OpTypeBool - %bvec4 = OpTypeVector %bool 4 - - %uint = OpTypeInt 32 0 - %uvec4 = OpTypeVector %uint 4 - - %int = OpTypeInt 32 1 - %ivec4 = OpTypeVector %int 4 - - %ivec4_ptr = OpTypePointer Uniform %ivec4 - %uvec4_ptr = OpTypePointer Uniform %uvec4 - - %zero = OpConstant %int 0 - %one = OpConstant %int 1 - %uzero = OpConstant %uint 0 - %uone = OpConstant %uint 1 - %utrue = OpConstantComposite %uvec4 %uone %uone %uone %uone - %ufalse = OpConstantComposite %uvec4 %uzero %uzero %uzero %uzero - - %input_struct = OpTypeStruct %ivec4 %uvec4 - %input_struct_ptr = OpTypePointer Uniform %input_struct - %inputs = OpVariable %input_struct_ptr Uniform - %output_struct = OpTypeStruct %uvec4 %ivec4 - %output_struct_ptr = OpTypePointer Uniform %output_struct - %outputs = OpVariable %output_struct_ptr Uniform - - %func = OpFunction %void None %main_func - %block = OpLabel - - %input1_ptr = OpAccessChain %ivec4_ptr %inputs %zero - %input0_ptr = OpAccessChain %uvec4_ptr %inputs %one - %input1 = OpLoad %ivec4 %input1_ptr - %input0 = OpLoad %uvec4 %input0_ptr - - %output_ptr_uvec4 = OpAccessChain %uvec4_ptr %outputs %zero - - %result_slt = OpSLessThan %bvec4 %input0 %input1 - %result_sle = OpSLessThanEqual %bvec4 %input0 %input1 - %result_ult = OpULessThan %bvec4 %input0 %input1 - %result_ule = OpULessThanEqual %bvec4 %input0 %input1 - %result_sgt = OpSGreaterThan %bvec4 %input0 %input1 - %result_sge = OpSGreaterThanEqual %bvec4 %input0 %input1 - %result_ugt = OpUGreaterThan %bvec4 %input0 %input1 - %result_uge = OpUGreaterThanEqual %bvec4 %input0 %input1 - - %int_slt = OpSelect %uvec4 %result_slt %utrue %ufalse - OpStore %output_ptr_uvec4 %int_slt - - %int_sle = OpSelect %uvec4 %result_sle %utrue %ufalse - OpStore %output_ptr_uvec4 %int_sle - - %int_ult = OpSelect %uvec4 %result_ult %utrue %ufalse - OpStore %output_ptr_uvec4 %int_ult - - %int_ule = OpSelect %uvec4 %result_ule %utrue %ufalse - OpStore %output_ptr_uvec4 %int_ule - - %int_sgt = OpSelect %uvec4 %result_sgt %utrue %ufalse - OpStore %output_ptr_uvec4 %int_sgt - - %int_sge = OpSelect %uvec4 %result_sge %utrue %ufalse - OpStore %output_ptr_uvec4 %int_sge - - %int_ugt = OpSelect %uvec4 %result_ugt %utrue %ufalse - OpStore %output_ptr_uvec4 %int_ugt - - %int_uge = OpSelect %uvec4 %result_uge %utrue %ufalse - OpStore %output_ptr_uvec4 %int_uge - - - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl/asm/comp/block-name-alias-global.asm.comp b/third_party/spirv-cross/shaders-hlsl/asm/comp/block-name-alias-global.asm.comp deleted file mode 100644 index 85f6cc0414..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/asm/comp/block-name-alias-global.asm.comp +++ /dev/null @@ -1,119 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 59 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %Foo "A" - OpMemberName %Foo 0 "a" - OpMemberName %Foo 1 "b" - OpName %A "A" - OpMemberName %A 0 "Data" - OpName %C1 "C1" - OpName %gl_GlobalInvocationID "gl_GlobalInvocationID" - OpName %Foo_0 "A" - OpMemberName %Foo_0 0 "a" - OpMemberName %Foo_0 1 "b" - OpName %A_0 "A" - OpMemberName %A_0 0 "Data" - OpName %C2 "C2" - OpName %B "B" - OpMemberName %B 0 "Data" - OpName %C3 "C3" - OpName %B_0 "B" - OpMemberName %B_0 0 "Data" - OpName %C4 "C4" - OpMemberDecorate %Foo 0 Offset 0 - OpMemberDecorate %Foo 1 Offset 4 - OpDecorate %_runtimearr_Foo ArrayStride 8 - OpMemberDecorate %A 0 Offset 0 - OpDecorate %A BufferBlock - OpDecorate %C1 DescriptorSet 0 - OpDecorate %C1 Binding 1 - OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId - OpMemberDecorate %Foo_0 0 Offset 0 - OpMemberDecorate %Foo_0 1 Offset 4 - OpDecorate %_arr_Foo_0_uint_1024 ArrayStride 16 - OpMemberDecorate %A_0 0 Offset 0 - OpDecorate %A_0 Block - OpDecorate %C2 DescriptorSet 0 - OpDecorate %C2 Binding 2 - OpDecorate %_runtimearr_Foo_0 ArrayStride 8 - OpMemberDecorate %B 0 Offset 0 - OpDecorate %B BufferBlock - OpDecorate %C3 DescriptorSet 0 - OpDecorate %C3 Binding 0 - OpDecorate %_arr_Foo_0_uint_1024_0 ArrayStride 16 - OpMemberDecorate %B_0 0 Offset 0 - OpDecorate %B_0 Block - OpDecorate %C4 DescriptorSet 0 - OpDecorate %C4 Binding 3 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %Foo = OpTypeStruct %int %int -%_runtimearr_Foo = OpTypeRuntimeArray %Foo - %A = OpTypeStruct %_runtimearr_Foo -%_ptr_Uniform_A = OpTypePointer Uniform %A - %C1 = OpVariable %_ptr_Uniform_A Uniform - %int_0 = OpConstant %int 0 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint - %Foo_0 = OpTypeStruct %int %int - %uint_1024 = OpConstant %uint 1024 -%_arr_Foo_0_uint_1024 = OpTypeArray %Foo_0 %uint_1024 - %A_0 = OpTypeStruct %_arr_Foo_0_uint_1024 -%_ptr_Uniform_A_0 = OpTypePointer Uniform %A_0 - %C2 = OpVariable %_ptr_Uniform_A_0 Uniform -%_ptr_Uniform_Foo_0 = OpTypePointer Uniform %Foo_0 -%_ptr_Uniform_Foo = OpTypePointer Uniform %Foo -%_ptr_Uniform_int = OpTypePointer Uniform %int - %int_1 = OpConstant %int 1 -%_runtimearr_Foo_0 = OpTypeRuntimeArray %Foo - %B = OpTypeStruct %_runtimearr_Foo_0 -%_ptr_Uniform_B = OpTypePointer Uniform %B - %C3 = OpVariable %_ptr_Uniform_B Uniform -%_arr_Foo_0_uint_1024_0 = OpTypeArray %Foo_0 %uint_1024 - %B_0 = OpTypeStruct %_arr_Foo_0_uint_1024_0 -%_ptr_Uniform_B_0 = OpTypePointer Uniform %B_0 - %C4 = OpVariable %_ptr_Uniform_B_0 Uniform - %main = OpFunction %void None %3 - %5 = OpLabel - %19 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %20 = OpLoad %uint %19 - %27 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %28 = OpLoad %uint %27 - %30 = OpAccessChain %_ptr_Uniform_Foo_0 %C2 %int_0 %28 - %31 = OpLoad %Foo_0 %30 - %33 = OpAccessChain %_ptr_Uniform_Foo %C1 %int_0 %20 - %34 = OpCompositeExtract %int %31 0 - %36 = OpAccessChain %_ptr_Uniform_int %33 %int_0 - OpStore %36 %34 - %37 = OpCompositeExtract %int %31 1 - %39 = OpAccessChain %_ptr_Uniform_int %33 %int_1 - OpStore %39 %37 - %44 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %45 = OpLoad %uint %44 - %50 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %51 = OpLoad %uint %50 - %52 = OpAccessChain %_ptr_Uniform_Foo_0 %C4 %int_0 %51 - %53 = OpLoad %Foo_0 %52 - %54 = OpAccessChain %_ptr_Uniform_Foo %C3 %int_0 %45 - %55 = OpCompositeExtract %int %53 0 - %56 = OpAccessChain %_ptr_Uniform_int %54 %int_0 - OpStore %56 %55 - %57 = OpCompositeExtract %int %53 1 - %58 = OpAccessChain %_ptr_Uniform_int %54 %int_1 - OpStore %58 %57 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl/asm/comp/control-flow-hints.asm.comp b/third_party/spirv-cross/shaders-hlsl/asm/comp/control-flow-hints.asm.comp deleted file mode 100644 index 74a15955c2..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/asm/comp/control-flow-hints.asm.comp +++ /dev/null @@ -1,146 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 85 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource HLSL 500 - OpName %main "main" - OpName %_main_ "@main(" - OpName %i "i" - OpName %bar "bar" - OpMemberName %bar 0 "@data" - OpName %bar_0 "bar" - OpName %foo "foo" - OpName %i_0 "i" - OpName %v "v" - OpName %w "w" - OpName %value "value" - OpDecorate %_runtimearr_v4float ArrayStride 16 - OpMemberDecorate %bar 0 Offset 0 - OpDecorate %bar BufferBlock - OpDecorate %bar_0 DescriptorSet 0 - OpDecorate %bar_0 Binding 0 - OpDecorate %foo DescriptorSet 0 - OpDecorate %foo Binding 1 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 -%_ptr_Function_int = OpTypePointer Function %int - %int_0 = OpConstant %int 0 - %int_16 = OpConstant %int 16 - %bool = OpTypeBool - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_runtimearr_v4float = OpTypeRuntimeArray %v4float - %bar = OpTypeStruct %_runtimearr_v4float -%_ptr_Uniform_bar = OpTypePointer Uniform %bar - %bar_0 = OpVariable %_ptr_Uniform_bar Uniform - %foo = OpVariable %_ptr_Uniform_bar Uniform -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float - %int_1 = OpConstant %int 1 - %int_15 = OpConstant %int 15 -%_ptr_Function_float = OpTypePointer Function %float - %int_10 = OpConstant %int 10 - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 -%_ptr_Uniform_float = OpTypePointer Uniform %float - %float_10 = OpConstant %float 10 - %int_20 = OpConstant %int 20 - %float_5 = OpConstant %float 5 - %72 = OpConstantComposite %v4float %float_5 %float_5 %float_5 %float_5 - %float_20 = OpConstant %float 20 - %float_40 = OpConstant %float 40 - %main = OpFunction %void None %3 - %5 = OpLabel - %84 = OpFunctionCall %void %_main_ - OpReturn - OpFunctionEnd - %_main_ = OpFunction %void None %3 - %7 = OpLabel - %i = OpVariable %_ptr_Function_int Function - %i_0 = OpVariable %_ptr_Function_int Function - %v = OpVariable %_ptr_Function_float Function - %w = OpVariable %_ptr_Function_float Function - %value = OpVariable %_ptr_Function_float Function - OpStore %i %int_0 - OpBranch %12 - %12 = OpLabel - OpLoopMerge %14 %15 Unroll - OpBranch %16 - %16 = OpLabel - %17 = OpLoad %int %i - %20 = OpSLessThan %bool %17 %int_16 - OpBranchConditional %20 %13 %14 - %13 = OpLabel - %27 = OpLoad %int %i - %29 = OpLoad %int %i - %31 = OpAccessChain %_ptr_Uniform_v4float %foo %int_0 %29 - %32 = OpLoad %v4float %31 - %33 = OpAccessChain %_ptr_Uniform_v4float %bar_0 %int_0 %27 - OpStore %33 %32 - OpBranch %15 - %15 = OpLabel - %34 = OpLoad %int %i - %36 = OpIAdd %int %34 %int_1 - OpStore %i %36 - OpBranch %12 - %14 = OpLabel - OpStore %i_0 %int_0 - OpBranch %38 - %38 = OpLabel - OpLoopMerge %40 %41 DontUnroll - OpBranch %42 - %42 = OpLabel - %43 = OpLoad %int %i_0 - %44 = OpSLessThan %bool %43 %int_16 - OpBranchConditional %44 %39 %40 - %39 = OpLabel - %46 = OpLoad %int %i_0 - %47 = OpISub %int %int_15 %46 - %48 = OpLoad %int %i_0 - %49 = OpAccessChain %_ptr_Uniform_v4float %foo %int_0 %48 - %50 = OpLoad %v4float %49 - %51 = OpAccessChain %_ptr_Uniform_v4float %bar_0 %int_0 %47 - OpStore %51 %50 - OpBranch %41 - %41 = OpLabel - %52 = OpLoad %int %i_0 - %53 = OpIAdd %int %52 %int_1 - OpStore %i_0 %53 - OpBranch %38 - %40 = OpLabel - %60 = OpAccessChain %_ptr_Uniform_float %bar_0 %int_0 %int_10 %uint_0 - %61 = OpLoad %float %60 - OpStore %v %61 - %63 = OpAccessChain %_ptr_Uniform_float %foo %int_0 %int_10 %uint_0 - %64 = OpLoad %float %63 - OpStore %w %64 - %65 = OpLoad %float %v - %67 = OpFOrdGreaterThan %bool %65 %float_10 - OpSelectionMerge %69 DontFlatten - OpBranchConditional %67 %68 %69 - %68 = OpLabel - %73 = OpAccessChain %_ptr_Uniform_v4float %foo %int_0 %int_20 - OpStore %73 %72 - OpBranch %69 - %69 = OpLabel - OpStore %value %float_20 - %76 = OpLoad %float %w - %78 = OpFOrdGreaterThan %bool %76 %float_40 - OpSelectionMerge %80 Flatten - OpBranchConditional %78 %79 %80 - %79 = OpLabel - OpStore %value %float_20 - OpBranch %80 - %80 = OpLabel - %81 = OpLoad %float %value - %82 = OpCompositeConstruct %v4float %81 %81 %81 %81 - %83 = OpAccessChain %_ptr_Uniform_v4float %foo %int_0 %int_20 - OpStore %83 %82 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl/asm/comp/global-parameter-name-alias.asm.comp b/third_party/spirv-cross/shaders-hlsl/asm/comp/global-parameter-name-alias.asm.comp deleted file mode 100644 index 78b1dc74e8..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/asm/comp/global-parameter-name-alias.asm.comp +++ /dev/null @@ -1,102 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 61 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %id_1 - OpExecutionMode %main LocalSize 1 1 1 - OpSource HLSL 500 - OpName %main "main" - OpName %Load_u1_ "Load(u1;" - OpName %size "size" - OpName %_main_vu3_ "@main(vu3;" - OpName %id "id" - OpName %data "data" - OpName %byteAddrTemp "byteAddrTemp" - OpName %ssbo "ssbo" - OpMemberName %ssbo 0 "@data" - OpName %ssbo_0 "ssbo" - OpName %param "param" - OpName %id_0 "id" - OpName %id_1 "id" - OpName %param_0 "param" - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %ssbo 0 NonWritable - OpMemberDecorate %ssbo 0 Offset 0 - OpDecorate %ssbo BufferBlock - OpDecorate %ssbo_0 DescriptorSet 0 - OpDecorate %ssbo_0 Binding 1 - OpDecorate %id_1 BuiltIn GlobalInvocationId - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 -%_ptr_Function_uint = OpTypePointer Function %uint - %8 = OpTypeFunction %void %_ptr_Function_uint - %v3uint = OpTypeVector %uint 3 -%_ptr_Function_v3uint = OpTypePointer Function %v3uint - %14 = OpTypeFunction %void %_ptr_Function_v3uint - %v4uint = OpTypeVector %uint 4 -%_ptr_Function_v4uint = OpTypePointer Function %v4uint - %int = OpTypeInt 32 1 -%_ptr_Function_int = OpTypePointer Function %int - %int_2 = OpConstant %int 2 -%_runtimearr_uint = OpTypeRuntimeArray %uint - %ssbo = OpTypeStruct %_runtimearr_uint -%_ptr_Uniform_ssbo = OpTypePointer Uniform %ssbo - %ssbo_0 = OpVariable %_ptr_Uniform_ssbo Uniform - %int_0 = OpConstant %int 0 -%_ptr_Uniform_uint = OpTypePointer Uniform %uint - %int_1 = OpConstant %int 1 - %int_3 = OpConstant %int 3 - %uint_4 = OpConstant %uint 4 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint - %id_1 = OpVariable %_ptr_Input_v3uint Input - %main = OpFunction %void None %3 - %5 = OpLabel - %id_0 = OpVariable %_ptr_Function_v3uint Function - %param_0 = OpVariable %_ptr_Function_v3uint Function - %57 = OpLoad %v3uint %id_1 - OpStore %id_0 %57 - %59 = OpLoad %v3uint %id_0 - OpStore %param_0 %59 - %60 = OpFunctionCall %void %_main_vu3_ %param_0 - OpReturn - OpFunctionEnd - %Load_u1_ = OpFunction %void None %8 - %size = OpFunctionParameter %_ptr_Function_uint - %11 = OpLabel - %data = OpVariable %_ptr_Function_v4uint Function -%byteAddrTemp = OpVariable %_ptr_Function_int Function - %24 = OpLoad %uint %size - %26 = OpShiftRightLogical %int %24 %int_2 - OpStore %byteAddrTemp %26 - %32 = OpLoad %int %byteAddrTemp - %34 = OpAccessChain %_ptr_Uniform_uint %ssbo_0 %int_0 %32 - %35 = OpLoad %uint %34 - %36 = OpLoad %int %byteAddrTemp - %38 = OpIAdd %int %36 %int_1 - %39 = OpAccessChain %_ptr_Uniform_uint %ssbo_0 %int_0 %38 - %40 = OpLoad %uint %39 - %41 = OpLoad %int %byteAddrTemp - %42 = OpIAdd %int %41 %int_2 - %43 = OpAccessChain %_ptr_Uniform_uint %ssbo_0 %int_0 %42 - %44 = OpLoad %uint %43 - %45 = OpLoad %int %byteAddrTemp - %47 = OpIAdd %int %45 %int_3 - %48 = OpAccessChain %_ptr_Uniform_uint %ssbo_0 %int_0 %47 - %49 = OpLoad %uint %48 - %50 = OpCompositeConstruct %v4uint %35 %40 %44 %49 - OpStore %data %50 - OpReturn - OpFunctionEnd - %_main_vu3_ = OpFunction %void None %14 - %id = OpFunctionParameter %_ptr_Function_v3uint - %17 = OpLabel - %param = OpVariable %_ptr_Function_uint Function - OpStore %param %uint_4 - %53 = OpFunctionCall %void %Load_u1_ %param - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl/asm/comp/nmin-max-clamp.asm.comp b/third_party/spirv-cross/shaders-hlsl/asm/comp/nmin-max-clamp.asm.comp deleted file mode 100644 index 6c060eedad..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/asm/comp/nmin-max-clamp.asm.comp +++ /dev/null @@ -1,203 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Khronos SPIR-V Tools Assembler; 0 -; Bound: 139 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "a1" - OpMemberName %SSBO 1 "a2" - OpMemberName %SSBO 2 "a3" - OpMemberName %SSBO 3 "a4" - OpMemberName %SSBO 4 "b1" - OpMemberName %SSBO 5 "b2" - OpMemberName %SSBO 6 "b3" - OpMemberName %SSBO 7 "b4" - OpMemberName %SSBO 8 "c1" - OpMemberName %SSBO 9 "c2" - OpMemberName %SSBO 10 "c3" - OpMemberName %SSBO 11 "c4" - OpName %_ "" - OpName %i "i" - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %SSBO 1 Offset 8 - OpMemberDecorate %SSBO 2 Offset 16 - OpMemberDecorate %SSBO 3 Offset 32 - OpMemberDecorate %SSBO 4 Offset 48 - OpMemberDecorate %SSBO 5 Offset 56 - OpMemberDecorate %SSBO 6 Offset 64 - OpMemberDecorate %SSBO 7 Offset 80 - OpMemberDecorate %SSBO 8 Offset 96 - OpMemberDecorate %SSBO 9 Offset 104 - OpMemberDecorate %SSBO 10 Offset 112 - OpMemberDecorate %SSBO 11 Offset 128 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - %void = OpTypeVoid - %7 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v2float = OpTypeVector %float 2 - %v3float = OpTypeVector %float 3 - %v4float = OpTypeVector %float 4 - %SSBO = OpTypeStruct %float %v2float %v3float %v4float %float %v2float %v3float %v4float %float %v2float %v3float %v4float -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %int_4 = OpConstant %int 4 -%_ptr_Uniform_float = OpTypePointer Uniform %float - %int_8 = OpConstant %int 8 - %int_1 = OpConstant %int 1 - %int_5 = OpConstant %int 5 -%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float - %int_9 = OpConstant %int 9 - %int_2 = OpConstant %int 2 - %int_6 = OpConstant %int 6 -%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float - %int_10 = OpConstant %int 10 - %int_3 = OpConstant %int 3 - %int_7 = OpConstant %int 7 -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float - %int_11 = OpConstant %int 11 -%_ptr_Function_int = OpTypePointer Function %int - %bool = OpTypeBool - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 - %uint_1 = OpConstant %uint 1 - %main = OpFunction %void None %7 - %35 = OpLabel - %i = OpVariable %_ptr_Function_int Function - %36 = OpAccessChain %_ptr_Uniform_float %_ %int_4 - %37 = OpLoad %float %36 - %38 = OpAccessChain %_ptr_Uniform_float %_ %int_8 - %39 = OpLoad %float %38 - %40 = OpExtInst %float %1 NMin %37 %39 - %41 = OpAccessChain %_ptr_Uniform_float %_ %int_0 - OpStore %41 %40 - %42 = OpAccessChain %_ptr_Uniform_v2float %_ %int_5 - %43 = OpLoad %v2float %42 - %44 = OpAccessChain %_ptr_Uniform_v2float %_ %int_9 - %45 = OpLoad %v2float %44 - %46 = OpExtInst %v2float %1 NMin %43 %45 - %47 = OpAccessChain %_ptr_Uniform_v2float %_ %int_1 - OpStore %47 %46 - %48 = OpAccessChain %_ptr_Uniform_v3float %_ %int_6 - %49 = OpLoad %v3float %48 - %50 = OpAccessChain %_ptr_Uniform_v3float %_ %int_10 - %51 = OpLoad %v3float %50 - %52 = OpExtInst %v3float %1 NMin %49 %51 - %53 = OpAccessChain %_ptr_Uniform_v3float %_ %int_2 - OpStore %53 %52 - %54 = OpAccessChain %_ptr_Uniform_v4float %_ %int_7 - %55 = OpLoad %v4float %54 - %56 = OpAccessChain %_ptr_Uniform_v4float %_ %int_11 - %57 = OpLoad %v4float %56 - %58 = OpExtInst %v4float %1 NMin %55 %57 - %59 = OpAccessChain %_ptr_Uniform_v4float %_ %int_3 - OpStore %59 %58 - %60 = OpAccessChain %_ptr_Uniform_float %_ %int_4 - %61 = OpLoad %float %60 - %62 = OpAccessChain %_ptr_Uniform_float %_ %int_8 - %63 = OpLoad %float %62 - %64 = OpExtInst %float %1 NMax %61 %63 - %65 = OpAccessChain %_ptr_Uniform_float %_ %int_0 - OpStore %65 %64 - %66 = OpAccessChain %_ptr_Uniform_v2float %_ %int_5 - %67 = OpLoad %v2float %66 - %68 = OpAccessChain %_ptr_Uniform_v2float %_ %int_9 - %69 = OpLoad %v2float %68 - %70 = OpExtInst %v2float %1 NMax %67 %69 - %71 = OpAccessChain %_ptr_Uniform_v2float %_ %int_1 - OpStore %71 %70 - %72 = OpAccessChain %_ptr_Uniform_v3float %_ %int_6 - %73 = OpLoad %v3float %72 - %74 = OpAccessChain %_ptr_Uniform_v3float %_ %int_10 - %75 = OpLoad %v3float %74 - %76 = OpExtInst %v3float %1 NMax %73 %75 - %77 = OpAccessChain %_ptr_Uniform_v3float %_ %int_2 - OpStore %77 %76 - %78 = OpAccessChain %_ptr_Uniform_v4float %_ %int_7 - %79 = OpLoad %v4float %78 - %80 = OpAccessChain %_ptr_Uniform_v4float %_ %int_11 - %81 = OpLoad %v4float %80 - %82 = OpExtInst %v4float %1 NMax %79 %81 - %83 = OpAccessChain %_ptr_Uniform_v4float %_ %int_3 - OpStore %83 %82 - %84 = OpAccessChain %_ptr_Uniform_float %_ %int_0 - %85 = OpLoad %float %84 - %86 = OpAccessChain %_ptr_Uniform_float %_ %int_4 - %87 = OpLoad %float %86 - %88 = OpAccessChain %_ptr_Uniform_float %_ %int_8 - %89 = OpLoad %float %88 - %90 = OpExtInst %float %1 NClamp %85 %87 %89 - %91 = OpAccessChain %_ptr_Uniform_float %_ %int_0 - OpStore %91 %90 - %92 = OpAccessChain %_ptr_Uniform_v2float %_ %int_1 - %93 = OpLoad %v2float %92 - %94 = OpAccessChain %_ptr_Uniform_v2float %_ %int_5 - %95 = OpLoad %v2float %94 - %96 = OpAccessChain %_ptr_Uniform_v2float %_ %int_9 - %97 = OpLoad %v2float %96 - %98 = OpExtInst %v2float %1 NClamp %93 %95 %97 - %99 = OpAccessChain %_ptr_Uniform_v2float %_ %int_1 - OpStore %99 %98 - %100 = OpAccessChain %_ptr_Uniform_v3float %_ %int_2 - %101 = OpLoad %v3float %100 - %102 = OpAccessChain %_ptr_Uniform_v3float %_ %int_6 - %103 = OpLoad %v3float %102 - %104 = OpAccessChain %_ptr_Uniform_v3float %_ %int_10 - %105 = OpLoad %v3float %104 - %106 = OpExtInst %v3float %1 NClamp %101 %103 %105 - %107 = OpAccessChain %_ptr_Uniform_v3float %_ %int_2 - OpStore %107 %106 - %108 = OpAccessChain %_ptr_Uniform_v4float %_ %int_3 - %109 = OpLoad %v4float %108 - %110 = OpAccessChain %_ptr_Uniform_v4float %_ %int_7 - %111 = OpLoad %v4float %110 - %112 = OpAccessChain %_ptr_Uniform_v4float %_ %int_11 - %113 = OpLoad %v4float %112 - %114 = OpExtInst %v4float %1 NClamp %109 %111 %113 - %115 = OpAccessChain %_ptr_Uniform_v4float %_ %int_3 - OpStore %115 %114 - OpStore %i %int_0 - OpBranch %116 - %116 = OpLabel - OpLoopMerge %117 %118 None - OpBranch %119 - %119 = OpLabel - %120 = OpLoad %int %i - %121 = OpSLessThan %bool %120 %int_2 - OpBranchConditional %121 %122 %117 - %122 = OpLabel - %123 = OpAccessChain %_ptr_Uniform_v2float %_ %int_5 - %124 = OpLoad %v2float %123 - %125 = OpAccessChain %_ptr_Uniform_v2float %_ %int_9 - %126 = OpLoad %v2float %125 - %127 = OpExtInst %v2float %1 NMin %124 %126 - %128 = OpAccessChain %_ptr_Uniform_v2float %_ %int_1 - OpStore %128 %127 - OpBranch %118 - %118 = OpLabel - %129 = OpLoad %int %i - %130 = OpIAdd %int %129 %int_1 - OpStore %i %130 - %131 = OpAccessChain %_ptr_Uniform_float %_ %int_0 - %132 = OpLoad %float %131 - %133 = OpAccessChain %_ptr_Uniform_float %_ %int_5 %uint_0 - %134 = OpLoad %float %133 - %135 = OpAccessChain %_ptr_Uniform_float %_ %int_5 %uint_1 - %136 = OpLoad %float %135 - %137 = OpExtInst %float %1 NClamp %132 %134 %136 - %138 = OpAccessChain %_ptr_Uniform_float %_ %int_0 - OpStore %138 %137 - OpBranch %116 - %117 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl/asm/frag/cbuffer-stripped.asm.frag b/third_party/spirv-cross/shaders-hlsl/asm/frag/cbuffer-stripped.asm.frag deleted file mode 100644 index d778034b5f..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/asm/frag/cbuffer-stripped.asm.frag +++ /dev/null @@ -1,55 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 34 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %_entryPointOutput - OpExecutionMode %main OriginUpperLeft - OpSource HLSL 500 - OpMemberDecorate %UBO 0 RowMajor - OpMemberDecorate %UBO 0 Offset 0 - OpMemberDecorate %UBO 0 MatrixStride 16 - OpMemberDecorate %UBO 1 Offset 64 - OpDecorate %UBO Block - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - OpDecorate %_entryPointOutput Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v2float = OpTypeVector %float 2 - %8 = OpTypeFunction %v2float -%_ptr_Function_v2float = OpTypePointer Function %v2float - %v4float = OpTypeVector %float 4 -%mat2v4float = OpTypeMatrix %v4float 2 - %UBO = OpTypeStruct %mat2v4float %v4float -%_ptr_Uniform_UBO = OpTypePointer Uniform %UBO - %_ = OpVariable %_ptr_Uniform_UBO Uniform - %int = OpTypeInt 32 1 - %int_1 = OpConstant %int 1 -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float - %int_0 = OpConstant %int 0 -%_ptr_Uniform_mat2v4float = OpTypePointer Uniform %mat2v4float -%_ptr_Output_v2float = OpTypePointer Output %v2float -%_entryPointOutput = OpVariable %_ptr_Output_v2float Output - %main = OpFunction %void None %3 - %5 = OpLabel - %33 = OpFunctionCall %v2float %_main_ - OpStore %_entryPointOutput %33 - OpReturn - OpFunctionEnd - %_main_ = OpFunction %v2float None %8 - %10 = OpLabel - %a0 = OpVariable %_ptr_Function_v2float Function - %21 = OpAccessChain %_ptr_Uniform_v4float %_ %int_1 - %22 = OpLoad %v4float %21 - %25 = OpAccessChain %_ptr_Uniform_mat2v4float %_ %int_0 - %26 = OpLoad %mat2v4float %25 - %27 = OpVectorTimesMatrix %v2float %22 %26 - OpStore %a0 %27 - %28 = OpLoad %v2float %a0 - OpReturnValue %28 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl/asm/frag/combined-sampler-reuse.asm.frag b/third_party/spirv-cross/shaders-hlsl/asm/frag/combined-sampler-reuse.asm.frag deleted file mode 100644 index ba2f95b234..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/asm/frag/combined-sampler-reuse.asm.frag +++ /dev/null @@ -1,57 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 36 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %vUV - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %FragColor "FragColor" - OpName %uTex "uTex" - OpName %uSampler "uSampler" - OpName %vUV "vUV" - OpDecorate %FragColor Location 0 - OpDecorate %uTex DescriptorSet 0 - OpDecorate %uTex Binding 1 - OpDecorate %uSampler DescriptorSet 0 - OpDecorate %uSampler Binding 0 - OpDecorate %vUV Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %10 = OpTypeImage %float 2D 0 0 0 1 Unknown -%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10 - %uTex = OpVariable %_ptr_UniformConstant_10 UniformConstant - %14 = OpTypeSampler -%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14 - %uSampler = OpVariable %_ptr_UniformConstant_14 UniformConstant - %18 = OpTypeSampledImage %10 - %v2float = OpTypeVector %float 2 -%_ptr_Input_v2float = OpTypePointer Input %v2float - %vUV = OpVariable %_ptr_Input_v2float Input - %int = OpTypeInt 32 1 - %v2int = OpTypeVector %int 2 - %int_1 = OpConstant %int 1 - %32 = OpConstantComposite %v2int %int_1 %int_1 - %main = OpFunction %void None %3 - %5 = OpLabel - %13 = OpLoad %10 %uTex - %17 = OpLoad %14 %uSampler - %19 = OpSampledImage %18 %13 %17 - %23 = OpLoad %v2float %vUV - %24 = OpImageSampleImplicitLod %v4float %19 %23 - OpStore %FragColor %24 - %28 = OpLoad %v2float %vUV - %33 = OpImageSampleImplicitLod %v4float %19 %28 ConstOffset %32 - %34 = OpLoad %v4float %FragColor - %35 = OpFAdd %v4float %34 %33 - OpStore %FragColor %35 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl/asm/frag/empty-struct.asm.frag b/third_party/spirv-cross/shaders-hlsl/asm/frag/empty-struct.asm.frag deleted file mode 100644 index 0efd3158cb..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/asm/frag/empty-struct.asm.frag +++ /dev/null @@ -1,55 +0,0 @@ -; SPIR-V -; Version: 1.2 -; Generator: Khronos; 0 -; Bound: 43 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %EntryPoint_Main "main" - OpExecutionMode %EntryPoint_Main OriginUpperLeft - OpSource Unknown 100 - OpName %EmptyStructTest "EmptyStructTest" - OpName %GetValue "GetValue" - OpName %GetValue2 "GetValue" - OpName %self "self" - OpName %self2 "self" - OpName %emptyStruct "emptyStruct" - OpName %value "value" - OpName %EntryPoint_Main "EntryPoint_Main" - -%EmptyStructTest = OpTypeStruct -%_ptr_Function_EmptyStructTest = OpTypePointer Function %EmptyStructTest - %float = OpTypeFloat 32 -%_ptr_Function_float = OpTypePointer Function %float - %5 = OpTypeFunction %float %_ptr_Function_EmptyStructTest - %6 = OpTypeFunction %float %EmptyStructTest - %void = OpTypeVoid -%_ptr_Function_void = OpTypePointer Function %void - %8 = OpTypeFunction %void %_ptr_Function_EmptyStructTest - %9 = OpTypeFunction %void - %float_0 = OpConstant %float 0 - - %GetValue = OpFunction %float None %5 - %self = OpFunctionParameter %_ptr_Function_EmptyStructTest - %13 = OpLabel - OpReturnValue %float_0 - OpFunctionEnd - - %GetValue2 = OpFunction %float None %6 - %self2 = OpFunctionParameter %EmptyStructTest - %14 = OpLabel - OpReturnValue %float_0 - OpFunctionEnd - -%EntryPoint_Main = OpFunction %void None %9 - %37 = OpLabel - %emptyStruct = OpVariable %_ptr_Function_EmptyStructTest Function - %18 = OpVariable %_ptr_Function_EmptyStructTest Function - %value = OpVariable %_ptr_Function_float Function - %value2 = OpCompositeConstruct %EmptyStructTest - %22 = OpFunctionCall %float %GetValue %emptyStruct - %23 = OpFunctionCall %float %GetValue2 %value2 - OpStore %value %22 - OpStore %value %23 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl/asm/frag/frem.asm.frag b/third_party/spirv-cross/shaders-hlsl/asm/frag/frem.asm.frag deleted file mode 100644 index 8350c75c04..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/asm/frag/frem.asm.frag +++ /dev/null @@ -1,41 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 3 -; Bound: 16 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %vA %vB - OpExecutionMode %main OriginUpperLeft - OpSource ESSL 310 - OpName %main "main" - OpName %FragColor "FragColor" - OpName %vA "vA" - OpName %vB "vB" - OpDecorate %FragColor RelaxedPrecision - OpDecorate %FragColor Location 0 - OpDecorate %vA RelaxedPrecision - OpDecorate %vA Location 0 - OpDecorate %12 RelaxedPrecision - OpDecorate %vB RelaxedPrecision - OpDecorate %vB Location 1 - OpDecorate %14 RelaxedPrecision - OpDecorate %15 RelaxedPrecision - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output -%_ptr_Input_v4float = OpTypePointer Input %v4float - %vA = OpVariable %_ptr_Input_v4float Input - %vB = OpVariable %_ptr_Input_v4float Input - %main = OpFunction %void None %3 - %5 = OpLabel - %12 = OpLoad %v4float %vA - %14 = OpLoad %v4float %vB - %15 = OpFRem %v4float %12 %14 - OpStore %FragColor %15 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl/asm/frag/function-overload-alias.asm.frag b/third_party/spirv-cross/shaders-hlsl/asm/frag/function-overload-alias.asm.frag deleted file mode 100644 index 397aa98ce2..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/asm/frag/function-overload-alias.asm.frag +++ /dev/null @@ -1,153 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 3 -; Bound: 76 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource ESSL 310 - OpName %main "main" - OpName %foobar_vf4_ "foo" - OpName %a "foo" - OpName %foobar_vf3_ "foo" - OpName %a_0 "foo" - OpName %foobaz_vf4_ "foo" - OpName %a_1 "foo" - OpName %foobaz_vf2_ "foo" - OpName %a_2 "foo" - OpName %a_3 "foo" - OpName %param "foo" - OpName %b "foo" - OpName %param_0 "foo" - OpName %c "foo" - OpName %param_1 "foo" - OpName %d "foo" - OpName %param_2 "foo" - OpName %FragColor "FragColor" - OpDecorate %foobar_vf4_ RelaxedPrecision - OpDecorate %a RelaxedPrecision - OpDecorate %foobar_vf3_ RelaxedPrecision - OpDecorate %a_0 RelaxedPrecision - OpDecorate %foobaz_vf4_ RelaxedPrecision - OpDecorate %a_1 RelaxedPrecision - OpDecorate %foobaz_vf2_ RelaxedPrecision - OpDecorate %a_2 RelaxedPrecision - OpDecorate %28 RelaxedPrecision - OpDecorate %30 RelaxedPrecision - OpDecorate %31 RelaxedPrecision - OpDecorate %34 RelaxedPrecision - OpDecorate %35 RelaxedPrecision - OpDecorate %36 RelaxedPrecision - OpDecorate %37 RelaxedPrecision - OpDecorate %40 RelaxedPrecision - OpDecorate %42 RelaxedPrecision - OpDecorate %43 RelaxedPrecision - OpDecorate %46 RelaxedPrecision - OpDecorate %47 RelaxedPrecision - OpDecorate %48 RelaxedPrecision - OpDecorate %49 RelaxedPrecision - OpDecorate %a_3 RelaxedPrecision - OpDecorate %55 RelaxedPrecision - OpDecorate %b RelaxedPrecision - OpDecorate %59 RelaxedPrecision - OpDecorate %c RelaxedPrecision - OpDecorate %62 RelaxedPrecision - OpDecorate %d RelaxedPrecision - OpDecorate %66 RelaxedPrecision - OpDecorate %FragColor RelaxedPrecision - OpDecorate %FragColor Location 0 - OpDecorate %69 RelaxedPrecision - OpDecorate %70 RelaxedPrecision - OpDecorate %71 RelaxedPrecision - OpDecorate %72 RelaxedPrecision - OpDecorate %73 RelaxedPrecision - OpDecorate %74 RelaxedPrecision - OpDecorate %75 RelaxedPrecision - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Function_v4float = OpTypePointer Function %v4float - %9 = OpTypeFunction %v4float %_ptr_Function_v4float - %v3float = OpTypeVector %float 3 -%_ptr_Function_v3float = OpTypePointer Function %v3float - %15 = OpTypeFunction %v4float %_ptr_Function_v3float - %v2float = OpTypeVector %float 2 -%_ptr_Function_v2float = OpTypePointer Function %v2float - %24 = OpTypeFunction %v4float %_ptr_Function_v2float - %float_1 = OpConstant %float 1 - %float_2 = OpConstant %float 2 - %53 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 - %57 = OpConstantComposite %v3float %float_1 %float_1 %float_1 - %64 = OpConstantComposite %v2float %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %main = OpFunction %void None %3 - %5 = OpLabel - %a_3 = OpVariable %_ptr_Function_v4float Function - %param = OpVariable %_ptr_Function_v4float Function - %b = OpVariable %_ptr_Function_v4float Function - %param_0 = OpVariable %_ptr_Function_v3float Function - %c = OpVariable %_ptr_Function_v4float Function - %param_1 = OpVariable %_ptr_Function_v4float Function - %d = OpVariable %_ptr_Function_v4float Function - %param_2 = OpVariable %_ptr_Function_v2float Function - OpStore %param %53 - %55 = OpFunctionCall %v4float %foobar_vf4_ %param - OpStore %a_3 %55 - OpStore %param_0 %57 - %59 = OpFunctionCall %v4float %foobar_vf3_ %param_0 - OpStore %b %59 - OpStore %param_1 %53 - %62 = OpFunctionCall %v4float %foobaz_vf4_ %param_1 - OpStore %c %62 - OpStore %param_2 %64 - %66 = OpFunctionCall %v4float %foobaz_vf2_ %param_2 - OpStore %d %66 - %69 = OpLoad %v4float %a_3 - %70 = OpLoad %v4float %b - %71 = OpFAdd %v4float %69 %70 - %72 = OpLoad %v4float %c - %73 = OpFAdd %v4float %71 %72 - %74 = OpLoad %v4float %d - %75 = OpFAdd %v4float %73 %74 - OpStore %FragColor %75 - OpReturn - OpFunctionEnd -%foobar_vf4_ = OpFunction %v4float None %9 - %a = OpFunctionParameter %_ptr_Function_v4float - %12 = OpLabel - %28 = OpLoad %v4float %a - %30 = OpCompositeConstruct %v4float %float_1 %float_1 %float_1 %float_1 - %31 = OpFAdd %v4float %28 %30 - OpReturnValue %31 - OpFunctionEnd -%foobar_vf3_ = OpFunction %v4float None %15 - %a_0 = OpFunctionParameter %_ptr_Function_v3float - %18 = OpLabel - %34 = OpLoad %v3float %a_0 - %35 = OpVectorShuffle %v4float %34 %34 0 1 2 2 - %36 = OpCompositeConstruct %v4float %float_1 %float_1 %float_1 %float_1 - %37 = OpFAdd %v4float %35 %36 - OpReturnValue %37 - OpFunctionEnd -%foobaz_vf4_ = OpFunction %v4float None %9 - %a_1 = OpFunctionParameter %_ptr_Function_v4float - %21 = OpLabel - %40 = OpLoad %v4float %a_1 - %42 = OpCompositeConstruct %v4float %float_2 %float_2 %float_2 %float_2 - %43 = OpFAdd %v4float %40 %42 - OpReturnValue %43 - OpFunctionEnd -%foobaz_vf2_ = OpFunction %v4float None %24 - %a_2 = OpFunctionParameter %_ptr_Function_v2float - %27 = OpLabel - %46 = OpLoad %v2float %a_2 - %47 = OpVectorShuffle %v4float %46 %46 0 1 0 1 - %48 = OpCompositeConstruct %v4float %float_2 %float_2 %float_2 %float_2 - %49 = OpFAdd %v4float %47 %48 - OpReturnValue %49 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl/asm/frag/image-extract-reuse.asm.frag b/third_party/spirv-cross/shaders-hlsl/asm/frag/image-extract-reuse.asm.frag deleted file mode 100644 index 63c8ab57a5..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/asm/frag/image-extract-reuse.asm.frag +++ /dev/null @@ -1,41 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 19 -; Schema: 0 - OpCapability Shader - OpCapability ImageQuery - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %Size - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %Size "Size" - OpName %uTexture "uTexture" - OpDecorate %Size Location 0 - OpDecorate %uTexture DescriptorSet 0 - OpDecorate %uTexture Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %v2int = OpTypeVector %int 2 -%_ptr_Output_v2int = OpTypePointer Output %v2int - %Size = OpVariable %_ptr_Output_v2int Output - %float = OpTypeFloat 32 - %11 = OpTypeImage %float 2D 0 0 0 1 Unknown - %12 = OpTypeSampledImage %11 -%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12 - %uTexture = OpVariable %_ptr_UniformConstant_12 UniformConstant - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 - %main = OpFunction %void None %3 - %5 = OpLabel - %15 = OpLoad %12 %uTexture - %17 = OpImage %11 %15 - %18 = OpImageQuerySizeLod %v2int %17 %int_0 - %19 = OpImageQuerySizeLod %v2int %17 %int_1 - %20 = OpIAdd %v2int %18 %19 - OpStore %Size %20 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl/asm/frag/implicit-read-dep-phi.asm.frag b/third_party/spirv-cross/shaders-hlsl/asm/frag/implicit-read-dep-phi.asm.frag deleted file mode 100644 index ccdfeef58d..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/asm/frag/implicit-read-dep-phi.asm.frag +++ /dev/null @@ -1,81 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 3 -; Bound: 60 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %v0 %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %phi "phi" - OpName %i "i" - OpName %v0 "v0" - OpName %FragColor "FragColor" - OpName %uImage "uImage" - OpDecorate %v0 Location 0 - OpDecorate %FragColor Location 0 - OpDecorate %uImage DescriptorSet 0 - OpDecorate %uImage Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 -%_ptr_Function_float = OpTypePointer Function %float - %float_1 = OpConstant %float 1 - %int = OpTypeInt 32 1 -%_ptr_Function_int = OpTypePointer Function %int - %int_0 = OpConstant %int 0 - %int_4 = OpConstant %int 4 - %bool = OpTypeBool - %v4float = OpTypeVector %float 4 -%_ptr_Input_v4float = OpTypePointer Input %v4float - %v0 = OpVariable %_ptr_Input_v4float Input -%_ptr_Input_float = OpTypePointer Input %float - %float_0 = OpConstant %float 0 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %36 = OpTypeImage %float 2D 0 0 0 1 Unknown - %37 = OpTypeSampledImage %36 -%_ptr_UniformConstant_37 = OpTypePointer UniformConstant %37 - %uImage = OpVariable %_ptr_UniformConstant_37 UniformConstant - %v2float = OpTypeVector %float 2 - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 - %float_2 = OpConstant %float 2 - %int_1 = OpConstant %int 1 - %float_1_vec = OpConstantComposite %v4float %float_1 %float_2 %float_1 %float_2 - %main = OpFunction %void None %3 - %5 = OpLabel - %i = OpVariable %_ptr_Function_int Function - OpStore %i %int_0 - OpBranch %loop_header - %loop_header = OpLabel - %phi = OpPhi %float %float_1 %5 %phi_plus_2 %continue_block - %tex_phi = OpPhi %v4float %float_1_vec %5 %texture_load_result %continue_block - OpLoopMerge %merge_block %continue_block None - OpBranch %loop_body - %loop_body = OpLabel - OpStore %FragColor %tex_phi - %19 = OpLoad %int %i - %22 = OpSLessThan %bool %19 %int_4 - OpBranchConditional %22 %15 %merge_block - %15 = OpLabel - %26 = OpLoad %int %i - %28 = OpAccessChain %_ptr_Input_float %v0 %26 - %29 = OpLoad %float %28 - %31 = OpFOrdGreaterThan %bool %29 %float_0 - OpBranchConditional %31 %continue_block %merge_block - %continue_block = OpLabel - %40 = OpLoad %37 %uImage - %43 = OpCompositeConstruct %v2float %phi %phi - %texture_load_result = OpImageSampleExplicitLod %v4float %40 %43 Lod %float_0 - %phi_plus_2 = OpFAdd %float %phi %float_2 - %54 = OpLoad %int %i - %56 = OpIAdd %int %54 %int_1 - OpStore %i %56 - OpBranch %loop_header - %merge_block = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl/asm/frag/inf-nan-constant.asm.frag b/third_party/spirv-cross/shaders-hlsl/asm/frag/inf-nan-constant.asm.frag deleted file mode 100644 index 40e5d3a89c..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/asm/frag/inf-nan-constant.asm.frag +++ /dev/null @@ -1,29 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 14 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource ESSL 310 - OpName %main "main" - OpName %FragColor "FragColor" - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v3float = OpTypeVector %float 3 -%_ptr_Output_v3float = OpTypePointer Output %v3float - %FragColor = OpVariable %_ptr_Output_v3float Output -%float_0x1p_128 = OpConstant %float 0x1p+128 -%float_n0x1p_128 = OpConstant %float -0x1p+128 -%float_0x1_8p_128 = OpConstant %float 0x1.8p+128 - %13 = OpConstantComposite %v3float %float_0x1p_128 %float_n0x1p_128 %float_0x1_8p_128 - %main = OpFunction %void None %3 - %5 = OpLabel - OpStore %FragColor %13 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl/asm/frag/line-directive.line.asm.frag b/third_party/spirv-cross/shaders-hlsl/asm/frag/line-directive.line.asm.frag deleted file mode 100644 index 9e08e9a891..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/asm/frag/line-directive.line.asm.frag +++ /dev/null @@ -1,221 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Shaderc over Glslang; 7 -; Bound: 83 -; Schema: 0 - OpCapability Shader - %2 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %vColor - OpExecutionMode %main OriginUpperLeft - %1 = OpString "test.frag" - OpSource GLSL 450 %1 "// OpModuleProcessed entry-point main -// OpModuleProcessed client vulkan100 -// OpModuleProcessed target-env vulkan1.0 -// OpModuleProcessed entry-point main -#line 1 -#version 450 - -layout(location = 0) in float vColor; -layout(location = 0) out float FragColor; - -void func() -{ - FragColor = 1.0; - FragColor = 2.0; - if (vColor < 0.0) - { - FragColor = 3.0; - } - else - { - FragColor = 4.0; - } - - for (int i = 0; i < 40 + vColor; i += int(vColor) + 5) - { - FragColor += 0.2; - FragColor += 0.3; - } - - switch (int(vColor)) - { - case 0: - FragColor += 0.2; - break; - - case 1: - FragColor += 0.4; - break; - - default: - FragColor += 0.8; - break; - } - - do - { - FragColor += 10.0 + vColor; - } while(FragColor < 100.0); -} - -void main() -{ - func(); -} -" - OpSourceExtension "GL_GOOGLE_cpp_style_line_directive" - OpSourceExtension "GL_GOOGLE_include_directive" - OpName %main "main" - OpName %func_ "func(" - OpName %FragColor "FragColor" - OpName %vColor "vColor" - OpName %i "i" - OpDecorate %FragColor Location 0 - OpDecorate %vColor Location 0 - %void = OpTypeVoid - %4 = OpTypeFunction %void - %float = OpTypeFloat 32 -%_ptr_Output_float = OpTypePointer Output %float - %FragColor = OpVariable %_ptr_Output_float Output - %float_1 = OpConstant %float 1 - %float_2 = OpConstant %float 2 -%_ptr_Input_float = OpTypePointer Input %float - %vColor = OpVariable %_ptr_Input_float Input - %float_0 = OpConstant %float 0 - %bool = OpTypeBool - %float_3 = OpConstant %float 3 - %float_4 = OpConstant %float 4 - %int = OpTypeInt 32 1 - - ; Should be ignored - OpLine %1 5 0 - -%_ptr_Function_int = OpTypePointer Function %int - %int_0 = OpConstant %int 0 - %float_40 = OpConstant %float 40 -%float_0_200000003 = OpConstant %float 0.200000003 -%float_0_300000012 = OpConstant %float 0.300000012 - %int_5 = OpConstant %int 5 - - ; Should be ignored - OpLine %1 5 0 - -%float_0_400000006 = OpConstant %float 0.400000006 -%float_0_800000012 = OpConstant %float 0.800000012 - %float_10 = OpConstant %float 10 - %float_100 = OpConstant %float 100 - %main = OpFunction %void None %4 - OpLine %1 46 0 - %6 = OpLabel - OpLine %1 48 0 - %82 = OpFunctionCall %void %func_ - OpReturn - OpFunctionEnd - - ; Should be ignored - OpLine %1 5 0 - - %func_ = OpFunction %void None %4 - OpLine %1 6 0 - %8 = OpLabel - %i = OpVariable %_ptr_Function_int Function - OpLine %1 8 0 - OpStore %FragColor %float_1 - OpLine %1 9 0 - OpStore %FragColor %float_2 - OpLine %1 10 0 - %16 = OpLoad %float %vColor - %19 = OpFOrdLessThan %bool %16 %float_0 - OpSelectionMerge %21 None - OpBranchConditional %19 %20 %23 - %20 = OpLabel - OpLine %1 12 0 - OpStore %FragColor %float_3 - OpBranch %21 - %23 = OpLabel - OpLine %1 16 0 - OpStore %FragColor %float_4 - OpBranch %21 - %21 = OpLabel - OpLine %1 19 0 - OpStore %i %int_0 - OpBranch %29 - %29 = OpLabel - OpLoopMerge %31 %32 None - OpBranch %33 - %33 = OpLabel - %34 = OpLoad %int %i - %35 = OpConvertSToF %float %34 - %37 = OpLoad %float %vColor - %38 = OpFAdd %float %float_40 %37 - %39 = OpFOrdLessThan %bool %35 %38 - OpBranchConditional %39 %30 %31 - %30 = OpLabel - OpLine %1 21 0 - %41 = OpLoad %float %FragColor - %42 = OpFAdd %float %41 %float_0_200000003 - OpStore %FragColor %42 - OpLine %1 22 0 - %44 = OpLoad %float %FragColor - %45 = OpFAdd %float %44 %float_0_300000012 - OpStore %FragColor %45 - OpBranch %32 - %32 = OpLabel - OpLine %1 19 0 - %46 = OpLoad %float %vColor - %47 = OpConvertFToS %int %46 - %49 = OpIAdd %int %47 %int_5 - %50 = OpLoad %int %i - %51 = OpIAdd %int %50 %49 - OpStore %i %51 - OpBranch %29 - %31 = OpLabel - OpLine %1 25 0 - %52 = OpLoad %float %vColor - %53 = OpConvertFToS %int %52 - OpSelectionMerge %57 None - OpSwitch %53 %56 0 %54 1 %55 - %56 = OpLabel - OpLine %1 36 0 - %66 = OpLoad %float %FragColor - %67 = OpFAdd %float %66 %float_0_800000012 - OpStore %FragColor %67 - OpLine %1 37 0 - OpBranch %57 - %54 = OpLabel - OpLine %1 28 0 - %58 = OpLoad %float %FragColor - %59 = OpFAdd %float %58 %float_0_200000003 - OpStore %FragColor %59 - OpLine %1 29 0 - OpBranch %57 - %55 = OpLabel - OpLine %1 32 0 - %62 = OpLoad %float %FragColor - %63 = OpFAdd %float %62 %float_0_400000006 - OpStore %FragColor %63 - OpLine %1 33 0 - OpBranch %57 - %57 = OpLabel - OpBranch %70 - OpLine %1 43 0 - %70 = OpLabel - OpLoopMerge %72 %73 None - OpBranch %71 - %71 = OpLabel - OpLine %1 42 0 - %75 = OpLoad %float %vColor - %76 = OpFAdd %float %float_10 %75 - %77 = OpLoad %float %FragColor - %78 = OpFAdd %float %77 %76 - OpStore %FragColor %78 - OpBranch %73 - %73 = OpLabel - OpLine %1 43 0 - %79 = OpLoad %float %FragColor - %81 = OpFOrdLessThan %bool %79 %float_100 - OpBranchConditional %81 %70 %72 - %72 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl/asm/frag/lut-promotion-initializer.asm.frag b/third_party/spirv-cross/shaders-hlsl/asm/frag/lut-promotion-initializer.asm.frag deleted file mode 100644 index 320e5ebfbd..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/asm/frag/lut-promotion-initializer.asm.frag +++ /dev/null @@ -1,195 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 111 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %index - OpExecutionMode %main OriginUpperLeft - OpSource ESSL 310 - OpName %main "main" - OpName %FragColor "FragColor" - OpName %index "index" - OpName %indexable "indexable" - OpName %indexable_0 "indexable" - OpName %indexable_1 "indexable" - OpName %foo "foo" - OpName %foobar "foobar" - OpName %baz "baz" - OpDecorate %FragColor RelaxedPrecision - OpDecorate %FragColor Location 0 - OpDecorate %index RelaxedPrecision - OpDecorate %index Flat - OpDecorate %index Location 0 - OpDecorate %20 RelaxedPrecision - OpDecorate %25 RelaxedPrecision - OpDecorate %26 RelaxedPrecision - OpDecorate %32 RelaxedPrecision - OpDecorate %34 RelaxedPrecision - OpDecorate %37 RelaxedPrecision - OpDecorate %38 RelaxedPrecision - OpDecorate %39 RelaxedPrecision - OpDecorate %41 RelaxedPrecision - OpDecorate %42 RelaxedPrecision - OpDecorate %45 RelaxedPrecision - OpDecorate %46 RelaxedPrecision - OpDecorate %47 RelaxedPrecision - OpDecorate %foo RelaxedPrecision - OpDecorate %61 RelaxedPrecision - OpDecorate %66 RelaxedPrecision - OpDecorate %68 RelaxedPrecision - OpDecorate %71 RelaxedPrecision - OpDecorate %72 RelaxedPrecision - OpDecorate %73 RelaxedPrecision - OpDecorate %75 RelaxedPrecision - OpDecorate %76 RelaxedPrecision - OpDecorate %79 RelaxedPrecision - OpDecorate %80 RelaxedPrecision - OpDecorate %81 RelaxedPrecision - OpDecorate %foobar RelaxedPrecision - OpDecorate %83 RelaxedPrecision - OpDecorate %90 RelaxedPrecision - OpDecorate %91 RelaxedPrecision - OpDecorate %93 RelaxedPrecision - OpDecorate %94 RelaxedPrecision - OpDecorate %95 RelaxedPrecision - OpDecorate %baz RelaxedPrecision - OpDecorate %105 RelaxedPrecision - OpDecorate %106 RelaxedPrecision - OpDecorate %108 RelaxedPrecision - OpDecorate %109 RelaxedPrecision - OpDecorate %110 RelaxedPrecision - OpDecorate %16 RelaxedPrecision - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 -%_ptr_Output_float = OpTypePointer Output %float - %FragColor = OpVariable %_ptr_Output_float Output - %uint = OpTypeInt 32 0 - %uint_16 = OpConstant %uint 16 -%_arr_float_uint_16 = OpTypeArray %float %uint_16 - %float_1 = OpConstant %float 1 - %float_2 = OpConstant %float 2 - %float_3 = OpConstant %float 3 - %float_4 = OpConstant %float 4 - %16 = OpConstantComposite %_arr_float_uint_16 %float_1 %float_2 %float_3 %float_4 %float_1 %float_2 %float_3 %float_4 %float_1 %float_2 %float_3 %float_4 %float_1 %float_2 %float_3 %float_4 - %int = OpTypeInt 32 1 -%_ptr_Input_int = OpTypePointer Input %int - %index = OpVariable %_ptr_Input_int Input -%_ptr_Function__arr_float_uint_16 = OpTypePointer Function %_arr_float_uint_16 -%_ptr_Function_float = OpTypePointer Function %float - %int_10 = OpConstant %int 10 - %bool = OpTypeBool - %int_1 = OpConstant %int 1 - %v4float = OpTypeVector %float 4 - %uint_4 = OpConstant %uint 4 -%_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4 -%_ptr_Function__arr_v4float_uint_4 = OpTypePointer Function %_arr_v4float_uint_4 - %float_0 = OpConstant %float 0 - %54 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 - %55 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 - %float_8 = OpConstant %float 8 - %57 = OpConstantComposite %v4float %float_8 %float_8 %float_8 %float_8 - %float_5 = OpConstant %float 5 - %59 = OpConstantComposite %v4float %float_5 %float_5 %float_5 %float_5 - %60 = OpConstantComposite %_arr_v4float_uint_4 %54 %55 %57 %59 - %int_30 = OpConstant %int 30 - %int_3 = OpConstant %int 3 - %uint_1 = OpConstant %uint 1 - %uint_0 = OpConstant %uint 0 - %float_20 = OpConstant %float 20 - %uint_2 = OpConstant %uint 2 - %97 = OpConstantComposite %v4float %float_20 %float_20 %float_20 %float_20 - %float_30 = OpConstant %float 30 - %99 = OpConstantComposite %v4float %float_30 %float_30 %float_30 %float_30 - %float_50 = OpConstant %float 50 - %101 = OpConstantComposite %v4float %float_50 %float_50 %float_50 %float_50 - %float_60 = OpConstant %float 60 - %103 = OpConstantComposite %v4float %float_60 %float_60 %float_60 %float_60 - %104 = OpConstantComposite %_arr_v4float_uint_4 %97 %99 %101 %103 - %main = OpFunction %void None %3 - %5 = OpLabel - %indexable = OpVariable %_ptr_Function__arr_float_uint_16 Function %16 -%indexable_0 = OpVariable %_ptr_Function__arr_float_uint_16 Function %16 -%indexable_1 = OpVariable %_ptr_Function__arr_float_uint_16 Function %16 - %foo = OpVariable %_ptr_Function__arr_v4float_uint_4 Function %60 - %foobar = OpVariable %_ptr_Function__arr_v4float_uint_4 Function %60 - %baz = OpVariable %_ptr_Function__arr_v4float_uint_4 Function %60 - %20 = OpLoad %int %index - %24 = OpAccessChain %_ptr_Function_float %indexable %20 - %25 = OpLoad %float %24 - OpStore %FragColor %25 - %26 = OpLoad %int %index - %29 = OpSLessThan %bool %26 %int_10 - OpSelectionMerge %31 None - OpBranchConditional %29 %30 %40 - %30 = OpLabel - %32 = OpLoad %int %index - %34 = OpBitwiseXor %int %32 %int_1 - %36 = OpAccessChain %_ptr_Function_float %indexable_0 %34 - %37 = OpLoad %float %36 - %38 = OpLoad %float %FragColor - %39 = OpFAdd %float %38 %37 - OpStore %FragColor %39 - OpBranch %31 - %40 = OpLabel - %41 = OpLoad %int %index - %42 = OpBitwiseAnd %int %41 %int_1 - %44 = OpAccessChain %_ptr_Function_float %indexable_1 %42 - %45 = OpLoad %float %44 - %46 = OpLoad %float %FragColor - %47 = OpFAdd %float %46 %45 - OpStore %FragColor %47 - OpBranch %31 - %31 = OpLabel - %61 = OpLoad %int %index - %63 = OpSGreaterThan %bool %61 %int_30 - OpSelectionMerge %65 None - OpBranchConditional %63 %64 %74 - %64 = OpLabel - %66 = OpLoad %int %index - %68 = OpBitwiseAnd %int %66 %int_3 - %70 = OpAccessChain %_ptr_Function_float %foo %68 %uint_1 - %71 = OpLoad %float %70 - %72 = OpLoad %float %FragColor - %73 = OpFAdd %float %72 %71 - OpStore %FragColor %73 - OpBranch %65 - %74 = OpLabel - %75 = OpLoad %int %index - %76 = OpBitwiseAnd %int %75 %int_1 - %78 = OpAccessChain %_ptr_Function_float %foo %76 %uint_0 - %79 = OpLoad %float %78 - %80 = OpLoad %float %FragColor - %81 = OpFAdd %float %80 %79 - OpStore %FragColor %81 - OpBranch %65 - %65 = OpLabel - %83 = OpLoad %int %index - %84 = OpSGreaterThan %bool %83 %int_30 - OpSelectionMerge %86 None - OpBranchConditional %84 %85 %86 - %85 = OpLabel - %89 = OpAccessChain %_ptr_Function_float %foobar %int_1 %uint_2 - OpStore %89 %float_20 - OpBranch %86 - %86 = OpLabel - %90 = OpLoad %int %index - %91 = OpBitwiseAnd %int %90 %int_3 - %92 = OpAccessChain %_ptr_Function_float %foobar %91 %uint_2 - %93 = OpLoad %float %92 - %94 = OpLoad %float %FragColor - %95 = OpFAdd %float %94 %93 - OpStore %FragColor %95 - OpStore %baz %104 - %105 = OpLoad %int %index - %106 = OpBitwiseAnd %int %105 %int_3 - %107 = OpAccessChain %_ptr_Function_float %baz %106 %uint_2 - %108 = OpLoad %float %107 - %109 = OpLoad %float %FragColor - %110 = OpFAdd %float %109 %108 - OpStore %FragColor %110 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl/asm/frag/pack-and-unpack-uint2.fxconly.nofxc.sm60.asm.frag b/third_party/spirv-cross/shaders-hlsl/asm/frag/pack-and-unpack-uint2.fxconly.nofxc.sm60.asm.frag deleted file mode 100644 index 43d0970e8d..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/asm/frag/pack-and-unpack-uint2.fxconly.nofxc.sm60.asm.frag +++ /dev/null @@ -1,55 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 34 -; Schema: 0 - OpCapability Shader - OpCapability Int64 - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpSourceExtension "GL_ARB_gpu_shader_int64" - OpName %main "main" - OpName %packed "packed" - OpName %unpacked "unpacked" - OpName %FragColor "FragColor" - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %ulong = OpTypeInt 64 0 -%_ptr_Function_ulong = OpTypePointer Function %ulong - %uint = OpTypeInt 32 0 - %v2uint = OpTypeVector %uint 2 - %uint_18 = OpConstant %uint 18 - %uint_52 = OpConstant %uint 52 - %13 = OpConstantComposite %v2uint %uint_18 %uint_52 -%_ptr_Function_v2uint = OpTypePointer Function %v2uint - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %uint_0 = OpConstant %uint 0 -%_ptr_Function_uint = OpTypePointer Function %uint - %uint_1 = OpConstant %uint 1 - %float_1 = OpConstant %float 1 - %main = OpFunction %void None %3 - %5 = OpLabel - %packed = OpVariable %_ptr_Function_ulong Function - %unpacked = OpVariable %_ptr_Function_v2uint Function - %14 = OpBitcast %ulong %13 - OpStore %packed %14 - %17 = OpLoad %ulong %packed - %18 = OpBitcast %v2uint %17 - OpStore %unpacked %18 - %25 = OpAccessChain %_ptr_Function_uint %unpacked %uint_0 - %26 = OpLoad %uint %25 - %27 = OpConvertUToF %float %26 - %29 = OpAccessChain %_ptr_Function_uint %unpacked %uint_1 - %30 = OpLoad %uint %29 - %31 = OpConvertUToF %float %30 - %33 = OpCompositeConstruct %v4float %27 %31 %float_1 %float_1 - OpStore %FragColor %33 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl/asm/frag/pass-by-value.asm.frag b/third_party/spirv-cross/shaders-hlsl/asm/frag/pass-by-value.asm.frag deleted file mode 100644 index 083c85d9b0..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/asm/frag/pass-by-value.asm.frag +++ /dev/null @@ -1,51 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 32 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %add_value_f1_f1_ "add_value(f1;f1;" - OpName %v "v" - OpName %w "w" - OpName %FragColor "FragColor" - OpName %Registers "Registers" - OpMemberName %Registers 0 "foo" - OpName %registers "registers" - OpDecorate %FragColor Location 0 - OpMemberDecorate %Registers 0 Offset 0 - OpDecorate %Registers Block - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 -%_ptr_Function_float = OpTypePointer Function %float - %8 = OpTypeFunction %float %float %float -%_ptr_Output_float = OpTypePointer Output %float - %FragColor = OpVariable %_ptr_Output_float Output - %float_10 = OpConstant %float 10 - %Registers = OpTypeStruct %float -%_ptr_PushConstant_Registers = OpTypePointer PushConstant %Registers - %registers = OpVariable %_ptr_PushConstant_Registers PushConstant - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_PushConstant_float = OpTypePointer PushConstant %float - %main = OpFunction %void None %3 - %5 = OpLabel - %29 = OpAccessChain %_ptr_PushConstant_float %registers %int_0 - %30 = OpLoad %float %29 - %31 = OpFunctionCall %float %add_value_f1_f1_ %float_10 %30 - OpStore %FragColor %31 - OpReturn - OpFunctionEnd -%add_value_f1_f1_ = OpFunction %float None %8 - %v = OpFunctionParameter %float - %w = OpFunctionParameter %float - %12 = OpLabel - %15 = OpFAdd %float %v %w - OpReturnValue %15 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl/asm/frag/sample-and-compare.asm.frag b/third_party/spirv-cross/shaders-hlsl/asm/frag/sample-and-compare.asm.frag deleted file mode 100644 index 16dcd0d6e0..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/asm/frag/sample-and-compare.asm.frag +++ /dev/null @@ -1,61 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 32 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %in_var_TEXCOORD0 %out_var_SV_Target - OpExecutionMode %main OriginUpperLeft - OpSource HLSL 600 - OpName %type_2d_image "type.2d.image" - OpName %g_Texture "g_Texture" - OpName %type_sampler "type.sampler" - OpName %g_Sampler "g_Sampler" - OpName %g_CompareSampler "g_CompareSampler" - OpName %in_var_TEXCOORD0 "in.var.TEXCOORD0" - OpName %out_var_SV_Target "out.var.SV_Target" - OpName %main "main" - OpName %type_sampled_image "type.sampled.image" - OpDecorate %in_var_TEXCOORD0 Location 0 - OpDecorate %out_var_SV_Target Location 0 - OpDecorate %g_Texture DescriptorSet 0 - OpDecorate %g_Texture Binding 0 - OpDecorate %g_Sampler DescriptorSet 0 - OpDecorate %g_Sampler Binding 0 - OpDecorate %g_CompareSampler DescriptorSet 0 - OpDecorate %g_CompareSampler Binding 1 - %float = OpTypeFloat 32 - %float_0_5 = OpConstant %float 0.5 - %float_0 = OpConstant %float 0 -%type_2d_image = OpTypeImage %float 2D 2 0 0 1 Unknown -%_ptr_UniformConstant_type_2d_image = OpTypePointer UniformConstant %type_2d_image -%type_sampler = OpTypeSampler -%_ptr_UniformConstant_type_sampler = OpTypePointer UniformConstant %type_sampler - %v2float = OpTypeVector %float 2 -%_ptr_Input_v2float = OpTypePointer Input %v2float -%_ptr_Output_float = OpTypePointer Output %float - %void = OpTypeVoid - %19 = OpTypeFunction %void -%type_sampled_image = OpTypeSampledImage %type_2d_image - %v4float = OpTypeVector %float 4 - %g_Texture = OpVariable %_ptr_UniformConstant_type_2d_image UniformConstant - %g_Sampler = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant -%g_CompareSampler = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant -%in_var_TEXCOORD0 = OpVariable %_ptr_Input_v2float Input -%out_var_SV_Target = OpVariable %_ptr_Output_float Output - %main = OpFunction %void None %19 - %21 = OpLabel - %22 = OpLoad %v2float %in_var_TEXCOORD0 - %23 = OpLoad %type_2d_image %g_Texture - %24 = OpLoad %type_sampler %g_Sampler - %25 = OpSampledImage %type_sampled_image %23 %24 - %26 = OpImageSampleImplicitLod %v4float %25 %22 None - %27 = OpCompositeExtract %float %26 0 - %28 = OpLoad %type_sampler %g_CompareSampler - %29 = OpSampledImage %type_sampled_image %23 %28 - %30 = OpImageSampleDrefExplicitLod %float %29 %22 %float_0_5 Lod %float_0 - %31 = OpFAdd %float %27 %30 - OpStore %out_var_SV_Target %31 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl/asm/frag/single-function-private-lut.asm.frag b/third_party/spirv-cross/shaders-hlsl/asm/frag/single-function-private-lut.asm.frag deleted file mode 100644 index 0d5b29c638..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/asm/frag/single-function-private-lut.asm.frag +++ /dev/null @@ -1,86 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Khronos SPIR-V Tools Assembler; 0 -; Bound: 54 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %gl_FragCoord %o_color - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 460 - OpName %main "main" - OpName %myType "myType" - OpMemberName %myType 0 "data" - OpName %myData "myData" - OpName %uv "uv" - OpName %gl_FragCoord "gl_FragCoord" - OpName %index "index" - OpName %elt "elt" - OpName %o_color "o_color" - OpDecorate %gl_FragCoord BuiltIn FragCoord - OpDecorate %o_color Location 0 - %void = OpTypeVoid - %11 = OpTypeFunction %void - %float = OpTypeFloat 32 - %myType = OpTypeStruct %float - %uint = OpTypeInt 32 0 - %uint_5 = OpConstant %uint 5 -%_arr_myType_uint_5 = OpTypeArray %myType %uint_5 -%_ptr_Private__arr_myType_uint_5 = OpTypePointer Private %_arr_myType_uint_5 - %myData = OpVariable %_ptr_Private__arr_myType_uint_5 Private - %float_0 = OpConstant %float 0 - %18 = OpConstantComposite %myType %float_0 - %float_1 = OpConstant %float 1 - %20 = OpConstantComposite %myType %float_1 - %21 = OpConstantComposite %_arr_myType_uint_5 %18 %20 %18 %20 %18 - %v2float = OpTypeVector %float 2 -%_ptr_Function_v2float = OpTypePointer Function %v2float - %v4float = OpTypeVector %float 4 -%_ptr_Input_v4float = OpTypePointer Input %v4float -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input - %int = OpTypeInt 32 1 -%_ptr_Function_int = OpTypePointer Function %int - %uint_0 = OpConstant %uint 0 -%_ptr_Function_float = OpTypePointer Function %float - %float_4 = OpConstant %float 4 -%_ptr_Function_myType = OpTypePointer Function %myType -%_ptr_Private_myType = OpTypePointer Private %myType - %int_0 = OpConstant %int 0 - %bool = OpTypeBool -%_ptr_Output_v4float = OpTypePointer Output %v4float - %o_color = OpVariable %_ptr_Output_v4float Output - %36 = OpConstantComposite %v4float %float_0 %float_1 %float_0 %float_1 - %37 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 - %main = OpFunction %void None %11 - %38 = OpLabel - %uv = OpVariable %_ptr_Function_v2float Function - %index = OpVariable %_ptr_Function_int Function - %elt = OpVariable %_ptr_Function_myType Function - OpStore %myData %21 - %39 = OpLoad %v4float %gl_FragCoord - %40 = OpVectorShuffle %v2float %39 %39 0 1 - OpStore %uv %40 - %41 = OpAccessChain %_ptr_Function_float %uv %uint_0 - %42 = OpLoad %float %41 - %43 = OpFMod %float %42 %float_4 - %44 = OpConvertFToS %int %43 - OpStore %index %44 - %45 = OpLoad %int %index - %46 = OpAccessChain %_ptr_Private_myType %myData %45 - %47 = OpLoad %myType %46 - OpStore %elt %47 - %48 = OpAccessChain %_ptr_Function_float %elt %int_0 - %49 = OpLoad %float %48 - %50 = OpFOrdGreaterThan %bool %49 %float_0 - OpSelectionMerge %51 None - OpBranchConditional %50 %52 %53 - %52 = OpLabel - OpStore %o_color %36 - OpBranch %51 - %53 = OpLabel - OpStore %o_color %37 - OpBranch %51 - %51 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl/asm/frag/srem.asm.frag b/third_party/spirv-cross/shaders-hlsl/asm/frag/srem.asm.frag deleted file mode 100644 index c6f8e27cbd..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/asm/frag/srem.asm.frag +++ /dev/null @@ -1,43 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 2 -; Bound: 23 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %vA %vB - OpExecutionMode %main OriginUpperLeft - OpSource ESSL 310 - OpName %main "main" - OpName %FragColor "FragColor" - OpName %vA "vA" - OpName %vB "vB" - OpDecorate %FragColor RelaxedPrecision - OpDecorate %FragColor Location 0 - OpDecorate %vA Flat - OpDecorate %vA Location 0 - OpDecorate %vB Flat - OpDecorate %vB Location 1 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %int = OpTypeInt 32 1 - %v4int = OpTypeVector %int 4 -%_ptr_Input_v4int = OpTypePointer Input %v4int - %vA = OpVariable %_ptr_Input_v4int Input - %vB = OpVariable %_ptr_Input_v4int Input - %main = OpFunction %void None %3 - %5 = OpLabel - %14 = OpLoad %v4int %vA - %16 = OpLoad %v4int %vB - %17 = OpLoad %v4int %vA - %18 = OpLoad %v4int %vB - %19 = OpSRem %v4int %17 %18 - %20 = OpConvertSToF %v4float %19 - OpStore %FragColor %20 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl/asm/frag/storage-class-output-initializer.asm.frag b/third_party/spirv-cross/shaders-hlsl/asm/frag/storage-class-output-initializer.asm.frag deleted file mode 100644 index 7763b7c17c..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/asm/frag/storage-class-output-initializer.asm.frag +++ /dev/null @@ -1,41 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 25 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColors %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %FragColors "FragColors" - OpName %FragColor "FragColor" - OpDecorate %FragColors Location 0 - OpDecorate %FragColor Location 2 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 -%_arr_v4float_uint_2 = OpTypeArray %v4float %uint_2 -%_ptr_Output__arr_v4float_uint_2 = OpTypePointer Output %_arr_v4float_uint_2 - %float_1 = OpConstant %float 1 - %float_2 = OpConstant %float 2 - %float_3 = OpConstant %float 3 - %float_4 = OpConstant %float 4 - %17 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4 - %float_10 = OpConstant %float 10 - %19 = OpConstantComposite %v4float %float_10 %float_10 %float_10 %float_10 - %20 = OpConstantComposite %_arr_v4float_uint_2 %17 %19 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %float_5 = OpConstant %float 5 - %24 = OpConstantComposite %v4float %float_5 %float_5 %float_5 %float_5 - %FragColors = OpVariable %_ptr_Output__arr_v4float_uint_2 Output %20 - %FragColor = OpVariable %_ptr_Output_v4float Output %24 - %main = OpFunction %void None %3 - %5 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl/asm/frag/texel-fetch-no-lod.asm.frag b/third_party/spirv-cross/shaders-hlsl/asm/frag/texel-fetch-no-lod.asm.frag deleted file mode 100644 index 53dc63809c..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/asm/frag/texel-fetch-no-lod.asm.frag +++ /dev/null @@ -1,46 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 26 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %gl_FragCoord - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %FragColor "FragColor" - OpName %uTexture "uTexture" - OpName %gl_FragCoord "gl_FragCoord" - OpDecorate %FragColor Location 0 - OpDecorate %uTexture DescriptorSet 0 - OpDecorate %uTexture Binding 0 - OpDecorate %gl_FragCoord BuiltIn FragCoord - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %10 = OpTypeImage %float 2D 0 0 0 1 Unknown - %11 = OpTypeSampledImage %10 -%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11 - %uTexture = OpVariable %_ptr_UniformConstant_11 UniformConstant -%_ptr_Input_v4float = OpTypePointer Input %v4float -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input - %v2float = OpTypeVector %float 2 - %int = OpTypeInt 32 1 - %v2int = OpTypeVector %int 2 - %int_0 = OpConstant %int 0 - %main = OpFunction %void None %3 - %5 = OpLabel - %14 = OpLoad %11 %uTexture - %18 = OpLoad %v4float %gl_FragCoord - %19 = OpVectorShuffle %v2float %18 %18 0 1 - %22 = OpConvertFToS %v2int %19 - %24 = OpImage %10 %14 - %25 = OpImageFetch %v4float %24 %22 - OpStore %FragColor %25 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl/asm/frag/texture-sampling-fp16.asm.frag b/third_party/spirv-cross/shaders-hlsl/asm/frag/texture-sampling-fp16.asm.frag deleted file mode 100644 index e7e6f37ea2..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/asm/frag/texture-sampling-fp16.asm.frag +++ /dev/null @@ -1,47 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 25 -; Schema: 0 - OpCapability Shader - OpCapability StorageInputOutput16 - OpCapability Float16 - OpExtension "SPV_KHR_16bit_storage" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %UV - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpSourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16" - OpName %main "main" - OpName %FragColor "FragColor" - OpName %uTexture "uTexture" - OpName %UV "UV" - OpDecorate %FragColor Location 0 - OpDecorate %uTexture DescriptorSet 0 - OpDecorate %uTexture Binding 0 - OpDecorate %UV Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %half = OpTypeFloat 16 - %float = OpTypeFloat 32 - %v4half = OpTypeVector %half 4 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4half = OpTypePointer Output %v4half - %FragColor = OpVariable %_ptr_Output_v4half Output - %11 = OpTypeImage %float 2D 0 0 0 1 Unknown - %12 = OpTypeSampledImage %11 -%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12 - %uTexture = OpVariable %_ptr_UniformConstant_12 UniformConstant - %v2half = OpTypeVector %half 2 -%_ptr_Input_v2half = OpTypePointer Input %v2half - %UV = OpVariable %_ptr_Input_v2half Input - %main = OpFunction %void None %3 - %5 = OpLabel - %15 = OpLoad %12 %uTexture - %19 = OpLoad %v2half %UV - %23 = OpImageSampleImplicitLod %v4float %15 %19 - %24 = OpFConvert %v4half %23 - OpStore %FragColor %24 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl/asm/frag/unknown-depth-state.asm.frag b/third_party/spirv-cross/shaders-hlsl/asm/frag/unknown-depth-state.asm.frag deleted file mode 100644 index 89036f0eb2..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/asm/frag/unknown-depth-state.asm.frag +++ /dev/null @@ -1,71 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 44 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %vUV %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %sample_combined_ "sample_combined(" - OpName %sample_separate_ "sample_separate(" - OpName %uShadow "uShadow" - OpName %vUV "vUV" - OpName %uTexture "uTexture" - OpName %uSampler "uSampler" - OpName %FragColor "FragColor" - OpDecorate %uShadow DescriptorSet 0 - OpDecorate %uShadow Binding 0 - OpDecorate %vUV Location 0 - OpDecorate %uTexture DescriptorSet 0 - OpDecorate %uTexture Binding 1 - OpDecorate %uSampler DescriptorSet 0 - OpDecorate %uSampler Binding 2 - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %7 = OpTypeFunction %float - %12 = OpTypeImage %float 2D 2 0 0 1 Unknown - %13 = OpTypeSampledImage %12 -%_ptr_UniformConstant_13 = OpTypePointer UniformConstant %13 - %uShadow = OpVariable %_ptr_UniformConstant_13 UniformConstant - %v3float = OpTypeVector %float 3 -%_ptr_Input_v3float = OpTypePointer Input %v3float - %vUV = OpVariable %_ptr_Input_v3float Input -%_ptr_UniformConstant_25 = OpTypePointer UniformConstant %12 - %uTexture = OpVariable %_ptr_UniformConstant_25 UniformConstant - %29 = OpTypeSampler -%_ptr_UniformConstant_29 = OpTypePointer UniformConstant %29 - %uSampler = OpVariable %_ptr_UniformConstant_29 UniformConstant -%_ptr_Output_float = OpTypePointer Output %float - %FragColor = OpVariable %_ptr_Output_float Output - %main = OpFunction %void None %3 - %5 = OpLabel - %41 = OpFunctionCall %float %sample_combined_ - %42 = OpFunctionCall %float %sample_separate_ - %43 = OpFAdd %float %41 %42 - OpStore %FragColor %43 - OpReturn - OpFunctionEnd -%sample_combined_ = OpFunction %float None %7 - %9 = OpLabel - %16 = OpLoad %13 %uShadow - %20 = OpLoad %v3float %vUV - %21 = OpCompositeExtract %float %20 2 - %22 = OpImageSampleDrefImplicitLod %float %16 %20 %21 - OpReturnValue %22 - OpFunctionEnd -%sample_separate_ = OpFunction %float None %7 - %11 = OpLabel - %28 = OpLoad %12 %uTexture - %32 = OpLoad %29 %uSampler - %33 = OpSampledImage %13 %28 %32 - %34 = OpLoad %v3float %vUV - %35 = OpCompositeExtract %float %34 2 - %36 = OpImageSampleDrefImplicitLod %float %33 %34 %35 - OpReturnValue %36 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl/asm/frag/unreachable.asm.frag b/third_party/spirv-cross/shaders-hlsl/asm/frag/unreachable.asm.frag deleted file mode 100644 index e2ce2eb56a..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/asm/frag/unreachable.asm.frag +++ /dev/null @@ -1,61 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 3 -; Bound: 47 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %counter %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %counter "counter" - OpName %FragColor "FragColor" - OpDecorate %counter Flat - OpDecorate %counter Location 0 - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %8 = OpTypeFunction %v4float - %int = OpTypeInt 32 1 -%_ptr_Input_int = OpTypePointer Input %int - %counter = OpVariable %_ptr_Input_int Input - %int_10 = OpConstant %int 10 - %bool = OpTypeBool - %float_10 = OpConstant %float 10 - %21 = OpConstantComposite %v4float %float_10 %float_10 %float_10 %float_10 - %float_30 = OpConstant %float 30 - %25 = OpConstantComposite %v4float %float_30 %float_30 %float_30 %float_30 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output -%_ptr_Function_v4float = OpTypePointer Function %v4float - %false = OpConstantFalse %bool - %44 = OpUndef %v4float - %main = OpFunction %void None %3 - %5 = OpLabel - OpBranch %33 - %33 = OpLabel - %45 = OpPhi %v4float %44 %5 %44 %35 - OpLoopMerge %34 %35 None - OpBranch %36 - %36 = OpLabel - %37 = OpLoad %int %counter - %38 = OpIEqual %bool %37 %int_10 - OpSelectionMerge %39 None - OpBranchConditional %38 %40 %41 - %40 = OpLabel - OpBranch %34 - %41 = OpLabel - OpBranch %34 - %39 = OpLabel - OpUnreachable - %35 = OpLabel - OpBranchConditional %false %33 %34 - %34 = OpLabel - %46 = OpPhi %v4float %21 %40 %25 %41 %44 %35 - OpStore %FragColor %46 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl/asm/vert/extract-transposed-matrix-from-struct.asm.vert b/third_party/spirv-cross/shaders-hlsl/asm/vert/extract-transposed-matrix-from-struct.asm.vert deleted file mode 100644 index f51d903b04..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/asm/vert/extract-transposed-matrix-from-struct.asm.vert +++ /dev/null @@ -1,141 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 79 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %VS "main" %PosL_1 %instanceID_1 %_entryPointOutput_Position %_entryPointOutput_Color - OpSource HLSL 500 - OpName %VS "VS" - OpName %V2F "V2F" - OpMemberName %V2F 0 "Position" - OpMemberName %V2F 1 "Color" - OpName %_VS_vf3_u1_ "@VS(vf3;u1;" - OpName %PosL "PosL" - OpName %instanceID "instanceID" - OpName %InstanceData "InstanceData" - OpMemberName %InstanceData 0 "MATRIX_MVP" - OpMemberName %InstanceData 1 "Color" - OpName %instData "instData" - OpName %InstanceData_0 "InstanceData" - OpMemberName %InstanceData_0 0 "MATRIX_MVP" - OpMemberName %InstanceData_0 1 "Color" - OpName %gInstanceData "gInstanceData" - OpMemberName %gInstanceData 0 "@data" - OpName %gInstanceData_0 "gInstanceData" - OpName %v2f "v2f" - OpName %PosL_0 "PosL" - OpName %PosL_1 "PosL" - OpName %instanceID_0 "instanceID" - OpName %instanceID_1 "instanceID" - OpName %flattenTemp "flattenTemp" - OpName %param "param" - OpName %param_0 "param" - OpName %_entryPointOutput_Position "@entryPointOutput.Position" - OpName %_entryPointOutput_Color "@entryPointOutput.Color" - OpMemberDecorate %InstanceData_0 0 RowMajor - OpMemberDecorate %InstanceData_0 0 Offset 0 - OpMemberDecorate %InstanceData_0 0 MatrixStride 16 - OpMemberDecorate %InstanceData_0 1 Offset 64 - OpDecorate %_runtimearr_InstanceData_0 ArrayStride 80 - OpMemberDecorate %gInstanceData 0 Offset 0 - OpDecorate %gInstanceData Block - OpDecorate %gInstanceData_0 DescriptorSet 1 - OpDecorate %gInstanceData_0 Binding 0 - OpDecorate %PosL_1 Location 0 - OpDecorate %instanceID_1 BuiltIn InstanceIndex - OpDecorate %_entryPointOutput_Position BuiltIn Position - OpDecorate %_entryPointOutput_Color Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v3float = OpTypeVector %float 3 -%_ptr_Function_v3float = OpTypePointer Function %v3float - %uint = OpTypeInt 32 0 - %int_32 = OpConstant %uint 32 -%_ptr_Function_uint = OpTypePointer Function %uint - %v4float = OpTypeVector %float 4 - %V2F = OpTypeStruct %v4float %v4float - %13 = OpTypeFunction %V2F %_ptr_Function_v3float %_ptr_Function_uint -%mat4v4float = OpTypeMatrix %v4float 4 -%InstanceData = OpTypeStruct %mat4v4float %v4float -%_ptr_Function_InstanceData = OpTypePointer Function %InstanceData -%InstanceData_0 = OpTypeStruct %mat4v4float %v4float -%_runtimearr_InstanceData_0 = OpTypeArray %InstanceData_0 %int_32 -%gInstanceData = OpTypeStruct %_runtimearr_InstanceData_0 -%_ptr_Uniform_gInstanceData = OpTypePointer Uniform %gInstanceData -%gInstanceData_0 = OpVariable %_ptr_Uniform_gInstanceData Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_Uniform_InstanceData_0 = OpTypePointer Uniform %InstanceData_0 -%_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float - %int_1 = OpConstant %int 1 -%_ptr_Function_v4float = OpTypePointer Function %v4float -%_ptr_Function_V2F = OpTypePointer Function %V2F - %float_1 = OpConstant %float 1 -%_ptr_Input_v3float = OpTypePointer Input %v3float - %PosL_1 = OpVariable %_ptr_Input_v3float Input -%_ptr_Input_uint = OpTypePointer Input %uint -%instanceID_1 = OpVariable %_ptr_Input_uint Input -%_ptr_Output_v4float = OpTypePointer Output %v4float -%_entryPointOutput_Position = OpVariable %_ptr_Output_v4float Output -%_entryPointOutput_Color = OpVariable %_ptr_Output_v4float Output - %VS = OpFunction %void None %3 - %5 = OpLabel - %PosL_0 = OpVariable %_ptr_Function_v3float Function -%instanceID_0 = OpVariable %_ptr_Function_uint Function -%flattenTemp = OpVariable %_ptr_Function_V2F Function - %param = OpVariable %_ptr_Function_v3float Function - %param_0 = OpVariable %_ptr_Function_uint Function - %61 = OpLoad %v3float %PosL_1 - OpStore %PosL_0 %61 - %65 = OpLoad %uint %instanceID_1 - OpStore %instanceID_0 %65 - %68 = OpLoad %v3float %PosL_0 - OpStore %param %68 - %70 = OpLoad %uint %instanceID_0 - OpStore %param_0 %70 - %71 = OpFunctionCall %V2F %_VS_vf3_u1_ %param %param_0 - OpStore %flattenTemp %71 - %74 = OpAccessChain %_ptr_Function_v4float %flattenTemp %int_0 - %75 = OpLoad %v4float %74 - OpStore %_entryPointOutput_Position %75 - %77 = OpAccessChain %_ptr_Function_v4float %flattenTemp %int_1 - %78 = OpLoad %v4float %77 - OpStore %_entryPointOutput_Color %78 - OpReturn - OpFunctionEnd -%_VS_vf3_u1_ = OpFunction %V2F None %13 - %PosL = OpFunctionParameter %_ptr_Function_v3float - %instanceID = OpFunctionParameter %_ptr_Function_uint - %17 = OpLabel - %instData = OpVariable %_ptr_Function_InstanceData Function - %v2f = OpVariable %_ptr_Function_V2F Function - %29 = OpLoad %uint %instanceID - %31 = OpAccessChain %_ptr_Uniform_InstanceData_0 %gInstanceData_0 %int_0 %29 - %32 = OpLoad %InstanceData_0 %31 - %33 = OpCompositeExtract %mat4v4float %32 0 - %35 = OpAccessChain %_ptr_Function_mat4v4float %instData %int_0 - OpStore %35 %33 - %36 = OpCompositeExtract %v4float %32 1 - %39 = OpAccessChain %_ptr_Function_v4float %instData %int_1 - OpStore %39 %36 - %42 = OpAccessChain %_ptr_Function_mat4v4float %instData %int_0 - %43 = OpLoad %mat4v4float %42 - %44 = OpLoad %v3float %PosL - %46 = OpCompositeExtract %float %44 0 - %47 = OpCompositeExtract %float %44 1 - %48 = OpCompositeExtract %float %44 2 - %49 = OpCompositeConstruct %v4float %46 %47 %48 %float_1 - %50 = OpMatrixTimesVector %v4float %43 %49 - %51 = OpAccessChain %_ptr_Function_v4float %v2f %int_0 - OpStore %51 %50 - %52 = OpAccessChain %_ptr_Function_v4float %instData %int_1 - %53 = OpLoad %v4float %52 - %54 = OpAccessChain %_ptr_Function_v4float %v2f %int_1 - OpStore %54 %53 - %55 = OpLoad %V2F %v2f - OpReturnValue %55 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl/asm/vert/spec-constant-op-composite.asm.vert b/third_party/spirv-cross/shaders-hlsl/asm/vert/spec-constant-op-composite.asm.vert deleted file mode 100644 index b566a3d1a0..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/asm/vert/spec-constant-op-composite.asm.vert +++ /dev/null @@ -1,98 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 58 -; Schema: 0 - OpCapability Shader - OpCapability ClipDistance - OpCapability CullDistance - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %4 "main" %52 %output - OpSource GLSL 450 - OpName %4 "main" - OpName %9 "pos" - OpName %50 "gl_PerVertex" - OpMemberName %50 0 "gl_Position" - OpMemberName %50 1 "gl_PointSize" - OpMemberName %50 2 "gl_ClipDistance" - OpMemberName %50 3 "gl_CullDistance" - OpName %52 "" - OpDecorate %13 SpecId 201 - OpDecorate %24 SpecId 202 - OpMemberDecorate %50 0 BuiltIn Position - OpMemberDecorate %50 1 BuiltIn PointSize - OpMemberDecorate %50 2 BuiltIn ClipDistance - OpMemberDecorate %50 3 BuiltIn CullDistance - OpDecorate %50 Block - OpDecorate %57 SpecId 200 - OpDecorate %output Flat - OpDecorate %output Location 0 - %2 = OpTypeVoid - %3 = OpTypeFunction %2 - %6 = OpTypeFloat 32 - %7 = OpTypeVector %6 4 - %8 = OpTypePointer Function %7 - %10 = OpConstant %6 0 - %11 = OpConstantComposite %7 %10 %10 %10 %10 - %12 = OpTypeInt 32 1 - %int_ptr = OpTypePointer Output %12 - %13 = OpSpecConstant %12 -10 - %14 = OpConstant %12 2 - %15 = OpSpecConstantOp %12 IAdd %13 %14 - %17 = OpTypeInt 32 0 - %18 = OpConstant %17 1 - %19 = OpTypePointer Function %6 - %24 = OpSpecConstant %17 100 - %25 = OpConstant %17 5 - %26 = OpSpecConstantOp %17 UMod %24 %25 - %28 = OpConstant %17 2 - %33 = OpConstant %12 20 - %34 = OpConstant %12 30 - %35 = OpTypeVector %12 4 - %36 = OpSpecConstantComposite %35 %33 %34 %15 %15 - %40 = OpTypeVector %12 2 - %41 = OpSpecConstantOp %40 VectorShuffle %36 %36 1 0 - %foo = OpSpecConstantOp %12 CompositeExtract %36 1 - %42 = OpTypeVector %6 2 - %49 = OpTypeArray %6 %18 - %50 = OpTypeStruct %7 %6 %49 %49 - %51 = OpTypePointer Output %50 - %52 = OpVariable %51 Output - %output = OpVariable %int_ptr Output - %53 = OpConstant %12 0 - %55 = OpTypePointer Output %7 - %57 = OpSpecConstant %6 3.14159 - %4 = OpFunction %2 None %3 - %5 = OpLabel - %9 = OpVariable %8 Function - OpStore %9 %11 - %16 = OpConvertSToF %6 %15 - %20 = OpAccessChain %19 %9 %18 - %21 = OpLoad %6 %20 - %22 = OpFAdd %6 %21 %16 - %23 = OpAccessChain %19 %9 %18 - OpStore %23 %22 - %27 = OpConvertUToF %6 %26 - %29 = OpAccessChain %19 %9 %28 - %30 = OpLoad %6 %29 - %31 = OpFAdd %6 %30 %27 - %32 = OpAccessChain %19 %9 %28 - OpStore %32 %31 - %37 = OpConvertSToF %7 %36 - %38 = OpLoad %7 %9 - %39 = OpFAdd %7 %38 %37 - OpStore %9 %39 - %43 = OpConvertSToF %42 %41 - %44 = OpLoad %7 %9 - %45 = OpVectorShuffle %42 %44 %44 0 1 - %46 = OpFAdd %42 %45 %43 - %47 = OpLoad %7 %9 - %48 = OpVectorShuffle %7 %47 %46 4 5 2 3 - OpStore %9 %48 - %54 = OpLoad %7 %9 - %56 = OpAccessChain %55 %52 %53 - OpStore %56 %54 - OpStore %output %foo - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl/asm/vert/uint-vertex-id-instance-id.asm.vert b/third_party/spirv-cross/shaders-hlsl/asm/vert/uint-vertex-id-instance-id.asm.vert deleted file mode 100644 index 29b0076a1e..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/asm/vert/uint-vertex-id-instance-id.asm.vert +++ /dev/null @@ -1,65 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 36 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %main "main" %vid_1 %iid_1 %_entryPointOutput - OpSource HLSL 500 - OpName %main "main" - OpName %_main_u1_u1_ "@main(u1;u1;" - OpName %vid "vid" - OpName %iid "iid" - OpName %vid_0 "vid" - OpName %vid_1 "vid" - OpName %iid_0 "iid" - OpName %iid_1 "iid" - OpName %_entryPointOutput "@entryPointOutput" - OpName %param "param" - OpName %param_0 "param" - OpDecorate %vid_1 BuiltIn VertexIndex - OpDecorate %iid_1 BuiltIn InstanceIndex - OpDecorate %_entryPointOutput BuiltIn Position - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 -%_ptr_Function_uint = OpTypePointer Function %uint - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %10 = OpTypeFunction %v4float %_ptr_Function_uint %_ptr_Function_uint -%_ptr_Input_uint = OpTypePointer Input %uint - %vid_1 = OpVariable %_ptr_Input_uint Input - %iid_1 = OpVariable %_ptr_Input_uint Input -%_ptr_Output_v4float = OpTypePointer Output %v4float -%_entryPointOutput = OpVariable %_ptr_Output_v4float Output - %main = OpFunction %void None %3 - %5 = OpLabel - %vid_0 = OpVariable %_ptr_Function_uint Function - %iid_0 = OpVariable %_ptr_Function_uint Function - %param = OpVariable %_ptr_Function_uint Function - %param_0 = OpVariable %_ptr_Function_uint Function - %25 = OpLoad %uint %vid_1 - OpStore %vid_0 %25 - %28 = OpLoad %uint %iid_1 - OpStore %iid_0 %28 - %32 = OpLoad %uint %vid_0 - OpStore %param %32 - %34 = OpLoad %uint %iid_0 - OpStore %param_0 %34 - %35 = OpFunctionCall %v4float %_main_u1_u1_ %param %param_0 - OpStore %_entryPointOutput %35 - OpReturn - OpFunctionEnd -%_main_u1_u1_ = OpFunction %v4float None %10 - %vid = OpFunctionParameter %_ptr_Function_uint - %iid = OpFunctionParameter %_ptr_Function_uint - %14 = OpLabel - %15 = OpLoad %uint %vid - %16 = OpLoad %uint %iid - %17 = OpIAdd %uint %15 %16 - %18 = OpConvertUToF %float %17 - %19 = OpCompositeConstruct %v4float %18 %18 %18 %18 - OpReturnValue %19 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl/asm/vert/vertex-id-instance-id.asm.vert b/third_party/spirv-cross/shaders-hlsl/asm/vert/vertex-id-instance-id.asm.vert deleted file mode 100644 index 4587fc1e96..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/asm/vert/vertex-id-instance-id.asm.vert +++ /dev/null @@ -1,53 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 2 -; Bound: 26 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %main "main" %_ %gl_VertexID %gl_InstanceID - OpSource GLSL 450 - OpName %main "main" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %_ "" - OpName %gl_VertexID "gl_VertexID" - OpName %gl_InstanceID "gl_InstanceID" - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - OpDecorate %gl_VertexID BuiltIn VertexIndex - OpDecorate %gl_InstanceID BuiltIn InstanceIndex - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %uint = OpTypeInt 32 0 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 -%_ptr_Output_gl_PerVertex = OpTypePointer Output %gl_PerVertex - %_ = OpVariable %_ptr_Output_gl_PerVertex Output - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_Input_int = OpTypePointer Input %int -%gl_VertexID = OpVariable %_ptr_Input_int Input -%gl_InstanceID = OpVariable %_ptr_Input_int Input -%_ptr_Output_v4float = OpTypePointer Output %v4float - %main = OpFunction %void None %3 - %5 = OpLabel - %18 = OpLoad %int %gl_VertexID - %20 = OpLoad %int %gl_InstanceID - %21 = OpIAdd %int %18 %20 - %22 = OpConvertSToF %float %21 - %23 = OpCompositeConstruct %v4float %22 %22 %22 %22 - %25 = OpAccessChain %_ptr_Output_v4float %_ %int_0 - OpStore %25 %23 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-hlsl/comp/access-chain-load-composite.comp b/third_party/spirv-cross/shaders-hlsl/comp/access-chain-load-composite.comp deleted file mode 100644 index 69cc7a13be..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/comp/access-chain-load-composite.comp +++ /dev/null @@ -1,35 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -struct Baz -{ - float c; -}; - -struct Bar -{ - float d[2][4]; - Baz baz[2]; -}; - -struct Foo -{ - mat2 a; - vec2 b; - Bar c[5]; -}; - -layout(row_major, std430, set = 0, binding = 0) buffer SSBO -{ - Foo foo; - Foo foo2; -}; - -void main() -{ - Foo f = foo; - f.a += 1.0; - f.b += 2.0; - f.c[3].d[1][1] += 5.0; - foo2 = f; -} diff --git a/third_party/spirv-cross/shaders-hlsl/comp/access-chains.comp b/third_party/spirv-cross/shaders-hlsl/comp/access-chains.comp deleted file mode 100644 index 639f3cac15..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/comp/access-chains.comp +++ /dev/null @@ -1,24 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -// TODO: Read structs, matrices and arrays. - -layout(std430, binding = 0) readonly buffer SSBO -{ - vec4 a[3][2][4]; - float b[3][2][4]; - vec4 unsized[]; -} ro; - -layout(std430, binding = 1) writeonly buffer SSBO1 -{ - vec4 c[3][2][4]; - float d[3][2][4]; - vec4 unsized[]; -} wo; - -void main() -{ - wo.c[2][gl_GlobalInvocationID.x][1] = ro.a[1][gl_GlobalInvocationID.x][2]; - wo.unsized[gl_GlobalInvocationID.x] = ro.unsized[gl_GlobalInvocationID.x]; -} diff --git a/third_party/spirv-cross/shaders-hlsl/comp/access-chains.force-uav.comp b/third_party/spirv-cross/shaders-hlsl/comp/access-chains.force-uav.comp deleted file mode 100644 index 639f3cac15..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/comp/access-chains.force-uav.comp +++ /dev/null @@ -1,24 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -// TODO: Read structs, matrices and arrays. - -layout(std430, binding = 0) readonly buffer SSBO -{ - vec4 a[3][2][4]; - float b[3][2][4]; - vec4 unsized[]; -} ro; - -layout(std430, binding = 1) writeonly buffer SSBO1 -{ - vec4 c[3][2][4]; - float d[3][2][4]; - vec4 unsized[]; -} wo; - -void main() -{ - wo.c[2][gl_GlobalInvocationID.x][1] = ro.a[1][gl_GlobalInvocationID.x][2]; - wo.unsized[gl_GlobalInvocationID.x] = ro.unsized[gl_GlobalInvocationID.x]; -} diff --git a/third_party/spirv-cross/shaders-hlsl/comp/address-buffers.comp b/third_party/spirv-cross/shaders-hlsl/comp/address-buffers.comp deleted file mode 100644 index 3ba582ccd6..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/comp/address-buffers.comp +++ /dev/null @@ -1,23 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(binding = 0, std430) readonly buffer ReadOnlyBuffer -{ - vec4 ro; -} ReadOnly; - -layout(binding = 1, std430) buffer ReadWriteBuffer -{ - vec4 rw; -} ReadWrite; - -layout(binding = 2, std430) buffer WriteOnlyBuffer -{ - vec4 wo; -} WriteOnly; - -void main() -{ - WriteOnly.wo = ReadOnly.ro; - ReadWrite.rw += 10.0; -} diff --git a/third_party/spirv-cross/shaders-hlsl/comp/atomic.comp b/third_party/spirv-cross/shaders-hlsl/comp/atomic.comp deleted file mode 100644 index 6f69ec725c..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/comp/atomic.comp +++ /dev/null @@ -1,66 +0,0 @@ -#version 310 es -#extension GL_OES_shader_image_atomic : require -layout(local_size_x = 1) in; - -layout(r32ui, binding = 0) uniform highp uimage2D uImage; -layout(r32i, binding = 1) uniform highp iimage2D iImage; -layout(binding = 2, std430) buffer SSBO -{ - uint u32; - int i32; -} ssbo; - -shared int int_atomic; -shared uint uint_atomic; -shared int int_atomic_array[1]; -shared uint uint_atomic_array[1]; - -void main() -{ - imageAtomicAdd(uImage, ivec2(1, 5), 1u); - - // Test that we do not invalidate OpImage variables which are loaded from UniformConstant - // address space. - imageStore(iImage, ivec2(1, 6), ivec4(imageAtomicAdd(uImage, ivec2(1, 5), 1u))); - - imageAtomicOr(uImage, ivec2(1, 5), 1u); - imageAtomicXor(uImage, ivec2(1, 5), 1u); - imageAtomicAnd(uImage, ivec2(1, 5), 1u); - imageAtomicMin(uImage, ivec2(1, 5), 1u); - imageAtomicMax(uImage, ivec2(1, 5), 1u); - //imageAtomicExchange(uImage, ivec2(1, 5), 1u); - imageAtomicCompSwap(uImage, ivec2(1, 5), 10u, 2u); - - imageAtomicAdd(iImage, ivec2(1, 6), 1); - imageAtomicOr(iImage, ivec2(1, 6), 1); - imageAtomicXor(iImage, ivec2(1, 6), 1); - imageAtomicAnd(iImage, ivec2(1, 6), 1); - imageAtomicMin(iImage, ivec2(1, 6), 1); - imageAtomicMax(iImage, ivec2(1, 6), 1); - //imageAtomicExchange(iImage, ivec2(1, 5), 1u); - imageAtomicCompSwap(iImage, ivec2(1, 5), 10, 2); - - atomicAdd(ssbo.u32, 1u); - atomicOr(ssbo.u32, 1u); - atomicXor(ssbo.u32, 1u); - atomicAnd(ssbo.u32, 1u); - atomicMin(ssbo.u32, 1u); - atomicMax(ssbo.u32, 1u); - atomicExchange(ssbo.u32, 1u); - atomicCompSwap(ssbo.u32, 10u, 2u); - - atomicAdd(ssbo.i32, 1); - atomicOr(ssbo.i32, 1); - atomicXor(ssbo.i32, 1); - atomicAnd(ssbo.i32, 1); - atomicMin(ssbo.i32, 1); - atomicMax(ssbo.i32, 1); - atomicExchange(ssbo.i32, 1); - atomicCompSwap(ssbo.i32, 10, 2); - - atomicAdd(int_atomic, 10); - atomicAdd(uint_atomic, 10u); - atomicAdd(int_atomic_array[0], 10); - atomicAdd(uint_atomic_array[0], 10u); -} - diff --git a/third_party/spirv-cross/shaders-hlsl/comp/barriers.comp b/third_party/spirv-cross/shaders-hlsl/comp/barriers.comp deleted file mode 100644 index 7e0ea42d4e..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/comp/barriers.comp +++ /dev/null @@ -1,79 +0,0 @@ -#version 310 es -layout(local_size_x = 4) in; - -void barrier_shared() -{ - memoryBarrierShared(); -} - -void full_barrier() -{ - memoryBarrier(); -} - -void image_barrier() -{ - memoryBarrierImage(); -} - -void buffer_barrier() -{ - memoryBarrierBuffer(); -} - -void group_barrier() -{ - groupMemoryBarrier(); -} - -void barrier_shared_exec() -{ - memoryBarrierShared(); - barrier(); -} - -void full_barrier_exec() -{ - memoryBarrier(); - barrier(); -} - -void image_barrier_exec() -{ - memoryBarrierImage(); - barrier(); -} - -void buffer_barrier_exec() -{ - memoryBarrierBuffer(); - barrier(); -} - -void group_barrier_exec() -{ - groupMemoryBarrier(); - barrier(); -} - -void exec_barrier() -{ - barrier(); -} - -void main() -{ - barrier_shared(); - full_barrier(); - image_barrier(); - buffer_barrier(); - group_barrier(); - - barrier_shared_exec(); - full_barrier_exec(); - image_barrier_exec(); - buffer_barrier_exec(); - group_barrier_exec(); - - exec_barrier(); -} diff --git a/third_party/spirv-cross/shaders-hlsl/comp/builtins.comp b/third_party/spirv-cross/shaders-hlsl/comp/builtins.comp deleted file mode 100644 index b41cb53913..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/comp/builtins.comp +++ /dev/null @@ -1,11 +0,0 @@ -#version 310 es -layout(local_size_x = 8, local_size_y = 4, local_size_z = 2) in; - -void main() -{ - uvec3 local_id = gl_LocalInvocationID; - uvec3 global_id = gl_GlobalInvocationID; - uint local_index = gl_LocalInvocationIndex; - uvec3 work_group_size = gl_WorkGroupSize; - uvec3 work_group_id = gl_WorkGroupID; -} diff --git a/third_party/spirv-cross/shaders-hlsl/comp/composite-array-initialization.comp b/third_party/spirv-cross/shaders-hlsl/comp/composite-array-initialization.comp deleted file mode 100644 index 319f466301..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/comp/composite-array-initialization.comp +++ /dev/null @@ -1,29 +0,0 @@ -#version 450 -layout(local_size_x = 2) in; - -struct Data -{ - float a; - float b; -}; - -layout(std430, binding = 0) buffer SSBO -{ - Data outdata[]; -}; - -layout(constant_id = 0) const float X = 4.0; - -Data data[2] = Data[](Data(1.0, 2.0), Data(3.0, 4.0)); -Data data2[2] = Data[](Data(X, 2.0), Data(3.0, 5.0)); - -Data combine(Data a, Data b) -{ - return Data(a.a + b.a, a.b + b.b); -} - -void main() -{ - if (gl_LocalInvocationIndex == 0u) - outdata[gl_WorkGroupID.x] = combine(data[gl_LocalInvocationID.x], data2[gl_LocalInvocationID.x]); -} diff --git a/third_party/spirv-cross/shaders-hlsl/comp/globallycoherent.comp b/third_party/spirv-cross/shaders-hlsl/comp/globallycoherent.comp deleted file mode 100644 index 168b9404ea..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/comp/globallycoherent.comp +++ /dev/null @@ -1,25 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -layout(r32f, binding = 0) uniform readonly image2D uImageIn; -layout(r32f, binding = 1) uniform coherent writeonly image2D uImageOut; - -layout(set = 0, binding = 2) readonly buffer Foo -{ - float foo; -}; - -layout(set = 0, binding = 3) coherent writeonly buffer Bar -{ - float bar; -}; - -void main() -{ - ivec2 coord = ivec2(9, 7); - vec4 indata = imageLoad(uImageIn, coord); - imageStore(uImageOut, coord, indata); - - bar = foo; -} - diff --git a/third_party/spirv-cross/shaders-hlsl/comp/image.comp b/third_party/spirv-cross/shaders-hlsl/comp/image.comp deleted file mode 100644 index 1d3c8b4c65..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/comp/image.comp +++ /dev/null @@ -1,77 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -layout(r32f, binding = 0) uniform readonly image2D uImageInF; -layout(r32f, binding = 1) uniform writeonly image2D uImageOutF; -layout(r32i, binding = 2) uniform readonly iimage2D uImageInI; -layout(r32i, binding = 3) uniform writeonly iimage2D uImageOutI; -layout(r32ui, binding = 4) uniform readonly uimage2D uImageInU; -layout(r32ui, binding = 5) uniform writeonly uimage2D uImageOutU; -layout(r32f, binding = 6) uniform readonly imageBuffer uImageInBuffer; -layout(r32f, binding = 7) uniform writeonly imageBuffer uImageOutBuffer; - -layout(rg32f, binding = 8) uniform readonly image2D uImageInF2; -layout(rg32f, binding = 9) uniform writeonly image2D uImageOutF2; -layout(rg32i, binding = 10) uniform readonly iimage2D uImageInI2; -layout(rg32i, binding = 11) uniform writeonly iimage2D uImageOutI2; -layout(rg32ui, binding = 12) uniform readonly uimage2D uImageInU2; -layout(rg32ui, binding = 13) uniform writeonly uimage2D uImageOutU2; -layout(rg32f, binding = 14) uniform readonly imageBuffer uImageInBuffer2; -layout(rg32f, binding = 15) uniform writeonly imageBuffer uImageOutBuffer2; - -layout(rgba32f, binding = 16) uniform readonly image2D uImageInF4; -layout(rgba32f, binding = 17) uniform writeonly image2D uImageOutF4; -layout(rgba32i, binding = 18) uniform readonly iimage2D uImageInI4; -layout(rgba32i, binding = 19) uniform writeonly iimage2D uImageOutI4; -layout(rgba32ui, binding = 20) uniform readonly uimage2D uImageInU4; -layout(rgba32ui, binding = 21) uniform writeonly uimage2D uImageOutU4; -layout(rgba32f, binding = 22) uniform readonly imageBuffer uImageInBuffer4; -layout(rgba32f, binding = 23) uniform writeonly imageBuffer uImageOutBuffer4; - -layout(binding = 24) uniform writeonly image2D uImageNoFmtF; -layout(binding = 25) uniform writeonly uimage2D uImageNoFmtU; -layout(binding = 26) uniform writeonly iimage2D uImageNoFmtI; - -void main() -{ - vec4 f = imageLoad(uImageInF, ivec2(gl_GlobalInvocationID.xy)); - imageStore(uImageOutF, ivec2(gl_GlobalInvocationID.xy), f); - - ivec4 i = imageLoad(uImageInI, ivec2(gl_GlobalInvocationID.xy)); - imageStore(uImageOutI, ivec2(gl_GlobalInvocationID.xy), i); - - uvec4 u = imageLoad(uImageInU, ivec2(gl_GlobalInvocationID.xy)); - imageStore(uImageOutU, ivec2(gl_GlobalInvocationID.xy), u); - - vec4 b = imageLoad(uImageInBuffer, int(gl_GlobalInvocationID.x)); - imageStore(uImageOutBuffer, int(gl_GlobalInvocationID.x), b); - - vec4 f2 = imageLoad(uImageInF2, ivec2(gl_GlobalInvocationID.xy)); - imageStore(uImageOutF2, ivec2(gl_GlobalInvocationID.xy), f2); - - ivec4 i2 = imageLoad(uImageInI2, ivec2(gl_GlobalInvocationID.xy)); - imageStore(uImageOutI2, ivec2(gl_GlobalInvocationID.xy), i2); - - uvec4 u2 = imageLoad(uImageInU2, ivec2(gl_GlobalInvocationID.xy)); - imageStore(uImageOutU2, ivec2(gl_GlobalInvocationID.xy), u2); - - vec4 b2 = imageLoad(uImageInBuffer2, int(gl_GlobalInvocationID.x)); - imageStore(uImageOutBuffer2, int(gl_GlobalInvocationID.x), b2); - - vec4 f4 = imageLoad(uImageInF4, ivec2(gl_GlobalInvocationID.xy)); - imageStore(uImageOutF4, ivec2(gl_GlobalInvocationID.xy), f4); - - ivec4 i4 = imageLoad(uImageInI4, ivec2(gl_GlobalInvocationID.xy)); - imageStore(uImageOutI4, ivec2(gl_GlobalInvocationID.xy), i4); - - uvec4 u4 = imageLoad(uImageInU4, ivec2(gl_GlobalInvocationID.xy)); - imageStore(uImageOutU4, ivec2(gl_GlobalInvocationID.xy), u4); - - vec4 b4 = imageLoad(uImageInBuffer4, int(gl_GlobalInvocationID.x)); - imageStore(uImageOutBuffer4, int(gl_GlobalInvocationID.x), b4); - - imageStore(uImageNoFmtF, ivec2(gl_GlobalInvocationID.xy), b2); - imageStore(uImageNoFmtU, ivec2(gl_GlobalInvocationID.xy), u4); - imageStore(uImageNoFmtI, ivec2(gl_GlobalInvocationID.xy), i4); -} - diff --git a/third_party/spirv-cross/shaders-hlsl/comp/image.nonwritable-uav-texture.comp b/third_party/spirv-cross/shaders-hlsl/comp/image.nonwritable-uav-texture.comp deleted file mode 100644 index 1d3c8b4c65..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/comp/image.nonwritable-uav-texture.comp +++ /dev/null @@ -1,77 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -layout(r32f, binding = 0) uniform readonly image2D uImageInF; -layout(r32f, binding = 1) uniform writeonly image2D uImageOutF; -layout(r32i, binding = 2) uniform readonly iimage2D uImageInI; -layout(r32i, binding = 3) uniform writeonly iimage2D uImageOutI; -layout(r32ui, binding = 4) uniform readonly uimage2D uImageInU; -layout(r32ui, binding = 5) uniform writeonly uimage2D uImageOutU; -layout(r32f, binding = 6) uniform readonly imageBuffer uImageInBuffer; -layout(r32f, binding = 7) uniform writeonly imageBuffer uImageOutBuffer; - -layout(rg32f, binding = 8) uniform readonly image2D uImageInF2; -layout(rg32f, binding = 9) uniform writeonly image2D uImageOutF2; -layout(rg32i, binding = 10) uniform readonly iimage2D uImageInI2; -layout(rg32i, binding = 11) uniform writeonly iimage2D uImageOutI2; -layout(rg32ui, binding = 12) uniform readonly uimage2D uImageInU2; -layout(rg32ui, binding = 13) uniform writeonly uimage2D uImageOutU2; -layout(rg32f, binding = 14) uniform readonly imageBuffer uImageInBuffer2; -layout(rg32f, binding = 15) uniform writeonly imageBuffer uImageOutBuffer2; - -layout(rgba32f, binding = 16) uniform readonly image2D uImageInF4; -layout(rgba32f, binding = 17) uniform writeonly image2D uImageOutF4; -layout(rgba32i, binding = 18) uniform readonly iimage2D uImageInI4; -layout(rgba32i, binding = 19) uniform writeonly iimage2D uImageOutI4; -layout(rgba32ui, binding = 20) uniform readonly uimage2D uImageInU4; -layout(rgba32ui, binding = 21) uniform writeonly uimage2D uImageOutU4; -layout(rgba32f, binding = 22) uniform readonly imageBuffer uImageInBuffer4; -layout(rgba32f, binding = 23) uniform writeonly imageBuffer uImageOutBuffer4; - -layout(binding = 24) uniform writeonly image2D uImageNoFmtF; -layout(binding = 25) uniform writeonly uimage2D uImageNoFmtU; -layout(binding = 26) uniform writeonly iimage2D uImageNoFmtI; - -void main() -{ - vec4 f = imageLoad(uImageInF, ivec2(gl_GlobalInvocationID.xy)); - imageStore(uImageOutF, ivec2(gl_GlobalInvocationID.xy), f); - - ivec4 i = imageLoad(uImageInI, ivec2(gl_GlobalInvocationID.xy)); - imageStore(uImageOutI, ivec2(gl_GlobalInvocationID.xy), i); - - uvec4 u = imageLoad(uImageInU, ivec2(gl_GlobalInvocationID.xy)); - imageStore(uImageOutU, ivec2(gl_GlobalInvocationID.xy), u); - - vec4 b = imageLoad(uImageInBuffer, int(gl_GlobalInvocationID.x)); - imageStore(uImageOutBuffer, int(gl_GlobalInvocationID.x), b); - - vec4 f2 = imageLoad(uImageInF2, ivec2(gl_GlobalInvocationID.xy)); - imageStore(uImageOutF2, ivec2(gl_GlobalInvocationID.xy), f2); - - ivec4 i2 = imageLoad(uImageInI2, ivec2(gl_GlobalInvocationID.xy)); - imageStore(uImageOutI2, ivec2(gl_GlobalInvocationID.xy), i2); - - uvec4 u2 = imageLoad(uImageInU2, ivec2(gl_GlobalInvocationID.xy)); - imageStore(uImageOutU2, ivec2(gl_GlobalInvocationID.xy), u2); - - vec4 b2 = imageLoad(uImageInBuffer2, int(gl_GlobalInvocationID.x)); - imageStore(uImageOutBuffer2, int(gl_GlobalInvocationID.x), b2); - - vec4 f4 = imageLoad(uImageInF4, ivec2(gl_GlobalInvocationID.xy)); - imageStore(uImageOutF4, ivec2(gl_GlobalInvocationID.xy), f4); - - ivec4 i4 = imageLoad(uImageInI4, ivec2(gl_GlobalInvocationID.xy)); - imageStore(uImageOutI4, ivec2(gl_GlobalInvocationID.xy), i4); - - uvec4 u4 = imageLoad(uImageInU4, ivec2(gl_GlobalInvocationID.xy)); - imageStore(uImageOutU4, ivec2(gl_GlobalInvocationID.xy), u4); - - vec4 b4 = imageLoad(uImageInBuffer4, int(gl_GlobalInvocationID.x)); - imageStore(uImageOutBuffer4, int(gl_GlobalInvocationID.x), b4); - - imageStore(uImageNoFmtF, ivec2(gl_GlobalInvocationID.xy), b2); - imageStore(uImageNoFmtU, ivec2(gl_GlobalInvocationID.xy), u4); - imageStore(uImageNoFmtI, ivec2(gl_GlobalInvocationID.xy), i4); -} - diff --git a/third_party/spirv-cross/shaders-hlsl/comp/inverse.comp b/third_party/spirv-cross/shaders-hlsl/comp/inverse.comp deleted file mode 100644 index 03b06d6464..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/comp/inverse.comp +++ /dev/null @@ -1,23 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -layout(std430, binding = 0) writeonly buffer MatrixOut -{ - mat2 m2out; - mat3 m3out; - mat4 m4out; -}; - -layout(std430, binding = 1) readonly buffer MatrixIn -{ - mat2 m2in; - mat3 m3in; - mat4 m4in; -}; - -void main() -{ - m2out = inverse(m2in); - m3out = inverse(m3in); - m4out = inverse(m4in); -} diff --git a/third_party/spirv-cross/shaders-hlsl/comp/num-workgroups-alone.comp b/third_party/spirv-cross/shaders-hlsl/comp/num-workgroups-alone.comp deleted file mode 100644 index 10b5817ce2..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/comp/num-workgroups-alone.comp +++ /dev/null @@ -1,13 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(std430, binding = 0) buffer SSBO -{ - uvec3 outdata; -}; - -void main() -{ - outdata = gl_NumWorkGroups; -} - diff --git a/third_party/spirv-cross/shaders-hlsl/comp/num-workgroups-with-builtins.comp b/third_party/spirv-cross/shaders-hlsl/comp/num-workgroups-with-builtins.comp deleted file mode 100644 index d19a06c104..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/comp/num-workgroups-with-builtins.comp +++ /dev/null @@ -1,13 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(std430, binding = 0) buffer SSBO -{ - uvec3 outdata; -}; - -void main() -{ - outdata = gl_NumWorkGroups + gl_WorkGroupID; -} - diff --git a/third_party/spirv-cross/shaders-hlsl/comp/outer-product.comp b/third_party/spirv-cross/shaders-hlsl/comp/outer-product.comp deleted file mode 100644 index 9aba2a54b7..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/comp/outer-product.comp +++ /dev/null @@ -1,37 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -layout(set = 0, binding = 0, std430) writeonly buffer SSBO -{ - mat2 m22; - mat2x3 m23; - mat2x4 m24; - mat3x2 m32; - mat3 m33; - mat3x4 m34; - mat4x2 m42; - mat4x3 m43; - mat4 m44; -}; - -layout(set = 0, binding = 1, std430) readonly buffer ReadSSBO -{ - vec2 v2; - vec3 v3; - vec4 v4; -}; - -void main() -{ - m22 = outerProduct(v2, v2); - m23 = outerProduct(v3, v2); - m24 = outerProduct(v4, v2); - - m32 = outerProduct(v2, v3); - m33 = outerProduct(v3, v3); - m34 = outerProduct(v4, v3); - - m42 = outerProduct(v2, v4); - m43 = outerProduct(v3, v4); - m44 = outerProduct(v4, v4); -} diff --git a/third_party/spirv-cross/shaders-hlsl/comp/rmw-matrix.comp b/third_party/spirv-cross/shaders-hlsl/comp/rmw-matrix.comp deleted file mode 100644 index c158ab4ddd..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/comp/rmw-matrix.comp +++ /dev/null @@ -1,20 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(std430, binding = 0) buffer SSBO -{ - float a; - vec4 b; - mat4 c; - - float a1; - vec4 b1; - mat4 c1; -}; - -void main() -{ - a *= a1; - b *= b1; - c *= c1; -} diff --git a/third_party/spirv-cross/shaders-hlsl/comp/rwbuffer-matrix.comp b/third_party/spirv-cross/shaders-hlsl/comp/rwbuffer-matrix.comp deleted file mode 100644 index 0e722e0a51..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/comp/rwbuffer-matrix.comp +++ /dev/null @@ -1,104 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(std140, binding = 1) uniform UBO -{ - int index0; - int index1; -}; - -layout(binding = 0, std430) buffer SSBO -{ - layout(column_major) mat4 mcol; - layout(row_major) mat4 mrow; - - layout(column_major) mat2 mcol2x2; - layout(row_major) mat2 mrow2x2; - - layout(column_major) mat2x3 mcol2x3; - layout(row_major) mat2x3 mrow2x3; - - layout(column_major) mat3x2 mcol3x2; - layout(row_major) mat3x2 mrow3x2; -}; - -void col_to_row() -{ - // Load column-major, store row-major. - mrow = mcol; - mrow2x2 = mcol2x2; - mrow2x3 = mcol2x3; - mrow3x2 = mcol3x2; -} - -void row_to_col() -{ - // Load row-major, store column-major. - mcol = mrow; - mcol2x2 = mrow2x2; - mcol2x3 = mrow2x3; - mcol3x2 = mrow3x2; -} - -void write_dynamic_index_row() -{ - mrow[index0][index1] = 1.0; - mrow2x2[index0][index1] = 2.0; - mrow2x3[index0][index1] = 3.0; - mrow3x2[index0][index1] = 4.0; - - mrow[index0] = vec4(1.0); - mrow2x2[index0] = vec2(2.0); - mrow2x3[index0] = vec3(3.0); - mrow3x2[index0] = vec2(4.0); -} - -void write_dynamic_index_col() -{ - mcol[index0][index1] = 1.0; - mcol2x2[index0][index1] = 2.0; - mcol2x3[index0][index1] = 3.0; - mcol3x2[index0][index1] = 4.0; - - mcol[index0] = vec4(1.0); - mcol2x2[index0] = vec2(2.0); - mcol2x3[index0] = vec3(3.0); - mcol3x2[index0] = vec2(4.0); -} - -void read_dynamic_index_row() -{ - float a0 = mrow[index0][index1]; - float a1 = mrow2x2[index0][index1]; - float a2 = mrow2x3[index0][index1]; - float a3 = mrow3x2[index0][index1]; - - vec4 v0 = mrow[index0]; - vec2 v1 = mrow2x2[index0]; - vec3 v2 = mrow2x3[index0]; - vec2 v3 = mrow3x2[index0]; -} - -void read_dynamic_index_col() -{ - float a0 = mcol[index0][index1]; - float a1 = mcol2x2[index0][index1]; - float a2 = mcol2x3[index0][index1]; - float a3 = mcol3x2[index0][index1]; - - vec4 v0 = mcol[index0]; - vec2 v1 = mcol2x2[index0]; - vec3 v2 = mcol2x3[index0]; - vec2 v3 = mcol3x2[index0]; -} - -void main() -{ - row_to_col(); - col_to_row(); - write_dynamic_index_row(); - write_dynamic_index_col(); - read_dynamic_index_row(); - read_dynamic_index_col(); -} - diff --git a/third_party/spirv-cross/shaders-hlsl/comp/scalar-std450-distance-length-normalize.comp b/third_party/spirv-cross/shaders-hlsl/comp/scalar-std450-distance-length-normalize.comp deleted file mode 100644 index 37414737fd..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/comp/scalar-std450-distance-length-normalize.comp +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -layout(std430, set = 0, binding = 0) buffer SSBO -{ - float a; - float b; - float c; - float d; - float e; -}; - -void main() -{ - c = distance(a, b); - d = length(a); - e = normalize(a); -} diff --git a/third_party/spirv-cross/shaders-hlsl/comp/shared.comp b/third_party/spirv-cross/shaders-hlsl/comp/shared.comp deleted file mode 100644 index 4deff93597..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/comp/shared.comp +++ /dev/null @@ -1,27 +0,0 @@ -#version 310 es -layout(local_size_x = 4) in; - -shared float sShared[gl_WorkGroupSize.x]; - -layout(std430, binding = 0) readonly buffer SSBO -{ - float in_data[]; -}; - -layout(std430, binding = 1) writeonly buffer SSBO2 -{ - float out_data[]; -}; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - float idata = in_data[ident]; - - sShared[gl_LocalInvocationIndex] = idata; - memoryBarrierShared(); - barrier(); - - out_data[ident] = sShared[gl_WorkGroupSize.x - gl_LocalInvocationIndex - 1u]; -} - diff --git a/third_party/spirv-cross/shaders-hlsl/comp/spec-constant-op-member-array.comp b/third_party/spirv-cross/shaders-hlsl/comp/spec-constant-op-member-array.comp deleted file mode 100644 index 0b428eb0cf..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/comp/spec-constant-op-member-array.comp +++ /dev/null @@ -1,33 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -layout(constant_id = 0) const int a = 100; -layout(constant_id = 1) const int b = 200; -layout(constant_id = 2) const int c = 300; -const int d = c + 50; -layout(constant_id = 3) const int e = 400; - -struct A -{ - int member0[a]; - int member1[b]; -}; - -struct B -{ - int member0[b]; - int member1[a]; -}; - -layout(set = 1, binding = 0) buffer SSBO -{ - A member_a; - B member_b; - int v[a]; - int w[d]; -}; - -void main() -{ - w[gl_GlobalInvocationID.x] += v[gl_GlobalInvocationID.x] + e; -} diff --git a/third_party/spirv-cross/shaders-hlsl/comp/spec-constant-work-group-size.comp b/third_party/spirv-cross/shaders-hlsl/comp/spec-constant-work-group-size.comp deleted file mode 100644 index c86097ec7d..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/comp/spec-constant-work-group-size.comp +++ /dev/null @@ -1,19 +0,0 @@ -#version 450 -layout(local_size_x_id = 10, local_size_y = 20) in; - -layout(constant_id = 0) const int a = 1; -layout(constant_id = 1) const int b = 2; - -layout(set = 1, binding = 0) writeonly buffer SSBO -{ - int v[]; -}; - -void main() -{ - int spec_const_array_size[b]; - spec_const_array_size[0] = 10; - spec_const_array_size[1] = 40; - spec_const_array_size[a] = a; - v[a + gl_WorkGroupSize.x + gl_WorkGroupSize.y + gl_GlobalInvocationID.x] = b + spec_const_array_size[1 - a]; -} diff --git a/third_party/spirv-cross/shaders-hlsl/comp/ssbo-array-length.comp b/third_party/spirv-cross/shaders-hlsl/comp/ssbo-array-length.comp deleted file mode 100644 index 3ad4b95159..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/comp/ssbo-array-length.comp +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; -layout(set = 0, binding = 1, std140) buffer SSBO -{ - uint size; - float v[]; -}; - -void main() -{ - size = v.length(); -} diff --git a/third_party/spirv-cross/shaders-hlsl/comp/ssbo-array.comp b/third_party/spirv-cross/shaders-hlsl/comp/ssbo-array.comp deleted file mode 100644 index 38b56e9a0a..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/comp/ssbo-array.comp +++ /dev/null @@ -1,29 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -layout(binding = 0, std430) buffer SSBO0 -{ - vec4 a; -} ssbo0; - -// Does not seem to work in glslang yet in HLSL output, disable for now. -#if 0 -layout(binding = 1, std430) buffer SSBO1 -{ - vec4 b; -} ssbo1[2]; - -layout(binding = 2, std430) buffer SSBO2 -{ - vec4 c; -} ssbo2[3][3]; -#endif - -void main() -{ -#if 0 - ssbo1[1].b = ssbo0.a; - ssbo2[1][2].c = ssbo0.a; -#endif -} - diff --git a/third_party/spirv-cross/shaders-hlsl/frag/array-lut-no-loop-variable.frag b/third_party/spirv-cross/shaders-hlsl/frag/array-lut-no-loop-variable.frag deleted file mode 100644 index 3493e0cccc..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/array-lut-no-loop-variable.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 v0; - -void main() -{ - float lut[5] = float[](1.0, 2.0, 3.0, 4.0, 5.0); - for (int i = 0; i < 4; i++, FragColor += lut[i]) - { - } -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/basic-color-3comp.sm30.frag b/third_party/spirv-cross/shaders-hlsl/frag/basic-color-3comp.sm30.frag deleted file mode 100644 index 64211b6501..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/basic-color-3comp.sm30.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) in vec4 vColor; -layout(location = 0) out vec3 FragColor; - -void main() -{ - FragColor = vColor.xyz; -} - diff --git a/third_party/spirv-cross/shaders-hlsl/frag/basic-color-3comp.sm50.frag b/third_party/spirv-cross/shaders-hlsl/frag/basic-color-3comp.sm50.frag deleted file mode 100644 index 64211b6501..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/basic-color-3comp.sm50.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) in vec4 vColor; -layout(location = 0) out vec3 FragColor; - -void main() -{ - FragColor = vColor.xyz; -} - diff --git a/third_party/spirv-cross/shaders-hlsl/frag/basic.frag b/third_party/spirv-cross/shaders-hlsl/frag/basic.frag deleted file mode 100644 index dd9a8f8507..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/basic.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) in vec4 vColor; -layout(location = 1) in vec2 vTex; -layout(binding = 0) uniform sampler2D uTex; -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vColor * texture(uTex, vTex); -} - diff --git a/third_party/spirv-cross/shaders-hlsl/frag/bit-conversions.frag b/third_party/spirv-cross/shaders-hlsl/frag/bit-conversions.frag deleted file mode 100644 index faacdc0f15..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/bit-conversions.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) in vec2 value; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - int i = floatBitsToInt(value.x); - FragColor = vec4(1.0, 0.0, intBitsToFloat(i), 1.0); -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/boolean-mix.frag b/third_party/spirv-cross/shaders-hlsl/frag/boolean-mix.frag deleted file mode 100644 index 9fd8ab3475..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/boolean-mix.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) in vec2 x0; -layout(location = 0) out vec2 FragColor; - -void main() -{ - FragColor = x0.x > x0.y ? vec2(1.0, 0.0) : vec2(0.0, 1.0); -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/builtins.frag b/third_party/spirv-cross/shaders-hlsl/frag/builtins.frag deleted file mode 100644 index 99e6e2df5b..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/builtins.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 vColor; - -void main() -{ - FragColor = gl_FragCoord + vColor; - gl_FragDepth = 0.5; -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/bvec-operations.frag b/third_party/spirv-cross/shaders-hlsl/frag/bvec-operations.frag deleted file mode 100644 index 7221604d9a..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/bvec-operations.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) in vec2 value; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - bvec2 bools1 = not(bvec2(value.x == 0.0, value.y == 0.0)); - bvec2 bools2 = lessThanEqual(value, vec2(1.5, 0.5)); - FragColor = vec4(1.0, 0.0, bools1.x ? 1.0 : 0.0, bools2.x ? 1.0 : 0.0); -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/clip-cull-distance.frag b/third_party/spirv-cross/shaders-hlsl/frag/clip-cull-distance.frag deleted file mode 100644 index 625a7dab31..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/clip-cull-distance.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -in float gl_ClipDistance[2]; -in float gl_CullDistance[1]; - -layout(location = 0) out float FragColor; - -void main() -{ - FragColor = gl_ClipDistance[0] + gl_CullDistance[0] + gl_ClipDistance[1]; -} - diff --git a/third_party/spirv-cross/shaders-hlsl/frag/combined-texture-sampler-parameter.frag b/third_party/spirv-cross/shaders-hlsl/frag/combined-texture-sampler-parameter.frag deleted file mode 100644 index e5721b9026..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/combined-texture-sampler-parameter.frag +++ /dev/null @@ -1,31 +0,0 @@ -#version 310 es -precision mediump float; - -layout(set = 0, binding = 0) uniform mediump sampler2D uSampler; -layout(set = 0, binding = 1) uniform mediump sampler2DShadow uSamplerShadow; -layout(location = 0) out float FragColor; - -vec4 samp2(sampler2D s) -{ - return texture(s, vec2(1.0)) + texelFetch(s, ivec2(10), 0); -} - -vec4 samp3(sampler2D s) -{ - return samp2(s); -} - -float samp4(mediump sampler2DShadow s) -{ - return texture(s, vec3(1.0)); -} - -float samp(sampler2D s0, mediump sampler2DShadow s1) -{ - return samp3(s0).x + samp4(s1); -} - -void main() -{ - FragColor = samp(uSampler, uSamplerShadow); -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/combined-texture-sampler-shadow.frag b/third_party/spirv-cross/shaders-hlsl/frag/combined-texture-sampler-shadow.frag deleted file mode 100644 index 2fabb5ea8a..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/combined-texture-sampler-shadow.frag +++ /dev/null @@ -1,29 +0,0 @@ -#version 310 es -precision mediump float; - -layout(set = 0, binding = 0) uniform mediump samplerShadow uSampler; -layout(set = 0, binding = 1) uniform mediump sampler uSampler1; -layout(set = 0, binding = 2) uniform texture2D uDepth; -layout(location = 0) out float FragColor; - -float samp2(texture2D t, mediump samplerShadow s) -{ - return texture(sampler2DShadow(t, s), vec3(1.0)); -} - -float samp3(texture2D t, mediump sampler s) -{ - return texture(sampler2D(t, s), vec2(1.0)).x; -} - -float samp(texture2D t, mediump samplerShadow s, mediump sampler s1) -{ - float r0 = samp2(t, s); - float r1 = samp3(t, s1); - return r0 + r1; -} - -void main() -{ - FragColor = samp(uDepth, uSampler, uSampler1); -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/complex-expression-in-access-chain.frag b/third_party/spirv-cross/shaders-hlsl/frag/complex-expression-in-access-chain.frag deleted file mode 100644 index 47f93931ce..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/complex-expression-in-access-chain.frag +++ /dev/null @@ -1,29 +0,0 @@ -#version 310 es -precision mediump float; - -struct Foo -{ - vec4 a; - vec4 b; -}; - -layout(binding = 0) buffer UBO -{ - vec4 results[1024]; -}; - -layout(binding = 1) uniform highp isampler2D Buf; -layout(location = 0) flat in int vIn; -layout(location = 1) flat in int vIn2; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - ivec4 coords = texelFetch(Buf, ivec2(gl_FragCoord.xy), 0); - vec4 foo = results[coords.x % 16]; - - int c = vIn * vIn; - int d = vIn2 * vIn2; - FragColor = foo + foo + results[c + d]; -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/constant-composites.frag b/third_party/spirv-cross/shaders-hlsl/frag/constant-composites.frag deleted file mode 100644 index a12e22ff4f..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/constant-composites.frag +++ /dev/null @@ -1,20 +0,0 @@ -#version 310 es -precision mediump float; - -float lut[4] = float[](1.0, 4.0, 3.0, 2.0); - -struct Foo -{ - float a; - float b; -}; -Foo foos[2] = Foo[](Foo(10.0, 20.0), Foo(30.0, 40.0)); - -layout(location = 0) out vec4 FragColor; -layout(location = 0) flat in int line; - -void main() -{ - FragColor = vec4(lut[line]); - FragColor += foos[line].a * foos[1 - line].a; -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/control-dependent-in-branch.desktop.frag b/third_party/spirv-cross/shaders-hlsl/frag/control-dependent-in-branch.desktop.frag deleted file mode 100644 index 7c75ffe1bd..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/control-dependent-in-branch.desktop.frag +++ /dev/null @@ -1,36 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; -layout(binding = 0) uniform sampler2D uSampler; -layout(location = 0) in vec4 vInput; - -void main() -{ - FragColor = vInput; - vec4 t = texture(uSampler, vInput.xy); - vec4 d0 = dFdx(vInput); - vec4 d1 = dFdy(vInput); - vec4 d2 = fwidth(vInput); - vec4 d3 = dFdxCoarse(vInput); - vec4 d4 = dFdyCoarse(vInput); - vec4 d5 = fwidthCoarse(vInput); - vec4 d6 = dFdxFine(vInput); - vec4 d7 = dFdyFine(vInput); - vec4 d8 = fwidthFine(vInput); - vec2 lod = textureQueryLod(uSampler, vInput.zw); - if (vInput.y > 10.0) - { - FragColor += t; - FragColor += d0; - FragColor += d1; - FragColor += d2; - FragColor += d3; - FragColor += d4; - FragColor += d5; - FragColor += d6; - FragColor += d7; - FragColor += d8; - FragColor += lod.xyxy; - } -} - diff --git a/third_party/spirv-cross/shaders-hlsl/frag/demote-to-helper.frag b/third_party/spirv-cross/shaders-hlsl/frag/demote-to-helper.frag deleted file mode 100644 index bdfef6f9b4..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/demote-to-helper.frag +++ /dev/null @@ -1,7 +0,0 @@ -#version 450 -#extension GL_EXT_demote_to_helper_invocation : require - -void main() -{ - demote; -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/depth-greater-than.frag b/third_party/spirv-cross/shaders-hlsl/frag/depth-greater-than.frag deleted file mode 100644 index 88f9a4214f..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/depth-greater-than.frag +++ /dev/null @@ -1,8 +0,0 @@ -#version 450 -layout(early_fragment_tests) in; -layout(depth_greater) out float gl_FragDepth; - -void main() -{ - gl_FragDepth = 0.5; -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/depth-less-than.frag b/third_party/spirv-cross/shaders-hlsl/frag/depth-less-than.frag deleted file mode 100644 index 87fdd4620c..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/depth-less-than.frag +++ /dev/null @@ -1,8 +0,0 @@ -#version 450 -layout(early_fragment_tests) in; -layout(depth_less) out float gl_FragDepth; - -void main() -{ - gl_FragDepth = 0.5; -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/dual-source-blending.frag b/third_party/spirv-cross/shaders-hlsl/frag/dual-source-blending.frag deleted file mode 100644 index f322cf4c38..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/dual-source-blending.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 - -layout(location = 0, index = 0) out vec4 FragColor0; -layout(location = 0, index = 1) out vec4 FragColor1; - -void main() -{ - FragColor0 = vec4(1.0); - FragColor1 = vec4(2.0); -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/early-fragment-test.frag b/third_party/spirv-cross/shaders-hlsl/frag/early-fragment-test.frag deleted file mode 100644 index 9f84e09880..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/early-fragment-test.frag +++ /dev/null @@ -1,7 +0,0 @@ -#version 420 - -layout(early_fragment_tests) in; - -void main() -{ -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/for-loop-continue-control-flow.frag b/third_party/spirv-cross/shaders-hlsl/frag/for-loop-continue-control-flow.frag deleted file mode 100644 index 1f91cca2a4..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/for-loop-continue-control-flow.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 -layout(location = 0) out vec4 FragColor; -void main() -{ - FragColor = vec4(0.0); - for (int i = 0; i < 3; (0 > 1) ? 1 : i ++) - { - int a = i; - FragColor[a] += float(i); - } -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/fp16-packing.frag b/third_party/spirv-cross/shaders-hlsl/frag/fp16-packing.frag deleted file mode 100644 index 98ca24e2f8..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/fp16-packing.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(location = 0) flat in uint FP16; -layout(location = 1) flat in vec2 FP32; -layout(location = 0) out vec2 FP32Out; -layout(location = 1) out uint FP16Out; - -void main() -{ - FP32Out = unpackHalf2x16(FP16); - FP16Out = packHalf2x16(FP32); -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/front-facing.frag b/third_party/spirv-cross/shaders-hlsl/frag/front-facing.frag deleted file mode 100644 index 90ca1abf4e..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/front-facing.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 vA; -layout(location = 1) in vec4 vB; - -void main() -{ - if (gl_FrontFacing) - FragColor = vA; - else - FragColor = vB; -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/image-query-selective.frag b/third_party/spirv-cross/shaders-hlsl/frag/image-query-selective.frag deleted file mode 100644 index bb595bcb9b..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/image-query-selective.frag +++ /dev/null @@ -1,35 +0,0 @@ -#version 450 - -layout(binding = 0) uniform usampler1D uSampler1DUint; -layout(binding = 0) uniform isampler1D uSampler1DInt; -layout(binding = 0) uniform sampler1D uSampler1DFloat; -layout(binding = 1) uniform sampler2D uSampler2D; -layout(binding = 2) uniform isampler2DArray uSampler2DArray; -layout(binding = 3) uniform sampler3D uSampler3D; -layout(binding = 4) uniform samplerCube uSamplerCube; -layout(binding = 5) uniform usamplerCubeArray uSamplerCubeArray; -layout(binding = 6) uniform samplerBuffer uSamplerBuffer; -layout(binding = 7) uniform isampler2DMS uSamplerMS; -layout(binding = 8) uniform sampler2DMSArray uSamplerMSArray; - -void main() -{ - int a = textureSize(uSampler1DUint, 0); - a = textureSize(uSampler1DInt, 0); - a = textureSize(uSampler1DFloat, 0); - - ivec3 c = textureSize(uSampler2DArray, 0); - ivec3 d = textureSize(uSampler3D, 0); - ivec2 e = textureSize(uSamplerCube, 0); - ivec3 f = textureSize(uSamplerCubeArray, 0); - int g = textureSize(uSamplerBuffer); - ivec2 h = textureSize(uSamplerMS); - ivec3 i = textureSize(uSamplerMSArray); - - int l1 = textureQueryLevels(uSampler2D); - int l2 = textureQueryLevels(uSampler2DArray); - int l3 = textureQueryLevels(uSampler3D); - int l4 = textureQueryLevels(uSamplerCube); - int s0 = textureSamples(uSamplerMS); - int s1 = textureSamples(uSamplerMSArray); -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/image-query-uav.frag b/third_party/spirv-cross/shaders-hlsl/frag/image-query-uav.frag deleted file mode 100644 index 25103e6e95..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/image-query-uav.frag +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 - -layout(rgba32f, binding = 0) uniform writeonly image1D uImage1D; -layout(rg32f, binding = 1) uniform writeonly image2D uImage2D; -layout(r32f, binding = 2) uniform readonly image2DArray uImage2DArray; -layout(rgba8, binding = 3) uniform writeonly image3D uImage3D; -layout(rgba8_snorm, binding = 6) uniform writeonly imageBuffer uImageBuffer; - -// There is no RWTexture2DMS. - -void main() -{ - int a = imageSize(uImage1D); - ivec2 b = imageSize(uImage2D); - ivec3 c = imageSize(uImage2DArray); - ivec3 d = imageSize(uImage3D); - int e = imageSize(uImageBuffer); -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/image-query-uav.nonwritable-uav-texture.frag b/third_party/spirv-cross/shaders-hlsl/frag/image-query-uav.nonwritable-uav-texture.frag deleted file mode 100644 index 25103e6e95..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/image-query-uav.nonwritable-uav-texture.frag +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 - -layout(rgba32f, binding = 0) uniform writeonly image1D uImage1D; -layout(rg32f, binding = 1) uniform writeonly image2D uImage2D; -layout(r32f, binding = 2) uniform readonly image2DArray uImage2DArray; -layout(rgba8, binding = 3) uniform writeonly image3D uImage3D; -layout(rgba8_snorm, binding = 6) uniform writeonly imageBuffer uImageBuffer; - -// There is no RWTexture2DMS. - -void main() -{ - int a = imageSize(uImage1D); - ivec2 b = imageSize(uImage2D); - ivec3 c = imageSize(uImage2DArray); - ivec3 d = imageSize(uImage3D); - int e = imageSize(uImageBuffer); -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/image-query.frag b/third_party/spirv-cross/shaders-hlsl/frag/image-query.frag deleted file mode 100644 index 8e840fba11..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/image-query.frag +++ /dev/null @@ -1,33 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler1D uSampler1D; -layout(binding = 1) uniform sampler2D uSampler2D; -layout(binding = 2) uniform sampler2DArray uSampler2DArray; -layout(binding = 3) uniform sampler3D uSampler3D; -layout(binding = 4) uniform samplerCube uSamplerCube; -layout(binding = 5) uniform samplerCubeArray uSamplerCubeArray; -layout(binding = 6) uniform samplerBuffer uSamplerBuffer; -layout(binding = 7) uniform sampler2DMS uSamplerMS; -layout(binding = 8) uniform sampler2DMSArray uSamplerMSArray; - -void main() -{ - int a = textureSize(uSampler1D, 0); - ivec2 b = textureSize(uSampler2D, 0); - ivec3 c = textureSize(uSampler2DArray, 0); - ivec3 d = textureSize(uSampler3D, 0); - ivec2 e = textureSize(uSamplerCube, 0); - ivec3 f = textureSize(uSamplerCubeArray, 0); - int g = textureSize(uSamplerBuffer); - ivec2 h = textureSize(uSamplerMS); - ivec3 i = textureSize(uSamplerMSArray); - - int l0 = textureQueryLevels(uSampler1D); - int l1 = textureQueryLevels(uSampler2D); - int l2 = textureQueryLevels(uSampler2DArray); - int l3 = textureQueryLevels(uSampler3D); - int l4 = textureQueryLevels(uSamplerCube); - int l5 = textureQueryLevels(uSamplerCubeArray); - int s0 = textureSamples(uSamplerMS); - int s1 = textureSamples(uSamplerMSArray); -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/input-attachment-ms.frag b/third_party/spirv-cross/shaders-hlsl/frag/input-attachment-ms.frag deleted file mode 100644 index b3d44c9436..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/input-attachment-ms.frag +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 - -layout(input_attachment_index = 0, set = 0, binding = 0) uniform subpassInputMS uSubpass0; -layout(input_attachment_index = 1, set = 0, binding = 1) uniform subpassInputMS uSubpass1; -layout(location = 0) out vec4 FragColor; - -vec4 load_subpasses(mediump subpassInputMS uInput) -{ - return subpassLoad(uInput, gl_SampleID); -} - -void main() -{ - FragColor = subpassLoad(uSubpass0, 1) + subpassLoad(uSubpass1, 2) + load_subpasses(uSubpass0); -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/input-attachment.frag b/third_party/spirv-cross/shaders-hlsl/frag/input-attachment.frag deleted file mode 100644 index 877d0525a4..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/input-attachment.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 310 es -precision mediump float; - -layout(input_attachment_index = 0, set = 0, binding = 0) uniform mediump subpassInput uSubpass0; -layout(input_attachment_index = 1, set = 0, binding = 1) uniform mediump subpassInput uSubpass1; -layout(location = 0) out vec4 FragColor; - -vec4 load_subpasses(mediump subpassInput uInput) -{ - return subpassLoad(uInput); -} - -void main() -{ - FragColor = subpassLoad(uSubpass0) + load_subpasses(uSubpass1); -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/io-block.frag b/third_party/spirv-cross/shaders-hlsl/frag/io-block.frag deleted file mode 100644 index 1e3e3d77e8..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/io-block.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 310 es -#extension GL_EXT_shader_io_blocks : require -precision mediump float; - -layout(location = 1) in VertexOut -{ - vec4 a; - vec4 b; -}; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = a + b; -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/legacy-tex-modifiers.sm30.frag b/third_party/spirv-cross/shaders-hlsl/frag/legacy-tex-modifiers.sm30.frag deleted file mode 100644 index 30b957b26b..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/legacy-tex-modifiers.sm30.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 - -layout(location = 0) in vec2 vUV; -layout(location = 0) out vec4 FragColor; -layout(set = 0, binding = 0) uniform sampler2D uSampler; - -void main() -{ - FragColor = textureProj(uSampler, vec3(vUV, 5.0)); - FragColor += texture(uSampler, vUV, 3.0); - FragColor += textureLod(uSampler, vUV, 2.0); - FragColor += textureGrad(uSampler, vUV, vec2(4.0), vec2(5.0)); -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/lut-promotion.frag b/third_party/spirv-cross/shaders-hlsl/frag/lut-promotion.frag deleted file mode 100644 index 0cdc8148f9..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/lut-promotion.frag +++ /dev/null @@ -1,44 +0,0 @@ -#version 310 es -precision mediump float; -layout(location = 0) out float FragColor; -layout(location = 0) flat in int index; - -const float LUT[16] = float[]( - 1.0, 2.0, 3.0, 4.0, - 1.0, 2.0, 3.0, 4.0, - 1.0, 2.0, 3.0, 4.0, - 1.0, 2.0, 3.0, 4.0); - -void main() -{ - // Try reading LUTs, both in branches and not branch. - FragColor = LUT[index]; - if (index < 10) - FragColor += LUT[index ^ 1]; - else - FragColor += LUT[index & 1]; - - // Not declared as a LUT, but can be promoted to one. - vec4 foo[4] = vec4[](vec4(0.0), vec4(1.0), vec4(8.0), vec4(5.0)); - if (index > 30) - { - FragColor += foo[index & 3].y; - } - else - { - FragColor += foo[index & 1].x; - } - - // Not declared as a LUT, but this cannot be promoted, because we have a partial write. - vec4 foobar[4] = vec4[](vec4(0.0), vec4(1.0), vec4(8.0), vec4(5.0)); - if (index > 30) - { - foobar[1].z = 20.0; - } - FragColor += foobar[index & 3].z; - - // Not declared as a LUT, but this cannot be promoted, because we have two complete writes. - vec4 baz[4] = vec4[](vec4(0.0), vec4(1.0), vec4(8.0), vec4(5.0)); - baz = vec4[](vec4(20.0), vec4(30.0), vec4(50.0), vec4(60.0)); - FragColor += baz[index & 3].z; -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/matrix-input.frag b/third_party/spirv-cross/shaders-hlsl/frag/matrix-input.frag deleted file mode 100644 index ffe242cec2..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/matrix-input.frag +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; -layout(location = 1) in mat4 m; - -void main() -{ - FragColor = m[0] + m[1] + m[2] + m[3]; -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/mod.frag b/third_party/spirv-cross/shaders-hlsl/frag/mod.frag deleted file mode 100644 index 32edb61841..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/mod.frag +++ /dev/null @@ -1,22 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) in vec4 a4; -layout(location = 1) in vec3 a3; -layout(location = 2) in vec2 a2; -layout(location = 3) in float a1; -layout(location = 4) in vec4 b4; -layout(location = 5) in vec3 b3; -layout(location = 6) in vec2 b2; -layout(location = 7) in float b1; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - vec4 m0 = mod(a4, b4); - vec3 m1 = mod(a3, b3); - vec2 m2 = mod(a2, b2); - float m3 = mod(a1, b1); - FragColor = m0 + m1.xyzx + m2.xyxy + m3; -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/mrt.frag b/third_party/spirv-cross/shaders-hlsl/frag/mrt.frag deleted file mode 100644 index 77a2bb29c7..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/mrt.frag +++ /dev/null @@ -1,15 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) out vec4 RT0; -layout(location = 1) out vec4 RT1; -layout(location = 2) out vec4 RT2; -layout(location = 3) out vec4 RT3; - -void main() -{ - RT0 = vec4(1.0); - RT1 = vec4(2.0); - RT2 = vec4(3.0); - RT3 = vec4(4.0); -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/no-return.frag b/third_party/spirv-cross/shaders-hlsl/frag/no-return.frag deleted file mode 100644 index f0ef8702ce..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/no-return.frag +++ /dev/null @@ -1,5 +0,0 @@ -#version 310 es - -void main() -{ -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/no-return2.frag b/third_party/spirv-cross/shaders-hlsl/frag/no-return2.frag deleted file mode 100644 index 46bf9fbf20..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/no-return2.frag +++ /dev/null @@ -1,9 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) in vec4 vColor; - -void main() -{ - vec4 v = vColor; -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/nonuniform-qualifier.nonuniformresource.sm51.frag b/third_party/spirv-cross/shaders-hlsl/frag/nonuniform-qualifier.nonuniformresource.sm51.frag deleted file mode 100644 index 4ab82e9f29..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/nonuniform-qualifier.nonuniformresource.sm51.frag +++ /dev/null @@ -1,52 +0,0 @@ -#version 450 -#extension GL_EXT_nonuniform_qualifier : require -#extension GL_EXT_samplerless_texture_functions : require - -layout(set = 0, binding = 0) uniform texture2D uSamplers[]; -layout(set = 1, binding = 0) uniform texture2DMS uSamplersMS[]; -layout(set = 2, binding = 4) uniform sampler2D uCombinedSamplers[]; -layout(set = 3, binding = 1) uniform sampler uSamps[]; -layout(set = 4, location = 0) flat in int vIndex; -layout(set = 5, location = 1) in vec2 vUV; -layout(set = 6, location = 0) out vec4 FragColor; - -layout(r32f, set = 7, binding = 5) uniform image2D uImages[]; -layout(r32ui, set = 8, binding = 5) uniform uimage2D uImagesU32[]; - -layout(set = 9, binding = 2) uniform UBO -{ - vec4 v[64]; -} ubos[]; - -layout(set = 10, binding = 3) buffer SSBO -{ - uint counter; - vec4 v[]; -} ssbos[]; - -void main() -{ - int i = vIndex; - FragColor = texture(nonuniformEXT(sampler2D(uSamplers[i + 10], uSamps[i + 40])), vUV); - FragColor = texture(uCombinedSamplers[nonuniformEXT(i + 10)], vUV); - FragColor += ubos[nonuniformEXT(i + 20)].v[nonuniformEXT(i + 40)]; - FragColor += ssbos[nonuniformEXT(i + 50)].v[nonuniformEXT(i + 60)]; - ssbos[nonuniformEXT(i + 60)].v[nonuniformEXT(i + 70)] = vec4(20.0); - - FragColor = texelFetch(uSamplers[nonuniformEXT(i + 10)], ivec2(vUV), 0); - atomicAdd(ssbos[nonuniformEXT(i + 100)].counter, 100u); - - vec2 queried = textureQueryLod(nonuniformEXT(sampler2D(uSamplers[i + 10], uSamps[i + 40])), vUV); - queried += textureQueryLod(uCombinedSamplers[nonuniformEXT(i + 10)], vUV); - FragColor.xy += queried; - - FragColor.x += float(textureQueryLevels(uSamplers[nonuniformEXT(i + 20)])); - FragColor.y += float(textureSamples(uSamplersMS[nonuniformEXT(i + 20)])); - FragColor.xy += vec2(textureSize(uSamplers[nonuniformEXT(i + 20)], 0)); - - FragColor += imageLoad(uImages[nonuniformEXT(i + 50)], ivec2(vUV)); - FragColor.xy += vec2(imageSize(uImages[nonuniformEXT(i + 20)])); - imageStore(uImages[nonuniformEXT(i + 60)], ivec2(vUV), vec4(50.0)); - - imageAtomicAdd(uImagesU32[nonuniformEXT(i + 70)], ivec2(vUV), 40u); -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/partial-write-preserve.frag b/third_party/spirv-cross/shaders-hlsl/frag/partial-write-preserve.frag deleted file mode 100644 index f30270b91b..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/partial-write-preserve.frag +++ /dev/null @@ -1,64 +0,0 @@ -#version 310 es -precision mediump float; - -layout(std140, binding = 0) uniform UBO -{ - int some_value; -}; - -struct B -{ - float a; - float b; -}; - -void partial_inout(inout vec4 x) -{ - x.x = 10.0; -} - -void partial_inout(inout B b) -{ - b.b = 40.0; -} - -// Make a complete write, but only conditionally ... -void branchy_inout(inout vec4 v) -{ - v.y = 20.0; - if (some_value == 20) - { - v = vec4(50.0); - } -} - -void branchy_inout_2(out vec4 v) -{ - if (some_value == 20) - { - v = vec4(50.0); - } - else - { - v = vec4(70.0); - } - v.y = 20.0; -} - -void complete_inout(out vec4 x) -{ - x = vec4(50.0); -} - -void main() -{ - vec4 a = vec4(10.0); - partial_inout(a); - complete_inout(a); - branchy_inout(a); - branchy_inout_2(a); - - B b = B(10.0, 20.0); - partial_inout(b); -} - diff --git a/third_party/spirv-cross/shaders-hlsl/frag/pixel-interlock-ordered.sm51.fxconly.frag b/third_party/spirv-cross/shaders-hlsl/frag/pixel-interlock-ordered.sm51.fxconly.frag deleted file mode 100644 index ceac8cc50e..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/pixel-interlock-ordered.sm51.fxconly.frag +++ /dev/null @@ -1,36 +0,0 @@ -#version 450 -#extension GL_ARB_fragment_shader_interlock : require - -layout(pixel_interlock_ordered) in; - -layout(binding = 0, rgba8) uniform writeonly image2D img; -layout(binding = 1, r32ui) uniform uimage2D img2; -layout(binding = 2, rgba8) uniform readonly image2D img3; -layout(binding = 3) coherent buffer Buffer -{ - int foo; - uint bar; -}; -layout(binding = 4) buffer Buffer2 -{ - uint quux; -}; - -layout(binding = 5, rgba8) uniform writeonly image2D img4; -layout(binding = 6) buffer Buffer3 -{ - int baz; -}; - -void main() -{ - // Deliberately outside the critical section to test usage tracking. - baz = 0; - imageStore(img4, ivec2(1, 1), vec4(1.0, 0.0, 0.0, 1.0)); - beginInvocationInterlockARB(); - imageStore(img, ivec2(0, 0), imageLoad(img3, ivec2(0, 0))); - imageAtomicAdd(img2, ivec2(0, 0), 1u); - foo += 42; - atomicAnd(bar, quux); - endInvocationInterlockARB(); -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/point-coord-compat.frag b/third_party/spirv-cross/shaders-hlsl/frag/point-coord-compat.frag deleted file mode 100644 index dc7d6b55fb..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/point-coord-compat.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) out vec2 FragColor; - -void main() -{ - FragColor = gl_PointCoord; -} - diff --git a/third_party/spirv-cross/shaders-hlsl/frag/query-lod.desktop.frag b/third_party/spirv-cross/shaders-hlsl/frag/query-lod.desktop.frag deleted file mode 100644 index 0cb160402f..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/query-lod.desktop.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 - -layout(location = 0) in vec2 vTexCoord; -layout(binding = 0) uniform sampler2D uSampler; -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = textureQueryLod(uSampler, vTexCoord).xyxy; -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/readonly-coherent-ssbo.force-uav.frag b/third_party/spirv-cross/shaders-hlsl/frag/readonly-coherent-ssbo.force-uav.frag deleted file mode 100644 index cd035467be..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/readonly-coherent-ssbo.force-uav.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(set = 0, binding = 0) coherent readonly buffer SSBO -{ - vec4 a; -}; -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = a; -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/readonly-coherent-ssbo.frag b/third_party/spirv-cross/shaders-hlsl/frag/readonly-coherent-ssbo.frag deleted file mode 100644 index cd035467be..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/readonly-coherent-ssbo.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(set = 0, binding = 0) coherent readonly buffer SSBO -{ - vec4 a; -}; -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = a; -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/resources.frag b/third_party/spirv-cross/shaders-hlsl/frag/resources.frag deleted file mode 100644 index 16178bfd77..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/resources.frag +++ /dev/null @@ -1,27 +0,0 @@ -#version 310 es -precision mediump float; - -layout(binding = 3, std140) uniform CBuffer -{ - vec4 a; -} cbuf; - -layout(binding = 4) uniform sampler2D uSampledImage; -layout(binding = 5) uniform mediump texture2D uTexture; -layout(binding = 6) uniform mediump sampler uSampler; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec2 vTex; - -layout(std430, push_constant) uniform PushMe -{ - vec4 d; -} registers; - -void main() -{ - vec4 c0 = texture(uSampledImage, vTex); - vec4 c1 = texture(sampler2D(uTexture, uSampler), vTex); - vec4 c2 = cbuf.a + registers.d; - FragColor = c0 + c1 + c2; -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/row-major-layout-in-struct.frag b/third_party/spirv-cross/shaders-hlsl/frag/row-major-layout-in-struct.frag deleted file mode 100644 index 3e93bb2b43..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/row-major-layout-in-struct.frag +++ /dev/null @@ -1,29 +0,0 @@ -#version 450 - -struct Foo -{ - mat4 v; - mat4 w; -}; - -struct NonFoo -{ - mat4 v; - mat4 w; -}; - -layout(std140, binding = 0) uniform UBO -{ - layout(column_major) Foo foo; -}; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 vUV; - -void main() -{ - NonFoo f; - f.v = foo.v; - f.w = foo.w; - FragColor = f.v * (f.w * vUV); -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/sample-cmp-level-zero.frag b/third_party/spirv-cross/shaders-hlsl/frag/sample-cmp-level-zero.frag deleted file mode 100644 index c40d742eeb..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/sample-cmp-level-zero.frag +++ /dev/null @@ -1,27 +0,0 @@ -#version 450 - -layout(location = 0) out float FragColor; -layout(binding = 0) uniform sampler2DShadow uSampler2D; -layout(binding = 1) uniform sampler2DArrayShadow uSampler2DArray; -layout(binding = 2) uniform samplerCubeShadow uSamplerCube; -layout(binding = 3) uniform samplerCubeArrayShadow uSamplerCubeArray; - -layout(location = 0) in vec3 vUVRef; -layout(location = 1) in vec4 vDirRef; - -void main() -{ - float s0 = textureOffset(uSampler2D, vUVRef, ivec2(-1)); - float s1 = textureOffset(uSampler2DArray, vDirRef, ivec2(-1)); - float s2 = texture(uSamplerCube, vDirRef); - float s3 = texture(uSamplerCubeArray, vDirRef, 0.5); - - float l0 = textureLodOffset(uSampler2D, vUVRef, 0.0, ivec2(-1)); - float l1 = textureGradOffset(uSampler2DArray, vDirRef, vec2(0.0), vec2(0.0), ivec2(-1)); - float l2 = textureGrad(uSamplerCube, vDirRef, vec3(0.0), vec3(0.0)); - - float p0 = textureProjOffset(uSampler2D, vDirRef, ivec2(+1)); - float p1 = textureProjLodOffset(uSampler2D, vDirRef, 0.0, ivec2(+1)); - - FragColor = s0 + s1 + s2 + s3 + l0 + l1 + l2 + p0 + p1; -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/sample-mask-in-and-out.frag b/third_party/spirv-cross/shaders-hlsl/frag/sample-mask-in-and-out.frag deleted file mode 100644 index 75ed3cc167..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/sample-mask-in-and-out.frag +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(1.0); - gl_SampleMask[0] = gl_SampleMaskIn[0]; -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/sample-mask-in.frag b/third_party/spirv-cross/shaders-hlsl/frag/sample-mask-in.frag deleted file mode 100644 index 16031a3557..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/sample-mask-in.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; - -void main() -{ - if ((gl_SampleMaskIn[0] & (1 << gl_SampleID)) != 0) - { - FragColor = vec4(1.0); - } -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/sample-mask-out.frag b/third_party/spirv-cross/shaders-hlsl/frag/sample-mask-out.frag deleted file mode 100644 index c7fb80eba9..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/sample-mask-out.frag +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(1.0); - gl_SampleMask[0] = 0; -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/sampler-array.frag b/third_party/spirv-cross/shaders-hlsl/frag/sampler-array.frag deleted file mode 100644 index 75910ed163..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/sampler-array.frag +++ /dev/null @@ -1,28 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler2D uCombined[4]; -layout(binding = 4) uniform texture2D uTex[4]; -layout(binding = 8) uniform sampler uSampler[4]; -layout(binding = 12, rgba32f) uniform writeonly image2D uImage[8]; -layout(location = 0) in vec2 vTex; -layout(location = 1) flat in int vIndex; - -vec4 sample_in_function(sampler2D samp) -{ - return texture(samp, vTex); -} - -vec4 sample_in_function2(texture2D tex, sampler samp) -{ - return texture(sampler2D(tex, samp), vTex); -} - -void main() -{ - vec4 color = texture(uCombined[vIndex], vTex); - color += texture(sampler2D(uTex[vIndex], uSampler[vIndex]), vTex); - color += sample_in_function(uCombined[vIndex + 1]); - color += sample_in_function2(uTex[vIndex + 1], uSampler[vIndex + 1]); - - imageStore(uImage[vIndex], ivec2(gl_FragCoord.xy), color); -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/sampler-image-arrays.frag b/third_party/spirv-cross/shaders-hlsl/frag/sampler-image-arrays.frag deleted file mode 100644 index 42370d9728..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/sampler-image-arrays.frag +++ /dev/null @@ -1,33 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; -layout(location = 0) flat in vec2 vTex; -layout(location = 1) flat in int vIndex; -layout(binding = 0) uniform sampler2D uSampler[4]; -layout(binding = 4) uniform sampler uSamplers[4]; -layout(binding = 8) uniform texture2D uTextures[4]; - -vec4 sample_from_argument(sampler2D samplers[4]) -{ - return texture(samplers[vIndex], vTex + 0.2); -} - -vec4 sample_single_from_argument(sampler2D samp) -{ - return texture(samp, vTex + 0.3); -} - -vec4 sample_from_global() -{ - return texture(uSampler[vIndex], vTex + 0.1); -} - -void main() -{ - FragColor = vec4(0.0); - FragColor += texture(sampler2D(uTextures[2], uSamplers[1]), vTex); - FragColor += texture(uSampler[vIndex], vTex); - FragColor += sample_from_global(); - FragColor += sample_from_argument(uSampler); - FragColor += sample_single_from_argument(uSampler[3]); -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/scalar-refract-reflect.frag b/third_party/spirv-cross/shaders-hlsl/frag/scalar-refract-reflect.frag deleted file mode 100644 index 486ed90bd5..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/scalar-refract-reflect.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 -layout(location = 0) out float FragColor; -layout(location = 0) in vec3 vRefract; - -void main() -{ - FragColor = refract(vRefract.x, vRefract.y, vRefract.z); - FragColor += reflect(vRefract.x, vRefract.y); - FragColor += refract(vRefract.xy, vRefract.yz, vRefract.z).y; - FragColor += reflect(vRefract.xy, vRefract.zy).y; -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/separate-combined-fake-overload.sm30.frag b/third_party/spirv-cross/shaders-hlsl/frag/separate-combined-fake-overload.sm30.frag deleted file mode 100644 index 22d18a26a4..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/separate-combined-fake-overload.sm30.frag +++ /dev/null @@ -1,21 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; -layout(binding = 0) uniform sampler2D uSamp; -layout(binding = 1) uniform texture2D uT; -layout(binding = 2) uniform sampler uS; - -vec4 samp(sampler2D uSamp) -{ - return texture(uSamp, vec2(0.5)); -} - -vec4 samp(texture2D T, sampler S) -{ - return texture(sampler2D(T, S), vec2(0.5)); -} - -void main() -{ - FragColor = samp(uSamp) + samp(uT, uS); -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/spec-constant-block-size.frag b/third_party/spirv-cross/shaders-hlsl/frag/spec-constant-block-size.frag deleted file mode 100644 index 8d2b1f326f..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/spec-constant-block-size.frag +++ /dev/null @@ -1,17 +0,0 @@ -#version 310 es -precision mediump float; - -layout(constant_id = 10) const int Value = 2; -layout(binding = 0) uniform SpecConstArray -{ - vec4 samples[Value]; -}; - -layout(location = 0) flat in int Index; -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = samples[Index]; -} - diff --git a/third_party/spirv-cross/shaders-hlsl/frag/spec-constant-ternary.frag b/third_party/spirv-cross/shaders-hlsl/frag/spec-constant-ternary.frag deleted file mode 100644 index 78dccbf044..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/spec-constant-ternary.frag +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 -layout(location = 0) out float FragColor; -layout(constant_id = 0) const uint s = 10u; -const uint f = s > 20u ? 30u : 50u; - -void main() -{ - FragColor = float(f); -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/switch-unsigned-case.frag b/third_party/spirv-cross/shaders-hlsl/frag/switch-unsigned-case.frag deleted file mode 100644 index d8aee43a6c..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/switch-unsigned-case.frag +++ /dev/null @@ -1,26 +0,0 @@ -#version 310 es -precision mediump float; - -#define ENUM_0 0u -#define ENUM_1 1u - -layout(set = 0, binding = 0) uniform Buff -{ - uint TestVal; -}; - -layout(location = 0) out vec4 fsout_Color; - -void main() -{ - fsout_Color = vec4(1.0); - switch (TestVal) - { - case ENUM_0: - fsout_Color = vec4(0.1); - break; - case ENUM_1: - fsout_Color = vec4(0.2); - break; - } -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/swizzle-scalar.frag b/third_party/spirv-cross/shaders-hlsl/frag/swizzle-scalar.frag deleted file mode 100644 index c27524f7a6..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/swizzle-scalar.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 - -layout(location = 0) flat in float vFloat; -layout(location = 1) flat in int vInt; -layout(location = 0) out vec4 Float; -layout(location = 1) out ivec4 Int; -layout(location = 2) out vec4 Float2; -layout(location = 3) out ivec4 Int2; - -void main() -{ - Float = vec4(vFloat) * 2.0; - Int = ivec4(vInt) * 2; - Float2 = vec4(10.0); - Int2 = ivec4(10); -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/tex-sampling-ms.frag b/third_party/spirv-cross/shaders-hlsl/frag/tex-sampling-ms.frag deleted file mode 100644 index 7badbb1a35..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/tex-sampling-ms.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; -layout(binding = 0) uniform sampler2DMS uTex; - -void main() -{ - FragColor = - texelFetch(uTex, ivec2(gl_FragCoord.xy), 0); - FragColor += - texelFetch(uTex, ivec2(gl_FragCoord.xy), 1); - FragColor += - texelFetch(uTex, ivec2(gl_FragCoord.xy), 2); - FragColor += - texelFetch(uTex, ivec2(gl_FragCoord.xy), 3); -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/tex-sampling.frag b/third_party/spirv-cross/shaders-hlsl/frag/tex-sampling.frag deleted file mode 100644 index 762c60ac6e..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/tex-sampling.frag +++ /dev/null @@ -1,81 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler1D tex1d; -layout(binding = 1) uniform sampler2D tex2d; -layout(binding = 2) uniform sampler3D tex3d; -layout(binding = 3) uniform samplerCube texCube; - -layout(binding = 4) uniform sampler1DShadow tex1dShadow; -layout(binding = 5) uniform sampler2DShadow tex2dShadow; -layout(binding = 6) uniform samplerCubeShadow texCubeShadow; - -layout(binding = 7) uniform sampler1DArray tex1dArray; -layout(binding = 8) uniform sampler2DArray tex2dArray; -layout(binding = 9) uniform samplerCubeArray texCubeArray; - -layout(binding = 10) uniform samplerShadow samplerDepth; -layout(binding = 11) uniform sampler samplerNonDepth; -layout(binding = 12) uniform texture2D separateTex2d; -layout(binding = 13) uniform texture2D separateTex2dDepth; - -layout(location = 0) in float texCoord1d; -layout(location = 1) in vec2 texCoord2d; -layout(location = 2) in vec3 texCoord3d; -layout(location = 3) in vec4 texCoord4d; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - vec4 texcolor = texture(tex1d, texCoord1d); - texcolor += textureOffset(tex1d, texCoord1d, 1); - texcolor += textureLod(tex1d, texCoord1d, 2); - texcolor += textureGrad(tex1d, texCoord1d, 1.0, 2.0); - texcolor += textureProj(tex1d, vec2(texCoord1d, 2.0)); - texcolor += texture(tex1d, texCoord1d, 1.0); - - texcolor += texture(tex2d, texCoord2d); - texcolor += textureOffset(tex2d, texCoord2d, ivec2(1, 2)); - texcolor += textureLod(tex2d, texCoord2d, 2); - texcolor += textureGrad(tex2d, texCoord2d, vec2(1.0, 2.0), vec2(3.0, 4.0)); - texcolor += textureProj(tex2d, vec3(texCoord2d, 2.0)); - texcolor += texture(tex2d, texCoord2d, 1.0); - - texcolor += texture(tex3d, texCoord3d); - texcolor += textureOffset(tex3d, texCoord3d, ivec3(1, 2, 3)); - texcolor += textureLod(tex3d, texCoord3d, 2); - texcolor += textureGrad(tex3d, texCoord3d, vec3(1.0, 2.0, 3.0), vec3(4.0, 5.0, 6.0)); - texcolor += textureProj(tex3d, vec4(texCoord3d, 2.0)); - texcolor += texture(tex3d, texCoord3d, 1.0); - - texcolor += texture(texCube, texCoord3d); - texcolor += textureLod(texCube, texCoord3d, 2); - texcolor += texture(texCube, texCoord3d, 1.0); - - texcolor.a += texture(tex1dShadow, vec3(texCoord1d, 0.0, 0.0)); - texcolor.a += texture(tex2dShadow, vec3(texCoord2d, 0.0)); - texcolor.a += texture(texCubeShadow, vec4(texCoord3d, 0.0)); - - texcolor += texture(tex1dArray, texCoord2d); - texcolor += texture(tex2dArray, texCoord3d); - texcolor += texture(texCubeArray, texCoord4d); - - texcolor += textureGather(tex2d, texCoord2d); - texcolor += textureGather(tex2d, texCoord2d, 0); - texcolor += textureGather(tex2d, texCoord2d, 1); - texcolor += textureGather(tex2d, texCoord2d, 2); - texcolor += textureGather(tex2d, texCoord2d, 3); - - texcolor += textureGatherOffset(tex2d, texCoord2d, ivec2(1, 1)); - texcolor += textureGatherOffset(tex2d, texCoord2d, ivec2(1, 1), 0); - texcolor += textureGatherOffset(tex2d, texCoord2d, ivec2(1, 1), 1); - texcolor += textureGatherOffset(tex2d, texCoord2d, ivec2(1, 1), 2); - texcolor += textureGatherOffset(tex2d, texCoord2d, ivec2(1, 1), 3); - - texcolor += texelFetch(tex2d, ivec2(1, 2), 0); - - texcolor += texture(sampler2D(separateTex2d, samplerNonDepth), texCoord2d); - texcolor.a += texture(sampler2DShadow(separateTex2dDepth, samplerDepth), texCoord3d); - - FragColor = texcolor; -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/texel-fetch-offset.frag b/third_party/spirv-cross/shaders-hlsl/frag/texel-fetch-offset.frag deleted file mode 100644 index e98748b8bc..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/texel-fetch-offset.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 310 es -precision mediump float; -layout(location = 0) out vec4 FragColor; -layout(binding = 0) uniform sampler2D uTexture; - -void main() -{ - FragColor = texelFetchOffset(uTexture, ivec2(gl_FragCoord.xy), 0, ivec2(1, 1)); - FragColor += texelFetchOffset(uTexture, ivec2(gl_FragCoord.xy), 0, ivec2(-1, 1)); -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/texture-proj-shadow.frag b/third_party/spirv-cross/shaders-hlsl/frag/texture-proj-shadow.frag deleted file mode 100644 index 0c4cf8f5a8..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/texture-proj-shadow.frag +++ /dev/null @@ -1,21 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler1DShadow uShadow1D; -layout(binding = 1) uniform sampler2DShadow uShadow2D; -layout(binding = 2) uniform sampler1D uSampler1D; -layout(binding = 3) uniform sampler2D uSampler2D; -layout(binding = 4) uniform sampler3D uSampler3D; - -layout(location = 0) out float FragColor; -layout(location = 0) in vec3 vClip3; -layout(location = 1) in vec4 vClip4; -layout(location = 2) in vec2 vClip2; - -void main() -{ - FragColor = textureProj(uShadow1D, vClip4); - FragColor = textureProj(uShadow2D, vClip4); - FragColor = textureProj(uSampler1D, vClip2).x; - FragColor = textureProj(uSampler2D, vClip3).x; - FragColor = textureProj(uSampler3D, vClip4).x; -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/texture-size-combined-image-sampler.frag b/third_party/spirv-cross/shaders-hlsl/frag/texture-size-combined-image-sampler.frag deleted file mode 100644 index 9488059595..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/texture-size-combined-image-sampler.frag +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 -layout(set = 0, binding = 0) uniform texture2D uTex; -layout(set = 0, binding = 1) uniform sampler uSampler; -layout(location = 0) out ivec2 FooOut; - -void main() -{ - FooOut = textureSize(sampler2D(uTex, uSampler), 0); -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/unary-enclose.frag b/third_party/spirv-cross/shaders-hlsl/frag/unary-enclose.frag deleted file mode 100644 index ea502e1de8..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/unary-enclose.frag +++ /dev/null @@ -1,15 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 vIn; -layout(location = 1) flat in ivec4 vIn1; - -void main() -{ - FragColor = +(-(-vIn)); - ivec4 a = ~(~vIn1); - - bool b = false; - b = !!b; -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/unorm-snorm-packing.frag b/third_party/spirv-cross/shaders-hlsl/frag/unorm-snorm-packing.frag deleted file mode 100644 index c0a01aaf8b..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/unorm-snorm-packing.frag +++ /dev/null @@ -1,24 +0,0 @@ -#version 450 - -layout(location = 0) flat in uint SNORM8; -layout(location = 1) flat in uint UNORM8; -layout(location = 2) flat in uint SNORM16; -layout(location = 3) flat in uint UNORM16; -layout(location = 4) flat in vec4 FP32; -layout(location = 0) out vec4 FP32Out; -layout(location = 1) out uint UNORM8Out; -layout(location = 2) out uint SNORM8Out; -layout(location = 3) out uint UNORM16Out; -layout(location = 4) out uint SNORM16Out; - -void main() -{ - FP32Out = unpackUnorm4x8(UNORM8); - FP32Out = unpackSnorm4x8(SNORM8); - FP32Out.xy = unpackUnorm2x16(UNORM16); - FP32Out.xy = unpackSnorm2x16(SNORM16); - UNORM8Out = packUnorm4x8(FP32); - SNORM8Out = packSnorm4x8(FP32); - UNORM16Out = packUnorm2x16(FP32.xy); - SNORM16Out = packSnorm2x16(FP32.zw); -} diff --git a/third_party/spirv-cross/shaders-hlsl/frag/various-glsl-ops.frag b/third_party/spirv-cross/shaders-hlsl/frag/various-glsl-ops.frag deleted file mode 100644 index 0d4af80a6e..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/frag/various-glsl-ops.frag +++ /dev/null @@ -1,17 +0,0 @@ -#version 450 - -layout(location = 0) in vec2 interpolant; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - vec4 color = vec4(0.0, 0.0, 0.0, interpolateAtOffset(interpolant, vec2(0.1, 0.1))); - - // glslang's HLSL parser currently fails here - //color += vec4(0.0, 0.0, 0.0, interpolateAtSample(interpolant, gl_SampleID)); - //color += vec4(0.0, 0.0, 0.0, interpolateAtCentroid(interpolant)); - - color += vec4(0.0, 0.0, 0.0, dFdxCoarse(interpolant.x)); - FragColor = color; -} diff --git a/third_party/spirv-cross/shaders-hlsl/vert/basic.vert b/third_party/spirv-cross/shaders-hlsl/vert/basic.vert deleted file mode 100644 index f03114feef..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/vert/basic.vert +++ /dev/null @@ -1,15 +0,0 @@ -#version 310 es - -layout(std140) uniform UBO -{ - uniform mat4 uMVP; -}; -layout(location = 0) in vec4 aVertex; -layout(location = 1) in vec3 aNormal; -layout(location = 0) out vec3 vNormal; - -void main() -{ - gl_Position = uMVP * aVertex; - vNormal = aNormal; -} diff --git a/third_party/spirv-cross/shaders-hlsl/vert/clip-cull-distance.vert b/third_party/spirv-cross/shaders-hlsl/vert/clip-cull-distance.vert deleted file mode 100644 index 34f65fc18e..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/vert/clip-cull-distance.vert +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 -out float gl_ClipDistance[2]; -out float gl_CullDistance[1]; - -void main() -{ - gl_Position = vec4(1.0); - gl_ClipDistance[0] = 0.0; - gl_ClipDistance[1] = 0.0; - gl_CullDistance[0] = 4.0; -} diff --git a/third_party/spirv-cross/shaders-hlsl/vert/instancing.vert b/third_party/spirv-cross/shaders-hlsl/vert/instancing.vert deleted file mode 100644 index 0e62ef6b0e..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/vert/instancing.vert +++ /dev/null @@ -1,6 +0,0 @@ -#version 310 es - -void main() -{ - gl_Position = vec4(float(gl_VertexIndex + gl_InstanceIndex)); -} diff --git a/third_party/spirv-cross/shaders-hlsl/vert/invariant.vert b/third_party/spirv-cross/shaders-hlsl/vert/invariant.vert deleted file mode 100644 index 239b985da1..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/vert/invariant.vert +++ /dev/null @@ -1,13 +0,0 @@ -#version 310 es - -invariant gl_Position; -layout(location = 0) invariant out vec4 vColor; -layout(location = 0) in vec4 vInput0; -layout(location = 1) in vec4 vInput1; -layout(location = 2) in vec4 vInput2; - -void main() -{ - gl_Position = vInput0 + vInput1 * vInput2; - vColor = (vInput0 - vInput1) * vInput2; -} diff --git a/third_party/spirv-cross/shaders-hlsl/vert/locations.vert b/third_party/spirv-cross/shaders-hlsl/vert/locations.vert deleted file mode 100644 index df1a44e923..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/vert/locations.vert +++ /dev/null @@ -1,51 +0,0 @@ -#version 310 es -#extension GL_EXT_shader_io_blocks : require - -struct Foo -{ - vec3 a; - vec3 b; - vec3 c; -}; - -// This will lock to input location 2. -layout(location = 2) in vec4 Input2; -// This will lock to input location 4. -layout(location = 4) in vec4 Input4; -// This will pick first available, which is 0. -layout(location = 0) in vec4 Input0; - -// Locks output 0. -layout(location = 0) out float vLocation0; -// Locks output 1. -layout(location = 1) out float vLocation1; -// Picks first available two locations, so, 2 and 3. -layout(location = 2) out float vLocation2[2]; -// Picks first available location, 4. -layout(location = 4) out Foo vLocation4; -// Picks first available location 9. -layout(location = 9) out float vLocation9; - -// Locks location 7 and 8. -layout(location = 7) out VertexOut -{ - vec3 color; - vec3 foo; -} vout; - -void main() -{ - gl_Position = vec4(1.0) + Input2 + Input4 + Input0; - vLocation0 = 0.0; - vLocation1 = 1.0; - vLocation2[0] = 2.0; - vLocation2[1] = 2.0; - Foo foo; - foo.a = vec3(1.0); - foo.b = vec3(1.0); - foo.c = vec3(1.0); - vLocation4 = foo; - vLocation9 = 9.0; - vout.color = vec3(2.0); - vout.foo = vec3(4.0); -} diff --git a/third_party/spirv-cross/shaders-hlsl/vert/matrix-attribute.vert b/third_party/spirv-cross/shaders-hlsl/vert/matrix-attribute.vert deleted file mode 100644 index 8a1393f8d6..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/vert/matrix-attribute.vert +++ /dev/null @@ -1,9 +0,0 @@ -#version 310 es - -layout(location = 0) in vec3 pos; -layout(location = 1) in mat4 m; - -void main() -{ - gl_Position = m * vec4(pos, 1.0); -} diff --git a/third_party/spirv-cross/shaders-hlsl/vert/matrix-output.vert b/third_party/spirv-cross/shaders-hlsl/vert/matrix-output.vert deleted file mode 100644 index 1151d4bd32..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/vert/matrix-output.vert +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 - -layout(location = 0) out mat4 m; - -void main() -{ - gl_Position = vec4(1.0); - m = mat4(1.0); -} diff --git a/third_party/spirv-cross/shaders-hlsl/vert/no-contraction.vert b/third_party/spirv-cross/shaders-hlsl/vert/no-contraction.vert deleted file mode 100644 index 206fbf0de8..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/vert/no-contraction.vert +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 - -layout(location = 0) in vec4 vA; -layout(location = 1) in vec4 vB; -layout(location = 2) in vec4 vC; - -void main() -{ - precise vec4 mul = vA * vB; - precise vec4 add = vA + vB; - precise vec4 sub = vA - vB; - precise vec4 mad = vA * vB + vC; - precise vec4 summed = mul + add + sub + mad; - gl_Position = summed; -} diff --git a/third_party/spirv-cross/shaders-hlsl/vert/no-input.vert b/third_party/spirv-cross/shaders-hlsl/vert/no-input.vert deleted file mode 100644 index 8de8e816a0..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/vert/no-input.vert +++ /dev/null @@ -1,6 +0,0 @@ -#version 310 es - -void main() -{ - gl_Position = vec4(1.0); -} diff --git a/third_party/spirv-cross/shaders-hlsl/vert/point-size-compat.vert b/third_party/spirv-cross/shaders-hlsl/vert/point-size-compat.vert deleted file mode 100644 index ed86c764a6..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/vert/point-size-compat.vert +++ /dev/null @@ -1,7 +0,0 @@ -#version 310 es - -void main() -{ - gl_Position = vec4(1.0); - gl_PointSize = 1.0; -} diff --git a/third_party/spirv-cross/shaders-hlsl/vert/qualifiers.vert b/third_party/spirv-cross/shaders-hlsl/vert/qualifiers.vert deleted file mode 100644 index 080a70915c..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/vert/qualifiers.vert +++ /dev/null @@ -1,27 +0,0 @@ -#version 450 - -layout(location = 0) flat out float vFlat; -layout(location = 1) centroid out float vCentroid; -layout(location = 2) sample out float vSample; -layout(location = 3) noperspective out float vNoperspective; - -layout(location = 4) out Block -{ - flat float vFlat; - centroid float vCentroid; - sample float vSample; - noperspective float vNoperspective; -} vout; - -void main() -{ - gl_Position = vec4(1.0); - vFlat = 0.0; - vCentroid = 1.0; - vSample = 2.0; - vNoperspective = 3.0; - vout.vFlat = 0.0; - vout.vCentroid = 1.0; - vout.vSample = 2.0; - vout.vNoperspective = 3.0; -} diff --git a/third_party/spirv-cross/shaders-hlsl/vert/read-from-row-major-array.vert b/third_party/spirv-cross/shaders-hlsl/vert/read-from-row-major-array.vert deleted file mode 100644 index 792fb8e36c..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/vert/read-from-row-major-array.vert +++ /dev/null @@ -1,20 +0,0 @@ -#version 310 es -layout(location = 0) in highp vec4 a_position; -layout(location = 0) out mediump float v_vtxResult; - -layout(set = 0, binding = 0, std140, row_major) uniform Block -{ - highp mat2x3 var[3][4]; -}; - -mediump float compare_float (highp float a, highp float b) { return abs(a - b) < 0.05 ? 1.0 : 0.0; } -mediump float compare_vec3 (highp vec3 a, highp vec3 b) { return compare_float(a.x, b.x)*compare_float(a.y, b.y)*compare_float(a.z, b.z); } -mediump float compare_mat2x3 (highp mat2x3 a, highp mat2x3 b){ return compare_vec3(a[0], b[0])*compare_vec3(a[1], b[1]); } - -void main (void) -{ - gl_Position = a_position; - mediump float result = 1.0; - result *= compare_mat2x3(var[0][0], mat2x3(2.0, 6.0, -6.0, 0.0, 5.0, 5.0)); - v_vtxResult = result; -} diff --git a/third_party/spirv-cross/shaders-hlsl/vert/return-array.vert b/third_party/spirv-cross/shaders-hlsl/vert/return-array.vert deleted file mode 100644 index 708460114e..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/vert/return-array.vert +++ /dev/null @@ -1,22 +0,0 @@ -#version 310 es - -layout(location = 0) in vec4 vInput0; -layout(location = 1) in vec4 vInput1; - -vec4[2] test() -{ - return vec4[](vec4(10.0), vec4(20.0)); -} - -vec4[2] test2() -{ - vec4 foobar[2]; - foobar[0] = vInput0; - foobar[1] = vInput1; - return foobar; -} - -void main() -{ - gl_Position = test()[0] + test2()[1]; -} diff --git a/third_party/spirv-cross/shaders-hlsl/vert/sampler-buffers.vert b/third_party/spirv-cross/shaders-hlsl/vert/sampler-buffers.vert deleted file mode 100644 index dccbf77849..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/vert/sampler-buffers.vert +++ /dev/null @@ -1,17 +0,0 @@ -#version 450 - -layout(binding = 1) uniform samplerBuffer uFloatSampler; -layout(binding = 2) uniform isamplerBuffer uIntSampler; -layout(binding = 3) uniform usamplerBuffer uUintSampler; - -vec4 sample_from_function(samplerBuffer s0, isamplerBuffer s1, usamplerBuffer s2) -{ - return texelFetch(s0, 20) + - intBitsToFloat(texelFetch(s1, 40)) + - uintBitsToFloat(texelFetch(s2, 60)); -} - -void main() -{ - gl_Position = sample_from_function(uFloatSampler, uIntSampler, uUintSampler); -} diff --git a/third_party/spirv-cross/shaders-hlsl/vert/struct-composite-decl.vert b/third_party/spirv-cross/shaders-hlsl/vert/struct-composite-decl.vert deleted file mode 100644 index c527fdf518..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/vert/struct-composite-decl.vert +++ /dev/null @@ -1,26 +0,0 @@ -#version 310 es - -layout(location = 0) in vec4 a; -layout(location = 1) in vec4 b; -layout(location = 2) in vec4 c; -layout(location = 3) in vec4 d; - -struct VOut -{ - vec4 a; - vec4 b; - vec4 c; - vec4 d; -}; - -layout(location = 0) out VOut vout; - -void emit_result(VOut v) -{ - vout = v; -} - -void main() -{ - emit_result(VOut(a, b, c, d)); -} diff --git a/third_party/spirv-cross/shaders-hlsl/vert/texture_buffer.vert b/third_party/spirv-cross/shaders-hlsl/vert/texture_buffer.vert deleted file mode 100644 index b071e0c966..0000000000 --- a/third_party/spirv-cross/shaders-hlsl/vert/texture_buffer.vert +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 - -layout(binding = 4) uniform samplerBuffer uSamp; -layout(rgba32f, binding = 5) uniform readonly imageBuffer uSampo; - -void main() -{ - gl_Position = texelFetch(uSamp, 10) + imageLoad(uSampo, 100); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/aliased-struct-divergent-member-name.asm.comp b/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/aliased-struct-divergent-member-name.asm.comp deleted file mode 100644 index 87aee2db54..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/aliased-struct-divergent-member-name.asm.comp +++ /dev/null @@ -1,77 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 37 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %T "T" - OpMemberName %T 0 "a" - OpName %v "v" - OpName %T_0 "T" - OpMemberName %T_0 0 "b" - OpName %SSBO1 "SSBO1" - OpMemberName %SSBO1 0 "foo" - OpName %_ "" - OpName %T_1 "T" - OpMemberName %T_1 0 "c" - OpName %SSBO2 "SSBO2" - OpMemberName %SSBO2 0 "bar" - OpName %__0 "" - OpMemberDecorate %T_0 0 Offset 0 - OpDecorate %_runtimearr_T_0 ArrayStride 4 - OpMemberDecorate %SSBO1 0 Offset 0 - OpDecorate %SSBO1 BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - OpMemberDecorate %T_1 0 Offset 0 - OpDecorate %_runtimearr_T_1 ArrayStride 16 - OpMemberDecorate %SSBO2 0 Offset 0 - OpDecorate %SSBO2 BufferBlock - OpDecorate %__0 DescriptorSet 0 - OpDecorate %__0 Binding 1 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %T = OpTypeStruct %float -%_ptr_Function_T = OpTypePointer Function %T - %float_40 = OpConstant %float 40 - %11 = OpConstantComposite %T %float_40 - %T_0 = OpTypeStruct %float -%_runtimearr_T_0 = OpTypeRuntimeArray %T_0 - %SSBO1 = OpTypeStruct %_runtimearr_T_0 -%_ptr_Uniform_SSBO1 = OpTypePointer Uniform %SSBO1 - %_ = OpVariable %_ptr_Uniform_SSBO1 Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %int_10 = OpConstant %int 10 -%_ptr_Uniform_T_0 = OpTypePointer Uniform %T_0 -%_ptr_Uniform_float = OpTypePointer Uniform %float - %T_1 = OpTypeStruct %float -%_runtimearr_T_1 = OpTypeRuntimeArray %T_1 - %SSBO2 = OpTypeStruct %_runtimearr_T_1 -%_ptr_Uniform_SSBO2 = OpTypePointer Uniform %SSBO2 - %__0 = OpVariable %_ptr_Uniform_SSBO2 Uniform - %int_30 = OpConstant %int 30 -%_ptr_Uniform_T_1 = OpTypePointer Uniform %T_1 - %main = OpFunction %void None %3 - %5 = OpLabel - %v = OpVariable %_ptr_Function_T Function - OpStore %v %11 - %20 = OpLoad %T %v - %22 = OpAccessChain %_ptr_Uniform_T_0 %_ %int_0 %int_10 - %23 = OpCompositeExtract %float %20 0 - %25 = OpAccessChain %_ptr_Uniform_float %22 %int_0 - OpStore %25 %23 - %32 = OpLoad %T %v - %34 = OpAccessChain %_ptr_Uniform_T_1 %__0 %int_0 %int_30 - %35 = OpCompositeExtract %float %32 0 - %36 = OpAccessChain %_ptr_Uniform_float %34 %int_0 - OpStore %36 %35 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/arithmetic-conversion-signs.asm.comp b/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/arithmetic-conversion-signs.asm.comp deleted file mode 100644 index 0e1ce235d2..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/arithmetic-conversion-signs.asm.comp +++ /dev/null @@ -1,131 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 76 -; Schema: 0 - OpCapability Shader - OpCapability Int16 - OpCapability StorageBuffer16BitAccess - OpExtension "SPV_KHR_16bit_storage" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpSourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16" - OpName %main "main" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "s32" - OpMemberName %SSBO 1 "u32" - OpMemberName %SSBO 2 "s16" - OpMemberName %SSBO 3 "u16" - OpMemberName %SSBO 4 "f32" - OpName %_ "" - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %SSBO 1 Offset 4 - OpMemberDecorate %SSBO 2 Offset 8 - OpMemberDecorate %SSBO 3 Offset 10 - OpMemberDecorate %SSBO 4 Offset 12 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %uint = OpTypeInt 32 0 - %short = OpTypeInt 16 1 - %ushort = OpTypeInt 16 0 - %float = OpTypeFloat 32 - %SSBO = OpTypeStruct %int %uint %short %ushort %float -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform - %int_2 = OpConstant %int 2 - %int_0 = OpConstant %int 0 -%_ptr_Uniform_int = OpTypePointer Uniform %int -%_ptr_Uniform_short = OpTypePointer Uniform %short - %int_1 = OpConstant %int 1 -%_ptr_Uniform_uint = OpTypePointer Uniform %uint - %int_3 = OpConstant %int 3 -%_ptr_Uniform_ushort = OpTypePointer Uniform %ushort - %int_4 = OpConstant %int 4 -%_ptr_Uniform_float = OpTypePointer Uniform %float - %main = OpFunction %void None %3 - %5 = OpLabel - %ptr_s32 = OpAccessChain %_ptr_Uniform_int %_ %int_0 - %ptr_u32 = OpAccessChain %_ptr_Uniform_uint %_ %int_1 - %ptr_s16 = OpAccessChain %_ptr_Uniform_short %_ %int_2 - %ptr_u16 = OpAccessChain %_ptr_Uniform_ushort %_ %int_3 - %ptr_f32 = OpAccessChain %_ptr_Uniform_float %_ %int_4 - %s32 = OpLoad %int %ptr_s32 - %u32 = OpLoad %uint %ptr_u32 - %s16 = OpLoad %short %ptr_s16 - %u16 = OpLoad %ushort %ptr_u16 - %f32 = OpLoad %float %ptr_f32 - - ; Sign-extend - %s16_to_s32_signed = OpSConvert %int %s16 - OpStore %ptr_s32 %s16_to_s32_signed - %s16_to_u32_signed = OpSConvert %uint %s16 - OpStore %ptr_u32 %s16_to_u32_signed - - %u16_to_s32_signed = OpSConvert %int %u16 - OpStore %ptr_s32 %u16_to_s32_signed - %u16_to_u32_signed = OpSConvert %uint %u16 - OpStore %ptr_u32 %u16_to_u32_signed - - ; Zero-extend - ; Result must be unsigned for OpUConvert. - ;%s16_to_s32_unsigned = OpUConvert %int %s16 - ;OpStore %ptr_s32 %s16_to_s32_unsigned - %s16_to_u32_unsigned = OpUConvert %uint %s16 - OpStore %ptr_u32 %s16_to_u32_unsigned - - ;%u16_to_s32_unsigned = OpUConvert %int %u16 - ;OpStore %ptr_s32 %u16_to_s32_unsigned - %u16_to_u32_unsigned = OpUConvert %uint %u16 - OpStore %ptr_u32 %u16_to_u32_unsigned - - ; Truncate (SConvert == UConvert) - %s32_to_s16_signed = OpSConvert %short %s32 - OpStore %ptr_s16 %s32_to_s16_signed - %s32_to_u16_signed = OpSConvert %ushort %s32 - OpStore %ptr_u16 %s32_to_u16_signed - - %u32_to_s16_signed = OpSConvert %short %u32 - OpStore %ptr_s16 %u32_to_s16_signed - %u32_to_u16_signed = OpSConvert %ushort %u32 - OpStore %ptr_u16 %u32_to_u16_signed - - ;%s32_to_s16_unsigned = OpUConvert %short %s32 - ;OpStore %ptr_s16 %s32_to_s16_unsigned - %s32_to_u16_unsigned = OpUConvert %ushort %s32 - OpStore %ptr_u16 %s32_to_u16_unsigned - - ;%u32_to_s16_unsigned = OpUConvert %short %u32 - ;OpStore %ptr_s16 %u32_to_s16_unsigned - %u32_to_u16_unsigned = OpUConvert %ushort %u32 - OpStore %ptr_u16 %u32_to_u16_unsigned - - ; SToF - %s16_to_f32_signed = OpConvertSToF %float %s16 - OpStore %ptr_f32 %s16_to_f32_signed - %u16_to_f32_signed = OpConvertSToF %float %u16 - OpStore %ptr_f32 %u16_to_f32_signed - %s16_to_f32_unsigned = OpConvertUToF %float %s16 - OpStore %ptr_f32 %s16_to_f32_unsigned - %u16_to_f32_unsigned = OpConvertUToF %float %u16 - OpStore %ptr_f32 %u16_to_f32_unsigned - - ; FToS - %f32_to_s16_signed = OpConvertFToS %short %f32 - OpStore %ptr_s16 %f32_to_s16_signed - %f32_to_u16_signed = OpConvertFToS %ushort %f32 - OpStore %ptr_u16 %f32_to_u16_signed - - ; FToU - %f32_to_u16_unsigned = OpConvertFToU %ushort %f32 - OpStore %ptr_u16 %f32_to_u16_unsigned - ; Result must be unsigned for FToU, so don't bother testing that. - - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/atomic-load-store.asm.comp b/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/atomic-load-store.asm.comp deleted file mode 100644 index 3f2d141a1f..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/atomic-load-store.asm.comp +++ /dev/null @@ -1,48 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 23 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %c "c" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "a" - OpMemberName %SSBO 1 "b" - OpName %_ "" - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %SSBO 1 Offset 4 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 -%_ptr_Function_uint = OpTypePointer Function %uint - %SSBO = OpTypeStruct %uint %uint -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform - %int = OpTypeInt 32 1 - %int_1 = OpConstant %int 1 -%_ptr_Uniform_uint = OpTypePointer Uniform %uint - %int_0 = OpConstant %int 0 - %v3uint = OpTypeVector %uint 3 - %uint_1 = OpConstant %uint 1 -%gl_WorkGroupSize = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1 - %main = OpFunction %void None %3 - %5 = OpLabel - %c = OpVariable %_ptr_Function_uint Function - %15 = OpAccessChain %_ptr_Uniform_uint %_ %int_1 - %16 = OpAtomicLoad %uint %15 %int_1 %int_0 - OpStore %c %16 - %18 = OpLoad %uint %c - %19 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 - OpAtomicStore %19 %int_1 %int_0 %18 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/atomic-result-temporary.asm.comp b/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/atomic-result-temporary.asm.comp deleted file mode 100644 index a323841596..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/atomic-result-temporary.asm.comp +++ /dev/null @@ -1,59 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 35 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "count" - OpMemberName %SSBO 1 "data" - OpName %_ "" - OpName %gl_GlobalInvocationID "gl_GlobalInvocationID" - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %SSBO 1 Offset 4 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 -%_runtimearr_uint = OpTypeRuntimeArray %uint - %SSBO = OpTypeStruct %uint %_runtimearr_uint -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_Uniform_uint = OpTypePointer Uniform %uint - %uint_1 = OpConstant %uint 1 - %uint_0 = OpConstant %uint 0 - %uint_1024 = OpConstant %uint 1024 - %bool = OpTypeBool - %int_1 = OpConstant %int 1 - %v3uint = OpTypeVector %uint 3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input -%_ptr_Input_uint = OpTypePointer Input %uint - %main = OpFunction %void None %3 - %5 = OpLabel - %16 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 - %19 = OpAtomicIAdd %uint %16 %uint_1 %uint_0 %uint_1 - %23 = OpULessThan %bool %19 %uint_1024 - OpSelectionMerge %25 None - OpBranchConditional %23 %24 %25 - %24 = OpLabel - %32 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %33 = OpLoad %uint %32 - %34 = OpAccessChain %_ptr_Uniform_uint %_ %int_1 %19 - OpStore %34 %33 - OpBranch %25 - %25 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/bitcast-fp16-fp32.asm.comp b/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/bitcast-fp16-fp32.asm.comp deleted file mode 100644 index 3651a4de52..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/bitcast-fp16-fp32.asm.comp +++ /dev/null @@ -1,63 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 33 -; Schema: 0 - OpCapability Shader - OpCapability Float16 - OpCapability StorageBuffer16BitAccess - OpExtension "SPV_KHR_16bit_storage" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpSourceExtension "GL_EXT_shader_explicit_arithmetic_types" - OpName %main "main" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "a" - OpMemberName %SSBO 1 "b" - OpMemberName %SSBO 2 "c" - OpMemberName %SSBO 3 "d" - OpName %_ "" - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %SSBO 1 Offset 4 - OpMemberDecorate %SSBO 2 Offset 8 - OpMemberDecorate %SSBO 3 Offset 12 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - %void = OpTypeVoid - %3 = OpTypeFunction %void - %half = OpTypeFloat 16 - %v2half = OpTypeVector %half 2 - %float = OpTypeFloat 32 - %SSBO = OpTypeStruct %v2half %float %float %v2half -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform - %int = OpTypeInt 32 1 - %int_1 = OpConstant %int 1 - %int_0 = OpConstant %int 0 -%_ptr_Uniform_v2half = OpTypePointer Uniform %v2half - %uint = OpTypeInt 32 0 -%_ptr_Uniform_float = OpTypePointer Uniform %float - %int_3 = OpConstant %int 3 - %int_2 = OpConstant %int 2 - %v3uint = OpTypeVector %uint 3 - %uint_1 = OpConstant %uint 1 -%gl_WorkGroupSize = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1 - %main = OpFunction %void None %3 - %5 = OpLabel - %16 = OpAccessChain %_ptr_Uniform_v2half %_ %int_0 - %17 = OpLoad %v2half %16 - %20 = OpBitcast %float %17 - %22 = OpAccessChain %_ptr_Uniform_float %_ %int_1 - OpStore %22 %20 - %25 = OpAccessChain %_ptr_Uniform_float %_ %int_2 - %26 = OpLoad %float %25 - %28 = OpBitcast %v2half %26 - %29 = OpAccessChain %_ptr_Uniform_v2half %_ %int_3 - OpStore %29 %28 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/bitfield-signed-operations.asm.comp b/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/bitfield-signed-operations.asm.comp deleted file mode 100644 index 435fa32221..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/bitfield-signed-operations.asm.comp +++ /dev/null @@ -1,97 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 26 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "ints" - OpMemberName %SSBO 1 "uints" - OpName %_ "" - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %SSBO 1 Offset 16 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %v4int = OpTypeVector %int 4 - %uint = OpTypeInt 32 0 - %v4uint = OpTypeVector %uint 4 - - %int_1 = OpConstant %int 1 - %uint_11 = OpConstant %uint 11 - - %SSBO = OpTypeStruct %v4int %v4uint -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform - %int_0 = OpConstant %int 0 -%_ptr_Uniform_v4int = OpTypePointer Uniform %v4int -%_ptr_Uniform_v4uint = OpTypePointer Uniform %v4uint - %main = OpFunction %void None %3 - %5 = OpLabel - %ints_ptr = OpAccessChain %_ptr_Uniform_v4int %_ %int_0 - %uints_ptr = OpAccessChain %_ptr_Uniform_v4uint %_ %int_1 - %ints = OpLoad %v4int %ints_ptr - %uints = OpLoad %v4uint %uints_ptr - - %ints_alt = OpVectorShuffle %v4int %ints %ints 3 2 1 0 - %uints_alt = OpVectorShuffle %v4uint %uints %uints 3 2 1 0 - - %int_to_int_popcount = OpBitCount %v4int %ints - %int_to_uint_popcount = OpBitCount %v4uint %ints - %uint_to_int_popcount = OpBitCount %v4int %uints - %uint_to_uint_popcount = OpBitCount %v4uint %uints - - ; BitReverse must have matching types w.r.t. sign, yay. - %int_to_int_reverse = OpBitReverse %v4int %ints - ;%int_to_uint_reverse = OpBitReverse %v4uint %ints - ;%uint_to_int_reverse = OpBitReverse %v4int %uints - %uint_to_uint_reverse = OpBitReverse %v4uint %uints - - ; Base and Result must match. - %int_to_int_sbit = OpBitFieldSExtract %v4int %ints %int_1 %uint_11 - ;%int_to_uint_sbit = OpBitFieldSExtract %v4uint %ints %offset %count - ;%uint_to_int_sbit = OpBitFieldSExtract %v4int %uints %offset %count - %uint_to_uint_sbit = OpBitFieldSExtract %v4uint %uints %uint_11 %int_1 - - ; Base and Result must match. - %int_to_int_ubit = OpBitFieldUExtract %v4int %ints %int_1 %uint_11 - ;%int_to_uint_ubit = OpBitFieldUExtract %v4uint %ints %offset %count - ;%uint_to_int_ubit = OpBitFieldUExtract %v4int %uints %offset %count - %uint_to_uint_ubit = OpBitFieldUExtract %v4uint %uints %uint_11 %int_1 - - %int_to_int_insert = OpBitFieldInsert %v4int %ints %ints_alt %int_1 %uint_11 - %uint_to_uint_insert = OpBitFieldInsert %v4uint %uints %uints_alt %uint_11 %int_1 - - OpStore %ints_ptr %int_to_int_popcount - OpStore %uints_ptr %int_to_uint_popcount - OpStore %ints_ptr %uint_to_int_popcount - OpStore %uints_ptr %uint_to_uint_popcount - - OpStore %ints_ptr %int_to_int_reverse - ;OpStore %uints_ptr %int_to_uint_reverse - ;OpStore %ints_ptr %uint_to_int_reverse - OpStore %uints_ptr %uint_to_uint_reverse - - OpStore %ints_ptr %int_to_int_sbit - ;OpStore %uints_ptr %int_to_uint_sbit - ;OpStore %ints_ptr %uint_to_int_sbit - OpStore %uints_ptr %uint_to_uint_sbit - - OpStore %ints_ptr %int_to_int_ubit - ;OpStore %uints_ptr %int_to_uint_ubit - ;OpStore %ints_ptr %uint_to_int_ubit - OpStore %uints_ptr %uint_to_uint_ubit - - OpStore %ints_ptr %int_to_int_insert - OpStore %uints_ptr %uint_to_uint_insert - - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/bitscan.asm.comp b/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/bitscan.asm.comp deleted file mode 100644 index e3b785cd52..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/bitscan.asm.comp +++ /dev/null @@ -1,72 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 35 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "u" - OpMemberName %SSBO 1 "i" - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %SSBO 1 Offset 16 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %ivec4 = OpTypeVector %int 4 - %uint = OpTypeInt 32 0 - %uvec4 = OpTypeVector %uint 4 - %SSBO = OpTypeStruct %uvec4 %ivec4 -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform - %int_0 = OpConstant %int 0 -%_ptr_Uniform_uvec4 = OpTypePointer Uniform %uvec4 - %int_1 = OpConstant %int 1 -%_ptr_Uniform_ivec4 = OpTypePointer Uniform %ivec4 - %main = OpFunction %void None %3 - %5 = OpLabel - %uptr = OpAccessChain %_ptr_Uniform_uvec4 %_ %int_0 - %iptr = OpAccessChain %_ptr_Uniform_ivec4 %_ %int_1 - %uvalue = OpLoad %uvec4 %uptr - %ivalue = OpLoad %ivec4 %iptr - - %lsb_uint_to_uint = OpExtInst %uvec4 %1 FindILsb %uvalue - %lsb_uint_to_int = OpExtInst %ivec4 %1 FindILsb %uvalue - %lsb_int_to_uint = OpExtInst %uvec4 %1 FindILsb %ivalue - %lsb_int_to_int = OpExtInst %ivec4 %1 FindILsb %ivalue - - %umsb_uint_to_uint = OpExtInst %uvec4 %1 FindUMsb %uvalue - %umsb_uint_to_int = OpExtInst %ivec4 %1 FindUMsb %uvalue - %umsb_int_to_uint = OpExtInst %uvec4 %1 FindUMsb %ivalue - %umsb_int_to_int = OpExtInst %ivec4 %1 FindUMsb %ivalue - - %smsb_uint_to_uint = OpExtInst %uvec4 %1 FindSMsb %uvalue - %smsb_uint_to_int = OpExtInst %ivec4 %1 FindSMsb %uvalue - %smsb_int_to_uint = OpExtInst %uvec4 %1 FindSMsb %ivalue - %smsb_int_to_int = OpExtInst %ivec4 %1 FindSMsb %ivalue - - OpStore %uptr %lsb_uint_to_uint - OpStore %iptr %lsb_uint_to_int - OpStore %uptr %lsb_int_to_uint - OpStore %iptr %lsb_int_to_int - - OpStore %uptr %umsb_uint_to_uint - OpStore %iptr %umsb_uint_to_int - OpStore %uptr %umsb_int_to_uint - OpStore %iptr %umsb_int_to_int - - OpStore %uptr %smsb_uint_to_uint - OpStore %iptr %smsb_uint_to_int - OpStore %uptr %smsb_int_to_uint - OpStore %iptr %smsb_int_to_int - - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/composite-construct-buffer-struct.asm.comp b/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/composite-construct-buffer-struct.asm.comp deleted file mode 100644 index c7b76a8c06..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/composite-construct-buffer-struct.asm.comp +++ /dev/null @@ -1,54 +0,0 @@ - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpName %Block "Block" - OpName %SSBO "SSBO" - OpName %SSBO_Var "ssbo" - OpName %UBO_Var "ubo" - OpDecorate %SSBO_Var Binding 0 - OpDecorate %SSBO_Var DescriptorSet 0 - OpDecorate %UBO_Var Binding 1 - OpDecorate %UBO_Var DescriptorSet 0 - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %Block 0 Offset 0 - OpMemberDecorate %Block 1 Offset 16 - OpDecorate %BlockArray ArrayStride 32 - OpDecorate %arr_uvec2_2 ArrayStride 8 - OpDecorate %SSBO Block - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 - %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 - %uint_3 = OpConstant %uint 3 - %uvec2 = OpTypeVector %uint 2 - %arr_uvec2_2 = OpTypeArray %uvec2 %uint_2 - %arr_uvec2_2_ptr = OpTypePointer StorageBuffer %arr_uvec2_2 - %arr_uvec2_2_ptr_const = OpTypePointer Uniform %arr_uvec2_2 - %arr_uvec2_2_ptr_func = OpTypePointer Function %arr_uvec2_2 - %arr_uvec2_2_ptr_workgroup = OpTypePointer Workgroup %arr_uvec2_2 - %wg = OpVariable %arr_uvec2_2_ptr_workgroup Workgroup - %Block = OpTypeStruct %arr_uvec2_2 %arr_uvec2_2 - %Block_ptr = OpTypePointer StorageBuffer %Block -%BlockArray = OpTypeArray %Block %uint_3 -%SSBO = OpTypeStruct %BlockArray -%SSBO_Ptr = OpTypePointer StorageBuffer %SSBO -%SSBO_Var = OpVariable %SSBO_Ptr StorageBuffer -%UBO_Ptr = OpTypePointer Uniform %SSBO -%UBO_Var = OpVariable %UBO_Ptr Uniform -%void = OpTypeVoid -%func_type = OpTypeFunction %void - - %main = OpFunction %void None %func_type - %25 = OpLabel - %func = OpVariable %arr_uvec2_2_ptr_func Function - - ; Copy device array to temporary. - %ptr = OpAccessChain %Block_ptr %SSBO_Var %uint_0 %uint_0 - %ptr_arr_1 = OpAccessChain %arr_uvec2_2_ptr %SSBO_Var %uint_0 %uint_0 %uint_1 - %loaded_array = OpLoad %arr_uvec2_2 %ptr_arr_1 - %constructed = OpCompositeConstruct %Block %loaded_array %loaded_array - OpStore %ptr %constructed - - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/constant-composite-undef.asm.comp b/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/constant-composite-undef.asm.comp deleted file mode 100644 index 8997d0aaf9..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/constant-composite-undef.asm.comp +++ /dev/null @@ -1,40 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Khronos SPIR-V Tools Assembler; 0 -; Bound: 20 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %Block "Block" - OpMemberName %Block 0 "f" - OpName %block "block" - OpMemberDecorate %Block 0 Offset 0 - OpDecorate %Block BufferBlock - OpDecorate %block DescriptorSet 0 - OpDecorate %block Binding 0 - %void = OpTypeVoid - %6 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %Block = OpTypeStruct %v4float -%_ptr_Uniform_Block = OpTypePointer Uniform %Block - %block = OpVariable %_ptr_Uniform_Block Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%float_0_100000001 = OpConstant %float 0.100000001 -%float_0_200000003 = OpConstant %float 0.200000003 -%float_0_300000012 = OpConstant %float 0.300000012 - %15 = OpUndef %float - %16 = OpConstantComposite %v4float %float_0_100000001 %float_0_200000003 %float_0_300000012 %15 -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float - %main = OpFunction %void None %6 - %18 = OpLabel - %19 = OpAccessChain %_ptr_Uniform_v4float %block %int_0 - OpStore %19 %16 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/copy-logical-2.spv14.asm.comp b/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/copy-logical-2.spv14.asm.comp deleted file mode 100644 index 6a7065a6fb..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/copy-logical-2.spv14.asm.comp +++ /dev/null @@ -1,81 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 48 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %ssbo - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %B1 "B1" - OpName %A "A" - OpName %C "C" - OpName %B2 "B2" - OpMemberName %A 0 "a" - OpMemberName %A 1 "b1" - OpMemberName %A 2 "b1_array" - OpMemberName %C 0 "c" - OpMemberName %C 1 "b2" - OpMemberName %C 2 "b2_array" - OpMemberName %B1 0 "elem1" - OpMemberName %B2 0 "elem2" - OpMemberName %SSBO 0 "a_block" - OpMemberName %SSBO 1 "c_block" - OpDecorate %B1Array ArrayStride 16 - OpDecorate %B2Array ArrayStride 16 - OpMemberDecorate %B1 0 Offset 0 - OpMemberDecorate %A 0 Offset 0 - OpMemberDecorate %A 1 Offset 16 - OpMemberDecorate %A 2 Offset 32 - OpMemberDecorate %A 3 Offset 96 - OpMemberDecorate %B2 0 Offset 0 - OpMemberDecorate %C 0 Offset 0 - OpMemberDecorate %C 1 Offset 16 - OpMemberDecorate %C 2 Offset 32 - OpMemberDecorate %C 3 Offset 96 - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %SSBO 1 Offset 112 - OpMemberDecorate %A0 0 Offset 0 - OpMemberDecorate %C0 0 Offset 0 - OpMemberDecorate %A0 0 RowMajor - OpMemberDecorate %A0 0 MatrixStride 8 - OpMemberDecorate %C0 0 ColMajor - OpMemberDecorate %C0 0 MatrixStride 16 - OpDecorate %SSBO Block - OpDecorate %ssbo DescriptorSet 0 - OpDecorate %ssbo Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %uint = OpTypeInt 32 0 - %uint_4 = OpConstant %uint 4 - %v4float = OpTypeVector %float 4 - %v2float = OpTypeVector %float 2 - %m2float = OpTypeMatrix %v2float 2 - %A0 = OpTypeStruct %m2float - %C0 = OpTypeStruct %m2float - %B2 = OpTypeStruct %v4float - %B2Array = OpTypeArray %B2 %uint_4 - %C = OpTypeStruct %v4float %B2 %B2Array %C0 - %B1 = OpTypeStruct %v4float - %B1Array = OpTypeArray %B1 %uint_4 - %A = OpTypeStruct %v4float %B1 %B1Array %A0 - %SSBO = OpTypeStruct %A %C -%_ptr_Uniform_SSBO = OpTypePointer StorageBuffer %SSBO - %ssbo = OpVariable %_ptr_Uniform_SSBO StorageBuffer - %int = OpTypeInt 32 1 - %int_1 = OpConstant %int 1 -%_ptr_Uniform_C = OpTypePointer StorageBuffer %C - %int_0 = OpConstant %int 0 -%_ptr_Uniform_A = OpTypePointer StorageBuffer %A - %main = OpFunction %void None %3 - %5 = OpLabel - %22 = OpAccessChain %_ptr_Uniform_C %ssbo %int_1 - %39 = OpAccessChain %_ptr_Uniform_A %ssbo %int_0 - %23 = OpLoad %C %22 - %24 = OpCopyLogical %A %23 - OpStore %39 %24 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/copy-logical.spv14.asm.comp b/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/copy-logical.spv14.asm.comp deleted file mode 100644 index 20fa0b099b..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/copy-logical.spv14.asm.comp +++ /dev/null @@ -1,69 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 48 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %ssbo - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %B1 "B1" - OpName %A "A" - OpName %C "C" - OpName %B2 "B2" - OpMemberName %A 0 "a" - OpMemberName %A 1 "b1" - OpMemberName %A 2 "b1_array" - OpMemberName %C 0 "c" - OpMemberName %C 1 "b2" - OpMemberName %C 2 "b2_array" - OpMemberName %B1 0 "elem1" - OpMemberName %B2 0 "elem2" - OpMemberName %SSBO 0 "a_block" - OpMemberName %SSBO 1 "c_block" - OpDecorate %B1Array ArrayStride 16 - OpDecorate %B2Array ArrayStride 16 - OpMemberDecorate %B1 0 Offset 0 - OpMemberDecorate %A 0 Offset 0 - OpMemberDecorate %A 1 Offset 16 - OpMemberDecorate %A 2 Offset 32 - OpMemberDecorate %B2 0 Offset 0 - OpMemberDecorate %C 0 Offset 0 - OpMemberDecorate %C 1 Offset 16 - OpMemberDecorate %C 2 Offset 32 - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %SSBO 1 Offset 96 - OpDecorate %SSBO Block - OpDecorate %ssbo DescriptorSet 0 - OpDecorate %ssbo Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %uint = OpTypeInt 32 0 - %uint_4 = OpConstant %uint 4 - %v4float = OpTypeVector %float 4 - %B2 = OpTypeStruct %v4float - %B2Array = OpTypeArray %B2 %uint_4 - %C = OpTypeStruct %v4float %B2 %B2Array - %B1 = OpTypeStruct %v4float - %B1Array = OpTypeArray %B1 %uint_4 - %A = OpTypeStruct %v4float %B1 %B1Array - %SSBO = OpTypeStruct %A %C -%_ptr_Uniform_SSBO = OpTypePointer StorageBuffer %SSBO - %ssbo = OpVariable %_ptr_Uniform_SSBO StorageBuffer - %int = OpTypeInt 32 1 - %int_1 = OpConstant %int 1 -%_ptr_Uniform_C = OpTypePointer StorageBuffer %C - %int_0 = OpConstant %int 0 -%_ptr_Uniform_A = OpTypePointer StorageBuffer %A - %main = OpFunction %void None %3 - %5 = OpLabel - %22 = OpAccessChain %_ptr_Uniform_C %ssbo %int_1 - %39 = OpAccessChain %_ptr_Uniform_A %ssbo %int_0 - %23 = OpLoad %C %22 - %24 = OpCopyLogical %A %23 - OpStore %39 %24 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/device-array-load-temporary.asm.comp b/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/device-array-load-temporary.asm.comp deleted file mode 100644 index d59aad3cef..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/device-array-load-temporary.asm.comp +++ /dev/null @@ -1,53 +0,0 @@ - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpName %Block "Block" - OpName %SSBO "SSBO" - OpName %SSBO_Var "ssbo" - OpName %UBO_Var "ubo" - OpDecorate %SSBO_Var Binding 0 - OpDecorate %SSBO_Var DescriptorSet 0 - OpDecorate %UBO_Var Binding 1 - OpDecorate %UBO_Var DescriptorSet 0 - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %Block 0 Offset 0 - OpMemberDecorate %Block 1 Offset 16 - OpDecorate %BlockArray ArrayStride 32 - OpDecorate %arr_uvec2_2 ArrayStride 8 - OpDecorate %SSBO Block - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 - %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 - %uint_3 = OpConstant %uint 3 - %uvec2 = OpTypeVector %uint 2 - %arr_uvec2_2 = OpTypeArray %uvec2 %uint_2 - %arr_uvec2_2_ptr = OpTypePointer StorageBuffer %arr_uvec2_2 - %arr_uvec2_2_ptr_const = OpTypePointer Uniform %arr_uvec2_2 - %arr_uvec2_2_ptr_func = OpTypePointer Function %arr_uvec2_2 - %arr_uvec2_2_ptr_workgroup = OpTypePointer Workgroup %arr_uvec2_2 - %wg = OpVariable %arr_uvec2_2_ptr_workgroup Workgroup - %Block = OpTypeStruct %arr_uvec2_2 %arr_uvec2_2 -%BlockArray = OpTypeArray %Block %uint_3 -%SSBO = OpTypeStruct %BlockArray -%SSBO_Ptr = OpTypePointer StorageBuffer %SSBO -%SSBO_Var = OpVariable %SSBO_Ptr StorageBuffer -%UBO_Ptr = OpTypePointer Uniform %SSBO -%UBO_Var = OpVariable %UBO_Ptr Uniform -%void = OpTypeVoid -%func_type = OpTypeFunction %void - - %main = OpFunction %void None %func_type - %25 = OpLabel - %func = OpVariable %arr_uvec2_2_ptr_func Function - - ; Copy device array to temporary. - %ptr_arr_0 = OpAccessChain %arr_uvec2_2_ptr %SSBO_Var %uint_0 %uint_0 %uint_0 - %ptr_arr_1 = OpAccessChain %arr_uvec2_2_ptr %SSBO_Var %uint_0 %uint_0 %uint_1 - %loaded_array = OpLoad %arr_uvec2_2 %ptr_arr_1 - OpStore %ptr_arr_0 %loaded_array - OpStore %ptr_arr_0 %loaded_array - - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/device-array-load-temporary.force-native-array.asm.comp b/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/device-array-load-temporary.force-native-array.asm.comp deleted file mode 100644 index d59aad3cef..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/device-array-load-temporary.force-native-array.asm.comp +++ /dev/null @@ -1,53 +0,0 @@ - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpName %Block "Block" - OpName %SSBO "SSBO" - OpName %SSBO_Var "ssbo" - OpName %UBO_Var "ubo" - OpDecorate %SSBO_Var Binding 0 - OpDecorate %SSBO_Var DescriptorSet 0 - OpDecorate %UBO_Var Binding 1 - OpDecorate %UBO_Var DescriptorSet 0 - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %Block 0 Offset 0 - OpMemberDecorate %Block 1 Offset 16 - OpDecorate %BlockArray ArrayStride 32 - OpDecorate %arr_uvec2_2 ArrayStride 8 - OpDecorate %SSBO Block - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 - %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 - %uint_3 = OpConstant %uint 3 - %uvec2 = OpTypeVector %uint 2 - %arr_uvec2_2 = OpTypeArray %uvec2 %uint_2 - %arr_uvec2_2_ptr = OpTypePointer StorageBuffer %arr_uvec2_2 - %arr_uvec2_2_ptr_const = OpTypePointer Uniform %arr_uvec2_2 - %arr_uvec2_2_ptr_func = OpTypePointer Function %arr_uvec2_2 - %arr_uvec2_2_ptr_workgroup = OpTypePointer Workgroup %arr_uvec2_2 - %wg = OpVariable %arr_uvec2_2_ptr_workgroup Workgroup - %Block = OpTypeStruct %arr_uvec2_2 %arr_uvec2_2 -%BlockArray = OpTypeArray %Block %uint_3 -%SSBO = OpTypeStruct %BlockArray -%SSBO_Ptr = OpTypePointer StorageBuffer %SSBO -%SSBO_Var = OpVariable %SSBO_Ptr StorageBuffer -%UBO_Ptr = OpTypePointer Uniform %SSBO -%UBO_Var = OpVariable %UBO_Ptr Uniform -%void = OpTypeVoid -%func_type = OpTypeFunction %void - - %main = OpFunction %void None %func_type - %25 = OpLabel - %func = OpVariable %arr_uvec2_2_ptr_func Function - - ; Copy device array to temporary. - %ptr_arr_0 = OpAccessChain %arr_uvec2_2_ptr %SSBO_Var %uint_0 %uint_0 %uint_0 - %ptr_arr_1 = OpAccessChain %arr_uvec2_2_ptr %SSBO_Var %uint_0 %uint_0 %uint_1 - %loaded_array = OpLoad %arr_uvec2_2 %ptr_arr_1 - OpStore %ptr_arr_0 %loaded_array - OpStore %ptr_arr_0 %loaded_array - - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/device-constant-array-load-store.asm.comp b/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/device-constant-array-load-store.asm.comp deleted file mode 100644 index d9d0d51c39..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/device-constant-array-load-store.asm.comp +++ /dev/null @@ -1,81 +0,0 @@ - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpName %Block "Block" - OpName %SSBO "SSBO" - OpName %SSBO_Var "ssbo" - OpName %UBO_Var "ubo" - OpDecorate %SSBO_Var Binding 0 - OpDecorate %SSBO_Var DescriptorSet 0 - OpDecorate %UBO_Var Binding 1 - OpDecorate %UBO_Var DescriptorSet 0 - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %Block 0 Offset 0 - OpMemberDecorate %Block 1 Offset 16 - OpDecorate %BlockArray ArrayStride 32 - OpDecorate %arr_uvec2_2 ArrayStride 8 - OpDecorate %SSBO Block - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 - %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 - %uint_3 = OpConstant %uint 3 - %uvec2 = OpTypeVector %uint 2 - %arr_uvec2_2 = OpTypeArray %uvec2 %uint_2 - %arr_uvec2_2_ptr = OpTypePointer StorageBuffer %arr_uvec2_2 - %arr_uvec2_2_ptr_const = OpTypePointer Uniform %arr_uvec2_2 - %arr_uvec2_2_ptr_func = OpTypePointer Function %arr_uvec2_2 - %arr_uvec2_2_ptr_workgroup = OpTypePointer Workgroup %arr_uvec2_2 - %wg = OpVariable %arr_uvec2_2_ptr_workgroup Workgroup - %Block = OpTypeStruct %arr_uvec2_2 %arr_uvec2_2 -%BlockArray = OpTypeArray %Block %uint_3 -%SSBO = OpTypeStruct %BlockArray -%SSBO_Ptr = OpTypePointer StorageBuffer %SSBO -%SSBO_Var = OpVariable %SSBO_Ptr StorageBuffer -%UBO_Ptr = OpTypePointer Uniform %SSBO -%UBO_Var = OpVariable %UBO_Ptr Uniform -%void = OpTypeVoid -%func_type = OpTypeFunction %void - - %main = OpFunction %void None %func_type - %25 = OpLabel - %func = OpVariable %arr_uvec2_2_ptr_func Function - - ; DeviceToDevice - %ptr_arr_0 = OpAccessChain %arr_uvec2_2_ptr %SSBO_Var %uint_0 %uint_0 %uint_0 - %ptr_arr_1 = OpAccessChain %arr_uvec2_2_ptr %SSBO_Var %uint_0 %uint_0 %uint_1 - %loaded_array = OpLoad %arr_uvec2_2 %ptr_arr_1 - OpStore %ptr_arr_0 %loaded_array - - ; ConstantToDevice - %ptr_arr_1_const = OpAccessChain %arr_uvec2_2_ptr_const %UBO_Var %uint_0 %uint_0 %uint_1 - %loaded_array_const = OpLoad %arr_uvec2_2 %ptr_arr_1_const - OpStore %ptr_arr_0 %loaded_array_const - - ; StackToDevice - %loaded_array_func = OpLoad %arr_uvec2_2 %func - OpStore %ptr_arr_0 %loaded_array_func - - ; ThreadGroupToDevice - %loaded_array_workgroup = OpLoad %arr_uvec2_2 %wg - OpStore %ptr_arr_0 %loaded_array_workgroup - - ; DeviceToThreadGroup - %loaded_array_2 = OpLoad %arr_uvec2_2 %ptr_arr_1 - OpStore %wg %loaded_array_2 - - ; DeviceToStack - %loaded_array_3 = OpLoad %arr_uvec2_2 %ptr_arr_1 - OpStore %func %loaded_array_3 - - ; ConstantToThreadGroup - %loaded_array_const_2 = OpLoad %arr_uvec2_2 %ptr_arr_1_const - OpStore %wg %loaded_array_const_2 - - ; ConstantToStack - %loaded_array_const_3 = OpLoad %arr_uvec2_2 %ptr_arr_1_const - OpStore %func %loaded_array_const_3 - - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/device-constant-array-load-store.force-native-array.asm.comp b/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/device-constant-array-load-store.force-native-array.asm.comp deleted file mode 100644 index d9d0d51c39..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/device-constant-array-load-store.force-native-array.asm.comp +++ /dev/null @@ -1,81 +0,0 @@ - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpName %Block "Block" - OpName %SSBO "SSBO" - OpName %SSBO_Var "ssbo" - OpName %UBO_Var "ubo" - OpDecorate %SSBO_Var Binding 0 - OpDecorate %SSBO_Var DescriptorSet 0 - OpDecorate %UBO_Var Binding 1 - OpDecorate %UBO_Var DescriptorSet 0 - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %Block 0 Offset 0 - OpMemberDecorate %Block 1 Offset 16 - OpDecorate %BlockArray ArrayStride 32 - OpDecorate %arr_uvec2_2 ArrayStride 8 - OpDecorate %SSBO Block - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 - %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 - %uint_3 = OpConstant %uint 3 - %uvec2 = OpTypeVector %uint 2 - %arr_uvec2_2 = OpTypeArray %uvec2 %uint_2 - %arr_uvec2_2_ptr = OpTypePointer StorageBuffer %arr_uvec2_2 - %arr_uvec2_2_ptr_const = OpTypePointer Uniform %arr_uvec2_2 - %arr_uvec2_2_ptr_func = OpTypePointer Function %arr_uvec2_2 - %arr_uvec2_2_ptr_workgroup = OpTypePointer Workgroup %arr_uvec2_2 - %wg = OpVariable %arr_uvec2_2_ptr_workgroup Workgroup - %Block = OpTypeStruct %arr_uvec2_2 %arr_uvec2_2 -%BlockArray = OpTypeArray %Block %uint_3 -%SSBO = OpTypeStruct %BlockArray -%SSBO_Ptr = OpTypePointer StorageBuffer %SSBO -%SSBO_Var = OpVariable %SSBO_Ptr StorageBuffer -%UBO_Ptr = OpTypePointer Uniform %SSBO -%UBO_Var = OpVariable %UBO_Ptr Uniform -%void = OpTypeVoid -%func_type = OpTypeFunction %void - - %main = OpFunction %void None %func_type - %25 = OpLabel - %func = OpVariable %arr_uvec2_2_ptr_func Function - - ; DeviceToDevice - %ptr_arr_0 = OpAccessChain %arr_uvec2_2_ptr %SSBO_Var %uint_0 %uint_0 %uint_0 - %ptr_arr_1 = OpAccessChain %arr_uvec2_2_ptr %SSBO_Var %uint_0 %uint_0 %uint_1 - %loaded_array = OpLoad %arr_uvec2_2 %ptr_arr_1 - OpStore %ptr_arr_0 %loaded_array - - ; ConstantToDevice - %ptr_arr_1_const = OpAccessChain %arr_uvec2_2_ptr_const %UBO_Var %uint_0 %uint_0 %uint_1 - %loaded_array_const = OpLoad %arr_uvec2_2 %ptr_arr_1_const - OpStore %ptr_arr_0 %loaded_array_const - - ; StackToDevice - %loaded_array_func = OpLoad %arr_uvec2_2 %func - OpStore %ptr_arr_0 %loaded_array_func - - ; ThreadGroupToDevice - %loaded_array_workgroup = OpLoad %arr_uvec2_2 %wg - OpStore %ptr_arr_0 %loaded_array_workgroup - - ; DeviceToThreadGroup - %loaded_array_2 = OpLoad %arr_uvec2_2 %ptr_arr_1 - OpStore %wg %loaded_array_2 - - ; DeviceToStack - %loaded_array_3 = OpLoad %arr_uvec2_2 %ptr_arr_1 - OpStore %func %loaded_array_3 - - ; ConstantToThreadGroup - %loaded_array_const_2 = OpLoad %arr_uvec2_2 %ptr_arr_1_const - OpStore %wg %loaded_array_const_2 - - ; ConstantToStack - %loaded_array_const_3 = OpLoad %arr_uvec2_2 %ptr_arr_1_const - OpStore %func %loaded_array_const_3 - - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/eliminate-globals-not-in-entry-point.noeliminate.spv14.asm.comp b/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/eliminate-globals-not-in-entry-point.noeliminate.spv14.asm.comp deleted file mode 100644 index 73f3ceee1a..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/eliminate-globals-not-in-entry-point.noeliminate.spv14.asm.comp +++ /dev/null @@ -1,59 +0,0 @@ -; SPIR-V -; Version: 1.5 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 26 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - ;OpEntryPoint GLCompute %main "main" %Samp %ubo %ssbo %v %w - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 64 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %Samp "Samp" - OpName %UBO "UBO" - OpMemberName %UBO 0 "v" - OpName %ubo "ubo" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "v" - OpName %ssbo "ssbo" - OpName %v "v" - OpName %w "w" - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %Samp DescriptorSet 0 - OpDecorate %Samp Binding 0 - OpMemberDecorate %UBO 0 Offset 0 - OpDecorate %UBO Block - OpDecorate %ubo DescriptorSet 0 - OpDecorate %ubo Binding 1 - OpMemberDecorate %SSBO 0 Offset 0 - OpDecorate %SSBO Block - OpDecorate %ssbo DescriptorSet 0 - OpDecorate %ssbo Binding 2 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 - %uint_64 = OpConstant %uint 64 - %uint_1 = OpConstant %uint 1 -%gl_WorkGroupSize = OpConstantComposite %v3uint %uint_64 %uint_1 %uint_1 - %float = OpTypeFloat 32 - %12 = OpTypeImage %float 2D 0 0 0 1 Unknown - %13 = OpTypeSampledImage %12 -%_ptr_UniformConstant_13 = OpTypePointer UniformConstant %13 - %Samp = OpVariable %_ptr_UniformConstant_13 UniformConstant - %UBO = OpTypeStruct %float -%_ptr_Uniform_UBO = OpTypePointer Uniform %UBO - %ubo = OpVariable %_ptr_Uniform_UBO Uniform - %SSBO = OpTypeStruct %float -%_ptr_StorageBuffer_SSBO = OpTypePointer StorageBuffer %SSBO - %ssbo = OpVariable %_ptr_StorageBuffer_SSBO StorageBuffer -%_ptr_Private_float = OpTypePointer Private %float - %v = OpVariable %_ptr_Private_float Private -%_ptr_Workgroup_float = OpTypePointer Workgroup %float - %w = OpVariable %_ptr_Workgroup_float Workgroup - %main = OpFunction %void None %3 - %5 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/glsl-signed-operations.asm.comp b/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/glsl-signed-operations.asm.comp deleted file mode 100644 index 7da9f95b9e..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/glsl-signed-operations.asm.comp +++ /dev/null @@ -1,123 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 26 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "ints" - OpMemberName %SSBO 1 "uints" - OpName %_ "" - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %SSBO 1 Offset 16 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %v4int = OpTypeVector %int 4 - %uint = OpTypeInt 32 0 - %v4uint = OpTypeVector %uint 4 - %SSBO = OpTypeStruct %v4int %v4uint -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform - %int_0 = OpConstant %int 0 -%_ptr_Uniform_v4int = OpTypePointer Uniform %v4int - %int_1 = OpConstant %int 1 -%_ptr_Uniform_v4uint = OpTypePointer Uniform %v4uint - %main = OpFunction %void None %3 - %5 = OpLabel - %ints_ptr = OpAccessChain %_ptr_Uniform_v4int %_ %int_0 - %uints_ptr = OpAccessChain %_ptr_Uniform_v4uint %_ %int_1 - %ints = OpLoad %v4int %ints_ptr - %uints = OpLoad %v4uint %uints_ptr - - %int_to_int_sabs = OpExtInst %v4int %1 SAbs %ints - %int_to_uint_sabs = OpExtInst %v4uint %1 SAbs %ints - %uint_to_int_sabs = OpExtInst %v4int %1 SAbs %uints - %uint_to_uint_sabs = OpExtInst %v4uint %1 SAbs %uints - - %int_to_int_ssign = OpExtInst %v4int %1 SSign %ints - %int_to_uint_ssign = OpExtInst %v4uint %1 SSign %ints - %uint_to_int_ssign = OpExtInst %v4int %1 SSign %uints - %uint_to_uint_ssign = OpExtInst %v4uint %1 SSign %uints - - %int_to_int_smsb = OpExtInst %v4int %1 FindSMsb %uints - %int_to_uint_smsb = OpExtInst %v4uint %1 FindSMsb %uints - %uint_to_int_umsb = OpExtInst %v4int %1 FindUMsb %ints - %uint_to_uint_umsb = OpExtInst %v4uint %1 FindUMsb %ints - - %int_to_int_smin = OpExtInst %v4int %1 SMin %ints %ints - %int_to_uint_smin = OpExtInst %v4uint %1 SMin %ints %uints - %uint_to_int_smin = OpExtInst %v4int %1 SMin %uints %uints - %uint_to_uint_smin = OpExtInst %v4uint %1 SMin %uints %ints - - %int_to_int_umin = OpExtInst %v4int %1 UMin %ints %uints - %int_to_uint_umin = OpExtInst %v4uint %1 UMin %ints %uints - %uint_to_int_umin = OpExtInst %v4int %1 UMin %uints %ints - %uint_to_uint_umin = OpExtInst %v4uint %1 UMin %uints %ints - - %int_to_int_smax = OpExtInst %v4int %1 SMax %ints %ints - %int_to_uint_smax = OpExtInst %v4uint %1 SMax %ints %ints - %uint_to_int_smax = OpExtInst %v4int %1 SMax %uints %ints - %uint_to_uint_smax = OpExtInst %v4uint %1 SMax %uints %ints - - %int_to_int_umax = OpExtInst %v4int %1 UMax %ints %uints - %int_to_uint_umax = OpExtInst %v4uint %1 UMax %ints %ints - %uint_to_int_umax = OpExtInst %v4int %1 UMax %uints %ints - %uint_to_uint_umax = OpExtInst %v4uint %1 UMax %uints %ints - - %int_to_int_sclamp = OpExtInst %v4int %1 SClamp %uints %uints %uints - %int_to_uint_sclamp = OpExtInst %v4uint %1 SClamp %uints %uints %uints - %uint_to_int_uclamp = OpExtInst %v4int %1 UClamp %ints %ints %ints - %uint_to_uint_uclamp = OpExtInst %v4uint %1 UClamp %ints %ints %ints - - OpStore %ints_ptr %int_to_int_sabs - OpStore %uints_ptr %int_to_uint_sabs - OpStore %ints_ptr %uint_to_int_sabs - OpStore %uints_ptr %uint_to_uint_sabs - - OpStore %ints_ptr %int_to_int_ssign - OpStore %uints_ptr %int_to_uint_ssign - OpStore %ints_ptr %uint_to_int_ssign - OpStore %uints_ptr %uint_to_uint_ssign - - OpStore %ints_ptr %int_to_int_smsb - OpStore %uints_ptr %int_to_uint_smsb - OpStore %ints_ptr %uint_to_int_umsb - OpStore %uints_ptr %uint_to_uint_umsb - - OpStore %ints_ptr %int_to_int_smin - OpStore %uints_ptr %int_to_uint_smin - OpStore %ints_ptr %uint_to_int_smin - OpStore %uints_ptr %uint_to_uint_smin - - OpStore %ints_ptr %int_to_int_umin - OpStore %uints_ptr %int_to_uint_umin - OpStore %ints_ptr %uint_to_int_umin - OpStore %uints_ptr %uint_to_uint_umin - - OpStore %ints_ptr %int_to_int_smax - OpStore %uints_ptr %int_to_uint_smax - OpStore %ints_ptr %uint_to_int_smax - OpStore %uints_ptr %uint_to_uint_smax - - OpStore %ints_ptr %int_to_int_umax - OpStore %uints_ptr %int_to_uint_umax - OpStore %ints_ptr %uint_to_int_umax - OpStore %uints_ptr %uint_to_uint_umax - - OpStore %ints_ptr %int_to_int_sclamp - OpStore %uints_ptr %int_to_uint_sclamp - OpStore %ints_ptr %uint_to_int_uclamp - OpStore %uints_ptr %uint_to_uint_uclamp - - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/glsl.std450.frexp-modf-struct.asm.comp b/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/glsl.std450.frexp-modf-struct.asm.comp deleted file mode 100644 index 30db11d45b..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/glsl.std450.frexp-modf-struct.asm.comp +++ /dev/null @@ -1,55 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 45 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %SSBO 1 Offset 4 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %ResTypeMod = OpTypeStruct %float %float -%_ptr_Function_ResTypeMod = OpTypePointer Function %ResTypeMod - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %float_20 = OpConstant %float 20 - %int_1 = OpConstant %int 1 -%_ptr_Function_float = OpTypePointer Function %float -%ResTypeFrexp = OpTypeStruct %float %int -%_ptr_Function_ResTypeFrexp = OpTypePointer Function %ResTypeFrexp - %float_40 = OpConstant %float 40 -%_ptr_Function_int = OpTypePointer Function %int - %SSBO = OpTypeStruct %float %int -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform -%_ptr_Uniform_float = OpTypePointer Uniform %float -%_ptr_Uniform_int = OpTypePointer Uniform %int - %main = OpFunction %void None %3 - %5 = OpLabel - %modres = OpExtInst %ResTypeMod %1 ModfStruct %float_20 - %frexpres = OpExtInst %ResTypeFrexp %1 FrexpStruct %float_40 - - %modres_f = OpCompositeExtract %float %modres 0 - %modres_i = OpCompositeExtract %float %modres 1 - %frexpres_f = OpCompositeExtract %float %frexpres 0 - %frexpres_i = OpCompositeExtract %int %frexpres 1 - - %float_ptr = OpAccessChain %_ptr_Uniform_float %_ %int_0 - %int_ptr = OpAccessChain %_ptr_Uniform_int %_ %int_1 - - OpStore %float_ptr %modres_f - OpStore %float_ptr %modres_i - OpStore %float_ptr %frexpres_f - OpStore %int_ptr %frexpres_i - - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/storage-buffer-basic.invalid.asm.comp b/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/storage-buffer-basic.invalid.asm.comp deleted file mode 100644 index bdf2027a80..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/storage-buffer-basic.invalid.asm.comp +++ /dev/null @@ -1,58 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Codeplay; 0 -; Bound: 31 -; Schema: 0 - OpCapability Shader - OpCapability VariablePointers - OpExtension "SPV_KHR_storage_buffer_storage_class" - OpExtension "SPV_KHR_variable_pointers" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %22 "main" %gl_WorkGroupID - OpSource OpenCL_C 120 - OpDecorate %15 SpecId 0 - ;OpDecorate %16 SpecId 1 - OpDecorate %17 SpecId 2 - OpDecorate %_runtimearr_float ArrayStride 4 - OpMemberDecorate %_struct_4 0 Offset 0 - OpDecorate %_struct_4 Block - OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %20 DescriptorSet 0 - OpDecorate %20 Binding 0 - OpDecorate %21 DescriptorSet 0 - OpDecorate %21 Binding 1 - %float = OpTypeFloat 32 - %uint = OpTypeInt 32 0 - %size1 = OpConstant %uint 1 -%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float -%_runtimearr_float = OpTypeArray %float %size1 ; Runtime arrays do not work yet in MSL. - %_struct_4 = OpTypeStruct %_runtimearr_float -%_ptr_StorageBuffer__struct_4 = OpTypePointer StorageBuffer %_struct_4 - %void = OpTypeVoid - %8 = OpTypeFunction %void - %v3uint = OpTypeVector %uint 3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_Private_v3uint = OpTypePointer Private %v3uint - %uint_0 = OpConstant %uint 0 -%gl_WorkGroupID = OpVariable %_ptr_Input_v3uint Input - %15 = OpSpecConstant %uint 1 - %16 = OpConstant %uint 2 - %17 = OpSpecConstant %uint 3 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %15 %16 %17 - %19 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize - %20 = OpVariable %_ptr_StorageBuffer__struct_4 StorageBuffer - %21 = OpVariable %_ptr_StorageBuffer__struct_4 StorageBuffer - %22 = OpFunction %void None %8 - %23 = OpLabel - %24 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %25 = OpLoad %uint %24 - %26 = OpAccessChain %_ptr_StorageBuffer_float %21 %uint_0 %25 - %27 = OpLoad %float %26 - %28 = OpAccessChain %_ptr_StorageBuffer_float %20 %uint_0 %25 - %29 = OpLoad %float %28 - %30 = OpFAdd %float %27 %29 - OpStore %28 %30 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/storage-buffer-pointer-argument.asm.comp b/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/storage-buffer-pointer-argument.asm.comp deleted file mode 100644 index 010d17c202..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/storage-buffer-pointer-argument.asm.comp +++ /dev/null @@ -1,63 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 30 -; Schema: 0 - OpCapability Shader - OpCapability VariablePointersStorageBuffer - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %copy_out_f1_f1_ "copy_out(f1;f1;" - OpName %A "A" - OpName %B "B" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "a" - OpName %_ "" - OpName %SSBORead "SSBORead" - OpMemberName %SSBORead 0 "b" - OpName %__0 "" - OpMemberDecorate %SSBO 0 NonReadable - OpMemberDecorate %SSBO 0 Offset 0 - OpDecorate %SSBO Block - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - OpMemberDecorate %SSBORead 0 NonWritable - OpMemberDecorate %SSBORead 0 Offset 0 - OpDecorate %SSBORead Block - OpDecorate %__0 DescriptorSet 0 - OpDecorate %__0 Binding 1 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 -%_ptr_Function_float = OpTypePointer Function %float -%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float - %8 = OpTypeFunction %void %_ptr_StorageBuffer_float %_ptr_StorageBuffer_float - %SSBO = OpTypeStruct %float -%_ptr_StorageBuffer_SSBO = OpTypePointer StorageBuffer %SSBO - %_ = OpVariable %_ptr_StorageBuffer_SSBO StorageBuffer - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %SSBORead = OpTypeStruct %float -%_ptr_StorageBuffer_SSBORead = OpTypePointer StorageBuffer %SSBORead - %__0 = OpVariable %_ptr_StorageBuffer_SSBORead StorageBuffer - %main = OpFunction %void None %3 - %5 = OpLabel - %param = OpVariable %_ptr_Function_float Function - %param_0 = OpVariable %_ptr_Function_float Function - %25 = OpAccessChain %_ptr_StorageBuffer_float %_ %int_0 - %26 = OpAccessChain %_ptr_StorageBuffer_float %__0 %int_0 - %27 = OpFunctionCall %void %copy_out_f1_f1_ %25 %26 - OpReturn - OpFunctionEnd -%copy_out_f1_f1_ = OpFunction %void None %8 - %A = OpFunctionParameter %_ptr_StorageBuffer_float - %B = OpFunctionParameter %_ptr_StorageBuffer_float - %12 = OpLabel - %13 = OpLoad %float %B - OpStore %A %13 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/variable-pointers.asm.comp b/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/variable-pointers.asm.comp deleted file mode 100644 index ba6267cc08..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/comp/variable-pointers.asm.comp +++ /dev/null @@ -1,152 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Khronos SPIR-V Tools Assembler; 0 -; Bound: 89 -; Schema: 0 - OpCapability Shader - OpCapability VariablePointers - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %foo "foo" - OpMemberName %foo 0 "a" - OpMemberName %foo 1 "b" - OpMemberName %foo 2 "c" - OpName %bar "bar" - OpMemberName %bar 0 "d" - OpName %baz "baz" - OpMemberName %baz 0 "e" - OpName %buf "buf" - OpName %buf2 "buf2" - OpName %cb "cb" - OpName %tgsm "tgsm" - OpName %sbuf "sbuf" - OpName %sbuf2 "sbuf2" - OpName %stgsm "stgsm" - OpName %select_buffer "select_buffer" - OpName %select_buffer_null "select_buffer_null" - OpName %select_tgsm "select_tgsm" - OpName %cur "cur" - OpMemberDecorate %foo 0 Offset 0 - OpMemberDecorate %foo 1 Offset 512 - OpMemberDecorate %foo 2 Offset 520 - OpMemberDecorate %bar 0 Offset 0 - OpMemberDecorate %baz 0 Offset 0 - OpDecorate %foo Block - OpDecorate %bar Block - OpDecorate %baz Block - OpDecorate %buf DescriptorSet 0 - OpDecorate %buf Binding 0 - OpDecorate %cb DescriptorSet 0 - OpDecorate %cb Binding 3 - OpDecorate %buf2 DescriptorSet 0 - OpDecorate %buf2 Binding 4 - OpDecorate %_ptr_Workgroup_int ArrayStride 4 - OpDecorate %_ptr_StorageBuffer_int ArrayStride 4 - OpDecorate %_arr_int_uint_128 ArrayStride 4 - OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId - %void = OpTypeVoid - %22 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input - %uint_128 = OpConstant %uint 128 -%_arr_int_uint_128 = OpTypeArray %int %uint_128 - %float = OpTypeFloat 32 - %v2float = OpTypeVector %float 2 - %foo = OpTypeStruct %_arr_int_uint_128 %uint %v2float -%_ptr_StorageBuffer_foo = OpTypePointer StorageBuffer %foo - %buf = OpVariable %_ptr_StorageBuffer_foo StorageBuffer - %bar = OpTypeStruct %int -%_ptr_Uniform_bar = OpTypePointer Uniform %bar - %cb = OpVariable %_ptr_Uniform_bar Uniform - %baz = OpTypeStruct %_arr_int_uint_128 -%_ptr_StorageBuffer_baz = OpTypePointer StorageBuffer %baz - %buf2 = OpVariable %_ptr_StorageBuffer_baz StorageBuffer -%_ptr_Workgroup__arr_int_uint_128 = OpTypePointer Workgroup %_arr_int_uint_128 - %tgsm = OpVariable %_ptr_Workgroup__arr_int_uint_128 Workgroup -%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int -%_ptr_Private__ptr_StorageBuffer_int = OpTypePointer Private %_ptr_StorageBuffer_int - %sbuf = OpVariable %_ptr_Private__ptr_StorageBuffer_int Private - %sbuf2 = OpVariable %_ptr_Private__ptr_StorageBuffer_int Private -%_ptr_Workgroup_int = OpTypePointer Workgroup %int -%_ptr_Private__ptr_Workgroup_int = OpTypePointer Private %_ptr_Workgroup_int - %stgsm = OpVariable %_ptr_Private__ptr_Workgroup_int Private - %uint_0 = OpConstant %uint 0 - %bool = OpTypeBool -%_ptr_Uniform_int = OpTypePointer Uniform %int - %44 = OpTypeFunction %_ptr_StorageBuffer_int - %int_0 = OpConstant %int 0 - %uint_1 = OpConstant %uint 1 - %47 = OpConstantNull %_ptr_StorageBuffer_int - %48 = OpTypeFunction %_ptr_Workgroup_int - %49 = OpConstantNull %_ptr_Workgroup_int -%_ptr_Function__ptr_Workgroup_int = OpTypePointer Function %_ptr_Workgroup_int -%select_buffer = OpFunction %_ptr_StorageBuffer_int None %44 - %51 = OpLabel - %52 = OpAccessChain %_ptr_Uniform_int %cb %uint_0 - %53 = OpLoad %int %52 - %54 = OpINotEqual %bool %53 %int_0 - %55 = OpAccessChain %_ptr_StorageBuffer_int %buf %uint_0 %uint_0 - %56 = OpAccessChain %_ptr_StorageBuffer_int %buf2 %uint_0 %uint_0 - %57 = OpSelect %_ptr_StorageBuffer_int %54 %55 %56 - OpReturnValue %57 - OpFunctionEnd -%select_buffer_null = OpFunction %_ptr_StorageBuffer_int None %44 - %58 = OpLabel - %59 = OpAccessChain %_ptr_Uniform_int %cb %uint_0 - %60 = OpLoad %int %59 - %61 = OpINotEqual %bool %60 %int_0 - %62 = OpAccessChain %_ptr_StorageBuffer_int %buf %uint_0 %uint_0 - %63 = OpSelect %_ptr_StorageBuffer_int %61 %62 %47 - OpReturnValue %63 - OpFunctionEnd -%select_tgsm = OpFunction %_ptr_Workgroup_int None %48 - %64 = OpLabel - %65 = OpAccessChain %_ptr_Uniform_int %cb %uint_0 - %66 = OpLoad %int %65 - %67 = OpINotEqual %bool %66 %int_0 - %68 = OpAccessChain %_ptr_Workgroup_int %tgsm %uint_0 - %69 = OpSelect %_ptr_Workgroup_int %67 %68 %49 - OpReturnValue %69 - OpFunctionEnd - %main = OpFunction %void None %22 - %70 = OpLabel - %cur = OpVariable %_ptr_Function__ptr_Workgroup_int Function - %71 = OpFunctionCall %_ptr_StorageBuffer_int %select_buffer - OpStore %sbuf %71 - %72 = OpFunctionCall %_ptr_StorageBuffer_int %select_buffer_null - OpStore %sbuf2 %72 - %73 = OpFunctionCall %_ptr_Workgroup_int %select_tgsm - OpStore %stgsm %73 - %74 = OpAccessChain %_ptr_StorageBuffer_int %buf %uint_0 %uint_0 - %75 = OpLoad %_ptr_Workgroup_int %stgsm - %76 = OpCopyObject %_ptr_Workgroup_int %75 - OpStore %cur %76 - OpBranch %77 - %77 = OpLabel - %78 = OpPhi %_ptr_StorageBuffer_int %74 %70 %79 %80 - %81 = OpLoad %_ptr_Workgroup_int %cur - %82 = OpLoad %int %78 - %83 = OpINotEqual %bool %82 %int_0 - OpLoopMerge %85 %80 None - OpBranchConditional %83 %84 %85 - %84 = OpLabel - %86 = OpLoad %int %81 - %87 = OpIAdd %int %82 %86 - OpStore %78 %87 - OpStore %81 %87 - OpBranch %80 - %80 = OpLabel - %79 = OpPtrAccessChain %_ptr_StorageBuffer_int %78 %uint_1 - %88 = OpPtrAccessChain %_ptr_Workgroup_int %81 %uint_1 - OpStore %cur %88 - OpBranch %77 - %85 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/component-insert-packed-expression.asm.frag b/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/component-insert-packed-expression.asm.frag deleted file mode 100644 index fb7cdb0718..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/component-insert-packed-expression.asm.frag +++ /dev/null @@ -1,70 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 43 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %frag "main" %gl_FragCoord %out_var_SV_Target - OpExecutionMode %frag OriginUpperLeft - OpSource HLSL 600 - OpName %type__Globals "type.$Globals" - OpMemberName %type__Globals 0 "_BorderWidths" - OpName %_Globals "$Globals" - OpName %out_var_SV_Target "out.var.SV_Target" - OpName %frag "frag" - OpDecorate %gl_FragCoord BuiltIn FragCoord - OpDecorate %out_var_SV_Target Location 0 - OpDecorate %_Globals DescriptorSet 0 - OpDecorate %_Globals Binding 0 - OpDecorate %_arr_float_uint_4 ArrayStride 16 - OpMemberDecorate %type__Globals 0 Offset 0 - OpDecorate %type__Globals Block - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 - %float = OpTypeFloat 32 - %float_0 = OpConstant %float 0 - %int_2 = OpConstant %int 2 - %uint = OpTypeInt 32 0 - %float_1 = OpConstant %float 1 - %uint_4 = OpConstant %uint 4 -%_arr_float_uint_4 = OpTypeArray %float %uint_4 -%type__Globals = OpTypeStruct %_arr_float_uint_4 -%_ptr_Uniform_type__Globals = OpTypePointer Uniform %type__Globals - %v4float = OpTypeVector %float 4 -%_ptr_Input_v4float = OpTypePointer Input %v4float -%_ptr_Output_v4float = OpTypePointer Output %v4float - %void = OpTypeVoid - %21 = OpTypeFunction %void - %v2float = OpTypeVector %float 2 -%_ptr_Uniform_float = OpTypePointer Uniform %float - %bool = OpTypeBool - %_Globals = OpVariable %_ptr_Uniform_type__Globals Uniform -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input -%out_var_SV_Target = OpVariable %_ptr_Output_v4float Output - %frag = OpFunction %void None %21 - %25 = OpLabel - %26 = OpLoad %v4float %gl_FragCoord - %27 = OpAccessChain %_ptr_Uniform_float %_Globals %int_0 %int_0 - %28 = OpLoad %float %27 - %29 = OpAccessChain %_ptr_Uniform_float %_Globals %int_0 %int_1 - %30 = OpLoad %float %29 - %31 = OpCompositeConstruct %v2float %28 %30 - %32 = OpCompositeExtract %float %26 0 - %33 = OpFOrdGreaterThan %bool %32 %float_0 - OpSelectionMerge %34 None - OpBranchConditional %33 %35 %34 - %35 = OpLabel - %36 = OpAccessChain %_ptr_Uniform_float %_Globals %int_0 %int_2 - %37 = OpLoad %float %36 - %38 = OpCompositeInsert %v2float %37 %31 0 - OpBranch %34 - %34 = OpLabel - %39 = OpPhi %v2float %31 %25 %38 %35 - %40 = OpCompositeExtract %float %39 0 - %41 = OpCompositeExtract %float %39 1 - %42 = OpCompositeConstruct %v4float %40 %41 %float_0 %float_1 - OpStore %out_var_SV_Target %42 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/empty-struct-in-struct.asm.frag b/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/empty-struct-in-struct.asm.frag deleted file mode 100644 index a9650ddbb6..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/empty-struct-in-struct.asm.frag +++ /dev/null @@ -1,61 +0,0 @@ -; SPIR-V -; Version: 1.2 -; Generator: Khronos; 0 -; Bound: 43 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %EntryPoint_Main "main" - OpExecutionMode %EntryPoint_Main OriginUpperLeft - OpSource Unknown 100 - OpName %EmptyStructTest "EmptyStructTest" - OpName %EmptyStruct2Test "EmptyStruct2Test" - OpName %GetValue "GetValue" - OpName %GetValue2 "GetValue" - OpName %self "self" - OpName %self2 "self" - OpName %emptyStruct "emptyStruct" - OpName %value "value" - OpName %EntryPoint_Main "EntryPoint_Main" - -%EmptyStructTest = OpTypeStruct -%EmptyStruct2Test = OpTypeStruct %EmptyStructTest -%_ptr_Function_EmptyStruct2Test = OpTypePointer Function %EmptyStruct2Test - %float = OpTypeFloat 32 -%_ptr_Function_float = OpTypePointer Function %float - %5 = OpTypeFunction %float %_ptr_Function_EmptyStruct2Test - %6 = OpTypeFunction %float %EmptyStruct2Test - %void = OpTypeVoid -%_ptr_Function_void = OpTypePointer Function %void - %8 = OpTypeFunction %void %_ptr_Function_EmptyStruct2Test - %9 = OpTypeFunction %void - %float_0 = OpConstant %float 0 - %value4 = OpConstantNull %EmptyStruct2Test - - %GetValue = OpFunction %float None %5 - %self = OpFunctionParameter %_ptr_Function_EmptyStruct2Test - %13 = OpLabel - OpReturnValue %float_0 - OpFunctionEnd - - %GetValue2 = OpFunction %float None %6 - %self2 = OpFunctionParameter %EmptyStruct2Test - %14 = OpLabel - OpReturnValue %float_0 - OpFunctionEnd - -%EntryPoint_Main = OpFunction %void None %9 - %37 = OpLabel - %emptyStruct = OpVariable %_ptr_Function_EmptyStruct2Test Function - %18 = OpVariable %_ptr_Function_EmptyStruct2Test Function - %value = OpVariable %_ptr_Function_float Function - %value2 = OpCompositeConstruct %EmptyStructTest - %value3 = OpCompositeConstruct %EmptyStruct2Test %value2 - %22 = OpFunctionCall %float %GetValue %emptyStruct - %23 = OpFunctionCall %float %GetValue2 %value3 - %24 = OpFunctionCall %float %GetValue2 %value4 - OpStore %value %22 - OpStore %value %23 - OpStore %value %24 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/fixup-entry-point-identifier.nomain.asm.frag b/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/fixup-entry-point-identifier.nomain.asm.frag deleted file mode 100644 index 2f522f44b5..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/fixup-entry-point-identifier.nomain.asm.frag +++ /dev/null @@ -1,27 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 12 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %foo "_5ma@@in" %FragColor - OpExecutionMode %foo OriginUpperLeft - OpSource GLSL 450 - OpName %foo "FOO" - OpName %FragColor "FragColor" - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %float_1 = OpConstant %float 1 - %11 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 - %foo = OpFunction %void None %3 - %5 = OpLabel - OpStore %FragColor %11 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/image-fetch-uint-coord.asm.frag b/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/image-fetch-uint-coord.asm.frag deleted file mode 100644 index ca8022d4bb..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/image-fetch-uint-coord.asm.frag +++ /dev/null @@ -1,44 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 29 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %in_var_TEXCOORD0 %out_var_SV_Target0 - OpExecutionMode %main OriginUpperLeft - OpSource HLSL 600 - OpName %type_2d_image "type.2d.image" - OpName %Tex "Tex" - OpName %in_var_TEXCOORD0 "in.var.TEXCOORD0" - OpName %out_var_SV_Target0 "out.var.SV_Target0" - OpName %main "main" - OpDecorate %in_var_TEXCOORD0 Flat - OpDecorate %in_var_TEXCOORD0 Location 0 - OpDecorate %out_var_SV_Target0 Location 0 - OpDecorate %Tex DescriptorSet 0 - OpDecorate %Tex Binding 0 - %int = OpTypeInt 32 1 - %int_2 = OpConstant %int 2 - %float = OpTypeFloat 32 -%type_2d_image = OpTypeImage %float 2D 2 0 0 1 Unknown -%_ptr_UniformConstant_type_2d_image = OpTypePointer UniformConstant %type_2d_image - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %void = OpTypeVoid - %16 = OpTypeFunction %void - %Tex = OpVariable %_ptr_UniformConstant_type_2d_image UniformConstant -%in_var_TEXCOORD0 = OpVariable %_ptr_Input_v3uint Input -%out_var_SV_Target0 = OpVariable %_ptr_Output_v4float Output - %main = OpFunction %void None %16 - %19 = OpLabel - %20 = OpLoad %v3uint %in_var_TEXCOORD0 - %21 = OpCompositeExtract %uint %20 2 - %27 = OpLoad %type_2d_image %Tex - %28 = OpImageFetch %v4float %27 %20 Lod %21 - OpStore %out_var_SV_Target0 %28 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/image-gather.asm.frag b/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/image-gather.asm.frag deleted file mode 100644 index f26bb07264..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/image-gather.asm.frag +++ /dev/null @@ -1,74 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Google spiregg; 0 -; Bound: 36 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_GOOGLE_hlsl_functionality1" - OpExtension "SPV_GOOGLE_user_type" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %psMain "main" %gl_FragCoord %in_var_TEXCOORD0 %out_var_SV_Target0 - OpExecutionMode %psMain OriginUpperLeft - OpSource HLSL 500 - OpName %type_2d_image "type.2d.image" - OpName %g_texture "g_texture" - OpName %type_sampler "type.sampler" - OpName %g_sampler "g_sampler" - OpName %g_comp "g_comp" - OpName %in_var_TEXCOORD0 "in.var.TEXCOORD0" - OpName %out_var_SV_Target0 "out.var.SV_Target0" - OpName %psMain "psMain" - OpName %type_sampled_image "type.sampled.image" - OpDecorate %gl_FragCoord BuiltIn FragCoord - OpDecorateString %gl_FragCoord UserSemantic "SV_Position" - OpDecorateString %in_var_TEXCOORD0 UserSemantic "TEXCOORD0" - OpDecorateString %out_var_SV_Target0 UserSemantic "SV_Target0" - OpDecorate %in_var_TEXCOORD0 Location 0 - OpDecorate %out_var_SV_Target0 Location 0 - OpDecorate %g_texture DescriptorSet 0 - OpDecorate %g_texture Binding 0 - OpDecorate %g_sampler DescriptorSet 0 - OpDecorate %g_sampler Binding 0 - OpDecorate %g_comp DescriptorSet 0 - OpDecorate %g_comp Binding 1 - OpDecorateString %g_texture UserTypeGOOGLE "texture2d" - %float = OpTypeFloat 32 - %float_0_5 = OpConstant %float 0.5 - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 - %v2int = OpTypeVector %int 2 - %16 = OpConstantComposite %v2int %int_0 %int_0 -%type_2d_image = OpTypeImage %float 2D 2 0 0 1 Unknown -%_ptr_UniformConstant_type_2d_image = OpTypePointer UniformConstant %type_2d_image -%type_sampler = OpTypeSampler -%_ptr_UniformConstant_type_sampler = OpTypePointer UniformConstant %type_sampler - %v4float = OpTypeVector %float 4 -%_ptr_Input_v4float = OpTypePointer Input %v4float - %v2float = OpTypeVector %float 2 -%_ptr_Input_v2float = OpTypePointer Input %v2float -%_ptr_Output_v4float = OpTypePointer Output %v4float - %void = OpTypeVoid - %25 = OpTypeFunction %void -%type_sampled_image = OpTypeSampledImage %type_2d_image -%g_texture = OpVariable %_ptr_UniformConstant_type_2d_image UniformConstant - %g_sampler = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant - %g_comp = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input -%in_var_TEXCOORD0 = OpVariable %_ptr_Input_v2float Input -%out_var_SV_Target0 = OpVariable %_ptr_Output_v4float Output - %psMain = OpFunction %void None %25 - %26 = OpLabel - %27 = OpLoad %v2float %in_var_TEXCOORD0 - %28 = OpLoad %type_2d_image %g_texture - %29 = OpLoad %type_sampler %g_comp - %30 = OpSampledImage %type_sampled_image %28 %29 - %32 = OpLoad %type_sampler %g_sampler - %33 = OpSampledImage %type_sampled_image %28 %32 - %31 = OpImageGather %v4float %33 %27 %int_1 ConstOffset %16 - %34 = OpImageGather %v4float %33 %27 %int_0 ConstOffset %16 - %35 = OpFMul %v4float %34 %31 - OpStore %out_var_SV_Target0 %35 - OpReturn - OpFunctionEnd - diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/image-type-normal-comparison-usage.asm.frag b/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/image-type-normal-comparison-usage.asm.frag deleted file mode 100644 index d4c2643978..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/image-type-normal-comparison-usage.asm.frag +++ /dev/null @@ -1,76 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 43 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %in_var_TEXCOORD0 %out_var_SV_Target0 - OpExecutionMode %main OriginUpperLeft - OpSource HLSL 600 - OpName %type_2d_image "type.2d.image" - OpName %ShadowMap "ShadowMap" - OpName %type_sampler "type.sampler" - OpName %SampleNormal "SampleNormal" - OpName %SampleShadow "SampleShadow" - OpName %in_var_TEXCOORD0 "in.var.TEXCOORD0" - OpName %out_var_SV_Target0 "out.var.SV_Target0" - OpName %main "main" - OpName %type_sampled_image "type.sampled.image" - OpDecorate %in_var_TEXCOORD0 Location 0 - OpDecorate %out_var_SV_Target0 Location 0 - OpDecorate %ShadowMap DescriptorSet 0 - OpDecorate %ShadowMap Binding 0 - OpDecorate %SampleNormal DescriptorSet 0 - OpDecorate %SampleNormal Binding 0 - OpDecorate %SampleShadow DescriptorSet 0 - OpDecorate %SampleShadow Binding 1 - %float = OpTypeFloat 32 - %float_0_5 = OpConstant %float 0.5 - %float_1 = OpConstant %float 1 - %float_0 = OpConstant %float 0 - %v4float = OpTypeVector %float 4 -%type_2d_image = OpTypeImage %float 2D 2 0 0 1 Unknown -%_ptr_UniformConstant_type_2d_image = OpTypePointer UniformConstant %type_2d_image -%type_sampler = OpTypeSampler -%_ptr_UniformConstant_type_sampler = OpTypePointer UniformConstant %type_sampler - %v2float = OpTypeVector %float 2 -%_ptr_Input_v2float = OpTypePointer Input %v2float -%_ptr_Output_v4float = OpTypePointer Output %v4float - %void = OpTypeVoid - %21 = OpTypeFunction %void - %bool = OpTypeBool -%type_sampled_image = OpTypeSampledImage %type_2d_image - %ShadowMap = OpVariable %_ptr_UniformConstant_type_2d_image UniformConstant -%SampleNormal = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant -%SampleShadow = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant -%in_var_TEXCOORD0 = OpVariable %_ptr_Input_v2float Input -%out_var_SV_Target0 = OpVariable %_ptr_Output_v4float Output - %main = OpFunction %void None %21 - %23 = OpLabel - %24 = OpLoad %v2float %in_var_TEXCOORD0 - %25 = OpCompositeExtract %float %24 0 - %26 = OpFOrdGreaterThan %bool %25 %float_0_5 - OpSelectionMerge %27 None - OpBranchConditional %26 %28 %29 - %28 = OpLabel - %30 = OpLoad %type_2d_image %ShadowMap - %31 = OpLoad %type_sampler %SampleNormal - %32 = OpSampledImage %type_sampled_image %30 %31 - %33 = OpImageSampleImplicitLod %v4float %32 %24 None - %34 = OpCompositeExtract %float %33 0 - %35 = OpFOrdLessThanEqual %bool %34 %float_0_5 - %36 = OpSelect %float %35 %float_1 %float_0 - OpBranch %27 - %29 = OpLabel - %37 = OpLoad %type_2d_image %ShadowMap - %38 = OpLoad %type_sampler %SampleShadow - %39 = OpSampledImage %type_sampled_image %37 %38 - %40 = OpImageSampleDrefExplicitLod %float %39 %24 %float_0_5 Lod %float_0 - OpBranch %27 - %27 = OpLabel - %41 = OpPhi %float %36 %28 %40 %29 - %42 = OpCompositeConstruct %v4float %41 %41 %41 %float_1 - OpStore %out_var_SV_Target0 %42 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/input-attachment-unused-frag-coord.asm.frag b/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/input-attachment-unused-frag-coord.asm.frag deleted file mode 100644 index 518dbd81e4..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/input-attachment-unused-frag-coord.asm.frag +++ /dev/null @@ -1,74 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 35 -; Schema: 0 - OpCapability Shader - OpCapability InputAttachment - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %gl_FragCoord - OpExecutionMode %main OriginUpperLeft - OpSource ESSL 310 - OpName %main "main" - OpName %load_subpasses_IP1_ "load_subpasses(IP1;" - OpName %uInput "uInput" - OpName %FragColor "FragColor" - OpName %uSubpass0 "uSubpass0" - OpName %uSubpass1 "uSubpass1" - OpName %gl_FragCoord "gl_FragCoord" - OpDecorate %load_subpasses_IP1_ RelaxedPrecision - OpDecorate %uInput RelaxedPrecision - OpDecorate %14 RelaxedPrecision - OpDecorate %19 RelaxedPrecision - OpDecorate %FragColor RelaxedPrecision - OpDecorate %FragColor Location 0 - OpDecorate %uSubpass0 RelaxedPrecision - OpDecorate %uSubpass0 DescriptorSet 0 - OpDecorate %uSubpass0 Binding 0 - OpDecorate %uSubpass0 InputAttachmentIndex 0 - OpDecorate %25 RelaxedPrecision - OpDecorate %26 RelaxedPrecision - OpDecorate %uSubpass1 RelaxedPrecision - OpDecorate %uSubpass1 DescriptorSet 0 - OpDecorate %uSubpass1 Binding 1 - OpDecorate %uSubpass1 InputAttachmentIndex 1 - OpDecorate %28 RelaxedPrecision - OpDecorate %29 RelaxedPrecision - OpDecorate %gl_FragCoord BuiltIn FragCoord - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %7 = OpTypeImage %float SubpassData 0 0 0 2 Unknown -%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7 - %v4float = OpTypeVector %float 4 - %10 = OpTypeFunction %v4float %_ptr_UniformConstant_7 - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %v2int = OpTypeVector %int 2 - %18 = OpConstantComposite %v2int %int_0 %int_0 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %uSubpass0 = OpVariable %_ptr_UniformConstant_7 UniformConstant - %uSubpass1 = OpVariable %_ptr_UniformConstant_7 UniformConstant -%_ptr_Input_v4float = OpTypePointer Input %v4float -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input - %main = OpFunction %void None %3 - %5 = OpLabel - %25 = OpLoad %7 %uSubpass0 - %26 = OpImageRead %v4float %25 %18 - %28 = OpFunctionCall %v4float %load_subpasses_IP1_ %uSubpass1 - %29 = OpFAdd %v4float %26 %28 - ;%32 = OpLoad %v4float %gl_FragCoord - ;%33 = OpVectorShuffle %v4float %32 %32 0 1 0 1 - ;%34 = OpFAdd %v4float %29 %33 - OpStore %FragColor %29 - OpReturn - OpFunctionEnd -%load_subpasses_IP1_ = OpFunction %v4float None %10 - %uInput = OpFunctionParameter %_ptr_UniformConstant_7 - %13 = OpLabel - %14 = OpLoad %7 %uInput - %19 = OpImageRead %v4float %14 %18 - OpReturnValue %19 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/modf-frexp-scalar-access-chain-output.asm.frag b/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/modf-frexp-scalar-access-chain-output.asm.frag deleted file mode 100644 index 707fa550b9..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/modf-frexp-scalar-access-chain-output.asm.frag +++ /dev/null @@ -1,36 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 17 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" - OpExecutionMode %main OriginUpperLeft - OpSource ESSL 310 - OpName %main "main" - OpName %col "col" - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 -%_ptr_Function_float = OpTypePointer Function %float -%float_0_150000006 = OpConstant %float 0.150000006 - %v3float = OpTypeVector %float 3 -%_ptr_Function_v3float = OpTypePointer Function %v3float - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 - %v2int = OpTypeVector %int 2 -%_ptr_Function_v2int = OpTypePointer Function %v2int -%_ptr_Function_int = OpTypePointer Function %int - %main = OpFunction %void None %3 - %5 = OpLabel - %col = OpVariable %_ptr_Function_v3float Function - %icol = OpVariable %_ptr_Function_v2int Function - %ptr_x = OpAccessChain %_ptr_Function_float %col %int_0 - %ptr_y = OpAccessChain %_ptr_Function_int %icol %int_1 - %16 = OpExtInst %float %1 Modf %float_0_150000006 %ptr_x - %17 = OpExtInst %float %1 Frexp %float_0_150000006 %ptr_y - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/only-initializer-frag-depth.asm.frag b/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/only-initializer-frag-depth.asm.frag deleted file mode 100644 index 17aab1d8f7..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/only-initializer-frag-depth.asm.frag +++ /dev/null @@ -1,25 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 10 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %gl_FragDepth - OpExecutionMode %main OriginUpperLeft - OpExecutionMode %main DepthReplacing - OpSource GLSL 450 - OpName %main "main" - OpName %gl_FragDepth "gl_FragDepth" - OpDecorate %gl_FragDepth BuiltIn FragDepth - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 -%_ptr_Output_float = OpTypePointer Output %float - %float_0_5 = OpConstant %float 0.5 -%gl_FragDepth = OpVariable %_ptr_Output_float Output %float_0_5 - %main = OpFunction %void None %3 - %5 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/phi.zero-initialize.asm.frag b/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/phi.zero-initialize.asm.frag deleted file mode 100644 index 3696660d36..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/phi.zero-initialize.asm.frag +++ /dev/null @@ -1,69 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 40 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %vColor %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %vColor "vColor" - OpName %uninit_function_int "uninit_function_int" - OpName %FragColor "FragColor" - OpName %uninit_int "uninit_int" - OpName %uninit_vector "uninit_vector" - OpName %uninit_matrix "uninit_matrix" - OpName %Foo "Foo" - OpMemberName %Foo 0 "a" - OpName %uninit_foo "uninit_foo" - OpDecorate %vColor Location 0 - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Input_v4float = OpTypePointer Input %v4float - %vColor = OpVariable %_ptr_Input_v4float Input - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 -%_ptr_Input_float = OpTypePointer Input %float - %float_10 = OpConstant %float 10 - %bool = OpTypeBool - %int = OpTypeInt 32 1 -%_ptr_Function_int = OpTypePointer Function %int - %int_10 = OpConstant %int 10 - %int_20 = OpConstant %int 20 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output -%_ptr_Private_int = OpTypePointer Private %int - %uninit_int = OpUndef %int - %v4int = OpTypeVector %int 4 -%_ptr_Private_v4int = OpTypePointer Private %v4int -%uninit_vector = OpUndef %v4int -%mat4v4float = OpTypeMatrix %v4float 4 -%_ptr_Private_mat4v4float = OpTypePointer Private %mat4v4float -%uninit_matrix = OpUndef %mat4v4float - %Foo = OpTypeStruct %int -%_ptr_Private_Foo = OpTypePointer Private %Foo - %uninit_foo = OpUndef %Foo - %main = OpFunction %void None %3 - %5 = OpLabel -%uninit_function_int = OpVariable %_ptr_Function_int Function - %13 = OpAccessChain %_ptr_Input_float %vColor %uint_0 - %14 = OpLoad %float %13 - %17 = OpFOrdGreaterThan %bool %14 %float_10 - OpSelectionMerge %19 None - OpBranchConditional %17 %18 %24 - %18 = OpLabel - OpBranch %19 - %24 = OpLabel - OpBranch %19 - %19 = OpLabel - %27 = OpPhi %int %int_10 %18 %int_20 %24 - %28 = OpLoad %v4float %vColor - OpStore %FragColor %28 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/pixel-interlock-callstack.msl2.asm.frag b/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/pixel-interlock-callstack.msl2.asm.frag deleted file mode 100644 index ebd8d6bab7..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/pixel-interlock-callstack.msl2.asm.frag +++ /dev/null @@ -1,89 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 45 -; Schema: 0 - OpCapability Shader - OpCapability FragmentShaderPixelInterlockEXT - OpExtension "SPV_EXT_fragment_shader_interlock" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %gl_FragCoord - OpExecutionMode %main OriginUpperLeft - OpExecutionMode %main PixelInterlockOrderedEXT - OpSource GLSL 450 - OpSourceExtension "GL_ARB_fragment_shader_interlock" - OpName %main "main" - OpName %callee2_ "callee2(" - OpName %callee_ "callee(" - OpName %SSBO1 "SSBO1" - OpMemberName %SSBO1 0 "values1" - OpName %_ "" - OpName %gl_FragCoord "gl_FragCoord" - OpName %SSBO0 "SSBO0" - OpMemberName %SSBO0 0 "values0" - OpName %__0 "" - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %SSBO1 0 Offset 0 - OpDecorate %SSBO1 BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 1 - OpDecorate %gl_FragCoord BuiltIn FragCoord - OpDecorate %_runtimearr_uint_0 ArrayStride 4 - OpMemberDecorate %SSBO0 0 Offset 0 - OpDecorate %SSBO0 BufferBlock - OpDecorate %__0 DescriptorSet 0 - OpDecorate %__0 Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 -%_runtimearr_uint = OpTypeRuntimeArray %uint - %SSBO1 = OpTypeStruct %_runtimearr_uint -%_ptr_Uniform_SSBO1 = OpTypePointer Uniform %SSBO1 - %_ = OpVariable %_ptr_Uniform_SSBO1 Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Input_v4float = OpTypePointer Input %v4float -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input - %uint_0 = OpConstant %uint 0 -%_ptr_Input_float = OpTypePointer Input %float - %uint_1 = OpConstant %uint 1 -%_ptr_Uniform_uint = OpTypePointer Uniform %uint -%_runtimearr_uint_0 = OpTypeRuntimeArray %uint - %SSBO0 = OpTypeStruct %_runtimearr_uint_0 -%_ptr_Uniform_SSBO0 = OpTypePointer Uniform %SSBO0 - %__0 = OpVariable %_ptr_Uniform_SSBO0 Uniform - %main = OpFunction %void None %3 - %5 = OpLabel - %44 = OpFunctionCall %void %callee_ - OpReturn - OpFunctionEnd - %callee2_ = OpFunction %void None %3 - %7 = OpLabel - %23 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_0 - %24 = OpLoad %float %23 - %25 = OpConvertFToS %int %24 - %28 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 %25 - %29 = OpLoad %uint %28 - %30 = OpIAdd %uint %29 %uint_1 - %31 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 %25 - OpStore %31 %30 - OpReturn - OpFunctionEnd - %callee_ = OpFunction %void None %3 - %9 = OpLabel - %36 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_0 - %37 = OpLoad %float %36 - %38 = OpConvertFToS %int %37 - %39 = OpAccessChain %_ptr_Uniform_uint %__0 %int_0 %38 - %40 = OpLoad %uint %39 - %41 = OpIAdd %uint %40 %uint_1 - %42 = OpAccessChain %_ptr_Uniform_uint %__0 %int_0 %38 - OpStore %42 %41 - OpBeginInvocationInterlockEXT - %43 = OpFunctionCall %void %callee2_ - OpEndInvocationInterlockEXT - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/pixel-interlock-control-flow.msl2.asm.frag b/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/pixel-interlock-control-flow.msl2.asm.frag deleted file mode 100644 index 69b8f91120..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/pixel-interlock-control-flow.msl2.asm.frag +++ /dev/null @@ -1,121 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 45 -; Schema: 0 - OpCapability Shader - OpCapability FragmentShaderPixelInterlockEXT - OpExtension "SPV_EXT_fragment_shader_interlock" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %gl_FragCoord - OpExecutionMode %main OriginUpperLeft - OpExecutionMode %main PixelInterlockOrderedEXT - OpSource GLSL 450 - OpSourceExtension "GL_ARB_fragment_shader_interlock" - OpName %main "main" - OpName %callee2_ "callee2(" - OpName %callee_ "callee(" - OpName %SSBO1 "SSBO1" - OpMemberName %SSBO1 0 "values1" - OpName %_ "" - OpName %gl_FragCoord "gl_FragCoord" - OpName %SSBO0 "SSBO0" - OpMemberName %SSBO0 0 "values0" - OpName %__0 "" - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %SSBO1 0 Offset 0 - OpDecorate %SSBO1 BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 1 - OpDecorate %gl_FragCoord BuiltIn FragCoord - OpDecorate %_runtimearr_uint_0 ArrayStride 4 - OpMemberDecorate %SSBO0 0 Offset 0 - OpDecorate %SSBO0 BufferBlock - OpDecorate %__0 DescriptorSet 0 - OpDecorate %__0 Binding 0 - - OpMemberDecorate %SSBO2 0 Offset 0 - OpDecorate %SSBO2 BufferBlock - OpDecorate %ssbo2 DescriptorSet 0 - OpDecorate %ssbo2 Binding 2 - - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 -%_runtimearr_uint = OpTypeRuntimeArray %uint - %SSBO1 = OpTypeStruct %_runtimearr_uint - %SSBO2 = OpTypeStruct %_runtimearr_uint -%_ptr_Uniform_SSBO1 = OpTypePointer Uniform %SSBO1 -%_ptr_Uniform_SSBO2 = OpTypePointer Uniform %SSBO2 - %_ = OpVariable %_ptr_Uniform_SSBO1 Uniform - %ssbo2 = OpVariable %_ptr_Uniform_SSBO2 Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %uint_4 = OpConstant %uint 4 - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %bool = OpTypeBool - %true = OpConstantTrue %bool -%_ptr_Input_v4float = OpTypePointer Input %v4float -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input - %uint_0 = OpConstant %uint 0 -%_ptr_Input_float = OpTypePointer Input %float - %uint_1 = OpConstant %uint 1 -%_ptr_Uniform_uint = OpTypePointer Uniform %uint -%_runtimearr_uint_0 = OpTypeRuntimeArray %uint - %SSBO0 = OpTypeStruct %_runtimearr_uint_0 -%_ptr_Uniform_SSBO0 = OpTypePointer Uniform %SSBO0 - %__0 = OpVariable %_ptr_Uniform_SSBO0 Uniform - %main = OpFunction %void None %3 - %5 = OpLabel - %44 = OpFunctionCall %void %callee_ - %callee3_res = OpFunctionCall %void %callee3_ - OpReturn - OpFunctionEnd - - %callee3_ = OpFunction %void None %3 - %calle3_block = OpLabel - %frag_coord_x_ptr = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_0 - %frag_coord_x = OpLoad %float %frag_coord_x_ptr - %frag_coord_int = OpConvertFToS %int %frag_coord_x - %ssbo_ptr = OpAccessChain %_ptr_Uniform_uint %ssbo2 %int_0 %frag_coord_int - OpStore %ssbo_ptr %uint_4 - OpReturn - OpFunctionEnd - - %callee2_ = OpFunction %void None %3 - %7 = OpLabel - %23 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_0 - %24 = OpLoad %float %23 - %25 = OpConvertFToS %int %24 - %28 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 %25 - %29 = OpLoad %uint %28 - %30 = OpIAdd %uint %29 %uint_1 - %31 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 %25 - OpStore %31 %30 - OpReturn - OpFunctionEnd - %callee_ = OpFunction %void None %3 - %9 = OpLabel - %36 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_0 - %37 = OpLoad %float %36 - %38 = OpConvertFToS %int %37 - %39 = OpAccessChain %_ptr_Uniform_uint %__0 %int_0 %38 - %40 = OpLoad %uint %39 - %41 = OpIAdd %uint %40 %uint_1 - %42 = OpAccessChain %_ptr_Uniform_uint %__0 %int_0 %38 - OpStore %42 %41 - %43 = OpFunctionCall %void %callee2_ - - OpSelectionMerge %merged_block None - OpBranchConditional %true %dummy_block %merged_block - %dummy_block = OpLabel - OpBeginInvocationInterlockEXT - OpEndInvocationInterlockEXT - OpBranch %merged_block - - %merged_block = OpLabel - OpReturn - - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/pixel-interlock-split-functions.msl2.asm.frag b/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/pixel-interlock-split-functions.msl2.asm.frag deleted file mode 100644 index 7c0fe9a2b2..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/pixel-interlock-split-functions.msl2.asm.frag +++ /dev/null @@ -1,102 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 45 -; Schema: 0 - OpCapability Shader - OpCapability FragmentShaderPixelInterlockEXT - OpExtension "SPV_EXT_fragment_shader_interlock" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %gl_FragCoord - OpExecutionMode %main OriginUpperLeft - OpExecutionMode %main PixelInterlockOrderedEXT - OpSource GLSL 450 - OpSourceExtension "GL_ARB_fragment_shader_interlock" - OpName %main "main" - OpName %callee2_ "callee2(" - OpName %callee_ "callee(" - OpName %SSBO1 "SSBO1" - OpMemberName %SSBO1 0 "values1" - OpName %_ "" - OpName %gl_FragCoord "gl_FragCoord" - OpName %SSBO0 "SSBO0" - OpMemberName %SSBO0 0 "values0" - OpName %__0 "" - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %SSBO1 0 Offset 0 - OpDecorate %SSBO1 BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 1 - OpDecorate %gl_FragCoord BuiltIn FragCoord - OpDecorate %_runtimearr_uint_0 ArrayStride 4 - OpMemberDecorate %SSBO0 0 Offset 0 - OpDecorate %SSBO0 BufferBlock - OpDecorate %__0 DescriptorSet 0 - OpDecorate %__0 Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 -%_runtimearr_uint = OpTypeRuntimeArray %uint - %SSBO1 = OpTypeStruct %_runtimearr_uint -%_ptr_Uniform_SSBO1 = OpTypePointer Uniform %SSBO1 - %_ = OpVariable %_ptr_Uniform_SSBO1 Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Input_v4float = OpTypePointer Input %v4float -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input - %uint_0 = OpConstant %uint 0 -%_ptr_Input_float = OpTypePointer Input %float - %uint_1 = OpConstant %uint 1 -%_ptr_Uniform_uint = OpTypePointer Uniform %uint -%_runtimearr_uint_0 = OpTypeRuntimeArray %uint - %SSBO0 = OpTypeStruct %_runtimearr_uint_0 -%_ptr_Uniform_SSBO0 = OpTypePointer Uniform %SSBO0 - %__0 = OpVariable %_ptr_Uniform_SSBO0 Uniform - %main = OpFunction %void None %3 - %5 = OpLabel - %44 = OpFunctionCall %void %callee_ - %call3res = OpFunctionCall %void %callee3_ - %call4res = OpFunctionCall %void %callee4_ - OpReturn - OpFunctionEnd - - %callee3_ = OpFunction %void None %3 - %begin3 = OpLabel - OpBeginInvocationInterlockEXT - OpReturn - OpFunctionEnd - - %callee4_ = OpFunction %void None %3 - %begin4 = OpLabel - OpEndInvocationInterlockEXT - OpReturn - OpFunctionEnd - - %callee2_ = OpFunction %void None %3 - %7 = OpLabel - %23 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_0 - %24 = OpLoad %float %23 - %25 = OpConvertFToS %int %24 - %28 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 %25 - %29 = OpLoad %uint %28 - %30 = OpIAdd %uint %29 %uint_1 - %31 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 %25 - OpStore %31 %30 - OpReturn - OpFunctionEnd - %callee_ = OpFunction %void None %3 - %9 = OpLabel - %36 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_0 - %37 = OpLoad %float %36 - %38 = OpConvertFToS %int %37 - %39 = OpAccessChain %_ptr_Uniform_uint %__0 %int_0 %38 - %40 = OpLoad %uint %39 - %41 = OpIAdd %uint %40 %uint_1 - %42 = OpAccessChain %_ptr_Uniform_uint %__0 %int_0 %38 - OpStore %42 %41 - %43 = OpFunctionCall %void %callee2_ - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/private-initializer-direct-store.asm.frag b/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/private-initializer-direct-store.asm.frag deleted file mode 100644 index 49ed96094a..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/private-initializer-direct-store.asm.frag +++ /dev/null @@ -1,32 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 17 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %b "b" - OpName %FragColor "FragColor" - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 -%_ptr_Private_float = OpTypePointer Private %float - %float_10 = OpConstant %float 10 - %float_20 = OpConstant %float 20 - %b = OpVariable %_ptr_Private_float Private %float_10 -%_ptr_Output_float = OpTypePointer Output %float - %FragColor = OpVariable %_ptr_Output_float Output - %main = OpFunction %void None %3 - %5 = OpLabel - OpStore %b %float_20 - %15 = OpLoad %float %b - %16 = OpFAdd %float %15 %15 - OpStore %FragColor %16 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/reserved-function-identifier.asm.frag b/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/reserved-function-identifier.asm.frag deleted file mode 100644 index a5a16f2873..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/reserved-function-identifier.asm.frag +++ /dev/null @@ -1,60 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 37 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %ACOS_f1_ "mat3" - OpName %a "a" - OpName %ACOS_i1_ "gl_Foo" - OpName %a_0 "a" - OpName %FragColor "FragColor" - OpName %param "param" - OpName %param_0 "param" - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 -%_ptr_Function_float = OpTypePointer Function %float - %8 = OpTypeFunction %float %_ptr_Function_float - %int = OpTypeInt 32 1 -%_ptr_Function_int = OpTypePointer Function %int - %14 = OpTypeFunction %float %_ptr_Function_int - %float_1 = OpConstant %float 1 -%_ptr_Output_float = OpTypePointer Output %float - %FragColor = OpVariable %_ptr_Output_float Output - %float_2 = OpConstant %float 2 - %int_4 = OpConstant %int 4 - %main = OpFunction %void None %3 - %5 = OpLabel - %param = OpVariable %_ptr_Function_float Function - %param_0 = OpVariable %_ptr_Function_int Function - OpStore %param %float_2 - %32 = OpFunctionCall %float %ACOS_f1_ %param - OpStore %param_0 %int_4 - %35 = OpFunctionCall %float %ACOS_i1_ %param_0 - %36 = OpFAdd %float %32 %35 - OpStore %FragColor %36 - OpReturn - OpFunctionEnd - %ACOS_f1_ = OpFunction %float None %8 - %a = OpFunctionParameter %_ptr_Function_float - %11 = OpLabel - %18 = OpLoad %float %a - %20 = OpFAdd %float %18 %float_1 - OpReturnValue %20 - OpFunctionEnd - %ACOS_i1_ = OpFunction %float None %14 - %a_0 = OpFunctionParameter %_ptr_Function_int - %17 = OpLabel - %23 = OpLoad %int %a_0 - %24 = OpConvertSToF %float %23 - %25 = OpFAdd %float %24 %float_1 - OpReturnValue %25 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/subgroup-arithmetic-cast.msl21.asm.frag b/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/subgroup-arithmetic-cast.msl21.asm.frag deleted file mode 100644 index 5f0734062d..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/subgroup-arithmetic-cast.msl21.asm.frag +++ /dev/null @@ -1,65 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 78 -; Schema: 0 - OpCapability Shader - OpCapability GroupNonUniform - OpCapability GroupNonUniformArithmetic - OpCapability GroupNonUniformClustered - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %index %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpSourceExtension "GL_KHR_shader_subgroup_arithmetic" - OpSourceExtension "GL_KHR_shader_subgroup_basic" - OpSourceExtension "GL_KHR_shader_subgroup_clustered" - OpName %main "main" - OpName %index "index" - OpName %FragColor "FragColor" - OpDecorate %index Flat - OpDecorate %index Location 0 - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 -%_ptr_Function_uint = OpTypePointer Function %uint - %uint_0 = OpConstant %uint 0 - %int = OpTypeInt 32 1 -%_ptr_Input_int = OpTypePointer Input %int - %index = OpVariable %_ptr_Input_int Input - %uint_3 = OpConstant %uint 3 - %uint_4 = OpConstant %uint 4 -%_ptr_Output_uint = OpTypePointer Output %uint - %FragColor = OpVariable %_ptr_Output_uint Output - %main = OpFunction %void None %3 - %5 = OpLabel - %i = OpLoad %int %index - %u = OpBitcast %uint %i - %res0 = OpGroupNonUniformSMin %uint %uint_3 Reduce %i - %res1 = OpGroupNonUniformSMax %uint %uint_3 Reduce %u - %res2 = OpGroupNonUniformUMin %uint %uint_3 Reduce %i - %res3 = OpGroupNonUniformUMax %uint %uint_3 Reduce %u - ;%res4 = OpGroupNonUniformSMax %uint %uint_3 InclusiveScan %i - ;%res5 = OpGroupNonUniformSMin %uint %uint_3 InclusiveScan %u - ;%res6 = OpGroupNonUniformUMax %uint %uint_3 ExclusiveScan %i - ;%res7 = OpGroupNonUniformUMin %uint %uint_3 ExclusiveScan %u - %res8 = OpGroupNonUniformSMin %uint %uint_3 ClusteredReduce %i %uint_4 - %res9 = OpGroupNonUniformSMax %uint %uint_3 ClusteredReduce %u %uint_4 - %res10 = OpGroupNonUniformUMin %uint %uint_3 ClusteredReduce %i %uint_4 - %res11 = OpGroupNonUniformUMax %uint %uint_3 ClusteredReduce %u %uint_4 - OpStore %FragColor %res0 - OpStore %FragColor %res1 - OpStore %FragColor %res2 - OpStore %FragColor %res3 - ;OpStore %FragColor %res4 - ;OpStore %FragColor %res5 - ;OpStore %FragColor %res6 - ;OpStore %FragColor %res7 - OpStore %FragColor %res8 - OpStore %FragColor %res9 - OpStore %FragColor %res10 - OpStore %FragColor %res11 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/switch-block-case-fallthrough.asm.invalid.frag b/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/switch-block-case-fallthrough.asm.invalid.frag deleted file mode 100644 index 6556c3c8c4..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/switch-block-case-fallthrough.asm.invalid.frag +++ /dev/null @@ -1,80 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 29 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %vIndex %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %vIndex "vIndex" - OpName %FragColor "FragColor" - OpName %i "i" - OpName %j "j" - OpDecorate %vIndex Flat - OpDecorate %vIndex Location 0 - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %bool = OpTypeBool - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 - %int_2 = OpConstant %int 2 - %int_3 = OpConstant %int 3 -%_ptr_Input_int = OpTypePointer Input %int - %vIndex = OpVariable %_ptr_Input_int Input - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output -%_ptr_Function_int = OpTypePointer Function %int - %main = OpFunction %void None %3 - %header = OpLabel - %i = OpVariable %_ptr_Function_int Function %int_0 - %j = OpVariable %_ptr_Function_int Function - %9 = OpLoad %int %vIndex - OpSelectionMerge %switch_merge None - OpSwitch %9 %default_case 100 %default_case 0 %case_0 1 %case_1 11 %case_1 2 %case_2 3 %case_3 4 %case_4 5 %case_5 - - %case_0 = OpLabel - OpBranch %default_case - - %default_case = OpLabel - %default_case_phi = OpPhi %int %int_2 %header %int_3 %case_0 - ; Test what happens when a case block dominates access to a variable. - OpStore %j %default_case_phi - OpBranch %case_1 - - %case_1 = OpLabel - ; Test phi nodes between case labels. - %case_1_phi = OpPhi %int %int_0 %default_case %int_1 %header - OpStore %j %case_1_phi - OpBranch %case_2 - - %case_2 = OpLabel - OpBranch %switch_merge - - %case_3 = OpLabel - ; Conditionally branch to another case block. This is really dumb, but it is apparently legal. - %case_3_cond = OpSGreaterThan %bool %9 %int_3 - OpBranchConditional %case_3_cond %case_4 %switch_merge - - %case_4 = OpLabel - ; When emitted from case 3, we should *not* see fallthrough behavior. - OpBranch %case_5 - - %case_5 = OpLabel - OpStore %i %int_0 - OpBranch %switch_merge - - %switch_merge = OpLabel - %26 = OpLoad %int %i - %27 = OpConvertSToF %float %26 - %28 = OpCompositeConstruct %v4float %27 %27 %27 %27 - OpStore %FragColor %28 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/texture-access.swizzle.asm.frag b/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/texture-access.swizzle.asm.frag deleted file mode 100644 index 4c1408b38c..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/texture-access.swizzle.asm.frag +++ /dev/null @@ -1,364 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 247 -; Schema: 0 - OpCapability Shader - OpCapability Sampled1D - OpCapability SampledCubeArray - OpCapability SampledBuffer - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %c "c" - OpName %tex1d "tex1d" - OpName %tex2d "tex2d" - OpName %tex3d "tex3d" - OpName %texCube "texCube" - OpName %tex2dArray "tex2dArray" - OpName %texCubeArray "texCubeArray" - OpName %depth2d "depth2d" - OpName %depthCube "depthCube" - OpName %depth2dArray "depth2dArray" - OpName %depthCubeArray "depthCubeArray" - OpName %texBuffer "texBuffer" - OpName %tex1dSamp "tex1dSamp" - OpName %tex2dSamp "tex2dSamp" - OpName %tex3dSamp "tex3dSamp" - OpName %texCubeSamp "texCubeSamp" - OpName %tex2dArraySamp "tex2dArraySamp" - OpName %texCubeArraySamp "texCubeArraySamp" - OpName %depth2dSamp "depth2dSamp" - OpName %depthCubeSamp "depthCubeSamp" - OpName %depth2dArraySamp "depth2dArraySamp" - OpName %depthCubeArraySamp "depthCubeArraySamp" - OpDecorate %tex1d DescriptorSet 0 - OpDecorate %tex1d Binding 0 - OpDecorate %tex2d DescriptorSet 0 - OpDecorate %tex2d Binding 1 - OpDecorate %tex3d DescriptorSet 0 - OpDecorate %tex3d Binding 2 - OpDecorate %texCube DescriptorSet 0 - OpDecorate %texCube Binding 3 - OpDecorate %tex2dArray DescriptorSet 0 - OpDecorate %tex2dArray Binding 4 - OpDecorate %texCubeArray DescriptorSet 0 - OpDecorate %texCubeArray Binding 5 - OpDecorate %depth2d DescriptorSet 0 - OpDecorate %depth2d Binding 7 - OpDecorate %depthCube DescriptorSet 0 - OpDecorate %depthCube Binding 8 - OpDecorate %depth2dArray DescriptorSet 0 - OpDecorate %depth2dArray Binding 9 - OpDecorate %depthCubeArray DescriptorSet 0 - OpDecorate %depthCubeArray Binding 10 - OpDecorate %texBuffer DescriptorSet 0 - OpDecorate %texBuffer Binding 6 - OpDecorate %tex1dSamp DescriptorSet 1 - OpDecorate %tex1dSamp Binding 0 - OpDecorate %tex2dSamp DescriptorSet 1 - OpDecorate %tex2dSamp Binding 1 - OpDecorate %tex3dSamp DescriptorSet 1 - OpDecorate %tex3dSamp Binding 2 - OpDecorate %texCubeSamp DescriptorSet 1 - OpDecorate %texCubeSamp Binding 3 - OpDecorate %tex2dArraySamp DescriptorSet 1 - OpDecorate %tex2dArraySamp Binding 4 - OpDecorate %texCubeArraySamp DescriptorSet 1 - OpDecorate %texCubeArraySamp Binding 5 - OpDecorate %depth2dSamp DescriptorSet 1 - OpDecorate %depth2dSamp Binding 7 - OpDecorate %depthCubeSamp DescriptorSet 1 - OpDecorate %depthCubeSamp Binding 8 - OpDecorate %depth2dArraySamp DescriptorSet 1 - OpDecorate %depth2dArraySamp Binding 9 - OpDecorate %depthCubeArraySamp DescriptorSet 1 - OpDecorate %depthCubeArraySamp Binding 10 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Function_v4float = OpTypePointer Function %v4float - %10 = OpTypeImage %float 1D 0 0 0 1 Unknown - %11 = OpTypeSampledImage %10 - %12 = OpTypeSampler -%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10 - %tex1d = OpVariable %_ptr_UniformConstant_10 UniformConstant -%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12 - %tex1dSamp = OpVariable %_ptr_UniformConstant_12 UniformConstant - %float_0 = OpConstant %float 0 - %17 = OpTypeImage %float 2D 0 0 0 1 Unknown - %18 = OpTypeSampledImage %17 -%_ptr_UniformConstant_17 = OpTypePointer UniformConstant %17 - %tex2d = OpVariable %_ptr_UniformConstant_17 UniformConstant - %tex2dSamp = OpVariable %_ptr_UniformConstant_12 UniformConstant - %v2float = OpTypeVector %float 2 - %23 = OpConstantComposite %v2float %float_0 %float_0 - %25 = OpTypeImage %float 3D 0 0 0 1 Unknown - %26 = OpTypeSampledImage %25 -%_ptr_UniformConstant_25 = OpTypePointer UniformConstant %25 - %tex3d = OpVariable %_ptr_UniformConstant_25 UniformConstant - %tex3dSamp = OpVariable %_ptr_UniformConstant_12 UniformConstant - %v3float = OpTypeVector %float 3 - %31 = OpConstantComposite %v3float %float_0 %float_0 %float_0 - %33 = OpTypeImage %float Cube 0 0 0 1 Unknown - %34 = OpTypeSampledImage %33 -%_ptr_UniformConstant_33 = OpTypePointer UniformConstant %33 - %texCube = OpVariable %_ptr_UniformConstant_33 UniformConstant -%texCubeSamp = OpVariable %_ptr_UniformConstant_12 UniformConstant - %39 = OpTypeImage %float 2D 0 1 0 1 Unknown - %40 = OpTypeSampledImage %39 -%_ptr_UniformConstant_39 = OpTypePointer UniformConstant %39 - %tex2dArray = OpVariable %_ptr_UniformConstant_39 UniformConstant -%tex2dArraySamp = OpVariable %_ptr_UniformConstant_12 UniformConstant - %45 = OpTypeImage %float Cube 0 1 0 1 Unknown - %46 = OpTypeSampledImage %45 -%_ptr_UniformConstant_45 = OpTypePointer UniformConstant %45 -%texCubeArray = OpVariable %_ptr_UniformConstant_45 UniformConstant -%texCubeArraySamp = OpVariable %_ptr_UniformConstant_12 UniformConstant - %50 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 - %52 = OpTypeImage %float 2D 1 0 0 1 Unknown - %53 = OpTypeSampledImage %52 -%_ptr_UniformConstant_52 = OpTypePointer UniformConstant %52 - %depth2d = OpVariable %_ptr_UniformConstant_52 UniformConstant -%depth2dSamp = OpVariable %_ptr_UniformConstant_12 UniformConstant - %float_1 = OpConstant %float 1 - %58 = OpConstantComposite %v3float %float_0 %float_0 %float_1 - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 -%_ptr_Function_float = OpTypePointer Function %float - %65 = OpTypeImage %float Cube 1 0 0 1 Unknown - %66 = OpTypeSampledImage %65 -%_ptr_UniformConstant_65 = OpTypePointer UniformConstant %65 - %depthCube = OpVariable %_ptr_UniformConstant_65 UniformConstant -%depthCubeSamp = OpVariable %_ptr_UniformConstant_12 UniformConstant - %70 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1 - %74 = OpTypeImage %float 2D 1 1 0 1 Unknown - %75 = OpTypeSampledImage %74 -%_ptr_UniformConstant_74 = OpTypePointer UniformConstant %74 -%depth2dArray = OpVariable %_ptr_UniformConstant_74 UniformConstant -%depth2dArraySamp = OpVariable %_ptr_UniformConstant_12 UniformConstant - %82 = OpTypeImage %float Cube 1 1 0 1 Unknown - %83 = OpTypeSampledImage %82 -%_ptr_UniformConstant_82 = OpTypePointer UniformConstant %82 -%depthCubeArray = OpVariable %_ptr_UniformConstant_82 UniformConstant -%depthCubeArraySamp = OpVariable %_ptr_UniformConstant_12 UniformConstant - %97 = OpConstantComposite %v2float %float_0 %float_1 - %98 = OpConstantComposite %v4float %float_0 %float_0 %float_1 %float_1 - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %v2int = OpTypeVector %int 2 - %138 = OpConstantComposite %v2int %int_0 %int_0 - %v3int = OpTypeVector %int 3 - %143 = OpConstantComposite %v3int %int_0 %int_0 %int_0 - %149 = OpTypeImage %float Buffer 0 0 0 1 Unknown -%_ptr_UniformConstant_149 = OpTypePointer UniformConstant %149 - %texBuffer = OpVariable %_ptr_UniformConstant_149 UniformConstant - %int_1 = OpConstant %int 1 - %int_2 = OpConstant %int 2 - %int_3 = OpConstant %int 3 - %main = OpFunction %void None %3 - %5 = OpLabel - %c = OpVariable %_ptr_Function_v4float Function - %13 = OpLoad %10 %tex1d - %14 = OpLoad %12 %tex1dSamp - %15 = OpSampledImage %11 %13 %14 - %16 = OpImageSampleImplicitLod %v4float %15 %float_0 - OpStore %c %16 - %19 = OpLoad %17 %tex2d - %20 = OpLoad %12 %tex2dSamp - %21 = OpSampledImage %18 %19 %20 - %24 = OpImageSampleImplicitLod %v4float %21 %23 - OpStore %c %24 - %27 = OpLoad %25 %tex3d - %28 = OpLoad %12 %tex3dSamp - %29 = OpSampledImage %26 %27 %28 - %32 = OpImageSampleImplicitLod %v4float %29 %31 - OpStore %c %32 - %35 = OpLoad %33 %texCube - %36 = OpLoad %12 %texCubeSamp - %37 = OpSampledImage %34 %35 %36 - %38 = OpImageSampleImplicitLod %v4float %37 %31 - OpStore %c %38 - %41 = OpLoad %39 %tex2dArray - %42 = OpLoad %12 %tex2dArraySamp - %43 = OpSampledImage %40 %41 %42 - %44 = OpImageSampleImplicitLod %v4float %43 %31 - OpStore %c %44 - %47 = OpLoad %45 %texCubeArray - %48 = OpLoad %12 %texCubeArraySamp - %49 = OpSampledImage %46 %47 %48 - %51 = OpImageSampleImplicitLod %v4float %49 %50 - OpStore %c %51 - %54 = OpLoad %52 %depth2d - %55 = OpLoad %12 %depth2dSamp - %56 = OpSampledImage %53 %54 %55 - %59 = OpCompositeExtract %float %58 2 - %60 = OpImageSampleDrefImplicitLod %float %56 %58 %59 - %64 = OpAccessChain %_ptr_Function_float %c %uint_0 - OpStore %64 %60 - %67 = OpLoad %65 %depthCube - %68 = OpLoad %12 %depthCubeSamp - %69 = OpSampledImage %66 %67 %68 - %71 = OpCompositeExtract %float %70 3 - %72 = OpImageSampleDrefImplicitLod %float %69 %70 %71 - %73 = OpAccessChain %_ptr_Function_float %c %uint_0 - OpStore %73 %72 - %76 = OpLoad %74 %depth2dArray - %77 = OpLoad %12 %depth2dArraySamp - %78 = OpSampledImage %75 %76 %77 - %79 = OpCompositeExtract %float %70 3 - %80 = OpImageSampleDrefImplicitLod %float %78 %70 %79 - %81 = OpAccessChain %_ptr_Function_float %c %uint_0 - OpStore %81 %80 - %84 = OpLoad %82 %depthCubeArray - %85 = OpLoad %12 %depthCubeArraySamp - %86 = OpSampledImage %83 %84 %85 - %87 = OpImageSampleDrefImplicitLod %float %86 %50 %float_1 - %88 = OpAccessChain %_ptr_Function_float %c %uint_0 - OpStore %88 %87 - %89 = OpLoad %10 %tex1d - %90 = OpLoad %12 %tex1dSamp - %91 = OpSampledImage %11 %89 %90 - %92 = OpImageSampleProjImplicitLod %v4float %91 %97 - OpStore %c %92 - %93 = OpLoad %17 %tex2d - %94 = OpLoad %12 %tex2dSamp - %95 = OpSampledImage %18 %93 %94 - %96 = OpImageSampleProjImplicitLod %v4float %95 %58 - OpStore %c %96 - %99 = OpLoad %25 %tex3d - %100 = OpLoad %12 %tex3dSamp - %101 = OpSampledImage %26 %99 %100 - %102 = OpImageSampleProjImplicitLod %v4float %101 %70 - OpStore %c %102 - %103 = OpLoad %52 %depth2d - %104 = OpLoad %12 %depth2dSamp - %105 = OpSampledImage %53 %103 %104 - %106 = OpCompositeExtract %float %98 2 - %107 = OpCompositeExtract %float %98 3 - %108 = OpCompositeInsert %v4float %107 %98 2 - %109 = OpImageSampleProjDrefImplicitLod %float %105 %108 %106 - %110 = OpAccessChain %_ptr_Function_float %c %uint_0 - OpStore %110 %109 - %111 = OpLoad %10 %tex1d - %112 = OpLoad %12 %tex1dSamp - %113 = OpSampledImage %11 %111 %112 - %114 = OpImageSampleExplicitLod %v4float %113 %float_0 Lod %float_0 - OpStore %c %114 - %115 = OpLoad %17 %tex2d - %116 = OpLoad %12 %tex2dSamp - %117 = OpSampledImage %18 %115 %116 - %118 = OpImageSampleExplicitLod %v4float %117 %23 Lod %float_0 - OpStore %c %118 - %119 = OpLoad %25 %tex3d - %120 = OpLoad %12 %tex3dSamp - %121 = OpSampledImage %26 %119 %120 - %122 = OpImageSampleExplicitLod %v4float %121 %31 Lod %float_0 - OpStore %c %122 - %123 = OpLoad %33 %texCube - %124 = OpLoad %12 %texCubeSamp - %125 = OpSampledImage %34 %123 %124 - %126 = OpImageSampleExplicitLod %v4float %125 %31 Lod %float_0 - OpStore %c %126 - %127 = OpLoad %39 %tex2dArray - %128 = OpLoad %12 %tex2dArraySamp - %129 = OpSampledImage %40 %127 %128 - %130 = OpImageSampleExplicitLod %v4float %129 %31 Lod %float_0 - OpStore %c %130 - %131 = OpLoad %45 %texCubeArray - %132 = OpLoad %12 %texCubeArraySamp - %133 = OpSampledImage %46 %131 %132 - %134 = OpImageSampleExplicitLod %v4float %133 %50 Lod %float_0 - OpStore %c %134 - %135 = OpLoad %52 %depth2d - %136 = OpLoad %12 %depth2dSamp - %137 = OpSampledImage %53 %135 %136 - %139 = OpCompositeExtract %float %58 2 - %140 = OpImageSampleDrefExplicitLod %float %137 %58 %139 Lod %float_0 - %141 = OpAccessChain %_ptr_Function_float %c %uint_0 - OpStore %141 %140 - %142 = OpLoad %10 %tex1d - %144 = OpLoad %12 %tex1dSamp - %145 = OpSampledImage %11 %142 %144 - %146 = OpImageSampleProjExplicitLod %v4float %145 %97 Lod %float_0 - OpStore %c %146 - %147 = OpLoad %17 %tex2d - %148 = OpLoad %12 %tex2dSamp - %150 = OpSampledImage %18 %147 %148 - %151 = OpImageSampleProjExplicitLod %v4float %150 %58 Lod %float_0 - OpStore %c %151 - %152 = OpLoad %25 %tex3d - %153 = OpLoad %12 %tex3dSamp - %154 = OpSampledImage %26 %152 %153 - %155 = OpImageSampleProjExplicitLod %v4float %154 %70 Lod %float_0 - OpStore %c %155 - %156 = OpLoad %52 %depth2d - %157 = OpLoad %12 %depth2dSamp - %158 = OpSampledImage %53 %156 %157 - %159 = OpCompositeExtract %float %98 2 - %160 = OpCompositeExtract %float %98 3 - %161 = OpCompositeInsert %v4float %160 %98 2 - %162 = OpImageSampleProjDrefExplicitLod %float %158 %161 %159 Lod %float_0 - %163 = OpAccessChain %_ptr_Function_float %c %uint_0 - OpStore %163 %162 - %164 = OpLoad %10 %tex1d - %165 = OpImageFetch %v4float %164 %int_0 Lod %int_0 - OpStore %c %165 - %166 = OpLoad %17 %tex2d - %167 = OpImageFetch %v4float %166 %138 Lod %int_0 - OpStore %c %167 - %168 = OpLoad %25 %tex3d - %169 = OpImageFetch %v4float %168 %143 Lod %int_0 - OpStore %c %169 - %170 = OpLoad %39 %tex2dArray - %171 = OpImageFetch %v4float %170 %143 Lod %int_0 - OpStore %c %171 - %172 = OpLoad %149 %texBuffer - %173 = OpImageFetch %v4float %172 %int_0 - OpStore %c %173 - %174 = OpLoad %17 %tex2d - %175 = OpLoad %12 %tex2dSamp - %176 = OpSampledImage %18 %174 %175 - %177 = OpImageGather %v4float %176 %23 %int_0 - OpStore %c %177 - %178 = OpLoad %33 %texCube - %179 = OpLoad %12 %texCubeSamp - %180 = OpSampledImage %34 %178 %179 - %181 = OpImageGather %v4float %180 %31 %int_1 - OpStore %c %181 - %182 = OpLoad %39 %tex2dArray - %183 = OpLoad %12 %tex2dArraySamp - %184 = OpSampledImage %40 %182 %183 - %185 = OpImageGather %v4float %184 %31 %int_2 - OpStore %c %185 - %186 = OpLoad %45 %texCubeArray - %187 = OpLoad %12 %texCubeArraySamp - %188 = OpSampledImage %46 %186 %187 - %189 = OpImageGather %v4float %188 %50 %int_3 - OpStore %c %189 - %190 = OpLoad %52 %depth2d - %191 = OpLoad %12 %depth2dSamp - %192 = OpSampledImage %53 %190 %191 - %193 = OpImageDrefGather %v4float %192 %23 %float_1 - OpStore %c %193 - %194 = OpLoad %65 %depthCube - %195 = OpLoad %12 %depthCubeSamp - %196 = OpSampledImage %66 %194 %195 - %197 = OpImageDrefGather %v4float %196 %31 %float_1 - OpStore %c %197 - %198 = OpLoad %74 %depth2dArray - %199 = OpLoad %12 %depth2dArraySamp - %200 = OpSampledImage %75 %198 %199 - %201 = OpImageDrefGather %v4float %200 %31 %float_1 - OpStore %c %201 - %202 = OpLoad %82 %depthCubeArray - %203 = OpLoad %12 %depthCubeArraySamp - %204 = OpSampledImage %83 %202 %203 - %205 = OpImageDrefGather %v4float %204 %50 %float_1 - OpStore %c %205 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/vector-shuffle-undef-index.asm.frag b/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/vector-shuffle-undef-index.asm.frag deleted file mode 100644 index 22c4efca93..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/frag/vector-shuffle-undef-index.asm.frag +++ /dev/null @@ -1,42 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 29 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %vFloat - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %FragColor "FragColor" - OpName %vFloat "vFloat" - OpName %undef "undef" - OpDecorate %FragColor Location 0 - OpDecorate %vFloat Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output -%_ptr_Input_v4float = OpTypePointer Input %v4float - %vFloat = OpVariable %_ptr_Input_v4float Input - %v2float = OpTypeVector %float 2 -%_ptr_Private_v4float = OpTypePointer Private %v4float - %undef = OpUndef %v4float - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 -%_ptr_Private_float = OpTypePointer Private %float - %uint_3 = OpConstant %uint 3 -%_ptr_Input_float = OpTypePointer Input %float - %main = OpFunction %void None %3 - %5 = OpLabel - %13 = OpLoad %v4float %vFloat - %26 = OpVectorShuffle %v4float %13 %undef 4 1 0xffffffff 3 - %27 = OpVectorShuffle %v4float %13 %13 2 1 0xffffffff 3 - %28 = OpFAdd %v4float %26 %27 - OpStore %FragColor %28 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers-block.mask-location-0.msl2.asm.tesc b/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers-block.mask-location-0.msl2.asm.tesc deleted file mode 100644 index a3d489941c..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers-block.mask-location-0.msl2.asm.tesc +++ /dev/null @@ -1,85 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 44 -; Schema: 0 - OpCapability Tessellation - OpCapability TessellationPointSize - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %main "main" %c %gl_InvocationID %p %gl_out - OpExecutionMode %main OutputVertices 4 - OpSource GLSL 450 - OpName %main "main" - OpName %C "C" - OpMemberName %C 0 "v" - OpName %c "c" - OpName %gl_InvocationID "gl_InvocationID" - OpName %P "P" - OpMemberName %P 0 "v" - OpName %p "p" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %gl_out "gl_out" - OpDecorate %C Block - OpDecorate %c Location 0 - OpDecorate %gl_InvocationID BuiltIn InvocationId - OpMemberDecorate %P 0 Patch - OpDecorate %P Block - OpDecorate %p Location 1 - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %C = OpTypeStruct %v4float - %uint = OpTypeInt 32 0 - %uint_4 = OpConstant %uint 4 -%_arr_C_uint_4 = OpTypeArray %C %uint_4 -%_ptr_Output__arr_C_uint_4 = OpTypePointer Output %_arr_C_uint_4 - %zero_c = OpConstantNull %_arr_C_uint_4 - %c = OpVariable %_ptr_Output__arr_C_uint_4 Output %zero_c - %int = OpTypeInt 32 1 -%_ptr_Input_int = OpTypePointer Input %int -%gl_InvocationID = OpVariable %_ptr_Input_int Input - %int_0 = OpConstant %int 0 - %float_1 = OpConstant %float 1 - %20 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %P = OpTypeStruct %v4float -%_ptr_Output_P = OpTypePointer Output %P - %zero_p = OpConstantNull %P - %p = OpVariable %_ptr_Output_P Output %zero_p - %float_2 = OpConstant %float 2 - %27 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 -%_arr_gl_PerVertex_uint_4 = OpTypeArray %gl_PerVertex %uint_4 -%_ptr_Output__arr_gl_PerVertex_uint_4 = OpTypePointer Output %_arr_gl_PerVertex_uint_4 - %gl_out = OpVariable %_ptr_Output__arr_gl_PerVertex_uint_4 Output - %float_3 = OpConstant %float 3 - %37 = OpConstantComposite %v4float %float_3 %float_3 %float_3 %float_3 - %int_1 = OpConstant %int 1 - %float_4 = OpConstant %float 4 -%_ptr_Output_float = OpTypePointer Output %float - %main = OpFunction %void None %3 - %5 = OpLabel - %17 = OpLoad %int %gl_InvocationID - %22 = OpAccessChain %_ptr_Output_v4float %c %17 %int_0 - OpStore %22 %20 - %28 = OpAccessChain %_ptr_Output_v4float %p %int_0 - OpStore %28 %27 - %38 = OpAccessChain %_ptr_Output_v4float %gl_out %17 %int_0 - OpStore %38 %37 - %43 = OpAccessChain %_ptr_Output_float %gl_out %17 %int_1 - OpStore %43 %float_4 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers-block.mask-location-0.multi-patch.msl2.asm.tesc b/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers-block.mask-location-0.multi-patch.msl2.asm.tesc deleted file mode 100644 index a3d489941c..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers-block.mask-location-0.multi-patch.msl2.asm.tesc +++ /dev/null @@ -1,85 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 44 -; Schema: 0 - OpCapability Tessellation - OpCapability TessellationPointSize - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %main "main" %c %gl_InvocationID %p %gl_out - OpExecutionMode %main OutputVertices 4 - OpSource GLSL 450 - OpName %main "main" - OpName %C "C" - OpMemberName %C 0 "v" - OpName %c "c" - OpName %gl_InvocationID "gl_InvocationID" - OpName %P "P" - OpMemberName %P 0 "v" - OpName %p "p" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %gl_out "gl_out" - OpDecorate %C Block - OpDecorate %c Location 0 - OpDecorate %gl_InvocationID BuiltIn InvocationId - OpMemberDecorate %P 0 Patch - OpDecorate %P Block - OpDecorate %p Location 1 - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %C = OpTypeStruct %v4float - %uint = OpTypeInt 32 0 - %uint_4 = OpConstant %uint 4 -%_arr_C_uint_4 = OpTypeArray %C %uint_4 -%_ptr_Output__arr_C_uint_4 = OpTypePointer Output %_arr_C_uint_4 - %zero_c = OpConstantNull %_arr_C_uint_4 - %c = OpVariable %_ptr_Output__arr_C_uint_4 Output %zero_c - %int = OpTypeInt 32 1 -%_ptr_Input_int = OpTypePointer Input %int -%gl_InvocationID = OpVariable %_ptr_Input_int Input - %int_0 = OpConstant %int 0 - %float_1 = OpConstant %float 1 - %20 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %P = OpTypeStruct %v4float -%_ptr_Output_P = OpTypePointer Output %P - %zero_p = OpConstantNull %P - %p = OpVariable %_ptr_Output_P Output %zero_p - %float_2 = OpConstant %float 2 - %27 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 -%_arr_gl_PerVertex_uint_4 = OpTypeArray %gl_PerVertex %uint_4 -%_ptr_Output__arr_gl_PerVertex_uint_4 = OpTypePointer Output %_arr_gl_PerVertex_uint_4 - %gl_out = OpVariable %_ptr_Output__arr_gl_PerVertex_uint_4 Output - %float_3 = OpConstant %float 3 - %37 = OpConstantComposite %v4float %float_3 %float_3 %float_3 %float_3 - %int_1 = OpConstant %int 1 - %float_4 = OpConstant %float 4 -%_ptr_Output_float = OpTypePointer Output %float - %main = OpFunction %void None %3 - %5 = OpLabel - %17 = OpLoad %int %gl_InvocationID - %22 = OpAccessChain %_ptr_Output_v4float %c %17 %int_0 - OpStore %22 %20 - %28 = OpAccessChain %_ptr_Output_v4float %p %int_0 - OpStore %28 %27 - %38 = OpAccessChain %_ptr_Output_v4float %gl_out %17 %int_0 - OpStore %38 %37 - %43 = OpAccessChain %_ptr_Output_float %gl_out %17 %int_1 - OpStore %43 %float_4 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers-block.mask-location-1.msl2.asm.tesc b/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers-block.mask-location-1.msl2.asm.tesc deleted file mode 100644 index a3d489941c..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers-block.mask-location-1.msl2.asm.tesc +++ /dev/null @@ -1,85 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 44 -; Schema: 0 - OpCapability Tessellation - OpCapability TessellationPointSize - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %main "main" %c %gl_InvocationID %p %gl_out - OpExecutionMode %main OutputVertices 4 - OpSource GLSL 450 - OpName %main "main" - OpName %C "C" - OpMemberName %C 0 "v" - OpName %c "c" - OpName %gl_InvocationID "gl_InvocationID" - OpName %P "P" - OpMemberName %P 0 "v" - OpName %p "p" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %gl_out "gl_out" - OpDecorate %C Block - OpDecorate %c Location 0 - OpDecorate %gl_InvocationID BuiltIn InvocationId - OpMemberDecorate %P 0 Patch - OpDecorate %P Block - OpDecorate %p Location 1 - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %C = OpTypeStruct %v4float - %uint = OpTypeInt 32 0 - %uint_4 = OpConstant %uint 4 -%_arr_C_uint_4 = OpTypeArray %C %uint_4 -%_ptr_Output__arr_C_uint_4 = OpTypePointer Output %_arr_C_uint_4 - %zero_c = OpConstantNull %_arr_C_uint_4 - %c = OpVariable %_ptr_Output__arr_C_uint_4 Output %zero_c - %int = OpTypeInt 32 1 -%_ptr_Input_int = OpTypePointer Input %int -%gl_InvocationID = OpVariable %_ptr_Input_int Input - %int_0 = OpConstant %int 0 - %float_1 = OpConstant %float 1 - %20 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %P = OpTypeStruct %v4float -%_ptr_Output_P = OpTypePointer Output %P - %zero_p = OpConstantNull %P - %p = OpVariable %_ptr_Output_P Output %zero_p - %float_2 = OpConstant %float 2 - %27 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 -%_arr_gl_PerVertex_uint_4 = OpTypeArray %gl_PerVertex %uint_4 -%_ptr_Output__arr_gl_PerVertex_uint_4 = OpTypePointer Output %_arr_gl_PerVertex_uint_4 - %gl_out = OpVariable %_ptr_Output__arr_gl_PerVertex_uint_4 Output - %float_3 = OpConstant %float 3 - %37 = OpConstantComposite %v4float %float_3 %float_3 %float_3 %float_3 - %int_1 = OpConstant %int 1 - %float_4 = OpConstant %float 4 -%_ptr_Output_float = OpTypePointer Output %float - %main = OpFunction %void None %3 - %5 = OpLabel - %17 = OpLoad %int %gl_InvocationID - %22 = OpAccessChain %_ptr_Output_v4float %c %17 %int_0 - OpStore %22 %20 - %28 = OpAccessChain %_ptr_Output_v4float %p %int_0 - OpStore %28 %27 - %38 = OpAccessChain %_ptr_Output_v4float %gl_out %17 %int_0 - OpStore %38 %37 - %43 = OpAccessChain %_ptr_Output_float %gl_out %17 %int_1 - OpStore %43 %float_4 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers-block.mask-location-1.multi-patch.msl2.asm.tesc b/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers-block.mask-location-1.multi-patch.msl2.asm.tesc deleted file mode 100644 index a3d489941c..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers-block.mask-location-1.multi-patch.msl2.asm.tesc +++ /dev/null @@ -1,85 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 44 -; Schema: 0 - OpCapability Tessellation - OpCapability TessellationPointSize - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %main "main" %c %gl_InvocationID %p %gl_out - OpExecutionMode %main OutputVertices 4 - OpSource GLSL 450 - OpName %main "main" - OpName %C "C" - OpMemberName %C 0 "v" - OpName %c "c" - OpName %gl_InvocationID "gl_InvocationID" - OpName %P "P" - OpMemberName %P 0 "v" - OpName %p "p" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %gl_out "gl_out" - OpDecorate %C Block - OpDecorate %c Location 0 - OpDecorate %gl_InvocationID BuiltIn InvocationId - OpMemberDecorate %P 0 Patch - OpDecorate %P Block - OpDecorate %p Location 1 - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %C = OpTypeStruct %v4float - %uint = OpTypeInt 32 0 - %uint_4 = OpConstant %uint 4 -%_arr_C_uint_4 = OpTypeArray %C %uint_4 -%_ptr_Output__arr_C_uint_4 = OpTypePointer Output %_arr_C_uint_4 - %zero_c = OpConstantNull %_arr_C_uint_4 - %c = OpVariable %_ptr_Output__arr_C_uint_4 Output %zero_c - %int = OpTypeInt 32 1 -%_ptr_Input_int = OpTypePointer Input %int -%gl_InvocationID = OpVariable %_ptr_Input_int Input - %int_0 = OpConstant %int 0 - %float_1 = OpConstant %float 1 - %20 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %P = OpTypeStruct %v4float -%_ptr_Output_P = OpTypePointer Output %P - %zero_p = OpConstantNull %P - %p = OpVariable %_ptr_Output_P Output %zero_p - %float_2 = OpConstant %float 2 - %27 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 -%_arr_gl_PerVertex_uint_4 = OpTypeArray %gl_PerVertex %uint_4 -%_ptr_Output__arr_gl_PerVertex_uint_4 = OpTypePointer Output %_arr_gl_PerVertex_uint_4 - %gl_out = OpVariable %_ptr_Output__arr_gl_PerVertex_uint_4 Output - %float_3 = OpConstant %float 3 - %37 = OpConstantComposite %v4float %float_3 %float_3 %float_3 %float_3 - %int_1 = OpConstant %int 1 - %float_4 = OpConstant %float 4 -%_ptr_Output_float = OpTypePointer Output %float - %main = OpFunction %void None %3 - %5 = OpLabel - %17 = OpLoad %int %gl_InvocationID - %22 = OpAccessChain %_ptr_Output_v4float %c %17 %int_0 - OpStore %22 %20 - %28 = OpAccessChain %_ptr_Output_v4float %p %int_0 - OpStore %28 %27 - %38 = OpAccessChain %_ptr_Output_v4float %gl_out %17 %int_0 - OpStore %38 %37 - %43 = OpAccessChain %_ptr_Output_float %gl_out %17 %int_1 - OpStore %43 %float_4 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers-block.mask-point-size.msl2.asm.tesc b/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers-block.mask-point-size.msl2.asm.tesc deleted file mode 100644 index 23424ff7ba..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers-block.mask-point-size.msl2.asm.tesc +++ /dev/null @@ -1,86 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 44 -; Schema: 0 - OpCapability Tessellation - OpCapability TessellationPointSize - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %main "main" %c %gl_InvocationID %p %gl_out - OpExecutionMode %main OutputVertices 4 - OpSource GLSL 450 - OpName %main "main" - OpName %C "C" - OpMemberName %C 0 "v" - OpName %c "c" - OpName %gl_InvocationID "gl_InvocationID" - OpName %P "P" - OpMemberName %P 0 "v" - OpName %p "p" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %gl_out "gl_out" - OpDecorate %C Block - OpDecorate %c Location 0 - OpDecorate %gl_InvocationID BuiltIn InvocationId - OpMemberDecorate %P 0 Patch - OpDecorate %P Block - OpDecorate %p Location 1 - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %C = OpTypeStruct %v4float - %uint = OpTypeInt 32 0 - %uint_4 = OpConstant %uint 4 -%_arr_C_uint_4 = OpTypeArray %C %uint_4 -%_ptr_Output__arr_C_uint_4 = OpTypePointer Output %_arr_C_uint_4 - %zero_c = OpConstantNull %_arr_C_uint_4 - %c = OpVariable %_ptr_Output__arr_C_uint_4 Output %zero_c - %int = OpTypeInt 32 1 -%_ptr_Input_int = OpTypePointer Input %int -%gl_InvocationID = OpVariable %_ptr_Input_int Input - %int_0 = OpConstant %int 0 - %float_1 = OpConstant %float 1 - %20 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %P = OpTypeStruct %v4float -%_ptr_Output_P = OpTypePointer Output %P - %zero_p = OpConstantNull %P - %p = OpVariable %_ptr_Output_P Output %zero_p - %float_2 = OpConstant %float 2 - %27 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 -%_arr_gl_PerVertex_uint_4 = OpTypeArray %gl_PerVertex %uint_4 -%_ptr_Output__arr_gl_PerVertex_uint_4 = OpTypePointer Output %_arr_gl_PerVertex_uint_4 - %zero_gl_out = OpConstantNull %_arr_gl_PerVertex_uint_4 - %gl_out = OpVariable %_ptr_Output__arr_gl_PerVertex_uint_4 Output %zero_gl_out - %float_3 = OpConstant %float 3 - %37 = OpConstantComposite %v4float %float_3 %float_3 %float_3 %float_3 - %int_1 = OpConstant %int 1 - %float_4 = OpConstant %float 4 -%_ptr_Output_float = OpTypePointer Output %float - %main = OpFunction %void None %3 - %5 = OpLabel - %17 = OpLoad %int %gl_InvocationID - %22 = OpAccessChain %_ptr_Output_v4float %c %17 %int_0 - OpStore %22 %20 - %28 = OpAccessChain %_ptr_Output_v4float %p %int_0 - OpStore %28 %27 - %38 = OpAccessChain %_ptr_Output_v4float %gl_out %17 %int_0 - OpStore %38 %37 - %43 = OpAccessChain %_ptr_Output_float %gl_out %17 %int_1 - OpStore %43 %float_4 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers-block.mask-point-size.multi-patch.msl2.asm.tesc b/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers-block.mask-point-size.multi-patch.msl2.asm.tesc deleted file mode 100644 index 23424ff7ba..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers-block.mask-point-size.multi-patch.msl2.asm.tesc +++ /dev/null @@ -1,86 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 44 -; Schema: 0 - OpCapability Tessellation - OpCapability TessellationPointSize - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %main "main" %c %gl_InvocationID %p %gl_out - OpExecutionMode %main OutputVertices 4 - OpSource GLSL 450 - OpName %main "main" - OpName %C "C" - OpMemberName %C 0 "v" - OpName %c "c" - OpName %gl_InvocationID "gl_InvocationID" - OpName %P "P" - OpMemberName %P 0 "v" - OpName %p "p" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %gl_out "gl_out" - OpDecorate %C Block - OpDecorate %c Location 0 - OpDecorate %gl_InvocationID BuiltIn InvocationId - OpMemberDecorate %P 0 Patch - OpDecorate %P Block - OpDecorate %p Location 1 - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %C = OpTypeStruct %v4float - %uint = OpTypeInt 32 0 - %uint_4 = OpConstant %uint 4 -%_arr_C_uint_4 = OpTypeArray %C %uint_4 -%_ptr_Output__arr_C_uint_4 = OpTypePointer Output %_arr_C_uint_4 - %zero_c = OpConstantNull %_arr_C_uint_4 - %c = OpVariable %_ptr_Output__arr_C_uint_4 Output %zero_c - %int = OpTypeInt 32 1 -%_ptr_Input_int = OpTypePointer Input %int -%gl_InvocationID = OpVariable %_ptr_Input_int Input - %int_0 = OpConstant %int 0 - %float_1 = OpConstant %float 1 - %20 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %P = OpTypeStruct %v4float -%_ptr_Output_P = OpTypePointer Output %P - %zero_p = OpConstantNull %P - %p = OpVariable %_ptr_Output_P Output %zero_p - %float_2 = OpConstant %float 2 - %27 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 -%_arr_gl_PerVertex_uint_4 = OpTypeArray %gl_PerVertex %uint_4 -%_ptr_Output__arr_gl_PerVertex_uint_4 = OpTypePointer Output %_arr_gl_PerVertex_uint_4 - %zero_gl_out = OpConstantNull %_arr_gl_PerVertex_uint_4 - %gl_out = OpVariable %_ptr_Output__arr_gl_PerVertex_uint_4 Output %zero_gl_out - %float_3 = OpConstant %float 3 - %37 = OpConstantComposite %v4float %float_3 %float_3 %float_3 %float_3 - %int_1 = OpConstant %int 1 - %float_4 = OpConstant %float 4 -%_ptr_Output_float = OpTypePointer Output %float - %main = OpFunction %void None %3 - %5 = OpLabel - %17 = OpLoad %int %gl_InvocationID - %22 = OpAccessChain %_ptr_Output_v4float %c %17 %int_0 - OpStore %22 %20 - %28 = OpAccessChain %_ptr_Output_v4float %p %int_0 - OpStore %28 %27 - %38 = OpAccessChain %_ptr_Output_v4float %gl_out %17 %int_0 - OpStore %38 %37 - %43 = OpAccessChain %_ptr_Output_float %gl_out %17 %int_1 - OpStore %43 %float_4 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers-block.mask-position.msl2.asm.tesc b/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers-block.mask-position.msl2.asm.tesc deleted file mode 100644 index 23424ff7ba..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers-block.mask-position.msl2.asm.tesc +++ /dev/null @@ -1,86 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 44 -; Schema: 0 - OpCapability Tessellation - OpCapability TessellationPointSize - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %main "main" %c %gl_InvocationID %p %gl_out - OpExecutionMode %main OutputVertices 4 - OpSource GLSL 450 - OpName %main "main" - OpName %C "C" - OpMemberName %C 0 "v" - OpName %c "c" - OpName %gl_InvocationID "gl_InvocationID" - OpName %P "P" - OpMemberName %P 0 "v" - OpName %p "p" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %gl_out "gl_out" - OpDecorate %C Block - OpDecorate %c Location 0 - OpDecorate %gl_InvocationID BuiltIn InvocationId - OpMemberDecorate %P 0 Patch - OpDecorate %P Block - OpDecorate %p Location 1 - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %C = OpTypeStruct %v4float - %uint = OpTypeInt 32 0 - %uint_4 = OpConstant %uint 4 -%_arr_C_uint_4 = OpTypeArray %C %uint_4 -%_ptr_Output__arr_C_uint_4 = OpTypePointer Output %_arr_C_uint_4 - %zero_c = OpConstantNull %_arr_C_uint_4 - %c = OpVariable %_ptr_Output__arr_C_uint_4 Output %zero_c - %int = OpTypeInt 32 1 -%_ptr_Input_int = OpTypePointer Input %int -%gl_InvocationID = OpVariable %_ptr_Input_int Input - %int_0 = OpConstant %int 0 - %float_1 = OpConstant %float 1 - %20 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %P = OpTypeStruct %v4float -%_ptr_Output_P = OpTypePointer Output %P - %zero_p = OpConstantNull %P - %p = OpVariable %_ptr_Output_P Output %zero_p - %float_2 = OpConstant %float 2 - %27 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 -%_arr_gl_PerVertex_uint_4 = OpTypeArray %gl_PerVertex %uint_4 -%_ptr_Output__arr_gl_PerVertex_uint_4 = OpTypePointer Output %_arr_gl_PerVertex_uint_4 - %zero_gl_out = OpConstantNull %_arr_gl_PerVertex_uint_4 - %gl_out = OpVariable %_ptr_Output__arr_gl_PerVertex_uint_4 Output %zero_gl_out - %float_3 = OpConstant %float 3 - %37 = OpConstantComposite %v4float %float_3 %float_3 %float_3 %float_3 - %int_1 = OpConstant %int 1 - %float_4 = OpConstant %float 4 -%_ptr_Output_float = OpTypePointer Output %float - %main = OpFunction %void None %3 - %5 = OpLabel - %17 = OpLoad %int %gl_InvocationID - %22 = OpAccessChain %_ptr_Output_v4float %c %17 %int_0 - OpStore %22 %20 - %28 = OpAccessChain %_ptr_Output_v4float %p %int_0 - OpStore %28 %27 - %38 = OpAccessChain %_ptr_Output_v4float %gl_out %17 %int_0 - OpStore %38 %37 - %43 = OpAccessChain %_ptr_Output_float %gl_out %17 %int_1 - OpStore %43 %float_4 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers-block.mask-position.multi-patch.msl2.asm.tesc b/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers-block.mask-position.multi-patch.msl2.asm.tesc deleted file mode 100644 index 23424ff7ba..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers-block.mask-position.multi-patch.msl2.asm.tesc +++ /dev/null @@ -1,86 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 44 -; Schema: 0 - OpCapability Tessellation - OpCapability TessellationPointSize - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %main "main" %c %gl_InvocationID %p %gl_out - OpExecutionMode %main OutputVertices 4 - OpSource GLSL 450 - OpName %main "main" - OpName %C "C" - OpMemberName %C 0 "v" - OpName %c "c" - OpName %gl_InvocationID "gl_InvocationID" - OpName %P "P" - OpMemberName %P 0 "v" - OpName %p "p" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %gl_out "gl_out" - OpDecorate %C Block - OpDecorate %c Location 0 - OpDecorate %gl_InvocationID BuiltIn InvocationId - OpMemberDecorate %P 0 Patch - OpDecorate %P Block - OpDecorate %p Location 1 - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %C = OpTypeStruct %v4float - %uint = OpTypeInt 32 0 - %uint_4 = OpConstant %uint 4 -%_arr_C_uint_4 = OpTypeArray %C %uint_4 -%_ptr_Output__arr_C_uint_4 = OpTypePointer Output %_arr_C_uint_4 - %zero_c = OpConstantNull %_arr_C_uint_4 - %c = OpVariable %_ptr_Output__arr_C_uint_4 Output %zero_c - %int = OpTypeInt 32 1 -%_ptr_Input_int = OpTypePointer Input %int -%gl_InvocationID = OpVariable %_ptr_Input_int Input - %int_0 = OpConstant %int 0 - %float_1 = OpConstant %float 1 - %20 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %P = OpTypeStruct %v4float -%_ptr_Output_P = OpTypePointer Output %P - %zero_p = OpConstantNull %P - %p = OpVariable %_ptr_Output_P Output %zero_p - %float_2 = OpConstant %float 2 - %27 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 -%_arr_gl_PerVertex_uint_4 = OpTypeArray %gl_PerVertex %uint_4 -%_ptr_Output__arr_gl_PerVertex_uint_4 = OpTypePointer Output %_arr_gl_PerVertex_uint_4 - %zero_gl_out = OpConstantNull %_arr_gl_PerVertex_uint_4 - %gl_out = OpVariable %_ptr_Output__arr_gl_PerVertex_uint_4 Output %zero_gl_out - %float_3 = OpConstant %float 3 - %37 = OpConstantComposite %v4float %float_3 %float_3 %float_3 %float_3 - %int_1 = OpConstant %int 1 - %float_4 = OpConstant %float 4 -%_ptr_Output_float = OpTypePointer Output %float - %main = OpFunction %void None %3 - %5 = OpLabel - %17 = OpLoad %int %gl_InvocationID - %22 = OpAccessChain %_ptr_Output_v4float %c %17 %int_0 - OpStore %22 %20 - %28 = OpAccessChain %_ptr_Output_v4float %p %int_0 - OpStore %28 %27 - %38 = OpAccessChain %_ptr_Output_v4float %gl_out %17 %int_0 - OpStore %38 %37 - %43 = OpAccessChain %_ptr_Output_float %gl_out %17 %int_1 - OpStore %43 %float_4 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers.mask-location-0.msl2.asm.tesc b/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers.mask-location-0.msl2.asm.tesc deleted file mode 100644 index 6b616b0416..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers.mask-location-0.msl2.asm.tesc +++ /dev/null @@ -1,76 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 40 -; Schema: 0 - OpCapability Tessellation - OpCapability TessellationPointSize - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %main "main" %foo %gl_InvocationID %foo_patch %gl_out - OpExecutionMode %main OutputVertices 4 - OpSource GLSL 450 - OpName %main "main" - OpName %foo "foo" - OpName %gl_InvocationID "gl_InvocationID" - OpName %foo_patch "foo_patch" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %gl_out "gl_out" - OpDecorate %foo Location 0 - OpDecorate %gl_InvocationID BuiltIn InvocationId - OpDecorate %foo_patch Patch - OpDecorate %foo_patch Location 1 - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %uint = OpTypeInt 32 0 - %uint_4 = OpConstant %uint 4 -%_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4 - %zero_foo = OpConstantNull %_arr_v4float_uint_4 -%_ptr_Output__arr_v4float_uint_4 = OpTypePointer Output %_arr_v4float_uint_4 - %foo = OpVariable %_ptr_Output__arr_v4float_uint_4 Output %zero_foo - %int = OpTypeInt 32 1 -%_ptr_Input_int = OpTypePointer Input %int -%gl_InvocationID = OpVariable %_ptr_Input_int Input - %float_1 = OpConstant %float 1 - %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %zero_foo_patch = OpConstantNull %v4float - %foo_patch = OpVariable %_ptr_Output_v4float Output %zero_foo_patch - %float_2 = OpConstant %float 2 - %23 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 -%_arr_gl_PerVertex_uint_4 = OpTypeArray %gl_PerVertex %uint_4 -%_ptr_Output__arr_gl_PerVertex_uint_4 = OpTypePointer Output %_arr_gl_PerVertex_uint_4 - %zero_gl_out = OpConstantNull %_arr_gl_PerVertex_uint_4 - %gl_out = OpVariable %_ptr_Output__arr_gl_PerVertex_uint_4 Output %zero_gl_out - %int_0 = OpConstant %int 0 - %float_3 = OpConstant %float 3 - %33 = OpConstantComposite %v4float %float_3 %float_3 %float_3 %float_3 - %int_1 = OpConstant %int 1 - %float_4 = OpConstant %float 4 -%_ptr_Output_float = OpTypePointer Output %float - %main = OpFunction %void None %3 - %5 = OpLabel - %16 = OpLoad %int %gl_InvocationID - %20 = OpAccessChain %_ptr_Output_v4float %foo %16 - OpStore %20 %18 - OpStore %foo_patch %23 - %34 = OpAccessChain %_ptr_Output_v4float %gl_out %16 %int_0 - OpStore %34 %33 - %39 = OpAccessChain %_ptr_Output_float %gl_out %16 %int_1 - OpStore %39 %float_4 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers.mask-location-0.msl2.multi-patch.asm.tesc b/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers.mask-location-0.msl2.multi-patch.asm.tesc deleted file mode 100644 index 6b616b0416..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers.mask-location-0.msl2.multi-patch.asm.tesc +++ /dev/null @@ -1,76 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 40 -; Schema: 0 - OpCapability Tessellation - OpCapability TessellationPointSize - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %main "main" %foo %gl_InvocationID %foo_patch %gl_out - OpExecutionMode %main OutputVertices 4 - OpSource GLSL 450 - OpName %main "main" - OpName %foo "foo" - OpName %gl_InvocationID "gl_InvocationID" - OpName %foo_patch "foo_patch" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %gl_out "gl_out" - OpDecorate %foo Location 0 - OpDecorate %gl_InvocationID BuiltIn InvocationId - OpDecorate %foo_patch Patch - OpDecorate %foo_patch Location 1 - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %uint = OpTypeInt 32 0 - %uint_4 = OpConstant %uint 4 -%_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4 - %zero_foo = OpConstantNull %_arr_v4float_uint_4 -%_ptr_Output__arr_v4float_uint_4 = OpTypePointer Output %_arr_v4float_uint_4 - %foo = OpVariable %_ptr_Output__arr_v4float_uint_4 Output %zero_foo - %int = OpTypeInt 32 1 -%_ptr_Input_int = OpTypePointer Input %int -%gl_InvocationID = OpVariable %_ptr_Input_int Input - %float_1 = OpConstant %float 1 - %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %zero_foo_patch = OpConstantNull %v4float - %foo_patch = OpVariable %_ptr_Output_v4float Output %zero_foo_patch - %float_2 = OpConstant %float 2 - %23 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 -%_arr_gl_PerVertex_uint_4 = OpTypeArray %gl_PerVertex %uint_4 -%_ptr_Output__arr_gl_PerVertex_uint_4 = OpTypePointer Output %_arr_gl_PerVertex_uint_4 - %zero_gl_out = OpConstantNull %_arr_gl_PerVertex_uint_4 - %gl_out = OpVariable %_ptr_Output__arr_gl_PerVertex_uint_4 Output %zero_gl_out - %int_0 = OpConstant %int 0 - %float_3 = OpConstant %float 3 - %33 = OpConstantComposite %v4float %float_3 %float_3 %float_3 %float_3 - %int_1 = OpConstant %int 1 - %float_4 = OpConstant %float 4 -%_ptr_Output_float = OpTypePointer Output %float - %main = OpFunction %void None %3 - %5 = OpLabel - %16 = OpLoad %int %gl_InvocationID - %20 = OpAccessChain %_ptr_Output_v4float %foo %16 - OpStore %20 %18 - OpStore %foo_patch %23 - %34 = OpAccessChain %_ptr_Output_v4float %gl_out %16 %int_0 - OpStore %34 %33 - %39 = OpAccessChain %_ptr_Output_float %gl_out %16 %int_1 - OpStore %39 %float_4 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers.mask-location-1.asm.tesc b/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers.mask-location-1.asm.tesc deleted file mode 100644 index 6b616b0416..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers.mask-location-1.asm.tesc +++ /dev/null @@ -1,76 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 40 -; Schema: 0 - OpCapability Tessellation - OpCapability TessellationPointSize - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %main "main" %foo %gl_InvocationID %foo_patch %gl_out - OpExecutionMode %main OutputVertices 4 - OpSource GLSL 450 - OpName %main "main" - OpName %foo "foo" - OpName %gl_InvocationID "gl_InvocationID" - OpName %foo_patch "foo_patch" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %gl_out "gl_out" - OpDecorate %foo Location 0 - OpDecorate %gl_InvocationID BuiltIn InvocationId - OpDecorate %foo_patch Patch - OpDecorate %foo_patch Location 1 - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %uint = OpTypeInt 32 0 - %uint_4 = OpConstant %uint 4 -%_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4 - %zero_foo = OpConstantNull %_arr_v4float_uint_4 -%_ptr_Output__arr_v4float_uint_4 = OpTypePointer Output %_arr_v4float_uint_4 - %foo = OpVariable %_ptr_Output__arr_v4float_uint_4 Output %zero_foo - %int = OpTypeInt 32 1 -%_ptr_Input_int = OpTypePointer Input %int -%gl_InvocationID = OpVariable %_ptr_Input_int Input - %float_1 = OpConstant %float 1 - %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %zero_foo_patch = OpConstantNull %v4float - %foo_patch = OpVariable %_ptr_Output_v4float Output %zero_foo_patch - %float_2 = OpConstant %float 2 - %23 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 -%_arr_gl_PerVertex_uint_4 = OpTypeArray %gl_PerVertex %uint_4 -%_ptr_Output__arr_gl_PerVertex_uint_4 = OpTypePointer Output %_arr_gl_PerVertex_uint_4 - %zero_gl_out = OpConstantNull %_arr_gl_PerVertex_uint_4 - %gl_out = OpVariable %_ptr_Output__arr_gl_PerVertex_uint_4 Output %zero_gl_out - %int_0 = OpConstant %int 0 - %float_3 = OpConstant %float 3 - %33 = OpConstantComposite %v4float %float_3 %float_3 %float_3 %float_3 - %int_1 = OpConstant %int 1 - %float_4 = OpConstant %float 4 -%_ptr_Output_float = OpTypePointer Output %float - %main = OpFunction %void None %3 - %5 = OpLabel - %16 = OpLoad %int %gl_InvocationID - %20 = OpAccessChain %_ptr_Output_v4float %foo %16 - OpStore %20 %18 - OpStore %foo_patch %23 - %34 = OpAccessChain %_ptr_Output_v4float %gl_out %16 %int_0 - OpStore %34 %33 - %39 = OpAccessChain %_ptr_Output_float %gl_out %16 %int_1 - OpStore %39 %float_4 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers.mask-location-1.multi-patch.asm.tesc b/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers.mask-location-1.multi-patch.asm.tesc deleted file mode 100644 index 6b616b0416..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers.mask-location-1.multi-patch.asm.tesc +++ /dev/null @@ -1,76 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 40 -; Schema: 0 - OpCapability Tessellation - OpCapability TessellationPointSize - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %main "main" %foo %gl_InvocationID %foo_patch %gl_out - OpExecutionMode %main OutputVertices 4 - OpSource GLSL 450 - OpName %main "main" - OpName %foo "foo" - OpName %gl_InvocationID "gl_InvocationID" - OpName %foo_patch "foo_patch" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %gl_out "gl_out" - OpDecorate %foo Location 0 - OpDecorate %gl_InvocationID BuiltIn InvocationId - OpDecorate %foo_patch Patch - OpDecorate %foo_patch Location 1 - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %uint = OpTypeInt 32 0 - %uint_4 = OpConstant %uint 4 -%_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4 - %zero_foo = OpConstantNull %_arr_v4float_uint_4 -%_ptr_Output__arr_v4float_uint_4 = OpTypePointer Output %_arr_v4float_uint_4 - %foo = OpVariable %_ptr_Output__arr_v4float_uint_4 Output %zero_foo - %int = OpTypeInt 32 1 -%_ptr_Input_int = OpTypePointer Input %int -%gl_InvocationID = OpVariable %_ptr_Input_int Input - %float_1 = OpConstant %float 1 - %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %zero_foo_patch = OpConstantNull %v4float - %foo_patch = OpVariable %_ptr_Output_v4float Output %zero_foo_patch - %float_2 = OpConstant %float 2 - %23 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 -%_arr_gl_PerVertex_uint_4 = OpTypeArray %gl_PerVertex %uint_4 -%_ptr_Output__arr_gl_PerVertex_uint_4 = OpTypePointer Output %_arr_gl_PerVertex_uint_4 - %zero_gl_out = OpConstantNull %_arr_gl_PerVertex_uint_4 - %gl_out = OpVariable %_ptr_Output__arr_gl_PerVertex_uint_4 Output %zero_gl_out - %int_0 = OpConstant %int 0 - %float_3 = OpConstant %float 3 - %33 = OpConstantComposite %v4float %float_3 %float_3 %float_3 %float_3 - %int_1 = OpConstant %int 1 - %float_4 = OpConstant %float 4 -%_ptr_Output_float = OpTypePointer Output %float - %main = OpFunction %void None %3 - %5 = OpLabel - %16 = OpLoad %int %gl_InvocationID - %20 = OpAccessChain %_ptr_Output_v4float %foo %16 - OpStore %20 %18 - OpStore %foo_patch %23 - %34 = OpAccessChain %_ptr_Output_v4float %gl_out %16 %int_0 - OpStore %34 %33 - %39 = OpAccessChain %_ptr_Output_float %gl_out %16 %int_1 - OpStore %39 %float_4 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers.mask-point-size.msl2.asm.tesc b/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers.mask-point-size.msl2.asm.tesc deleted file mode 100644 index 6b616b0416..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers.mask-point-size.msl2.asm.tesc +++ /dev/null @@ -1,76 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 40 -; Schema: 0 - OpCapability Tessellation - OpCapability TessellationPointSize - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %main "main" %foo %gl_InvocationID %foo_patch %gl_out - OpExecutionMode %main OutputVertices 4 - OpSource GLSL 450 - OpName %main "main" - OpName %foo "foo" - OpName %gl_InvocationID "gl_InvocationID" - OpName %foo_patch "foo_patch" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %gl_out "gl_out" - OpDecorate %foo Location 0 - OpDecorate %gl_InvocationID BuiltIn InvocationId - OpDecorate %foo_patch Patch - OpDecorate %foo_patch Location 1 - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %uint = OpTypeInt 32 0 - %uint_4 = OpConstant %uint 4 -%_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4 - %zero_foo = OpConstantNull %_arr_v4float_uint_4 -%_ptr_Output__arr_v4float_uint_4 = OpTypePointer Output %_arr_v4float_uint_4 - %foo = OpVariable %_ptr_Output__arr_v4float_uint_4 Output %zero_foo - %int = OpTypeInt 32 1 -%_ptr_Input_int = OpTypePointer Input %int -%gl_InvocationID = OpVariable %_ptr_Input_int Input - %float_1 = OpConstant %float 1 - %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %zero_foo_patch = OpConstantNull %v4float - %foo_patch = OpVariable %_ptr_Output_v4float Output %zero_foo_patch - %float_2 = OpConstant %float 2 - %23 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 -%_arr_gl_PerVertex_uint_4 = OpTypeArray %gl_PerVertex %uint_4 -%_ptr_Output__arr_gl_PerVertex_uint_4 = OpTypePointer Output %_arr_gl_PerVertex_uint_4 - %zero_gl_out = OpConstantNull %_arr_gl_PerVertex_uint_4 - %gl_out = OpVariable %_ptr_Output__arr_gl_PerVertex_uint_4 Output %zero_gl_out - %int_0 = OpConstant %int 0 - %float_3 = OpConstant %float 3 - %33 = OpConstantComposite %v4float %float_3 %float_3 %float_3 %float_3 - %int_1 = OpConstant %int 1 - %float_4 = OpConstant %float 4 -%_ptr_Output_float = OpTypePointer Output %float - %main = OpFunction %void None %3 - %5 = OpLabel - %16 = OpLoad %int %gl_InvocationID - %20 = OpAccessChain %_ptr_Output_v4float %foo %16 - OpStore %20 %18 - OpStore %foo_patch %23 - %34 = OpAccessChain %_ptr_Output_v4float %gl_out %16 %int_0 - OpStore %34 %33 - %39 = OpAccessChain %_ptr_Output_float %gl_out %16 %int_1 - OpStore %39 %float_4 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers.mask-point-size.msl2.multi-patch.asm.tesc b/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers.mask-point-size.msl2.multi-patch.asm.tesc deleted file mode 100644 index 6b616b0416..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers.mask-point-size.msl2.multi-patch.asm.tesc +++ /dev/null @@ -1,76 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 40 -; Schema: 0 - OpCapability Tessellation - OpCapability TessellationPointSize - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %main "main" %foo %gl_InvocationID %foo_patch %gl_out - OpExecutionMode %main OutputVertices 4 - OpSource GLSL 450 - OpName %main "main" - OpName %foo "foo" - OpName %gl_InvocationID "gl_InvocationID" - OpName %foo_patch "foo_patch" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %gl_out "gl_out" - OpDecorate %foo Location 0 - OpDecorate %gl_InvocationID BuiltIn InvocationId - OpDecorate %foo_patch Patch - OpDecorate %foo_patch Location 1 - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %uint = OpTypeInt 32 0 - %uint_4 = OpConstant %uint 4 -%_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4 - %zero_foo = OpConstantNull %_arr_v4float_uint_4 -%_ptr_Output__arr_v4float_uint_4 = OpTypePointer Output %_arr_v4float_uint_4 - %foo = OpVariable %_ptr_Output__arr_v4float_uint_4 Output %zero_foo - %int = OpTypeInt 32 1 -%_ptr_Input_int = OpTypePointer Input %int -%gl_InvocationID = OpVariable %_ptr_Input_int Input - %float_1 = OpConstant %float 1 - %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %zero_foo_patch = OpConstantNull %v4float - %foo_patch = OpVariable %_ptr_Output_v4float Output %zero_foo_patch - %float_2 = OpConstant %float 2 - %23 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 -%_arr_gl_PerVertex_uint_4 = OpTypeArray %gl_PerVertex %uint_4 -%_ptr_Output__arr_gl_PerVertex_uint_4 = OpTypePointer Output %_arr_gl_PerVertex_uint_4 - %zero_gl_out = OpConstantNull %_arr_gl_PerVertex_uint_4 - %gl_out = OpVariable %_ptr_Output__arr_gl_PerVertex_uint_4 Output %zero_gl_out - %int_0 = OpConstant %int 0 - %float_3 = OpConstant %float 3 - %33 = OpConstantComposite %v4float %float_3 %float_3 %float_3 %float_3 - %int_1 = OpConstant %int 1 - %float_4 = OpConstant %float 4 -%_ptr_Output_float = OpTypePointer Output %float - %main = OpFunction %void None %3 - %5 = OpLabel - %16 = OpLoad %int %gl_InvocationID - %20 = OpAccessChain %_ptr_Output_v4float %foo %16 - OpStore %20 %18 - OpStore %foo_patch %23 - %34 = OpAccessChain %_ptr_Output_v4float %gl_out %16 %int_0 - OpStore %34 %33 - %39 = OpAccessChain %_ptr_Output_float %gl_out %16 %int_1 - OpStore %39 %float_4 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers.mask-position.msl2.asm.tesc b/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers.mask-position.msl2.asm.tesc deleted file mode 100644 index 6b616b0416..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers.mask-position.msl2.asm.tesc +++ /dev/null @@ -1,76 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 40 -; Schema: 0 - OpCapability Tessellation - OpCapability TessellationPointSize - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %main "main" %foo %gl_InvocationID %foo_patch %gl_out - OpExecutionMode %main OutputVertices 4 - OpSource GLSL 450 - OpName %main "main" - OpName %foo "foo" - OpName %gl_InvocationID "gl_InvocationID" - OpName %foo_patch "foo_patch" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %gl_out "gl_out" - OpDecorate %foo Location 0 - OpDecorate %gl_InvocationID BuiltIn InvocationId - OpDecorate %foo_patch Patch - OpDecorate %foo_patch Location 1 - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %uint = OpTypeInt 32 0 - %uint_4 = OpConstant %uint 4 -%_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4 - %zero_foo = OpConstantNull %_arr_v4float_uint_4 -%_ptr_Output__arr_v4float_uint_4 = OpTypePointer Output %_arr_v4float_uint_4 - %foo = OpVariable %_ptr_Output__arr_v4float_uint_4 Output %zero_foo - %int = OpTypeInt 32 1 -%_ptr_Input_int = OpTypePointer Input %int -%gl_InvocationID = OpVariable %_ptr_Input_int Input - %float_1 = OpConstant %float 1 - %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %zero_foo_patch = OpConstantNull %v4float - %foo_patch = OpVariable %_ptr_Output_v4float Output %zero_foo_patch - %float_2 = OpConstant %float 2 - %23 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 -%_arr_gl_PerVertex_uint_4 = OpTypeArray %gl_PerVertex %uint_4 -%_ptr_Output__arr_gl_PerVertex_uint_4 = OpTypePointer Output %_arr_gl_PerVertex_uint_4 - %zero_gl_out = OpConstantNull %_arr_gl_PerVertex_uint_4 - %gl_out = OpVariable %_ptr_Output__arr_gl_PerVertex_uint_4 Output %zero_gl_out - %int_0 = OpConstant %int 0 - %float_3 = OpConstant %float 3 - %33 = OpConstantComposite %v4float %float_3 %float_3 %float_3 %float_3 - %int_1 = OpConstant %int 1 - %float_4 = OpConstant %float 4 -%_ptr_Output_float = OpTypePointer Output %float - %main = OpFunction %void None %3 - %5 = OpLabel - %16 = OpLoad %int %gl_InvocationID - %20 = OpAccessChain %_ptr_Output_v4float %foo %16 - OpStore %20 %18 - OpStore %foo_patch %23 - %34 = OpAccessChain %_ptr_Output_v4float %gl_out %16 %int_0 - OpStore %34 %33 - %39 = OpAccessChain %_ptr_Output_float %gl_out %16 %int_1 - OpStore %39 %float_4 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers.mask-position.msl2.multi-patch.asm.tesc b/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers.mask-position.msl2.multi-patch.asm.tesc deleted file mode 100644 index 6b616b0416..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/masking/initializers.mask-position.msl2.multi-patch.asm.tesc +++ /dev/null @@ -1,76 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 40 -; Schema: 0 - OpCapability Tessellation - OpCapability TessellationPointSize - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %main "main" %foo %gl_InvocationID %foo_patch %gl_out - OpExecutionMode %main OutputVertices 4 - OpSource GLSL 450 - OpName %main "main" - OpName %foo "foo" - OpName %gl_InvocationID "gl_InvocationID" - OpName %foo_patch "foo_patch" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %gl_out "gl_out" - OpDecorate %foo Location 0 - OpDecorate %gl_InvocationID BuiltIn InvocationId - OpDecorate %foo_patch Patch - OpDecorate %foo_patch Location 1 - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %uint = OpTypeInt 32 0 - %uint_4 = OpConstant %uint 4 -%_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4 - %zero_foo = OpConstantNull %_arr_v4float_uint_4 -%_ptr_Output__arr_v4float_uint_4 = OpTypePointer Output %_arr_v4float_uint_4 - %foo = OpVariable %_ptr_Output__arr_v4float_uint_4 Output %zero_foo - %int = OpTypeInt 32 1 -%_ptr_Input_int = OpTypePointer Input %int -%gl_InvocationID = OpVariable %_ptr_Input_int Input - %float_1 = OpConstant %float 1 - %18 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %zero_foo_patch = OpConstantNull %v4float - %foo_patch = OpVariable %_ptr_Output_v4float Output %zero_foo_patch - %float_2 = OpConstant %float 2 - %23 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 -%_arr_gl_PerVertex_uint_4 = OpTypeArray %gl_PerVertex %uint_4 -%_ptr_Output__arr_gl_PerVertex_uint_4 = OpTypePointer Output %_arr_gl_PerVertex_uint_4 - %zero_gl_out = OpConstantNull %_arr_gl_PerVertex_uint_4 - %gl_out = OpVariable %_ptr_Output__arr_gl_PerVertex_uint_4 Output %zero_gl_out - %int_0 = OpConstant %int 0 - %float_3 = OpConstant %float 3 - %33 = OpConstantComposite %v4float %float_3 %float_3 %float_3 %float_3 - %int_1 = OpConstant %int 1 - %float_4 = OpConstant %float 4 -%_ptr_Output_float = OpTypePointer Output %float - %main = OpFunction %void None %3 - %5 = OpLabel - %16 = OpLoad %int %gl_InvocationID - %20 = OpAccessChain %_ptr_Output_v4float %foo %16 - OpStore %20 %18 - OpStore %foo_patch %23 - %34 = OpAccessChain %_ptr_Output_v4float %gl_out %16 %int_0 - OpStore %34 %33 - %39 = OpAccessChain %_ptr_Output_float %gl_out %16 %int_1 - OpStore %39 %float_4 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/composite-extract-row-major.asm.comp b/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/composite-extract-row-major.asm.comp deleted file mode 100644 index a37bdd9195..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/composite-extract-row-major.asm.comp +++ /dev/null @@ -1,48 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 21 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %SSBORow "SSBORow" - OpMemberName %SSBORow 0 "v" - OpMemberName %SSBORow 1 "row_major0" - OpName %_ "" - OpMemberDecorate %SSBORow 0 Offset 0 - OpMemberDecorate %SSBORow 1 RowMajor - OpMemberDecorate %SSBORow 1 Offset 16 - OpMemberDecorate %SSBORow 1 MatrixStride 16 - OpDecorate %SSBORow BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%mat4v4float = OpTypeMatrix %v4float 4 - %SSBORow = OpTypeStruct %float %mat4v4float -%_ptr_Uniform_SSBORow = OpTypePointer Uniform %SSBORow - %_ = OpVariable %_ptr_Uniform_SSBORow Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 -%_ptr_Uniform_float = OpTypePointer Uniform %float -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float - %main = OpFunction %void None %3 - %5 = OpLabel - %row_ptr = OpAccessChain %_ptr_Uniform_v4float %_ %int_1 %int_1 - %vec = OpLoad %v4float %row_ptr - %float_val = OpCompositeExtract %float %vec 2 - - %20 = OpAccessChain %_ptr_Uniform_float %_ %int_0 - OpStore %20 %float_val - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding-2.asm.comp b/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding-2.asm.comp deleted file mode 100644 index 4c22245444..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding-2.asm.comp +++ /dev/null @@ -1,56 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 23 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpSourceExtension "GL_EXT_scalar_block_layout" - OpName %main "main" - OpName %SSBOScalar "SSBOScalar" - OpMemberName %SSBOScalar 0 "a" - OpMemberName %SSBOScalar 1 "b" - OpMemberName %SSBOScalar 2 "c" - OpName %_ "" - OpMemberDecorate %SSBOScalar 0 Offset 0 - OpMemberDecorate %SSBOScalar 1 RowMajor - OpMemberDecorate %SSBOScalar 1 Offset 16 - OpMemberDecorate %SSBOScalar 1 MatrixStride 16 - OpMemberDecorate %SSBOScalar 2 RowMajor - OpMemberDecorate %SSBOScalar 2 Offset 64 - OpMemberDecorate %SSBOScalar 2 MatrixStride 16 - OpDecorate %SSBOScalar BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v3float = OpTypeVector %float 3 -%mat3v3float = OpTypeMatrix %v3float 3 - %SSBOScalar = OpTypeStruct %v3float %mat3v3float %mat3v3float -%_ptr_Uniform_SSBOScalar = OpTypePointer Uniform %SSBOScalar - %_ = OpVariable %_ptr_Uniform_SSBOScalar Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 - %int_2 = OpConstant %int 2 -%_ptr_Uniform_mat3v3float = OpTypePointer Uniform %mat3v3float -%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float - %main = OpFunction %void None %3 - %5 = OpLabel - %b_ptr = OpAccessChain %_ptr_Uniform_mat3v3float %_ %int_1 - %c_ptr = OpAccessChain %_ptr_Uniform_mat3v3float %_ %int_2 - %b = OpLoad %mat3v3float %b_ptr - %c = OpLoad %mat3v3float %c_ptr - OpStore %b_ptr %c - %19 = OpAccessChain %_ptr_Uniform_v3float %_ %int_0 - %20 = OpLoad %v3float %19 - %21 = OpMatrixTimesVector %v3float %b %20 - %22 = OpAccessChain %_ptr_Uniform_v3float %_ %int_0 - OpStore %22 %21 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding-3.asm.comp b/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding-3.asm.comp deleted file mode 100644 index 85a220f516..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding-3.asm.comp +++ /dev/null @@ -1,48 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 22 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpSourceExtension "GL_EXT_scalar_block_layout" - OpName %main "main" - OpName %SSBOScalar "SSBOScalar" - OpMemberName %SSBOScalar 0 "a" - OpMemberName %SSBOScalar 1 "b" - OpMemberName %SSBOScalar 2 "c" - OpName %_ "" - OpMemberDecorate %SSBOScalar 0 Offset 0 - OpMemberDecorate %SSBOScalar 1 Offset 12 - OpMemberDecorate %SSBOScalar 2 Offset 24 - OpDecorate %SSBOScalar BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v3float = OpTypeVector %float 3 - %SSBOScalar = OpTypeStruct %v3float %v3float %v3float -%_ptr_Uniform_SSBOScalar = OpTypePointer Uniform %SSBOScalar - %_ = OpVariable %_ptr_Uniform_SSBOScalar Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 -%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float - %int_2 = OpConstant %int 2 - %main = OpFunction %void None %3 - %5 = OpLabel - %15 = OpAccessChain %_ptr_Uniform_v3float %_ %int_1 - %16 = OpLoad %v3float %15 - %18 = OpAccessChain %_ptr_Uniform_v3float %_ %int_2 - %19 = OpLoad %v3float %18 - OpStore %18 %16 - %20 = OpFMul %v3float %16 %19 - %21 = OpAccessChain %_ptr_Uniform_v3float %_ %int_0 - OpStore %21 %20 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding-4.asm.comp b/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding-4.asm.comp deleted file mode 100644 index bef3fcb766..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding-4.asm.comp +++ /dev/null @@ -1,61 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 29 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpSourceExtension "GL_EXT_scalar_block_layout" - OpName %main "main" - OpName %SSBOScalar "SSBOScalar" - OpMemberName %SSBOScalar 0 "a" - OpMemberName %SSBOScalar 1 "b" - OpMemberName %SSBOScalar 2 "c" - OpName %_ "" - OpDecorate %_arr_v2float_uint_16 ArrayStride 16 - OpDecorate %_arr_v2float_uint_16_0 ArrayStride 16 - OpDecorate %_arr_float_uint_16 ArrayStride 16 - OpMemberDecorate %SSBOScalar 0 Offset 0 - OpMemberDecorate %SSBOScalar 1 Offset 256 - OpMemberDecorate %SSBOScalar 2 Offset 512 - OpDecorate %SSBOScalar BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v2float = OpTypeVector %float 2 - %uint = OpTypeInt 32 0 - %uint_16 = OpConstant %uint 16 -%_arr_v2float_uint_16 = OpTypeArray %v2float %uint_16 -%_arr_v2float_uint_16_0 = OpTypeArray %v2float %uint_16 -%_arr_float_uint_16 = OpTypeArray %float %uint_16 - %SSBOScalar = OpTypeStruct %_arr_v2float_uint_16 %_arr_v2float_uint_16_0 %_arr_float_uint_16 -%_ptr_Uniform_SSBOScalar = OpTypePointer Uniform %SSBOScalar - %_ = OpVariable %_ptr_Uniform_SSBOScalar Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %int_10 = OpConstant %int 10 - %int_1 = OpConstant %int 1 -%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float - %int_2 = OpConstant %int 2 - %float_10 = OpConstant %float 10.0 - %float_11 = OpConstant %float 11.0 - %float_const = OpConstantComposite %v2float %float_10 %float_11 -%_ptr_Uniform_float = OpTypePointer Uniform %float - %main = OpFunction %void None %3 - %5 = OpLabel - %21 = OpAccessChain %_ptr_Uniform_v2float %_ %int_1 %int_10 - %22 = OpLoad %v2float %21 - %25 = OpAccessChain %_ptr_Uniform_float %_ %int_2 %int_10 - %26 = OpLoad %float %25 - OpStore %21 %float_const - %27 = OpVectorTimesScalar %v2float %22 %26 - %28 = OpAccessChain %_ptr_Uniform_v2float %_ %int_0 %int_10 - OpStore %28 %27 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding-5.asm.comp b/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding-5.asm.comp deleted file mode 100644 index 8de22b8285..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding-5.asm.comp +++ /dev/null @@ -1,54 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 29 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpSourceExtension "GL_EXT_scalar_block_layout" - OpName %main "main" - OpName %SSBOScalar "SSBOScalar" - OpMemberName %SSBOScalar 0 "a" - OpMemberName %SSBOScalar 1 "b" - OpMemberName %SSBOScalar 2 "c" - OpName %_ "" - OpMemberDecorate %SSBOScalar 0 Offset 0 - OpMemberDecorate %SSBOScalar 1 Offset 8 - OpMemberDecorate %SSBOScalar 2 Offset 20 - OpDecorate %SSBOScalar BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v2float = OpTypeVector %float 2 - %v3float = OpTypeVector %float 3 - %SSBOScalar = OpTypeStruct %v2float %v3float %v3float -%_ptr_Uniform_SSBOScalar = OpTypePointer Uniform %SSBOScalar - %_ = OpVariable %_ptr_Uniform_SSBOScalar Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 -%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float - %int_2 = OpConstant %int 2 -%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float - %float_1 = OpConstant %float 1 - %27 = OpConstantComposite %v3float %float_1 %float_1 %float_1 - %main = OpFunction %void None %3 - %5 = OpLabel - %16 = OpAccessChain %_ptr_Uniform_v3float %_ %int_1 - %17 = OpLoad %v3float %16 - %18 = OpVectorShuffle %v2float %17 %17 0 1 - %20 = OpAccessChain %_ptr_Uniform_v3float %_ %int_2 - %21 = OpLoad %v3float %20 - %22 = OpVectorShuffle %v2float %21 %21 1 2 - OpStore %16 %27 - %23 = OpFMul %v2float %18 %22 - %25 = OpAccessChain %_ptr_Uniform_v2float %_ %int_0 - OpStore %25 %23 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding.asm.comp b/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding.asm.comp deleted file mode 100644 index 0b0ba53e8e..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/load-packed-no-forwarding.asm.comp +++ /dev/null @@ -1,56 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 23 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpSourceExtension "GL_EXT_scalar_block_layout" - OpName %main "main" - OpName %SSBOScalar "SSBOScalar" - OpMemberName %SSBOScalar 0 "a" - OpMemberName %SSBOScalar 1 "b" - OpMemberName %SSBOScalar 2 "c" - OpName %_ "" - OpMemberDecorate %SSBOScalar 0 Offset 0 - OpMemberDecorate %SSBOScalar 1 RowMajor - OpMemberDecorate %SSBOScalar 1 Offset 12 - OpMemberDecorate %SSBOScalar 1 MatrixStride 12 - OpMemberDecorate %SSBOScalar 2 RowMajor - OpMemberDecorate %SSBOScalar 2 Offset 48 - OpMemberDecorate %SSBOScalar 2 MatrixStride 12 - OpDecorate %SSBOScalar BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v3float = OpTypeVector %float 3 -%mat3v3float = OpTypeMatrix %v3float 3 - %SSBOScalar = OpTypeStruct %v3float %mat3v3float %mat3v3float -%_ptr_Uniform_SSBOScalar = OpTypePointer Uniform %SSBOScalar - %_ = OpVariable %_ptr_Uniform_SSBOScalar Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 - %int_2 = OpConstant %int 2 -%_ptr_Uniform_mat3v3float = OpTypePointer Uniform %mat3v3float -%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float - %main = OpFunction %void None %3 - %5 = OpLabel - %b_ptr = OpAccessChain %_ptr_Uniform_mat3v3float %_ %int_1 - %c_ptr = OpAccessChain %_ptr_Uniform_mat3v3float %_ %int_2 - %b = OpLoad %mat3v3float %b_ptr - %c = OpLoad %mat3v3float %c_ptr - OpStore %b_ptr %c - %19 = OpAccessChain %_ptr_Uniform_v3float %_ %int_0 - %20 = OpLoad %v3float %19 - %21 = OpMatrixTimesVector %v3float %b %20 - %22 = OpAccessChain %_ptr_Uniform_v3float %_ %int_0 - OpStore %22 %21 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/packed-vector-extract-insert.asm.comp b/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/packed-vector-extract-insert.asm.comp deleted file mode 100644 index 70b1752791..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/packed-vector-extract-insert.asm.comp +++ /dev/null @@ -1,57 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 28 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpSourceExtension "GL_EXT_scalar_block_layout" - OpName %main "main" - OpName %SSBOScalar "SSBOScalar" - OpMemberName %SSBOScalar 0 "a" - OpMemberName %SSBOScalar 1 "b" - OpMemberName %SSBOScalar 2 "c" - OpMemberName %SSBOScalar 3 "d" - OpName %_ "" - OpMemberDecorate %SSBOScalar 0 Offset 0 - OpMemberDecorate %SSBOScalar 1 Offset 8 - OpMemberDecorate %SSBOScalar 2 Offset 20 - OpMemberDecorate %SSBOScalar 3 Offset 32 - OpDecorate %SSBOScalar BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v2float = OpTypeVector %float 2 - %v3float = OpTypeVector %float 3 - %SSBOScalar = OpTypeStruct %v2float %v3float %v3float %v3float -%_ptr_Uniform_SSBOScalar = OpTypePointer Uniform %SSBOScalar - %_ = OpVariable %_ptr_Uniform_SSBOScalar Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 -%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float - %int_2 = OpConstant %int 2 - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 - %float_2 = OpConstant %float 2.0 -%_ptr_Uniform_float = OpTypePointer Uniform %float -%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float - %main = OpFunction %void None %3 - %5 = OpLabel - %v3_ptr = OpAccessChain %_ptr_Uniform_v3float %_ %int_1 - %v3 = OpLoad %v3float %v3_ptr - %v3_mod = OpCompositeInsert %v3float %float_2 %v3 2 - %v2 = OpVectorShuffle %v2float %v3 %v3 0 1 - %v1 = OpCompositeExtract %float %v3 2 - %v2_mul = OpVectorTimesScalar %v2float %v2 %v1 - %v2_ptr = OpAccessChain %_ptr_Uniform_v2float %_ %int_0 - OpStore %v2_ptr %v2_mul - OpStore %v3_ptr %v3_mod - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/row-major-split-access-chain.asm.comp b/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/row-major-split-access-chain.asm.comp deleted file mode 100644 index 398c8d135c..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/row-major-split-access-chain.asm.comp +++ /dev/null @@ -1,48 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 21 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %SSBORow "SSBORow" - OpMemberName %SSBORow 0 "v" - OpMemberName %SSBORow 1 "row_major0" - OpName %_ "" - OpMemberDecorate %SSBORow 0 Offset 0 - OpMemberDecorate %SSBORow 1 RowMajor - OpMemberDecorate %SSBORow 1 Offset 16 - OpMemberDecorate %SSBORow 1 MatrixStride 16 - OpDecorate %SSBORow BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%mat4v4float = OpTypeMatrix %v4float 4 - %SSBORow = OpTypeStruct %float %mat4v4float -%_ptr_Uniform_SSBORow = OpTypePointer Uniform %SSBORow - %_ = OpVariable %_ptr_Uniform_SSBORow Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 -%_ptr_Uniform_float = OpTypePointer Uniform %float -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float - %main = OpFunction %void None %3 - %5 = OpLabel - %row_ptr = OpAccessChain %_ptr_Uniform_v4float %_ %int_1 %int_1 - %float_ptr = OpAccessChain %_ptr_Uniform_float %row_ptr %uint_2 - - %19 = OpLoad %float %float_ptr - %20 = OpAccessChain %_ptr_Uniform_float %_ %int_0 - OpStore %20 %19 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-array-float2.asm.frag b/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-array-float2.asm.frag deleted file mode 100644 index 85249d9981..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-array-float2.asm.frag +++ /dev/null @@ -1,54 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 29 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %out_var_SV_Target - OpExecutionMode %main OriginUpperLeft - OpSource HLSL 600 - OpName %type_Foo "type.Foo" - OpMemberName %type_Foo 0 "a" - OpMemberName %type_Foo 1 "b" - OpName %Foo "Foo" - OpName %out_var_SV_Target "out.var.SV_Target" - OpName %main "main" - OpDecorate %out_var_SV_Target Location 0 - OpDecorate %Foo DescriptorSet 0 - OpDecorate %Foo Binding 0 - OpDecorate %_arr_v2float_uint_2 ArrayStride 16 - OpMemberDecorate %type_Foo 0 Offset 0 - OpMemberDecorate %type_Foo 1 Offset 24 - OpDecorate %type_Foo Block - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 - %float = OpTypeFloat 32 - %v2float = OpTypeVector %float 2 -%_arr_v2float_uint_2 = OpTypeArray %v2float %uint_2 - %type_Foo = OpTypeStruct %_arr_v2float_uint_2 %float -%_ptr_Uniform_type_Foo = OpTypePointer Uniform %type_Foo -%_ptr_Output_v2float = OpTypePointer Output %v2float - %void = OpTypeVoid - %16 = OpTypeFunction %void -%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float -%_ptr_Uniform_float = OpTypePointer Uniform %float - %Foo = OpVariable %_ptr_Uniform_type_Foo Uniform -%out_var_SV_Target = OpVariable %_ptr_Output_v2float Output - %main = OpFunction %void None %16 - %19 = OpLabel - %20 = OpAccessChain %_ptr_Uniform_v2float %Foo %int_0 %int_0 - %21 = OpLoad %v2float %20 - %22 = OpAccessChain %_ptr_Uniform_v2float %Foo %int_0 %int_1 - %23 = OpLoad %v2float %22 - %24 = OpFAdd %v2float %21 %23 - %25 = OpAccessChain %_ptr_Uniform_float %Foo %int_1 - %26 = OpLoad %float %25 - %27 = OpCompositeConstruct %v2float %26 %26 - %28 = OpFAdd %v2float %24 %27 - OpStore %out_var_SV_Target %28 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-array-float3-one-element.asm.frag b/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-array-float3-one-element.asm.frag deleted file mode 100644 index 7ed32bee41..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-array-float3-one-element.asm.frag +++ /dev/null @@ -1,51 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 26 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %out_var_SV_Target - OpExecutionMode %main OriginUpperLeft - OpSource HLSL 600 - OpName %type_Foo "type.Foo" - OpMemberName %type_Foo 0 "a" - OpMemberName %type_Foo 1 "b" - OpName %Foo "Foo" - OpName %out_var_SV_Target "out.var.SV_Target" - OpName %main "main" - OpDecorate %out_var_SV_Target Location 0 - OpDecorate %Foo DescriptorSet 0 - OpDecorate %Foo Binding 0 - OpDecorate %_arr_v3float_uint_1 ArrayStride 16 - OpMemberDecorate %type_Foo 0 Offset 0 - OpMemberDecorate %type_Foo 1 Offset 12 - OpDecorate %type_Foo Block - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 - %uint = OpTypeInt 32 0 - %uint_1 = OpConstant %uint 1 - %float = OpTypeFloat 32 - %v3float = OpTypeVector %float 3 -%_arr_v3float_uint_1 = OpTypeArray %v3float %uint_1 - %type_Foo = OpTypeStruct %_arr_v3float_uint_1 %float -%_ptr_Uniform_type_Foo = OpTypePointer Uniform %type_Foo -%_ptr_Output_v3float = OpTypePointer Output %v3float - %void = OpTypeVoid - %16 = OpTypeFunction %void -%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float -%_ptr_Uniform_float = OpTypePointer Uniform %float - %Foo = OpVariable %_ptr_Uniform_type_Foo Uniform -%out_var_SV_Target = OpVariable %_ptr_Output_v3float Output - %main = OpFunction %void None %16 - %19 = OpLabel - %20 = OpAccessChain %_ptr_Uniform_v3float %Foo %int_0 %int_0 - %21 = OpLoad %v3float %20 - %22 = OpAccessChain %_ptr_Uniform_float %Foo %int_1 - %23 = OpLoad %float %22 - %24 = OpCompositeConstruct %v3float %23 %23 %23 - %25 = OpFAdd %v3float %21 %24 - OpStore %out_var_SV_Target %25 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-array-float3.asm.frag b/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-array-float3.asm.frag deleted file mode 100644 index 406328b8d4..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-array-float3.asm.frag +++ /dev/null @@ -1,54 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 29 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %out_var_SV_Target - OpExecutionMode %main OriginUpperLeft - OpSource HLSL 600 - OpName %type_Foo "type.Foo" - OpMemberName %type_Foo 0 "a" - OpMemberName %type_Foo 1 "b" - OpName %Foo "Foo" - OpName %out_var_SV_Target "out.var.SV_Target" - OpName %main "main" - OpDecorate %out_var_SV_Target Location 0 - OpDecorate %Foo DescriptorSet 0 - OpDecorate %Foo Binding 0 - OpDecorate %_arr_v3float_uint_2 ArrayStride 16 - OpMemberDecorate %type_Foo 0 Offset 0 - OpMemberDecorate %type_Foo 1 Offset 28 - OpDecorate %type_Foo Block - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 - %float = OpTypeFloat 32 - %v3float = OpTypeVector %float 3 -%_arr_v3float_uint_2 = OpTypeArray %v3float %uint_2 - %type_Foo = OpTypeStruct %_arr_v3float_uint_2 %float -%_ptr_Uniform_type_Foo = OpTypePointer Uniform %type_Foo -%_ptr_Output_v3float = OpTypePointer Output %v3float - %void = OpTypeVoid - %16 = OpTypeFunction %void -%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float -%_ptr_Uniform_float = OpTypePointer Uniform %float - %Foo = OpVariable %_ptr_Uniform_type_Foo Uniform -%out_var_SV_Target = OpVariable %_ptr_Output_v3float Output - %main = OpFunction %void None %16 - %19 = OpLabel - %20 = OpAccessChain %_ptr_Uniform_v3float %Foo %int_0 %int_0 - %21 = OpLoad %v3float %20 - %22 = OpAccessChain %_ptr_Uniform_v3float %Foo %int_0 %int_1 - %23 = OpLoad %v3float %22 - %24 = OpFAdd %v3float %21 %23 - %25 = OpAccessChain %_ptr_Uniform_float %Foo %int_1 - %26 = OpLoad %float %25 - %27 = OpCompositeConstruct %v3float %26 %26 %26 - %28 = OpFAdd %v3float %24 %27 - OpStore %out_var_SV_Target %28 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-float2x2-col-major.invalid.asm.frag b/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-float2x2-col-major.invalid.asm.frag deleted file mode 100644 index b9b4f5a017..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-float2x2-col-major.invalid.asm.frag +++ /dev/null @@ -1,56 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 30 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %out_var_SV_Target - OpExecutionMode %main OriginUpperLeft - OpSource HLSL 600 - OpName %type_Foo "type.Foo" - OpMemberName %type_Foo 0 "a" - OpMemberName %type_Foo 1 "b" - OpName %Foo "Foo" - OpName %out_var_SV_Target "out.var.SV_Target" - OpName %main "main" - OpDecorate %out_var_SV_Target Location 0 - OpDecorate %Foo DescriptorSet 0 - OpDecorate %Foo Binding 0 - OpMemberDecorate %type_Foo 0 Offset 0 - OpMemberDecorate %type_Foo 0 MatrixStride 16 - OpMemberDecorate %type_Foo 0 ColMajor - OpMemberDecorate %type_Foo 1 Offset 24 - OpDecorate %type_Foo Block - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %uint_1 = OpConstant %uint 1 - %int_1 = OpConstant %int 1 - %float = OpTypeFloat 32 - %v2float = OpTypeVector %float 2 -%mat2v2float = OpTypeMatrix %v2float 2 - %type_Foo = OpTypeStruct %mat2v2float %float -%_ptr_Uniform_type_Foo = OpTypePointer Uniform %type_Foo -%_ptr_Output_v2float = OpTypePointer Output %v2float - %void = OpTypeVoid - %17 = OpTypeFunction %void -%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float -%_ptr_Uniform_float = OpTypePointer Uniform %float - %Foo = OpVariable %_ptr_Uniform_type_Foo Uniform -%out_var_SV_Target = OpVariable %_ptr_Output_v2float Output - %main = OpFunction %void None %17 - %20 = OpLabel - %21 = OpAccessChain %_ptr_Uniform_v2float %Foo %int_0 %uint_0 - %22 = OpLoad %v2float %21 - %23 = OpAccessChain %_ptr_Uniform_v2float %Foo %int_0 %uint_1 - %24 = OpLoad %v2float %23 - %25 = OpFAdd %v2float %22 %24 - %26 = OpAccessChain %_ptr_Uniform_float %Foo %int_1 - %27 = OpLoad %float %26 - %28 = OpCompositeConstruct %v2float %27 %27 - %29 = OpFAdd %v2float %25 %28 - OpStore %out_var_SV_Target %29 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-float2x2-row-major.asm.frag b/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-float2x2-row-major.asm.frag deleted file mode 100644 index e1830e9cf9..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-float2x2-row-major.asm.frag +++ /dev/null @@ -1,56 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 30 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %out_var_SV_Target - OpExecutionMode %main OriginUpperLeft - OpSource HLSL 600 - OpName %type_Foo "type.Foo" - OpMemberName %type_Foo 0 "a" - OpMemberName %type_Foo 1 "b" - OpName %Foo "Foo" - OpName %out_var_SV_Target "out.var.SV_Target" - OpName %main "main" - OpDecorate %out_var_SV_Target Location 0 - OpDecorate %Foo DescriptorSet 0 - OpDecorate %Foo Binding 0 - OpMemberDecorate %type_Foo 0 Offset 0 - OpMemberDecorate %type_Foo 0 MatrixStride 16 - OpMemberDecorate %type_Foo 0 RowMajor - OpMemberDecorate %type_Foo 1 Offset 24 - OpDecorate %type_Foo Block - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %uint_1 = OpConstant %uint 1 - %int_1 = OpConstant %int 1 - %float = OpTypeFloat 32 - %v2float = OpTypeVector %float 2 -%mat2v2float = OpTypeMatrix %v2float 2 - %type_Foo = OpTypeStruct %mat2v2float %float -%_ptr_Uniform_type_Foo = OpTypePointer Uniform %type_Foo -%_ptr_Output_v2float = OpTypePointer Output %v2float - %void = OpTypeVoid - %17 = OpTypeFunction %void -%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float -%_ptr_Uniform_float = OpTypePointer Uniform %float - %Foo = OpVariable %_ptr_Uniform_type_Foo Uniform -%out_var_SV_Target = OpVariable %_ptr_Output_v2float Output - %main = OpFunction %void None %17 - %20 = OpLabel - %21 = OpAccessChain %_ptr_Uniform_v2float %Foo %int_0 %uint_0 - %22 = OpLoad %v2float %21 - %23 = OpAccessChain %_ptr_Uniform_v2float %Foo %int_0 %uint_1 - %24 = OpLoad %v2float %23 - %25 = OpFAdd %v2float %22 %24 - %26 = OpAccessChain %_ptr_Uniform_float %Foo %int_1 - %27 = OpLoad %float %26 - %28 = OpCompositeConstruct %v2float %27 %27 - %29 = OpFAdd %v2float %25 %28 - OpStore %out_var_SV_Target %29 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-float2x3-col-major.invalid.asm.frag b/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-float2x3-col-major.invalid.asm.frag deleted file mode 100644 index 647939f205..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-float2x3-col-major.invalid.asm.frag +++ /dev/null @@ -1,56 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 30 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %out_var_SV_Target - OpExecutionMode %main OriginUpperLeft - OpSource HLSL 600 - OpName %type_Foo "type.Foo" - OpMemberName %type_Foo 0 "a" - OpMemberName %type_Foo 1 "b" - OpName %Foo "Foo" - OpName %out_var_SV_Target "out.var.SV_Target" - OpName %main "main" - OpDecorate %out_var_SV_Target Location 0 - OpDecorate %Foo DescriptorSet 0 - OpDecorate %Foo Binding 0 - OpMemberDecorate %type_Foo 0 Offset 0 - OpMemberDecorate %type_Foo 0 MatrixStride 16 - OpMemberDecorate %type_Foo 0 ColMajor - OpMemberDecorate %type_Foo 1 Offset 28 - OpDecorate %type_Foo Block - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %uint_1 = OpConstant %uint 1 - %int_1 = OpConstant %int 1 - %float = OpTypeFloat 32 - %v3float = OpTypeVector %float 3 -%mat2v3float = OpTypeMatrix %v3float 2 - %type_Foo = OpTypeStruct %mat2v3float %float -%_ptr_Uniform_type_Foo = OpTypePointer Uniform %type_Foo -%_ptr_Output_v3float = OpTypePointer Output %v3float - %void = OpTypeVoid - %17 = OpTypeFunction %void -%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float -%_ptr_Uniform_float = OpTypePointer Uniform %float - %Foo = OpVariable %_ptr_Uniform_type_Foo Uniform -%out_var_SV_Target = OpVariable %_ptr_Output_v3float Output - %main = OpFunction %void None %17 - %20 = OpLabel - %21 = OpAccessChain %_ptr_Uniform_v3float %Foo %int_0 %uint_0 - %22 = OpLoad %v3float %21 - %23 = OpAccessChain %_ptr_Uniform_v3float %Foo %int_0 %uint_1 - %24 = OpLoad %v3float %23 - %25 = OpFAdd %v3float %22 %24 - %26 = OpAccessChain %_ptr_Uniform_float %Foo %int_1 - %27 = OpLoad %float %26 - %28 = OpCompositeConstruct %v3float %27 %27 %27 - %29 = OpFAdd %v3float %25 %28 - OpStore %out_var_SV_Target %29 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-float2x3-row-major.asm.frag b/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-float2x3-row-major.asm.frag deleted file mode 100644 index 733465a0fb..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-float2x3-row-major.asm.frag +++ /dev/null @@ -1,56 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 30 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %out_var_SV_Target - OpExecutionMode %main OriginUpperLeft - OpSource HLSL 600 - OpName %type_Foo "type.Foo" - OpMemberName %type_Foo 0 "a" - OpMemberName %type_Foo 1 "b" - OpName %Foo "Foo" - OpName %out_var_SV_Target "out.var.SV_Target" - OpName %main "main" - OpDecorate %out_var_SV_Target Location 0 - OpDecorate %Foo DescriptorSet 0 - OpDecorate %Foo Binding 0 - OpMemberDecorate %type_Foo 0 Offset 0 - OpMemberDecorate %type_Foo 0 MatrixStride 16 - OpMemberDecorate %type_Foo 0 RowMajor - OpMemberDecorate %type_Foo 1 Offset 40 - OpDecorate %type_Foo Block - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %uint_1 = OpConstant %uint 1 - %int_1 = OpConstant %int 1 - %float = OpTypeFloat 32 - %v3float = OpTypeVector %float 3 -%mat2v3float = OpTypeMatrix %v3float 2 - %type_Foo = OpTypeStruct %mat2v3float %float -%_ptr_Uniform_type_Foo = OpTypePointer Uniform %type_Foo -%_ptr_Output_v3float = OpTypePointer Output %v3float - %void = OpTypeVoid - %17 = OpTypeFunction %void -%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float -%_ptr_Uniform_float = OpTypePointer Uniform %float - %Foo = OpVariable %_ptr_Uniform_type_Foo Uniform -%out_var_SV_Target = OpVariable %_ptr_Output_v3float Output - %main = OpFunction %void None %17 - %20 = OpLabel - %21 = OpAccessChain %_ptr_Uniform_v3float %Foo %int_0 %uint_0 - %22 = OpLoad %v3float %21 - %23 = OpAccessChain %_ptr_Uniform_v3float %Foo %int_0 %uint_1 - %24 = OpLoad %v3float %23 - %25 = OpFAdd %v3float %22 %24 - %26 = OpAccessChain %_ptr_Uniform_float %Foo %int_1 - %27 = OpLoad %float %26 - %28 = OpCompositeConstruct %v3float %27 %27 %27 - %29 = OpFAdd %v3float %25 %28 - OpStore %out_var_SV_Target %29 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-float3x2-col-major.invalid.asm.frag b/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-float3x2-col-major.invalid.asm.frag deleted file mode 100644 index c97fb81f6a..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-float3x2-col-major.invalid.asm.frag +++ /dev/null @@ -1,56 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 30 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %out_var_SV_Target - OpExecutionMode %main OriginUpperLeft - OpSource HLSL 600 - OpName %type_Foo "type.Foo" - OpMemberName %type_Foo 0 "a" - OpMemberName %type_Foo 1 "b" - OpName %Foo "Foo" - OpName %out_var_SV_Target "out.var.SV_Target" - OpName %main "main" - OpDecorate %out_var_SV_Target Location 0 - OpDecorate %Foo DescriptorSet 0 - OpDecorate %Foo Binding 0 - OpMemberDecorate %type_Foo 0 Offset 0 - OpMemberDecorate %type_Foo 0 MatrixStride 16 - OpMemberDecorate %type_Foo 0 ColMajor - OpMemberDecorate %type_Foo 1 Offset 40 - OpDecorate %type_Foo Block - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %uint_1 = OpConstant %uint 1 - %int_1 = OpConstant %int 1 - %float = OpTypeFloat 32 - %v2float = OpTypeVector %float 2 -%mat3v2float = OpTypeMatrix %v2float 3 - %type_Foo = OpTypeStruct %mat3v2float %float -%_ptr_Uniform_type_Foo = OpTypePointer Uniform %type_Foo -%_ptr_Output_v2float = OpTypePointer Output %v2float - %void = OpTypeVoid - %17 = OpTypeFunction %void -%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float -%_ptr_Uniform_float = OpTypePointer Uniform %float - %Foo = OpVariable %_ptr_Uniform_type_Foo Uniform -%out_var_SV_Target = OpVariable %_ptr_Output_v2float Output - %main = OpFunction %void None %17 - %20 = OpLabel - %21 = OpAccessChain %_ptr_Uniform_v2float %Foo %int_0 %uint_0 - %22 = OpLoad %v2float %21 - %23 = OpAccessChain %_ptr_Uniform_v2float %Foo %int_0 %uint_1 - %24 = OpLoad %v2float %23 - %25 = OpFAdd %v2float %22 %24 - %26 = OpAccessChain %_ptr_Uniform_float %Foo %int_1 - %27 = OpLoad %float %26 - %28 = OpCompositeConstruct %v2float %27 %27 - %29 = OpFAdd %v2float %25 %28 - OpStore %out_var_SV_Target %29 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-float3x2-row-major.asm.frag b/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-float3x2-row-major.asm.frag deleted file mode 100644 index b1cfa561e0..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-float3x2-row-major.asm.frag +++ /dev/null @@ -1,56 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 30 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %out_var_SV_Target - OpExecutionMode %main OriginUpperLeft - OpSource HLSL 600 - OpName %type_Foo "type.Foo" - OpMemberName %type_Foo 0 "a" - OpMemberName %type_Foo 1 "b" - OpName %Foo "Foo" - OpName %out_var_SV_Target "out.var.SV_Target" - OpName %main "main" - OpDecorate %out_var_SV_Target Location 0 - OpDecorate %Foo DescriptorSet 0 - OpDecorate %Foo Binding 0 - OpMemberDecorate %type_Foo 0 Offset 0 - OpMemberDecorate %type_Foo 0 MatrixStride 16 - OpMemberDecorate %type_Foo 0 RowMajor - OpMemberDecorate %type_Foo 1 Offset 28 - OpDecorate %type_Foo Block - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %uint_1 = OpConstant %uint 1 - %int_1 = OpConstant %int 1 - %float = OpTypeFloat 32 - %v2float = OpTypeVector %float 2 -%mat3v2float = OpTypeMatrix %v2float 3 - %type_Foo = OpTypeStruct %mat3v2float %float -%_ptr_Uniform_type_Foo = OpTypePointer Uniform %type_Foo -%_ptr_Output_v2float = OpTypePointer Output %v2float - %void = OpTypeVoid - %17 = OpTypeFunction %void -%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float -%_ptr_Uniform_float = OpTypePointer Uniform %float - %Foo = OpVariable %_ptr_Uniform_type_Foo Uniform -%out_var_SV_Target = OpVariable %_ptr_Output_v2float Output - %main = OpFunction %void None %17 - %20 = OpLabel - %21 = OpAccessChain %_ptr_Uniform_v2float %Foo %int_0 %uint_0 - %22 = OpLoad %v2float %21 - %23 = OpAccessChain %_ptr_Uniform_v2float %Foo %int_0 %uint_1 - %24 = OpLoad %v2float %23 - %25 = OpFAdd %v2float %22 %24 - %26 = OpAccessChain %_ptr_Uniform_float %Foo %int_1 - %27 = OpLoad %float %26 - %28 = OpCompositeConstruct %v2float %27 %27 - %29 = OpFAdd %v2float %25 %28 - OpStore %out_var_SV_Target %29 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-float3x3-col-major.invalid.asm.frag b/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-float3x3-col-major.invalid.asm.frag deleted file mode 100644 index cef8308b2f..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-float3x3-col-major.invalid.asm.frag +++ /dev/null @@ -1,56 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 30 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %out_var_SV_Target - OpExecutionMode %main OriginUpperLeft - OpSource HLSL 600 - OpName %type_Foo "type.Foo" - OpMemberName %type_Foo 0 "a" - OpMemberName %type_Foo 1 "b" - OpName %Foo "Foo" - OpName %out_var_SV_Target "out.var.SV_Target" - OpName %main "main" - OpDecorate %out_var_SV_Target Location 0 - OpDecorate %Foo DescriptorSet 0 - OpDecorate %Foo Binding 0 - OpMemberDecorate %type_Foo 0 Offset 0 - OpMemberDecorate %type_Foo 0 MatrixStride 16 - OpMemberDecorate %type_Foo 0 ColMajor - OpMemberDecorate %type_Foo 1 Offset 44 - OpDecorate %type_Foo Block - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %uint_1 = OpConstant %uint 1 - %int_1 = OpConstant %int 1 - %float = OpTypeFloat 32 - %v3float = OpTypeVector %float 3 -%mat3v3float = OpTypeMatrix %v3float 3 - %type_Foo = OpTypeStruct %mat3v3float %float -%_ptr_Uniform_type_Foo = OpTypePointer Uniform %type_Foo -%_ptr_Output_v3float = OpTypePointer Output %v3float - %void = OpTypeVoid - %17 = OpTypeFunction %void -%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float -%_ptr_Uniform_float = OpTypePointer Uniform %float - %Foo = OpVariable %_ptr_Uniform_type_Foo Uniform -%out_var_SV_Target = OpVariable %_ptr_Output_v3float Output - %main = OpFunction %void None %17 - %20 = OpLabel - %21 = OpAccessChain %_ptr_Uniform_v3float %Foo %int_0 %uint_0 - %22 = OpLoad %v3float %21 - %23 = OpAccessChain %_ptr_Uniform_v3float %Foo %int_0 %uint_1 - %24 = OpLoad %v3float %23 - %25 = OpFAdd %v3float %22 %24 - %26 = OpAccessChain %_ptr_Uniform_float %Foo %int_1 - %27 = OpLoad %float %26 - %28 = OpCompositeConstruct %v3float %27 %27 %27 - %29 = OpFAdd %v3float %25 %28 - OpStore %out_var_SV_Target %29 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-float3x3-row-major.asm.frag b/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-float3x3-row-major.asm.frag deleted file mode 100644 index 35d7ebc319..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/packing/scalar-float3x3-row-major.asm.frag +++ /dev/null @@ -1,56 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 30 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %out_var_SV_Target - OpExecutionMode %main OriginUpperLeft - OpSource HLSL 600 - OpName %type_Foo "type.Foo" - OpMemberName %type_Foo 0 "a" - OpMemberName %type_Foo 1 "b" - OpName %Foo "Foo" - OpName %out_var_SV_Target "out.var.SV_Target" - OpName %main "main" - OpDecorate %out_var_SV_Target Location 0 - OpDecorate %Foo DescriptorSet 0 - OpDecorate %Foo Binding 0 - OpMemberDecorate %type_Foo 0 Offset 0 - OpMemberDecorate %type_Foo 0 MatrixStride 16 - OpMemberDecorate %type_Foo 0 RowMajor - OpMemberDecorate %type_Foo 1 Offset 44 - OpDecorate %type_Foo Block - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %uint_1 = OpConstant %uint 1 - %int_1 = OpConstant %int 1 - %float = OpTypeFloat 32 - %v3float = OpTypeVector %float 3 -%mat3v3float = OpTypeMatrix %v3float 3 - %type_Foo = OpTypeStruct %mat3v3float %float -%_ptr_Uniform_type_Foo = OpTypePointer Uniform %type_Foo -%_ptr_Output_v3float = OpTypePointer Output %v3float - %void = OpTypeVoid - %17 = OpTypeFunction %void -%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float -%_ptr_Uniform_float = OpTypePointer Uniform %float - %Foo = OpVariable %_ptr_Uniform_type_Foo Uniform -%out_var_SV_Target = OpVariable %_ptr_Output_v3float Output - %main = OpFunction %void None %17 - %20 = OpLabel - %21 = OpAccessChain %_ptr_Uniform_v3float %Foo %int_0 %uint_0 - %22 = OpLoad %v3float %21 - %23 = OpAccessChain %_ptr_Uniform_v3float %Foo %int_0 %uint_1 - %24 = OpLoad %v3float %23 - %25 = OpFAdd %v3float %22 %24 - %26 = OpAccessChain %_ptr_Uniform_float %Foo %int_1 - %27 = OpLoad %float %26 - %28 = OpCompositeConstruct %v3float %27 %27 %27 - %29 = OpFAdd %v3float %25 %28 - OpStore %out_var_SV_Target %29 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/temporary.zero-initialize.asm.frag b/third_party/spirv-cross/shaders-msl-no-opt/asm/temporary.zero-initialize.asm.frag deleted file mode 100644 index eccff08b33..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/temporary.zero-initialize.asm.frag +++ /dev/null @@ -1,93 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 65 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %vA %vB - OpExecutionMode %main OriginUpperLeft - OpSource ESSL 310 - OpName %main "main" - OpName %FragColor "FragColor" - OpName %vA "vA" - OpName %vB "vB" - OpDecorate %FragColor RelaxedPrecision - OpDecorate %FragColor Location 0 - OpDecorate %vA RelaxedPrecision - OpDecorate %vA Flat - OpDecorate %vA Location 0 - OpDecorate %25 RelaxedPrecision - OpDecorate %30 RelaxedPrecision - OpDecorate %vB RelaxedPrecision - OpDecorate %vB Flat - OpDecorate %vB Location 1 - OpDecorate %38 RelaxedPrecision - OpDecorate %40 RelaxedPrecision - OpDecorate %49 RelaxedPrecision - OpDecorate %51 RelaxedPrecision - OpDecorate %53 RelaxedPrecision - OpDecorate %56 RelaxedPrecision - OpDecorate %64 RelaxedPrecision - OpDecorate %58 RelaxedPrecision - OpDecorate %57 RelaxedPrecision - OpDecorate %60 RelaxedPrecision - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %float_0 = OpConstant %float 0 - %11 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_Input_int = OpTypePointer Input %int - %vA = OpVariable %_ptr_Input_int Input - %bool = OpTypeBool - %int_20 = OpConstant %int 20 - %int_50 = OpConstant %int 50 - %vB = OpVariable %_ptr_Input_int Input - %int_40 = OpConstant %int 40 - %int_60 = OpConstant %int 60 - %int_10 = OpConstant %int 10 - %float_1 = OpConstant %float 1 - %63 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 - %main = OpFunction %void None %3 - %5 = OpLabel - OpStore %FragColor %11 - OpBranch %17 - %17 = OpLabel - %60 = OpPhi %int %int_0 %5 %58 %20 - %57 = OpPhi %int %int_0 %5 %56 %20 - %25 = OpLoad %int %vA - %27 = OpSLessThan %bool %57 %25 - OpLoopMerge %19 %20 None - OpBranchConditional %27 %18 %19 - %18 = OpLabel - %30 = OpIAdd %int %25 %57 - %32 = OpIEqual %bool %30 %int_20 - OpSelectionMerge %34 None - OpBranchConditional %32 %33 %36 - %33 = OpLabel - OpBranch %34 - %36 = OpLabel - %38 = OpLoad %int %vB - %40 = OpIAdd %int %38 %57 - %42 = OpIEqual %bool %40 %int_40 - %64 = OpSelect %int %42 %int_60 %60 - OpBranch %34 - %34 = OpLabel - %58 = OpPhi %int %int_50 %33 %64 %36 - %49 = OpIAdd %int %58 %int_10 - %51 = OpLoad %v4float %FragColor - %53 = OpFAdd %v4float %51 %63 - OpStore %FragColor %53 - OpBranch %20 - %20 = OpLabel - %56 = OpIAdd %int %57 %49 - OpBranch %17 - %19 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/array-control-point-initializer.asm.tesc b/third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/array-control-point-initializer.asm.tesc deleted file mode 100644 index 5bbe951df4..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/array-control-point-initializer.asm.tesc +++ /dev/null @@ -1,80 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 48 -; Schema: 0 - OpCapability Tessellation - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %main "main" %gl_out %gl_InvocationID %foo - OpExecutionMode %main OutputVertices 4 - OpSource GLSL 450 - OpName %main "main" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %gl_out "gl_out" - OpName %gl_InvocationID "gl_InvocationID" - OpName %foo "foo" - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - OpDecorate %gl_InvocationID BuiltIn InvocationId - OpDecorate %foo Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %uint = OpTypeInt 32 0 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 - %uint_4 = OpConstant %uint 4 -%_arr_gl_PerVertex_uint_4 = OpTypeArray %gl_PerVertex %uint_4 -%_ptr_Output__arr_gl_PerVertex_uint_4 = OpTypePointer Output %_arr_gl_PerVertex_uint_4 - %gl_out = OpVariable %_ptr_Output__arr_gl_PerVertex_uint_4 Output - %int = OpTypeInt 32 1 -%_ptr_Input_int = OpTypePointer Input %int -%gl_InvocationID = OpVariable %_ptr_Input_int Input - %int_0 = OpConstant %int 0 - %float_1 = OpConstant %float 1 - %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %uint_3 = OpConstant %uint 3 -%_arr_float_uint_3 = OpTypeArray %float %uint_3 -%_arr__arr_float_uint_3_uint_4 = OpTypeArray %_arr_float_uint_3 %uint_4 -%_ptr_Output__arr__arr_float_uint_3_uint_4 = OpTypePointer Output %_arr__arr_float_uint_3_uint_4 -%foo_zero = OpConstantNull %_arr__arr_float_uint_3_uint_4 - %foo = OpVariable %_ptr_Output__arr__arr_float_uint_3_uint_4 Output %foo_zero -%_ptr_Output_float = OpTypePointer Output %float - %int_1 = OpConstant %int 1 - %int_2 = OpConstant %int 2 - %float_2 = OpConstant %float 2 - %main = OpFunction %void None %3 - %5 = OpLabel - %19 = OpLoad %int %gl_InvocationID - %24 = OpAccessChain %_ptr_Output_v4float %gl_out %19 %int_0 - OpStore %24 %22 - %30 = OpLoad %int %gl_InvocationID - %31 = OpLoad %int %gl_InvocationID - %32 = OpConvertSToF %float %31 - %34 = OpAccessChain %_ptr_Output_float %foo %30 %int_0 - OpStore %34 %32 - %35 = OpLoad %int %gl_InvocationID - %37 = OpLoad %int %gl_InvocationID - %38 = OpConvertSToF %float %37 - %39 = OpFAdd %float %38 %float_1 - %40 = OpAccessChain %_ptr_Output_float %foo %35 %int_1 - OpStore %40 %39 - %41 = OpLoad %int %gl_InvocationID - %43 = OpLoad %int %gl_InvocationID - %44 = OpConvertSToF %float %43 - %46 = OpFAdd %float %44 %float_2 - %47 = OpAccessChain %_ptr_Output_float %foo %41 %int_2 - OpStore %47 %46 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/block-control-point-initializer.asm.tesc b/third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/block-control-point-initializer.asm.tesc deleted file mode 100644 index d4e14be4ab..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/block-control-point-initializer.asm.tesc +++ /dev/null @@ -1,70 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 35 -; Schema: 0 - OpCapability Tessellation - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %main "main" %gl_out %gl_InvocationID %verts - OpExecutionMode %main OutputVertices 4 - OpSource GLSL 450 - OpName %main "main" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %gl_out "gl_out" - OpName %gl_InvocationID "gl_InvocationID" - OpName %Verts "Verts" - OpMemberName %Verts 0 "a" - OpMemberName %Verts 1 "b" - OpName %verts "verts" - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - OpDecorate %gl_InvocationID BuiltIn InvocationId - OpDecorate %Verts Block - OpDecorate %verts Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %uint = OpTypeInt 32 0 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 - %uint_4 = OpConstant %uint 4 -%_arr_gl_PerVertex_uint_4 = OpTypeArray %gl_PerVertex %uint_4 -%_ptr_Output__arr_gl_PerVertex_uint_4 = OpTypePointer Output %_arr_gl_PerVertex_uint_4 -;%gl_out_zero = OpConstantNull %_arr_gl_PerVertex_uint_4 - %gl_out = OpVariable %_ptr_Output__arr_gl_PerVertex_uint_4 Output ;%gl_out_zero - %int = OpTypeInt 32 1 -%_ptr_Input_int = OpTypePointer Input %int -%gl_InvocationID = OpVariable %_ptr_Input_int Input - %int_0 = OpConstant %int 0 - %float_1 = OpConstant %float 1 - %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %v2float = OpTypeVector %float 2 - %Verts = OpTypeStruct %float %v2float -%_arr_Verts_uint_4 = OpTypeArray %Verts %uint_4 -%_ptr_Output__arr_Verts_uint_4 = OpTypePointer Output %_arr_Verts_uint_4 - %verts_zero = OpConstantNull %_arr_Verts_uint_4 - %verts = OpVariable %_ptr_Output__arr_Verts_uint_4 Output %verts_zero -%_ptr_Output_float = OpTypePointer Output %float - %main = OpFunction %void None %3 - %5 = OpLabel - %19 = OpLoad %int %gl_InvocationID - %24 = OpAccessChain %_ptr_Output_v4float %gl_out %19 %int_0 - OpStore %24 %22 - %30 = OpLoad %int %gl_InvocationID - %31 = OpLoad %int %gl_InvocationID - %32 = OpConvertSToF %float %31 - %34 = OpAccessChain %_ptr_Output_float %verts %30 %int_0 - OpStore %34 %32 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/builtin-control-point-initializer.asm.tesc b/third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/builtin-control-point-initializer.asm.tesc deleted file mode 100644 index 1219183ca7..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/builtin-control-point-initializer.asm.tesc +++ /dev/null @@ -1,65 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 35 -; Schema: 0 - OpCapability Tessellation - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %main "main" %gl_out %gl_InvocationID %verts - OpExecutionMode %main OutputVertices 4 - OpSource GLSL 450 - OpName %main "main" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpName %gl_out "gl_out" - OpName %gl_InvocationID "gl_InvocationID" - OpName %Verts "Verts" - OpMemberName %Verts 0 "a" - OpMemberName %Verts 1 "b" - OpName %verts "verts" - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpDecorate %gl_PerVertex Block - OpDecorate %gl_InvocationID BuiltIn InvocationId - OpDecorate %Verts Block - OpDecorate %verts Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %uint = OpTypeInt 32 0 - %uint_1 = OpConstant %uint 1 -%gl_PerVertex = OpTypeStruct %v4float %float - %uint_4 = OpConstant %uint 4 -%_arr_gl_PerVertex_uint_4 = OpTypeArray %gl_PerVertex %uint_4 -%_ptr_Output__arr_gl_PerVertex_uint_4 = OpTypePointer Output %_arr_gl_PerVertex_uint_4 -%gl_out_zero = OpConstantNull %_arr_gl_PerVertex_uint_4 - %gl_out = OpVariable %_ptr_Output__arr_gl_PerVertex_uint_4 Output %gl_out_zero - %int = OpTypeInt 32 1 -%_ptr_Input_int = OpTypePointer Input %int -%gl_InvocationID = OpVariable %_ptr_Input_int Input - %int_0 = OpConstant %int 0 - %float_1 = OpConstant %float 1 - %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %v2float = OpTypeVector %float 2 - %Verts = OpTypeStruct %float %v2float -%_arr_Verts_uint_4 = OpTypeArray %Verts %uint_4 -%_ptr_Output__arr_Verts_uint_4 = OpTypePointer Output %_arr_Verts_uint_4 - %verts_zero = OpConstantNull %_arr_Verts_uint_4 - %verts = OpVariable %_ptr_Output__arr_Verts_uint_4 Output %verts_zero -%_ptr_Output_float = OpTypePointer Output %float - %main = OpFunction %void None %3 - %5 = OpLabel - %19 = OpLoad %int %gl_InvocationID - %24 = OpAccessChain %_ptr_Output_v4float %gl_out %19 %int_0 - OpStore %24 %22 - %30 = OpLoad %int %gl_InvocationID - %31 = OpLoad %int %gl_InvocationID - %32 = OpConvertSToF %float %31 - %34 = OpAccessChain %_ptr_Output_float %verts %30 %int_0 - OpStore %34 %32 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/composite-control-point-initializer.asm.tesc b/third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/composite-control-point-initializer.asm.tesc deleted file mode 100644 index 03ac99befb..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/composite-control-point-initializer.asm.tesc +++ /dev/null @@ -1,69 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 35 -; Schema: 0 - OpCapability Tessellation - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %main "main" %gl_out %gl_InvocationID %foo - OpExecutionMode %main OutputVertices 4 - OpSource GLSL 450 - OpName %main "main" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %gl_out "gl_out" - OpName %gl_InvocationID "gl_InvocationID" - OpName %Foo "Foo" - OpMemberName %Foo 0 "a" - OpMemberName %Foo 1 "b" - OpMemberName %Foo 2 "c" - OpName %foo "foo" - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - OpDecorate %gl_InvocationID BuiltIn InvocationId - OpDecorate %foo Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %uint = OpTypeInt 32 0 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 - %uint_4 = OpConstant %uint 4 -%_arr_gl_PerVertex_uint_4 = OpTypeArray %gl_PerVertex %uint_4 -%_ptr_Output__arr_gl_PerVertex_uint_4 = OpTypePointer Output %_arr_gl_PerVertex_uint_4 - %gl_out = OpVariable %_ptr_Output__arr_gl_PerVertex_uint_4 Output - %int = OpTypeInt 32 1 -%_ptr_Input_int = OpTypePointer Input %int -%gl_InvocationID = OpVariable %_ptr_Input_int Input - %int_0 = OpConstant %int 0 - %float_1 = OpConstant %float 1 - %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %v2float = OpTypeVector %float 2 - %Foo = OpTypeStruct %float %v2float %v4float -%_arr_Foo_uint_4 = OpTypeArray %Foo %uint_4 -%_ptr_Output__arr_Foo_uint_4 = OpTypePointer Output %_arr_Foo_uint_4 - %foo_zero = OpConstantNull %_arr_Foo_uint_4 - %foo = OpVariable %_ptr_Output__arr_Foo_uint_4 Output %foo_zero -%_ptr_Output_float = OpTypePointer Output %float - %main = OpFunction %void None %3 - %5 = OpLabel - %19 = OpLoad %int %gl_InvocationID - %24 = OpAccessChain %_ptr_Output_v4float %gl_out %19 %int_0 - OpStore %24 %22 - %30 = OpLoad %int %gl_InvocationID - %31 = OpLoad %int %gl_InvocationID - %32 = OpConvertSToF %float %31 - %34 = OpAccessChain %_ptr_Output_float %foo %30 %int_0 - OpStore %34 %32 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/copy-memory-control-point.asm.tesc b/third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/copy-memory-control-point.asm.tesc deleted file mode 100644 index 7c0a638f98..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/copy-memory-control-point.asm.tesc +++ /dev/null @@ -1,199 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Wine VKD3D Shader Compiler; 2 -; Bound: 126 -; Schema: 0 - OpCapability Tessellation - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %1 "main" %4 %30 %80 %101 %103 %108 %110 %115 %117 - OpExecutionMode %1 OutputVertices 3 - OpExecutionMode %1 Triangles - OpExecutionMode %1 SpacingEqual - OpExecutionMode %1 VertexOrderCw - OpName %1 "main" - OpName %11 "opc" - OpName %14 "cb1_struct" - OpName %16 "cb0_0" - OpName %22 "vicp" - OpName %23 "fork0" - OpName %26 "vForkInstanceId" - OpName %34 "r0" - OpName %32 "fork0_epilogue" - OpName %75 "fork1" - OpName %81 "fork1_epilogue" - OpName %101 "v0" - OpName %103 "v1" - OpName %108 "vicp0" - OpName %110 "vocp0" - OpName %115 "vicp1" - OpName %117 "vocp1" - OpDecorate %4 BuiltIn InvocationId - OpDecorate %13 ArrayStride 16 - OpDecorate %14 Block - OpMemberDecorate %14 0 Offset 0 - OpDecorate %16 DescriptorSet 0 - OpDecorate %16 Binding 0 - OpDecorate %30 BuiltIn TessLevelOuter - OpDecorate %30 Patch - OpDecorate %30 Patch - OpDecorate %30 Patch - OpDecorate %30 Patch - OpDecorate %80 BuiltIn TessLevelInner - OpDecorate %80 Patch - OpDecorate %80 Patch - OpDecorate %101 Location 0 - OpDecorate %103 Location 1 - OpDecorate %108 Location 2 - OpDecorate %110 Location 3 - OpDecorate %115 Location 4 - OpDecorate %117 Location 5 - %2 = OpTypeInt 32 1 - %3 = OpTypePointer Input %2 - %4 = OpVariable %3 Input - %5 = OpTypeFloat 32 - %6 = OpTypeVector %5 4 - %7 = OpTypeInt 32 0 - %8 = OpConstant %7 4 - %9 = OpTypeArray %6 %8 - %10 = OpTypePointer Private %9 - %11 = OpVariable %10 Private - %12 = OpConstant %7 1 - %13 = OpTypeArray %6 %12 - %14 = OpTypeStruct %13 - %15 = OpTypePointer Uniform %14 - %16 = OpVariable %15 Uniform - %17 = OpConstant %7 3 - %18 = OpTypeArray %6 %17 - %19 = OpConstant %7 2 - %20 = OpTypeArray %18 %19 - %21 = OpTypePointer Private %20 - %22 = OpVariable %21 Private - %24 = OpTypeVoid - %25 = OpTypeFunction %24 %7 - %28 = OpTypeArray %5 %8 - %29 = OpTypePointer Output %28 - %30 = OpVariable %29 Output - %31 = OpConstant %7 0 - %33 = OpTypePointer Function %6 - %36 = OpTypePointer Function %5 - %38 = OpTypePointer Uniform %6 - %40 = OpTypePointer Uniform %5 - %46 = OpTypePointer Private %6 - %48 = OpTypePointer Private %5 - %52 = OpVariable %46 Private - %55 = OpVariable %46 Private - %58 = OpVariable %46 Private - %60 = OpTypeFunction %24 %46 %46 %46 - %69 = OpTypePointer Output %5 - %76 = OpTypeFunction %24 - %78 = OpTypeArray %5 %19 - %79 = OpTypePointer Output %78 - %80 = OpVariable %79 Output - %89 = OpVariable %46 Private - %91 = OpTypeFunction %24 %46 - %98 = OpTypePointer Private %18 - %100 = OpTypePointer Input %18 - %101 = OpVariable %100 Input - %103 = OpVariable %100 Input - %105 = OpTypeVector %5 3 - %106 = OpTypeArray %105 %17 - %107 = OpTypePointer Input %106 - %108 = OpVariable %107 Input - %109 = OpTypePointer Output %106 - %110 = OpVariable %109 Output - %111 = OpTypePointer Output %105 - %112 = OpTypePointer Input %105 - %115 = OpVariable %100 Input - %116 = OpTypePointer Output %18 - %117 = OpVariable %116 Output - %118 = OpTypePointer Output %6 - %119 = OpTypePointer Input %6 - %23 = OpFunction %24 None %25 - %26 = OpFunctionParameter %7 - %27 = OpLabel - %34 = OpVariable %33 Function - %35 = OpBitcast %5 %26 - %37 = OpInBoundsAccessChain %36 %34 %31 - OpStore %37 %35 - %39 = OpAccessChain %38 %16 %31 %31 - %41 = OpInBoundsAccessChain %40 %39 %31 - %42 = OpLoad %5 %41 - %43 = OpInBoundsAccessChain %36 %34 %31 - %44 = OpLoad %5 %43 - %45 = OpBitcast %2 %44 - %47 = OpAccessChain %46 %11 %45 - %49 = OpInBoundsAccessChain %48 %47 %31 - OpStore %49 %42 - %50 = OpAccessChain %46 %11 %31 - %51 = OpLoad %6 %50 - OpStore %52 %51 - %53 = OpAccessChain %46 %11 %12 - %54 = OpLoad %6 %53 - OpStore %55 %54 - %56 = OpAccessChain %46 %11 %19 - %57 = OpLoad %6 %56 - OpStore %58 %57 - %59 = OpFunctionCall %24 %32 %52 %55 %58 - OpReturn - OpFunctionEnd - %32 = OpFunction %24 None %60 - %61 = OpFunctionParameter %46 - %62 = OpFunctionParameter %46 - %63 = OpFunctionParameter %46 - %64 = OpLabel - %65 = OpLoad %6 %61 - %66 = OpLoad %6 %62 - %67 = OpLoad %6 %63 - %68 = OpCompositeExtract %5 %65 0 - %70 = OpAccessChain %69 %30 %31 - OpStore %70 %68 - %71 = OpCompositeExtract %5 %66 0 - %72 = OpAccessChain %69 %30 %12 - OpStore %72 %71 - %73 = OpCompositeExtract %5 %67 0 - %74 = OpAccessChain %69 %30 %19 - OpStore %74 %73 - OpReturn - OpFunctionEnd - %75 = OpFunction %24 None %76 - %77 = OpLabel - %82 = OpAccessChain %38 %16 %31 %31 - %83 = OpInBoundsAccessChain %40 %82 %31 - %84 = OpLoad %5 %83 - %85 = OpAccessChain %46 %11 %17 - %86 = OpInBoundsAccessChain %48 %85 %31 - OpStore %86 %84 - %87 = OpAccessChain %46 %11 %17 - %88 = OpLoad %6 %87 - OpStore %89 %88 - %90 = OpFunctionCall %24 %81 %89 - OpReturn - OpFunctionEnd - %81 = OpFunction %24 None %91 - %92 = OpFunctionParameter %46 - %93 = OpLabel - %94 = OpLoad %6 %92 - %95 = OpCompositeExtract %5 %94 0 - %96 = OpAccessChain %69 %80 %31 - OpStore %96 %95 - OpReturn - OpFunctionEnd - %1 = OpFunction %24 None %76 - %97 = OpLabel - %99 = OpInBoundsAccessChain %98 %22 %31 - OpCopyMemory %99 %101 - %102 = OpInBoundsAccessChain %98 %22 %12 - OpCopyMemory %102 %103 - %104 = OpLoad %2 %4 - %113 = OpAccessChain %111 %110 %104 - %114 = OpAccessChain %112 %108 %104 - OpCopyMemory %113 %114 - %120 = OpAccessChain %118 %117 %104 - %121 = OpAccessChain %119 %115 %104 - OpCopyMemory %120 %121 - %122 = OpFunctionCall %24 %23 %31 - %123 = OpFunctionCall %24 %23 %12 - %124 = OpFunctionCall %24 %23 %19 - %125 = OpFunctionCall %24 %75 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/copy-tess-level-tri.asm.tesc b/third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/copy-tess-level-tri.asm.tesc deleted file mode 100644 index 346466e61f..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/copy-tess-level-tri.asm.tesc +++ /dev/null @@ -1,82 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 43 -; Schema: 0 - OpCapability Tessellation - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %main "main" %gl_TessLevelInner %gl_TessLevelOuter %gl_out %gl_InvocationID - OpExecutionMode %main OutputVertices 1 - OpExecutionMode %main Triangles - OpSource GLSL 450 - OpName %main "main" - OpName %gl_TessLevelInner "gl_TessLevelInner" - OpName %gl_TessLevelOuter "gl_TessLevelOuter" - OpName %inner "inner" - OpName %outer "outer" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %gl_out "gl_out" - OpName %gl_InvocationID "gl_InvocationID" - OpDecorate %gl_TessLevelInner Patch - OpDecorate %gl_TessLevelInner BuiltIn TessLevelInner - OpDecorate %gl_TessLevelOuter Patch - OpDecorate %gl_TessLevelOuter BuiltIn TessLevelOuter - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - OpDecorate %gl_InvocationID BuiltIn InvocationId - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 -%_arr_float_uint_2 = OpTypeArray %float %uint_2 -%_ptr_Output__arr_float_uint_2 = OpTypePointer Output %_arr_float_uint_2 -%gl_TessLevelInner = OpVariable %_ptr_Output__arr_float_uint_2 Output - %float_1 = OpConstant %float 1 - %float_2 = OpConstant %float 2 - %14 = OpConstantComposite %_arr_float_uint_2 %float_1 %float_2 - %uint_4 = OpConstant %uint 4 -%_arr_float_uint_4 = OpTypeArray %float %uint_4 -%_ptr_Output__arr_float_uint_4 = OpTypePointer Output %_arr_float_uint_4 -%gl_TessLevelOuter = OpVariable %_ptr_Output__arr_float_uint_4 Output - %float_3 = OpConstant %float 3 - %float_4 = OpConstant %float 4 - %21 = OpConstantComposite %_arr_float_uint_4 %float_1 %float_2 %float_3 %float_4 -%_ptr_Function__arr_float_uint_2 = OpTypePointer Function %_arr_float_uint_2 -%_ptr_Function__arr_float_uint_4 = OpTypePointer Function %_arr_float_uint_4 - %v4float = OpTypeVector %float 4 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 -%_arr_gl_PerVertex_uint_1 = OpTypeArray %gl_PerVertex %uint_1 -%_ptr_Output__arr_gl_PerVertex_uint_1 = OpTypePointer Output %_arr_gl_PerVertex_uint_1 - %gl_out = OpVariable %_ptr_Output__arr_gl_PerVertex_uint_1 Output - %int = OpTypeInt 32 1 -%_ptr_Input_int = OpTypePointer Input %int -%gl_InvocationID = OpVariable %_ptr_Input_int Input - %int_0 = OpConstant %int 0 - %40 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %main = OpFunction %void None %3 - %5 = OpLabel - %inner = OpVariable %_ptr_Function__arr_float_uint_2 Function - %outer = OpVariable %_ptr_Function__arr_float_uint_4 Function - OpStore %gl_TessLevelInner %14 - OpStore %gl_TessLevelOuter %21 - %24 = OpLoad %_arr_float_uint_2 %gl_TessLevelInner - OpStore %inner %24 - %27 = OpLoad %_arr_float_uint_4 %gl_TessLevelOuter - OpStore %outer %27 - %38 = OpLoad %int %gl_InvocationID - %42 = OpAccessChain %_ptr_Output_v4float %gl_out %38 %int_0 - OpStore %42 %40 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/plain-control-point-initializer.asm.tesc b/third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/plain-control-point-initializer.asm.tesc deleted file mode 100644 index 2a95da04b7..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/plain-control-point-initializer.asm.tesc +++ /dev/null @@ -1,63 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 33 -; Schema: 0 - OpCapability Tessellation - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %main "main" %gl_out %gl_InvocationID %v - OpExecutionMode %main OutputVertices 4 - OpSource GLSL 450 - OpName %main "main" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %gl_out "gl_out" - OpName %gl_InvocationID "gl_InvocationID" - OpName %v "v" - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - OpDecorate %gl_InvocationID BuiltIn InvocationId - OpDecorate %v Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %uint = OpTypeInt 32 0 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 - %uint_4 = OpConstant %uint 4 -%_arr_gl_PerVertex_uint_4 = OpTypeArray %gl_PerVertex %uint_4 -%_ptr_Output__arr_gl_PerVertex_uint_4 = OpTypePointer Output %_arr_gl_PerVertex_uint_4 - %gl_out = OpVariable %_ptr_Output__arr_gl_PerVertex_uint_4 Output - %int = OpTypeInt 32 1 -%_ptr_Input_int = OpTypePointer Input %int -%gl_InvocationID = OpVariable %_ptr_Input_int Input - %int_0 = OpConstant %int 0 - %float_1 = OpConstant %float 1 - %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float -%_arr_float_uint_4 = OpTypeArray %float %uint_4 -%_ptr_Output__arr_float_uint_4 = OpTypePointer Output %_arr_float_uint_4 - %v_zero = OpConstantNull %_arr_float_uint_4 - %v = OpVariable %_ptr_Output__arr_float_uint_4 Output %v_zero -%_ptr_Output_float = OpTypePointer Output %float - %main = OpFunction %void None %3 - %5 = OpLabel - %19 = OpLoad %int %gl_InvocationID - %24 = OpAccessChain %_ptr_Output_v4float %gl_out %19 %int_0 - OpStore %24 %22 - %28 = OpLoad %int %gl_InvocationID - %29 = OpLoad %int %gl_InvocationID - %30 = OpConvertSToF %float %29 - %32 = OpAccessChain %_ptr_Output_float %v %28 - OpStore %32 %30 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/tess-fixed-input-array-builtin-array.invalid.asm.tesc b/third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/tess-fixed-input-array-builtin-array.invalid.asm.tesc deleted file mode 100644 index 0fd4dce256..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/tess-fixed-input-array-builtin-array.invalid.asm.tesc +++ /dev/null @@ -1,248 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 2 -; Bound: 162 -; Schema: 0 - OpCapability Tessellation - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %hs_main "main" %p_pos %p_1 %i_1 %_entryPointOutput_pos %_entryPointOutput %_patchConstantOutput_EdgeTess %_patchConstantOutput_InsideTess - OpExecutionMode %hs_main OutputVertices 3 - OpExecutionMode %hs_main Triangles - OpExecutionMode %hs_main SpacingFractionalOdd - OpExecutionMode %hs_main VertexOrderCw - OpSource HLSL 500 - OpName %hs_main "hs_main" - OpName %VertexOutput "VertexOutput" - OpMemberName %VertexOutput 0 "pos" - OpMemberName %VertexOutput 1 "uv" - OpName %HSOut "HSOut" - OpMemberName %HSOut 0 "pos" - OpMemberName %HSOut 1 "uv" - OpName %_hs_main_struct_VertexOutput_vf4_vf21_3__u1_ "@hs_main(struct-VertexOutput-vf4-vf21[3];u1;" - OpName %p "p" - OpName %i "i" - OpName %HSConstantOut "HSConstantOut" - OpMemberName %HSConstantOut 0 "EdgeTess" - OpMemberName %HSConstantOut 1 "InsideTess" - OpName %PatchHS_struct_VertexOutput_vf4_vf21_3__ "PatchHS(struct-VertexOutput-vf4-vf21[3];" - OpName %patch "patch" - OpName %output "output" - OpName %p_0 "p" - OpName %p_pos "p.pos" - OpName %VertexOutput_0 "VertexOutput" - OpMemberName %VertexOutput_0 0 "uv" - OpName %p_1 "p" - OpName %i_0 "i" - OpName %i_1 "i" - OpName %flattenTemp "flattenTemp" - OpName %param "param" - OpName %param_0 "param" - OpName %_entryPointOutput_pos "@entryPointOutput.pos" - OpName %HSOut_0 "HSOut" - OpMemberName %HSOut_0 0 "uv" - OpName %_entryPointOutput "@entryPointOutput" - OpName %_patchConstantResult "@patchConstantResult" - OpName %param_1 "param" - OpName %_patchConstantOutput_EdgeTess "@patchConstantOutput.EdgeTess" - OpName %_patchConstantOutput_InsideTess "@patchConstantOutput.InsideTess" - OpName %output_0 "output" - OpDecorate %p_pos BuiltIn Position - OpDecorate %p_1 Location 0 - OpDecorate %i_1 BuiltIn InvocationId - OpDecorate %_entryPointOutput_pos BuiltIn Position - OpDecorate %_entryPointOutput Location 0 - OpDecorate %_patchConstantOutput_EdgeTess Patch - OpDecorate %_patchConstantOutput_EdgeTess BuiltIn TessLevelOuter - OpDecorate %_patchConstantOutput_InsideTess Patch - OpDecorate %_patchConstantOutput_InsideTess BuiltIn TessLevelInner - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %v2float = OpTypeVector %float 2 -%VertexOutput = OpTypeStruct %v4float %v2float - %uint = OpTypeInt 32 0 - %uint_3 = OpConstant %uint 3 -%_arr_VertexOutput_uint_3 = OpTypeArray %VertexOutput %uint_3 -%_ptr_Function__arr_VertexOutput_uint_3 = OpTypePointer Function %_arr_VertexOutput_uint_3 -%_ptr_Function_uint = OpTypePointer Function %uint - %HSOut = OpTypeStruct %v4float %v2float - %16 = OpTypeFunction %HSOut %_ptr_Function__arr_VertexOutput_uint_3 %_ptr_Function_uint -%_arr_float_uint_3 = OpTypeArray %float %uint_3 -%HSConstantOut = OpTypeStruct %_arr_float_uint_3 %float - %23 = OpTypeFunction %HSConstantOut %_ptr_Function__arr_VertexOutput_uint_3 -%_ptr_Function_HSOut = OpTypePointer Function %HSOut - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_Function_v4float = OpTypePointer Function %v4float - %int_1 = OpConstant %int 1 -%_ptr_Function_v2float = OpTypePointer Function %v2float -%_arr_v4float_uint_3 = OpTypeArray %v4float %uint_3 -%_ptr_Input__arr_v4float_uint_3 = OpTypePointer Input %_arr_v4float_uint_3 - %p_pos = OpVariable %_ptr_Input__arr_v4float_uint_3 Input -%_ptr_Input_v4float = OpTypePointer Input %v4float -%VertexOutput_0 = OpTypeStruct %v2float -%_arr_VertexOutput_0_uint_3 = OpTypeArray %VertexOutput_0 %uint_3 -%_ptr_Input__arr_VertexOutput_0_uint_3 = OpTypePointer Input %_arr_VertexOutput_0_uint_3 - %p_1 = OpVariable %_ptr_Input__arr_VertexOutput_0_uint_3 Input -%_ptr_Input_v2float = OpTypePointer Input %v2float - %int_2 = OpConstant %int 2 -%_ptr_Input_uint = OpTypePointer Input %uint - %i_1 = OpVariable %_ptr_Input_uint Input -%_ptr_Output__arr_v4float_uint_3 = OpTypePointer Output %_arr_v4float_uint_3 -%_entryPointOutput_pos = OpVariable %_ptr_Output__arr_v4float_uint_3 Output -%_ptr_Output_v4float = OpTypePointer Output %v4float - %HSOut_0 = OpTypeStruct %v2float -%_arr_HSOut_0_uint_3 = OpTypeArray %HSOut_0 %uint_3 -%_ptr_Output__arr_HSOut_0_uint_3 = OpTypePointer Output %_arr_HSOut_0_uint_3 -%_entryPointOutput = OpVariable %_ptr_Output__arr_HSOut_0_uint_3 Output -%_ptr_Output_v2float = OpTypePointer Output %v2float - %uint_2 = OpConstant %uint 2 - %uint_1 = OpConstant %uint 1 - %uint_0 = OpConstant %uint 0 - %bool = OpTypeBool -%_ptr_Function_HSConstantOut = OpTypePointer Function %HSConstantOut - %uint_4 = OpConstant %uint 4 -%_arr_float_uint_4 = OpTypeArray %float %uint_4 -%_ptr_Output__arr_float_uint_4 = OpTypePointer Output %_arr_float_uint_4 -%_patchConstantOutput_EdgeTess = OpVariable %_ptr_Output__arr_float_uint_4 Output -%_ptr_Function_float = OpTypePointer Function %float -%_ptr_Output_float = OpTypePointer Output %float -%_arr_float_uint_2 = OpTypeArray %float %uint_2 -%_ptr_Output__arr_float_uint_2 = OpTypePointer Output %_arr_float_uint_2 -%_patchConstantOutput_InsideTess = OpVariable %_ptr_Output__arr_float_uint_2 Output - %float_1 = OpConstant %float 1 - %hs_main = OpFunction %void None %3 - %5 = OpLabel - %p_0 = OpVariable %_ptr_Function__arr_VertexOutput_uint_3 Function - %i_0 = OpVariable %_ptr_Function_uint Function -%flattenTemp = OpVariable %_ptr_Function_HSOut Function - %param = OpVariable %_ptr_Function__arr_VertexOutput_uint_3 Function - %param_0 = OpVariable %_ptr_Function_uint Function -%_patchConstantResult = OpVariable %_ptr_Function_HSConstantOut Function - %param_1 = OpVariable %_ptr_Function__arr_VertexOutput_uint_3 Function - %50 = OpAccessChain %_ptr_Input_v4float %p_pos %int_0 - %51 = OpLoad %v4float %50 - %52 = OpAccessChain %_ptr_Function_v4float %p_0 %int_0 %int_0 - OpStore %52 %51 - %58 = OpAccessChain %_ptr_Input_v2float %p_1 %int_0 %int_0 - %59 = OpLoad %v2float %58 - %60 = OpAccessChain %_ptr_Function_v2float %p_0 %int_0 %int_1 - OpStore %60 %59 - %61 = OpAccessChain %_ptr_Input_v4float %p_pos %int_1 - %62 = OpLoad %v4float %61 - %63 = OpAccessChain %_ptr_Function_v4float %p_0 %int_1 %int_0 - OpStore %63 %62 - %64 = OpAccessChain %_ptr_Input_v2float %p_1 %int_1 %int_0 - %65 = OpLoad %v2float %64 - %66 = OpAccessChain %_ptr_Function_v2float %p_0 %int_1 %int_1 - OpStore %66 %65 - %68 = OpAccessChain %_ptr_Input_v4float %p_pos %int_2 - %69 = OpLoad %v4float %68 - %70 = OpAccessChain %_ptr_Function_v4float %p_0 %int_2 %int_0 - OpStore %70 %69 - %71 = OpAccessChain %_ptr_Input_v2float %p_1 %int_2 %int_0 - %72 = OpLoad %v2float %71 - %73 = OpAccessChain %_ptr_Function_v2float %p_0 %int_2 %int_1 - OpStore %73 %72 - %77 = OpLoad %uint %i_1 - OpStore %i_0 %77 - %80 = OpLoad %_arr_VertexOutput_uint_3 %p_0 - OpStore %param %80 - %82 = OpLoad %uint %i_0 - OpStore %param_0 %82 - %83 = OpFunctionCall %HSOut %_hs_main_struct_VertexOutput_vf4_vf21_3__u1_ %param %param_0 - OpStore %flattenTemp %83 - %86 = OpAccessChain %_ptr_Function_v4float %flattenTemp %int_0 - %87 = OpLoad %v4float %86 - %94 = OpLoad %uint %i_1 - %89 = OpAccessChain %_ptr_Output_v4float %_entryPointOutput_pos %94 - OpStore %89 %87 - %95 = OpAccessChain %_ptr_Function_v2float %flattenTemp %int_1 - %96 = OpLoad %v2float %95 - %98 = OpAccessChain %_ptr_Output_v2float %_entryPointOutput %94 %int_0 - OpStore %98 %96 - OpControlBarrier %uint_2 %uint_1 %uint_0 - %102 = OpLoad %uint %i_1 - %104 = OpIEqual %bool %102 %int_0 - OpSelectionMerge %106 None - OpBranchConditional %104 %105 %106 - %105 = OpLabel - %110 = OpLoad %_arr_VertexOutput_uint_3 %p_0 - OpStore %param_1 %110 - %111 = OpFunctionCall %HSConstantOut %PatchHS_struct_VertexOutput_vf4_vf21_3__ %param_1 - OpStore %_patchConstantResult %111 - %117 = OpAccessChain %_ptr_Function_float %_patchConstantResult %int_0 %int_0 - %118 = OpLoad %float %117 - %120 = OpAccessChain %_ptr_Output_float %_patchConstantOutput_EdgeTess %int_0 - OpStore %120 %118 - %121 = OpAccessChain %_ptr_Function_float %_patchConstantResult %int_0 %int_1 - %122 = OpLoad %float %121 - %123 = OpAccessChain %_ptr_Output_float %_patchConstantOutput_EdgeTess %int_1 - OpStore %123 %122 - %124 = OpAccessChain %_ptr_Function_float %_patchConstantResult %int_0 %int_2 - %125 = OpLoad %float %124 - %126 = OpAccessChain %_ptr_Output_float %_patchConstantOutput_EdgeTess %int_2 - OpStore %126 %125 - %130 = OpAccessChain %_ptr_Function_float %_patchConstantResult %int_1 - %131 = OpLoad %float %130 - %132 = OpAccessChain %_ptr_Output_float %_patchConstantOutput_InsideTess %int_0 - OpStore %132 %131 - OpBranch %106 - %106 = OpLabel - OpReturn - OpFunctionEnd -%_hs_main_struct_VertexOutput_vf4_vf21_3__u1_ = OpFunction %HSOut None %16 - %p = OpFunctionParameter %_ptr_Function__arr_VertexOutput_uint_3 - %i = OpFunctionParameter %_ptr_Function_uint - %20 = OpLabel - %output = OpVariable %_ptr_Function_HSOut Function - %31 = OpLoad %uint %i - %33 = OpAccessChain %_ptr_Function_v4float %p %31 %int_0 - %34 = OpLoad %v4float %33 - %35 = OpAccessChain %_ptr_Function_v4float %output %int_0 - OpStore %35 %34 - %37 = OpLoad %uint %i - %39 = OpAccessChain %_ptr_Function_v2float %p %37 %int_1 - %40 = OpLoad %v2float %39 - %41 = OpAccessChain %_ptr_Function_v2float %output %int_1 - OpStore %41 %40 - %42 = OpLoad %HSOut %output - OpReturnValue %42 - OpFunctionEnd -%PatchHS_struct_VertexOutput_vf4_vf21_3__ = OpFunction %HSConstantOut None %23 - %patch = OpFunctionParameter %_ptr_Function__arr_VertexOutput_uint_3 - %26 = OpLabel - %output_0 = OpVariable %_ptr_Function_HSConstantOut Function - %135 = OpAccessChain %_ptr_Function_v2float %patch %int_0 %int_1 - %136 = OpLoad %v2float %135 - %137 = OpCompositeConstruct %v2float %float_1 %float_1 - %138 = OpFAdd %v2float %137 %136 - %139 = OpCompositeExtract %float %138 0 - %140 = OpAccessChain %_ptr_Function_float %output_0 %int_0 %int_0 - OpStore %140 %139 - %141 = OpAccessChain %_ptr_Function_v2float %patch %int_0 %int_1 - %142 = OpLoad %v2float %141 - %143 = OpCompositeConstruct %v2float %float_1 %float_1 - %144 = OpFAdd %v2float %143 %142 - %145 = OpCompositeExtract %float %144 0 - %146 = OpAccessChain %_ptr_Function_float %output_0 %int_0 %int_1 - OpStore %146 %145 - %147 = OpAccessChain %_ptr_Function_v2float %patch %int_0 %int_1 - %148 = OpLoad %v2float %147 - %149 = OpCompositeConstruct %v2float %float_1 %float_1 - %150 = OpFAdd %v2float %149 %148 - %151 = OpCompositeExtract %float %150 0 - %152 = OpAccessChain %_ptr_Function_float %output_0 %int_0 %int_2 - OpStore %152 %151 - %153 = OpAccessChain %_ptr_Function_v2float %patch %int_0 %int_1 - %154 = OpLoad %v2float %153 - %155 = OpCompositeConstruct %v2float %float_1 %float_1 - %156 = OpFAdd %v2float %155 %154 - %157 = OpCompositeExtract %float %156 0 - %158 = OpAccessChain %_ptr_Function_float %output_0 %int_1 - OpStore %158 %157 - %159 = OpLoad %HSConstantOut %output_0 - OpReturnValue %159 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/tess-fixed-input-array-builtin-array.invalid.multi-patch.asm.tesc b/third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/tess-fixed-input-array-builtin-array.invalid.multi-patch.asm.tesc deleted file mode 100644 index 0fd4dce256..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/tess-fixed-input-array-builtin-array.invalid.multi-patch.asm.tesc +++ /dev/null @@ -1,248 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 2 -; Bound: 162 -; Schema: 0 - OpCapability Tessellation - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %hs_main "main" %p_pos %p_1 %i_1 %_entryPointOutput_pos %_entryPointOutput %_patchConstantOutput_EdgeTess %_patchConstantOutput_InsideTess - OpExecutionMode %hs_main OutputVertices 3 - OpExecutionMode %hs_main Triangles - OpExecutionMode %hs_main SpacingFractionalOdd - OpExecutionMode %hs_main VertexOrderCw - OpSource HLSL 500 - OpName %hs_main "hs_main" - OpName %VertexOutput "VertexOutput" - OpMemberName %VertexOutput 0 "pos" - OpMemberName %VertexOutput 1 "uv" - OpName %HSOut "HSOut" - OpMemberName %HSOut 0 "pos" - OpMemberName %HSOut 1 "uv" - OpName %_hs_main_struct_VertexOutput_vf4_vf21_3__u1_ "@hs_main(struct-VertexOutput-vf4-vf21[3];u1;" - OpName %p "p" - OpName %i "i" - OpName %HSConstantOut "HSConstantOut" - OpMemberName %HSConstantOut 0 "EdgeTess" - OpMemberName %HSConstantOut 1 "InsideTess" - OpName %PatchHS_struct_VertexOutput_vf4_vf21_3__ "PatchHS(struct-VertexOutput-vf4-vf21[3];" - OpName %patch "patch" - OpName %output "output" - OpName %p_0 "p" - OpName %p_pos "p.pos" - OpName %VertexOutput_0 "VertexOutput" - OpMemberName %VertexOutput_0 0 "uv" - OpName %p_1 "p" - OpName %i_0 "i" - OpName %i_1 "i" - OpName %flattenTemp "flattenTemp" - OpName %param "param" - OpName %param_0 "param" - OpName %_entryPointOutput_pos "@entryPointOutput.pos" - OpName %HSOut_0 "HSOut" - OpMemberName %HSOut_0 0 "uv" - OpName %_entryPointOutput "@entryPointOutput" - OpName %_patchConstantResult "@patchConstantResult" - OpName %param_1 "param" - OpName %_patchConstantOutput_EdgeTess "@patchConstantOutput.EdgeTess" - OpName %_patchConstantOutput_InsideTess "@patchConstantOutput.InsideTess" - OpName %output_0 "output" - OpDecorate %p_pos BuiltIn Position - OpDecorate %p_1 Location 0 - OpDecorate %i_1 BuiltIn InvocationId - OpDecorate %_entryPointOutput_pos BuiltIn Position - OpDecorate %_entryPointOutput Location 0 - OpDecorate %_patchConstantOutput_EdgeTess Patch - OpDecorate %_patchConstantOutput_EdgeTess BuiltIn TessLevelOuter - OpDecorate %_patchConstantOutput_InsideTess Patch - OpDecorate %_patchConstantOutput_InsideTess BuiltIn TessLevelInner - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %v2float = OpTypeVector %float 2 -%VertexOutput = OpTypeStruct %v4float %v2float - %uint = OpTypeInt 32 0 - %uint_3 = OpConstant %uint 3 -%_arr_VertexOutput_uint_3 = OpTypeArray %VertexOutput %uint_3 -%_ptr_Function__arr_VertexOutput_uint_3 = OpTypePointer Function %_arr_VertexOutput_uint_3 -%_ptr_Function_uint = OpTypePointer Function %uint - %HSOut = OpTypeStruct %v4float %v2float - %16 = OpTypeFunction %HSOut %_ptr_Function__arr_VertexOutput_uint_3 %_ptr_Function_uint -%_arr_float_uint_3 = OpTypeArray %float %uint_3 -%HSConstantOut = OpTypeStruct %_arr_float_uint_3 %float - %23 = OpTypeFunction %HSConstantOut %_ptr_Function__arr_VertexOutput_uint_3 -%_ptr_Function_HSOut = OpTypePointer Function %HSOut - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_Function_v4float = OpTypePointer Function %v4float - %int_1 = OpConstant %int 1 -%_ptr_Function_v2float = OpTypePointer Function %v2float -%_arr_v4float_uint_3 = OpTypeArray %v4float %uint_3 -%_ptr_Input__arr_v4float_uint_3 = OpTypePointer Input %_arr_v4float_uint_3 - %p_pos = OpVariable %_ptr_Input__arr_v4float_uint_3 Input -%_ptr_Input_v4float = OpTypePointer Input %v4float -%VertexOutput_0 = OpTypeStruct %v2float -%_arr_VertexOutput_0_uint_3 = OpTypeArray %VertexOutput_0 %uint_3 -%_ptr_Input__arr_VertexOutput_0_uint_3 = OpTypePointer Input %_arr_VertexOutput_0_uint_3 - %p_1 = OpVariable %_ptr_Input__arr_VertexOutput_0_uint_3 Input -%_ptr_Input_v2float = OpTypePointer Input %v2float - %int_2 = OpConstant %int 2 -%_ptr_Input_uint = OpTypePointer Input %uint - %i_1 = OpVariable %_ptr_Input_uint Input -%_ptr_Output__arr_v4float_uint_3 = OpTypePointer Output %_arr_v4float_uint_3 -%_entryPointOutput_pos = OpVariable %_ptr_Output__arr_v4float_uint_3 Output -%_ptr_Output_v4float = OpTypePointer Output %v4float - %HSOut_0 = OpTypeStruct %v2float -%_arr_HSOut_0_uint_3 = OpTypeArray %HSOut_0 %uint_3 -%_ptr_Output__arr_HSOut_0_uint_3 = OpTypePointer Output %_arr_HSOut_0_uint_3 -%_entryPointOutput = OpVariable %_ptr_Output__arr_HSOut_0_uint_3 Output -%_ptr_Output_v2float = OpTypePointer Output %v2float - %uint_2 = OpConstant %uint 2 - %uint_1 = OpConstant %uint 1 - %uint_0 = OpConstant %uint 0 - %bool = OpTypeBool -%_ptr_Function_HSConstantOut = OpTypePointer Function %HSConstantOut - %uint_4 = OpConstant %uint 4 -%_arr_float_uint_4 = OpTypeArray %float %uint_4 -%_ptr_Output__arr_float_uint_4 = OpTypePointer Output %_arr_float_uint_4 -%_patchConstantOutput_EdgeTess = OpVariable %_ptr_Output__arr_float_uint_4 Output -%_ptr_Function_float = OpTypePointer Function %float -%_ptr_Output_float = OpTypePointer Output %float -%_arr_float_uint_2 = OpTypeArray %float %uint_2 -%_ptr_Output__arr_float_uint_2 = OpTypePointer Output %_arr_float_uint_2 -%_patchConstantOutput_InsideTess = OpVariable %_ptr_Output__arr_float_uint_2 Output - %float_1 = OpConstant %float 1 - %hs_main = OpFunction %void None %3 - %5 = OpLabel - %p_0 = OpVariable %_ptr_Function__arr_VertexOutput_uint_3 Function - %i_0 = OpVariable %_ptr_Function_uint Function -%flattenTemp = OpVariable %_ptr_Function_HSOut Function - %param = OpVariable %_ptr_Function__arr_VertexOutput_uint_3 Function - %param_0 = OpVariable %_ptr_Function_uint Function -%_patchConstantResult = OpVariable %_ptr_Function_HSConstantOut Function - %param_1 = OpVariable %_ptr_Function__arr_VertexOutput_uint_3 Function - %50 = OpAccessChain %_ptr_Input_v4float %p_pos %int_0 - %51 = OpLoad %v4float %50 - %52 = OpAccessChain %_ptr_Function_v4float %p_0 %int_0 %int_0 - OpStore %52 %51 - %58 = OpAccessChain %_ptr_Input_v2float %p_1 %int_0 %int_0 - %59 = OpLoad %v2float %58 - %60 = OpAccessChain %_ptr_Function_v2float %p_0 %int_0 %int_1 - OpStore %60 %59 - %61 = OpAccessChain %_ptr_Input_v4float %p_pos %int_1 - %62 = OpLoad %v4float %61 - %63 = OpAccessChain %_ptr_Function_v4float %p_0 %int_1 %int_0 - OpStore %63 %62 - %64 = OpAccessChain %_ptr_Input_v2float %p_1 %int_1 %int_0 - %65 = OpLoad %v2float %64 - %66 = OpAccessChain %_ptr_Function_v2float %p_0 %int_1 %int_1 - OpStore %66 %65 - %68 = OpAccessChain %_ptr_Input_v4float %p_pos %int_2 - %69 = OpLoad %v4float %68 - %70 = OpAccessChain %_ptr_Function_v4float %p_0 %int_2 %int_0 - OpStore %70 %69 - %71 = OpAccessChain %_ptr_Input_v2float %p_1 %int_2 %int_0 - %72 = OpLoad %v2float %71 - %73 = OpAccessChain %_ptr_Function_v2float %p_0 %int_2 %int_1 - OpStore %73 %72 - %77 = OpLoad %uint %i_1 - OpStore %i_0 %77 - %80 = OpLoad %_arr_VertexOutput_uint_3 %p_0 - OpStore %param %80 - %82 = OpLoad %uint %i_0 - OpStore %param_0 %82 - %83 = OpFunctionCall %HSOut %_hs_main_struct_VertexOutput_vf4_vf21_3__u1_ %param %param_0 - OpStore %flattenTemp %83 - %86 = OpAccessChain %_ptr_Function_v4float %flattenTemp %int_0 - %87 = OpLoad %v4float %86 - %94 = OpLoad %uint %i_1 - %89 = OpAccessChain %_ptr_Output_v4float %_entryPointOutput_pos %94 - OpStore %89 %87 - %95 = OpAccessChain %_ptr_Function_v2float %flattenTemp %int_1 - %96 = OpLoad %v2float %95 - %98 = OpAccessChain %_ptr_Output_v2float %_entryPointOutput %94 %int_0 - OpStore %98 %96 - OpControlBarrier %uint_2 %uint_1 %uint_0 - %102 = OpLoad %uint %i_1 - %104 = OpIEqual %bool %102 %int_0 - OpSelectionMerge %106 None - OpBranchConditional %104 %105 %106 - %105 = OpLabel - %110 = OpLoad %_arr_VertexOutput_uint_3 %p_0 - OpStore %param_1 %110 - %111 = OpFunctionCall %HSConstantOut %PatchHS_struct_VertexOutput_vf4_vf21_3__ %param_1 - OpStore %_patchConstantResult %111 - %117 = OpAccessChain %_ptr_Function_float %_patchConstantResult %int_0 %int_0 - %118 = OpLoad %float %117 - %120 = OpAccessChain %_ptr_Output_float %_patchConstantOutput_EdgeTess %int_0 - OpStore %120 %118 - %121 = OpAccessChain %_ptr_Function_float %_patchConstantResult %int_0 %int_1 - %122 = OpLoad %float %121 - %123 = OpAccessChain %_ptr_Output_float %_patchConstantOutput_EdgeTess %int_1 - OpStore %123 %122 - %124 = OpAccessChain %_ptr_Function_float %_patchConstantResult %int_0 %int_2 - %125 = OpLoad %float %124 - %126 = OpAccessChain %_ptr_Output_float %_patchConstantOutput_EdgeTess %int_2 - OpStore %126 %125 - %130 = OpAccessChain %_ptr_Function_float %_patchConstantResult %int_1 - %131 = OpLoad %float %130 - %132 = OpAccessChain %_ptr_Output_float %_patchConstantOutput_InsideTess %int_0 - OpStore %132 %131 - OpBranch %106 - %106 = OpLabel - OpReturn - OpFunctionEnd -%_hs_main_struct_VertexOutput_vf4_vf21_3__u1_ = OpFunction %HSOut None %16 - %p = OpFunctionParameter %_ptr_Function__arr_VertexOutput_uint_3 - %i = OpFunctionParameter %_ptr_Function_uint - %20 = OpLabel - %output = OpVariable %_ptr_Function_HSOut Function - %31 = OpLoad %uint %i - %33 = OpAccessChain %_ptr_Function_v4float %p %31 %int_0 - %34 = OpLoad %v4float %33 - %35 = OpAccessChain %_ptr_Function_v4float %output %int_0 - OpStore %35 %34 - %37 = OpLoad %uint %i - %39 = OpAccessChain %_ptr_Function_v2float %p %37 %int_1 - %40 = OpLoad %v2float %39 - %41 = OpAccessChain %_ptr_Function_v2float %output %int_1 - OpStore %41 %40 - %42 = OpLoad %HSOut %output - OpReturnValue %42 - OpFunctionEnd -%PatchHS_struct_VertexOutput_vf4_vf21_3__ = OpFunction %HSConstantOut None %23 - %patch = OpFunctionParameter %_ptr_Function__arr_VertexOutput_uint_3 - %26 = OpLabel - %output_0 = OpVariable %_ptr_Function_HSConstantOut Function - %135 = OpAccessChain %_ptr_Function_v2float %patch %int_0 %int_1 - %136 = OpLoad %v2float %135 - %137 = OpCompositeConstruct %v2float %float_1 %float_1 - %138 = OpFAdd %v2float %137 %136 - %139 = OpCompositeExtract %float %138 0 - %140 = OpAccessChain %_ptr_Function_float %output_0 %int_0 %int_0 - OpStore %140 %139 - %141 = OpAccessChain %_ptr_Function_v2float %patch %int_0 %int_1 - %142 = OpLoad %v2float %141 - %143 = OpCompositeConstruct %v2float %float_1 %float_1 - %144 = OpFAdd %v2float %143 %142 - %145 = OpCompositeExtract %float %144 0 - %146 = OpAccessChain %_ptr_Function_float %output_0 %int_0 %int_1 - OpStore %146 %145 - %147 = OpAccessChain %_ptr_Function_v2float %patch %int_0 %int_1 - %148 = OpLoad %v2float %147 - %149 = OpCompositeConstruct %v2float %float_1 %float_1 - %150 = OpFAdd %v2float %149 %148 - %151 = OpCompositeExtract %float %150 0 - %152 = OpAccessChain %_ptr_Function_float %output_0 %int_0 %int_2 - OpStore %152 %151 - %153 = OpAccessChain %_ptr_Function_v2float %patch %int_0 %int_1 - %154 = OpLoad %v2float %153 - %155 = OpCompositeConstruct %v2float %float_1 %float_1 - %156 = OpFAdd %v2float %155 %154 - %157 = OpCompositeExtract %float %156 0 - %158 = OpAccessChain %_ptr_Function_float %output_0 %int_1 - OpStore %158 %157 - %159 = OpLoad %HSConstantOut %output_0 - OpReturnValue %159 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/tess-level-initializer-quad.asm.tesc b/third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/tess-level-initializer-quad.asm.tesc deleted file mode 100644 index 53248f17e6..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/tess-level-initializer-quad.asm.tesc +++ /dev/null @@ -1,88 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 47 -; Schema: 0 - OpCapability Tessellation - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %main "main" %gl_out %gl_InvocationID %gl_TessLevelInner %gl_TessLevelOuter - OpExecutionMode %main OutputVertices 4 - OpExecutionMode %main Quads - OpSource GLSL 450 - OpName %main "main" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %gl_out "gl_out" - OpName %gl_InvocationID "gl_InvocationID" - OpName %gl_TessLevelInner "gl_TessLevelInner" - OpName %gl_TessLevelOuter "gl_TessLevelOuter" - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - OpDecorate %gl_InvocationID BuiltIn InvocationId - OpDecorate %gl_TessLevelInner Patch - OpDecorate %gl_TessLevelInner BuiltIn TessLevelInner - OpDecorate %gl_TessLevelOuter Patch - OpDecorate %gl_TessLevelOuter BuiltIn TessLevelOuter - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %uint = OpTypeInt 32 0 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 - %uint_4 = OpConstant %uint 4 -%_arr_gl_PerVertex_uint_4 = OpTypeArray %gl_PerVertex %uint_4 -%_ptr_Output__arr_gl_PerVertex_uint_4 = OpTypePointer Output %_arr_gl_PerVertex_uint_4 - %gl_out = OpVariable %_ptr_Output__arr_gl_PerVertex_uint_4 Output - %int = OpTypeInt 32 1 -%_ptr_Input_int = OpTypePointer Input %int -%gl_InvocationID = OpVariable %_ptr_Input_int Input - %int_0 = OpConstant %int 0 - %float_1 = OpConstant %float 1 - %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %uint_2 = OpConstant %uint 2 -%_arr_float_uint_2 = OpTypeArray %float %uint_2 -%_ptr_Output__arr_float_uint_2 = OpTypePointer Output %_arr_float_uint_2 - %inner_zero = OpConstantNull %_arr_float_uint_2 -%gl_TessLevelInner = OpVariable %_ptr_Output__arr_float_uint_2 Output %inner_zero -%_ptr_Output_float = OpTypePointer Output %float - %int_1 = OpConstant %int 1 - %float_2 = OpConstant %float 2 -%_arr_float_uint_4 = OpTypeArray %float %uint_4 -%_ptr_Output__arr_float_uint_4 = OpTypePointer Output %_arr_float_uint_4 - %outer_zero = OpConstantNull %_arr_float_uint_4 -%gl_TessLevelOuter = OpVariable %_ptr_Output__arr_float_uint_4 Output %outer_zero - %float_3 = OpConstant %float 3 - %float_4 = OpConstant %float 4 - %int_2 = OpConstant %int 2 - %float_5 = OpConstant %float 5 - %int_3 = OpConstant %int 3 - %float_6 = OpConstant %float 6 - %main = OpFunction %void None %3 - %5 = OpLabel - %19 = OpLoad %int %gl_InvocationID - %24 = OpAccessChain %_ptr_Output_v4float %gl_out %19 %int_0 - OpStore %24 %22 - %30 = OpAccessChain %_ptr_Output_float %gl_TessLevelInner %int_0 - OpStore %30 %float_1 - %33 = OpAccessChain %_ptr_Output_float %gl_TessLevelInner %int_1 - OpStore %33 %float_2 - %38 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %int_0 - OpStore %38 %float_3 - %40 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %int_1 - OpStore %40 %float_4 - %43 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %int_2 - OpStore %43 %float_5 - %46 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %int_3 - OpStore %46 %float_6 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/tess-level-initializer-triangle.asm.tesc b/third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/tess-level-initializer-triangle.asm.tesc deleted file mode 100644 index 6fbc33dc22..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/tess-level-initializer-triangle.asm.tesc +++ /dev/null @@ -1,88 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 47 -; Schema: 0 - OpCapability Tessellation - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %main "main" %gl_out %gl_InvocationID %gl_TessLevelInner %gl_TessLevelOuter - OpExecutionMode %main OutputVertices 4 - OpExecutionMode %main Triangles - OpSource GLSL 450 - OpName %main "main" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %gl_out "gl_out" - OpName %gl_InvocationID "gl_InvocationID" - OpName %gl_TessLevelInner "gl_TessLevelInner" - OpName %gl_TessLevelOuter "gl_TessLevelOuter" - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - OpDecorate %gl_InvocationID BuiltIn InvocationId - OpDecorate %gl_TessLevelInner Patch - OpDecorate %gl_TessLevelInner BuiltIn TessLevelInner - OpDecorate %gl_TessLevelOuter Patch - OpDecorate %gl_TessLevelOuter BuiltIn TessLevelOuter - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %uint = OpTypeInt 32 0 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 - %uint_4 = OpConstant %uint 4 -%_arr_gl_PerVertex_uint_4 = OpTypeArray %gl_PerVertex %uint_4 -%_ptr_Output__arr_gl_PerVertex_uint_4 = OpTypePointer Output %_arr_gl_PerVertex_uint_4 - %gl_out = OpVariable %_ptr_Output__arr_gl_PerVertex_uint_4 Output - %int = OpTypeInt 32 1 -%_ptr_Input_int = OpTypePointer Input %int -%gl_InvocationID = OpVariable %_ptr_Input_int Input - %int_0 = OpConstant %int 0 - %float_1 = OpConstant %float 1 - %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %uint_2 = OpConstant %uint 2 -%_arr_float_uint_2 = OpTypeArray %float %uint_2 -%_ptr_Output__arr_float_uint_2 = OpTypePointer Output %_arr_float_uint_2 - %inner_zero = OpConstantNull %_arr_float_uint_2 -%gl_TessLevelInner = OpVariable %_ptr_Output__arr_float_uint_2 Output %inner_zero -%_ptr_Output_float = OpTypePointer Output %float - %int_1 = OpConstant %int 1 - %float_2 = OpConstant %float 2 -%_arr_float_uint_4 = OpTypeArray %float %uint_4 -%_ptr_Output__arr_float_uint_4 = OpTypePointer Output %_arr_float_uint_4 - %outer_zero = OpConstantNull %_arr_float_uint_4 -%gl_TessLevelOuter = OpVariable %_ptr_Output__arr_float_uint_4 Output %outer_zero - %float_3 = OpConstant %float 3 - %float_4 = OpConstant %float 4 - %int_2 = OpConstant %int 2 - %float_5 = OpConstant %float 5 - %int_3 = OpConstant %int 3 - %float_6 = OpConstant %float 6 - %main = OpFunction %void None %3 - %5 = OpLabel - %19 = OpLoad %int %gl_InvocationID - %24 = OpAccessChain %_ptr_Output_v4float %gl_out %19 %int_0 - OpStore %24 %22 - %30 = OpAccessChain %_ptr_Output_float %gl_TessLevelInner %int_0 - OpStore %30 %float_1 - %33 = OpAccessChain %_ptr_Output_float %gl_TessLevelInner %int_1 - OpStore %33 %float_2 - %38 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %int_0 - OpStore %38 %float_3 - %40 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %int_1 - OpStore %40 %float_4 - %43 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %int_2 - OpStore %43 %float_5 - %46 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %int_3 - OpStore %46 %float_6 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/tess-level-read-write-in-function-tri.asm.tesc b/third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/tess-level-read-write-in-function-tri.asm.tesc deleted file mode 100644 index 33b8883cc8..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/tesc/tess-level-read-write-in-function-tri.asm.tesc +++ /dev/null @@ -1,109 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 64 -; Schema: 0 - OpCapability Tessellation - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %main "main" %gl_TessLevelInner %gl_TessLevelOuter %gl_out %gl_InvocationID - OpExecutionMode %main OutputVertices 1 - OpExecutionMode %main Triangles - OpSource GLSL 450 - OpName %main "main" - OpName %load_tess_level_in_func_ "load_tess_level_in_func(" - OpName %store_tess_level_in_func_ "store_tess_level_in_func(" - OpName %gl_TessLevelInner "gl_TessLevelInner" - OpName %gl_TessLevelOuter "gl_TessLevelOuter" - OpName %v "v" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %gl_out "gl_out" - OpName %gl_InvocationID "gl_InvocationID" - OpDecorate %gl_TessLevelInner Patch - OpDecorate %gl_TessLevelInner BuiltIn TessLevelInner - OpDecorate %gl_TessLevelOuter Patch - OpDecorate %gl_TessLevelOuter BuiltIn TessLevelOuter - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - OpDecorate %gl_InvocationID BuiltIn InvocationId - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %7 = OpTypeFunction %float - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 -%_arr_float_uint_2 = OpTypeArray %float %uint_2 -%_ptr_Output__arr_float_uint_2 = OpTypePointer Output %_arr_float_uint_2 -%gl_TessLevelInner = OpVariable %_ptr_Output__arr_float_uint_2 Output - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_Output_float = OpTypePointer Output %float - %uint_4 = OpConstant %uint 4 -%_arr_float_uint_4 = OpTypeArray %float %uint_4 -%_ptr_Output__arr_float_uint_4 = OpTypePointer Output %_arr_float_uint_4 -%gl_TessLevelOuter = OpVariable %_ptr_Output__arr_float_uint_4 Output - %int_1 = OpConstant %int 1 - %float_1 = OpConstant %float 1 - %float_2 = OpConstant %float 2 - %float_3 = OpConstant %float 3 - %float_4 = OpConstant %float 4 - %int_2 = OpConstant %int 2 - %float_5 = OpConstant %float 5 - %int_3 = OpConstant %int 3 - %float_6 = OpConstant %float 6 -%_ptr_Function_float = OpTypePointer Function %float - %v4float = OpTypeVector %float 4 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 -%_arr_gl_PerVertex_uint_1 = OpTypeArray %gl_PerVertex %uint_1 -%_ptr_Output__arr_gl_PerVertex_uint_1 = OpTypePointer Output %_arr_gl_PerVertex_uint_1 - %gl_out = OpVariable %_ptr_Output__arr_gl_PerVertex_uint_1 Output -%_ptr_Input_int = OpTypePointer Input %int -%gl_InvocationID = OpVariable %_ptr_Input_int Input -%_ptr_Output_v4float = OpTypePointer Output %v4float - %main = OpFunction %void None %3 - %5 = OpLabel - %v = OpVariable %_ptr_Function_float Function - %46 = OpFunctionCall %void %store_tess_level_in_func_ - %49 = OpFunctionCall %float %load_tess_level_in_func_ - OpStore %v %49 - %59 = OpLoad %int %gl_InvocationID - %60 = OpLoad %float %v - %61 = OpCompositeConstruct %v4float %60 %60 %60 %60 - %63 = OpAccessChain %_ptr_Output_v4float %gl_out %59 %int_0 - OpStore %63 %61 - OpReturn - OpFunctionEnd -%load_tess_level_in_func_ = OpFunction %float None %7 - %9 = OpLabel - %20 = OpAccessChain %_ptr_Output_float %gl_TessLevelInner %int_0 - %21 = OpLoad %float %20 - %27 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %int_1 - %28 = OpLoad %float %27 - %29 = OpFAdd %float %21 %28 - OpReturnValue %29 - OpFunctionEnd -%store_tess_level_in_func_ = OpFunction %void None %3 - %11 = OpLabel - %33 = OpAccessChain %_ptr_Output_float %gl_TessLevelInner %int_0 - OpStore %33 %float_1 - %35 = OpAccessChain %_ptr_Output_float %gl_TessLevelInner %int_1 - OpStore %35 %float_2 - %37 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %int_0 - OpStore %37 %float_3 - %39 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %int_1 - OpStore %39 %float_4 - %42 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %int_2 - OpStore %42 %float_5 - %45 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %int_3 - OpStore %45 %float_6 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/tese/copy-tess-level.asm.msl2.tese b/third_party/spirv-cross/shaders-msl-no-opt/asm/tese/copy-tess-level.asm.msl2.tese deleted file mode 100644 index 5a7e730634..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/tese/copy-tess-level.asm.msl2.tese +++ /dev/null @@ -1,58 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 35 -; Schema: 0 - OpCapability Tessellation - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationEvaluation %Domain "main" %gl_TessLevelOuter %gl_TessLevelInner %in_var_CUSTOM_VALUE %gl_TessCoord %out_var_CUSTOM_VALUE - OpExecutionMode %Domain Quads - OpSource HLSL 600 - OpName %in_var_CUSTOM_VALUE "in.var.CUSTOM_VALUE" - OpName %out_var_CUSTOM_VALUE "out.var.CUSTOM_VALUE" - OpName %Domain "Domain" - OpDecorate %gl_TessLevelOuter BuiltIn TessLevelOuter - OpDecorate %gl_TessLevelOuter Patch - OpDecorate %gl_TessLevelInner BuiltIn TessLevelInner - OpDecorate %gl_TessLevelInner Patch - OpDecorate %gl_TessCoord BuiltIn TessCoord - OpDecorate %gl_TessCoord Patch - OpDecorate %in_var_CUSTOM_VALUE Location 0 - OpDecorate %out_var_CUSTOM_VALUE Location 0 - %uint = OpTypeInt 32 0 - %uint_4 = OpConstant %uint 4 - %float = OpTypeFloat 32 -%_arr_float_uint_4 = OpTypeArray %float %uint_4 -%_ptr_Input__arr_float_uint_4 = OpTypePointer Input %_arr_float_uint_4 - %uint_2 = OpConstant %uint 2 -%_arr_float_uint_2 = OpTypeArray %float %uint_2 -%_ptr_Input__arr_float_uint_2 = OpTypePointer Input %_arr_float_uint_2 - %v4float = OpTypeVector %float 4 -%_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4 -%_ptr_Input__arr_v4float_uint_4 = OpTypePointer Input %_arr_v4float_uint_4 - %v3float = OpTypeVector %float 3 -%_ptr_Input_v3float = OpTypePointer Input %v3float -%_ptr_Output_v4float = OpTypePointer Output %v4float - %void = OpTypeVoid - %22 = OpTypeFunction %void -%gl_TessLevelOuter = OpVariable %_ptr_Input__arr_float_uint_4 Input -%gl_TessLevelInner = OpVariable %_ptr_Input__arr_float_uint_2 Input -%in_var_CUSTOM_VALUE = OpVariable %_ptr_Input__arr_v4float_uint_4 Input -%gl_TessCoord = OpVariable %_ptr_Input_v3float Input -%out_var_CUSTOM_VALUE = OpVariable %_ptr_Output_v4float Output - %Domain = OpFunction %void None %22 - %23 = OpLabel - %24 = OpLoad %_arr_float_uint_4 %gl_TessLevelOuter - %25 = OpLoad %_arr_float_uint_2 %gl_TessLevelInner - %26 = OpCompositeExtract %float %24 0 - %27 = OpCompositeExtract %float %24 1 - %28 = OpCompositeExtract %float %24 2 - %29 = OpCompositeExtract %float %24 3 - %30 = OpCompositeExtract %float %25 0 - %31 = OpCompositeExtract %float %25 1 - %32 = OpFAdd %float %26 %30 - %33 = OpFAdd %float %27 %31 - %34 = OpCompositeConstruct %v4float %32 %33 %28 %29 - OpStore %out_var_CUSTOM_VALUE %34 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/tese/split-access-chain.asm.tese b/third_party/spirv-cross/shaders-msl-no-opt/asm/tese/split-access-chain.asm.tese deleted file mode 100644 index e13064f94f..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/tese/split-access-chain.asm.tese +++ /dev/null @@ -1,35 +0,0 @@ - OpCapability Tessellation - %94 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationEvaluation %main "main" %in0 %o0 - OpExecutionMode %main Quads - OpName %main "main" - OpName %in0 "in0" - OpName %o0 "o0" - OpDecorate %in0 Location 0 - OpDecorate %o0 Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 - %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 -%_arr_v4float_uint_1 = OpTypeArray %v4float %uint_1 -%_ptr_Output_float = OpTypePointer Output %float -%_ptr_Input__arr_v4float_uint_1 = OpTypePointer Input %_arr_v4float_uint_1 - %in0 = OpVariable %_ptr_Input__arr_v4float_uint_1 Input -%_ptr_Output_v4float = OpTypePointer Output %v4float - %o0 = OpVariable %_ptr_Output_float Output -%_ptr_Function_float = OpTypePointer Function %float -%_ptr_Input_v4float = OpTypePointer Input %v4float -%_ptr_Input_float = OpTypePointer Input %float - %main = OpFunction %void None %3 - %4 = OpLabel - %ac = OpAccessChain %_ptr_Input_v4float %in0 %uint_0 - %bac = OpInBoundsAccessChain %_ptr_Input_float %ac %uint_2 - %loaded = OpLoad %float %bac - OpStore %o0 %loaded - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/vert/block-struct-initializer.asm.vert b/third_party/spirv-cross/shaders-msl-no-opt/asm/vert/block-struct-initializer.asm.vert deleted file mode 100644 index 6ae3b67e59..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/vert/block-struct-initializer.asm.vert +++ /dev/null @@ -1,43 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 13 -; Schema: 0 -OpCapability Shader -%1 = OpExtInstImport "GLSL.std.450" -OpMemoryModel Logical GLSL450 -OpEntryPoint Vertex %main "main" %_ %foo %gl_Position -OpSource GLSL 450 -OpName %main "main" -OpName %Vert "Vert" -OpMemberName %Vert 0 "a" -OpMemberName %Vert 1 "b" -OpName %_ "" -OpName %Foo "Foo" -OpMemberName %Foo 0 "c" -OpMemberName %Foo 1 "d" -OpName %foo "foo" -OpDecorate %Vert Block -OpDecorate %_ Location 0 -OpDecorate %foo Location 2 -OpDecorate %gl_Position BuiltIn Position -%void = OpTypeVoid -%3 = OpTypeFunction %void -%float = OpTypeFloat 32 -%Vert = OpTypeStruct %float %float -%vec4 = OpTypeVector %float 4 -%ptr_Output_vec4 = OpTypePointer Output %vec4 -%_ptr_Output_Vert = OpTypePointer Output %Vert -%zero_vert = OpConstantNull %Vert -%_ = OpVariable %_ptr_Output_Vert Output %zero_vert -%gl_Position = OpVariable %ptr_Output_vec4 Output -%Foo = OpTypeStruct %float %float -%_ptr_Output_Foo = OpTypePointer Output %Foo -%zero_foo = OpConstantNull %Foo -%blank = OpConstantNull %vec4 -%foo = OpVariable %_ptr_Output_Foo Output %zero_foo -%main = OpFunction %void None %3 -%5 = OpLabel -OpStore %gl_Position %blank -OpReturn -OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/vert/builtin-output-initializer.asm.vert b/third_party/spirv-cross/shaders-msl-no-opt/asm/vert/builtin-output-initializer.asm.vert deleted file mode 100644 index a00d4b71bb..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/vert/builtin-output-initializer.asm.vert +++ /dev/null @@ -1,39 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 20 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %main "main" %_ - OpSource GLSL 450 - OpName %main "main" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpName %_ "" - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpDecorate %gl_PerVertex Block - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %uint = OpTypeInt 32 0 - %uint_1 = OpConstant %uint 1 -%gl_PerVertex = OpTypeStruct %v4float %float -%_ptr_Output_gl_PerVertex = OpTypePointer Output %gl_PerVertex - %zero = OpConstantNull %gl_PerVertex - %_ = OpVariable %_ptr_Output_gl_PerVertex Output %zero - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %float_1 = OpConstant %float 1 - %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %main = OpFunction %void None %3 - %5 = OpLabel - %19 = OpAccessChain %_ptr_Output_v4float %_ %int_0 - OpStore %19 %17 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/vert/composite-extract-physical-type-id.asm.vert b/third_party/spirv-cross/shaders-msl-no-opt/asm/vert/composite-extract-physical-type-id.asm.vert deleted file mode 100644 index d44e325b1c..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/vert/composite-extract-physical-type-id.asm.vert +++ /dev/null @@ -1,63 +0,0 @@ - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %VSMain "main" %gl_VertexIndex %gl_Position - OpSource HLSL 600 - OpName %type_Float2Array "type.Float2Array" - OpMemberName %type_Float2Array 0 "arr" - OpName %Float2Array "Float2Array" - OpName %VSMain "VSMain" - OpName %param_var_i "param.var.i" - OpName %src_VSMain "src.VSMain" - OpName %i "i" - OpName %bb_entry "bb.entry" - OpDecorate %gl_VertexIndex BuiltIn VertexIndex - OpDecorate %gl_Position BuiltIn Position - OpDecorate %Float2Array DescriptorSet 0 - OpDecorate %Float2Array Binding 0 - OpDecorate %_arr_v2float_uint_3 ArrayStride 16 - OpMemberDecorate %type_Float2Array 0 Offset 0 - OpDecorate %type_Float2Array Block - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %float = OpTypeFloat 32 - %float_0 = OpConstant %float 0 - %float_1 = OpConstant %float 1 - %uint = OpTypeInt 32 0 - %uint_3 = OpConstant %uint 3 - %v2float = OpTypeVector %float 2 -%_arr_v2float_uint_3 = OpTypeArray %v2float %uint_3 -%type_Float2Array = OpTypeStruct %_arr_v2float_uint_3 -%_ptr_Uniform_type_Float2Array = OpTypePointer Uniform %type_Float2Array -%_ptr_Input_uint = OpTypePointer Input %uint - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %void = OpTypeVoid - %20 = OpTypeFunction %void -%_ptr_Function_uint = OpTypePointer Function %uint - %27 = OpTypeFunction %v4float %_ptr_Function_uint -%_ptr_Uniform__arr_v2float_uint_3 = OpTypePointer Uniform %_arr_v2float_uint_3 -%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float -%Float2Array = OpVariable %_ptr_Uniform_type_Float2Array Uniform -%gl_VertexIndex = OpVariable %_ptr_Input_uint Input -%gl_Position = OpVariable %_ptr_Output_v4float Output - %VSMain = OpFunction %void None %20 - %21 = OpLabel -%param_var_i = OpVariable %_ptr_Function_uint Function - %24 = OpLoad %uint %gl_VertexIndex - OpStore %param_var_i %24 - %25 = OpFunctionCall %v4float %src_VSMain %param_var_i - OpStore %gl_Position %25 - OpReturn - OpFunctionEnd - %src_VSMain = OpFunction %v4float None %27 - %i = OpFunctionParameter %_ptr_Function_uint - %bb_entry = OpLabel - %30 = OpLoad %uint %i - %32 = OpAccessChain %_ptr_Uniform__arr_v2float_uint_3 %Float2Array %int_0 - %34 = OpAccessChain %_ptr_Uniform_v2float %32 %30 - %35 = OpLoad %v2float %34 - %36 = OpCompositeExtract %float %35 0 - %37 = OpCompositeExtract %float %35 1 - %38 = OpCompositeConstruct %v4float %36 %37 %float_0 %float_1 - OpReturnValue %38 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/vert/duplicate-view-index.asm.vert b/third_party/spirv-cross/shaders-msl-no-opt/asm/vert/duplicate-view-index.asm.vert deleted file mode 100644 index 00ad1ee9cb..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/vert/duplicate-view-index.asm.vert +++ /dev/null @@ -1,66 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 23 -; Schema: 0 - OpCapability Shader - OpCapability MultiView - OpExtension "SPV_KHR_multiview" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %main "main" %_ %gl_ViewIndex - OpEntryPoint Vertex %main2 "main2" %_ %gl_ViewIndex2 - OpSource GLSL 450 - OpSourceExtension "GL_EXT_multiview" - OpName %main "main" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %_ "" - OpName %gl_ViewIndex "gl_ViewIndex" - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - OpDecorate %gl_ViewIndex BuiltIn ViewIndex - OpDecorate %gl_ViewIndex2 BuiltIn ViewIndex - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %uint = OpTypeInt 32 0 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 -%_ptr_Output_gl_PerVertex = OpTypePointer Output %gl_PerVertex - %_ = OpVariable %_ptr_Output_gl_PerVertex Output - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_Input_int = OpTypePointer Input %int -%gl_ViewIndex = OpVariable %_ptr_Input_int Input -%gl_ViewIndex2 = OpVariable %_ptr_Input_int Input -%_ptr_Output_v4float = OpTypePointer Output %v4float - - %main = OpFunction %void None %3 - %5 = OpLabel - %18 = OpLoad %int %gl_ViewIndex - %19 = OpConvertSToF %float %18 - %20 = OpCompositeConstruct %v4float %19 %19 %19 %19 - %22 = OpAccessChain %_ptr_Output_v4float %_ %int_0 - OpStore %22 %20 - OpReturn - OpFunctionEnd - - %main2 = OpFunction %void None %3 - %100 = OpLabel - %101 = OpLoad %int %gl_ViewIndex2 - %102 = OpConvertSToF %float %101 - %103 = OpCompositeConstruct %v4float %102 %102 %102 %102 - %104 = OpAccessChain %_ptr_Output_v4float %_ %int_0 - OpStore %104 %103 - - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/vert/empty-struct-composite.asm.vert b/third_party/spirv-cross/shaders-msl-no-opt/asm/vert/empty-struct-composite.asm.vert deleted file mode 100644 index 038ecaa6e3..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/vert/empty-struct-composite.asm.vert +++ /dev/null @@ -1,36 +0,0 @@ -; SPIR-V -; Version: 1.1 -; Generator: Google rspirv; 0 -; Bound: 17 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %2 "main" - OpName %Test "Test" - OpName %t "t" - OpName %retvar "retvar" - OpName %main "main" - OpName %retvar_0 "retvar" - %void = OpTypeVoid - %6 = OpTypeFunction %void - %Test = OpTypeStruct -%_ptr_Function_Test = OpTypePointer Function %Test -%_ptr_Function_void = OpTypePointer Function %void - %2 = OpFunction %void None %6 - %7 = OpLabel - %t = OpVariable %_ptr_Function_Test Function - %retvar = OpVariable %_ptr_Function_void Function - OpBranch %4 - %4 = OpLabel - %13 = OpCompositeConstruct %Test - OpStore %t %13 - OpReturn - OpFunctionEnd - %main = OpFunction %void None %6 - %15 = OpLabel - %retvar_0 = OpVariable %_ptr_Function_void Function - OpBranch %14 - %14 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/vert/op-load-forced-temporary-array.asm.frag b/third_party/spirv-cross/shaders-msl-no-opt/asm/vert/op-load-forced-temporary-array.asm.frag deleted file mode 100644 index fecc83a95d..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/vert/op-load-forced-temporary-array.asm.frag +++ /dev/null @@ -1,60 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 39 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %vs_main "main" %gl_Position - OpSource HLSL 600 - OpName %vs_main "vs_main" - OpDecorate %gl_Position BuiltIn Position - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %int_2 = OpConstant %int 2 - %float = OpTypeFloat 32 - %float_0 = OpConstant %float 0 - %int_1 = OpConstant %int 1 - %float_3 = OpConstant %float 3 - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %void = OpTypeVoid - %15 = OpTypeFunction %void - %uint_2 = OpConstant %uint 2 -%_arr_float_uint_2 = OpTypeArray %float %uint_2 -%_ptr_Function__arr_float_uint_2 = OpTypePointer Function %_arr_float_uint_2 -%_ptr_Function_float = OpTypePointer Function %float - %bool = OpTypeBool -%gl_Position = OpVariable %_ptr_Output_v4float Output - %21 = OpUndef %float - %vs_main = OpFunction %void None %15 - %22 = OpLabel - %23 = OpVariable %_ptr_Function__arr_float_uint_2 Function - OpBranch %24 - %24 = OpLabel - %25 = OpPhi %int %int_0 %22 %26 %27 - %28 = OpSLessThan %bool %25 %int_2 - OpLoopMerge %29 %27 None - OpBranchConditional %28 %27 %29 - %27 = OpLabel - %30 = OpAccessChain %_ptr_Function_float %23 %25 - OpStore %30 %float_0 - %26 = OpIAdd %int %25 %int_1 - OpBranch %24 - %29 = OpLabel - %31 = OpLoad %_arr_float_uint_2 %23 - %32 = OpBitcast %uint %float_3 - %33 = OpINotEqual %bool %32 %uint_0 - OpSelectionMerge %34 None - OpBranchConditional %33 %35 %34 - %35 = OpLabel - %36 = OpCompositeExtract %float %31 0 - OpBranch %34 - %34 = OpLabel - %37 = OpPhi %float %21 %29 %36 %35 - %38 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %37 - OpStore %gl_Position %38 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/asm/vert/pointer-to-pointer.asm.vert b/third_party/spirv-cross/shaders-msl-no-opt/asm/vert/pointer-to-pointer.asm.vert deleted file mode 100644 index 22058d2c8c..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/asm/vert/pointer-to-pointer.asm.vert +++ /dev/null @@ -1,34 +0,0 @@ -OpCapability Shader -OpCapability VariablePointers -OpCapability VariablePointersStorageBuffer -OpMemoryModel Logical GLSL450 - -OpEntryPoint Vertex %fn_vert "main" - -%F = OpTypeFloat 32 -%PF = OpTypePointer StorageBuffer %F -%PPF = OpTypePointer Private %PF -%PPPF = OpTypePointer Function %PPF - -%V = OpTypeVoid -%Fn0V = OpTypeFunction %V - -%FnArg = OpTypeFunction %V %PPPF - -%uPPF = OpUndef %PPF - -%fn_ptr = OpFunction %V None %FnArg - %arg = OpFunctionParameter %PPPF - %fn_ptr_bb0 = OpLabel - OpReturn -OpFunctionEnd - -%fn_vert = OpFunction %V None %Fn0V - %fn_vert_bb0 = OpLabel - %VPPPF = OpVariable %PPPF Function - OpStore %VPPPF %uPPF - %VV = OpFunctionCall %V %fn_ptr %VPPPF - OpReturn -OpFunctionEnd - - diff --git a/third_party/spirv-cross/shaders-msl-no-opt/comp/array-copy-threadgroup-memory.comp b/third_party/spirv-cross/shaders-msl-no-opt/comp/array-copy-threadgroup-memory.comp deleted file mode 100644 index 081c39626d..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/comp/array-copy-threadgroup-memory.comp +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 -layout(local_size_x = 8) in; - -shared float shared_group[8][8]; -shared float shared_group_alt[8][8]; - -void main() -{ - float blob[8]; - for (int i = 0; i < 8; i++) - blob[i] = float(i); - shared_group[gl_LocalInvocationIndex] = blob; - - barrier(); - - float copied_blob[8] = shared_group[gl_LocalInvocationIndex ^ 1u]; - shared_group_alt[gl_LocalInvocationIndex] = shared_group[gl_LocalInvocationIndex]; -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/comp/basic.dynamic-buffer.msl2.invalid.comp b/third_party/spirv-cross/shaders-msl-no-opt/comp/basic.dynamic-buffer.msl2.invalid.comp deleted file mode 100644 index c2965731e9..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/comp/basic.dynamic-buffer.msl2.invalid.comp +++ /dev/null @@ -1,27 +0,0 @@ -#version 450 -layout(local_size_x = 3, local_size_y = 3, local_size_z = 2) in; - -layout(set = 0, binding = 0) uniform Foo -{ - int a; - int b; -}; - -layout(set = 0, binding = 1) uniform Bar -{ - int c; - int d; -}; - -layout(set = 1, binding = 2) buffer Baz -{ - int e; - int f; -} baz[3][3][2]; - -void main() -{ - uvec3 coords = gl_GlobalInvocationID; - baz[coords.x][coords.y][coords.z].e = a + c; - baz[coords.x][coords.y][coords.z].f = b * d; -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/comp/bitcast-16bit-1.invalid.comp b/third_party/spirv-cross/shaders-msl-no-opt/comp/bitcast-16bit-1.invalid.comp deleted file mode 100644 index 0c21cda306..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/comp/bitcast-16bit-1.invalid.comp +++ /dev/null @@ -1,23 +0,0 @@ -#version 450 core -#extension GL_AMD_gpu_shader_half_float : require -#extension GL_AMD_gpu_shader_int16 : require -layout(local_size_x = 1) in; - -layout(binding = 0, std430) buffer SSBO0 -{ - i16vec4 inputs[]; -}; - -layout(binding = 1, std430) buffer SSBO1 -{ - ivec4 outputs[]; -}; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - f16vec2 a = int16BitsToFloat16(inputs[ident].xy); - outputs[ident].x = int(packFloat2x16(a + f16vec2(1, 1))); - outputs[ident].y = packInt2x16(inputs[ident].zw); - outputs[ident].z = int(packUint2x16(u16vec2(inputs[ident].xy))); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/comp/bitcast-16bit-2.invalid.comp b/third_party/spirv-cross/shaders-msl-no-opt/comp/bitcast-16bit-2.invalid.comp deleted file mode 100644 index 6bb662412c..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/comp/bitcast-16bit-2.invalid.comp +++ /dev/null @@ -1,26 +0,0 @@ -#version 450 core -#extension GL_AMD_gpu_shader_half_float : require -#extension GL_AMD_gpu_shader_int16 : require -layout(local_size_x = 1) in; - -layout(binding = 0, std430) buffer SSBO0 -{ - ivec4 inputs[]; -}; - -layout(binding = 1, std430) buffer SSBO1 -{ - i16vec4 outputs[]; -}; - -layout(binding = 2) uniform UBO -{ - f16vec4 const0; -}; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - outputs[ident].xy = unpackInt2x16(inputs[ident].x) + float16BitsToInt16(const0.xy); - outputs[ident].zw = i16vec2(unpackUint2x16(uint(inputs[ident].y)) - float16BitsToUint16(const0.zw)); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/comp/bitfield.comp b/third_party/spirv-cross/shaders-msl-no-opt/comp/bitfield.comp deleted file mode 100644 index 0cac0b257c..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/comp/bitfield.comp +++ /dev/null @@ -1,23 +0,0 @@ -#version 310 es - -void main() -{ - int signed_value = 0; - uint unsigned_value = 0u; - - int s = bitfieldExtract(signed_value, 5, 20); - uint u = bitfieldExtract(unsigned_value, 6, 21); - s = bitfieldInsert(s, 40, 5, 4); - u = bitfieldInsert(u, 60u, 5, 4); - - u = bitfieldReverse(u); - s = bitfieldReverse(s); - - int v0 = bitCount(u); - int v1 = bitCount(s); - - int v2 = findMSB(u); - int v3 = findMSB(s); - int v4 = findLSB(u); - int v5 = findLSB(s); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/comp/glsl.std450.comp b/third_party/spirv-cross/shaders-msl-no-opt/comp/glsl.std450.comp deleted file mode 100644 index a17a82b82a..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/comp/glsl.std450.comp +++ /dev/null @@ -1,129 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -layout(binding = 0, std430) buffer SSBO -{ - float res; - int ires; - uint ures; - - vec4 f32; - ivec4 s32; - uvec4 u32; - - mat2 m2; - mat3 m3; - mat4 m4; -}; - -void main() -{ - float tmp; - vec2 v2; - vec3 v3; - vec4 v4; - int itmp; - - res = round(f32.x); - res = roundEven(f32.x); - res = trunc(f32.x); - res = abs(f32.x); - ires = abs(s32.x); - res = sign(f32.x); - ires = sign(s32.x); - res = floor(f32.x); - res = ceil(f32.x); - res = fract(f32.x); - res = radians(f32.x); - res = degrees(f32.x); - res = sin(f32.x); - res = cos(f32.x); - res = tan(f32.x); - res = asin(f32.x); - res = acos(f32.x); - res = atan(f32.x); - res = sinh(f32.x); - res = cosh(f32.x); - res = tanh(f32.x); - res = asinh(f32.x); - res = acosh(f32.x); - res = atanh(f32.x); - res = atan(f32.x, f32.y); - res = pow(f32.x, f32.y); - res = exp(f32.x); - res = log(f32.x); - res = exp2(f32.x); - res = log2(f32.x); - res = sqrt(f32.x); - res = inversesqrt(f32.x); - - res = length(f32.x); - res = distance(f32.x, f32.y); - res = normalize(f32.x); - res = faceforward(f32.x, f32.y, f32.z); - res = reflect(f32.x, f32.y); - res = refract(f32.x, f32.y, f32.z); - - res = length(f32.xy); - res = distance(f32.xy, f32.zw); - v2 = normalize(f32.xy); - v2 = faceforward(f32.xy, f32.yz, f32.zw); - v2 = reflect(f32.xy, f32.zw); - v2 = refract(f32.xy, f32.yz, f32.w); - - v3 = cross(f32.xyz, f32.yzw); - - res = determinant(m2); - res = determinant(m3); - res = determinant(m4); - m2 = inverse(m2); - m3 = inverse(m3); - m4 = inverse(m4); - - res = modf(f32.x, tmp); - // ModfStruct - - res = min(f32.x, f32.y); - ures = min(u32.x, u32.y); - ires = min(s32.x, s32.y); - res = max(f32.x, f32.y); - ures = max(u32.x, u32.y); - ires = max(s32.x, s32.y); - - res = clamp(f32.x, f32.y, f32.z); - ures = clamp(u32.x, u32.y, u32.z); - ires = clamp(s32.x, s32.y, s32.z); - - res = mix(f32.x, f32.y, f32.z); - res = step(f32.x, f32.y); - res = smoothstep(f32.x, f32.y, f32.z); - res = fma(f32.x, f32.y, f32.z); - - res = frexp(f32.x, itmp); - // FrexpStruct - res = ldexp(f32.x, itmp); - - ures = packSnorm4x8(f32); - ures = packUnorm4x8(f32); - ures = packSnorm2x16(f32.xy); - ures = packUnorm2x16(f32.xy); - ures = packHalf2x16(f32.xy); - // packDouble2x32 - - v2 = unpackSnorm2x16(u32.x); - v2 = unpackUnorm2x16(u32.x); - v2 = unpackHalf2x16(u32.x); - v4 = unpackSnorm4x8(u32.x); - v4 = unpackUnorm4x8(u32.x); - // unpackDouble2x32 - - s32 = findLSB(s32); - s32 = findLSB(u32); - s32 = findMSB(s32); - s32 = findMSB(u32); - - // interpolateAtSample - // interpolateAtOffset - - // NMin, NMax, NClamp -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/comp/illegal-struct-name.asm.comp b/third_party/spirv-cross/shaders-msl-no-opt/comp/illegal-struct-name.asm.comp deleted file mode 100644 index f7a8787d3d..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/comp/illegal-struct-name.asm.comp +++ /dev/null @@ -1,62 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 31 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %Foo "Foo" - OpMemberName %Foo 0 "abs" - OpName %f "f" - OpName %Foo_0 "Foo" - OpMemberName %Foo_0 0 "abs" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "foo" - OpMemberName %SSBO 1 "foo2" - OpName %_ "" - OpName %linear "abs" - OpMemberDecorate %Foo_0 0 Offset 0 - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %SSBO 1 Offset 4 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %Foo = OpTypeStruct %float -%_ptr_Function_Foo = OpTypePointer Function %Foo - %Foo_0 = OpTypeStruct %float - %SSBO = OpTypeStruct %Foo_0 %Foo_0 -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_Uniform_Foo_0 = OpTypePointer Uniform %Foo_0 -%_ptr_Function_float = OpTypePointer Function %float -%_ptr_Function_int = OpTypePointer Function %int - %int_10 = OpConstant %int 10 - %int_1 = OpConstant %int 1 -%_ptr_Uniform_float = OpTypePointer Uniform %float - %main = OpFunction %void None %3 - %5 = OpLabel - %f = OpVariable %_ptr_Function_Foo Function - %linear = OpVariable %_ptr_Function_int Function - %17 = OpAccessChain %_ptr_Uniform_Foo_0 %_ %int_0 - %18 = OpLoad %Foo_0 %17 - %19 = OpCompositeExtract %float %18 0 - %21 = OpAccessChain %_ptr_Function_float %f %int_0 - OpStore %21 %19 - OpStore %linear %int_10 - %26 = OpLoad %Foo %f - %27 = OpAccessChain %_ptr_Uniform_Foo_0 %_ %int_1 - %28 = OpCompositeExtract %float %26 0 - %30 = OpAccessChain %_ptr_Uniform_float %27 %int_0 - OpStore %30 %28 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/comp/int64.invalid.msl22.comp b/third_party/spirv-cross/shaders-msl-no-opt/comp/int64.invalid.msl22.comp deleted file mode 100644 index 965bed4ae4..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/comp/int64.invalid.msl22.comp +++ /dev/null @@ -1,65 +0,0 @@ -#version 450 -#extension GL_ARB_gpu_shader_int64 : require -layout(local_size_x = 1) in; - -struct M0 -{ - int64_t v; - i64vec2 b[2]; - uint64_t c; - uint64_t d[5]; -}; - -struct SSBO0_Type -{ - i64vec4 a; - M0 m0; -}; - -struct SSBO1_Type -{ - u64vec4 b; - M0 m0; -}; - -struct SSBO2_Type -{ - int64_t a[4]; - i64vec2 b[4]; -}; - -struct SSBO3_Type -{ - int64_t a[4]; - i64vec2 b[4]; -}; - -layout(set = 0, binding = 0, std430) buffer SSBO -{ - int s32; - uint u32; -}; - -void main() -{ - SSBO0_Type ssbo_0; - SSBO1_Type ssbo_1; - SSBO2_Type ssbo_2; - SSBO3_Type ssbo_3; - - ssbo_0.a += i64vec4(10, 20, 30, 40); - ssbo_1.b += u64vec4(999999999999999999ul, 8888888888888888ul, 77777777777777777ul, 6666666666666666ul); - ssbo_0.a += 20; - ssbo_0.a = abs(ssbo_0.a + i64vec4(ssbo_1.b)); - - ssbo_0.a++; - ssbo_1.b++; - ssbo_0.a--; - ssbo_1.b--; - - ssbo_2.a[0] += 1l; - ssbo_3.a[0] += 2l; - - s32 = int(ssbo_0.a.x + ssbo_1.b.y + ssbo_2.a[1] + ssbo_3.a[2]); - u32 = uint(ssbo_0.a.y + ssbo_1.b.z + ssbo_2.a[0] + ssbo_3.a[1]); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/comp/loop.comp b/third_party/spirv-cross/shaders-msl-no-opt/comp/loop.comp deleted file mode 100644 index 6d6c324243..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/comp/loop.comp +++ /dev/null @@ -1,98 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(std430, binding = 0) readonly buffer SSBO -{ - mat4 mvp; - vec4 in_data[]; -}; - -layout(std430, binding = 1) writeonly buffer SSBO2 -{ - vec4 out_data[]; -}; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - vec4 idat = in_data[ident]; - - int k = 0; - uint i = 0u; - - if (idat.y == 20.0) - { - do - { - k = k * 2; - i++; - } while (i < ident); - } - - switch (k) - { - case 10: - for (;;) - { - i++; - if (i > 10u) - break; - } - break; - - default: - for (;;) - { - i += 2u; - if (i > 20u) - break; - } - break; - } - - while (k < 10) - { - idat *= 2.0; - k++; - } - - for (uint i = 0u; i < 16u; i++, k++) - for (uint j = 0u; j < 30u; j++) - idat = mvp * idat; - - k = 0; - for (;;) - { - k++; - if (k > 10) - { - k += 2; - } - else - { - k += 3; - continue; - } - - k += 10; - } - - k = 0; - do - { - k++; - } while (k > 10); - - int l = 0; - for (;; l++) - { - if (l == 5) - { - continue; - } - - idat += 1.0; - } - out_data[ident] = idat; -} - diff --git a/third_party/spirv-cross/shaders-msl-no-opt/comp/return.comp b/third_party/spirv-cross/shaders-msl-no-opt/comp/return.comp deleted file mode 100644 index 617f437182..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/comp/return.comp +++ /dev/null @@ -1,33 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(std430, binding = 1) writeonly buffer SSBO2 -{ - vec4 out_data[]; -}; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - - if (ident == 2u) - { - out_data[ident] = vec4(20.0); - } - else if (ident == 4u) - { - out_data[ident] = vec4(10.0); - return; - } - - for (int i = 0; i < 20; i++) - { - if (i == 10) - break; - - return; - } - - out_data[ident] = vec4(10.0); -} - diff --git a/third_party/spirv-cross/shaders-msl-no-opt/comp/std140-array-load-composite-construct.comp b/third_party/spirv-cross/shaders-msl-no-opt/comp/std140-array-load-composite-construct.comp deleted file mode 100644 index af1c47b32c..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/comp/std140-array-load-composite-construct.comp +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -layout(std140, binding = 0) buffer SSBO -{ - float a[16]; - vec4 b[16]; -}; - -void main() -{ - b[gl_GlobalInvocationID.x] = vec4(a[gl_GlobalInvocationID.x]); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/comp/struct-packing-scalar.nocompat.invalid.vk.comp b/third_party/spirv-cross/shaders-msl-no-opt/comp/struct-packing-scalar.nocompat.invalid.vk.comp deleted file mode 100644 index 47d88912f7..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/comp/struct-packing-scalar.nocompat.invalid.vk.comp +++ /dev/null @@ -1,100 +0,0 @@ -#version 310 es -#extension GL_EXT_scalar_block_layout : require - -layout(local_size_x = 1) in; - -struct S0 -{ - vec2 a[1]; - float b; -}; - -struct S1 -{ - vec3 a; - float b; -}; - -struct S2 -{ - vec3 a[1]; - float b; -}; - -struct S3 -{ - vec2 a; - float b; -}; - -struct S4 -{ - vec2 c; -}; - -struct Content -{ - S0 m0s[1]; - S1 m1s[1]; - S2 m2s[1]; - S0 m0; - S1 m1; - S2 m2; - S3 m3; - float m4; - - // glslang seems to miscompile this atm into ArrayStride of 16 even in scalar layout. - //S4 m3s[8]; -}; - -layout(binding = 2, scalar) restrict buffer SSBO2 -{ - float m0; - mat2 m1; - layout(row_major) mat3x2 m2; -} ssbo_scalar2; - -layout(binding = 1, scalar) restrict buffer SSBO1 -{ - Content content; - Content content1[2]; - Content content2; - - layout(column_major) mat2 m0; - layout(column_major) mat2 m1; - layout(column_major) mat2x3 m2[4]; - layout(column_major) mat3x2 m3; - layout(row_major) mat2 m4; - layout(row_major) mat2 m5[9]; - layout(row_major) mat2x3 m6[4][2]; - layout(row_major) mat3x2 m7; - float array[]; -} ssbo_scalar; - -layout(binding = 0, std140) restrict buffer SSBO0 -{ - Content content; - Content content1[2]; - Content content2; - - layout(column_major) mat2 m0; - layout(column_major) mat2 m1; - layout(column_major) mat2x3 m2[4]; - layout(column_major) mat3x2 m3; - layout(row_major) mat2 m4; - layout(row_major) mat2 m5[9]; - layout(row_major) mat2x3 m6[4][2]; - layout(row_major) mat3x2 m7; - - float array[]; -} ssbo_140; - -void main() -{ - ssbo_scalar.content = ssbo_140.content; - ssbo_scalar.content.m1.a = ssbo_scalar.m2[1] * ssbo_scalar.content.m0.a[0]; // test packed matrix access - ssbo_scalar.m0 = ssbo_scalar2.m1; - ssbo_scalar2.m1 = ssbo_scalar.m4; - ssbo_scalar2.m2 = ssbo_scalar.m3; -} - diff --git a/third_party/spirv-cross/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl12.emulate-subgroup.comp b/third_party/spirv-cross/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl12.emulate-subgroup.comp deleted file mode 100644 index 8a0be2269e..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl12.emulate-subgroup.comp +++ /dev/null @@ -1,25 +0,0 @@ -#version 450 -#extension GL_KHR_shader_subgroup_basic : require -layout(local_size_x = 1) in; - -layout(std430, binding = 0) buffer SSBO -{ - float FragColor; -}; - -// Reduced test for emulated functionality. - -void main() -{ - // basic - FragColor = float(gl_NumSubgroups); - FragColor = float(gl_SubgroupID); - FragColor = float(gl_SubgroupSize); - FragColor = float(gl_SubgroupInvocationID); - subgroupBarrier(); - subgroupMemoryBarrier(); - subgroupMemoryBarrierBuffer(); - subgroupMemoryBarrierShared(); - subgroupMemoryBarrierImage(); - bool elected = subgroupElect(); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl21.comp b/third_party/spirv-cross/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl21.comp deleted file mode 100644 index f840d2aee8..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl21.comp +++ /dev/null @@ -1,145 +0,0 @@ -#version 450 -#extension GL_KHR_shader_subgroup_basic : require -#extension GL_KHR_shader_subgroup_ballot : require -#extension GL_KHR_shader_subgroup_vote : require -#extension GL_KHR_shader_subgroup_shuffle : require -#extension GL_KHR_shader_subgroup_shuffle_relative : require -#extension GL_KHR_shader_subgroup_arithmetic : require -#extension GL_KHR_shader_subgroup_clustered : require -#extension GL_KHR_shader_subgroup_quad : require -layout(local_size_x = 1) in; - -layout(std430, binding = 0) buffer SSBO -{ - float FragColor; -}; - -void main() -{ - // basic - FragColor = float(gl_NumSubgroups); - FragColor = float(gl_SubgroupID); - FragColor = float(gl_SubgroupSize); - FragColor = float(gl_SubgroupInvocationID); - subgroupBarrier(); - subgroupMemoryBarrier(); - subgroupMemoryBarrierBuffer(); - subgroupMemoryBarrierShared(); - subgroupMemoryBarrierImage(); - bool elected = subgroupElect(); - - // ballot - FragColor = float(gl_SubgroupEqMask); - FragColor = float(gl_SubgroupGeMask); - FragColor = float(gl_SubgroupGtMask); - FragColor = float(gl_SubgroupLeMask); - FragColor = float(gl_SubgroupLtMask); - vec4 broadcasted = subgroupBroadcast(vec4(10.0), 8u); - bvec2 broadcasted_bool = subgroupBroadcast(bvec2(true), 8u); - vec3 first = subgroupBroadcastFirst(vec3(20.0)); - bvec4 first_bool = subgroupBroadcastFirst(bvec4(false)); - uvec4 ballot_value = subgroupBallot(true); - bool inverse_ballot_value = subgroupInverseBallot(ballot_value); - bool bit_extracted = subgroupBallotBitExtract(uvec4(10u), 8u); - uint bit_count = subgroupBallotBitCount(ballot_value); - uint inclusive_bit_count = subgroupBallotInclusiveBitCount(ballot_value); - uint exclusive_bit_count = subgroupBallotExclusiveBitCount(ballot_value); - uint lsb = subgroupBallotFindLSB(ballot_value); - uint msb = subgroupBallotFindMSB(ballot_value); - - // shuffle - uint shuffled = subgroupShuffle(10u, 8u); - bool shuffled_bool = subgroupShuffle(true, 9u); - uint shuffled_xor = subgroupShuffleXor(30u, 8u); - bool shuffled_xor_bool = subgroupShuffleXor(false, 9u); - - // shuffle relative - uint shuffled_up = subgroupShuffleUp(20u, 4u); - bool shuffled_up_bool = subgroupShuffleUp(true, 4u); - uint shuffled_down = subgroupShuffleDown(20u, 4u); - bool shuffled_down_bool = subgroupShuffleDown(false, 4u); - - // vote - bool has_all = subgroupAll(true); - bool has_any = subgroupAny(true); - bool has_equal = subgroupAllEqual(0); - has_equal = subgroupAllEqual(true); - has_equal = subgroupAllEqual(vec3(0.0, 1.0, 2.0)); - has_equal = subgroupAllEqual(bvec4(true, true, false, true)); - - // arithmetic - vec4 added = subgroupAdd(vec4(20.0)); - ivec4 iadded = subgroupAdd(ivec4(20)); - vec4 multiplied = subgroupMul(vec4(20.0)); - ivec4 imultiplied = subgroupMul(ivec4(20)); - vec4 lo = subgroupMin(vec4(20.0)); - vec4 hi = subgroupMax(vec4(20.0)); - ivec4 slo = subgroupMin(ivec4(20)); - ivec4 shi = subgroupMax(ivec4(20)); - uvec4 ulo = subgroupMin(uvec4(20)); - uvec4 uhi = subgroupMax(uvec4(20)); - uvec4 anded = subgroupAnd(ballot_value); - uvec4 ored = subgroupOr(ballot_value); - uvec4 xored = subgroupXor(ballot_value); - bvec4 anded_b = subgroupAnd(equal(ballot_value, uvec4(42))); - bvec4 ored_b = subgroupOr(equal(ballot_value, uvec4(42))); - bvec4 xored_b = subgroupXor(equal(ballot_value, uvec4(42))); - - added = subgroupInclusiveAdd(added); - iadded = subgroupInclusiveAdd(iadded); - multiplied = subgroupInclusiveMul(multiplied); - imultiplied = subgroupInclusiveMul(imultiplied); - //lo = subgroupInclusiveMin(lo); // FIXME: Unsupported by Metal - //hi = subgroupInclusiveMax(hi); - //slo = subgroupInclusiveMin(slo); - //shi = subgroupInclusiveMax(shi); - //ulo = subgroupInclusiveMin(ulo); - //uhi = subgroupInclusiveMax(uhi); - //anded = subgroupInclusiveAnd(anded); - //ored = subgroupInclusiveOr(ored); - //xored = subgroupInclusiveXor(ored); - //added = subgroupExclusiveAdd(lo); - - added = subgroupExclusiveAdd(multiplied); - multiplied = subgroupExclusiveMul(multiplied); - iadded = subgroupExclusiveAdd(imultiplied); - imultiplied = subgroupExclusiveMul(imultiplied); - //lo = subgroupExclusiveMin(lo); // FIXME: Unsupported by Metal - //hi = subgroupExclusiveMax(hi); - //ulo = subgroupExclusiveMin(ulo); - //uhi = subgroupExclusiveMax(uhi); - //slo = subgroupExclusiveMin(slo); - //shi = subgroupExclusiveMax(shi); - //anded = subgroupExclusiveAnd(anded); - //ored = subgroupExclusiveOr(ored); - //xored = subgroupExclusiveXor(ored); - - // clustered - added = subgroupClusteredAdd(added, 4u); - multiplied = subgroupClusteredMul(multiplied, 4u); - iadded = subgroupClusteredAdd(iadded, 4u); - imultiplied = subgroupClusteredMul(imultiplied, 4u); - lo = subgroupClusteredMin(lo, 4u); - hi = subgroupClusteredMax(hi, 4u); - ulo = subgroupClusteredMin(ulo, 4u); - uhi = subgroupClusteredMax(uhi, 4u); - slo = subgroupClusteredMin(slo, 4u); - shi = subgroupClusteredMax(shi, 4u); - anded = subgroupClusteredAnd(anded, 4u); - ored = subgroupClusteredOr(ored, 4u); - xored = subgroupClusteredXor(xored, 4u); - - anded_b = subgroupClusteredAnd(equal(anded, uvec4(2u)), 4u); - ored_b = subgroupClusteredOr(equal(ored, uvec4(3u)), 4u); - xored_b = subgroupClusteredXor(equal(xored, uvec4(4u)), 4u); - - // quad - vec4 swap_horiz = subgroupQuadSwapHorizontal(vec4(20.0)); - bvec4 swap_horiz_bool = subgroupQuadSwapHorizontal(bvec4(true)); - vec4 swap_vertical = subgroupQuadSwapVertical(vec4(20.0)); - bvec4 swap_vertical_bool = subgroupQuadSwapVertical(bvec4(true)); - vec4 swap_diagonal = subgroupQuadSwapDiagonal(vec4(20.0)); - bvec4 swap_diagonal_bool = subgroupQuadSwapDiagonal(bvec4(true)); - vec4 quad_broadcast = subgroupQuadBroadcast(vec4(20.0), 3u); - bvec4 quad_broadcast_bool = subgroupQuadBroadcast(bvec4(true), 3u); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl21.fixed-subgroup.comp b/third_party/spirv-cross/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl21.fixed-subgroup.comp deleted file mode 100644 index 28c5d6b34d..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl21.fixed-subgroup.comp +++ /dev/null @@ -1,138 +0,0 @@ -#version 450 -#extension GL_KHR_shader_subgroup_basic : require -#extension GL_KHR_shader_subgroup_ballot : require -#extension GL_KHR_shader_subgroup_vote : require -#extension GL_KHR_shader_subgroup_shuffle : require -#extension GL_KHR_shader_subgroup_shuffle_relative : require -#extension GL_KHR_shader_subgroup_arithmetic : require -#extension GL_KHR_shader_subgroup_clustered : require -#extension GL_KHR_shader_subgroup_quad : require -layout(local_size_x = 1) in; - -layout(std430, binding = 0) buffer SSBO -{ - float FragColor; -}; - -void main() -{ - // basic - FragColor = float(gl_NumSubgroups); - FragColor = float(gl_SubgroupID); - FragColor = float(gl_SubgroupSize); - FragColor = float(gl_SubgroupInvocationID); - subgroupBarrier(); - subgroupMemoryBarrier(); - subgroupMemoryBarrierBuffer(); - subgroupMemoryBarrierShared(); - subgroupMemoryBarrierImage(); - bool elected = subgroupElect(); - - // ballot - FragColor = float(gl_SubgroupEqMask); - FragColor = float(gl_SubgroupGeMask); - FragColor = float(gl_SubgroupGtMask); - FragColor = float(gl_SubgroupLeMask); - FragColor = float(gl_SubgroupLtMask); - vec4 broadcasted = subgroupBroadcast(vec4(10.0), 8u); - bvec2 broadcasted_bool = subgroupBroadcast(bvec2(true), 8u); - vec3 first = subgroupBroadcastFirst(vec3(20.0)); - bvec4 first_bool = subgroupBroadcastFirst(bvec4(false)); - uvec4 ballot_value = subgroupBallot(true); - bool inverse_ballot_value = subgroupInverseBallot(ballot_value); - bool bit_extracted = subgroupBallotBitExtract(uvec4(10u), 8u); - uint bit_count = subgroupBallotBitCount(ballot_value); - uint inclusive_bit_count = subgroupBallotInclusiveBitCount(ballot_value); - uint exclusive_bit_count = subgroupBallotExclusiveBitCount(ballot_value); - uint lsb = subgroupBallotFindLSB(ballot_value); - uint msb = subgroupBallotFindMSB(ballot_value); - - // shuffle - uint shuffled = subgroupShuffle(10u, 8u); - bool shuffled_bool = subgroupShuffle(true, 9u); - uint shuffled_xor = subgroupShuffleXor(30u, 8u); - bool shuffled_xor_bool = subgroupShuffleXor(false, 9u); - - // shuffle relative - uint shuffled_up = subgroupShuffleUp(20u, 4u); - bool shuffled_up_bool = subgroupShuffleUp(true, 4u); - uint shuffled_down = subgroupShuffleDown(20u, 4u); - bool shuffled_down_bool = subgroupShuffleDown(false, 4u); - - // vote - bool has_all = subgroupAll(true); - bool has_any = subgroupAny(true); - bool has_equal = subgroupAllEqual(0); - has_equal = subgroupAllEqual(true); - has_equal = subgroupAllEqual(vec3(0.0, 1.0, 2.0)); - has_equal = subgroupAllEqual(bvec4(true, true, false, true)); - - // arithmetic - vec4 added = subgroupAdd(vec4(20.0)); - ivec4 iadded = subgroupAdd(ivec4(20)); - vec4 multiplied = subgroupMul(vec4(20.0)); - ivec4 imultiplied = subgroupMul(ivec4(20)); - vec4 lo = subgroupMin(vec4(20.0)); - vec4 hi = subgroupMax(vec4(20.0)); - ivec4 slo = subgroupMin(ivec4(20)); - ivec4 shi = subgroupMax(ivec4(20)); - uvec4 ulo = subgroupMin(uvec4(20)); - uvec4 uhi = subgroupMax(uvec4(20)); - uvec4 anded = subgroupAnd(ballot_value); - uvec4 ored = subgroupOr(ballot_value); - uvec4 xored = subgroupXor(ballot_value); - - added = subgroupInclusiveAdd(added); - iadded = subgroupInclusiveAdd(iadded); - multiplied = subgroupInclusiveMul(multiplied); - imultiplied = subgroupInclusiveMul(imultiplied); - //lo = subgroupInclusiveMin(lo); // FIXME: Unsupported by Metal - //hi = subgroupInclusiveMax(hi); - //slo = subgroupInclusiveMin(slo); - //shi = subgroupInclusiveMax(shi); - //ulo = subgroupInclusiveMin(ulo); - //uhi = subgroupInclusiveMax(uhi); - //anded = subgroupInclusiveAnd(anded); - //ored = subgroupInclusiveOr(ored); - //xored = subgroupInclusiveXor(ored); - //added = subgroupExclusiveAdd(lo); - - added = subgroupExclusiveAdd(multiplied); - multiplied = subgroupExclusiveMul(multiplied); - iadded = subgroupExclusiveAdd(imultiplied); - imultiplied = subgroupExclusiveMul(imultiplied); - //lo = subgroupExclusiveMin(lo); // FIXME: Unsupported by Metal - //hi = subgroupExclusiveMax(hi); - //ulo = subgroupExclusiveMin(ulo); - //uhi = subgroupExclusiveMax(uhi); - //slo = subgroupExclusiveMin(slo); - //shi = subgroupExclusiveMax(shi); - //anded = subgroupExclusiveAnd(anded); - //ored = subgroupExclusiveOr(ored); - //xored = subgroupExclusiveXor(ored); - - // clustered - added = subgroupClusteredAdd(added, 4u); - multiplied = subgroupClusteredMul(multiplied, 4u); - iadded = subgroupClusteredAdd(iadded, 4u); - imultiplied = subgroupClusteredMul(imultiplied, 4u); - lo = subgroupClusteredMin(lo, 4u); - hi = subgroupClusteredMax(hi, 4u); - ulo = subgroupClusteredMin(ulo, 4u); - uhi = subgroupClusteredMax(uhi, 4u); - slo = subgroupClusteredMin(slo, 4u); - shi = subgroupClusteredMax(shi, 4u); - anded = subgroupClusteredAnd(anded, 4u); - ored = subgroupClusteredOr(ored, 4u); - xored = subgroupClusteredXor(xored, 4u); - - // quad - vec4 swap_horiz = subgroupQuadSwapHorizontal(vec4(20.0)); - bvec4 swap_horiz_bool = subgroupQuadSwapHorizontal(bvec4(true)); - vec4 swap_vertical = subgroupQuadSwapVertical(vec4(20.0)); - bvec4 swap_vertical_bool = subgroupQuadSwapVertical(bvec4(true)); - vec4 swap_diagonal = subgroupQuadSwapDiagonal(vec4(20.0)); - bvec4 swap_diagonal_bool = subgroupQuadSwapDiagonal(bvec4(true)); - vec4 quad_broadcast = subgroupQuadBroadcast(vec4(20.0), 3u); - bvec4 quad_broadcast_bool = subgroupQuadBroadcast(bvec4(true), 3u); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl21.ios.comp b/third_party/spirv-cross/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl21.ios.comp deleted file mode 100644 index a78527f542..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl21.ios.comp +++ /dev/null @@ -1,49 +0,0 @@ -#version 450 -#extension GL_KHR_shader_subgroup_basic : require -#extension GL_KHR_shader_subgroup_shuffle : require -#extension GL_KHR_shader_subgroup_shuffle_relative : require -#extension GL_KHR_shader_subgroup_quad : require -layout(local_size_x = 1) in; - -layout(std430, binding = 0) buffer SSBO -{ - float FragColor; -}; - -// Reduced test for functionality exposed on iOS. - -void main() -{ - // basic - FragColor = float(gl_NumSubgroups); - FragColor = float(gl_SubgroupID); - FragColor = float(gl_SubgroupSize); - FragColor = float(gl_SubgroupInvocationID); - subgroupBarrier(); - subgroupMemoryBarrier(); - subgroupMemoryBarrierBuffer(); - subgroupMemoryBarrierShared(); - subgroupMemoryBarrierImage(); - - // shuffle - uint shuffled = subgroupShuffle(10u, 8u); - bool shuffled_bool = subgroupShuffle(true, 9u); - uint shuffled_xor = subgroupShuffleXor(30u, 8u); - bool shuffled_xor_bool = subgroupShuffleXor(false, 9u); - - // shuffle relative - uint shuffled_up = subgroupShuffleUp(20u, 4u); - bool shuffled_up_bool = subgroupShuffleUp(true, 4u); - uint shuffled_down = subgroupShuffleDown(20u, 4u); - bool shuffled_down_bool = subgroupShuffleDown(false, 4u); - - // quad - vec4 swap_horiz = subgroupQuadSwapHorizontal(vec4(20.0)); - bvec4 swap_horiz_bool = subgroupQuadSwapHorizontal(bvec4(true)); - vec4 swap_vertical = subgroupQuadSwapVertical(vec4(20.0)); - bvec4 swap_vertical_bool = subgroupQuadSwapVertical(bvec4(true)); - vec4 swap_diagonal = subgroupQuadSwapDiagonal(vec4(20.0)); - bvec4 swap_diagonal_bool = subgroupQuadSwapDiagonal(bvec4(true)); - vec4 quad_broadcast = subgroupQuadBroadcast(vec4(20.0), 3u); - bvec4 quad_broadcast_bool = subgroupQuadBroadcast(bvec4(true), 3u); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl22.ios.comp b/third_party/spirv-cross/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl22.ios.comp deleted file mode 100644 index bc904a4f75..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl22.ios.comp +++ /dev/null @@ -1,79 +0,0 @@ -#version 450 -#extension GL_KHR_shader_subgroup_basic : require -#extension GL_KHR_shader_subgroup_ballot : require -#extension GL_KHR_shader_subgroup_vote : require -#extension GL_KHR_shader_subgroup_shuffle : require -#extension GL_KHR_shader_subgroup_shuffle_relative : require -#extension GL_KHR_shader_subgroup_quad : require -layout(local_size_x = 1) in; - -layout(std430, binding = 0) buffer SSBO -{ - float FragColor; -}; - -// Reduced test for functionality exposed on iOS. - -void main() -{ - // basic - FragColor = float(gl_NumSubgroups); - FragColor = float(gl_SubgroupID); - FragColor = float(gl_SubgroupSize); - FragColor = float(gl_SubgroupInvocationID); - subgroupBarrier(); - subgroupMemoryBarrier(); - subgroupMemoryBarrierBuffer(); - subgroupMemoryBarrierShared(); - subgroupMemoryBarrierImage(); - bool elected = subgroupElect(); - - // ballot - FragColor = float(gl_SubgroupEqMask); - FragColor = float(gl_SubgroupGeMask); - FragColor = float(gl_SubgroupGtMask); - FragColor = float(gl_SubgroupLeMask); - FragColor = float(gl_SubgroupLtMask); - vec4 broadcasted = subgroupBroadcast(vec4(10.0), 8u); - bvec2 broadcasted_bool = subgroupBroadcast(bvec2(true), 8u); - vec3 first = subgroupBroadcastFirst(vec3(20.0)); - bvec4 first_bool = subgroupBroadcastFirst(bvec4(false)); - uvec4 ballot_value = subgroupBallot(true); - bool inverse_ballot_value = subgroupInverseBallot(ballot_value); - bool bit_extracted = subgroupBallotBitExtract(uvec4(10u), 8u); - uint bit_count = subgroupBallotBitCount(ballot_value); - uint inclusive_bit_count = subgroupBallotInclusiveBitCount(ballot_value); - uint exclusive_bit_count = subgroupBallotExclusiveBitCount(ballot_value); - uint lsb = subgroupBallotFindLSB(ballot_value); - uint msb = subgroupBallotFindMSB(ballot_value); - - // shuffle - uint shuffled = subgroupShuffle(10u, 8u); - bool shuffled_bool = subgroupShuffle(true, 9u); - uint shuffled_xor = subgroupShuffleXor(30u, 8u); - bool shuffled_xor_bool = subgroupShuffleXor(false, 9u); - - // shuffle relative - uint shuffled_up = subgroupShuffleUp(20u, 4u); - bool shuffled_up_bool = subgroupShuffleUp(true, 4u); - uint shuffled_down = subgroupShuffleDown(20u, 4u); - bool shuffled_down_bool = subgroupShuffleDown(false, 4u); - - // vote - bool has_all = subgroupAll(true); - bool has_any = subgroupAny(true); - bool has_equal = subgroupAllEqual(0); - has_equal = subgroupAllEqual(true); - has_equal = subgroupAllEqual(vec3(0.0, 1.0, 2.0)); - has_equal = subgroupAllEqual(bvec4(true, true, false, true)); - - // quad - vec4 swap_horiz = subgroupQuadSwapHorizontal(vec4(20.0)); - bvec4 swap_horiz_bool = subgroupQuadSwapHorizontal(bvec4(true)); - vec4 swap_vertical = subgroupQuadSwapVertical(vec4(20.0)); - bvec4 swap_vertical_bool = subgroupQuadSwapVertical(bvec4(true)); - vec4 swap_diagonal = subgroupQuadSwapDiagonal(vec4(20.0)); - bvec4 swap_diagonal_bool = subgroupQuadSwapDiagonal(bvec4(true)); - vec4 quad_broadcast = subgroupQuadBroadcast(vec4(20.0), 3u); - bvec4 quad_broadcast_bool = subgroupQuadBroadcast(bvec4(true), 3u); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl23.ios.simd.comp b/third_party/spirv-cross/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl23.ios.simd.comp deleted file mode 100644 index 28c5d6b34d..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/comp/subgroups.nocompat.invalid.vk.msl23.ios.simd.comp +++ /dev/null @@ -1,138 +0,0 @@ -#version 450 -#extension GL_KHR_shader_subgroup_basic : require -#extension GL_KHR_shader_subgroup_ballot : require -#extension GL_KHR_shader_subgroup_vote : require -#extension GL_KHR_shader_subgroup_shuffle : require -#extension GL_KHR_shader_subgroup_shuffle_relative : require -#extension GL_KHR_shader_subgroup_arithmetic : require -#extension GL_KHR_shader_subgroup_clustered : require -#extension GL_KHR_shader_subgroup_quad : require -layout(local_size_x = 1) in; - -layout(std430, binding = 0) buffer SSBO -{ - float FragColor; -}; - -void main() -{ - // basic - FragColor = float(gl_NumSubgroups); - FragColor = float(gl_SubgroupID); - FragColor = float(gl_SubgroupSize); - FragColor = float(gl_SubgroupInvocationID); - subgroupBarrier(); - subgroupMemoryBarrier(); - subgroupMemoryBarrierBuffer(); - subgroupMemoryBarrierShared(); - subgroupMemoryBarrierImage(); - bool elected = subgroupElect(); - - // ballot - FragColor = float(gl_SubgroupEqMask); - FragColor = float(gl_SubgroupGeMask); - FragColor = float(gl_SubgroupGtMask); - FragColor = float(gl_SubgroupLeMask); - FragColor = float(gl_SubgroupLtMask); - vec4 broadcasted = subgroupBroadcast(vec4(10.0), 8u); - bvec2 broadcasted_bool = subgroupBroadcast(bvec2(true), 8u); - vec3 first = subgroupBroadcastFirst(vec3(20.0)); - bvec4 first_bool = subgroupBroadcastFirst(bvec4(false)); - uvec4 ballot_value = subgroupBallot(true); - bool inverse_ballot_value = subgroupInverseBallot(ballot_value); - bool bit_extracted = subgroupBallotBitExtract(uvec4(10u), 8u); - uint bit_count = subgroupBallotBitCount(ballot_value); - uint inclusive_bit_count = subgroupBallotInclusiveBitCount(ballot_value); - uint exclusive_bit_count = subgroupBallotExclusiveBitCount(ballot_value); - uint lsb = subgroupBallotFindLSB(ballot_value); - uint msb = subgroupBallotFindMSB(ballot_value); - - // shuffle - uint shuffled = subgroupShuffle(10u, 8u); - bool shuffled_bool = subgroupShuffle(true, 9u); - uint shuffled_xor = subgroupShuffleXor(30u, 8u); - bool shuffled_xor_bool = subgroupShuffleXor(false, 9u); - - // shuffle relative - uint shuffled_up = subgroupShuffleUp(20u, 4u); - bool shuffled_up_bool = subgroupShuffleUp(true, 4u); - uint shuffled_down = subgroupShuffleDown(20u, 4u); - bool shuffled_down_bool = subgroupShuffleDown(false, 4u); - - // vote - bool has_all = subgroupAll(true); - bool has_any = subgroupAny(true); - bool has_equal = subgroupAllEqual(0); - has_equal = subgroupAllEqual(true); - has_equal = subgroupAllEqual(vec3(0.0, 1.0, 2.0)); - has_equal = subgroupAllEqual(bvec4(true, true, false, true)); - - // arithmetic - vec4 added = subgroupAdd(vec4(20.0)); - ivec4 iadded = subgroupAdd(ivec4(20)); - vec4 multiplied = subgroupMul(vec4(20.0)); - ivec4 imultiplied = subgroupMul(ivec4(20)); - vec4 lo = subgroupMin(vec4(20.0)); - vec4 hi = subgroupMax(vec4(20.0)); - ivec4 slo = subgroupMin(ivec4(20)); - ivec4 shi = subgroupMax(ivec4(20)); - uvec4 ulo = subgroupMin(uvec4(20)); - uvec4 uhi = subgroupMax(uvec4(20)); - uvec4 anded = subgroupAnd(ballot_value); - uvec4 ored = subgroupOr(ballot_value); - uvec4 xored = subgroupXor(ballot_value); - - added = subgroupInclusiveAdd(added); - iadded = subgroupInclusiveAdd(iadded); - multiplied = subgroupInclusiveMul(multiplied); - imultiplied = subgroupInclusiveMul(imultiplied); - //lo = subgroupInclusiveMin(lo); // FIXME: Unsupported by Metal - //hi = subgroupInclusiveMax(hi); - //slo = subgroupInclusiveMin(slo); - //shi = subgroupInclusiveMax(shi); - //ulo = subgroupInclusiveMin(ulo); - //uhi = subgroupInclusiveMax(uhi); - //anded = subgroupInclusiveAnd(anded); - //ored = subgroupInclusiveOr(ored); - //xored = subgroupInclusiveXor(ored); - //added = subgroupExclusiveAdd(lo); - - added = subgroupExclusiveAdd(multiplied); - multiplied = subgroupExclusiveMul(multiplied); - iadded = subgroupExclusiveAdd(imultiplied); - imultiplied = subgroupExclusiveMul(imultiplied); - //lo = subgroupExclusiveMin(lo); // FIXME: Unsupported by Metal - //hi = subgroupExclusiveMax(hi); - //ulo = subgroupExclusiveMin(ulo); - //uhi = subgroupExclusiveMax(uhi); - //slo = subgroupExclusiveMin(slo); - //shi = subgroupExclusiveMax(shi); - //anded = subgroupExclusiveAnd(anded); - //ored = subgroupExclusiveOr(ored); - //xored = subgroupExclusiveXor(ored); - - // clustered - added = subgroupClusteredAdd(added, 4u); - multiplied = subgroupClusteredMul(multiplied, 4u); - iadded = subgroupClusteredAdd(iadded, 4u); - imultiplied = subgroupClusteredMul(imultiplied, 4u); - lo = subgroupClusteredMin(lo, 4u); - hi = subgroupClusteredMax(hi, 4u); - ulo = subgroupClusteredMin(ulo, 4u); - uhi = subgroupClusteredMax(uhi, 4u); - slo = subgroupClusteredMin(slo, 4u); - shi = subgroupClusteredMax(shi, 4u); - anded = subgroupClusteredAnd(anded, 4u); - ored = subgroupClusteredOr(ored, 4u); - xored = subgroupClusteredXor(xored, 4u); - - // quad - vec4 swap_horiz = subgroupQuadSwapHorizontal(vec4(20.0)); - bvec4 swap_horiz_bool = subgroupQuadSwapHorizontal(bvec4(true)); - vec4 swap_vertical = subgroupQuadSwapVertical(vec4(20.0)); - bvec4 swap_vertical_bool = subgroupQuadSwapVertical(bvec4(true)); - vec4 swap_diagonal = subgroupQuadSwapDiagonal(vec4(20.0)); - bvec4 swap_diagonal_bool = subgroupQuadSwapDiagonal(bvec4(true)); - vec4 quad_broadcast = subgroupQuadBroadcast(vec4(20.0), 3u); - bvec4 quad_broadcast_bool = subgroupQuadBroadcast(bvec4(true), 3u); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/components/fragment-input-component.frag b/third_party/spirv-cross/shaders-msl-no-opt/components/fragment-input-component.frag deleted file mode 100644 index 60d48bef7e..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/components/fragment-input-component.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 - -layout(location = 0, component = 3) in float Foo1; -layout(location = 0, component = 0) in vec3 Foo3; -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(Foo3, Foo1); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/components/fragment-output-component.frag b/third_party/spirv-cross/shaders-msl-no-opt/components/fragment-output-component.frag deleted file mode 100644 index 29a57dfa1f..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/components/fragment-output-component.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(location = 0, component = 0) out float FragColor0; -layout(location = 0, component = 1) out vec2 FragColor1; -layout(location = 0, component = 3) out float FragColor3; - -void main() -{ - FragColor0 = 1.0; - FragColor1 = vec2(2.0, 3.0); - FragColor3 = 4.0; -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/components/fragment-output-component.pad-fragment.frag b/third_party/spirv-cross/shaders-msl-no-opt/components/fragment-output-component.pad-fragment.frag deleted file mode 100644 index ae9b7f75e7..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/components/fragment-output-component.pad-fragment.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 - -layout(location = 0, component = 0) out float FragColor0; -layout(location = 0, component = 1) out vec2 FragColor1; - -void main() -{ - FragColor0 = 1.0; - FragColor1 = vec2(2.0, 3.0); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/components/vertex-input-component.vert b/third_party/spirv-cross/shaders-msl-no-opt/components/vertex-input-component.vert deleted file mode 100644 index 7ba31bf655..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/components/vertex-input-component.vert +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 - -layout(location = 0, component = 0) in vec3 Foo3; -layout(location = 0, component = 3) in float Foo1; -layout(location = 0) out vec3 Foo; - -void main() -{ - gl_Position = vec4(Foo3, Foo1); - Foo = Foo3 + Foo1; -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/components/vertex-output-component.vert b/third_party/spirv-cross/shaders-msl-no-opt/components/vertex-output-component.vert deleted file mode 100644 index 5abd8dc6ff..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/components/vertex-output-component.vert +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(location = 0) in vec4 vFoo; -layout(location = 0) out vec3 Foo3; -layout(location = 0, component = 3) out float Foo1; - -void main() -{ - gl_Position = vFoo; - Foo3 = vFoo.xyz; - Foo1 = vFoo.w; -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/frag/16bit-constants.invalid.frag b/third_party/spirv-cross/shaders-msl-no-opt/frag/16bit-constants.invalid.frag deleted file mode 100644 index c53091b5b9..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/frag/16bit-constants.invalid.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 core - -#extension GL_AMD_gpu_shader_int16 : require -#extension GL_AMD_gpu_shader_half_float : require - -layout(location = 0) out float16_t foo; -layout(location = 1) out int16_t bar; -layout(location = 2) out uint16_t baz; - -void main() { - foo = 1.0hf; - bar = 2s; - baz = 3us; -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/frag/demote-to-helper.vk.nocompat.msl21.invalid.frag b/third_party/spirv-cross/shaders-msl-no-opt/frag/demote-to-helper.vk.nocompat.msl21.invalid.frag deleted file mode 100644 index 8cce059bab..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/frag/demote-to-helper.vk.nocompat.msl21.invalid.frag +++ /dev/null @@ -1,8 +0,0 @@ -#version 450 -#extension GL_EXT_demote_to_helper_invocation : require - -void main() -{ - //demote; // FIXME: Not implemented for MSL - bool helper = helperInvocationEXT(); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/frag/depth-image-gather.asm.frag b/third_party/spirv-cross/shaders-msl-no-opt/frag/depth-image-gather.asm.frag deleted file mode 100644 index 430899c6f0..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/frag/depth-image-gather.asm.frag +++ /dev/null @@ -1,72 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Google spiregg; 0 -; Bound: 36 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_GOOGLE_hlsl_functionality1" - OpExtension "SPV_GOOGLE_user_type" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %psMain "main" %gl_FragCoord %in_var_TEXCOORD0 %out_var_SV_Target0 - OpExecutionMode %psMain OriginUpperLeft - OpSource HLSL 500 - OpName %type_2d_image "type.2d.image" - OpName %g_depthTexture "g_depthTexture" - OpName %type_sampler "type.sampler" - OpName %g_sampler "g_sampler" - OpName %g_comp "g_comp" - OpName %in_var_TEXCOORD0 "in.var.TEXCOORD0" - OpName %out_var_SV_Target0 "out.var.SV_Target0" - OpName %psMain "psMain" - OpName %type_sampled_image "type.sampled.image" - OpDecorate %gl_FragCoord BuiltIn FragCoord - OpDecorateString %gl_FragCoord UserSemantic "SV_Position" - OpDecorateString %in_var_TEXCOORD0 UserSemantic "TEXCOORD0" - OpDecorateString %out_var_SV_Target0 UserSemantic "SV_Target0" - OpDecorate %in_var_TEXCOORD0 Location 0 - OpDecorate %out_var_SV_Target0 Location 0 - OpDecorate %g_depthTexture DescriptorSet 0 - OpDecorate %g_depthTexture Binding 0 - OpDecorate %g_sampler DescriptorSet 0 - OpDecorate %g_sampler Binding 0 - OpDecorate %g_comp DescriptorSet 0 - OpDecorate %g_comp Binding 1 - OpDecorateString %g_depthTexture UserTypeGOOGLE "texture2d" - %float = OpTypeFloat 32 - %float_0_5 = OpConstant %float 0.5 - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %v2int = OpTypeVector %int 2 - %16 = OpConstantComposite %v2int %int_0 %int_0 -%type_2d_image = OpTypeImage %float 2D 2 0 0 1 Unknown -%_ptr_UniformConstant_type_2d_image = OpTypePointer UniformConstant %type_2d_image -%type_sampler = OpTypeSampler -%_ptr_UniformConstant_type_sampler = OpTypePointer UniformConstant %type_sampler - %v4float = OpTypeVector %float 4 -%_ptr_Input_v4float = OpTypePointer Input %v4float - %v2float = OpTypeVector %float 2 -%_ptr_Input_v2float = OpTypePointer Input %v2float -%_ptr_Output_v4float = OpTypePointer Output %v4float - %void = OpTypeVoid - %25 = OpTypeFunction %void -%type_sampled_image = OpTypeSampledImage %type_2d_image -%g_depthTexture = OpVariable %_ptr_UniformConstant_type_2d_image UniformConstant - %g_sampler = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant - %g_comp = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input -%in_var_TEXCOORD0 = OpVariable %_ptr_Input_v2float Input -%out_var_SV_Target0 = OpVariable %_ptr_Output_v4float Output - %psMain = OpFunction %void None %25 - %26 = OpLabel - %27 = OpLoad %v2float %in_var_TEXCOORD0 - %28 = OpLoad %type_2d_image %g_depthTexture - %29 = OpLoad %type_sampler %g_comp - %30 = OpSampledImage %type_sampled_image %28 %29 - %31 = OpImageDrefGather %v4float %30 %27 %float_0_5 None - %32 = OpLoad %type_sampler %g_sampler - %33 = OpSampledImage %type_sampled_image %28 %32 - %34 = OpImageGather %v4float %33 %27 %int_0 ConstOffset %16 - %35 = OpFMul %v4float %31 %34 - OpStore %out_var_SV_Target0 %35 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/frag/force-active-resources.msl2.argument..force-active.discrete.frag b/third_party/spirv-cross/shaders-msl-no-opt/frag/force-active-resources.msl2.argument..force-active.discrete.frag deleted file mode 100644 index b1b058d014..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/frag/force-active-resources.msl2.argument..force-active.discrete.frag +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 - -layout(location = 0) in vec2 vUV; -layout(location = 0) out vec4 FragColor; - -layout(set = 0, binding = 0) uniform sampler2D uTexture1; -layout(set = 0, binding = 1) uniform sampler2D uTexture2; -layout(set = 2, binding = 0) uniform sampler2D uTextureDiscrete1; -layout(set = 2, binding = 1) uniform sampler2D uTextureDiscrete2; - -void main() -{ - FragColor = texture(uTexture2, vUV); - FragColor += texture(uTextureDiscrete2, vUV); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/frag/fp16.desktop.invalid.frag b/third_party/spirv-cross/shaders-msl-no-opt/frag/fp16.desktop.invalid.frag deleted file mode 100644 index 1e4026eb2b..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/frag/fp16.desktop.invalid.frag +++ /dev/null @@ -1,151 +0,0 @@ -#version 450 -#extension GL_AMD_gpu_shader_half_float : require - -layout(location = 0) in float16_t v1; -layout(location = 1) in f16vec2 v2; -layout(location = 2) in f16vec3 v3; -layout(location = 3) in f16vec4 v4; - -layout(location = 0) out float o1; -layout(location = 1) out vec2 o2; -layout(location = 2) out vec3 o3; -layout(location = 3) out vec4 o4; - -f16mat2 test_mat2(f16vec2 a, f16vec2 b, f16vec2 c, f16vec2 d) -{ - return f16mat2(a, b) * f16mat2(c, d); -} - -f16mat3 test_mat3(f16vec3 a, f16vec3 b, f16vec3 c, f16vec3 d, f16vec3 e, f16vec3 f) -{ - return f16mat3(a, b, c) * f16mat3(d, e, f); -} - -void test_constants() -{ - float16_t a = 1.0hf; - float16_t b = 1.5hf; - float16_t c = -1.5hf; // Negatives - float16_t d = (0.0hf / 0.0hf); // NaN - float16_t e = (1.0hf / 0.0hf); // +Inf - float16_t f = (-1.0hf / 0.0hf); // -Inf - float16_t g = 1014.0hf; // Large. - float16_t h = 0.000001hf; // Denormal -} - -float16_t test_result() -{ - return 1.0hf; -} - -void test_conversions() -{ - float16_t one = test_result(); - int a = int(one); - uint b = uint(one); - bool c = bool(one); - float d = float(one); - //double e = double(one); - float16_t a2 = float16_t(a); - float16_t b2 = float16_t(b); - float16_t c2 = float16_t(c); - float16_t d2 = float16_t(d); - //float16_t e2 = float16_t(e); -} - -void test_builtins() -{ - f16vec4 res; - res = radians(v4); - res = degrees(v4); - res = sin(v4); - res = cos(v4); - res = tan(v4); - res = asin(v4); - res = atan(v4, v3.xyzz); - res = atan(v4); - res = sinh(v4); - res = cosh(v4); - res = tanh(v4); - res = asinh(v4); - res = acosh(v4); - res = atanh(v4); - res = pow(v4, v4); - res = exp(v4); - res = log(v4); - res = exp2(v4); - res = log2(v4); - res = sqrt(v4); - res = inversesqrt(v4); - res = abs(v4); - res = sign(v4); - res = floor(v4); - res = trunc(v4); - res = round(v4); - res = roundEven(v4); - res = ceil(v4); - res = fract(v4); - res = mod(v4, v4); - f16vec4 tmp; - res = modf(v4, tmp); - res = min(v4, v4); - res = max(v4, v4); - res = clamp(v4, v4, v4); - res = mix(v4, v4, v4); - res = mix(v4, v4, lessThan(v4, v4)); - res = step(v4, v4); - res = smoothstep(v4, v4, v4); - - bvec4 btmp = isnan(v4); - btmp = isinf(v4); - res = fma(v4, v4, v4); - - ivec4 itmp; - res = frexp(v4, itmp); - res = ldexp(res, itmp); - - uint pack0 = packFloat2x16(v4.xy); - uint pack1 = packFloat2x16(v4.zw); - res = f16vec4(unpackFloat2x16(pack0), unpackFloat2x16(pack1)); - - float16_t t0 = length(v4); - t0 = distance(v4, v4); - t0 = dot(v4, v4); - f16vec3 res3 = cross(v3, v3); - res = normalize(v4); - res = faceforward(v4, v4, v4); - res = reflect(v4, v4); - res = refract(v4, v4, v1); - - btmp = lessThan(v4, v4); - btmp = lessThanEqual(v4, v4); - btmp = greaterThan(v4, v4); - btmp = greaterThanEqual(v4, v4); - btmp = equal(v4, v4); - btmp = notEqual(v4, v4); - - res = dFdx(v4); - res = dFdy(v4); - res = dFdxFine(v4); - res = dFdyFine(v4); - res = dFdxCoarse(v4); - res = dFdyCoarse(v4); - res = fwidth(v4); - res = fwidthFine(v4); - res = fwidthCoarse(v4); - - //res = interpolateAtCentroid(v4); - //res = interpolateAtSample(v4, 0); - //res = interpolateAtOffset(v4, f16vec2(0.1hf)); -} - -void main() -{ - // Basic matrix tests. - f16mat2 m0 = test_mat2(v2, v2, v3.xy, v3.xy); - f16mat3 m1 = test_mat3(v3, v3, v3, v4.xyz, v4.xyz, v4.yzw); - - test_constants(); - test_conversions(); - test_builtins(); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/frag/image-gather.frag b/third_party/spirv-cross/shaders-msl-no-opt/frag/image-gather.frag deleted file mode 100644 index b492cfbe90..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/frag/image-gather.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; - -layout(set = 0, binding = 0) uniform sampler2D uSamp; -layout(set = 0, binding = 1) uniform sampler2DShadow uSampShadow; -layout(location = 0) in vec3 vUV; - -void main() -{ - FragColor = textureGather(uSamp, vUV.xy, 0); - FragColor += textureGather(uSamp, vUV.xy, 1); - FragColor += textureGather(uSampShadow, vUV.xy, vUV.z); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/frag/in_block_assign.frag b/third_party/spirv-cross/shaders-msl-no-opt/frag/in_block_assign.frag deleted file mode 100644 index 760a3ba2d3..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/frag/in_block_assign.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 - -struct VOUT -{ - vec4 a; -}; - -layout(location = 0) in VOUT Clip; -layout(location = 0) out vec4 FragColor; - -void main() -{ - VOUT tmp = Clip; - tmp.a += 1.0; - FragColor = tmp.a; -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/frag/min-max-clamp.invalid.asm.frag b/third_party/spirv-cross/shaders-msl-no-opt/frag/min-max-clamp.invalid.asm.frag deleted file mode 100644 index ad566615f5..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/frag/min-max-clamp.invalid.asm.frag +++ /dev/null @@ -1,293 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 205 -; Schema: 0 - OpCapability Shader - OpCapability Float16 - OpExtension "SPV_AMD_gpu_shader_half_float" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %v1 %v2 %v3 %v4 %h1 %h2 %h3 %h4 - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpSourceExtension "GL_AMD_gpu_shader_half_float" - OpName %main "main" - OpName %res "res" - OpName %res2 "res2" - OpName %res3 "res3" - OpName %res4 "res4" - OpName %hres "hres" - OpName %hres2 "hres2" - OpName %hres3 "hres3" - OpName %hres4 "hres4" - OpName %v1 "v1" - OpName %v2 "v2" - OpName %v3 "v3" - OpName %v4 "v4" - OpName %h1 "h1" - OpName %h2 "h2" - OpName %h3 "h3" - OpName %h4 "h4" - OpDecorate %v1 Location 0 - OpDecorate %v2 Location 1 - OpDecorate %v3 Location 2 - OpDecorate %v4 Location 3 - OpDecorate %h1 Location 4 - OpDecorate %h2 Location 5 - OpDecorate %h3 Location 6 - OpDecorate %h4 Location 7 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v2float = OpTypeVector %float 2 - %v3float = OpTypeVector %float 3 - %v4float = OpTypeVector %float 4 - %half = OpTypeFloat 16 - %v2half = OpTypeVector %half 2 - %v3half = OpTypeVector %half 3 - %v4half = OpTypeVector %half 4 -%_ptr_Function_float = OpTypePointer Function %float -%_ptr_Input_float = OpTypePointer Input %float -%_ptr_Function_v2float = OpTypePointer Function %v2float -%_ptr_Input_v2float = OpTypePointer Input %v2float -%_ptr_Function_v3float = OpTypePointer Function %v3float -%_ptr_Input_v3float = OpTypePointer Input %v3float -%_ptr_Function_v4float = OpTypePointer Function %v4float -%_ptr_Input_v4float = OpTypePointer Input %v4float -%_ptr_Function_half = OpTypePointer Function %half -%_ptr_Input_half = OpTypePointer Input %half -%_ptr_Function_v2half = OpTypePointer Function %v2half -%_ptr_Input_v2half = OpTypePointer Input %v2half -%_ptr_Function_v3half = OpTypePointer Function %v3half -%_ptr_Input_v3half = OpTypePointer Input %v3half -%_ptr_Function_v4half = OpTypePointer Function %v4half -%_ptr_Input_v4half = OpTypePointer Input %v4half - %v1 = OpVariable %_ptr_Input_float Input - %v2 = OpVariable %_ptr_Input_v2float Input - %v3 = OpVariable %_ptr_Input_v3float Input - %v4 = OpVariable %_ptr_Input_v4float Input - %h1 = OpVariable %_ptr_Input_half Input - %h2 = OpVariable %_ptr_Input_v2half Input - %h3 = OpVariable %_ptr_Input_v3half Input - %h4 = OpVariable %_ptr_Input_v4half Input - %main = OpFunction %void None %3 - %5 = OpLabel - %res = OpVariable %_ptr_Function_float Function - %46 = OpLoad %float %v1 - %47 = OpLoad %float %v1 - %48 = OpExtInst %float %1 FMin %46 %47 - OpStore %res %48 - %49 = OpLoad %float %v1 - %50 = OpLoad %float %v1 - %51 = OpExtInst %float %1 FMax %49 %50 - OpStore %res %51 - %52 = OpLoad %float %v1 - %53 = OpLoad %float %v1 - %54 = OpLoad %float %v1 - %55 = OpExtInst %float %1 FClamp %52 %53 %54 - OpStore %res %55 - %56 = OpLoad %float %v1 - %57 = OpLoad %float %v1 - %58 = OpExtInst %float %1 NMin %56 %57 - OpStore %res %58 - %59 = OpLoad %float %v1 - %60 = OpLoad %float %v1 - %61 = OpExtInst %float %1 NMax %59 %60 - OpStore %res %61 - %62 = OpLoad %float %v1 - %63 = OpLoad %float %v1 - %64 = OpLoad %float %v1 - %65 = OpExtInst %float %1 NClamp %62 %63 %64 - OpStore %res %65 - %res2 = OpVariable %_ptr_Function_v2float Function - %66 = OpLoad %v2float %v2 - %67 = OpLoad %v2float %v2 - %68 = OpExtInst %v2float %1 FMin %66 %67 - OpStore %res2 %68 - %69 = OpLoad %v2float %v2 - %70 = OpLoad %v2float %v2 - %71 = OpExtInst %v2float %1 FMax %69 %70 - OpStore %res2 %71 - %72 = OpLoad %v2float %v2 - %73 = OpLoad %v2float %v2 - %74 = OpLoad %v2float %v2 - %75 = OpExtInst %v2float %1 FClamp %72 %73 %74 - OpStore %res2 %75 - %76 = OpLoad %v2float %v2 - %77 = OpLoad %v2float %v2 - %78 = OpExtInst %v2float %1 NMin %76 %77 - OpStore %res2 %78 - %79 = OpLoad %v2float %v2 - %80 = OpLoad %v2float %v2 - %81 = OpExtInst %v2float %1 NMax %79 %80 - OpStore %res2 %81 - %82 = OpLoad %v2float %v2 - %83 = OpLoad %v2float %v2 - %84 = OpLoad %v2float %v2 - %85 = OpExtInst %v2float %1 NClamp %82 %83 %84 - OpStore %res2 %85 - %res3 = OpVariable %_ptr_Function_v3float Function - %86 = OpLoad %v3float %v3 - %87 = OpLoad %v3float %v3 - %88 = OpExtInst %v3float %1 FMin %86 %87 - OpStore %res3 %88 - %89 = OpLoad %v3float %v3 - %90 = OpLoad %v3float %v3 - %91 = OpExtInst %v3float %1 FMax %89 %90 - OpStore %res3 %91 - %92 = OpLoad %v3float %v3 - %93 = OpLoad %v3float %v3 - %94 = OpLoad %v3float %v3 - %95 = OpExtInst %v3float %1 FClamp %92 %93 %94 - OpStore %res3 %95 - %96 = OpLoad %v3float %v3 - %97 = OpLoad %v3float %v3 - %98 = OpExtInst %v3float %1 NMin %96 %97 - OpStore %res3 %98 - %99 = OpLoad %v3float %v3 - %100 = OpLoad %v3float %v3 - %101 = OpExtInst %v3float %1 NMax %99 %100 - OpStore %res3 %101 - %102 = OpLoad %v3float %v3 - %103 = OpLoad %v3float %v3 - %104 = OpLoad %v3float %v3 - %105 = OpExtInst %v3float %1 NClamp %102 %103 %104 - OpStore %res3 %105 - %res4 = OpVariable %_ptr_Function_v4float Function - %106 = OpLoad %v4float %v4 - %107 = OpLoad %v4float %v4 - %108 = OpExtInst %v4float %1 FMin %106 %107 - OpStore %res4 %108 - %109 = OpLoad %v4float %v4 - %110 = OpLoad %v4float %v4 - %111 = OpExtInst %v4float %1 FMax %109 %110 - OpStore %res4 %111 - %112 = OpLoad %v4float %v4 - %113 = OpLoad %v4float %v4 - %114 = OpLoad %v4float %v4 - %115 = OpExtInst %v4float %1 FClamp %112 %113 %114 - OpStore %res4 %115 - %116 = OpLoad %v4float %v4 - %117 = OpLoad %v4float %v4 - %118 = OpExtInst %v4float %1 NMin %116 %117 - OpStore %res4 %118 - %119 = OpLoad %v4float %v4 - %120 = OpLoad %v4float %v4 - %121 = OpExtInst %v4float %1 NMax %119 %120 - OpStore %res4 %121 - %122 = OpLoad %v4float %v4 - %123 = OpLoad %v4float %v4 - %124 = OpLoad %v4float %v4 - %125 = OpExtInst %v4float %1 NClamp %122 %123 %124 - OpStore %res4 %125 - %hres = OpVariable %_ptr_Function_half Function - %126 = OpLoad %half %h1 - %127 = OpLoad %half %h1 - %128 = OpExtInst %half %1 FMin %126 %127 - OpStore %hres %128 - %129 = OpLoad %half %h1 - %130 = OpLoad %half %h1 - %131 = OpExtInst %half %1 FMax %129 %130 - OpStore %hres %131 - %132 = OpLoad %half %h1 - %133 = OpLoad %half %h1 - %134 = OpLoad %half %h1 - %135 = OpExtInst %half %1 FClamp %132 %133 %134 - OpStore %hres %135 - %136 = OpLoad %half %h1 - %137 = OpLoad %half %h1 - %138 = OpExtInst %half %1 NMin %136 %137 - OpStore %hres %138 - %139 = OpLoad %half %h1 - %140 = OpLoad %half %h1 - %141 = OpExtInst %half %1 NMax %139 %140 - OpStore %hres %141 - %142 = OpLoad %half %h1 - %143 = OpLoad %half %h1 - %144 = OpLoad %half %h1 - %145 = OpExtInst %half %1 NClamp %142 %143 %144 - OpStore %hres %145 - %hres2 = OpVariable %_ptr_Function_v2half Function - %146 = OpLoad %v2half %h2 - %147 = OpLoad %v2half %h2 - %148 = OpExtInst %v2half %1 FMin %146 %147 - OpStore %hres2 %148 - %149 = OpLoad %v2half %h2 - %150 = OpLoad %v2half %h2 - %151 = OpExtInst %v2half %1 FMax %149 %150 - OpStore %hres2 %151 - %152 = OpLoad %v2half %h2 - %153 = OpLoad %v2half %h2 - %154 = OpLoad %v2half %h2 - %155 = OpExtInst %v2half %1 FClamp %152 %153 %154 - OpStore %hres2 %155 - %156 = OpLoad %v2half %h2 - %157 = OpLoad %v2half %h2 - %158 = OpExtInst %v2half %1 NMin %156 %157 - OpStore %hres2 %158 - %159 = OpLoad %v2half %h2 - %160 = OpLoad %v2half %h2 - %161 = OpExtInst %v2half %1 NMax %159 %160 - OpStore %hres2 %161 - %162 = OpLoad %v2half %h2 - %163 = OpLoad %v2half %h2 - %164 = OpLoad %v2half %h2 - %165 = OpExtInst %v2half %1 NClamp %162 %163 %164 - OpStore %hres2 %165 - %hres3 = OpVariable %_ptr_Function_v3half Function - %166 = OpLoad %v3half %h3 - %167 = OpLoad %v3half %h3 - %168 = OpExtInst %v3half %1 FMin %166 %167 - OpStore %hres3 %168 - %169 = OpLoad %v3half %h3 - %170 = OpLoad %v3half %h3 - %171 = OpExtInst %v3half %1 FMax %169 %170 - OpStore %hres3 %171 - %172 = OpLoad %v3half %h3 - %173 = OpLoad %v3half %h3 - %174 = OpLoad %v3half %h3 - %175 = OpExtInst %v3half %1 FClamp %172 %173 %174 - OpStore %hres3 %175 - %176 = OpLoad %v3half %h3 - %177 = OpLoad %v3half %h3 - %178 = OpExtInst %v3half %1 NMin %176 %177 - OpStore %hres3 %178 - %179 = OpLoad %v3half %h3 - %180 = OpLoad %v3half %h3 - %181 = OpExtInst %v3half %1 NMax %179 %180 - OpStore %hres3 %181 - %182 = OpLoad %v3half %h3 - %183 = OpLoad %v3half %h3 - %184 = OpLoad %v3half %h3 - %185 = OpExtInst %v3half %1 NClamp %182 %183 %184 - OpStore %hres3 %185 - %hres4 = OpVariable %_ptr_Function_v4half Function - %186 = OpLoad %v4half %h4 - %187 = OpLoad %v4half %h4 - %188 = OpExtInst %v4half %1 FMin %186 %187 - OpStore %hres4 %188 - %189 = OpLoad %v4half %h4 - %190 = OpLoad %v4half %h4 - %191 = OpExtInst %v4half %1 FMax %189 %190 - OpStore %hres4 %191 - %192 = OpLoad %v4half %h4 - %193 = OpLoad %v4half %h4 - %194 = OpLoad %v4half %h4 - %195 = OpExtInst %v4half %1 FClamp %192 %193 %194 - OpStore %hres4 %195 - %196 = OpLoad %v4half %h4 - %197 = OpLoad %v4half %h4 - %198 = OpExtInst %v4half %1 NMin %196 %197 - OpStore %hres4 %198 - %199 = OpLoad %v4half %h4 - %200 = OpLoad %v4half %h4 - %201 = OpExtInst %v4half %1 NMax %199 %200 - OpStore %hres4 %201 - %202 = OpLoad %v4half %h4 - %203 = OpLoad %v4half %h4 - %204 = OpLoad %v4half %h4 - %205 = OpExtInst %v4half %1 NClamp %202 %203 %204 - OpStore %hres4 %205 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl-no-opt/frag/nonuniform-constructor.msl2.frag b/third_party/spirv-cross/shaders-msl-no-opt/frag/nonuniform-constructor.msl2.frag deleted file mode 100644 index 4e0460afbb..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/frag/nonuniform-constructor.msl2.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 -#extension GL_EXT_nonuniform_qualifier : require - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec2 vUV; -layout(location = 1) flat in int vIndex; - -layout(set = 0, binding = 0) uniform texture2D uTex[10]; -layout(set = 1, binding = 0) uniform sampler Immut; - -void main() -{ - FragColor = texture(nonuniformEXT(sampler2D(uTex[vIndex], Immut)), vUV); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/frag/pixel-interlock-simple-callstack.msl2.frag b/third_party/spirv-cross/shaders-msl-no-opt/frag/pixel-interlock-simple-callstack.msl2.frag deleted file mode 100644 index 59079fe58b..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/frag/pixel-interlock-simple-callstack.msl2.frag +++ /dev/null @@ -1,31 +0,0 @@ -#version 450 -#extension GL_ARB_fragment_shader_interlock : require -layout(pixel_interlock_ordered) in; - -layout(set = 0, binding = 0, std430) buffer SSBO0 -{ - uint values0[]; -}; - -layout(set = 0, binding = 1, std430) buffer SSBO1 -{ - uint values1[]; -}; - -void callee2() -{ - values1[int(gl_FragCoord.x)] += 1; -} - -void callee() -{ - values0[int(gl_FragCoord.x)] += 1; - callee2(); -} - -void main() -{ - beginInvocationInterlockARB(); - callee(); - endInvocationInterlockARB(); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/frag/scalar-block-layout-ubo-std430.vk.nocompat.invalid.frag b/third_party/spirv-cross/shaders-msl-no-opt/frag/scalar-block-layout-ubo-std430.vk.nocompat.invalid.frag deleted file mode 100644 index 56e809c0b3..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/frag/scalar-block-layout-ubo-std430.vk.nocompat.invalid.frag +++ /dev/null @@ -1,23 +0,0 @@ -#version 450 -#extension GL_EXT_scalar_block_layout : require - -layout(std430, binding = 0) uniform UBO -{ - float a[1]; - vec2 b[2]; -}; - -layout(std430, binding = 1) uniform UBOEnhancedLayout -{ - float c[1]; - vec2 d[2]; - layout(offset = 10000) float e; -}; - -layout(location = 0) flat in int vIndex; -layout(location = 0) out float FragColor; - -void main() -{ - FragColor = a[vIndex] + c[vIndex] + e; -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/frag/shadow-compare-global-alias.invalid.frag b/third_party/spirv-cross/shaders-msl-no-opt/frag/shadow-compare-global-alias.invalid.frag deleted file mode 100644 index d885a78471..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/frag/shadow-compare-global-alias.invalid.frag +++ /dev/null @@ -1,38 +0,0 @@ -#version 450 - -layout(location = 0) out float FragColor; -layout(binding = 0) uniform sampler2DShadow uSampler; -layout(location = 0) in vec3 vUV; - -layout(binding = 1) uniform texture2D uTex; -layout(binding = 2) uniform samplerShadow uSamp; - -float Samp(vec3 uv) -{ - return texture(sampler2DShadow(uTex, uSamp), uv); -} - -float Samp2(vec3 uv) -{ - return texture(uSampler, vUV); -} - -float Samp3(texture2D uT, samplerShadow uS, vec3 uv) -{ - return texture(sampler2DShadow(uT, uS), vUV); -} - -float Samp4(sampler2DShadow uS, vec3 uv) -{ - return texture(uS, vUV); -} - -void main() -{ - FragColor = texture(uSampler, vUV); - FragColor += texture(sampler2DShadow(uTex, uSamp), vUV); - FragColor += Samp(vUV); - FragColor += Samp2(vUV); - FragColor += Samp3(uTex, uSamp, vUV); - FragColor += Samp4(uSampler, vUV); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/frag/subgroups.nocompat.invalid.vk.msl22.frag b/third_party/spirv-cross/shaders-msl-no-opt/frag/subgroups.nocompat.invalid.vk.msl22.frag deleted file mode 100644 index 05aa521202..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/frag/subgroups.nocompat.invalid.vk.msl22.frag +++ /dev/null @@ -1,131 +0,0 @@ -#version 450 -#extension GL_KHR_shader_subgroup_basic : require -#extension GL_KHR_shader_subgroup_ballot : require -#extension GL_KHR_shader_subgroup_vote : require -#extension GL_KHR_shader_subgroup_shuffle : require -#extension GL_KHR_shader_subgroup_shuffle_relative : require -#extension GL_KHR_shader_subgroup_arithmetic : require -#extension GL_KHR_shader_subgroup_clustered : require -#extension GL_KHR_shader_subgroup_quad : require - -layout(location = 0) out float FragColor; - -void main() -{ - // basic - FragColor = float(gl_SubgroupSize); - FragColor = float(gl_SubgroupInvocationID); - subgroupBarrier(); - subgroupMemoryBarrier(); - subgroupMemoryBarrierBuffer(); - subgroupMemoryBarrierImage(); - bool elected = subgroupElect(); - - // ballot - FragColor = float(gl_SubgroupEqMask); - FragColor = float(gl_SubgroupGeMask); - FragColor = float(gl_SubgroupGtMask); - FragColor = float(gl_SubgroupLeMask); - FragColor = float(gl_SubgroupLtMask); - vec4 broadcasted = subgroupBroadcast(vec4(10.0), 8u); - bvec2 broadcasted_bool = subgroupBroadcast(bvec2(true), 8u); - vec3 first = subgroupBroadcastFirst(vec3(20.0)); - bvec4 first_bool = subgroupBroadcastFirst(bvec4(false)); - uvec4 ballot_value = subgroupBallot(true); - bool inverse_ballot_value = subgroupInverseBallot(ballot_value); - bool bit_extracted = subgroupBallotBitExtract(uvec4(10u), 8u); - uint bit_count = subgroupBallotBitCount(ballot_value); - uint inclusive_bit_count = subgroupBallotInclusiveBitCount(ballot_value); - uint exclusive_bit_count = subgroupBallotExclusiveBitCount(ballot_value); - uint lsb = subgroupBallotFindLSB(ballot_value); - uint msb = subgroupBallotFindMSB(ballot_value); - - // shuffle - uint shuffled = subgroupShuffle(10u, 8u); - bool shuffled_bool = subgroupShuffle(true, 9u); - uint shuffled_xor = subgroupShuffleXor(30u, 8u); - bool shuffled_xor_bool = subgroupShuffleXor(false, 9u); - - // shuffle relative - uint shuffled_up = subgroupShuffleUp(20u, 4u); - bool shuffled_up_bool = subgroupShuffleUp(true, 4u); - uint shuffled_down = subgroupShuffleDown(20u, 4u); - bool shuffled_down_bool = subgroupShuffleDown(false, 4u); - - // vote - bool has_all = subgroupAll(true); - bool has_any = subgroupAny(true); - bool has_equal = subgroupAllEqual(0); - has_equal = subgroupAllEqual(true); - has_equal = subgroupAllEqual(vec3(0.0, 1.0, 2.0)); - has_equal = subgroupAllEqual(bvec4(true, true, false, true)); - - // arithmetic - vec4 added = subgroupAdd(vec4(20.0)); - ivec4 iadded = subgroupAdd(ivec4(20)); - vec4 multiplied = subgroupMul(vec4(20.0)); - ivec4 imultiplied = subgroupMul(ivec4(20)); - vec4 lo = subgroupMin(vec4(20.0)); - vec4 hi = subgroupMax(vec4(20.0)); - ivec4 slo = subgroupMin(ivec4(20)); - ivec4 shi = subgroupMax(ivec4(20)); - uvec4 ulo = subgroupMin(uvec4(20)); - uvec4 uhi = subgroupMax(uvec4(20)); - uvec4 anded = subgroupAnd(ballot_value); - uvec4 ored = subgroupOr(ballot_value); - uvec4 xored = subgroupXor(ballot_value); - - added = subgroupInclusiveAdd(added); - iadded = subgroupInclusiveAdd(iadded); - multiplied = subgroupInclusiveMul(multiplied); - imultiplied = subgroupInclusiveMul(imultiplied); - //lo = subgroupInclusiveMin(lo); // FIXME: Unsupported by Metal - //hi = subgroupInclusiveMax(hi); - //slo = subgroupInclusiveMin(slo); - //shi = subgroupInclusiveMax(shi); - //ulo = subgroupInclusiveMin(ulo); - //uhi = subgroupInclusiveMax(uhi); - //anded = subgroupInclusiveAnd(anded); - //ored = subgroupInclusiveOr(ored); - //xored = subgroupInclusiveXor(ored); - //added = subgroupExclusiveAdd(lo); - - added = subgroupExclusiveAdd(multiplied); - multiplied = subgroupExclusiveMul(multiplied); - iadded = subgroupExclusiveAdd(imultiplied); - imultiplied = subgroupExclusiveMul(imultiplied); - //lo = subgroupExclusiveMin(lo); // FIXME: Unsupported by Metal - //hi = subgroupExclusiveMax(hi); - //ulo = subgroupExclusiveMin(ulo); - //uhi = subgroupExclusiveMax(uhi); - //slo = subgroupExclusiveMin(slo); - //shi = subgroupExclusiveMax(shi); - //anded = subgroupExclusiveAnd(anded); - //ored = subgroupExclusiveOr(ored); - //xored = subgroupExclusiveXor(ored); - - // clustered - added = subgroupClusteredAdd(added, 4u); - multiplied = subgroupClusteredMul(multiplied, 4u); - iadded = subgroupClusteredAdd(iadded, 4u); - imultiplied = subgroupClusteredMul(imultiplied, 4u); - lo = subgroupClusteredMin(lo, 4u); - hi = subgroupClusteredMax(hi, 4u); - ulo = subgroupClusteredMin(ulo, 4u); - uhi = subgroupClusteredMax(uhi, 4u); - slo = subgroupClusteredMin(slo, 4u); - shi = subgroupClusteredMax(shi, 4u); - anded = subgroupClusteredAnd(anded, 4u); - ored = subgroupClusteredOr(ored, 4u); - xored = subgroupClusteredXor(xored, 4u); - - // quad - vec4 swap_horiz = subgroupQuadSwapHorizontal(vec4(20.0)); - bvec4 swap_horiz_bool = subgroupQuadSwapHorizontal(bvec4(true)); - vec4 swap_vertical = subgroupQuadSwapVertical(vec4(20.0)); - bvec4 swap_vertical_bool = subgroupQuadSwapVertical(bvec4(true)); - vec4 swap_diagonal = subgroupQuadSwapDiagonal(vec4(20.0)); - bvec4 swap_diagonal_bool = subgroupQuadSwapDiagonal(bvec4(true)); - vec4 quad_broadcast = subgroupQuadBroadcast(vec4(20.0), 3u); - bvec4 quad_broadcast_bool = subgroupQuadBroadcast(bvec4(true), 3u); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/frag/subpass-input-attachment-index-fallback.msl20.ios.framebuffer-fetch.frag b/third_party/spirv-cross/shaders-msl-no-opt/frag/subpass-input-attachment-index-fallback.msl20.ios.framebuffer-fetch.frag deleted file mode 100644 index 70822aee99..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/frag/subpass-input-attachment-index-fallback.msl20.ios.framebuffer-fetch.frag +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 - -layout(binding = 4, input_attachment_index = 1) uniform subpassInput uInput; -layout(location = 1) out vec4 FragColor; - -void main() -{ - FragColor = subpassLoad(uInput); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/frag/subpass-input-attachment-index-fallback.msl23.framebuffer-fetch.frag b/third_party/spirv-cross/shaders-msl-no-opt/frag/subpass-input-attachment-index-fallback.msl23.framebuffer-fetch.frag deleted file mode 100644 index 70822aee99..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/frag/subpass-input-attachment-index-fallback.msl23.framebuffer-fetch.frag +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 - -layout(binding = 4, input_attachment_index = 1) uniform subpassInput uInput; -layout(location = 1) out vec4 FragColor; - -void main() -{ - FragColor = subpassLoad(uInput); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/frag/subpass-input-function-argument.framebuffer-fetch.ios.frag b/third_party/spirv-cross/shaders-msl-no-opt/frag/subpass-input-function-argument.framebuffer-fetch.ios.frag deleted file mode 100644 index ef9ef77d56..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/frag/subpass-input-function-argument.framebuffer-fetch.ios.frag +++ /dev/null @@ -1,24 +0,0 @@ -#version 450 - -layout(set = 0, input_attachment_index = 0, binding = 0) uniform subpassInput uSub; -layout(location = 0) out vec4 FragColor; - -vec4 samp3(subpassInput uS) -{ - return subpassLoad(uS); -} - -vec4 samp2(subpassInput uS) -{ - return subpassLoad(uS) + samp3(uS); -} - -vec4 samp() -{ - return subpassLoad(uSub) + samp3(uSub); -} - -void main() -{ - FragColor = samp() + samp2(uSub); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/frag/subpass-input-function-argument.framebuffer-fetch.msl23.frag b/third_party/spirv-cross/shaders-msl-no-opt/frag/subpass-input-function-argument.framebuffer-fetch.msl23.frag deleted file mode 100644 index ef9ef77d56..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/frag/subpass-input-function-argument.framebuffer-fetch.msl23.frag +++ /dev/null @@ -1,24 +0,0 @@ -#version 450 - -layout(set = 0, input_attachment_index = 0, binding = 0) uniform subpassInput uSub; -layout(location = 0) out vec4 FragColor; - -vec4 samp3(subpassInput uS) -{ - return subpassLoad(uS); -} - -vec4 samp2(subpassInput uS) -{ - return subpassLoad(uS) + samp3(uS); -} - -vec4 samp() -{ - return subpassLoad(uSub) + samp3(uSub); -} - -void main() -{ - FragColor = samp() + samp2(uSub); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/frag/subpass-input.decoration-binding.framebuffer-fetch.msl23.argument.frag b/third_party/spirv-cross/shaders-msl-no-opt/frag/subpass-input.decoration-binding.framebuffer-fetch.msl23.argument.frag deleted file mode 100644 index 671a4d1b41..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/frag/subpass-input.decoration-binding.framebuffer-fetch.msl23.argument.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(set = 0, binding = 10, input_attachment_index = 1) uniform subpassInput uSub; -layout(location = 0) out vec4 FragColor; - -layout(set = 0, binding = 9) uniform texture2D uTex; -layout(set = 0, binding = 8) uniform sampler uSampler; - -void main() -{ - FragColor = subpassLoad(uSub) + texture(sampler2D(uTex, uSampler), vec2(0.5)); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/frag/subpass-input.decoration-binding.framebuffer-fetch.msl23.frag b/third_party/spirv-cross/shaders-msl-no-opt/frag/subpass-input.decoration-binding.framebuffer-fetch.msl23.frag deleted file mode 100644 index 671a4d1b41..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/frag/subpass-input.decoration-binding.framebuffer-fetch.msl23.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(set = 0, binding = 10, input_attachment_index = 1) uniform subpassInput uSub; -layout(location = 0) out vec4 FragColor; - -layout(set = 0, binding = 9) uniform texture2D uTex; -layout(set = 0, binding = 8) uniform sampler uSampler; - -void main() -{ - FragColor = subpassLoad(uSub) + texture(sampler2D(uTex, uSampler), vec2(0.5)); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/frag/subpass-input.decoration-binding.ios.framebuffer-fetch.msl2.argument.frag b/third_party/spirv-cross/shaders-msl-no-opt/frag/subpass-input.decoration-binding.ios.framebuffer-fetch.msl2.argument.frag deleted file mode 100644 index 671a4d1b41..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/frag/subpass-input.decoration-binding.ios.framebuffer-fetch.msl2.argument.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(set = 0, binding = 10, input_attachment_index = 1) uniform subpassInput uSub; -layout(location = 0) out vec4 FragColor; - -layout(set = 0, binding = 9) uniform texture2D uTex; -layout(set = 0, binding = 8) uniform sampler uSampler; - -void main() -{ - FragColor = subpassLoad(uSub) + texture(sampler2D(uTex, uSampler), vec2(0.5)); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/frag/subpass-input.decoration-binding.ios.framebuffer-fetch.msl2.frag b/third_party/spirv-cross/shaders-msl-no-opt/frag/subpass-input.decoration-binding.ios.framebuffer-fetch.msl2.frag deleted file mode 100644 index 671a4d1b41..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/frag/subpass-input.decoration-binding.ios.framebuffer-fetch.msl2.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(set = 0, binding = 10, input_attachment_index = 1) uniform subpassInput uSub; -layout(location = 0) out vec4 FragColor; - -layout(set = 0, binding = 9) uniform texture2D uTex; -layout(set = 0, binding = 8) uniform sampler uSampler; - -void main() -{ - FragColor = subpassLoad(uSub) + texture(sampler2D(uTex, uSampler), vec2(0.5)); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/frag/texture-access-int.swizzle.frag b/third_party/spirv-cross/shaders-msl-no-opt/frag/texture-access-int.swizzle.frag deleted file mode 100644 index 4b75d4f317..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/frag/texture-access-int.swizzle.frag +++ /dev/null @@ -1,53 +0,0 @@ -#version 450 - -layout(binding = 0) uniform isampler1D tex1d; -layout(binding = 1) uniform isampler2D tex2d; -layout(binding = 2) uniform isampler3D tex3d; -layout(binding = 3) uniform isamplerCube texCube; -layout(binding = 4) uniform isampler2DArray tex2dArray; -layout(binding = 5) uniform isamplerCubeArray texCubeArray; -layout(binding = 6) uniform isamplerBuffer texBuffer; - -void main() -{ - // OpImageSampleImplicitLod - vec4 c = texture(tex1d, 0.0); - c = texture(tex2d, vec2(0.0, 0.0)); - c = texture(tex3d, vec3(0.0, 0.0, 0.0)); - c = texture(texCube, vec3(0.0, 0.0, 0.0)); - c = texture(tex2dArray, vec3(0.0, 0.0, 0.0)); - c = texture(texCubeArray, vec4(0.0, 0.0, 0.0, 0.0)); - - // OpImageSampleProjImplicitLod - c = textureProj(tex1d, vec2(0.0, 1.0)); - c = textureProj(tex2d, vec3(0.0, 0.0, 1.0)); - c = textureProj(tex3d, vec4(0.0, 0.0, 0.0, 1.0)); - - // OpImageSampleExplicitLod - c = textureLod(tex1d, 0.0, 0.0); - c = textureLod(tex2d, vec2(0.0, 0.0), 0.0); - c = textureLod(tex3d, vec3(0.0, 0.0, 0.0), 0.0); - c = textureLod(texCube, vec3(0.0, 0.0, 0.0), 0.0); - c = textureLod(tex2dArray, vec3(0.0, 0.0, 0.0), 0.0); - c = textureLod(texCubeArray, vec4(0.0, 0.0, 0.0, 0.0), 0.0); - - // OpImageSampleProjExplicitLod - c = textureProjLod(tex1d, vec2(0.0, 1.0), 0.0); - c = textureProjLod(tex2d, vec3(0.0, 0.0, 1.0), 0.0); - c = textureProjLod(tex3d, vec4(0.0, 0.0, 0.0, 1.0), 0.0); - - // OpImageFetch - c = texelFetch(tex1d, 0, 0); - c = texelFetch(tex2d, ivec2(0, 0), 0); - c = texelFetch(tex3d, ivec3(0, 0, 0), 0); - c = texelFetch(tex2dArray, ivec3(0, 0, 0), 0); - - // Show that this transformation doesn't apply to Buffer images. - c = texelFetch(texBuffer, 0); - - // OpImageGather - c = textureGather(tex2d, vec2(0.0, 0.0), 0); - c = textureGather(texCube, vec3(0.0, 0.0, 0.0), 1); - c = textureGather(tex2dArray, vec3(0.0, 0.0, 0.0), 2); - c = textureGather(texCubeArray, vec4(0.0, 0.0, 0.0, 0.0), 3); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/frag/texture-access-leaf.swizzle.frag b/third_party/spirv-cross/shaders-msl-no-opt/frag/texture-access-leaf.swizzle.frag deleted file mode 100644 index 2b7e9370d4..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/frag/texture-access-leaf.swizzle.frag +++ /dev/null @@ -1,86 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler1D tex1d; -layout(binding = 1) uniform sampler2D tex2d; -layout(binding = 2) uniform sampler3D tex3d; -layout(binding = 3) uniform samplerCube texCube; -layout(binding = 4) uniform sampler2DArray tex2dArray; -layout(binding = 5) uniform samplerCubeArray texCubeArray; -layout(binding = 6) uniform samplerBuffer texBuffer; - -layout(binding = 7) uniform sampler2DShadow depth2d; -layout(binding = 8) uniform samplerCubeShadow depthCube; -layout(binding = 9) uniform sampler2DArrayShadow depth2dArray; -layout(binding = 10) uniform samplerCubeArrayShadow depthCubeArray; - -vec4 doSwizzle() -{ - // OpImageSampleImplicitLod - vec4 c = texture(tex1d, 0.0); - c = texture(tex2d, vec2(0.0, 0.0)); - c = texture(tex3d, vec3(0.0, 0.0, 0.0)); - c = texture(texCube, vec3(0.0, 0.0, 0.0)); - c = texture(tex2dArray, vec3(0.0, 0.0, 0.0)); - c = texture(texCubeArray, vec4(0.0, 0.0, 0.0, 0.0)); - - // OpImageSampleDrefImplicitLod - c.r = texture(depth2d, vec3(0.0, 0.0, 1.0)); - c.r = texture(depthCube, vec4(0.0, 0.0, 0.0, 1.0)); - c.r = texture(depth2dArray, vec4(0.0, 0.0, 0.0, 1.0)); - c.r = texture(depthCubeArray, vec4(0.0, 0.0, 0.0, 0.0), 1.0); - - // OpImageSampleProjImplicitLod - c = textureProj(tex1d, vec2(0.0, 1.0)); - c = textureProj(tex2d, vec3(0.0, 0.0, 1.0)); - c = textureProj(tex3d, vec4(0.0, 0.0, 0.0, 1.0)); - - // OpImageSampleProjDrefImplicitLod - c.r = textureProj(depth2d, vec4(0.0, 0.0, 1.0, 1.0)); - - // OpImageSampleExplicitLod - c = textureLod(tex1d, 0.0, 0.0); - c = textureLod(tex2d, vec2(0.0, 0.0), 0.0); - c = textureLod(tex3d, vec3(0.0, 0.0, 0.0), 0.0); - c = textureLod(texCube, vec3(0.0, 0.0, 0.0), 0.0); - c = textureLod(tex2dArray, vec3(0.0, 0.0, 0.0), 0.0); - c = textureLod(texCubeArray, vec4(0.0, 0.0, 0.0, 0.0), 0.0); - - // OpImageSampleDrefExplicitLod - c.r = textureLod(depth2d, vec3(0.0, 0.0, 1.0), 0.0); - - // OpImageSampleProjExplicitLod - c = textureProjLod(tex1d, vec2(0.0, 1.0), 0.0); - c = textureProjLod(tex2d, vec3(0.0, 0.0, 1.0), 0.0); - c = textureProjLod(tex3d, vec4(0.0, 0.0, 0.0, 1.0), 0.0); - - // OpImageSampleProjDrefExplicitLod - c.r = textureProjLod(depth2d, vec4(0.0, 0.0, 1.0, 1.0), 0.0); - - // OpImageFetch - c = texelFetch(tex1d, 0, 0); - c = texelFetch(tex2d, ivec2(0, 0), 0); - c = texelFetch(tex3d, ivec3(0, 0, 0), 0); - c = texelFetch(tex2dArray, ivec3(0, 0, 0), 0); - - // Show that this transformation doesn't apply to Buffer images. - c = texelFetch(texBuffer, 0); - - // OpImageGather - c = textureGather(tex2d, vec2(0.0, 0.0), 0); - c = textureGather(texCube, vec3(0.0, 0.0, 0.0), 1); - c = textureGather(tex2dArray, vec3(0.0, 0.0, 0.0), 2); - c = textureGather(texCubeArray, vec4(0.0, 0.0, 0.0, 0.0), 3); - - // OpImageDrefGather - c = textureGather(depth2d, vec2(0.0, 0.0), 1.0); - c = textureGather(depthCube, vec3(0.0, 0.0, 0.0), 1.0); - c = textureGather(depth2dArray, vec3(0.0, 0.0, 0.0), 1.0); - c = textureGather(depthCubeArray, vec4(0.0, 0.0, 0.0, 0.0), 1.0); - - return c; -} - -void main() -{ - vec4 c = doSwizzle(); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/frag/texture-access-uint.swizzle.frag b/third_party/spirv-cross/shaders-msl-no-opt/frag/texture-access-uint.swizzle.frag deleted file mode 100644 index 5f0acf65fd..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/frag/texture-access-uint.swizzle.frag +++ /dev/null @@ -1,53 +0,0 @@ -#version 450 - -layout(binding = 0) uniform usampler1D tex1d; -layout(binding = 1) uniform usampler2D tex2d; -layout(binding = 2) uniform usampler3D tex3d; -layout(binding = 3) uniform usamplerCube texCube; -layout(binding = 4) uniform usampler2DArray tex2dArray; -layout(binding = 5) uniform usamplerCubeArray texCubeArray; -layout(binding = 6) uniform usamplerBuffer texBuffer; - -void main() -{ - // OpImageSampleImplicitLod - vec4 c = texture(tex1d, 0.0); - c = texture(tex2d, vec2(0.0, 0.0)); - c = texture(tex3d, vec3(0.0, 0.0, 0.0)); - c = texture(texCube, vec3(0.0, 0.0, 0.0)); - c = texture(tex2dArray, vec3(0.0, 0.0, 0.0)); - c = texture(texCubeArray, vec4(0.0, 0.0, 0.0, 0.0)); - - // OpImageSampleProjImplicitLod - c = textureProj(tex1d, vec2(0.0, 1.0)); - c = textureProj(tex2d, vec3(0.0, 0.0, 1.0)); - c = textureProj(tex3d, vec4(0.0, 0.0, 0.0, 1.0)); - - // OpImageSampleExplicitLod - c = textureLod(tex1d, 0.0, 0.0); - c = textureLod(tex2d, vec2(0.0, 0.0), 0.0); - c = textureLod(tex3d, vec3(0.0, 0.0, 0.0), 0.0); - c = textureLod(texCube, vec3(0.0, 0.0, 0.0), 0.0); - c = textureLod(tex2dArray, vec3(0.0, 0.0, 0.0), 0.0); - c = textureLod(texCubeArray, vec4(0.0, 0.0, 0.0, 0.0), 0.0); - - // OpImageSampleProjExplicitLod - c = textureProjLod(tex1d, vec2(0.0, 1.0), 0.0); - c = textureProjLod(tex2d, vec3(0.0, 0.0, 1.0), 0.0); - c = textureProjLod(tex3d, vec4(0.0, 0.0, 0.0, 1.0), 0.0); - - // OpImageFetch - c = texelFetch(tex1d, 0, 0); - c = texelFetch(tex2d, ivec2(0, 0), 0); - c = texelFetch(tex3d, ivec3(0, 0, 0), 0); - c = texelFetch(tex2dArray, ivec3(0, 0, 0), 0); - - // Show that this transformation doesn't apply to Buffer images. - c = texelFetch(texBuffer, 0); - - // OpImageGather - c = textureGather(tex2d, vec2(0.0, 0.0), 0); - c = textureGather(texCube, vec3(0.0, 0.0, 0.0), 1); - c = textureGather(tex2dArray, vec3(0.0, 0.0, 0.0), 2); - c = textureGather(texCubeArray, vec4(0.0, 0.0, 0.0, 0.0), 3); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/frag/texture-access.swizzle.frag b/third_party/spirv-cross/shaders-msl-no-opt/frag/texture-access.swizzle.frag deleted file mode 100644 index b09ebed77e..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/frag/texture-access.swizzle.frag +++ /dev/null @@ -1,79 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler1D tex1d; -layout(binding = 1) uniform sampler2D tex2d; -layout(binding = 2) uniform sampler3D tex3d; -layout(binding = 3) uniform samplerCube texCube; -layout(binding = 4) uniform sampler2DArray tex2dArray; -layout(binding = 5) uniform samplerCubeArray texCubeArray; -layout(binding = 6) uniform samplerBuffer texBuffer; - -layout(binding = 7) uniform sampler2DShadow depth2d; -layout(binding = 8) uniform samplerCubeShadow depthCube; -layout(binding = 9) uniform sampler2DArrayShadow depth2dArray; -layout(binding = 10) uniform samplerCubeArrayShadow depthCubeArray; - -void main() -{ - // OpImageSampleImplicitLod - vec4 c = texture(tex1d, 0.0); - c = texture(tex2d, vec2(0.0, 0.0)); - c = texture(tex3d, vec3(0.0, 0.0, 0.0)); - c = texture(texCube, vec3(0.0, 0.0, 0.0)); - c = texture(tex2dArray, vec3(0.0, 0.0, 0.0)); - c = texture(texCubeArray, vec4(0.0, 0.0, 0.0, 0.0)); - - // OpImageSampleDrefImplicitLod - c.r = texture(depth2d, vec3(0.0, 0.0, 1.0)); - c.r = texture(depthCube, vec4(0.0, 0.0, 0.0, 1.0)); - c.r = texture(depth2dArray, vec4(0.0, 0.0, 0.0, 1.0)); - c.r = texture(depthCubeArray, vec4(0.0, 0.0, 0.0, 0.0), 1.0); - - // OpImageSampleProjImplicitLod - c = textureProj(tex1d, vec2(0.0, 1.0)); - c = textureProj(tex2d, vec3(0.0, 0.0, 1.0)); - c = textureProj(tex3d, vec4(0.0, 0.0, 0.0, 1.0)); - - // OpImageSampleProjDrefImplicitLod - c.r = textureProj(depth2d, vec4(0.0, 0.0, 1.0, 1.0)); - - // OpImageSampleExplicitLod - c = textureLod(tex1d, 0.0, 0.0); - c = textureLod(tex2d, vec2(0.0, 0.0), 0.0); - c = textureLod(tex3d, vec3(0.0, 0.0, 0.0), 0.0); - c = textureLod(texCube, vec3(0.0, 0.0, 0.0), 0.0); - c = textureLod(tex2dArray, vec3(0.0, 0.0, 0.0), 0.0); - c = textureLod(texCubeArray, vec4(0.0, 0.0, 0.0, 0.0), 0.0); - - // OpImageSampleDrefExplicitLod - c.r = textureLod(depth2d, vec3(0.0, 0.0, 1.0), 0.0); - - // OpImageSampleProjExplicitLod - c = textureProjLod(tex1d, vec2(0.0, 1.0), 0.0); - c = textureProjLod(tex2d, vec3(0.0, 0.0, 1.0), 0.0); - c = textureProjLod(tex3d, vec4(0.0, 0.0, 0.0, 1.0), 0.0); - - // OpImageSampleProjDrefExplicitLod - c.r = textureProjLod(depth2d, vec4(0.0, 0.0, 1.0, 1.0), 0.0); - - // OpImageFetch - c = texelFetch(tex1d, 0, 0); - c = texelFetch(tex2d, ivec2(0, 0), 0); - c = texelFetch(tex3d, ivec3(0, 0, 0), 0); - c = texelFetch(tex2dArray, ivec3(0, 0, 0), 0); - - // Show that this transformation doesn't apply to Buffer images. - c = texelFetch(texBuffer, 0); - - // OpImageGather - c = textureGather(tex2d, vec2(0.0, 0.0), 0); - c = textureGather(texCube, vec3(0.0, 0.0, 0.0), 1); - c = textureGather(tex2dArray, vec3(0.0, 0.0, 0.0), 2); - c = textureGather(texCubeArray, vec4(0.0, 0.0, 0.0, 0.0), 3); - - // OpImageDrefGather - c = textureGather(depth2d, vec2(0.0, 0.0), 1.0); - c = textureGather(depthCube, vec3(0.0, 0.0, 0.0), 1.0); - c = textureGather(depth2dArray, vec3(0.0, 0.0, 0.0), 1.0); - c = textureGather(depthCubeArray, vec4(0.0, 0.0, 0.0, 0.0), 1.0); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/frag/ubo-array-multiple-structs-access-chain.argument.msl2.frag b/third_party/spirv-cross/shaders-msl-no-opt/frag/ubo-array-multiple-structs-access-chain.argument.msl2.frag deleted file mode 100644 index f3cf0e190d..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/frag/ubo-array-multiple-structs-access-chain.argument.msl2.frag +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 - -struct Foo -{ - vec4 v; -}; - -layout(set = 0, binding = 0) uniform UBO -{ - Foo foo; -} ubos[2]; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = ubos[1].foo.v; -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/frag/ubo-array-multiple-structs-access-chain.frag b/third_party/spirv-cross/shaders-msl-no-opt/frag/ubo-array-multiple-structs-access-chain.frag deleted file mode 100644 index f3cf0e190d..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/frag/ubo-array-multiple-structs-access-chain.frag +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 - -struct Foo -{ - vec4 v; -}; - -layout(set = 0, binding = 0) uniform UBO -{ - Foo foo; -} ubos[2]; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = ubos[1].foo.v; -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/frag/ubo-offset-out-of-order.frag b/third_party/spirv-cross/shaders-msl-no-opt/frag/ubo-offset-out-of-order.frag deleted file mode 100644 index 77760522f9..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/frag/ubo-offset-out-of-order.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; - -layout(set = 0, binding = 0) uniform UBO -{ - layout(offset = 16) mat4 m; - layout(offset = 0) vec4 v; -}; - -layout(location = 0) in vec4 vColor; - -void main() -{ - FragColor = m * vColor + v; -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/frag/variables.zero-initialize.frag b/third_party/spirv-cross/shaders-msl-no-opt/frag/variables.zero-initialize.frag deleted file mode 100644 index 41da8001f4..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/frag/variables.zero-initialize.frag +++ /dev/null @@ -1,21 +0,0 @@ -#version 450 - -layout(location = 0) in vec4 vColor; -layout(location = 0) out vec4 FragColor; - -int uninit_int; -ivec4 uninit_vector; -mat4 uninit_matrix; - -struct Foo { int a; }; -Foo uninit_foo; - -void main() -{ - int uninit_function_int; - if (vColor.x > 10.0) - uninit_function_int = 10; - else - uninit_function_int = 20; - FragColor = vColor; -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/array-of-vec3.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/array-of-vec3.comp deleted file mode 100644 index 6157212222..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/array-of-vec3.comp +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 -#extension GL_EXT_scalar_block_layout : require -layout(local_size_x = 1) in; - -layout(set = 0, binding = 0, scalar) buffer SSBO -{ - vec3 v[16]; -}; - -void main() -{ - v[1] = v[0]; -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/array-of-vec4.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/array-of-vec4.comp deleted file mode 100644 index c5bf5e8a3f..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/array-of-vec4.comp +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 -#extension GL_EXT_scalar_block_layout : require -layout(local_size_x = 1) in; - -layout(set = 0, binding = 0, scalar) buffer SSBO -{ - vec4 v[16]; -}; - -void main() -{ - v[1] = v[0]; -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/isolated-scalar-access.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/isolated-scalar-access.comp deleted file mode 100644 index 32c9288993..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/isolated-scalar-access.comp +++ /dev/null @@ -1,25 +0,0 @@ -#version 450 - -layout(set = 0, binding = 0) buffer SSBO -{ - vec4 v; - mat4 cm; - layout(row_major) mat4 rm; - - vec3 v3; - float f; -}; - -shared vec4 shared_vec4; -shared vec3 shared_vec3; - -void main() -{ - v.x = 10.0; - v3.y = 40.0; - cm[1][2] = 20.0; - rm[3][1] = 30.0; - - shared_vec4.z = 40.0; - shared_vec3.y = 1.0; -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/load-store-col-rows.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/load-store-col-rows.comp deleted file mode 100644 index b3f2897034..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/load-store-col-rows.comp +++ /dev/null @@ -1,59 +0,0 @@ -#version 450 -#extension GL_EXT_scalar_block_layout : require -layout(local_size_x = 1) in; - -layout(binding = 0, std140) buffer SSBO1 -{ - mat2 a; - layout(row_major) mat2 a2; -}; - -layout(scalar, binding = 1) buffer SSBO2 -{ - mat2x3 b; - layout(row_major) mat3x2 b2; -}; - -void load_store_column() -{ - vec2 u = a[0]; - vec2 v = a[1]; - u += v; - a[0] = u; - a[1] = v; -} - -void load_store_row() -{ - vec2 u = a2[0]; - vec2 v = a2[1]; - u += v; - a2[0] = u; - a2[1] = v; -} - -void load_store_packed_column() -{ - vec3 u = b[0]; - vec3 v = b[1]; - u += v; - b[0] = u; - b[1] = v; -} - -void load_store_packed_row() -{ - vec2 u = b2[0]; - vec2 v = b2[1]; - u += v; - b2[0] = u; - b2[1] = v; -} - -void main() -{ - load_store_column(); - load_store_row(); - load_store_packed_column(); - load_store_packed_row(); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-2x2-scalar.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-2x2-scalar.comp deleted file mode 100644 index 6a94c86ac0..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-2x2-scalar.comp +++ /dev/null @@ -1,86 +0,0 @@ -#version 450 -#extension GL_EXT_scalar_block_layout : require -layout(local_size_x = 1) in; - -#define T mat2 -#define PACKING scalar - -layout(set = 0, binding = 0, PACKING) buffer SSBOCol -{ - layout(column_major) T col_major0; - layout(column_major) T col_major1; -}; - -layout(set = 0, binding = 1, PACKING) buffer SSBORow -{ - layout(row_major) T row_major0; - layout(row_major) T row_major1; -}; - -void load_store_to_variable_col_major() -{ - // Load to variable. - T loaded = col_major0; - - // Store from variable. - col_major1 = loaded; -} - -void load_store_to_variable_row_major() -{ - // Load to variable. - T loaded = row_major0; - - // Store to variable. - row_major0 = loaded; -} - -void copy_col_major_to_col_major() -{ - // Copy col -> col - col_major0 = col_major1; -} - -void copy_row_major_to_col_major() -{ - // Copy row -> col - col_major0 = row_major0; -} - -void copy_col_major_to_row_major() -{ - // Copy col -> row - row_major0 = col_major0; -} - -void copy_row_major_to_row_major() -{ - // Copy row -> row - row_major0 = row_major1; -} - -void copy_columns() -{ - // Copy columns/rows. - col_major0[1] = row_major0[1]; - row_major0[1] = col_major0[1]; -} - -void copy_elements() -{ - // Copy individual elements. - col_major0[0][1] = row_major0[0][1]; - row_major0[0][1] = col_major0[0][1]; -} - -void main() -{ - load_store_to_variable_col_major(); - load_store_to_variable_row_major(); - copy_col_major_to_col_major(); - copy_col_major_to_row_major(); - copy_row_major_to_col_major(); - copy_row_major_to_row_major(); - copy_columns(); - copy_elements(); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-2x2-std140.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-2x2-std140.comp deleted file mode 100644 index 3940e5c3b9..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-2x2-std140.comp +++ /dev/null @@ -1,85 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -#define T mat2 -#define PACKING std140 - -layout(set = 0, binding = 0, PACKING) buffer SSBOCol -{ - layout(column_major) T col_major0; - layout(column_major) T col_major1; -}; - -layout(set = 0, binding = 1, PACKING) buffer SSBORow -{ - layout(row_major) T row_major0; - layout(row_major) T row_major1; -}; - -void load_store_to_variable_col_major() -{ - // Load to variable. - T loaded = col_major0; - - // Store from variable. - col_major1 = loaded; -} - -void load_store_to_variable_row_major() -{ - // Load to variable. - T loaded = row_major0; - - // Store to variable. - row_major0 = loaded; -} - -void copy_col_major_to_col_major() -{ - // Copy col -> col - col_major0 = col_major1; -} - -void copy_row_major_to_col_major() -{ - // Copy row -> col - col_major0 = row_major0; -} - -void copy_col_major_to_row_major() -{ - // Copy col -> row - row_major0 = col_major0; -} - -void copy_row_major_to_row_major() -{ - // Copy row -> row - row_major0 = row_major1; -} - -void copy_columns() -{ - // Copy columns/rows. - col_major0[1] = row_major0[1]; - row_major0[1] = col_major0[1]; -} - -void copy_elements() -{ - // Copy individual elements. - col_major0[0][1] = row_major0[0][1]; - row_major0[0][1] = col_major0[0][1]; -} - -void main() -{ - load_store_to_variable_col_major(); - load_store_to_variable_row_major(); - copy_col_major_to_col_major(); - copy_col_major_to_row_major(); - copy_row_major_to_col_major(); - copy_row_major_to_row_major(); - copy_columns(); - copy_elements(); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-2x2-std430.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-2x2-std430.comp deleted file mode 100644 index 342c3989ca..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-2x2-std430.comp +++ /dev/null @@ -1,85 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -#define T mat2 -#define PACKING std430 - -layout(set = 0, binding = 0, PACKING) buffer SSBOCol -{ - layout(column_major) T col_major0; - layout(column_major) T col_major1; -}; - -layout(set = 0, binding = 1, PACKING) buffer SSBORow -{ - layout(row_major) T row_major0; - layout(row_major) T row_major1; -}; - -void load_store_to_variable_col_major() -{ - // Load to variable. - T loaded = col_major0; - - // Store from variable. - col_major1 = loaded; -} - -void load_store_to_variable_row_major() -{ - // Load to variable. - T loaded = row_major0; - - // Store to variable. - row_major0 = loaded; -} - -void copy_col_major_to_col_major() -{ - // Copy col -> col - col_major0 = col_major1; -} - -void copy_row_major_to_col_major() -{ - // Copy row -> col - col_major0 = row_major0; -} - -void copy_col_major_to_row_major() -{ - // Copy col -> row - row_major0 = col_major0; -} - -void copy_row_major_to_row_major() -{ - // Copy row -> row - row_major0 = row_major1; -} - -void copy_columns() -{ - // Copy columns/rows. - col_major0[1] = row_major0[1]; - row_major0[1] = col_major0[1]; -} - -void copy_elements() -{ - // Copy individual elements. - col_major0[0][1] = row_major0[0][1]; - row_major0[0][1] = col_major0[0][1]; -} - -void main() -{ - load_store_to_variable_col_major(); - load_store_to_variable_row_major(); - copy_col_major_to_col_major(); - copy_col_major_to_row_major(); - copy_row_major_to_col_major(); - copy_row_major_to_row_major(); - copy_columns(); - copy_elements(); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-2x3-scalar.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-2x3-scalar.comp deleted file mode 100644 index cf40f89a05..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-2x3-scalar.comp +++ /dev/null @@ -1,86 +0,0 @@ -#version 450 -#extension GL_EXT_scalar_block_layout : require -layout(local_size_x = 1) in; - -#define T mat2x3 -#define PACKING scalar - -layout(set = 0, binding = 0, PACKING) buffer SSBOCol -{ - layout(column_major) T col_major0; - layout(column_major) T col_major1; -}; - -layout(set = 0, binding = 1, PACKING) buffer SSBORow -{ - layout(row_major) T row_major0; - layout(row_major) T row_major1; -}; - -void load_store_to_variable_col_major() -{ - // Load to variable. - T loaded = col_major0; - - // Store from variable. - col_major1 = loaded; -} - -void load_store_to_variable_row_major() -{ - // Load to variable. - T loaded = row_major0; - - // Store to variable. - row_major0 = loaded; -} - -void copy_col_major_to_col_major() -{ - // Copy col -> col - col_major0 = col_major1; -} - -void copy_row_major_to_col_major() -{ - // Copy row -> col - col_major0 = row_major0; -} - -void copy_col_major_to_row_major() -{ - // Copy col -> row - row_major0 = col_major0; -} - -void copy_row_major_to_row_major() -{ - // Copy row -> row - row_major0 = row_major1; -} - -void copy_columns() -{ - // Copy columns/rows. - col_major0[1] = row_major0[1]; - row_major0[1] = col_major0[1]; -} - -void copy_elements() -{ - // Copy individual elements. - col_major0[0][1] = row_major0[0][1]; - row_major0[0][1] = col_major0[0][1]; -} - -void main() -{ - load_store_to_variable_col_major(); - load_store_to_variable_row_major(); - copy_col_major_to_col_major(); - copy_col_major_to_row_major(); - copy_row_major_to_col_major(); - copy_row_major_to_row_major(); - copy_columns(); - copy_elements(); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-2x3-std140.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-2x3-std140.comp deleted file mode 100644 index 6fbe149d1f..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-2x3-std140.comp +++ /dev/null @@ -1,85 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -#define T mat2x3 -#define PACKING std140 - -layout(set = 0, binding = 0, PACKING) buffer SSBOCol -{ - layout(column_major) T col_major0; - layout(column_major) T col_major1; -}; - -layout(set = 0, binding = 1, PACKING) buffer SSBORow -{ - layout(row_major) T row_major0; - layout(row_major) T row_major1; -}; - -void load_store_to_variable_col_major() -{ - // Load to variable. - T loaded = col_major0; - - // Store from variable. - col_major1 = loaded; -} - -void load_store_to_variable_row_major() -{ - // Load to variable. - T loaded = row_major0; - - // Store to variable. - row_major0 = loaded; -} - -void copy_col_major_to_col_major() -{ - // Copy col -> col - col_major0 = col_major1; -} - -void copy_row_major_to_col_major() -{ - // Copy row -> col - col_major0 = row_major0; -} - -void copy_col_major_to_row_major() -{ - // Copy col -> row - row_major0 = col_major0; -} - -void copy_row_major_to_row_major() -{ - // Copy row -> row - row_major0 = row_major1; -} - -void copy_columns() -{ - // Copy columns/rows. - col_major0[1] = row_major0[1]; - row_major0[1] = col_major0[1]; -} - -void copy_elements() -{ - // Copy individual elements. - col_major0[0][1] = row_major0[0][1]; - row_major0[0][1] = col_major0[0][1]; -} - -void main() -{ - load_store_to_variable_col_major(); - load_store_to_variable_row_major(); - copy_col_major_to_col_major(); - copy_col_major_to_row_major(); - copy_row_major_to_col_major(); - copy_row_major_to_row_major(); - copy_columns(); - copy_elements(); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-2x3-std430.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-2x3-std430.comp deleted file mode 100644 index 36a6bab145..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-2x3-std430.comp +++ /dev/null @@ -1,85 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -#define T mat2x3 -#define PACKING std430 - -layout(set = 0, binding = 0, PACKING) buffer SSBOCol -{ - layout(column_major) T col_major0; - layout(column_major) T col_major1; -}; - -layout(set = 0, binding = 1, PACKING) buffer SSBORow -{ - layout(row_major) T row_major0; - layout(row_major) T row_major1; -}; - -void load_store_to_variable_col_major() -{ - // Load to variable. - T loaded = col_major0; - - // Store from variable. - col_major1 = loaded; -} - -void load_store_to_variable_row_major() -{ - // Load to variable. - T loaded = row_major0; - - // Store to variable. - row_major0 = loaded; -} - -void copy_col_major_to_col_major() -{ - // Copy col -> col - col_major0 = col_major1; -} - -void copy_row_major_to_col_major() -{ - // Copy row -> col - col_major0 = row_major0; -} - -void copy_col_major_to_row_major() -{ - // Copy col -> row - row_major0 = col_major0; -} - -void copy_row_major_to_row_major() -{ - // Copy row -> row - row_major0 = row_major1; -} - -void copy_columns() -{ - // Copy columns/rows. - col_major0[1] = row_major0[1]; - row_major0[1] = col_major0[1]; -} - -void copy_elements() -{ - // Copy individual elements. - col_major0[0][1] = row_major0[0][1]; - row_major0[0][1] = col_major0[0][1]; -} - -void main() -{ - load_store_to_variable_col_major(); - load_store_to_variable_row_major(); - copy_col_major_to_col_major(); - copy_col_major_to_row_major(); - copy_row_major_to_col_major(); - copy_row_major_to_row_major(); - copy_columns(); - copy_elements(); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-2x4-scalar.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-2x4-scalar.comp deleted file mode 100644 index 70fa4748d8..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-2x4-scalar.comp +++ /dev/null @@ -1,86 +0,0 @@ -#version 450 -#extension GL_EXT_scalar_block_layout : require -layout(local_size_x = 1) in; - -#define T mat2x4 -#define PACKING scalar - -layout(set = 0, binding = 0, PACKING) buffer SSBOCol -{ - layout(column_major) T col_major0; - layout(column_major) T col_major1; -}; - -layout(set = 0, binding = 1, PACKING) buffer SSBORow -{ - layout(row_major) T row_major0; - layout(row_major) T row_major1; -}; - -void load_store_to_variable_col_major() -{ - // Load to variable. - T loaded = col_major0; - - // Store from variable. - col_major1 = loaded; -} - -void load_store_to_variable_row_major() -{ - // Load to variable. - T loaded = row_major0; - - // Store to variable. - row_major0 = loaded; -} - -void copy_col_major_to_col_major() -{ - // Copy col -> col - col_major0 = col_major1; -} - -void copy_row_major_to_col_major() -{ - // Copy row -> col - col_major0 = row_major0; -} - -void copy_col_major_to_row_major() -{ - // Copy col -> row - row_major0 = col_major0; -} - -void copy_row_major_to_row_major() -{ - // Copy row -> row - row_major0 = row_major1; -} - -void copy_columns() -{ - // Copy columns/rows. - col_major0[1] = row_major0[1]; - row_major0[1] = col_major0[1]; -} - -void copy_elements() -{ - // Copy individual elements. - col_major0[0][1] = row_major0[0][1]; - row_major0[0][1] = col_major0[0][1]; -} - -void main() -{ - load_store_to_variable_col_major(); - load_store_to_variable_row_major(); - copy_col_major_to_col_major(); - copy_col_major_to_row_major(); - copy_row_major_to_col_major(); - copy_row_major_to_row_major(); - copy_columns(); - copy_elements(); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-2x4-std140.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-2x4-std140.comp deleted file mode 100644 index 6c5d06fe51..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-2x4-std140.comp +++ /dev/null @@ -1,85 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -#define T mat2x4 -#define PACKING std140 - -layout(set = 0, binding = 0, PACKING) buffer SSBOCol -{ - layout(column_major) T col_major0; - layout(column_major) T col_major1; -}; - -layout(set = 0, binding = 1, PACKING) buffer SSBORow -{ - layout(row_major) T row_major0; - layout(row_major) T row_major1; -}; - -void load_store_to_variable_col_major() -{ - // Load to variable. - T loaded = col_major0; - - // Store from variable. - col_major1 = loaded; -} - -void load_store_to_variable_row_major() -{ - // Load to variable. - T loaded = row_major0; - - // Store to variable. - row_major0 = loaded; -} - -void copy_col_major_to_col_major() -{ - // Copy col -> col - col_major0 = col_major1; -} - -void copy_row_major_to_col_major() -{ - // Copy row -> col - col_major0 = row_major0; -} - -void copy_col_major_to_row_major() -{ - // Copy col -> row - row_major0 = col_major0; -} - -void copy_row_major_to_row_major() -{ - // Copy row -> row - row_major0 = row_major1; -} - -void copy_columns() -{ - // Copy columns/rows. - col_major0[1] = row_major0[1]; - row_major0[1] = col_major0[1]; -} - -void copy_elements() -{ - // Copy individual elements. - col_major0[0][1] = row_major0[0][1]; - row_major0[0][1] = col_major0[0][1]; -} - -void main() -{ - load_store_to_variable_col_major(); - load_store_to_variable_row_major(); - copy_col_major_to_col_major(); - copy_col_major_to_row_major(); - copy_row_major_to_col_major(); - copy_row_major_to_row_major(); - copy_columns(); - copy_elements(); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-2x4-std430.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-2x4-std430.comp deleted file mode 100644 index 177b966940..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-2x4-std430.comp +++ /dev/null @@ -1,85 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -#define T mat2x4 -#define PACKING std430 - -layout(set = 0, binding = 0, PACKING) buffer SSBOCol -{ - layout(column_major) T col_major0; - layout(column_major) T col_major1; -}; - -layout(set = 0, binding = 1, PACKING) buffer SSBORow -{ - layout(row_major) T row_major0; - layout(row_major) T row_major1; -}; - -void load_store_to_variable_col_major() -{ - // Load to variable. - T loaded = col_major0; - - // Store from variable. - col_major1 = loaded; -} - -void load_store_to_variable_row_major() -{ - // Load to variable. - T loaded = row_major0; - - // Store to variable. - row_major0 = loaded; -} - -void copy_col_major_to_col_major() -{ - // Copy col -> col - col_major0 = col_major1; -} - -void copy_row_major_to_col_major() -{ - // Copy row -> col - col_major0 = row_major0; -} - -void copy_col_major_to_row_major() -{ - // Copy col -> row - row_major0 = col_major0; -} - -void copy_row_major_to_row_major() -{ - // Copy row -> row - row_major0 = row_major1; -} - -void copy_columns() -{ - // Copy columns/rows. - col_major0[1] = row_major0[1]; - row_major0[1] = col_major0[1]; -} - -void copy_elements() -{ - // Copy individual elements. - col_major0[0][1] = row_major0[0][1]; - row_major0[0][1] = col_major0[0][1]; -} - -void main() -{ - load_store_to_variable_col_major(); - load_store_to_variable_row_major(); - copy_col_major_to_col_major(); - copy_col_major_to_row_major(); - copy_row_major_to_col_major(); - copy_row_major_to_row_major(); - copy_columns(); - copy_elements(); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-3x2-scalar.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-3x2-scalar.comp deleted file mode 100644 index 296efa673c..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-3x2-scalar.comp +++ /dev/null @@ -1,86 +0,0 @@ -#version 450 -#extension GL_EXT_scalar_block_layout : require -layout(local_size_x = 1) in; - -#define T mat3x2 -#define PACKING scalar - -layout(set = 0, binding = 0, PACKING) buffer SSBOCol -{ - layout(column_major) T col_major0; - layout(column_major) T col_major1; -}; - -layout(set = 0, binding = 1, PACKING) buffer SSBORow -{ - layout(row_major) T row_major0; - layout(row_major) T row_major1; -}; - -void load_store_to_variable_col_major() -{ - // Load to variable. - T loaded = col_major0; - - // Store from variable. - col_major1 = loaded; -} - -void load_store_to_variable_row_major() -{ - // Load to variable. - T loaded = row_major0; - - // Store to variable. - row_major0 = loaded; -} - -void copy_col_major_to_col_major() -{ - // Copy col -> col - col_major0 = col_major1; -} - -void copy_row_major_to_col_major() -{ - // Copy row -> col - col_major0 = row_major0; -} - -void copy_col_major_to_row_major() -{ - // Copy col -> row - row_major0 = col_major0; -} - -void copy_row_major_to_row_major() -{ - // Copy row -> row - row_major0 = row_major1; -} - -void copy_columns() -{ - // Copy columns/rows. - col_major0[1] = row_major0[1]; - row_major0[1] = col_major0[1]; -} - -void copy_elements() -{ - // Copy individual elements. - col_major0[0][1] = row_major0[0][1]; - row_major0[0][1] = col_major0[0][1]; -} - -void main() -{ - load_store_to_variable_col_major(); - load_store_to_variable_row_major(); - copy_col_major_to_col_major(); - copy_col_major_to_row_major(); - copy_row_major_to_col_major(); - copy_row_major_to_row_major(); - copy_columns(); - copy_elements(); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-3x2-std140.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-3x2-std140.comp deleted file mode 100644 index 1334c4eae7..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-3x2-std140.comp +++ /dev/null @@ -1,85 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -#define T mat3x2 -#define PACKING std140 - -layout(set = 0, binding = 0, PACKING) buffer SSBOCol -{ - layout(column_major) T col_major0; - layout(column_major) T col_major1; -}; - -layout(set = 0, binding = 1, PACKING) buffer SSBORow -{ - layout(row_major) T row_major0; - layout(row_major) T row_major1; -}; - -void load_store_to_variable_col_major() -{ - // Load to variable. - T loaded = col_major0; - - // Store from variable. - col_major1 = loaded; -} - -void load_store_to_variable_row_major() -{ - // Load to variable. - T loaded = row_major0; - - // Store to variable. - row_major0 = loaded; -} - -void copy_col_major_to_col_major() -{ - // Copy col -> col - col_major0 = col_major1; -} - -void copy_row_major_to_col_major() -{ - // Copy row -> col - col_major0 = row_major0; -} - -void copy_col_major_to_row_major() -{ - // Copy col -> row - row_major0 = col_major0; -} - -void copy_row_major_to_row_major() -{ - // Copy row -> row - row_major0 = row_major1; -} - -void copy_columns() -{ - // Copy columns/rows. - col_major0[1] = row_major0[1]; - row_major0[1] = col_major0[1]; -} - -void copy_elements() -{ - // Copy individual elements. - col_major0[0][1] = row_major0[0][1]; - row_major0[0][1] = col_major0[0][1]; -} - -void main() -{ - load_store_to_variable_col_major(); - load_store_to_variable_row_major(); - copy_col_major_to_col_major(); - copy_col_major_to_row_major(); - copy_row_major_to_col_major(); - copy_row_major_to_row_major(); - copy_columns(); - copy_elements(); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-3x2-std430.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-3x2-std430.comp deleted file mode 100644 index fe82993ddb..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-3x2-std430.comp +++ /dev/null @@ -1,85 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -#define T mat3x2 -#define PACKING std430 - -layout(set = 0, binding = 0, PACKING) buffer SSBOCol -{ - layout(column_major) T col_major0; - layout(column_major) T col_major1; -}; - -layout(set = 0, binding = 1, PACKING) buffer SSBORow -{ - layout(row_major) T row_major0; - layout(row_major) T row_major1; -}; - -void load_store_to_variable_col_major() -{ - // Load to variable. - T loaded = col_major0; - - // Store from variable. - col_major1 = loaded; -} - -void load_store_to_variable_row_major() -{ - // Load to variable. - T loaded = row_major0; - - // Store to variable. - row_major0 = loaded; -} - -void copy_col_major_to_col_major() -{ - // Copy col -> col - col_major0 = col_major1; -} - -void copy_row_major_to_col_major() -{ - // Copy row -> col - col_major0 = row_major0; -} - -void copy_col_major_to_row_major() -{ - // Copy col -> row - row_major0 = col_major0; -} - -void copy_row_major_to_row_major() -{ - // Copy row -> row - row_major0 = row_major1; -} - -void copy_columns() -{ - // Copy columns/rows. - col_major0[1] = row_major0[1]; - row_major0[1] = col_major0[1]; -} - -void copy_elements() -{ - // Copy individual elements. - col_major0[0][1] = row_major0[0][1]; - row_major0[0][1] = col_major0[0][1]; -} - -void main() -{ - load_store_to_variable_col_major(); - load_store_to_variable_row_major(); - copy_col_major_to_col_major(); - copy_col_major_to_row_major(); - copy_row_major_to_col_major(); - copy_row_major_to_row_major(); - copy_columns(); - copy_elements(); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-3x3-scalar.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-3x3-scalar.comp deleted file mode 100644 index 0741384ea2..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-3x3-scalar.comp +++ /dev/null @@ -1,86 +0,0 @@ -#version 450 -#extension GL_EXT_scalar_block_layout : require -layout(local_size_x = 1) in; - -#define T mat3 -#define PACKING scalar - -layout(set = 0, binding = 0, PACKING) buffer SSBOCol -{ - layout(column_major) T col_major0; - layout(column_major) T col_major1; -}; - -layout(set = 0, binding = 1, PACKING) buffer SSBORow -{ - layout(row_major) T row_major0; - layout(row_major) T row_major1; -}; - -void load_store_to_variable_col_major() -{ - // Load to variable. - T loaded = col_major0; - - // Store from variable. - col_major1 = loaded; -} - -void load_store_to_variable_row_major() -{ - // Load to variable. - T loaded = row_major0; - - // Store to variable. - row_major0 = loaded; -} - -void copy_col_major_to_col_major() -{ - // Copy col -> col - col_major0 = col_major1; -} - -void copy_row_major_to_col_major() -{ - // Copy row -> col - col_major0 = row_major0; -} - -void copy_col_major_to_row_major() -{ - // Copy col -> row - row_major0 = col_major0; -} - -void copy_row_major_to_row_major() -{ - // Copy row -> row - row_major0 = row_major1; -} - -void copy_columns() -{ - // Copy columns/rows. - col_major0[1] = row_major0[1]; - row_major0[1] = col_major0[1]; -} - -void copy_elements() -{ - // Copy individual elements. - col_major0[0][1] = row_major0[0][1]; - row_major0[0][1] = col_major0[0][1]; -} - -void main() -{ - load_store_to_variable_col_major(); - load_store_to_variable_row_major(); - copy_col_major_to_col_major(); - copy_col_major_to_row_major(); - copy_row_major_to_col_major(); - copy_row_major_to_row_major(); - copy_columns(); - copy_elements(); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-3x3-std140.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-3x3-std140.comp deleted file mode 100644 index 0de5d599c1..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-3x3-std140.comp +++ /dev/null @@ -1,85 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -#define T mat3 -#define PACKING std140 - -layout(set = 0, binding = 0, PACKING) buffer SSBOCol -{ - layout(column_major) T col_major0; - layout(column_major) T col_major1; -}; - -layout(set = 0, binding = 1, PACKING) buffer SSBORow -{ - layout(row_major) T row_major0; - layout(row_major) T row_major1; -}; - -void load_store_to_variable_col_major() -{ - // Load to variable. - T loaded = col_major0; - - // Store from variable. - col_major1 = loaded; -} - -void load_store_to_variable_row_major() -{ - // Load to variable. - T loaded = row_major0; - - // Store to variable. - row_major0 = loaded; -} - -void copy_col_major_to_col_major() -{ - // Copy col -> col - col_major0 = col_major1; -} - -void copy_row_major_to_col_major() -{ - // Copy row -> col - col_major0 = row_major0; -} - -void copy_col_major_to_row_major() -{ - // Copy col -> row - row_major0 = col_major0; -} - -void copy_row_major_to_row_major() -{ - // Copy row -> row - row_major0 = row_major1; -} - -void copy_columns() -{ - // Copy columns/rows. - col_major0[1] = row_major0[1]; - row_major0[1] = col_major0[1]; -} - -void copy_elements() -{ - // Copy individual elements. - col_major0[0][1] = row_major0[0][1]; - row_major0[0][1] = col_major0[0][1]; -} - -void main() -{ - load_store_to_variable_col_major(); - load_store_to_variable_row_major(); - copy_col_major_to_col_major(); - copy_col_major_to_row_major(); - copy_row_major_to_col_major(); - copy_row_major_to_row_major(); - copy_columns(); - copy_elements(); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-3x3-std430.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-3x3-std430.comp deleted file mode 100644 index 8e48109e93..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-3x3-std430.comp +++ /dev/null @@ -1,85 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -#define T mat3 -#define PACKING std430 - -layout(set = 0, binding = 0, PACKING) buffer SSBOCol -{ - layout(column_major) T col_major0; - layout(column_major) T col_major1; -}; - -layout(set = 0, binding = 1, PACKING) buffer SSBORow -{ - layout(row_major) T row_major0; - layout(row_major) T row_major1; -}; - -void load_store_to_variable_col_major() -{ - // Load to variable. - T loaded = col_major0; - - // Store from variable. - col_major1 = loaded; -} - -void load_store_to_variable_row_major() -{ - // Load to variable. - T loaded = row_major0; - - // Store to variable. - row_major0 = loaded; -} - -void copy_col_major_to_col_major() -{ - // Copy col -> col - col_major0 = col_major1; -} - -void copy_row_major_to_col_major() -{ - // Copy row -> col - col_major0 = row_major0; -} - -void copy_col_major_to_row_major() -{ - // Copy col -> row - row_major0 = col_major0; -} - -void copy_row_major_to_row_major() -{ - // Copy row -> row - row_major0 = row_major1; -} - -void copy_columns() -{ - // Copy columns/rows. - col_major0[1] = row_major0[1]; - row_major0[1] = col_major0[1]; -} - -void copy_elements() -{ - // Copy individual elements. - col_major0[0][1] = row_major0[0][1]; - row_major0[0][1] = col_major0[0][1]; -} - -void main() -{ - load_store_to_variable_col_major(); - load_store_to_variable_row_major(); - copy_col_major_to_col_major(); - copy_col_major_to_row_major(); - copy_row_major_to_col_major(); - copy_row_major_to_row_major(); - copy_columns(); - copy_elements(); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-3x4-scalar.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-3x4-scalar.comp deleted file mode 100644 index 23297d5c63..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-3x4-scalar.comp +++ /dev/null @@ -1,86 +0,0 @@ -#version 450 -#extension GL_EXT_scalar_block_layout : require -layout(local_size_x = 1) in; - -#define T mat3x4 -#define PACKING scalar - -layout(set = 0, binding = 0, PACKING) buffer SSBOCol -{ - layout(column_major) T col_major0; - layout(column_major) T col_major1; -}; - -layout(set = 0, binding = 1, PACKING) buffer SSBORow -{ - layout(row_major) T row_major0; - layout(row_major) T row_major1; -}; - -void load_store_to_variable_col_major() -{ - // Load to variable. - T loaded = col_major0; - - // Store from variable. - col_major1 = loaded; -} - -void load_store_to_variable_row_major() -{ - // Load to variable. - T loaded = row_major0; - - // Store to variable. - row_major0 = loaded; -} - -void copy_col_major_to_col_major() -{ - // Copy col -> col - col_major0 = col_major1; -} - -void copy_row_major_to_col_major() -{ - // Copy row -> col - col_major0 = row_major0; -} - -void copy_col_major_to_row_major() -{ - // Copy col -> row - row_major0 = col_major0; -} - -void copy_row_major_to_row_major() -{ - // Copy row -> row - row_major0 = row_major1; -} - -void copy_columns() -{ - // Copy columns/rows. - col_major0[1] = row_major0[1]; - row_major0[1] = col_major0[1]; -} - -void copy_elements() -{ - // Copy individual elements. - col_major0[0][1] = row_major0[0][1]; - row_major0[0][1] = col_major0[0][1]; -} - -void main() -{ - load_store_to_variable_col_major(); - load_store_to_variable_row_major(); - copy_col_major_to_col_major(); - copy_col_major_to_row_major(); - copy_row_major_to_col_major(); - copy_row_major_to_row_major(); - copy_columns(); - copy_elements(); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-3x4-std140.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-3x4-std140.comp deleted file mode 100644 index 11135eeccf..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-3x4-std140.comp +++ /dev/null @@ -1,85 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -#define T mat3x4 -#define PACKING std140 - -layout(set = 0, binding = 0, PACKING) buffer SSBOCol -{ - layout(column_major) T col_major0; - layout(column_major) T col_major1; -}; - -layout(set = 0, binding = 1, PACKING) buffer SSBORow -{ - layout(row_major) T row_major0; - layout(row_major) T row_major1; -}; - -void load_store_to_variable_col_major() -{ - // Load to variable. - T loaded = col_major0; - - // Store from variable. - col_major1 = loaded; -} - -void load_store_to_variable_row_major() -{ - // Load to variable. - T loaded = row_major0; - - // Store to variable. - row_major0 = loaded; -} - -void copy_col_major_to_col_major() -{ - // Copy col -> col - col_major0 = col_major1; -} - -void copy_row_major_to_col_major() -{ - // Copy row -> col - col_major0 = row_major0; -} - -void copy_col_major_to_row_major() -{ - // Copy col -> row - row_major0 = col_major0; -} - -void copy_row_major_to_row_major() -{ - // Copy row -> row - row_major0 = row_major1; -} - -void copy_columns() -{ - // Copy columns/rows. - col_major0[1] = row_major0[1]; - row_major0[1] = col_major0[1]; -} - -void copy_elements() -{ - // Copy individual elements. - col_major0[0][1] = row_major0[0][1]; - row_major0[0][1] = col_major0[0][1]; -} - -void main() -{ - load_store_to_variable_col_major(); - load_store_to_variable_row_major(); - copy_col_major_to_col_major(); - copy_col_major_to_row_major(); - copy_row_major_to_col_major(); - copy_row_major_to_row_major(); - copy_columns(); - copy_elements(); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-3x4-std430.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-3x4-std430.comp deleted file mode 100644 index 78c577f2ef..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-3x4-std430.comp +++ /dev/null @@ -1,85 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -#define T mat3x4 -#define PACKING std430 - -layout(set = 0, binding = 0, PACKING) buffer SSBOCol -{ - layout(column_major) T col_major0; - layout(column_major) T col_major1; -}; - -layout(set = 0, binding = 1, PACKING) buffer SSBORow -{ - layout(row_major) T row_major0; - layout(row_major) T row_major1; -}; - -void load_store_to_variable_col_major() -{ - // Load to variable. - T loaded = col_major0; - - // Store from variable. - col_major1 = loaded; -} - -void load_store_to_variable_row_major() -{ - // Load to variable. - T loaded = row_major0; - - // Store to variable. - row_major0 = loaded; -} - -void copy_col_major_to_col_major() -{ - // Copy col -> col - col_major0 = col_major1; -} - -void copy_row_major_to_col_major() -{ - // Copy row -> col - col_major0 = row_major0; -} - -void copy_col_major_to_row_major() -{ - // Copy col -> row - row_major0 = col_major0; -} - -void copy_row_major_to_row_major() -{ - // Copy row -> row - row_major0 = row_major1; -} - -void copy_columns() -{ - // Copy columns/rows. - col_major0[1] = row_major0[1]; - row_major0[1] = col_major0[1]; -} - -void copy_elements() -{ - // Copy individual elements. - col_major0[0][1] = row_major0[0][1]; - row_major0[0][1] = col_major0[0][1]; -} - -void main() -{ - load_store_to_variable_col_major(); - load_store_to_variable_row_major(); - copy_col_major_to_col_major(); - copy_col_major_to_row_major(); - copy_row_major_to_col_major(); - copy_row_major_to_row_major(); - copy_columns(); - copy_elements(); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-4x2-scalar.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-4x2-scalar.comp deleted file mode 100644 index 412c208148..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-4x2-scalar.comp +++ /dev/null @@ -1,86 +0,0 @@ -#version 450 -#extension GL_EXT_scalar_block_layout : require -layout(local_size_x = 1) in; - -#define T mat4x2 -#define PACKING scalar - -layout(set = 0, binding = 0, PACKING) buffer SSBOCol -{ - layout(column_major) T col_major0; - layout(column_major) T col_major1; -}; - -layout(set = 0, binding = 1, PACKING) buffer SSBORow -{ - layout(row_major) T row_major0; - layout(row_major) T row_major1; -}; - -void load_store_to_variable_col_major() -{ - // Load to variable. - T loaded = col_major0; - - // Store from variable. - col_major1 = loaded; -} - -void load_store_to_variable_row_major() -{ - // Load to variable. - T loaded = row_major0; - - // Store to variable. - row_major0 = loaded; -} - -void copy_col_major_to_col_major() -{ - // Copy col -> col - col_major0 = col_major1; -} - -void copy_row_major_to_col_major() -{ - // Copy row -> col - col_major0 = row_major0; -} - -void copy_col_major_to_row_major() -{ - // Copy col -> row - row_major0 = col_major0; -} - -void copy_row_major_to_row_major() -{ - // Copy row -> row - row_major0 = row_major1; -} - -void copy_columns() -{ - // Copy columns/rows. - col_major0[1] = row_major0[1]; - row_major0[1] = col_major0[1]; -} - -void copy_elements() -{ - // Copy individual elements. - col_major0[0][1] = row_major0[0][1]; - row_major0[0][1] = col_major0[0][1]; -} - -void main() -{ - load_store_to_variable_col_major(); - load_store_to_variable_row_major(); - copy_col_major_to_col_major(); - copy_col_major_to_row_major(); - copy_row_major_to_col_major(); - copy_row_major_to_row_major(); - copy_columns(); - copy_elements(); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-4x2-std140.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-4x2-std140.comp deleted file mode 100644 index e130cb0a46..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-4x2-std140.comp +++ /dev/null @@ -1,85 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -#define T mat4x2 -#define PACKING std140 - -layout(set = 0, binding = 0, PACKING) buffer SSBOCol -{ - layout(column_major) T col_major0; - layout(column_major) T col_major1; -}; - -layout(set = 0, binding = 1, PACKING) buffer SSBORow -{ - layout(row_major) T row_major0; - layout(row_major) T row_major1; -}; - -void load_store_to_variable_col_major() -{ - // Load to variable. - T loaded = col_major0; - - // Store from variable. - col_major1 = loaded; -} - -void load_store_to_variable_row_major() -{ - // Load to variable. - T loaded = row_major0; - - // Store to variable. - row_major0 = loaded; -} - -void copy_col_major_to_col_major() -{ - // Copy col -> col - col_major0 = col_major1; -} - -void copy_row_major_to_col_major() -{ - // Copy row -> col - col_major0 = row_major0; -} - -void copy_col_major_to_row_major() -{ - // Copy col -> row - row_major0 = col_major0; -} - -void copy_row_major_to_row_major() -{ - // Copy row -> row - row_major0 = row_major1; -} - -void copy_columns() -{ - // Copy columns/rows. - col_major0[1] = row_major0[1]; - row_major0[1] = col_major0[1]; -} - -void copy_elements() -{ - // Copy individual elements. - col_major0[0][1] = row_major0[0][1]; - row_major0[0][1] = col_major0[0][1]; -} - -void main() -{ - load_store_to_variable_col_major(); - load_store_to_variable_row_major(); - copy_col_major_to_col_major(); - copy_col_major_to_row_major(); - copy_row_major_to_col_major(); - copy_row_major_to_row_major(); - copy_columns(); - copy_elements(); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-4x2-std430.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-4x2-std430.comp deleted file mode 100644 index 76aa9ae4a6..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-4x2-std430.comp +++ /dev/null @@ -1,85 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -#define T mat4x2 -#define PACKING std430 - -layout(set = 0, binding = 0, PACKING) buffer SSBOCol -{ - layout(column_major) T col_major0; - layout(column_major) T col_major1; -}; - -layout(set = 0, binding = 1, PACKING) buffer SSBORow -{ - layout(row_major) T row_major0; - layout(row_major) T row_major1; -}; - -void load_store_to_variable_col_major() -{ - // Load to variable. - T loaded = col_major0; - - // Store from variable. - col_major1 = loaded; -} - -void load_store_to_variable_row_major() -{ - // Load to variable. - T loaded = row_major0; - - // Store to variable. - row_major0 = loaded; -} - -void copy_col_major_to_col_major() -{ - // Copy col -> col - col_major0 = col_major1; -} - -void copy_row_major_to_col_major() -{ - // Copy row -> col - col_major0 = row_major0; -} - -void copy_col_major_to_row_major() -{ - // Copy col -> row - row_major0 = col_major0; -} - -void copy_row_major_to_row_major() -{ - // Copy row -> row - row_major0 = row_major1; -} - -void copy_columns() -{ - // Copy columns/rows. - col_major0[1] = row_major0[1]; - row_major0[1] = col_major0[1]; -} - -void copy_elements() -{ - // Copy individual elements. - col_major0[0][1] = row_major0[0][1]; - row_major0[0][1] = col_major0[0][1]; -} - -void main() -{ - load_store_to_variable_col_major(); - load_store_to_variable_row_major(); - copy_col_major_to_col_major(); - copy_col_major_to_row_major(); - copy_row_major_to_col_major(); - copy_row_major_to_row_major(); - copy_columns(); - copy_elements(); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-4x3-scalar.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-4x3-scalar.comp deleted file mode 100644 index 8468b289cd..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-4x3-scalar.comp +++ /dev/null @@ -1,86 +0,0 @@ -#version 450 -#extension GL_EXT_scalar_block_layout : require -layout(local_size_x = 1) in; - -#define T mat4x3 -#define PACKING scalar - -layout(set = 0, binding = 0, PACKING) buffer SSBOCol -{ - layout(column_major) T col_major0; - layout(column_major) T col_major1; -}; - -layout(set = 0, binding = 1, PACKING) buffer SSBORow -{ - layout(row_major) T row_major0; - layout(row_major) T row_major1; -}; - -void load_store_to_variable_col_major() -{ - // Load to variable. - T loaded = col_major0; - - // Store from variable. - col_major1 = loaded; -} - -void load_store_to_variable_row_major() -{ - // Load to variable. - T loaded = row_major0; - - // Store to variable. - row_major0 = loaded; -} - -void copy_col_major_to_col_major() -{ - // Copy col -> col - col_major0 = col_major1; -} - -void copy_row_major_to_col_major() -{ - // Copy row -> col - col_major0 = row_major0; -} - -void copy_col_major_to_row_major() -{ - // Copy col -> row - row_major0 = col_major0; -} - -void copy_row_major_to_row_major() -{ - // Copy row -> row - row_major0 = row_major1; -} - -void copy_columns() -{ - // Copy columns/rows. - col_major0[1] = row_major0[1]; - row_major0[1] = col_major0[1]; -} - -void copy_elements() -{ - // Copy individual elements. - col_major0[0][1] = row_major0[0][1]; - row_major0[0][1] = col_major0[0][1]; -} - -void main() -{ - load_store_to_variable_col_major(); - load_store_to_variable_row_major(); - copy_col_major_to_col_major(); - copy_col_major_to_row_major(); - copy_row_major_to_col_major(); - copy_row_major_to_row_major(); - copy_columns(); - copy_elements(); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-4x3-std140.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-4x3-std140.comp deleted file mode 100644 index 8223eae49f..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-4x3-std140.comp +++ /dev/null @@ -1,85 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -#define T mat4x3 -#define PACKING std140 - -layout(set = 0, binding = 0, PACKING) buffer SSBOCol -{ - layout(column_major) T col_major0; - layout(column_major) T col_major1; -}; - -layout(set = 0, binding = 1, PACKING) buffer SSBORow -{ - layout(row_major) T row_major0; - layout(row_major) T row_major1; -}; - -void load_store_to_variable_col_major() -{ - // Load to variable. - T loaded = col_major0; - - // Store from variable. - col_major1 = loaded; -} - -void load_store_to_variable_row_major() -{ - // Load to variable. - T loaded = row_major0; - - // Store to variable. - row_major0 = loaded; -} - -void copy_col_major_to_col_major() -{ - // Copy col -> col - col_major0 = col_major1; -} - -void copy_row_major_to_col_major() -{ - // Copy row -> col - col_major0 = row_major0; -} - -void copy_col_major_to_row_major() -{ - // Copy col -> row - row_major0 = col_major0; -} - -void copy_row_major_to_row_major() -{ - // Copy row -> row - row_major0 = row_major1; -} - -void copy_columns() -{ - // Copy columns/rows. - col_major0[1] = row_major0[1]; - row_major0[1] = col_major0[1]; -} - -void copy_elements() -{ - // Copy individual elements. - col_major0[0][1] = row_major0[0][1]; - row_major0[0][1] = col_major0[0][1]; -} - -void main() -{ - load_store_to_variable_col_major(); - load_store_to_variable_row_major(); - copy_col_major_to_col_major(); - copy_col_major_to_row_major(); - copy_row_major_to_col_major(); - copy_row_major_to_row_major(); - copy_columns(); - copy_elements(); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-4x3-std430.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-4x3-std430.comp deleted file mode 100644 index aa4d685cf9..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-4x3-std430.comp +++ /dev/null @@ -1,85 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -#define T mat4x3 -#define PACKING std430 - -layout(set = 0, binding = 0, PACKING) buffer SSBOCol -{ - layout(column_major) T col_major0; - layout(column_major) T col_major1; -}; - -layout(set = 0, binding = 1, PACKING) buffer SSBORow -{ - layout(row_major) T row_major0; - layout(row_major) T row_major1; -}; - -void load_store_to_variable_col_major() -{ - // Load to variable. - T loaded = col_major0; - - // Store from variable. - col_major1 = loaded; -} - -void load_store_to_variable_row_major() -{ - // Load to variable. - T loaded = row_major0; - - // Store to variable. - row_major0 = loaded; -} - -void copy_col_major_to_col_major() -{ - // Copy col -> col - col_major0 = col_major1; -} - -void copy_row_major_to_col_major() -{ - // Copy row -> col - col_major0 = row_major0; -} - -void copy_col_major_to_row_major() -{ - // Copy col -> row - row_major0 = col_major0; -} - -void copy_row_major_to_row_major() -{ - // Copy row -> row - row_major0 = row_major1; -} - -void copy_columns() -{ - // Copy columns/rows. - col_major0[1] = row_major0[1]; - row_major0[1] = col_major0[1]; -} - -void copy_elements() -{ - // Copy individual elements. - col_major0[0][1] = row_major0[0][1]; - row_major0[0][1] = col_major0[0][1]; -} - -void main() -{ - load_store_to_variable_col_major(); - load_store_to_variable_row_major(); - copy_col_major_to_col_major(); - copy_col_major_to_row_major(); - copy_row_major_to_col_major(); - copy_row_major_to_row_major(); - copy_columns(); - copy_elements(); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-4x4-scalar.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-4x4-scalar.comp deleted file mode 100644 index 6f14c07311..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-4x4-scalar.comp +++ /dev/null @@ -1,86 +0,0 @@ -#version 450 -#extension GL_EXT_scalar_block_layout : require -layout(local_size_x = 1) in; - -#define T mat4 -#define PACKING scalar - -layout(set = 0, binding = 0, PACKING) buffer SSBOCol -{ - layout(column_major) T col_major0; - layout(column_major) T col_major1; -}; - -layout(set = 0, binding = 1, PACKING) buffer SSBORow -{ - layout(row_major) T row_major0; - layout(row_major) T row_major1; -}; - -void load_store_to_variable_col_major() -{ - // Load to variable. - T loaded = col_major0; - - // Store from variable. - col_major1 = loaded; -} - -void load_store_to_variable_row_major() -{ - // Load to variable. - T loaded = row_major0; - - // Store to variable. - row_major0 = loaded; -} - -void copy_col_major_to_col_major() -{ - // Copy col -> col - col_major0 = col_major1; -} - -void copy_row_major_to_col_major() -{ - // Copy row -> col - col_major0 = row_major0; -} - -void copy_col_major_to_row_major() -{ - // Copy col -> row - row_major0 = col_major0; -} - -void copy_row_major_to_row_major() -{ - // Copy row -> row - row_major0 = row_major1; -} - -void copy_columns() -{ - // Copy columns/rows. - col_major0[1] = row_major0[1]; - row_major0[1] = col_major0[1]; -} - -void copy_elements() -{ - // Copy individual elements. - col_major0[0][1] = row_major0[0][1]; - row_major0[0][1] = col_major0[0][1]; -} - -void main() -{ - load_store_to_variable_col_major(); - load_store_to_variable_row_major(); - copy_col_major_to_col_major(); - copy_col_major_to_row_major(); - copy_row_major_to_col_major(); - copy_row_major_to_row_major(); - copy_columns(); - copy_elements(); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-4x4-std140.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-4x4-std140.comp deleted file mode 100644 index 45193b3257..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-4x4-std140.comp +++ /dev/null @@ -1,85 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -#define T mat4 -#define PACKING std140 - -layout(set = 0, binding = 0, PACKING) buffer SSBOCol -{ - layout(column_major) T col_major0; - layout(column_major) T col_major1; -}; - -layout(set = 0, binding = 1, PACKING) buffer SSBORow -{ - layout(row_major) T row_major0; - layout(row_major) T row_major1; -}; - -void load_store_to_variable_col_major() -{ - // Load to variable. - T loaded = col_major0; - - // Store from variable. - col_major1 = loaded; -} - -void load_store_to_variable_row_major() -{ - // Load to variable. - T loaded = row_major0; - - // Store to variable. - row_major0 = loaded; -} - -void copy_col_major_to_col_major() -{ - // Copy col -> col - col_major0 = col_major1; -} - -void copy_row_major_to_col_major() -{ - // Copy row -> col - col_major0 = row_major0; -} - -void copy_col_major_to_row_major() -{ - // Copy col -> row - row_major0 = col_major0; -} - -void copy_row_major_to_row_major() -{ - // Copy row -> row - row_major0 = row_major1; -} - -void copy_columns() -{ - // Copy columns/rows. - col_major0[1] = row_major0[1]; - row_major0[1] = col_major0[1]; -} - -void copy_elements() -{ - // Copy individual elements. - col_major0[0][1] = row_major0[0][1]; - row_major0[0][1] = col_major0[0][1]; -} - -void main() -{ - load_store_to_variable_col_major(); - load_store_to_variable_row_major(); - copy_col_major_to_col_major(); - copy_col_major_to_row_major(); - copy_row_major_to_col_major(); - copy_row_major_to_row_major(); - copy_columns(); - copy_elements(); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-4x4-std430.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-4x4-std430.comp deleted file mode 100644 index 3a1eb9f020..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-4x4-std430.comp +++ /dev/null @@ -1,85 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -#define T mat4 -#define PACKING std430 - -layout(set = 0, binding = 0, PACKING) buffer SSBOCol -{ - layout(column_major) T col_major0; - layout(column_major) T col_major1; -}; - -layout(set = 0, binding = 1, PACKING) buffer SSBORow -{ - layout(row_major) T row_major0; - layout(row_major) T row_major1; -}; - -void load_store_to_variable_col_major() -{ - // Load to variable. - T loaded = col_major0; - - // Store from variable. - col_major1 = loaded; -} - -void load_store_to_variable_row_major() -{ - // Load to variable. - T loaded = row_major0; - - // Store to variable. - row_major0 = loaded; -} - -void copy_col_major_to_col_major() -{ - // Copy col -> col - col_major0 = col_major1; -} - -void copy_row_major_to_col_major() -{ - // Copy row -> col - col_major0 = row_major0; -} - -void copy_col_major_to_row_major() -{ - // Copy col -> row - row_major0 = col_major0; -} - -void copy_row_major_to_row_major() -{ - // Copy row -> row - row_major0 = row_major1; -} - -void copy_columns() -{ - // Copy columns/rows. - col_major0[1] = row_major0[1]; - row_major0[1] = col_major0[1]; -} - -void copy_elements() -{ - // Copy individual elements. - col_major0[0][1] = row_major0[0][1]; - row_major0[0][1] = col_major0[0][1]; -} - -void main() -{ - load_store_to_variable_col_major(); - load_store_to_variable_row_major(); - copy_col_major_to_col_major(); - copy_col_major_to_row_major(); - copy_row_major_to_col_major(); - copy_row_major_to_row_major(); - copy_columns(); - copy_elements(); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-multiply-row-major.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-multiply-row-major.comp deleted file mode 100644 index 9b7b9fc37e..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-multiply-row-major.comp +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -layout(row_major, set = 0, binding = 0) buffer SSBO -{ - mat3 m0; - mat3 m1; - vec3 v0; - vec3 v1; -}; - -void main() -{ - v0 = (m0 * m1) * v1; - v0 = m0 * (m1 * v1); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-multiply-unpacked-col-major-2.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-multiply-unpacked-col-major-2.comp deleted file mode 100644 index cd77d242a6..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-multiply-unpacked-col-major-2.comp +++ /dev/null @@ -1,19 +0,0 @@ -#version 450 -#extension GL_EXT_scalar_block_layout : require -layout(local_size_x = 1) in; - -layout(scalar, set = 0, binding = 0) buffer SSBO -{ - mat3 m0; - mat3 m1; - vec3 v0; - vec3 v1; -}; - -void main() -{ - v0 = (m0 * m1) * v1; - v0 = m0 * (m1 * v1); - v0 = (v1 * m0) * m1; - v0 = v1 * (m0 * m1); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-multiply-unpacked-col-major.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-multiply-unpacked-col-major.comp deleted file mode 100644 index 847d2e8f60..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-multiply-unpacked-col-major.comp +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -layout(std140, set = 0, binding = 0) buffer SSBO -{ - mat2 m0; - mat2 m1; - vec2 v0; - vec2 v1; -}; - -void main() -{ - v0 = (m0 * m1) * v1; - v0 = m0 * (m1 * v1); - v0 = (v1 * m0) * m1; - v0 = v1 * (m0 * m1); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-multiply-unpacked-row-major-2.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-multiply-unpacked-row-major-2.comp deleted file mode 100644 index 60a3da0aa3..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-multiply-unpacked-row-major-2.comp +++ /dev/null @@ -1,19 +0,0 @@ -#version 450 -#extension GL_EXT_scalar_block_layout : require -layout(local_size_x = 1) in; - -layout(scalar, row_major, set = 0, binding = 0) buffer SSBO -{ - mat3 m0; - mat3 m1; - vec3 v0; - vec3 v1; -}; - -void main() -{ - v0 = (m0 * m1) * v1; - v0 = m0 * (m1 * v1); - v0 = (v1 * m0) * m1; - v0 = v1 * (m0 * m1); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-multiply-unpacked-row-major.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-multiply-unpacked-row-major.comp deleted file mode 100644 index 5b71ae9bc7..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/matrix-multiply-unpacked-row-major.comp +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -layout(std140, row_major, set = 0, binding = 0) buffer SSBO -{ - mat2 m0; - mat2 m1; - vec2 v0; - vec2 v1; -}; - -void main() -{ - v0 = (m0 * m1) * v1; - v0 = m0 * (m1 * v1); - v0 = (v1 * m0) * m1; - v0 = v1 * (m0 * m1); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/member-padding.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/member-padding.comp deleted file mode 100644 index a413662f38..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/member-padding.comp +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -layout(std140, set = 0, binding = 0) buffer SSBO -{ - layout(offset = 16) float a; - layout(offset = 40) float b; -}; - -void main() -{ - a = 10.0; - b = 20.0; -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/std140-array-of-vectors.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/std140-array-of-vectors.comp deleted file mode 100644 index 260a49810a..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/std140-array-of-vectors.comp +++ /dev/null @@ -1,47 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -layout(std140, set = 0, binding = 0) buffer SSBO -{ - float v1[4]; - vec2 v2[4]; - vec3 v3[4]; - vec4 v4[4]; - - float v1_array_of_array[4][4]; - vec2 v2_array_of_array[4][4]; - vec3 v3_array_of_array[4][4]; - vec4 v4_array_of_array[4][4]; - - float v_unsized[]; -}; - -void main() -{ - float loaded1 = v1[1]; - v1[2] = loaded1; - - vec2 loaded2 = v2[1]; - v2[2] = loaded2; - - vec3 loaded3 = v3[1]; - v3[2] = loaded3; - - vec4 loaded4 = v4[1]; - v4[2] = loaded4; - - loaded1 = v1_array_of_array[1][2]; - v1_array_of_array[2][3] = loaded1; - - loaded2 = v2_array_of_array[1][2]; - v2_array_of_array[2][3] = loaded2; - - loaded3 = v3_array_of_array[1][2]; - v3_array_of_array[2][3] = loaded3; - - loaded4 = v4_array_of_array[1][2]; - v4_array_of_array[2][3] = loaded4; - - loaded1 = v_unsized[1]; - v_unsized[2] = loaded1; -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/struct-alignment.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/struct-alignment.comp deleted file mode 100644 index f9f58b7327..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/struct-alignment.comp +++ /dev/null @@ -1,22 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -struct Foo -{ - vec3 a; // <- This one should become packed_float3, and the MSL alignment of the struct is now 4. - float b; -}; - -layout(std140, set = 0, binding = 0) buffer SSBO -{ - vec2 a; - float b; - // <- We expect 4 bytes of padding here since MSL alignment of Foo must be lowered to 4. - Foo foo; -}; - -void main() -{ - a.x = 10.0; - b = 20.0; -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/struct-packing-array-of-scalar.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/struct-packing-array-of-scalar.comp deleted file mode 100644 index 08742d5bba..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/struct-packing-array-of-scalar.comp +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 -#extension GL_EXT_scalar_block_layout : require -layout(local_size_x = 1) in; - -struct Foo -{ - vec3 a; -}; - -layout(scalar, set = 0, binding = 0) buffer SSBOScalar -{ - Foo v[]; -} buffer_scalar; - -void main() -{ - buffer_scalar.v[1].a.y = 1.0; -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/struct-packing-recursive.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/struct-packing-recursive.comp deleted file mode 100644 index c3281b9ce0..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/struct-packing-recursive.comp +++ /dev/null @@ -1,29 +0,0 @@ -#version 450 -#extension GL_EXT_scalar_block_layout : require -layout(local_size_x = 1) in; - -struct Foo -{ - vec4 a; -}; - -struct Bar -{ - Foo a; -}; - -struct Baz -{ - Bar a; -}; - -layout(scalar, set = 0, binding = 0) buffer SSBOScalar -{ - float v; - Baz baz; -} buffer_scalar; - -void main() -{ - buffer_scalar.baz.a.a.a.a.x = 10.0; -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/struct-packing.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/struct-packing.comp deleted file mode 100644 index 69a80382e4..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/struct-packing.comp +++ /dev/null @@ -1,27 +0,0 @@ -#version 450 -#extension GL_EXT_scalar_block_layout : require -layout(local_size_x = 1) in; - -// Foo will be marked packed_float3 because offset of bar is just 12 bytes after foo. -struct Foo -{ - vec3 a; -}; - -// Bar will be marked as packed due to alignment of the struct itself cannot work without packed. -struct Bar -{ - vec3 a; -}; - -layout(scalar, set = 0, binding = 0) buffer SSBOScalar -{ - Foo foo; - Bar bar; -} buffer_scalar; - -void main() -{ - buffer_scalar.foo.a.x = 10.0; - buffer_scalar.bar.a.x = 20.0; -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/struct-size-padding-array-of-array.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/struct-size-padding-array-of-array.comp deleted file mode 100644 index ef1ba65cf4..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/struct-size-padding-array-of-array.comp +++ /dev/null @@ -1,45 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -struct A -{ - float v; -}; - -struct B -{ - vec2 v; -}; - -struct C -{ - vec3 v; -}; - -struct D -{ - vec4 v; -}; - -struct E -{ - vec4 a; - vec2 b; -}; - -layout(std140, set = 0, binding = 0) buffer SSBO -{ - A a[2][4]; - B b[2][4]; - C c[2][4]; - D d[2][4]; - mat2 e[2][4]; - E f[]; -}; - -void main() -{ - f[0].a = vec4(2.0); - mat2 tmp = e[0][1]; - e[1][2] = tmp; -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/packing/struct-size-padding.comp b/third_party/spirv-cross/shaders-msl-no-opt/packing/struct-size-padding.comp deleted file mode 100644 index ad65415baf..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/packing/struct-size-padding.comp +++ /dev/null @@ -1,45 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -struct A -{ - float v; -}; - -struct B -{ - vec2 v; -}; - -struct C -{ - vec3 v; -}; - -struct D -{ - vec4 v; -}; - -struct E -{ - vec4 a; - vec2 b; -}; - -layout(std140, set = 0, binding = 0) buffer SSBO -{ - A a[4]; - B b[4]; - C c[4]; - D d[4]; - mat2 e[4]; - E f[]; -}; - -void main() -{ - f[0].a = vec4(2.0); - mat2 tmp = e[1]; - e[2] = tmp; -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/tesc/copy-tess-level.tesc b/third_party/spirv-cross/shaders-msl-no-opt/tesc/copy-tess-level.tesc deleted file mode 100644 index 7510ff8f67..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/tesc/copy-tess-level.tesc +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 -layout(vertices = 1) out; - -void main() -{ - gl_TessLevelInner = float[](1.0, 2.0); - gl_TessLevelOuter = float[](1.0, 2.0, 3.0, 4.0); - - float inner[2] = gl_TessLevelInner; - float outer[4] = gl_TessLevelOuter; - gl_out[gl_InvocationID].gl_Position = vec4(1.0); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/tesc/passthrough-clip-cull.multi-patch.tesc b/third_party/spirv-cross/shaders-msl-no-opt/tesc/passthrough-clip-cull.multi-patch.tesc deleted file mode 100644 index 16b60e495a..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/tesc/passthrough-clip-cull.multi-patch.tesc +++ /dev/null @@ -1,22 +0,0 @@ -#version 450 - -layout(vertices = 4) out; - -in gl_PerVertex -{ - float gl_ClipDistance[2]; - float gl_CullDistance[1]; -} gl_in[]; - -out gl_PerVertex -{ - float gl_ClipDistance[2]; - float gl_CullDistance[1]; -} gl_out[]; - -void main() -{ - gl_out[gl_InvocationID].gl_ClipDistance[0] = gl_in[gl_InvocationID].gl_ClipDistance[0]; - gl_out[gl_InvocationID].gl_ClipDistance[1] = gl_in[gl_InvocationID].gl_ClipDistance[1]; - gl_out[gl_InvocationID].gl_CullDistance[0] = gl_in[gl_InvocationID].gl_CullDistance[0]; -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/tesc/tess-level-read-write-in-function-quad.tesc b/third_party/spirv-cross/shaders-msl-no-opt/tesc/tess-level-read-write-in-function-quad.tesc deleted file mode 100644 index 4ccfa28267..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/tesc/tess-level-read-write-in-function-quad.tesc +++ /dev/null @@ -1,24 +0,0 @@ -#version 450 -layout(vertices = 1) out; - -float load_tess_level_in_func() -{ - return gl_TessLevelInner[0] + gl_TessLevelOuter[1]; -} - -void store_tess_level_in_func() -{ - gl_TessLevelInner[0] = 1.0; - gl_TessLevelInner[1] = 2.0; - gl_TessLevelOuter[0] = 3.0; - gl_TessLevelOuter[1] = 4.0; - gl_TessLevelOuter[2] = 5.0; - gl_TessLevelOuter[3] = 6.0; -} - -void main() -{ - store_tess_level_in_func(); - float v = load_tess_level_in_func(); - gl_out[gl_InvocationID].gl_Position = vec4(v); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/tese/builtin-input-automatic-attribute-assignment.tese b/third_party/spirv-cross/shaders-msl-no-opt/tese/builtin-input-automatic-attribute-assignment.tese deleted file mode 100644 index 1d8a50062e..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/tese/builtin-input-automatic-attribute-assignment.tese +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 -layout(quads) in; - -layout(location = 0) patch in vec4 FragColor; -layout(location = 2) in vec4 FragColors[]; - -void main() -{ - gl_Position = vec4(1.0) + FragColor + FragColors[0] + FragColors[1] + gl_TessLevelInner[0] + gl_TessLevelOuter[gl_PrimitiveID & 1] + gl_in[0].gl_Position; -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/tese/load-clip-cull.msl2.tese b/third_party/spirv-cross/shaders-msl-no-opt/tese/load-clip-cull.msl2.tese deleted file mode 100644 index e86619e1a0..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/tese/load-clip-cull.msl2.tese +++ /dev/null @@ -1,19 +0,0 @@ -#version 450 -layout(quads) in; - -in gl_PerVertex -{ - float gl_ClipDistance[2]; - float gl_CullDistance[3]; - vec4 gl_Position; -} gl_in[]; - -void main() -{ - gl_Position.x = gl_in[0].gl_ClipDistance[0]; - gl_Position.y = gl_in[1].gl_CullDistance[0]; - gl_Position.z = gl_in[0].gl_ClipDistance[1]; - gl_Position.w = gl_in[1].gl_CullDistance[1]; - gl_Position += gl_in[0].gl_Position; - gl_Position += gl_in[1].gl_Position; -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/vert/cull-distance.for-tess.vert b/third_party/spirv-cross/shaders-msl-no-opt/vert/cull-distance.for-tess.vert deleted file mode 100644 index 8df181cdb3..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/vert/cull-distance.for-tess.vert +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 - -out float gl_CullDistance[2]; - -void main() -{ - gl_CullDistance[0] = 1.0; - gl_CullDistance[1] = 3.0; - gl_Position = vec4(1.0); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/vert/functions_nested.vert b/third_party/spirv-cross/shaders-msl-no-opt/vert/functions_nested.vert deleted file mode 100644 index 2eec5ac551..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/vert/functions_nested.vert +++ /dev/null @@ -1,132 +0,0 @@ -#version 450 -#extension GL_ARB_separate_shader_objects : enable - -layout(std140, set = 0, binding = 0) uniform VertexBuffer -{ - mat4 scale_offset_mat; - uint vertex_base_index; - ivec4 input_attributes[16]; -}; -layout(set=0, binding=3) uniform usamplerBuffer buff_in_1; -layout(set=0, binding=4) uniform usamplerBuffer buff_in_2; - -layout(location=10) out vec4 back_color; -layout(location=0) out vec4 tc0; - -layout(std140, set=0, binding = 1) uniform VertexConstantsBuffer -{ - vec4 vc[16]; -}; - -struct attr_desc -{ - int type; - int attribute_size; - int starting_offset; - int stride; - int swap_bytes; - int is_volatile; -}; - -uint get_bits(uvec4 v, int swap) -{ - if (swap != 0) return (v.w | v.z << 8 | v.y << 16 | v.x << 24); - return (v.x | v.y << 8 | v.z << 16 | v.w << 24); -} - -vec4 fetch_attr(attr_desc desc, int vertex_id, usamplerBuffer input_stream) -{ - vec4 result = vec4(0.0f, 0.0f, 0.0f, 1.0f); - uvec4 tmp; - uint bits; - bool reverse_order = false; - - int first_byte = (vertex_id * desc.stride) + desc.starting_offset; - for (int n = 0; n < 4; n++) - { - if (n == desc.attribute_size) break; - - switch (desc.type) - { - case 0: - //signed normalized 16-bit - tmp.x = texelFetch(input_stream, first_byte++).x; - tmp.y = texelFetch(input_stream, first_byte++).x; - result[n] = get_bits(tmp, desc.swap_bytes); - break; - case 1: - //float - tmp.x = texelFetch(input_stream, first_byte++).x; - tmp.y = texelFetch(input_stream, first_byte++).x; - tmp.z = texelFetch(input_stream, first_byte++).x; - tmp.w = texelFetch(input_stream, first_byte++).x; - result[n] = uintBitsToFloat(get_bits(tmp, desc.swap_bytes)); - break; - case 2: - //unsigned byte - result[n] = texelFetch(input_stream, first_byte++).x; - reverse_order = (desc.swap_bytes != 0); - break; - } - } - - return (reverse_order)? result.wzyx: result; -} - -attr_desc fetch_desc(int location) -{ - attr_desc result; - int attribute_flags = input_attributes[location].w; - result.type = input_attributes[location].x; - result.attribute_size = input_attributes[location].y; - result.starting_offset = input_attributes[location].z; - result.stride = attribute_flags & 0xFF; - result.swap_bytes = (attribute_flags >> 8) & 0x1; - result.is_volatile = (attribute_flags >> 9) & 0x1; - return result; -} - -vec4 read_location(int location) -{ - attr_desc desc = fetch_desc(location); - - int vertex_id = gl_VertexIndex - int(vertex_base_index); - if (desc.is_volatile != 0) - return fetch_attr(desc, vertex_id, buff_in_2); - else - return fetch_attr(desc, vertex_id, buff_in_1); -} - -void vs_adjust(inout vec4 dst_reg0, inout vec4 dst_reg1, inout vec4 dst_reg7) -{ - vec4 tmp0; - vec4 tmp1; - vec4 in_diff_color= read_location(3); - vec4 in_pos= read_location(0); - vec4 in_tc0= read_location(8); - dst_reg1 = (in_diff_color * vc[13]); - tmp0.x = vec4(dot(vec4(in_pos.xyzx.xyz, 1.0), vc[4])).x; - tmp0.y = vec4(dot(vec4(in_pos.xyzx.xyz, 1.0), vc[5])).y; - tmp0.z = vec4(dot(vec4(in_pos.xyzx.xyz, 1.0), vc[6])).z; - tmp1.xy = in_tc0.xyxx.xy; - tmp1.z = vc[15].xxxx.z; - dst_reg7.y = vec4(dot(vec4(tmp1.xyzx.xyz, 1.0), vc[8])).y; - dst_reg7.x = vec4(dot(vec4(tmp1.xyzx.xyz, 1.0), vc[7])).x; - dst_reg0.y = vec4(dot(vec4(tmp0.xyzx.xyz, 1.0), vc[1])).y; - dst_reg0.x = vec4(dot(vec4(tmp0.xyzx.xyz, 1.0), vc[0])).x; -} - -void main () -{ - vec4 dst_reg0= vec4(0.0f, 0.0f, 0.0f, 1.0f); - vec4 dst_reg1= vec4(0.0, 0.0, 0.0, 0.0); - vec4 dst_reg7= vec4(0.0, 0.0, 0.0, 0.0); - - vs_adjust(dst_reg0, dst_reg1, dst_reg7); - - gl_Position = dst_reg0; - back_color = dst_reg1; - tc0 = dst_reg7; - gl_Position = gl_Position * scale_offset_mat; -} - diff --git a/third_party/spirv-cross/shaders-msl-no-opt/vert/layer.msl11.invalid.vert b/third_party/spirv-cross/shaders-msl-no-opt/vert/layer.msl11.invalid.vert deleted file mode 100644 index 73b918c80e..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/vert/layer.msl11.invalid.vert +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 -#extension GL_ARB_shader_viewport_layer_array : require - -layout(location = 0) in vec4 coord; - -void main() -{ - gl_Position = coord; - gl_Layer = int(coord.z); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/vert/pass-array-by-value.force-native-array.vert b/third_party/spirv-cross/shaders-msl-no-opt/vert/pass-array-by-value.force-native-array.vert deleted file mode 100644 index 2c142a7810..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/vert/pass-array-by-value.force-native-array.vert +++ /dev/null @@ -1,26 +0,0 @@ -#version 310 es - -layout(location = 0) in int Index1; -layout(location = 1) in int Index2; - -vec4 consume_constant_arrays2(const vec4 positions[4], const vec4 positions2[4]) -{ - return positions[Index1] + positions2[Index2]; -} - -vec4 consume_constant_arrays(const vec4 positions[4], const vec4 positions2[4]) -{ - return consume_constant_arrays2(positions, positions2); -} - -const vec4 LUT1[] = vec4[](vec4(0.0), vec4(1.0), vec4(2.0), vec4(3.0)); - -void main() -{ - vec4 LUT2[4]; - LUT2[0] = vec4(10.0); - LUT2[1] = vec4(11.0); - LUT2[2] = vec4(12.0); - LUT2[3] = vec4(13.0); - gl_Position = consume_constant_arrays(LUT1, LUT2); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/vert/pass-array-by-value.vert b/third_party/spirv-cross/shaders-msl-no-opt/vert/pass-array-by-value.vert deleted file mode 100644 index 2c142a7810..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/vert/pass-array-by-value.vert +++ /dev/null @@ -1,26 +0,0 @@ -#version 310 es - -layout(location = 0) in int Index1; -layout(location = 1) in int Index2; - -vec4 consume_constant_arrays2(const vec4 positions[4], const vec4 positions2[4]) -{ - return positions[Index1] + positions2[Index2]; -} - -vec4 consume_constant_arrays(const vec4 positions[4], const vec4 positions2[4]) -{ - return consume_constant_arrays2(positions, positions2); -} - -const vec4 LUT1[] = vec4[](vec4(0.0), vec4(1.0), vec4(2.0), vec4(3.0)); - -void main() -{ - vec4 LUT2[4]; - LUT2[0] = vec4(10.0); - LUT2[1] = vec4(11.0); - LUT2[2] = vec4(12.0); - LUT2[3] = vec4(13.0); - gl_Position = consume_constant_arrays(LUT1, LUT2); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/vert/uninitialized-vertex-output.vert b/third_party/spirv-cross/shaders-msl-no-opt/vert/uninitialized-vertex-output.vert deleted file mode 100644 index 54c7afd07a..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/vert/uninitialized-vertex-output.vert +++ /dev/null @@ -1,8 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 Pos; - -void main() -{ - gl_Position = vec4(1.0); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/vert/unused-subgroup-builtin.msl22.vert b/third_party/spirv-cross/shaders-msl-no-opt/vert/unused-subgroup-builtin.msl22.vert deleted file mode 100644 index 4ec228df29..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/vert/unused-subgroup-builtin.msl22.vert +++ /dev/null @@ -1,7 +0,0 @@ -#version 450 -#extension GL_KHR_shader_subgroup_ballot : require - -void main() -{ - gl_SubgroupEqMask; -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/vert/viewport-index.msl2.invalid.vert b/third_party/spirv-cross/shaders-msl-no-opt/vert/viewport-index.msl2.invalid.vert deleted file mode 100644 index c05c104848..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/vert/viewport-index.msl2.invalid.vert +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 -#extension GL_ARB_shader_viewport_layer_array : require - -layout(location = 0) in vec4 coord; - -void main() -{ - gl_Position = coord; - gl_ViewportIndex = int(coord.z); -} diff --git a/third_party/spirv-cross/shaders-msl-no-opt/vulkan/frag/texture-access-function.swizzle.vk.frag b/third_party/spirv-cross/shaders-msl-no-opt/vulkan/frag/texture-access-function.swizzle.vk.frag deleted file mode 100644 index 91f0866551..0000000000 --- a/third_party/spirv-cross/shaders-msl-no-opt/vulkan/frag/texture-access-function.swizzle.vk.frag +++ /dev/null @@ -1,90 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler1D tex1d; -layout(binding = 1) uniform texture2D tex2d; -layout(binding = 2) uniform sampler3D tex3d; -layout(binding = 3) uniform textureCube texCube; -layout(binding = 4) uniform sampler2DArray tex2dArray; -layout(binding = 5) uniform samplerCubeArray texCubeArray; -layout(binding = 6) uniform samplerBuffer texBuffer; - -layout(binding = 7) uniform sampler2DShadow depth2d; -layout(binding = 8) uniform samplerCubeShadow depthCube; -layout(binding = 9) uniform texture2DArray depth2dArray; -layout(binding = 10) uniform samplerCubeArrayShadow depthCubeArray; - -layout(binding = 11) uniform sampler defaultSampler; -layout(binding = 12) uniform samplerShadow shadowSampler; - -layout(location = 0) out vec4 fragColor; - -vec4 do_samples(sampler1D t1, texture2D t2, sampler3D t3, textureCube tc, sampler2DArray t2a, samplerCubeArray tca, samplerBuffer tb, sampler2DShadow d2, samplerCubeShadow dc, texture2DArray d2a, samplerCubeArrayShadow dca) -{ - // OpImageSampleImplicitLod - vec4 c = texture(t1, 0.0); - c = texture(sampler2D(t2, defaultSampler), vec2(0.0, 0.0)); - c = texture(t3, vec3(0.0, 0.0, 0.0)); - c = texture(samplerCube(tc, defaultSampler), vec3(0.0, 0.0, 0.0)); - c = texture(t2a, vec3(0.0, 0.0, 0.0)); - c = texture(tca, vec4(0.0, 0.0, 0.0, 0.0)); - - // OpImageSampleDrefImplicitLod - c.r = texture(d2, vec3(0.0, 0.0, 1.0)); - c.r = texture(dc, vec4(0.0, 0.0, 0.0, 1.0)); - c.r = texture(sampler2DArrayShadow(d2a, shadowSampler), vec4(0.0, 0.0, 0.0, 1.0)); - c.r = texture(dca, vec4(0.0, 0.0, 0.0, 0.0), 1.0); - - // OpImageSampleProjImplicitLod - c = textureProj(t1, vec2(0.0, 1.0)); - c = textureProj(sampler2D(t2, defaultSampler), vec3(0.0, 0.0, 1.0)); - c = textureProj(t3, vec4(0.0, 0.0, 0.0, 1.0)); - - // OpImageSampleProjDrefImplicitLod - c.r = textureProj(d2, vec4(0.0, 0.0, 1.0, 1.0)); - - // OpImageSampleExplicitLod - c = textureLod(t1, 0.0, 0.0); - c = textureLod(sampler2D(t2, defaultSampler), vec2(0.0, 0.0), 0.0); - c = textureLod(t3, vec3(0.0, 0.0, 0.0), 0.0); - c = textureLod(samplerCube(tc, defaultSampler), vec3(0.0, 0.0, 0.0), 0.0); - c = textureLod(t2a, vec3(0.0, 0.0, 0.0), 0.0); - c = textureLod(tca, vec4(0.0, 0.0, 0.0, 0.0), 0.0); - - // OpImageSampleDrefExplicitLod - c.r = textureLod(d2, vec3(0.0, 0.0, 1.0), 0.0); - - // OpImageSampleProjExplicitLod - c = textureProjLod(t1, vec2(0.0, 1.0), 0.0); - c = textureProjLod(sampler2D(t2, defaultSampler), vec3(0.0, 0.0, 1.0), 0.0); - c = textureProjLod(t3, vec4(0.0, 0.0, 0.0, 1.0), 0.0); - - // OpImageSampleProjDrefExplicitLod - c.r = textureProjLod(d2, vec4(0.0, 0.0, 1.0, 1.0), 0.0); - - // OpImageFetch - c = texelFetch(t1, 0, 0); - c = texelFetch(sampler2D(t2, defaultSampler), ivec2(0, 0), 0); - c = texelFetch(t3, ivec3(0, 0, 0), 0); - c = texelFetch(t2a, ivec3(0, 0, 0), 0); - - // Show that this transformation doesn't apply to Buffer images. - c = texelFetch(tb, 0); - - // OpImageGather - c = textureGather(sampler2D(t2, defaultSampler), vec2(0.0, 0.0), 0); - c = textureGather(samplerCube(tc, defaultSampler), vec3(0.0, 0.0, 0.0), 1); - c = textureGather(t2a, vec3(0.0, 0.0, 0.0), 2); - c = textureGather(tca, vec4(0.0, 0.0, 0.0, 0.0), 3); - - // OpImageDrefGather - c = textureGather(d2, vec2(0.0, 0.0), 1.0); - c = textureGather(dc, vec3(0.0, 0.0, 0.0), 1.0); - c = textureGather(sampler2DArrayShadow(d2a, shadowSampler), vec3(0.0, 0.0, 0.0), 1.0); - c = textureGather(dca, vec4(0.0, 0.0, 0.0, 0.0), 1.0); - return c; -} - -void main() -{ - fragColor = do_samples(tex1d, tex2d, tex3d, texCube, tex2dArray, texCubeArray, texBuffer, depth2d, depthCube, depth2dArray, depthCubeArray); -} diff --git a/third_party/spirv-cross/shaders-msl/amd/shader_trinary_minmax.msl21.comp b/third_party/spirv-cross/shaders-msl/amd/shader_trinary_minmax.msl21.comp deleted file mode 100644 index f836146a17..0000000000 --- a/third_party/spirv-cross/shaders-msl/amd/shader_trinary_minmax.msl21.comp +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 -#extension GL_AMD_shader_trinary_minmax : require - -layout (local_size_x = 64) in; - -void main () -{ - int t11 = min3(0, 3, 2); - int t12 = max3(0, 3, 2); - int t13 = mid3(0, 3, 2); -} diff --git a/third_party/spirv-cross/shaders-msl/asm/comp/atomic-decrement.asm.comp b/third_party/spirv-cross/shaders-msl/asm/comp/atomic-decrement.asm.comp deleted file mode 100644 index a87b931880..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/comp/atomic-decrement.asm.comp +++ /dev/null @@ -1,71 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Wine VKD3D Shader Compiler; 0 -; Bound: 43 -; Schema: 0 - OpCapability Shader - OpCapability SampledBuffer - OpCapability ImageBuffer - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %3 "main" %15 - OpExecutionMode %3 LocalSize 4 1 1 - OpName %3 "main" - OpName %8 "u0" - OpName %9 "u0_counters" - OpMemberName %9 0 "c" - OpName %11 "u0_counter" - OpName %15 "vThreadID" - OpName %19 "r0" - OpDecorate %8 DescriptorSet 0 - OpDecorate %8 Binding 0 - OpMemberDecorate %9 0 Offset 0 - OpDecorate %9 BufferBlock - OpDecorate %11 DescriptorSet 1 - OpDecorate %11 Binding 0 - OpDecorate %15 BuiltIn GlobalInvocationId - %1 = OpTypeVoid - %2 = OpTypeFunction %1 - %5 = OpTypeInt 32 0 - %6 = OpTypeImage %5 Buffer 0 0 0 2 R32ui - %7 = OpTypePointer UniformConstant %6 - %8 = OpVariable %7 UniformConstant - %9 = OpTypeStruct %5 - %10 = OpTypePointer Uniform %9 - %11 = OpVariable %10 Uniform - %12 = OpTypeInt 32 1 - %13 = OpTypeVector %12 3 - %14 = OpTypePointer Input %13 - %15 = OpVariable %14 Input - %16 = OpTypeFloat 32 - %17 = OpTypeVector %16 4 - %18 = OpTypePointer Function %17 - %20 = OpTypePointer Uniform %5 - %21 = OpConstant %5 0 - %23 = OpConstant %5 1 - %26 = OpTypePointer Function %16 - %33 = OpConstant %12 0 - %34 = OpConstant %5 2 - %37 = OpTypePointer Input %12 - %41 = OpTypeVector %5 4 - %3 = OpFunction %1 None %2 - %4 = OpLabel - %19 = OpVariable %18 Function - %22 = OpAccessChain %20 %11 %21 - %24 = OpAtomicIDecrement %5 %22 %23 %21 - %25 = OpBitcast %16 %24 - %27 = OpInBoundsAccessChain %26 %19 %21 - OpStore %27 %25 - %28 = OpLoad %6 %8 - %29 = OpInBoundsAccessChain %26 %19 %21 - %30 = OpLoad %16 %29 - %31 = OpBitcast %12 %30 - %32 = OpIMul %5 %31 %23 - %35 = OpShiftRightLogical %5 %33 %34 - %36 = OpIAdd %5 %32 %35 - %38 = OpInBoundsAccessChain %37 %15 %21 - %39 = OpLoad %12 %38 - %40 = OpBitcast %5 %39 - %42 = OpCompositeConstruct %41 %40 %40 %40 %40 - OpImageWrite %28 %36 %42 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/comp/atomic-increment.asm.comp b/third_party/spirv-cross/shaders-msl/asm/comp/atomic-increment.asm.comp deleted file mode 100644 index 3acb7115f5..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/comp/atomic-increment.asm.comp +++ /dev/null @@ -1,71 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Wine VKD3D Shader Compiler; 0 -; Bound: 43 -; Schema: 0 - OpCapability Shader - OpCapability SampledBuffer - OpCapability ImageBuffer - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %3 "main" %15 - OpExecutionMode %3 LocalSize 4 1 1 - OpName %3 "main" - OpName %8 "u0" - OpName %9 "u0_counters" - OpMemberName %9 0 "c" - OpName %11 "u0_counter" - OpName %15 "vThreadID" - OpName %19 "r0" - OpDecorate %8 DescriptorSet 0 - OpDecorate %8 Binding 0 - OpMemberDecorate %9 0 Offset 0 - OpDecorate %9 BufferBlock - OpDecorate %11 DescriptorSet 1 - OpDecorate %11 Binding 0 - OpDecorate %15 BuiltIn GlobalInvocationId - %1 = OpTypeVoid - %2 = OpTypeFunction %1 - %5 = OpTypeInt 32 0 - %6 = OpTypeImage %5 Buffer 0 0 0 2 R32ui - %7 = OpTypePointer UniformConstant %6 - %8 = OpVariable %7 UniformConstant - %9 = OpTypeStruct %5 - %10 = OpTypePointer Uniform %9 - %11 = OpVariable %10 Uniform - %12 = OpTypeInt 32 1 - %13 = OpTypeVector %12 3 - %14 = OpTypePointer Input %13 - %15 = OpVariable %14 Input - %16 = OpTypeFloat 32 - %17 = OpTypeVector %16 4 - %18 = OpTypePointer Function %17 - %20 = OpTypePointer Uniform %5 - %21 = OpConstant %5 0 - %23 = OpConstant %5 1 - %26 = OpTypePointer Function %16 - %33 = OpConstant %12 0 - %34 = OpConstant %5 2 - %37 = OpTypePointer Input %12 - %41 = OpTypeVector %5 4 - %3 = OpFunction %1 None %2 - %4 = OpLabel - %19 = OpVariable %18 Function - %22 = OpAccessChain %20 %11 %21 - %24 = OpAtomicIIncrement %5 %22 %23 %21 - %25 = OpBitcast %16 %24 - %27 = OpInBoundsAccessChain %26 %19 %21 - OpStore %27 %25 - %28 = OpLoad %6 %8 - %29 = OpInBoundsAccessChain %26 %19 %21 - %30 = OpLoad %16 %29 - %31 = OpBitcast %12 %30 - %32 = OpIMul %5 %31 %23 - %35 = OpShiftRightLogical %5 %33 %34 - %36 = OpIAdd %5 %32 %35 - %38 = OpInBoundsAccessChain %37 %15 %21 - %39 = OpLoad %12 %38 - %40 = OpBitcast %5 %39 - %42 = OpCompositeConstruct %41 %40 %40 %40 %40 - OpImageWrite %28 %36 %42 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/comp/bitcast_iadd.asm.comp b/third_party/spirv-cross/shaders-msl/asm/comp/bitcast_iadd.asm.comp deleted file mode 100644 index 3b31ab2851..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/comp/bitcast_iadd.asm.comp +++ /dev/null @@ -1,79 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 30 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %func "main" - OpExecutionMode %func LocalSize 1 1 1 - OpSource ESSL 310 - OpSourceExtension "GL_GOOGLE_cpp_style_line_directive" - OpSourceExtension "GL_GOOGLE_include_directive" - OpMemberDecorate %input_struct 0 Offset 0 - OpMemberDecorate %input_struct 1 Offset 16 - OpMemberDecorate %output_struct 0 Offset 0 - OpMemberDecorate %output_struct 1 Offset 16 - OpDecorate %input_struct BufferBlock - OpDecorate %inputs DescriptorSet 0 - OpDecorate %inputs Binding 0 - OpDecorate %inputs Restrict - OpDecorate %output_struct BufferBlock - OpDecorate %outputs DescriptorSet 0 - OpDecorate %outputs Binding 1 - OpDecorate %outputs Restrict - - %void = OpTypeVoid - %main_func = OpTypeFunction %void - - %uint = OpTypeInt 32 0 - %uvec4 = OpTypeVector %uint 4 - - %int = OpTypeInt 32 1 - %ivec4 = OpTypeVector %int 4 - - %ivec4_ptr = OpTypePointer Uniform %ivec4 - %uvec4_ptr = OpTypePointer Uniform %uvec4 - - %zero = OpConstant %int 0 - %one = OpConstant %int 1 - - %input_struct = OpTypeStruct %ivec4 %uvec4 - %input_struct_ptr = OpTypePointer Uniform %input_struct - %inputs = OpVariable %input_struct_ptr Uniform - %output_struct = OpTypeStruct %uvec4 %ivec4 - %output_struct_ptr = OpTypePointer Uniform %output_struct - %outputs = OpVariable %output_struct_ptr Uniform - - %func = OpFunction %void None %main_func - %block = OpLabel - - %input1_ptr = OpAccessChain %ivec4_ptr %inputs %zero - %input0_ptr = OpAccessChain %uvec4_ptr %inputs %one - %input1 = OpLoad %ivec4 %input1_ptr - %input0 = OpLoad %uvec4 %input0_ptr - - %output_ptr_uvec4 = OpAccessChain %uvec4_ptr %outputs %zero - %output_ptr_ivec4 = OpAccessChain %ivec4_ptr %outputs %one - -; Test all variants of IAdd - %result_iadd_0 = OpIAdd %uvec4 %input0 %input1 - %result_iadd_1 = OpIAdd %uvec4 %input1 %input0 - %result_iadd_2 = OpIAdd %uvec4 %input0 %input0 - %result_iadd_3 = OpIAdd %uvec4 %input1 %input1 - %result_iadd_4 = OpIAdd %ivec4 %input0 %input0 - %result_iadd_5 = OpIAdd %ivec4 %input1 %input1 - %result_iadd_6 = OpIAdd %ivec4 %input0 %input1 - %result_iadd_7 = OpIAdd %ivec4 %input1 %input0 - OpStore %output_ptr_uvec4 %result_iadd_0 - OpStore %output_ptr_uvec4 %result_iadd_1 - OpStore %output_ptr_uvec4 %result_iadd_2 - OpStore %output_ptr_uvec4 %result_iadd_3 - OpStore %output_ptr_ivec4 %result_iadd_4 - OpStore %output_ptr_ivec4 %result_iadd_5 - OpStore %output_ptr_ivec4 %result_iadd_6 - OpStore %output_ptr_ivec4 %result_iadd_7 - - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/comp/bitcast_icmp.asm.comp b/third_party/spirv-cross/shaders-msl/asm/comp/bitcast_icmp.asm.comp deleted file mode 100644 index b7b4e0b2e1..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/comp/bitcast_icmp.asm.comp +++ /dev/null @@ -1,101 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 30 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %func "main" - OpExecutionMode %func LocalSize 1 1 1 - OpSource ESSL 310 - OpSourceExtension "GL_GOOGLE_cpp_style_line_directive" - OpSourceExtension "GL_GOOGLE_include_directive" - OpMemberDecorate %input_struct 0 Offset 0 - OpMemberDecorate %input_struct 1 Offset 16 - OpMemberDecorate %output_struct 0 Offset 0 - OpMemberDecorate %output_struct 1 Offset 16 - OpDecorate %input_struct BufferBlock - OpDecorate %inputs DescriptorSet 0 - OpDecorate %inputs Binding 0 - OpDecorate %inputs Restrict - OpDecorate %output_struct BufferBlock - OpDecorate %outputs DescriptorSet 0 - OpDecorate %outputs Binding 1 - OpDecorate %outputs Restrict - - %void = OpTypeVoid - %main_func = OpTypeFunction %void - - %bool = OpTypeBool - %bvec4 = OpTypeVector %bool 4 - - %uint = OpTypeInt 32 0 - %uvec4 = OpTypeVector %uint 4 - - %int = OpTypeInt 32 1 - %ivec4 = OpTypeVector %int 4 - - %ivec4_ptr = OpTypePointer Uniform %ivec4 - %uvec4_ptr = OpTypePointer Uniform %uvec4 - - %zero = OpConstant %int 0 - %one = OpConstant %int 1 - %uzero = OpConstant %uint 0 - %uone = OpConstant %uint 1 - %utrue = OpConstantComposite %uvec4 %uone %uone %uone %uone - %ufalse = OpConstantComposite %uvec4 %uzero %uzero %uzero %uzero - - %input_struct = OpTypeStruct %ivec4 %uvec4 - %input_struct_ptr = OpTypePointer Uniform %input_struct - %inputs = OpVariable %input_struct_ptr Uniform - %output_struct = OpTypeStruct %uvec4 %ivec4 - %output_struct_ptr = OpTypePointer Uniform %output_struct - %outputs = OpVariable %output_struct_ptr Uniform - - %func = OpFunction %void None %main_func - %block = OpLabel - - %input1_ptr = OpAccessChain %ivec4_ptr %inputs %zero - %input0_ptr = OpAccessChain %uvec4_ptr %inputs %one - %input1 = OpLoad %ivec4 %input1_ptr - %input0 = OpLoad %uvec4 %input0_ptr - - %output_ptr_uvec4 = OpAccessChain %uvec4_ptr %outputs %zero - - %result_slt = OpSLessThan %bvec4 %input0 %input1 - %result_sle = OpSLessThanEqual %bvec4 %input0 %input1 - %result_ult = OpULessThan %bvec4 %input0 %input1 - %result_ule = OpULessThanEqual %bvec4 %input0 %input1 - %result_sgt = OpSGreaterThan %bvec4 %input0 %input1 - %result_sge = OpSGreaterThanEqual %bvec4 %input0 %input1 - %result_ugt = OpUGreaterThan %bvec4 %input0 %input1 - %result_uge = OpUGreaterThanEqual %bvec4 %input0 %input1 - - %int_slt = OpSelect %uvec4 %result_slt %utrue %ufalse - OpStore %output_ptr_uvec4 %int_slt - - %int_sle = OpSelect %uvec4 %result_sle %utrue %ufalse - OpStore %output_ptr_uvec4 %int_sle - - %int_ult = OpSelect %uvec4 %result_ult %utrue %ufalse - OpStore %output_ptr_uvec4 %int_ult - - %int_ule = OpSelect %uvec4 %result_ule %utrue %ufalse - OpStore %output_ptr_uvec4 %int_ule - - %int_sgt = OpSelect %uvec4 %result_sgt %utrue %ufalse - OpStore %output_ptr_uvec4 %int_sgt - - %int_sge = OpSelect %uvec4 %result_sge %utrue %ufalse - OpStore %output_ptr_uvec4 %int_sge - - %int_ugt = OpSelect %uvec4 %result_ugt %utrue %ufalse - OpStore %output_ptr_uvec4 %int_ugt - - %int_uge = OpSelect %uvec4 %result_uge %utrue %ufalse - OpStore %output_ptr_uvec4 %int_uge - - - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/comp/bitcast_sar.asm.comp b/third_party/spirv-cross/shaders-msl/asm/comp/bitcast_sar.asm.comp deleted file mode 100644 index 64f19fc349..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/comp/bitcast_sar.asm.comp +++ /dev/null @@ -1,77 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 30 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %func "main" - OpExecutionMode %func LocalSize 1 1 1 - OpSource ESSL 310 - OpSourceExtension "GL_GOOGLE_cpp_style_line_directive" - OpSourceExtension "GL_GOOGLE_include_directive" - OpMemberDecorate %input_struct 0 Offset 0 - OpMemberDecorate %input_struct 1 Offset 16 - OpMemberDecorate %output_struct 0 Offset 0 - OpMemberDecorate %output_struct 1 Offset 16 - OpDecorate %input_struct BufferBlock - OpDecorate %inputs DescriptorSet 0 - OpDecorate %inputs Binding 0 - OpDecorate %output_struct BufferBlock - OpDecorate %outputs DescriptorSet 0 - OpDecorate %outputs Binding 1 - - %void = OpTypeVoid - %main_func = OpTypeFunction %void - - %uint = OpTypeInt 32 0 - %uvec4 = OpTypeVector %uint 4 - - %int = OpTypeInt 32 1 - %ivec4 = OpTypeVector %int 4 - - %ivec4_ptr = OpTypePointer Uniform %ivec4 - %uvec4_ptr = OpTypePointer Uniform %uvec4 - - %zero = OpConstant %int 0 - %one = OpConstant %int 1 - - %input_struct = OpTypeStruct %ivec4 %uvec4 - %input_struct_ptr = OpTypePointer Uniform %input_struct - %inputs = OpVariable %input_struct_ptr Uniform - %output_struct = OpTypeStruct %uvec4 %ivec4 - %output_struct_ptr = OpTypePointer Uniform %output_struct - %outputs = OpVariable %output_struct_ptr Uniform - - %func = OpFunction %void None %main_func - %block = OpLabel - - %input1_ptr = OpAccessChain %ivec4_ptr %inputs %zero - %input0_ptr = OpAccessChain %uvec4_ptr %inputs %one - %input1 = OpLoad %ivec4 %input1_ptr - %input0 = OpLoad %uvec4 %input0_ptr - - %output_ptr_uvec4 = OpAccessChain %uvec4_ptr %outputs %zero - %output_ptr_ivec4 = OpAccessChain %ivec4_ptr %outputs %one - -; Test all variants of ShiftRightArithmetic - %result_iadd_0 = OpShiftRightArithmetic %uvec4 %input0 %input1 - %result_iadd_1 = OpShiftRightArithmetic %uvec4 %input1 %input0 - %result_iadd_2 = OpShiftRightArithmetic %uvec4 %input0 %input0 - %result_iadd_3 = OpShiftRightArithmetic %uvec4 %input1 %input1 - %result_iadd_4 = OpShiftRightArithmetic %ivec4 %input0 %input0 - %result_iadd_5 = OpShiftRightArithmetic %ivec4 %input1 %input1 - %result_iadd_6 = OpShiftRightArithmetic %ivec4 %input0 %input1 - %result_iadd_7 = OpShiftRightArithmetic %ivec4 %input1 %input0 - OpStore %output_ptr_uvec4 %result_iadd_0 - OpStore %output_ptr_uvec4 %result_iadd_1 - OpStore %output_ptr_uvec4 %result_iadd_2 - OpStore %output_ptr_uvec4 %result_iadd_3 - OpStore %output_ptr_ivec4 %result_iadd_4 - OpStore %output_ptr_ivec4 %result_iadd_5 - OpStore %output_ptr_ivec4 %result_iadd_6 - OpStore %output_ptr_ivec4 %result_iadd_7 - - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/comp/bitcast_sdiv.asm.comp b/third_party/spirv-cross/shaders-msl/asm/comp/bitcast_sdiv.asm.comp deleted file mode 100644 index ab73ec83df..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/comp/bitcast_sdiv.asm.comp +++ /dev/null @@ -1,77 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 30 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %func "main" - OpExecutionMode %func LocalSize 1 1 1 - OpSource ESSL 310 - OpSourceExtension "GL_GOOGLE_cpp_style_line_directive" - OpSourceExtension "GL_GOOGLE_include_directive" - OpMemberDecorate %input_struct 0 Offset 0 - OpMemberDecorate %input_struct 1 Offset 16 - OpMemberDecorate %output_struct 0 Offset 0 - OpMemberDecorate %output_struct 1 Offset 16 - OpDecorate %input_struct BufferBlock - OpDecorate %inputs DescriptorSet 0 - OpDecorate %inputs Binding 0 - OpDecorate %output_struct BufferBlock - OpDecorate %outputs DescriptorSet 0 - OpDecorate %outputs Binding 1 - - %void = OpTypeVoid - %main_func = OpTypeFunction %void - - %uint = OpTypeInt 32 0 - %uvec4 = OpTypeVector %uint 4 - - %int = OpTypeInt 32 1 - %ivec4 = OpTypeVector %int 4 - - %ivec4_ptr = OpTypePointer Uniform %ivec4 - %uvec4_ptr = OpTypePointer Uniform %uvec4 - - %zero = OpConstant %int 0 - %one = OpConstant %int 1 - - %input_struct = OpTypeStruct %ivec4 %uvec4 - %input_struct_ptr = OpTypePointer Uniform %input_struct - %inputs = OpVariable %input_struct_ptr Uniform - %output_struct = OpTypeStruct %uvec4 %ivec4 - %output_struct_ptr = OpTypePointer Uniform %output_struct - %outputs = OpVariable %output_struct_ptr Uniform - - %func = OpFunction %void None %main_func - %block = OpLabel - - %input1_ptr = OpAccessChain %ivec4_ptr %inputs %zero - %input0_ptr = OpAccessChain %uvec4_ptr %inputs %one - %input1 = OpLoad %ivec4 %input1_ptr - %input0 = OpLoad %uvec4 %input0_ptr - - %output_ptr_uvec4 = OpAccessChain %uvec4_ptr %outputs %zero - %output_ptr_ivec4 = OpAccessChain %ivec4_ptr %outputs %one - -; Test all variants of SDiv - %result_iadd_0 = OpSDiv %uvec4 %input0 %input1 - %result_iadd_1 = OpSDiv %uvec4 %input1 %input0 - %result_iadd_2 = OpSDiv %uvec4 %input0 %input0 - %result_iadd_3 = OpSDiv %uvec4 %input1 %input1 - %result_iadd_4 = OpSDiv %ivec4 %input0 %input0 - %result_iadd_5 = OpSDiv %ivec4 %input1 %input1 - %result_iadd_6 = OpSDiv %ivec4 %input0 %input1 - %result_iadd_7 = OpSDiv %ivec4 %input1 %input0 - OpStore %output_ptr_uvec4 %result_iadd_0 - OpStore %output_ptr_uvec4 %result_iadd_1 - OpStore %output_ptr_uvec4 %result_iadd_2 - OpStore %output_ptr_uvec4 %result_iadd_3 - OpStore %output_ptr_ivec4 %result_iadd_4 - OpStore %output_ptr_ivec4 %result_iadd_5 - OpStore %output_ptr_ivec4 %result_iadd_6 - OpStore %output_ptr_ivec4 %result_iadd_7 - - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/comp/bitcast_slr.asm.comp b/third_party/spirv-cross/shaders-msl/asm/comp/bitcast_slr.asm.comp deleted file mode 100644 index 6741f5cb58..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/comp/bitcast_slr.asm.comp +++ /dev/null @@ -1,77 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 30 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %func "main" - OpExecutionMode %func LocalSize 1 1 1 - OpSource ESSL 310 - OpSourceExtension "GL_GOOGLE_cpp_style_line_directive" - OpSourceExtension "GL_GOOGLE_include_directive" - OpMemberDecorate %input_struct 0 Offset 0 - OpMemberDecorate %input_struct 1 Offset 16 - OpMemberDecorate %output_struct 0 Offset 0 - OpMemberDecorate %output_struct 1 Offset 16 - OpDecorate %input_struct BufferBlock - OpDecorate %inputs DescriptorSet 0 - OpDecorate %inputs Binding 0 - OpDecorate %output_struct BufferBlock - OpDecorate %outputs DescriptorSet 0 - OpDecorate %outputs Binding 1 - - %void = OpTypeVoid - %main_func = OpTypeFunction %void - - %uint = OpTypeInt 32 0 - %uvec4 = OpTypeVector %uint 4 - - %int = OpTypeInt 32 1 - %ivec4 = OpTypeVector %int 4 - - %ivec4_ptr = OpTypePointer Uniform %ivec4 - %uvec4_ptr = OpTypePointer Uniform %uvec4 - - %zero = OpConstant %int 0 - %one = OpConstant %int 1 - - %input_struct = OpTypeStruct %ivec4 %uvec4 - %input_struct_ptr = OpTypePointer Uniform %input_struct - %inputs = OpVariable %input_struct_ptr Uniform - %output_struct = OpTypeStruct %uvec4 %ivec4 - %output_struct_ptr = OpTypePointer Uniform %output_struct - %outputs = OpVariable %output_struct_ptr Uniform - - %func = OpFunction %void None %main_func - %block = OpLabel - - %input1_ptr = OpAccessChain %ivec4_ptr %inputs %zero - %input0_ptr = OpAccessChain %uvec4_ptr %inputs %one - %input1 = OpLoad %ivec4 %input1_ptr - %input0 = OpLoad %uvec4 %input0_ptr - - %output_ptr_uvec4 = OpAccessChain %uvec4_ptr %outputs %zero - %output_ptr_ivec4 = OpAccessChain %ivec4_ptr %outputs %one - -; Test all variants of ShiftRightLogical - %result_iadd_0 = OpShiftRightLogical %uvec4 %input0 %input1 - %result_iadd_1 = OpShiftRightLogical %uvec4 %input1 %input0 - %result_iadd_2 = OpShiftRightLogical %uvec4 %input0 %input0 - %result_iadd_3 = OpShiftRightLogical %uvec4 %input1 %input1 - %result_iadd_4 = OpShiftRightLogical %ivec4 %input0 %input0 - %result_iadd_5 = OpShiftRightLogical %ivec4 %input1 %input1 - %result_iadd_6 = OpShiftRightLogical %ivec4 %input0 %input1 - %result_iadd_7 = OpShiftRightLogical %ivec4 %input1 %input0 - OpStore %output_ptr_uvec4 %result_iadd_0 - OpStore %output_ptr_uvec4 %result_iadd_1 - OpStore %output_ptr_uvec4 %result_iadd_2 - OpStore %output_ptr_uvec4 %result_iadd_3 - OpStore %output_ptr_ivec4 %result_iadd_4 - OpStore %output_ptr_ivec4 %result_iadd_5 - OpStore %output_ptr_ivec4 %result_iadd_6 - OpStore %output_ptr_ivec4 %result_iadd_7 - - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/comp/block-name-alias-global.asm.comp b/third_party/spirv-cross/shaders-msl/asm/comp/block-name-alias-global.asm.comp deleted file mode 100644 index 85f6cc0414..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/comp/block-name-alias-global.asm.comp +++ /dev/null @@ -1,119 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 59 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %Foo "A" - OpMemberName %Foo 0 "a" - OpMemberName %Foo 1 "b" - OpName %A "A" - OpMemberName %A 0 "Data" - OpName %C1 "C1" - OpName %gl_GlobalInvocationID "gl_GlobalInvocationID" - OpName %Foo_0 "A" - OpMemberName %Foo_0 0 "a" - OpMemberName %Foo_0 1 "b" - OpName %A_0 "A" - OpMemberName %A_0 0 "Data" - OpName %C2 "C2" - OpName %B "B" - OpMemberName %B 0 "Data" - OpName %C3 "C3" - OpName %B_0 "B" - OpMemberName %B_0 0 "Data" - OpName %C4 "C4" - OpMemberDecorate %Foo 0 Offset 0 - OpMemberDecorate %Foo 1 Offset 4 - OpDecorate %_runtimearr_Foo ArrayStride 8 - OpMemberDecorate %A 0 Offset 0 - OpDecorate %A BufferBlock - OpDecorate %C1 DescriptorSet 0 - OpDecorate %C1 Binding 1 - OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId - OpMemberDecorate %Foo_0 0 Offset 0 - OpMemberDecorate %Foo_0 1 Offset 4 - OpDecorate %_arr_Foo_0_uint_1024 ArrayStride 16 - OpMemberDecorate %A_0 0 Offset 0 - OpDecorate %A_0 Block - OpDecorate %C2 DescriptorSet 0 - OpDecorate %C2 Binding 2 - OpDecorate %_runtimearr_Foo_0 ArrayStride 8 - OpMemberDecorate %B 0 Offset 0 - OpDecorate %B BufferBlock - OpDecorate %C3 DescriptorSet 0 - OpDecorate %C3 Binding 0 - OpDecorate %_arr_Foo_0_uint_1024_0 ArrayStride 16 - OpMemberDecorate %B_0 0 Offset 0 - OpDecorate %B_0 Block - OpDecorate %C4 DescriptorSet 0 - OpDecorate %C4 Binding 3 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %Foo = OpTypeStruct %int %int -%_runtimearr_Foo = OpTypeRuntimeArray %Foo - %A = OpTypeStruct %_runtimearr_Foo -%_ptr_Uniform_A = OpTypePointer Uniform %A - %C1 = OpVariable %_ptr_Uniform_A Uniform - %int_0 = OpConstant %int 0 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint - %Foo_0 = OpTypeStruct %int %int - %uint_1024 = OpConstant %uint 1024 -%_arr_Foo_0_uint_1024 = OpTypeArray %Foo_0 %uint_1024 - %A_0 = OpTypeStruct %_arr_Foo_0_uint_1024 -%_ptr_Uniform_A_0 = OpTypePointer Uniform %A_0 - %C2 = OpVariable %_ptr_Uniform_A_0 Uniform -%_ptr_Uniform_Foo_0 = OpTypePointer Uniform %Foo_0 -%_ptr_Uniform_Foo = OpTypePointer Uniform %Foo -%_ptr_Uniform_int = OpTypePointer Uniform %int - %int_1 = OpConstant %int 1 -%_runtimearr_Foo_0 = OpTypeRuntimeArray %Foo - %B = OpTypeStruct %_runtimearr_Foo_0 -%_ptr_Uniform_B = OpTypePointer Uniform %B - %C3 = OpVariable %_ptr_Uniform_B Uniform -%_arr_Foo_0_uint_1024_0 = OpTypeArray %Foo_0 %uint_1024 - %B_0 = OpTypeStruct %_arr_Foo_0_uint_1024_0 -%_ptr_Uniform_B_0 = OpTypePointer Uniform %B_0 - %C4 = OpVariable %_ptr_Uniform_B_0 Uniform - %main = OpFunction %void None %3 - %5 = OpLabel - %19 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %20 = OpLoad %uint %19 - %27 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %28 = OpLoad %uint %27 - %30 = OpAccessChain %_ptr_Uniform_Foo_0 %C2 %int_0 %28 - %31 = OpLoad %Foo_0 %30 - %33 = OpAccessChain %_ptr_Uniform_Foo %C1 %int_0 %20 - %34 = OpCompositeExtract %int %31 0 - %36 = OpAccessChain %_ptr_Uniform_int %33 %int_0 - OpStore %36 %34 - %37 = OpCompositeExtract %int %31 1 - %39 = OpAccessChain %_ptr_Uniform_int %33 %int_1 - OpStore %39 %37 - %44 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %45 = OpLoad %uint %44 - %50 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %51 = OpLoad %uint %50 - %52 = OpAccessChain %_ptr_Uniform_Foo_0 %C4 %int_0 %51 - %53 = OpLoad %Foo_0 %52 - %54 = OpAccessChain %_ptr_Uniform_Foo %C3 %int_0 %45 - %55 = OpCompositeExtract %int %53 0 - %56 = OpAccessChain %_ptr_Uniform_int %54 %int_0 - OpStore %56 %55 - %57 = OpCompositeExtract %int %53 1 - %58 = OpAccessChain %_ptr_Uniform_int %54 %int_1 - OpStore %58 %57 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/comp/buffer-write-relative-addr.asm.comp b/third_party/spirv-cross/shaders-msl/asm/comp/buffer-write-relative-addr.asm.comp deleted file mode 100644 index 400690b045..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/comp/buffer-write-relative-addr.asm.comp +++ /dev/null @@ -1,93 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Wine VKD3D Shader Compiler; 0 -; Bound: 59 -; Schema: 0 - OpCapability Shader - OpCapability UniformBufferArrayDynamicIndexing - OpCapability SampledBuffer - OpCapability ImageBuffer - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %vThreadIDInGroup - OpExecutionMode %main LocalSize 4 1 1 - OpName %main "main" - OpName %cb5_struct "cb5_struct" - OpName %cb0_5 "cb0_5" - OpName %u0 "u0" - OpName %vThreadIDInGroup "vThreadIDInGroup" - OpName %r0 "r0" - OpDecorate %_arr_v4float_uint_5 ArrayStride 16 - OpDecorate %cb5_struct Block - OpMemberDecorate %cb5_struct 0 Offset 0 - OpDecorate %cb0_5 DescriptorSet 0 - OpDecorate %cb0_5 Binding 1 - OpDecorate %u0 DescriptorSet 0 - OpDecorate %u0 Binding 0 - OpDecorate %u0 NonReadable - OpDecorate %vThreadIDInGroup BuiltIn LocalInvocationId - %void = OpTypeVoid - %2 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %uint = OpTypeInt 32 0 - %uint_5 = OpConstant %uint 5 -%_arr_v4float_uint_5 = OpTypeArray %v4float %uint_5 - %cb5_struct = OpTypeStruct %_arr_v4float_uint_5 -%_ptr_Uniform_cb5_struct = OpTypePointer Uniform %cb5_struct - %cb0_5 = OpVariable %_ptr_Uniform_cb5_struct Uniform - %13 = OpTypeImage %uint Buffer 0 0 0 2 R32ui -%_ptr_UniformConstant_13 = OpTypePointer UniformConstant %13 - %u0 = OpVariable %_ptr_UniformConstant_13 UniformConstant - %int = OpTypeInt 32 1 - %v3int = OpTypeVector %int 3 -%_ptr_Input_v3int = OpTypePointer Input %v3int -%vThreadIDInGroup = OpVariable %_ptr_Input_v3int Input -%_ptr_Function_v4float = OpTypePointer Function %v4float -%_ptr_Input_int = OpTypePointer Input %int - %uint_0 = OpConstant %uint 0 - %int_4 = OpConstant %int 4 -%_ptr_Function_float = OpTypePointer Function %float - %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float - %v4uint = OpTypeVector %uint 4 - %uint_3 = OpConstant %uint 3 - %main = OpFunction %void None %2 - %4 = OpLabel - %r0 = OpVariable %_ptr_Function_v4float Function - %24 = OpInBoundsAccessChain %_ptr_Input_int %vThreadIDInGroup %uint_0 - %25 = OpLoad %int %24 - %27 = OpShiftLeftLogical %int %25 %int_4 - %28 = OpBitcast %float %27 - %30 = OpInBoundsAccessChain %_ptr_Function_float %r0 %uint_0 - OpStore %30 %28 - %31 = OpInBoundsAccessChain %_ptr_Input_int %vThreadIDInGroup %uint_0 - %32 = OpLoad %int %31 - %33 = OpBitcast %float %32 - %35 = OpInBoundsAccessChain %_ptr_Function_float %r0 %uint_1 - OpStore %35 %33 - %36 = OpLoad %13 %u0 - %37 = OpInBoundsAccessChain %_ptr_Function_float %r0 %uint_0 - %38 = OpLoad %float %37 - %39 = OpBitcast %uint %38 - %41 = OpShiftRightLogical %uint %39 %uint_2 - %42 = OpInBoundsAccessChain %_ptr_Function_float %r0 %uint_1 - %43 = OpLoad %float %42 - %44 = OpBitcast %int %43 - %45 = OpIAdd %uint %44 %uint_1 - %47 = OpAccessChain %_ptr_Uniform_v4float %cb0_5 %uint_0 %45 - %48 = OpLoad %v4float %47 - %50 = OpBitcast %v4uint %48 - %51 = OpVectorShuffle %v4uint %50 %50 0 0 0 0 - OpImageWrite %36 %41 %51 - %52 = OpVectorShuffle %v4uint %50 %50 1 1 1 1 - %53 = OpIAdd %uint %41 %uint_1 - OpImageWrite %36 %53 %52 - %54 = OpVectorShuffle %v4uint %50 %50 2 2 2 2 - %55 = OpIAdd %uint %41 %uint_2 - OpImageWrite %36 %55 %54 - %56 = OpVectorShuffle %v4uint %50 %50 3 3 3 3 - %58 = OpIAdd %uint %41 %uint_3 - OpImageWrite %36 %58 %56 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/comp/buffer-write.asm.comp b/third_party/spirv-cross/shaders-msl/asm/comp/buffer-write.asm.comp deleted file mode 100644 index 697324ba6d..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/comp/buffer-write.asm.comp +++ /dev/null @@ -1,59 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 63 -; Schema: 0 - OpCapability Shader - OpCapability ImageBuffer - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %group_id %group_index - OpExecutionMode %main LocalSize 32 1 1 - OpSource HLSL 500 - OpName %main "main" - OpName %cb "cb" - OpMemberName %cb 0 "value" - OpName %_ "" - OpName %buffer "buffer" - OpName %group_id "group_id" - OpName %group_index "group_index" - OpMemberDecorate %cb 0 Offset 0 - OpDecorate %cb Block - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 7 - OpDecorate %buffer DescriptorSet 0 - OpDecorate %buffer Binding 0 - OpDecorate %group_id BuiltIn WorkgroupId - OpDecorate %group_index BuiltIn LocalInvocationIndex - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 - %uint_32 = OpConstant %uint 32 - %float = OpTypeFloat 32 - %cb = OpTypeStruct %float -%_ptr_Uniform_cb = OpTypePointer Uniform %cb - %_ = OpVariable %_ptr_Uniform_cb Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_Uniform_float = OpTypePointer Uniform %float - %34 = OpTypeImage %float Buffer 0 0 0 2 R32f -%_ptr_UniformConstant_34 = OpTypePointer UniformConstant %34 - %buffer = OpVariable %_ptr_UniformConstant_34 UniformConstant -%_ptr_Input_v3uint = OpTypePointer Input %v3uint - %group_id = OpVariable %_ptr_Input_v3uint Input -%_ptr_Input_uint = OpTypePointer Input %uint -%group_index = OpVariable %_ptr_Input_uint Input - %main = OpFunction %void None %3 - %5 = OpLabel - %43 = OpLoad %v3uint %group_id - %47 = OpLoad %uint %group_index - %56 = OpCompositeExtract %uint %43 0 - %57 = OpIMul %uint %uint_32 %56 - %59 = OpIAdd %uint %57 %47 - %60 = OpAccessChain %_ptr_Uniform_float %_ %int_0 - %61 = OpLoad %float %60 - %62 = OpLoad %34 %buffer - OpImageWrite %62 %59 %61 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/comp/global-parameter-name-alias.asm.comp b/third_party/spirv-cross/shaders-msl/asm/comp/global-parameter-name-alias.asm.comp deleted file mode 100644 index 78b1dc74e8..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/comp/global-parameter-name-alias.asm.comp +++ /dev/null @@ -1,102 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 61 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %id_1 - OpExecutionMode %main LocalSize 1 1 1 - OpSource HLSL 500 - OpName %main "main" - OpName %Load_u1_ "Load(u1;" - OpName %size "size" - OpName %_main_vu3_ "@main(vu3;" - OpName %id "id" - OpName %data "data" - OpName %byteAddrTemp "byteAddrTemp" - OpName %ssbo "ssbo" - OpMemberName %ssbo 0 "@data" - OpName %ssbo_0 "ssbo" - OpName %param "param" - OpName %id_0 "id" - OpName %id_1 "id" - OpName %param_0 "param" - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %ssbo 0 NonWritable - OpMemberDecorate %ssbo 0 Offset 0 - OpDecorate %ssbo BufferBlock - OpDecorate %ssbo_0 DescriptorSet 0 - OpDecorate %ssbo_0 Binding 1 - OpDecorate %id_1 BuiltIn GlobalInvocationId - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 -%_ptr_Function_uint = OpTypePointer Function %uint - %8 = OpTypeFunction %void %_ptr_Function_uint - %v3uint = OpTypeVector %uint 3 -%_ptr_Function_v3uint = OpTypePointer Function %v3uint - %14 = OpTypeFunction %void %_ptr_Function_v3uint - %v4uint = OpTypeVector %uint 4 -%_ptr_Function_v4uint = OpTypePointer Function %v4uint - %int = OpTypeInt 32 1 -%_ptr_Function_int = OpTypePointer Function %int - %int_2 = OpConstant %int 2 -%_runtimearr_uint = OpTypeRuntimeArray %uint - %ssbo = OpTypeStruct %_runtimearr_uint -%_ptr_Uniform_ssbo = OpTypePointer Uniform %ssbo - %ssbo_0 = OpVariable %_ptr_Uniform_ssbo Uniform - %int_0 = OpConstant %int 0 -%_ptr_Uniform_uint = OpTypePointer Uniform %uint - %int_1 = OpConstant %int 1 - %int_3 = OpConstant %int 3 - %uint_4 = OpConstant %uint 4 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint - %id_1 = OpVariable %_ptr_Input_v3uint Input - %main = OpFunction %void None %3 - %5 = OpLabel - %id_0 = OpVariable %_ptr_Function_v3uint Function - %param_0 = OpVariable %_ptr_Function_v3uint Function - %57 = OpLoad %v3uint %id_1 - OpStore %id_0 %57 - %59 = OpLoad %v3uint %id_0 - OpStore %param_0 %59 - %60 = OpFunctionCall %void %_main_vu3_ %param_0 - OpReturn - OpFunctionEnd - %Load_u1_ = OpFunction %void None %8 - %size = OpFunctionParameter %_ptr_Function_uint - %11 = OpLabel - %data = OpVariable %_ptr_Function_v4uint Function -%byteAddrTemp = OpVariable %_ptr_Function_int Function - %24 = OpLoad %uint %size - %26 = OpShiftRightLogical %int %24 %int_2 - OpStore %byteAddrTemp %26 - %32 = OpLoad %int %byteAddrTemp - %34 = OpAccessChain %_ptr_Uniform_uint %ssbo_0 %int_0 %32 - %35 = OpLoad %uint %34 - %36 = OpLoad %int %byteAddrTemp - %38 = OpIAdd %int %36 %int_1 - %39 = OpAccessChain %_ptr_Uniform_uint %ssbo_0 %int_0 %38 - %40 = OpLoad %uint %39 - %41 = OpLoad %int %byteAddrTemp - %42 = OpIAdd %int %41 %int_2 - %43 = OpAccessChain %_ptr_Uniform_uint %ssbo_0 %int_0 %42 - %44 = OpLoad %uint %43 - %45 = OpLoad %int %byteAddrTemp - %47 = OpIAdd %int %45 %int_3 - %48 = OpAccessChain %_ptr_Uniform_uint %ssbo_0 %int_0 %47 - %49 = OpLoad %uint %48 - %50 = OpCompositeConstruct %v4uint %35 %40 %44 %49 - OpStore %data %50 - OpReturn - OpFunctionEnd - %_main_vu3_ = OpFunction %void None %14 - %id = OpFunctionParameter %_ptr_Function_v3uint - %17 = OpLabel - %param = OpVariable %_ptr_Function_uint Function - OpStore %param %uint_4 - %53 = OpFunctionCall %void %Load_u1_ %param - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/comp/image-load-store-short-vector.invalid.asm.comp b/third_party/spirv-cross/shaders-msl/asm/comp/image-load-store-short-vector.invalid.asm.comp deleted file mode 100644 index 8f759293eb..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/comp/image-load-store-short-vector.invalid.asm.comp +++ /dev/null @@ -1,75 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 44 -; Schema: 0 - OpCapability Shader - OpCapability StorageImageExtendedFormats - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %id_1 - OpExecutionMode %main LocalSize 1 1 1 - OpSource HLSL 500 - OpName %main "main" - OpName %_main_vu3_ "@main(vu3;" - OpName %id "id" - OpName %loaded "loaded" - OpName %TargetTexture "TargetTexture" - OpName %storeTemp "storeTemp" - OpName %id_0 "id" - OpName %id_1 "id" - OpName %param "param" - OpDecorate %TargetTexture DescriptorSet 0 - OpDecorate %TargetTexture Binding 0 - OpDecorate %id_1 BuiltIn WorkgroupId - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 -%_ptr_Function_v3uint = OpTypePointer Function %v3uint - %9 = OpTypeFunction %void %_ptr_Function_v3uint - %float = OpTypeFloat 32 - %v2float = OpTypeVector %float 2 -%_ptr_Function_v2float = OpTypePointer Function %v2float - %17 = OpTypeImage %float 2D 0 0 0 2 Rg32f -%_ptr_UniformConstant_17 = OpTypePointer UniformConstant %17 -%TargetTexture = OpVariable %_ptr_UniformConstant_17 UniformConstant - %v2uint = OpTypeVector %uint 2 - %float_1 = OpConstant %float 1 - %uint_1 = OpConstant %uint 1 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint - %id_1 = OpVariable %_ptr_Input_v3uint Input - %main = OpFunction %void None %3 - %5 = OpLabel - %id_0 = OpVariable %_ptr_Function_v3uint Function - %param = OpVariable %_ptr_Function_v3uint Function - %40 = OpLoad %v3uint %id_1 - OpStore %id_0 %40 - %42 = OpLoad %v3uint %id_0 - OpStore %param %42 - %43 = OpFunctionCall %void %_main_vu3_ %param - OpReturn - OpFunctionEnd - %_main_vu3_ = OpFunction %void None %9 - %id = OpFunctionParameter %_ptr_Function_v3uint - %12 = OpLabel - %loaded = OpVariable %_ptr_Function_v2float Function - %storeTemp = OpVariable %_ptr_Function_v2float Function - %20 = OpLoad %17 %TargetTexture - %22 = OpLoad %v3uint %id - %23 = OpVectorShuffle %v2uint %22 %22 0 1 - %24 = OpImageRead %v2float %20 %23 - OpStore %loaded %24 - %26 = OpLoad %v2float %loaded - %28 = OpCompositeConstruct %v2float %float_1 %float_1 - %29 = OpFAdd %v2float %26 %28 - OpStore %storeTemp %29 - %30 = OpLoad %17 %TargetTexture - %31 = OpLoad %v3uint %id - %32 = OpVectorShuffle %v2uint %31 %31 0 1 - %34 = OpCompositeConstruct %v2uint %uint_1 %uint_1 - %35 = OpIAdd %v2uint %32 %34 - %36 = OpLoad %v2float %storeTemp - OpImageWrite %30 %35 %36 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/comp/multiple-entry.asm.comp b/third_party/spirv-cross/shaders-msl/asm/comp/multiple-entry.asm.comp deleted file mode 100644 index 9ddc07bccf..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/comp/multiple-entry.asm.comp +++ /dev/null @@ -1,98 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 30 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %func_alt "main2" %frag_in %frag_out - OpEntryPoint GLCompute %func "main" - OpExecutionMode %func LocalSize 1 1 1 - OpExecutionMode %func_alt OriginUpperLeft - OpSource ESSL 310 - OpSourceExtension "GL_GOOGLE_cpp_style_line_directive" - OpSourceExtension "GL_GOOGLE_include_directive" - OpMemberDecorate %input_struct 0 Offset 0 - OpMemberDecorate %input_struct 1 Offset 16 - OpMemberDecorate %output_struct 0 Offset 0 - OpMemberDecorate %output_struct 1 Offset 16 - OpDecorate %input_struct BufferBlock - OpDecorate %inputs DescriptorSet 0 - OpDecorate %inputs Binding 0 - OpDecorate %inputs Restrict - OpDecorate %output_struct BufferBlock - OpDecorate %outputs DescriptorSet 0 - OpDecorate %outputs Binding 1 - OpDecorate %outputs Restrict - OpDecorate %frag_in Location 0 - OpDecorate %frag_out Location 0 - - %void = OpTypeVoid - %main_func = OpTypeFunction %void - - %uint = OpTypeInt 32 0 - %uvec4 = OpTypeVector %uint 4 - - %int = OpTypeInt 32 1 - %ivec4 = OpTypeVector %int 4 - - %ivec4_ptr = OpTypePointer Uniform %ivec4 - %uvec4_ptr = OpTypePointer Uniform %uvec4 - - %float = OpTypeFloat 32 - %vec4 = OpTypeVector %float 4 - %vec4_input_ptr = OpTypePointer Input %vec4 - %vec4_output_ptr = OpTypePointer Output %vec4 - - %zero = OpConstant %int 0 - %one = OpConstant %int 1 - - %input_struct = OpTypeStruct %ivec4 %uvec4 - %input_struct_ptr = OpTypePointer Uniform %input_struct - %inputs = OpVariable %input_struct_ptr Uniform - %output_struct = OpTypeStruct %uvec4 %ivec4 - %output_struct_ptr = OpTypePointer Uniform %output_struct - %outputs = OpVariable %output_struct_ptr Uniform - - %frag_in = OpVariable %vec4_input_ptr Input - %frag_out = OpVariable %vec4_output_ptr Output - - %func = OpFunction %void None %main_func - %block = OpLabel - - %input1_ptr = OpAccessChain %ivec4_ptr %inputs %zero - %input0_ptr = OpAccessChain %uvec4_ptr %inputs %one - %input1 = OpLoad %ivec4 %input1_ptr - %input0 = OpLoad %uvec4 %input0_ptr - - %output_ptr_uvec4 = OpAccessChain %uvec4_ptr %outputs %zero - %output_ptr_ivec4 = OpAccessChain %ivec4_ptr %outputs %one - -; Test all variants of IAdd - %result_iadd_0 = OpIAdd %uvec4 %input0 %input1 - %result_iadd_1 = OpIAdd %uvec4 %input1 %input0 - %result_iadd_2 = OpIAdd %uvec4 %input0 %input0 - %result_iadd_3 = OpIAdd %uvec4 %input1 %input1 - %result_iadd_4 = OpIAdd %ivec4 %input0 %input0 - %result_iadd_5 = OpIAdd %ivec4 %input1 %input1 - %result_iadd_6 = OpIAdd %ivec4 %input0 %input1 - %result_iadd_7 = OpIAdd %ivec4 %input1 %input0 - OpStore %output_ptr_uvec4 %result_iadd_0 - OpStore %output_ptr_uvec4 %result_iadd_1 - OpStore %output_ptr_uvec4 %result_iadd_2 - OpStore %output_ptr_uvec4 %result_iadd_3 - OpStore %output_ptr_ivec4 %result_iadd_4 - OpStore %output_ptr_ivec4 %result_iadd_5 - OpStore %output_ptr_ivec4 %result_iadd_6 - OpStore %output_ptr_ivec4 %result_iadd_7 - - OpReturn - OpFunctionEnd - - %func_alt = OpFunction %void None %main_func - %block_alt = OpLabel - %frag_input_value = OpLoad %vec4 %frag_in - OpStore %frag_out %frag_input_value - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/comp/quantize.asm.comp b/third_party/spirv-cross/shaders-msl/asm/comp/quantize.asm.comp deleted file mode 100644 index f5afc6570c..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/comp/quantize.asm.comp +++ /dev/null @@ -1,67 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 38 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %4 "main" - OpExecutionMode %4 LocalSize 1 1 1 - OpSource ESSL 310 - OpName %4 "main" - OpName %10 "SSBO0" - OpMemberName %10 0 "scalar" - OpMemberName %10 1 "vec2_val" - OpMemberName %10 2 "vec3_val" - OpMemberName %10 3 "vec4_val" - OpName %12 "" - OpMemberDecorate %10 0 Offset 0 - OpMemberDecorate %10 1 Offset 8 - OpMemberDecorate %10 2 Offset 16 - OpMemberDecorate %10 3 Offset 32 - OpDecorate %10 BufferBlock - OpDecorate %12 DescriptorSet 0 - OpDecorate %12 Binding 0 - %2 = OpTypeVoid - %3 = OpTypeFunction %2 - %6 = OpTypeFloat 32 - %7 = OpTypeVector %6 2 - %8 = OpTypeVector %6 3 - %9 = OpTypeVector %6 4 - %10 = OpTypeStruct %6 %7 %8 %9 - %11 = OpTypePointer Uniform %10 - %12 = OpVariable %11 Uniform - %13 = OpTypeInt 32 1 - %14 = OpConstant %13 0 - %15 = OpTypePointer Uniform %6 - %20 = OpConstant %13 1 - %21 = OpTypePointer Uniform %7 - %26 = OpConstant %13 2 - %27 = OpTypePointer Uniform %8 - %32 = OpConstant %13 3 - %33 = OpTypePointer Uniform %9 - %4 = OpFunction %2 None %3 - %5 = OpLabel - %16 = OpAccessChain %15 %12 %14 - %17 = OpLoad %6 %16 - %18 = OpQuantizeToF16 %6 %17 - %19 = OpAccessChain %15 %12 %14 - OpStore %19 %18 - %22 = OpAccessChain %21 %12 %20 - %23 = OpLoad %7 %22 - %24 = OpQuantizeToF16 %7 %23 - %25 = OpAccessChain %21 %12 %20 - OpStore %25 %24 - %28 = OpAccessChain %27 %12 %26 - %29 = OpLoad %8 %28 - %30 = OpQuantizeToF16 %8 %29 - %31 = OpAccessChain %27 %12 %26 - OpStore %31 %30 - %34 = OpAccessChain %33 %12 %32 - %35 = OpLoad %9 %34 - %36 = OpQuantizeToF16 %9 %35 - %37 = OpAccessChain %33 %12 %32 - OpStore %37 %36 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/comp/relaxed-block-layout.asm.comp b/third_party/spirv-cross/shaders-msl/asm/comp/relaxed-block-layout.asm.comp deleted file mode 100644 index dd909426d5..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/comp/relaxed-block-layout.asm.comp +++ /dev/null @@ -1,108 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 63 -; Schema: 0 - OpCapability Shader - OpCapability StorageBuffer16BitAccess - OpCapability StorageBuffer8BitAccess - OpCapability UniformAndStorageBuffer8BitAccess - OpExtension "SPV_KHR_8bit_storage" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %gl_LocalInvocationID %gl_GlobalInvocationID %gl_WorkGroupID %gl_NumWorkGroups - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpSourceExtension "GL_EXT_shader_16bit_storage" - OpSourceExtension "GL_EXT_shader_8bit_storage" - OpName %main "main" - OpName %foo "foo" - OpMemberName %foo 0 "bar" - OpMemberName %foo 1 "baz" - OpMemberName %foo 2 "quux" - OpMemberName %foo 3 "blah" - OpMemberName %foo 4 "wibble" - OpName %_ "" - OpName %gl_LocalInvocationID "gl_LocalInvocationID" - OpName %gl_GlobalInvocationID "gl_GlobalInvocationID" - OpName %gl_WorkGroupID "gl_WorkGroupID" - OpName %gl_NumWorkGroups "gl_NumWorkGroups" - OpMemberDecorate %foo 0 Offset 0 - OpMemberDecorate %foo 1 Offset 4 - OpMemberDecorate %foo 2 Offset 16 - OpMemberDecorate %foo 3 Offset 17 - OpMemberDecorate %foo 4 Offset 22 - OpDecorate %foo BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId - OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId - OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId - OpDecorate %gl_NumWorkGroups BuiltIn NumWorkgroups - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 - %float = OpTypeFloat 32 - %v3float = OpTypeVector %float 3 - %uchar = OpTypeInt 8 0 - %v4uchar = OpTypeVector %uchar 4 - %half = OpTypeFloat 16 - %v2half = OpTypeVector %half 2 - %foo = OpTypeStruct %uint %v3float %uchar %v4uchar %v2half -%_ptr_Uniform_foo = OpTypePointer Uniform %foo - %_ = OpVariable %_ptr_Uniform_foo Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %v3uint = OpTypeVector %uint 3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%gl_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_Uniform_uint = OpTypePointer Uniform %uint - %int_1 = OpConstant %int 1 -%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input -%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float - %int_3 = OpConstant %int 3 -%_ptr_Uniform_v4uchar = OpTypePointer Uniform %v4uchar - %v4uint = OpTypeVector %uint 4 -%gl_WorkGroupID = OpVariable %_ptr_Input_v3uint Input - %int_4 = OpConstant %int 4 -%_ptr_Uniform_v2half = OpTypePointer Uniform %v2half - %v2float = OpTypeVector %float 2 -%gl_NumWorkGroups = OpVariable %_ptr_Input_v3uint Input - %v2uint = OpTypeVector %uint 2 - %main = OpFunction %void None %3 - %5 = OpLabel - %23 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %24 = OpLoad %uint %23 - %26 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 - OpStore %26 %24 - %29 = OpLoad %v3uint %gl_GlobalInvocationID - %30 = OpConvertUToF %v3float %29 - %32 = OpAccessChain %_ptr_Uniform_v3float %_ %int_1 - OpStore %32 %30 - %35 = OpAccessChain %_ptr_Uniform_v4uchar %_ %int_3 - %36 = OpLoad %v4uchar %35 - %38 = OpUConvert %v4uint %36 - %39 = OpVectorShuffle %v3uint %38 %38 0 1 2 - %41 = OpLoad %v3uint %gl_WorkGroupID - %42 = OpIAdd %v3uint %39 %41 - %43 = OpCompositeExtract %uint %42 0 - %44 = OpCompositeExtract %uint %42 1 - %45 = OpCompositeExtract %uint %42 2 - %46 = OpCompositeConstruct %v4uint %43 %44 %45 %uint_0 - %47 = OpUConvert %v4uchar %46 - %48 = OpAccessChain %_ptr_Uniform_v4uchar %_ %int_3 - OpStore %48 %47 - %51 = OpAccessChain %_ptr_Uniform_v2half %_ %int_4 - %52 = OpLoad %v2half %51 - %54 = OpFConvert %v2float %52 - %57 = OpLoad %v3uint %gl_NumWorkGroups - %58 = OpVectorShuffle %v2uint %57 %57 0 1 - %59 = OpConvertUToF %v2float %58 - %60 = OpFMul %v2float %54 %59 - %61 = OpFConvert %v2half %60 - %62 = OpAccessChain %_ptr_Uniform_v2half %_ %int_4 - OpStore %62 %61 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/comp/specialization-constant-workgroup.asm.comp b/third_party/spirv-cross/shaders-msl/asm/comp/specialization-constant-workgroup.asm.comp deleted file mode 100644 index 188e3fec36..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/comp/specialization-constant-workgroup.asm.comp +++ /dev/null @@ -1,47 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 24 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 20 1 - OpSource ESSL 310 - OpName %main "main" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "a" - OpName %_ "" - OpMemberDecorate %SSBO 0 Offset 0 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - OpDecorate %19 SpecId 10 - OpDecorate %21 SpecId 12 - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %SSBO = OpTypeStruct %float -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %float_1 = OpConstant %float 1 -%_ptr_Uniform_float = OpTypePointer Uniform %float - %uint = OpTypeInt 32 0 - %19 = OpSpecConstant %uint 9 - %uint_20 = OpConstant %uint 20 - %21 = OpSpecConstant %uint 4 - %v3uint = OpTypeVector %uint 3 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %19 %uint_20 %21 - %main = OpFunction %void None %3 - %5 = OpLabel - %14 = OpAccessChain %_ptr_Uniform_float %_ %int_0 - %15 = OpLoad %float %14 - %16 = OpFAdd %float %15 %float_1 - %17 = OpAccessChain %_ptr_Uniform_float %_ %int_0 - OpStore %17 %16 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/comp/struct-resource-name-aliasing.asm.comp b/third_party/spirv-cross/shaders-msl/asm/comp/struct-resource-name-aliasing.asm.comp deleted file mode 100644 index 384da305ad..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/comp/struct-resource-name-aliasing.asm.comp +++ /dev/null @@ -1,49 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 21 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 8 8 1 - OpSource HLSL 500 - OpName %main "main" - OpName %_main_ "@main(" - OpName %bufA "bufA" - OpMemberName %bufA 0 "@data" - OpName %bufA_0 "bufA" - OpName %bufB "bufB" - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %bufA 0 Offset 0 - OpDecorate %bufA BufferBlock - OpDecorate %bufA_0 DescriptorSet 0 - OpDecorate %bufB DescriptorSet 0 - OpDecorate %bufA_0 Binding 0 - OpDecorate %bufB Binding 1 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 -%_runtimearr_uint = OpTypeRuntimeArray %uint - %bufA = OpTypeStruct %_runtimearr_uint -%_ptr_Uniform_bufA = OpTypePointer Uniform %bufA - %bufA_0 = OpVariable %_ptr_Uniform_bufA Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %uint_0 = OpConstant %uint 0 -%_ptr_Uniform_uint = OpTypePointer Uniform %uint - %bufB = OpVariable %_ptr_Uniform_bufA Uniform - %main = OpFunction %void None %3 - %5 = OpLabel - %20 = OpFunctionCall %void %_main_ - OpReturn - OpFunctionEnd - %_main_ = OpFunction %void None %3 - %7 = OpLabel - %17 = OpAccessChain %_ptr_Uniform_uint %bufA_0 %int_0 %int_0 - OpStore %17 %uint_0 - %19 = OpAccessChain %_ptr_Uniform_uint %bufB %int_0 %int_0 - OpStore %19 %uint_0 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/comp/variable-pointers-2.asm.comp b/third_party/spirv-cross/shaders-msl/asm/comp/variable-pointers-2.asm.comp deleted file mode 100644 index 308162f0b9..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/comp/variable-pointers-2.asm.comp +++ /dev/null @@ -1,117 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Khronos SPIR-V Tools Assembler; 0 -; Bound: 65 -; Schema: 0 - OpCapability Shader - OpCapability VariablePointers - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID %gl_LocalInvocationID - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %foo "foo" - OpMemberName %foo 0 "a" - OpMemberName %foo 1 "b" - OpMemberName %foo 2 "c" - OpName %bar "bar" - OpMemberName %bar 0 "d" - OpName %buf "buf" - OpName %cb "cb" - OpName %select_buffer "select_buffer" - OpName %select_input "select_input" - OpName %a "a" - OpMemberDecorate %foo 0 Offset 0 - OpMemberDecorate %foo 1 Offset 512 - OpMemberDecorate %foo 2 Offset 520 - OpMemberDecorate %bar 0 Offset 0 - OpDecorate %foo Block - OpDecorate %bar Block - OpDecorate %buf DescriptorSet 0 - OpDecorate %buf Binding 0 - OpDecorate %cb DescriptorSet 0 - OpDecorate %cb Binding 1 - OpDecorate %_ptr_StorageBuffer_int ArrayStride 4 - OpDecorate %_arr_int_uint_128 ArrayStride 4 - OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId - OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId - %void = OpTypeVoid - %15 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input -%gl_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input - %uint_128 = OpConstant %uint 128 -%_arr_int_uint_128 = OpTypeArray %int %uint_128 - %float = OpTypeFloat 32 - %v2float = OpTypeVector %float 2 - %foo = OpTypeStruct %_arr_int_uint_128 %uint %v2float -%_ptr_StorageBuffer_foo = OpTypePointer StorageBuffer %foo - %buf = OpVariable %_ptr_StorageBuffer_foo StorageBuffer - %bar = OpTypeStruct %int -%_ptr_Uniform_bar = OpTypePointer Uniform %bar - %cb = OpVariable %_ptr_Uniform_bar Uniform - %uint_0 = OpConstant %uint 0 - %bool = OpTypeBool -%_ptr_Uniform_int = OpTypePointer Uniform %int - %28 = OpTypeFunction %_ptr_StorageBuffer_foo %_ptr_StorageBuffer_foo - %int_0 = OpConstant %int 0 - %uint_1 = OpConstant %uint 1 - %31 = OpConstantNull %_ptr_StorageBuffer_foo - %32 = OpTypeFunction %_ptr_Input_v3uint -%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int -%_ptr_Function__ptr_StorageBuffer_foo = OpTypePointer Function %_ptr_StorageBuffer_foo -%select_buffer = OpFunction %_ptr_StorageBuffer_foo None %28 - %a = OpFunctionParameter %_ptr_StorageBuffer_foo - %33 = OpLabel - %34 = OpAccessChain %_ptr_Uniform_int %cb %uint_0 - %35 = OpLoad %int %34 - %36 = OpINotEqual %bool %35 %int_0 - %37 = OpSelect %_ptr_StorageBuffer_foo %36 %a %31 - OpReturnValue %37 - OpFunctionEnd -%select_input = OpFunction %_ptr_Input_v3uint None %32 - %38 = OpLabel - %39 = OpAccessChain %_ptr_Uniform_int %cb %uint_0 - %40 = OpLoad %int %39 - %41 = OpINotEqual %bool %40 %int_0 - %42 = OpSelect %_ptr_Input_v3uint %41 %gl_GlobalInvocationID %gl_LocalInvocationID - OpReturnValue %42 - OpFunctionEnd - %main = OpFunction %void None %15 - %43 = OpLabel - %65 = OpVariable %_ptr_Function__ptr_StorageBuffer_foo Function - %44 = OpFunctionCall %_ptr_StorageBuffer_foo %select_buffer %buf - OpStore %65 %44 - %45 = OpFunctionCall %_ptr_Input_v3uint %select_input - %66 = OpLoad %_ptr_StorageBuffer_foo %65 - %46 = OpAccessChain %_ptr_StorageBuffer_int %66 %uint_0 %uint_0 - %47 = OpAccessChain %_ptr_StorageBuffer_int %buf %uint_0 %uint_0 - OpBranch %48 - %48 = OpLabel - %49 = OpPhi %_ptr_StorageBuffer_int %46 %43 %50 %51 - %52 = OpPhi %_ptr_StorageBuffer_int %47 %43 %53 %51 - %54 = OpLoad %int %49 - %55 = OpLoad %int %52 - %56 = OpINotEqual %bool %54 %55 - OpLoopMerge %58 %51 None - OpBranchConditional %56 %57 %58 - %57 = OpLabel - %59 = OpIAdd %int %54 %55 - %60 = OpLoad %v3uint %45 - %61 = OpCompositeExtract %uint %60 0 - %62 = OpBitcast %int %61 - %63 = OpIAdd %int %59 %62 - OpStore %49 %63 - OpStore %52 %63 - OpBranch %51 - %51 = OpLabel - %50 = OpPtrAccessChain %_ptr_StorageBuffer_int %49 %uint_1 - %53 = OpPtrAccessChain %_ptr_StorageBuffer_int %52 %uint_1 - OpBranch %48 - %58 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/comp/variable-pointers-store-forwarding.asm.comp b/third_party/spirv-cross/shaders-msl/asm/comp/variable-pointers-store-forwarding.asm.comp deleted file mode 100644 index 3dcb04f027..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/comp/variable-pointers-store-forwarding.asm.comp +++ /dev/null @@ -1,75 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Khronos SPIR-V Tools Assembler; 0 -; Bound: 40 -; Schema: 0 - OpCapability Shader - OpCapability VariablePointers - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %foo "foo" - OpMemberName %foo 0 "a" - OpName %bar "bar" - OpMemberName %bar 0 "b" - OpName %x "x" - OpName %y "y" - OpName %a "a" - OpName %b "b" - OpMemberDecorate %foo 0 Offset 0 - OpMemberDecorate %bar 0 Offset 0 - OpDecorate %foo Block - OpDecorate %bar Block - OpDecorate %x DescriptorSet 0 - OpDecorate %x Binding 0 - OpDecorate %y DescriptorSet 0 - OpDecorate %y Binding 1 - OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId - %void = OpTypeVoid - %11 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input - %foo = OpTypeStruct %int -%_ptr_StorageBuffer_foo = OpTypePointer StorageBuffer %foo - %x = OpVariable %_ptr_StorageBuffer_foo StorageBuffer - %bar = OpTypeStruct %int -%_ptr_StorageBuffer_bar = OpTypePointer StorageBuffer %bar - %y = OpVariable %_ptr_StorageBuffer_bar StorageBuffer - %uint_0 = OpConstant %uint 0 - %int_0 = OpConstant %int 0 - %bool = OpTypeBool -%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int - %22 = OpTypeFunction %_ptr_StorageBuffer_int %_ptr_StorageBuffer_foo %_ptr_StorageBuffer_bar -%_ptr_Function__ptr_StorageBuffer_int = OpTypePointer Function %_ptr_StorageBuffer_int - %24 = OpFunction %_ptr_StorageBuffer_int None %22 - %a = OpFunctionParameter %_ptr_StorageBuffer_foo - %b = OpFunctionParameter %_ptr_StorageBuffer_bar - %25 = OpLabel - %26 = OpLoad %v3uint %gl_GlobalInvocationID - %27 = OpCompositeExtract %uint %26 0 - %28 = OpINotEqual %bool %27 %uint_0 - %29 = OpAccessChain %_ptr_StorageBuffer_int %a %uint_0 - %30 = OpAccessChain %_ptr_StorageBuffer_int %b %uint_0 - %31 = OpSelect %_ptr_StorageBuffer_int %28 %29 %30 - OpReturnValue %31 - OpFunctionEnd - %main = OpFunction %void None %11 - %32 = OpLabel - %33 = OpVariable %_ptr_Function__ptr_StorageBuffer_int Function - %34 = OpFunctionCall %_ptr_StorageBuffer_int %24 %x %y - OpStore %33 %34 - %35 = OpLoad %_ptr_StorageBuffer_int %33 - %36 = OpAccessChain %_ptr_StorageBuffer_int %x %uint_0 - %37 = OpLoad %int %36 - OpStore %35 %int_0 - %38 = OpIAdd %int %37 %37 - %39 = OpAccessChain %_ptr_StorageBuffer_int %y %uint_0 - OpStore %39 %38 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/comp/vector-builtin-type-cast-func.asm.comp b/third_party/spirv-cross/shaders-msl/asm/comp/vector-builtin-type-cast-func.asm.comp deleted file mode 100644 index c01432b5d7..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/comp/vector-builtin-type-cast-func.asm.comp +++ /dev/null @@ -1,147 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 90 -; Schema: 0 - OpCapability Shader - OpCapability ImageQuery - OpCapability StorageImageWriteWithoutFormat - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %gl_LocalInvocationID - OpExecutionMode %main LocalSize 16 16 1 - OpSource GLSL 450 - OpName %main "main" - OpName %get_texcoord_vi2_vi2_ "get_texcoord(vi2;vi2;" - OpName %base "base" - OpName %index "index" - OpName %gl_LocalInvocationID "gl_LocalInvocationID" - OpName %r0 "r0" - OpName %u0 "u0" - OpName %i "i" - OpName %j "j" - OpName %param "param" - OpName %param_0 "param" - OpName %cb1_struct "cb1_struct" - OpMemberName %cb1_struct 0 "_m0" - OpName %cb0_1 "cb0_1" - OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId - OpDecorate %u0 DescriptorSet 0 - OpDecorate %u0 Binding 1 - OpDecorate %u0 NonReadable - OpDecorate %_arr_v4float_uint_1 ArrayStride 16 - OpMemberDecorate %cb1_struct 0 Offset 0 - OpDecorate %cb1_struct Block - OpDecorate %cb0_1 DescriptorSet 0 - OpDecorate %cb0_1 Binding 0 - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %v2int = OpTypeVector %int 2 -%_ptr_Function_v2int = OpTypePointer Function %v2int - %9 = OpTypeFunction %v2int %_ptr_Function_v2int %_ptr_Function_v2int - %v3int = OpTypeVector %int 3 -%_ptr_Input_v3int = OpTypePointer Input %v3int -%gl_LocalInvocationID = OpVariable %_ptr_Input_v3int Input - %uint = OpTypeInt 32 0 - %v2uint = OpTypeVector %uint 2 - %float = OpTypeFloat 32 - %30 = OpTypeImage %float 2D 0 0 0 2 Unknown -%_ptr_UniformConstant_30 = OpTypePointer UniformConstant %30 - %u0 = OpVariable %_ptr_UniformConstant_30 UniformConstant - %uint_4 = OpConstant %uint 4 -%_ptr_Function_int = OpTypePointer Function %int - %int_0 = OpConstant %int 0 - %uint_1 = OpConstant %uint 1 - %bool = OpTypeBool - %uint_0 = OpConstant %uint 0 - %v4float = OpTypeVector %float 4 -%_arr_v4float_uint_1 = OpTypeArray %v4float %uint_1 - %cb1_struct = OpTypeStruct %_arr_v4float_uint_1 -%_ptr_Uniform_cb1_struct = OpTypePointer Uniform %cb1_struct - %cb0_1 = OpVariable %_ptr_Uniform_cb1_struct Uniform -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float - %int_1 = OpConstant %int 1 - %uint_16 = OpConstant %uint 16 - %v3uint = OpTypeVector %uint 3 -%gl_WorkGroupSize = OpConstantComposite %v3uint %uint_16 %uint_16 %uint_1 - %main = OpFunction %void None %3 - %5 = OpLabel - %r0 = OpVariable %_ptr_Function_v2int Function - %i = OpVariable %_ptr_Function_int Function - %j = OpVariable %_ptr_Function_int Function - %param = OpVariable %_ptr_Function_v2int Function - %param_0 = OpVariable %_ptr_Function_v2int Function - %33 = OpLoad %30 %u0 - %34 = OpImageQuerySize %v2int %33 - %36 = OpCompositeConstruct %v2uint %uint_4 %uint_4 - %37 = OpShiftRightArithmetic %v2int %34 %36 - %38 = OpCompositeExtract %int %37 0 - %39 = OpCompositeExtract %int %37 1 - %40 = OpCompositeConstruct %v2int %38 %39 - OpStore %r0 %40 - OpStore %i %int_0 - OpBranch %44 - %44 = OpLabel - OpLoopMerge %46 %47 None - OpBranch %48 - %48 = OpLabel - %49 = OpLoad %int %i - %51 = OpAccessChain %_ptr_Function_int %r0 %uint_1 - %52 = OpLoad %int %51 - %54 = OpSLessThan %bool %49 %52 - OpBranchConditional %54 %45 %46 - %45 = OpLabel - OpStore %j %int_0 - OpBranch %56 - %56 = OpLabel - OpLoopMerge %58 %59 None - OpBranch %60 - %60 = OpLabel - %61 = OpLoad %int %j - %63 = OpAccessChain %_ptr_Function_int %r0 %uint_0 - %64 = OpLoad %int %63 - %65 = OpSLessThan %bool %61 %64 - OpBranchConditional %65 %57 %58 - %57 = OpLabel - %66 = OpLoad %30 %u0 - %67 = OpLoad %int %i - %68 = OpLoad %int %j - %69 = OpCompositeConstruct %v2int %67 %68 - %71 = OpLoad %v2int %r0 - OpStore %param %71 - OpStore %param_0 %69 - %73 = OpFunctionCall %v2int %get_texcoord_vi2_vi2_ %param %param_0 - %80 = OpAccessChain %_ptr_Uniform_v4float %cb0_1 %int_0 %int_0 - %81 = OpLoad %v4float %80 - %82 = OpVectorShuffle %v4float %81 %81 0 0 0 0 - OpImageWrite %66 %73 %82 - OpBranch %59 - %59 = OpLabel - %83 = OpLoad %int %j - %85 = OpIAdd %int %83 %int_1 - OpStore %j %85 - OpBranch %56 - %58 = OpLabel - OpBranch %47 - %47 = OpLabel - %86 = OpLoad %int %i - %87 = OpIAdd %int %86 %int_1 - OpStore %i %87 - OpBranch %44 - %46 = OpLabel - OpReturn - OpFunctionEnd -%get_texcoord_vi2_vi2_ = OpFunction %v2int None %9 - %base = OpFunctionParameter %_ptr_Function_v2int - %index = OpFunctionParameter %_ptr_Function_v2int - %13 = OpLabel - %14 = OpLoad %v2int %base - %20 = OpLoad %v3int %gl_LocalInvocationID - %21 = OpVectorShuffle %v2int %20 %20 0 1 - %23 = OpIMul %v2int %14 %21 - %24 = OpLoad %v2int %index - %25 = OpIAdd %v2int %23 %24 - OpReturnValue %25 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/comp/vector-builtin-type-cast.asm.comp b/third_party/spirv-cross/shaders-msl/asm/comp/vector-builtin-type-cast.asm.comp deleted file mode 100644 index e793540268..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/comp/vector-builtin-type-cast.asm.comp +++ /dev/null @@ -1,128 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 78 -; Schema: 0 - OpCapability Shader - OpCapability ImageQuery - OpCapability StorageImageWriteWithoutFormat - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %gl_LocalInvocationID - OpExecutionMode %main LocalSize 16 16 1 - OpSource GLSL 450 - OpName %main "main" - OpName %r0 "r0" - OpName %u0 "u0" - OpName %i "i" - OpName %j "j" - OpName %gl_LocalInvocationID "gl_LocalInvocationID" - OpName %cb1_struct "cb1_struct" - OpMemberName %cb1_struct 0 "_m0" - OpName %cb0_1 "cb0_1" - OpDecorate %u0 DescriptorSet 0 - OpDecorate %u0 Binding 1 - OpDecorate %u0 NonReadable - OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId - OpDecorate %_arr_v4float_uint_1 ArrayStride 16 - OpMemberDecorate %cb1_struct 0 Offset 0 - OpDecorate %cb1_struct Block - OpDecorate %cb0_1 DescriptorSet 0 - OpDecorate %cb0_1 Binding 0 - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %v2int = OpTypeVector %int 2 -%_ptr_Function_v2int = OpTypePointer Function %v2int - %float = OpTypeFloat 32 - %11 = OpTypeImage %float 2D 0 0 0 2 Unknown -%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11 - %u0 = OpVariable %_ptr_UniformConstant_11 UniformConstant - %uint = OpTypeInt 32 0 - %uint_4 = OpConstant %uint 4 - %v2uint = OpTypeVector %uint 2 -%_ptr_Function_int = OpTypePointer Function %int - %int_0 = OpConstant %int 0 - %uint_1 = OpConstant %uint 1 - %bool = OpTypeBool - %uint_0 = OpConstant %uint 0 - %v3int = OpTypeVector %int 3 -%_ptr_Input_v3int = OpTypePointer Input %v3int -%gl_LocalInvocationID = OpVariable %_ptr_Input_v3int Input - %v4float = OpTypeVector %float 4 -%_arr_v4float_uint_1 = OpTypeArray %v4float %uint_1 - %cb1_struct = OpTypeStruct %_arr_v4float_uint_1 -%_ptr_Uniform_cb1_struct = OpTypePointer Uniform %cb1_struct - %cb0_1 = OpVariable %_ptr_Uniform_cb1_struct Uniform -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float - %int_1 = OpConstant %int 1 - %uint_16 = OpConstant %uint 16 - %v3uint = OpTypeVector %uint 3 -%gl_WorkGroupSize = OpConstantComposite %v3uint %uint_16 %uint_16 %uint_1 - %main = OpFunction %void None %3 - %5 = OpLabel - %r0 = OpVariable %_ptr_Function_v2int Function - %i = OpVariable %_ptr_Function_int Function - %j = OpVariable %_ptr_Function_int Function - %14 = OpLoad %11 %u0 - %15 = OpImageQuerySize %v2int %14 - %19 = OpCompositeConstruct %v2uint %uint_4 %uint_4 - %20 = OpShiftRightArithmetic %v2int %15 %19 - %21 = OpCompositeExtract %int %20 0 - %22 = OpCompositeExtract %int %20 1 - %23 = OpCompositeConstruct %v2int %21 %22 - OpStore %r0 %23 - OpStore %i %int_0 - OpBranch %27 - %27 = OpLabel - OpLoopMerge %29 %30 None - OpBranch %31 - %31 = OpLabel - %32 = OpLoad %int %i - %34 = OpAccessChain %_ptr_Function_int %r0 %uint_1 - %35 = OpLoad %int %34 - %37 = OpSLessThan %bool %32 %35 - OpBranchConditional %37 %28 %29 - %28 = OpLabel - OpStore %j %int_0 - OpBranch %39 - %39 = OpLabel - OpLoopMerge %41 %42 None - OpBranch %43 - %43 = OpLabel - %44 = OpLoad %int %j - %46 = OpAccessChain %_ptr_Function_int %r0 %uint_0 - %47 = OpLoad %int %46 - %48 = OpSLessThan %bool %44 %47 - OpBranchConditional %48 %40 %41 - %40 = OpLabel - %49 = OpLoad %11 %u0 - %50 = OpLoad %v2int %r0 - %54 = OpLoad %v3int %gl_LocalInvocationID - %55 = OpVectorShuffle %v2int %54 %54 0 1 - %57 = OpIMul %v2int %50 %55 - %58 = OpLoad %int %i - %59 = OpLoad %int %j - %60 = OpCompositeConstruct %v2int %58 %59 - %61 = OpIAdd %v2int %57 %60 - %68 = OpAccessChain %_ptr_Uniform_v4float %cb0_1 %int_0 %int_0 - %69 = OpLoad %v4float %68 - %70 = OpVectorShuffle %v4float %69 %69 0 0 0 0 - OpImageWrite %49 %61 %70 - OpBranch %42 - %42 = OpLabel - %71 = OpLoad %int %j - %73 = OpIAdd %int %71 %int_1 - OpStore %j %73 - OpBranch %39 - %41 = OpLabel - OpBranch %30 - %30 = OpLabel - %74 = OpLoad %int %i - %75 = OpIAdd %int %74 %int_1 - OpStore %i %75 - OpBranch %27 - %29 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/frag/combined-sampler-reuse.asm.frag b/third_party/spirv-cross/shaders-msl/asm/frag/combined-sampler-reuse.asm.frag deleted file mode 100644 index ba2f95b234..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/frag/combined-sampler-reuse.asm.frag +++ /dev/null @@ -1,57 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 36 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %vUV - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %FragColor "FragColor" - OpName %uTex "uTex" - OpName %uSampler "uSampler" - OpName %vUV "vUV" - OpDecorate %FragColor Location 0 - OpDecorate %uTex DescriptorSet 0 - OpDecorate %uTex Binding 1 - OpDecorate %uSampler DescriptorSet 0 - OpDecorate %uSampler Binding 0 - OpDecorate %vUV Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %10 = OpTypeImage %float 2D 0 0 0 1 Unknown -%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10 - %uTex = OpVariable %_ptr_UniformConstant_10 UniformConstant - %14 = OpTypeSampler -%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14 - %uSampler = OpVariable %_ptr_UniformConstant_14 UniformConstant - %18 = OpTypeSampledImage %10 - %v2float = OpTypeVector %float 2 -%_ptr_Input_v2float = OpTypePointer Input %v2float - %vUV = OpVariable %_ptr_Input_v2float Input - %int = OpTypeInt 32 1 - %v2int = OpTypeVector %int 2 - %int_1 = OpConstant %int 1 - %32 = OpConstantComposite %v2int %int_1 %int_1 - %main = OpFunction %void None %3 - %5 = OpLabel - %13 = OpLoad %10 %uTex - %17 = OpLoad %14 %uSampler - %19 = OpSampledImage %18 %13 %17 - %23 = OpLoad %v2float %vUV - %24 = OpImageSampleImplicitLod %v4float %19 %23 - OpStore %FragColor %24 - %28 = OpLoad %v2float %vUV - %33 = OpImageSampleImplicitLod %v4float %19 %28 ConstOffset %32 - %34 = OpLoad %v4float %FragColor - %35 = OpFAdd %v4float %34 %33 - OpStore %FragColor %35 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/frag/default-member-names.asm.frag b/third_party/spirv-cross/shaders-msl/asm/frag/default-member-names.asm.frag deleted file mode 100644 index ba493c0f91..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/frag/default-member-names.asm.frag +++ /dev/null @@ -1,57 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 43 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %2 "main" %3 - OpExecutionMode %2 OriginUpperLeft - OpDecorate %3 Location 0 - %void = OpTypeVoid - %9 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %12 = OpTypeFunction %v4float - %_struct_5 = OpTypeStruct %float - %_struct_6 = OpTypeStruct %float %float %float %float %float %float %float %float %float %float %float %float %_struct_5 -%_ptr_Function__struct_6 = OpTypePointer Function %_struct_6 - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_Function_float = OpTypePointer Function %float - %int_1 = OpConstant %int 1 - %int_2 = OpConstant %int 2 - %int_3 = OpConstant %int 3 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %3 = OpVariable %_ptr_Output_v4float Output -%_ptr_Function_v4float = OpTypePointer Function %v4float - %2 = OpFunction %void None %9 - %22 = OpLabel - %23 = OpVariable %_ptr_Function__struct_6 Function - %24 = OpAccessChain %_ptr_Function_float %23 %int_0 - %25 = OpLoad %float %24 - %26 = OpAccessChain %_ptr_Function_float %23 %int_1 - %27 = OpLoad %float %26 - %28 = OpAccessChain %_ptr_Function_float %23 %int_2 - %29 = OpLoad %float %28 - %30 = OpAccessChain %_ptr_Function_float %23 %int_3 - %31 = OpLoad %float %30 - %32 = OpCompositeConstruct %v4float %25 %27 %29 %31 - OpStore %3 %32 - OpReturn - OpFunctionEnd - %4 = OpFunction %v4float None %12 - %33 = OpLabel - %7 = OpVariable %_ptr_Function__struct_6 Function - %34 = OpAccessChain %_ptr_Function_float %7 %int_0 - %35 = OpLoad %float %34 - %36 = OpAccessChain %_ptr_Function_float %7 %int_1 - %37 = OpLoad %float %36 - %38 = OpAccessChain %_ptr_Function_float %7 %int_2 - %39 = OpLoad %float %38 - %40 = OpAccessChain %_ptr_Function_float %7 %int_3 - %41 = OpLoad %float %40 - %42 = OpCompositeConstruct %v4float %35 %37 %39 %41 - OpReturnValue %42 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/frag/descriptor-array-unnamed.asm.frag b/third_party/spirv-cross/shaders-msl/asm/frag/descriptor-array-unnamed.asm.frag deleted file mode 100644 index 7af7605d8a..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/frag/descriptor-array-unnamed.asm.frag +++ /dev/null @@ -1,63 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 39 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpDecorate %FragColor Location 0 - OpMemberDecorate %SSBO 0 NonWritable - OpMemberDecorate %SSBO 0 Offset 0 - OpDecorate %SSBO BufferBlock - OpDecorate %ssbos DescriptorSet 0 - OpDecorate %ssbos Binding 5 - OpMemberDecorate %Registers 0 Offset 0 - OpDecorate %Registers Block - OpMemberDecorate %UBO 0 Offset 0 - OpDecorate %UBO Block - OpDecorate %ubos DescriptorSet 0 - OpDecorate %ubos Binding 1 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %SSBO = OpTypeStruct %v4float - %uint = OpTypeInt 32 0 - %uint_4 = OpConstant %uint 4 -%_arr_SSBO_uint_4 = OpTypeArray %SSBO %uint_4 -%_ptr_Uniform__arr_SSBO_uint_4 = OpTypePointer Uniform %_arr_SSBO_uint_4 - %ssbos = OpVariable %_ptr_Uniform__arr_SSBO_uint_4 Uniform - %int = OpTypeInt 32 1 - %Registers = OpTypeStruct %int -%_ptr_PushConstant_Registers = OpTypePointer PushConstant %Registers - %registers = OpVariable %_ptr_PushConstant_Registers PushConstant - %int_0 = OpConstant %int 0 -%_ptr_PushConstant_int = OpTypePointer PushConstant %int -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float - %UBO = OpTypeStruct %v4float -%_arr_UBO_uint_4 = OpTypeArray %UBO %uint_4 -%_ptr_Uniform__arr_UBO_uint_4 = OpTypePointer Uniform %_arr_UBO_uint_4 - %ubos = OpVariable %_ptr_Uniform__arr_UBO_uint_4 Uniform -%float_0_200000003 = OpConstant %float 0.200000003 - %36 = OpConstantComposite %v4float %float_0_200000003 %float_0_200000003 %float_0_200000003 %float_0_200000003 - %main = OpFunction %void None %3 - %5 = OpLabel - %22 = OpAccessChain %_ptr_PushConstant_int %registers %int_0 - %23 = OpLoad %int %22 - %25 = OpAccessChain %_ptr_Uniform_v4float %ssbos %23 %int_0 - %26 = OpLoad %v4float %25 - %31 = OpAccessChain %_ptr_PushConstant_int %registers %int_0 - %32 = OpLoad %int %31 - %33 = OpAccessChain %_ptr_Uniform_v4float %ubos %32 %int_0 - %34 = OpLoad %v4float %33 - %37 = OpFMul %v4float %34 %36 - %38 = OpFAdd %v4float %26 %37 - OpStore %FragColor %38 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/frag/disable-renamed-output.frag-output.asm.frag b/third_party/spirv-cross/shaders-msl/asm/frag/disable-renamed-output.frag-output.asm.frag deleted file mode 100644 index 02d018267a..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/frag/disable-renamed-output.frag-output.asm.frag +++ /dev/null @@ -1,83 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 37 -; Schema: 0 - OpCapability Shader - OpCapability StencilExportEXT - OpExtension "SPV_EXT_shader_stencil_export" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %o0 %o1 %o2 %o3 %o4 %o5 %o6 %o7 %oDepth %oStencil - OpExecutionMode %main OriginUpperLeft - OpExecutionMode %main DepthReplacing - OpSource GLSL 450 - OpSourceExtension "GL_ARB_shader_stencil_export" - OpName %main "main" - OpName %o0 "o0" - OpName %o1 "o1" - OpName %o2 "o2" - OpName %o3 "o3" - OpName %o4 "o4" - OpName %o5 "o5" - OpName %o6 "o6" - OpName %o7 "o7" - OpName %oDepth "oDepth" - OpName %oStencil "oStencil" - OpDecorate %o0 Location 0 - OpDecorate %o1 Location 1 - OpDecorate %o2 Location 2 - OpDecorate %o3 Location 3 - OpDecorate %o4 Location 4 - OpDecorate %o5 Location 5 - OpDecorate %o6 Location 6 - OpDecorate %o7 Location 7 - OpDecorate %oDepth BuiltIn FragDepth - OpDecorate %oStencil BuiltIn FragStencilRefEXT - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %o0 = OpVariable %_ptr_Output_v4float Output - %float_0 = OpConstant %float 0 - %float_1 = OpConstant %float 1 - %12 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1 - %o1 = OpVariable %_ptr_Output_v4float Output - %14 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 - %o2 = OpVariable %_ptr_Output_v4float Output - %16 = OpConstantComposite %v4float %float_0 %float_1 %float_0 %float_1 - %o3 = OpVariable %_ptr_Output_v4float Output - %18 = OpConstantComposite %v4float %float_0 %float_0 %float_1 %float_1 - %o4 = OpVariable %_ptr_Output_v4float Output - %float_0_5 = OpConstant %float 0.5 - %21 = OpConstantComposite %v4float %float_1 %float_0 %float_1 %float_0_5 - %o5 = OpVariable %_ptr_Output_v4float Output - %float_0_25 = OpConstant %float 0.25 - %24 = OpConstantComposite %v4float %float_0_25 %float_0_25 %float_0_25 %float_0_25 - %o6 = OpVariable %_ptr_Output_v4float Output - %float_0_75 = OpConstant %float 0.75 - %27 = OpConstantComposite %v4float %float_0_75 %float_0_75 %float_0_75 %float_0_75 - %o7 = OpVariable %_ptr_Output_v4float Output - %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Output_float = OpTypePointer Output %float - %oDepth = OpVariable %_ptr_Output_float Output -%float_0_899999976 = OpConstant %float 0.899999976 - %int = OpTypeInt 32 1 -%_ptr_Output_int = OpTypePointer Output %int - %oStencil = OpVariable %_ptr_Output_int Output - %int_127 = OpConstant %int 127 - %main = OpFunction %void None %3 - %5 = OpLabel - OpStore %o0 %12 - OpStore %o1 %14 - OpStore %o2 %16 - OpStore %o3 %18 - OpStore %o4 %21 - OpStore %o5 %24 - OpStore %o6 %27 - OpStore %o7 %29 - OpStore %oDepth %float_0_899999976 - OpStore %oStencil %int_127 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/frag/empty-struct.asm.frag b/third_party/spirv-cross/shaders-msl/asm/frag/empty-struct.asm.frag deleted file mode 100644 index 0efd3158cb..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/frag/empty-struct.asm.frag +++ /dev/null @@ -1,55 +0,0 @@ -; SPIR-V -; Version: 1.2 -; Generator: Khronos; 0 -; Bound: 43 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %EntryPoint_Main "main" - OpExecutionMode %EntryPoint_Main OriginUpperLeft - OpSource Unknown 100 - OpName %EmptyStructTest "EmptyStructTest" - OpName %GetValue "GetValue" - OpName %GetValue2 "GetValue" - OpName %self "self" - OpName %self2 "self" - OpName %emptyStruct "emptyStruct" - OpName %value "value" - OpName %EntryPoint_Main "EntryPoint_Main" - -%EmptyStructTest = OpTypeStruct -%_ptr_Function_EmptyStructTest = OpTypePointer Function %EmptyStructTest - %float = OpTypeFloat 32 -%_ptr_Function_float = OpTypePointer Function %float - %5 = OpTypeFunction %float %_ptr_Function_EmptyStructTest - %6 = OpTypeFunction %float %EmptyStructTest - %void = OpTypeVoid -%_ptr_Function_void = OpTypePointer Function %void - %8 = OpTypeFunction %void %_ptr_Function_EmptyStructTest - %9 = OpTypeFunction %void - %float_0 = OpConstant %float 0 - - %GetValue = OpFunction %float None %5 - %self = OpFunctionParameter %_ptr_Function_EmptyStructTest - %13 = OpLabel - OpReturnValue %float_0 - OpFunctionEnd - - %GetValue2 = OpFunction %float None %6 - %self2 = OpFunctionParameter %EmptyStructTest - %14 = OpLabel - OpReturnValue %float_0 - OpFunctionEnd - -%EntryPoint_Main = OpFunction %void None %9 - %37 = OpLabel - %emptyStruct = OpVariable %_ptr_Function_EmptyStructTest Function - %18 = OpVariable %_ptr_Function_EmptyStructTest Function - %value = OpVariable %_ptr_Function_float Function - %value2 = OpCompositeConstruct %EmptyStructTest - %22 = OpFunctionCall %float %GetValue %emptyStruct - %23 = OpFunctionCall %float %GetValue2 %value2 - OpStore %value %22 - OpStore %value %23 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/frag/extract-packed-from-composite.asm.frag b/third_party/spirv-cross/shaders-msl/asm/frag/extract-packed-from-composite.asm.frag deleted file mode 100644 index b27f598a8e..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/frag/extract-packed-from-composite.asm.frag +++ /dev/null @@ -1,108 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 64 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %pos_1 %_entryPointOutput - OpExecutionMode %main OriginUpperLeft - OpSource HLSL 500 - OpName %main "main" - OpName %_main_vf4_ "@main(vf4;" - OpName %pos "pos" - OpName %Foo "Foo" - OpMemberName %Foo 0 "a" - OpMemberName %Foo 1 "b" - OpName %foo "foo" - OpName %Foo_0 "Foo" - OpMemberName %Foo_0 0 "a" - OpMemberName %Foo_0 1 "b" - OpName %buf "buf" - OpMemberName %buf 0 "results" - OpMemberName %buf 1 "bar" - OpName %_ "" - OpName %pos_0 "pos" - OpName %pos_1 "pos" - OpName %_entryPointOutput "@entryPointOutput" - OpName %param "param" - OpMemberDecorate %Foo_0 0 Offset 0 - OpMemberDecorate %Foo_0 1 Offset 12 - OpDecorate %_arr_Foo_0_uint_16 ArrayStride 16 - OpMemberDecorate %buf 0 Offset 0 - OpMemberDecorate %buf 1 Offset 256 - OpDecorate %buf Block - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - OpDecorate %pos_1 BuiltIn FragCoord - OpDecorate %_entryPointOutput Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Function_v4float = OpTypePointer Function %v4float - %9 = OpTypeFunction %v4float %_ptr_Function_v4float - %v3float = OpTypeVector %float 3 - %Foo = OpTypeStruct %v3float %float -%_ptr_Function_Foo = OpTypePointer Function %Foo - %Foo_0 = OpTypeStruct %v3float %float - %uint = OpTypeInt 32 0 - %uint_16 = OpConstant %uint 16 -%_arr_Foo_0_uint_16 = OpTypeArray %Foo_0 %uint_16 - %buf = OpTypeStruct %_arr_Foo_0_uint_16 %v4float -%_ptr_Uniform_buf = OpTypePointer Uniform %buf - %_ = OpVariable %_ptr_Uniform_buf Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %uint_0 = OpConstant %uint 0 -%_ptr_Function_float = OpTypePointer Function %float - %int_16 = OpConstant %int 16 -%_ptr_Uniform_Foo_0 = OpTypePointer Uniform %Foo_0 -%_ptr_Function_v3float = OpTypePointer Function %v3float - %int_1 = OpConstant %int 1 -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float - %float_0 = OpConstant %float 0 -%_ptr_Input_v4float = OpTypePointer Input %v4float - %pos_1 = OpVariable %_ptr_Input_v4float Input -%_ptr_Output_v4float = OpTypePointer Output %v4float -%_entryPointOutput = OpVariable %_ptr_Output_v4float Output - %main = OpFunction %void None %3 - %5 = OpLabel - %pos_0 = OpVariable %_ptr_Function_v4float Function - %param = OpVariable %_ptr_Function_v4float Function - %58 = OpLoad %v4float %pos_1 - OpStore %pos_0 %58 - %62 = OpLoad %v4float %pos_0 - OpStore %param %62 - %63 = OpFunctionCall %v4float %_main_vf4_ %param - OpStore %_entryPointOutput %63 - OpReturn - OpFunctionEnd - %_main_vf4_ = OpFunction %v4float None %9 - %pos = OpFunctionParameter %_ptr_Function_v4float - %12 = OpLabel - %foo = OpVariable %_ptr_Function_Foo Function - %28 = OpAccessChain %_ptr_Function_float %pos %uint_0 - %29 = OpLoad %float %28 - %30 = OpConvertFToS %int %29 - %32 = OpSMod %int %30 %int_16 - %34 = OpAccessChain %_ptr_Uniform_Foo_0 %_ %int_0 %32 - %35 = OpLoad %Foo_0 %34 - %36 = OpCompositeExtract %v3float %35 0 - %38 = OpAccessChain %_ptr_Function_v3float %foo %int_0 - OpStore %38 %36 - %39 = OpCompositeExtract %float %35 1 - %41 = OpAccessChain %_ptr_Function_float %foo %int_1 - OpStore %41 %39 - %42 = OpAccessChain %_ptr_Function_v3float %foo %int_0 - %43 = OpLoad %v3float %42 - %45 = OpAccessChain %_ptr_Uniform_v4float %_ %int_1 - %46 = OpLoad %v4float %45 - %47 = OpVectorShuffle %v3float %46 %46 0 1 2 - %48 = OpDot %float %43 %47 - %49 = OpAccessChain %_ptr_Function_float %foo %int_1 - %50 = OpLoad %float %49 - %52 = OpCompositeConstruct %v4float %48 %50 %float_0 %float_0 - OpReturnValue %52 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/frag/frem.asm.frag b/third_party/spirv-cross/shaders-msl/asm/frag/frem.asm.frag deleted file mode 100644 index 8350c75c04..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/frag/frem.asm.frag +++ /dev/null @@ -1,41 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 3 -; Bound: 16 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %vA %vB - OpExecutionMode %main OriginUpperLeft - OpSource ESSL 310 - OpName %main "main" - OpName %FragColor "FragColor" - OpName %vA "vA" - OpName %vB "vB" - OpDecorate %FragColor RelaxedPrecision - OpDecorate %FragColor Location 0 - OpDecorate %vA RelaxedPrecision - OpDecorate %vA Location 0 - OpDecorate %12 RelaxedPrecision - OpDecorate %vB RelaxedPrecision - OpDecorate %vB Location 1 - OpDecorate %14 RelaxedPrecision - OpDecorate %15 RelaxedPrecision - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output -%_ptr_Input_v4float = OpTypePointer Input %v4float - %vA = OpVariable %_ptr_Input_v4float Input - %vB = OpVariable %_ptr_Input_v4float Input - %main = OpFunction %void None %3 - %5 = OpLabel - %12 = OpLoad %v4float %vA - %14 = OpLoad %v4float %vB - %15 = OpFRem %v4float %12 %14 - OpStore %FragColor %15 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/frag/function-overload-alias.asm.frag b/third_party/spirv-cross/shaders-msl/asm/frag/function-overload-alias.asm.frag deleted file mode 100644 index 397aa98ce2..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/frag/function-overload-alias.asm.frag +++ /dev/null @@ -1,153 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 3 -; Bound: 76 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource ESSL 310 - OpName %main "main" - OpName %foobar_vf4_ "foo" - OpName %a "foo" - OpName %foobar_vf3_ "foo" - OpName %a_0 "foo" - OpName %foobaz_vf4_ "foo" - OpName %a_1 "foo" - OpName %foobaz_vf2_ "foo" - OpName %a_2 "foo" - OpName %a_3 "foo" - OpName %param "foo" - OpName %b "foo" - OpName %param_0 "foo" - OpName %c "foo" - OpName %param_1 "foo" - OpName %d "foo" - OpName %param_2 "foo" - OpName %FragColor "FragColor" - OpDecorate %foobar_vf4_ RelaxedPrecision - OpDecorate %a RelaxedPrecision - OpDecorate %foobar_vf3_ RelaxedPrecision - OpDecorate %a_0 RelaxedPrecision - OpDecorate %foobaz_vf4_ RelaxedPrecision - OpDecorate %a_1 RelaxedPrecision - OpDecorate %foobaz_vf2_ RelaxedPrecision - OpDecorate %a_2 RelaxedPrecision - OpDecorate %28 RelaxedPrecision - OpDecorate %30 RelaxedPrecision - OpDecorate %31 RelaxedPrecision - OpDecorate %34 RelaxedPrecision - OpDecorate %35 RelaxedPrecision - OpDecorate %36 RelaxedPrecision - OpDecorate %37 RelaxedPrecision - OpDecorate %40 RelaxedPrecision - OpDecorate %42 RelaxedPrecision - OpDecorate %43 RelaxedPrecision - OpDecorate %46 RelaxedPrecision - OpDecorate %47 RelaxedPrecision - OpDecorate %48 RelaxedPrecision - OpDecorate %49 RelaxedPrecision - OpDecorate %a_3 RelaxedPrecision - OpDecorate %55 RelaxedPrecision - OpDecorate %b RelaxedPrecision - OpDecorate %59 RelaxedPrecision - OpDecorate %c RelaxedPrecision - OpDecorate %62 RelaxedPrecision - OpDecorate %d RelaxedPrecision - OpDecorate %66 RelaxedPrecision - OpDecorate %FragColor RelaxedPrecision - OpDecorate %FragColor Location 0 - OpDecorate %69 RelaxedPrecision - OpDecorate %70 RelaxedPrecision - OpDecorate %71 RelaxedPrecision - OpDecorate %72 RelaxedPrecision - OpDecorate %73 RelaxedPrecision - OpDecorate %74 RelaxedPrecision - OpDecorate %75 RelaxedPrecision - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Function_v4float = OpTypePointer Function %v4float - %9 = OpTypeFunction %v4float %_ptr_Function_v4float - %v3float = OpTypeVector %float 3 -%_ptr_Function_v3float = OpTypePointer Function %v3float - %15 = OpTypeFunction %v4float %_ptr_Function_v3float - %v2float = OpTypeVector %float 2 -%_ptr_Function_v2float = OpTypePointer Function %v2float - %24 = OpTypeFunction %v4float %_ptr_Function_v2float - %float_1 = OpConstant %float 1 - %float_2 = OpConstant %float 2 - %53 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 - %57 = OpConstantComposite %v3float %float_1 %float_1 %float_1 - %64 = OpConstantComposite %v2float %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %main = OpFunction %void None %3 - %5 = OpLabel - %a_3 = OpVariable %_ptr_Function_v4float Function - %param = OpVariable %_ptr_Function_v4float Function - %b = OpVariable %_ptr_Function_v4float Function - %param_0 = OpVariable %_ptr_Function_v3float Function - %c = OpVariable %_ptr_Function_v4float Function - %param_1 = OpVariable %_ptr_Function_v4float Function - %d = OpVariable %_ptr_Function_v4float Function - %param_2 = OpVariable %_ptr_Function_v2float Function - OpStore %param %53 - %55 = OpFunctionCall %v4float %foobar_vf4_ %param - OpStore %a_3 %55 - OpStore %param_0 %57 - %59 = OpFunctionCall %v4float %foobar_vf3_ %param_0 - OpStore %b %59 - OpStore %param_1 %53 - %62 = OpFunctionCall %v4float %foobaz_vf4_ %param_1 - OpStore %c %62 - OpStore %param_2 %64 - %66 = OpFunctionCall %v4float %foobaz_vf2_ %param_2 - OpStore %d %66 - %69 = OpLoad %v4float %a_3 - %70 = OpLoad %v4float %b - %71 = OpFAdd %v4float %69 %70 - %72 = OpLoad %v4float %c - %73 = OpFAdd %v4float %71 %72 - %74 = OpLoad %v4float %d - %75 = OpFAdd %v4float %73 %74 - OpStore %FragColor %75 - OpReturn - OpFunctionEnd -%foobar_vf4_ = OpFunction %v4float None %9 - %a = OpFunctionParameter %_ptr_Function_v4float - %12 = OpLabel - %28 = OpLoad %v4float %a - %30 = OpCompositeConstruct %v4float %float_1 %float_1 %float_1 %float_1 - %31 = OpFAdd %v4float %28 %30 - OpReturnValue %31 - OpFunctionEnd -%foobar_vf3_ = OpFunction %v4float None %15 - %a_0 = OpFunctionParameter %_ptr_Function_v3float - %18 = OpLabel - %34 = OpLoad %v3float %a_0 - %35 = OpVectorShuffle %v4float %34 %34 0 1 2 2 - %36 = OpCompositeConstruct %v4float %float_1 %float_1 %float_1 %float_1 - %37 = OpFAdd %v4float %35 %36 - OpReturnValue %37 - OpFunctionEnd -%foobaz_vf4_ = OpFunction %v4float None %9 - %a_1 = OpFunctionParameter %_ptr_Function_v4float - %21 = OpLabel - %40 = OpLoad %v4float %a_1 - %42 = OpCompositeConstruct %v4float %float_2 %float_2 %float_2 %float_2 - %43 = OpFAdd %v4float %40 %42 - OpReturnValue %43 - OpFunctionEnd -%foobaz_vf2_ = OpFunction %v4float None %24 - %a_2 = OpFunctionParameter %_ptr_Function_v2float - %27 = OpLabel - %46 = OpLoad %v2float %a_2 - %47 = OpVectorShuffle %v4float %46 %46 0 1 0 1 - %48 = OpCompositeConstruct %v4float %float_2 %float_2 %float_2 %float_2 - %49 = OpFAdd %v4float %47 %48 - OpReturnValue %49 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/frag/image-extract-reuse.asm.frag b/third_party/spirv-cross/shaders-msl/asm/frag/image-extract-reuse.asm.frag deleted file mode 100644 index 63c8ab57a5..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/frag/image-extract-reuse.asm.frag +++ /dev/null @@ -1,41 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 19 -; Schema: 0 - OpCapability Shader - OpCapability ImageQuery - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %Size - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %Size "Size" - OpName %uTexture "uTexture" - OpDecorate %Size Location 0 - OpDecorate %uTexture DescriptorSet 0 - OpDecorate %uTexture Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %v2int = OpTypeVector %int 2 -%_ptr_Output_v2int = OpTypePointer Output %v2int - %Size = OpVariable %_ptr_Output_v2int Output - %float = OpTypeFloat 32 - %11 = OpTypeImage %float 2D 0 0 0 1 Unknown - %12 = OpTypeSampledImage %11 -%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12 - %uTexture = OpVariable %_ptr_UniformConstant_12 UniformConstant - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 - %main = OpFunction %void None %3 - %5 = OpLabel - %15 = OpLoad %12 %uTexture - %17 = OpImage %11 %15 - %18 = OpImageQuerySizeLod %v2int %17 %int_0 - %19 = OpImageQuerySizeLod %v2int %17 %int_1 - %20 = OpIAdd %v2int %18 %19 - OpStore %Size %20 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/frag/implicit-read-dep-phi.asm.frag b/third_party/spirv-cross/shaders-msl/asm/frag/implicit-read-dep-phi.asm.frag deleted file mode 100644 index ccdfeef58d..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/frag/implicit-read-dep-phi.asm.frag +++ /dev/null @@ -1,81 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 3 -; Bound: 60 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %v0 %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %phi "phi" - OpName %i "i" - OpName %v0 "v0" - OpName %FragColor "FragColor" - OpName %uImage "uImage" - OpDecorate %v0 Location 0 - OpDecorate %FragColor Location 0 - OpDecorate %uImage DescriptorSet 0 - OpDecorate %uImage Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 -%_ptr_Function_float = OpTypePointer Function %float - %float_1 = OpConstant %float 1 - %int = OpTypeInt 32 1 -%_ptr_Function_int = OpTypePointer Function %int - %int_0 = OpConstant %int 0 - %int_4 = OpConstant %int 4 - %bool = OpTypeBool - %v4float = OpTypeVector %float 4 -%_ptr_Input_v4float = OpTypePointer Input %v4float - %v0 = OpVariable %_ptr_Input_v4float Input -%_ptr_Input_float = OpTypePointer Input %float - %float_0 = OpConstant %float 0 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %36 = OpTypeImage %float 2D 0 0 0 1 Unknown - %37 = OpTypeSampledImage %36 -%_ptr_UniformConstant_37 = OpTypePointer UniformConstant %37 - %uImage = OpVariable %_ptr_UniformConstant_37 UniformConstant - %v2float = OpTypeVector %float 2 - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 - %float_2 = OpConstant %float 2 - %int_1 = OpConstant %int 1 - %float_1_vec = OpConstantComposite %v4float %float_1 %float_2 %float_1 %float_2 - %main = OpFunction %void None %3 - %5 = OpLabel - %i = OpVariable %_ptr_Function_int Function - OpStore %i %int_0 - OpBranch %loop_header - %loop_header = OpLabel - %phi = OpPhi %float %float_1 %5 %phi_plus_2 %continue_block - %tex_phi = OpPhi %v4float %float_1_vec %5 %texture_load_result %continue_block - OpLoopMerge %merge_block %continue_block None - OpBranch %loop_body - %loop_body = OpLabel - OpStore %FragColor %tex_phi - %19 = OpLoad %int %i - %22 = OpSLessThan %bool %19 %int_4 - OpBranchConditional %22 %15 %merge_block - %15 = OpLabel - %26 = OpLoad %int %i - %28 = OpAccessChain %_ptr_Input_float %v0 %26 - %29 = OpLoad %float %28 - %31 = OpFOrdGreaterThan %bool %29 %float_0 - OpBranchConditional %31 %continue_block %merge_block - %continue_block = OpLabel - %40 = OpLoad %37 %uImage - %43 = OpCompositeConstruct %v2float %phi %phi - %texture_load_result = OpImageSampleExplicitLod %v4float %40 %43 Lod %float_0 - %phi_plus_2 = OpFAdd %float %phi %float_2 - %54 = OpLoad %int %i - %56 = OpIAdd %int %54 %int_1 - OpStore %i %56 - OpBranch %loop_header - %merge_block = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/frag/inf-nan-constant.asm.frag b/third_party/spirv-cross/shaders-msl/asm/frag/inf-nan-constant.asm.frag deleted file mode 100644 index 40e5d3a89c..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/frag/inf-nan-constant.asm.frag +++ /dev/null @@ -1,29 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 14 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource ESSL 310 - OpName %main "main" - OpName %FragColor "FragColor" - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v3float = OpTypeVector %float 3 -%_ptr_Output_v3float = OpTypePointer Output %v3float - %FragColor = OpVariable %_ptr_Output_v3float Output -%float_0x1p_128 = OpConstant %float 0x1p+128 -%float_n0x1p_128 = OpConstant %float -0x1p+128 -%float_0x1_8p_128 = OpConstant %float 0x1.8p+128 - %13 = OpConstantComposite %v3float %float_0x1p_128 %float_n0x1p_128 %float_0x1_8p_128 - %main = OpFunction %void None %3 - %5 = OpLabel - OpStore %FragColor %13 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/frag/interpolation-qualifiers-struct.asm.frag b/third_party/spirv-cross/shaders-msl/asm/frag/interpolation-qualifiers-struct.asm.frag deleted file mode 100644 index bd6d06fa73..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/frag/interpolation-qualifiers-struct.asm.frag +++ /dev/null @@ -1,85 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 51 -; Schema: 0 - OpCapability Shader - OpCapability SampleRateShading - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %inp - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %FragColor "FragColor" - OpName %Input "Input" - OpMemberName %Input 0 "v0" - OpMemberName %Input 1 "v1" - OpMemberName %Input 2 "v2" - OpMemberName %Input 3 "v3" - OpMemberName %Input 4 "v4" - OpMemberName %Input 5 "v5" - OpMemberName %Input 6 "v6" - OpName %inp "inp" - OpDecorate %FragColor Location 0 - OpDecorate %inp Location 0 - OpMemberDecorate %Input 1 NoPerspective - OpMemberDecorate %Input 2 Centroid - OpMemberDecorate %Input 3 Centroid - OpMemberDecorate %Input 3 NoPerspective - OpMemberDecorate %Input 4 Sample - OpMemberDecorate %Input 5 Sample - OpMemberDecorate %Input 5 NoPerspective - OpMemberDecorate %Input 6 Flat - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %v2float = OpTypeVector %float 2 - %v3float = OpTypeVector %float 3 - %Input = OpTypeStruct %v2float %v2float %v3float %v4float %float %float %float -%_ptr_Input_Input = OpTypePointer Input %Input - %inp = OpVariable %_ptr_Input_Input Input - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 -%_ptr_Input_float = OpTypePointer Input %float - %int_1 = OpConstant %int 1 - %uint_1 = OpConstant %uint 1 - %int_2 = OpConstant %int 2 -%_ptr_Input_v3float = OpTypePointer Input %v3float - %int_3 = OpConstant %int 3 - %uint_3 = OpConstant %uint 3 - %int_4 = OpConstant %int 4 - %int_5 = OpConstant %int 5 - %int_6 = OpConstant %int 6 - %main = OpFunction %void None %3 - %5 = OpLabel - %20 = OpAccessChain %_ptr_Input_float %inp %int_0 %uint_0 - %21 = OpLoad %float %20 - %24 = OpAccessChain %_ptr_Input_float %inp %int_1 %uint_1 - %25 = OpLoad %float %24 - %26 = OpFAdd %float %21 %25 - %29 = OpAccessChain %_ptr_Input_v3float %inp %int_2 - %30 = OpLoad %v3float %29 - %31 = OpVectorShuffle %v2float %30 %30 0 1 - %34 = OpAccessChain %_ptr_Input_float %inp %int_3 %uint_3 - %35 = OpLoad %float %34 - %37 = OpAccessChain %_ptr_Input_float %inp %int_4 - %38 = OpLoad %float %37 - %39 = OpFMul %float %35 %38 - %41 = OpAccessChain %_ptr_Input_float %inp %int_5 - %42 = OpLoad %float %41 - %43 = OpFAdd %float %39 %42 - %45 = OpAccessChain %_ptr_Input_float %inp %int_6 - %46 = OpLoad %float %45 - %47 = OpFSub %float %43 %46 - %48 = OpCompositeExtract %float %31 0 - %49 = OpCompositeExtract %float %31 1 - %50 = OpCompositeConstruct %v4float %26 %48 %49 %47 - OpStore %FragColor %50 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/frag/line-directive.line.asm.frag b/third_party/spirv-cross/shaders-msl/asm/frag/line-directive.line.asm.frag deleted file mode 100644 index 9e08e9a891..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/frag/line-directive.line.asm.frag +++ /dev/null @@ -1,221 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Shaderc over Glslang; 7 -; Bound: 83 -; Schema: 0 - OpCapability Shader - %2 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %vColor - OpExecutionMode %main OriginUpperLeft - %1 = OpString "test.frag" - OpSource GLSL 450 %1 "// OpModuleProcessed entry-point main -// OpModuleProcessed client vulkan100 -// OpModuleProcessed target-env vulkan1.0 -// OpModuleProcessed entry-point main -#line 1 -#version 450 - -layout(location = 0) in float vColor; -layout(location = 0) out float FragColor; - -void func() -{ - FragColor = 1.0; - FragColor = 2.0; - if (vColor < 0.0) - { - FragColor = 3.0; - } - else - { - FragColor = 4.0; - } - - for (int i = 0; i < 40 + vColor; i += int(vColor) + 5) - { - FragColor += 0.2; - FragColor += 0.3; - } - - switch (int(vColor)) - { - case 0: - FragColor += 0.2; - break; - - case 1: - FragColor += 0.4; - break; - - default: - FragColor += 0.8; - break; - } - - do - { - FragColor += 10.0 + vColor; - } while(FragColor < 100.0); -} - -void main() -{ - func(); -} -" - OpSourceExtension "GL_GOOGLE_cpp_style_line_directive" - OpSourceExtension "GL_GOOGLE_include_directive" - OpName %main "main" - OpName %func_ "func(" - OpName %FragColor "FragColor" - OpName %vColor "vColor" - OpName %i "i" - OpDecorate %FragColor Location 0 - OpDecorate %vColor Location 0 - %void = OpTypeVoid - %4 = OpTypeFunction %void - %float = OpTypeFloat 32 -%_ptr_Output_float = OpTypePointer Output %float - %FragColor = OpVariable %_ptr_Output_float Output - %float_1 = OpConstant %float 1 - %float_2 = OpConstant %float 2 -%_ptr_Input_float = OpTypePointer Input %float - %vColor = OpVariable %_ptr_Input_float Input - %float_0 = OpConstant %float 0 - %bool = OpTypeBool - %float_3 = OpConstant %float 3 - %float_4 = OpConstant %float 4 - %int = OpTypeInt 32 1 - - ; Should be ignored - OpLine %1 5 0 - -%_ptr_Function_int = OpTypePointer Function %int - %int_0 = OpConstant %int 0 - %float_40 = OpConstant %float 40 -%float_0_200000003 = OpConstant %float 0.200000003 -%float_0_300000012 = OpConstant %float 0.300000012 - %int_5 = OpConstant %int 5 - - ; Should be ignored - OpLine %1 5 0 - -%float_0_400000006 = OpConstant %float 0.400000006 -%float_0_800000012 = OpConstant %float 0.800000012 - %float_10 = OpConstant %float 10 - %float_100 = OpConstant %float 100 - %main = OpFunction %void None %4 - OpLine %1 46 0 - %6 = OpLabel - OpLine %1 48 0 - %82 = OpFunctionCall %void %func_ - OpReturn - OpFunctionEnd - - ; Should be ignored - OpLine %1 5 0 - - %func_ = OpFunction %void None %4 - OpLine %1 6 0 - %8 = OpLabel - %i = OpVariable %_ptr_Function_int Function - OpLine %1 8 0 - OpStore %FragColor %float_1 - OpLine %1 9 0 - OpStore %FragColor %float_2 - OpLine %1 10 0 - %16 = OpLoad %float %vColor - %19 = OpFOrdLessThan %bool %16 %float_0 - OpSelectionMerge %21 None - OpBranchConditional %19 %20 %23 - %20 = OpLabel - OpLine %1 12 0 - OpStore %FragColor %float_3 - OpBranch %21 - %23 = OpLabel - OpLine %1 16 0 - OpStore %FragColor %float_4 - OpBranch %21 - %21 = OpLabel - OpLine %1 19 0 - OpStore %i %int_0 - OpBranch %29 - %29 = OpLabel - OpLoopMerge %31 %32 None - OpBranch %33 - %33 = OpLabel - %34 = OpLoad %int %i - %35 = OpConvertSToF %float %34 - %37 = OpLoad %float %vColor - %38 = OpFAdd %float %float_40 %37 - %39 = OpFOrdLessThan %bool %35 %38 - OpBranchConditional %39 %30 %31 - %30 = OpLabel - OpLine %1 21 0 - %41 = OpLoad %float %FragColor - %42 = OpFAdd %float %41 %float_0_200000003 - OpStore %FragColor %42 - OpLine %1 22 0 - %44 = OpLoad %float %FragColor - %45 = OpFAdd %float %44 %float_0_300000012 - OpStore %FragColor %45 - OpBranch %32 - %32 = OpLabel - OpLine %1 19 0 - %46 = OpLoad %float %vColor - %47 = OpConvertFToS %int %46 - %49 = OpIAdd %int %47 %int_5 - %50 = OpLoad %int %i - %51 = OpIAdd %int %50 %49 - OpStore %i %51 - OpBranch %29 - %31 = OpLabel - OpLine %1 25 0 - %52 = OpLoad %float %vColor - %53 = OpConvertFToS %int %52 - OpSelectionMerge %57 None - OpSwitch %53 %56 0 %54 1 %55 - %56 = OpLabel - OpLine %1 36 0 - %66 = OpLoad %float %FragColor - %67 = OpFAdd %float %66 %float_0_800000012 - OpStore %FragColor %67 - OpLine %1 37 0 - OpBranch %57 - %54 = OpLabel - OpLine %1 28 0 - %58 = OpLoad %float %FragColor - %59 = OpFAdd %float %58 %float_0_200000003 - OpStore %FragColor %59 - OpLine %1 29 0 - OpBranch %57 - %55 = OpLabel - OpLine %1 32 0 - %62 = OpLoad %float %FragColor - %63 = OpFAdd %float %62 %float_0_400000006 - OpStore %FragColor %63 - OpLine %1 33 0 - OpBranch %57 - %57 = OpLabel - OpBranch %70 - OpLine %1 43 0 - %70 = OpLabel - OpLoopMerge %72 %73 None - OpBranch %71 - %71 = OpLabel - OpLine %1 42 0 - %75 = OpLoad %float %vColor - %76 = OpFAdd %float %float_10 %75 - %77 = OpLoad %float %FragColor - %78 = OpFAdd %float %77 %76 - OpStore %FragColor %78 - OpBranch %73 - %73 = OpLabel - OpLine %1 43 0 - %79 = OpLoad %float %FragColor - %81 = OpFOrdLessThan %bool %79 %float_100 - OpBranchConditional %81 %70 %72 - %72 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/frag/locations-components.asm.frag b/third_party/spirv-cross/shaders-msl/asm/frag/locations-components.asm.frag deleted file mode 100644 index 16bfc525bc..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/frag/locations-components.asm.frag +++ /dev/null @@ -1,103 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Wine VKD3D Shader Compiler; 0 -; Bound: 67 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %8 %16 %22 %28 %33 %o0 - OpExecutionMode %main OriginUpperLeft - OpName %main "main" - OpName %v1 "v1" - OpName %v2 "v2" - OpName %o0 "o0" - OpName %r0 "r0" - OpDecorate %8 Location 1 - OpDecorate %16 Location 1 - OpDecorate %16 Component 2 - OpDecorate %22 Location 2 - OpDecorate %22 Flat - OpDecorate %28 Location 2 - OpDecorate %28 Component 1 - OpDecorate %28 Flat - OpDecorate %33 Location 2 - OpDecorate %33 Component 2 - OpDecorate %33 Flat - OpDecorate %o0 Location 0 - %void = OpTypeVoid - %2 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v2float = OpTypeVector %float 2 -%_ptr_Input_v2float = OpTypePointer Input %v2float - %8 = OpVariable %_ptr_Input_v2float Input - %v4float = OpTypeVector %float 4 -%_ptr_Private_v4float = OpTypePointer Private %v4float - %v1 = OpVariable %_ptr_Private_v4float Private -%_ptr_Input_float = OpTypePointer Input %float - %16 = OpVariable %_ptr_Input_float Input -%_ptr_Private_float = OpTypePointer Private %float - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 - %22 = OpVariable %_ptr_Input_float Input - %v2 = OpVariable %_ptr_Private_v4float Private - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint - %28 = OpVariable %_ptr_Input_uint Input - %uint_1 = OpConstant %uint 1 - %33 = OpVariable %_ptr_Input_uint Input -%_ptr_Output_v4float = OpTypePointer Output %v4float - %o0 = OpVariable %_ptr_Output_v4float Output -%_ptr_Function_v4float = OpTypePointer Function %v4float - %int = OpTypeInt 32 1 -%_ptr_Function_float = OpTypePointer Function %float -%_ptr_Output_float = OpTypePointer Output %float - %main = OpFunction %void None %2 - %4 = OpLabel - %r0 = OpVariable %_ptr_Function_v4float Function - %12 = OpLoad %v2float %8 - %13 = OpLoad %v4float %v1 - %14 = OpVectorShuffle %v4float %13 %12 4 5 2 3 - OpStore %v1 %14 - %17 = OpLoad %float %16 - %21 = OpInBoundsAccessChain %_ptr_Private_float %v1 %uint_2 - OpStore %21 %17 - %24 = OpLoad %float %22 - %26 = OpInBoundsAccessChain %_ptr_Private_float %v2 %uint_0 - OpStore %26 %24 - %29 = OpLoad %uint %28 - %30 = OpBitcast %float %29 - %32 = OpInBoundsAccessChain %_ptr_Private_float %v2 %uint_1 - OpStore %32 %30 - %34 = OpLoad %uint %33 - %35 = OpBitcast %float %34 - %36 = OpInBoundsAccessChain %_ptr_Private_float %v2 %uint_2 - OpStore %36 %35 - %42 = OpInBoundsAccessChain %_ptr_Private_float %v2 %uint_1 - %43 = OpLoad %float %42 - %44 = OpBitcast %int %43 - %45 = OpInBoundsAccessChain %_ptr_Private_float %v2 %uint_2 - %46 = OpLoad %float %45 - %47 = OpBitcast %int %46 - %48 = OpIAdd %int %44 %47 - %49 = OpBitcast %float %48 - %51 = OpInBoundsAccessChain %_ptr_Function_float %r0 %uint_0 - OpStore %51 %49 - %52 = OpInBoundsAccessChain %_ptr_Function_float %r0 %uint_0 - %53 = OpLoad %float %52 - %54 = OpBitcast %uint %53 - %55 = OpConvertUToF %float %54 - %57 = OpInBoundsAccessChain %_ptr_Output_float %o0 %uint_1 - OpStore %57 %55 - %58 = OpInBoundsAccessChain %_ptr_Private_float %v1 %uint_1 - %59 = OpLoad %float %58 - %60 = OpInBoundsAccessChain %_ptr_Private_float %v2 %uint_0 - %61 = OpLoad %float %60 - %62 = OpFAdd %float %59 %61 - %63 = OpInBoundsAccessChain %_ptr_Output_float %o0 %uint_0 - OpStore %63 %62 - %64 = OpLoad %v4float %v1 - %65 = OpLoad %v4float %o0 - %66 = OpVectorShuffle %v4float %65 %64 0 1 6 4 - OpStore %o0 %66 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/frag/lut-promotion-initializer.asm.frag b/third_party/spirv-cross/shaders-msl/asm/frag/lut-promotion-initializer.asm.frag deleted file mode 100644 index 320e5ebfbd..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/frag/lut-promotion-initializer.asm.frag +++ /dev/null @@ -1,195 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 111 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %index - OpExecutionMode %main OriginUpperLeft - OpSource ESSL 310 - OpName %main "main" - OpName %FragColor "FragColor" - OpName %index "index" - OpName %indexable "indexable" - OpName %indexable_0 "indexable" - OpName %indexable_1 "indexable" - OpName %foo "foo" - OpName %foobar "foobar" - OpName %baz "baz" - OpDecorate %FragColor RelaxedPrecision - OpDecorate %FragColor Location 0 - OpDecorate %index RelaxedPrecision - OpDecorate %index Flat - OpDecorate %index Location 0 - OpDecorate %20 RelaxedPrecision - OpDecorate %25 RelaxedPrecision - OpDecorate %26 RelaxedPrecision - OpDecorate %32 RelaxedPrecision - OpDecorate %34 RelaxedPrecision - OpDecorate %37 RelaxedPrecision - OpDecorate %38 RelaxedPrecision - OpDecorate %39 RelaxedPrecision - OpDecorate %41 RelaxedPrecision - OpDecorate %42 RelaxedPrecision - OpDecorate %45 RelaxedPrecision - OpDecorate %46 RelaxedPrecision - OpDecorate %47 RelaxedPrecision - OpDecorate %foo RelaxedPrecision - OpDecorate %61 RelaxedPrecision - OpDecorate %66 RelaxedPrecision - OpDecorate %68 RelaxedPrecision - OpDecorate %71 RelaxedPrecision - OpDecorate %72 RelaxedPrecision - OpDecorate %73 RelaxedPrecision - OpDecorate %75 RelaxedPrecision - OpDecorate %76 RelaxedPrecision - OpDecorate %79 RelaxedPrecision - OpDecorate %80 RelaxedPrecision - OpDecorate %81 RelaxedPrecision - OpDecorate %foobar RelaxedPrecision - OpDecorate %83 RelaxedPrecision - OpDecorate %90 RelaxedPrecision - OpDecorate %91 RelaxedPrecision - OpDecorate %93 RelaxedPrecision - OpDecorate %94 RelaxedPrecision - OpDecorate %95 RelaxedPrecision - OpDecorate %baz RelaxedPrecision - OpDecorate %105 RelaxedPrecision - OpDecorate %106 RelaxedPrecision - OpDecorate %108 RelaxedPrecision - OpDecorate %109 RelaxedPrecision - OpDecorate %110 RelaxedPrecision - OpDecorate %16 RelaxedPrecision - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 -%_ptr_Output_float = OpTypePointer Output %float - %FragColor = OpVariable %_ptr_Output_float Output - %uint = OpTypeInt 32 0 - %uint_16 = OpConstant %uint 16 -%_arr_float_uint_16 = OpTypeArray %float %uint_16 - %float_1 = OpConstant %float 1 - %float_2 = OpConstant %float 2 - %float_3 = OpConstant %float 3 - %float_4 = OpConstant %float 4 - %16 = OpConstantComposite %_arr_float_uint_16 %float_1 %float_2 %float_3 %float_4 %float_1 %float_2 %float_3 %float_4 %float_1 %float_2 %float_3 %float_4 %float_1 %float_2 %float_3 %float_4 - %int = OpTypeInt 32 1 -%_ptr_Input_int = OpTypePointer Input %int - %index = OpVariable %_ptr_Input_int Input -%_ptr_Function__arr_float_uint_16 = OpTypePointer Function %_arr_float_uint_16 -%_ptr_Function_float = OpTypePointer Function %float - %int_10 = OpConstant %int 10 - %bool = OpTypeBool - %int_1 = OpConstant %int 1 - %v4float = OpTypeVector %float 4 - %uint_4 = OpConstant %uint 4 -%_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4 -%_ptr_Function__arr_v4float_uint_4 = OpTypePointer Function %_arr_v4float_uint_4 - %float_0 = OpConstant %float 0 - %54 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 - %55 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 - %float_8 = OpConstant %float 8 - %57 = OpConstantComposite %v4float %float_8 %float_8 %float_8 %float_8 - %float_5 = OpConstant %float 5 - %59 = OpConstantComposite %v4float %float_5 %float_5 %float_5 %float_5 - %60 = OpConstantComposite %_arr_v4float_uint_4 %54 %55 %57 %59 - %int_30 = OpConstant %int 30 - %int_3 = OpConstant %int 3 - %uint_1 = OpConstant %uint 1 - %uint_0 = OpConstant %uint 0 - %float_20 = OpConstant %float 20 - %uint_2 = OpConstant %uint 2 - %97 = OpConstantComposite %v4float %float_20 %float_20 %float_20 %float_20 - %float_30 = OpConstant %float 30 - %99 = OpConstantComposite %v4float %float_30 %float_30 %float_30 %float_30 - %float_50 = OpConstant %float 50 - %101 = OpConstantComposite %v4float %float_50 %float_50 %float_50 %float_50 - %float_60 = OpConstant %float 60 - %103 = OpConstantComposite %v4float %float_60 %float_60 %float_60 %float_60 - %104 = OpConstantComposite %_arr_v4float_uint_4 %97 %99 %101 %103 - %main = OpFunction %void None %3 - %5 = OpLabel - %indexable = OpVariable %_ptr_Function__arr_float_uint_16 Function %16 -%indexable_0 = OpVariable %_ptr_Function__arr_float_uint_16 Function %16 -%indexable_1 = OpVariable %_ptr_Function__arr_float_uint_16 Function %16 - %foo = OpVariable %_ptr_Function__arr_v4float_uint_4 Function %60 - %foobar = OpVariable %_ptr_Function__arr_v4float_uint_4 Function %60 - %baz = OpVariable %_ptr_Function__arr_v4float_uint_4 Function %60 - %20 = OpLoad %int %index - %24 = OpAccessChain %_ptr_Function_float %indexable %20 - %25 = OpLoad %float %24 - OpStore %FragColor %25 - %26 = OpLoad %int %index - %29 = OpSLessThan %bool %26 %int_10 - OpSelectionMerge %31 None - OpBranchConditional %29 %30 %40 - %30 = OpLabel - %32 = OpLoad %int %index - %34 = OpBitwiseXor %int %32 %int_1 - %36 = OpAccessChain %_ptr_Function_float %indexable_0 %34 - %37 = OpLoad %float %36 - %38 = OpLoad %float %FragColor - %39 = OpFAdd %float %38 %37 - OpStore %FragColor %39 - OpBranch %31 - %40 = OpLabel - %41 = OpLoad %int %index - %42 = OpBitwiseAnd %int %41 %int_1 - %44 = OpAccessChain %_ptr_Function_float %indexable_1 %42 - %45 = OpLoad %float %44 - %46 = OpLoad %float %FragColor - %47 = OpFAdd %float %46 %45 - OpStore %FragColor %47 - OpBranch %31 - %31 = OpLabel - %61 = OpLoad %int %index - %63 = OpSGreaterThan %bool %61 %int_30 - OpSelectionMerge %65 None - OpBranchConditional %63 %64 %74 - %64 = OpLabel - %66 = OpLoad %int %index - %68 = OpBitwiseAnd %int %66 %int_3 - %70 = OpAccessChain %_ptr_Function_float %foo %68 %uint_1 - %71 = OpLoad %float %70 - %72 = OpLoad %float %FragColor - %73 = OpFAdd %float %72 %71 - OpStore %FragColor %73 - OpBranch %65 - %74 = OpLabel - %75 = OpLoad %int %index - %76 = OpBitwiseAnd %int %75 %int_1 - %78 = OpAccessChain %_ptr_Function_float %foo %76 %uint_0 - %79 = OpLoad %float %78 - %80 = OpLoad %float %FragColor - %81 = OpFAdd %float %80 %79 - OpStore %FragColor %81 - OpBranch %65 - %65 = OpLabel - %83 = OpLoad %int %index - %84 = OpSGreaterThan %bool %83 %int_30 - OpSelectionMerge %86 None - OpBranchConditional %84 %85 %86 - %85 = OpLabel - %89 = OpAccessChain %_ptr_Function_float %foobar %int_1 %uint_2 - OpStore %89 %float_20 - OpBranch %86 - %86 = OpLabel - %90 = OpLoad %int %index - %91 = OpBitwiseAnd %int %90 %int_3 - %92 = OpAccessChain %_ptr_Function_float %foobar %91 %uint_2 - %93 = OpLoad %float %92 - %94 = OpLoad %float %FragColor - %95 = OpFAdd %float %94 %93 - OpStore %FragColor %95 - OpStore %baz %104 - %105 = OpLoad %int %index - %106 = OpBitwiseAnd %int %105 %int_3 - %107 = OpAccessChain %_ptr_Function_float %baz %106 %uint_2 - %108 = OpLoad %float %107 - %109 = OpLoad %float %FragColor - %110 = OpFAdd %float %109 %108 - OpStore %FragColor %110 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/frag/min-lod.msl22.asm.frag b/third_party/spirv-cross/shaders-msl/asm/frag/min-lod.msl22.asm.frag deleted file mode 100644 index 0d30e1694a..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/frag/min-lod.msl22.asm.frag +++ /dev/null @@ -1,42 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 21 -; Schema: 0 - OpCapability Shader - OpCapability MinLod - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %vUV - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %FragColor "FragColor" - OpName %uSampler "uSampler" - OpName %vUV "vUV" - OpDecorate %FragColor Location 0 - OpDecorate %uSampler DescriptorSet 0 - OpDecorate %uSampler Binding 0 - OpDecorate %vUV Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %10 = OpTypeImage %float 2D 0 0 0 1 Unknown - %11 = OpTypeSampledImage %10 -%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11 - %uSampler = OpVariable %_ptr_UniformConstant_11 UniformConstant - %v2float = OpTypeVector %float 2 -%_ptr_Input_v2float = OpTypePointer Input %v2float - %vUV = OpVariable %_ptr_Input_v2float Input - %float_4 = OpConstant %float 4 - %main = OpFunction %void None %3 - %5 = OpLabel - %14 = OpLoad %11 %uSampler - %18 = OpLoad %v2float %vUV - %20 = OpImageSampleImplicitLod %v4float %14 %18 MinLod %float_4 - OpStore %FragColor %20 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/frag/op-constant-null.asm.frag b/third_party/spirv-cross/shaders-msl/asm/frag/op-constant-null.asm.frag deleted file mode 100644 index 61d2e579c8..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/frag/op-constant-null.asm.frag +++ /dev/null @@ -1,85 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 45 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource ESSL 310 - OpName %main "main" - OpName %a "a" - OpName %b "b" - OpName %c "c" - OpName %D "D" - OpMemberName %D 0 "a" - OpMemberName %D 1 "b" - OpName %d "d" - OpName %e "e" - OpName %FragColor "FragColor" - OpDecorate %a RelaxedPrecision - OpDecorate %b RelaxedPrecision - OpDecorate %c RelaxedPrecision - OpMemberDecorate %D 0 RelaxedPrecision - OpMemberDecorate %D 1 RelaxedPrecision - OpDecorate %e RelaxedPrecision - OpDecorate %FragColor RelaxedPrecision - OpDecorate %FragColor Location 0 - OpDecorate %44 RelaxedPrecision - OpDecorate %float_1 RelaxedPrecision - OpDecorate %14 RelaxedPrecision - OpDecorate %23 RelaxedPrecision - OpDecorate %41 RelaxedPrecision - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 -%_ptr_Function_float = OpTypePointer Function %float - %float_1 = OpConstantNull %float - %v4float = OpTypeVector %float 4 -%_ptr_Function_v4float = OpTypePointer Function %v4float - %float_2 = OpConstantNull %float - %14 = OpConstantNull %v4float - %v3float = OpTypeVector %float 3 -%mat2v3float = OpTypeMatrix %v3float 2 -%_ptr_Function_mat2v3float = OpTypePointer Function %mat2v3float - %float_4 = OpConstantNull %float - %20 = OpConstantNull %v3float - %float_5 = OpConstantNull %float - %22 = OpConstantNull %v3float - %23 = OpConstantNull %mat2v3float - %D = OpTypeStruct %v4float %float -%_ptr_Function_D = OpTypePointer Function %D - %27 = OpConstantNull %D - %uint = OpTypeInt 32 0 - %uint_4 = OpConstant %uint 4 -%_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4 -%_ptr_Function__arr_v4float_uint_4 = OpTypePointer Function %_arr_v4float_uint_4 - %float_10 = OpConstantNull %float - %34 = OpConstantNull %v4float - %float_11 = OpConstantNull %float - %36 = OpConstantNull %v4float - %float_12 = OpConstantNull %float - %38 = OpConstantNull %v4float - %float_13 = OpConstantNull %float - %40 = OpConstantNull %v4float - %41 = OpConstantNull %_arr_v4float_uint_4 -%_ptr_Output_float = OpTypePointer Output %float - %FragColor = OpVariable %_ptr_Output_float Output - %main = OpFunction %void None %3 - %5 = OpLabel - %a = OpVariable %_ptr_Function_float Function - %b = OpVariable %_ptr_Function_v4float Function - %c = OpVariable %_ptr_Function_mat2v3float Function - %d = OpVariable %_ptr_Function_D Function - %e = OpVariable %_ptr_Function__arr_v4float_uint_4 Function - OpStore %a %float_1 - OpStore %b %14 - OpStore %c %23 - OpStore %d %27 - OpStore %e %41 - %44 = OpLoad %float %a - OpStore %FragColor %44 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/frag/op-image-sampled-image.asm.frag b/third_party/spirv-cross/shaders-msl/asm/frag/op-image-sampled-image.asm.frag deleted file mode 100644 index bf7ec56d70..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/frag/op-image-sampled-image.asm.frag +++ /dev/null @@ -1,82 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Wine VKD3D Shader Compiler; 0 -; Bound: 54 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %o0 - OpExecutionMode %main OriginUpperLeft - OpName %main "main" - OpName %t0 "t0" - OpName %o0 "o0" - OpName %r0 "r0" - OpName %push_cb "push_cb" - OpMemberName %push_cb 0 "cb0" - OpName %dummy_sampler "dummy_sampler" - OpDecorate %t0 DescriptorSet 0 - OpDecorate %t0 Binding 2 - OpDecorate %o0 Location 0 - OpDecorate %_arr_v4float_uint_1 ArrayStride 16 - OpDecorate %push_cb Block - OpMemberDecorate %push_cb 0 Offset 0 - OpDecorate %dummy_sampler DescriptorSet 0 - OpDecorate %dummy_sampler Binding 4 - %void = OpTypeVoid - %2 = OpTypeFunction %void - %float = OpTypeFloat 32 - %6 = OpTypeImage %float 2D 0 0 0 1 Unknown -%_ptr_UniformConstant_6 = OpTypePointer UniformConstant %6 - %t0 = OpVariable %_ptr_UniformConstant_6 UniformConstant - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %o0 = OpVariable %_ptr_Output_v4float Output -%_ptr_Function_v4float = OpTypePointer Function %v4float - %uint = OpTypeInt 32 0 - %uint_1 = OpConstant %uint 1 -%_arr_v4float_uint_1 = OpTypeArray %v4float %uint_1 - %push_cb = OpTypeStruct %_arr_v4float_uint_1 -%_ptr_PushConstant_push_cb = OpTypePointer PushConstant %push_cb - %19 = OpVariable %_ptr_PushConstant_push_cb PushConstant - %uint_0 = OpConstant %uint 0 -%_ptr_PushConstant_v4float = OpTypePointer PushConstant %v4float -%_ptr_PushConstant_float = OpTypePointer PushConstant %float - %int = OpTypeInt 32 1 - %v2float = OpTypeVector %float 2 - %float_0 = OpConstant %float 0 - %30 = OpConstantComposite %v2float %float_0 %float_0 - %33 = OpTypeSampler -%_ptr_UniformConstant_33 = OpTypePointer UniformConstant %33 -%dummy_sampler = OpVariable %_ptr_UniformConstant_33 UniformConstant - %38 = OpTypeSampledImage %6 - %v2int = OpTypeVector %int 2 -%_ptr_Function_float = OpTypePointer Function %float - %uint_3 = OpConstant %uint 3 - %int_n1 = OpConstant %int -1 - %int_n2 = OpConstant %int -2 - %52 = OpConstantComposite %v2int %int_n1 %int_n2 - %main = OpFunction %void None %2 - %4 = OpLabel - %r0 = OpVariable %_ptr_Function_v4float Function - %23 = OpAccessChain %_ptr_PushConstant_v4float %19 %uint_0 %uint_0 - %25 = OpLoad %v4float %23 - %26 = OpLoad %v4float %r0 - %27 = OpVectorShuffle %v4float %26 %25 6 7 2 3 - OpStore %r0 %27 - %31 = OpLoad %v4float %r0 - %32 = OpVectorShuffle %v4float %31 %30 0 1 4 5 - OpStore %r0 %32 - %36 = OpLoad %6 %t0 - %37 = OpLoad %33 %dummy_sampler - %39 = OpSampledImage %38 %36 %37 - %40 = OpImage %6 %39 - %41 = OpLoad %v4float %r0 - %42 = OpVectorShuffle %v2float %41 %41 0 1 - %44 = OpBitcast %v2int %42 - %47 = OpInBoundsAccessChain %_ptr_Function_float %r0 %uint_3 - %48 = OpLoad %float %47 - %49 = OpBitcast %int %48 - %54 = OpImageFetch %v4float %40 %44 Lod|ConstOffset %49 %52 - OpStore %o0 %54 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/frag/pass-by-value.asm.frag b/third_party/spirv-cross/shaders-msl/asm/frag/pass-by-value.asm.frag deleted file mode 100644 index 083c85d9b0..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/frag/pass-by-value.asm.frag +++ /dev/null @@ -1,51 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 32 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %add_value_f1_f1_ "add_value(f1;f1;" - OpName %v "v" - OpName %w "w" - OpName %FragColor "FragColor" - OpName %Registers "Registers" - OpMemberName %Registers 0 "foo" - OpName %registers "registers" - OpDecorate %FragColor Location 0 - OpMemberDecorate %Registers 0 Offset 0 - OpDecorate %Registers Block - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 -%_ptr_Function_float = OpTypePointer Function %float - %8 = OpTypeFunction %float %float %float -%_ptr_Output_float = OpTypePointer Output %float - %FragColor = OpVariable %_ptr_Output_float Output - %float_10 = OpConstant %float 10 - %Registers = OpTypeStruct %float -%_ptr_PushConstant_Registers = OpTypePointer PushConstant %Registers - %registers = OpVariable %_ptr_PushConstant_Registers PushConstant - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_PushConstant_float = OpTypePointer PushConstant %float - %main = OpFunction %void None %3 - %5 = OpLabel - %29 = OpAccessChain %_ptr_PushConstant_float %registers %int_0 - %30 = OpLoad %float %29 - %31 = OpFunctionCall %float %add_value_f1_f1_ %float_10 %30 - OpStore %FragColor %31 - OpReturn - OpFunctionEnd -%add_value_f1_f1_ = OpFunction %float None %8 - %v = OpFunctionParameter %float - %w = OpFunctionParameter %float - %12 = OpLabel - %15 = OpFAdd %float %v %w - OpReturnValue %15 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/frag/phi-loop-variable.asm.frag b/third_party/spirv-cross/shaders-msl/asm/frag/phi-loop-variable.asm.frag deleted file mode 100644 index 74c46b4af8..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/frag/phi-loop-variable.asm.frag +++ /dev/null @@ -1,71 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 59 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %4 "main" - OpExecutionMode %4 OriginUpperLeft - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v2float = OpTypeVector %float 2 -%mat2v2float = OpTypeMatrix %v2float 2 -%_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float - %v3float = OpTypeVector %float 3 - %11 = OpTypeFunction %v3float %_ptr_Function_mat2v2float -%_ptr_Function_v3float = OpTypePointer Function %v3float - %float_1 = OpConstant %float 1 - %18 = OpConstantComposite %v3float %float_1 %float_1 %float_1 - %int = OpTypeInt 32 1 -%_ptr_Function_int = OpTypePointer Function %int - %int_35 = OpConstant %int 35 - %int_0 = OpConstant %int 0 - %bool = OpTypeBool - %int_1 = OpConstant %int 1 - %4 = OpFunction %void None %3 - %5 = OpLabel - OpBranch %48 - %48 = OpLabel - %58 = OpPhi %int %int_35 %5 %56 %50 - OpLoopMerge %49 %50 None - OpBranch %51 - %51 = OpLabel - %53 = OpSGreaterThanEqual %bool %58 %int_0 - OpBranchConditional %53 %54 %49 - %54 = OpLabel - OpBranch %50 - %50 = OpLabel - %56 = OpISub %int %58 %int_1 - OpBranch %48 - %49 = OpLabel - OpReturn - OpFunctionEnd - %13 = OpFunction %v3float None %11 - %12 = OpFunctionParameter %_ptr_Function_mat2v2float - %14 = OpLabel - %16 = OpVariable %_ptr_Function_v3float Function - %21 = OpVariable %_ptr_Function_int Function - OpStore %16 %18 - OpStore %21 %int_35 - OpBranch %23 - %23 = OpLabel - OpLoopMerge %25 %26 None - OpBranch %27 - %27 = OpLabel - %28 = OpLoad %int %21 - %31 = OpSGreaterThanEqual %bool %28 %int_0 - OpBranchConditional %31 %24 %25 - %24 = OpLabel - OpBranch %26 - %26 = OpLabel - %32 = OpLoad %int %21 - %34 = OpISub %int %32 %int_1 - OpStore %21 %34 - OpBranch %23 - %25 = OpLabel - %35 = OpLoad %v3float %16 - OpReturnValue %35 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/frag/pull-model-interpolation.asm.msl23.frag b/third_party/spirv-cross/shaders-msl/asm/frag/pull-model-interpolation.asm.msl23.frag deleted file mode 100644 index 9f03d77e3d..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/frag/pull-model-interpolation.asm.msl23.frag +++ /dev/null @@ -1,425 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Khronos SPIR-V Tools Assembler; 0 -; Bound: 325 -; Schema: 0 - OpCapability Shader - OpCapability SampleRateShading - OpCapability InterpolationFunction - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %baz %a %s %foo %sid %bar %b %c - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %func_ "func(" - OpName %FragColor "FragColor" - OpName %baz "baz" - OpName %a "a" - OpName %_ "" - OpMemberName %_ 0 "x" - OpMemberName %_ 1 "y" - OpMemberName %_ 2 "z" - OpMemberName %_ 3 "u" - OpMemberName %_ 4 "v" - OpMemberName %_ 5 "w" - OpName %s "s" - OpName %foo "foo" - OpName %sid "sid" - OpName %bar "bar" - OpName %b "b" - OpName %c "c" - OpDecorate %FragColor Location 0 - OpDecorate %baz Sample - OpDecorate %baz Location 2 - OpDecorate %a Location 4 - OpDecorate %s Location 10 - OpDecorate %foo NoPerspective - OpDecorate %foo Location 0 - OpDecorate %sid Flat - OpDecorate %sid Location 3 - OpDecorate %bar Centroid - OpDecorate %bar Location 1 - OpDecorate %b Centroid - OpDecorate %b Location 6 - OpDecorate %c Sample - OpDecorate %c Location 8 - OpMemberDecorate %_ 1 Centroid - OpMemberDecorate %_ 1 NoPerspective - OpMemberDecorate %_ 2 Sample - OpMemberDecorate %_ 3 Centroid - OpMemberDecorate %_ 4 Sample - OpMemberDecorate %_ 4 NoPerspective - %void = OpTypeVoid - %15 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %v2float = OpTypeVector %float 2 -%_ptr_Input_v2float = OpTypePointer Input %v2float - %baz = OpVariable %_ptr_Input_v2float Input - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 -%_ptr_Input_float = OpTypePointer Input %float -%_ptr_Output_float = OpTypePointer Output %float - %uint_1 = OpConstant %uint 1 - %int = OpTypeInt 32 1 - %int_3 = OpConstant %int 3 -%float_n0_100000001 = OpConstant %float -0.100000001 -%float_0_100000001 = OpConstant %float 0.100000001 - %30 = OpConstantComposite %v2float %float_n0_100000001 %float_0_100000001 - %uint_2 = OpConstant %uint 2 -%_arr_v2float_uint_2 = OpTypeArray %v2float %uint_2 -%_ptr_Input__arr_v2float_uint_2 = OpTypePointer Input %_arr_v2float_uint_2 - %a = OpVariable %_ptr_Input__arr_v2float_uint_2 Input - %int_1 = OpConstant %int 1 - %int_0 = OpConstant %int 0 - %int_2 = OpConstant %int 2 -%_arr_v4float_uint_2 = OpTypeArray %v4float %uint_2 -%_ptr_Input__arr_v4float_uint_2 = OpTypePointer Input %_arr_v4float_uint_2 - %uint_3 = OpConstant %uint 3 -%_arr_float_uint_3 = OpTypeArray %float %uint_3 - %_ = OpTypeStruct %v4float %v4float %v4float %_arr_v4float_uint_2 %_arr_v2float_uint_2 %_arr_float_uint_3 -%_ptr_Input__ = OpTypePointer Input %_ - %s = OpVariable %_ptr_Input__ Input -%_ptr_Input_v4float = OpTypePointer Input %v4float - %foo = OpVariable %_ptr_Input_v4float Input -%_ptr_Input_int = OpTypePointer Input %int - %sid = OpVariable %_ptr_Input_int Input - %44 = OpConstantComposite %v2float %float_0_100000001 %float_0_100000001 - %v3float = OpTypeVector %float 3 -%_ptr_Input_v3float = OpTypePointer Input %v3float - %bar = OpVariable %_ptr_Input_v3float Input - %47 = OpConstantComposite %v2float %float_n0_100000001 %float_n0_100000001 - %b = OpVariable %_ptr_Input__arr_v2float_uint_2 Input - %c = OpVariable %_ptr_Input__arr_v2float_uint_2 Input - %int_4 = OpConstant %int 4 - %int_5 = OpConstant %int 5 - %main = OpFunction %void None %15 - %50 = OpLabel - %51 = OpLoad %v4float %foo - OpStore %FragColor %51 - %52 = OpExtInst %v4float %1 InterpolateAtCentroid %foo - %53 = OpLoad %v4float %FragColor - %54 = OpFAdd %v4float %53 %52 - OpStore %FragColor %54 - %55 = OpLoad %int %sid - %56 = OpExtInst %v4float %1 InterpolateAtSample %foo %55 - %57 = OpLoad %v4float %FragColor - %58 = OpFAdd %v4float %57 %56 - OpStore %FragColor %58 - %59 = OpExtInst %v4float %1 InterpolateAtOffset %foo %44 - %60 = OpLoad %v4float %FragColor - %61 = OpFAdd %v4float %60 %59 - OpStore %FragColor %61 - %62 = OpLoad %v3float %bar - %63 = OpLoad %v4float %FragColor - %64 = OpVectorShuffle %v3float %63 %63 0 1 2 - %65 = OpFAdd %v3float %64 %62 - %66 = OpLoad %v4float %FragColor - %67 = OpVectorShuffle %v4float %66 %65 4 5 6 3 - OpStore %FragColor %67 - %68 = OpExtInst %v3float %1 InterpolateAtCentroid %bar - %69 = OpLoad %v4float %FragColor - %70 = OpVectorShuffle %v3float %69 %69 0 1 2 - %71 = OpFAdd %v3float %70 %68 - %72 = OpLoad %v4float %FragColor - %73 = OpVectorShuffle %v4float %72 %71 4 5 6 3 - OpStore %FragColor %73 - %74 = OpLoad %int %sid - %75 = OpExtInst %v3float %1 InterpolateAtSample %bar %74 - %76 = OpLoad %v4float %FragColor - %77 = OpVectorShuffle %v3float %76 %76 0 1 2 - %78 = OpFAdd %v3float %77 %75 - %79 = OpLoad %v4float %FragColor - %80 = OpVectorShuffle %v4float %79 %78 4 5 6 3 - OpStore %FragColor %80 - %81 = OpExtInst %v3float %1 InterpolateAtOffset %bar %47 - %82 = OpLoad %v4float %FragColor - %83 = OpVectorShuffle %v3float %82 %82 0 1 2 - %84 = OpFAdd %v3float %83 %81 - %85 = OpLoad %v4float %FragColor - %86 = OpVectorShuffle %v4float %85 %84 4 5 6 3 - OpStore %FragColor %86 - %87 = OpAccessChain %_ptr_Input_v2float %b %int_0 - %88 = OpLoad %v2float %87 - %89 = OpLoad %v4float %FragColor - %90 = OpVectorShuffle %v2float %89 %89 0 1 - %91 = OpFAdd %v2float %90 %88 - %92 = OpLoad %v4float %FragColor - %93 = OpVectorShuffle %v4float %92 %91 4 5 2 3 - OpStore %FragColor %93 - %94 = OpAccessChain %_ptr_Input_v2float %b %int_1 - %95 = OpExtInst %v2float %1 InterpolateAtCentroid %94 - %96 = OpLoad %v4float %FragColor - %97 = OpVectorShuffle %v2float %96 %96 0 1 - %98 = OpFAdd %v2float %97 %95 - %99 = OpLoad %v4float %FragColor - %100 = OpVectorShuffle %v4float %99 %98 4 5 2 3 - OpStore %FragColor %100 - %101 = OpAccessChain %_ptr_Input_v2float %b %int_0 - %102 = OpExtInst %v2float %1 InterpolateAtSample %101 %int_2 - %103 = OpLoad %v4float %FragColor - %104 = OpVectorShuffle %v2float %103 %103 0 1 - %105 = OpFAdd %v2float %104 %102 - %106 = OpLoad %v4float %FragColor - %107 = OpVectorShuffle %v4float %106 %105 4 5 2 3 - OpStore %FragColor %107 - %108 = OpAccessChain %_ptr_Input_v2float %b %int_1 - %109 = OpExtInst %v2float %1 InterpolateAtOffset %108 %30 - %110 = OpLoad %v4float %FragColor - %111 = OpVectorShuffle %v2float %110 %110 0 1 - %112 = OpFAdd %v2float %111 %109 - %113 = OpLoad %v4float %FragColor - %114 = OpVectorShuffle %v4float %113 %112 4 5 2 3 - OpStore %FragColor %114 - %115 = OpAccessChain %_ptr_Input_v2float %c %int_0 - %116 = OpLoad %v2float %115 - %117 = OpLoad %v4float %FragColor - %118 = OpVectorShuffle %v2float %117 %117 0 1 - %119 = OpFAdd %v2float %118 %116 - %120 = OpLoad %v4float %FragColor - %121 = OpVectorShuffle %v4float %120 %119 4 5 2 3 - OpStore %FragColor %121 - %122 = OpAccessChain %_ptr_Input_v2float %c %int_1 - %123 = OpExtInst %v2float %1 InterpolateAtCentroid %122 - %124 = OpVectorShuffle %v2float %123 %123 0 1 - %125 = OpLoad %v4float %FragColor - %126 = OpVectorShuffle %v2float %125 %125 0 1 - %127 = OpFAdd %v2float %126 %124 - %128 = OpLoad %v4float %FragColor - %129 = OpVectorShuffle %v4float %128 %127 4 5 2 3 - OpStore %FragColor %129 - %130 = OpAccessChain %_ptr_Input_v2float %c %int_0 - %131 = OpExtInst %v2float %1 InterpolateAtSample %130 %int_2 - %132 = OpVectorShuffle %v2float %131 %131 1 0 - %133 = OpLoad %v4float %FragColor - %134 = OpVectorShuffle %v2float %133 %133 0 1 - %135 = OpFAdd %v2float %134 %132 - %136 = OpLoad %v4float %FragColor - %137 = OpVectorShuffle %v4float %136 %135 4 5 2 3 - OpStore %FragColor %137 - %138 = OpAccessChain %_ptr_Input_v2float %c %int_1 - %139 = OpExtInst %v2float %1 InterpolateAtOffset %138 %30 - %140 = OpVectorShuffle %v2float %139 %139 0 0 - %141 = OpLoad %v4float %FragColor - %142 = OpVectorShuffle %v2float %141 %141 0 1 - %143 = OpFAdd %v2float %142 %140 - %144 = OpLoad %v4float %FragColor - %145 = OpVectorShuffle %v4float %144 %143 4 5 2 3 - OpStore %FragColor %145 - %146 = OpAccessChain %_ptr_Input_v4float %s %int_0 - %147 = OpLoad %v4float %146 - %148 = OpLoad %v4float %FragColor - %149 = OpFAdd %v4float %148 %147 - OpStore %FragColor %149 - %150 = OpAccessChain %_ptr_Input_v4float %s %int_0 - %151 = OpExtInst %v4float %1 InterpolateAtCentroid %150 - %152 = OpLoad %v4float %FragColor - %153 = OpFAdd %v4float %152 %151 - OpStore %FragColor %153 - %154 = OpAccessChain %_ptr_Input_v4float %s %int_0 - %155 = OpLoad %int %sid - %156 = OpExtInst %v4float %1 InterpolateAtSample %154 %155 - %157 = OpLoad %v4float %FragColor - %158 = OpFAdd %v4float %157 %156 - OpStore %FragColor %158 - %159 = OpAccessChain %_ptr_Input_v4float %s %int_0 - %160 = OpExtInst %v4float %1 InterpolateAtOffset %159 %44 - %161 = OpLoad %v4float %FragColor - %162 = OpFAdd %v4float %161 %160 - OpStore %FragColor %162 - %163 = OpAccessChain %_ptr_Input_v4float %s %int_1 - %164 = OpLoad %v4float %163 - %165 = OpLoad %v4float %FragColor - %166 = OpFAdd %v4float %165 %164 - OpStore %FragColor %166 - %167 = OpAccessChain %_ptr_Input_v4float %s %int_1 - %168 = OpExtInst %v4float %1 InterpolateAtCentroid %167 - %169 = OpLoad %v4float %FragColor - %170 = OpFAdd %v4float %169 %168 - OpStore %FragColor %170 - %171 = OpAccessChain %_ptr_Input_v4float %s %int_1 - %172 = OpLoad %int %sid - %173 = OpExtInst %v4float %1 InterpolateAtSample %171 %172 - %174 = OpLoad %v4float %FragColor - %175 = OpFAdd %v4float %174 %173 - OpStore %FragColor %175 - %176 = OpAccessChain %_ptr_Input_v4float %s %int_1 - %177 = OpExtInst %v4float %1 InterpolateAtOffset %176 %47 - %178 = OpLoad %v4float %FragColor - %179 = OpFAdd %v4float %178 %177 - OpStore %FragColor %179 - %180 = OpAccessChain %_ptr_Input_v2float %s %int_4 %int_0 - %181 = OpLoad %v2float %180 - %182 = OpLoad %v4float %FragColor - %183 = OpVectorShuffle %v2float %182 %182 0 1 - %184 = OpFAdd %v2float %183 %181 - %185 = OpLoad %v4float %FragColor - %186 = OpVectorShuffle %v4float %185 %184 4 5 2 3 - OpStore %FragColor %186 - %187 = OpAccessChain %_ptr_Input_v2float %s %int_4 %int_1 - %188 = OpExtInst %v2float %1 InterpolateAtCentroid %187 - %189 = OpLoad %v4float %FragColor - %190 = OpVectorShuffle %v2float %189 %189 0 1 - %191 = OpFAdd %v2float %190 %188 - %192 = OpLoad %v4float %FragColor - %193 = OpVectorShuffle %v4float %192 %191 4 5 2 3 - OpStore %FragColor %193 - %194 = OpAccessChain %_ptr_Input_v2float %s %int_4 %int_0 - %195 = OpExtInst %v2float %1 InterpolateAtSample %194 %int_2 - %196 = OpLoad %v4float %FragColor - %197 = OpVectorShuffle %v2float %196 %196 0 1 - %198 = OpFAdd %v2float %197 %195 - %199 = OpLoad %v4float %FragColor - %200 = OpVectorShuffle %v4float %199 %198 4 5 2 3 - OpStore %FragColor %200 - %201 = OpAccessChain %_ptr_Input_v2float %s %int_4 %int_1 - %202 = OpExtInst %v2float %1 InterpolateAtOffset %201 %30 - %203 = OpLoad %v4float %FragColor - %204 = OpVectorShuffle %v2float %203 %203 0 1 - %205 = OpFAdd %v2float %204 %202 - %206 = OpLoad %v4float %FragColor - %207 = OpVectorShuffle %v4float %206 %205 4 5 2 3 - OpStore %FragColor %207 - %208 = OpAccessChain %_ptr_Input_float %s %int_5 %int_0 - %209 = OpLoad %float %208 - %210 = OpAccessChain %_ptr_Output_float %FragColor %uint_0 - %211 = OpLoad %float %210 - %212 = OpFAdd %float %211 %209 - %213 = OpAccessChain %_ptr_Output_float %FragColor %uint_0 - OpStore %213 %212 - %214 = OpAccessChain %_ptr_Input_float %s %int_5 %int_1 - %215 = OpExtInst %float %1 InterpolateAtCentroid %214 - %216 = OpAccessChain %_ptr_Output_float %FragColor %uint_0 - %217 = OpLoad %float %216 - %218 = OpFAdd %float %217 %215 - %219 = OpAccessChain %_ptr_Output_float %FragColor %uint_0 - OpStore %219 %218 - %220 = OpAccessChain %_ptr_Input_float %s %int_5 %int_0 - %221 = OpExtInst %float %1 InterpolateAtSample %220 %int_2 - %222 = OpAccessChain %_ptr_Output_float %FragColor %uint_0 - %223 = OpLoad %float %222 - %224 = OpFAdd %float %223 %221 - %225 = OpAccessChain %_ptr_Output_float %FragColor %uint_0 - OpStore %225 %224 - %226 = OpAccessChain %_ptr_Input_float %s %int_5 %int_1 - %227 = OpExtInst %float %1 InterpolateAtOffset %226 %30 - %228 = OpAccessChain %_ptr_Output_float %FragColor %uint_0 - %229 = OpLoad %float %228 - %230 = OpFAdd %float %229 %227 - %231 = OpAccessChain %_ptr_Output_float %FragColor %uint_0 - OpStore %231 %230 - %232 = OpFunctionCall %void %func_ - OpReturn - OpFunctionEnd - %func_ = OpFunction %void None %15 - %233 = OpLabel - %234 = OpLoad %v2float %baz - %235 = OpLoad %v4float %FragColor - %236 = OpVectorShuffle %v2float %235 %235 0 1 - %237 = OpFAdd %v2float %236 %234 - %238 = OpLoad %v4float %FragColor - %239 = OpVectorShuffle %v4float %238 %237 4 5 2 3 - OpStore %FragColor %239 - %240 = OpAccessChain %_ptr_Input_float %baz %uint_0 - %241 = OpExtInst %float %1 InterpolateAtCentroid %240 - %242 = OpAccessChain %_ptr_Output_float %FragColor %uint_0 - %243 = OpLoad %float %242 - %244 = OpFAdd %float %243 %241 - %245 = OpAccessChain %_ptr_Output_float %FragColor %uint_0 - OpStore %245 %244 - %246 = OpAccessChain %_ptr_Input_float %baz %uint_1 - %247 = OpExtInst %float %1 InterpolateAtSample %246 %int_3 - %248 = OpAccessChain %_ptr_Output_float %FragColor %uint_1 - %249 = OpLoad %float %248 - %250 = OpFAdd %float %249 %247 - %251 = OpAccessChain %_ptr_Output_float %FragColor %uint_1 - OpStore %251 %250 - %252 = OpAccessChain %_ptr_Input_float %baz %uint_1 - %253 = OpExtInst %float %1 InterpolateAtOffset %252 %30 - %254 = OpAccessChain %_ptr_Output_float %FragColor %uint_2 - %255 = OpLoad %float %254 - %256 = OpFAdd %float %255 %253 - %257 = OpAccessChain %_ptr_Output_float %FragColor %uint_2 - OpStore %257 %256 - %258 = OpAccessChain %_ptr_Input_v2float %a %int_1 - %259 = OpExtInst %v2float %1 InterpolateAtCentroid %258 - %260 = OpLoad %v4float %FragColor - %261 = OpVectorShuffle %v2float %260 %260 0 1 - %262 = OpFAdd %v2float %261 %259 - %263 = OpLoad %v4float %FragColor - %264 = OpVectorShuffle %v4float %263 %262 4 5 2 3 - OpStore %FragColor %264 - %265 = OpAccessChain %_ptr_Input_v2float %a %int_0 - %266 = OpExtInst %v2float %1 InterpolateAtSample %265 %int_2 - %267 = OpLoad %v4float %FragColor - %268 = OpVectorShuffle %v2float %267 %267 0 1 - %269 = OpFAdd %v2float %268 %266 - %270 = OpLoad %v4float %FragColor - %271 = OpVectorShuffle %v4float %270 %269 4 5 2 3 - OpStore %FragColor %271 - %272 = OpAccessChain %_ptr_Input_v2float %a %int_1 - %273 = OpExtInst %v2float %1 InterpolateAtOffset %272 %30 - %274 = OpLoad %v4float %FragColor - %275 = OpVectorShuffle %v2float %274 %274 0 1 - %276 = OpFAdd %v2float %275 %273 - %277 = OpLoad %v4float %FragColor - %278 = OpVectorShuffle %v4float %277 %276 4 5 2 3 - OpStore %FragColor %278 - %279 = OpAccessChain %_ptr_Input_v4float %s %int_2 - %280 = OpLoad %v4float %279 - %281 = OpLoad %v4float %FragColor - %282 = OpFAdd %v4float %281 %280 - OpStore %FragColor %282 - %283 = OpAccessChain %_ptr_Input_v4float %s %int_2 - %284 = OpExtInst %v4float %1 InterpolateAtCentroid %283 - %285 = OpVectorShuffle %v2float %284 %284 1 1 - %286 = OpLoad %v4float %FragColor - %287 = OpVectorShuffle %v2float %286 %286 0 1 - %288 = OpFAdd %v2float %287 %285 - %289 = OpLoad %v4float %FragColor - %290 = OpVectorShuffle %v4float %289 %288 4 5 2 3 - OpStore %FragColor %290 - %291 = OpAccessChain %_ptr_Input_v4float %s %int_2 - %292 = OpExtInst %v4float %1 InterpolateAtSample %291 %int_3 - %293 = OpVectorShuffle %v2float %292 %292 0 1 - %294 = OpLoad %v4float %FragColor - %295 = OpVectorShuffle %v2float %294 %294 1 2 - %296 = OpFAdd %v2float %295 %293 - %297 = OpLoad %v4float %FragColor - %298 = OpVectorShuffle %v4float %297 %296 0 4 5 3 - OpStore %FragColor %298 - %299 = OpAccessChain %_ptr_Input_v4float %s %int_2 - %300 = OpExtInst %v4float %1 InterpolateAtOffset %299 %30 - %301 = OpVectorShuffle %v2float %300 %300 3 0 - %302 = OpLoad %v4float %FragColor - %303 = OpVectorShuffle %v2float %302 %302 2 3 - %304 = OpFAdd %v2float %303 %301 - %305 = OpLoad %v4float %FragColor - %306 = OpVectorShuffle %v4float %305 %304 0 1 4 5 - OpStore %FragColor %306 - %308 = OpAccessChain %_ptr_Input_v4float %s %int_3 %int_0 - %309 = OpLoad %v4float %308 - %310 = OpLoad %v4float %FragColor - %311 = OpFAdd %v4float %310 %309 - OpStore %FragColor %311 - %312 = OpAccessChain %_ptr_Input__arr_v4float_uint_2 %s %int_3 - %313 = OpAccessChain %_ptr_Input_v4float %312 %int_1 - %314 = OpExtInst %v4float %1 InterpolateAtCentroid %313 - %315 = OpLoad %v4float %FragColor - %316 = OpFAdd %v4float %315 %314 - OpStore %FragColor %316 - %317 = OpAccessChain %_ptr_Input_v4float %s %int_3 %int_0 - %318 = OpExtInst %v4float %1 InterpolateAtSample %317 %int_2 - %319 = OpLoad %v4float %FragColor - %320 = OpFAdd %v4float %319 %318 - OpStore %FragColor %320 - %321 = OpAccessChain %_ptr_Input_v4float %s %int_3 %int_1 - %322 = OpExtInst %v4float %1 InterpolateAtOffset %321 %30 - %323 = OpLoad %v4float %FragColor - %324 = OpFAdd %v4float %323 %322 - OpStore %FragColor %324 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/frag/sample-and-compare.asm.frag b/third_party/spirv-cross/shaders-msl/asm/frag/sample-and-compare.asm.frag deleted file mode 100644 index 16dcd0d6e0..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/frag/sample-and-compare.asm.frag +++ /dev/null @@ -1,61 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 32 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %in_var_TEXCOORD0 %out_var_SV_Target - OpExecutionMode %main OriginUpperLeft - OpSource HLSL 600 - OpName %type_2d_image "type.2d.image" - OpName %g_Texture "g_Texture" - OpName %type_sampler "type.sampler" - OpName %g_Sampler "g_Sampler" - OpName %g_CompareSampler "g_CompareSampler" - OpName %in_var_TEXCOORD0 "in.var.TEXCOORD0" - OpName %out_var_SV_Target "out.var.SV_Target" - OpName %main "main" - OpName %type_sampled_image "type.sampled.image" - OpDecorate %in_var_TEXCOORD0 Location 0 - OpDecorate %out_var_SV_Target Location 0 - OpDecorate %g_Texture DescriptorSet 0 - OpDecorate %g_Texture Binding 0 - OpDecorate %g_Sampler DescriptorSet 0 - OpDecorate %g_Sampler Binding 0 - OpDecorate %g_CompareSampler DescriptorSet 0 - OpDecorate %g_CompareSampler Binding 1 - %float = OpTypeFloat 32 - %float_0_5 = OpConstant %float 0.5 - %float_0 = OpConstant %float 0 -%type_2d_image = OpTypeImage %float 2D 2 0 0 1 Unknown -%_ptr_UniformConstant_type_2d_image = OpTypePointer UniformConstant %type_2d_image -%type_sampler = OpTypeSampler -%_ptr_UniformConstant_type_sampler = OpTypePointer UniformConstant %type_sampler - %v2float = OpTypeVector %float 2 -%_ptr_Input_v2float = OpTypePointer Input %v2float -%_ptr_Output_float = OpTypePointer Output %float - %void = OpTypeVoid - %19 = OpTypeFunction %void -%type_sampled_image = OpTypeSampledImage %type_2d_image - %v4float = OpTypeVector %float 4 - %g_Texture = OpVariable %_ptr_UniformConstant_type_2d_image UniformConstant - %g_Sampler = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant -%g_CompareSampler = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant -%in_var_TEXCOORD0 = OpVariable %_ptr_Input_v2float Input -%out_var_SV_Target = OpVariable %_ptr_Output_float Output - %main = OpFunction %void None %19 - %21 = OpLabel - %22 = OpLoad %v2float %in_var_TEXCOORD0 - %23 = OpLoad %type_2d_image %g_Texture - %24 = OpLoad %type_sampler %g_Sampler - %25 = OpSampledImage %type_sampled_image %23 %24 - %26 = OpImageSampleImplicitLod %v4float %25 %22 None - %27 = OpCompositeExtract %float %26 0 - %28 = OpLoad %type_sampler %g_CompareSampler - %29 = OpSampledImage %type_sampled_image %23 %28 - %30 = OpImageSampleDrefExplicitLod %float %29 %22 %float_0_5 Lod %float_0 - %31 = OpFAdd %float %27 %30 - OpStore %out_var_SV_Target %31 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/frag/single-function-private-lut.asm.frag b/third_party/spirv-cross/shaders-msl/asm/frag/single-function-private-lut.asm.frag deleted file mode 100644 index 0d5b29c638..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/frag/single-function-private-lut.asm.frag +++ /dev/null @@ -1,86 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Khronos SPIR-V Tools Assembler; 0 -; Bound: 54 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %gl_FragCoord %o_color - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 460 - OpName %main "main" - OpName %myType "myType" - OpMemberName %myType 0 "data" - OpName %myData "myData" - OpName %uv "uv" - OpName %gl_FragCoord "gl_FragCoord" - OpName %index "index" - OpName %elt "elt" - OpName %o_color "o_color" - OpDecorate %gl_FragCoord BuiltIn FragCoord - OpDecorate %o_color Location 0 - %void = OpTypeVoid - %11 = OpTypeFunction %void - %float = OpTypeFloat 32 - %myType = OpTypeStruct %float - %uint = OpTypeInt 32 0 - %uint_5 = OpConstant %uint 5 -%_arr_myType_uint_5 = OpTypeArray %myType %uint_5 -%_ptr_Private__arr_myType_uint_5 = OpTypePointer Private %_arr_myType_uint_5 - %myData = OpVariable %_ptr_Private__arr_myType_uint_5 Private - %float_0 = OpConstant %float 0 - %18 = OpConstantComposite %myType %float_0 - %float_1 = OpConstant %float 1 - %20 = OpConstantComposite %myType %float_1 - %21 = OpConstantComposite %_arr_myType_uint_5 %18 %20 %18 %20 %18 - %v2float = OpTypeVector %float 2 -%_ptr_Function_v2float = OpTypePointer Function %v2float - %v4float = OpTypeVector %float 4 -%_ptr_Input_v4float = OpTypePointer Input %v4float -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input - %int = OpTypeInt 32 1 -%_ptr_Function_int = OpTypePointer Function %int - %uint_0 = OpConstant %uint 0 -%_ptr_Function_float = OpTypePointer Function %float - %float_4 = OpConstant %float 4 -%_ptr_Function_myType = OpTypePointer Function %myType -%_ptr_Private_myType = OpTypePointer Private %myType - %int_0 = OpConstant %int 0 - %bool = OpTypeBool -%_ptr_Output_v4float = OpTypePointer Output %v4float - %o_color = OpVariable %_ptr_Output_v4float Output - %36 = OpConstantComposite %v4float %float_0 %float_1 %float_0 %float_1 - %37 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 - %main = OpFunction %void None %11 - %38 = OpLabel - %uv = OpVariable %_ptr_Function_v2float Function - %index = OpVariable %_ptr_Function_int Function - %elt = OpVariable %_ptr_Function_myType Function - OpStore %myData %21 - %39 = OpLoad %v4float %gl_FragCoord - %40 = OpVectorShuffle %v2float %39 %39 0 1 - OpStore %uv %40 - %41 = OpAccessChain %_ptr_Function_float %uv %uint_0 - %42 = OpLoad %float %41 - %43 = OpFMod %float %42 %float_4 - %44 = OpConvertFToS %int %43 - OpStore %index %44 - %45 = OpLoad %int %index - %46 = OpAccessChain %_ptr_Private_myType %myData %45 - %47 = OpLoad %myType %46 - OpStore %elt %47 - %48 = OpAccessChain %_ptr_Function_float %elt %int_0 - %49 = OpLoad %float %48 - %50 = OpFOrdGreaterThan %bool %49 %float_0 - OpSelectionMerge %51 None - OpBranchConditional %50 %52 %53 - %52 = OpLabel - OpStore %o_color %36 - OpBranch %51 - %53 = OpLabel - OpStore %o_color %37 - OpBranch %51 - %51 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/frag/srem.asm.frag b/third_party/spirv-cross/shaders-msl/asm/frag/srem.asm.frag deleted file mode 100644 index c6f8e27cbd..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/frag/srem.asm.frag +++ /dev/null @@ -1,43 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 2 -; Bound: 23 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %vA %vB - OpExecutionMode %main OriginUpperLeft - OpSource ESSL 310 - OpName %main "main" - OpName %FragColor "FragColor" - OpName %vA "vA" - OpName %vB "vB" - OpDecorate %FragColor RelaxedPrecision - OpDecorate %FragColor Location 0 - OpDecorate %vA Flat - OpDecorate %vA Location 0 - OpDecorate %vB Flat - OpDecorate %vB Location 1 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %int = OpTypeInt 32 1 - %v4int = OpTypeVector %int 4 -%_ptr_Input_v4int = OpTypePointer Input %v4int - %vA = OpVariable %_ptr_Input_v4int Input - %vB = OpVariable %_ptr_Input_v4int Input - %main = OpFunction %void None %3 - %5 = OpLabel - %14 = OpLoad %v4int %vA - %16 = OpLoad %v4int %vB - %17 = OpLoad %v4int %vA - %18 = OpLoad %v4int %vB - %19 = OpSRem %v4int %17 %18 - %20 = OpConvertSToF %v4float %19 - OpStore %FragColor %20 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/frag/storage-class-output-initializer.asm.frag b/third_party/spirv-cross/shaders-msl/asm/frag/storage-class-output-initializer.asm.frag deleted file mode 100644 index 7763b7c17c..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/frag/storage-class-output-initializer.asm.frag +++ /dev/null @@ -1,41 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 25 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColors %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %FragColors "FragColors" - OpName %FragColor "FragColor" - OpDecorate %FragColors Location 0 - OpDecorate %FragColor Location 2 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 -%_arr_v4float_uint_2 = OpTypeArray %v4float %uint_2 -%_ptr_Output__arr_v4float_uint_2 = OpTypePointer Output %_arr_v4float_uint_2 - %float_1 = OpConstant %float 1 - %float_2 = OpConstant %float 2 - %float_3 = OpConstant %float 3 - %float_4 = OpConstant %float 4 - %17 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4 - %float_10 = OpConstant %float 10 - %19 = OpConstantComposite %v4float %float_10 %float_10 %float_10 %float_10 - %20 = OpConstantComposite %_arr_v4float_uint_2 %17 %19 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %float_5 = OpConstant %float 5 - %24 = OpConstantComposite %v4float %float_5 %float_5 %float_5 %float_5 - %FragColors = OpVariable %_ptr_Output__arr_v4float_uint_2 Output %20 - %FragColor = OpVariable %_ptr_Output_v4float Output %24 - %main = OpFunction %void None %3 - %5 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/frag/texel-fetch-no-lod.asm.frag b/third_party/spirv-cross/shaders-msl/asm/frag/texel-fetch-no-lod.asm.frag deleted file mode 100644 index 53dc63809c..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/frag/texel-fetch-no-lod.asm.frag +++ /dev/null @@ -1,46 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 26 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %gl_FragCoord - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %FragColor "FragColor" - OpName %uTexture "uTexture" - OpName %gl_FragCoord "gl_FragCoord" - OpDecorate %FragColor Location 0 - OpDecorate %uTexture DescriptorSet 0 - OpDecorate %uTexture Binding 0 - OpDecorate %gl_FragCoord BuiltIn FragCoord - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %10 = OpTypeImage %float 2D 0 0 0 1 Unknown - %11 = OpTypeSampledImage %10 -%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11 - %uTexture = OpVariable %_ptr_UniformConstant_11 UniformConstant -%_ptr_Input_v4float = OpTypePointer Input %v4float -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input - %v2float = OpTypeVector %float 2 - %int = OpTypeInt 32 1 - %v2int = OpTypeVector %int 2 - %int_0 = OpConstant %int 0 - %main = OpFunction %void None %3 - %5 = OpLabel - %14 = OpLoad %11 %uTexture - %18 = OpLoad %v4float %gl_FragCoord - %19 = OpVectorShuffle %v2float %18 %18 0 1 - %22 = OpConvertFToS %v2int %19 - %24 = OpImage %10 %14 - %25 = OpImageFetch %v4float %24 %22 - OpStore %FragColor %25 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/frag/texture-sampling-fp16.asm.frag b/third_party/spirv-cross/shaders-msl/asm/frag/texture-sampling-fp16.asm.frag deleted file mode 100644 index e7e6f37ea2..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/frag/texture-sampling-fp16.asm.frag +++ /dev/null @@ -1,47 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 25 -; Schema: 0 - OpCapability Shader - OpCapability StorageInputOutput16 - OpCapability Float16 - OpExtension "SPV_KHR_16bit_storage" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %UV - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpSourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16" - OpName %main "main" - OpName %FragColor "FragColor" - OpName %uTexture "uTexture" - OpName %UV "UV" - OpDecorate %FragColor Location 0 - OpDecorate %uTexture DescriptorSet 0 - OpDecorate %uTexture Binding 0 - OpDecorate %UV Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %half = OpTypeFloat 16 - %float = OpTypeFloat 32 - %v4half = OpTypeVector %half 4 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4half = OpTypePointer Output %v4half - %FragColor = OpVariable %_ptr_Output_v4half Output - %11 = OpTypeImage %float 2D 0 0 0 1 Unknown - %12 = OpTypeSampledImage %11 -%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12 - %uTexture = OpVariable %_ptr_UniformConstant_12 UniformConstant - %v2half = OpTypeVector %half 2 -%_ptr_Input_v2half = OpTypePointer Input %v2half - %UV = OpVariable %_ptr_Input_v2half Input - %main = OpFunction %void None %3 - %5 = OpLabel - %15 = OpLoad %12 %uTexture - %19 = OpLoad %v2half %UV - %23 = OpImageSampleImplicitLod %v4float %15 %19 - %24 = OpFConvert %v4half %23 - OpStore %FragColor %24 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/frag/undef-variable-store.asm.frag b/third_party/spirv-cross/shaders-msl/asm/frag/undef-variable-store.asm.frag deleted file mode 100644 index 966c2d9d5a..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/frag/undef-variable-store.asm.frag +++ /dev/null @@ -1,85 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 50 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %fragmentProgram "main" %_entryPointOutput - OpExecutionMode %fragmentProgram OriginUpperLeft - OpSource HLSL 500 - OpName %fragmentProgram "fragmentProgram" - OpName %_fragmentProgram_ "@fragmentProgram(" - OpName %uv "uv" - OpName %_entryPointOutput "@entryPointOutput" - OpDecorate %_entryPointOutput Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %8 = OpTypeFunction %v4float - %v2float = OpTypeVector %float 2 -%_ptr_Function_v2float = OpTypePointer Function %v2float - %float_0 = OpConstant %float 0 - %15 = OpConstantComposite %v2float %float_0 %float_0 - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 -%_ptr_Function_float = OpTypePointer Function %float - %bool = OpTypeBool - %float_1 = OpConstant %float 1 - %26 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 - %29 = OpConstantComposite %v4float %float_1 %float_1 %float_0 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float -%_entryPointOutput = OpVariable %_ptr_Output_v4float Output -%_ptr_Function_v4float = OpTypePointer Function %v4float - %false = OpConstantFalse %bool -%fragmentProgram = OpFunction %void None %3 - %5 = OpLabel - %35 = OpVariable %_ptr_Function_v2float Function - %37 = OpVariable %_ptr_Function_v4float Function - OpBranch %38 - %38 = OpLabel - OpLoopMerge %39 %40 None - OpBranch %41 - %41 = OpLabel - OpStore %35 %15 - %42 = OpAccessChain %_ptr_Function_float %35 %uint_0 - %43 = OpLoad %float %42 - %44 = OpFOrdNotEqual %bool %43 %float_0 - OpSelectionMerge %45 None - OpBranchConditional %44 %46 %47 - %46 = OpLabel - OpStore %37 %26 - OpBranch %39 - %47 = OpLabel - OpStore %37 %29 - OpBranch %39 - %45 = OpLabel - %48 = OpUndef %v4float - OpStore %37 %48 - OpBranch %39 - %40 = OpLabel - OpBranchConditional %false %38 %39 - %39 = OpLabel - %34 = OpLoad %v4float %37 - OpStore %_entryPointOutput %34 - OpReturn - OpFunctionEnd -%_fragmentProgram_ = OpFunction %v4float None %8 - %10 = OpLabel - %uv = OpVariable %_ptr_Function_v2float Function - OpStore %uv %15 - %19 = OpAccessChain %_ptr_Function_float %uv %uint_0 - %20 = OpLoad %float %19 - %22 = OpFOrdNotEqual %bool %20 %float_0 - OpSelectionMerge %24 None - OpBranchConditional %22 %23 %28 - %23 = OpLabel - OpReturnValue %26 - %28 = OpLabel - OpReturnValue %29 - %24 = OpLabel - %31 = OpUndef %v4float - OpReturnValue %31 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/frag/unknown-depth-state.asm.frag b/third_party/spirv-cross/shaders-msl/asm/frag/unknown-depth-state.asm.frag deleted file mode 100644 index 89036f0eb2..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/frag/unknown-depth-state.asm.frag +++ /dev/null @@ -1,71 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 44 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %vUV %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %sample_combined_ "sample_combined(" - OpName %sample_separate_ "sample_separate(" - OpName %uShadow "uShadow" - OpName %vUV "vUV" - OpName %uTexture "uTexture" - OpName %uSampler "uSampler" - OpName %FragColor "FragColor" - OpDecorate %uShadow DescriptorSet 0 - OpDecorate %uShadow Binding 0 - OpDecorate %vUV Location 0 - OpDecorate %uTexture DescriptorSet 0 - OpDecorate %uTexture Binding 1 - OpDecorate %uSampler DescriptorSet 0 - OpDecorate %uSampler Binding 2 - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %7 = OpTypeFunction %float - %12 = OpTypeImage %float 2D 2 0 0 1 Unknown - %13 = OpTypeSampledImage %12 -%_ptr_UniformConstant_13 = OpTypePointer UniformConstant %13 - %uShadow = OpVariable %_ptr_UniformConstant_13 UniformConstant - %v3float = OpTypeVector %float 3 -%_ptr_Input_v3float = OpTypePointer Input %v3float - %vUV = OpVariable %_ptr_Input_v3float Input -%_ptr_UniformConstant_25 = OpTypePointer UniformConstant %12 - %uTexture = OpVariable %_ptr_UniformConstant_25 UniformConstant - %29 = OpTypeSampler -%_ptr_UniformConstant_29 = OpTypePointer UniformConstant %29 - %uSampler = OpVariable %_ptr_UniformConstant_29 UniformConstant -%_ptr_Output_float = OpTypePointer Output %float - %FragColor = OpVariable %_ptr_Output_float Output - %main = OpFunction %void None %3 - %5 = OpLabel - %41 = OpFunctionCall %float %sample_combined_ - %42 = OpFunctionCall %float %sample_separate_ - %43 = OpFAdd %float %41 %42 - OpStore %FragColor %43 - OpReturn - OpFunctionEnd -%sample_combined_ = OpFunction %float None %7 - %9 = OpLabel - %16 = OpLoad %13 %uShadow - %20 = OpLoad %v3float %vUV - %21 = OpCompositeExtract %float %20 2 - %22 = OpImageSampleDrefImplicitLod %float %16 %20 %21 - OpReturnValue %22 - OpFunctionEnd -%sample_separate_ = OpFunction %float None %7 - %11 = OpLabel - %28 = OpLoad %12 %uTexture - %32 = OpLoad %29 %uSampler - %33 = OpSampledImage %13 %28 %32 - %34 = OpLoad %v3float %vUV - %35 = OpCompositeExtract %float %34 2 - %36 = OpImageSampleDrefImplicitLod %float %33 %34 %35 - OpReturnValue %36 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/frag/unord-relational-op.asm.frag b/third_party/spirv-cross/shaders-msl/asm/frag/unord-relational-op.asm.frag deleted file mode 100644 index 3e4cd6c2c2..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/frag/unord-relational-op.asm.frag +++ /dev/null @@ -1,205 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 122 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %c %d %e %f %g %h %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 460 - OpName %main "main" - OpName %t0 "t0" - OpName %a "a" - OpName %t1 "t1" - OpName %b "b" - OpName %c1 "c1" - OpName %c2 "c2" - OpName %c3 "c3" - OpName %c4 "c4" - OpName %c5 "c5" - OpName %c6 "c6" - OpName %c7 "c7" - OpName %c "c" - OpName %d "d" - OpName %c8 "c8" - OpName %c9 "c9" - OpName %c10 "c10" - OpName %c11 "c11" - OpName %c12 "c12" - OpName %c13 "c13" - OpName %e "e" - OpName %f "f" - OpName %c14 "c14" - OpName %c15 "c15" - OpName %c16 "c16" - OpName %c17 "c17" - OpName %c18 "c18" - OpName %c19 "c19" - OpName %g "g" - OpName %h "h" - OpName %c20 "c20" - OpName %c21 "c21" - OpName %c22 "c22" - OpName %c23 "c23" - OpName %c24 "c24" - OpName %FragColor "FragColor" - OpDecorate %a SpecId 1 - OpDecorate %b SpecId 2 - OpDecorate %c Location 2 - OpDecorate %d Location 3 - OpDecorate %e Location 4 - OpDecorate %f Location 5 - OpDecorate %g Location 6 - OpDecorate %h Location 7 - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 -%_ptr_Function_float = OpTypePointer Function %float - %a = OpSpecConstant %float 1 - %b = OpSpecConstant %float 2 - %bool = OpTypeBool -%_ptr_Function_bool = OpTypePointer Function %bool - %v2bool = OpTypeVector %bool 2 -%_ptr_Function_v2bool = OpTypePointer Function %v2bool - %v2float = OpTypeVector %float 2 -%_ptr_Input_v2float = OpTypePointer Input %v2float - %c = OpVariable %_ptr_Input_v2float Input - %d = OpVariable %_ptr_Input_v2float Input - %v3bool = OpTypeVector %bool 3 -%_ptr_Function_v3bool = OpTypePointer Function %v3bool - %v3float = OpTypeVector %float 3 -%_ptr_Input_v3float = OpTypePointer Input %v3float - %e = OpVariable %_ptr_Input_v3float Input - %f = OpVariable %_ptr_Input_v3float Input - %v4bool = OpTypeVector %bool 4 -%_ptr_Function_v4bool = OpTypePointer Function %v4bool - %v4float = OpTypeVector %float 4 -%_ptr_Input_v4float = OpTypePointer Input %v4float - %g = OpVariable %_ptr_Input_v4float Input - %h = OpVariable %_ptr_Input_v4float Input -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %main = OpFunction %void None %3 - %5 = OpLabel - %t0 = OpVariable %_ptr_Function_float Function - %t1 = OpVariable %_ptr_Function_float Function - %c1 = OpVariable %_ptr_Function_bool Function - %c2 = OpVariable %_ptr_Function_bool Function - %c3 = OpVariable %_ptr_Function_bool Function - %c4 = OpVariable %_ptr_Function_bool Function - %c5 = OpVariable %_ptr_Function_bool Function - %c6 = OpVariable %_ptr_Function_bool Function - %c7 = OpVariable %_ptr_Function_v2bool Function - %c8 = OpVariable %_ptr_Function_v2bool Function - %c9 = OpVariable %_ptr_Function_v2bool Function - %c10 = OpVariable %_ptr_Function_v2bool Function - %c11 = OpVariable %_ptr_Function_v2bool Function - %c12 = OpVariable %_ptr_Function_v2bool Function - %c13 = OpVariable %_ptr_Function_v3bool Function - %c14 = OpVariable %_ptr_Function_v3bool Function - %c15 = OpVariable %_ptr_Function_v3bool Function - %c16 = OpVariable %_ptr_Function_v3bool Function - %c17 = OpVariable %_ptr_Function_v3bool Function - %c18 = OpVariable %_ptr_Function_v3bool Function - %c19 = OpVariable %_ptr_Function_v4bool Function - %c20 = OpVariable %_ptr_Function_v4bool Function - %c21 = OpVariable %_ptr_Function_v4bool Function - %c22 = OpVariable %_ptr_Function_v4bool Function - %c23 = OpVariable %_ptr_Function_v4bool Function - %c24 = OpVariable %_ptr_Function_v4bool Function - OpStore %t0 %a - OpStore %t1 %b - %15 = OpFUnordEqual %bool %a %b - OpStore %c1 %15 - %17 = OpFUnordNotEqual %bool %a %b - OpStore %c2 %17 - %19 = OpFUnordLessThan %bool %a %b - OpStore %c3 %19 - %21 = OpFUnordGreaterThan %bool %a %b - OpStore %c4 %21 - %23 = OpFUnordLessThanEqual %bool %a %b - OpStore %c5 %23 - %25 = OpFUnordGreaterThanEqual %bool %a %b - OpStore %c6 %25 - %32 = OpLoad %v2float %c - %34 = OpLoad %v2float %d - %35 = OpFUnordEqual %v2bool %32 %34 - OpStore %c7 %35 - %37 = OpLoad %v2float %c - %38 = OpLoad %v2float %d - %39 = OpFUnordNotEqual %v2bool %37 %38 - OpStore %c8 %39 - %41 = OpLoad %v2float %c - %42 = OpLoad %v2float %d - %43 = OpFUnordLessThan %v2bool %41 %42 - OpStore %c9 %43 - %45 = OpLoad %v2float %c - %46 = OpLoad %v2float %d - %47 = OpFUnordGreaterThan %v2bool %45 %46 - OpStore %c10 %47 - %49 = OpLoad %v2float %c - %50 = OpLoad %v2float %d - %51 = OpFUnordLessThanEqual %v2bool %49 %50 - OpStore %c11 %51 - %53 = OpLoad %v2float %c - %54 = OpLoad %v2float %d - %55 = OpFUnordGreaterThanEqual %v2bool %53 %54 - OpStore %c12 %55 - %62 = OpLoad %v3float %e - %64 = OpLoad %v3float %f - %65 = OpFUnordEqual %v3bool %62 %64 - OpStore %c13 %65 - %67 = OpLoad %v3float %e - %68 = OpLoad %v3float %f - %69 = OpFUnordNotEqual %v3bool %67 %68 - OpStore %c14 %69 - %71 = OpLoad %v3float %e - %72 = OpLoad %v3float %f - %73 = OpFUnordLessThan %v3bool %71 %72 - OpStore %c15 %73 - %75 = OpLoad %v3float %e - %76 = OpLoad %v3float %f - %77 = OpFUnordGreaterThan %v3bool %75 %76 - OpStore %c16 %77 - %79 = OpLoad %v3float %e - %80 = OpLoad %v3float %f - %81 = OpFUnordLessThanEqual %v3bool %79 %80 - OpStore %c17 %81 - %83 = OpLoad %v3float %e - %84 = OpLoad %v3float %f - %85 = OpFUnordGreaterThanEqual %v3bool %83 %84 - OpStore %c18 %85 - %92 = OpLoad %v4float %g - %94 = OpLoad %v4float %h - %95 = OpFUnordEqual %v4bool %92 %94 - OpStore %c19 %95 - %97 = OpLoad %v4float %g - %98 = OpLoad %v4float %h - %99 = OpFUnordNotEqual %v4bool %97 %98 - OpStore %c20 %99 - %101 = OpLoad %v4float %g - %102 = OpLoad %v4float %h - %103 = OpFUnordLessThan %v4bool %101 %102 - OpStore %c21 %103 - %105 = OpLoad %v4float %g - %106 = OpLoad %v4float %h - %107 = OpFUnordGreaterThan %v4bool %105 %106 - OpStore %c22 %107 - %109 = OpLoad %v4float %g - %110 = OpLoad %v4float %h - %111 = OpFUnordLessThanEqual %v4bool %109 %110 - OpStore %c23 %111 - %113 = OpLoad %v4float %g - %114 = OpLoad %v4float %h - %115 = OpFUnordGreaterThanEqual %v4bool %113 %114 - OpStore %c24 %115 - %118 = OpLoad %float %t0 - %119 = OpLoad %float %t1 - %120 = OpFAdd %float %118 %119 - %121 = OpCompositeConstruct %v4float %120 %120 %120 %120 - OpStore %FragColor %121 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/frag/unreachable.asm.frag b/third_party/spirv-cross/shaders-msl/asm/frag/unreachable.asm.frag deleted file mode 100644 index e2ce2eb56a..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/frag/unreachable.asm.frag +++ /dev/null @@ -1,61 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 3 -; Bound: 47 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %counter %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %counter "counter" - OpName %FragColor "FragColor" - OpDecorate %counter Flat - OpDecorate %counter Location 0 - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %8 = OpTypeFunction %v4float - %int = OpTypeInt 32 1 -%_ptr_Input_int = OpTypePointer Input %int - %counter = OpVariable %_ptr_Input_int Input - %int_10 = OpConstant %int 10 - %bool = OpTypeBool - %float_10 = OpConstant %float 10 - %21 = OpConstantComposite %v4float %float_10 %float_10 %float_10 %float_10 - %float_30 = OpConstant %float 30 - %25 = OpConstantComposite %v4float %float_30 %float_30 %float_30 %float_30 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output -%_ptr_Function_v4float = OpTypePointer Function %v4float - %false = OpConstantFalse %bool - %44 = OpUndef %v4float - %main = OpFunction %void None %3 - %5 = OpLabel - OpBranch %33 - %33 = OpLabel - %45 = OpPhi %v4float %44 %5 %44 %35 - OpLoopMerge %34 %35 None - OpBranch %36 - %36 = OpLabel - %37 = OpLoad %int %counter - %38 = OpIEqual %bool %37 %int_10 - OpSelectionMerge %39 None - OpBranchConditional %38 %40 %41 - %40 = OpLabel - OpBranch %34 - %41 = OpLabel - OpBranch %34 - %39 = OpLabel - OpUnreachable - %35 = OpLabel - OpBranchConditional %false %33 %34 - %34 = OpLabel - %46 = OpPhi %v4float %21 %40 %25 %41 %44 %35 - OpStore %FragColor %46 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/frag/vector-shuffle-oom.asm.frag b/third_party/spirv-cross/shaders-msl/asm/frag/vector-shuffle-oom.asm.frag deleted file mode 100644 index 92652161cb..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/frag/vector-shuffle-oom.asm.frag +++ /dev/null @@ -1,886 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 2 -; Bound: 25007 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %5663 "main" %5800 %gl_FragCoord %4317 - OpExecutionMode %5663 OriginUpperLeft - OpMemberDecorate %_struct_1116 0 Offset 0 - OpMemberDecorate %_struct_1116 1 Offset 16 - OpMemberDecorate %_struct_1116 2 Offset 32 - OpDecorate %_struct_1116 Block - OpDecorate %22044 DescriptorSet 0 - OpDecorate %22044 Binding 0 - OpDecorate %5785 DescriptorSet 0 - OpDecorate %5785 Binding 14 - OpDecorate %5688 DescriptorSet 0 - OpDecorate %5688 Binding 6 - OpMemberDecorate %_struct_994 0 Offset 0 - OpMemberDecorate %_struct_994 1 Offset 16 - OpMemberDecorate %_struct_994 2 Offset 28 - OpMemberDecorate %_struct_994 3 Offset 32 - OpMemberDecorate %_struct_994 4 Offset 44 - OpMemberDecorate %_struct_994 5 Offset 48 - OpMemberDecorate %_struct_994 6 Offset 60 - OpMemberDecorate %_struct_994 7 Offset 64 - OpMemberDecorate %_struct_994 8 Offset 76 - OpMemberDecorate %_struct_994 9 Offset 80 - OpMemberDecorate %_struct_994 10 Offset 92 - OpMemberDecorate %_struct_994 11 Offset 96 - OpMemberDecorate %_struct_994 12 Offset 108 - OpMemberDecorate %_struct_994 13 Offset 112 - OpMemberDecorate %_struct_994 14 Offset 120 - OpMemberDecorate %_struct_994 15 Offset 128 - OpMemberDecorate %_struct_994 16 Offset 140 - OpMemberDecorate %_struct_994 17 Offset 144 - OpMemberDecorate %_struct_994 18 Offset 148 - OpMemberDecorate %_struct_994 19 Offset 152 - OpMemberDecorate %_struct_994 20 Offset 156 - OpMemberDecorate %_struct_994 21 Offset 160 - OpMemberDecorate %_struct_994 22 Offset 176 - OpMemberDecorate %_struct_994 23 RowMajor - OpMemberDecorate %_struct_994 23 Offset 192 - OpMemberDecorate %_struct_994 23 MatrixStride 16 - OpMemberDecorate %_struct_994 24 Offset 256 - OpDecorate %_struct_994 Block - OpDecorate %12348 DescriptorSet 0 - OpDecorate %12348 Binding 2 - OpDecorate %3312 DescriptorSet 0 - OpDecorate %3312 Binding 13 - OpDecorate %4646 DescriptorSet 0 - OpDecorate %4646 Binding 5 - OpDecorate %4862 DescriptorSet 0 - OpDecorate %4862 Binding 4 - OpDecorate %3594 DescriptorSet 0 - OpDecorate %3594 Binding 3 - OpDecorate %_arr_mat4v4float_uint_2 ArrayStride 64 - OpDecorate %_arr_v4float_uint_2 ArrayStride 16 - OpMemberDecorate %_struct_408 0 RowMajor - OpMemberDecorate %_struct_408 0 Offset 0 - OpMemberDecorate %_struct_408 0 MatrixStride 16 - OpMemberDecorate %_struct_408 1 RowMajor - OpMemberDecorate %_struct_408 1 Offset 64 - OpMemberDecorate %_struct_408 1 MatrixStride 16 - OpMemberDecorate %_struct_408 2 RowMajor - OpMemberDecorate %_struct_408 2 Offset 128 - OpMemberDecorate %_struct_408 2 MatrixStride 16 - OpMemberDecorate %_struct_408 3 RowMajor - OpMemberDecorate %_struct_408 3 Offset 192 - OpMemberDecorate %_struct_408 3 MatrixStride 16 - OpMemberDecorate %_struct_408 4 Offset 256 - OpMemberDecorate %_struct_408 5 Offset 272 - OpMemberDecorate %_struct_408 6 Offset 288 - OpMemberDecorate %_struct_408 7 Offset 292 - OpMemberDecorate %_struct_408 8 Offset 296 - OpMemberDecorate %_struct_408 9 Offset 300 - OpMemberDecorate %_struct_408 10 Offset 304 - OpMemberDecorate %_struct_408 11 Offset 316 - OpMemberDecorate %_struct_408 12 Offset 320 - OpMemberDecorate %_struct_408 13 Offset 332 - OpMemberDecorate %_struct_408 14 Offset 336 - OpMemberDecorate %_struct_408 15 Offset 348 - OpMemberDecorate %_struct_408 16 Offset 352 - OpMemberDecorate %_struct_408 17 Offset 364 - OpMemberDecorate %_struct_408 18 Offset 368 - OpMemberDecorate %_struct_408 19 Offset 372 - OpMemberDecorate %_struct_408 20 Offset 376 - OpMemberDecorate %_struct_408 21 Offset 384 - OpMemberDecorate %_struct_408 22 Offset 392 - OpMemberDecorate %_struct_408 23 Offset 400 - OpMemberDecorate %_struct_408 24 Offset 416 - OpMemberDecorate %_struct_408 25 Offset 424 - OpMemberDecorate %_struct_408 26 Offset 432 - OpMemberDecorate %_struct_408 27 Offset 448 - OpMemberDecorate %_struct_408 28 Offset 460 - OpMemberDecorate %_struct_408 29 Offset 464 - OpMemberDecorate %_struct_408 30 Offset 468 - OpMemberDecorate %_struct_408 31 Offset 472 - OpMemberDecorate %_struct_408 32 Offset 476 - OpMemberDecorate %_struct_408 33 Offset 480 - OpMemberDecorate %_struct_408 34 Offset 488 - OpMemberDecorate %_struct_408 35 Offset 492 - OpMemberDecorate %_struct_408 36 Offset 496 - OpMemberDecorate %_struct_408 37 RowMajor - OpMemberDecorate %_struct_408 37 Offset 512 - OpMemberDecorate %_struct_408 37 MatrixStride 16 - OpMemberDecorate %_struct_408 38 Offset 640 - OpDecorate %_struct_408 Block - OpDecorate %15259 DescriptorSet 0 - OpDecorate %15259 Binding 1 - OpDecorate %5800 Location 0 - OpDecorate %gl_FragCoord BuiltIn FragCoord - OpDecorate %4317 Location 0 - OpMemberDecorate %_struct_1395 0 Offset 0 - OpMemberDecorate %_struct_1395 1 Offset 16 - OpMemberDecorate %_struct_1395 2 Offset 32 - OpMemberDecorate %_struct_1395 3 Offset 40 - OpMemberDecorate %_struct_1395 4 Offset 48 - OpMemberDecorate %_struct_1395 5 Offset 60 - OpMemberDecorate %_struct_1395 6 Offset 64 - OpMemberDecorate %_struct_1395 7 Offset 76 - OpMemberDecorate %_struct_1395 8 Offset 80 - OpMemberDecorate %_struct_1395 9 Offset 96 - OpMemberDecorate %_struct_1395 10 Offset 112 - OpMemberDecorate %_struct_1395 11 Offset 128 - OpMemberDecorate %_struct_1395 12 Offset 140 - OpMemberDecorate %_struct_1395 13 Offset 144 - OpMemberDecorate %_struct_1395 14 Offset 156 - OpMemberDecorate %_struct_1395 15 Offset 160 - OpMemberDecorate %_struct_1395 16 Offset 176 - OpMemberDecorate %_struct_1395 17 Offset 192 - OpMemberDecorate %_struct_1395 18 Offset 204 - OpMemberDecorate %_struct_1395 19 Offset 208 - OpMemberDecorate %_struct_1395 20 Offset 224 - OpDecorate %_struct_1395 Block - OpMemberDecorate %_struct_1018 0 Offset 0 - OpDecorate %_struct_1018 Block - %void = OpTypeVoid - %1282 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v2float = OpTypeVector %float 2 - %v4float = OpTypeVector %float 4 - %v3float = OpTypeVector %float 3 -%_struct_1017 = OpTypeStruct %v4float -%_struct_1116 = OpTypeStruct %v4float %float %v4float -%_ptr_Uniform__struct_1116 = OpTypePointer Uniform %_struct_1116 - %22044 = OpVariable %_ptr_Uniform__struct_1116 Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float - %150 = OpTypeImage %float 2D 0 0 0 1 Unknown -%_ptr_UniformConstant_150 = OpTypePointer UniformConstant %150 - %5785 = OpVariable %_ptr_UniformConstant_150 UniformConstant - %508 = OpTypeSampler -%_ptr_UniformConstant_508 = OpTypePointer UniformConstant %508 - %5688 = OpVariable %_ptr_UniformConstant_508 UniformConstant - %510 = OpTypeSampledImage %150 - %float_0 = OpConstant %float 0 - %uint = OpTypeInt 32 0 - %int_1 = OpConstant %int 1 -%_ptr_Uniform_float = OpTypePointer Uniform %float - %float_1 = OpConstant %float 1 -%mat4v4float = OpTypeMatrix %v4float 4 -%_struct_994 = OpTypeStruct %v3float %v3float %float %v3float %float %v3float %float %v3float %float %v3float %float %v3float %float %v2float %v2float %v3float %float %float %float %float %float %v4float %v4float %mat4v4float %v4float -%_ptr_Uniform__struct_994 = OpTypePointer Uniform %_struct_994 - %12348 = OpVariable %_ptr_Uniform__struct_994 Uniform - %int_5 = OpConstant %int 5 -%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float - %3312 = OpVariable %_ptr_UniformConstant_150 UniformConstant - %4646 = OpVariable %_ptr_UniformConstant_508 UniformConstant - %bool = OpTypeBool - %4862 = OpVariable %_ptr_UniformConstant_150 UniformConstant - %3594 = OpVariable %_ptr_UniformConstant_508 UniformConstant - %uint_2 = OpConstant %uint 2 - %2938 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 -%_arr_mat4v4float_uint_2 = OpTypeArray %mat4v4float %uint_2 -%_arr_v4float_uint_2 = OpTypeArray %v4float %uint_2 -%_struct_408 = OpTypeStruct %mat4v4float %mat4v4float %mat4v4float %mat4v4float %v4float %v4float %float %float %float %float %v3float %float %v3float %float %v3float %float %v3float %float %float %float %v2float %v2float %v2float %v4float %v2float %v2float %v2float %v3float %float %float %float %float %float %v2float %float %float %v3float %_arr_mat4v4float_uint_2 %_arr_v4float_uint_2 -%_ptr_Uniform__struct_408 = OpTypePointer Uniform %_struct_408 - %15259 = OpVariable %_ptr_Uniform__struct_408 Uniform - %int_23 = OpConstant %int 23 - %int_2 = OpConstant %int 2 - %float_n2 = OpConstant %float -2 - %float_0_5 = OpConstant %float 0.5 - %1196 = OpConstantComposite %v3float %float_0 %float_n2 %float_0_5 - %float_n1 = OpConstant %float -1 - %836 = OpConstantComposite %v3float %float_n1 %float_n1 %float_0_5 - %float_0_75 = OpConstant %float 0.75 - %1367 = OpConstantComposite %v3float %float_0 %float_n1 %float_0_75 - %141 = OpConstantComposite %v3float %float_1 %float_n1 %float_0_5 - %38 = OpConstantComposite %v3float %float_n2 %float_0 %float_0_5 - %95 = OpConstantComposite %v3float %float_n1 %float_0 %float_0_75 - %626 = OpConstantComposite %v3float %float_0 %float_0 %float_1 - %2411 = OpConstantComposite %v3float %float_1 %float_0 %float_0_75 - %float_2 = OpConstant %float 2 - %2354 = OpConstantComposite %v3float %float_2 %float_0 %float_0_5 - %837 = OpConstantComposite %v3float %float_n1 %float_1 %float_0_5 - %1368 = OpConstantComposite %v3float %float_0 %float_1 %float_0_75 - %142 = OpConstantComposite %v3float %float_1 %float_1 %float_0_5 - %1197 = OpConstantComposite %v3float %float_0 %float_2 %float_0_5 -%_ptr_Input_v2float = OpTypePointer Input %v2float - %5800 = OpVariable %_ptr_Input_v2float Input -%_ptr_Input_v4float = OpTypePointer Input %v4float -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input -%_ptr_Output_v4float = OpTypePointer Output %v4float - %4317 = OpVariable %_ptr_Output_v4float Output -%_struct_1395 = OpTypeStruct %v4float %v4float %v2float %v2float %v3float %float %v3float %float %v4float %v4float %v4float %v3float %float %v3float %float %v3float %v4float %v3float %float %v3float %v2float -%_struct_1018 = OpTypeStruct %v4float - %10264 = OpUndef %_struct_1017 - %5663 = OpFunction %void None %1282 - %25006 = OpLabel - %17463 = OpLoad %v4float %gl_FragCoord - %13863 = OpCompositeInsert %_struct_1017 %2938 %10264 0 - %22969 = OpVectorShuffle %v2float %17463 %17463 0 1 - %13206 = OpAccessChain %_ptr_Uniform_v4float %15259 %int_23 - %10343 = OpLoad %v4float %13206 - %7422 = OpVectorShuffle %v2float %10343 %10343 0 1 - %19927 = OpFMul %v2float %22969 %7422 - %18174 = OpAccessChain %_ptr_Uniform_v4float %22044 %int_2 - %16206 = OpLoad %v4float %18174 - %20420 = OpAccessChain %_ptr_Uniform_v4float %22044 %int_0 - %21354 = OpLoad %v4float %20420 - %7688 = OpVectorShuffle %v4float %21354 %21354 0 1 0 1 - %17581 = OpFMul %v4float %16206 %7688 - %10673 = OpVectorShuffle %v2float %1196 %1196 0 1 - %18824 = OpAccessChain %_ptr_Uniform_v4float %22044 %int_0 - %10344 = OpLoad %v4float %18824 - %8638 = OpVectorShuffle %v2float %10344 %10344 0 1 - %9197 = OpFMul %v2float %10673 %8638 - %18505 = OpFAdd %v2float %19927 %9197 - %7011 = OpVectorShuffle %v2float %17581 %17581 0 1 - %21058 = OpVectorShuffle %v2float %17581 %17581 2 3 - %13149 = OpExtInst %v2float %1 FClamp %18505 %7011 %21058 - %23584 = OpLoad %150 %5785 - %10339 = OpLoad %508 %5688 - %12147 = OpSampledImage %510 %23584 %10339 - %15371 = OpImageSampleExplicitLod %v4float %12147 %13149 Lod %float_0 - %15266 = OpCompositeExtract %float %15371 3 - %12116 = OpAccessChain %_ptr_Uniform_float %22044 %int_1 - %12972 = OpLoad %float %12116 - %15710 = OpFMul %float %15266 %12972 - %15279 = OpExtInst %float %1 FClamp %15710 %float_0 %float_1 - %22213 = OpAccessChain %_ptr_Uniform_v3float %12348 %int_5 - %11756 = OpLoad %v3float %22213 - %12103 = OpVectorTimesScalar %v3float %11756 %15279 - %15516 = OpLoad %150 %3312 - %24569 = OpLoad %508 %4646 - %12148 = OpSampledImage %510 %15516 %24569 - %17670 = OpImageSampleExplicitLod %v4float %12148 %13149 Lod %float_0 - %16938 = OpCompositeExtract %float %17670 1 - %14185 = OpFOrdGreaterThan %bool %16938 %float_0 - OpSelectionMerge %22307 DontFlatten - OpBranchConditional %14185 %12821 %22307 - %12821 = OpLabel - %13239 = OpLoad %150 %4862 - %19960 = OpLoad %508 %3594 - %12149 = OpSampledImage %510 %13239 %19960 - %15675 = OpImageSampleExplicitLod %v4float %12149 %13149 Lod %float_0 - %13866 = OpCompositeExtract %float %17670 1 - %12427 = OpCompositeExtract %float %17670 2 - %23300 = OpFMul %float %13866 %12427 - %17612 = OpExtInst %float %1 FClamp %23300 %float_0 %float_1 - %20291 = OpVectorShuffle %v3float %15675 %15675 0 1 2 - %11186 = OpVectorTimesScalar %v3float %20291 %17612 - %15293 = OpFAdd %v3float %12103 %11186 - OpBranch %22307 - %22307 = OpLabel - %7719 = OpPhi %v3float %12103 %25006 %15293 %12821 - %23399 = OpVectorTimesScalar %v3float %7719 %float_0_5 - %9339 = OpFAdd %float %float_0 %float_0_5 - %16235 = OpVectorShuffle %v3float %2938 %2938 0 1 2 - %22177 = OpFAdd %v3float %16235 %23399 - %15527 = OpVectorShuffle %v4float %2938 %22177 4 5 6 3 - %6434 = OpCompositeInsert %_struct_1017 %15527 %13863 0 - %24572 = OpVectorShuffle %v2float %836 %836 0 1 - %13207 = OpAccessChain %_ptr_Uniform_v4float %22044 %int_0 - %10345 = OpLoad %v4float %13207 - %8639 = OpVectorShuffle %v2float %10345 %10345 0 1 - %9198 = OpFMul %v2float %24572 %8639 - %18506 = OpFAdd %v2float %19927 %9198 - %7012 = OpVectorShuffle %v2float %17581 %17581 0 1 - %21059 = OpVectorShuffle %v2float %17581 %17581 2 3 - %13150 = OpExtInst %v2float %1 FClamp %18506 %7012 %21059 - %23585 = OpLoad %150 %5785 - %10340 = OpLoad %508 %5688 - %12150 = OpSampledImage %510 %23585 %10340 - %15372 = OpImageSampleExplicitLod %v4float %12150 %13150 Lod %float_0 - %15267 = OpCompositeExtract %float %15372 3 - %12117 = OpAccessChain %_ptr_Uniform_float %22044 %int_1 - %12973 = OpLoad %float %12117 - %15711 = OpFMul %float %15267 %12973 - %15280 = OpExtInst %float %1 FClamp %15711 %float_0 %float_1 - %22214 = OpAccessChain %_ptr_Uniform_v3float %12348 %int_5 - %11757 = OpLoad %v3float %22214 - %12104 = OpVectorTimesScalar %v3float %11757 %15280 - %15517 = OpLoad %150 %3312 - %24570 = OpLoad %508 %4646 - %12151 = OpSampledImage %510 %15517 %24570 - %17671 = OpImageSampleExplicitLod %v4float %12151 %13150 Lod %float_0 - %16939 = OpCompositeExtract %float %17671 1 - %14186 = OpFOrdGreaterThan %bool %16939 %float_0 - OpSelectionMerge %22308 DontFlatten - OpBranchConditional %14186 %12822 %22308 - %12822 = OpLabel - %13240 = OpLoad %150 %4862 - %19961 = OpLoad %508 %3594 - %12152 = OpSampledImage %510 %13240 %19961 - %15676 = OpImageSampleExplicitLod %v4float %12152 %13150 Lod %float_0 - %13867 = OpCompositeExtract %float %17671 1 - %12428 = OpCompositeExtract %float %17671 2 - %23301 = OpFMul %float %13867 %12428 - %17613 = OpExtInst %float %1 FClamp %23301 %float_0 %float_1 - %20292 = OpVectorShuffle %v3float %15676 %15676 0 1 2 - %11187 = OpVectorTimesScalar %v3float %20292 %17613 - %15294 = OpFAdd %v3float %12104 %11187 - OpBranch %22308 - %22308 = OpLabel - %7720 = OpPhi %v3float %12104 %22307 %15294 %12822 - %23400 = OpVectorTimesScalar %v3float %7720 %float_0_5 - %9340 = OpFAdd %float %9339 %float_0_5 - %16236 = OpVectorShuffle %v3float %15527 %15527 0 1 2 - %22178 = OpFAdd %v3float %16236 %23400 - %15528 = OpVectorShuffle %v4float %15527 %22178 4 5 6 3 - %6435 = OpCompositeInsert %_struct_1017 %15528 %6434 0 - %24573 = OpVectorShuffle %v2float %1367 %1367 0 1 - %13208 = OpAccessChain %_ptr_Uniform_v4float %22044 %int_0 - %10346 = OpLoad %v4float %13208 - %8640 = OpVectorShuffle %v2float %10346 %10346 0 1 - %9199 = OpFMul %v2float %24573 %8640 - %18507 = OpFAdd %v2float %19927 %9199 - %7013 = OpVectorShuffle %v2float %17581 %17581 0 1 - %21060 = OpVectorShuffle %v2float %17581 %17581 2 3 - %13151 = OpExtInst %v2float %1 FClamp %18507 %7013 %21060 - %23586 = OpLoad %150 %5785 - %10341 = OpLoad %508 %5688 - %12153 = OpSampledImage %510 %23586 %10341 - %15373 = OpImageSampleExplicitLod %v4float %12153 %13151 Lod %float_0 - %15268 = OpCompositeExtract %float %15373 3 - %12118 = OpAccessChain %_ptr_Uniform_float %22044 %int_1 - %12974 = OpLoad %float %12118 - %15712 = OpFMul %float %15268 %12974 - %15281 = OpExtInst %float %1 FClamp %15712 %float_0 %float_1 - %22215 = OpAccessChain %_ptr_Uniform_v3float %12348 %int_5 - %11758 = OpLoad %v3float %22215 - %12105 = OpVectorTimesScalar %v3float %11758 %15281 - %15518 = OpLoad %150 %3312 - %24571 = OpLoad %508 %4646 - %12154 = OpSampledImage %510 %15518 %24571 - %17672 = OpImageSampleExplicitLod %v4float %12154 %13151 Lod %float_0 - %16940 = OpCompositeExtract %float %17672 1 - %14187 = OpFOrdGreaterThan %bool %16940 %float_0 - OpSelectionMerge %22309 DontFlatten - OpBranchConditional %14187 %12823 %22309 - %12823 = OpLabel - %13241 = OpLoad %150 %4862 - %19962 = OpLoad %508 %3594 - %12155 = OpSampledImage %510 %13241 %19962 - %15677 = OpImageSampleExplicitLod %v4float %12155 %13151 Lod %float_0 - %13868 = OpCompositeExtract %float %17672 1 - %12429 = OpCompositeExtract %float %17672 2 - %23302 = OpFMul %float %13868 %12429 - %17614 = OpExtInst %float %1 FClamp %23302 %float_0 %float_1 - %20293 = OpVectorShuffle %v3float %15677 %15677 0 1 2 - %11188 = OpVectorTimesScalar %v3float %20293 %17614 - %15295 = OpFAdd %v3float %12105 %11188 - OpBranch %22309 - %22309 = OpLabel - %7721 = OpPhi %v3float %12105 %22308 %15295 %12823 - %23401 = OpVectorTimesScalar %v3float %7721 %float_0_75 - %9341 = OpFAdd %float %9340 %float_0_75 - %16237 = OpVectorShuffle %v3float %15528 %15528 0 1 2 - %22179 = OpFAdd %v3float %16237 %23401 - %15529 = OpVectorShuffle %v4float %15528 %22179 4 5 6 3 - %6436 = OpCompositeInsert %_struct_1017 %15529 %6435 0 - %24574 = OpVectorShuffle %v2float %141 %141 0 1 - %13209 = OpAccessChain %_ptr_Uniform_v4float %22044 %int_0 - %10347 = OpLoad %v4float %13209 - %8641 = OpVectorShuffle %v2float %10347 %10347 0 1 - %9200 = OpFMul %v2float %24574 %8641 - %18508 = OpFAdd %v2float %19927 %9200 - %7014 = OpVectorShuffle %v2float %17581 %17581 0 1 - %21061 = OpVectorShuffle %v2float %17581 %17581 2 3 - %13152 = OpExtInst %v2float %1 FClamp %18508 %7014 %21061 - %23587 = OpLoad %150 %5785 - %10342 = OpLoad %508 %5688 - %12156 = OpSampledImage %510 %23587 %10342 - %15374 = OpImageSampleExplicitLod %v4float %12156 %13152 Lod %float_0 - %15269 = OpCompositeExtract %float %15374 3 - %12119 = OpAccessChain %_ptr_Uniform_float %22044 %int_1 - %12975 = OpLoad %float %12119 - %15713 = OpFMul %float %15269 %12975 - %15282 = OpExtInst %float %1 FClamp %15713 %float_0 %float_1 - %22216 = OpAccessChain %_ptr_Uniform_v3float %12348 %int_5 - %11759 = OpLoad %v3float %22216 - %12106 = OpVectorTimesScalar %v3float %11759 %15282 - %15519 = OpLoad %150 %3312 - %24575 = OpLoad %508 %4646 - %12157 = OpSampledImage %510 %15519 %24575 - %17673 = OpImageSampleExplicitLod %v4float %12157 %13152 Lod %float_0 - %16941 = OpCompositeExtract %float %17673 1 - %14188 = OpFOrdGreaterThan %bool %16941 %float_0 - OpSelectionMerge %22310 DontFlatten - OpBranchConditional %14188 %12824 %22310 - %12824 = OpLabel - %13242 = OpLoad %150 %4862 - %19963 = OpLoad %508 %3594 - %12158 = OpSampledImage %510 %13242 %19963 - %15678 = OpImageSampleExplicitLod %v4float %12158 %13152 Lod %float_0 - %13869 = OpCompositeExtract %float %17673 1 - %12430 = OpCompositeExtract %float %17673 2 - %23303 = OpFMul %float %13869 %12430 - %17615 = OpExtInst %float %1 FClamp %23303 %float_0 %float_1 - %20294 = OpVectorShuffle %v3float %15678 %15678 0 1 2 - %11189 = OpVectorTimesScalar %v3float %20294 %17615 - %15296 = OpFAdd %v3float %12106 %11189 - OpBranch %22310 - %22310 = OpLabel - %7722 = OpPhi %v3float %12106 %22309 %15296 %12824 - %23402 = OpVectorTimesScalar %v3float %7722 %float_0_5 - %9342 = OpFAdd %float %9341 %float_0_5 - %16238 = OpVectorShuffle %v3float %15529 %15529 0 1 2 - %22180 = OpFAdd %v3float %16238 %23402 - %15530 = OpVectorShuffle %v4float %15529 %22180 4 5 6 3 - %6437 = OpCompositeInsert %_struct_1017 %15530 %6436 0 - %24576 = OpVectorShuffle %v2float %38 %38 0 1 - %13210 = OpAccessChain %_ptr_Uniform_v4float %22044 %int_0 - %10348 = OpLoad %v4float %13210 - %8642 = OpVectorShuffle %v2float %10348 %10348 0 1 - %9201 = OpFMul %v2float %24576 %8642 - %18509 = OpFAdd %v2float %19927 %9201 - %7015 = OpVectorShuffle %v2float %17581 %17581 0 1 - %21062 = OpVectorShuffle %v2float %17581 %17581 2 3 - %13153 = OpExtInst %v2float %1 FClamp %18509 %7015 %21062 - %23588 = OpLoad %150 %5785 - %10349 = OpLoad %508 %5688 - %12159 = OpSampledImage %510 %23588 %10349 - %15375 = OpImageSampleExplicitLod %v4float %12159 %13153 Lod %float_0 - %15270 = OpCompositeExtract %float %15375 3 - %12120 = OpAccessChain %_ptr_Uniform_float %22044 %int_1 - %12976 = OpLoad %float %12120 - %15714 = OpFMul %float %15270 %12976 - %15283 = OpExtInst %float %1 FClamp %15714 %float_0 %float_1 - %22217 = OpAccessChain %_ptr_Uniform_v3float %12348 %int_5 - %11760 = OpLoad %v3float %22217 - %12107 = OpVectorTimesScalar %v3float %11760 %15283 - %15520 = OpLoad %150 %3312 - %24577 = OpLoad %508 %4646 - %12160 = OpSampledImage %510 %15520 %24577 - %17674 = OpImageSampleExplicitLod %v4float %12160 %13153 Lod %float_0 - %16942 = OpCompositeExtract %float %17674 1 - %14189 = OpFOrdGreaterThan %bool %16942 %float_0 - OpSelectionMerge %22311 DontFlatten - OpBranchConditional %14189 %12825 %22311 - %12825 = OpLabel - %13243 = OpLoad %150 %4862 - %19964 = OpLoad %508 %3594 - %12161 = OpSampledImage %510 %13243 %19964 - %15679 = OpImageSampleExplicitLod %v4float %12161 %13153 Lod %float_0 - %13870 = OpCompositeExtract %float %17674 1 - %12431 = OpCompositeExtract %float %17674 2 - %23304 = OpFMul %float %13870 %12431 - %17616 = OpExtInst %float %1 FClamp %23304 %float_0 %float_1 - %20295 = OpVectorShuffle %v3float %15679 %15679 0 1 2 - %11190 = OpVectorTimesScalar %v3float %20295 %17616 - %15297 = OpFAdd %v3float %12107 %11190 - OpBranch %22311 - %22311 = OpLabel - %7723 = OpPhi %v3float %12107 %22310 %15297 %12825 - %23403 = OpVectorTimesScalar %v3float %7723 %float_0_5 - %9343 = OpFAdd %float %9342 %float_0_5 - %16239 = OpVectorShuffle %v3float %15530 %15530 0 1 2 - %22181 = OpFAdd %v3float %16239 %23403 - %15531 = OpVectorShuffle %v4float %15530 %22181 4 5 6 3 - %6438 = OpCompositeInsert %_struct_1017 %15531 %6437 0 - %24578 = OpVectorShuffle %v2float %95 %95 0 1 - %13211 = OpAccessChain %_ptr_Uniform_v4float %22044 %int_0 - %10350 = OpLoad %v4float %13211 - %8643 = OpVectorShuffle %v2float %10350 %10350 0 1 - %9202 = OpFMul %v2float %24578 %8643 - %18510 = OpFAdd %v2float %19927 %9202 - %7016 = OpVectorShuffle %v2float %17581 %17581 0 1 - %21063 = OpVectorShuffle %v2float %17581 %17581 2 3 - %13154 = OpExtInst %v2float %1 FClamp %18510 %7016 %21063 - %23589 = OpLoad %150 %5785 - %10351 = OpLoad %508 %5688 - %12162 = OpSampledImage %510 %23589 %10351 - %15376 = OpImageSampleExplicitLod %v4float %12162 %13154 Lod %float_0 - %15271 = OpCompositeExtract %float %15376 3 - %12121 = OpAccessChain %_ptr_Uniform_float %22044 %int_1 - %12977 = OpLoad %float %12121 - %15715 = OpFMul %float %15271 %12977 - %15284 = OpExtInst %float %1 FClamp %15715 %float_0 %float_1 - %22218 = OpAccessChain %_ptr_Uniform_v3float %12348 %int_5 - %11761 = OpLoad %v3float %22218 - %12108 = OpVectorTimesScalar %v3float %11761 %15284 - %15521 = OpLoad %150 %3312 - %24579 = OpLoad %508 %4646 - %12163 = OpSampledImage %510 %15521 %24579 - %17675 = OpImageSampleExplicitLod %v4float %12163 %13154 Lod %float_0 - %16943 = OpCompositeExtract %float %17675 1 - %14190 = OpFOrdGreaterThan %bool %16943 %float_0 - OpSelectionMerge %22312 DontFlatten - OpBranchConditional %14190 %12826 %22312 - %12826 = OpLabel - %13244 = OpLoad %150 %4862 - %19965 = OpLoad %508 %3594 - %12164 = OpSampledImage %510 %13244 %19965 - %15680 = OpImageSampleExplicitLod %v4float %12164 %13154 Lod %float_0 - %13871 = OpCompositeExtract %float %17675 1 - %12432 = OpCompositeExtract %float %17675 2 - %23305 = OpFMul %float %13871 %12432 - %17617 = OpExtInst %float %1 FClamp %23305 %float_0 %float_1 - %20296 = OpVectorShuffle %v3float %15680 %15680 0 1 2 - %11191 = OpVectorTimesScalar %v3float %20296 %17617 - %15298 = OpFAdd %v3float %12108 %11191 - OpBranch %22312 - %22312 = OpLabel - %7724 = OpPhi %v3float %12108 %22311 %15298 %12826 - %23404 = OpVectorTimesScalar %v3float %7724 %float_0_75 - %9344 = OpFAdd %float %9343 %float_0_75 - %16240 = OpVectorShuffle %v3float %15531 %15531 0 1 2 - %22182 = OpFAdd %v3float %16240 %23404 - %15532 = OpVectorShuffle %v4float %15531 %22182 4 5 6 3 - %6439 = OpCompositeInsert %_struct_1017 %15532 %6438 0 - %24580 = OpVectorShuffle %v2float %626 %626 0 1 - %13212 = OpAccessChain %_ptr_Uniform_v4float %22044 %int_0 - %10352 = OpLoad %v4float %13212 - %8644 = OpVectorShuffle %v2float %10352 %10352 0 1 - %9203 = OpFMul %v2float %24580 %8644 - %18511 = OpFAdd %v2float %19927 %9203 - %7017 = OpVectorShuffle %v2float %17581 %17581 0 1 - %21064 = OpVectorShuffle %v2float %17581 %17581 2 3 - %13155 = OpExtInst %v2float %1 FClamp %18511 %7017 %21064 - %23590 = OpLoad %150 %5785 - %10353 = OpLoad %508 %5688 - %12165 = OpSampledImage %510 %23590 %10353 - %15377 = OpImageSampleExplicitLod %v4float %12165 %13155 Lod %float_0 - %15272 = OpCompositeExtract %float %15377 3 - %12122 = OpAccessChain %_ptr_Uniform_float %22044 %int_1 - %12978 = OpLoad %float %12122 - %15716 = OpFMul %float %15272 %12978 - %15285 = OpExtInst %float %1 FClamp %15716 %float_0 %float_1 - %22219 = OpAccessChain %_ptr_Uniform_v3float %12348 %int_5 - %11762 = OpLoad %v3float %22219 - %12109 = OpVectorTimesScalar %v3float %11762 %15285 - %15522 = OpLoad %150 %3312 - %24581 = OpLoad %508 %4646 - %12166 = OpSampledImage %510 %15522 %24581 - %17676 = OpImageSampleExplicitLod %v4float %12166 %13155 Lod %float_0 - %16944 = OpCompositeExtract %float %17676 1 - %14191 = OpFOrdGreaterThan %bool %16944 %float_0 - OpSelectionMerge %22313 DontFlatten - OpBranchConditional %14191 %12827 %22313 - %12827 = OpLabel - %13245 = OpLoad %150 %4862 - %19966 = OpLoad %508 %3594 - %12167 = OpSampledImage %510 %13245 %19966 - %15681 = OpImageSampleExplicitLod %v4float %12167 %13155 Lod %float_0 - %13872 = OpCompositeExtract %float %17676 1 - %12433 = OpCompositeExtract %float %17676 2 - %23306 = OpFMul %float %13872 %12433 - %17618 = OpExtInst %float %1 FClamp %23306 %float_0 %float_1 - %20297 = OpVectorShuffle %v3float %15681 %15681 0 1 2 - %11192 = OpVectorTimesScalar %v3float %20297 %17618 - %15299 = OpFAdd %v3float %12109 %11192 - OpBranch %22313 - %22313 = OpLabel - %7725 = OpPhi %v3float %12109 %22312 %15299 %12827 - %23405 = OpVectorTimesScalar %v3float %7725 %float_1 - %9345 = OpFAdd %float %9344 %float_1 - %16241 = OpVectorShuffle %v3float %15532 %15532 0 1 2 - %22183 = OpFAdd %v3float %16241 %23405 - %15533 = OpVectorShuffle %v4float %15532 %22183 4 5 6 3 - %6440 = OpCompositeInsert %_struct_1017 %15533 %6439 0 - %24582 = OpVectorShuffle %v2float %2411 %2411 0 1 - %13213 = OpAccessChain %_ptr_Uniform_v4float %22044 %int_0 - %10354 = OpLoad %v4float %13213 - %8645 = OpVectorShuffle %v2float %10354 %10354 0 1 - %9204 = OpFMul %v2float %24582 %8645 - %18512 = OpFAdd %v2float %19927 %9204 - %7018 = OpVectorShuffle %v2float %17581 %17581 0 1 - %21065 = OpVectorShuffle %v2float %17581 %17581 2 3 - %13156 = OpExtInst %v2float %1 FClamp %18512 %7018 %21065 - %23591 = OpLoad %150 %5785 - %10355 = OpLoad %508 %5688 - %12168 = OpSampledImage %510 %23591 %10355 - %15378 = OpImageSampleExplicitLod %v4float %12168 %13156 Lod %float_0 - %15273 = OpCompositeExtract %float %15378 3 - %12123 = OpAccessChain %_ptr_Uniform_float %22044 %int_1 - %12979 = OpLoad %float %12123 - %15717 = OpFMul %float %15273 %12979 - %15286 = OpExtInst %float %1 FClamp %15717 %float_0 %float_1 - %22220 = OpAccessChain %_ptr_Uniform_v3float %12348 %int_5 - %11763 = OpLoad %v3float %22220 - %12110 = OpVectorTimesScalar %v3float %11763 %15286 - %15523 = OpLoad %150 %3312 - %24583 = OpLoad %508 %4646 - %12169 = OpSampledImage %510 %15523 %24583 - %17677 = OpImageSampleExplicitLod %v4float %12169 %13156 Lod %float_0 - %16945 = OpCompositeExtract %float %17677 1 - %14192 = OpFOrdGreaterThan %bool %16945 %float_0 - OpSelectionMerge %22314 DontFlatten - OpBranchConditional %14192 %12828 %22314 - %12828 = OpLabel - %13246 = OpLoad %150 %4862 - %19967 = OpLoad %508 %3594 - %12170 = OpSampledImage %510 %13246 %19967 - %15682 = OpImageSampleExplicitLod %v4float %12170 %13156 Lod %float_0 - %13873 = OpCompositeExtract %float %17677 1 - %12434 = OpCompositeExtract %float %17677 2 - %23307 = OpFMul %float %13873 %12434 - %17619 = OpExtInst %float %1 FClamp %23307 %float_0 %float_1 - %20298 = OpVectorShuffle %v3float %15682 %15682 0 1 2 - %11193 = OpVectorTimesScalar %v3float %20298 %17619 - %15300 = OpFAdd %v3float %12110 %11193 - OpBranch %22314 - %22314 = OpLabel - %7726 = OpPhi %v3float %12110 %22313 %15300 %12828 - %23406 = OpVectorTimesScalar %v3float %7726 %float_0_75 - %9346 = OpFAdd %float %9345 %float_0_75 - %16242 = OpVectorShuffle %v3float %15533 %15533 0 1 2 - %22184 = OpFAdd %v3float %16242 %23406 - %15534 = OpVectorShuffle %v4float %15533 %22184 4 5 6 3 - %6441 = OpCompositeInsert %_struct_1017 %15534 %6440 0 - %24584 = OpVectorShuffle %v2float %2354 %2354 0 1 - %13214 = OpAccessChain %_ptr_Uniform_v4float %22044 %int_0 - %10356 = OpLoad %v4float %13214 - %8646 = OpVectorShuffle %v2float %10356 %10356 0 1 - %9205 = OpFMul %v2float %24584 %8646 - %18513 = OpFAdd %v2float %19927 %9205 - %7019 = OpVectorShuffle %v2float %17581 %17581 0 1 - %21066 = OpVectorShuffle %v2float %17581 %17581 2 3 - %13157 = OpExtInst %v2float %1 FClamp %18513 %7019 %21066 - %23592 = OpLoad %150 %5785 - %10357 = OpLoad %508 %5688 - %12171 = OpSampledImage %510 %23592 %10357 - %15379 = OpImageSampleExplicitLod %v4float %12171 %13157 Lod %float_0 - %15274 = OpCompositeExtract %float %15379 3 - %12124 = OpAccessChain %_ptr_Uniform_float %22044 %int_1 - %12980 = OpLoad %float %12124 - %15718 = OpFMul %float %15274 %12980 - %15287 = OpExtInst %float %1 FClamp %15718 %float_0 %float_1 - %22221 = OpAccessChain %_ptr_Uniform_v3float %12348 %int_5 - %11764 = OpLoad %v3float %22221 - %12111 = OpVectorTimesScalar %v3float %11764 %15287 - %15524 = OpLoad %150 %3312 - %24585 = OpLoad %508 %4646 - %12172 = OpSampledImage %510 %15524 %24585 - %17678 = OpImageSampleExplicitLod %v4float %12172 %13157 Lod %float_0 - %16946 = OpCompositeExtract %float %17678 1 - %14193 = OpFOrdGreaterThan %bool %16946 %float_0 - OpSelectionMerge %22315 DontFlatten - OpBranchConditional %14193 %12829 %22315 - %12829 = OpLabel - %13247 = OpLoad %150 %4862 - %19968 = OpLoad %508 %3594 - %12173 = OpSampledImage %510 %13247 %19968 - %15683 = OpImageSampleExplicitLod %v4float %12173 %13157 Lod %float_0 - %13874 = OpCompositeExtract %float %17678 1 - %12435 = OpCompositeExtract %float %17678 2 - %23308 = OpFMul %float %13874 %12435 - %17620 = OpExtInst %float %1 FClamp %23308 %float_0 %float_1 - %20299 = OpVectorShuffle %v3float %15683 %15683 0 1 2 - %11194 = OpVectorTimesScalar %v3float %20299 %17620 - %15301 = OpFAdd %v3float %12111 %11194 - OpBranch %22315 - %22315 = OpLabel - %7727 = OpPhi %v3float %12111 %22314 %15301 %12829 - %23407 = OpVectorTimesScalar %v3float %7727 %float_0_5 - %9347 = OpFAdd %float %9346 %float_0_5 - %16243 = OpVectorShuffle %v3float %15534 %15534 0 1 2 - %22185 = OpFAdd %v3float %16243 %23407 - %15535 = OpVectorShuffle %v4float %15534 %22185 4 5 6 3 - %6442 = OpCompositeInsert %_struct_1017 %15535 %6441 0 - %24586 = OpVectorShuffle %v2float %837 %837 0 1 - %13215 = OpAccessChain %_ptr_Uniform_v4float %22044 %int_0 - %10358 = OpLoad %v4float %13215 - %8647 = OpVectorShuffle %v2float %10358 %10358 0 1 - %9206 = OpFMul %v2float %24586 %8647 - %18514 = OpFAdd %v2float %19927 %9206 - %7020 = OpVectorShuffle %v2float %17581 %17581 0 1 - %21067 = OpVectorShuffle %v2float %17581 %17581 2 3 - %13158 = OpExtInst %v2float %1 FClamp %18514 %7020 %21067 - %23593 = OpLoad %150 %5785 - %10359 = OpLoad %508 %5688 - %12174 = OpSampledImage %510 %23593 %10359 - %15380 = OpImageSampleExplicitLod %v4float %12174 %13158 Lod %float_0 - %15275 = OpCompositeExtract %float %15380 3 - %12125 = OpAccessChain %_ptr_Uniform_float %22044 %int_1 - %12981 = OpLoad %float %12125 - %15719 = OpFMul %float %15275 %12981 - %15288 = OpExtInst %float %1 FClamp %15719 %float_0 %float_1 - %22222 = OpAccessChain %_ptr_Uniform_v3float %12348 %int_5 - %11765 = OpLoad %v3float %22222 - %12112 = OpVectorTimesScalar %v3float %11765 %15288 - %15525 = OpLoad %150 %3312 - %24587 = OpLoad %508 %4646 - %12175 = OpSampledImage %510 %15525 %24587 - %17679 = OpImageSampleExplicitLod %v4float %12175 %13158 Lod %float_0 - %16947 = OpCompositeExtract %float %17679 1 - %14194 = OpFOrdGreaterThan %bool %16947 %float_0 - OpSelectionMerge %22316 DontFlatten - OpBranchConditional %14194 %12830 %22316 - %12830 = OpLabel - %13248 = OpLoad %150 %4862 - %19969 = OpLoad %508 %3594 - %12176 = OpSampledImage %510 %13248 %19969 - %15684 = OpImageSampleExplicitLod %v4float %12176 %13158 Lod %float_0 - %13875 = OpCompositeExtract %float %17679 1 - %12436 = OpCompositeExtract %float %17679 2 - %23309 = OpFMul %float %13875 %12436 - %17621 = OpExtInst %float %1 FClamp %23309 %float_0 %float_1 - %20300 = OpVectorShuffle %v3float %15684 %15684 0 1 2 - %11195 = OpVectorTimesScalar %v3float %20300 %17621 - %15302 = OpFAdd %v3float %12112 %11195 - OpBranch %22316 - %22316 = OpLabel - %7728 = OpPhi %v3float %12112 %22315 %15302 %12830 - %23408 = OpVectorTimesScalar %v3float %7728 %float_0_5 - %9348 = OpFAdd %float %9347 %float_0_5 - %16244 = OpVectorShuffle %v3float %15535 %15535 0 1 2 - %22186 = OpFAdd %v3float %16244 %23408 - %15536 = OpVectorShuffle %v4float %15535 %22186 4 5 6 3 - %6443 = OpCompositeInsert %_struct_1017 %15536 %6442 0 - %24588 = OpVectorShuffle %v2float %1368 %1368 0 1 - %13216 = OpAccessChain %_ptr_Uniform_v4float %22044 %int_0 - %10360 = OpLoad %v4float %13216 - %8648 = OpVectorShuffle %v2float %10360 %10360 0 1 - %9207 = OpFMul %v2float %24588 %8648 - %18515 = OpFAdd %v2float %19927 %9207 - %7021 = OpVectorShuffle %v2float %17581 %17581 0 1 - %21068 = OpVectorShuffle %v2float %17581 %17581 2 3 - %13159 = OpExtInst %v2float %1 FClamp %18515 %7021 %21068 - %23594 = OpLoad %150 %5785 - %10361 = OpLoad %508 %5688 - %12177 = OpSampledImage %510 %23594 %10361 - %15381 = OpImageSampleExplicitLod %v4float %12177 %13159 Lod %float_0 - %15276 = OpCompositeExtract %float %15381 3 - %12126 = OpAccessChain %_ptr_Uniform_float %22044 %int_1 - %12982 = OpLoad %float %12126 - %15720 = OpFMul %float %15276 %12982 - %15289 = OpExtInst %float %1 FClamp %15720 %float_0 %float_1 - %22223 = OpAccessChain %_ptr_Uniform_v3float %12348 %int_5 - %11766 = OpLoad %v3float %22223 - %12113 = OpVectorTimesScalar %v3float %11766 %15289 - %15526 = OpLoad %150 %3312 - %24589 = OpLoad %508 %4646 - %12178 = OpSampledImage %510 %15526 %24589 - %17680 = OpImageSampleExplicitLod %v4float %12178 %13159 Lod %float_0 - %16948 = OpCompositeExtract %float %17680 1 - %14195 = OpFOrdGreaterThan %bool %16948 %float_0 - OpSelectionMerge %22317 DontFlatten - OpBranchConditional %14195 %12831 %22317 - %12831 = OpLabel - %13249 = OpLoad %150 %4862 - %19970 = OpLoad %508 %3594 - %12179 = OpSampledImage %510 %13249 %19970 - %15685 = OpImageSampleExplicitLod %v4float %12179 %13159 Lod %float_0 - %13876 = OpCompositeExtract %float %17680 1 - %12437 = OpCompositeExtract %float %17680 2 - %23310 = OpFMul %float %13876 %12437 - %17622 = OpExtInst %float %1 FClamp %23310 %float_0 %float_1 - %20301 = OpVectorShuffle %v3float %15685 %15685 0 1 2 - %11196 = OpVectorTimesScalar %v3float %20301 %17622 - %15303 = OpFAdd %v3float %12113 %11196 - OpBranch %22317 - %22317 = OpLabel - %7729 = OpPhi %v3float %12113 %22316 %15303 %12831 - %23409 = OpVectorTimesScalar %v3float %7729 %float_0_75 - %9349 = OpFAdd %float %9348 %float_0_75 - %16245 = OpVectorShuffle %v3float %15536 %15536 0 1 2 - %22187 = OpFAdd %v3float %16245 %23409 - %15537 = OpVectorShuffle %v4float %15536 %22187 4 5 6 3 - %6444 = OpCompositeInsert %_struct_1017 %15537 %6443 0 - %24590 = OpVectorShuffle %v2float %142 %142 0 1 - %13217 = OpAccessChain %_ptr_Uniform_v4float %22044 %int_0 - %10362 = OpLoad %v4float %13217 - %8649 = OpVectorShuffle %v2float %10362 %10362 0 1 - %9208 = OpFMul %v2float %24590 %8649 - %18516 = OpFAdd %v2float %19927 %9208 - %7022 = OpVectorShuffle %v2float %17581 %17581 0 1 - %21069 = OpVectorShuffle %v2float %17581 %17581 2 3 - %13160 = OpExtInst %v2float %1 FClamp %18516 %7022 %21069 - %23595 = OpLoad %150 %5785 - %10363 = OpLoad %508 %5688 - %12180 = OpSampledImage %510 %23595 %10363 - %15382 = OpImageSampleExplicitLod %v4float %12180 %13160 Lod %float_0 - %15277 = OpCompositeExtract %float %15382 3 - %12127 = OpAccessChain %_ptr_Uniform_float %22044 %int_1 - %12983 = OpLoad %float %12127 - %15721 = OpFMul %float %15277 %12983 - %15290 = OpExtInst %float %1 FClamp %15721 %float_0 %float_1 - %22224 = OpAccessChain %_ptr_Uniform_v3float %12348 %int_5 - %11767 = OpLoad %v3float %22224 - %12114 = OpVectorTimesScalar %v3float %11767 %15290 - %15538 = OpLoad %150 %3312 - %24591 = OpLoad %508 %4646 - %12181 = OpSampledImage %510 %15538 %24591 - %17681 = OpImageSampleExplicitLod %v4float %12181 %13160 Lod %float_0 - %16949 = OpCompositeExtract %float %17681 1 - %14196 = OpFOrdGreaterThan %bool %16949 %float_0 - OpSelectionMerge %22318 DontFlatten - OpBranchConditional %14196 %12832 %22318 - %12832 = OpLabel - %13250 = OpLoad %150 %4862 - %19971 = OpLoad %508 %3594 - %12182 = OpSampledImage %510 %13250 %19971 - %15686 = OpImageSampleExplicitLod %v4float %12182 %13160 Lod %float_0 - %13877 = OpCompositeExtract %float %17681 1 - %12438 = OpCompositeExtract %float %17681 2 - %23311 = OpFMul %float %13877 %12438 - %17623 = OpExtInst %float %1 FClamp %23311 %float_0 %float_1 - %20302 = OpVectorShuffle %v3float %15686 %15686 0 1 2 - %11197 = OpVectorTimesScalar %v3float %20302 %17623 - %15304 = OpFAdd %v3float %12114 %11197 - OpBranch %22318 - %22318 = OpLabel - %7730 = OpPhi %v3float %12114 %22317 %15304 %12832 - %23410 = OpVectorTimesScalar %v3float %7730 %float_0_5 - %9350 = OpFAdd %float %9349 %float_0_5 - %16246 = OpVectorShuffle %v3float %15537 %15537 0 1 2 - %22188 = OpFAdd %v3float %16246 %23410 - %15539 = OpVectorShuffle %v4float %15537 %22188 4 5 6 3 - %6445 = OpCompositeInsert %_struct_1017 %15539 %6444 0 - %24592 = OpVectorShuffle %v2float %1197 %1197 0 1 - %13218 = OpAccessChain %_ptr_Uniform_v4float %22044 %int_0 - %10364 = OpLoad %v4float %13218 - %8650 = OpVectorShuffle %v2float %10364 %10364 0 1 - %9209 = OpFMul %v2float %24592 %8650 - %18517 = OpFAdd %v2float %19927 %9209 - %7023 = OpVectorShuffle %v2float %17581 %17581 0 1 - %21070 = OpVectorShuffle %v2float %17581 %17581 2 3 - %13161 = OpExtInst %v2float %1 FClamp %18517 %7023 %21070 - %23596 = OpLoad %150 %5785 - %10365 = OpLoad %508 %5688 - %12183 = OpSampledImage %510 %23596 %10365 - %15383 = OpImageSampleExplicitLod %v4float %12183 %13161 Lod %float_0 - %15278 = OpCompositeExtract %float %15383 3 - %12128 = OpAccessChain %_ptr_Uniform_float %22044 %int_1 - %12984 = OpLoad %float %12128 - %15722 = OpFMul %float %15278 %12984 - %15291 = OpExtInst %float %1 FClamp %15722 %float_0 %float_1 - %22225 = OpAccessChain %_ptr_Uniform_v3float %12348 %int_5 - %11768 = OpLoad %v3float %22225 - %12115 = OpVectorTimesScalar %v3float %11768 %15291 - %15540 = OpLoad %150 %3312 - %24593 = OpLoad %508 %4646 - %12184 = OpSampledImage %510 %15540 %24593 - %17682 = OpImageSampleExplicitLod %v4float %12184 %13161 Lod %float_0 - %16950 = OpCompositeExtract %float %17682 1 - %14197 = OpFOrdGreaterThan %bool %16950 %float_0 - OpSelectionMerge %22319 DontFlatten - OpBranchConditional %14197 %12833 %22319 - %12833 = OpLabel - %13251 = OpLoad %150 %4862 - %19972 = OpLoad %508 %3594 - %12185 = OpSampledImage %510 %13251 %19972 - %15687 = OpImageSampleExplicitLod %v4float %12185 %13161 Lod %float_0 - %13878 = OpCompositeExtract %float %17682 1 - %12439 = OpCompositeExtract %float %17682 2 - %23312 = OpFMul %float %13878 %12439 - %17624 = OpExtInst %float %1 FClamp %23312 %float_0 %float_1 - %20303 = OpVectorShuffle %v3float %15687 %15687 0 1 2 - %11198 = OpVectorTimesScalar %v3float %20303 %17624 - %15305 = OpFAdd %v3float %12115 %11198 - OpBranch %22319 - %22319 = OpLabel - %7731 = OpPhi %v3float %12115 %22318 %15305 %12833 - %23411 = OpVectorTimesScalar %v3float %7731 %float_0_5 - %9351 = OpFAdd %float %9350 %float_0_5 - %16247 = OpVectorShuffle %v3float %15539 %15539 0 1 2 - %22189 = OpFAdd %v3float %16247 %23411 - %15541 = OpVectorShuffle %v4float %15539 %22189 4 5 6 3 - %6719 = OpCompositeInsert %_struct_1017 %15541 %6445 0 - %23412 = OpVectorShuffle %v3float %15541 %15541 0 1 2 - %10833 = OpCompositeConstruct %v3float %9351 %9351 %9351 - %13750 = OpFDiv %v3float %23412 %10833 - %24033 = OpVectorShuffle %v4float %15541 %13750 4 5 6 3 - %8636 = OpCompositeInsert %_struct_1017 %24033 %6719 0 - %16315 = OpCompositeInsert %_struct_1017 %float_1 %8636 0 3 - %11544 = OpCompositeExtract %v4float %16315 0 - OpStore %4317 %11544 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/tesc/tess-level-overrun.asm.tesc b/third_party/spirv-cross/shaders-msl/asm/tesc/tess-level-overrun.asm.tesc deleted file mode 100644 index b21a2d3dd5..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/tesc/tess-level-overrun.asm.tesc +++ /dev/null @@ -1,102 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 46 -; Schema: 0 - OpCapability Tessellation - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %main "main" %gl_TessLevelInner %gl_TessLevelOuter - OpExecutionMode %main OutputVertices 1 - OpExecutionMode %main Triangles - OpSource ESSL 310 - OpSourceExtension "GL_EXT_shader_io_blocks" - OpSourceExtension "GL_EXT_tessellation_shader" - OpName %main "main" - OpName %gl_TessLevelInner "gl_TessLevelInner" - OpName %TessLevels "TessLevels" - OpMemberName %TessLevels 0 "inner0" - OpMemberName %TessLevels 1 "inner1" - OpMemberName %TessLevels 2 "outer0" - OpMemberName %TessLevels 3 "outer1" - OpMemberName %TessLevels 4 "outer2" - OpMemberName %TessLevels 5 "outer3" - OpName %sb_levels "sb_levels" - OpName %gl_TessLevelOuter "gl_TessLevelOuter" - OpDecorate %gl_TessLevelInner Patch - OpDecorate %gl_TessLevelInner BuiltIn TessLevelInner - OpMemberDecorate %TessLevels 0 Restrict - OpMemberDecorate %TessLevels 0 NonWritable - OpMemberDecorate %TessLevels 0 Offset 0 - OpMemberDecorate %TessLevels 1 Restrict - OpMemberDecorate %TessLevels 1 NonWritable - OpMemberDecorate %TessLevels 1 Offset 4 - OpMemberDecorate %TessLevels 2 Restrict - OpMemberDecorate %TessLevels 2 NonWritable - OpMemberDecorate %TessLevels 2 Offset 8 - OpMemberDecorate %TessLevels 3 Restrict - OpMemberDecorate %TessLevels 3 NonWritable - OpMemberDecorate %TessLevels 3 Offset 12 - OpMemberDecorate %TessLevels 4 Restrict - OpMemberDecorate %TessLevels 4 NonWritable - OpMemberDecorate %TessLevels 4 Offset 16 - OpMemberDecorate %TessLevels 5 Restrict - OpMemberDecorate %TessLevels 5 NonWritable - OpMemberDecorate %TessLevels 5 Offset 20 - OpDecorate %TessLevels Block - OpDecorate %sb_levels DescriptorSet 0 - OpDecorate %sb_levels Binding 0 - OpDecorate %gl_TessLevelOuter Patch - OpDecorate %gl_TessLevelOuter BuiltIn TessLevelOuter - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 -%_arr_float_uint_2 = OpTypeArray %float %uint_2 -%_ptr_Output__arr_float_uint_2 = OpTypePointer Output %_arr_float_uint_2 -%gl_TessLevelInner = OpVariable %_ptr_Output__arr_float_uint_2 Output - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %TessLevels = OpTypeStruct %float %float %float %float %float %float -%_ptr_StorageBuffer_TessLevels = OpTypePointer StorageBuffer %TessLevels - %sb_levels = OpVariable %_ptr_StorageBuffer_TessLevels StorageBuffer -%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float -%_ptr_Output_float = OpTypePointer Output %float - %int_1 = OpConstant %int 1 - %uint_4 = OpConstant %uint 4 -%_arr_float_uint_4 = OpTypeArray %float %uint_4 -%_ptr_Output__arr_float_uint_4 = OpTypePointer Output %_arr_float_uint_4 -%gl_TessLevelOuter = OpVariable %_ptr_Output__arr_float_uint_4 Output - %int_2 = OpConstant %int 2 - %int_3 = OpConstant %int 3 - %int_4 = OpConstant %int 4 - %int_5 = OpConstant %int 5 - %main = OpFunction %void None %3 - %5 = OpLabel - %18 = OpAccessChain %_ptr_StorageBuffer_float %sb_levels %int_0 - %19 = OpLoad %float %18 - %21 = OpAccessChain %_ptr_Output_float %gl_TessLevelInner %int_0 - OpStore %21 %19 - %23 = OpAccessChain %_ptr_StorageBuffer_float %sb_levels %int_1 - %24 = OpLoad %float %23 - %25 = OpAccessChain %_ptr_Output_float %gl_TessLevelInner %int_1 - OpStore %25 %24 - %31 = OpAccessChain %_ptr_StorageBuffer_float %sb_levels %int_2 - %32 = OpLoad %float %31 - %33 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %int_0 - OpStore %33 %32 - %35 = OpAccessChain %_ptr_StorageBuffer_float %sb_levels %int_3 - %36 = OpLoad %float %35 - %37 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %int_1 - OpStore %37 %36 - %39 = OpAccessChain %_ptr_StorageBuffer_float %sb_levels %int_4 - %40 = OpLoad %float %39 - %41 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %int_2 - OpStore %41 %40 - %43 = OpAccessChain %_ptr_StorageBuffer_float %sb_levels %int_5 - %44 = OpLoad %float %43 - %45 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %int_3 - OpStore %45 %44 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/tesc/tess-level-overrun.multi-patch.asm.tesc b/third_party/spirv-cross/shaders-msl/asm/tesc/tess-level-overrun.multi-patch.asm.tesc deleted file mode 100644 index b21a2d3dd5..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/tesc/tess-level-overrun.multi-patch.asm.tesc +++ /dev/null @@ -1,102 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 46 -; Schema: 0 - OpCapability Tessellation - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %main "main" %gl_TessLevelInner %gl_TessLevelOuter - OpExecutionMode %main OutputVertices 1 - OpExecutionMode %main Triangles - OpSource ESSL 310 - OpSourceExtension "GL_EXT_shader_io_blocks" - OpSourceExtension "GL_EXT_tessellation_shader" - OpName %main "main" - OpName %gl_TessLevelInner "gl_TessLevelInner" - OpName %TessLevels "TessLevels" - OpMemberName %TessLevels 0 "inner0" - OpMemberName %TessLevels 1 "inner1" - OpMemberName %TessLevels 2 "outer0" - OpMemberName %TessLevels 3 "outer1" - OpMemberName %TessLevels 4 "outer2" - OpMemberName %TessLevels 5 "outer3" - OpName %sb_levels "sb_levels" - OpName %gl_TessLevelOuter "gl_TessLevelOuter" - OpDecorate %gl_TessLevelInner Patch - OpDecorate %gl_TessLevelInner BuiltIn TessLevelInner - OpMemberDecorate %TessLevels 0 Restrict - OpMemberDecorate %TessLevels 0 NonWritable - OpMemberDecorate %TessLevels 0 Offset 0 - OpMemberDecorate %TessLevels 1 Restrict - OpMemberDecorate %TessLevels 1 NonWritable - OpMemberDecorate %TessLevels 1 Offset 4 - OpMemberDecorate %TessLevels 2 Restrict - OpMemberDecorate %TessLevels 2 NonWritable - OpMemberDecorate %TessLevels 2 Offset 8 - OpMemberDecorate %TessLevels 3 Restrict - OpMemberDecorate %TessLevels 3 NonWritable - OpMemberDecorate %TessLevels 3 Offset 12 - OpMemberDecorate %TessLevels 4 Restrict - OpMemberDecorate %TessLevels 4 NonWritable - OpMemberDecorate %TessLevels 4 Offset 16 - OpMemberDecorate %TessLevels 5 Restrict - OpMemberDecorate %TessLevels 5 NonWritable - OpMemberDecorate %TessLevels 5 Offset 20 - OpDecorate %TessLevels Block - OpDecorate %sb_levels DescriptorSet 0 - OpDecorate %sb_levels Binding 0 - OpDecorate %gl_TessLevelOuter Patch - OpDecorate %gl_TessLevelOuter BuiltIn TessLevelOuter - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 -%_arr_float_uint_2 = OpTypeArray %float %uint_2 -%_ptr_Output__arr_float_uint_2 = OpTypePointer Output %_arr_float_uint_2 -%gl_TessLevelInner = OpVariable %_ptr_Output__arr_float_uint_2 Output - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %TessLevels = OpTypeStruct %float %float %float %float %float %float -%_ptr_StorageBuffer_TessLevels = OpTypePointer StorageBuffer %TessLevels - %sb_levels = OpVariable %_ptr_StorageBuffer_TessLevels StorageBuffer -%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float -%_ptr_Output_float = OpTypePointer Output %float - %int_1 = OpConstant %int 1 - %uint_4 = OpConstant %uint 4 -%_arr_float_uint_4 = OpTypeArray %float %uint_4 -%_ptr_Output__arr_float_uint_4 = OpTypePointer Output %_arr_float_uint_4 -%gl_TessLevelOuter = OpVariable %_ptr_Output__arr_float_uint_4 Output - %int_2 = OpConstant %int 2 - %int_3 = OpConstant %int 3 - %int_4 = OpConstant %int 4 - %int_5 = OpConstant %int 5 - %main = OpFunction %void None %3 - %5 = OpLabel - %18 = OpAccessChain %_ptr_StorageBuffer_float %sb_levels %int_0 - %19 = OpLoad %float %18 - %21 = OpAccessChain %_ptr_Output_float %gl_TessLevelInner %int_0 - OpStore %21 %19 - %23 = OpAccessChain %_ptr_StorageBuffer_float %sb_levels %int_1 - %24 = OpLoad %float %23 - %25 = OpAccessChain %_ptr_Output_float %gl_TessLevelInner %int_1 - OpStore %25 %24 - %31 = OpAccessChain %_ptr_StorageBuffer_float %sb_levels %int_2 - %32 = OpLoad %float %31 - %33 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %int_0 - OpStore %33 %32 - %35 = OpAccessChain %_ptr_StorageBuffer_float %sb_levels %int_3 - %36 = OpLoad %float %35 - %37 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %int_1 - OpStore %37 %36 - %39 = OpAccessChain %_ptr_StorageBuffer_float %sb_levels %int_4 - %40 = OpLoad %float %39 - %41 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %int_2 - OpStore %41 %40 - %43 = OpAccessChain %_ptr_StorageBuffer_float %sb_levels %int_5 - %44 = OpLoad %float %43 - %45 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %int_3 - OpStore %45 %44 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/tese/unnamed-builtin-array.asm.tese b/third_party/spirv-cross/shaders-msl/asm/tese/unnamed-builtin-array.asm.tese deleted file mode 100644 index 956d2a65b4..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/tese/unnamed-builtin-array.asm.tese +++ /dev/null @@ -1,96 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 72 -; Schema: 0 - OpCapability Tessellation - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationEvaluation %main "main" %_ %gl_TessCoord %gl_TessLevelInner %gl_TessLevelOuter - OpExecutionMode %main Quads - OpExecutionMode %main SpacingFractionalEven - OpExecutionMode %main VertexOrderCw - OpSource ESSL 310 - OpSourceExtension "GL_EXT_shader_io_blocks" - OpSourceExtension "GL_EXT_tessellation_shader" - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpDecorate %gl_PerVertex Block - OpDecorate %gl_TessCoord BuiltIn TessCoord - OpDecorate %gl_TessLevelInner Patch - OpDecorate %gl_TessLevelInner BuiltIn TessLevelInner - OpDecorate %gl_TessLevelOuter Patch - OpDecorate %gl_TessLevelOuter BuiltIn TessLevelOuter - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%gl_PerVertex = OpTypeStruct %v4float %float -%_ptr_Output_gl_PerVertex = OpTypePointer Output %gl_PerVertex - %_ = OpVariable %_ptr_Output_gl_PerVertex Output - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %v3float = OpTypeVector %float 3 -%_ptr_Input_v3float = OpTypePointer Input %v3float -%gl_TessCoord = OpVariable %_ptr_Input_v3float Input - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 -%_ptr_Input_float = OpTypePointer Input %float - %uint_2 = OpConstant %uint 2 -%_arr_float_uint_2 = OpTypeArray %float %uint_2 -%_ptr_Input__arr_float_uint_2 = OpTypePointer Input %_arr_float_uint_2 -%gl_TessLevelInner = OpVariable %_ptr_Input__arr_float_uint_2 Input - %uint_4 = OpConstant %uint 4 -%_arr_float_uint_4 = OpTypeArray %float %uint_4 -%_ptr_Input__arr_float_uint_4 = OpTypePointer Input %_arr_float_uint_4 -%gl_TessLevelOuter = OpVariable %_ptr_Input__arr_float_uint_4 Input - %float_1 = OpConstant %float 1 - %int_2 = OpConstant %int 2 - %uint_1 = OpConstant %uint 1 - %int_1 = OpConstant %int 1 - %int_3 = OpConstant %int 3 - %float_0 = OpConstant %float 0 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %main = OpFunction %void None %3 - %5 = OpLabel - %19 = OpAccessChain %_ptr_Input_float %gl_TessCoord %uint_0 - %20 = OpLoad %float %19 - %25 = OpAccessChain %_ptr_Input_float %gl_TessLevelInner %int_0 - %26 = OpLoad %float %25 - %27 = OpFMul %float %20 %26 - %32 = OpAccessChain %_ptr_Input_float %gl_TessLevelOuter %int_0 - %33 = OpLoad %float %32 - %34 = OpFMul %float %27 %33 - %36 = OpAccessChain %_ptr_Input_float %gl_TessCoord %uint_0 - %37 = OpLoad %float %36 - %38 = OpFSub %float %float_1 %37 - %39 = OpAccessChain %_ptr_Input_float %gl_TessLevelInner %int_0 - %40 = OpLoad %float %39 - %41 = OpFMul %float %38 %40 - %43 = OpAccessChain %_ptr_Input_float %gl_TessLevelOuter %int_2 - %44 = OpLoad %float %43 - %45 = OpFMul %float %41 %44 - %46 = OpFAdd %float %34 %45 - %48 = OpAccessChain %_ptr_Input_float %gl_TessCoord %uint_1 - %49 = OpLoad %float %48 - %51 = OpAccessChain %_ptr_Input_float %gl_TessLevelInner %int_1 - %52 = OpLoad %float %51 - %53 = OpFMul %float %49 %52 - %54 = OpAccessChain %_ptr_Input_float %gl_TessLevelOuter %int_1 - %55 = OpLoad %float %54 - %56 = OpFMul %float %53 %55 - %57 = OpAccessChain %_ptr_Input_float %gl_TessCoord %uint_1 - %58 = OpLoad %float %57 - %59 = OpFSub %float %float_1 %58 - %60 = OpAccessChain %_ptr_Input_float %gl_TessLevelInner %int_1 - %61 = OpLoad %float %60 - %62 = OpFMul %float %59 %61 - %64 = OpAccessChain %_ptr_Input_float %gl_TessLevelOuter %int_3 - %65 = OpLoad %float %64 - %66 = OpFMul %float %62 %65 - %67 = OpFAdd %float %56 %66 - %69 = OpCompositeConstruct %v4float %46 %67 %float_0 %float_1 - %71 = OpAccessChain %_ptr_Output_v4float %_ %int_0 - OpStore %71 %69 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/vert/clip-distance-plain-variable.asm.vert b/third_party/spirv-cross/shaders-msl/asm/vert/clip-distance-plain-variable.asm.vert deleted file mode 100644 index 59ec3f9198..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/vert/clip-distance-plain-variable.asm.vert +++ /dev/null @@ -1,91 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 56 -; Schema: 0 - OpCapability Shader - OpCapability ClipDistance - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %main "main" %pos_1 %_entryPointOutput_pos %_entryPointOutput_clip - OpSource HLSL 500 - OpName %main "main" - OpName %VSOut "VSOut" - OpMemberName %VSOut 0 "pos" - OpMemberName %VSOut 1 "clip" - OpName %_main_vf4_ "@main(vf4;" - OpName %pos "pos" - OpName %vout "vout" - OpName %pos_0 "pos" - OpName %pos_1 "pos" - OpName %flattenTemp "flattenTemp" - OpName %param "param" - OpName %_entryPointOutput_pos "@entryPointOutput.pos" - OpName %_entryPointOutput_clip "@entryPointOutput.clip" - OpDecorate %pos_1 Location 0 - OpDecorate %_entryPointOutput_pos BuiltIn Position - OpDecorate %_entryPointOutput_clip BuiltIn ClipDistance - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Function_v4float = OpTypePointer Function %v4float - %v2float = OpTypeVector %float 2 - %VSOut = OpTypeStruct %v4float %v2float - %11 = OpTypeFunction %VSOut %_ptr_Function_v4float -%_ptr_Function_VSOut = OpTypePointer Function %VSOut - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 -%_ptr_Function_v2float = OpTypePointer Function %v2float -%_ptr_Input_v4float = OpTypePointer Input %v4float - %pos_1 = OpVariable %_ptr_Input_v4float Input -%_ptr_Output_v4float = OpTypePointer Output %v4float -%_entryPointOutput_pos = OpVariable %_ptr_Output_v4float Output - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 -%_arr_float_uint_2 = OpTypeArray %float %uint_2 -%_ptr_Output__arr_float_uint_2 = OpTypePointer Output %_arr_float_uint_2 -%_entryPointOutput_clip = OpVariable %_ptr_Output__arr_float_uint_2 Output - %uint_0 = OpConstant %uint 0 -%_ptr_Function_float = OpTypePointer Function %float -%_ptr_Output_float = OpTypePointer Output %float - %uint_1 = OpConstant %uint 1 - %main = OpFunction %void None %3 - %5 = OpLabel - %pos_0 = OpVariable %_ptr_Function_v4float Function -%flattenTemp = OpVariable %_ptr_Function_VSOut Function - %param = OpVariable %_ptr_Function_v4float Function - %32 = OpLoad %v4float %pos_1 - OpStore %pos_0 %32 - %35 = OpLoad %v4float %pos_0 - OpStore %param %35 - %36 = OpFunctionCall %VSOut %_main_vf4_ %param - OpStore %flattenTemp %36 - %39 = OpAccessChain %_ptr_Function_v4float %flattenTemp %int_0 - %40 = OpLoad %v4float %39 - OpStore %_entryPointOutput_pos %40 - %48 = OpAccessChain %_ptr_Function_float %flattenTemp %int_1 %uint_0 - %49 = OpLoad %float %48 - %51 = OpAccessChain %_ptr_Output_float %_entryPointOutput_clip %int_0 - OpStore %51 %49 - %53 = OpAccessChain %_ptr_Function_float %flattenTemp %int_1 %uint_1 - %54 = OpLoad %float %53 - %55 = OpAccessChain %_ptr_Output_float %_entryPointOutput_clip %int_1 - OpStore %55 %54 - OpReturn - OpFunctionEnd - %_main_vf4_ = OpFunction %VSOut None %11 - %pos = OpFunctionParameter %_ptr_Function_v4float - %14 = OpLabel - %vout = OpVariable %_ptr_Function_VSOut Function - %19 = OpLoad %v4float %pos - %20 = OpAccessChain %_ptr_Function_v4float %vout %int_0 - OpStore %20 %19 - %22 = OpLoad %v4float %pos - %23 = OpVectorShuffle %v2float %22 %22 0 1 - %25 = OpAccessChain %_ptr_Function_v2float %vout %int_1 - OpStore %25 %23 - %26 = OpLoad %VSOut %vout - OpReturnValue %26 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/vert/clip-distance-plain-variable.no-user-varying.asm.vert b/third_party/spirv-cross/shaders-msl/asm/vert/clip-distance-plain-variable.no-user-varying.asm.vert deleted file mode 100644 index 59ec3f9198..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/vert/clip-distance-plain-variable.no-user-varying.asm.vert +++ /dev/null @@ -1,91 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 56 -; Schema: 0 - OpCapability Shader - OpCapability ClipDistance - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %main "main" %pos_1 %_entryPointOutput_pos %_entryPointOutput_clip - OpSource HLSL 500 - OpName %main "main" - OpName %VSOut "VSOut" - OpMemberName %VSOut 0 "pos" - OpMemberName %VSOut 1 "clip" - OpName %_main_vf4_ "@main(vf4;" - OpName %pos "pos" - OpName %vout "vout" - OpName %pos_0 "pos" - OpName %pos_1 "pos" - OpName %flattenTemp "flattenTemp" - OpName %param "param" - OpName %_entryPointOutput_pos "@entryPointOutput.pos" - OpName %_entryPointOutput_clip "@entryPointOutput.clip" - OpDecorate %pos_1 Location 0 - OpDecorate %_entryPointOutput_pos BuiltIn Position - OpDecorate %_entryPointOutput_clip BuiltIn ClipDistance - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Function_v4float = OpTypePointer Function %v4float - %v2float = OpTypeVector %float 2 - %VSOut = OpTypeStruct %v4float %v2float - %11 = OpTypeFunction %VSOut %_ptr_Function_v4float -%_ptr_Function_VSOut = OpTypePointer Function %VSOut - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 -%_ptr_Function_v2float = OpTypePointer Function %v2float -%_ptr_Input_v4float = OpTypePointer Input %v4float - %pos_1 = OpVariable %_ptr_Input_v4float Input -%_ptr_Output_v4float = OpTypePointer Output %v4float -%_entryPointOutput_pos = OpVariable %_ptr_Output_v4float Output - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 -%_arr_float_uint_2 = OpTypeArray %float %uint_2 -%_ptr_Output__arr_float_uint_2 = OpTypePointer Output %_arr_float_uint_2 -%_entryPointOutput_clip = OpVariable %_ptr_Output__arr_float_uint_2 Output - %uint_0 = OpConstant %uint 0 -%_ptr_Function_float = OpTypePointer Function %float -%_ptr_Output_float = OpTypePointer Output %float - %uint_1 = OpConstant %uint 1 - %main = OpFunction %void None %3 - %5 = OpLabel - %pos_0 = OpVariable %_ptr_Function_v4float Function -%flattenTemp = OpVariable %_ptr_Function_VSOut Function - %param = OpVariable %_ptr_Function_v4float Function - %32 = OpLoad %v4float %pos_1 - OpStore %pos_0 %32 - %35 = OpLoad %v4float %pos_0 - OpStore %param %35 - %36 = OpFunctionCall %VSOut %_main_vf4_ %param - OpStore %flattenTemp %36 - %39 = OpAccessChain %_ptr_Function_v4float %flattenTemp %int_0 - %40 = OpLoad %v4float %39 - OpStore %_entryPointOutput_pos %40 - %48 = OpAccessChain %_ptr_Function_float %flattenTemp %int_1 %uint_0 - %49 = OpLoad %float %48 - %51 = OpAccessChain %_ptr_Output_float %_entryPointOutput_clip %int_0 - OpStore %51 %49 - %53 = OpAccessChain %_ptr_Function_float %flattenTemp %int_1 %uint_1 - %54 = OpLoad %float %53 - %55 = OpAccessChain %_ptr_Output_float %_entryPointOutput_clip %int_1 - OpStore %55 %54 - OpReturn - OpFunctionEnd - %_main_vf4_ = OpFunction %VSOut None %11 - %pos = OpFunctionParameter %_ptr_Function_v4float - %14 = OpLabel - %vout = OpVariable %_ptr_Function_VSOut Function - %19 = OpLoad %v4float %pos - %20 = OpAccessChain %_ptr_Function_v4float %vout %int_0 - OpStore %20 %19 - %22 = OpLoad %v4float %pos - %23 = OpVectorShuffle %v2float %22 %22 0 1 - %25 = OpAccessChain %_ptr_Function_v2float %vout %int_1 - OpStore %25 %23 - %26 = OpLoad %VSOut %vout - OpReturnValue %26 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/vert/copy-memory-interface.asm.vert b/third_party/spirv-cross/shaders-msl/asm/vert/copy-memory-interface.asm.vert deleted file mode 100644 index c52c9bf0b5..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/vert/copy-memory-interface.asm.vert +++ /dev/null @@ -1,33 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Wine VKD3D Shader Compiler; 1 -; Bound: 13 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %1 "main" %8 %9 %11 %12 - OpName %1 "main" - OpName %8 "v0" - OpName %9 "v1" - OpName %11 "o0" - OpName %12 "o1" - OpDecorate %8 Location 0 - OpDecorate %9 Location 1 - OpDecorate %11 BuiltIn Position - OpDecorate %12 Location 1 - %2 = OpTypeVoid - %3 = OpTypeFunction %2 - %5 = OpTypeFloat 32 - %6 = OpTypeVector %5 4 - %7 = OpTypePointer Input %6 - %8 = OpVariable %7 Input - %9 = OpVariable %7 Input - %10 = OpTypePointer Output %6 - %11 = OpVariable %10 Output - %12 = OpVariable %10 Output - %1 = OpFunction %2 None %3 - %4 = OpLabel - OpCopyMemory %11 %8 - OpCopyMemory %12 %9 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/vert/extract-transposed-matrix-from-struct.asm.vert b/third_party/spirv-cross/shaders-msl/asm/vert/extract-transposed-matrix-from-struct.asm.vert deleted file mode 100644 index 89edeaa731..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/vert/extract-transposed-matrix-from-struct.asm.vert +++ /dev/null @@ -1,141 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 79 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %VS "main" %PosL_1 %instanceID_1 %_entryPointOutput_Position %_entryPointOutput_Color - OpSource HLSL 500 - OpName %VS "VS" - OpName %V2F "V2F" - OpMemberName %V2F 0 "Position" - OpMemberName %V2F 1 "Color" - OpName %_VS_vf3_u1_ "@VS(vf3;u1;" - OpName %PosL "PosL" - OpName %instanceID "instanceID" - OpName %InstanceData "InstanceData" - OpMemberName %InstanceData 0 "MATRIX_MVP" - OpMemberName %InstanceData 1 "Color" - OpName %instData "instData" - OpName %InstanceData_0 "InstanceData" - OpMemberName %InstanceData_0 0 "MATRIX_MVP" - OpMemberName %InstanceData_0 1 "Color" - OpName %gInstanceData "gInstanceData" - OpMemberName %gInstanceData 0 "@data" - OpName %gInstanceData_0 "gInstanceData" - OpName %v2f "v2f" - OpName %PosL_0 "PosL" - OpName %PosL_1 "PosL" - OpName %instanceID_0 "instanceID" - OpName %instanceID_1 "instanceID" - OpName %flattenTemp "flattenTemp" - OpName %param "param" - OpName %param_0 "param" - OpName %_entryPointOutput_Position "@entryPointOutput.Position" - OpName %_entryPointOutput_Color "@entryPointOutput.Color" - OpMemberDecorate %InstanceData_0 0 RowMajor - OpMemberDecorate %InstanceData_0 0 Offset 0 - OpMemberDecorate %InstanceData_0 0 MatrixStride 16 - OpMemberDecorate %InstanceData_0 1 Offset 64 - OpDecorate %_runtimearr_InstanceData_0 ArrayStride 80 - OpMemberDecorate %gInstanceData 0 NonWritable - OpMemberDecorate %gInstanceData 0 Offset 0 - OpDecorate %gInstanceData BufferBlock - OpDecorate %gInstanceData_0 DescriptorSet 1 - OpDecorate %gInstanceData_0 Binding 0 - OpDecorate %PosL_1 Location 0 - OpDecorate %instanceID_1 BuiltIn InstanceIndex - OpDecorate %_entryPointOutput_Position BuiltIn Position - OpDecorate %_entryPointOutput_Color Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v3float = OpTypeVector %float 3 -%_ptr_Function_v3float = OpTypePointer Function %v3float - %uint = OpTypeInt 32 0 -%_ptr_Function_uint = OpTypePointer Function %uint - %v4float = OpTypeVector %float 4 - %V2F = OpTypeStruct %v4float %v4float - %13 = OpTypeFunction %V2F %_ptr_Function_v3float %_ptr_Function_uint -%mat4v4float = OpTypeMatrix %v4float 4 -%InstanceData = OpTypeStruct %mat4v4float %v4float -%_ptr_Function_InstanceData = OpTypePointer Function %InstanceData -%InstanceData_0 = OpTypeStruct %mat4v4float %v4float -%_runtimearr_InstanceData_0 = OpTypeRuntimeArray %InstanceData_0 -%gInstanceData = OpTypeStruct %_runtimearr_InstanceData_0 -%_ptr_Uniform_gInstanceData = OpTypePointer Uniform %gInstanceData -%gInstanceData_0 = OpVariable %_ptr_Uniform_gInstanceData Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_Uniform_InstanceData_0 = OpTypePointer Uniform %InstanceData_0 -%_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float - %int_1 = OpConstant %int 1 -%_ptr_Function_v4float = OpTypePointer Function %v4float -%_ptr_Function_V2F = OpTypePointer Function %V2F - %float_1 = OpConstant %float 1 -%_ptr_Input_v3float = OpTypePointer Input %v3float - %PosL_1 = OpVariable %_ptr_Input_v3float Input -%_ptr_Input_uint = OpTypePointer Input %uint -%instanceID_1 = OpVariable %_ptr_Input_uint Input -%_ptr_Output_v4float = OpTypePointer Output %v4float -%_entryPointOutput_Position = OpVariable %_ptr_Output_v4float Output -%_entryPointOutput_Color = OpVariable %_ptr_Output_v4float Output - %VS = OpFunction %void None %3 - %5 = OpLabel - %PosL_0 = OpVariable %_ptr_Function_v3float Function -%instanceID_0 = OpVariable %_ptr_Function_uint Function -%flattenTemp = OpVariable %_ptr_Function_V2F Function - %param = OpVariable %_ptr_Function_v3float Function - %param_0 = OpVariable %_ptr_Function_uint Function - %61 = OpLoad %v3float %PosL_1 - OpStore %PosL_0 %61 - %65 = OpLoad %uint %instanceID_1 - OpStore %instanceID_0 %65 - %68 = OpLoad %v3float %PosL_0 - OpStore %param %68 - %70 = OpLoad %uint %instanceID_0 - OpStore %param_0 %70 - %71 = OpFunctionCall %V2F %_VS_vf3_u1_ %param %param_0 - OpStore %flattenTemp %71 - %74 = OpAccessChain %_ptr_Function_v4float %flattenTemp %int_0 - %75 = OpLoad %v4float %74 - OpStore %_entryPointOutput_Position %75 - %77 = OpAccessChain %_ptr_Function_v4float %flattenTemp %int_1 - %78 = OpLoad %v4float %77 - OpStore %_entryPointOutput_Color %78 - OpReturn - OpFunctionEnd -%_VS_vf3_u1_ = OpFunction %V2F None %13 - %PosL = OpFunctionParameter %_ptr_Function_v3float - %instanceID = OpFunctionParameter %_ptr_Function_uint - %17 = OpLabel - %instData = OpVariable %_ptr_Function_InstanceData Function - %v2f = OpVariable %_ptr_Function_V2F Function - %29 = OpLoad %uint %instanceID - %31 = OpAccessChain %_ptr_Uniform_InstanceData_0 %gInstanceData_0 %int_0 %29 - %32 = OpLoad %InstanceData_0 %31 - %33 = OpCompositeExtract %mat4v4float %32 0 - %35 = OpAccessChain %_ptr_Function_mat4v4float %instData %int_0 - OpStore %35 %33 - %36 = OpCompositeExtract %v4float %32 1 - %39 = OpAccessChain %_ptr_Function_v4float %instData %int_1 - OpStore %39 %36 - %42 = OpAccessChain %_ptr_Function_mat4v4float %instData %int_0 - %43 = OpLoad %mat4v4float %42 - %44 = OpLoad %v3float %PosL - %46 = OpCompositeExtract %float %44 0 - %47 = OpCompositeExtract %float %44 1 - %48 = OpCompositeExtract %float %44 2 - %49 = OpCompositeConstruct %v4float %46 %47 %48 %float_1 - %50 = OpMatrixTimesVector %v4float %43 %49 - %51 = OpAccessChain %_ptr_Function_v4float %v2f %int_0 - OpStore %51 %50 - %52 = OpAccessChain %_ptr_Function_v4float %instData %int_1 - %53 = OpLoad %v4float %52 - %54 = OpAccessChain %_ptr_Function_v4float %v2f %int_1 - OpStore %54 %53 - %55 = OpLoad %V2F %v2f - OpReturnValue %55 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/vert/fake-builtin-input.asm.vert b/third_party/spirv-cross/shaders-msl/asm/vert/fake-builtin-input.asm.vert deleted file mode 100644 index 4de1d1945c..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/vert/fake-builtin-input.asm.vert +++ /dev/null @@ -1,55 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Google spiregg; 0 -; Bound: 29 -; Schema: 0 - OpCapability Shader - OpCapability Float16 - OpCapability StorageInputOutput16 - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %vertexShader "main" %in_var_POSITION %gl_Position %gl_FragCoord %out_var_SV_Target - OpEntryPoint Fragment %fragmentShader "fragmentShader" %in_var_POSITION %gl_Position %gl_FragCoord %out_var_SV_Target - OpExecutionMode %fragmentShader OriginUpperLeft - OpSource HLSL 640 - OpName %in_var_POSITION "in.var.POSITION" - OpName %out_var_SV_Target "out.var.SV_Target" - OpName %vertexShader "vertexShader" - OpName %fragmentShader "fragmentShader" - OpDecorate %gl_Position BuiltIn Position - OpDecorate %gl_FragCoord BuiltIn FragCoord - OpDecorate %in_var_POSITION Location 0 - OpDecorate %out_var_SV_Target Location 0 - %float = OpTypeFloat 32 - %float_0 = OpConstant %float 0 - %float_1 = OpConstant %float 1 - %half = OpTypeFloat 16 -%half_0x1p_0 = OpConstant %half 0x1p+0 -%half_0x0p_0 = OpConstant %half 0x0p+0 - %v4half = OpTypeVector %half 4 - %14 = OpConstantComposite %v4half %half_0x1p_0 %half_0x0p_0 %half_0x1p_0 %half_0x1p_0 - %v2float = OpTypeVector %float 2 -%_ptr_Input_v2float = OpTypePointer Input %v2float - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float -%_ptr_Input_v4float = OpTypePointer Input %v4float -%_ptr_Output_v4half = OpTypePointer Output %v4half - %void = OpTypeVoid - %22 = OpTypeFunction %void -%in_var_POSITION = OpVariable %_ptr_Input_v2float Input -%gl_Position = OpVariable %_ptr_Output_v4float Output -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input -%out_var_SV_Target = OpVariable %_ptr_Output_v4half Output -%vertexShader = OpFunction %void None %22 - %23 = OpLabel - %24 = OpLoad %v2float %in_var_POSITION - %25 = OpCompositeExtract %float %24 0 - %26 = OpCompositeExtract %float %24 1 - %27 = OpCompositeConstruct %v4float %25 %26 %float_0 %float_1 - OpStore %gl_Position %27 - OpReturn - OpFunctionEnd -%fragmentShader = OpFunction %void None %22 - %28 = OpLabel - OpStore %out_var_SV_Target %14 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/vert/invariant.msl21.asm.vert b/third_party/spirv-cross/shaders-msl/asm/vert/invariant.msl21.asm.vert deleted file mode 100644 index c0d381ee23..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/vert/invariant.msl21.asm.vert +++ /dev/null @@ -1,34 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 3 -; Bound: 18 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %main "main" %_entryPointOutput - OpSource HLSL 500 - OpName %main "main" - OpName %_main_ "@main(" - OpName %_entryPointOutput "@entryPointOutput" - OpDecorate %_entryPointOutput Invariant - OpDecorate %_entryPointOutput BuiltIn Position - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %8 = OpTypeFunction %v4float - %float_1 = OpConstant %float 1 - %12 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float -%_entryPointOutput = OpVariable %_ptr_Output_v4float Output - %main = OpFunction %void None %3 - %5 = OpLabel - %17 = OpFunctionCall %v4float %_main_ - OpStore %_entryPointOutput %17 - OpReturn - OpFunctionEnd - %_main_ = OpFunction %v4float None %8 - %10 = OpLabel - OpReturnValue %12 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/vert/packed-bool-to-uint.asm.vert b/third_party/spirv-cross/shaders-msl/asm/vert/packed-bool-to-uint.asm.vert deleted file mode 100644 index 429d3e4127..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/vert/packed-bool-to-uint.asm.vert +++ /dev/null @@ -1,111 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 62 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %main "main" %_ %gl_VertexIndex %a_position - OpSource GLSL 450 - OpName %main "main" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %_ "" - OpName %Struct "Struct" - OpMemberName %Struct 0 "flags" - OpName %defaultUniformsVS "defaultUniformsVS" - OpMemberName %defaultUniformsVS 0 "flags" - OpMemberName %defaultUniformsVS 1 "uquad" - OpMemberName %defaultUniformsVS 2 "umatrix" - OpName %__0 "" - OpName %gl_VertexIndex "gl_VertexIndex" - OpName %a_position "a_position" - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - OpDecorate %_arr_uint_uint_1 ArrayStride 16 - OpMemberDecorate %Struct 0 Offset 0 - OpDecorate %_arr_v2float_uint_4 ArrayStride 16 - OpMemberDecorate %defaultUniformsVS 0 Offset 0 - OpMemberDecorate %defaultUniformsVS 1 Offset 16 - OpMemberDecorate %defaultUniformsVS 2 ColMajor - OpMemberDecorate %defaultUniformsVS 2 Offset 80 - OpMemberDecorate %defaultUniformsVS 2 MatrixStride 16 - OpDecorate %defaultUniformsVS Block - OpDecorate %__0 DescriptorSet 0 - OpDecorate %__0 Binding 0 - OpDecorate %gl_VertexIndex BuiltIn VertexIndex - OpDecorate %a_position Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %uint = OpTypeInt 32 0 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 -%_ptr_Output_gl_PerVertex = OpTypePointer Output %gl_PerVertex - %_ = OpVariable %_ptr_Output_gl_PerVertex Output - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_arr_uint_uint_1 = OpTypeArray %uint %uint_1 - %Struct = OpTypeStruct %_arr_uint_uint_1 - %v2float = OpTypeVector %float 2 - %uint_4 = OpConstant %uint 4 -%_arr_v2float_uint_4 = OpTypeArray %v2float %uint_4 -%mat4v4float = OpTypeMatrix %v4float 4 -%defaultUniformsVS = OpTypeStruct %Struct %_arr_v2float_uint_4 %mat4v4float -%_ptr_Uniform_defaultUniformsVS = OpTypePointer Uniform %defaultUniformsVS - %__0 = OpVariable %_ptr_Uniform_defaultUniformsVS Uniform - %int_2 = OpConstant %int 2 -%_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float - %int_1 = OpConstant %int 1 -%_ptr_Input_int = OpTypePointer Input %int -%gl_VertexIndex = OpVariable %_ptr_Input_int Input -%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float -%_ptr_Input_v4float = OpTypePointer Input %v4float - %a_position = OpVariable %_ptr_Input_v4float Input - %uint_2 = OpConstant %uint 2 -%_ptr_Input_float = OpTypePointer Input %float - %uint_3 = OpConstant %uint 3 -%_ptr_Output_v4float = OpTypePointer Output %v4float -%_ptr_Uniform_uint = OpTypePointer Uniform %uint - %bool = OpTypeBool - %uint_0 = OpConstant %uint 0 - %float_0 = OpConstant %float 0 -%_ptr_Output_float = OpTypePointer Output %float - %main = OpFunction %void None %3 - %5 = OpLabel - %27 = OpAccessChain %_ptr_Uniform_mat4v4float %__0 %int_2 - %28 = OpLoad %mat4v4float %27 - %32 = OpLoad %int %gl_VertexIndex - %34 = OpAccessChain %_ptr_Uniform_v2float %__0 %int_1 %32 - %35 = OpLoad %v2float %34 - %40 = OpAccessChain %_ptr_Input_float %a_position %uint_2 - %41 = OpLoad %float %40 - %43 = OpAccessChain %_ptr_Input_float %a_position %uint_3 - %44 = OpLoad %float %43 - %45 = OpCompositeExtract %float %35 0 - %46 = OpCompositeExtract %float %35 1 - %47 = OpCompositeConstruct %v4float %45 %46 %41 %44 - %48 = OpMatrixTimesVector %v4float %28 %47 - %50 = OpAccessChain %_ptr_Output_v4float %_ %int_0 - OpStore %50 %48 - %52 = OpAccessChain %_ptr_Uniform_uint %__0 %int_0 %int_0 %int_0 - %53 = OpLoad %uint %52 - %56 = OpINotEqual %bool %53 %uint_0 - OpSelectionMerge %58 None - OpBranchConditional %56 %57 %58 - %57 = OpLabel - %61 = OpAccessChain %_ptr_Output_float %_ %int_0 %uint_2 - OpStore %61 %float_0 - OpBranch %58 - %58 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/vert/packed-bool2-to-packed_uint2.asm.vert b/third_party/spirv-cross/shaders-msl/asm/vert/packed-bool2-to-packed_uint2.asm.vert deleted file mode 100644 index 8448265c1d..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/vert/packed-bool2-to-packed_uint2.asm.vert +++ /dev/null @@ -1,113 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 64 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %main "main" %_ %gl_VertexIndex %a_position - OpSource GLSL 450 - OpName %main "main" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %_ "" - OpName %Struct "Struct" - OpMemberName %Struct 0 "flags" - OpName %defaultUniformsVS "defaultUniformsVS" - OpMemberName %defaultUniformsVS 0 "flags" - OpMemberName %defaultUniformsVS 1 "uquad" - OpMemberName %defaultUniformsVS 2 "umatrix" - OpName %__0 "" - OpName %gl_VertexIndex "gl_VertexIndex" - OpName %a_position "a_position" - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - OpDecorate %_arr_v2uint_uint_1 ArrayStride 16 - OpMemberDecorate %Struct 0 Offset 0 - OpDecorate %_arr_v2float_uint_4 ArrayStride 16 - OpMemberDecorate %defaultUniformsVS 0 Offset 0 - OpMemberDecorate %defaultUniformsVS 1 Offset 16 - OpMemberDecorate %defaultUniformsVS 2 ColMajor - OpMemberDecorate %defaultUniformsVS 2 Offset 80 - OpMemberDecorate %defaultUniformsVS 2 MatrixStride 16 - OpDecorate %defaultUniformsVS Block - OpDecorate %__0 DescriptorSet 0 - OpDecorate %__0 Binding 0 - OpDecorate %gl_VertexIndex BuiltIn VertexIndex - OpDecorate %a_position Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %uint = OpTypeInt 32 0 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 -%_ptr_Output_gl_PerVertex = OpTypePointer Output %gl_PerVertex - %_ = OpVariable %_ptr_Output_gl_PerVertex Output - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %v2uint = OpTypeVector %uint 2 -%_arr_v2uint_uint_1 = OpTypeArray %v2uint %uint_1 - %Struct = OpTypeStruct %_arr_v2uint_uint_1 - %v2float = OpTypeVector %float 2 - %uint_4 = OpConstant %uint 4 -%_arr_v2float_uint_4 = OpTypeArray %v2float %uint_4 -%mat4v4float = OpTypeMatrix %v4float 4 -%defaultUniformsVS = OpTypeStruct %Struct %_arr_v2float_uint_4 %mat4v4float -%_ptr_Uniform_defaultUniformsVS = OpTypePointer Uniform %defaultUniformsVS - %__0 = OpVariable %_ptr_Uniform_defaultUniformsVS Uniform - %int_2 = OpConstant %int 2 -%_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float - %int_1 = OpConstant %int 1 -%_ptr_Input_int = OpTypePointer Input %int -%gl_VertexIndex = OpVariable %_ptr_Input_int Input -%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float -%_ptr_Input_v4float = OpTypePointer Input %v4float - %a_position = OpVariable %_ptr_Input_v4float Input - %uint_2 = OpConstant %uint 2 -%_ptr_Input_float = OpTypePointer Input %float - %uint_3 = OpConstant %uint 3 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %bool = OpTypeBool - %v2bool = OpTypeVector %bool 2 - %uint_0 = OpConstant %uint 0 -%_ptr_Uniform_uint = OpTypePointer Uniform %uint - %float_0 = OpConstant %float 0 -%_ptr_Output_float = OpTypePointer Output %float - %main = OpFunction %void None %3 - %5 = OpLabel - %28 = OpAccessChain %_ptr_Uniform_mat4v4float %__0 %int_2 - %29 = OpLoad %mat4v4float %28 - %33 = OpLoad %int %gl_VertexIndex - %35 = OpAccessChain %_ptr_Uniform_v2float %__0 %int_1 %33 - %36 = OpLoad %v2float %35 - %41 = OpAccessChain %_ptr_Input_float %a_position %uint_2 - %42 = OpLoad %float %41 - %44 = OpAccessChain %_ptr_Input_float %a_position %uint_3 - %45 = OpLoad %float %44 - %46 = OpCompositeExtract %float %36 0 - %47 = OpCompositeExtract %float %36 1 - %48 = OpCompositeConstruct %v4float %46 %47 %42 %45 - %49 = OpMatrixTimesVector %v4float %29 %48 - %51 = OpAccessChain %_ptr_Output_v4float %_ %int_0 - OpStore %51 %49 - %56 = OpAccessChain %_ptr_Uniform_uint %__0 %int_0 %int_0 %int_0 %uint_0 - %57 = OpLoad %uint %56 - %58 = OpINotEqual %bool %57 %uint_0 - OpSelectionMerge %60 None - OpBranchConditional %58 %59 %60 - %59 = OpLabel - %63 = OpAccessChain %_ptr_Output_float %_ %int_0 %uint_2 - OpStore %63 %float_0 - OpBranch %60 - %60 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/vert/packing-test.asm.vert b/third_party/spirv-cross/shaders-msl/asm/vert/packing-test.asm.vert deleted file mode 100644 index 8acdebc7d3..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/vert/packing-test.asm.vert +++ /dev/null @@ -1,43 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 3 -; Bound: 18 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %main "main" - OpSource HLSL 500 - OpName %main "main" - OpName %TestStruct "TestStruct" - OpMemberName %TestStruct 0 "transforms" - OpName %CB0 "CB0" - OpMemberName %CB0 0 "CB0" - OpName %_ "" - OpDecorate %_arr_mat4v4float_uint_6 ArrayStride 64 - OpMemberDecorate %TestStruct 0 RowMajor - OpMemberDecorate %TestStruct 0 Offset 0 - OpMemberDecorate %TestStruct 0 MatrixStride 16 - OpDecorate %_arr_TestStruct_uint_16 ArrayStride 384 - OpMemberDecorate %CB0 0 Offset 0 - OpDecorate %CB0 Block - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%mat4v4float = OpTypeMatrix %v4float 4 - %uint = OpTypeInt 32 0 - %uint_6 = OpConstant %uint 6 -%_arr_mat4v4float_uint_6 = OpTypeArray %mat4v4float %uint_6 - %TestStruct = OpTypeStruct %_arr_mat4v4float_uint_6 - %uint_16 = OpConstant %uint 16 -%_arr_TestStruct_uint_16 = OpTypeArray %TestStruct %uint_16 - %CB0 = OpTypeStruct %_arr_TestStruct_uint_16 -%_ptr_Uniform_CB0 = OpTypePointer Uniform %CB0 - %_ = OpVariable %_ptr_Uniform_CB0 Uniform - %main = OpFunction %void None %3 - %5 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/vert/spec-constant-op-composite.asm.vert b/third_party/spirv-cross/shaders-msl/asm/vert/spec-constant-op-composite.asm.vert deleted file mode 100644 index b566a3d1a0..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/vert/spec-constant-op-composite.asm.vert +++ /dev/null @@ -1,98 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 58 -; Schema: 0 - OpCapability Shader - OpCapability ClipDistance - OpCapability CullDistance - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %4 "main" %52 %output - OpSource GLSL 450 - OpName %4 "main" - OpName %9 "pos" - OpName %50 "gl_PerVertex" - OpMemberName %50 0 "gl_Position" - OpMemberName %50 1 "gl_PointSize" - OpMemberName %50 2 "gl_ClipDistance" - OpMemberName %50 3 "gl_CullDistance" - OpName %52 "" - OpDecorate %13 SpecId 201 - OpDecorate %24 SpecId 202 - OpMemberDecorate %50 0 BuiltIn Position - OpMemberDecorate %50 1 BuiltIn PointSize - OpMemberDecorate %50 2 BuiltIn ClipDistance - OpMemberDecorate %50 3 BuiltIn CullDistance - OpDecorate %50 Block - OpDecorate %57 SpecId 200 - OpDecorate %output Flat - OpDecorate %output Location 0 - %2 = OpTypeVoid - %3 = OpTypeFunction %2 - %6 = OpTypeFloat 32 - %7 = OpTypeVector %6 4 - %8 = OpTypePointer Function %7 - %10 = OpConstant %6 0 - %11 = OpConstantComposite %7 %10 %10 %10 %10 - %12 = OpTypeInt 32 1 - %int_ptr = OpTypePointer Output %12 - %13 = OpSpecConstant %12 -10 - %14 = OpConstant %12 2 - %15 = OpSpecConstantOp %12 IAdd %13 %14 - %17 = OpTypeInt 32 0 - %18 = OpConstant %17 1 - %19 = OpTypePointer Function %6 - %24 = OpSpecConstant %17 100 - %25 = OpConstant %17 5 - %26 = OpSpecConstantOp %17 UMod %24 %25 - %28 = OpConstant %17 2 - %33 = OpConstant %12 20 - %34 = OpConstant %12 30 - %35 = OpTypeVector %12 4 - %36 = OpSpecConstantComposite %35 %33 %34 %15 %15 - %40 = OpTypeVector %12 2 - %41 = OpSpecConstantOp %40 VectorShuffle %36 %36 1 0 - %foo = OpSpecConstantOp %12 CompositeExtract %36 1 - %42 = OpTypeVector %6 2 - %49 = OpTypeArray %6 %18 - %50 = OpTypeStruct %7 %6 %49 %49 - %51 = OpTypePointer Output %50 - %52 = OpVariable %51 Output - %output = OpVariable %int_ptr Output - %53 = OpConstant %12 0 - %55 = OpTypePointer Output %7 - %57 = OpSpecConstant %6 3.14159 - %4 = OpFunction %2 None %3 - %5 = OpLabel - %9 = OpVariable %8 Function - OpStore %9 %11 - %16 = OpConvertSToF %6 %15 - %20 = OpAccessChain %19 %9 %18 - %21 = OpLoad %6 %20 - %22 = OpFAdd %6 %21 %16 - %23 = OpAccessChain %19 %9 %18 - OpStore %23 %22 - %27 = OpConvertUToF %6 %26 - %29 = OpAccessChain %19 %9 %28 - %30 = OpLoad %6 %29 - %31 = OpFAdd %6 %30 %27 - %32 = OpAccessChain %19 %9 %28 - OpStore %32 %31 - %37 = OpConvertSToF %7 %36 - %38 = OpLoad %7 %9 - %39 = OpFAdd %7 %38 %37 - OpStore %9 %39 - %43 = OpConvertSToF %42 %41 - %44 = OpLoad %7 %9 - %45 = OpVectorShuffle %42 %44 %44 0 1 - %46 = OpFAdd %42 %45 %43 - %47 = OpLoad %7 %9 - %48 = OpVectorShuffle %7 %47 %46 4 5 2 3 - OpStore %9 %48 - %54 = OpLoad %7 %9 - %56 = OpAccessChain %55 %52 %53 - OpStore %56 %54 - OpStore %output %foo - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/asm/vert/uint-vertex-id-instance-id.asm.vert b/third_party/spirv-cross/shaders-msl/asm/vert/uint-vertex-id-instance-id.asm.vert deleted file mode 100644 index 29b0076a1e..0000000000 --- a/third_party/spirv-cross/shaders-msl/asm/vert/uint-vertex-id-instance-id.asm.vert +++ /dev/null @@ -1,65 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 36 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %main "main" %vid_1 %iid_1 %_entryPointOutput - OpSource HLSL 500 - OpName %main "main" - OpName %_main_u1_u1_ "@main(u1;u1;" - OpName %vid "vid" - OpName %iid "iid" - OpName %vid_0 "vid" - OpName %vid_1 "vid" - OpName %iid_0 "iid" - OpName %iid_1 "iid" - OpName %_entryPointOutput "@entryPointOutput" - OpName %param "param" - OpName %param_0 "param" - OpDecorate %vid_1 BuiltIn VertexIndex - OpDecorate %iid_1 BuiltIn InstanceIndex - OpDecorate %_entryPointOutput BuiltIn Position - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 -%_ptr_Function_uint = OpTypePointer Function %uint - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %10 = OpTypeFunction %v4float %_ptr_Function_uint %_ptr_Function_uint -%_ptr_Input_uint = OpTypePointer Input %uint - %vid_1 = OpVariable %_ptr_Input_uint Input - %iid_1 = OpVariable %_ptr_Input_uint Input -%_ptr_Output_v4float = OpTypePointer Output %v4float -%_entryPointOutput = OpVariable %_ptr_Output_v4float Output - %main = OpFunction %void None %3 - %5 = OpLabel - %vid_0 = OpVariable %_ptr_Function_uint Function - %iid_0 = OpVariable %_ptr_Function_uint Function - %param = OpVariable %_ptr_Function_uint Function - %param_0 = OpVariable %_ptr_Function_uint Function - %25 = OpLoad %uint %vid_1 - OpStore %vid_0 %25 - %28 = OpLoad %uint %iid_1 - OpStore %iid_0 %28 - %32 = OpLoad %uint %vid_0 - OpStore %param %32 - %34 = OpLoad %uint %iid_0 - OpStore %param_0 %34 - %35 = OpFunctionCall %v4float %_main_u1_u1_ %param %param_0 - OpStore %_entryPointOutput %35 - OpReturn - OpFunctionEnd -%_main_u1_u1_ = OpFunction %v4float None %10 - %vid = OpFunctionParameter %_ptr_Function_uint - %iid = OpFunctionParameter %_ptr_Function_uint - %14 = OpLabel - %15 = OpLoad %uint %vid - %16 = OpLoad %uint %iid - %17 = OpIAdd %uint %15 %16 - %18 = OpConvertUToF %float %17 - %19 = OpCompositeConstruct %v4float %18 %18 %18 %18 - OpReturnValue %19 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/comp/access-private-workgroup-in-function.comp b/third_party/spirv-cross/shaders-msl/comp/access-private-workgroup-in-function.comp deleted file mode 100644 index 7cb1e6f131..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/access-private-workgroup-in-function.comp +++ /dev/null @@ -1,31 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -int f; -shared int u; - -void set_f() -{ - f = 40; -} - -void set_shared_u() -{ - u = 50; -} - -void main() -{ - set_f(); - set_shared_u(); - if (gl_LocalInvocationIndex == 0u) - { - f = 10; - } - else - { - f = 30; - u = 20; - } -} - diff --git a/third_party/spirv-cross/shaders-msl/comp/argument-buffers-discrete.msl2.argument.discrete.comp b/third_party/spirv-cross/shaders-msl/comp/argument-buffers-discrete.msl2.argument.discrete.comp deleted file mode 100644 index 883f0019fe..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/argument-buffers-discrete.msl2.argument.discrete.comp +++ /dev/null @@ -1,27 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -layout(set = 0, binding = 0) readonly buffer SSBO0 -{ - vec4 v; -} ssbo0; - -layout(set = 1, binding = 0) readonly buffer SSBO1 -{ - vec4 v; -} ssbo1; - -layout(set = 2, binding = 5) readonly buffer SSBO2 -{ - vec4 v; -} ssbo2; - -layout(set = 3, binding = 6) writeonly buffer SSBO3 -{ - vec4 v; -} ssbo3; - -void main() -{ - ssbo3.v = ssbo0.v + ssbo1.v + ssbo2.v; -} diff --git a/third_party/spirv-cross/shaders-msl/comp/argument-buffers-image-load-store.ios.msl2.argument.comp b/third_party/spirv-cross/shaders-msl/comp/argument-buffers-image-load-store.ios.msl2.argument.comp deleted file mode 100644 index 72ca8899ad..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/argument-buffers-image-load-store.ios.msl2.argument.comp +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 - -layout(set = 0, binding = 1, r32f) writeonly uniform image2D uImage; -layout(set = 0, binding = 2, r32f) readonly uniform image2D uImageRead; - -void main() -{ - ivec2 coord = ivec2(gl_GlobalInvocationID.xy); - imageStore(uImage, coord, imageLoad(uImageRead, coord)); -} diff --git a/third_party/spirv-cross/shaders-msl/comp/argument-buffers-image-load-store.msl2.argument.comp b/third_party/spirv-cross/shaders-msl/comp/argument-buffers-image-load-store.msl2.argument.comp deleted file mode 100644 index 72ca8899ad..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/argument-buffers-image-load-store.msl2.argument.comp +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 - -layout(set = 0, binding = 1, r32f) writeonly uniform image2D uImage; -layout(set = 0, binding = 2, r32f) readonly uniform image2D uImageRead; - -void main() -{ - ivec2 coord = ivec2(gl_GlobalInvocationID.xy); - imageStore(uImage, coord, imageLoad(uImageRead, coord)); -} diff --git a/third_party/spirv-cross/shaders-msl/comp/array-length.comp b/third_party/spirv-cross/shaders-msl/comp/array-length.comp deleted file mode 100644 index 6189d35602..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/array-length.comp +++ /dev/null @@ -1,22 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; -layout(set = 0, binding = 1, std140) buffer SSBO -{ - uint size; - float v[]; -}; - -layout(set = 0, binding = 2, std430) buffer SSBO1 -{ - float bz[]; -} ssbos[2]; - -uint get_size() -{ - return v.length() + ssbos[1].bz.length(); -} - -void main() -{ - size = get_size(); -} diff --git a/third_party/spirv-cross/shaders-msl/comp/array-length.msl2.argument.discrete.comp b/third_party/spirv-cross/shaders-msl/comp/array-length.msl2.argument.discrete.comp deleted file mode 100644 index 61e61916bf..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/array-length.msl2.argument.discrete.comp +++ /dev/null @@ -1,38 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; -layout(set = 0, binding = 1, std140) buffer SSBO -{ - uint size; - float v[]; -}; - -layout(set = 1, binding = 2, std430) buffer SSBO1 -{ - float bz[]; -} ssbos[2]; - -layout(set = 2, binding = 5, std140) buffer SSBO2 -{ - uint size2; - float w[]; -}; - -layout(set = 3, binding = 2, std430) buffer SSBO3 -{ - float bz[]; -} ssbos2[2]; - - -uint get_size() -{ - uint len = v.length(); - len += ssbos[1].bz.length(); - len += w.length(); - len += ssbos2[0].bz.length(); - return len; -} - -void main() -{ - size = get_size(); -} diff --git a/third_party/spirv-cross/shaders-msl/comp/atomic.comp b/third_party/spirv-cross/shaders-msl/comp/atomic.comp deleted file mode 100644 index e25c4f6d24..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/atomic.comp +++ /dev/null @@ -1,56 +0,0 @@ -#version 310 es -#extension GL_OES_shader_image_atomic : require -layout(local_size_x = 1) in; - -layout(r32ui, binding = 0) uniform highp uimage2D uImage; -layout(r32i, binding = 1) uniform highp iimage2D iImage; -layout(binding = 2, std430) buffer SSBO -{ - uint u32; - int i32; -} ssbo; - -shared uint shared_u32; -shared int shared_i32; - -void main() -{ - atomicAdd(ssbo.u32, 1u); - atomicOr(ssbo.u32, 1u); - atomicXor(ssbo.u32, 1u); - atomicAnd(ssbo.u32, 1u); - atomicMin(ssbo.u32, 1u); - atomicMax(ssbo.u32, 1u); - atomicExchange(ssbo.u32, 1u); - atomicCompSwap(ssbo.u32, 10u, 2u); - - atomicAdd(ssbo.i32, 1); - atomicOr(ssbo.i32, 1); - atomicXor(ssbo.i32, 1); - atomicAnd(ssbo.i32, 1); - atomicMin(ssbo.i32, 1); - atomicMax(ssbo.i32, 1); - atomicExchange(ssbo.i32, 1); - atomicCompSwap(ssbo.i32, 10, 2); - - shared_u32 = 10u; - shared_i32 = 10; - atomicAdd(shared_u32, 1u); - atomicOr(shared_u32, 1u); - atomicXor(shared_u32, 1u); - atomicAnd(shared_u32, 1u); - atomicMin(shared_u32, 1u); - atomicMax(shared_u32, 1u); - atomicExchange(shared_u32, 1u); - atomicCompSwap(shared_u32, 10u, 2u); - - atomicAdd(shared_i32, 1); - atomicOr(shared_i32, 1); - atomicXor(shared_i32, 1); - atomicAnd(shared_i32, 1); - atomicMin(shared_i32, 1); - atomicMax(shared_i32, 1); - atomicExchange(shared_i32, 1); - atomicCompSwap(shared_i32, 10, 2); -} - diff --git a/third_party/spirv-cross/shaders-msl/comp/barriers.comp b/third_party/spirv-cross/shaders-msl/comp/barriers.comp deleted file mode 100644 index 7e0ea42d4e..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/barriers.comp +++ /dev/null @@ -1,79 +0,0 @@ -#version 310 es -layout(local_size_x = 4) in; - -void barrier_shared() -{ - memoryBarrierShared(); -} - -void full_barrier() -{ - memoryBarrier(); -} - -void image_barrier() -{ - memoryBarrierImage(); -} - -void buffer_barrier() -{ - memoryBarrierBuffer(); -} - -void group_barrier() -{ - groupMemoryBarrier(); -} - -void barrier_shared_exec() -{ - memoryBarrierShared(); - barrier(); -} - -void full_barrier_exec() -{ - memoryBarrier(); - barrier(); -} - -void image_barrier_exec() -{ - memoryBarrierImage(); - barrier(); -} - -void buffer_barrier_exec() -{ - memoryBarrierBuffer(); - barrier(); -} - -void group_barrier_exec() -{ - groupMemoryBarrier(); - barrier(); -} - -void exec_barrier() -{ - barrier(); -} - -void main() -{ - barrier_shared(); - full_barrier(); - image_barrier(); - buffer_barrier(); - group_barrier(); - - barrier_shared_exec(); - full_barrier_exec(); - image_barrier_exec(); - buffer_barrier_exec(); - group_barrier_exec(); - - exec_barrier(); -} diff --git a/third_party/spirv-cross/shaders-msl/comp/basic.comp b/third_party/spirv-cross/shaders-msl/comp/basic.comp deleted file mode 100644 index f9bf55670f..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/basic.comp +++ /dev/null @@ -1,28 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(std430, binding = 0) readonly buffer SSBO -{ - vec4 in_data[]; -}; - -layout(std430, binding = 1) writeonly buffer SSBO2 -{ - vec4 out_data[]; -}; - -layout(std430, binding = 2) buffer SSBO3 -{ - uint counter; -}; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - vec4 idata = in_data[ident]; - if (dot(idata, vec4(1.0, 5.0, 6.0, 2.0)) > 8.2) - { - out_data[atomicAdd(counter, 1u)] = idata; - } -} - diff --git a/third_party/spirv-cross/shaders-msl/comp/basic.dispatchbase.comp b/third_party/spirv-cross/shaders-msl/comp/basic.dispatchbase.comp deleted file mode 100644 index 2c873468cc..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/basic.dispatchbase.comp +++ /dev/null @@ -1,29 +0,0 @@ -#version 310 es -layout(local_size_x_id = 10) in; - -layout(std430, binding = 0) readonly buffer SSBO -{ - vec4 in_data[]; -}; - -layout(std430, binding = 1) writeonly buffer SSBO2 -{ - vec4 out_data[]; -}; - -layout(std430, binding = 2) buffer SSBO3 -{ - uint counter; -}; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - uint workgroup = gl_WorkGroupID.x; - vec4 idata = in_data[ident]; - if (dot(idata, vec4(1.0, 5.0, 6.0, 2.0)) > 8.2) - { - out_data[atomicAdd(counter, 1u)] = idata; - } -} - diff --git a/third_party/spirv-cross/shaders-msl/comp/basic.dispatchbase.msl11.comp b/third_party/spirv-cross/shaders-msl/comp/basic.dispatchbase.msl11.comp deleted file mode 100644 index 91453332aa..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/basic.dispatchbase.msl11.comp +++ /dev/null @@ -1,29 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(std430, binding = 0) readonly buffer SSBO -{ - vec4 in_data[]; -}; - -layout(std430, binding = 1) writeonly buffer SSBO2 -{ - vec4 out_data[]; -}; - -layout(std430, binding = 2) buffer SSBO3 -{ - uint counter; -}; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - uint workgroup = gl_WorkGroupID.x; - vec4 idata = in_data[ident]; - if (dot(idata, vec4(1.0, 5.0, 6.0, 2.0)) > 8.2) - { - out_data[atomicAdd(counter, 1u)] = idata; - } -} - diff --git a/third_party/spirv-cross/shaders-msl/comp/basic.inline-block.msl2.comp b/third_party/spirv-cross/shaders-msl/comp/basic.inline-block.msl2.comp deleted file mode 100644 index 8e1144a98e..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/basic.inline-block.msl2.comp +++ /dev/null @@ -1,37 +0,0 @@ -#version 450 -#extension GL_EXT_scalar_block_layout : require -layout(local_size_x = 3, local_size_y = 3, local_size_z = 2) in; - -struct X -{ - int x; - int y; - float z; -}; - -layout(set = 0, binding = 0, scalar) uniform Foo -{ - int a; - int b; - mat4 c; - X x[2]; -}; - -layout(set = 0, binding = 1) uniform Bar -{ - int d; - int e; -}; - -layout(set = 1, binding = 2) buffer Baz -{ - int f; - int g; -} baz[3]; - -void main() -{ - uvec3 coords = gl_GlobalInvocationID; - baz[coords.x].f = a + d; - baz[coords.x].g = b * e; -} diff --git a/third_party/spirv-cross/shaders-msl/comp/builtins.comp b/third_party/spirv-cross/shaders-msl/comp/builtins.comp deleted file mode 100644 index 88bb5951e4..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/builtins.comp +++ /dev/null @@ -1,12 +0,0 @@ -#version 310 es -layout(local_size_x = 8, local_size_y = 4, local_size_z = 2) in; - -void main() -{ - uvec3 local_id = gl_LocalInvocationID; - uvec3 global_id = gl_GlobalInvocationID; - uint local_index = gl_LocalInvocationIndex; - uvec3 work_group_size = gl_WorkGroupSize; - uvec3 num_work_groups = gl_NumWorkGroups; - uvec3 work_group_id = gl_WorkGroupID; -} diff --git a/third_party/spirv-cross/shaders-msl/comp/cfg-preserve-parameter.comp b/third_party/spirv-cross/shaders-msl/comp/cfg-preserve-parameter.comp deleted file mode 100644 index 9ef9092005..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/cfg-preserve-parameter.comp +++ /dev/null @@ -1,54 +0,0 @@ -#version 310 es - -// We write in all paths (and no reads), so should just be out. -void out_test_0(int cond, inout int i) -{ - if (cond == 0) - i = 40; - else - i = 60; -} - -// We write in all paths (and no reads), so should just be out. -void out_test_1(int cond, inout int i) -{ - switch (cond) - { - case 40: - i = 40; - break; - - default: - i = 70; - break; - } -} - -// We don't write in all paths, so should be inout. -void inout_test_0(int cond, inout int i) -{ - if (cond == 0) - i = 40; -} - -void inout_test_1(int cond, inout int i) -{ - switch (cond) - { - case 40: - i = 40; - break; - } -} - - -void main() -{ - int cond = 40; - int i = 50; - - out_test_0(cond, i); - out_test_1(cond, i); - inout_test_0(cond, i); - inout_test_1(cond, i); -} diff --git a/third_party/spirv-cross/shaders-msl/comp/coherent-block.comp b/third_party/spirv-cross/shaders-msl/comp/coherent-block.comp deleted file mode 100644 index 0a174e8ef0..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/coherent-block.comp +++ /dev/null @@ -1,12 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(binding = 1) coherent restrict writeonly buffer SSBO -{ - vec4 value; -}; - -void main() -{ - value = vec4(20.0); -} diff --git a/third_party/spirv-cross/shaders-msl/comp/coherent-image.comp b/third_party/spirv-cross/shaders-msl/comp/coherent-image.comp deleted file mode 100644 index fd6e280182..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/coherent-image.comp +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(binding = 1) coherent restrict writeonly buffer SSBO -{ - ivec4 value; -}; - -layout(r32i, binding = 3) coherent readonly restrict uniform mediump iimage2D uImage; - -void main() -{ - value = imageLoad(uImage, ivec2(10)); -} diff --git a/third_party/spirv-cross/shaders-msl/comp/complex-composite-constant-array.comp b/third_party/spirv-cross/shaders-msl/comp/complex-composite-constant-array.comp deleted file mode 100644 index 96a3f8951d..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/complex-composite-constant-array.comp +++ /dev/null @@ -1,19 +0,0 @@ -#version 450 - -layout(std430, set = 0, binding = 0) buffer SSBO -{ - mat4 a; - uint index; -}; - -const mat4 as[] = mat4[](mat4(1.0), mat4(2.0)); - -void write_global() -{ - a = as[index]; -} - -void main() -{ - write_global(); -} diff --git a/third_party/spirv-cross/shaders-msl/comp/complex-type-alias.comp b/third_party/spirv-cross/shaders-msl/comp/complex-type-alias.comp deleted file mode 100644 index 4b9b6eddb9..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/complex-type-alias.comp +++ /dev/null @@ -1,41 +0,0 @@ -#version 450 -layout(local_size_x = 8, local_size_y = 8, local_size_z = 1) in; - -struct Foo0 -{ - float a; -}; - -struct Foo1 -{ - Foo0 a; -}; - -void Zero(out Foo0 v) -{ - v.a = 0.0; -} - -struct Foo2 -{ - Foo1 a; - float weight; -}; - -layout(std430, binding = 0) buffer SSBO -{ - Foo2 outputs[]; -}; - -shared Foo2 coeffs[64]; - -void main() -{ - Foo2 data; - data.weight = 0.0; - Zero(data.a.a); - coeffs[gl_LocalInvocationIndex] = data; - barrier(); - if (gl_LocalInvocationIndex == 0u) - outputs[gl_WorkGroupID.x] = coeffs[0]; -} diff --git a/third_party/spirv-cross/shaders-msl/comp/composite-array-initialization.comp b/third_party/spirv-cross/shaders-msl/comp/composite-array-initialization.comp deleted file mode 100644 index 1ecf4bcd40..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/composite-array-initialization.comp +++ /dev/null @@ -1,28 +0,0 @@ -#version 450 -layout(local_size_x = 2) in; - -struct Data -{ - float a; - float b; -}; - -layout(std430, binding = 0) buffer SSBO -{ - Data outdata[]; -}; - -layout(constant_id = 0) const float X = 4.0; - -Data data[2] = Data[](Data(1.0, 2.0), Data(3.0, 4.0)); -Data data2[2] = Data[](Data(X, 2.0), Data(3.0, 5.0)); - -Data combine(Data a, Data b) -{ - return Data(a.a + b.a, a.b + b.b); -} - -void main() -{ - outdata[gl_WorkGroupID.x] = combine(data[gl_LocalInvocationID.x], data2[gl_LocalInvocationID.x]); -} diff --git a/third_party/spirv-cross/shaders-msl/comp/composite-array-initialization.force-native-array.comp b/third_party/spirv-cross/shaders-msl/comp/composite-array-initialization.force-native-array.comp deleted file mode 100644 index 1ecf4bcd40..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/composite-array-initialization.force-native-array.comp +++ /dev/null @@ -1,28 +0,0 @@ -#version 450 -layout(local_size_x = 2) in; - -struct Data -{ - float a; - float b; -}; - -layout(std430, binding = 0) buffer SSBO -{ - Data outdata[]; -}; - -layout(constant_id = 0) const float X = 4.0; - -Data data[2] = Data[](Data(1.0, 2.0), Data(3.0, 4.0)); -Data data2[2] = Data[](Data(X, 2.0), Data(3.0, 5.0)); - -Data combine(Data a, Data b) -{ - return Data(a.a + b.a, a.b + b.b); -} - -void main() -{ - outdata[gl_WorkGroupID.x] = combine(data[gl_LocalInvocationID.x], data2[gl_LocalInvocationID.x]); -} diff --git a/third_party/spirv-cross/shaders-msl/comp/composite-construct.comp b/third_party/spirv-cross/shaders-msl/comp/composite-construct.comp deleted file mode 100644 index 3054775325..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/composite-construct.comp +++ /dev/null @@ -1,31 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(std430, binding = 0) buffer SSBO0 -{ - vec4 as[]; -}; - -layout(std430, binding = 1) buffer SSBO1 -{ - vec4 bs[]; -}; - -struct Composite -{ - vec4 a; - vec4 b; -}; - -const vec4 const_values[2] = vec4[](vec4(20.0), vec4(40.0)); - -void main() -{ - vec4 values[2] = vec4[](as[gl_GlobalInvocationID.x], bs[gl_GlobalInvocationID.x]); - vec4 copy_values[2]; - copy_values = const_values; - Composite c = Composite(values[0], copy_values[1]); - - as[0] = values[gl_LocalInvocationIndex]; - bs[1] = c.b; -} diff --git a/third_party/spirv-cross/shaders-msl/comp/copy-array-of-arrays.comp b/third_party/spirv-cross/shaders-msl/comp/copy-array-of-arrays.comp deleted file mode 100644 index edf87195b8..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/copy-array-of-arrays.comp +++ /dev/null @@ -1,21 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -layout(set = 0, binding = 0, std430) buffer BUF -{ - int a; - float b; - float c; -} o; - -void main() -{ - const float a[2][2][2] = float[][][](float[][](float[](1.0, 2.0), float[](3.0, 4.0)), float[][](float[](1.0, 2.0), float[](3.0, 4.0))); - float b[2][2][2] = a; - float c[2][2][2] = b; - o.a = int(c[1][1][1]); - - float d[2][2][2] = float[][][](float[][](float[](o.b, o.c), float[](o.b, o.b)), float[][](float[](o.c, o.c), float[](o.c, o.b))); - float e[2][2][2] = d; - o.b = e[1][0][1]; -} diff --git a/third_party/spirv-cross/shaders-msl/comp/copy-array-of-arrays.force-native-array.comp b/third_party/spirv-cross/shaders-msl/comp/copy-array-of-arrays.force-native-array.comp deleted file mode 100644 index edf87195b8..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/copy-array-of-arrays.force-native-array.comp +++ /dev/null @@ -1,21 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -layout(set = 0, binding = 0, std430) buffer BUF -{ - int a; - float b; - float c; -} o; - -void main() -{ - const float a[2][2][2] = float[][][](float[][](float[](1.0, 2.0), float[](3.0, 4.0)), float[][](float[](1.0, 2.0), float[](3.0, 4.0))); - float b[2][2][2] = a; - float c[2][2][2] = b; - o.a = int(c[1][1][1]); - - float d[2][2][2] = float[][][](float[][](float[](o.b, o.c), float[](o.b, o.b)), float[][](float[](o.c, o.c), float[](o.c, o.b))); - float e[2][2][2] = d; - o.b = e[1][0][1]; -} diff --git a/third_party/spirv-cross/shaders-msl/comp/culling.comp b/third_party/spirv-cross/shaders-msl/comp/culling.comp deleted file mode 100644 index 9f8331b10b..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/culling.comp +++ /dev/null @@ -1,26 +0,0 @@ -#version 310 es -layout(local_size_x = 4) in; - -layout(std430, binding = 0) readonly buffer SSBO -{ - float in_data[]; -}; - -layout(std430, binding = 1) writeonly buffer SSBO2 -{ - float out_data[]; -}; - -layout(std430, binding = 2) buffer SSBO3 -{ - uint count; -}; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - float idata = in_data[ident]; - if (idata > 12.0) - out_data[atomicAdd(count, 1u)] = idata; -} - diff --git a/third_party/spirv-cross/shaders-msl/comp/defer-parens.comp b/third_party/spirv-cross/shaders-msl/comp/defer-parens.comp deleted file mode 100644 index 4e8ea6b399..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/defer-parens.comp +++ /dev/null @@ -1,30 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(binding = 0, std430) buffer SSBO -{ - vec4 data; - int index; -}; - -void main() -{ - // Tests defer-parens behavior where a binary expression is OpCompositeExtracted chained together - // with an OpCompositeConstruct optimization. - vec4 d = data; - data = vec4(d.x, d.yz + 10.0, d.w); - - // Verify binary ops. - data = d + d + d; - - // Verify swizzles. - data = (d.yz + 10.0).xxyy; - - // OpCompositeExtract - float t = (d.yz + 10.0).y; - data = vec4(t); - - // OpVectorExtractDynamic - t = (d.zw + 10.0)[index]; - data = vec4(t); -} diff --git a/third_party/spirv-cross/shaders-msl/comp/dowhile.comp b/third_party/spirv-cross/shaders-msl/comp/dowhile.comp deleted file mode 100644 index 709db75a17..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/dowhile.comp +++ /dev/null @@ -1,31 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(std430, binding = 0) readonly buffer SSBO -{ - mat4 mvp; - vec4 in_data[]; -}; - -layout(std430, binding = 1) writeonly buffer SSBO2 -{ - vec4 out_data[]; -}; - -int i; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - - i = 0; - vec4 idat = in_data[ident]; - do - { - idat = mvp * idat; - i++; - } while(i < 16); - - out_data[ident] = idat; -} - diff --git a/third_party/spirv-cross/shaders-msl/comp/force-recompile-hooks.swizzle.comp b/third_party/spirv-cross/shaders-msl/comp/force-recompile-hooks.swizzle.comp deleted file mode 100644 index 2752d30512..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/force-recompile-hooks.swizzle.comp +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler2D foo; -layout(binding = 1, rgba8) uniform image2D bar; - -void main() { - vec4 a = texture(foo, vec2(1, 1)); - imageStore(bar, ivec2(0, 0), a); -} diff --git a/third_party/spirv-cross/shaders-msl/comp/functions.comp b/third_party/spirv-cross/shaders-msl/comp/functions.comp deleted file mode 100644 index 478c8ebe83..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/functions.comp +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 -shared int foo[1337]; - -void myfunc() -{ - foo[0]=13; -} - -void main() -{ - myfunc(); -} diff --git a/third_party/spirv-cross/shaders-msl/comp/global-invocation-id-writable-ssbo-in-function.comp b/third_party/spirv-cross/shaders-msl/comp/global-invocation-id-writable-ssbo-in-function.comp deleted file mode 100644 index 2fe074df7c..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/global-invocation-id-writable-ssbo-in-function.comp +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 -layout(set = 0, binding = 0) buffer myBlock { - int a; - float b[1]; -} myStorage; -float getB() { - return myStorage.b[gl_GlobalInvocationID.x]; -} -void main() { - myStorage.a = (myStorage.a + 1) % 256; - myStorage.b[gl_GlobalInvocationID.x] = mod((getB() + 0.02), 1.0); -} diff --git a/third_party/spirv-cross/shaders-msl/comp/global-invocation-id.comp b/third_party/spirv-cross/shaders-msl/comp/global-invocation-id.comp deleted file mode 100644 index f484637e1f..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/global-invocation-id.comp +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 -layout(set = 0, binding = 0) buffer myBlock { - int a; - float b[1]; -} myStorage; -void main() { - myStorage.a = (myStorage.a + 1) % 256; - myStorage.b[gl_GlobalInvocationID.x] = mod((myStorage.b[gl_GlobalInvocationID.x] + 0.02), 1.0); -} diff --git a/third_party/spirv-cross/shaders-msl/comp/image-atomic-automatic-bindings.argument.msl2.comp b/third_party/spirv-cross/shaders-msl/comp/image-atomic-automatic-bindings.argument.msl2.comp deleted file mode 100644 index 862cd21297..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/image-atomic-automatic-bindings.argument.msl2.comp +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -layout(set = 0, binding = 0, r32ui) uniform uimage2D uImage; -layout(set = 0, binding = 1) uniform sampler2D uTexture; - -layout(set = 0, binding = 2) buffer SSBO -{ - vec4 outdata; -}; - -void main() -{ - uint ret = imageAtomicAdd(uImage, ivec2(gl_GlobalInvocationID.xy), 10u); - outdata = textureLod(uTexture, vec2(gl_GlobalInvocationID.xy), 0.0) + float(ret); -} diff --git a/third_party/spirv-cross/shaders-msl/comp/image-atomic-automatic-bindings.comp b/third_party/spirv-cross/shaders-msl/comp/image-atomic-automatic-bindings.comp deleted file mode 100644 index 862cd21297..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/image-atomic-automatic-bindings.comp +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -layout(set = 0, binding = 0, r32ui) uniform uimage2D uImage; -layout(set = 0, binding = 1) uniform sampler2D uTexture; - -layout(set = 0, binding = 2) buffer SSBO -{ - vec4 outdata; -}; - -void main() -{ - uint ret = imageAtomicAdd(uImage, ivec2(gl_GlobalInvocationID.xy), 10u); - outdata = textureLod(uTexture, vec2(gl_GlobalInvocationID.xy), 0.0) + float(ret); -} diff --git a/third_party/spirv-cross/shaders-msl/comp/image-cube-array-load-store.comp b/third_party/spirv-cross/shaders-msl/comp/image-cube-array-load-store.comp deleted file mode 100644 index 36a9ffd8ef..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/image-cube-array-load-store.comp +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -layout(r32f, binding = 0) uniform readonly imageCubeArray uImageIn; -layout(r32f, binding = 1) uniform writeonly imageCubeArray uImageOut; - -void main() -{ - ivec3 coord = ivec3(9, 7, 11); - vec4 indata = imageLoad(uImageIn, coord); - imageStore(uImageOut, coord, indata); -} - diff --git a/third_party/spirv-cross/shaders-msl/comp/image.comp b/third_party/spirv-cross/shaders-msl/comp/image.comp deleted file mode 100644 index e375534a51..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/image.comp +++ /dev/null @@ -1,12 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(rgba8, binding = 0) uniform readonly mediump image2D uImageIn; -layout(rgba8, binding = 1) uniform writeonly mediump image2D uImageOut; - -void main() -{ - vec4 v = imageLoad(uImageIn, ivec2(gl_GlobalInvocationID.xy) + imageSize(uImageIn)); - imageStore(uImageOut, ivec2(gl_GlobalInvocationID.xy), v); -} - diff --git a/third_party/spirv-cross/shaders-msl/comp/insert.comp b/third_party/spirv-cross/shaders-msl/comp/insert.comp deleted file mode 100644 index 07c1f8d7aa..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/insert.comp +++ /dev/null @@ -1,18 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(std430, binding = 0) writeonly buffer SSBO -{ - vec4 out_data[]; -}; - -void main() -{ - vec4 v; - v.x = 10.0; - v.y = 30.0; - v.z = 70.0; - v.w = 90.0; - out_data[gl_GlobalInvocationID.x] = v; - out_data[gl_GlobalInvocationID.x].y = 20.0; -} diff --git a/third_party/spirv-cross/shaders-msl/comp/inverse.comp b/third_party/spirv-cross/shaders-msl/comp/inverse.comp deleted file mode 100644 index 03b06d6464..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/inverse.comp +++ /dev/null @@ -1,23 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -layout(std430, binding = 0) writeonly buffer MatrixOut -{ - mat2 m2out; - mat3 m3out; - mat4 m4out; -}; - -layout(std430, binding = 1) readonly buffer MatrixIn -{ - mat2 m2in; - mat3 m3in; - mat4 m4in; -}; - -void main() -{ - m2out = inverse(m2in); - m3out = inverse(m3in); - m4out = inverse(m4in); -} diff --git a/third_party/spirv-cross/shaders-msl/comp/local-invocation-id.comp b/third_party/spirv-cross/shaders-msl/comp/local-invocation-id.comp deleted file mode 100644 index 281700f197..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/local-invocation-id.comp +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 -layout(set = 0, binding = 0) buffer myBlock { - int a; - float b[1]; -} myStorage; -void main() { - myStorage.a = (myStorage.a + 1) % 256; - myStorage.b[gl_LocalInvocationID.x] = mod((myStorage.b[gl_LocalInvocationID.x] + 0.02), 1.0); -} diff --git a/third_party/spirv-cross/shaders-msl/comp/local-invocation-index.comp b/third_party/spirv-cross/shaders-msl/comp/local-invocation-index.comp deleted file mode 100644 index 68942da8e1..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/local-invocation-index.comp +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 -layout(set = 0, binding = 0) buffer myBlock { - int a; - float b[1]; -} myStorage; -void main() { - myStorage.a = (myStorage.a + 1) % 256; - myStorage.b[gl_LocalInvocationIndex.x] = mod((myStorage.b[gl_LocalInvocationIndex.x] + 0.02), 1.0); -} diff --git a/third_party/spirv-cross/shaders-msl/comp/mat3.comp b/third_party/spirv-cross/shaders-msl/comp/mat3.comp deleted file mode 100644 index 7c5bb1e4f5..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/mat3.comp +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(std430, binding = 1) writeonly buffer SSBO2 -{ - mat3 out_data[]; -}; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - out_data[ident] = mat3(vec3(10.0), vec3(20.0), vec3(40.0)); -} - diff --git a/third_party/spirv-cross/shaders-msl/comp/mod.comp b/third_party/spirv-cross/shaders-msl/comp/mod.comp deleted file mode 100644 index 1631456e30..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/mod.comp +++ /dev/null @@ -1,26 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(std430, binding = 0) readonly buffer SSBO -{ - vec4 in_data[]; -}; - -layout(std430, binding = 1) writeonly buffer SSBO2 -{ - vec4 out_data[]; -}; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - vec4 v = mod(in_data[ident], out_data[ident]); - out_data[ident] = v; - - uvec4 vu = floatBitsToUint(in_data[ident]) % floatBitsToUint(out_data[ident]); - out_data[ident] = uintBitsToFloat(vu); - - ivec4 vi = floatBitsToInt(in_data[ident]) % floatBitsToInt(out_data[ident]); - out_data[ident] = intBitsToFloat(vi); -} - diff --git a/third_party/spirv-cross/shaders-msl/comp/modf.comp b/third_party/spirv-cross/shaders-msl/comp/modf.comp deleted file mode 100644 index edadefcf05..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/modf.comp +++ /dev/null @@ -1,23 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(std430, binding = 0) readonly buffer SSBO -{ - vec4 in_data[]; -}; - -layout(std430, binding = 1) writeonly buffer SSBO2 -{ - vec4 out_data[]; -}; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - vec4 i; - //vec4 v = frexp(in_data[ident], i); - //out_data[ident] = ldexp(v, i); - vec4 v = modf(in_data[ident], i); - out_data[ident] = v; -} - diff --git a/third_party/spirv-cross/shaders-msl/comp/outer-product.comp b/third_party/spirv-cross/shaders-msl/comp/outer-product.comp deleted file mode 100644 index 9aba2a54b7..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/outer-product.comp +++ /dev/null @@ -1,37 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -layout(set = 0, binding = 0, std430) writeonly buffer SSBO -{ - mat2 m22; - mat2x3 m23; - mat2x4 m24; - mat3x2 m32; - mat3 m33; - mat3x4 m34; - mat4x2 m42; - mat4x3 m43; - mat4 m44; -}; - -layout(set = 0, binding = 1, std430) readonly buffer ReadSSBO -{ - vec2 v2; - vec3 v3; - vec4 v4; -}; - -void main() -{ - m22 = outerProduct(v2, v2); - m23 = outerProduct(v3, v2); - m24 = outerProduct(v4, v2); - - m32 = outerProduct(v2, v3); - m33 = outerProduct(v3, v3); - m34 = outerProduct(v4, v3); - - m42 = outerProduct(v2, v4); - m43 = outerProduct(v3, v4); - m44 = outerProduct(v4, v4); -} diff --git a/third_party/spirv-cross/shaders-msl/comp/packing-test-1.comp b/third_party/spirv-cross/shaders-msl/comp/packing-test-1.comp deleted file mode 100644 index 1a8a39e219..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/packing-test-1.comp +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 -struct T1 -{ - vec3 a; - float b; -}; - -layout(std430, binding = 1) buffer Buffer0 { T1 buf0[]; }; -layout(std430, binding = 2) buffer Buffer1 { float buf1[]; }; - -layout(local_size_x = 32, local_size_y = 1, local_size_z = 1) in; -void main() -{ - // broken case in Metal! - T1 v = buf0[0]; - float x = v.b; - buf1[gl_GlobalInvocationID.x] = x; -} diff --git a/third_party/spirv-cross/shaders-msl/comp/packing-test-2.comp b/third_party/spirv-cross/shaders-msl/comp/packing-test-2.comp deleted file mode 100644 index 73268beec4..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/packing-test-2.comp +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 -struct T1 -{ - vec3 a; - float b; -}; - -layout(std430, binding = 1) buffer Buffer0 { T1 buf0[]; }; -layout(std430, binding = 2) buffer Buffer1 { float buf1[]; }; - -layout(local_size_x = 32, local_size_y = 1, local_size_z = 1) in; -void main() -{ - float x = buf0[0].b; - buf1[gl_GlobalInvocationID.x] = x; -} diff --git a/third_party/spirv-cross/shaders-msl/comp/read-write-only.comp b/third_party/spirv-cross/shaders-msl/comp/read-write-only.comp deleted file mode 100644 index b224b6f121..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/read-write-only.comp +++ /dev/null @@ -1,26 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(binding = 0, std430) readonly buffer SSBO0 -{ - vec4 data0; - vec4 data1; -}; - -layout(binding = 1, std430) restrict buffer SSBO1 -{ - vec4 data2; - vec4 data3; -}; - -layout(binding = 2, std430) restrict writeonly buffer SSBO2 -{ - vec4 data4; - vec4 data5; -}; - -void main() -{ - data4 = data0 + data2; - data5 = data1 + data3; -} diff --git a/third_party/spirv-cross/shaders-msl/comp/rmw-matrix.comp b/third_party/spirv-cross/shaders-msl/comp/rmw-matrix.comp deleted file mode 100644 index c158ab4ddd..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/rmw-matrix.comp +++ /dev/null @@ -1,20 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(std430, binding = 0) buffer SSBO -{ - float a; - vec4 b; - mat4 c; - - float a1; - vec4 b1; - mat4 c1; -}; - -void main() -{ - a *= a1; - b *= b1; - c *= c1; -} diff --git a/third_party/spirv-cross/shaders-msl/comp/rmw-opt.comp b/third_party/spirv-cross/shaders-msl/comp/rmw-opt.comp deleted file mode 100644 index a6e1e7fe75..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/rmw-opt.comp +++ /dev/null @@ -1,27 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(std430, binding = 0) buffer SSBO -{ - int a; -}; - -void main() -{ - a += 10; - a -= 10; - a *= 10; - a /= 10; - a <<= 2; - a >>= 3; - a &= 40; - a ^= 10; - a %= 40; - a |= 1; - - bool c = false; - bool d = true; - c = c && d; - d = d || c; - a = c && d ? 1 : 0; -} diff --git a/third_party/spirv-cross/shaders-msl/comp/scalar-std450-distance-length-normalize.comp b/third_party/spirv-cross/shaders-msl/comp/scalar-std450-distance-length-normalize.comp deleted file mode 100644 index 6354632298..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/scalar-std450-distance-length-normalize.comp +++ /dev/null @@ -1,20 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -layout(std430, set = 0, binding = 0) buffer SSBO -{ - float a; - float b; - float c; - float d; - float e; - float f; -}; - -void main() -{ - c = distance(a, b); - d = length(a); - e = normalize(a); - f = distance(a-1, b-2); -} diff --git a/third_party/spirv-cross/shaders-msl/comp/shared-array-of-arrays.comp b/third_party/spirv-cross/shaders-msl/comp/shared-array-of-arrays.comp deleted file mode 100644 index 009b4e41d4..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/shared-array-of-arrays.comp +++ /dev/null @@ -1,29 +0,0 @@ -#version 310 es -layout(local_size_x = 4, local_size_y = 4) in; - -shared float foo[4][4]; - -layout(binding = 0, std430) buffer SSBO -{ - float out_data[]; -}; - -void work() -{ - foo[gl_LocalInvocationID.x][gl_LocalInvocationID.y] = float(gl_LocalInvocationIndex); - memoryBarrierShared(); - barrier(); - - float x = 0.0; - x += foo[gl_LocalInvocationID.x][0]; - x += foo[gl_LocalInvocationID.x][1]; - x += foo[gl_LocalInvocationID.x][2]; - x += foo[gl_LocalInvocationID.x][3]; - out_data[gl_GlobalInvocationID.x] = x; -} - -void main() -{ - work(); -} - diff --git a/third_party/spirv-cross/shaders-msl/comp/shared.comp b/third_party/spirv-cross/shaders-msl/comp/shared.comp deleted file mode 100644 index 4deff93597..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/shared.comp +++ /dev/null @@ -1,27 +0,0 @@ -#version 310 es -layout(local_size_x = 4) in; - -shared float sShared[gl_WorkGroupSize.x]; - -layout(std430, binding = 0) readonly buffer SSBO -{ - float in_data[]; -}; - -layout(std430, binding = 1) writeonly buffer SSBO2 -{ - float out_data[]; -}; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - float idata = in_data[ident]; - - sShared[gl_LocalInvocationIndex] = idata; - memoryBarrierShared(); - barrier(); - - out_data[ident] = sShared[gl_WorkGroupSize.x - gl_LocalInvocationIndex - 1u]; -} - diff --git a/third_party/spirv-cross/shaders-msl/comp/spec-constant-op-member-array.comp b/third_party/spirv-cross/shaders-msl/comp/spec-constant-op-member-array.comp deleted file mode 100644 index 0b428eb0cf..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/spec-constant-op-member-array.comp +++ /dev/null @@ -1,33 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -layout(constant_id = 0) const int a = 100; -layout(constant_id = 1) const int b = 200; -layout(constant_id = 2) const int c = 300; -const int d = c + 50; -layout(constant_id = 3) const int e = 400; - -struct A -{ - int member0[a]; - int member1[b]; -}; - -struct B -{ - int member0[b]; - int member1[a]; -}; - -layout(set = 1, binding = 0) buffer SSBO -{ - A member_a; - B member_b; - int v[a]; - int w[d]; -}; - -void main() -{ - w[gl_GlobalInvocationID.x] += v[gl_GlobalInvocationID.x] + e; -} diff --git a/third_party/spirv-cross/shaders-msl/comp/spec-constant-work-group-size.comp b/third_party/spirv-cross/shaders-msl/comp/spec-constant-work-group-size.comp deleted file mode 100644 index 09b65dc99f..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/spec-constant-work-group-size.comp +++ /dev/null @@ -1,17 +0,0 @@ -#version 450 -layout(local_size_x_id = 10, local_size_y = 20) in; - -layout(constant_id = 0) const int a = 1; -layout(constant_id = 1) const int b = 2; - -layout(set = 1, binding = 0) writeonly buffer SSBO -{ - int v[]; -}; - -void main() -{ - int spec_const_array_size[b]; - spec_const_array_size[a] = a; - v[a + gl_WorkGroupSize.x + gl_WorkGroupSize.y] = b + spec_const_array_size[1 - a]; -} diff --git a/third_party/spirv-cross/shaders-msl/comp/storage-buffer-std140-vector-array.comp b/third_party/spirv-cross/shaders-msl/comp/storage-buffer-std140-vector-array.comp deleted file mode 100644 index 7e786ec6c1..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/storage-buffer-std140-vector-array.comp +++ /dev/null @@ -1,30 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -struct Sub -{ - float f[2]; - vec2 f2[2]; - vec3 f3[2]; - vec4 f4[2]; -}; - -layout(std140, binding = 0) buffer SSBO -{ - Sub sub[2]; -}; - -void main() -{ - Sub foo = sub[gl_WorkGroupID.x]; - - foo.f[gl_GlobalInvocationID.x] += 1.0; - foo.f2[gl_GlobalInvocationID.x] += 2.0; - foo.f3[gl_GlobalInvocationID.x] += 3.0; - foo.f4[gl_GlobalInvocationID.x] += 4.0; - sub[gl_WorkGroupID.x] = foo; - - sub[0].f[0] += 5.0; - sub[0].f2[1] += 5.0; -} - diff --git a/third_party/spirv-cross/shaders-msl/comp/struct-layout.comp b/third_party/spirv-cross/shaders-msl/comp/struct-layout.comp deleted file mode 100644 index 5a2b7802df..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/struct-layout.comp +++ /dev/null @@ -1,24 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -struct Foo -{ - mat4 m; -}; - -layout(std430, binding = 0) readonly buffer SSBO -{ - Foo in_data[]; -}; - -layout(std430, binding = 1) writeonly buffer SSBO2 -{ - Foo out_data[]; -}; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - out_data[ident].m = in_data[ident].m * in_data[ident].m; -} - diff --git a/third_party/spirv-cross/shaders-msl/comp/struct-nested.comp b/third_party/spirv-cross/shaders-msl/comp/struct-nested.comp deleted file mode 100644 index d9645cbc4c..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/struct-nested.comp +++ /dev/null @@ -1,20 +0,0 @@ -#version 450 - -struct s1 -{ - int a; -}; - -struct s2 -{ - s1 b; -}; - -layout(std430, binding = 1) buffer dstbuffer{ s2 test[]; }; -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; -void main() -{ - s2 testVal; - testVal.b.a = 0; - test[0] = testVal; -} \ No newline at end of file diff --git a/third_party/spirv-cross/shaders-msl/comp/struct-packing.comp b/third_party/spirv-cross/shaders-msl/comp/struct-packing.comp deleted file mode 100644 index 5baf45cb3c..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/struct-packing.comp +++ /dev/null @@ -1,77 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -struct S0 -{ - vec2 a[1]; - float b; -}; - -struct S1 -{ - vec3 a; - float b; -}; - -struct S2 -{ - vec3 a[1]; - float b; -}; - -struct S3 -{ - vec2 a; - float b; -}; - -struct S4 -{ - vec2 c; -}; - -struct Content -{ - S0 m0s[1]; - S1 m1s[1]; - S2 m2s[1]; - S0 m0; - S1 m1; - S2 m2; - S3 m3; - float m4; - - S4 m3s[8]; -}; - -layout(binding = 1, std430) buffer SSBO1 -{ - Content content; - Content content1[2]; - Content content2; - - layout(column_major) mat2 m0; - layout(column_major) mat2 m1; - layout(column_major) mat2x3 m2[4]; - layout(column_major) mat3x2 m3; - layout(row_major) mat2 m4; - layout(row_major) mat2 m5[9]; - layout(row_major) mat2x3 m6[4][2]; - layout(row_major) mat3x2 m7; - float array[]; -} ssbo_430; - -layout(binding = 0, std140) buffer SSBO0 -{ - Content content; - Content content1[2]; - Content content2; - float array[]; -} ssbo_140; - -void main() -{ - ssbo_430.content = ssbo_140.content; - ssbo_430.content.m1.a = ssbo_430.m6[1][1] * ssbo_430.content.m3.a; // test packed matrix access -} - diff --git a/third_party/spirv-cross/shaders-msl/comp/torture-loop.comp b/third_party/spirv-cross/shaders-msl/comp/torture-loop.comp deleted file mode 100644 index 54a1221a15..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/torture-loop.comp +++ /dev/null @@ -1,40 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(std430, binding = 0) readonly buffer SSBO -{ - mat4 mvp; - vec4 in_data[]; -}; - -layout(std430, binding = 1) writeonly buffer SSBO2 -{ - vec4 out_data[]; -}; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - vec4 idat = in_data[ident]; - - int k = 0; - - // Continue with side effects. - while (++k < 10) - { - idat *= 2.0; - k++; - } - - // Again used here ... - for (uint i = 0u; i < 16u; i++, k++) - for (uint j = 0u; j < 30u; j++) - idat = mvp * idat; - - do - { - k++; - } while (k > 10); - out_data[ident] = idat; -} - diff --git a/third_party/spirv-cross/shaders-msl/comp/type-alias.comp b/third_party/spirv-cross/shaders-msl/comp/type-alias.comp deleted file mode 100644 index 343d350a2f..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/type-alias.comp +++ /dev/null @@ -1,45 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -struct S0 -{ - vec4 a; -}; - -struct S1 -{ - vec4 a; -}; - -vec4 overload(S0 s0) -{ - return s0.a; -} - -vec4 overload(S1 s1) -{ - return s1.a; -} - -layout(std430, binding = 0) buffer SSBO0 -{ - S0 s0s[]; -}; - -layout(std430, binding = 1) buffer SSBO1 -{ - S1 s1s[]; -}; - -layout(std430, binding = 2) buffer SSBO2 -{ - vec4 outputs[]; -}; - - -void main() -{ - S0 s0 = s0s[gl_GlobalInvocationID.x]; - S1 s1 = s1s[gl_GlobalInvocationID.x]; - outputs[gl_GlobalInvocationID.x] = overload(s0) + overload(s1); -} diff --git a/third_party/spirv-cross/shaders-msl/comp/udiv.comp b/third_party/spirv-cross/shaders-msl/comp/udiv.comp deleted file mode 100644 index d4e1133bc1..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/udiv.comp +++ /dev/null @@ -1,17 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(std430, binding = 0) buffer SSBO -{ - uint inputs[]; -}; - -layout(std430, binding = 1) buffer SSBO2 -{ - uint outputs[]; -}; - -void main() -{ - outputs[gl_GlobalInvocationID.x] = inputs[gl_GlobalInvocationID.x] / 29u; -} diff --git a/third_party/spirv-cross/shaders-msl/comp/writable-ssbo.comp b/third_party/spirv-cross/shaders-msl/comp/writable-ssbo.comp deleted file mode 100644 index 1d5128ce8a..0000000000 --- a/third_party/spirv-cross/shaders-msl/comp/writable-ssbo.comp +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 -layout(set = 0, binding = 0) buffer myBlock { - int a; - float b; -} myStorage; -void main() { - myStorage.a = (myStorage.a + 1) % 256; - myStorage.b = mod((myStorage.b + 0.02), 1.0); -} diff --git a/third_party/spirv-cross/shaders-msl/desktop-only/comp/extended-arithmetic.desktop.comp b/third_party/spirv-cross/shaders-msl/desktop-only/comp/extended-arithmetic.desktop.comp deleted file mode 100644 index 9623751b61..0000000000 --- a/third_party/spirv-cross/shaders-msl/desktop-only/comp/extended-arithmetic.desktop.comp +++ /dev/null @@ -1,41 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -layout(binding = 0, std430) buffer SSBOUint -{ - uint a, b, c, d; - uvec2 a2, b2, c2, d2; - uvec3 a3, b3, c3, d3; - uvec4 a4, b4, c4, d4; -} u; - -layout(binding = 1, std430) buffer SSBOInt -{ - int a, b, c, d; - ivec2 a2, b2, c2, d2; - ivec3 a3, b3, c3, d3; - ivec4 a4, b4, c4, d4; -} i; - -void main() -{ - u.c = uaddCarry(u.a, u.b, u.d); - u.c2 = uaddCarry(u.a2, u.b2, u.d2); - u.c3 = uaddCarry(u.a3, u.b3, u.d3); - u.c4 = uaddCarry(u.a4, u.b4, u.d4); - - u.c = usubBorrow(u.a, u.b, u.d); - u.c2 = usubBorrow(u.a2, u.b2, u.d2); - u.c3 = usubBorrow(u.a3, u.b3, u.d3); - u.c4 = usubBorrow(u.a4, u.b4, u.d4); - - umulExtended(u.a, u.b, u.c, u.d); - umulExtended(u.a2, u.b2, u.c2, u.d2); - umulExtended(u.a3, u.b3, u.c3, u.d3); - umulExtended(u.a4, u.b4, u.c4, u.d4); - - imulExtended(i.a, i.b, i.c, i.d); - imulExtended(i.a2, i.b2, i.c2, i.d2); - imulExtended(i.a3, i.b3, i.c3, i.d3); - imulExtended(i.a4, i.b4, i.c4, i.d4); -} diff --git a/third_party/spirv-cross/shaders-msl/desktop-only/frag/image-ms.desktop.frag b/third_party/spirv-cross/shaders-msl/desktop-only/frag/image-ms.desktop.frag deleted file mode 100644 index e145cb8f00..0000000000 --- a/third_party/spirv-cross/shaders-msl/desktop-only/frag/image-ms.desktop.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 - -layout(rgba8, binding = 0) uniform image2D uImage; -layout(rgba8, binding = 1) uniform image2DArray uImageArray; -layout(rgba8, binding = 2) uniform image2DMS uImageMS; - -void main() -{ - vec4 a = imageLoad(uImageMS, ivec2(1, 2), 2); - vec4 b = imageLoad(uImageArray, ivec3(1, 2, 4)); - imageStore(uImage, ivec2(2, 3), a); - imageStore(uImageArray, ivec3(2, 3, 7), b); -} diff --git a/third_party/spirv-cross/shaders-msl/desktop-only/frag/query-levels.desktop.frag b/third_party/spirv-cross/shaders-msl/desktop-only/frag/query-levels.desktop.frag deleted file mode 100644 index 4a80cbf81f..0000000000 --- a/third_party/spirv-cross/shaders-msl/desktop-only/frag/query-levels.desktop.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler2D uSampler; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(float(textureQueryLevels(uSampler))); -} - diff --git a/third_party/spirv-cross/shaders-msl/desktop-only/frag/sampler-ms-query.desktop.frag b/third_party/spirv-cross/shaders-msl/desktop-only/frag/sampler-ms-query.desktop.frag deleted file mode 100644 index 4c8dcf9764..0000000000 --- a/third_party/spirv-cross/shaders-msl/desktop-only/frag/sampler-ms-query.desktop.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler2DMS uSampler; -layout(binding = 2, rgba8) uniform readonly writeonly image2DMS uImage; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(float(textureSamples(uSampler) + imageSamples(uImage))); -} - diff --git a/third_party/spirv-cross/shaders-msl/desktop-only/tesc/arrayed-output.desktop.sso.tesc b/third_party/spirv-cross/shaders-msl/desktop-only/tesc/arrayed-output.desktop.sso.tesc deleted file mode 100644 index e6941a314c..0000000000 --- a/third_party/spirv-cross/shaders-msl/desktop-only/tesc/arrayed-output.desktop.sso.tesc +++ /dev/null @@ -1,27 +0,0 @@ -#version 450 - -layout(vertices = 4) out; -layout(location = 0) patch out vec3 vPatch[2]; -layout(location = 2) out vec3 vVertex[]; -layout(location = 0) in vec3 vInput[]; - -void main() -{ - vVertex[gl_InvocationID] = - vInput[gl_InvocationID] + - vInput[gl_InvocationID ^ 1]; - - barrier(); - - if (gl_InvocationID == 0) - { - vPatch[0] = vec3(10.0); - vPatch[1] = vec3(20.0); - gl_TessLevelOuter[0] = 1.0; - gl_TessLevelOuter[1] = 2.0; - gl_TessLevelOuter[2] = 3.0; - gl_TessLevelOuter[3] = 4.0; - gl_TessLevelInner[0] = 1.0; - gl_TessLevelInner[1] = 2.0; - } -} diff --git a/third_party/spirv-cross/shaders-msl/desktop-only/tesc/basic.desktop.sso.multi-patch.tesc b/third_party/spirv-cross/shaders-msl/desktop-only/tesc/basic.desktop.sso.multi-patch.tesc deleted file mode 100644 index a258afb367..0000000000 --- a/third_party/spirv-cross/shaders-msl/desktop-only/tesc/basic.desktop.sso.multi-patch.tesc +++ /dev/null @@ -1,32 +0,0 @@ -#version 450 -layout(vertices = 1) out; - -in gl_PerVertex -{ - vec4 gl_Position; -} gl_in[gl_MaxPatchVertices]; - -out gl_PerVertex -{ - vec4 gl_Position; -} gl_out[1]; - -layout(location = 0) patch out vec3 vFoo; - -void set_position() -{ - gl_out[gl_InvocationID].gl_Position = gl_in[0].gl_Position + gl_in[1].gl_Position; -} - -void main() -{ - gl_TessLevelInner[0] = 8.9; - gl_TessLevelInner[1] = 6.9; - gl_TessLevelOuter[0] = 8.9; - gl_TessLevelOuter[1] = 6.9; - gl_TessLevelOuter[2] = 3.9; - gl_TessLevelOuter[3] = 4.9; - vFoo = vec3(1.0); - - set_position(); -} diff --git a/third_party/spirv-cross/shaders-msl/desktop-only/tesc/basic.desktop.sso.tesc b/third_party/spirv-cross/shaders-msl/desktop-only/tesc/basic.desktop.sso.tesc deleted file mode 100644 index a258afb367..0000000000 --- a/third_party/spirv-cross/shaders-msl/desktop-only/tesc/basic.desktop.sso.tesc +++ /dev/null @@ -1,32 +0,0 @@ -#version 450 -layout(vertices = 1) out; - -in gl_PerVertex -{ - vec4 gl_Position; -} gl_in[gl_MaxPatchVertices]; - -out gl_PerVertex -{ - vec4 gl_Position; -} gl_out[1]; - -layout(location = 0) patch out vec3 vFoo; - -void set_position() -{ - gl_out[gl_InvocationID].gl_Position = gl_in[0].gl_Position + gl_in[1].gl_Position; -} - -void main() -{ - gl_TessLevelInner[0] = 8.9; - gl_TessLevelInner[1] = 6.9; - gl_TessLevelOuter[0] = 8.9; - gl_TessLevelOuter[1] = 6.9; - gl_TessLevelOuter[2] = 3.9; - gl_TessLevelOuter[3] = 4.9; - vFoo = vec3(1.0); - - set_position(); -} diff --git a/third_party/spirv-cross/shaders-msl/desktop-only/tesc/struct-copy.desktop.sso.multi-patch.tesc b/third_party/spirv-cross/shaders-msl/desktop-only/tesc/struct-copy.desktop.sso.multi-patch.tesc deleted file mode 100644 index 78d0d00cb6..0000000000 --- a/third_party/spirv-cross/shaders-msl/desktop-only/tesc/struct-copy.desktop.sso.multi-patch.tesc +++ /dev/null @@ -1,22 +0,0 @@ -#version 450 - -struct Boo -{ - vec3 a; - uvec3 b; -}; - -layout(vertices = 4) out; -layout(location = 0) out Boo vVertex[]; -layout(location = 0) in Boo vInput[]; - -void main() -{ - vVertex[gl_InvocationID] = vInput[gl_InvocationID]; - gl_TessLevelOuter[0] = 1.0; - gl_TessLevelOuter[1] = 2.0; - gl_TessLevelOuter[2] = 3.0; - gl_TessLevelOuter[3] = 4.0; - gl_TessLevelInner[0] = 1.0; - gl_TessLevelInner[1] = 2.0; -} diff --git a/third_party/spirv-cross/shaders-msl/desktop-only/tesc/struct-copy.desktop.sso.tesc b/third_party/spirv-cross/shaders-msl/desktop-only/tesc/struct-copy.desktop.sso.tesc deleted file mode 100644 index df2cddbc28..0000000000 --- a/third_party/spirv-cross/shaders-msl/desktop-only/tesc/struct-copy.desktop.sso.tesc +++ /dev/null @@ -1,22 +0,0 @@ -#version 450 - -struct Boo -{ - vec3 a; - vec3 b; -}; - -layout(vertices = 4) out; -layout(location = 0) out Boo vVertex[]; -layout(location = 0) in Boo vInput[]; - -void main() -{ - vVertex[gl_InvocationID] = vInput[gl_InvocationID]; - gl_TessLevelOuter[0] = 1.0; - gl_TessLevelOuter[1] = 2.0; - gl_TessLevelOuter[2] = 3.0; - gl_TessLevelOuter[3] = 4.0; - gl_TessLevelInner[0] = 1.0; - gl_TessLevelInner[1] = 2.0; -} diff --git a/third_party/spirv-cross/shaders-msl/desktop-only/tese/triangle.desktop.sso.tese b/third_party/spirv-cross/shaders-msl/desktop-only/tese/triangle.desktop.sso.tese deleted file mode 100644 index c964fbe263..0000000000 --- a/third_party/spirv-cross/shaders-msl/desktop-only/tese/triangle.desktop.sso.tese +++ /dev/null @@ -1,22 +0,0 @@ -#version 450 - -layout(cw, triangles, fractional_even_spacing) in; - -in gl_PerVertex -{ - vec4 gl_Position; -} gl_in[gl_MaxPatchVertices]; - -out gl_PerVertex -{ - vec4 gl_Position; -}; - -void main() -{ - gl_Position = - gl_in[0].gl_Position * gl_TessCoord.x + - gl_in[1].gl_Position * gl_TessCoord.y + - gl_in[2].gl_Position * gl_TessCoord.z; -} - diff --git a/third_party/spirv-cross/shaders-msl/desktop-only/vert/basic.desktop.sso.vert b/third_party/spirv-cross/shaders-msl/desktop-only/vert/basic.desktop.sso.vert deleted file mode 100644 index 9ddab08cda..0000000000 --- a/third_party/spirv-cross/shaders-msl/desktop-only/vert/basic.desktop.sso.vert +++ /dev/null @@ -1,20 +0,0 @@ -#version 450 - -out gl_PerVertex -{ - vec4 gl_Position; -}; - -layout(std140) uniform UBO -{ - mat4 uMVP; -}; -layout(location = 0) in vec4 aVertex; -layout(location = 1) in vec3 aNormal; -layout(location = 0) out vec3 vNormal; - -void main() -{ - gl_Position = uMVP * aVertex; - vNormal = aNormal; -} diff --git a/third_party/spirv-cross/shaders-msl/desktop-only/vert/clip-cull-distance..no-user-varying.desktop.vert b/third_party/spirv-cross/shaders-msl/desktop-only/vert/clip-cull-distance..no-user-varying.desktop.vert deleted file mode 100644 index 9c0f1d5f36..0000000000 --- a/third_party/spirv-cross/shaders-msl/desktop-only/vert/clip-cull-distance..no-user-varying.desktop.vert +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 - -void main() -{ - gl_Position = vec4(10.0); - gl_ClipDistance[0] = 1.0; - gl_ClipDistance[1] = 4.0; - //gl_CullDistance[0] = 4.0; - //gl_CullDistance[1] = 9.0; -} diff --git a/third_party/spirv-cross/shaders-msl/desktop-only/vert/clip-cull-distance.desktop.vert b/third_party/spirv-cross/shaders-msl/desktop-only/vert/clip-cull-distance.desktop.vert deleted file mode 100644 index 9c0f1d5f36..0000000000 --- a/third_party/spirv-cross/shaders-msl/desktop-only/vert/clip-cull-distance.desktop.vert +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 - -void main() -{ - gl_Position = vec4(10.0); - gl_ClipDistance[0] = 1.0; - gl_ClipDistance[1] = 4.0; - //gl_CullDistance[0] = 4.0; - //gl_CullDistance[1] = 9.0; -} diff --git a/third_party/spirv-cross/shaders-msl/desktop-only/vert/shader-draw-parameters.desktop.for-tess.vert b/third_party/spirv-cross/shaders-msl/desktop-only/vert/shader-draw-parameters.desktop.for-tess.vert deleted file mode 100644 index fadd1e73bf..0000000000 --- a/third_party/spirv-cross/shaders-msl/desktop-only/vert/shader-draw-parameters.desktop.for-tess.vert +++ /dev/null @@ -1,11 +0,0 @@ -#version 460 - -out gl_PerVertex -{ - vec4 gl_Position; -}; - -void main() -{ - gl_Position = vec4(gl_BaseVertex, gl_BaseInstance, 0, 1); -} diff --git a/third_party/spirv-cross/shaders-msl/desktop-only/vert/shader-draw-parameters.desktop.vert b/third_party/spirv-cross/shaders-msl/desktop-only/vert/shader-draw-parameters.desktop.vert deleted file mode 100644 index fadd1e73bf..0000000000 --- a/third_party/spirv-cross/shaders-msl/desktop-only/vert/shader-draw-parameters.desktop.vert +++ /dev/null @@ -1,11 +0,0 @@ -#version 460 - -out gl_PerVertex -{ - vec4 gl_Position; -}; - -void main() -{ - gl_Position = vec4(gl_BaseVertex, gl_BaseInstance, 0, 1); -} diff --git a/third_party/spirv-cross/shaders-msl/flatten/basic.flatten.vert b/third_party/spirv-cross/shaders-msl/flatten/basic.flatten.vert deleted file mode 100644 index e60a9067b1..0000000000 --- a/third_party/spirv-cross/shaders-msl/flatten/basic.flatten.vert +++ /dev/null @@ -1,16 +0,0 @@ -#version 310 es - -layout(std140) uniform UBO -{ - mat4 uMVP; -}; - -layout(location = 0) in vec4 aVertex; -layout(location = 1) in vec3 aNormal; -layout(location = 0) out vec3 vNormal; - -void main() -{ - gl_Position = uMVP * aVertex; - vNormal = aNormal; -} diff --git a/third_party/spirv-cross/shaders-msl/flatten/multiindex.flatten.vert b/third_party/spirv-cross/shaders-msl/flatten/multiindex.flatten.vert deleted file mode 100644 index 0b471d86e0..0000000000 --- a/third_party/spirv-cross/shaders-msl/flatten/multiindex.flatten.vert +++ /dev/null @@ -1,13 +0,0 @@ -#version 310 es - -layout(std140) uniform UBO -{ - vec4 Data[3][5]; -}; - -layout(location = 0) in ivec2 aIndex; - -void main() -{ - gl_Position = Data[aIndex.x][aIndex.y]; -} diff --git a/third_party/spirv-cross/shaders-msl/flatten/push-constant.flatten.vert b/third_party/spirv-cross/shaders-msl/flatten/push-constant.flatten.vert deleted file mode 100644 index c7b1b42e1b..0000000000 --- a/third_party/spirv-cross/shaders-msl/flatten/push-constant.flatten.vert +++ /dev/null @@ -1,17 +0,0 @@ -#version 310 es - -layout(push_constant, std430) uniform PushMe -{ - mat4 MVP; - mat2 Rot; // The MatrixStride will be 8 here. - float Arr[4]; -} registers; - -layout(location = 0) in vec2 Rot; -layout(location = 1) in vec4 Pos; -layout(location = 0) out vec2 vRot; -void main() -{ - gl_Position = registers.MVP * Pos; - vRot = registers.Rot * Rot + registers.Arr[2]; // Constant access should work even if array stride is just 4 here. -} diff --git a/third_party/spirv-cross/shaders-msl/flatten/rowmajor.flatten.vert b/third_party/spirv-cross/shaders-msl/flatten/rowmajor.flatten.vert deleted file mode 100644 index 88c468c8f2..0000000000 --- a/third_party/spirv-cross/shaders-msl/flatten/rowmajor.flatten.vert +++ /dev/null @@ -1,16 +0,0 @@ -#version 310 es - -layout(std140) uniform UBO -{ - layout(column_major) mat4 uMVPR; - layout(row_major) mat4 uMVPC; - layout(row_major) mat2x4 uMVP; -}; - -layout(location = 0) in vec4 aVertex; - -void main() -{ - vec2 v = aVertex * uMVP; - gl_Position = uMVPR * aVertex + uMVPC * aVertex; -} diff --git a/third_party/spirv-cross/shaders-msl/flatten/struct.flatten.vert b/third_party/spirv-cross/shaders-msl/flatten/struct.flatten.vert deleted file mode 100644 index 936bb41b85..0000000000 --- a/third_party/spirv-cross/shaders-msl/flatten/struct.flatten.vert +++ /dev/null @@ -1,30 +0,0 @@ -#version 310 es - -struct Light -{ - vec3 Position; - float Radius; - - vec4 Color; -}; - -layout(std140) uniform UBO -{ - mat4 uMVP; - - Light light; -}; - -layout(location = 0) in vec4 aVertex; -layout(location = 1) in vec3 aNormal; -layout(location = 0) out vec4 vColor; - -void main() -{ - gl_Position = uMVP * aVertex; - - vColor = vec4(0.0); - - vec3 L = aVertex.xyz - light.Position; - vColor += dot(aNormal, normalize(L)) * (clamp(1.0 - length(L) / light.Radius, 0.0, 1.0) * light.Color); -} diff --git a/third_party/spirv-cross/shaders-msl/flatten/swizzle.flatten.vert b/third_party/spirv-cross/shaders-msl/flatten/swizzle.flatten.vert deleted file mode 100644 index e310cdf336..0000000000 --- a/third_party/spirv-cross/shaders-msl/flatten/swizzle.flatten.vert +++ /dev/null @@ -1,47 +0,0 @@ -#version 310 es - -// comments note the 16b alignment boundaries (see GL spec 7.6.2.2 Standard Uniform Block Layout) -layout(std140) uniform UBO -{ - // 16b boundary - vec4 A; - // 16b boundary - vec2 B0; - vec2 B1; - // 16b boundary - float C0; - // 16b boundary (vec3 is aligned to 16b) - vec3 C1; - // 16b boundary - vec3 D0; - float D1; - // 16b boundary - float E0; - float E1; - float E2; - float E3; - // 16b boundary - float F0; - vec2 F1; - // 16b boundary (vec2 before us is aligned to 8b) - float F2; -}; - -layout(location = 0) out vec4 oA; -layout(location = 1) out vec4 oB; -layout(location = 2) out vec4 oC; -layout(location = 3) out vec4 oD; -layout(location = 4) out vec4 oE; -layout(location = 5) out vec4 oF; - -void main() -{ - gl_Position = vec4(0.0); - - oA = A; - oB = vec4(B0, B1); - oC = vec4(C0, C1) + vec4(C1.xy, C1.z, C0); // not packed - oD = vec4(D0, D1) + vec4(D0.xy, D0.z, D1); // packed - must convert for swizzle - oE = vec4(E0, E1, E2, E3); - oF = vec4(F0, F1, F2); -} diff --git a/third_party/spirv-cross/shaders-msl/flatten/types.flatten.frag b/third_party/spirv-cross/shaders-msl/flatten/types.flatten.frag deleted file mode 100644 index c1231445fc..0000000000 --- a/third_party/spirv-cross/shaders-msl/flatten/types.flatten.frag +++ /dev/null @@ -1,27 +0,0 @@ -#version 310 es -precision mediump float; - -layout(std140, binding = 0) uniform UBO0 -{ - vec4 a; - vec4 b; -}; - -layout(std140, binding = 1) uniform UBO1 -{ - ivec4 c; - ivec4 d; -}; - -layout(std140, binding = 2) uniform UBO2 -{ - uvec4 e; - uvec4 f; -}; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(c) + vec4(d) + vec4(e) + vec4(f) + a + b; -} diff --git a/third_party/spirv-cross/shaders-msl/frag/argument-buffers.msl2.argument.frag b/third_party/spirv-cross/shaders-msl/frag/argument-buffers.msl2.argument.frag deleted file mode 100644 index 0d9f6cdb43..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/argument-buffers.msl2.argument.frag +++ /dev/null @@ -1,61 +0,0 @@ -#version 450 - -layout(std430, push_constant) uniform Push -{ - vec4 push; -} registers; - -layout(std140, set = 0, binding = 5) uniform UBO -{ - vec4 ubo; -}; - -layout(std430, set = 1, binding = 7) buffer SSBO -{ - vec4 ssbo; -}; - -layout(std430, set = 1, binding = 8) readonly buffer SSBOs -{ - vec4 ssbo; -} ssbos[2]; - -layout(std140, set = 2, binding = 4) uniform UBOs -{ - vec4 ubo; -} ubos[4]; - -layout(set = 0, binding = 2) uniform sampler2D uTexture; -layout(set = 0, binding = 6) uniform sampler2D uTextures[2]; -layout(set = 1, binding = 3) uniform texture2D uTexture2[4]; -layout(set = 1, binding = 10) uniform sampler uSampler[2]; -layout(location = 0) in vec2 vUV; -layout(location = 0) out vec4 FragColor; - -vec4 sample_in_function2() -{ - vec4 ret = texture(uTexture, vUV); - ret += texture(sampler2D(uTexture2[2], uSampler[1]), vUV); - ret += texture(uTextures[1], vUV); - ret += ssbo; - ret += ssbos[0].ssbo; - ret += registers.push; - return ret; -} - -vec4 sample_in_function() -{ - vec4 ret = sample_in_function2(); - ret += ubo; - ret += ubos[0].ubo; - return ret; -} - -void main() -{ - FragColor = sample_in_function(); - FragColor += ubo; - FragColor += ssbo; - FragColor += ubos[1].ubo; - FragColor += registers.push; -} diff --git a/third_party/spirv-cross/shaders-msl/frag/array-component-io.frag b/third_party/spirv-cross/shaders-msl/frag/array-component-io.frag deleted file mode 100644 index 8d88249e78..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/array-component-io.frag +++ /dev/null @@ -1,21 +0,0 @@ -#version 450 - -layout(location = 1, component = 0) out float A[2]; -layout(location = 1, component = 2) out vec2 B[2]; -layout(location = 0, component = 1) out float C[3]; -layout(location = 0, component = 3) out float D; - -layout(location = 1, component = 0) flat in float InA[2]; -layout(location = 1, component = 2) flat in vec2 InB[2]; -layout(location = 0, component = 1) flat in float InC[3]; -layout(location = 3, component = 1) sample in float InD; -layout(location = 4, component = 2) noperspective in float InE; -layout(location = 5, component = 3) centroid in float InF; - -void main() -{ - A = InA; - B = InB; - C = InC; - D = InD + InE + InF; -} diff --git a/third_party/spirv-cross/shaders-msl/frag/array-lut-no-loop-variable.frag b/third_party/spirv-cross/shaders-msl/frag/array-lut-no-loop-variable.frag deleted file mode 100644 index 3493e0cccc..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/array-lut-no-loop-variable.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 v0; - -void main() -{ - float lut[5] = float[](1.0, 2.0, 3.0, 4.0, 5.0); - for (int i = 0; i < 4; i++, FragColor += lut[i]) - { - } -} diff --git a/third_party/spirv-cross/shaders-msl/frag/array-of-array-lut.frag b/third_party/spirv-cross/shaders-msl/frag/array-of-array-lut.frag deleted file mode 100644 index c401a3fe37..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/array-of-array-lut.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(location = 0) out float vOutput; -layout(location = 0) flat in int vIndex1; -layout(location = 1) flat in int vIndex2; - -const float FOO[2][3] = float[][](float[](1.0, 2.0, 3.0), float[](4.0, 5.0, 6.0)); - -void main() -{ - vOutput = FOO[vIndex1][vIndex2]; -} diff --git a/third_party/spirv-cross/shaders-msl/frag/array-of-texture-swizzle-nonconstant-uniform.msl2.argument.discrete.swizzle.frag b/third_party/spirv-cross/shaders-msl/frag/array-of-texture-swizzle-nonconstant-uniform.msl2.argument.discrete.swizzle.frag deleted file mode 100644 index ec25ceb1c8..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/array-of-texture-swizzle-nonconstant-uniform.msl2.argument.discrete.swizzle.frag +++ /dev/null @@ -1,34 +0,0 @@ -#version 450 - -layout(set = 0, binding = 0) uniform sampler2D uSampler[4]; -layout(set = 0, binding = 1) uniform sampler2D uSamp; - -layout(set = 0, binding = 2) uniform UBO -{ - uint index; -} uUBO; - -layout(set = 0, binding = 3) uniform UBO2 -{ - uint index2; -}; - -layout(location = 0) in vec2 vUV; - -layout(location = 0) out vec4 FragColor; - -vec4 sample_in_func() -{ - return texture(uSampler[uUBO.index], vUV); -} - -vec4 sample_single_in_func(sampler2D s) -{ - return texture(s, vUV); -} - -void main() -{ - FragColor = sample_in_func(); - FragColor += sample_single_in_func(uSampler[index2]); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/array-of-texture-swizzle-nonconstant-uniform.msl2.swizzle.frag b/third_party/spirv-cross/shaders-msl/frag/array-of-texture-swizzle-nonconstant-uniform.msl2.swizzle.frag deleted file mode 100644 index ec25ceb1c8..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/array-of-texture-swizzle-nonconstant-uniform.msl2.swizzle.frag +++ /dev/null @@ -1,34 +0,0 @@ -#version 450 - -layout(set = 0, binding = 0) uniform sampler2D uSampler[4]; -layout(set = 0, binding = 1) uniform sampler2D uSamp; - -layout(set = 0, binding = 2) uniform UBO -{ - uint index; -} uUBO; - -layout(set = 0, binding = 3) uniform UBO2 -{ - uint index2; -}; - -layout(location = 0) in vec2 vUV; - -layout(location = 0) out vec4 FragColor; - -vec4 sample_in_func() -{ - return texture(uSampler[uUBO.index], vUV); -} - -vec4 sample_single_in_func(sampler2D s) -{ - return texture(s, vUV); -} - -void main() -{ - FragColor = sample_in_func(); - FragColor += sample_single_in_func(uSampler[index2]); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/array-of-texture-swizzle.msl2.argument.discrete.swizzle.frag b/third_party/spirv-cross/shaders-msl/frag/array-of-texture-swizzle.msl2.argument.discrete.swizzle.frag deleted file mode 100644 index 556cc9ca32..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/array-of-texture-swizzle.msl2.argument.discrete.swizzle.frag +++ /dev/null @@ -1,31 +0,0 @@ -#version 450 - -layout(set = 0, binding = 1) uniform sampler2D uSampler0[4]; -layout(set = 2, binding = 0) uniform sampler2D uSampler1; -layout(set = 1, binding = 4) uniform sampler2D uSamp; -layout(location = 0) in vec2 vUV; - -layout(location = 0) out vec4 FragColor; - -vec4 sample_in_func_1() -{ - return texture(uSampler0[2], vUV); -} - -vec4 sample_in_func_2() -{ - return texture(uSampler1, vUV); -} - -vec4 sample_single_in_func(sampler2D s) -{ - return texture(s, vUV); -} - -void main() -{ - FragColor = sample_in_func_1(); - FragColor += sample_in_func_2(); - FragColor += sample_single_in_func(uSampler0[1]); - FragColor += sample_single_in_func(uSampler1); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/array-of-texture-swizzle.msl2.swizzle.frag b/third_party/spirv-cross/shaders-msl/frag/array-of-texture-swizzle.msl2.swizzle.frag deleted file mode 100644 index 4694aa3ea2..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/array-of-texture-swizzle.msl2.swizzle.frag +++ /dev/null @@ -1,23 +0,0 @@ -#version 450 - -layout(set = 0, binding = 0) uniform sampler2D uSampler[4]; -layout(set = 0, binding = 1) uniform sampler2D uSamp; -layout(location = 0) in vec2 vUV; - -layout(location = 0) out vec4 FragColor; - -vec4 sample_in_func() -{ - return texture(uSampler[2], vUV); -} - -vec4 sample_single_in_func(sampler2D s) -{ - return texture(s, vUV); -} - -void main() -{ - FragColor = sample_in_func(); - FragColor += sample_single_in_func(uSampler[1]); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/barycentric-nv-nopersp.msl22.frag b/third_party/spirv-cross/shaders-msl/frag/barycentric-nv-nopersp.msl22.frag deleted file mode 100644 index 24edb1a292..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/barycentric-nv-nopersp.msl22.frag +++ /dev/null @@ -1,17 +0,0 @@ -#version 450 -#extension GL_NV_fragment_shader_barycentric : require - -layout(location = 0) out vec2 value; - -layout(set = 0, binding = 0) readonly buffer Vertices -{ - vec2 uvs[]; -}; - -void main () { - int prim = gl_PrimitiveID; - vec2 uv0 = uvs[3 * prim + 0]; - vec2 uv1 = uvs[3 * prim + 1]; - vec2 uv2 = uvs[3 * prim + 2]; - value = gl_BaryCoordNoPerspNV.x * uv0 + gl_BaryCoordNoPerspNV.y * uv1 + gl_BaryCoordNoPerspNV.z * uv2; -} diff --git a/third_party/spirv-cross/shaders-msl/frag/barycentric-nv.msl22.frag b/third_party/spirv-cross/shaders-msl/frag/barycentric-nv.msl22.frag deleted file mode 100644 index 7aec19fba4..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/barycentric-nv.msl22.frag +++ /dev/null @@ -1,17 +0,0 @@ -#version 450 -#extension GL_NV_fragment_shader_barycentric : require - -layout(location = 0) out vec2 value; - -layout(set = 0, binding = 0) readonly buffer Vertices -{ - vec2 uvs[]; -}; - -void main () { - int prim = gl_PrimitiveID; - vec2 uv0 = uvs[3 * prim + 0]; - vec2 uv1 = uvs[3 * prim + 1]; - vec2 uv2 = uvs[3 * prim + 2]; - value = gl_BaryCoordNV.x * uv0 + gl_BaryCoordNV.y * uv1 + gl_BaryCoordNV.z * uv2; -} diff --git a/third_party/spirv-cross/shaders-msl/frag/basic.force-sample.frag b/third_party/spirv-cross/shaders-msl/frag/basic.force-sample.frag deleted file mode 100644 index dd9a8f8507..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/basic.force-sample.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) in vec4 vColor; -layout(location = 1) in vec2 vTex; -layout(binding = 0) uniform sampler2D uTex; -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vColor * texture(uTex, vTex); -} - diff --git a/third_party/spirv-cross/shaders-msl/frag/basic.frag b/third_party/spirv-cross/shaders-msl/frag/basic.frag deleted file mode 100644 index dd9a8f8507..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/basic.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) in vec4 vColor; -layout(location = 1) in vec2 vTex; -layout(binding = 0) uniform sampler2D uTex; -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vColor * texture(uTex, vTex); -} - diff --git a/third_party/spirv-cross/shaders-msl/frag/binary-func-unpack-pack-arguments.frag b/third_party/spirv-cross/shaders-msl/frag/binary-func-unpack-pack-arguments.frag deleted file mode 100644 index c0e5dabd2b..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/binary-func-unpack-pack-arguments.frag +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 -layout(location = 0) out float FragColor; - -layout(binding = 0, std140) uniform UBO -{ - vec3 color; - float v; -}; - -layout(location = 0) in vec3 vIn; - -void main() -{ - FragColor = dot(vIn, color); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/binary-unpack-pack-arguments.frag b/third_party/spirv-cross/shaders-msl/frag/binary-unpack-pack-arguments.frag deleted file mode 100644 index be30f84df7..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/binary-unpack-pack-arguments.frag +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 -layout(location = 0) out vec3 FragColor; - -layout(binding = 0, std140) uniform UBO -{ - vec3 color; - float v; -}; - -layout(location = 0) in vec3 vIn; - -void main() -{ - FragColor = cross(vIn, color - vIn); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/bitcasting.1d-as-2d.frag b/third_party/spirv-cross/shaders-msl/frag/bitcasting.1d-as-2d.frag deleted file mode 100644 index adaa749f75..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/bitcasting.1d-as-2d.frag +++ /dev/null @@ -1,23 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler1D TextureBase; -layout(binding = 1) uniform sampler1D TextureDetail; - -layout(location = 0) in vec4 VertGeom; - -layout(location = 0) out vec4 FragColor0; -layout(location = 1) out vec4 FragColor1; - -void main() -{ - vec4 texSample0 = texture(TextureBase, VertGeom.x); - vec4 texSample1 = textureOffset(TextureDetail, VertGeom.x, 3); - - ivec4 iResult0 = floatBitsToInt(texSample0); - ivec4 iResult1 = floatBitsToInt(texSample1); - FragColor0 = (intBitsToFloat(iResult0) * intBitsToFloat(iResult1)); - - uvec4 uResult0 = floatBitsToUint(texSample0); - uvec4 uResult1 = floatBitsToUint(texSample1); - FragColor1 = (uintBitsToFloat(uResult0) * uintBitsToFloat(uResult1)); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/bitcasting.frag b/third_party/spirv-cross/shaders-msl/frag/bitcasting.frag deleted file mode 100644 index 5dac78ef33..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/bitcasting.frag +++ /dev/null @@ -1,24 +0,0 @@ -#version 310 es -precision mediump float; - -layout(binding = 0) uniform sampler2D TextureBase; -layout(binding = 1) uniform sampler2D TextureDetail; - -layout(location = 0) in vec4 VertGeom; - -layout(location = 0) out vec4 FragColor0; -layout(location = 1) out vec4 FragColor1; - -void main() -{ - vec4 texSample0 = texture(TextureBase, VertGeom.xy); - vec4 texSample1 = textureOffset(TextureDetail, VertGeom.xy, ivec2(3, 2)); - - ivec4 iResult0 = floatBitsToInt(texSample0); - ivec4 iResult1 = floatBitsToInt(texSample1); - FragColor0 = (intBitsToFloat(iResult0) * intBitsToFloat(iResult1)); - - uvec4 uResult0 = floatBitsToUint(texSample0); - uvec4 uResult1 = floatBitsToUint(texSample1); - FragColor1 = (uintBitsToFloat(uResult0) * uintBitsToFloat(uResult1)); -} \ No newline at end of file diff --git a/third_party/spirv-cross/shaders-msl/frag/buffer-read-write.frag b/third_party/spirv-cross/shaders-msl/frag/buffer-read-write.frag deleted file mode 100644 index 70af7d3843..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/buffer-read-write.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(rgba8, binding = 0) uniform readonly imageBuffer buf; -layout(rgba8, binding = 1) uniform writeonly imageBuffer bufOut; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = imageLoad(buf, 0); - imageStore(bufOut, int(gl_FragCoord.x), FragColor); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/buffer-read-write.texture-buffer-native.msl21.frag b/third_party/spirv-cross/shaders-msl/frag/buffer-read-write.texture-buffer-native.msl21.frag deleted file mode 100644 index 70af7d3843..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/buffer-read-write.texture-buffer-native.msl21.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(rgba8, binding = 0) uniform readonly imageBuffer buf; -layout(rgba8, binding = 1) uniform writeonly imageBuffer bufOut; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = imageLoad(buf, 0); - imageStore(bufOut, int(gl_FragCoord.x), FragColor); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/builtins.frag b/third_party/spirv-cross/shaders-msl/frag/builtins.frag deleted file mode 100644 index 99e6e2df5b..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/builtins.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 vColor; - -void main() -{ - FragColor = gl_FragCoord + vColor; - gl_FragDepth = 0.5; -} diff --git a/third_party/spirv-cross/shaders-msl/frag/clip-distance-varying.frag b/third_party/spirv-cross/shaders-msl/frag/clip-distance-varying.frag deleted file mode 100644 index df49bd515c..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/clip-distance-varying.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 - -in float gl_ClipDistance[2]; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(1.0 - gl_ClipDistance[0] - gl_ClipDistance[1]); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/complex-expression-in-access-chain.frag b/third_party/spirv-cross/shaders-msl/frag/complex-expression-in-access-chain.frag deleted file mode 100644 index 47f93931ce..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/complex-expression-in-access-chain.frag +++ /dev/null @@ -1,29 +0,0 @@ -#version 310 es -precision mediump float; - -struct Foo -{ - vec4 a; - vec4 b; -}; - -layout(binding = 0) buffer UBO -{ - vec4 results[1024]; -}; - -layout(binding = 1) uniform highp isampler2D Buf; -layout(location = 0) flat in int vIn; -layout(location = 1) flat in int vIn2; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - ivec4 coords = texelFetch(Buf, ivec2(gl_FragCoord.xy), 0); - vec4 foo = results[coords.x % 16]; - - int c = vIn * vIn; - int d = vIn2 * vIn2; - FragColor = foo + foo + results[c + d]; -} diff --git a/third_party/spirv-cross/shaders-msl/frag/composite-extract-forced-temporary.frag b/third_party/spirv-cross/shaders-msl/frag/composite-extract-forced-temporary.frag deleted file mode 100644 index 35fdbe8624..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/composite-extract-forced-temporary.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 310 es -precision mediump float; -layout(binding = 0) uniform sampler2D Texture; -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec2 vTexCoord; - -void main() -{ - float f = texture(Texture, vTexCoord).x; - FragColor = vec4(f * f); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/constant-array.frag b/third_party/spirv-cross/shaders-msl/frag/constant-array.frag deleted file mode 100644 index b862cb1dbf..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/constant-array.frag +++ /dev/null @@ -1,21 +0,0 @@ -#version 310 es -precision mediump float; -layout(location = 0) out vec4 FragColor; - -layout(location = 0) flat in int index; - -struct Foobar { float a; float b; }; - -vec4 resolve(Foobar f) -{ - return vec4(f.a + f.b); -} - -void main() -{ - const vec4 foo[3] = vec4[](vec4(1.0), vec4(2.0), vec4(3.0)); - const vec4 foobars[2][2] = vec4[][](vec4[](vec4(1.0), vec4(2.0)), vec4[](vec4(8.0), vec4(10.0))); - const Foobar foos[2] = Foobar[](Foobar(10.0, 40.0), Foobar(90.0, 70.0)); - - FragColor = foo[index] + foobars[index][index + 1] + resolve(Foobar(10.0, 20.0)) + resolve(foos[index]); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/constant-composites.frag b/third_party/spirv-cross/shaders-msl/frag/constant-composites.frag deleted file mode 100644 index a12e22ff4f..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/constant-composites.frag +++ /dev/null @@ -1,20 +0,0 @@ -#version 310 es -precision mediump float; - -float lut[4] = float[](1.0, 4.0, 3.0, 2.0); - -struct Foo -{ - float a; - float b; -}; -Foo foos[2] = Foo[](Foo(10.0, 20.0), Foo(30.0, 40.0)); - -layout(location = 0) out vec4 FragColor; -layout(location = 0) flat in int line; - -void main() -{ - FragColor = vec4(lut[line]); - FragColor += foos[line].a * foos[1 - line].a; -} diff --git a/third_party/spirv-cross/shaders-msl/frag/control-dependent-in-branch.desktop.frag b/third_party/spirv-cross/shaders-msl/frag/control-dependent-in-branch.desktop.frag deleted file mode 100644 index 1f21bef8c8..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/control-dependent-in-branch.desktop.frag +++ /dev/null @@ -1,34 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; -layout(binding = 0) uniform sampler2D uSampler; -layout(location = 0) in vec4 vInput; - -void main() -{ - FragColor = vInput; - vec4 t = texture(uSampler, vInput.xy); - vec4 d0 = dFdx(vInput); - vec4 d1 = dFdy(vInput); - vec4 d2 = fwidth(vInput); - vec4 d3 = dFdxCoarse(vInput); - vec4 d4 = dFdyCoarse(vInput); - vec4 d5 = fwidthCoarse(vInput); - vec4 d6 = dFdxFine(vInput); - vec4 d7 = dFdyFine(vInput); - vec4 d8 = fwidthFine(vInput); - if (vInput.y > 10.0) - { - FragColor += t; - FragColor += d0; - FragColor += d1; - FragColor += d2; - FragColor += d3; - FragColor += d4; - FragColor += d5; - FragColor += d6; - FragColor += d7; - FragColor += d8; - } -} - diff --git a/third_party/spirv-cross/shaders-msl/frag/cull-distance-varying.frag b/third_party/spirv-cross/shaders-msl/frag/cull-distance-varying.frag deleted file mode 100644 index 8bade07e1d..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/cull-distance-varying.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 - -in float gl_CullDistance[2]; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(1.0 - gl_CullDistance[0] - gl_CullDistance[1]); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/depth-greater-than.frag b/third_party/spirv-cross/shaders-msl/frag/depth-greater-than.frag deleted file mode 100644 index 8dcbcfdb4a..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/depth-greater-than.frag +++ /dev/null @@ -1,7 +0,0 @@ -#version 450 -layout(depth_greater) out float gl_FragDepth; - -void main() -{ - gl_FragDepth = 0.5; -} diff --git a/third_party/spirv-cross/shaders-msl/frag/depth-less-than.frag b/third_party/spirv-cross/shaders-msl/frag/depth-less-than.frag deleted file mode 100644 index cdcb80f778..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/depth-less-than.frag +++ /dev/null @@ -1,7 +0,0 @@ -#version 450 -layout(depth_less) out float gl_FragDepth; - -void main() -{ - gl_FragDepth = 0.5; -} diff --git a/third_party/spirv-cross/shaders-msl/frag/disable-frag-output.frag-output.frag b/third_party/spirv-cross/shaders-msl/frag/disable-frag-output.frag-output.frag deleted file mode 100644 index 7e149b8640..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/disable-frag-output.frag-output.frag +++ /dev/null @@ -1,25 +0,0 @@ -#version 450 -#extension GL_ARB_shader_stencil_export : require - -layout(location = 0) out vec4 buf0; -layout(location = 1) out vec4 buf1; -layout(location = 2) out vec4 buf2; -layout(location = 3) out vec4 buf3; -layout(location = 4) out vec4 buf4; -layout(location = 5) out vec4 buf5; -layout(location = 6) out vec4 buf6; -layout(location = 7) out vec4 buf7; - -void main() { - buf0 = vec4(0, 0, 0, 1); - buf1 = vec4(1, 0, 0, 1); - buf2 = vec4(0, 1, 0, 1); - buf3 = vec4(0, 0, 1, 1); - buf4 = vec4(1, 0, 1, 0.5); - buf5 = vec4(0.25, 0.25, 0.25, 0.25); - buf6 = vec4(0.75, 0.75, 0.75, 0.75); - buf7 = vec4(1, 1, 1, 1); - gl_FragDepth = 0.9; - gl_FragStencilRefARB = 127; -} - diff --git a/third_party/spirv-cross/shaders-msl/frag/dual-source-blending.frag b/third_party/spirv-cross/shaders-msl/frag/dual-source-blending.frag deleted file mode 100644 index f322cf4c38..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/dual-source-blending.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 - -layout(location = 0, index = 0) out vec4 FragColor0; -layout(location = 0, index = 1) out vec4 FragColor1; - -void main() -{ - FragColor0 = vec4(1.0); - FragColor1 = vec4(2.0); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/early-fragment-tests.frag b/third_party/spirv-cross/shaders-msl/frag/early-fragment-tests.frag deleted file mode 100644 index 1a0acb950a..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/early-fragment-tests.frag +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 -layout(early_fragment_tests) in; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(1.0); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/false-loop-init.frag b/third_party/spirv-cross/shaders-msl/frag/false-loop-init.frag deleted file mode 100644 index 7ce5b52bd7..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/false-loop-init.frag +++ /dev/null @@ -1,19 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) in vec4 accum; -layout(location = 0) out vec4 result; - -void main() -{ - result = vec4(0.0); - uint j; - for (int i = 0; i < 4; i += int(j)) - { - if (accum.y > 10.0) - j = 40u; - else - j = 30u; - result += accum; - } -} diff --git a/third_party/spirv-cross/shaders-msl/frag/flush_params.frag b/third_party/spirv-cross/shaders-msl/frag/flush_params.frag deleted file mode 100644 index 8a26ad3a28..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/flush_params.frag +++ /dev/null @@ -1,27 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) out vec4 FragColor; - -struct Structy -{ - vec4 c; -}; - -void foo2(out Structy f) -{ - f.c = vec4(10.0); -} - -Structy foo() -{ - Structy f; - foo2(f); - return f; -} - -void main() -{ - Structy s = foo(); - FragColor = s.c; -} diff --git a/third_party/spirv-cross/shaders-msl/frag/for-loop-continue-control-flow.frag b/third_party/spirv-cross/shaders-msl/frag/for-loop-continue-control-flow.frag deleted file mode 100644 index 1f91cca2a4..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/for-loop-continue-control-flow.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 -layout(location = 0) out vec4 FragColor; -void main() -{ - FragColor = vec4(0.0); - for (int i = 0; i < 3; (0 > 1) ? 1 : i ++) - { - int a = i; - FragColor[a] += float(i); - } -} diff --git a/third_party/spirv-cross/shaders-msl/frag/for-loop-init.frag b/third_party/spirv-cross/shaders-msl/frag/for-loop-init.frag deleted file mode 100644 index 0cde26765e..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/for-loop-init.frag +++ /dev/null @@ -1,52 +0,0 @@ -#version 310 es -precision mediump float; -layout(location = 0) out int FragColor; - -void main() -{ - FragColor = 16; - - // Basic loop variable. - for (int i = 0; i < 25; i++) - FragColor += 10; - - // Multiple loop variables. - for (int i = 1, j = 4; i < 30; i++, j += 4) - FragColor += 11; - - // A potential loop variables, but we access it outside the loop, - // so cannot be one. - int k = 0; - for (; k < 20; k++) - FragColor += 12; - k += 3; - FragColor += k; - - // Potential loop variables, but the dominator is not trivial. - int l; - if (k == 40) - { - for (l = 0; l < 40; l++) - FragColor += 13; - return; - } - else - { - l = k; - FragColor += l; - } - - // Vectors cannot be loop variables - for (ivec2 i = ivec2(0); i.x < 10; i.x += 4) - { - FragColor += i.y; - } - - // Check that static expressions can be used before the loop header. - int m = 0; - m = k; - int o = m; - for (; m < 40; m++) - FragColor += m; - FragColor += o; -} diff --git a/third_party/spirv-cross/shaders-msl/frag/fp16-packing.frag b/third_party/spirv-cross/shaders-msl/frag/fp16-packing.frag deleted file mode 100644 index 98ca24e2f8..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/fp16-packing.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(location = 0) flat in uint FP16; -layout(location = 1) flat in vec2 FP32; -layout(location = 0) out vec2 FP32Out; -layout(location = 1) out uint FP16Out; - -void main() -{ - FP32Out = unpackHalf2x16(FP16); - FP16Out = packHalf2x16(FP32); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/fragment-component-padding.pad-fragment.frag b/third_party/spirv-cross/shaders-msl/frag/fragment-component-padding.pad-fragment.frag deleted file mode 100644 index 240c59b9bb..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/fragment-component-padding.pad-fragment.frag +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 -layout(location = 0) out float FragColors[2]; -layout(location = 2) out vec2 FragColor2; -layout(location = 3) out vec3 FragColor3; -layout(location = 0) in vec3 vColor; - -void set_globals() -{ - FragColors[0] = vColor.x; - FragColors[1] = vColor.y; - FragColor2 = vColor.xz; - FragColor3 = vColor.zzz; -} - -void main() -{ - set_globals(); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/front-facing.frag b/third_party/spirv-cross/shaders-msl/frag/front-facing.frag deleted file mode 100644 index 90ca1abf4e..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/front-facing.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 vA; -layout(location = 1) in vec4 vB; - -void main() -{ - if (gl_FrontFacing) - FragColor = vA; - else - FragColor = vB; -} diff --git a/third_party/spirv-cross/shaders-msl/frag/gather-dref.frag b/third_party/spirv-cross/shaders-msl/frag/gather-dref.frag deleted file mode 100644 index a8aac56cb5..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/gather-dref.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 310 es -precision mediump float; - -layout(binding = 0) uniform mediump sampler2DShadow uT; -layout(location = 0) in vec3 vUV; -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = textureGather(uT, vUV.xy, vUV.z); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/gather-offset.frag b/third_party/spirv-cross/shaders-msl/frag/gather-offset.frag deleted file mode 100644 index 409317ab56..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/gather-offset.frag +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler2D uT; -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = textureGather(uT, vec2(0.5), 3); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/helper-invocation.msl21.frag b/third_party/spirv-cross/shaders-msl/frag/helper-invocation.msl21.frag deleted file mode 100644 index 1da8c57631..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/helper-invocation.msl21.frag +++ /dev/null @@ -1,21 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec2 vUV; -layout(binding = 0) uniform sampler2D uSampler; - -vec4 foo() -{ - vec4 color; - if (!gl_HelperInvocation) - color = textureLod(uSampler, vUV, 0.0); - else - color = vec4(1.0); - return color; -} - -void main() -{ - FragColor = foo(); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/huge-argument-buffer.device-argument-buffer.argument.msl2.frag b/third_party/spirv-cross/shaders-msl/frag/huge-argument-buffer.device-argument-buffer.argument.msl2.frag deleted file mode 100644 index 28d2b4ae8d..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/huge-argument-buffer.device-argument-buffer.argument.msl2.frag +++ /dev/null @@ -1,26 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec2 vUV; -layout(set = 0, binding = 0) uniform sampler2D uSamplers[10000]; -layout(set = 2, binding = 0) uniform sampler2D uSampler; - -layout(set = 1, binding = 0) uniform UBO -{ - vec4 v; -} vs[10000]; - -vec4 samp_array() -{ - return texture(uSamplers[9999], vUV) + vs[5000].v; -} - -vec4 samp_single() -{ - return texture(uSampler, vUV); -} - -void main() -{ - FragColor = samp_array() + samp_single(); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/illegal-name-test-0.frag b/third_party/spirv-cross/shaders-msl/frag/illegal-name-test-0.frag deleted file mode 100644 index 8e6c11d1d3..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/illegal-name-test-0.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; - -void main() -{ - vec4 fragment = vec4(10.0); - vec4 compute = vec4(10.0); - vec4 kernel = vec4(10.0); - vec4 vertex = vec4(10.0); - FragColor = fragment + compute + kernel + vertex; -} diff --git a/third_party/spirv-cross/shaders-msl/frag/image-query-lod.msl22.frag b/third_party/spirv-cross/shaders-msl/frag/image-query-lod.msl22.frag deleted file mode 100644 index 33d5630e62..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/image-query-lod.msl22.frag +++ /dev/null @@ -1,33 +0,0 @@ -#version 450 - -layout(location = 0) out vec2 FragColor; -layout(set = 0, binding = 0) uniform sampler2D uSampler2D; -layout(set = 0, binding = 1) uniform sampler3D uSampler3D; -layout(set = 0, binding = 2) uniform samplerCube uSamplerCube; -layout(set = 0, binding = 3) uniform sampler uSampler; -layout(set = 0, binding = 4) uniform texture2D uTexture2D; -layout(set = 0, binding = 5) uniform texture3D uTexture3D; -layout(set = 0, binding = 6) uniform textureCube uTextureCube; -layout(location = 0) in vec3 vUV; - -void from_function() -{ - FragColor += textureQueryLod(uSampler2D, vUV.xy); - FragColor += textureQueryLod(uSampler3D, vUV); - FragColor += textureQueryLod(uSamplerCube, vUV); - FragColor += textureQueryLod(sampler2D(uTexture2D, uSampler), vUV.xy); - FragColor += textureQueryLod(sampler3D(uTexture3D, uSampler), vUV); - FragColor += textureQueryLod(samplerCube(uTextureCube, uSampler), vUV); -} - -void main() -{ - FragColor = vec2(0.0); - FragColor += textureQueryLod(uSampler2D, vUV.xy); - FragColor += textureQueryLod(uSampler3D, vUV); - FragColor += textureQueryLod(uSamplerCube, vUV); - FragColor += textureQueryLod(sampler2D(uTexture2D, uSampler), vUV.xy); - FragColor += textureQueryLod(sampler3D(uTexture3D, uSampler), vUV); - FragColor += textureQueryLod(samplerCube(uTextureCube, uSampler), vUV); - from_function(); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/in_block.frag b/third_party/spirv-cross/shaders-msl/frag/in_block.frag deleted file mode 100644 index 59b97074ec..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/in_block.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 - -layout(location = 2) in VertexOut -{ - vec4 color; - vec4 color2; -} inputs; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = inputs.color + inputs.color2; -} diff --git a/third_party/spirv-cross/shaders-msl/frag/in_mat.frag b/third_party/spirv-cross/shaders-msl/frag/in_mat.frag deleted file mode 100644 index dd0b5d0350..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/in_mat.frag +++ /dev/null @@ -1,19 +0,0 @@ -#version 450 - -layout(binding = 1) uniform samplerCube samplerColor; - -layout(location = 0) in vec3 inPos; -layout(location = 1) in vec3 inNormal; -layout(location = 2) in mat4 inInvModelView; -layout(location = 6) in float inLodBias; -layout(location = 0) out vec4 outFragColor; - -void main() -{ - vec3 cI = normalize(inPos); - vec3 cR = reflect(cI, normalize(inNormal)); - cR = vec3((inInvModelView * vec4(cR, 0.0)).xyz); - cR.x *= (-1.0); - outFragColor = texture(samplerColor, cR, inLodBias); -} - diff --git a/third_party/spirv-cross/shaders-msl/frag/input-attachment-ms.arrayed-subpass.msl21.frag b/third_party/spirv-cross/shaders-msl/frag/input-attachment-ms.arrayed-subpass.msl21.frag deleted file mode 100644 index b3d44c9436..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/input-attachment-ms.arrayed-subpass.msl21.frag +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 - -layout(input_attachment_index = 0, set = 0, binding = 0) uniform subpassInputMS uSubpass0; -layout(input_attachment_index = 1, set = 0, binding = 1) uniform subpassInputMS uSubpass1; -layout(location = 0) out vec4 FragColor; - -vec4 load_subpasses(mediump subpassInputMS uInput) -{ - return subpassLoad(uInput, gl_SampleID); -} - -void main() -{ - FragColor = subpassLoad(uSubpass0, 1) + subpassLoad(uSubpass1, 2) + load_subpasses(uSubpass0); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/input-attachment-ms.frag b/third_party/spirv-cross/shaders-msl/frag/input-attachment-ms.frag deleted file mode 100644 index b3d44c9436..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/input-attachment-ms.frag +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 - -layout(input_attachment_index = 0, set = 0, binding = 0) uniform subpassInputMS uSubpass0; -layout(input_attachment_index = 1, set = 0, binding = 1) uniform subpassInputMS uSubpass1; -layout(location = 0) out vec4 FragColor; - -vec4 load_subpasses(mediump subpassInputMS uInput) -{ - return subpassLoad(uInput, gl_SampleID); -} - -void main() -{ - FragColor = subpassLoad(uSubpass0, 1) + subpassLoad(uSubpass1, 2) + load_subpasses(uSubpass0); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/input-attachment-ms.multiview.msl21.frag b/third_party/spirv-cross/shaders-msl/frag/input-attachment-ms.multiview.msl21.frag deleted file mode 100644 index b3d44c9436..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/input-attachment-ms.multiview.msl21.frag +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 - -layout(input_attachment_index = 0, set = 0, binding = 0) uniform subpassInputMS uSubpass0; -layout(input_attachment_index = 1, set = 0, binding = 1) uniform subpassInputMS uSubpass1; -layout(location = 0) out vec4 FragColor; - -vec4 load_subpasses(mediump subpassInputMS uInput) -{ - return subpassLoad(uInput, gl_SampleID); -} - -void main() -{ - FragColor = subpassLoad(uSubpass0, 1) + subpassLoad(uSubpass1, 2) + load_subpasses(uSubpass0); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/input-attachment.arrayed-subpass.frag b/third_party/spirv-cross/shaders-msl/frag/input-attachment.arrayed-subpass.frag deleted file mode 100644 index 877d0525a4..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/input-attachment.arrayed-subpass.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 310 es -precision mediump float; - -layout(input_attachment_index = 0, set = 0, binding = 0) uniform mediump subpassInput uSubpass0; -layout(input_attachment_index = 1, set = 0, binding = 1) uniform mediump subpassInput uSubpass1; -layout(location = 0) out vec4 FragColor; - -vec4 load_subpasses(mediump subpassInput uInput) -{ - return subpassLoad(uInput); -} - -void main() -{ - FragColor = subpassLoad(uSubpass0) + load_subpasses(uSubpass1); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/input-attachment.frag b/third_party/spirv-cross/shaders-msl/frag/input-attachment.frag deleted file mode 100644 index 877d0525a4..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/input-attachment.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 310 es -precision mediump float; - -layout(input_attachment_index = 0, set = 0, binding = 0) uniform mediump subpassInput uSubpass0; -layout(input_attachment_index = 1, set = 0, binding = 1) uniform mediump subpassInput uSubpass1; -layout(location = 0) out vec4 FragColor; - -vec4 load_subpasses(mediump subpassInput uInput) -{ - return subpassLoad(uInput); -} - -void main() -{ - FragColor = subpassLoad(uSubpass0) + load_subpasses(uSubpass1); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/input-attachment.multiview.frag b/third_party/spirv-cross/shaders-msl/frag/input-attachment.multiview.frag deleted file mode 100644 index 877d0525a4..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/input-attachment.multiview.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 310 es -precision mediump float; - -layout(input_attachment_index = 0, set = 0, binding = 0) uniform mediump subpassInput uSubpass0; -layout(input_attachment_index = 1, set = 0, binding = 1) uniform mediump subpassInput uSubpass1; -layout(location = 0) out vec4 FragColor; - -vec4 load_subpasses(mediump subpassInput uInput) -{ - return subpassLoad(uInput); -} - -void main() -{ - FragColor = subpassLoad(uSubpass0) + load_subpasses(uSubpass1); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/interpolation-qualifiers-block.frag b/third_party/spirv-cross/shaders-msl/frag/interpolation-qualifiers-block.frag deleted file mode 100644 index 4842089324..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/interpolation-qualifiers-block.frag +++ /dev/null @@ -1,19 +0,0 @@ -#version 450 - -struct Input { - vec2 v0; - vec2 v1; - vec3 v2; - vec4 v3; - float v4; - float v5; - float v6; -}; - -layout(location=0) in centroid noperspective Input inp; - -layout(location=0) out vec4 FragColor; - -void main() { - FragColor = vec4(inp.v0.x + inp.v1.y, inp.v2.xy, inp.v3.w * inp.v4 + inp.v5 - inp.v6); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/interpolation-qualifiers.frag b/third_party/spirv-cross/shaders-msl/frag/interpolation-qualifiers.frag deleted file mode 100644 index ef8a4807fe..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/interpolation-qualifiers.frag +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 - -layout(location=0) in vec2 v0; -layout(location=1) in noperspective vec2 v1; -layout(location=2) in centroid vec3 v2; -layout(location=3) in centroid noperspective vec4 v3; -layout(location=4) in sample float v4; -layout(location=5) in sample noperspective float v5; -layout(location=6) in flat float v6; - -layout(location=0) out vec4 FragColor; - -void main() { - FragColor = vec4(v0.x + v1.y, v2.xy, v3.w * v4 + v5 - v6); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/lut-promotion.frag b/third_party/spirv-cross/shaders-msl/frag/lut-promotion.frag deleted file mode 100644 index 0cdc8148f9..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/lut-promotion.frag +++ /dev/null @@ -1,44 +0,0 @@ -#version 310 es -precision mediump float; -layout(location = 0) out float FragColor; -layout(location = 0) flat in int index; - -const float LUT[16] = float[]( - 1.0, 2.0, 3.0, 4.0, - 1.0, 2.0, 3.0, 4.0, - 1.0, 2.0, 3.0, 4.0, - 1.0, 2.0, 3.0, 4.0); - -void main() -{ - // Try reading LUTs, both in branches and not branch. - FragColor = LUT[index]; - if (index < 10) - FragColor += LUT[index ^ 1]; - else - FragColor += LUT[index & 1]; - - // Not declared as a LUT, but can be promoted to one. - vec4 foo[4] = vec4[](vec4(0.0), vec4(1.0), vec4(8.0), vec4(5.0)); - if (index > 30) - { - FragColor += foo[index & 3].y; - } - else - { - FragColor += foo[index & 1].x; - } - - // Not declared as a LUT, but this cannot be promoted, because we have a partial write. - vec4 foobar[4] = vec4[](vec4(0.0), vec4(1.0), vec4(8.0), vec4(5.0)); - if (index > 30) - { - foobar[1].z = 20.0; - } - FragColor += foobar[index & 3].z; - - // Not declared as a LUT, but this cannot be promoted, because we have two complete writes. - vec4 baz[4] = vec4[](vec4(0.0), vec4(1.0), vec4(8.0), vec4(5.0)); - baz = vec4[](vec4(20.0), vec4(30.0), vec4(50.0), vec4(60.0)); - FragColor += baz[index & 3].z; -} diff --git a/third_party/spirv-cross/shaders-msl/frag/mix.frag b/third_party/spirv-cross/shaders-msl/frag/mix.frag deleted file mode 100644 index a5d589dd08..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/mix.frag +++ /dev/null @@ -1,20 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) in vec4 vIn0; -layout(location = 1) in vec4 vIn1; -layout(location = 2) in float vIn2; -layout(location = 3) in float vIn3; -layout(location = 0) out vec4 FragColor; - -void main() -{ - bvec4 l = bvec4(false, true, false, false); - FragColor = mix(vIn0, vIn1, l); - - bool f = true; - FragColor = vec4(mix(vIn2, vIn3, f)); - - FragColor = f ? vIn0 : vIn1; - FragColor = vec4(f ? vIn2 : vIn3); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/mrt-array.frag b/third_party/spirv-cross/shaders-msl/frag/mrt-array.frag deleted file mode 100644 index 0460c72ab9..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/mrt-array.frag +++ /dev/null @@ -1,24 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) out vec4 FragColor[4]; -layout(location = 0) in vec4 vA; -layout(location = 1) in vec4 vB; - -void write_deeper_in_function() -{ - FragColor[3] = vA * vB; -} - -void write_in_function() -{ - FragColor[2] = vA - vB; - write_deeper_in_function(); -} - -void main() -{ - FragColor[0] = mod(vA, vB); - FragColor[1] = vA + vB; - write_in_function(); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/nonuniform-qualifier.msl2.frag b/third_party/spirv-cross/shaders-msl/frag/nonuniform-qualifier.msl2.frag deleted file mode 100644 index ba9dd7fb2c..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/nonuniform-qualifier.msl2.frag +++ /dev/null @@ -1,28 +0,0 @@ -#version 450 -#extension GL_EXT_nonuniform_qualifier : require - -layout(binding = 0) uniform texture2D uSamplers[8]; -layout(binding = 8) uniform sampler2D uCombinedSamplers[8]; -layout(binding = 1) uniform sampler uSamps[7]; -layout(location = 0) flat in int vIndex; -layout(location = 1) in vec2 vUV; -layout(location = 0) out vec4 FragColor; - -layout(set = 0, binding = 0) uniform UBO -{ - vec4 v[64]; -} ubos[2]; - -layout(set = 0, binding = 2) readonly buffer SSBO -{ - vec4 v[]; -} ssbos[2]; - -void main() -{ - int i = vIndex; - FragColor = texture(sampler2D(uSamplers[nonuniformEXT(i + 10)], uSamps[nonuniformEXT(i + 40)]), vUV); - FragColor = texture(uCombinedSamplers[nonuniformEXT(i + 10)], vUV); - FragColor += ubos[nonuniformEXT(i + 20)].v[nonuniformEXT(i + 40)]; - FragColor += ssbos[nonuniformEXT(i + 50)].v[nonuniformEXT(i + 60)]; -} diff --git a/third_party/spirv-cross/shaders-msl/frag/packed-expression-vector-shuffle.frag b/third_party/spirv-cross/shaders-msl/frag/packed-expression-vector-shuffle.frag deleted file mode 100644 index 9958443813..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/packed-expression-vector-shuffle.frag +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 -layout(location = 0) out vec4 FragColor; - -layout(binding = 0, std140) uniform UBO -{ - vec3 color; - float v; -}; - -void main() -{ - vec4 f = vec4(1.0); - f.rgb = color; - FragColor = f; -} diff --git a/third_party/spirv-cross/shaders-msl/frag/packing-test-3.frag b/third_party/spirv-cross/shaders-msl/frag/packing-test-3.frag deleted file mode 100644 index 56ad6f5f1b..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/packing-test-3.frag +++ /dev/null @@ -1,36 +0,0 @@ -#version 450 - -struct VertexOutput -{ - vec4 HPosition; -}; - -struct TestStruct -{ - vec3 position; - float radius; -}; - -layout(binding = 0, std140) uniform CB0 -{ - TestStruct CB0[16]; -} _24; - -layout(location = 0) out vec4 _entryPointOutput; - -vec4 _main(VertexOutput IN) -{ - TestStruct st; - st.position = _24.CB0[1].position; - st.radius = _24.CB0[1].radius; - vec4 col = vec4(st.position, st.radius); - return col; -} - -void main() -{ - VertexOutput IN; - IN.HPosition = gl_FragCoord; - VertexOutput param = IN; - _entryPointOutput = _main(param); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/pixel-interlock-ordered.msl2.argument.frag b/third_party/spirv-cross/shaders-msl/frag/pixel-interlock-ordered.msl2.argument.frag deleted file mode 100644 index ceac8cc50e..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/pixel-interlock-ordered.msl2.argument.frag +++ /dev/null @@ -1,36 +0,0 @@ -#version 450 -#extension GL_ARB_fragment_shader_interlock : require - -layout(pixel_interlock_ordered) in; - -layout(binding = 0, rgba8) uniform writeonly image2D img; -layout(binding = 1, r32ui) uniform uimage2D img2; -layout(binding = 2, rgba8) uniform readonly image2D img3; -layout(binding = 3) coherent buffer Buffer -{ - int foo; - uint bar; -}; -layout(binding = 4) buffer Buffer2 -{ - uint quux; -}; - -layout(binding = 5, rgba8) uniform writeonly image2D img4; -layout(binding = 6) buffer Buffer3 -{ - int baz; -}; - -void main() -{ - // Deliberately outside the critical section to test usage tracking. - baz = 0; - imageStore(img4, ivec2(1, 1), vec4(1.0, 0.0, 0.0, 1.0)); - beginInvocationInterlockARB(); - imageStore(img, ivec2(0, 0), imageLoad(img3, ivec2(0, 0))); - imageAtomicAdd(img2, ivec2(0, 0), 1u); - foo += 42; - atomicAnd(bar, quux); - endInvocationInterlockARB(); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/pixel-interlock-ordered.msl2.frag b/third_party/spirv-cross/shaders-msl/frag/pixel-interlock-ordered.msl2.frag deleted file mode 100644 index ceac8cc50e..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/pixel-interlock-ordered.msl2.frag +++ /dev/null @@ -1,36 +0,0 @@ -#version 450 -#extension GL_ARB_fragment_shader_interlock : require - -layout(pixel_interlock_ordered) in; - -layout(binding = 0, rgba8) uniform writeonly image2D img; -layout(binding = 1, r32ui) uniform uimage2D img2; -layout(binding = 2, rgba8) uniform readonly image2D img3; -layout(binding = 3) coherent buffer Buffer -{ - int foo; - uint bar; -}; -layout(binding = 4) buffer Buffer2 -{ - uint quux; -}; - -layout(binding = 5, rgba8) uniform writeonly image2D img4; -layout(binding = 6) buffer Buffer3 -{ - int baz; -}; - -void main() -{ - // Deliberately outside the critical section to test usage tracking. - baz = 0; - imageStore(img4, ivec2(1, 1), vec4(1.0, 0.0, 0.0, 1.0)); - beginInvocationInterlockARB(); - imageStore(img, ivec2(0, 0), imageLoad(img3, ivec2(0, 0))); - imageAtomicAdd(img2, ivec2(0, 0), 1u); - foo += 42; - atomicAnd(bar, quux); - endInvocationInterlockARB(); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/pls.frag b/third_party/spirv-cross/shaders-msl/frag/pls.frag deleted file mode 100644 index e3863e4e0e..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/pls.frag +++ /dev/null @@ -1,20 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) in vec4 PLSIn0; -layout(location = 1) in vec4 PLSIn1; -layout(location = 2) in vec4 PLSIn2; -layout(location = 3) in vec4 PLSIn3; - -layout(location = 0) out vec4 PLSOut0; -layout(location = 1) out vec4 PLSOut1; -layout(location = 2) out vec4 PLSOut2; -layout(location = 3) out vec4 PLSOut3; - -void main() -{ - PLSOut0 = 2.0 * PLSIn0; - PLSOut1 = 6.0 * PLSIn1; - PLSOut2 = 7.0 * PLSIn2; - PLSOut3 = 4.0 * PLSIn3; -} diff --git a/third_party/spirv-cross/shaders-msl/frag/post-depth-coverage.ios.msl2.frag b/third_party/spirv-cross/shaders-msl/frag/post-depth-coverage.ios.msl2.frag deleted file mode 100644 index 4f134b4f3b..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/post-depth-coverage.ios.msl2.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 -#extension GL_ARB_post_depth_coverage : require - -layout(post_depth_coverage) in; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(gl_SampleMaskIn[0]); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/post-depth-coverage.msl23.frag b/third_party/spirv-cross/shaders-msl/frag/post-depth-coverage.msl23.frag deleted file mode 100644 index 4f134b4f3b..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/post-depth-coverage.msl23.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 -#extension GL_ARB_post_depth_coverage : require - -layout(post_depth_coverage) in; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(gl_SampleMaskIn[0]); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/private-variable-prototype-declaration.frag b/third_party/spirv-cross/shaders-msl/frag/private-variable-prototype-declaration.frag deleted file mode 100644 index 7d2bba5aa0..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/private-variable-prototype-declaration.frag +++ /dev/null @@ -1,20 +0,0 @@ -#version 450 - -struct AStruct { vec4 foobar; }; - -void someFunction(out AStruct s) { s.foobar = vec4(1.0); } - -highp vec3 global_variable; - -void otherFunction() { - global_variable = vec3(1.0); -} - -layout(location = 0) out vec3 FragColor; - -void main() { - AStruct inputs; - someFunction(inputs); - otherFunction(); - FragColor = global_variable; -} diff --git a/third_party/spirv-cross/shaders-msl/frag/read-cull-clip-distance-in-function.frag b/third_party/spirv-cross/shaders-msl/frag/read-cull-clip-distance-in-function.frag deleted file mode 100644 index 0b82dc2df9..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/read-cull-clip-distance-in-function.frag +++ /dev/null @@ -1,20 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; - -in float gl_CullDistance[2]; -in float gl_ClipDistance[2]; - -vec4 read_in_func() -{ - return vec4( - gl_CullDistance[0], - gl_CullDistance[1], - gl_ClipDistance[0], - gl_ClipDistance[1]); -} - -void main() -{ - FragColor = read_in_func(); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/readonly-ssbo.frag b/third_party/spirv-cross/shaders-msl/frag/readonly-ssbo.frag deleted file mode 100644 index 9d7cff66fd..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/readonly-ssbo.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 -layout(location = 0) out vec4 FragColor; -layout(binding = 0, std430) readonly buffer SSBO -{ - vec4 v; -}; - -vec4 read_from_function() -{ - return v; -} - -void main() -{ - FragColor = v + read_from_function(); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/sample-depth-propagate-state-from-resource.frag b/third_party/spirv-cross/shaders-msl/frag/sample-depth-propagate-state-from-resource.frag deleted file mode 100644 index 9a855ac7a8..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/sample-depth-propagate-state-from-resource.frag +++ /dev/null @@ -1,29 +0,0 @@ -#version 450 - -layout(set = 0, binding = 0) uniform texture2D uTexture; -layout(set = 0, binding = 1) uniform sampler uSampler; -layout(set = 0, binding = 2) uniform samplerShadow uSamplerShadow; - -layout(location = 0) out float FragColor; -layout(location = 0) in vec3 vUV; - -float sample_normal2(texture2D tex) -{ - return texture(sampler2D(tex, uSampler), vUV.xy).x; -} - -float sample_normal(texture2D tex) -{ - return sample_normal2(tex); -} - -float sample_comp(texture2D tex) -{ - return texture(sampler2DShadow(tex, uSamplerShadow), vUV); -} - -void main() -{ - FragColor = sample_normal(uTexture); - FragColor += sample_comp(uTexture); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/sample-depth-separate-image-sampler.frag b/third_party/spirv-cross/shaders-msl/frag/sample-depth-separate-image-sampler.frag deleted file mode 100644 index db1f5e983a..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/sample-depth-separate-image-sampler.frag +++ /dev/null @@ -1,22 +0,0 @@ -#version 450 - -layout(set = 0, binding = 0) uniform texture2D uDepth; -layout(set = 0, binding = 1) uniform texture2D uColor; -layout(set = 0, binding = 2) uniform sampler uSampler; -layout(set = 0, binding = 3) uniform samplerShadow uSamplerShadow; -layout(location = 0) out float FragColor; - -float sample_depth_from_function(texture2D uT, samplerShadow uS) -{ - return texture(sampler2DShadow(uT, uS), vec3(0.5)); -} - -float sample_color_from_function(texture2D uT, sampler uS) -{ - return texture(sampler2D(uT, uS), vec2(0.5)).x; -} - -void main() -{ - FragColor = sample_depth_from_function(uDepth, uSamplerShadow) + sample_color_from_function(uColor, uSampler); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/sample-mask-in-and-out.fixed-sample-mask.frag b/third_party/spirv-cross/shaders-msl/frag/sample-mask-in-and-out.fixed-sample-mask.frag deleted file mode 100644 index b78ee61e81..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/sample-mask-in-and-out.fixed-sample-mask.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(1.0); - gl_SampleMask[0] = gl_SampleMaskIn[0]; -} - diff --git a/third_party/spirv-cross/shaders-msl/frag/sample-mask-not-used.fixed-sample-mask.frag b/third_party/spirv-cross/shaders-msl/frag/sample-mask-not-used.fixed-sample-mask.frag deleted file mode 100644 index c3eaf5e19f..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/sample-mask-not-used.fixed-sample-mask.frag +++ /dev/null @@ -1,8 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(1.0); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/sample-mask.fixed-sample-mask.frag b/third_party/spirv-cross/shaders-msl/frag/sample-mask.fixed-sample-mask.frag deleted file mode 100644 index 33ff0b2e69..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/sample-mask.fixed-sample-mask.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(1.0); - gl_SampleMask[0] = 0; -} - diff --git a/third_party/spirv-cross/shaders-msl/frag/sample-mask.frag b/third_party/spirv-cross/shaders-msl/frag/sample-mask.frag deleted file mode 100644 index 33ff0b2e69..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/sample-mask.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(1.0); - gl_SampleMask[0] = 0; -} - diff --git a/third_party/spirv-cross/shaders-msl/frag/sample-position-func.frag b/third_party/spirv-cross/shaders-msl/frag/sample-position-func.frag deleted file mode 100644 index d34b8968d2..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/sample-position-func.frag +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 - -layout(location = 0) in flat int index; - -layout(location = 0) out vec4 FragColor; - -vec4 getColor(int i) -{ - return vec4(gl_SamplePosition, i, 1.0); -} - -void main() -{ - FragColor = getColor(index); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/sample-position.frag b/third_party/spirv-cross/shaders-msl/frag/sample-position.frag deleted file mode 100644 index 6f7502814d..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/sample-position.frag +++ /dev/null @@ -1,8 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(gl_SamplePosition, gl_SampleID, 1.0); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/sample-rate-frag-coord-sample-id.frag b/third_party/spirv-cross/shaders-msl/frag/sample-rate-frag-coord-sample-id.frag deleted file mode 100644 index 202dba0bdf..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/sample-rate-frag-coord-sample-id.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 - -layout(set = 0, binding = 0) uniform sampler2DArray tex; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = texture(tex, vec3(gl_FragCoord.xy, float(gl_SampleID))); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/sample-rate-frag-coord-sample-input.frag b/third_party/spirv-cross/shaders-msl/frag/sample-rate-frag-coord-sample-input.frag deleted file mode 100644 index b131fb032c..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/sample-rate-frag-coord-sample-input.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 - -layout(set = 0, binding = 0) uniform sampler2DArray tex; - -layout(location = 0) sample in float foo; -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = texture(tex, vec3(gl_FragCoord.xy, foo)); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/sample-rate-frag-coord-sample-pos.frag b/third_party/spirv-cross/shaders-msl/frag/sample-rate-frag-coord-sample-pos.frag deleted file mode 100644 index c8c3be96df..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/sample-rate-frag-coord-sample-pos.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 - -layout(set = 0, binding = 0) uniform sampler2D tex; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = texture(tex, gl_FragCoord.xy - gl_SamplePosition); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/sample-rate-frag-coord.force-sample.frag b/third_party/spirv-cross/shaders-msl/frag/sample-rate-frag-coord.force-sample.frag deleted file mode 100644 index a6b47e4bbe..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/sample-rate-frag-coord.force-sample.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 - -layout(set = 0, binding = 0) uniform sampler2D tex; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = texture(tex, gl_FragCoord.xy); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/sampler-1d-lod.1d-as-2d.frag b/third_party/spirv-cross/shaders-msl/frag/sampler-1d-lod.1d-as-2d.frag deleted file mode 100644 index f4526f39d0..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/sampler-1d-lod.1d-as-2d.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; -layout(location = 0) flat in float vTex; -layout(binding = 0) uniform sampler1D uSampler; - -void main() -{ - FragColor += texture(uSampler, vTex, 2.0) + - textureLod(uSampler, vTex, 3.0) + - textureGrad(uSampler, vTex, 5.0, 8.0); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/sampler-1d-lod.frag b/third_party/spirv-cross/shaders-msl/frag/sampler-1d-lod.frag deleted file mode 100644 index f4526f39d0..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/sampler-1d-lod.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; -layout(location = 0) flat in float vTex; -layout(binding = 0) uniform sampler1D uSampler; - -void main() -{ - FragColor += texture(uSampler, vTex, 2.0) + - textureLod(uSampler, vTex, 3.0) + - textureGrad(uSampler, vTex, 5.0, 8.0); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/sampler-compare-bias.msl23.1d-as-2d.frag b/third_party/spirv-cross/shaders-msl/frag/sampler-compare-bias.msl23.1d-as-2d.frag deleted file mode 100644 index 158c760031..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/sampler-compare-bias.msl23.1d-as-2d.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 - -layout(binding = 0) uniform texture1DArray uTex; -layout(binding = 1) uniform samplerShadow uShadow; -layout(location = 0) in vec3 vUV; -layout(location = 0) out float FragColor; - -void main() -{ - FragColor = texture(sampler1DArrayShadow(uTex, uShadow), vUV, 1.0); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/sampler-compare-cascade-gradient.frag b/third_party/spirv-cross/shaders-msl/frag/sampler-compare-cascade-gradient.frag deleted file mode 100644 index 9fd9e3ca09..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/sampler-compare-cascade-gradient.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 - -layout(binding = 0) uniform texture2DArray uTex; -layout(binding = 1) uniform samplerShadow uShadow; -layout(location = 0) in vec4 vUV; -layout(location = 0) out float FragColor; - -void main() -{ - FragColor = textureGrad(sampler2DArrayShadow(uTex, uShadow), vUV, vec2(0.0), vec2(0.0)); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/sampler-compare-cascade-gradient.ios.frag b/third_party/spirv-cross/shaders-msl/frag/sampler-compare-cascade-gradient.ios.frag deleted file mode 100644 index 9fd9e3ca09..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/sampler-compare-cascade-gradient.ios.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 - -layout(binding = 0) uniform texture2DArray uTex; -layout(binding = 1) uniform samplerShadow uShadow; -layout(location = 0) in vec4 vUV; -layout(location = 0) out float FragColor; - -void main() -{ - FragColor = textureGrad(sampler2DArrayShadow(uTex, uShadow), vUV, vec2(0.0), vec2(0.0)); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/sampler-compare-cascade-gradient.msl23.frag b/third_party/spirv-cross/shaders-msl/frag/sampler-compare-cascade-gradient.msl23.frag deleted file mode 100644 index 5c1c8937fb..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/sampler-compare-cascade-gradient.msl23.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 - -layout(binding = 0) uniform texture2DArray uTex; -layout(binding = 1) uniform samplerShadow uShadow; -layout(location = 0) in vec4 vUV; -layout(location = 0) out float FragColor; - -void main() -{ - FragColor = textureGrad(sampler2DArrayShadow(uTex, uShadow), vUV, vec2(0.0), vec2(0.0)) + textureGrad(sampler2DArrayShadow(uTex, uShadow), vUV, vec2(1.0), vec2(1.0)); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/sampler-image-arrays.msl2.frag b/third_party/spirv-cross/shaders-msl/frag/sampler-image-arrays.msl2.frag deleted file mode 100644 index 42370d9728..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/sampler-image-arrays.msl2.frag +++ /dev/null @@ -1,33 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; -layout(location = 0) flat in vec2 vTex; -layout(location = 1) flat in int vIndex; -layout(binding = 0) uniform sampler2D uSampler[4]; -layout(binding = 4) uniform sampler uSamplers[4]; -layout(binding = 8) uniform texture2D uTextures[4]; - -vec4 sample_from_argument(sampler2D samplers[4]) -{ - return texture(samplers[vIndex], vTex + 0.2); -} - -vec4 sample_single_from_argument(sampler2D samp) -{ - return texture(samp, vTex + 0.3); -} - -vec4 sample_from_global() -{ - return texture(uSampler[vIndex], vTex + 0.1); -} - -void main() -{ - FragColor = vec4(0.0); - FragColor += texture(sampler2D(uTextures[2], uSamplers[1]), vTex); - FragColor += texture(uSampler[vIndex], vTex); - FragColor += sample_from_global(); - FragColor += sample_from_argument(uSampler); - FragColor += sample_single_from_argument(uSampler[3]); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/sampler-ms.frag b/third_party/spirv-cross/shaders-msl/frag/sampler-ms.frag deleted file mode 100644 index 6593928271..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/sampler-ms.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(binding = 0) uniform mediump sampler2DMS uSampler; -layout(location = 0) out vec4 FragColor; - -void main() -{ - ivec2 coord = ivec2(gl_FragCoord.xy); - FragColor = - texelFetch(uSampler, coord, 0) + - texelFetch(uSampler, coord, 1) + - texelFetch(uSampler, coord, 2) + - texelFetch(uSampler, coord, 3); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/sampler.frag b/third_party/spirv-cross/shaders-msl/frag/sampler.frag deleted file mode 100644 index e38f76886a..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/sampler.frag +++ /dev/null @@ -1,18 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) in vec4 vColor; -layout(location = 1) in vec2 vTex; -layout(binding = 0) uniform sampler2D uTex; -layout(location = 0) out vec4 FragColor; - -vec4 sample_texture(sampler2D tex, vec2 uv) -{ - return texture(tex, uv); -} - -void main() -{ - FragColor = vColor * sample_texture(uTex, vTex); -} - diff --git a/third_party/spirv-cross/shaders-msl/frag/scalar-refract-reflect.frag b/third_party/spirv-cross/shaders-msl/frag/scalar-refract-reflect.frag deleted file mode 100644 index 486ed90bd5..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/scalar-refract-reflect.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 -layout(location = 0) out float FragColor; -layout(location = 0) in vec3 vRefract; - -void main() -{ - FragColor = refract(vRefract.x, vRefract.y, vRefract.z); - FragColor += reflect(vRefract.x, vRefract.y); - FragColor += refract(vRefract.xy, vRefract.yz, vRefract.z).y; - FragColor += reflect(vRefract.xy, vRefract.zy).y; -} diff --git a/third_party/spirv-cross/shaders-msl/frag/separate-image-sampler-argument.frag b/third_party/spirv-cross/shaders-msl/frag/separate-image-sampler-argument.frag deleted file mode 100644 index 0475b019d2..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/separate-image-sampler-argument.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 310 es -precision mediump float; - -layout(set = 0, binding = 0) uniform mediump sampler uSampler; -layout(set = 0, binding = 1) uniform mediump texture2D uDepth; -layout(location = 0) out vec4 FragColor; - -vec4 samp(texture2D t, mediump sampler s) -{ - return texture(sampler2D(t, s), vec2(0.5)); -} - -void main() -{ - FragColor = samp(uDepth, uSampler); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/shader-arithmetic-8bit.frag b/third_party/spirv-cross/shaders-msl/frag/shader-arithmetic-8bit.frag deleted file mode 100644 index 9416f5ba21..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/shader-arithmetic-8bit.frag +++ /dev/null @@ -1,88 +0,0 @@ -#version 450 -#extension GL_EXT_shader_explicit_arithmetic_types_int8 : require -#extension GL_EXT_shader_explicit_arithmetic_types_int16 : require - -layout(location = 0) flat in ivec4 vColor; -layout(location = 0) out ivec4 FragColorInt; -layout(location = 1) out uvec4 FragColorUint; - -layout(push_constant, std140) uniform Push -{ - int8_t i8; - uint8_t u8; -} registers; - -layout(binding = 1, std140) uniform UBO -{ - int8_t i8; - uint8_t u8; -} ubo; - -layout(binding = 2, std430) buffer SSBO -{ - int8_t i8[16]; - uint8_t u8[16]; -} ssbo; - -void packing_int8() -{ - int16_t i16 = 10s; - int i32 = 20; - - i8vec2 i8_2 = unpack8(i16); - i8vec4 i8_4 = unpack8(i32); - i16 = pack16(i8_2); - i32 = pack32(i8_4); - ssbo.i8[0] = i8_4.x; - ssbo.i8[1] = i8_4.y; - ssbo.i8[2] = i8_4.z; - ssbo.i8[3] = i8_4.w; -} - -void packing_uint8() -{ - uint16_t u16 = 10us; - uint u32 = 20u; - - u8vec2 u8_2 = unpack8(u16); - u8vec4 u8_4 = unpack8(u32); - u16 = pack16(u8_2); - u32 = pack32(u8_4); - - ssbo.u8[0] = u8_4.x; - ssbo.u8[1] = u8_4.y; - ssbo.u8[2] = u8_4.z; - ssbo.u8[3] = u8_4.w; -} - -void compute_int8() -{ - i8vec4 tmp = i8vec4(vColor); - tmp += registers.i8; - tmp += int8_t(-40); - tmp += i8vec4(-50); - tmp += i8vec4(10, 20, 30, 40); - tmp += ssbo.i8[4]; - tmp += ubo.i8; - FragColorInt = ivec4(tmp); -} - -void compute_uint8() -{ - u8vec4 tmp = u8vec4(vColor); - tmp += registers.u8; - tmp += uint8_t(-40); - tmp += u8vec4(-50); - tmp += u8vec4(10, 20, 30, 40); - tmp += ssbo.u8[4]; - tmp += ubo.u8; - FragColorUint = uvec4(tmp); -} - -void main() -{ - packing_int8(); - packing_uint8(); - compute_int8(); - compute_uint8(); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/spec-constant-block-size.frag b/third_party/spirv-cross/shaders-msl/frag/spec-constant-block-size.frag deleted file mode 100644 index 8d2b1f326f..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/spec-constant-block-size.frag +++ /dev/null @@ -1,17 +0,0 @@ -#version 310 es -precision mediump float; - -layout(constant_id = 10) const int Value = 2; -layout(binding = 0) uniform SpecConstArray -{ - vec4 samples[Value]; -}; - -layout(location = 0) flat in int Index; -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = samples[Index]; -} - diff --git a/third_party/spirv-cross/shaders-msl/frag/spec-constant-ternary.frag b/third_party/spirv-cross/shaders-msl/frag/spec-constant-ternary.frag deleted file mode 100644 index 78dccbf044..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/spec-constant-ternary.frag +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 -layout(location = 0) out float FragColor; -layout(constant_id = 0) const uint s = 10u; -const uint f = s > 20u ? 30u : 50u; - -void main() -{ - FragColor = float(f); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/stencil-export.msl21.frag b/third_party/spirv-cross/shaders-msl/frag/stencil-export.msl21.frag deleted file mode 100644 index 73b7e53383..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/stencil-export.msl21.frag +++ /dev/null @@ -1,17 +0,0 @@ -#version 450 -#extension GL_ARB_shader_stencil_export : require - -layout(location = 0) out vec4 MRT0; -layout(location = 1) out vec4 MRT1; -void update_stencil() -{ - gl_FragStencilRefARB += 10; -} - -void main() -{ - MRT0 = vec4(1.0); - MRT1 = vec4(1.0, 0.0, 1.0, 1.0); - gl_FragStencilRefARB = 100; - update_stencil(); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/subgroup-builtins.msl22.frag b/third_party/spirv-cross/shaders-msl/frag/subgroup-builtins.msl22.frag deleted file mode 100644 index 746438f00f..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/subgroup-builtins.msl22.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 -#extension GL_KHR_shader_subgroup_basic : require - -layout(location = 0) out uvec2 FragColor; - -void main() -{ - FragColor.x = gl_SubgroupSize; - FragColor.y = gl_SubgroupInvocationID; -} diff --git a/third_party/spirv-cross/shaders-msl/frag/subgroup-globals-extract.msl22.frag b/third_party/spirv-cross/shaders-msl/frag/subgroup-globals-extract.msl22.frag deleted file mode 100644 index f763163dc2..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/subgroup-globals-extract.msl22.frag +++ /dev/null @@ -1,30 +0,0 @@ -#version 450 -#extension GL_KHR_shader_subgroup_basic : require -#extension GL_KHR_shader_subgroup_ballot : require - -layout(location = 0) out uvec2 FragColor; - -uint sub1() { - return subgroupBallotFindLSB(uvec4(1,2,3,4)); -} - -uint sub2() { - return subgroupBallotFindMSB(uvec4(1,2,3,4)); -} - -uint sub3() { - return subgroupBallotBitCount(uvec4(1,2,3,4)); -} - -uint sub4() { - return subgroupBallotInclusiveBitCount(uvec4(1,2,3,4)); -} - -uint sub5() { - return subgroupBallotExclusiveBitCount(uvec4(1,2,3,4)); -} - -void main() -{ - FragColor.x = sub1() + sub2() + sub3() + sub4() + sub5(); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/switch-unsigned-case.frag b/third_party/spirv-cross/shaders-msl/frag/switch-unsigned-case.frag deleted file mode 100644 index d8aee43a6c..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/switch-unsigned-case.frag +++ /dev/null @@ -1,26 +0,0 @@ -#version 310 es -precision mediump float; - -#define ENUM_0 0u -#define ENUM_1 1u - -layout(set = 0, binding = 0) uniform Buff -{ - uint TestVal; -}; - -layout(location = 0) out vec4 fsout_Color; - -void main() -{ - fsout_Color = vec4(1.0); - switch (TestVal) - { - case ENUM_0: - fsout_Color = vec4(0.1); - break; - case ENUM_1: - fsout_Color = vec4(0.2); - break; - } -} diff --git a/third_party/spirv-cross/shaders-msl/frag/swizzle.frag b/third_party/spirv-cross/shaders-msl/frag/swizzle.frag deleted file mode 100644 index af22dd655d..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/swizzle.frag +++ /dev/null @@ -1,17 +0,0 @@ -#version 310 es -precision mediump float; - -layout(binding = 0) uniform sampler2D samp; -layout(location = 0) out vec4 FragColor; -layout(location = 1) in vec3 vNormal; -layout(location = 2) in vec2 vUV; - -void main() -{ - FragColor = vec4(texture(samp, vUV).xyz, 1.0); - FragColor = vec4(texture(samp, vUV).xz, 1.0, 4.0); - FragColor = vec4(texture(samp, vUV).xx, texture(samp, vUV + vec2(0.1)).yy); - FragColor = vec4(vNormal, 1.0); - FragColor = vec4(vNormal + 1.8, 1.0); - FragColor = vec4(vUV, vUV + 1.8); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/texel-fetch-offset.1d-as-2d.frag b/third_party/spirv-cross/shaders-msl/frag/texel-fetch-offset.1d-as-2d.frag deleted file mode 100644 index 8e15e36e35..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/texel-fetch-offset.1d-as-2d.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 -layout(location = 0) out vec4 FragColor; -layout(binding = 0) uniform sampler2D uTexture; -layout(binding = 1) uniform sampler1D uTexture2; - -void main() -{ - FragColor = texelFetchOffset(uTexture, ivec2(gl_FragCoord.xy), 0, ivec2(1, 1)); - FragColor += texelFetchOffset(uTexture2, int(gl_FragCoord.x), 0, int(-1)); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/texel-fetch-offset.frag b/third_party/spirv-cross/shaders-msl/frag/texel-fetch-offset.frag deleted file mode 100644 index e98748b8bc..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/texel-fetch-offset.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 310 es -precision mediump float; -layout(location = 0) out vec4 FragColor; -layout(binding = 0) uniform sampler2D uTexture; - -void main() -{ - FragColor = texelFetchOffset(uTexture, ivec2(gl_FragCoord.xy), 0, ivec2(1, 1)); - FragColor += texelFetchOffset(uTexture, ivec2(gl_FragCoord.xy), 0, ivec2(-1, 1)); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/texture-cube-array.frag b/third_party/spirv-cross/shaders-msl/frag/texture-cube-array.frag deleted file mode 100644 index 91a55f933b..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/texture-cube-array.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 - -layout(set = 0, binding = 0) uniform samplerCube cubeSampler; -layout(set = 0, binding = 1) uniform samplerCubeArray cubeArraySampler; -layout(set = 0, binding = 2) uniform sampler2DArray texArraySampler; - -layout(location = 0) in vec4 vUV; -layout(location = 0) out vec4 FragColor; - -void main() -{ - vec4 a = texture(cubeSampler, vUV.xyz); - vec4 b = texture(cubeArraySampler, vUV); - vec4 c = texture(texArraySampler, vUV.xyz); - FragColor = a + b + c; -} diff --git a/third_party/spirv-cross/shaders-msl/frag/texture-cube-array.ios.emulate-cube-array.frag b/third_party/spirv-cross/shaders-msl/frag/texture-cube-array.ios.emulate-cube-array.frag deleted file mode 100644 index 91a55f933b..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/texture-cube-array.ios.emulate-cube-array.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 - -layout(set = 0, binding = 0) uniform samplerCube cubeSampler; -layout(set = 0, binding = 1) uniform samplerCubeArray cubeArraySampler; -layout(set = 0, binding = 2) uniform sampler2DArray texArraySampler; - -layout(location = 0) in vec4 vUV; -layout(location = 0) out vec4 FragColor; - -void main() -{ - vec4 a = texture(cubeSampler, vUV.xyz); - vec4 b = texture(cubeArraySampler, vUV); - vec4 c = texture(texArraySampler, vUV.xyz); - FragColor = a + b + c; -} diff --git a/third_party/spirv-cross/shaders-msl/frag/texture-multisample-array.msl21.frag b/third_party/spirv-cross/shaders-msl/frag/texture-multisample-array.msl21.frag deleted file mode 100644 index ede809bd7f..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/texture-multisample-array.msl21.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 -layout(location = 0) out vec4 FragColor; -layout(binding = 0) uniform sampler2DMSArray uTexture; -layout(location = 0) flat in ivec3 vCoord; -layout(location = 1) flat in int vSample; - -void main() -{ - FragColor = texelFetch(uTexture, vCoord, vSample); -} diff --git a/third_party/spirv-cross/shaders-msl/frag/texture-proj-shadow.frag b/third_party/spirv-cross/shaders-msl/frag/texture-proj-shadow.frag deleted file mode 100644 index 547532e648..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/texture-proj-shadow.frag +++ /dev/null @@ -1,19 +0,0 @@ -#version 450 - -layout(binding = 1) uniform sampler2DShadow uShadow2D; -layout(binding = 2) uniform sampler1D uSampler1D; -layout(binding = 3) uniform sampler2D uSampler2D; -layout(binding = 4) uniform sampler3D uSampler3D; - -layout(location = 0) out float FragColor; -layout(location = 0) in vec3 vClip3; -layout(location = 1) in vec4 vClip4; -layout(location = 2) in vec2 vClip2; - -void main() -{ - FragColor = textureProj(uShadow2D, vClip4); - FragColor = textureProj(uSampler1D, vClip2).x; - FragColor = textureProj(uSampler2D, vClip3).x; - FragColor = textureProj(uSampler3D, vClip4).x; -} diff --git a/third_party/spirv-cross/shaders-msl/frag/ubo_layout.frag b/third_party/spirv-cross/shaders-msl/frag/ubo_layout.frag deleted file mode 100644 index 80f9f16d3d..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/ubo_layout.frag +++ /dev/null @@ -1,24 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) out vec4 FragColor; - -struct Str -{ - mat4 foo; -}; - -layout(binding = 0, std140) uniform UBO1 -{ - layout(row_major) Str foo; -} ubo1; - -layout(binding = 1, std140) uniform UBO2 -{ - layout(column_major) Str foo; -} ubo0; - -void main() -{ - FragColor = ubo1.foo.foo[0] + ubo0.foo.foo[0]; -} diff --git a/third_party/spirv-cross/shaders-msl/frag/unary-enclose.frag b/third_party/spirv-cross/shaders-msl/frag/unary-enclose.frag deleted file mode 100644 index ea502e1de8..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/unary-enclose.frag +++ /dev/null @@ -1,15 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 vIn; -layout(location = 1) flat in ivec4 vIn1; - -void main() -{ - FragColor = +(-(-vIn)); - ivec4 a = ~(~vIn1); - - bool b = false; - b = !!b; -} diff --git a/third_party/spirv-cross/shaders-msl/frag/vecsize-mismatch.shader-inputs.frag b/third_party/spirv-cross/shaders-msl/frag/vecsize-mismatch.shader-inputs.frag deleted file mode 100644 index 900c5b006c..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/vecsize-mismatch.shader-inputs.frag +++ /dev/null @@ -1,17 +0,0 @@ -#version 450 - -#extension GL_AMD_gpu_shader_int16 : require - -layout(location = 0) flat in int16_t a; -layout(location = 1) flat in ivec2 b; -layout(location = 2) flat in uint16_t c[2]; -layout(location = 4) flat in uvec4 e[2]; -layout(location = 6) in vec2 d; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(float(int(a)), float(b.x), vec2(uint(c[1]), float(e[0].w)) + d); -} - diff --git a/third_party/spirv-cross/shaders-msl/frag/write-depth-in-function.frag b/third_party/spirv-cross/shaders-msl/frag/write-depth-in-function.frag deleted file mode 100644 index 1af7f5d9bd..0000000000 --- a/third_party/spirv-cross/shaders-msl/frag/write-depth-in-function.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 -layout(location = 0) in float v; -layout(location = 0) out float FragColor; - -void set_output_depth() -{ - gl_FragDepth = 0.2; -} - -void main() -{ - FragColor = 1.0; - set_output_depth(); -} diff --git a/third_party/spirv-cross/shaders-msl/intel/shader-integer-functions2.asm.comp b/third_party/spirv-cross/shaders-msl/intel/shader-integer-functions2.asm.comp deleted file mode 100644 index 9189794ef7..0000000000 --- a/third_party/spirv-cross/shaders-msl/intel/shader-integer-functions2.asm.comp +++ /dev/null @@ -1,137 +0,0 @@ -; SPIR-V -; Version: 1.4 -; Generator: Khronos SPIR-V Tools Assembler; 0 -; Bound: 97 -; Schema: 0 - OpCapability Shader - OpCapability IntegerFunctions2INTEL - OpExtension "SPV_INTEL_shader_integer_functions2" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpName %main "main" - OpName %foo "foo" - OpMemberName %foo 0 "a" - OpMemberName %foo 1 "b" - OpMemberName %foo 2 "c" - OpMemberName %foo 3 "d" - OpName %_ "" - OpMemberDecorate %foo 0 Offset 0 - OpMemberDecorate %foo 1 Offset 4 - OpMemberDecorate %foo 2 Offset 8 - OpMemberDecorate %foo 3 Offset 12 - OpDecorate %foo Block - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - %void = OpTypeVoid - %6 = OpTypeFunction %void - %uint = OpTypeInt 32 0 - %int = OpTypeInt 32 1 - %foo = OpTypeStruct %uint %uint %int %int -%_ptr_StorageBuffer_foo = OpTypePointer StorageBuffer %foo - %_ = OpVariable %_ptr_StorageBuffer_foo StorageBuffer - %int_0 = OpConstant %int 0 -%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint - %int_1 = OpConstant %int 1 - %int_2 = OpConstant %int 2 -%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int - %int_3 = OpConstant %int 3 - %main = OpFunction %void None %6 - %15 = OpLabel - %16 = OpAccessChain %_ptr_StorageBuffer_uint %_ %int_0 - %17 = OpLoad %uint %16 - %18 = OpUCountLeadingZerosINTEL %uint %17 - %19 = OpAccessChain %_ptr_StorageBuffer_uint %_ %int_0 - OpStore %19 %18 - %20 = OpAccessChain %_ptr_StorageBuffer_uint %_ %int_0 - %21 = OpLoad %uint %20 - %22 = OpUCountTrailingZerosINTEL %uint %21 - %23 = OpAccessChain %_ptr_StorageBuffer_uint %_ %int_0 - OpStore %23 %22 - %24 = OpAccessChain %_ptr_StorageBuffer_int %_ %int_2 - %25 = OpLoad %int %24 - %26 = OpAccessChain %_ptr_StorageBuffer_int %_ %int_3 - %27 = OpLoad %int %26 - %28 = OpAbsISubINTEL %uint %25 %27 - %29 = OpAccessChain %_ptr_StorageBuffer_uint %_ %int_0 - OpStore %29 %28 - %30 = OpAccessChain %_ptr_StorageBuffer_uint %_ %int_0 - %31 = OpLoad %uint %30 - %32 = OpAccessChain %_ptr_StorageBuffer_uint %_ %int_1 - %33 = OpLoad %uint %32 - %34 = OpAbsUSubINTEL %uint %31 %33 - %35 = OpAccessChain %_ptr_StorageBuffer_uint %_ %int_0 - OpStore %35 %34 - %37 = OpAccessChain %_ptr_StorageBuffer_int %_ %int_2 - %38 = OpLoad %int %37 - %39 = OpAccessChain %_ptr_StorageBuffer_int %_ %int_3 - %40 = OpLoad %int %39 - %41 = OpIAddSatINTEL %int %38 %40 - %42 = OpAccessChain %_ptr_StorageBuffer_int %_ %int_2 - OpStore %42 %41 - %43 = OpAccessChain %_ptr_StorageBuffer_uint %_ %int_0 - %44 = OpLoad %uint %43 - %45 = OpAccessChain %_ptr_StorageBuffer_uint %_ %int_1 - %46 = OpLoad %uint %45 - %47 = OpUAddSatINTEL %uint %44 %46 - %48 = OpAccessChain %_ptr_StorageBuffer_uint %_ %int_0 - OpStore %48 %47 - %49 = OpAccessChain %_ptr_StorageBuffer_int %_ %int_2 - %50 = OpLoad %int %49 - %51 = OpAccessChain %_ptr_StorageBuffer_int %_ %int_3 - %52 = OpLoad %int %51 - %53 = OpIAverageINTEL %int %50 %52 - %54 = OpAccessChain %_ptr_StorageBuffer_int %_ %int_2 - OpStore %54 %53 - %55 = OpAccessChain %_ptr_StorageBuffer_uint %_ %int_0 - %56 = OpLoad %uint %55 - %57 = OpAccessChain %_ptr_StorageBuffer_uint %_ %int_1 - %58 = OpLoad %uint %57 - %59 = OpUAverageINTEL %uint %56 %58 - %60 = OpAccessChain %_ptr_StorageBuffer_uint %_ %int_0 - OpStore %60 %59 - %61 = OpAccessChain %_ptr_StorageBuffer_int %_ %int_2 - %62 = OpLoad %int %61 - %63 = OpAccessChain %_ptr_StorageBuffer_int %_ %int_3 - %64 = OpLoad %int %63 - %65 = OpIAverageRoundedINTEL %int %62 %64 - %66 = OpAccessChain %_ptr_StorageBuffer_int %_ %int_2 - OpStore %66 %65 - %67 = OpAccessChain %_ptr_StorageBuffer_uint %_ %int_0 - %68 = OpLoad %uint %67 - %69 = OpAccessChain %_ptr_StorageBuffer_uint %_ %int_1 - %70 = OpLoad %uint %69 - %71 = OpUAverageRoundedINTEL %uint %68 %70 - %72 = OpAccessChain %_ptr_StorageBuffer_uint %_ %int_0 - OpStore %72 %71 - %73 = OpAccessChain %_ptr_StorageBuffer_int %_ %int_2 - %74 = OpLoad %int %73 - %75 = OpAccessChain %_ptr_StorageBuffer_int %_ %int_3 - %76 = OpLoad %int %75 - %77 = OpISubSatINTEL %int %74 %76 - %78 = OpAccessChain %_ptr_StorageBuffer_int %_ %int_2 - OpStore %78 %77 - %79 = OpAccessChain %_ptr_StorageBuffer_uint %_ %int_0 - %80 = OpLoad %uint %79 - %81 = OpAccessChain %_ptr_StorageBuffer_uint %_ %int_1 - %82 = OpLoad %uint %81 - %83 = OpUSubSatINTEL %uint %80 %82 - %84 = OpAccessChain %_ptr_StorageBuffer_uint %_ %int_0 - OpStore %84 %83 - %85 = OpAccessChain %_ptr_StorageBuffer_int %_ %int_2 - %86 = OpLoad %int %85 - %87 = OpAccessChain %_ptr_StorageBuffer_int %_ %int_3 - %88 = OpLoad %int %87 - %89 = OpIMul32x16INTEL %int %86 %88 - %90 = OpAccessChain %_ptr_StorageBuffer_int %_ %int_2 - OpStore %90 %89 - %91 = OpAccessChain %_ptr_StorageBuffer_uint %_ %int_0 - %92 = OpLoad %uint %91 - %93 = OpAccessChain %_ptr_StorageBuffer_uint %_ %int_1 - %94 = OpLoad %uint %93 - %95 = OpUMul32x16INTEL %uint %92 %94 - %96 = OpAccessChain %_ptr_StorageBuffer_uint %_ %int_0 - OpStore %96 %95 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/legacy/vert/transpose.legacy.vert b/third_party/spirv-cross/shaders-msl/legacy/vert/transpose.legacy.vert deleted file mode 100644 index 84f618262a..0000000000 --- a/third_party/spirv-cross/shaders-msl/legacy/vert/transpose.legacy.vert +++ /dev/null @@ -1,20 +0,0 @@ -#version 310 es - -uniform Buffer -{ - layout(row_major) mat4 MVPRowMajor; - layout(column_major) mat4 MVPColMajor; - mat4 M; -}; - -layout(location = 0) in vec4 Position; - -void main() -{ - vec4 c0 = M * (MVPRowMajor * Position); - vec4 c1 = M * (MVPColMajor * Position); - vec4 c2 = M * (Position * MVPRowMajor); - vec4 c3 = M * (Position * MVPColMajor); - gl_Position = c0 + c1 + c2 + c3; -} - diff --git a/third_party/spirv-cross/shaders-msl/masking/copy-arrays.mask-location-0.msl2.multi-patch.tesc b/third_party/spirv-cross/shaders-msl/masking/copy-arrays.mask-location-0.msl2.multi-patch.tesc deleted file mode 100644 index e69a7a1697..0000000000 --- a/third_party/spirv-cross/shaders-msl/masking/copy-arrays.mask-location-0.msl2.multi-patch.tesc +++ /dev/null @@ -1,17 +0,0 @@ -#version 450 - -layout(vertices = 4) out; -layout(location = 0) out vec4 Foo[][2]; -layout(location = 0) in vec4 iFoo[][2]; -layout(location = 2) patch out vec4 pFoo[2]; -layout(location = 2) in vec4 ipFoo[]; - -void main() -{ - gl_out[gl_InvocationID].gl_Position = vec4(1.0); - Foo[gl_InvocationID] = iFoo[gl_InvocationID]; - if (gl_InvocationID == 0) - { - pFoo = vec4[](ipFoo[0], ipFoo[1]); - } -} diff --git a/third_party/spirv-cross/shaders-msl/masking/copy-arrays.mask-location-0.msl2.tesc b/third_party/spirv-cross/shaders-msl/masking/copy-arrays.mask-location-0.msl2.tesc deleted file mode 100644 index e69a7a1697..0000000000 --- a/third_party/spirv-cross/shaders-msl/masking/copy-arrays.mask-location-0.msl2.tesc +++ /dev/null @@ -1,17 +0,0 @@ -#version 450 - -layout(vertices = 4) out; -layout(location = 0) out vec4 Foo[][2]; -layout(location = 0) in vec4 iFoo[][2]; -layout(location = 2) patch out vec4 pFoo[2]; -layout(location = 2) in vec4 ipFoo[]; - -void main() -{ - gl_out[gl_InvocationID].gl_Position = vec4(1.0); - Foo[gl_InvocationID] = iFoo[gl_InvocationID]; - if (gl_InvocationID == 0) - { - pFoo = vec4[](ipFoo[0], ipFoo[1]); - } -} diff --git a/third_party/spirv-cross/shaders-msl/masking/copy-arrays.mask-location-1.msl2.multi-patch.tesc b/third_party/spirv-cross/shaders-msl/masking/copy-arrays.mask-location-1.msl2.multi-patch.tesc deleted file mode 100644 index e69a7a1697..0000000000 --- a/third_party/spirv-cross/shaders-msl/masking/copy-arrays.mask-location-1.msl2.multi-patch.tesc +++ /dev/null @@ -1,17 +0,0 @@ -#version 450 - -layout(vertices = 4) out; -layout(location = 0) out vec4 Foo[][2]; -layout(location = 0) in vec4 iFoo[][2]; -layout(location = 2) patch out vec4 pFoo[2]; -layout(location = 2) in vec4 ipFoo[]; - -void main() -{ - gl_out[gl_InvocationID].gl_Position = vec4(1.0); - Foo[gl_InvocationID] = iFoo[gl_InvocationID]; - if (gl_InvocationID == 0) - { - pFoo = vec4[](ipFoo[0], ipFoo[1]); - } -} diff --git a/third_party/spirv-cross/shaders-msl/masking/copy-arrays.mask-location-1.msl2.tesc b/third_party/spirv-cross/shaders-msl/masking/copy-arrays.mask-location-1.msl2.tesc deleted file mode 100644 index e69a7a1697..0000000000 --- a/third_party/spirv-cross/shaders-msl/masking/copy-arrays.mask-location-1.msl2.tesc +++ /dev/null @@ -1,17 +0,0 @@ -#version 450 - -layout(vertices = 4) out; -layout(location = 0) out vec4 Foo[][2]; -layout(location = 0) in vec4 iFoo[][2]; -layout(location = 2) patch out vec4 pFoo[2]; -layout(location = 2) in vec4 ipFoo[]; - -void main() -{ - gl_out[gl_InvocationID].gl_Position = vec4(1.0); - Foo[gl_InvocationID] = iFoo[gl_InvocationID]; - if (gl_InvocationID == 0) - { - pFoo = vec4[](ipFoo[0], ipFoo[1]); - } -} diff --git a/third_party/spirv-cross/shaders-msl/masking/write-outputs-block.mask-location-0.for-tess.vert b/third_party/spirv-cross/shaders-msl/masking/write-outputs-block.mask-location-0.for-tess.vert deleted file mode 100644 index 2d8fdf19a2..0000000000 --- a/third_party/spirv-cross/shaders-msl/masking/write-outputs-block.mask-location-0.for-tess.vert +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 - -layout(location = 0) out V -{ - vec4 a; - vec4 b; - vec4 c; - vec4 d; -}; - -void main() -{ - gl_Position = vec4(1.0); - a = vec4(2.0); - b = vec4(3.0); -} diff --git a/third_party/spirv-cross/shaders-msl/masking/write-outputs-block.mask-location-0.msl2.tesc b/third_party/spirv-cross/shaders-msl/masking/write-outputs-block.mask-location-0.msl2.tesc deleted file mode 100644 index 955f2c4187..0000000000 --- a/third_party/spirv-cross/shaders-msl/masking/write-outputs-block.mask-location-0.msl2.tesc +++ /dev/null @@ -1,28 +0,0 @@ -#version 450 - -layout(vertices = 4) out; -patch out P -{ - layout(location = 0) float a; - layout(location = 2) float b; -}; - -out C -{ - layout(location = 1) float a; - layout(location = 3) float b; -} c[]; - -void write_in_function() -{ - a = 1.0; - b = 2.0; - c[gl_InvocationID].a = 3.0; - c[gl_InvocationID].b = 4.0; - gl_out[gl_InvocationID].gl_Position = vec4(1.0); -} - -void main() -{ - write_in_function(); -} diff --git a/third_party/spirv-cross/shaders-msl/masking/write-outputs-block.mask-location-0.multi-patch.msl2.tesc b/third_party/spirv-cross/shaders-msl/masking/write-outputs-block.mask-location-0.multi-patch.msl2.tesc deleted file mode 100644 index 955f2c4187..0000000000 --- a/third_party/spirv-cross/shaders-msl/masking/write-outputs-block.mask-location-0.multi-patch.msl2.tesc +++ /dev/null @@ -1,28 +0,0 @@ -#version 450 - -layout(vertices = 4) out; -patch out P -{ - layout(location = 0) float a; - layout(location = 2) float b; -}; - -out C -{ - layout(location = 1) float a; - layout(location = 3) float b; -} c[]; - -void write_in_function() -{ - a = 1.0; - b = 2.0; - c[gl_InvocationID].a = 3.0; - c[gl_InvocationID].b = 4.0; - gl_out[gl_InvocationID].gl_Position = vec4(1.0); -} - -void main() -{ - write_in_function(); -} diff --git a/third_party/spirv-cross/shaders-msl/masking/write-outputs-block.mask-location-0.vert b/third_party/spirv-cross/shaders-msl/masking/write-outputs-block.mask-location-0.vert deleted file mode 100644 index 2d8fdf19a2..0000000000 --- a/third_party/spirv-cross/shaders-msl/masking/write-outputs-block.mask-location-0.vert +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 - -layout(location = 0) out V -{ - vec4 a; - vec4 b; - vec4 c; - vec4 d; -}; - -void main() -{ - gl_Position = vec4(1.0); - a = vec4(2.0); - b = vec4(3.0); -} diff --git a/third_party/spirv-cross/shaders-msl/masking/write-outputs-block.mask-location-1.for-tess.vert b/third_party/spirv-cross/shaders-msl/masking/write-outputs-block.mask-location-1.for-tess.vert deleted file mode 100644 index 2d8fdf19a2..0000000000 --- a/third_party/spirv-cross/shaders-msl/masking/write-outputs-block.mask-location-1.for-tess.vert +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 - -layout(location = 0) out V -{ - vec4 a; - vec4 b; - vec4 c; - vec4 d; -}; - -void main() -{ - gl_Position = vec4(1.0); - a = vec4(2.0); - b = vec4(3.0); -} diff --git a/third_party/spirv-cross/shaders-msl/masking/write-outputs-block.mask-location-1.msl2.tesc b/third_party/spirv-cross/shaders-msl/masking/write-outputs-block.mask-location-1.msl2.tesc deleted file mode 100644 index 955f2c4187..0000000000 --- a/third_party/spirv-cross/shaders-msl/masking/write-outputs-block.mask-location-1.msl2.tesc +++ /dev/null @@ -1,28 +0,0 @@ -#version 450 - -layout(vertices = 4) out; -patch out P -{ - layout(location = 0) float a; - layout(location = 2) float b; -}; - -out C -{ - layout(location = 1) float a; - layout(location = 3) float b; -} c[]; - -void write_in_function() -{ - a = 1.0; - b = 2.0; - c[gl_InvocationID].a = 3.0; - c[gl_InvocationID].b = 4.0; - gl_out[gl_InvocationID].gl_Position = vec4(1.0); -} - -void main() -{ - write_in_function(); -} diff --git a/third_party/spirv-cross/shaders-msl/masking/write-outputs-block.mask-location-1.multi-patch.msl2.tesc b/third_party/spirv-cross/shaders-msl/masking/write-outputs-block.mask-location-1.multi-patch.msl2.tesc deleted file mode 100644 index 955f2c4187..0000000000 --- a/third_party/spirv-cross/shaders-msl/masking/write-outputs-block.mask-location-1.multi-patch.msl2.tesc +++ /dev/null @@ -1,28 +0,0 @@ -#version 450 - -layout(vertices = 4) out; -patch out P -{ - layout(location = 0) float a; - layout(location = 2) float b; -}; - -out C -{ - layout(location = 1) float a; - layout(location = 3) float b; -} c[]; - -void write_in_function() -{ - a = 1.0; - b = 2.0; - c[gl_InvocationID].a = 3.0; - c[gl_InvocationID].b = 4.0; - gl_out[gl_InvocationID].gl_Position = vec4(1.0); -} - -void main() -{ - write_in_function(); -} diff --git a/third_party/spirv-cross/shaders-msl/masking/write-outputs-block.mask-location-1.vert b/third_party/spirv-cross/shaders-msl/masking/write-outputs-block.mask-location-1.vert deleted file mode 100644 index 2d8fdf19a2..0000000000 --- a/third_party/spirv-cross/shaders-msl/masking/write-outputs-block.mask-location-1.vert +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 - -layout(location = 0) out V -{ - vec4 a; - vec4 b; - vec4 c; - vec4 d; -}; - -void main() -{ - gl_Position = vec4(1.0); - a = vec4(2.0); - b = vec4(3.0); -} diff --git a/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-clip-distance.vert b/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-clip-distance.vert deleted file mode 100644 index 35b462fdf8..0000000000 --- a/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-clip-distance.vert +++ /dev/null @@ -1,21 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 v0; -layout(location = 1) out vec4 v1; - -out float gl_ClipDistance[2]; - -void write_in_func() -{ - v0 = vec4(1.0); - v1 = vec4(2.0); - gl_Position = vec4(3.0); - gl_PointSize = 4.0; - gl_ClipDistance[0] = 1.0; - gl_ClipDistance[1] = 0.5; -} - -void main() -{ - write_in_func(); -} diff --git a/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-0.for-tess.vert b/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-0.for-tess.vert deleted file mode 100644 index 35b462fdf8..0000000000 --- a/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-0.for-tess.vert +++ /dev/null @@ -1,21 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 v0; -layout(location = 1) out vec4 v1; - -out float gl_ClipDistance[2]; - -void write_in_func() -{ - v0 = vec4(1.0); - v1 = vec4(2.0); - gl_Position = vec4(3.0); - gl_PointSize = 4.0; - gl_ClipDistance[0] = 1.0; - gl_ClipDistance[1] = 0.5; -} - -void main() -{ - write_in_func(); -} diff --git a/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-0.msl2.tesc b/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-0.msl2.tesc deleted file mode 100644 index c291fef03a..0000000000 --- a/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-0.msl2.tesc +++ /dev/null @@ -1,26 +0,0 @@ -#version 450 - -layout(vertices = 4) out; - -layout(location = 0) out vec4 v0[]; -layout(location = 1) patch out vec4 v1; - -void write_in_func() -{ - v0[gl_InvocationID] = vec4(1.0); - v0[gl_InvocationID][0] = 2.0; - if (gl_InvocationID == 0) - { - v1 = vec4(2.0); - v1[3] = 4.0; - } - gl_out[gl_InvocationID].gl_Position = vec4(3.0); - gl_out[gl_InvocationID].gl_PointSize = 4.0; - gl_out[gl_InvocationID].gl_Position[2] = 5.0; - gl_out[gl_InvocationID].gl_PointSize = 4.0; -} - -void main() -{ - write_in_func(); -} diff --git a/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-0.multi-patch.tesc b/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-0.multi-patch.tesc deleted file mode 100644 index 9f3ca9fcff..0000000000 --- a/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-0.multi-patch.tesc +++ /dev/null @@ -1,29 +0,0 @@ -#version 450 - -layout(vertices = 4) out; - -layout(location = 0) out vec4 v0[]; -layout(location = 1) patch out vec4 v1[2]; -layout(location = 3) patch out vec4 v3; - -void write_in_func() -{ - v0[gl_InvocationID] = vec4(1.0); - v0[gl_InvocationID].z = 3.0; - if (gl_InvocationID == 0) - { - v1[0] = vec4(2.0); - v1[0].x = 3.0; - v1[1] = vec4(2.0); - v1[1].x = 5.0; - } - v3 = vec4(5.0); - gl_out[gl_InvocationID].gl_Position = vec4(10.0); - gl_out[gl_InvocationID].gl_Position.z = 20.0; - gl_out[gl_InvocationID].gl_PointSize = 40.0; -} - -void main() -{ - write_in_func(); -} diff --git a/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-0.tesc b/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-0.tesc deleted file mode 100644 index 9f3ca9fcff..0000000000 --- a/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-0.tesc +++ /dev/null @@ -1,29 +0,0 @@ -#version 450 - -layout(vertices = 4) out; - -layout(location = 0) out vec4 v0[]; -layout(location = 1) patch out vec4 v1[2]; -layout(location = 3) patch out vec4 v3; - -void write_in_func() -{ - v0[gl_InvocationID] = vec4(1.0); - v0[gl_InvocationID].z = 3.0; - if (gl_InvocationID == 0) - { - v1[0] = vec4(2.0); - v1[0].x = 3.0; - v1[1] = vec4(2.0); - v1[1].x = 5.0; - } - v3 = vec4(5.0); - gl_out[gl_InvocationID].gl_Position = vec4(10.0); - gl_out[gl_InvocationID].gl_Position.z = 20.0; - gl_out[gl_InvocationID].gl_PointSize = 40.0; -} - -void main() -{ - write_in_func(); -} diff --git a/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-0.vert b/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-0.vert deleted file mode 100644 index 35b462fdf8..0000000000 --- a/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-0.vert +++ /dev/null @@ -1,21 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 v0; -layout(location = 1) out vec4 v1; - -out float gl_ClipDistance[2]; - -void write_in_func() -{ - v0 = vec4(1.0); - v1 = vec4(2.0); - gl_Position = vec4(3.0); - gl_PointSize = 4.0; - gl_ClipDistance[0] = 1.0; - gl_ClipDistance[1] = 0.5; -} - -void main() -{ - write_in_func(); -} diff --git a/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-1.for-tess.vert b/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-1.for-tess.vert deleted file mode 100644 index 35b462fdf8..0000000000 --- a/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-1.for-tess.vert +++ /dev/null @@ -1,21 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 v0; -layout(location = 1) out vec4 v1; - -out float gl_ClipDistance[2]; - -void write_in_func() -{ - v0 = vec4(1.0); - v1 = vec4(2.0); - gl_Position = vec4(3.0); - gl_PointSize = 4.0; - gl_ClipDistance[0] = 1.0; - gl_ClipDistance[1] = 0.5; -} - -void main() -{ - write_in_func(); -} diff --git a/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-1.msl2.tesc b/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-1.msl2.tesc deleted file mode 100644 index c291fef03a..0000000000 --- a/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-1.msl2.tesc +++ /dev/null @@ -1,26 +0,0 @@ -#version 450 - -layout(vertices = 4) out; - -layout(location = 0) out vec4 v0[]; -layout(location = 1) patch out vec4 v1; - -void write_in_func() -{ - v0[gl_InvocationID] = vec4(1.0); - v0[gl_InvocationID][0] = 2.0; - if (gl_InvocationID == 0) - { - v1 = vec4(2.0); - v1[3] = 4.0; - } - gl_out[gl_InvocationID].gl_Position = vec4(3.0); - gl_out[gl_InvocationID].gl_PointSize = 4.0; - gl_out[gl_InvocationID].gl_Position[2] = 5.0; - gl_out[gl_InvocationID].gl_PointSize = 4.0; -} - -void main() -{ - write_in_func(); -} diff --git a/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-1.multi-patch.tesc b/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-1.multi-patch.tesc deleted file mode 100644 index 9f3ca9fcff..0000000000 --- a/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-1.multi-patch.tesc +++ /dev/null @@ -1,29 +0,0 @@ -#version 450 - -layout(vertices = 4) out; - -layout(location = 0) out vec4 v0[]; -layout(location = 1) patch out vec4 v1[2]; -layout(location = 3) patch out vec4 v3; - -void write_in_func() -{ - v0[gl_InvocationID] = vec4(1.0); - v0[gl_InvocationID].z = 3.0; - if (gl_InvocationID == 0) - { - v1[0] = vec4(2.0); - v1[0].x = 3.0; - v1[1] = vec4(2.0); - v1[1].x = 5.0; - } - v3 = vec4(5.0); - gl_out[gl_InvocationID].gl_Position = vec4(10.0); - gl_out[gl_InvocationID].gl_Position.z = 20.0; - gl_out[gl_InvocationID].gl_PointSize = 40.0; -} - -void main() -{ - write_in_func(); -} diff --git a/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-1.tesc b/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-1.tesc deleted file mode 100644 index 9f3ca9fcff..0000000000 --- a/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-1.tesc +++ /dev/null @@ -1,29 +0,0 @@ -#version 450 - -layout(vertices = 4) out; - -layout(location = 0) out vec4 v0[]; -layout(location = 1) patch out vec4 v1[2]; -layout(location = 3) patch out vec4 v3; - -void write_in_func() -{ - v0[gl_InvocationID] = vec4(1.0); - v0[gl_InvocationID].z = 3.0; - if (gl_InvocationID == 0) - { - v1[0] = vec4(2.0); - v1[0].x = 3.0; - v1[1] = vec4(2.0); - v1[1].x = 5.0; - } - v3 = vec4(5.0); - gl_out[gl_InvocationID].gl_Position = vec4(10.0); - gl_out[gl_InvocationID].gl_Position.z = 20.0; - gl_out[gl_InvocationID].gl_PointSize = 40.0; -} - -void main() -{ - write_in_func(); -} diff --git a/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-1.vert b/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-1.vert deleted file mode 100644 index 35b462fdf8..0000000000 --- a/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-location-1.vert +++ /dev/null @@ -1,21 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 v0; -layout(location = 1) out vec4 v1; - -out float gl_ClipDistance[2]; - -void write_in_func() -{ - v0 = vec4(1.0); - v1 = vec4(2.0); - gl_Position = vec4(3.0); - gl_PointSize = 4.0; - gl_ClipDistance[0] = 1.0; - gl_ClipDistance[1] = 0.5; -} - -void main() -{ - write_in_func(); -} diff --git a/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-point-size.for-tess.vert b/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-point-size.for-tess.vert deleted file mode 100644 index 35b462fdf8..0000000000 --- a/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-point-size.for-tess.vert +++ /dev/null @@ -1,21 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 v0; -layout(location = 1) out vec4 v1; - -out float gl_ClipDistance[2]; - -void write_in_func() -{ - v0 = vec4(1.0); - v1 = vec4(2.0); - gl_Position = vec4(3.0); - gl_PointSize = 4.0; - gl_ClipDistance[0] = 1.0; - gl_ClipDistance[1] = 0.5; -} - -void main() -{ - write_in_func(); -} diff --git a/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-point-size.multi-patch.tesc b/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-point-size.multi-patch.tesc deleted file mode 100644 index 9f3ca9fcff..0000000000 --- a/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-point-size.multi-patch.tesc +++ /dev/null @@ -1,29 +0,0 @@ -#version 450 - -layout(vertices = 4) out; - -layout(location = 0) out vec4 v0[]; -layout(location = 1) patch out vec4 v1[2]; -layout(location = 3) patch out vec4 v3; - -void write_in_func() -{ - v0[gl_InvocationID] = vec4(1.0); - v0[gl_InvocationID].z = 3.0; - if (gl_InvocationID == 0) - { - v1[0] = vec4(2.0); - v1[0].x = 3.0; - v1[1] = vec4(2.0); - v1[1].x = 5.0; - } - v3 = vec4(5.0); - gl_out[gl_InvocationID].gl_Position = vec4(10.0); - gl_out[gl_InvocationID].gl_Position.z = 20.0; - gl_out[gl_InvocationID].gl_PointSize = 40.0; -} - -void main() -{ - write_in_func(); -} diff --git a/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-point-size.tesc b/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-point-size.tesc deleted file mode 100644 index 9f3ca9fcff..0000000000 --- a/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-point-size.tesc +++ /dev/null @@ -1,29 +0,0 @@ -#version 450 - -layout(vertices = 4) out; - -layout(location = 0) out vec4 v0[]; -layout(location = 1) patch out vec4 v1[2]; -layout(location = 3) patch out vec4 v3; - -void write_in_func() -{ - v0[gl_InvocationID] = vec4(1.0); - v0[gl_InvocationID].z = 3.0; - if (gl_InvocationID == 0) - { - v1[0] = vec4(2.0); - v1[0].x = 3.0; - v1[1] = vec4(2.0); - v1[1].x = 5.0; - } - v3 = vec4(5.0); - gl_out[gl_InvocationID].gl_Position = vec4(10.0); - gl_out[gl_InvocationID].gl_Position.z = 20.0; - gl_out[gl_InvocationID].gl_PointSize = 40.0; -} - -void main() -{ - write_in_func(); -} diff --git a/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-point-size.vert b/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-point-size.vert deleted file mode 100644 index 35b462fdf8..0000000000 --- a/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-point-size.vert +++ /dev/null @@ -1,21 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 v0; -layout(location = 1) out vec4 v1; - -out float gl_ClipDistance[2]; - -void write_in_func() -{ - v0 = vec4(1.0); - v1 = vec4(2.0); - gl_Position = vec4(3.0); - gl_PointSize = 4.0; - gl_ClipDistance[0] = 1.0; - gl_ClipDistance[1] = 0.5; -} - -void main() -{ - write_in_func(); -} diff --git a/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-position.multi-patch.tesc b/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-position.multi-patch.tesc deleted file mode 100644 index 9f3ca9fcff..0000000000 --- a/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-position.multi-patch.tesc +++ /dev/null @@ -1,29 +0,0 @@ -#version 450 - -layout(vertices = 4) out; - -layout(location = 0) out vec4 v0[]; -layout(location = 1) patch out vec4 v1[2]; -layout(location = 3) patch out vec4 v3; - -void write_in_func() -{ - v0[gl_InvocationID] = vec4(1.0); - v0[gl_InvocationID].z = 3.0; - if (gl_InvocationID == 0) - { - v1[0] = vec4(2.0); - v1[0].x = 3.0; - v1[1] = vec4(2.0); - v1[1].x = 5.0; - } - v3 = vec4(5.0); - gl_out[gl_InvocationID].gl_Position = vec4(10.0); - gl_out[gl_InvocationID].gl_Position.z = 20.0; - gl_out[gl_InvocationID].gl_PointSize = 40.0; -} - -void main() -{ - write_in_func(); -} diff --git a/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-position.tesc b/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-position.tesc deleted file mode 100644 index 9f3ca9fcff..0000000000 --- a/third_party/spirv-cross/shaders-msl/masking/write-outputs.mask-position.tesc +++ /dev/null @@ -1,29 +0,0 @@ -#version 450 - -layout(vertices = 4) out; - -layout(location = 0) out vec4 v0[]; -layout(location = 1) patch out vec4 v1[2]; -layout(location = 3) patch out vec4 v3; - -void write_in_func() -{ - v0[gl_InvocationID] = vec4(1.0); - v0[gl_InvocationID].z = 3.0; - if (gl_InvocationID == 0) - { - v1[0] = vec4(2.0); - v1[0].x = 3.0; - v1[1] = vec4(2.0); - v1[1].x = 5.0; - } - v3 = vec4(5.0); - gl_out[gl_InvocationID].gl_Position = vec4(10.0); - gl_out[gl_InvocationID].gl_Position.z = 20.0; - gl_out[gl_InvocationID].gl_PointSize = 40.0; -} - -void main() -{ - write_in_func(); -} diff --git a/third_party/spirv-cross/shaders-msl/tesc/basic.multi-patch.tesc b/third_party/spirv-cross/shaders-msl/tesc/basic.multi-patch.tesc deleted file mode 100644 index 0a41f98c83..0000000000 --- a/third_party/spirv-cross/shaders-msl/tesc/basic.multi-patch.tesc +++ /dev/null @@ -1,17 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require - -layout(location = 0) patch out vec3 vFoo; - -layout(vertices = 1) out; - -void main() -{ - gl_TessLevelInner[0] = 8.9; - gl_TessLevelInner[1] = 6.9; - gl_TessLevelOuter[0] = 8.9; - gl_TessLevelOuter[1] = 6.9; - gl_TessLevelOuter[2] = 3.9; - gl_TessLevelOuter[3] = 4.9; - vFoo = vec3(1.0); -} diff --git a/third_party/spirv-cross/shaders-msl/tesc/basic.tesc b/third_party/spirv-cross/shaders-msl/tesc/basic.tesc deleted file mode 100644 index 0a41f98c83..0000000000 --- a/third_party/spirv-cross/shaders-msl/tesc/basic.tesc +++ /dev/null @@ -1,17 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require - -layout(location = 0) patch out vec3 vFoo; - -layout(vertices = 1) out; - -void main() -{ - gl_TessLevelInner[0] = 8.9; - gl_TessLevelInner[1] = 6.9; - gl_TessLevelOuter[0] = 8.9; - gl_TessLevelOuter[1] = 6.9; - gl_TessLevelOuter[2] = 3.9; - gl_TessLevelOuter[3] = 4.9; - vFoo = vec3(1.0); -} diff --git a/third_party/spirv-cross/shaders-msl/tesc/complex-control-point-inout-types.multi-patch.tesc b/third_party/spirv-cross/shaders-msl/tesc/complex-control-point-inout-types.multi-patch.tesc deleted file mode 100644 index aec8db7fac..0000000000 --- a/third_party/spirv-cross/shaders-msl/tesc/complex-control-point-inout-types.multi-patch.tesc +++ /dev/null @@ -1,70 +0,0 @@ -#version 450 -layout(vertices = 4) out; - -struct Meep -{ - float a; - float b; -}; - -layout(location = 0) out float a[][2]; -layout(location = 2) out float b[]; -layout(location = 3) out mat2 m[]; -layout(location = 5) out Meep meep[]; -layout(location = 7) out Meep meeps[][2]; - -layout(location = 11) out Block -{ - float a[2]; - float b; - mat2 m; - Meep meep; - Meep meeps[2]; -} B[]; - -layout(location = 0) in float in_a[][2]; -layout(location = 2) in float in_b[]; -layout(location = 3) in mat2 in_m[]; -layout(location = 5) in Meep in_meep[]; -layout(location = 7) in Meep in_meeps[][2]; - -layout(location = 11) in Block -{ - float a[2]; - float b; - mat2 m; - Meep meep; - Meep meeps[2]; -} in_B[]; - -void write_in_func() -{ - gl_out[gl_InvocationID].gl_Position = vec4(1.0); - - a[gl_InvocationID][0] = in_a[gl_InvocationID][0]; - a[gl_InvocationID][1] = in_a[gl_InvocationID][1]; - b[gl_InvocationID] = in_b[gl_InvocationID]; - m[gl_InvocationID] = in_m[gl_InvocationID]; - meep[gl_InvocationID].a = in_meep[gl_InvocationID].a; - meep[gl_InvocationID].b = in_meep[gl_InvocationID].b; - meeps[gl_InvocationID][0].a = in_meeps[gl_InvocationID][0].a; - meeps[gl_InvocationID][0].b = in_meeps[gl_InvocationID][0].b; - meeps[gl_InvocationID][1].a = in_meeps[gl_InvocationID][1].a; - meeps[gl_InvocationID][1].b = in_meeps[gl_InvocationID][1].b; - - B[gl_InvocationID].a[0] = in_B[gl_InvocationID].a[0]; - B[gl_InvocationID].a[1] = in_B[gl_InvocationID].a[1]; - B[gl_InvocationID].b = in_B[gl_InvocationID].b; - B[gl_InvocationID].m = in_B[gl_InvocationID].m; - B[gl_InvocationID].meep.a = in_B[gl_InvocationID].meep.a; - B[gl_InvocationID].meep.b = in_B[gl_InvocationID].meep.b; - B[gl_InvocationID].meeps[0].a = in_B[gl_InvocationID].meeps[0].a; - B[gl_InvocationID].meeps[0].b = in_B[gl_InvocationID].meeps[0].b; - B[gl_InvocationID].meeps[1].a = in_B[gl_InvocationID].meeps[1].a; - B[gl_InvocationID].meeps[1].b = in_B[gl_InvocationID].meeps[1].b; -} - -void main() -{ - write_in_func(); -} diff --git a/third_party/spirv-cross/shaders-msl/tesc/complex-control-point-inout-types.tesc b/third_party/spirv-cross/shaders-msl/tesc/complex-control-point-inout-types.tesc deleted file mode 100644 index b7bb21d6b3..0000000000 --- a/third_party/spirv-cross/shaders-msl/tesc/complex-control-point-inout-types.tesc +++ /dev/null @@ -1,68 +0,0 @@ -#version 450 -layout(vertices = 4) out; - -struct Meep -{ - float a; - float b; -}; - -layout(location = 0) out float a[][2]; -layout(location = 2) out float b[]; -layout(location = 3) out mat2 m[]; -layout(location = 5) out Meep meep[]; -layout(location = 7) out Meep meeps[][2]; - -layout(location = 11) out Block -{ - float a[2]; - float b; - mat2 m; - Meep meep; - Meep meeps[2]; -} B[]; - -layout(location = 0) in float in_a[][2]; -layout(location = 2) in float in_b[]; -layout(location = 3) in mat2 in_m[]; -layout(location = 5) in Meep in_meep[]; - -layout(location = 11) in Block -{ - float a[2]; - float b; - mat2 m; - // Non-multi-patch path cannot support structs inside structs. -} in_B[]; - -void write_in_func() -{ - gl_out[gl_InvocationID].gl_Position = vec4(1.0); - - a[gl_InvocationID][0] = in_a[gl_InvocationID][0]; - a[gl_InvocationID][1] = in_a[gl_InvocationID][1]; - b[gl_InvocationID] = in_b[gl_InvocationID]; - m[gl_InvocationID] = in_m[gl_InvocationID]; - meep[gl_InvocationID].a = in_meep[gl_InvocationID].a; - meep[gl_InvocationID].b = in_meep[gl_InvocationID].b; - meeps[gl_InvocationID][0].a = 1.0; - meeps[gl_InvocationID][0].b = 2.0; - meeps[gl_InvocationID][1].a = 3.0; - meeps[gl_InvocationID][1].b = 4.0; - - B[gl_InvocationID].a[0] = in_B[gl_InvocationID].a[0]; - B[gl_InvocationID].a[1] = in_B[gl_InvocationID].a[1]; - B[gl_InvocationID].b = in_B[gl_InvocationID].b; - B[gl_InvocationID].m = in_B[gl_InvocationID].m; - B[gl_InvocationID].meep.a = 10.0; - B[gl_InvocationID].meep.b = 20.0; - B[gl_InvocationID].meeps[0].a = 5.0; - B[gl_InvocationID].meeps[0].b = 6.0; - B[gl_InvocationID].meeps[1].a = 7.0; - B[gl_InvocationID].meeps[1].b = 8.0; -} - -void main() -{ - write_in_func(); -} diff --git a/third_party/spirv-cross/shaders-msl/tesc/complex-patch-out-types.tesc b/third_party/spirv-cross/shaders-msl/tesc/complex-patch-out-types.tesc deleted file mode 100644 index fd56ae46bd..0000000000 --- a/third_party/spirv-cross/shaders-msl/tesc/complex-patch-out-types.tesc +++ /dev/null @@ -1,55 +0,0 @@ -#version 450 -layout(vertices = 4) out; - -struct Meep -{ - float a; - float b; -}; - -layout(location = 0) patch out float a[2]; -layout(location = 2) patch out float b; -layout(location = 3) patch out mat2 m; -layout(location = 5) patch out Meep meep; -layout(location = 7) patch out Meep meeps[2]; - -layout(location = 11) patch out Block -{ - float a[2]; - float b; - mat2 m; - Meep meep; - Meep meeps[2]; -} B; - -void write_in_func() -{ - gl_out[gl_InvocationID].gl_Position = vec4(1.0); - - a[0] = 1.0; - a[1] = 2.0; - b = 3.0; - m = mat2(2.0); - meep.a = 4.0; - meep.b = 5.0; - meeps[0].a = 6.0; - meeps[0].b = 7.0; - meeps[1].a = 8.0; - meeps[1].b = 9.0; - - B.a[0] = 1.0; - B.a[1] = 2.0; - B.b = 3.0; - B.m = mat2(4.0); - B.meep.a = 4.0; - B.meep.b = 5.0; - B.meeps[0].a = 6.0; - B.meeps[0].b = 7.0; - B.meeps[1].a = 8.0; - B.meeps[1].b = 9.0; -} - -void main() -{ - write_in_func(); -} diff --git a/third_party/spirv-cross/shaders-msl/tesc/load-control-point-array-of-matrix.multi-patch.tesc b/third_party/spirv-cross/shaders-msl/tesc/load-control-point-array-of-matrix.multi-patch.tesc deleted file mode 100644 index 36b16681e2..0000000000 --- a/third_party/spirv-cross/shaders-msl/tesc/load-control-point-array-of-matrix.multi-patch.tesc +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(vertices = 4) out; - -layout(location = 0) in mat4 vInputs[gl_MaxPatchVertices]; -layout(location = 0) out mat4 vOutputs[4]; - -void main() -{ - mat4 tmp[gl_MaxPatchVertices] = vInputs; - vOutputs[gl_InvocationID] = tmp[gl_InvocationID]; -} diff --git a/third_party/spirv-cross/shaders-msl/tesc/load-control-point-array-of-matrix.tesc b/third_party/spirv-cross/shaders-msl/tesc/load-control-point-array-of-matrix.tesc deleted file mode 100644 index 36b16681e2..0000000000 --- a/third_party/spirv-cross/shaders-msl/tesc/load-control-point-array-of-matrix.tesc +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(vertices = 4) out; - -layout(location = 0) in mat4 vInputs[gl_MaxPatchVertices]; -layout(location = 0) out mat4 vOutputs[4]; - -void main() -{ - mat4 tmp[gl_MaxPatchVertices] = vInputs; - vOutputs[gl_InvocationID] = tmp[gl_InvocationID]; -} diff --git a/third_party/spirv-cross/shaders-msl/tesc/load-control-point-array-of-struct.multi-patch.tesc b/third_party/spirv-cross/shaders-msl/tesc/load-control-point-array-of-struct.multi-patch.tesc deleted file mode 100644 index 4b4d5bfcd1..0000000000 --- a/third_party/spirv-cross/shaders-msl/tesc/load-control-point-array-of-struct.multi-patch.tesc +++ /dev/null @@ -1,21 +0,0 @@ -#version 450 - -layout(vertices = 4) out; - -struct VertexData -{ - mat4 a; - vec4 b[2]; - vec4 c; -}; - -layout(location = 0) in VertexData vInputs[gl_MaxPatchVertices]; -layout(location = 0) out vec4 vOutputs[4]; - -void main() -{ - VertexData tmp[gl_MaxPatchVertices] = vInputs; - VertexData tmp_single = vInputs[gl_InvocationID ^ 1]; - - vOutputs[gl_InvocationID] = tmp[gl_InvocationID].a[1] + tmp[gl_InvocationID].b[1] + tmp[gl_InvocationID].c + tmp_single.c; -} diff --git a/third_party/spirv-cross/shaders-msl/tesc/load-control-point-array-of-struct.tesc b/third_party/spirv-cross/shaders-msl/tesc/load-control-point-array-of-struct.tesc deleted file mode 100644 index 4b4d5bfcd1..0000000000 --- a/third_party/spirv-cross/shaders-msl/tesc/load-control-point-array-of-struct.tesc +++ /dev/null @@ -1,21 +0,0 @@ -#version 450 - -layout(vertices = 4) out; - -struct VertexData -{ - mat4 a; - vec4 b[2]; - vec4 c; -}; - -layout(location = 0) in VertexData vInputs[gl_MaxPatchVertices]; -layout(location = 0) out vec4 vOutputs[4]; - -void main() -{ - VertexData tmp[gl_MaxPatchVertices] = vInputs; - VertexData tmp_single = vInputs[gl_InvocationID ^ 1]; - - vOutputs[gl_InvocationID] = tmp[gl_InvocationID].a[1] + tmp[gl_InvocationID].b[1] + tmp[gl_InvocationID].c + tmp_single.c; -} diff --git a/third_party/spirv-cross/shaders-msl/tesc/load-control-point-array.multi-patch.tesc b/third_party/spirv-cross/shaders-msl/tesc/load-control-point-array.multi-patch.tesc deleted file mode 100644 index 1a5924b895..0000000000 --- a/third_party/spirv-cross/shaders-msl/tesc/load-control-point-array.multi-patch.tesc +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(vertices = 4) out; - -layout(location = 0) in vec4 vInputs[gl_MaxPatchVertices]; -layout(location = 0) out vec4 vOutputs[4]; - -void main() -{ - vec4 tmp[gl_MaxPatchVertices] = vInputs; - vOutputs[gl_InvocationID] = tmp[gl_InvocationID]; -} diff --git a/third_party/spirv-cross/shaders-msl/tesc/load-control-point-array.tesc b/third_party/spirv-cross/shaders-msl/tesc/load-control-point-array.tesc deleted file mode 100644 index 1a5924b895..0000000000 --- a/third_party/spirv-cross/shaders-msl/tesc/load-control-point-array.tesc +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(vertices = 4) out; - -layout(location = 0) in vec4 vInputs[gl_MaxPatchVertices]; -layout(location = 0) out vec4 vOutputs[4]; - -void main() -{ - vec4 tmp[gl_MaxPatchVertices] = vInputs; - vOutputs[gl_InvocationID] = tmp[gl_InvocationID]; -} diff --git a/third_party/spirv-cross/shaders-msl/tesc/matrix-output.multi-patch.tesc b/third_party/spirv-cross/shaders-msl/tesc/matrix-output.multi-patch.tesc deleted file mode 100644 index 0d23861980..0000000000 --- a/third_party/spirv-cross/shaders-msl/tesc/matrix-output.multi-patch.tesc +++ /dev/null @@ -1,28 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require - -layout(vertices = 3) out; - -layout(location = 0) in highp float in_tc_attr[]; -layout(location = 0) out highp float in_te_attr[]; - -layout(location = 1) out mediump mat4x3 in_te_data0[]; -layout(location = 5) out mediump mat4x3 in_te_data1[]; - -void main (void) -{ - mat4x3 d = mat4x3(gl_InvocationID); - in_te_data0[gl_InvocationID] = d; - barrier(); - in_te_data1[gl_InvocationID] = d + in_te_data0[(gl_InvocationID + 1) % 3]; - - in_te_attr[gl_InvocationID] = in_tc_attr[gl_InvocationID]; - - gl_TessLevelInner[0] = 1.0; - gl_TessLevelInner[1] = 1.0; - - gl_TessLevelOuter[0] = 1.0; - gl_TessLevelOuter[1] = 1.0; - gl_TessLevelOuter[2] = 1.0; - gl_TessLevelOuter[3] = 1.0; -} diff --git a/third_party/spirv-cross/shaders-msl/tesc/reload-tess-level.multi-patch.tesc b/third_party/spirv-cross/shaders-msl/tesc/reload-tess-level.multi-patch.tesc deleted file mode 100644 index c3f0195cc7..0000000000 --- a/third_party/spirv-cross/shaders-msl/tesc/reload-tess-level.multi-patch.tesc +++ /dev/null @@ -1,17 +0,0 @@ -#version 450 -layout(vertices = 4) out; - -void main() -{ - if (gl_InvocationID == 0) - { - gl_TessLevelOuter[0] = 2.0; - gl_TessLevelOuter[1] = 3.0; - gl_TessLevelOuter[2] = 4.0; - gl_TessLevelOuter[3] = 5.0; - gl_TessLevelInner[0] = mix(gl_TessLevelOuter[0], gl_TessLevelOuter[3], 0.5); - gl_TessLevelInner[1] = mix(gl_TessLevelOuter[2], gl_TessLevelOuter[1], 0.5); - } - - gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position; -} diff --git a/third_party/spirv-cross/shaders-msl/tesc/reload-tess-level.tesc b/third_party/spirv-cross/shaders-msl/tesc/reload-tess-level.tesc deleted file mode 100644 index c3f0195cc7..0000000000 --- a/third_party/spirv-cross/shaders-msl/tesc/reload-tess-level.tesc +++ /dev/null @@ -1,17 +0,0 @@ -#version 450 -layout(vertices = 4) out; - -void main() -{ - if (gl_InvocationID == 0) - { - gl_TessLevelOuter[0] = 2.0; - gl_TessLevelOuter[1] = 3.0; - gl_TessLevelOuter[2] = 4.0; - gl_TessLevelOuter[3] = 5.0; - gl_TessLevelInner[0] = mix(gl_TessLevelOuter[0], gl_TessLevelOuter[3], 0.5); - gl_TessLevelInner[1] = mix(gl_TessLevelOuter[2], gl_TessLevelOuter[1], 0.5); - } - - gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position; -} diff --git a/third_party/spirv-cross/shaders-msl/tesc/struct-output.multi-patch.tesc b/third_party/spirv-cross/shaders-msl/tesc/struct-output.multi-patch.tesc deleted file mode 100644 index a1511a475a..0000000000 --- a/third_party/spirv-cross/shaders-msl/tesc/struct-output.multi-patch.tesc +++ /dev/null @@ -1,36 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require - -layout(vertices = 3) out; - -layout(location = 0) in highp float in_tc_attr[]; -layout(location = 0) out highp float in_te_attr[]; - -struct te_data -{ - mediump float a; - mediump float b; - mediump uint c; -}; - -layout(location = 1) out te_data in_te_data0[]; -layout(location = 4) out te_data in_te_data1[]; - -void main (void) -{ - te_data d = te_data(float(gl_InvocationID), float(gl_InvocationID + 1), uint(gl_InvocationID)); - in_te_data0[gl_InvocationID] = d; - barrier(); - te_data e = in_te_data0[(gl_InvocationID + 1) % 3]; - in_te_data1[gl_InvocationID] = te_data(d.a + e.a, d.b + e.b, d.c + e.c); - - in_te_attr[gl_InvocationID] = in_tc_attr[gl_InvocationID]; - - gl_TessLevelInner[0] = 1.0; - gl_TessLevelInner[1] = 1.0; - - gl_TessLevelOuter[0] = 1.0; - gl_TessLevelOuter[1] = 1.0; - gl_TessLevelOuter[2] = 1.0; - gl_TessLevelOuter[3] = 1.0; -} diff --git a/third_party/spirv-cross/shaders-msl/tesc/water_tess.multi-patch.tesc b/third_party/spirv-cross/shaders-msl/tesc/water_tess.multi-patch.tesc deleted file mode 100644 index 3ecdc3d1a9..0000000000 --- a/third_party/spirv-cross/shaders-msl/tesc/water_tess.multi-patch.tesc +++ /dev/null @@ -1,115 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require - -layout(vertices = 1) out; -layout(location = 0) in vec2 vPatchPosBase[]; - -layout(std140) uniform UBO -{ - vec4 uScale; - highp vec3 uCamPos; - vec2 uPatchSize; - vec2 uMaxTessLevel; - float uDistanceMod; - vec4 uFrustum[6]; -}; - -layout(location = 1) patch out vec2 vOutPatchPosBase; -layout(location = 2) patch out vec4 vPatchLods; - -float lod_factor(vec2 pos_) -{ - vec2 pos = pos_ * uScale.xy; - vec3 dist_to_cam = uCamPos - vec3(pos.x, 0.0, pos.y); - float level = log2((length(dist_to_cam) + 0.0001) * uDistanceMod); - return clamp(level, 0.0, uMaxTessLevel.x); -} - -float tess_level(float lod) -{ - return uMaxTessLevel.y * exp2(-lod); -} - -vec4 tess_level(vec4 lod) -{ - return uMaxTessLevel.y * exp2(-lod); -} - -// Guard band for vertex displacement. -#define GUARD_BAND 10.0 -bool frustum_cull(vec2 p0) -{ - vec2 min_xz = (p0 - GUARD_BAND) * uScale.xy; - vec2 max_xz = (p0 + uPatchSize + GUARD_BAND) * uScale.xy; - - vec3 bb_min = vec3(min_xz.x, -GUARD_BAND, min_xz.y); - vec3 bb_max = vec3(max_xz.x, +GUARD_BAND, max_xz.y); - vec3 center = 0.5 * (bb_min + bb_max); - float radius = 0.5 * length(bb_max - bb_min); - - vec3 f0 = vec3( - dot(uFrustum[0], vec4(center, 1.0)), - dot(uFrustum[1], vec4(center, 1.0)), - dot(uFrustum[2], vec4(center, 1.0))); - - vec3 f1 = vec3( - dot(uFrustum[3], vec4(center, 1.0)), - dot(uFrustum[4], vec4(center, 1.0)), - dot(uFrustum[5], vec4(center, 1.0))); - - return !(any(lessThanEqual(f0, vec3(-radius))) || any(lessThanEqual(f1, vec3(-radius)))); -} - -void compute_tess_levels(vec2 p0) -{ - vOutPatchPosBase = p0; - - float l00 = lod_factor(p0 + vec2(-0.5, -0.5) * uPatchSize); - float l10 = lod_factor(p0 + vec2(+0.5, -0.5) * uPatchSize); - float l20 = lod_factor(p0 + vec2(+1.5, -0.5) * uPatchSize); - float l01 = lod_factor(p0 + vec2(-0.5, +0.5) * uPatchSize); - float l11 = lod_factor(p0 + vec2(+0.5, +0.5) * uPatchSize); - float l21 = lod_factor(p0 + vec2(+1.5, +0.5) * uPatchSize); - float l02 = lod_factor(p0 + vec2(-0.5, +1.5) * uPatchSize); - float l12 = lod_factor(p0 + vec2(+0.5, +1.5) * uPatchSize); - float l22 = lod_factor(p0 + vec2(+1.5, +1.5) * uPatchSize); - - vec4 lods = vec4( - dot(vec4(l01, l11, l02, l12), vec4(0.25)), - dot(vec4(l00, l10, l01, l11), vec4(0.25)), - dot(vec4(l10, l20, l11, l21), vec4(0.25)), - dot(vec4(l11, l21, l12, l22), vec4(0.25))); - - vPatchLods = lods; - - vec4 outer_lods = min(lods.xyzw, lods.yzwx); - vec4 levels = tess_level(outer_lods); - gl_TessLevelOuter[0] = levels.x; - gl_TessLevelOuter[1] = levels.y; - gl_TessLevelOuter[2] = levels.z; - gl_TessLevelOuter[3] = levels.w; - - float min_lod = min(min(lods.x, lods.y), min(lods.z, lods.w)); - float inner = tess_level(min(min_lod, l11)); - gl_TessLevelInner[0] = inner; - gl_TessLevelInner[1] = inner; -} - -void main() -{ - vec2 p0 = vPatchPosBase[0]; - if (!frustum_cull(p0)) - { - gl_TessLevelOuter[0] = -1.0; - gl_TessLevelOuter[1] = -1.0; - gl_TessLevelOuter[2] = -1.0; - gl_TessLevelOuter[3] = -1.0; - gl_TessLevelInner[0] = -1.0; - gl_TessLevelInner[1] = -1.0; - } - else - { - compute_tess_levels(p0); - } -} - diff --git a/third_party/spirv-cross/shaders-msl/tesc/water_tess.tesc b/third_party/spirv-cross/shaders-msl/tesc/water_tess.tesc deleted file mode 100644 index 3ecdc3d1a9..0000000000 --- a/third_party/spirv-cross/shaders-msl/tesc/water_tess.tesc +++ /dev/null @@ -1,115 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require - -layout(vertices = 1) out; -layout(location = 0) in vec2 vPatchPosBase[]; - -layout(std140) uniform UBO -{ - vec4 uScale; - highp vec3 uCamPos; - vec2 uPatchSize; - vec2 uMaxTessLevel; - float uDistanceMod; - vec4 uFrustum[6]; -}; - -layout(location = 1) patch out vec2 vOutPatchPosBase; -layout(location = 2) patch out vec4 vPatchLods; - -float lod_factor(vec2 pos_) -{ - vec2 pos = pos_ * uScale.xy; - vec3 dist_to_cam = uCamPos - vec3(pos.x, 0.0, pos.y); - float level = log2((length(dist_to_cam) + 0.0001) * uDistanceMod); - return clamp(level, 0.0, uMaxTessLevel.x); -} - -float tess_level(float lod) -{ - return uMaxTessLevel.y * exp2(-lod); -} - -vec4 tess_level(vec4 lod) -{ - return uMaxTessLevel.y * exp2(-lod); -} - -// Guard band for vertex displacement. -#define GUARD_BAND 10.0 -bool frustum_cull(vec2 p0) -{ - vec2 min_xz = (p0 - GUARD_BAND) * uScale.xy; - vec2 max_xz = (p0 + uPatchSize + GUARD_BAND) * uScale.xy; - - vec3 bb_min = vec3(min_xz.x, -GUARD_BAND, min_xz.y); - vec3 bb_max = vec3(max_xz.x, +GUARD_BAND, max_xz.y); - vec3 center = 0.5 * (bb_min + bb_max); - float radius = 0.5 * length(bb_max - bb_min); - - vec3 f0 = vec3( - dot(uFrustum[0], vec4(center, 1.0)), - dot(uFrustum[1], vec4(center, 1.0)), - dot(uFrustum[2], vec4(center, 1.0))); - - vec3 f1 = vec3( - dot(uFrustum[3], vec4(center, 1.0)), - dot(uFrustum[4], vec4(center, 1.0)), - dot(uFrustum[5], vec4(center, 1.0))); - - return !(any(lessThanEqual(f0, vec3(-radius))) || any(lessThanEqual(f1, vec3(-radius)))); -} - -void compute_tess_levels(vec2 p0) -{ - vOutPatchPosBase = p0; - - float l00 = lod_factor(p0 + vec2(-0.5, -0.5) * uPatchSize); - float l10 = lod_factor(p0 + vec2(+0.5, -0.5) * uPatchSize); - float l20 = lod_factor(p0 + vec2(+1.5, -0.5) * uPatchSize); - float l01 = lod_factor(p0 + vec2(-0.5, +0.5) * uPatchSize); - float l11 = lod_factor(p0 + vec2(+0.5, +0.5) * uPatchSize); - float l21 = lod_factor(p0 + vec2(+1.5, +0.5) * uPatchSize); - float l02 = lod_factor(p0 + vec2(-0.5, +1.5) * uPatchSize); - float l12 = lod_factor(p0 + vec2(+0.5, +1.5) * uPatchSize); - float l22 = lod_factor(p0 + vec2(+1.5, +1.5) * uPatchSize); - - vec4 lods = vec4( - dot(vec4(l01, l11, l02, l12), vec4(0.25)), - dot(vec4(l00, l10, l01, l11), vec4(0.25)), - dot(vec4(l10, l20, l11, l21), vec4(0.25)), - dot(vec4(l11, l21, l12, l22), vec4(0.25))); - - vPatchLods = lods; - - vec4 outer_lods = min(lods.xyzw, lods.yzwx); - vec4 levels = tess_level(outer_lods); - gl_TessLevelOuter[0] = levels.x; - gl_TessLevelOuter[1] = levels.y; - gl_TessLevelOuter[2] = levels.z; - gl_TessLevelOuter[3] = levels.w; - - float min_lod = min(min(lods.x, lods.y), min(lods.z, lods.w)); - float inner = tess_level(min(min_lod, l11)); - gl_TessLevelInner[0] = inner; - gl_TessLevelInner[1] = inner; -} - -void main() -{ - vec2 p0 = vPatchPosBase[0]; - if (!frustum_cull(p0)) - { - gl_TessLevelOuter[0] = -1.0; - gl_TessLevelOuter[1] = -1.0; - gl_TessLevelOuter[2] = -1.0; - gl_TessLevelOuter[3] = -1.0; - gl_TessLevelInner[0] = -1.0; - gl_TessLevelInner[1] = -1.0; - } - else - { - compute_tess_levels(p0); - } -} - diff --git a/third_party/spirv-cross/shaders-msl/tese/input-array.tese b/third_party/spirv-cross/shaders-msl/tese/input-array.tese deleted file mode 100644 index 8efa480e3b..0000000000 --- a/third_party/spirv-cross/shaders-msl/tese/input-array.tese +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 - -layout(ccw, quads, fractional_odd_spacing) in; -layout(location = 0) in vec4 Floats[]; -layout(location = 2) in vec4 Floats2[gl_MaxPatchVertices]; - -void set_position() -{ - gl_Position = Floats[0] * gl_TessCoord.x + Floats2[1] * gl_TessCoord.y; -} - -void main() -{ - set_position(); -} diff --git a/third_party/spirv-cross/shaders-msl/tese/input-types.tese b/third_party/spirv-cross/shaders-msl/tese/input-types.tese deleted file mode 100644 index 3157953fdd..0000000000 --- a/third_party/spirv-cross/shaders-msl/tese/input-types.tese +++ /dev/null @@ -1,75 +0,0 @@ -#version 450 - -layout(ccw, quads, fractional_even_spacing) in; - -// Try to use the whole taxonomy of input methods. - -// Per-vertex vector. -layout(location = 0) in vec4 vColor[]; -// Per-patch vector. -layout(location = 1) patch in vec4 vColors; -// Per-patch vector array. -layout(location = 2) patch in vec4 vColorsArray[2]; - -// I/O blocks, per patch and per control point. -layout(location = 4) in Block -{ - vec4 a; - vec4 b; -} blocks[]; - -layout(location = 6) patch in PatchBlock -{ - vec4 a; - vec4 b; -} patch_block; - -// Composites. -struct Foo -{ - vec4 a; - vec4 b; -}; -layout(location = 8) patch in Foo vFoo; -//layout(location = 10) patch in Foo vFooArray[2]; // FIXME: Handling of array-of-struct input is broken! - -// Per-control point struct. -layout(location = 14) in Foo vFoos[]; - -void set_from_function() -{ - gl_Position = blocks[0].a; - gl_Position += blocks[0].b; - gl_Position += blocks[1].a; - gl_Position += blocks[1].b; - gl_Position += patch_block.a; - gl_Position += patch_block.b; - gl_Position += vColor[0]; - gl_Position += vColor[1]; - gl_Position += vColors; - - Foo foo = vFoo; - gl_Position += foo.a; - gl_Position += foo.b; - - /*foo = vFooArray[0]; - gl_Position += foo.a; - gl_Position += foo.b; - - foo = vFooArray[1]; - gl_Position += foo.a; - gl_Position += foo.b;*/ - - foo = vFoos[0]; - gl_Position += foo.a; - gl_Position += foo.b; - - foo = vFoos[1]; - gl_Position += foo.a; - gl_Position += foo.b; -} - -void main() -{ - set_from_function(); -} diff --git a/third_party/spirv-cross/shaders-msl/tese/load-control-point-array-of-matrix.tese b/third_party/spirv-cross/shaders-msl/tese/load-control-point-array-of-matrix.tese deleted file mode 100644 index 479b3e651b..0000000000 --- a/third_party/spirv-cross/shaders-msl/tese/load-control-point-array-of-matrix.tese +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 - -layout(cw, quads) in; -layout(location = 0) in mat4 vInputs[gl_MaxPatchVertices]; -layout(location = 4) patch in vec4 vBoo[4]; -layout(location = 8) patch in int vIndex; - -void main() -{ - mat4 tmp[gl_MaxPatchVertices] = vInputs; - gl_Position = tmp[0][vIndex] + tmp[1][vIndex] + vBoo[vIndex]; - -} diff --git a/third_party/spirv-cross/shaders-msl/tese/load-control-point-array.tese b/third_party/spirv-cross/shaders-msl/tese/load-control-point-array.tese deleted file mode 100644 index 4fa0bb1242..0000000000 --- a/third_party/spirv-cross/shaders-msl/tese/load-control-point-array.tese +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 - -layout(cw, quads) in; -layout(location = 0) in vec4 vInputs[gl_MaxPatchVertices]; -layout(location = 1) patch in vec4 vBoo[4]; -layout(location = 5) patch in int vIndex; - -void main() -{ - vec4 tmp[gl_MaxPatchVertices] = vInputs; - gl_Position = tmp[0] + tmp[1] + vBoo[vIndex]; - -} diff --git a/third_party/spirv-cross/shaders-msl/tese/quad.domain.tese b/third_party/spirv-cross/shaders-msl/tese/quad.domain.tese deleted file mode 100644 index 83d4b0e613..0000000000 --- a/third_party/spirv-cross/shaders-msl/tese/quad.domain.tese +++ /dev/null @@ -1,12 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require - -layout(cw, quads, fractional_even_spacing) in; - -void main() -{ - gl_Position = vec4(gl_TessCoord.x * gl_TessLevelInner[0] * gl_TessLevelOuter[0] + (1.0 - gl_TessCoord.x) * gl_TessLevelInner[0] * gl_TessLevelOuter[2], - gl_TessCoord.y * gl_TessLevelInner[1] * gl_TessLevelOuter[3] + (1.0 - gl_TessCoord.y) * gl_TessLevelInner[1] * gl_TessLevelOuter[1], - 0, 1); -} - diff --git a/third_party/spirv-cross/shaders-msl/tese/quad.tese b/third_party/spirv-cross/shaders-msl/tese/quad.tese deleted file mode 100644 index 4fdb9960bc..0000000000 --- a/third_party/spirv-cross/shaders-msl/tese/quad.tese +++ /dev/null @@ -1,17 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require - -layout(cw, quads, fractional_even_spacing) in; - -void set_position() -{ - gl_Position = vec4(gl_TessCoord.x * gl_TessLevelInner[0] * gl_TessLevelOuter[0] + (1.0 - gl_TessCoord.x) * gl_TessLevelInner[0] * gl_TessLevelOuter[2], - gl_TessCoord.y * gl_TessLevelInner[1] * gl_TessLevelOuter[1] + (1.0 - gl_TessCoord.y) * gl_TessLevelInner[1] * gl_TessLevelOuter[3], - 0, 1); -} - -void main() -{ - set_position(); -} - diff --git a/third_party/spirv-cross/shaders-msl/tese/read-tess-level-in-func-quad.msl2.tese b/third_party/spirv-cross/shaders-msl/tese/read-tess-level-in-func-quad.msl2.tese deleted file mode 100644 index 0c289ac5bd..0000000000 --- a/third_party/spirv-cross/shaders-msl/tese/read-tess-level-in-func-quad.msl2.tese +++ /dev/null @@ -1,17 +0,0 @@ -#version 450 -layout(quads) in; - -vec4 read_tess_levels() -{ - return vec4( - gl_TessLevelOuter[0], - gl_TessLevelOuter[1], - gl_TessLevelOuter[2], - gl_TessLevelOuter[3]) + - vec2(gl_TessLevelInner[0], gl_TessLevelInner[1]).xyxy; -} - -void main() -{ - gl_Position = read_tess_levels(); -} diff --git a/third_party/spirv-cross/shaders-msl/tese/read-tess-level-in-func.msl2.tese b/third_party/spirv-cross/shaders-msl/tese/read-tess-level-in-func.msl2.tese deleted file mode 100644 index 8cf1f1a8f7..0000000000 --- a/third_party/spirv-cross/shaders-msl/tese/read-tess-level-in-func.msl2.tese +++ /dev/null @@ -1,17 +0,0 @@ -#version 450 -layout(triangles) in; - -vec4 read_tess_levels() -{ - return vec4( - gl_TessLevelOuter[0], - gl_TessLevelOuter[1], - gl_TessLevelOuter[2], - gl_TessLevelOuter[3]) + - vec2(gl_TessLevelInner[0], gl_TessLevelInner[1]).xyxy; -} - -void main() -{ - gl_Position = read_tess_levels(); -} diff --git a/third_party/spirv-cross/shaders-msl/tese/set-from-function.tese b/third_party/spirv-cross/shaders-msl/tese/set-from-function.tese deleted file mode 100644 index 6cbab9e50e..0000000000 --- a/third_party/spirv-cross/shaders-msl/tese/set-from-function.tese +++ /dev/null @@ -1,36 +0,0 @@ -#version 450 - -layout(ccw, quads, fractional_even_spacing) in; - -layout(location = 0) in vec4 vColor[]; -layout(location = 1) patch in vec4 vColors; -layout(location = 2) in Block -{ - vec4 a; - vec4 b; -} blocks[]; - -struct Foo -{ - vec4 a; - vec4 b; -}; -layout(location = 4) patch in Foo vFoo; - -void set_from_function() -{ - gl_Position = blocks[0].a; - gl_Position += blocks[0].b; - gl_Position += blocks[1].a; - gl_Position += blocks[1].b; - gl_Position += vColor[0]; - gl_Position += vColor[1]; - gl_Position += vColors; - gl_Position += vFoo.a; - gl_Position += vFoo.b; -} - -void main() -{ - set_from_function(); -} diff --git a/third_party/spirv-cross/shaders-msl/tese/triangle-tess-level.tese b/third_party/spirv-cross/shaders-msl/tese/triangle-tess-level.tese deleted file mode 100644 index 5ea55af152..0000000000 --- a/third_party/spirv-cross/shaders-msl/tese/triangle-tess-level.tese +++ /dev/null @@ -1,13 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require - -layout(cw, triangles, fractional_even_spacing) in; - -void main() -{ - gl_Position = vec4(gl_TessCoord.x * gl_TessLevelInner[0] * gl_TessLevelOuter[0], - gl_TessCoord.y * gl_TessLevelInner[0] * gl_TessLevelOuter[1], - gl_TessCoord.z * gl_TessLevelInner[0] * gl_TessLevelOuter[2], - 1); -} - diff --git a/third_party/spirv-cross/shaders-msl/tese/triangle.tese b/third_party/spirv-cross/shaders-msl/tese/triangle.tese deleted file mode 100644 index 6ce7c2d6d9..0000000000 --- a/third_party/spirv-cross/shaders-msl/tese/triangle.tese +++ /dev/null @@ -1,10 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require - -layout(cw, triangles, fractional_even_spacing) in; - -void main() -{ - gl_Position = vec4(1.0); -} - diff --git a/third_party/spirv-cross/shaders-msl/tese/water_tess.tese b/third_party/spirv-cross/shaders-msl/tese/water_tess.tese deleted file mode 100644 index 32d6bc9391..0000000000 --- a/third_party/spirv-cross/shaders-msl/tese/water_tess.tese +++ /dev/null @@ -1,65 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require -precision highp int; - -layout(cw, quads, fractional_even_spacing) in; - -layout(location = 0) patch in vec2 vOutPatchPosBase; -layout(location = 1) patch in vec4 vPatchLods; - -layout(binding = 1, std140) uniform UBO -{ - mat4 uMVP; - vec4 uScale; - vec2 uInvScale; - vec3 uCamPos; - vec2 uPatchSize; - vec2 uInvHeightmapSize; -}; -layout(binding = 0) uniform mediump sampler2D uHeightmapDisplacement; - -layout(location = 0) highp out vec3 vWorld; -layout(location = 1) highp out vec4 vGradNormalTex; - -vec2 lerp_vertex(vec2 tess_coord) -{ - return vOutPatchPosBase + tess_coord * uPatchSize; -} - -mediump vec2 lod_factor(vec2 tess_coord) -{ - mediump vec2 x = mix(vPatchLods.yx, vPatchLods.zw, tess_coord.x); - mediump float level = mix(x.x, x.y, tess_coord.y); - mediump float floor_level = floor(level); - mediump float fract_level = level - floor_level; - return vec2(floor_level, fract_level); -} - -mediump vec3 sample_height_displacement(vec2 uv, vec2 off, mediump vec2 lod) -{ - return mix( - textureLod(uHeightmapDisplacement, uv + 0.5 * off, lod.x).xyz, - textureLod(uHeightmapDisplacement, uv + 1.0 * off, lod.x + 1.0).xyz, - lod.y); -} - -void main() -{ - vec2 tess_coord = gl_TessCoord.xy; - vec2 pos = lerp_vertex(tess_coord); - mediump vec2 lod = lod_factor(tess_coord); - - vec2 tex = pos * uInvHeightmapSize.xy; - pos *= uScale.xy; - - mediump float delta_mod = exp2(lod.x); - vec2 off = uInvHeightmapSize.xy * delta_mod; - - vGradNormalTex = vec4(tex + 0.5 * uInvHeightmapSize.xy, tex * uScale.zw); - vec3 height_displacement = sample_height_displacement(tex, off, lod); - - pos += height_displacement.yz; - vWorld = vec3(pos.x, height_displacement.x, pos.y); - gl_Position = uMVP * vec4(vWorld, 1.0); -} - diff --git a/third_party/spirv-cross/shaders-msl/vert/array-component-io.for-tess.vert b/third_party/spirv-cross/shaders-msl/vert/array-component-io.for-tess.vert deleted file mode 100644 index 257ac848d1..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/array-component-io.for-tess.vert +++ /dev/null @@ -1,21 +0,0 @@ -#version 450 - -layout(location = 1, component = 0) out float A[2]; -layout(location = 1, component = 2) out vec2 B[2]; -layout(location = 0, component = 1) out float C[3]; -layout(location = 0, component = 3) out float D; - -layout(location = 1, component = 0) in float InA[2]; -layout(location = 1, component = 2) in vec2 InB[2]; -layout(location = 0, component = 1) in float InC[3]; -layout(location = 0, component = 3) in float InD; -layout(location = 4) in vec4 Pos; - -void main() -{ - gl_Position = Pos; - A = InA; - B = InB; - C = InC; - D = InD; -} diff --git a/third_party/spirv-cross/shaders-msl/vert/array-component-io.vert b/third_party/spirv-cross/shaders-msl/vert/array-component-io.vert deleted file mode 100644 index 257ac848d1..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/array-component-io.vert +++ /dev/null @@ -1,21 +0,0 @@ -#version 450 - -layout(location = 1, component = 0) out float A[2]; -layout(location = 1, component = 2) out vec2 B[2]; -layout(location = 0, component = 1) out float C[3]; -layout(location = 0, component = 3) out float D; - -layout(location = 1, component = 0) in float InA[2]; -layout(location = 1, component = 2) in vec2 InB[2]; -layout(location = 0, component = 1) in float InC[3]; -layout(location = 0, component = 3) in float InD; -layout(location = 4) in vec4 Pos; - -void main() -{ - gl_Position = Pos; - A = InA; - B = InB; - C = InC; - D = InD; -} diff --git a/third_party/spirv-cross/shaders-msl/vert/basic.capture.vert b/third_party/spirv-cross/shaders-msl/vert/basic.capture.vert deleted file mode 100644 index 8191dc2d0f..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/basic.capture.vert +++ /dev/null @@ -1,17 +0,0 @@ -#version 310 es - -layout(std140) uniform UBO -{ - uniform mat4 uMVP; -}; - -layout(location = 0) in vec4 aVertex; -layout(location = 1) in vec3 aNormal; - -layout(location = 0) out vec3 vNormal; - -void main() -{ - gl_Position = uMVP * aVertex; - vNormal = aNormal; -} diff --git a/third_party/spirv-cross/shaders-msl/vert/basic.for-tess.vert b/third_party/spirv-cross/shaders-msl/vert/basic.for-tess.vert deleted file mode 100644 index 8191dc2d0f..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/basic.for-tess.vert +++ /dev/null @@ -1,17 +0,0 @@ -#version 310 es - -layout(std140) uniform UBO -{ - uniform mat4 uMVP; -}; - -layout(location = 0) in vec4 aVertex; -layout(location = 1) in vec3 aNormal; - -layout(location = 0) out vec3 vNormal; - -void main() -{ - gl_Position = uMVP * aVertex; - vNormal = aNormal; -} diff --git a/third_party/spirv-cross/shaders-msl/vert/basic.vert b/third_party/spirv-cross/shaders-msl/vert/basic.vert deleted file mode 100644 index 8191dc2d0f..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/basic.vert +++ /dev/null @@ -1,17 +0,0 @@ -#version 310 es - -layout(std140) uniform UBO -{ - uniform mat4 uMVP; -}; - -layout(location = 0) in vec4 aVertex; -layout(location = 1) in vec3 aNormal; - -layout(location = 0) out vec3 vNormal; - -void main() -{ - gl_Position = uMVP * aVertex; - vNormal = aNormal; -} diff --git a/third_party/spirv-cross/shaders-msl/vert/clip-distance-block.no-user-varying.vert b/third_party/spirv-cross/shaders-msl/vert/clip-distance-block.no-user-varying.vert deleted file mode 100644 index 93ed31150c..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/clip-distance-block.no-user-varying.vert +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 - -layout(location = 0) in vec4 Position; -out gl_PerVertex -{ - vec4 gl_Position; - float gl_ClipDistance[2]; -}; - -void main() -{ - gl_Position = Position; - gl_ClipDistance[0] = Position.x; - gl_ClipDistance[1] = Position.y; -} diff --git a/third_party/spirv-cross/shaders-msl/vert/clip-distance-block.vert b/third_party/spirv-cross/shaders-msl/vert/clip-distance-block.vert deleted file mode 100644 index 93ed31150c..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/clip-distance-block.vert +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 - -layout(location = 0) in vec4 Position; -out gl_PerVertex -{ - vec4 gl_Position; - float gl_ClipDistance[2]; -}; - -void main() -{ - gl_Position = Position; - gl_ClipDistance[0] = Position.x; - gl_ClipDistance[1] = Position.y; -} diff --git a/third_party/spirv-cross/shaders-msl/vert/copy.flatten.vert b/third_party/spirv-cross/shaders-msl/vert/copy.flatten.vert deleted file mode 100644 index 4f1b8805e7..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/copy.flatten.vert +++ /dev/null @@ -1,34 +0,0 @@ -#version 310 es - -struct Light -{ - vec3 Position; - float Radius; - - vec4 Color; -}; - -layout(std140) uniform UBO -{ - mat4 uMVP; - - Light lights[4]; -}; - -layout(location = 0) in vec4 aVertex; -layout(location = 1) in vec3 aNormal; -layout(location = 0) out vec4 vColor; - -void main() -{ - gl_Position = uMVP * aVertex; - - vColor = vec4(0.0); - - for (int i = 0; i < 4; ++i) - { - Light light = lights[i]; - vec3 L = aVertex.xyz - light.Position; - vColor += dot(aNormal, normalize(L)) * (clamp(1.0 - length(L) / light.Radius, 0.0, 1.0) * lights[i].Color); - } -} diff --git a/third_party/spirv-cross/shaders-msl/vert/dynamic.flatten.vert b/third_party/spirv-cross/shaders-msl/vert/dynamic.flatten.vert deleted file mode 100644 index a341d45288..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/dynamic.flatten.vert +++ /dev/null @@ -1,33 +0,0 @@ -#version 310 es - -struct Light -{ - vec3 Position; - float Radius; - - vec4 Color; -}; - -layout(std140) uniform UBO -{ - mat4 uMVP; - - Light lights[4]; -}; - -layout(location = 0) in vec4 aVertex; -layout(location = 1) in vec3 aNormal; -layout(location = 0) out vec4 vColor; - -void main() -{ - gl_Position = uMVP * aVertex; - - vColor = vec4(0.0); - - for (int i = 0; i < 4; ++i) - { - vec3 L = aVertex.xyz - lights[i].Position; - vColor += dot(aNormal, normalize(L)) * (clamp(1.0 - length(L) / lights[i].Radius, 0.0, 1.0) * lights[i].Color); - } -} diff --git a/third_party/spirv-cross/shaders-msl/vert/float-math.invariant-float-math.vert b/third_party/spirv-cross/shaders-msl/vert/float-math.invariant-float-math.vert deleted file mode 100644 index caa8639a89..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/float-math.invariant-float-math.vert +++ /dev/null @@ -1,25 +0,0 @@ -#version 450 - -layout(set = 0, binding = 0) uniform Matrices -{ - mat4 vpMatrix; - mat4 wMatrix; - mat4x3 wMatrix4x3; - mat3x4 wMatrix3x4; -}; - -layout(location = 0) in vec3 InPos; -layout(location = 1) in vec3 InNormal; - -layout(location = 0) out vec3 OutNormal; -layout(location = 1) out vec4 OutWorldPos[4]; - -void main() -{ - gl_Position = vpMatrix * wMatrix * vec4(InPos, 1); - OutWorldPos[0] = wMatrix * vec4(InPos, 1); - OutWorldPos[1] = vec4(InPos, 1) * wMatrix; - OutWorldPos[2] = wMatrix3x4 * InPos; - OutWorldPos[3] = InPos * wMatrix4x3; - OutNormal = (wMatrix * vec4(InNormal, 0)).xyz; -} diff --git a/third_party/spirv-cross/shaders-msl/vert/float-math.vert b/third_party/spirv-cross/shaders-msl/vert/float-math.vert deleted file mode 100644 index caa8639a89..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/float-math.vert +++ /dev/null @@ -1,25 +0,0 @@ -#version 450 - -layout(set = 0, binding = 0) uniform Matrices -{ - mat4 vpMatrix; - mat4 wMatrix; - mat4x3 wMatrix4x3; - mat3x4 wMatrix3x4; -}; - -layout(location = 0) in vec3 InPos; -layout(location = 1) in vec3 InNormal; - -layout(location = 0) out vec3 OutNormal; -layout(location = 1) out vec4 OutWorldPos[4]; - -void main() -{ - gl_Position = vpMatrix * wMatrix * vec4(InPos, 1); - OutWorldPos[0] = wMatrix * vec4(InPos, 1); - OutWorldPos[1] = vec4(InPos, 1) * wMatrix; - OutWorldPos[2] = wMatrix3x4 * InPos; - OutWorldPos[3] = InPos * wMatrix4x3; - OutNormal = (wMatrix * vec4(InNormal, 0)).xyz; -} diff --git a/third_party/spirv-cross/shaders-msl/vert/functions.vert b/third_party/spirv-cross/shaders-msl/vert/functions.vert deleted file mode 100644 index b92074f465..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/functions.vert +++ /dev/null @@ -1,28 +0,0 @@ -#version 310 es - -layout(std140) uniform UBO -{ - uniform mat4 uMVP; - uniform vec3 rotDeg; - uniform vec3 rotRad; - uniform ivec2 bits; -}; - -layout(location = 0) in vec4 aVertex; -layout(location = 1) in vec3 aNormal; - -layout(location = 0) out vec3 vNormal; -layout(location = 1) out vec3 vRotDeg; -layout(location = 2) out vec3 vRotRad; -layout(location = 3) out ivec2 vLSB; -layout(location = 4) out ivec2 vMSB; - -void main() -{ - gl_Position = inverse(uMVP) * aVertex; - vNormal = aNormal; - vRotDeg = degrees(rotRad); - vRotRad = radians(rotDeg); - vLSB = findLSB(bits); - vMSB = findMSB(bits); -} diff --git a/third_party/spirv-cross/shaders-msl/vert/implicit-position-1.vert b/third_party/spirv-cross/shaders-msl/vert/implicit-position-1.vert deleted file mode 100644 index 54300d8daa..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/implicit-position-1.vert +++ /dev/null @@ -1,6 +0,0 @@ -#version 450 -layout(location = 0) out vec4 V; -void main() -{ - V = vec4(1.0); -} diff --git a/third_party/spirv-cross/shaders-msl/vert/implicit-position-2.vert b/third_party/spirv-cross/shaders-msl/vert/implicit-position-2.vert deleted file mode 100644 index 9996ddaad2..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/implicit-position-2.vert +++ /dev/null @@ -1,4 +0,0 @@ -#version 450 -void main() -{ -} diff --git a/third_party/spirv-cross/shaders-msl/vert/in_out_array_mat.vert b/third_party/spirv-cross/shaders-msl/vert/in_out_array_mat.vert deleted file mode 100644 index bdff3d2802..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/in_out_array_mat.vert +++ /dev/null @@ -1,41 +0,0 @@ -#version 450 - -layout(binding = 0, std140) uniform UBO -{ - mat4 projection; - mat4 model; - float lodBias; -} ubo; - -layout(location = 0) in vec3 inPos; -layout(location = 1) in vec4 colors[3]; -layout(location = 4) in vec3 inNormal; -layout(location = 5) in mat4 inViewMat; -layout(location = 0) out vec3 outPos; -layout(location = 1) out vec3 outNormal; -layout(location = 2) out mat4 outTransModel; -layout(location = 6) out float outLodBias; -layout(location = 7) out vec4 color; - -void write_deeper_in_function() -{ - outTransModel[1][1] = ubo.lodBias; - color = colors[2]; -} - -void write_in_function() -{ - outTransModel[2] = vec4(inNormal, 1.0); - write_deeper_in_function(); -} - -void main() -{ - gl_Position = (ubo.projection * ubo.model) * vec4(inPos, 1.0); - outPos = vec3((ubo.model * vec4(inPos, 1.0)).xyz); - outNormal = mat3(vec3(ubo.model[0].x, ubo.model[0].y, ubo.model[0].z), vec3(ubo.model[1].x, ubo.model[1].y, ubo.model[1].z), vec3(ubo.model[2].x, ubo.model[2].y, ubo.model[2].z)) * inNormal; - outLodBias = ubo.lodBias; - outTransModel = transpose(ubo.model) * inViewMat; - write_in_function(); -} - diff --git a/third_party/spirv-cross/shaders-msl/vert/interface-block-block-composites.frag b/third_party/spirv-cross/shaders-msl/vert/interface-block-block-composites.frag deleted file mode 100644 index a0fb7c975a..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/interface-block-block-composites.frag +++ /dev/null @@ -1,17 +0,0 @@ -#version 450 -layout(location = 0) in mat3 vMatrix; -layout(location = 4) in Vert -{ - mat3 wMatrix; - vec4 wTmp; - float arr[4]; -}; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = wMatrix[0].xxyy + wTmp + vMatrix[1].yyzz; - for (int i = 0; i < 4; i++) - FragColor += arr[i]; -} diff --git a/third_party/spirv-cross/shaders-msl/vert/interface-block-block-composites.vert b/third_party/spirv-cross/shaders-msl/vert/interface-block-block-composites.vert deleted file mode 100644 index 899a852216..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/interface-block-block-composites.vert +++ /dev/null @@ -1,22 +0,0 @@ -#version 450 -layout(location = 0) out mat3 vMatrix; -layout(location = 0) in mat3 Matrix; -layout(location = 4) in vec4 Pos; - -layout(location = 4) out Vert -{ - float arr[3]; - mat3 wMatrix; - vec4 wTmp; -}; - -void main() -{ - vMatrix = Matrix; - wMatrix = Matrix; - arr[0] = 1.0; - arr[1] = 2.0; - arr[2] = 3.0; - wTmp = Pos; - gl_Position = Pos; -} diff --git a/third_party/spirv-cross/shaders-msl/vert/interpolation-qualifiers-block.vert b/third_party/spirv-cross/shaders-msl/vert/interpolation-qualifiers-block.vert deleted file mode 100644 index 73d6cbbd09..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/interpolation-qualifiers-block.vert +++ /dev/null @@ -1,26 +0,0 @@ -#version 450 - -layout(location=0) in vec4 Position; - -struct Output { - vec2 v0; - vec2 v1; - vec3 v2; - vec4 v3; - float v4; - float v5; - float v6; -}; - -layout(location=0) out centroid noperspective Output outp; - -void main() { - outp.v0 = Position.xy; - outp.v1 = Position.zw; - outp.v2 = vec3(Position.x, Position.z * Position.y, Position.x); - outp.v3 = Position.xxyy; - outp.v4 = Position.w; - outp.v5 = Position.y; - outp.v6 = Position.x * Position.w; - gl_Position = Position; -} diff --git a/third_party/spirv-cross/shaders-msl/vert/interpolation-qualifiers.vert b/third_party/spirv-cross/shaders-msl/vert/interpolation-qualifiers.vert deleted file mode 100644 index 541285f2c1..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/interpolation-qualifiers.vert +++ /dev/null @@ -1,22 +0,0 @@ -#version 450 - -layout(location=0) in vec4 Position; - -layout(location=0) out vec2 v0; -layout(location=1) out noperspective vec2 v1; -layout(location=2) out centroid vec3 v2; -layout(location=3) out centroid noperspective vec4 v3; -layout(location=4) out sample float v4; -layout(location=5) out sample noperspective float v5; -layout(location=6) out flat float v6; - -void main() { - v0 = Position.xy; - v1 = Position.zw; - v2 = vec3(Position.x, Position.z * Position.y, Position.x); - v3 = Position.xxyy; - v4 = Position.w; - v5 = Position.y; - v6 = Position.x * Position.w; - gl_Position = Position; -} diff --git a/third_party/spirv-cross/shaders-msl/vert/invariant.msl21.vert b/third_party/spirv-cross/shaders-msl/vert/invariant.msl21.vert deleted file mode 100644 index f090db5e91..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/invariant.msl21.vert +++ /dev/null @@ -1,11 +0,0 @@ -#version 310 es - -invariant gl_Position; -layout(location = 0) in vec4 vInput0; -layout(location = 1) in vec4 vInput1; -layout(location = 2) in vec4 vInput2; - -void main() -{ - gl_Position = vInput0 + vInput1 * vInput2; -} diff --git a/third_party/spirv-cross/shaders-msl/vert/leaf-function.capture.vert b/third_party/spirv-cross/shaders-msl/vert/leaf-function.capture.vert deleted file mode 100644 index cdb60fae31..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/leaf-function.capture.vert +++ /dev/null @@ -1,22 +0,0 @@ -#version 310 es - -layout(std140) uniform UBO -{ - uniform mat4 uMVP; -}; - -layout(location = 0) in vec4 aVertex; -layout(location = 1) in vec3 aNormal; - -layout(location = 0) out vec3 vNormal; - -void set_output() -{ - gl_Position = uMVP * aVertex; - vNormal = aNormal; -} - -void main() -{ - set_output(); -} diff --git a/third_party/spirv-cross/shaders-msl/vert/leaf-function.for-tess.vert b/third_party/spirv-cross/shaders-msl/vert/leaf-function.for-tess.vert deleted file mode 100644 index cdb60fae31..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/leaf-function.for-tess.vert +++ /dev/null @@ -1,22 +0,0 @@ -#version 310 es - -layout(std140) uniform UBO -{ - uniform mat4 uMVP; -}; - -layout(location = 0) in vec4 aVertex; -layout(location = 1) in vec3 aNormal; - -layout(location = 0) out vec3 vNormal; - -void set_output() -{ - gl_Position = uMVP * aVertex; - vNormal = aNormal; -} - -void main() -{ - set_output(); -} diff --git a/third_party/spirv-cross/shaders-msl/vert/no-contraction.vert b/third_party/spirv-cross/shaders-msl/vert/no-contraction.vert deleted file mode 100644 index 206fbf0de8..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/no-contraction.vert +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 - -layout(location = 0) in vec4 vA; -layout(location = 1) in vec4 vB; -layout(location = 2) in vec4 vC; - -void main() -{ - precise vec4 mul = vA * vB; - precise vec4 add = vA + vB; - precise vec4 sub = vA - vB; - precise vec4 mad = vA * vB + vC; - precise vec4 summed = mul + add + sub + mad; - gl_Position = summed; -} diff --git a/third_party/spirv-cross/shaders-msl/vert/no-disable-vertex-out.frag-output.vert b/third_party/spirv-cross/shaders-msl/vert/no-disable-vertex-out.frag-output.vert deleted file mode 100644 index 7ea3790a02..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/no-disable-vertex-out.frag-output.vert +++ /dev/null @@ -1,16 +0,0 @@ -#version 400 -#extension GL_ARB_separate_shader_objects : enable -#extension GL_ARB_shading_language_420pack : enable -layout(std140, binding = 0) uniform buf { - mat4 MVP; - vec4 position[12*3]; - vec4 attr[12*3]; -} ubuf; -layout (location = 0) out vec4 texcoord; -layout (location = 1) out vec3 frag_pos; -void main() -{ - texcoord = ubuf.attr[gl_VertexIndex]; - gl_Position = ubuf.MVP * ubuf.position[gl_VertexIndex]; - frag_pos = gl_Position.xyz; -} diff --git a/third_party/spirv-cross/shaders-msl/vert/no_stage_out.for-tess.vert b/third_party/spirv-cross/shaders-msl/vert/no_stage_out.for-tess.vert deleted file mode 100644 index 3c2573a628..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/no_stage_out.for-tess.vert +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 - -layout(binding = 0, std430) writeonly buffer _10_12 -{ - uvec4 _m0[1024]; -} _12; - -layout(location = 0) in uvec4 _19; - -void main() -{ - _12._m0[gl_VertexIndex] = _19; -} - diff --git a/third_party/spirv-cross/shaders-msl/vert/no_stage_out.vert b/third_party/spirv-cross/shaders-msl/vert/no_stage_out.vert deleted file mode 100644 index 3c2573a628..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/no_stage_out.vert +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 - -layout(binding = 0, std430) writeonly buffer _10_12 -{ - uvec4 _m0[1024]; -} _12; - -layout(location = 0) in uvec4 _19; - -void main() -{ - _12._m0[gl_VertexIndex] = _19; -} - diff --git a/third_party/spirv-cross/shaders-msl/vert/no_stage_out.write_buff.vert b/third_party/spirv-cross/shaders-msl/vert/no_stage_out.write_buff.vert deleted file mode 100644 index 96ed2bd1fd..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/no_stage_out.write_buff.vert +++ /dev/null @@ -1,23 +0,0 @@ -#version 450 - -layout(binding = 1, std430) writeonly buffer _33_35 -{ - uvec4 _m0[1024]; -} _35; - -layout(binding = 0, std140) uniform _38_40 -{ - uvec4 _m0[1024]; -} _40; - -layout(location = 0) in vec4 _14; - -void main() -{ - gl_Position = _14; - for (int _19 = 0; _19 < 1024; _19++) - { - _35._m0[_19] = _40._m0[_19]; - } -} - diff --git a/third_party/spirv-cross/shaders-msl/vert/no_stage_out.write_buff_atomic.vert b/third_party/spirv-cross/shaders-msl/vert/no_stage_out.write_buff_atomic.vert deleted file mode 100644 index 607ac9f342..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/no_stage_out.write_buff_atomic.vert +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 - -layout(binding = 0, std430) coherent buffer _19_21 -{ - uint _m0; -} _21; - -layout(location = 0) in vec4 _14; - -void main() -{ - gl_Position = _14; - uint _26 = atomicAdd(_21._m0, 1u); -} - diff --git a/third_party/spirv-cross/shaders-msl/vert/no_stage_out.write_tex.vert b/third_party/spirv-cross/shaders-msl/vert/no_stage_out.write_tex.vert deleted file mode 100644 index 19c667391d..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/no_stage_out.write_tex.vert +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 - -layout(binding = 1, r32ui) uniform writeonly uimage1D _32; -layout(binding = 0, r32ui) uniform readonly uimage1D _35; - -layout(location = 0) in vec4 _14; - -void main() -{ - gl_Position = _14; - for (int _19 = 0; _19 < 128; _19++) - { - imageStore(_32, _19, imageLoad(_35, _19)); - } -} - diff --git a/third_party/spirv-cross/shaders-msl/vert/out_block.vert b/third_party/spirv-cross/shaders-msl/vert/out_block.vert deleted file mode 100644 index d7a50c783d..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/out_block.vert +++ /dev/null @@ -1,22 +0,0 @@ -#version 450 - -uniform Transform -{ - mat4 transform; -} block; - -layout(location = 0) in vec3 position; -layout(location = 1) in vec4 color; - -layout(location = 2) out VertexOut -{ - vec4 color; - vec4 color2; -} outputs; - -void main() -{ - gl_Position = block.transform * vec4(position, 1.0); - outputs.color = color; - outputs.color2 = color + vec4(1.0); -} diff --git a/third_party/spirv-cross/shaders-msl/vert/packed-bool-to-uint.vert b/third_party/spirv-cross/shaders-msl/vert/packed-bool-to-uint.vert deleted file mode 100644 index 933a15e621..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/packed-bool-to-uint.vert +++ /dev/null @@ -1,22 +0,0 @@ -#version 450 core - -struct Struct -{ - bool flags[1]; -}; - -layout(set=0, binding=0, std140) uniform defaultUniformsVS -{ - Struct flags; - vec2 uquad[4]; - mat4 umatrix; -}; - -layout (location = 0) in vec4 a_position; - -void main() -{ - gl_Position = umatrix * vec4(uquad[gl_VertexIndex], a_position.z, a_position.w); - if (flags.flags[0]) - gl_Position.z = 0.0; -} diff --git a/third_party/spirv-cross/shaders-msl/vert/packed-bool2-to-packed_uint2.vert b/third_party/spirv-cross/shaders-msl/vert/packed-bool2-to-packed_uint2.vert deleted file mode 100644 index e3939a4519..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/packed-bool2-to-packed_uint2.vert +++ /dev/null @@ -1,22 +0,0 @@ -#version 450 core - -struct Struct -{ - bvec2 flags[1]; -}; - -layout(set=0, binding=0, std140) uniform defaultUniformsVS -{ - Struct flags; - vec2 uquad[4]; - mat4 umatrix; -}; - -layout (location = 0) in vec4 a_position; - -void main() -{ - gl_Position = umatrix * vec4(uquad[gl_VertexIndex], a_position.z, a_position.w); - if (flags.flags[0].x) - gl_Position.z = 0.0; -} diff --git a/third_party/spirv-cross/shaders-msl/vert/packed_matrix.vert b/third_party/spirv-cross/shaders-msl/vert/packed_matrix.vert deleted file mode 100644 index 4d99d2190a..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/packed_matrix.vert +++ /dev/null @@ -1,41 +0,0 @@ -#version 450 - -layout(binding = 13, std140) uniform _1365_18812 -{ - layout(row_major) mat4x3 _m0; - layout(row_major) mat4x3 _m1; -} _18812; - -layout(binding = 12, std140) uniform _1126_22044 -{ - layout(row_major) mat4 _m0; - layout(row_major) mat4 _m1; - float _m9; - vec3 _m10; - float _m11; - vec3 _m12; - float _m17; - float _m18; - float _m19; - vec2 _m20; -} _22044; - -layout(location = 0) out vec3 _3976; -layout(location = 0) in vec4 _5275; - -vec3 _2; - -void main() -{ - vec3 _23783; - do - { - _23783 = normalize(_18812._m1 * vec4(_5275.xyz, 0.0)); - break; - } while (false); - vec4 _14995 = vec4(_22044._m10 + (_5275.xyz * (_22044._m17 + _22044._m18)), 1.0) * _22044._m0; - _3976 = _23783; - vec4 _6282 = _14995; - _6282.y = -_14995.y; - gl_Position = _6282; -} diff --git a/third_party/spirv-cross/shaders-msl/vert/pointsize.vert b/third_party/spirv-cross/shaders-msl/vert/pointsize.vert deleted file mode 100644 index 0fc7136387..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/pointsize.vert +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 -uniform params { - mat4 mvp; - float psize; -}; - -layout(location = 0) in vec4 position; -layout(location = 1) in vec4 color0; -layout(location = 0) out vec4 color; - -void main() { - gl_Position = mvp * position; - gl_PointSize = psize; - color = color0; -} diff --git a/third_party/spirv-cross/shaders-msl/vert/read-from-row-major-array.vert b/third_party/spirv-cross/shaders-msl/vert/read-from-row-major-array.vert deleted file mode 100644 index 792fb8e36c..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/read-from-row-major-array.vert +++ /dev/null @@ -1,20 +0,0 @@ -#version 310 es -layout(location = 0) in highp vec4 a_position; -layout(location = 0) out mediump float v_vtxResult; - -layout(set = 0, binding = 0, std140, row_major) uniform Block -{ - highp mat2x3 var[3][4]; -}; - -mediump float compare_float (highp float a, highp float b) { return abs(a - b) < 0.05 ? 1.0 : 0.0; } -mediump float compare_vec3 (highp vec3 a, highp vec3 b) { return compare_float(a.x, b.x)*compare_float(a.y, b.y)*compare_float(a.z, b.z); } -mediump float compare_mat2x3 (highp mat2x3 a, highp mat2x3 b){ return compare_vec3(a[0], b[0])*compare_vec3(a[1], b[1]); } - -void main (void) -{ - gl_Position = a_position; - mediump float result = 1.0; - result *= compare_mat2x3(var[0][0], mat2x3(2.0, 6.0, -6.0, 0.0, 5.0, 5.0)); - v_vtxResult = result; -} diff --git a/third_party/spirv-cross/shaders-msl/vert/resource-arrays-leaf.ios.vert b/third_party/spirv-cross/shaders-msl/vert/resource-arrays-leaf.ios.vert deleted file mode 100644 index b35c410f5c..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/resource-arrays-leaf.ios.vert +++ /dev/null @@ -1,27 +0,0 @@ -#version 450 - -layout(constant_id = 0) const int arraySize = 3; - -layout(binding = 0, rgba32i) uniform iimage2D images[arraySize]; -layout(binding = 4) uniform constant_block -{ - vec4 foo; - int bar; -} constants[4]; - -layout(binding = 8) buffer storage_block -{ - uvec4 baz; - ivec2 quux; -} storage[2]; - -void doWork() -{ - storage[0].baz = uvec4(constants[3].foo); - storage[1].quux = imageLoad(images[2], ivec2(constants[1].bar)).xy; -} - -void main() -{ - doWork(); -} diff --git a/third_party/spirv-cross/shaders-msl/vert/resource-arrays.ios.vert b/third_party/spirv-cross/shaders-msl/vert/resource-arrays.ios.vert deleted file mode 100644 index cddc06ae27..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/resource-arrays.ios.vert +++ /dev/null @@ -1,23 +0,0 @@ -#version 450 - -layout(constant_id = 0) const int arraySize = 3; - -layout(binding = 0, rgba32i) uniform iimage2D images[arraySize]; - -layout(binding = 4) uniform constant_block -{ - vec4 foo; - int bar; -} constants[4]; - -layout(binding = 8) buffer storage_block -{ - uvec4 baz; - ivec2 quux; -} storage[2]; - -void main() -{ - storage[0].baz = uvec4(constants[3].foo); - storage[1].quux = imageLoad(images[2], ivec2(constants[1].bar)).xy; -} diff --git a/third_party/spirv-cross/shaders-msl/vert/return-array.force-native-array.vert b/third_party/spirv-cross/shaders-msl/vert/return-array.force-native-array.vert deleted file mode 100644 index 708460114e..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/return-array.force-native-array.vert +++ /dev/null @@ -1,22 +0,0 @@ -#version 310 es - -layout(location = 0) in vec4 vInput0; -layout(location = 1) in vec4 vInput1; - -vec4[2] test() -{ - return vec4[](vec4(10.0), vec4(20.0)); -} - -vec4[2] test2() -{ - vec4 foobar[2]; - foobar[0] = vInput0; - foobar[1] = vInput1; - return foobar; -} - -void main() -{ - gl_Position = test()[0] + test2()[1]; -} diff --git a/third_party/spirv-cross/shaders-msl/vert/return-array.vert b/third_party/spirv-cross/shaders-msl/vert/return-array.vert deleted file mode 100644 index 708460114e..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/return-array.vert +++ /dev/null @@ -1,22 +0,0 @@ -#version 310 es - -layout(location = 0) in vec4 vInput0; -layout(location = 1) in vec4 vInput1; - -vec4[2] test() -{ - return vec4[](vec4(10.0), vec4(20.0)); -} - -vec4[2] test2() -{ - vec4 foobar[2]; - foobar[0] = vInput0; - foobar[1] = vInput1; - return foobar; -} - -void main() -{ - gl_Position = test()[0] + test2()[1]; -} diff --git a/third_party/spirv-cross/shaders-msl/vert/set_builtin_in_func.vert b/third_party/spirv-cross/shaders-msl/vert/set_builtin_in_func.vert deleted file mode 100644 index dd991e3545..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/set_builtin_in_func.vert +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -void write_outblock() -{ - gl_PointSize = 1.0; - gl_Position = vec4(gl_PointSize); -} - -void main() -{ - write_outblock(); -} diff --git a/third_party/spirv-cross/shaders-msl/vert/sign-int-types.vert b/third_party/spirv-cross/shaders-msl/vert/sign-int-types.vert deleted file mode 100644 index f8530a466d..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/sign-int-types.vert +++ /dev/null @@ -1,38 +0,0 @@ -#version 310 es - -layout(std140) uniform UBO -{ - uniform mat4 uMVP; - uniform vec4 uFloatVec4; - uniform vec3 uFloatVec3; - uniform vec2 uFloatVec2; - uniform float uFloat; - uniform ivec4 uIntVec4; - uniform ivec3 uIntVec3; - uniform ivec2 uIntVec2; - uniform int uInt; -}; - -layout(location = 0) in vec4 aVertex; - -layout(location = 0) out vec4 vFloatVec4; -layout(location = 1) out vec3 vFloatVec3; -layout(location = 2) out vec2 vFloatVec2; -layout(location = 3) out float vFloat; -layout(location = 4) flat out ivec4 vIntVec4; -layout(location = 5) flat out ivec3 vIntVec3; -layout(location = 6) flat out ivec2 vIntVec2; -layout(location = 7) flat out int vInt; - -void main() -{ - gl_Position = uMVP * aVertex; - vFloatVec4 = sign(uFloatVec4); - vFloatVec3 = sign(uFloatVec3); - vFloatVec2 = sign(uFloatVec2); - vFloat = sign(uFloat); - vIntVec4 = sign(uIntVec4); - vIntVec3 = sign(uIntVec3); - vIntVec2 = sign(uIntVec2); - vInt = sign(uInt); -} diff --git a/third_party/spirv-cross/shaders-msl/vert/signedness-mismatch.shader-inputs.vert b/third_party/spirv-cross/shaders-msl/vert/signedness-mismatch.shader-inputs.vert deleted file mode 100644 index dc0f7e6b52..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/signedness-mismatch.shader-inputs.vert +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 - -#extension GL_AMD_gpu_shader_int16 : require - -layout(location = 0) in int16_t a; -layout(location = 1) in ivec2 b; -layout(location = 2) in uint16_t c[2]; -layout(location = 4) in uvec4 d[2]; - -void main() -{ - gl_Position = vec4(float(int(a)), float(b.x), float(uint(c[1])), float(d[0].w)); -} - diff --git a/third_party/spirv-cross/shaders-msl/vert/texture_buffer.texture-buffer-native.msl21.vert b/third_party/spirv-cross/shaders-msl/vert/texture_buffer.texture-buffer-native.msl21.vert deleted file mode 100644 index 6bc7ddfae2..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/texture_buffer.texture-buffer-native.msl21.vert +++ /dev/null @@ -1,10 +0,0 @@ -#version 310 es -#extension GL_OES_texture_buffer : require - -layout(binding = 4) uniform highp samplerBuffer uSamp; -layout(rgba32f, binding = 5) uniform readonly highp imageBuffer uSampo; - -void main() -{ - gl_Position = texelFetch(uSamp, 10) + imageLoad(uSampo, 100); -} diff --git a/third_party/spirv-cross/shaders-msl/vert/texture_buffer.vert b/third_party/spirv-cross/shaders-msl/vert/texture_buffer.vert deleted file mode 100644 index 6bc7ddfae2..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/texture_buffer.vert +++ /dev/null @@ -1,10 +0,0 @@ -#version 310 es -#extension GL_OES_texture_buffer : require - -layout(binding = 4) uniform highp samplerBuffer uSamp; -layout(rgba32f, binding = 5) uniform readonly highp imageBuffer uSampo; - -void main() -{ - gl_Position = texelFetch(uSamp, 10) + imageLoad(uSampo, 100); -} diff --git a/third_party/spirv-cross/shaders-msl/vert/ubo.alignment.vert b/third_party/spirv-cross/shaders-msl/vert/ubo.alignment.vert deleted file mode 100644 index 2e9d16df43..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/ubo.alignment.vert +++ /dev/null @@ -1,23 +0,0 @@ -#version 310 es - -layout(binding = 0, std140) uniform UBO -{ - mat4 mvp; - vec2 targSize; - vec3 color; // vec3 following vec2 should cause MSL to add pad if float3 is packed - float opacity; // Single float following vec3 should cause MSL float3 to pack -}; - -layout(location = 0) in vec4 aVertex; -layout(location = 1) in vec3 aNormal; -layout(location = 0) out vec3 vNormal; -layout(location = 1) out vec3 vColor; -layout(location = 2) out vec2 vSize; - -void main() -{ - gl_Position = mvp * aVertex; - vNormal = aNormal; - vColor = color * opacity; - vSize = targSize * opacity; -} diff --git a/third_party/spirv-cross/shaders-msl/vert/ubo.vert b/third_party/spirv-cross/shaders-msl/vert/ubo.vert deleted file mode 100644 index 82e4626e12..0000000000 --- a/third_party/spirv-cross/shaders-msl/vert/ubo.vert +++ /dev/null @@ -1,16 +0,0 @@ -#version 310 es - -layout(binding = 0, std140) uniform UBO -{ - mat4 mvp; -}; - -layout(location = 0) in vec4 aVertex; -layout(location = 1) in vec3 aNormal; -layout(location = 0) out vec3 vNormal; - -void main() -{ - gl_Position = mvp * aVertex; - vNormal = aNormal; -} diff --git a/third_party/spirv-cross/shaders-msl/vulkan/frag/basic.multiview.no-layered.nocompat.vk.frag b/third_party/spirv-cross/shaders-msl/vulkan/frag/basic.multiview.no-layered.nocompat.vk.frag deleted file mode 100644 index 963493b871..0000000000 --- a/third_party/spirv-cross/shaders-msl/vulkan/frag/basic.multiview.no-layered.nocompat.vk.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es -#extension GL_EXT_multiview : require -precision mediump float; - -layout(location = 0) in vec4 vColor; -layout(location = 1) in vec2 vTex[4]; -layout(binding = 0) uniform sampler2D uTex; -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vColor * texture(uTex, vTex[gl_ViewIndex]); -} - diff --git a/third_party/spirv-cross/shaders-msl/vulkan/frag/basic.multiview.nocompat.vk.frag b/third_party/spirv-cross/shaders-msl/vulkan/frag/basic.multiview.nocompat.vk.frag deleted file mode 100644 index 963493b871..0000000000 --- a/third_party/spirv-cross/shaders-msl/vulkan/frag/basic.multiview.nocompat.vk.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es -#extension GL_EXT_multiview : require -precision mediump float; - -layout(location = 0) in vec4 vColor; -layout(location = 1) in vec2 vTex[4]; -layout(binding = 0) uniform sampler2D uTex; -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vColor * texture(uTex, vTex[gl_ViewIndex]); -} - diff --git a/third_party/spirv-cross/shaders-msl/vulkan/frag/demote-to-helper-forwarding.asm.vk.nocompat.msl23.frag b/third_party/spirv-cross/shaders-msl/vulkan/frag/demote-to-helper-forwarding.asm.vk.nocompat.msl23.frag deleted file mode 100644 index ba57b8c5af..0000000000 --- a/third_party/spirv-cross/shaders-msl/vulkan/frag/demote-to-helper-forwarding.asm.vk.nocompat.msl23.frag +++ /dev/null @@ -1,41 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 19 -; Schema: 0 - OpCapability Shader - OpCapability DemoteToHelperInvocationEXT - OpExtension "SPV_EXT_demote_to_helper_invocation" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpSourceExtension "GL_EXT_demote_to_helper_invocation" - OpName %main "main" - OpName %FragColor "FragColor" - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %bool = OpTypeBool -%_ptr_Function_bool = OpTypePointer Function %bool - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %float_1 = OpConstant %float 1 - %float_0 = OpConstant %float 0 - %19 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 - %main = OpFunction %void None %3 - %5 = OpLabel - %9 = OpIsHelperInvocationEXT %bool - OpDemoteToHelperInvocationEXT - %10 = OpLogicalNot %bool %9 - OpSelectionMerge %12 None - OpBranchConditional %10 %11 %12 - %11 = OpLabel - OpStore %FragColor %19 - OpBranch %12 - %12 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-msl/vulkan/frag/demote-to-helper.vk.nocompat.msl23.frag b/third_party/spirv-cross/shaders-msl/vulkan/frag/demote-to-helper.vk.nocompat.msl23.frag deleted file mode 100644 index 8b8bb61ff7..0000000000 --- a/third_party/spirv-cross/shaders-msl/vulkan/frag/demote-to-helper.vk.nocompat.msl23.frag +++ /dev/null @@ -1,8 +0,0 @@ -#version 450 -#extension GL_EXT_demote_to_helper_invocation : require - -void main() -{ - demote; - bool helper = helperInvocationEXT(); -} diff --git a/third_party/spirv-cross/shaders-msl/vulkan/frag/demote-to-helper.vk.nocompat.msl23.ios.frag b/third_party/spirv-cross/shaders-msl/vulkan/frag/demote-to-helper.vk.nocompat.msl23.ios.frag deleted file mode 100644 index 8b8bb61ff7..0000000000 --- a/third_party/spirv-cross/shaders-msl/vulkan/frag/demote-to-helper.vk.nocompat.msl23.ios.frag +++ /dev/null @@ -1,8 +0,0 @@ -#version 450 -#extension GL_EXT_demote_to_helper_invocation : require - -void main() -{ - demote; - bool helper = helperInvocationEXT(); -} diff --git a/third_party/spirv-cross/shaders-msl/vulkan/frag/push-constant.vk.frag b/third_party/spirv-cross/shaders-msl/vulkan/frag/push-constant.vk.frag deleted file mode 100644 index 6180faba31..0000000000 --- a/third_party/spirv-cross/shaders-msl/vulkan/frag/push-constant.vk.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 310 es -precision mediump float; - -layout(push_constant, std430) uniform PushConstants -{ - vec4 value0; - vec4 value1; -} push; - -layout(location = 0) in vec4 vColor; -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vColor + push.value0 + push.value1; -} diff --git a/third_party/spirv-cross/shaders-msl/vulkan/frag/spec-constant.msl11.vk.frag b/third_party/spirv-cross/shaders-msl/vulkan/frag/spec-constant.msl11.vk.frag deleted file mode 100644 index 3cb75da5c0..0000000000 --- a/third_party/spirv-cross/shaders-msl/vulkan/frag/spec-constant.msl11.vk.frag +++ /dev/null @@ -1,67 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) out vec4 FragColor; -layout(constant_id = 1) const float a = 1.0; -layout(constant_id = 2) const float b = 2.0; -layout(constant_id = 3) const int c = 3; -layout(constant_id = 4) const int d = 4; -layout(constant_id = 5) const uint e = 5u; -layout(constant_id = 6) const uint f = 6u; -layout(constant_id = 7) const bool g = false; -layout(constant_id = 8) const bool h = true; -// glslang doesn't seem to support partial spec constants or composites yet, so only test the basics. - -void main() -{ - float t0 = a; - float t1 = b; - - uint c0 = uint(c); // OpIAdd with different types. - // FConvert, float-to-double. - int c1 = -c; // SNegate - int c2 = ~c; // OpNot - int c3 = c + d; // OpIAdd - int c4 = c - d; // OpISub - int c5 = c * d; // OpIMul - int c6 = c / d; // OpSDiv - uint c7 = e / f; // OpUDiv - int c8 = c % d; // OpSMod - uint c9 = e % f; // OpUMod - // TODO: OpSRem, any way to access this in GLSL? - int c10 = c >> d; // OpShiftRightArithmetic - uint c11 = e >> f; // OpShiftRightLogical - int c12 = c << d; // OpShiftLeftLogical - int c13 = c | d; // OpBitwiseOr - int c14 = c ^ d; // OpBitwiseXor - int c15 = c & d; // OpBitwiseAnd - // VectorShuffle, CompositeExtract, CompositeInsert, not testable atm. - bool c16 = g || h; // OpLogicalOr - bool c17 = g && h; // OpLogicalAnd - bool c18 = !g; // OpLogicalNot - bool c19 = g == h; // OpLogicalEqual - bool c20 = g != h; // OpLogicalNotEqual - // OpSelect not testable atm. - bool c21 = c == d; // OpIEqual - bool c22 = c != d; // OpINotEqual - bool c23 = c < d; // OpSLessThan - bool c24 = e < f; // OpULessThan - bool c25 = c > d; // OpSGreaterThan - bool c26 = e > f; // OpUGreaterThan - bool c27 = c <= d; // OpSLessThanEqual - bool c28 = e <= f; // OpULessThanEqual - bool c29 = c >= d; // OpSGreaterThanEqual - bool c30 = e >= f; // OpUGreaterThanEqual - // OpQuantizeToF16 not testable atm. - - int c31 = c8 + c3; - - int c32 = int(e); // OpIAdd with different types. - bool c33 = bool(c); // int -> bool - bool c34 = bool(e); // uint -> bool - int c35 = int(g); // bool -> int - uint c36 = uint(g); // bool -> uint - float c37 = float(g); // bool -> float - - FragColor = vec4(t0 + t1); -} diff --git a/third_party/spirv-cross/shaders-msl/vulkan/frag/spec-constant.vk.frag b/third_party/spirv-cross/shaders-msl/vulkan/frag/spec-constant.vk.frag deleted file mode 100644 index 3cb75da5c0..0000000000 --- a/third_party/spirv-cross/shaders-msl/vulkan/frag/spec-constant.vk.frag +++ /dev/null @@ -1,67 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) out vec4 FragColor; -layout(constant_id = 1) const float a = 1.0; -layout(constant_id = 2) const float b = 2.0; -layout(constant_id = 3) const int c = 3; -layout(constant_id = 4) const int d = 4; -layout(constant_id = 5) const uint e = 5u; -layout(constant_id = 6) const uint f = 6u; -layout(constant_id = 7) const bool g = false; -layout(constant_id = 8) const bool h = true; -// glslang doesn't seem to support partial spec constants or composites yet, so only test the basics. - -void main() -{ - float t0 = a; - float t1 = b; - - uint c0 = uint(c); // OpIAdd with different types. - // FConvert, float-to-double. - int c1 = -c; // SNegate - int c2 = ~c; // OpNot - int c3 = c + d; // OpIAdd - int c4 = c - d; // OpISub - int c5 = c * d; // OpIMul - int c6 = c / d; // OpSDiv - uint c7 = e / f; // OpUDiv - int c8 = c % d; // OpSMod - uint c9 = e % f; // OpUMod - // TODO: OpSRem, any way to access this in GLSL? - int c10 = c >> d; // OpShiftRightArithmetic - uint c11 = e >> f; // OpShiftRightLogical - int c12 = c << d; // OpShiftLeftLogical - int c13 = c | d; // OpBitwiseOr - int c14 = c ^ d; // OpBitwiseXor - int c15 = c & d; // OpBitwiseAnd - // VectorShuffle, CompositeExtract, CompositeInsert, not testable atm. - bool c16 = g || h; // OpLogicalOr - bool c17 = g && h; // OpLogicalAnd - bool c18 = !g; // OpLogicalNot - bool c19 = g == h; // OpLogicalEqual - bool c20 = g != h; // OpLogicalNotEqual - // OpSelect not testable atm. - bool c21 = c == d; // OpIEqual - bool c22 = c != d; // OpINotEqual - bool c23 = c < d; // OpSLessThan - bool c24 = e < f; // OpULessThan - bool c25 = c > d; // OpSGreaterThan - bool c26 = e > f; // OpUGreaterThan - bool c27 = c <= d; // OpSLessThanEqual - bool c28 = e <= f; // OpULessThanEqual - bool c29 = c >= d; // OpSGreaterThanEqual - bool c30 = e >= f; // OpUGreaterThanEqual - // OpQuantizeToF16 not testable atm. - - int c31 = c8 + c3; - - int c32 = int(e); // OpIAdd with different types. - bool c33 = bool(c); // int -> bool - bool c34 = bool(e); // uint -> bool - int c35 = int(g); // bool -> int - uint c36 = uint(g); // bool -> uint - float c37 = float(g); // bool -> float - - FragColor = vec4(t0 + t1); -} diff --git a/third_party/spirv-cross/shaders-msl/vulkan/vert/device-group.multiview.viewfromdev.nocompat.vk.vert b/third_party/spirv-cross/shaders-msl/vulkan/vert/device-group.multiview.viewfromdev.nocompat.vk.vert deleted file mode 100644 index d54931a6de..0000000000 --- a/third_party/spirv-cross/shaders-msl/vulkan/vert/device-group.multiview.viewfromdev.nocompat.vk.vert +++ /dev/null @@ -1,8 +0,0 @@ -#version 450 core -#extension GL_EXT_device_group : require -#extension GL_EXT_multiview : require - -void main() -{ - gl_Position = vec4(gl_DeviceIndex, gl_ViewIndex, 0.0, 1.0); -} diff --git a/third_party/spirv-cross/shaders-msl/vulkan/vert/device-group.nocompat.vk.vert b/third_party/spirv-cross/shaders-msl/vulkan/vert/device-group.nocompat.vk.vert deleted file mode 100644 index 16ed51b15e..0000000000 --- a/third_party/spirv-cross/shaders-msl/vulkan/vert/device-group.nocompat.vk.vert +++ /dev/null @@ -1,7 +0,0 @@ -#version 450 core -#extension GL_EXT_device_group : require - -void main() -{ - gl_Position = vec4(gl_DeviceIndex); -} diff --git a/third_party/spirv-cross/shaders-msl/vulkan/vert/multiview.multiview.no-layered.nocompat.vk.vert b/third_party/spirv-cross/shaders-msl/vulkan/vert/multiview.multiview.no-layered.nocompat.vk.vert deleted file mode 100644 index eb1bc766f2..0000000000 --- a/third_party/spirv-cross/shaders-msl/vulkan/vert/multiview.multiview.no-layered.nocompat.vk.vert +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es -#extension GL_EXT_multiview : require - -layout(std140, binding = 0) uniform MVPs -{ - mat4 MVP[2]; -}; - -layout(location = 0) in vec4 Position; - -void main() -{ - gl_Position = MVP[gl_ViewIndex] * Position; -} diff --git a/third_party/spirv-cross/shaders-msl/vulkan/vert/multiview.multiview.nocompat.vk.vert b/third_party/spirv-cross/shaders-msl/vulkan/vert/multiview.multiview.nocompat.vk.vert deleted file mode 100644 index eb1bc766f2..0000000000 --- a/third_party/spirv-cross/shaders-msl/vulkan/vert/multiview.multiview.nocompat.vk.vert +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es -#extension GL_EXT_multiview : require - -layout(std140, binding = 0) uniform MVPs -{ - mat4 MVP[2]; -}; - -layout(location = 0) in vec4 Position; - -void main() -{ - gl_Position = MVP[gl_ViewIndex] * Position; -} diff --git a/third_party/spirv-cross/shaders-msl/vulkan/vert/multiview.nocompat.vk.vert b/third_party/spirv-cross/shaders-msl/vulkan/vert/multiview.nocompat.vk.vert deleted file mode 100644 index eb1bc766f2..0000000000 --- a/third_party/spirv-cross/shaders-msl/vulkan/vert/multiview.nocompat.vk.vert +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es -#extension GL_EXT_multiview : require - -layout(std140, binding = 0) uniform MVPs -{ - mat4 MVP[2]; -}; - -layout(location = 0) in vec4 Position; - -void main() -{ - gl_Position = MVP[gl_ViewIndex] * Position; -} diff --git a/third_party/spirv-cross/shaders-msl/vulkan/vert/small-storage.vk.vert b/third_party/spirv-cross/shaders-msl/vulkan/vert/small-storage.vk.vert deleted file mode 100644 index 0ca8144ce1..0000000000 --- a/third_party/spirv-cross/shaders-msl/vulkan/vert/small-storage.vk.vert +++ /dev/null @@ -1,38 +0,0 @@ -#version 450 core - -// GL_EXT_shader_16bit_storage doesn't support input/output. -#extension GL_EXT_shader_8bit_storage : require -#extension GL_AMD_gpu_shader_int16 : require -#extension GL_AMD_gpu_shader_half_float : require - -layout(location = 0) in int16_t foo; -layout(location = 1) in uint16_t bar; -layout(location = 2) in float16_t baz; - -layout(binding = 0) uniform block { - i16vec2 a; - u16vec2 b; - i8vec2 c; - u8vec2 d; - f16vec2 e; -}; - -layout(binding = 1) readonly buffer storage { - i16vec3 f; - u16vec3 g; - i8vec3 h; - u8vec3 i; - f16vec3 j; -}; - -layout(location = 0) out i16vec4 p; -layout(location = 1) out u16vec4 q; -layout(location = 2) out f16vec4 r; - -void main() { - p = i16vec4(int(foo) + ivec4(ivec2(a), ivec2(c)) - ivec4(ivec3(f) / ivec3(h), 1)); - q = u16vec4(uint(bar) + uvec4(uvec2(b), uvec2(d)) - uvec4(uvec3(g) / uvec3(i), 1)); - r = f16vec4(float(baz) + vec4(vec2(e), 0, 1) - vec4(vec3(j), 1)); - gl_Position = vec4(0, 0, 0, 1); -} - diff --git a/third_party/spirv-cross/shaders-msl/vulkan/vert/vulkan-vertex.vk.vert b/third_party/spirv-cross/shaders-msl/vulkan/vert/vulkan-vertex.vk.vert deleted file mode 100644 index 4d0438ace6..0000000000 --- a/third_party/spirv-cross/shaders-msl/vulkan/vert/vulkan-vertex.vk.vert +++ /dev/null @@ -1,6 +0,0 @@ -#version 310 es - -void main() -{ - gl_Position = float(gl_VertexIndex + gl_InstanceIndex) * vec4(1.0, 2.0, 3.0, 4.0); -} diff --git a/third_party/spirv-cross/shaders-no-opt/asm/comp/access-chain-dominator-in-loop-body-2.asm.comp b/third_party/spirv-cross/shaders-no-opt/asm/comp/access-chain-dominator-in-loop-body-2.asm.comp deleted file mode 100644 index 8f4c95783d..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/comp/access-chain-dominator-in-loop-body-2.asm.comp +++ /dev/null @@ -1,55 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 52 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "values" - OpName %_ "" - OpDecorate %_runtimearr_int ArrayStride 4 - OpMemberDecorate %SSBO 0 Offset 0 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %int_100 = OpConstant %int 100 - %bool = OpTypeBool -%_runtimearr_int = OpTypeRuntimeArray %int - %SSBO = OpTypeStruct %_runtimearr_int -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform -%_ptr_Uniform_int = OpTypePointer Uniform %int - %int_1 = OpConstant %int 1 - %main = OpFunction %void None %3 - %5 = OpLabel - OpBranch %32 - %32 = OpLabel - %51 = OpPhi %int %int_0 %5 %49 %loop_continue - %38 = OpSLessThan %bool %51 %int_100 - OpLoopMerge %loop_merge %loop_continue None - OpBranchConditional %38 %loop_body %loop_merge - %loop_body = OpLabel - %40 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %51 - OpBranch %loop_continue - %loop_continue = OpLabel - %41 = OpLoad %int %40 - %44 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %41 - OpStore %44 %51 - %47 = OpIAdd %int %41 %int_1 - %48 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %47 - %49 = OpLoad %int %48 - OpStore %40 %49 - OpBranch %32 - %loop_merge = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/comp/access-chain-dominator-in-loop-body.asm.comp b/third_party/spirv-cross/shaders-no-opt/asm/comp/access-chain-dominator-in-loop-body.asm.comp deleted file mode 100644 index b1ddd7cc8f..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/comp/access-chain-dominator-in-loop-body.asm.comp +++ /dev/null @@ -1,54 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 52 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "values" - OpName %_ "" - OpDecorate %_runtimearr_int ArrayStride 4 - OpMemberDecorate %SSBO 0 Offset 0 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %int_100 = OpConstant %int 100 - %bool = OpTypeBool -%_runtimearr_int = OpTypeRuntimeArray %int - %SSBO = OpTypeStruct %_runtimearr_int -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform -%_ptr_Uniform_int = OpTypePointer Uniform %int - %int_1 = OpConstant %int 1 - %main = OpFunction %void None %3 - %5 = OpLabel - OpBranch %32 - %32 = OpLabel - %51 = OpPhi %int %int_0 %5 %49 %loop_continue - %38 = OpSLessThan %bool %51 %int_100 - OpLoopMerge %loop_merge %loop_continue None - OpBranchConditional %38 %loop_body %loop_merge - %loop_body = OpLabel - %40 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %51 - OpBranch %loop_continue - %loop_continue = OpLabel - %41 = OpLoad %int %40 - %44 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %41 - OpStore %44 %51 - %47 = OpIAdd %int %41 %int_1 - %48 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %47 - %49 = OpLoad %int %48 - OpBranch %32 - %loop_merge = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/comp/access-tracking-function-call-result.asm.comp b/third_party/spirv-cross/shaders-no-opt/asm/comp/access-tracking-function-call-result.asm.comp deleted file mode 100644 index c11d4cdd0a..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/comp/access-tracking-function-call-result.asm.comp +++ /dev/null @@ -1,54 +0,0 @@ -; SPIR-V -; Version: 1.5 -; Generator: Khronos SPIR-V Tools Assembler; 0 -; Bound: 25 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 460 - OpName %main "main" - OpName %foo_ "foo(" - OpName %Output "Output" - OpMemberName %Output 0 "myout" - OpName %_ "" - OpMemberDecorate %Output 0 Offset 0 - OpDecorate %Output BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - %void = OpTypeVoid - %7 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %9 = OpTypeFunction %int - %int_12 = OpConstant %int 12 - %bool = OpTypeBool - %true = OpConstantTrue %bool - %Output = OpTypeStruct %int -%_ptr_Uniform_Output = OpTypePointer Uniform %Output - %_ = OpVariable %_ptr_Uniform_Output Uniform - %int_0 = OpConstant %int 0 -%_ptr_Uniform_int = OpTypePointer Uniform %int - %main = OpFunction %void None %7 - %16 = OpLabel - %17 = OpFunctionCall %int %foo_ - OpBranch %18 - %18 = OpLabel - OpLoopMerge %19 %20 None - OpBranchConditional %true %21 %19 - %21 = OpLabel - %22 = OpAccessChain %_ptr_Uniform_int %_ %int_0 - OpStore %22 %17 - OpReturn - %20 = OpLabel - OpBranch %18 - %19 = OpLabel - %23 = OpAccessChain %_ptr_Uniform_int %_ %int_0 - OpStore %23 %17 - OpReturn - OpFunctionEnd - %foo_ = OpFunction %int None %9 - %24 = OpLabel - OpReturnValue %int_12 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/comp/aliased-struct-divergent-member-name.asm.comp b/third_party/spirv-cross/shaders-no-opt/asm/comp/aliased-struct-divergent-member-name.asm.comp deleted file mode 100644 index 87aee2db54..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/comp/aliased-struct-divergent-member-name.asm.comp +++ /dev/null @@ -1,77 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 37 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %T "T" - OpMemberName %T 0 "a" - OpName %v "v" - OpName %T_0 "T" - OpMemberName %T_0 0 "b" - OpName %SSBO1 "SSBO1" - OpMemberName %SSBO1 0 "foo" - OpName %_ "" - OpName %T_1 "T" - OpMemberName %T_1 0 "c" - OpName %SSBO2 "SSBO2" - OpMemberName %SSBO2 0 "bar" - OpName %__0 "" - OpMemberDecorate %T_0 0 Offset 0 - OpDecorate %_runtimearr_T_0 ArrayStride 4 - OpMemberDecorate %SSBO1 0 Offset 0 - OpDecorate %SSBO1 BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - OpMemberDecorate %T_1 0 Offset 0 - OpDecorate %_runtimearr_T_1 ArrayStride 16 - OpMemberDecorate %SSBO2 0 Offset 0 - OpDecorate %SSBO2 BufferBlock - OpDecorate %__0 DescriptorSet 0 - OpDecorate %__0 Binding 1 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %T = OpTypeStruct %float -%_ptr_Function_T = OpTypePointer Function %T - %float_40 = OpConstant %float 40 - %11 = OpConstantComposite %T %float_40 - %T_0 = OpTypeStruct %float -%_runtimearr_T_0 = OpTypeRuntimeArray %T_0 - %SSBO1 = OpTypeStruct %_runtimearr_T_0 -%_ptr_Uniform_SSBO1 = OpTypePointer Uniform %SSBO1 - %_ = OpVariable %_ptr_Uniform_SSBO1 Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %int_10 = OpConstant %int 10 -%_ptr_Uniform_T_0 = OpTypePointer Uniform %T_0 -%_ptr_Uniform_float = OpTypePointer Uniform %float - %T_1 = OpTypeStruct %float -%_runtimearr_T_1 = OpTypeRuntimeArray %T_1 - %SSBO2 = OpTypeStruct %_runtimearr_T_1 -%_ptr_Uniform_SSBO2 = OpTypePointer Uniform %SSBO2 - %__0 = OpVariable %_ptr_Uniform_SSBO2 Uniform - %int_30 = OpConstant %int 30 -%_ptr_Uniform_T_1 = OpTypePointer Uniform %T_1 - %main = OpFunction %void None %3 - %5 = OpLabel - %v = OpVariable %_ptr_Function_T Function - OpStore %v %11 - %20 = OpLoad %T %v - %22 = OpAccessChain %_ptr_Uniform_T_0 %_ %int_0 %int_10 - %23 = OpCompositeExtract %float %20 0 - %25 = OpAccessChain %_ptr_Uniform_float %22 %int_0 - OpStore %25 %23 - %32 = OpLoad %T %v - %34 = OpAccessChain %_ptr_Uniform_T_1 %__0 %int_0 %int_30 - %35 = OpCompositeExtract %float %32 0 - %36 = OpAccessChain %_ptr_Uniform_float %34 %int_0 - OpStore %36 %35 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/comp/arithmetic-conversion-signs.asm.nocompat.vk.comp b/third_party/spirv-cross/shaders-no-opt/asm/comp/arithmetic-conversion-signs.asm.nocompat.vk.comp deleted file mode 100644 index 504a9546c5..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/comp/arithmetic-conversion-signs.asm.nocompat.vk.comp +++ /dev/null @@ -1,143 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 76 -; Schema: 0 - OpCapability Shader - OpCapability Int16 - OpCapability StorageBuffer16BitAccess - OpExtension "SPV_KHR_16bit_storage" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpSourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16" - OpName %main "main" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "s32" - OpMemberName %SSBO 1 "u32" - OpMemberName %SSBO 2 "s16" - OpMemberName %SSBO 3 "u16" - OpMemberName %SSBO 4 "f32" - OpName %_ "" - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %SSBO 1 Offset 4 - OpMemberDecorate %SSBO 2 Offset 8 - OpMemberDecorate %SSBO 3 Offset 10 - OpMemberDecorate %SSBO 4 Offset 12 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %uint = OpTypeInt 32 0 - %short = OpTypeInt 16 1 - %ushort = OpTypeInt 16 0 - %float = OpTypeFloat 32 - %SSBO = OpTypeStruct %int %uint %short %ushort %float -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform - %int_2 = OpConstant %int 2 - %int_0 = OpConstant %int 0 -%_ptr_Uniform_int = OpTypePointer Uniform %int -%_ptr_Uniform_short = OpTypePointer Uniform %short - %int_1 = OpConstant %int 1 -%_ptr_Uniform_uint = OpTypePointer Uniform %uint - %int_3 = OpConstant %int 3 -%_ptr_Uniform_ushort = OpTypePointer Uniform %ushort - %int_4 = OpConstant %int 4 -%_ptr_Uniform_float = OpTypePointer Uniform %float - %main = OpFunction %void None %3 - %5 = OpLabel - %ptr_s32 = OpAccessChain %_ptr_Uniform_int %_ %int_0 - %ptr_u32 = OpAccessChain %_ptr_Uniform_uint %_ %int_1 - %ptr_s16 = OpAccessChain %_ptr_Uniform_short %_ %int_2 - %ptr_u16 = OpAccessChain %_ptr_Uniform_ushort %_ %int_3 - %ptr_f32 = OpAccessChain %_ptr_Uniform_float %_ %int_4 - %s32 = OpLoad %int %ptr_s32 - %u32 = OpLoad %uint %ptr_u32 - %s16 = OpLoad %short %ptr_s16 - %u16 = OpLoad %ushort %ptr_u16 - %f32 = OpLoad %float %ptr_f32 - - ; Sign-extend - %s16_to_s32_signed = OpSConvert %int %s16 - OpStore %ptr_s32 %s16_to_s32_signed - %s16_to_u32_signed = OpSConvert %uint %s16 - OpStore %ptr_u32 %s16_to_u32_signed - - %u16_to_s32_signed = OpSConvert %int %u16 - OpStore %ptr_s32 %u16_to_s32_signed - %u16_to_u32_signed = OpSConvert %uint %u16 - OpStore %ptr_u32 %u16_to_u32_signed - - ; Zero-extend - ; Result must be unsigned for OpUConvert. - ;%s16_to_s32_unsigned = OpUConvert %int %s16 - ;OpStore %ptr_s32 %s16_to_s32_unsigned - %s16_to_u32_unsigned = OpUConvert %uint %s16 - OpStore %ptr_u32 %s16_to_u32_unsigned - - ;%u16_to_s32_unsigned = OpUConvert %int %u16 - ;OpStore %ptr_s32 %u16_to_s32_unsigned - %u16_to_u32_unsigned = OpUConvert %uint %u16 - OpStore %ptr_u32 %u16_to_u32_unsigned - - ; Truncate (SConvert == UConvert) - %s32_to_s16_signed = OpSConvert %short %s32 - OpStore %ptr_s16 %s32_to_s16_signed - %s32_to_u16_signed = OpSConvert %ushort %s32 - OpStore %ptr_u16 %s32_to_u16_signed - - %u32_to_s16_signed = OpSConvert %short %u32 - OpStore %ptr_s16 %u32_to_s16_signed - %u32_to_u16_signed = OpSConvert %ushort %u32 - OpStore %ptr_u16 %u32_to_u16_signed - - ;%s32_to_s16_unsigned = OpUConvert %short %s32 - ;OpStore %ptr_s16 %s32_to_s16_unsigned - %s32_to_u16_unsigned = OpUConvert %ushort %s32 - OpStore %ptr_u16 %s32_to_u16_unsigned - - ;%u32_to_s16_unsigned = OpUConvert %short %u32 - ;OpStore %ptr_s16 %u32_to_s16_unsigned - %u32_to_u16_unsigned = OpUConvert %ushort %u32 - OpStore %ptr_u16 %u32_to_u16_unsigned - - ; SToF - %s16_to_f32_signed = OpConvertSToF %float %s16 - OpStore %ptr_f32 %s16_to_f32_signed - %u16_to_f32_signed = OpConvertSToF %float %u16 - OpStore %ptr_f32 %u16_to_f32_signed - - %s32_to_f32_signed = OpConvertSToF %float %s32 - OpStore %ptr_f32 %s32_to_f32_signed - %u32_to_f32_signed = OpConvertSToF %float %u32 - OpStore %ptr_f32 %u32_to_f32_signed - - ; UToF - %s16_to_f32_unsigned = OpConvertUToF %float %s16 - OpStore %ptr_f32 %s16_to_f32_unsigned - %u16_to_f32_unsigned = OpConvertUToF %float %u16 - OpStore %ptr_f32 %u16_to_f32_unsigned - - %s32_to_f32_unsigned = OpConvertUToF %float %s32 - OpStore %ptr_f32 %s32_to_f32_unsigned - %u32_to_f32_unsigned = OpConvertUToF %float %u32 - OpStore %ptr_f32 %u32_to_f32_unsigned - - ; FToS - %f32_to_s16_signed = OpConvertFToS %short %f32 - OpStore %ptr_s16 %f32_to_s16_signed - %f32_to_u16_signed = OpConvertFToS %ushort %f32 - OpStore %ptr_u16 %f32_to_u16_signed - - ; FToU - %f32_to_u16_unsigned = OpConvertFToU %ushort %f32 - OpStore %ptr_u16 %f32_to_u16_unsigned - ; Result must be unsigned for FToU, so don't bother testing that. - - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/comp/atomic-load-store.asm.comp b/third_party/spirv-cross/shaders-no-opt/asm/comp/atomic-load-store.asm.comp deleted file mode 100644 index 3f2d141a1f..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/comp/atomic-load-store.asm.comp +++ /dev/null @@ -1,48 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 23 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %c "c" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "a" - OpMemberName %SSBO 1 "b" - OpName %_ "" - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %SSBO 1 Offset 4 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 -%_ptr_Function_uint = OpTypePointer Function %uint - %SSBO = OpTypeStruct %uint %uint -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform - %int = OpTypeInt 32 1 - %int_1 = OpConstant %int 1 -%_ptr_Uniform_uint = OpTypePointer Uniform %uint - %int_0 = OpConstant %int 0 - %v3uint = OpTypeVector %uint 3 - %uint_1 = OpConstant %uint 1 -%gl_WorkGroupSize = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1 - %main = OpFunction %void None %3 - %5 = OpLabel - %c = OpVariable %_ptr_Function_uint Function - %15 = OpAccessChain %_ptr_Uniform_uint %_ %int_1 - %16 = OpAtomicLoad %uint %15 %int_1 %int_0 - OpStore %c %16 - %18 = OpLoad %uint %c - %19 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 - OpAtomicStore %19 %int_1 %int_0 %18 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/comp/atomic-result-temporary.asm.comp b/third_party/spirv-cross/shaders-no-opt/asm/comp/atomic-result-temporary.asm.comp deleted file mode 100644 index a323841596..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/comp/atomic-result-temporary.asm.comp +++ /dev/null @@ -1,59 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 35 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "count" - OpMemberName %SSBO 1 "data" - OpName %_ "" - OpName %gl_GlobalInvocationID "gl_GlobalInvocationID" - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %SSBO 1 Offset 4 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 -%_runtimearr_uint = OpTypeRuntimeArray %uint - %SSBO = OpTypeStruct %uint %_runtimearr_uint -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_Uniform_uint = OpTypePointer Uniform %uint - %uint_1 = OpConstant %uint 1 - %uint_0 = OpConstant %uint 0 - %uint_1024 = OpConstant %uint 1024 - %bool = OpTypeBool - %int_1 = OpConstant %int 1 - %v3uint = OpTypeVector %uint 3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input -%_ptr_Input_uint = OpTypePointer Input %uint - %main = OpFunction %void None %3 - %5 = OpLabel - %16 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 - %19 = OpAtomicIAdd %uint %16 %uint_1 %uint_0 %uint_1 - %23 = OpULessThan %bool %19 %uint_1024 - OpSelectionMerge %25 None - OpBranchConditional %23 %24 %25 - %24 = OpLabel - %32 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %33 = OpLoad %uint %32 - %34 = OpAccessChain %_ptr_Uniform_uint %_ %int_1 %19 - OpStore %34 %33 - OpBranch %25 - %25 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/comp/bitcast-fp16-fp32.asm.vk.comp b/third_party/spirv-cross/shaders-no-opt/asm/comp/bitcast-fp16-fp32.asm.vk.comp deleted file mode 100644 index 3651a4de52..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/comp/bitcast-fp16-fp32.asm.vk.comp +++ /dev/null @@ -1,63 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 33 -; Schema: 0 - OpCapability Shader - OpCapability Float16 - OpCapability StorageBuffer16BitAccess - OpExtension "SPV_KHR_16bit_storage" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpSourceExtension "GL_EXT_shader_explicit_arithmetic_types" - OpName %main "main" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "a" - OpMemberName %SSBO 1 "b" - OpMemberName %SSBO 2 "c" - OpMemberName %SSBO 3 "d" - OpName %_ "" - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %SSBO 1 Offset 4 - OpMemberDecorate %SSBO 2 Offset 8 - OpMemberDecorate %SSBO 3 Offset 12 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - %void = OpTypeVoid - %3 = OpTypeFunction %void - %half = OpTypeFloat 16 - %v2half = OpTypeVector %half 2 - %float = OpTypeFloat 32 - %SSBO = OpTypeStruct %v2half %float %float %v2half -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform - %int = OpTypeInt 32 1 - %int_1 = OpConstant %int 1 - %int_0 = OpConstant %int 0 -%_ptr_Uniform_v2half = OpTypePointer Uniform %v2half - %uint = OpTypeInt 32 0 -%_ptr_Uniform_float = OpTypePointer Uniform %float - %int_3 = OpConstant %int 3 - %int_2 = OpConstant %int 2 - %v3uint = OpTypeVector %uint 3 - %uint_1 = OpConstant %uint 1 -%gl_WorkGroupSize = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1 - %main = OpFunction %void None %3 - %5 = OpLabel - %16 = OpAccessChain %_ptr_Uniform_v2half %_ %int_0 - %17 = OpLoad %v2half %16 - %20 = OpBitcast %float %17 - %22 = OpAccessChain %_ptr_Uniform_float %_ %int_1 - OpStore %22 %20 - %25 = OpAccessChain %_ptr_Uniform_float %_ %int_2 - %26 = OpLoad %float %25 - %28 = OpBitcast %v2half %26 - %29 = OpAccessChain %_ptr_Uniform_v2half %_ %int_3 - OpStore %29 %28 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/comp/bitfield-signed-operations.asm.comp b/third_party/spirv-cross/shaders-no-opt/asm/comp/bitfield-signed-operations.asm.comp deleted file mode 100644 index 435fa32221..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/comp/bitfield-signed-operations.asm.comp +++ /dev/null @@ -1,97 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 26 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "ints" - OpMemberName %SSBO 1 "uints" - OpName %_ "" - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %SSBO 1 Offset 16 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %v4int = OpTypeVector %int 4 - %uint = OpTypeInt 32 0 - %v4uint = OpTypeVector %uint 4 - - %int_1 = OpConstant %int 1 - %uint_11 = OpConstant %uint 11 - - %SSBO = OpTypeStruct %v4int %v4uint -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform - %int_0 = OpConstant %int 0 -%_ptr_Uniform_v4int = OpTypePointer Uniform %v4int -%_ptr_Uniform_v4uint = OpTypePointer Uniform %v4uint - %main = OpFunction %void None %3 - %5 = OpLabel - %ints_ptr = OpAccessChain %_ptr_Uniform_v4int %_ %int_0 - %uints_ptr = OpAccessChain %_ptr_Uniform_v4uint %_ %int_1 - %ints = OpLoad %v4int %ints_ptr - %uints = OpLoad %v4uint %uints_ptr - - %ints_alt = OpVectorShuffle %v4int %ints %ints 3 2 1 0 - %uints_alt = OpVectorShuffle %v4uint %uints %uints 3 2 1 0 - - %int_to_int_popcount = OpBitCount %v4int %ints - %int_to_uint_popcount = OpBitCount %v4uint %ints - %uint_to_int_popcount = OpBitCount %v4int %uints - %uint_to_uint_popcount = OpBitCount %v4uint %uints - - ; BitReverse must have matching types w.r.t. sign, yay. - %int_to_int_reverse = OpBitReverse %v4int %ints - ;%int_to_uint_reverse = OpBitReverse %v4uint %ints - ;%uint_to_int_reverse = OpBitReverse %v4int %uints - %uint_to_uint_reverse = OpBitReverse %v4uint %uints - - ; Base and Result must match. - %int_to_int_sbit = OpBitFieldSExtract %v4int %ints %int_1 %uint_11 - ;%int_to_uint_sbit = OpBitFieldSExtract %v4uint %ints %offset %count - ;%uint_to_int_sbit = OpBitFieldSExtract %v4int %uints %offset %count - %uint_to_uint_sbit = OpBitFieldSExtract %v4uint %uints %uint_11 %int_1 - - ; Base and Result must match. - %int_to_int_ubit = OpBitFieldUExtract %v4int %ints %int_1 %uint_11 - ;%int_to_uint_ubit = OpBitFieldUExtract %v4uint %ints %offset %count - ;%uint_to_int_ubit = OpBitFieldUExtract %v4int %uints %offset %count - %uint_to_uint_ubit = OpBitFieldUExtract %v4uint %uints %uint_11 %int_1 - - %int_to_int_insert = OpBitFieldInsert %v4int %ints %ints_alt %int_1 %uint_11 - %uint_to_uint_insert = OpBitFieldInsert %v4uint %uints %uints_alt %uint_11 %int_1 - - OpStore %ints_ptr %int_to_int_popcount - OpStore %uints_ptr %int_to_uint_popcount - OpStore %ints_ptr %uint_to_int_popcount - OpStore %uints_ptr %uint_to_uint_popcount - - OpStore %ints_ptr %int_to_int_reverse - ;OpStore %uints_ptr %int_to_uint_reverse - ;OpStore %ints_ptr %uint_to_int_reverse - OpStore %uints_ptr %uint_to_uint_reverse - - OpStore %ints_ptr %int_to_int_sbit - ;OpStore %uints_ptr %int_to_uint_sbit - ;OpStore %ints_ptr %uint_to_int_sbit - OpStore %uints_ptr %uint_to_uint_sbit - - OpStore %ints_ptr %int_to_int_ubit - ;OpStore %uints_ptr %int_to_uint_ubit - ;OpStore %ints_ptr %uint_to_int_ubit - OpStore %uints_ptr %uint_to_uint_ubit - - OpStore %ints_ptr %int_to_int_insert - OpStore %uints_ptr %uint_to_uint_insert - - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/comp/bitscan.asm.comp b/third_party/spirv-cross/shaders-no-opt/asm/comp/bitscan.asm.comp deleted file mode 100644 index e3b785cd52..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/comp/bitscan.asm.comp +++ /dev/null @@ -1,72 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 35 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "u" - OpMemberName %SSBO 1 "i" - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %SSBO 1 Offset 16 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %ivec4 = OpTypeVector %int 4 - %uint = OpTypeInt 32 0 - %uvec4 = OpTypeVector %uint 4 - %SSBO = OpTypeStruct %uvec4 %ivec4 -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform - %int_0 = OpConstant %int 0 -%_ptr_Uniform_uvec4 = OpTypePointer Uniform %uvec4 - %int_1 = OpConstant %int 1 -%_ptr_Uniform_ivec4 = OpTypePointer Uniform %ivec4 - %main = OpFunction %void None %3 - %5 = OpLabel - %uptr = OpAccessChain %_ptr_Uniform_uvec4 %_ %int_0 - %iptr = OpAccessChain %_ptr_Uniform_ivec4 %_ %int_1 - %uvalue = OpLoad %uvec4 %uptr - %ivalue = OpLoad %ivec4 %iptr - - %lsb_uint_to_uint = OpExtInst %uvec4 %1 FindILsb %uvalue - %lsb_uint_to_int = OpExtInst %ivec4 %1 FindILsb %uvalue - %lsb_int_to_uint = OpExtInst %uvec4 %1 FindILsb %ivalue - %lsb_int_to_int = OpExtInst %ivec4 %1 FindILsb %ivalue - - %umsb_uint_to_uint = OpExtInst %uvec4 %1 FindUMsb %uvalue - %umsb_uint_to_int = OpExtInst %ivec4 %1 FindUMsb %uvalue - %umsb_int_to_uint = OpExtInst %uvec4 %1 FindUMsb %ivalue - %umsb_int_to_int = OpExtInst %ivec4 %1 FindUMsb %ivalue - - %smsb_uint_to_uint = OpExtInst %uvec4 %1 FindSMsb %uvalue - %smsb_uint_to_int = OpExtInst %ivec4 %1 FindSMsb %uvalue - %smsb_int_to_uint = OpExtInst %uvec4 %1 FindSMsb %ivalue - %smsb_int_to_int = OpExtInst %ivec4 %1 FindSMsb %ivalue - - OpStore %uptr %lsb_uint_to_uint - OpStore %iptr %lsb_uint_to_int - OpStore %uptr %lsb_int_to_uint - OpStore %iptr %lsb_int_to_int - - OpStore %uptr %umsb_uint_to_uint - OpStore %iptr %umsb_uint_to_int - OpStore %uptr %umsb_int_to_uint - OpStore %iptr %umsb_int_to_int - - OpStore %uptr %smsb_uint_to_uint - OpStore %iptr %smsb_uint_to_int - OpStore %uptr %smsb_int_to_uint - OpStore %iptr %smsb_int_to_int - - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/comp/buffer-atomic-nonuniform.vk.nocompat.asm.comp b/third_party/spirv-cross/shaders-no-opt/asm/comp/buffer-atomic-nonuniform.vk.nocompat.asm.comp deleted file mode 100644 index 132f38bf72..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/comp/buffer-atomic-nonuniform.vk.nocompat.asm.comp +++ /dev/null @@ -1,53 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 26 -; Schema: 0 - OpCapability Shader - OpCapability ShaderNonUniform - OpCapability RuntimeDescriptorArray - OpCapability StorageBufferArrayNonUniformIndexing - OpExtension "SPV_EXT_descriptor_indexing" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpSourceExtension "GL_EXT_nonuniform_qualifier" - OpName %main "main" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "v" - OpName %ssbos "ssbos" - OpName %gl_GlobalInvocationID "gl_GlobalInvocationID" - OpMemberDecorate %SSBO 0 Offset 0 - OpDecorate %SSBO BufferBlock - OpDecorate %ssbos DescriptorSet 0 - OpDecorate %ssbos Binding 0 - OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId - OpDecorate %22 NonUniform - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 - %SSBO = OpTypeStruct %uint -%_runtimearr_SSBO = OpTypeRuntimeArray %SSBO -%_ptr_Uniform__runtimearr_SSBO = OpTypePointer Uniform %_runtimearr_SSBO - %ssbos = OpVariable %_ptr_Uniform__runtimearr_SSBO Uniform - %v3uint = OpTypeVector %uint 3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input - %uint_2 = OpConstant %uint 2 -%_ptr_Input_uint = OpTypePointer Input %uint - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_Uniform_uint = OpTypePointer Uniform %uint - %uint_1 = OpConstant %uint 1 - %uint_0 = OpConstant %uint 0 - %main = OpFunction %void None %3 - %5 = OpLabel - %16 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_2 - %17 = OpLoad %uint %16 - %18 = OpCopyObject %uint %17 - %22 = OpAccessChain %_ptr_Uniform_uint %ssbos %18 %int_0 - %25 = OpAtomicIAdd %uint %22 %uint_1 %uint_0 %uint_1 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/comp/buffer-reference-aliased-block-name.nocompat.vk.asm.comp b/third_party/spirv-cross/shaders-no-opt/asm/comp/buffer-reference-aliased-block-name.nocompat.vk.asm.comp deleted file mode 100644 index 816985a108..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/comp/buffer-reference-aliased-block-name.nocompat.vk.asm.comp +++ /dev/null @@ -1,110 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 59 -; Schema: 0 - OpCapability Shader - OpCapability PhysicalStorageBufferAddresses - OpExtension "SPV_EXT_physical_storage_buffer" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel PhysicalStorageBuffer64 GLSL450 - OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID - OpExecutionMode %main LocalSize 64 1 1 - OpSource GLSL 450 - OpSourceExtension "GL_EXT_buffer_reference" - OpName %main "main" - OpName %Registers "Registers" - OpMemberName %Registers 0 "ro" - OpMemberName %Registers 1 "rw" - OpMemberName %Registers 2 "wo" - OpName %RO "Alias" - OpMemberName %RO 0 "v" - OpName %RW "Alias" - OpMemberName %RW 0 "v" - OpName %WO "Alias" - OpMemberName %WO 0 "v" - OpName %registers "registers" - OpName %gl_GlobalInvocationID "gl_GlobalInvocationID" - OpMemberDecorate %Registers 0 Offset 0 - OpMemberDecorate %Registers 1 Offset 8 - OpMemberDecorate %Registers 2 Offset 16 - OpDecorate %Registers Block - OpDecorate %_runtimearr_v4float ArrayStride 16 - OpMemberDecorate %RO 0 NonWritable - OpMemberDecorate %RO 0 Offset 0 - OpDecorate %RO Block - OpDecorate %_runtimearr_v4float_0 ArrayStride 16 - OpMemberDecorate %RW 0 Restrict - OpMemberDecorate %RW 0 Offset 0 - OpDecorate %RW Block - OpDecorate %_runtimearr_v4float_1 ArrayStride 16 - OpMemberDecorate %WO 0 Coherent - OpMemberDecorate %WO 0 NonReadable - OpMemberDecorate %WO 0 Offset 0 - OpDecorate %WO Block - OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - %void = OpTypeVoid - %3 = OpTypeFunction %void - OpTypeForwardPointer %_ptr_PhysicalStorageBuffer_RO PhysicalStorageBuffer - OpTypeForwardPointer %_ptr_PhysicalStorageBuffer_RW PhysicalStorageBuffer - OpTypeForwardPointer %_ptr_PhysicalStorageBuffer_WO PhysicalStorageBuffer - %Registers = OpTypeStruct %_ptr_PhysicalStorageBuffer_RO %_ptr_PhysicalStorageBuffer_RW %_ptr_PhysicalStorageBuffer_WO - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_runtimearr_v4float = OpTypeRuntimeArray %v4float - %RO = OpTypeStruct %_runtimearr_v4float -%_ptr_PhysicalStorageBuffer_RO = OpTypePointer PhysicalStorageBuffer %RO -%_runtimearr_v4float_0 = OpTypeRuntimeArray %v4float - %RW = OpTypeStruct %_runtimearr_v4float_0 -%_ptr_PhysicalStorageBuffer_RW = OpTypePointer PhysicalStorageBuffer %RW -%_runtimearr_v4float_1 = OpTypeRuntimeArray %v4float - %WO = OpTypeStruct %_runtimearr_v4float_1 -%_ptr_PhysicalStorageBuffer_WO = OpTypePointer PhysicalStorageBuffer %WO -%_ptr_PushConstant_Registers = OpTypePointer PushConstant %Registers - %registers = OpVariable %_ptr_PushConstant_Registers PushConstant - %int = OpTypeInt 32 1 - %int_1 = OpConstant %int 1 -%_ptr_PushConstant__ptr_PhysicalStorageBuffer_RW = OpTypePointer PushConstant %_ptr_PhysicalStorageBuffer_RW - %int_0 = OpConstant %int 0 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_PushConstant__ptr_PhysicalStorageBuffer_RO = OpTypePointer PushConstant %_ptr_PhysicalStorageBuffer_RO -%_ptr_PhysicalStorageBuffer_v4float = OpTypePointer PhysicalStorageBuffer %v4float - %int_2 = OpConstant %int 2 -%_ptr_PushConstant__ptr_PhysicalStorageBuffer_WO = OpTypePointer PushConstant %_ptr_PhysicalStorageBuffer_WO - %uint_64 = OpConstant %uint 64 - %uint_1 = OpConstant %uint 1 -%gl_WorkGroupSize = OpConstantComposite %v3uint %uint_64 %uint_1 %uint_1 - %main = OpFunction %void None %3 - %5 = OpLabel - %23 = OpAccessChain %_ptr_PushConstant__ptr_PhysicalStorageBuffer_RW %registers %int_1 - %24 = OpLoad %_ptr_PhysicalStorageBuffer_RW %23 - %32 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %33 = OpLoad %uint %32 - %35 = OpAccessChain %_ptr_PushConstant__ptr_PhysicalStorageBuffer_RO %registers %int_0 - %36 = OpLoad %_ptr_PhysicalStorageBuffer_RO %35 - %37 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %38 = OpLoad %uint %37 - %40 = OpAccessChain %_ptr_PhysicalStorageBuffer_v4float %36 %int_0 %38 - %41 = OpLoad %v4float %40 Aligned 16 - %42 = OpAccessChain %_ptr_PhysicalStorageBuffer_v4float %24 %int_0 %33 - OpStore %42 %41 Aligned 16 - %45 = OpAccessChain %_ptr_PushConstant__ptr_PhysicalStorageBuffer_WO %registers %int_2 - %46 = OpLoad %_ptr_PhysicalStorageBuffer_WO %45 - %47 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %48 = OpLoad %uint %47 - %49 = OpAccessChain %_ptr_PushConstant__ptr_PhysicalStorageBuffer_RO %registers %int_0 - %50 = OpLoad %_ptr_PhysicalStorageBuffer_RO %49 - %51 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %52 = OpLoad %uint %51 - %53 = OpAccessChain %_ptr_PhysicalStorageBuffer_v4float %50 %int_0 %52 - %54 = OpLoad %v4float %53 Aligned 16 - %55 = OpAccessChain %_ptr_PhysicalStorageBuffer_v4float %46 %int_0 %48 - OpStore %55 %54 Aligned 16 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/comp/buffer-reference-synthesized-pointer-2.asm.nocompat.vk.comp b/third_party/spirv-cross/shaders-no-opt/asm/comp/buffer-reference-synthesized-pointer-2.asm.nocompat.vk.comp deleted file mode 100644 index 76894aa8c2..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/comp/buffer-reference-synthesized-pointer-2.asm.nocompat.vk.comp +++ /dev/null @@ -1,44 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 27 -; Schema: 0 - OpCapability Shader - OpCapability Int64 - OpCapability PhysicalStorageBufferAddressesEXT - OpExtension "SPV_EXT_physical_storage_buffer" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel PhysicalStorageBuffer64EXT GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpSourceExtension "GL_ARB_gpu_shader_int64" - OpSourceExtension "GL_EXT_buffer_reference" - OpDecorate %ptr AliasedPointerEXT - OpMemberDecorate %Registers 0 Offset 0 - OpDecorate %Registers Block - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 -%_ptr_PhysicalStorageBufferEXT_uint = OpTypePointer PhysicalStorageBufferEXT %uint -%_ptr_Function__ptr_PhysicalStorageBufferEXT_uint = OpTypePointer Function %_ptr_PhysicalStorageBufferEXT_uint - %ulong = OpTypeInt 64 0 - %Registers = OpTypeStruct %ulong -%_ptr_PushConstant_Registers = OpTypePointer PushConstant %Registers - %registers = OpVariable %_ptr_PushConstant_Registers PushConstant - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_PushConstant_ulong = OpTypePointer PushConstant %ulong - %int_10 = OpConstant %int 10 - %uint_20 = OpConstant %uint 20 - %main = OpFunction %void None %3 - %5 = OpLabel - %ptr = OpVariable %_ptr_Function__ptr_PhysicalStorageBufferEXT_uint Function - %19 = OpAccessChain %_ptr_PushConstant_ulong %registers %int_0 - %20 = OpLoad %ulong %19 - %21 = OpConvertUToPtr %_ptr_PhysicalStorageBufferEXT_uint %20 - OpStore %ptr %21 - %22 = OpLoad %_ptr_PhysicalStorageBufferEXT_uint %ptr - OpStore %22 %uint_20 Aligned 4 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/comp/buffer-reference-synthesized-pointer.asm.nocompat.vk.comp b/third_party/spirv-cross/shaders-no-opt/asm/comp/buffer-reference-synthesized-pointer.asm.nocompat.vk.comp deleted file mode 100644 index d1270d4f2a..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/comp/buffer-reference-synthesized-pointer.asm.nocompat.vk.comp +++ /dev/null @@ -1,51 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 27 -; Schema: 0 - OpCapability Shader - OpCapability Int64 - OpCapability PhysicalStorageBufferAddressesEXT - OpExtension "SPV_EXT_physical_storage_buffer" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel PhysicalStorageBuffer64EXT GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpSourceExtension "GL_ARB_gpu_shader_int64" - OpSourceExtension "GL_EXT_buffer_reference" - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %uintPtr 0 Offset 0 - OpDecorate %uintPtr Block - OpDecorate %ptr AliasedPointerEXT - OpMemberDecorate %Registers 0 Offset 0 - OpDecorate %Registers Block - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 -%_runtimearr_uint = OpTypeRuntimeArray %uint - %uintPtr = OpTypeStruct %_runtimearr_uint -%_ptr_PhysicalStorageBufferEXT_uint_array = OpTypePointer PhysicalStorageBufferEXT %_runtimearr_uint -%_ptr_Function__ptr_PhysicalStorageBufferEXT_uint_array = OpTypePointer Function %_ptr_PhysicalStorageBufferEXT_uint_array - %ulong = OpTypeInt 64 0 - %Registers = OpTypeStruct %ulong -%_ptr_PushConstant_Registers = OpTypePointer PushConstant %Registers - %registers = OpVariable %_ptr_PushConstant_Registers PushConstant - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_PushConstant_ulong = OpTypePointer PushConstant %ulong - %int_10 = OpConstant %int 10 - %uint_20 = OpConstant %uint 20 -%_ptr_PhysicalStorageBufferEXT_uint = OpTypePointer PhysicalStorageBufferEXT %uint - %main = OpFunction %void None %3 - %5 = OpLabel - %ptr = OpVariable %_ptr_Function__ptr_PhysicalStorageBufferEXT_uint_array Function - %19 = OpAccessChain %_ptr_PushConstant_ulong %registers %int_0 - %20 = OpLoad %ulong %19 - %21 = OpConvertUToPtr %_ptr_PhysicalStorageBufferEXT_uint_array %20 - OpStore %ptr %21 - %22 = OpLoad %_ptr_PhysicalStorageBufferEXT_uint_array %ptr - %26 = OpAccessChain %_ptr_PhysicalStorageBufferEXT_uint %22 %int_10 - OpStore %26 %uint_20 Aligned 4 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/comp/constant-composite-undef.asm.comp b/third_party/spirv-cross/shaders-no-opt/asm/comp/constant-composite-undef.asm.comp deleted file mode 100644 index 8997d0aaf9..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/comp/constant-composite-undef.asm.comp +++ /dev/null @@ -1,40 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Khronos SPIR-V Tools Assembler; 0 -; Bound: 20 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %Block "Block" - OpMemberName %Block 0 "f" - OpName %block "block" - OpMemberDecorate %Block 0 Offset 0 - OpDecorate %Block BufferBlock - OpDecorate %block DescriptorSet 0 - OpDecorate %block Binding 0 - %void = OpTypeVoid - %6 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %Block = OpTypeStruct %v4float -%_ptr_Uniform_Block = OpTypePointer Uniform %Block - %block = OpVariable %_ptr_Uniform_Block Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%float_0_100000001 = OpConstant %float 0.100000001 -%float_0_200000003 = OpConstant %float 0.200000003 -%float_0_300000012 = OpConstant %float 0.300000012 - %15 = OpUndef %float - %16 = OpConstantComposite %v4float %float_0_100000001 %float_0_200000003 %float_0_300000012 %15 -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float - %main = OpFunction %void None %6 - %18 = OpLabel - %19 = OpAccessChain %_ptr_Uniform_v4float %block %int_0 - OpStore %19 %16 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/comp/copy-logical.spv14.asm.comp b/third_party/spirv-cross/shaders-no-opt/asm/comp/copy-logical.spv14.asm.comp deleted file mode 100644 index 20fa0b099b..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/comp/copy-logical.spv14.asm.comp +++ /dev/null @@ -1,69 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 48 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %ssbo - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %B1 "B1" - OpName %A "A" - OpName %C "C" - OpName %B2 "B2" - OpMemberName %A 0 "a" - OpMemberName %A 1 "b1" - OpMemberName %A 2 "b1_array" - OpMemberName %C 0 "c" - OpMemberName %C 1 "b2" - OpMemberName %C 2 "b2_array" - OpMemberName %B1 0 "elem1" - OpMemberName %B2 0 "elem2" - OpMemberName %SSBO 0 "a_block" - OpMemberName %SSBO 1 "c_block" - OpDecorate %B1Array ArrayStride 16 - OpDecorate %B2Array ArrayStride 16 - OpMemberDecorate %B1 0 Offset 0 - OpMemberDecorate %A 0 Offset 0 - OpMemberDecorate %A 1 Offset 16 - OpMemberDecorate %A 2 Offset 32 - OpMemberDecorate %B2 0 Offset 0 - OpMemberDecorate %C 0 Offset 0 - OpMemberDecorate %C 1 Offset 16 - OpMemberDecorate %C 2 Offset 32 - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %SSBO 1 Offset 96 - OpDecorate %SSBO Block - OpDecorate %ssbo DescriptorSet 0 - OpDecorate %ssbo Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %uint = OpTypeInt 32 0 - %uint_4 = OpConstant %uint 4 - %v4float = OpTypeVector %float 4 - %B2 = OpTypeStruct %v4float - %B2Array = OpTypeArray %B2 %uint_4 - %C = OpTypeStruct %v4float %B2 %B2Array - %B1 = OpTypeStruct %v4float - %B1Array = OpTypeArray %B1 %uint_4 - %A = OpTypeStruct %v4float %B1 %B1Array - %SSBO = OpTypeStruct %A %C -%_ptr_Uniform_SSBO = OpTypePointer StorageBuffer %SSBO - %ssbo = OpVariable %_ptr_Uniform_SSBO StorageBuffer - %int = OpTypeInt 32 1 - %int_1 = OpConstant %int 1 -%_ptr_Uniform_C = OpTypePointer StorageBuffer %C - %int_0 = OpConstant %int 0 -%_ptr_Uniform_A = OpTypePointer StorageBuffer %A - %main = OpFunction %void None %3 - %5 = OpLabel - %22 = OpAccessChain %_ptr_Uniform_C %ssbo %int_1 - %39 = OpAccessChain %_ptr_Uniform_A %ssbo %int_0 - %23 = OpLoad %C %22 - %24 = OpCopyLogical %A %23 - OpStore %39 %24 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/comp/eliminate-globals-not-in-entry-point.noeliminate.spv14.asm.comp b/third_party/spirv-cross/shaders-no-opt/asm/comp/eliminate-globals-not-in-entry-point.noeliminate.spv14.asm.comp deleted file mode 100644 index 73f3ceee1a..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/comp/eliminate-globals-not-in-entry-point.noeliminate.spv14.asm.comp +++ /dev/null @@ -1,59 +0,0 @@ -; SPIR-V -; Version: 1.5 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 26 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - ;OpEntryPoint GLCompute %main "main" %Samp %ubo %ssbo %v %w - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 64 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %Samp "Samp" - OpName %UBO "UBO" - OpMemberName %UBO 0 "v" - OpName %ubo "ubo" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "v" - OpName %ssbo "ssbo" - OpName %v "v" - OpName %w "w" - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %Samp DescriptorSet 0 - OpDecorate %Samp Binding 0 - OpMemberDecorate %UBO 0 Offset 0 - OpDecorate %UBO Block - OpDecorate %ubo DescriptorSet 0 - OpDecorate %ubo Binding 1 - OpMemberDecorate %SSBO 0 Offset 0 - OpDecorate %SSBO Block - OpDecorate %ssbo DescriptorSet 0 - OpDecorate %ssbo Binding 2 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 - %uint_64 = OpConstant %uint 64 - %uint_1 = OpConstant %uint 1 -%gl_WorkGroupSize = OpConstantComposite %v3uint %uint_64 %uint_1 %uint_1 - %float = OpTypeFloat 32 - %12 = OpTypeImage %float 2D 0 0 0 1 Unknown - %13 = OpTypeSampledImage %12 -%_ptr_UniformConstant_13 = OpTypePointer UniformConstant %13 - %Samp = OpVariable %_ptr_UniformConstant_13 UniformConstant - %UBO = OpTypeStruct %float -%_ptr_Uniform_UBO = OpTypePointer Uniform %UBO - %ubo = OpVariable %_ptr_Uniform_UBO Uniform - %SSBO = OpTypeStruct %float -%_ptr_StorageBuffer_SSBO = OpTypePointer StorageBuffer %SSBO - %ssbo = OpVariable %_ptr_StorageBuffer_SSBO StorageBuffer -%_ptr_Private_float = OpTypePointer Private %float - %v = OpVariable %_ptr_Private_float Private -%_ptr_Workgroup_float = OpTypePointer Workgroup %float - %w = OpVariable %_ptr_Workgroup_float Workgroup - %main = OpFunction %void None %3 - %5 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/comp/extended-debug-extinst.invalid.asm.comp b/third_party/spirv-cross/shaders-no-opt/asm/comp/extended-debug-extinst.invalid.asm.comp deleted file mode 100644 index 5b6a189a71..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/comp/extended-debug-extinst.invalid.asm.comp +++ /dev/null @@ -1,67 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Khronos SPIR-V Tools Assembler; 0 -; Bound: 37 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "DebugInfo" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %2 "main" %3 - OpExecutionMode %2 LocalSize 1 1 1 - %4 = OpString "negateInputs.comp" - %5 = OpString "negateInputs" - %6 = OpString "main" - %7 = OpString "" - OpSource GLSL 430 - OpName %2 "main" - OpName %3 "gl_GlobalInvocationID" - OpDecorate %3 BuiltIn GlobalInvocationId - OpDecorate %8 BufferBlock - OpDecorate %9 DescriptorSet 0 - OpDecorate %9 Binding 0 - OpDecorate %10 DescriptorSet 0 - OpDecorate %10 Binding 1 - OpDecorate %11 ArrayStride 4 - OpMemberDecorate %8 0 Offset 0 - OpLine %4 0 0 - %12 = OpTypeBool - %13 = OpTypeVoid - %14 = OpTypeFunction %13 - %15 = OpTypeInt 32 0 - %16 = OpTypeInt 32 1 - %17 = OpTypeFloat 32 - %18 = OpTypeVector %15 3 - %19 = OpTypeVector %17 3 - %20 = OpTypePointer Input %18 - %21 = OpTypePointer Uniform %16 - %22 = OpTypePointer Uniform %17 - %23 = OpTypeRuntimeArray %16 - %11 = OpTypeRuntimeArray %17 - %8 = OpTypeStruct %11 - %24 = OpTypePointer Uniform %8 - %9 = OpVariable %24 Uniform - %10 = OpVariable %24 Uniform - OpLine %4 0 1 - OpLine %5 1 0 - OpLine %4 1000 100000 - %3 = OpVariable %20 Input - %25 = OpConstant %16 0 - OpNoLine - OpLine %4 1 1 - %26 = OpExtInst %13 %1 DebugInfoNone - %27 = OpExtInst %13 %1 DebugTypeFunction %13 - %28 = OpExtInst %13 %1 DebugFunction %6 %27 %4 1 1 %4 %7 FlagIsDefinition|FlagPrototyped|FlagIsOptimized 1 %26 %26 - %2 = OpFunction %13 None %14 - %29 = OpLabel - %30 = OpExtInst %13 %1 DebugScope %28 - OpLine %4 1 1 - %31 = OpLoad %18 %3 - %32 = OpCompositeExtract %15 %31 0 - %33 = OpAccessChain %22 %9 %25 %32 - %34 = OpLoad %17 %33 - %35 = OpFNegate %17 %34 - %36 = OpAccessChain %22 %10 %25 %32 - OpStore %36 %35 - OpNoLine - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/comp/glsl-signed-operations.asm.comp b/third_party/spirv-cross/shaders-no-opt/asm/comp/glsl-signed-operations.asm.comp deleted file mode 100644 index 7da9f95b9e..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/comp/glsl-signed-operations.asm.comp +++ /dev/null @@ -1,123 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 26 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "ints" - OpMemberName %SSBO 1 "uints" - OpName %_ "" - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %SSBO 1 Offset 16 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %v4int = OpTypeVector %int 4 - %uint = OpTypeInt 32 0 - %v4uint = OpTypeVector %uint 4 - %SSBO = OpTypeStruct %v4int %v4uint -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform - %int_0 = OpConstant %int 0 -%_ptr_Uniform_v4int = OpTypePointer Uniform %v4int - %int_1 = OpConstant %int 1 -%_ptr_Uniform_v4uint = OpTypePointer Uniform %v4uint - %main = OpFunction %void None %3 - %5 = OpLabel - %ints_ptr = OpAccessChain %_ptr_Uniform_v4int %_ %int_0 - %uints_ptr = OpAccessChain %_ptr_Uniform_v4uint %_ %int_1 - %ints = OpLoad %v4int %ints_ptr - %uints = OpLoad %v4uint %uints_ptr - - %int_to_int_sabs = OpExtInst %v4int %1 SAbs %ints - %int_to_uint_sabs = OpExtInst %v4uint %1 SAbs %ints - %uint_to_int_sabs = OpExtInst %v4int %1 SAbs %uints - %uint_to_uint_sabs = OpExtInst %v4uint %1 SAbs %uints - - %int_to_int_ssign = OpExtInst %v4int %1 SSign %ints - %int_to_uint_ssign = OpExtInst %v4uint %1 SSign %ints - %uint_to_int_ssign = OpExtInst %v4int %1 SSign %uints - %uint_to_uint_ssign = OpExtInst %v4uint %1 SSign %uints - - %int_to_int_smsb = OpExtInst %v4int %1 FindSMsb %uints - %int_to_uint_smsb = OpExtInst %v4uint %1 FindSMsb %uints - %uint_to_int_umsb = OpExtInst %v4int %1 FindUMsb %ints - %uint_to_uint_umsb = OpExtInst %v4uint %1 FindUMsb %ints - - %int_to_int_smin = OpExtInst %v4int %1 SMin %ints %ints - %int_to_uint_smin = OpExtInst %v4uint %1 SMin %ints %uints - %uint_to_int_smin = OpExtInst %v4int %1 SMin %uints %uints - %uint_to_uint_smin = OpExtInst %v4uint %1 SMin %uints %ints - - %int_to_int_umin = OpExtInst %v4int %1 UMin %ints %uints - %int_to_uint_umin = OpExtInst %v4uint %1 UMin %ints %uints - %uint_to_int_umin = OpExtInst %v4int %1 UMin %uints %ints - %uint_to_uint_umin = OpExtInst %v4uint %1 UMin %uints %ints - - %int_to_int_smax = OpExtInst %v4int %1 SMax %ints %ints - %int_to_uint_smax = OpExtInst %v4uint %1 SMax %ints %ints - %uint_to_int_smax = OpExtInst %v4int %1 SMax %uints %ints - %uint_to_uint_smax = OpExtInst %v4uint %1 SMax %uints %ints - - %int_to_int_umax = OpExtInst %v4int %1 UMax %ints %uints - %int_to_uint_umax = OpExtInst %v4uint %1 UMax %ints %ints - %uint_to_int_umax = OpExtInst %v4int %1 UMax %uints %ints - %uint_to_uint_umax = OpExtInst %v4uint %1 UMax %uints %ints - - %int_to_int_sclamp = OpExtInst %v4int %1 SClamp %uints %uints %uints - %int_to_uint_sclamp = OpExtInst %v4uint %1 SClamp %uints %uints %uints - %uint_to_int_uclamp = OpExtInst %v4int %1 UClamp %ints %ints %ints - %uint_to_uint_uclamp = OpExtInst %v4uint %1 UClamp %ints %ints %ints - - OpStore %ints_ptr %int_to_int_sabs - OpStore %uints_ptr %int_to_uint_sabs - OpStore %ints_ptr %uint_to_int_sabs - OpStore %uints_ptr %uint_to_uint_sabs - - OpStore %ints_ptr %int_to_int_ssign - OpStore %uints_ptr %int_to_uint_ssign - OpStore %ints_ptr %uint_to_int_ssign - OpStore %uints_ptr %uint_to_uint_ssign - - OpStore %ints_ptr %int_to_int_smsb - OpStore %uints_ptr %int_to_uint_smsb - OpStore %ints_ptr %uint_to_int_umsb - OpStore %uints_ptr %uint_to_uint_umsb - - OpStore %ints_ptr %int_to_int_smin - OpStore %uints_ptr %int_to_uint_smin - OpStore %ints_ptr %uint_to_int_smin - OpStore %uints_ptr %uint_to_uint_smin - - OpStore %ints_ptr %int_to_int_umin - OpStore %uints_ptr %int_to_uint_umin - OpStore %ints_ptr %uint_to_int_umin - OpStore %uints_ptr %uint_to_uint_umin - - OpStore %ints_ptr %int_to_int_smax - OpStore %uints_ptr %int_to_uint_smax - OpStore %ints_ptr %uint_to_int_smax - OpStore %uints_ptr %uint_to_uint_smax - - OpStore %ints_ptr %int_to_int_umax - OpStore %uints_ptr %int_to_uint_umax - OpStore %ints_ptr %uint_to_int_umax - OpStore %uints_ptr %uint_to_uint_umax - - OpStore %ints_ptr %int_to_int_sclamp - OpStore %uints_ptr %int_to_uint_sclamp - OpStore %ints_ptr %uint_to_int_uclamp - OpStore %uints_ptr %uint_to_uint_uclamp - - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/comp/glsl.std450.frexp-modf-struct.asm.comp b/third_party/spirv-cross/shaders-no-opt/asm/comp/glsl.std450.frexp-modf-struct.asm.comp deleted file mode 100644 index 30db11d45b..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/comp/glsl.std450.frexp-modf-struct.asm.comp +++ /dev/null @@ -1,55 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 45 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %SSBO 1 Offset 4 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %ResTypeMod = OpTypeStruct %float %float -%_ptr_Function_ResTypeMod = OpTypePointer Function %ResTypeMod - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %float_20 = OpConstant %float 20 - %int_1 = OpConstant %int 1 -%_ptr_Function_float = OpTypePointer Function %float -%ResTypeFrexp = OpTypeStruct %float %int -%_ptr_Function_ResTypeFrexp = OpTypePointer Function %ResTypeFrexp - %float_40 = OpConstant %float 40 -%_ptr_Function_int = OpTypePointer Function %int - %SSBO = OpTypeStruct %float %int -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform -%_ptr_Uniform_float = OpTypePointer Uniform %float -%_ptr_Uniform_int = OpTypePointer Uniform %int - %main = OpFunction %void None %3 - %5 = OpLabel - %modres = OpExtInst %ResTypeMod %1 ModfStruct %float_20 - %frexpres = OpExtInst %ResTypeFrexp %1 FrexpStruct %float_40 - - %modres_f = OpCompositeExtract %float %modres 0 - %modres_i = OpCompositeExtract %float %modres 1 - %frexpres_f = OpCompositeExtract %float %frexpres 0 - %frexpres_i = OpCompositeExtract %int %frexpres 1 - - %float_ptr = OpAccessChain %_ptr_Uniform_float %_ %int_0 - %int_ptr = OpAccessChain %_ptr_Uniform_int %_ %int_1 - - OpStore %float_ptr %modres_f - OpStore %float_ptr %modres_i - OpStore %float_ptr %frexpres_f - OpStore %int_ptr %frexpres_i - - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/comp/image-atomic-nonuniform.vk.nocompat.asm.comp b/third_party/spirv-cross/shaders-no-opt/asm/comp/image-atomic-nonuniform.vk.nocompat.asm.comp deleted file mode 100644 index 5dad9dd5ed..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/comp/image-atomic-nonuniform.vk.nocompat.asm.comp +++ /dev/null @@ -1,55 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 32 -; Schema: 0 - OpCapability Shader - OpCapability ShaderNonUniform - OpCapability RuntimeDescriptorArray - OpCapability StorageImageArrayNonUniformIndexing - OpExtension "SPV_EXT_descriptor_indexing" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpSourceExtension "GL_EXT_nonuniform_qualifier" - OpName %main "main" - OpName %uImage "uImage" - OpName %gl_GlobalInvocationID "gl_GlobalInvocationID" - OpDecorate %uImage DescriptorSet 0 - OpDecorate %uImage Binding 0 - OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId - OpDecorate %30 NonUniform - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 - %7 = OpTypeImage %uint 2D 0 0 0 2 R32ui -%_runtimearr_7 = OpTypeRuntimeArray %7 -%_ptr_UniformConstant__runtimearr_7 = OpTypePointer UniformConstant %_runtimearr_7 - %uImage = OpVariable %_ptr_UniformConstant__runtimearr_7 UniformConstant - %v3uint = OpTypeVector %uint 3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input - %uint_2 = OpConstant %uint 2 -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7 - %v2uint = OpTypeVector %uint 2 - %int = OpTypeInt 32 1 - %v2int = OpTypeVector %int 2 - %uint_1 = OpConstant %uint 1 - %uint_0 = OpConstant %uint 0 -%_ptr_Image_uint = OpTypePointer Image %uint - %main = OpFunction %void None %3 - %5 = OpLabel - %16 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_2 - %17 = OpLoad %uint %16 - %18 = OpCopyObject %uint %17 - %20 = OpAccessChain %_ptr_UniformConstant_7 %uImage %18 - %22 = OpLoad %v3uint %gl_GlobalInvocationID - %23 = OpVectorShuffle %v2uint %22 %22 0 1 - %26 = OpBitcast %v2int %23 - %30 = OpImageTexelPointer %_ptr_Image_uint %20 %26 %uint_0 - %31 = OpAtomicIAdd %uint %30 %uint_1 %uint_0 %uint_1 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/comp/loop-variable-with-initializer.asm.comp b/third_party/spirv-cross/shaders-no-opt/asm/comp/loop-variable-with-initializer.asm.comp deleted file mode 100644 index f40377b118..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/comp/loop-variable-with-initializer.asm.comp +++ /dev/null @@ -1,31 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Khronos; 0 -; Bound: 62 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpName %main "main" - OpName %i "i" - %uint = OpTypeInt 32 0 - %void = OpTypeVoid - %11 = OpTypeFunction %void - %uint_0 = OpConstant %uint 0 -%_ptr_Function_uint = OpTypePointer Function %uint - %31 = OpConstantNull %uint - %main = OpFunction %void None %11 - %14 = OpLabel - %i = OpVariable %_ptr_Function_uint Function %31 - OpStore %i %uint_0 - OpBranch %32 - %32 = OpLabel - OpLoopMerge %33 %34 None - OpBranch %33 - %34 = OpLabel - %57 = OpLoad %uint %i - OpBranch %32 - %33 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/comp/nonuniform-bracket-handling.vk.nocompat.asm.comp b/third_party/spirv-cross/shaders-no-opt/asm/comp/nonuniform-bracket-handling.vk.nocompat.asm.comp deleted file mode 100644 index 5d5fac622a..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/comp/nonuniform-bracket-handling.vk.nocompat.asm.comp +++ /dev/null @@ -1,299 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Unknown(30017); 21022 -; Bound: 233 -; Schema: 0 - OpCapability Shader - OpCapability SampledBuffer - OpCapability ImageBuffer - OpCapability ImageQuery - OpCapability StorageImageWriteWithoutFormat - OpCapability GroupNonUniformBallot - OpCapability RuntimeDescriptorArray - OpCapability UniformTexelBufferArrayDynamicIndexing - OpCapability StorageTexelBufferArrayDynamicIndexing - OpCapability UniformTexelBufferArrayNonUniformIndexing - OpCapability StorageTexelBufferArrayNonUniformIndexing - OpCapability PhysicalStorageBufferAddresses - OpExtension "SPV_EXT_descriptor_indexing" - OpExtension "SPV_KHR_physical_storage_buffer" - OpMemoryModel PhysicalStorageBuffer64 GLSL450 - OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID - OpExecutionMode %main LocalSize 1 1 1 - OpName %main "main" - OpName %RootConstants "RootConstants" - OpName %registers "registers" - OpName %SSBO_Offsets "SSBO_Offsets" - OpDecorate %RootConstants Block - OpMemberDecorate %RootConstants 0 Offset 0 - OpMemberDecorate %RootConstants 1 Offset 4 - OpMemberDecorate %RootConstants 2 Offset 8 - OpMemberDecorate %RootConstants 3 Offset 12 - OpMemberDecorate %RootConstants 4 Offset 16 - OpMemberDecorate %RootConstants 5 Offset 20 - OpMemberDecorate %RootConstants 6 Offset 24 - OpMemberDecorate %RootConstants 7 Offset 28 - OpDecorate %_runtimearr_v2uint ArrayStride 8 - OpMemberDecorate %SSBO_Offsets 0 Offset 0 - OpDecorate %SSBO_Offsets Block - OpDecorate %13 DescriptorSet 0 - OpDecorate %13 Binding 0 - OpDecorate %13 NonWritable - OpDecorate %13 Restrict - OpDecorate %18 DescriptorSet 1 - OpDecorate %18 Binding 0 - OpDecorate %22 DescriptorSet 4 - OpDecorate %22 Binding 0 - OpDecorate %26 DescriptorSet 4 - OpDecorate %26 Binding 0 - OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId - OpDecorate %148 NonUniform - OpDecorate %149 NonUniform - OpDecorate %172 NonUniform - OpDecorate %173 NonUniform - OpDecorate %196 NonUniform - OpDecorate %197 NonUniform - OpDecorate %205 NonUniform - OpDecorate %212 NonUniform - %void = OpTypeVoid - %2 = OpTypeFunction %void - %uint = OpTypeInt 32 0 -%RootConstants = OpTypeStruct %uint %uint %uint %uint %uint %uint %uint %uint -%_ptr_PushConstant_RootConstants = OpTypePointer PushConstant %RootConstants - %registers = OpVariable %_ptr_PushConstant_RootConstants PushConstant - %v2uint = OpTypeVector %uint 2 -%_runtimearr_v2uint = OpTypeRuntimeArray %v2uint -%SSBO_Offsets = OpTypeStruct %_runtimearr_v2uint -%_ptr_StorageBuffer_SSBO_Offsets = OpTypePointer StorageBuffer %SSBO_Offsets - %13 = OpVariable %_ptr_StorageBuffer_SSBO_Offsets StorageBuffer - %float = OpTypeFloat 32 - %15 = OpTypeImage %float Buffer 0 0 0 1 Unknown -%_runtimearr_15 = OpTypeRuntimeArray %15 -%_ptr_UniformConstant__runtimearr_15 = OpTypePointer UniformConstant %_runtimearr_15 - %18 = OpVariable %_ptr_UniformConstant__runtimearr_15 UniformConstant - %19 = OpTypeImage %float Buffer 0 0 0 2 R32f -%_runtimearr_19 = OpTypeRuntimeArray %19 -%_ptr_UniformConstant__runtimearr_19 = OpTypePointer UniformConstant %_runtimearr_19 - %22 = OpVariable %_ptr_UniformConstant__runtimearr_19 UniformConstant - %23 = OpTypeImage %uint Buffer 0 0 0 2 R32ui -%_runtimearr_23 = OpTypeRuntimeArray %23 -%_ptr_UniformConstant__runtimearr_23 = OpTypePointer UniformConstant %_runtimearr_23 - %26 = OpVariable %_ptr_UniformConstant__runtimearr_23 UniformConstant -%_ptr_UniformConstant_23 = OpTypePointer UniformConstant %23 -%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint - %uint_4 = OpConstant %uint 4 - %uint_2 = OpConstant %uint 2 - %uint_3 = OpConstant %uint 3 -%_ptr_StorageBuffer_v2uint = OpTypePointer StorageBuffer %v2uint - %uint_0 = OpConstant %uint 0 -%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19 -%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15 - %uint_1 = OpConstant %uint 1 - %v3uint = OpTypeVector %uint 3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input -%_ptr_Input_uint = OpTypePointer Input %uint - %bool = OpTypeBool -%uint_4294967295 = OpConstant %uint 4294967295 - %v4float = OpTypeVector %float 4 - %uint_1024 = OpConstant %uint 1024 - %uint_2048 = OpConstant %uint 2048 -%_ptr_Image_uint = OpTypePointer Image %uint - %uint_40 = OpConstant %uint 40 - %uint_50 = OpConstant %uint 50 - %uint_70 = OpConstant %uint 70 - %main = OpFunction %void None %2 - %4 = OpLabel - OpBranch %231 - %231 = OpLabel - %30 = OpAccessChain %_ptr_PushConstant_uint %registers %uint_4 - %32 = OpLoad %uint %30 - %33 = OpIAdd %uint %32 %uint_2 - %28 = OpAccessChain %_ptr_UniformConstant_23 %26 %33 - %35 = OpLoad %23 %28 - %36 = OpGroupNonUniformBroadcastFirst %uint %uint_3 %33 - %39 = OpAccessChain %_ptr_StorageBuffer_v2uint %13 %uint_0 %36 - %41 = OpLoad %v2uint %39 - %44 = OpAccessChain %_ptr_PushConstant_uint %registers %uint_4 - %45 = OpLoad %uint %44 - %43 = OpAccessChain %_ptr_UniformConstant_19 %22 %45 - %46 = OpLoad %19 %43 - %47 = OpGroupNonUniformBroadcastFirst %uint %uint_3 %45 - %48 = OpAccessChain %_ptr_StorageBuffer_v2uint %13 %uint_0 %47 - %49 = OpLoad %v2uint %48 - %52 = OpAccessChain %_ptr_PushConstant_uint %registers %uint_1 - %54 = OpLoad %uint %52 - %55 = OpIAdd %uint %54 %uint_1 - %51 = OpAccessChain %_ptr_UniformConstant_15 %18 %55 - %56 = OpLoad %15 %51 - %57 = OpGroupNonUniformBroadcastFirst %uint %uint_3 %55 - %58 = OpAccessChain %_ptr_StorageBuffer_v2uint %13 %uint_0 %57 - %59 = OpLoad %v2uint %58 - %64 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %65 = OpLoad %uint %64 - %66 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_1 - %67 = OpLoad %uint %66 - %68 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_2 - %69 = OpLoad %uint %68 - %70 = OpIAdd %uint %65 %uint_4 - %71 = OpCompositeExtract %uint %49 0 - %72 = OpCompositeExtract %uint %49 1 - %73 = OpIAdd %uint %70 %71 - %75 = OpULessThan %bool %70 %72 - %76 = OpSelect %uint %75 %73 %uint_4294967295 - %79 = OpImageRead %v4float %46 %76 - %80 = OpCompositeExtract %float %79 0 - %81 = OpCompositeExtract %float %79 1 - %82 = OpCompositeExtract %float %79 2 - %83 = OpCompositeExtract %float %79 3 - %84 = OpIAdd %uint %65 %uint_1024 - %86 = OpCompositeExtract %uint %49 0 - %87 = OpCompositeExtract %uint %49 1 - %88 = OpIAdd %uint %84 %86 - %89 = OpULessThan %bool %84 %87 - %90 = OpSelect %uint %89 %88 %uint_4294967295 - %91 = OpCompositeConstruct %v4float %80 %81 %82 %83 - OpImageWrite %46 %90 %91 - %92 = OpIAdd %uint %65 %uint_2 - %93 = OpCompositeExtract %uint %59 0 - %94 = OpCompositeExtract %uint %59 1 - %95 = OpIAdd %uint %92 %93 - %96 = OpULessThan %bool %92 %94 - %97 = OpSelect %uint %96 %95 %uint_4294967295 - %98 = OpImageFetch %v4float %56 %97 - %99 = OpCompositeExtract %float %98 0 - %100 = OpCompositeExtract %float %98 1 - %101 = OpCompositeExtract %float %98 2 - %102 = OpCompositeExtract %float %98 3 - %103 = OpIAdd %uint %65 %uint_2048 - %105 = OpCompositeExtract %uint %49 0 - %106 = OpCompositeExtract %uint %49 1 - %107 = OpIAdd %uint %103 %105 - %108 = OpULessThan %bool %103 %106 - %109 = OpSelect %uint %108 %107 %uint_4294967295 - %110 = OpCompositeConstruct %v4float %99 %100 %101 %102 - OpImageWrite %46 %109 %110 - %111 = OpCompositeExtract %uint %41 0 - %112 = OpCompositeExtract %uint %41 1 - %113 = OpIAdd %uint %65 %111 - %114 = OpULessThan %bool %65 %112 - %115 = OpSelect %uint %114 %113 %uint_4294967295 - %117 = OpImageTexelPointer %_ptr_Image_uint %28 %115 %uint_0 - %118 = OpAtomicIAdd %uint %117 %uint_1 %uint_0 %uint_40 - %120 = OpCompositeExtract %uint %41 0 - %121 = OpCompositeExtract %uint %41 1 - %122 = OpIAdd %uint %67 %120 - %123 = OpULessThan %bool %67 %121 - %124 = OpSelect %uint %123 %122 %uint_4294967295 - %125 = OpImageTexelPointer %_ptr_Image_uint %28 %124 %uint_0 - %126 = OpAtomicCompareExchange %uint %125 %uint_1 %uint_0 %uint_0 %uint_50 %uint_40 - %128 = OpCompositeExtract %uint %49 1 - %129 = OpConvertUToF %float %128 - %130 = OpCompositeExtract %uint %49 0 - %131 = OpCompositeExtract %uint %49 1 - %132 = OpIAdd %uint %uint_0 %130 - %133 = OpULessThan %bool %uint_0 %131 - %134 = OpSelect %uint %133 %132 %uint_4294967295 - %135 = OpCompositeConstruct %v4float %129 %129 %129 %129 - OpImageWrite %46 %134 %135 - %136 = OpCompositeExtract %uint %59 1 - %137 = OpConvertUToF %float %136 - %138 = OpCompositeExtract %uint %49 0 - %139 = OpCompositeExtract %uint %49 1 - %140 = OpIAdd %uint %uint_1 %138 - %141 = OpULessThan %bool %uint_1 %139 - %142 = OpSelect %uint %141 %140 %uint_4294967295 - %143 = OpCompositeConstruct %v4float %137 %137 %137 %137 - OpImageWrite %46 %142 %143 - %144 = OpIAdd %uint %69 %uint_0 - %146 = OpAccessChain %_ptr_PushConstant_uint %registers %uint_4 - %147 = OpLoad %uint %146 - %148 = OpIAdd %uint %147 %144 - %145 = OpAccessChain %_ptr_UniformConstant_19 %22 %148 - %149 = OpLoad %19 %145 - %150 = OpAccessChain %_ptr_StorageBuffer_v2uint %13 %uint_0 %148 - %151 = OpLoad %v2uint %150 - %152 = OpCompositeExtract %uint %151 0 - %153 = OpCompositeExtract %uint %151 1 - %154 = OpIAdd %uint %70 %152 - %155 = OpULessThan %bool %70 %153 - %156 = OpSelect %uint %155 %154 %uint_4294967295 - %157 = OpImageRead %v4float %149 %156 - %158 = OpCompositeExtract %float %157 0 - %159 = OpCompositeExtract %float %157 1 - %160 = OpCompositeExtract %float %157 2 - %161 = OpCompositeExtract %float %157 3 - %162 = OpCompositeExtract %uint %151 0 - %163 = OpCompositeExtract %uint %151 1 - %164 = OpIAdd %uint %84 %162 - %165 = OpULessThan %bool %84 %163 - %166 = OpSelect %uint %165 %164 %uint_4294967295 - %167 = OpCompositeConstruct %v4float %158 %159 %160 %161 - OpImageWrite %149 %166 %167 - %168 = OpIAdd %uint %69 %uint_0 - %170 = OpAccessChain %_ptr_PushConstant_uint %registers %uint_1 - %171 = OpLoad %uint %170 - %172 = OpIAdd %uint %171 %168 - %169 = OpAccessChain %_ptr_UniformConstant_15 %18 %172 - %173 = OpLoad %15 %169 - %174 = OpAccessChain %_ptr_StorageBuffer_v2uint %13 %uint_0 %172 - %175 = OpLoad %v2uint %174 - %176 = OpCompositeExtract %uint %175 0 - %177 = OpCompositeExtract %uint %175 1 - %178 = OpIAdd %uint %70 %176 - %179 = OpULessThan %bool %70 %177 - %180 = OpSelect %uint %179 %178 %uint_4294967295 - %181 = OpImageFetch %v4float %173 %180 - %182 = OpCompositeExtract %float %181 0 - %183 = OpCompositeExtract %float %181 1 - %184 = OpCompositeExtract %float %181 2 - %185 = OpCompositeExtract %float %181 3 - %186 = OpCompositeExtract %uint %151 0 - %187 = OpCompositeExtract %uint %151 1 - %188 = OpIAdd %uint %103 %186 - %189 = OpULessThan %bool %103 %187 - %190 = OpSelect %uint %189 %188 %uint_4294967295 - %191 = OpCompositeConstruct %v4float %182 %183 %184 %185 - OpImageWrite %149 %190 %191 - %192 = OpIAdd %uint %69 %uint_0 - %194 = OpAccessChain %_ptr_PushConstant_uint %registers %uint_4 - %195 = OpLoad %uint %194 - %196 = OpIAdd %uint %195 %192 - %193 = OpAccessChain %_ptr_UniformConstant_23 %26 %196 - %197 = OpLoad %23 %193 - %198 = OpAccessChain %_ptr_StorageBuffer_v2uint %13 %uint_0 %196 - %199 = OpLoad %v2uint %198 - %200 = OpCompositeExtract %uint %199 0 - %201 = OpCompositeExtract %uint %199 1 - %202 = OpIAdd %uint %67 %200 - %203 = OpULessThan %bool %67 %201 - %204 = OpSelect %uint %203 %202 %uint_4294967295 - %205 = OpImageTexelPointer %_ptr_Image_uint %193 %204 %uint_0 - %206 = OpAtomicIAdd %uint %205 %uint_1 %uint_0 %uint_40 - %207 = OpCompositeExtract %uint %199 0 - %208 = OpCompositeExtract %uint %199 1 - %209 = OpIAdd %uint %67 %207 - %210 = OpULessThan %bool %67 %208 - %211 = OpSelect %uint %210 %209 %uint_4294967295 - %212 = OpImageTexelPointer %_ptr_Image_uint %193 %211 %uint_0 - %213 = OpAtomicCompareExchange %uint %212 %uint_1 %uint_0 %uint_0 %uint_70 %uint_40 - %215 = OpCompositeExtract %uint %151 1 - %216 = OpConvertUToF %float %215 - %217 = OpCompositeExtract %uint %49 0 - %218 = OpCompositeExtract %uint %49 1 - %219 = OpIAdd %uint %uint_2 %217 - %220 = OpULessThan %bool %uint_2 %218 - %221 = OpSelect %uint %220 %219 %uint_4294967295 - %222 = OpCompositeConstruct %v4float %216 %216 %216 %216 - OpImageWrite %46 %221 %222 - %223 = OpCompositeExtract %uint %175 1 - %224 = OpConvertUToF %float %223 - %225 = OpCompositeExtract %uint %49 0 - %226 = OpCompositeExtract %uint %49 1 - %227 = OpIAdd %uint %uint_3 %225 - %228 = OpULessThan %bool %uint_3 %226 - %229 = OpSelect %uint %228 %227 %uint_4294967295 - %230 = OpCompositeConstruct %v4float %224 %224 %224 %224 - OpImageWrite %46 %229 %230 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/comp/phi-temporary-copy-loop-variable.asm.invalid.comp b/third_party/spirv-cross/shaders-no-opt/asm/comp/phi-temporary-copy-loop-variable.asm.invalid.comp deleted file mode 100644 index 611591246c..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/comp/phi-temporary-copy-loop-variable.asm.invalid.comp +++ /dev/null @@ -1,68 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 42 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %cs_test "main" %gl_GlobalInvocationID %gl_LocalInvocationIndex - OpExecutionMode %cs_test LocalSize 8 8 1 - OpSource HLSL 600 - OpName %type_2d_image "type.2d.image" - OpName %outImageTexture "outImageTexture" - OpName %cs_test "cs_test" - OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId - OpDecorate %gl_LocalInvocationIndex BuiltIn LocalInvocationIndex - OpDecorate %outImageTexture DescriptorSet 0 - OpDecorate %outImageTexture Binding 1 - %float = OpTypeFloat 32 - %float_5 = OpConstant %float 5 - %float_1 = OpConstant %float 1 - %int = OpTypeInt 32 1 - %int_7 = OpConstant %int 7 - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 -%type_2d_image = OpTypeImage %float 2D 2 0 0 2 Rgba32f -%_ptr_UniformConstant_type_2d_image = OpTypePointer UniformConstant %type_2d_image - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%_ptr_Input_uint = OpTypePointer Input %uint - %void = OpTypeVoid - %19 = OpTypeFunction %void - %v2uint = OpTypeVector %uint 2 - %v4float = OpTypeVector %float 4 - %bool = OpTypeBool -%outImageTexture = OpVariable %_ptr_UniformConstant_type_2d_image UniformConstant -%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input -%gl_LocalInvocationIndex = OpVariable %_ptr_Input_uint Input - %cs_test = OpFunction %void None %19 - %23 = OpLabel - %24 = OpLoad %v3uint %gl_GlobalInvocationID - %25 = OpVectorShuffle %v2uint %24 %24 0 1 - OpBranch %26 - %26 = OpLabel - %27 = OpPhi %int %int_7 %23 %28 %29 - %30 = OpPhi %int %int_7 %23 %27 %29 - %31 = OpSGreaterThanEqual %bool %27 %int_0 - OpLoopMerge %32 %29 None - OpBranchConditional %31 %33 %32 - %33 = OpLabel - %34 = OpConvertSToF %float %27 - %35 = OpFOrdGreaterThan %bool %float_5 %34 - OpSelectionMerge %29 None - OpBranchConditional %35 %36 %29 - %36 = OpLabel - OpBranch %32 - %29 = OpLabel - %28 = OpISub %int %27 %int_1 - OpBranch %26 - %32 = OpLabel - %37 = OpISub %int %30 %int_1 - %38 = OpConvertSToF %float %37 - %39 = OpConvertSToF %float %30 - %40 = OpCompositeConstruct %v4float %38 %39 %float_1 %float_1 - %41 = OpLoad %type_2d_image %outImageTexture - OpImageWrite %41 %25 %40 None - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/comp/spec-constant-op-convert-sign.asm.comp b/third_party/spirv-cross/shaders-no-opt/asm/comp/spec-constant-op-convert-sign.asm.comp deleted file mode 100644 index b7ca1143c5..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/comp/spec-constant-op-convert-sign.asm.comp +++ /dev/null @@ -1,63 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 30 -; Schema: 0 - OpCapability Shader - OpCapability Int64 - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpSourceExtension "GL_ARB_gpu_shader_int64" - OpName %main "main" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "s64" - OpMemberName %SSBO 1 "u64" - OpName %_ "" - OpName %ConstantInt "ConstantInt" - OpName %ConstantInt64_1 "ConstantInt64_1" - OpName %ConstantUint "ConstantUint" - OpName %ConstantInt64_2 "ConstantInt64_2" - OpName %ConstantUint64_1 "ConstantUint64_1" - OpName %ConstantUint64_2 "ConstantUint64_2" - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %SSBO 1 Offset 4 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - OpDecorate %ConstantInt SpecId 0 - OpDecorate %ConstantUint SpecId 1 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %uint = OpTypeInt 32 0 - %long = OpTypeInt 64 1 - %ulong = OpTypeInt 64 0 - %SSBO = OpTypeStruct %int %uint -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform - %int_0 = OpConstant %int 0 - %ulong_0 = OpConstant %ulong 0 -%ConstantInt = OpSpecConstant %int 1 -%ConstantUint = OpSpecConstant %uint 2 -%ConstantInt64_1 = OpSpecConstantOp %long SConvert %ConstantInt -%ConstantInt64_2 = OpSpecConstantOp %long SConvert %ConstantUint -%ConstantUint64_1 = OpSpecConstantOp %ulong SConvert %ConstantInt -%ConstantUint64_2 = OpSpecConstantOp %ulong SConvert %ConstantUint - %added_long = OpSpecConstantOp %long IAdd %ConstantInt64_1 %ConstantInt64_2 - %added_ulong = OpSpecConstantOp %ulong IAdd %ConstantUint64_1 %ConstantUint64_2 - %trunc_long = OpSpecConstantOp %int SConvert %added_long - %trunc_ulong = OpSpecConstantOp %uint SConvert %added_ulong -%_ptr_Uniform_int = OpTypePointer Uniform %int - %int_1 = OpConstant %int 1 -%_ptr_Uniform_uint = OpTypePointer Uniform %uint - %main = OpFunction %void None %3 - %5 = OpLabel - %22 = OpAccessChain %_ptr_Uniform_int %_ %int_0 - OpStore %22 %trunc_long - %29 = OpAccessChain %_ptr_Uniform_uint %_ %int_1 - OpStore %29 %trunc_ulong - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/comp/storage-buffer-basic.asm.comp b/third_party/spirv-cross/shaders-no-opt/asm/comp/storage-buffer-basic.asm.comp deleted file mode 100644 index db9a8490df..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/comp/storage-buffer-basic.asm.comp +++ /dev/null @@ -1,57 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Codeplay; 0 -; Bound: 31 -; Schema: 0 - OpCapability Shader - ;OpCapability VariablePointers - OpExtension "SPV_KHR_storage_buffer_storage_class" - ;OpExtension "SPV_KHR_variable_pointers" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %22 "main" %gl_WorkGroupID - OpSource OpenCL_C 120 - OpDecorate %15 SpecId 0 - ;OpDecorate %16 SpecId 1 - OpDecorate %17 SpecId 2 - OpDecorate %_runtimearr_float ArrayStride 4 - OpMemberDecorate %_struct_4 0 Offset 0 - OpDecorate %_struct_4 Block - OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %20 DescriptorSet 0 - OpDecorate %20 Binding 0 - OpDecorate %21 DescriptorSet 0 - OpDecorate %21 Binding 1 - %float = OpTypeFloat 32 -%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float -%_runtimearr_float = OpTypeRuntimeArray %float - %_struct_4 = OpTypeStruct %_runtimearr_float -%_ptr_StorageBuffer__struct_4 = OpTypePointer StorageBuffer %_struct_4 - %uint = OpTypeInt 32 0 - %void = OpTypeVoid - %8 = OpTypeFunction %void - %v3uint = OpTypeVector %uint 3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_Private_v3uint = OpTypePointer Private %v3uint - %uint_0 = OpConstant %uint 0 -%gl_WorkGroupID = OpVariable %_ptr_Input_v3uint Input - %15 = OpSpecConstant %uint 1 - %16 = OpConstant %uint 2 - %17 = OpSpecConstant %uint 3 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %15 %16 %17 - %19 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize - %20 = OpVariable %_ptr_StorageBuffer__struct_4 StorageBuffer - %21 = OpVariable %_ptr_StorageBuffer__struct_4 StorageBuffer - %22 = OpFunction %void None %8 - %23 = OpLabel - %24 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %25 = OpLoad %uint %24 - %26 = OpAccessChain %_ptr_StorageBuffer_float %21 %uint_0 %25 - %27 = OpLoad %float %26 - %28 = OpAccessChain %_ptr_StorageBuffer_float %20 %uint_0 %25 - %29 = OpLoad %float %28 - %30 = OpFAdd %float %27 %29 - OpStore %28 %30 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/array-builtin-bitcast-load-store.asm.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/array-builtin-bitcast-load-store.asm.frag deleted file mode 100644 index 387764c92c..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/array-builtin-bitcast-load-store.asm.frag +++ /dev/null @@ -1,57 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Google Tint Compiler; 0 -; Bound: 29 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %fragColor %gl_SampleMask - OpExecutionMode %main OriginUpperLeft - OpName %fragColor "fragColor" - OpName %uBuffer "uBuffer" - OpMemberName %uBuffer 0 "color" - OpName %x_12 "x_12" - OpName %gl_SampleMask "gl_SampleMask" - OpName %main "main" - OpDecorate %fragColor Location 0 - OpDecorate %uBuffer Block - OpMemberDecorate %uBuffer 0 Offset 0 - OpDecorate %x_12 DescriptorSet 0 - OpDecorate %x_12 Binding 0 - OpDecorate %gl_SampleMask BuiltIn SampleMask - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %_ptr_Output_v4float = OpTypePointer Output %v4float - %5 = OpConstantNull %v4float - %fragColor = OpVariable %_ptr_Output_v4float Output %5 - %uBuffer = OpTypeStruct %v4float - %_ptr_Uniform_uBuffer = OpTypePointer Uniform %uBuffer - %x_12 = OpVariable %_ptr_Uniform_uBuffer Uniform - %uint = OpTypeInt 32 0 - %uint_1 = OpConstant %uint 1 - %_arr_uint_uint_1 = OpTypeArray %uint %uint_1 -%_ptr_Output__arr_uint_uint_1 = OpTypePointer Output %_arr_uint_uint_1 - %14 = OpConstantNull %_arr_uint_uint_1 - %gl_SampleMask = OpVariable %_ptr_Output__arr_uint_uint_1 Output %14 - %void = OpTypeVoid - %15 = OpTypeFunction %void - %uint_0 = OpConstant %uint 0 - %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %_ptr_Output_uint = OpTypePointer Output %uint - %int_6 = OpConstant %int 6 - %main = OpFunction %void None %15 - %18 = OpLabel - %21 = OpAccessChain %_ptr_Uniform_v4float %x_12 %uint_0 - %22 = OpLoad %v4float %21 - OpStore %fragColor %22 - %26 = OpAccessChain %_ptr_Output_uint %gl_SampleMask %int_0 - %27 = OpBitcast %uint %int_6 - OpStore %26 %27 - %loaded_scalar = OpLoad %uint %26 - OpStore %26 %loaded_scalar - %loaded = OpLoad %_arr_uint_uint_1 %gl_SampleMask - OpStore %gl_SampleMask %loaded - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/combined-image-sampler-dxc-min16float.asm.invalid.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/combined-image-sampler-dxc-min16float.asm.invalid.frag deleted file mode 100644 index dda2f0279c..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/combined-image-sampler-dxc-min16float.asm.invalid.frag +++ /dev/null @@ -1,95 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 48 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %PSMain "main" %in_var_COLOR %in_var_TEXCOORD0 %out_var_SV_TARGET - OpExecutionMode %PSMain OriginUpperLeft - ; Not actually ESSL, but makes testing easier. - OpSource ESSL 310 - OpName %type_2d_image "type.2d.image" - OpName %tex "tex" - OpName %type_sampler "type.sampler" - OpName %Samp "Samp" - OpName %in_var_COLOR "in.var.COLOR" - OpName %in_var_TEXCOORD0 "in.var.TEXCOORD0" - OpName %out_var_SV_TARGET "out.var.SV_TARGET" - OpName %PSMain "PSMain" - OpName %PSInput "PSInput" - OpMemberName %PSInput 0 "color" - OpMemberName %PSInput 1 "uv" - OpName %param_var_input "param.var.input" - OpName %src_PSMain "src.PSMain" - OpName %input "input" - OpName %bb_entry "bb.entry" - OpName %a "a" - OpName %type_sampled_image "type.sampled.image" - OpDecorate %in_var_COLOR Location 0 - OpDecorate %in_var_TEXCOORD0 Location 1 - OpDecorate %out_var_SV_TARGET Location 0 - OpDecorate %tex DescriptorSet 0 - OpDecorate %tex Binding 0 - OpDecorate %Samp DescriptorSet 0 - OpDecorate %Samp Binding 1 - OpDecorate %tex RelaxedPrecision - OpDecorate %a RelaxedPrecision - OpDecorate %38 RelaxedPrecision - OpDecorate %45 RelaxedPrecision - OpDecorate %47 RelaxedPrecision - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 - %float = OpTypeFloat 32 -%type_2d_image = OpTypeImage %float 2D 2 0 0 1 Unknown -%_ptr_UniformConstant_type_2d_image = OpTypePointer UniformConstant %type_2d_image -%type_sampler = OpTypeSampler -%_ptr_UniformConstant_type_sampler = OpTypePointer UniformConstant %type_sampler - %v4float = OpTypeVector %float 4 -%_ptr_Input_v4float = OpTypePointer Input %v4float - %v2float = OpTypeVector %float 2 -%_ptr_Input_v2float = OpTypePointer Input %v2float -%_ptr_Output_v4float = OpTypePointer Output %v4float - %void = OpTypeVoid - %21 = OpTypeFunction %void - %PSInput = OpTypeStruct %v4float %v2float -%_ptr_Function_PSInput = OpTypePointer Function %PSInput - %31 = OpTypeFunction %v4float %_ptr_Function_PSInput -%_ptr_Function_v4float = OpTypePointer Function %v4float -%_ptr_Function_v2float = OpTypePointer Function %v2float -%type_sampled_image = OpTypeSampledImage %type_2d_image - %tex = OpVariable %_ptr_UniformConstant_type_2d_image UniformConstant - %Samp = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant -%in_var_COLOR = OpVariable %_ptr_Input_v4float Input -%in_var_TEXCOORD0 = OpVariable %_ptr_Input_v2float Input -%out_var_SV_TARGET = OpVariable %_ptr_Output_v4float Output - %PSMain = OpFunction %void None %21 - %22 = OpLabel -%param_var_input = OpVariable %_ptr_Function_PSInput Function - %26 = OpLoad %v4float %in_var_COLOR - %27 = OpLoad %v2float %in_var_TEXCOORD0 - %28 = OpCompositeConstruct %PSInput %26 %27 - OpStore %param_var_input %28 - %29 = OpFunctionCall %v4float %src_PSMain %param_var_input - OpStore %out_var_SV_TARGET %29 - OpReturn - OpFunctionEnd - %src_PSMain = OpFunction %v4float None %31 - %input = OpFunctionParameter %_ptr_Function_PSInput - %bb_entry = OpLabel - %a = OpVariable %_ptr_Function_v4float Function - %36 = OpAccessChain %_ptr_Function_v4float %input %int_0 - %37 = OpLoad %v4float %36 - %38 = OpLoad %type_2d_image %tex - %39 = OpLoad %type_sampler %Samp - %41 = OpAccessChain %_ptr_Function_v2float %input %int_1 - %42 = OpLoad %v2float %41 - %44 = OpSampledImage %type_sampled_image %38 %39 - %45 = OpImageSampleImplicitLod %v4float %44 %42 None - %46 = OpFMul %v4float %37 %45 - OpStore %a %46 - %47 = OpLoad %v4float %a - OpReturnValue %47 - OpFunctionEnd - diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/demote-impure-function-call.vk.nocompat.asm.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/demote-impure-function-call.vk.nocompat.asm.frag deleted file mode 100644 index 9f1a4573dd..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/demote-impure-function-call.vk.nocompat.asm.frag +++ /dev/null @@ -1,63 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 33 -; Schema: 0 - OpCapability Shader - OpCapability DemoteToHelperInvocationEXT - OpExtension "SPV_EXT_demote_to_helper_invocation" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %vA %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpSourceExtension "GL_EXT_demote_to_helper_invocation" - OpName %main "main" - OpName %foobar_i1_ "foobar(i1;" - OpName %a "a" - OpName %a_0 "a" - OpName %vA "vA" - OpName %param "param" - OpName %FragColor "FragColor" - OpDecorate %vA Flat - OpDecorate %vA Location 0 - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 -%_ptr_Function_int = OpTypePointer Function %int - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %10 = OpTypeFunction %v4float %_ptr_Function_int - %int_0 = OpConstant %int 0 - %bool = OpTypeBool - %float_10 = OpConstant %float 10 - %21 = OpConstantComposite %v4float %float_10 %float_10 %float_10 %float_10 -%_ptr_Function_v4float = OpTypePointer Function %v4float -%_ptr_Input_int = OpTypePointer Input %int - %vA = OpVariable %_ptr_Input_int Input -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %main = OpFunction %void None %3 - %5 = OpLabel - %a_0 = OpVariable %_ptr_Function_v4float Function - %param = OpVariable %_ptr_Function_int Function - %29 = OpLoad %int %vA - OpStore %param %29 - %30 = OpFunctionCall %v4float %foobar_i1_ %param - OpStore %FragColor %21 - OpReturn - OpFunctionEnd - %foobar_i1_ = OpFunction %v4float None %10 - %a = OpFunctionParameter %_ptr_Function_int - %13 = OpLabel - %14 = OpLoad %int %a - %17 = OpSLessThan %bool %14 %int_0 - OpSelectionMerge %19 None - OpBranchConditional %17 %18 %19 - %18 = OpLabel - OpDemoteToHelperInvocationEXT - OpBranch %19 - %19 = OpLabel - OpReturnValue %21 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/discard-impure-function-call.asm.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/discard-impure-function-call.asm.frag deleted file mode 100644 index 0f039166b0..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/discard-impure-function-call.asm.frag +++ /dev/null @@ -1,59 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 34 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %vA %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %foobar_i1_ "foobar(i1;" - OpName %a "a" - OpName %a_0 "a" - OpName %vA "vA" - OpName %param "param" - OpName %FragColor "FragColor" - OpDecorate %vA Flat - OpDecorate %vA Location 0 - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 -%_ptr_Function_int = OpTypePointer Function %int - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %10 = OpTypeFunction %v4float %_ptr_Function_int - %int_0 = OpConstant %int 0 - %bool = OpTypeBool - %float_10 = OpConstant %float 10 - %22 = OpConstantComposite %v4float %float_10 %float_10 %float_10 %float_10 -%_ptr_Function_v4float = OpTypePointer Function %v4float -%_ptr_Input_int = OpTypePointer Input %int - %vA = OpVariable %_ptr_Input_int Input -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %main = OpFunction %void None %3 - %5 = OpLabel - %a_0 = OpVariable %_ptr_Function_v4float Function - %param = OpVariable %_ptr_Function_int Function - %30 = OpLoad %int %vA - OpStore %param %30 - %31 = OpFunctionCall %v4float %foobar_i1_ %param - OpStore %FragColor %22 - OpReturn - OpFunctionEnd - %foobar_i1_ = OpFunction %v4float None %10 - %a = OpFunctionParameter %_ptr_Function_int - %13 = OpLabel - %14 = OpLoad %int %a - %17 = OpSLessThan %bool %14 %int_0 - OpSelectionMerge %19 None - OpBranchConditional %17 %18 %19 - %18 = OpLabel - OpKill - %19 = OpLabel - OpReturnValue %22 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/do-while-continue-phi.asm.invalid.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/do-while-continue-phi.asm.invalid.frag deleted file mode 100644 index 97400dfb16..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/do-while-continue-phi.asm.invalid.frag +++ /dev/null @@ -1,64 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 42 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %gl_FragCoord %_GLF_color - OpExecutionMode %main OriginUpperLeft - OpSource ESSL 310 - OpName %main "main" - OpName %gl_FragCoord "gl_FragCoord" - OpName %_GLF_color "_GLF_color" - OpDecorate %gl_FragCoord BuiltIn FragCoord - OpDecorate %_GLF_color Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Input_v4float = OpTypePointer Input %v4float -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 -%_ptr_Input_float = OpTypePointer Input %float - %bool = OpTypeBool - %false = OpConstantFalse %bool -%_ptr_Output_v4float = OpTypePointer Output %v4float - %_GLF_color = OpVariable %_ptr_Output_v4float Output - %float_1 = OpConstant %float 1 - %float_0 = OpConstant %float 0 - %31 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 - %true = OpConstantTrue %bool - %main = OpFunction %void None %3 - %5 = OpLabel - OpBranch %33 - %33 = OpLabel - OpLoopMerge %32 %35 None - OpBranch %6 - %6 = OpLabel - OpLoopMerge %8 %24 None - OpBranch %7 - %7 = OpLabel - %17 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_0 - %18 = OpLoad %float %17 - %22 = OpFOrdNotEqual %bool %18 %18 - OpSelectionMerge %24 None - OpBranchConditional %22 %23 %24 - %23 = OpLabel - OpBranch %8 - %24 = OpLabel - OpBranchConditional %false %6 %8 - %8 = OpLabel - %41 = OpPhi %bool %true %23 %false %24 - OpSelectionMerge %39 None - OpBranchConditional %41 %32 %39 - %39 = OpLabel - OpStore %_GLF_color %31 - OpBranch %32 - %35 = OpLabel - OpBranch %33 - %32 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/do-while-loop-inverted-test.asm.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/do-while-loop-inverted-test.asm.frag deleted file mode 100644 index 93a39cfe12..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/do-while-loop-inverted-test.asm.frag +++ /dev/null @@ -1,51 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 28 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %i "i" - OpName %j "j" - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 -%_ptr_Function_int = OpTypePointer Function %int - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 - %int_20 = OpConstant %int 20 - %bool = OpTypeBool - %main = OpFunction %void None %3 - %5 = OpLabel - %i = OpVariable %_ptr_Function_int Function - %j = OpVariable %_ptr_Function_int Function - OpStore %i %int_0 - OpStore %j %int_0 - OpBranch %11 - %11 = OpLabel - OpLoopMerge %13 %14 None - OpBranch %12 - %12 = OpLabel - %15 = OpLoad %int %j - %16 = OpLoad %int %i - %17 = OpIAdd %int %15 %16 - %19 = OpIAdd %int %17 %int_1 - %20 = OpLoad %int %j - %21 = OpIMul %int %19 %20 - OpStore %j %21 - %22 = OpLoad %int %i - %23 = OpIAdd %int %22 %int_1 - OpStore %i %23 - OpBranch %14 - %14 = OpLabel - %24 = OpLoad %int %i - %27 = OpIEqual %bool %24 %int_20 - OpBranchConditional %27 %13 %11 - %13 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/early-conditional-return-switch.asm.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/early-conditional-return-switch.asm.frag deleted file mode 100644 index d789ce36b0..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/early-conditional-return-switch.asm.frag +++ /dev/null @@ -1,133 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Google spiregg; 0 -; Bound: 81 -; Schema: 0 - OpCapability Shader - OpCapability Sampled1D - OpCapability Image1D - OpCapability SampledBuffer - OpCapability ImageBuffer - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %PsTextureLoadArray "main" %gl_FragCoord %out_var_SV_TARGET - OpExecutionMode %PsTextureLoadArray OriginUpperLeft - OpSource HLSL 500 - OpName %type_2d_image "type.2d.image" - OpName %type_gCBuffarrayIndex "type.gCBuffarrayIndex" - OpMemberName %type_gCBuffarrayIndex 0 "gArrayIndex" - OpName %gCBuffarrayIndex "gCBuffarrayIndex" - OpName %g_textureArray0 "g_textureArray0" - OpName %g_textureArray1 "g_textureArray1" - OpName %g_textureArray2 "g_textureArray2" - OpName %g_textureArray3 "g_textureArray3" - OpName %out_var_SV_TARGET "out.var.SV_TARGET" - OpName %PsTextureLoadArray "PsTextureLoadArray" - OpDecorate %gl_FragCoord BuiltIn FragCoord - OpDecorate %out_var_SV_TARGET Location 0 - OpDecorate %gCBuffarrayIndex DescriptorSet 0 - OpDecorate %gCBuffarrayIndex Binding 0 - OpDecorate %g_textureArray0 DescriptorSet 0 - OpDecorate %g_textureArray0 Binding 0 - OpDecorate %g_textureArray1 DescriptorSet 0 - OpDecorate %g_textureArray1 Binding 1 - OpDecorate %g_textureArray2 DescriptorSet 0 - OpDecorate %g_textureArray2 Binding 2 - OpDecorate %g_textureArray3 DescriptorSet 0 - OpDecorate %g_textureArray3 Binding 3 - OpMemberDecorate %type_gCBuffarrayIndex 0 Offset 0 - OpDecorate %type_gCBuffarrayIndex Block - %uint = OpTypeInt 32 0 - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %float = OpTypeFloat 32 - %float_0 = OpConstant %float 0 - %float_1 = OpConstant %float 1 - %v4float = OpTypeVector %float 4 - %18 = OpConstantComposite %v4float %float_0 %float_1 %float_0 %float_1 -%type_2d_image = OpTypeImage %float 2D 2 0 0 1 Unknown -%_ptr_UniformConstant_type_2d_image = OpTypePointer UniformConstant %type_2d_image -%type_gCBuffarrayIndex = OpTypeStruct %uint -%_ptr_Uniform_type_gCBuffarrayIndex = OpTypePointer Uniform %type_gCBuffarrayIndex -%_ptr_Input_v4float = OpTypePointer Input %v4float -%_ptr_Output_v4float = OpTypePointer Output %v4float - %void = OpTypeVoid - %24 = OpTypeFunction %void -%_ptr_Uniform_uint = OpTypePointer Uniform %uint - %v3int = OpTypeVector %int 3 - %v2int = OpTypeVector %int 2 -%gCBuffarrayIndex = OpVariable %_ptr_Uniform_type_gCBuffarrayIndex Uniform -%g_textureArray0 = OpVariable %_ptr_UniformConstant_type_2d_image UniformConstant -%g_textureArray1 = OpVariable %_ptr_UniformConstant_type_2d_image UniformConstant -%g_textureArray2 = OpVariable %_ptr_UniformConstant_type_2d_image UniformConstant -%g_textureArray3 = OpVariable %_ptr_UniformConstant_type_2d_image UniformConstant -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input -%out_var_SV_TARGET = OpVariable %_ptr_Output_v4float Output - %uint_0 = OpConstant %uint 0 - %bool = OpTypeBool - %false = OpConstantFalse %bool - %true = OpConstantTrue %bool - %32 = OpUndef %v4float -%PsTextureLoadArray = OpFunction %void None %24 - %33 = OpLabel - %34 = OpLoad %v4float %gl_FragCoord - OpSelectionMerge %35 None - OpSwitch %uint_0 %36 - %36 = OpLabel - %37 = OpAccessChain %_ptr_Uniform_uint %gCBuffarrayIndex %int_0 - %38 = OpLoad %uint %37 - OpSelectionMerge %39 None - OpSwitch %38 %40 0 %41 1 %42 2 %43 3 %44 - %41 = OpLabel - %45 = OpCompositeExtract %float %34 0 - %46 = OpCompositeExtract %float %34 1 - %47 = OpConvertFToS %int %45 - %48 = OpConvertFToS %int %46 - %49 = OpCompositeConstruct %v3int %47 %48 %int_0 - %50 = OpVectorShuffle %v2int %49 %49 0 1 - %51 = OpLoad %type_2d_image %g_textureArray0 - %52 = OpImageFetch %v4float %51 %50 Lod %int_0 - OpBranch %39 - %42 = OpLabel - %53 = OpCompositeExtract %float %34 0 - %54 = OpCompositeExtract %float %34 1 - %55 = OpConvertFToS %int %53 - %56 = OpConvertFToS %int %54 - %57 = OpCompositeConstruct %v3int %55 %56 %int_0 - %58 = OpVectorShuffle %v2int %57 %57 0 1 - %59 = OpLoad %type_2d_image %g_textureArray1 - %60 = OpImageFetch %v4float %59 %58 Lod %int_0 - OpBranch %39 - %43 = OpLabel - %61 = OpCompositeExtract %float %34 0 - %62 = OpCompositeExtract %float %34 1 - %63 = OpConvertFToS %int %61 - %64 = OpConvertFToS %int %62 - %65 = OpCompositeConstruct %v3int %63 %64 %int_0 - %66 = OpVectorShuffle %v2int %65 %65 0 1 - %67 = OpLoad %type_2d_image %g_textureArray2 - %68 = OpImageFetch %v4float %67 %66 Lod %int_0 - OpBranch %39 - %44 = OpLabel - %69 = OpCompositeExtract %float %34 0 - %70 = OpCompositeExtract %float %34 1 - %71 = OpConvertFToS %int %69 - %72 = OpConvertFToS %int %70 - %73 = OpCompositeConstruct %v3int %71 %72 %int_0 - %74 = OpVectorShuffle %v2int %73 %73 0 1 - %75 = OpLoad %type_2d_image %g_textureArray3 - %76 = OpImageFetch %v4float %75 %74 Lod %int_0 - OpBranch %39 - %40 = OpLabel - OpBranch %39 - %39 = OpLabel - %77 = OpPhi %v4float %52 %41 %60 %42 %68 %43 %76 %44 %32 %40 - %78 = OpPhi %bool %true %41 %true %42 %true %43 %true %44 %false %40 - OpSelectionMerge %79 None - OpBranchConditional %78 %35 %79 - %79 = OpLabel - OpBranch %35 - %35 = OpLabel - %80 = OpPhi %v4float %77 %39 %18 %79 - OpStore %out_var_SV_TARGET %80 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/empty-struct-in-struct.asm.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/empty-struct-in-struct.asm.frag deleted file mode 100644 index a9650ddbb6..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/empty-struct-in-struct.asm.frag +++ /dev/null @@ -1,61 +0,0 @@ -; SPIR-V -; Version: 1.2 -; Generator: Khronos; 0 -; Bound: 43 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %EntryPoint_Main "main" - OpExecutionMode %EntryPoint_Main OriginUpperLeft - OpSource Unknown 100 - OpName %EmptyStructTest "EmptyStructTest" - OpName %EmptyStruct2Test "EmptyStruct2Test" - OpName %GetValue "GetValue" - OpName %GetValue2 "GetValue" - OpName %self "self" - OpName %self2 "self" - OpName %emptyStruct "emptyStruct" - OpName %value "value" - OpName %EntryPoint_Main "EntryPoint_Main" - -%EmptyStructTest = OpTypeStruct -%EmptyStruct2Test = OpTypeStruct %EmptyStructTest -%_ptr_Function_EmptyStruct2Test = OpTypePointer Function %EmptyStruct2Test - %float = OpTypeFloat 32 -%_ptr_Function_float = OpTypePointer Function %float - %5 = OpTypeFunction %float %_ptr_Function_EmptyStruct2Test - %6 = OpTypeFunction %float %EmptyStruct2Test - %void = OpTypeVoid -%_ptr_Function_void = OpTypePointer Function %void - %8 = OpTypeFunction %void %_ptr_Function_EmptyStruct2Test - %9 = OpTypeFunction %void - %float_0 = OpConstant %float 0 - %value4 = OpConstantNull %EmptyStruct2Test - - %GetValue = OpFunction %float None %5 - %self = OpFunctionParameter %_ptr_Function_EmptyStruct2Test - %13 = OpLabel - OpReturnValue %float_0 - OpFunctionEnd - - %GetValue2 = OpFunction %float None %6 - %self2 = OpFunctionParameter %EmptyStruct2Test - %14 = OpLabel - OpReturnValue %float_0 - OpFunctionEnd - -%EntryPoint_Main = OpFunction %void None %9 - %37 = OpLabel - %emptyStruct = OpVariable %_ptr_Function_EmptyStruct2Test Function - %18 = OpVariable %_ptr_Function_EmptyStruct2Test Function - %value = OpVariable %_ptr_Function_float Function - %value2 = OpCompositeConstruct %EmptyStructTest - %value3 = OpCompositeConstruct %EmptyStruct2Test %value2 - %22 = OpFunctionCall %float %GetValue %emptyStruct - %23 = OpFunctionCall %float %GetValue2 %value3 - %24 = OpFunctionCall %float %GetValue2 %value4 - OpStore %value %22 - OpStore %value %23 - OpStore %value %24 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/for-loop-dedicated-merge-block-inverted.asm.invalid.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/for-loop-dedicated-merge-block-inverted.asm.invalid.frag deleted file mode 100644 index 1e67b381e2..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/for-loop-dedicated-merge-block-inverted.asm.invalid.frag +++ /dev/null @@ -1,37 +0,0 @@ - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %int_16 = OpConstant %int 16 - %bool = OpTypeBool - %int_1 = OpConstant %int 1 - %main = OpFunction %void None %3 - %5 = OpLabel - OpBranch %8 - %8 = OpLabel - %10 = OpPhi %int %12 %7 %int_0 %5 - OpLoopMerge %6 %7 None - OpBranch %11 - %11 = OpLabel - %16 = OpIEqual %bool %10 %int_16 - OpBranchConditional %16 %18 %19 - %18 = OpLabel - OpBranch %6 - %19 = OpLabel - OpBranch %17 - %17 = OpLabel - %21 = OpIAdd %int %10 %int_1 - OpBranch %7 - %7 = OpLabel - %12 = OpPhi %int %21 %17 - OpBranch %8 - %6 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/for-loop-dedicated-merge-block-non-inverted.asm.invalid.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/for-loop-dedicated-merge-block-non-inverted.asm.invalid.frag deleted file mode 100644 index 22c6e55c42..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/for-loop-dedicated-merge-block-non-inverted.asm.invalid.frag +++ /dev/null @@ -1,37 +0,0 @@ - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %int_16 = OpConstant %int 16 - %bool = OpTypeBool - %int_1 = OpConstant %int 1 - %main = OpFunction %void None %3 - %5 = OpLabel - OpBranch %8 - %8 = OpLabel - %10 = OpPhi %int %12 %7 %int_0 %5 - OpLoopMerge %6 %7 None - OpBranch %11 - %11 = OpLabel - %16 = OpINotEqual %bool %10 %int_16 - OpBranchConditional %16 %19 %18 - %18 = OpLabel - OpBranch %6 - %19 = OpLabel - OpBranch %17 - %17 = OpLabel - %21 = OpIAdd %int %10 %int_1 - OpBranch %7 - %7 = OpLabel - %12 = OpPhi %int %21 %17 - OpBranch %8 - %6 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/for-loop-inverted-test.asm.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/for-loop-inverted-test.asm.frag deleted file mode 100644 index a87ceee182..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/for-loop-inverted-test.asm.frag +++ /dev/null @@ -1,35 +0,0 @@ - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %int_16 = OpConstant %int 16 - %bool = OpTypeBool - %int_1 = OpConstant %int 1 - %main = OpFunction %void None %3 - %5 = OpLabel - OpBranch %8 - %8 = OpLabel - %10 = OpPhi %int %12 %7 %int_0 %5 - OpLoopMerge %6 %7 None - OpBranch %11 - %11 = OpLabel - %16 = OpIEqual %bool %10 %int_16 - OpBranchConditional %16 %6 %19 - %19 = OpLabel - OpBranch %17 - %17 = OpLabel - %21 = OpIAdd %int %10 %int_1 - OpBranch %7 - %7 = OpLabel - %12 = OpPhi %int %21 %17 - OpBranch %8 - %6 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/image-fetch-uint-coord.asm.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/image-fetch-uint-coord.asm.frag deleted file mode 100644 index ca8022d4bb..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/image-fetch-uint-coord.asm.frag +++ /dev/null @@ -1,44 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 29 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %in_var_TEXCOORD0 %out_var_SV_Target0 - OpExecutionMode %main OriginUpperLeft - OpSource HLSL 600 - OpName %type_2d_image "type.2d.image" - OpName %Tex "Tex" - OpName %in_var_TEXCOORD0 "in.var.TEXCOORD0" - OpName %out_var_SV_Target0 "out.var.SV_Target0" - OpName %main "main" - OpDecorate %in_var_TEXCOORD0 Flat - OpDecorate %in_var_TEXCOORD0 Location 0 - OpDecorate %out_var_SV_Target0 Location 0 - OpDecorate %Tex DescriptorSet 0 - OpDecorate %Tex Binding 0 - %int = OpTypeInt 32 1 - %int_2 = OpConstant %int 2 - %float = OpTypeFloat 32 -%type_2d_image = OpTypeImage %float 2D 2 0 0 1 Unknown -%_ptr_UniformConstant_type_2d_image = OpTypePointer UniformConstant %type_2d_image - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %void = OpTypeVoid - %16 = OpTypeFunction %void - %Tex = OpVariable %_ptr_UniformConstant_type_2d_image UniformConstant -%in_var_TEXCOORD0 = OpVariable %_ptr_Input_v3uint Input -%out_var_SV_Target0 = OpVariable %_ptr_Output_v4float Output - %main = OpFunction %void None %16 - %19 = OpLabel - %20 = OpLoad %v3uint %in_var_TEXCOORD0 - %21 = OpCompositeExtract %uint %20 2 - %27 = OpLoad %type_2d_image %Tex - %28 = OpImageFetch %v4float %27 %20 Lod %21 - OpStore %out_var_SV_Target0 %28 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/inliner-dominator-inside-loop.asm.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/inliner-dominator-inside-loop.asm.frag deleted file mode 100644 index 8b09e5b68f..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/inliner-dominator-inside-loop.asm.frag +++ /dev/null @@ -1,646 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 3 -; Bound: 1532 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %IN_HPosition %IN_Uv_EdgeDistance1 %IN_UvStuds_EdgeDistance2 %IN_Color %IN_LightPosition_Fog %IN_View_Depth %IN_Normal_SpecPower %IN_Tangent %IN_PosLightSpace_Reflectance %IN_studIndex %_entryPointOutput - OpExecutionMode %main OriginUpperLeft - OpSource HLSL 500 - OpName %main "main" - OpName %VertexOutput "VertexOutput" - OpMemberName %VertexOutput 0 "HPosition" - OpMemberName %VertexOutput 1 "Uv_EdgeDistance1" - OpMemberName %VertexOutput 2 "UvStuds_EdgeDistance2" - OpMemberName %VertexOutput 3 "Color" - OpMemberName %VertexOutput 4 "LightPosition_Fog" - OpMemberName %VertexOutput 5 "View_Depth" - OpMemberName %VertexOutput 6 "Normal_SpecPower" - OpMemberName %VertexOutput 7 "Tangent" - OpMemberName %VertexOutput 8 "PosLightSpace_Reflectance" - OpMemberName %VertexOutput 9 "studIndex" - OpName %Surface "Surface" - OpMemberName %Surface 0 "albedo" - OpMemberName %Surface 1 "normal" - OpMemberName %Surface 2 "specular" - OpMemberName %Surface 3 "gloss" - OpMemberName %Surface 4 "reflectance" - OpMemberName %Surface 5 "opacity" - OpName %SurfaceInput "SurfaceInput" - OpMemberName %SurfaceInput 0 "Color" - OpMemberName %SurfaceInput 1 "Uv" - OpMemberName %SurfaceInput 2 "UvStuds" - OpName %Globals "Globals" - OpMemberName %Globals 0 "ViewProjection" - OpMemberName %Globals 1 "ViewRight" - OpMemberName %Globals 2 "ViewUp" - OpMemberName %Globals 3 "ViewDir" - OpMemberName %Globals 4 "CameraPosition" - OpMemberName %Globals 5 "AmbientColor" - OpMemberName %Globals 6 "Lamp0Color" - OpMemberName %Globals 7 "Lamp0Dir" - OpMemberName %Globals 8 "Lamp1Color" - OpMemberName %Globals 9 "FogParams" - OpMemberName %Globals 10 "FogColor" - OpMemberName %Globals 11 "LightBorder" - OpMemberName %Globals 12 "LightConfig0" - OpMemberName %Globals 13 "LightConfig1" - OpMemberName %Globals 14 "LightConfig2" - OpMemberName %Globals 15 "LightConfig3" - OpMemberName %Globals 16 "RefractionBias_FadeDistance_GlowFactor" - OpMemberName %Globals 17 "OutlineBrightness_ShadowInfo" - OpMemberName %Globals 18 "ShadowMatrix0" - OpMemberName %Globals 19 "ShadowMatrix1" - OpMemberName %Globals 20 "ShadowMatrix2" - OpName %CB0 "CB0" - OpMemberName %CB0 0 "CB0" - OpName %_ "" - OpName %LightMapTexture "LightMapTexture" - OpName %LightMapSampler "LightMapSampler" - OpName %ShadowMapSampler "ShadowMapSampler" - OpName %ShadowMapTexture "ShadowMapTexture" - OpName %EnvironmentMapTexture "EnvironmentMapTexture" - OpName %EnvironmentMapSampler "EnvironmentMapSampler" - OpName %IN_HPosition "IN.HPosition" - OpName %IN_Uv_EdgeDistance1 "IN.Uv_EdgeDistance1" - OpName %IN_UvStuds_EdgeDistance2 "IN.UvStuds_EdgeDistance2" - OpName %IN_Color "IN.Color" - OpName %IN_LightPosition_Fog "IN.LightPosition_Fog" - OpName %IN_View_Depth "IN.View_Depth" - OpName %IN_Normal_SpecPower "IN.Normal_SpecPower" - OpName %IN_Tangent "IN.Tangent" - OpName %IN_PosLightSpace_Reflectance "IN.PosLightSpace_Reflectance" - OpName %IN_studIndex "IN.studIndex" - OpName %_entryPointOutput "@entryPointOutput" - OpName %DiffuseMapSampler "DiffuseMapSampler" - OpName %DiffuseMapTexture "DiffuseMapTexture" - OpName %NormalMapSampler "NormalMapSampler" - OpName %NormalMapTexture "NormalMapTexture" - OpName %NormalDetailMapTexture "NormalDetailMapTexture" - OpName %NormalDetailMapSampler "NormalDetailMapSampler" - OpName %StudsMapTexture "StudsMapTexture" - OpName %StudsMapSampler "StudsMapSampler" - OpName %SpecularMapSampler "SpecularMapSampler" - OpName %SpecularMapTexture "SpecularMapTexture" - OpName %Params "Params" - OpMemberName %Params 0 "LqmatFarTilingFactor" - OpName %CB2 "CB2" - OpMemberName %CB2 0 "CB2" - OpMemberDecorate %Globals 0 ColMajor - OpMemberDecorate %Globals 0 Offset 0 - OpMemberDecorate %Globals 0 MatrixStride 16 - OpMemberDecorate %Globals 1 Offset 64 - OpMemberDecorate %Globals 2 Offset 80 - OpMemberDecorate %Globals 3 Offset 96 - OpMemberDecorate %Globals 4 Offset 112 - OpMemberDecorate %Globals 5 Offset 128 - OpMemberDecorate %Globals 6 Offset 144 - OpMemberDecorate %Globals 7 Offset 160 - OpMemberDecorate %Globals 8 Offset 176 - OpMemberDecorate %Globals 9 Offset 192 - OpMemberDecorate %Globals 10 Offset 208 - OpMemberDecorate %Globals 11 Offset 224 - OpMemberDecorate %Globals 12 Offset 240 - OpMemberDecorate %Globals 13 Offset 256 - OpMemberDecorate %Globals 14 Offset 272 - OpMemberDecorate %Globals 15 Offset 288 - OpMemberDecorate %Globals 16 Offset 304 - OpMemberDecorate %Globals 17 Offset 320 - OpMemberDecorate %Globals 18 Offset 336 - OpMemberDecorate %Globals 19 Offset 352 - OpMemberDecorate %Globals 20 Offset 368 - OpMemberDecorate %CB0 0 Offset 0 - OpDecorate %CB0 Block - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - OpDecorate %LightMapTexture DescriptorSet 1 - OpDecorate %LightMapTexture Binding 6 - OpDecorate %LightMapSampler DescriptorSet 1 - OpDecorate %LightMapSampler Binding 6 - OpDecorate %ShadowMapSampler DescriptorSet 1 - OpDecorate %ShadowMapSampler Binding 1 - OpDecorate %ShadowMapTexture DescriptorSet 1 - OpDecorate %ShadowMapTexture Binding 1 - OpDecorate %EnvironmentMapTexture DescriptorSet 1 - OpDecorate %EnvironmentMapTexture Binding 2 - OpDecorate %EnvironmentMapSampler DescriptorSet 1 - OpDecorate %EnvironmentMapSampler Binding 2 - OpDecorate %IN_HPosition BuiltIn FragCoord - OpDecorate %IN_Uv_EdgeDistance1 Location 0 - OpDecorate %IN_UvStuds_EdgeDistance2 Location 1 - OpDecorate %IN_Color Location 2 - OpDecorate %IN_LightPosition_Fog Location 3 - OpDecorate %IN_View_Depth Location 4 - OpDecorate %IN_Normal_SpecPower Location 5 - OpDecorate %IN_Tangent Location 6 - OpDecorate %IN_PosLightSpace_Reflectance Location 7 - OpDecorate %IN_studIndex Location 8 - OpDecorate %_entryPointOutput Location 0 - OpDecorate %DiffuseMapSampler DescriptorSet 1 - OpDecorate %DiffuseMapSampler Binding 3 - OpDecorate %DiffuseMapTexture DescriptorSet 1 - OpDecorate %DiffuseMapTexture Binding 3 - OpDecorate %NormalMapSampler DescriptorSet 1 - OpDecorate %NormalMapSampler Binding 4 - OpDecorate %NormalMapTexture DescriptorSet 1 - OpDecorate %NormalMapTexture Binding 4 - OpDecorate %NormalDetailMapTexture DescriptorSet 1 - OpDecorate %NormalDetailMapTexture Binding 8 - OpDecorate %NormalDetailMapSampler DescriptorSet 1 - OpDecorate %NormalDetailMapSampler Binding 8 - OpDecorate %StudsMapTexture DescriptorSet 1 - OpDecorate %StudsMapTexture Binding 0 - OpDecorate %StudsMapSampler DescriptorSet 1 - OpDecorate %StudsMapSampler Binding 0 - OpDecorate %SpecularMapSampler DescriptorSet 1 - OpDecorate %SpecularMapSampler Binding 5 - OpDecorate %SpecularMapTexture DescriptorSet 1 - OpDecorate %SpecularMapTexture Binding 5 - OpMemberDecorate %Params 0 Offset 0 - OpMemberDecorate %CB2 0 Offset 0 - OpDecorate %CB2 Block - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 -%_ptr_Function_float = OpTypePointer Function %float - %8 = OpTypeFunction %float %_ptr_Function_float - %v4float = OpTypeVector %float 4 -%_ptr_Function_v4float = OpTypePointer Function %v4float - %v3float = OpTypeVector %float 3 - %18 = OpTypeFunction %v3float %_ptr_Function_v4float -%_ptr_Function_v3float = OpTypePointer Function %v3float - %23 = OpTypeFunction %v4float %_ptr_Function_v3float - %27 = OpTypeFunction %float %_ptr_Function_v3float - %31 = OpTypeFunction %float %_ptr_Function_float %_ptr_Function_float - %36 = OpTypeSampler -%_ptr_Function_36 = OpTypePointer Function %36 - %38 = OpTypeImage %float 2D 0 0 0 1 Unknown -%_ptr_Function_38 = OpTypePointer Function %38 - %40 = OpTypeFunction %float %_ptr_Function_36 %_ptr_Function_38 %_ptr_Function_v3float %_ptr_Function_float -%VertexOutput = OpTypeStruct %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v3float %v4float %float -%_ptr_Function_VertexOutput = OpTypePointer Function %VertexOutput - %Surface = OpTypeStruct %v3float %v3float %float %float %float %float - %50 = OpTypeFunction %Surface %_ptr_Function_VertexOutput - %54 = OpTypeFunction %v4float %_ptr_Function_VertexOutput - %v2float = OpTypeVector %float 2 -%_ptr_Function_v2float = OpTypePointer Function %v2float - %60 = OpTypeFunction %v4float %_ptr_Function_36 %_ptr_Function_38 %_ptr_Function_v2float %_ptr_Function_float %_ptr_Function_float -%SurfaceInput = OpTypeStruct %v4float %v2float %v2float -%_ptr_Function_SurfaceInput = OpTypePointer Function %SurfaceInput - %70 = OpTypeFunction %Surface %_ptr_Function_SurfaceInput %_ptr_Function_v2float - %float_0 = OpConstant %float 0 - %float_1 = OpConstant %float 1 - %float_2 = OpConstant %float 2 -%mat4v4float = OpTypeMatrix %v4float 4 - %Globals = OpTypeStruct %mat4v4float %v4float %v4float %v4float %v3float %v3float %v3float %v3float %v3float %v4float %v3float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v4float - %CB0 = OpTypeStruct %Globals -%_ptr_Uniform_CB0 = OpTypePointer Uniform %CB0 - %_ = OpVariable %_ptr_Uniform_CB0 Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %int_15 = OpConstant %int 15 -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float - %int_14 = OpConstant %int 14 - %128 = OpConstantComposite %v3float %float_1 %float_1 %float_1 - %133 = OpTypeImage %float 3D 0 0 0 1 Unknown -%_ptr_UniformConstant_133 = OpTypePointer UniformConstant %133 -%LightMapTexture = OpVariable %_ptr_UniformConstant_133 UniformConstant -%_ptr_UniformConstant_36 = OpTypePointer UniformConstant %36 -%LightMapSampler = OpVariable %_ptr_UniformConstant_36 UniformConstant - %140 = OpTypeSampledImage %133 - %int_11 = OpConstant %int 11 - %uint = OpTypeInt 32 0 - %float_9 = OpConstant %float 9 - %float_20 = OpConstant %float 20 - %float_0_5 = OpConstant %float 0.5 - %183 = OpTypeSampledImage %38 - %uint_0 = OpConstant %uint 0 - %uint_1 = OpConstant %uint 1 - %int_17 = OpConstant %int 17 - %uint_3 = OpConstant %uint 3 -%_ptr_Uniform_float = OpTypePointer Uniform %float - %float_0_25 = OpConstant %float 0.25 - %int_5 = OpConstant %int 5 -%float_0_00333333 = OpConstant %float 0.00333333 - %int_16 = OpConstant %int 16 -%_ptr_Function_Surface = OpTypePointer Function %Surface - %int_6 = OpConstant %int 6 - %int_7 = OpConstant %int 7 -%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float - %int_8 = OpConstant %int 8 -%ShadowMapSampler = OpVariable %_ptr_UniformConstant_36 UniformConstant -%_ptr_UniformConstant_38 = OpTypePointer UniformConstant %38 -%ShadowMapTexture = OpVariable %_ptr_UniformConstant_38 UniformConstant - %367 = OpTypeImage %float Cube 0 0 0 1 Unknown -%_ptr_UniformConstant_367 = OpTypePointer UniformConstant %367 -%EnvironmentMapTexture = OpVariable %_ptr_UniformConstant_367 UniformConstant -%EnvironmentMapSampler = OpVariable %_ptr_UniformConstant_36 UniformConstant - %373 = OpTypeSampledImage %367 - %float_1_5 = OpConstant %float 1.5 - %int_10 = OpConstant %int 10 -%_ptr_Input_v4float = OpTypePointer Input %v4float -%IN_HPosition = OpVariable %_ptr_Input_v4float Input -%IN_Uv_EdgeDistance1 = OpVariable %_ptr_Input_v4float Input -%IN_UvStuds_EdgeDistance2 = OpVariable %_ptr_Input_v4float Input - %IN_Color = OpVariable %_ptr_Input_v4float Input -%IN_LightPosition_Fog = OpVariable %_ptr_Input_v4float Input -%IN_View_Depth = OpVariable %_ptr_Input_v4float Input -%IN_Normal_SpecPower = OpVariable %_ptr_Input_v4float Input -%_ptr_Input_v3float = OpTypePointer Input %v3float - %IN_Tangent = OpVariable %_ptr_Input_v3float Input -%IN_PosLightSpace_Reflectance = OpVariable %_ptr_Input_v4float Input -%_ptr_Input_float = OpTypePointer Input %float -%IN_studIndex = OpVariable %_ptr_Input_float Input -%_ptr_Output_v4float = OpTypePointer Output %v4float -%_entryPointOutput = OpVariable %_ptr_Output_v4float Output - %bool = OpTypeBool -%DiffuseMapSampler = OpVariable %_ptr_UniformConstant_36 UniformConstant -%DiffuseMapTexture = OpVariable %_ptr_UniformConstant_38 UniformConstant -%NormalMapSampler = OpVariable %_ptr_UniformConstant_36 UniformConstant -%NormalMapTexture = OpVariable %_ptr_UniformConstant_38 UniformConstant -%NormalDetailMapTexture = OpVariable %_ptr_UniformConstant_38 UniformConstant -%NormalDetailMapSampler = OpVariable %_ptr_UniformConstant_36 UniformConstant - %float_0_3 = OpConstant %float 0.3 -%StudsMapTexture = OpVariable %_ptr_UniformConstant_38 UniformConstant -%StudsMapSampler = OpVariable %_ptr_UniformConstant_36 UniformConstant -%SpecularMapSampler = OpVariable %_ptr_UniformConstant_36 UniformConstant -%SpecularMapTexture = OpVariable %_ptr_UniformConstant_38 UniformConstant - %float_0_75 = OpConstant %float 0.75 - %float_256 = OpConstant %float 256 - %689 = OpConstantComposite %v2float %float_2 %float_256 - %float_0_01 = OpConstant %float 0.01 - %692 = OpConstantComposite %v2float %float_0 %float_0_01 - %float_0_8 = OpConstant %float 0.8 - %float_120 = OpConstant %float 120 - %697 = OpConstantComposite %v2float %float_0_8 %float_120 - %Params = OpTypeStruct %v4float - %CB2 = OpTypeStruct %Params -%_ptr_Uniform_CB2 = OpTypePointer Uniform %CB2 - %false = OpConstantFalse %bool - %1509 = OpUndef %VertexOutput - %1510 = OpUndef %SurfaceInput - %1511 = OpUndef %v2float - %1512 = OpUndef %v4float - %1531 = OpUndef %Surface - %main = OpFunction %void None %3 - %5 = OpLabel - %501 = OpLoad %v4float %IN_HPosition - %1378 = OpCompositeInsert %VertexOutput %501 %1509 0 - %504 = OpLoad %v4float %IN_Uv_EdgeDistance1 - %1380 = OpCompositeInsert %VertexOutput %504 %1378 1 - %507 = OpLoad %v4float %IN_UvStuds_EdgeDistance2 - %1382 = OpCompositeInsert %VertexOutput %507 %1380 2 - %510 = OpLoad %v4float %IN_Color - %1384 = OpCompositeInsert %VertexOutput %510 %1382 3 - %513 = OpLoad %v4float %IN_LightPosition_Fog - %1386 = OpCompositeInsert %VertexOutput %513 %1384 4 - %516 = OpLoad %v4float %IN_View_Depth - %1388 = OpCompositeInsert %VertexOutput %516 %1386 5 - %519 = OpLoad %v4float %IN_Normal_SpecPower - %1390 = OpCompositeInsert %VertexOutput %519 %1388 6 - %523 = OpLoad %v3float %IN_Tangent - %1392 = OpCompositeInsert %VertexOutput %523 %1390 7 - %526 = OpLoad %v4float %IN_PosLightSpace_Reflectance - %1394 = OpCompositeInsert %VertexOutput %526 %1392 8 - %530 = OpLoad %float %IN_studIndex - %1396 = OpCompositeInsert %VertexOutput %530 %1394 9 - %1400 = OpCompositeInsert %SurfaceInput %510 %1510 0 - %954 = OpVectorShuffle %v2float %504 %504 0 1 - %1404 = OpCompositeInsert %SurfaceInput %954 %1400 1 - %958 = OpVectorShuffle %v2float %507 %507 0 1 - %1408 = OpCompositeInsert %SurfaceInput %958 %1404 2 - %1410 = OpCompositeExtract %float %1408 2 1 - %962 = OpExtInst %float %1 Fract %1410 - %965 = OpFAdd %float %962 %530 - %966 = OpFMul %float %965 %float_0_25 - %1414 = OpCompositeInsert %SurfaceInput %966 %1408 2 1 - %1416 = OpCompositeExtract %float %1396 5 3 - %970 = OpFMul %float %1416 %float_0_00333333 - %971 = OpFSub %float %float_1 %970 - %987 = OpExtInst %float %1 FClamp %971 %float_0 %float_1 - %976 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_16 %uint_1 - %977 = OpLoad %float %976 - %978 = OpFMul %float %1416 %977 - %979 = OpFSub %float %float_1 %978 - %990 = OpExtInst %float %1 FClamp %979 %float_0 %float_1 - %1024 = OpVectorTimesScalar %v2float %954 %float_1 - %1029 = OpLoad %36 %DiffuseMapSampler - %1030 = OpLoad %38 %DiffuseMapTexture - OpBranch %1119 - %1119 = OpLabel - OpLoopMerge %1120 %1121 None - OpBranch %1122 - %1122 = OpLabel - %1124 = OpFOrdEqual %bool %float_0 %float_0 - OpSelectionMerge %1125 None - OpBranchConditional %1124 %1126 %1127 - %1126 = OpLabel - %1130 = OpSampledImage %183 %1030 %1029 - %1132 = OpImageSampleImplicitLod %v4float %1130 %1024 - OpBranch %1120 - %1127 = OpLabel - %1134 = OpFSub %float %float_1 %float_0 - %1135 = OpFDiv %float %float_1 %1134 - %1138 = OpSampledImage %183 %1030 %1029 - %1140 = OpVectorTimesScalar %v2float %1024 %float_0_25 - %1141 = OpImageSampleImplicitLod %v4float %1138 %1140 - %1144 = OpSampledImage %183 %1030 %1029 - %1146 = OpImageSampleImplicitLod %v4float %1144 %1024 - %1149 = OpFMul %float %987 %1135 - %1152 = OpFMul %float %float_0 %1135 - %1153 = OpFSub %float %1149 %1152 - %1161 = OpExtInst %float %1 FClamp %1153 %float_0 %float_1 - %1155 = OpCompositeConstruct %v4float %1161 %1161 %1161 %1161 - %1156 = OpExtInst %v4float %1 FMix %1141 %1146 %1155 - OpBranch %1120 - %1125 = OpLabel - %1157 = OpUndef %v4float - OpBranch %1120 - %1121 = OpLabel - OpBranchConditional %false %1119 %1120 - %1120 = OpLabel - %1517 = OpPhi %v4float %1132 %1126 %1156 %1127 %1157 %1125 %1512 %1121 - %1035 = OpVectorTimesScalar %v4float %1517 %float_1 - %1036 = OpLoad %36 %NormalMapSampler - %1037 = OpLoad %38 %NormalMapTexture - OpBranch %1165 - %1165 = OpLabel - OpLoopMerge %1166 %1167 None - OpBranch %1168 - %1168 = OpLabel - OpSelectionMerge %1171 None - OpBranchConditional %1124 %1172 %1173 - %1172 = OpLabel - %1176 = OpSampledImage %183 %1037 %1036 - %1178 = OpImageSampleImplicitLod %v4float %1176 %1024 - OpBranch %1166 - %1173 = OpLabel - %1180 = OpFSub %float %float_1 %float_0 - %1181 = OpFDiv %float %float_1 %1180 - %1184 = OpSampledImage %183 %1037 %1036 - %1186 = OpVectorTimesScalar %v2float %1024 %float_0_25 - %1187 = OpImageSampleImplicitLod %v4float %1184 %1186 - %1190 = OpSampledImage %183 %1037 %1036 - %1192 = OpImageSampleImplicitLod %v4float %1190 %1024 - %1195 = OpFMul %float %990 %1181 - %1198 = OpFMul %float %float_0 %1181 - %1199 = OpFSub %float %1195 %1198 - %1206 = OpExtInst %float %1 FClamp %1199 %float_0 %float_1 - %1201 = OpCompositeConstruct %v4float %1206 %1206 %1206 %1206 - %1202 = OpExtInst %v4float %1 FMix %1187 %1192 %1201 - OpBranch %1166 - %1171 = OpLabel - %1203 = OpUndef %v4float - OpBranch %1166 - %1167 = OpLabel - OpBranchConditional %false %1165 %1166 - %1166 = OpLabel - %1523 = OpPhi %v4float %1178 %1172 %1202 %1173 %1203 %1171 %1512 %1167 - %1210 = OpVectorShuffle %v2float %1523 %1523 3 1 - %1211 = OpVectorTimesScalar %v2float %1210 %float_2 - %1212 = OpCompositeConstruct %v2float %float_1 %float_1 - %1213 = OpFSub %v2float %1211 %1212 - %1216 = OpFNegate %v2float %1213 - %1218 = OpDot %float %1216 %1213 - %1219 = OpFAdd %float %float_1 %1218 - %1220 = OpExtInst %float %1 FClamp %1219 %float_0 %float_1 - %1221 = OpExtInst %float %1 Sqrt %1220 - %1222 = OpCompositeExtract %float %1213 0 - %1223 = OpCompositeExtract %float %1213 1 - %1224 = OpCompositeConstruct %v3float %1222 %1223 %1221 - %1042 = OpLoad %38 %NormalDetailMapTexture - %1043 = OpLoad %36 %NormalDetailMapSampler - %1044 = OpSampledImage %183 %1042 %1043 - %1046 = OpVectorTimesScalar %v2float %1024 %float_0 - %1047 = OpImageSampleImplicitLod %v4float %1044 %1046 - %1228 = OpVectorShuffle %v2float %1047 %1047 3 1 - %1229 = OpVectorTimesScalar %v2float %1228 %float_2 - %1231 = OpFSub %v2float %1229 %1212 - %1234 = OpFNegate %v2float %1231 - %1236 = OpDot %float %1234 %1231 - %1237 = OpFAdd %float %float_1 %1236 - %1238 = OpExtInst %float %1 FClamp %1237 %float_0 %float_1 - %1239 = OpExtInst %float %1 Sqrt %1238 - %1240 = OpCompositeExtract %float %1231 0 - %1241 = OpCompositeExtract %float %1231 1 - %1242 = OpCompositeConstruct %v3float %1240 %1241 %1239 - %1050 = OpVectorShuffle %v2float %1242 %1242 0 1 - %1051 = OpVectorTimesScalar %v2float %1050 %float_0 - %1053 = OpVectorShuffle %v2float %1224 %1224 0 1 - %1054 = OpFAdd %v2float %1053 %1051 - %1056 = OpVectorShuffle %v3float %1224 %1054 3 4 2 - %1059 = OpVectorShuffle %v2float %1056 %1056 0 1 - %1060 = OpVectorTimesScalar %v2float %1059 %990 - %1062 = OpVectorShuffle %v3float %1056 %1060 3 4 2 - %1430 = OpCompositeExtract %float %1062 0 - %1065 = OpFMul %float %1430 %float_0_3 - %1066 = OpFAdd %float %float_1 %1065 - %1069 = OpVectorShuffle %v3float %510 %510 0 1 2 - %1071 = OpVectorShuffle %v3float %1035 %1035 0 1 2 - %1072 = OpFMul %v3float %1069 %1071 - %1074 = OpVectorTimesScalar %v3float %1072 %1066 - %1075 = OpLoad %38 %StudsMapTexture - %1076 = OpLoad %36 %StudsMapSampler - %1077 = OpSampledImage %183 %1075 %1076 - %1434 = OpCompositeExtract %v2float %1414 2 - %1080 = OpImageSampleImplicitLod %v4float %1077 %1434 - %1436 = OpCompositeExtract %float %1080 0 - %1083 = OpFMul %float %1436 %float_2 - %1085 = OpVectorTimesScalar %v3float %1074 %1083 - %1086 = OpLoad %36 %SpecularMapSampler - %1087 = OpLoad %38 %SpecularMapTexture - OpBranch %1246 - %1246 = OpLabel - OpLoopMerge %1247 %1248 None - OpBranch %1249 - %1249 = OpLabel - %1251 = OpFOrdEqual %bool %float_0_75 %float_0 - OpSelectionMerge %1252 None - OpBranchConditional %1251 %1253 %1254 - %1253 = OpLabel - %1257 = OpSampledImage %183 %1087 %1086 - %1259 = OpImageSampleImplicitLod %v4float %1257 %1024 - OpBranch %1247 - %1254 = OpLabel - %1261 = OpFSub %float %float_1 %float_0_75 - %1262 = OpFDiv %float %float_1 %1261 - %1265 = OpSampledImage %183 %1087 %1086 - %1267 = OpVectorTimesScalar %v2float %1024 %float_0_25 - %1268 = OpImageSampleImplicitLod %v4float %1265 %1267 - %1271 = OpSampledImage %183 %1087 %1086 - %1273 = OpImageSampleImplicitLod %v4float %1271 %1024 - %1276 = OpFMul %float %990 %1262 - %1279 = OpFMul %float %float_0_75 %1262 - %1280 = OpFSub %float %1276 %1279 - %1287 = OpExtInst %float %1 FClamp %1280 %float_0 %float_1 - %1282 = OpCompositeConstruct %v4float %1287 %1287 %1287 %1287 - %1283 = OpExtInst %v4float %1 FMix %1268 %1273 %1282 - OpBranch %1247 - %1252 = OpLabel - %1284 = OpUndef %v4float - OpBranch %1247 - %1248 = OpLabel - OpBranchConditional %false %1246 %1247 - %1247 = OpLabel - %1530 = OpPhi %v4float %1259 %1253 %1283 %1254 %1284 %1252 %1512 %1248 - %1091 = OpVectorShuffle %v2float %1530 %1530 0 1 - %1093 = OpFMul %v2float %1091 %689 - %1094 = OpFAdd %v2float %1093 %692 - %1097 = OpCompositeConstruct %v2float %990 %990 - %1098 = OpExtInst %v2float %1 FMix %697 %1094 %1097 - %1438 = OpCompositeInsert %Surface %1085 %1531 0 - %1440 = OpCompositeInsert %Surface %1062 %1438 1 - %1442 = OpCompositeExtract %float %1098 0 - %1444 = OpCompositeInsert %Surface %1442 %1440 2 - %1446 = OpCompositeExtract %float %1098 1 - %1448 = OpCompositeInsert %Surface %1446 %1444 3 - %1450 = OpCompositeExtract %float %1091 1 - %1112 = OpFMul %float %1450 %990 - %1113 = OpFMul %float %1112 %float_0 - %1452 = OpCompositeInsert %Surface %1113 %1448 4 - %1456 = OpCompositeExtract %float %1396 3 3 - %764 = OpCompositeExtract %float %1085 0 - %765 = OpCompositeExtract %float %1085 1 - %766 = OpCompositeExtract %float %1085 2 - %767 = OpCompositeConstruct %v4float %764 %765 %766 %1456 - %770 = OpVectorShuffle %v3float %519 %519 0 1 2 - %773 = OpExtInst %v3float %1 Cross %770 %523 - %1462 = OpCompositeExtract %float %1452 1 0 - %778 = OpVectorTimesScalar %v3float %523 %1462 - %1466 = OpCompositeExtract %float %1452 1 1 - %782 = OpVectorTimesScalar %v3float %773 %1466 - %783 = OpFAdd %v3float %778 %782 - %1468 = OpCompositeExtract %float %1452 1 2 - %789 = OpVectorTimesScalar %v3float %770 %1468 - %790 = OpFAdd %v3float %783 %789 - %791 = OpExtInst %v3float %1 Normalize %790 - %793 = OpAccessChain %_ptr_Uniform_v3float %_ %int_0 %int_7 - %794 = OpLoad %v3float %793 - %795 = OpFNegate %v3float %794 - %796 = OpDot %float %791 %795 - %1290 = OpExtInst %float %1 FClamp %796 %float_0 %float_1 - %799 = OpAccessChain %_ptr_Uniform_v3float %_ %int_0 %int_6 - %800 = OpLoad %v3float %799 - %801 = OpVectorTimesScalar %v3float %800 %1290 - %803 = OpFNegate %float %796 - %804 = OpExtInst %float %1 FMax %803 %float_0 - %805 = OpAccessChain %_ptr_Uniform_v3float %_ %int_0 %int_8 - %806 = OpLoad %v3float %805 - %807 = OpVectorTimesScalar %v3float %806 %804 - %808 = OpFAdd %v3float %801 %807 - %810 = OpExtInst %float %1 Step %float_0 %796 - %813 = OpFMul %float %810 %1442 - %820 = OpVectorShuffle %v3float %513 %513 0 1 2 - %1296 = OpAccessChain %_ptr_Uniform_v4float %_ %int_0 %int_15 - %1297 = OpLoad %v4float %1296 - %1298 = OpVectorShuffle %v3float %1297 %1297 0 1 2 - %1300 = OpAccessChain %_ptr_Uniform_v4float %_ %int_0 %int_14 - %1301 = OpLoad %v4float %1300 - %1302 = OpVectorShuffle %v3float %1301 %1301 0 1 2 - %1303 = OpFSub %v3float %820 %1302 - %1304 = OpExtInst %v3float %1 FAbs %1303 - %1305 = OpExtInst %v3float %1 Step %1298 %1304 - %1307 = OpDot %float %1305 %128 - %1328 = OpExtInst %float %1 FClamp %1307 %float_0 %float_1 - %1309 = OpLoad %133 %LightMapTexture - %1310 = OpLoad %36 %LightMapSampler - %1311 = OpSampledImage %140 %1309 %1310 - %1313 = OpVectorShuffle %v3float %820 %820 1 2 0 - %1317 = OpVectorTimesScalar %v3float %1313 %1328 - %1318 = OpFSub %v3float %1313 %1317 - %1319 = OpImageSampleImplicitLod %v4float %1311 %1318 - %1321 = OpAccessChain %_ptr_Uniform_v4float %_ %int_0 %int_11 - %1322 = OpLoad %v4float %1321 - %1324 = OpCompositeConstruct %v4float %1328 %1328 %1328 %1328 - %1325 = OpExtInst %v4float %1 FMix %1319 %1322 %1324 - %822 = OpLoad %36 %ShadowMapSampler - %823 = OpLoad %38 %ShadowMapTexture - %826 = OpVectorShuffle %v3float %526 %526 0 1 2 - %1482 = OpCompositeExtract %float %1325 3 - %1337 = OpSampledImage %183 %823 %822 - %1339 = OpVectorShuffle %v2float %826 %826 0 1 - %1340 = OpImageSampleImplicitLod %v4float %1337 %1339 - %1341 = OpVectorShuffle %v2float %1340 %1340 0 1 - %1484 = OpCompositeExtract %float %826 2 - %1486 = OpCompositeExtract %float %1341 0 - %1363 = OpExtInst %float %1 Step %1486 %1484 - %1365 = OpFSub %float %1484 %float_0_5 - %1366 = OpExtInst %float %1 FAbs %1365 - %1367 = OpFMul %float %float_20 %1366 - %1368 = OpFSub %float %float_9 %1367 - %1369 = OpExtInst %float %1 FClamp %1368 %float_0 %float_1 - %1370 = OpFMul %float %1363 %1369 - %1488 = OpCompositeExtract %float %1341 1 - %1350 = OpFMul %float %1370 %1488 - %1351 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_17 %uint_3 - %1352 = OpLoad %float %1351 - %1353 = OpFMul %float %1350 %1352 - %1354 = OpFSub %float %float_1 %1353 - %1356 = OpFMul %float %1354 %1482 - %830 = OpLoad %367 %EnvironmentMapTexture - %831 = OpLoad %36 %EnvironmentMapSampler - %832 = OpSampledImage %373 %830 %831 - %835 = OpVectorShuffle %v3float %516 %516 0 1 2 - %836 = OpFNegate %v3float %835 - %838 = OpExtInst %v3float %1 Reflect %836 %791 - %839 = OpImageSampleImplicitLod %v4float %832 %838 - %840 = OpVectorShuffle %v3float %839 %839 0 1 2 - %842 = OpVectorShuffle %v3float %767 %767 0 1 2 - %845 = OpCompositeConstruct %v3float %1113 %1113 %1113 - %846 = OpExtInst %v3float %1 FMix %842 %840 %845 - %848 = OpVectorShuffle %v4float %767 %846 4 5 6 3 - %849 = OpAccessChain %_ptr_Uniform_v3float %_ %int_0 %int_5 - %850 = OpLoad %v3float %849 - %853 = OpVectorTimesScalar %v3float %808 %1356 - %854 = OpFAdd %v3float %850 %853 - %856 = OpVectorShuffle %v3float %1325 %1325 0 1 2 - %857 = OpFAdd %v3float %854 %856 - %859 = OpVectorShuffle %v3float %848 %848 0 1 2 - %860 = OpFMul %v3float %857 %859 - %865 = OpFMul %float %813 %1356 - %873 = OpExtInst %v3float %1 Normalize %835 - %874 = OpFAdd %v3float %795 %873 - %875 = OpExtInst %v3float %1 Normalize %874 - %876 = OpDot %float %791 %875 - %877 = OpExtInst %float %1 FClamp %876 %float_0 %float_1 - %879 = OpExtInst %float %1 Pow %877 %1446 - %880 = OpFMul %float %865 %879 - %881 = OpVectorTimesScalar %v3float %800 %880 - %884 = OpFAdd %v3float %860 %881 - %886 = OpVectorShuffle %v4float %1512 %884 4 5 6 3 - %1494 = OpCompositeExtract %float %848 3 - %1496 = OpCompositeInsert %v4float %1494 %886 3 - %896 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_17 %uint_0 - %897 = OpLoad %float %896 - %898 = OpFMul %float %978 %897 - %899 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_17 %uint_1 - %900 = OpLoad %float %899 - %901 = OpFAdd %float %898 %900 - %1373 = OpExtInst %float %1 FClamp %901 %float_0 %float_1 - %905 = OpVectorShuffle %v2float %504 %504 3 2 - %908 = OpVectorShuffle %v2float %507 %507 3 2 - %909 = OpExtInst %v2float %1 FMin %905 %908 - %1504 = OpCompositeExtract %float %909 0 - %1506 = OpCompositeExtract %float %909 1 - %914 = OpExtInst %float %1 FMin %1504 %1506 - %916 = OpFDiv %float %914 %978 - %919 = OpFSub %float %float_1_5 %916 - %920 = OpFMul %float %1373 %919 - %922 = OpFAdd %float %920 %916 - %1376 = OpExtInst %float %1 FClamp %922 %float_0 %float_1 - %925 = OpVectorShuffle %v3float %1496 %1496 0 1 2 - %926 = OpVectorTimesScalar %v3float %925 %1376 - %928 = OpVectorShuffle %v4float %1496 %926 4 5 6 3 - %1508 = OpCompositeExtract %float %1396 4 3 - %931 = OpExtInst %float %1 FClamp %1508 %float_0 %float_1 - %932 = OpAccessChain %_ptr_Uniform_v3float %_ %int_0 %int_10 - %933 = OpLoad %v3float %932 - %935 = OpVectorShuffle %v3float %928 %928 0 1 2 - %937 = OpCompositeConstruct %v3float %931 %931 %931 - %938 = OpExtInst %v3float %1 FMix %933 %935 %937 - %940 = OpVectorShuffle %v4float %928 %938 4 5 6 3 - OpStore %_entryPointOutput %940 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/ldexp-uint-exponent.asm.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/ldexp-uint-exponent.asm.frag deleted file mode 100644 index 9baebc20f4..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/ldexp-uint-exponent.asm.frag +++ /dev/null @@ -1,36 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 20 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %_GLF_color - OpExecutionMode %main OriginUpperLeft - OpSource ESSL 310 - OpName %main "main" - OpName %_GLF_color "_GLF_color" - OpDecorate %_GLF_color Location 0 - OpDecorate %18 RelaxedPrecision - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %_GLF_color = OpVariable %_ptr_Output_v4float Output - %float_1 = OpConstant %float 1 - %11 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 - %uint = OpTypeInt 32 0 - %v4uint = OpTypeVector %uint 4 - %uint_1 = OpConstant %uint 1 - %15 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1 - %int = OpTypeInt 32 1 - %v4int = OpTypeVector %int 4 - %main = OpFunction %void None %3 - %5 = OpLabel - %18 = OpBitCount %v4uint %15 - %19 = OpExtInst %v4float %1 Ldexp %11 %18 - OpStore %_GLF_color %19 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/loop-merge-to-continue.asm.invalid.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/loop-merge-to-continue.asm.invalid.frag deleted file mode 100644 index f2acc43604..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/loop-merge-to-continue.asm.invalid.frag +++ /dev/null @@ -1,85 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 3 -; Bound: 51 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %v0 - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %FragColor "FragColor" - OpName %i "i" - OpName %j "j" - OpName %v0 "v0" - OpDecorate %FragColor Location 0 - OpDecorate %v0 Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %float_1 = OpConstant %float 1 - %11 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 - %int = OpTypeInt 32 1 -%_ptr_Function_int = OpTypePointer Function %int - %int_0 = OpConstant %int 0 - %int_4 = OpConstant %int 4 - %bool = OpTypeBool -%_ptr_Input_v4float = OpTypePointer Input %v4float - %v0 = OpVariable %_ptr_Input_v4float Input - %int_3 = OpConstant %int 3 -%_ptr_Input_float = OpTypePointer Input %float - %int_1 = OpConstant %int 1 - %main = OpFunction %void None %3 - %5 = OpLabel - %i = OpVariable %_ptr_Function_int Function - %j = OpVariable %_ptr_Function_int Function - OpStore %FragColor %11 - OpStore %i %int_0 - OpBranch %16 - %16 = OpLabel - OpLoopMerge %18 %19 None - OpBranch %20 - %20 = OpLabel - %21 = OpLoad %int %i - %24 = OpSLessThan %bool %21 %int_4 - OpBranchConditional %24 %17 %18 - %17 = OpLabel - OpStore %j %int_0 - OpBranch %26 - %26 = OpLabel - OpLoopMerge %19 %29 None - OpBranch %30 - %30 = OpLabel - %31 = OpLoad %int %j - %32 = OpSLessThan %bool %31 %int_4 - OpBranchConditional %32 %27 %19 - %27 = OpLabel - %35 = OpLoad %int %i - %36 = OpLoad %int %j - %37 = OpIAdd %int %35 %36 - %39 = OpBitwiseAnd %int %37 %int_3 - %41 = OpAccessChain %_ptr_Input_float %v0 %39 - %42 = OpLoad %float %41 - %43 = OpLoad %v4float %FragColor - %44 = OpCompositeConstruct %v4float %42 %42 %42 %42 - %45 = OpFAdd %v4float %43 %44 - OpStore %FragColor %45 - OpBranch %29 - %29 = OpLabel - %46 = OpLoad %int %j - %48 = OpIAdd %int %46 %int_1 - OpStore %j %48 - OpBranch %26 - %19 = OpLabel - %49 = OpLoad %int %i - %50 = OpIAdd %int %49 %int_1 - OpStore %i %50 - OpBranch %16 - %18 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/nonuniform-bracket-handling-2.vk.nocompat.asm.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/nonuniform-bracket-handling-2.vk.nocompat.asm.frag deleted file mode 100644 index ea85ed0b96..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/nonuniform-bracket-handling-2.vk.nocompat.asm.frag +++ /dev/null @@ -1,96 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 53 -; Schema: 0 - OpCapability Shader - OpCapability ShaderNonUniform - OpCapability RuntimeDescriptorArray - OpCapability SampledImageArrayNonUniformIndexing - OpExtension "SPV_EXT_descriptor_indexing" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %vUV %gl_FragCoord - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpSourceExtension "GL_EXT_nonuniform_qualifier" - OpName %main "main" - OpName %FragColor "FragColor" - OpName %uSamplers "uSamplers" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "indices" - OpName %_ "" - OpName %vUV "vUV" - OpName %uSampler "uSampler" - OpName %gl_FragCoord "gl_FragCoord" - OpDecorate %FragColor Location 0 - OpDecorate %uSamplers DescriptorSet 0 - OpDecorate %uSamplers Binding 0 - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %SSBO 0 NonWritable - OpMemberDecorate %SSBO 0 Offset 0 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - OpDecorate %26 NonUniform - OpDecorate %28 NonUniform - OpDecorate %29 NonUniform - OpDecorate %vUV Location 0 - OpDecorate %uSampler DescriptorSet 1 - OpDecorate %uSampler Binding 0 - OpDecorate %38 NonUniform - OpDecorate %gl_FragCoord BuiltIn FragCoord - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %10 = OpTypeImage %float 2D 0 0 0 1 Unknown - %11 = OpTypeSampledImage %10 -%_runtimearr_11 = OpTypeRuntimeArray %11 -%_ptr_UniformConstant__runtimearr_11 = OpTypePointer UniformConstant %_runtimearr_11 - %uSamplers = OpVariable %_ptr_UniformConstant__runtimearr_11 UniformConstant - %uint = OpTypeInt 32 0 -%_runtimearr_uint = OpTypeRuntimeArray %uint - %SSBO = OpTypeStruct %_runtimearr_uint -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %int_10 = OpConstant %int 10 -%_ptr_Uniform_uint = OpTypePointer Uniform %uint -%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11 - %v2float = OpTypeVector %float 2 -%_ptr_Input_v2float = OpTypePointer Input %v2float - %vUV = OpVariable %_ptr_Input_v2float Input - %float_0 = OpConstant %float 0 - %uSampler = OpVariable %_ptr_UniformConstant_11 UniformConstant -%_ptr_Input_v4float = OpTypePointer Input %v4float -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input - %uint_1 = OpConstant %uint 1 -%_ptr_Input_float = OpTypePointer Input %float - %main = OpFunction %void None %3 - %5 = OpLabel - %24 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 %int_10 - %26 = OpLoad %uint %24 - %28 = OpAccessChain %_ptr_UniformConstant_11 %uSamplers %26 - %29 = OpLoad %11 %28 - %33 = OpLoad %v2float %vUV - %35 = OpImageSampleExplicitLod %v4float %29 %33 Lod %float_0 - OpStore %FragColor %35 - %37 = OpLoad %11 %uSampler - %38 = OpCopyObject %11 %37 - %39 = OpLoad %v2float %vUV - %44 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_1 - %45 = OpLoad %float %44 - %46 = OpConvertFToS %int %45 - %47 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 %46 - %48 = OpLoad %uint %47 - %49 = OpConvertUToF %float %48 - %50 = OpImageSampleExplicitLod %v4float %38 %39 Lod %49 - %51 = OpLoad %v4float %FragColor - %52 = OpFAdd %v4float %51 %50 - OpStore %FragColor %52 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/nonuniform-qualifier-propagation.vk.nocompat.asm.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/nonuniform-qualifier-propagation.vk.nocompat.asm.frag deleted file mode 100644 index e2d4562a8a..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/nonuniform-qualifier-propagation.vk.nocompat.asm.frag +++ /dev/null @@ -1,159 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 93 -; Schema: 0 - OpCapability Shader - OpCapability ShaderNonUniformEXT - OpCapability RuntimeDescriptorArrayEXT - OpCapability UniformBufferArrayNonUniformIndexingEXT - OpCapability SampledImageArrayNonUniformIndexingEXT - OpCapability StorageBufferArrayNonUniformIndexingEXT - OpExtension "SPV_EXT_descriptor_indexing" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %vIndex %FragColor %vUV - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpSourceExtension "GL_EXT_nonuniform_qualifier" - OpName %main "main" - OpName %i "i" - OpName %vIndex "vIndex" - OpName %FragColor "FragColor" - OpName %uSamplers "uSamplers" - OpName %uSamps "uSamps" - OpName %vUV "vUV" - OpName %uCombinedSamplers "uCombinedSamplers" - OpName %UBO "UBO" - OpMemberName %UBO 0 "v" - OpName %ubos "ubos" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "v" - OpName %ssbos "ssbos" - OpDecorate %vIndex Flat - OpDecorate %vIndex Location 0 - OpDecorate %FragColor Location 0 - OpDecorate %uSamplers DescriptorSet 0 - OpDecorate %uSamplers Binding 0 - - OpDecorate %sampled_image NonUniformEXT - OpDecorate %combined_sampler NonUniformEXT - OpDecorate %ubo_ptr_copy NonUniformEXT - OpDecorate %ssbo_ptr_copy NonUniformEXT - - OpDecorate %uSamps DescriptorSet 0 - OpDecorate %uSamps Binding 1 - OpDecorate %vUV Location 1 - OpDecorate %uCombinedSamplers DescriptorSet 0 - OpDecorate %uCombinedSamplers Binding 4 - OpDecorate %_arr_v4float_uint_64 ArrayStride 16 - OpMemberDecorate %UBO 0 Offset 0 - OpDecorate %UBO Block - OpDecorate %ubos DescriptorSet 0 - OpDecorate %ubos Binding 2 - OpDecorate %_runtimearr_v4float ArrayStride 16 - OpMemberDecorate %SSBO 0 NonWritable - OpMemberDecorate %SSBO 0 Offset 0 - OpDecorate %SSBO BufferBlock - OpDecorate %ssbos DescriptorSet 0 - OpDecorate %ssbos Binding 3 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 -%_ptr_Function_int = OpTypePointer Function %int -%_ptr_Input_int = OpTypePointer Input %int - %vIndex = OpVariable %_ptr_Input_int Input - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %16 = OpTypeImage %float 2D 0 0 0 1 Unknown -%_runtimearr_16 = OpTypeRuntimeArray %16 -%_ptr_UniformConstant__runtimearr_16 = OpTypePointer UniformConstant %_runtimearr_16 - %uSamplers = OpVariable %_ptr_UniformConstant__runtimearr_16 UniformConstant - %int_10 = OpConstant %int 10 -%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16 - %27 = OpTypeSampler -%_runtimearr_27 = OpTypeRuntimeArray %27 -%_ptr_UniformConstant__runtimearr_27 = OpTypePointer UniformConstant %_runtimearr_27 - %uSamps = OpVariable %_ptr_UniformConstant__runtimearr_27 UniformConstant - %int_40 = OpConstant %int 40 -%_ptr_UniformConstant_27 = OpTypePointer UniformConstant %27 - %38 = OpTypeSampledImage %16 - %v2float = OpTypeVector %float 2 -%_ptr_Input_v2float = OpTypePointer Input %v2float - %vUV = OpVariable %_ptr_Input_v2float Input -%_runtimearr_38 = OpTypeRuntimeArray %38 -%_ptr_UniformConstant__runtimearr_38 = OpTypePointer UniformConstant %_runtimearr_38 -%uCombinedSamplers = OpVariable %_ptr_UniformConstant__runtimearr_38 UniformConstant -%_ptr_UniformConstant_38 = OpTypePointer UniformConstant %38 - %uint = OpTypeInt 32 0 - %uint_64 = OpConstant %uint 64 -%_arr_v4float_uint_64 = OpTypeArray %v4float %uint_64 - %UBO = OpTypeStruct %_arr_v4float_uint_64 -%_runtimearr_UBO = OpTypeRuntimeArray %UBO -%_ptr_Uniform__runtimearr_UBO = OpTypePointer Uniform %_runtimearr_UBO - %ubos = OpVariable %_ptr_Uniform__runtimearr_UBO Uniform - %int_20 = OpConstant %int 20 - %int_0 = OpConstant %int 0 -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float -%_runtimearr_v4float = OpTypeRuntimeArray %v4float - %SSBO = OpTypeStruct %_runtimearr_v4float -%_runtimearr_SSBO = OpTypeRuntimeArray %SSBO -%_ptr_Uniform__runtimearr_SSBO = OpTypePointer Uniform %_runtimearr_SSBO - %ssbos = OpVariable %_ptr_Uniform__runtimearr_SSBO Uniform - %int_50 = OpConstant %int 50 - %int_60 = OpConstant %int 60 - %main = OpFunction %void None %3 - %5 = OpLabel - %i = OpVariable %_ptr_Function_int Function - %11 = OpLoad %int %vIndex - OpStore %i %11 - %20 = OpLoad %int %i - %22 = OpIAdd %int %20 %int_10 - %23 = OpCopyObject %int %22 - %25 = OpAccessChain %_ptr_UniformConstant_16 %uSamplers %23 - %26 = OpLoad %16 %25 - %31 = OpLoad %int %i - %33 = OpIAdd %int %31 %int_40 - %34 = OpCopyObject %int %33 - %36 = OpAccessChain %_ptr_UniformConstant_27 %uSamps %34 - %37 = OpLoad %27 %36 - %sampled_image = OpSampledImage %38 %26 %37 - %43 = OpLoad %v2float %vUV - %44 = OpImageSampleImplicitLod %v4float %sampled_image %43 - OpStore %FragColor %44 - %48 = OpLoad %int %i - %49 = OpIAdd %int %48 %int_10 - %50 = OpCopyObject %int %49 - %52 = OpAccessChain %_ptr_UniformConstant_38 %uCombinedSamplers %50 - %combined_sampler = OpLoad %38 %52 - %54 = OpLoad %v2float %vUV - %55 = OpImageSampleImplicitLod %v4float %combined_sampler %54 - OpStore %FragColor %55 - %63 = OpLoad %int %i - %65 = OpIAdd %int %63 %int_20 - %66 = OpCopyObject %int %65 - %68 = OpLoad %int %i - %69 = OpIAdd %int %68 %int_40 - %70 = OpCopyObject %int %69 - %ubo_ptr = OpAccessChain %_ptr_Uniform_v4float %ubos %66 %int_0 %70 - %ubo_ptr_copy = OpCopyObject %_ptr_Uniform_v4float %ubo_ptr - %73 = OpLoad %v4float %ubo_ptr_copy - %74 = OpLoad %v4float %FragColor - %75 = OpFAdd %v4float %74 %73 - OpStore %FragColor %75 - %81 = OpLoad %int %i - %83 = OpIAdd %int %81 %int_50 - %84 = OpCopyObject %int %83 - %85 = OpLoad %int %i - %87 = OpIAdd %int %85 %int_60 - %88 = OpCopyObject %int %87 - %ssbo_ptr = OpAccessChain %_ptr_Uniform_v4float %ssbos %84 %int_0 %88 - %ssbo_ptr_copy = OpCopyObject %_ptr_Uniform_v4float %ssbo_ptr - %90 = OpLoad %v4float %ssbo_ptr_copy - %91 = OpLoad %v4float %FragColor - %92 = OpFAdd %v4float %91 %90 - OpStore %FragColor %92 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/nonuniform-ssbo.nocompat.vk.asm.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/nonuniform-ssbo.nocompat.vk.asm.frag deleted file mode 100644 index c5428a8bb9..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/nonuniform-ssbo.nocompat.vk.asm.frag +++ /dev/null @@ -1,99 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 59 -; Schema: 0 - OpCapability Shader - OpCapability ShaderNonUniform - OpCapability RuntimeDescriptorArray - OpCapability StorageBufferArrayNonUniformIndexing - OpExtension "SPV_EXT_descriptor_indexing" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %vIndex %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpSourceExtension "GL_EXT_nonuniform_qualifier" - OpSourceExtension "GL_EXT_samplerless_texture_functions" - OpName %main "main" - OpName %i "i" - OpName %vIndex "vIndex" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "counter" - OpMemberName %SSBO 1 "v" - OpName %ssbos "ssbos" - OpName %FragColor "FragColor" - OpDecorate %vIndex Flat - OpDecorate %vIndex Location 0 - OpDecorate %_runtimearr_v4float ArrayStride 16 - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %SSBO 1 Offset 16 - OpDecorate %SSBO BufferBlock - OpDecorate %ssbos DescriptorSet 0 - OpDecorate %ssbos Binding 3 - OpDecorate %32 NonUniform - OpDecorate %39 NonUniform - OpDecorate %49 NonUniform - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 -%_ptr_Function_int = OpTypePointer Function %int -%_ptr_Input_int = OpTypePointer Input %int - %vIndex = OpVariable %_ptr_Input_int Input - %uint = OpTypeInt 32 0 - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_runtimearr_v4float = OpTypeRuntimeArray %v4float - %SSBO = OpTypeStruct %uint %_runtimearr_v4float -%_runtimearr_SSBO = OpTypeRuntimeArray %SSBO -%_ptr_Uniform__runtimearr_SSBO = OpTypePointer Uniform %_runtimearr_SSBO - %ssbos = OpVariable %_ptr_Uniform__runtimearr_SSBO Uniform - %int_60 = OpConstant %int 60 - %int_1 = OpConstant %int 1 - %int_70 = OpConstant %int 70 - %float_20 = OpConstant %float 20 - %30 = OpConstantComposite %v4float %float_20 %float_20 %float_20 %float_20 -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float - %int_100 = OpConstant %int 100 - %int_0 = OpConstant %int 0 -%_ptr_Uniform_uint = OpTypePointer Uniform %uint - %uint_100 = OpConstant %uint 100 - %uint_1 = OpConstant %uint 1 - %uint_0 = OpConstant %uint 0 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %uint_2 = OpConstant %uint 2 -%_ptr_Output_float = OpTypePointer Output %float - %main = OpFunction %void None %3 - %5 = OpLabel - %i = OpVariable %_ptr_Function_int Function - %11 = OpLoad %int %vIndex - OpStore %i %11 - %20 = OpLoad %int %i - %22 = OpIAdd %int %20 %int_60 - %23 = OpCopyObject %int %22 - %25 = OpLoad %int %i - %27 = OpIAdd %int %25 %int_70 - %28 = OpCopyObject %int %27 - %32 = OpAccessChain %_ptr_Uniform_v4float %ssbos %23 %int_1 %28 - OpStore %32 %30 - %33 = OpLoad %int %i - %35 = OpIAdd %int %33 %int_100 - %36 = OpCopyObject %int %35 - %39 = OpAccessChain %_ptr_Uniform_uint %ssbos %36 %int_0 - %43 = OpAtomicIAdd %uint %39 %uint_1 %uint_0 %uint_100 - %46 = OpLoad %int %i - %47 = OpCopyObject %int %46 - %49 = OpAccessChain %_ptr_Uniform_SSBO %ssbos %47 - %50 = OpArrayLength %uint %49 1 - %51 = OpBitcast %int %50 - %52 = OpConvertSToF %float %51 - %55 = OpAccessChain %_ptr_Output_float %FragColor %uint_2 - %56 = OpLoad %float %55 - %57 = OpFAdd %float %56 %52 - %58 = OpAccessChain %_ptr_Output_float %FragColor %uint_2 - OpStore %58 %57 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/only-initializer-frag-depth.asm.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/only-initializer-frag-depth.asm.frag deleted file mode 100644 index 17aab1d8f7..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/only-initializer-frag-depth.asm.frag +++ /dev/null @@ -1,25 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 10 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %gl_FragDepth - OpExecutionMode %main OriginUpperLeft - OpExecutionMode %main DepthReplacing - OpSource GLSL 450 - OpName %main "main" - OpName %gl_FragDepth "gl_FragDepth" - OpDecorate %gl_FragDepth BuiltIn FragDepth - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 -%_ptr_Output_float = OpTypePointer Output %float - %float_0_5 = OpConstant %float 0.5 -%gl_FragDepth = OpVariable %_ptr_Output_float Output %float_0_5 - %main = OpFunction %void None %3 - %5 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/opaque-id-literal-alias.preserve.asm.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/opaque-id-literal-alias.preserve.asm.frag deleted file mode 100644 index c77c9a17c8..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/opaque-id-literal-alias.preserve.asm.frag +++ /dev/null @@ -1,78 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 50 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %gl_FragCoord %vUV - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %FragColor "FragColor" - OpName %gl_FragCoord "gl_FragCoord" - OpName %uSampled "uSampled" - OpName %vUV "vUV" - OpDecorate %FragColor Location 0 - OpDecorate %gl_FragCoord BuiltIn FragCoord - OpDecorate %uSampled DescriptorSet 0 - OpDecorate %uSampled Binding 0 - OpDecorate %vUV Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %float_0 = OpConstant %float 0 - %11 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 -%_ptr_Input_v4float = OpTypePointer Input %v4float -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 -%_ptr_Input_float = OpTypePointer Input %float - %float_10 = OpConstant %float 10 - %bool = OpTypeBool - %24 = OpTypeImage %float 2D 0 0 1 1 Unknown - %25 = OpTypeSampledImage %24 -%_ptr_UniformConstant_25 = OpTypePointer UniformConstant %25 - %uSampled = OpVariable %_ptr_UniformConstant_25 UniformConstant - %v2float = OpTypeVector %float 2 -%_ptr_Input_v2float = OpTypePointer Input %v2float - %vUV = OpVariable %_ptr_Input_v2float Input - %int = OpTypeInt 32 1 - %v2int = OpTypeVector %int 2 - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 - %main = OpFunction %void None %3 - %5 = OpLabel - OpStore %FragColor %11 - %17 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_0 - %18 = OpLoad %float %17 - %21 = OpFOrdLessThan %bool %18 %float_10 - OpSelectionMerge %23 None - OpBranchConditional %21 %22 %41 - %22 = OpLabel - %28 = OpLoad %25 %uSampled - %32 = OpLoad %v2float %vUV - %35 = OpConvertFToS %v2int %32 - %64 = OpImage %24 %28 - %38 = OpImageFetch %v4float %64 %35 Sample %int_0 - %39 = OpLoad %v4float %FragColor - %40 = OpFAdd %v4float %39 %38 - OpStore %FragColor %40 - OpBranch %23 - %41 = OpLabel - %42 = OpLoad %25 %uSampled - %43 = OpLoad %v2float %vUV - %44 = OpConvertFToS %v2int %43 - %46 = OpImage %24 %42 - %47 = OpImageFetch %v4float %46 %44 Sample %int_1 - %48 = OpLoad %v4float %FragColor - %49 = OpFAdd %v4float %48 %47 - OpStore %FragColor %49 - OpBranch %23 - %23 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/out-of-order-struct-id.asm.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/out-of-order-struct-id.asm.frag deleted file mode 100644 index 4a7885e5dc..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/out-of-order-struct-id.asm.frag +++ /dev/null @@ -1,54 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 24 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %FragColor "FragColor" - OpName %80 "Foo" - OpMemberName %80 0 "a" - OpName %79 "Bar" - OpMemberName %79 0 "foo" - OpMemberName %79 1 "foo2" - OpName %UBO "UBO" - OpMemberName %UBO 0 "bar" - OpName %_ "" - OpDecorate %FragColor Location 0 - OpMemberDecorate %80 0 Offset 0 - OpMemberDecorate %79 0 Offset 0 - OpMemberDecorate %79 1 Offset 16 - OpMemberDecorate %UBO 0 Offset 0 - OpDecorate %UBO Block - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %80 = OpTypeStruct %v4float - %79 = OpTypeStruct %80 %80 - %UBO = OpTypeStruct %79 -%_ptr_Uniform_UBO = OpTypePointer Uniform %UBO - %_ = OpVariable %_ptr_Uniform_UBO Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float - %int_1 = OpConstant %int 1 - %main = OpFunction %void None %3 - %5 = OpLabel - %18 = OpAccessChain %_ptr_Uniform_v4float %_ %int_0 %int_0 %int_0 - %19 = OpLoad %v4float %18 - %21 = OpAccessChain %_ptr_Uniform_v4float %_ %int_0 %int_1 %int_0 - %22 = OpLoad %v4float %21 - %23 = OpFAdd %v4float %19 %22 - OpStore %FragColor %23 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/phi.zero-initialize.asm.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/phi.zero-initialize.asm.frag deleted file mode 100644 index 3696660d36..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/phi.zero-initialize.asm.frag +++ /dev/null @@ -1,69 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 40 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %vColor %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %vColor "vColor" - OpName %uninit_function_int "uninit_function_int" - OpName %FragColor "FragColor" - OpName %uninit_int "uninit_int" - OpName %uninit_vector "uninit_vector" - OpName %uninit_matrix "uninit_matrix" - OpName %Foo "Foo" - OpMemberName %Foo 0 "a" - OpName %uninit_foo "uninit_foo" - OpDecorate %vColor Location 0 - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Input_v4float = OpTypePointer Input %v4float - %vColor = OpVariable %_ptr_Input_v4float Input - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 -%_ptr_Input_float = OpTypePointer Input %float - %float_10 = OpConstant %float 10 - %bool = OpTypeBool - %int = OpTypeInt 32 1 -%_ptr_Function_int = OpTypePointer Function %int - %int_10 = OpConstant %int 10 - %int_20 = OpConstant %int 20 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output -%_ptr_Private_int = OpTypePointer Private %int - %uninit_int = OpUndef %int - %v4int = OpTypeVector %int 4 -%_ptr_Private_v4int = OpTypePointer Private %v4int -%uninit_vector = OpUndef %v4int -%mat4v4float = OpTypeMatrix %v4float 4 -%_ptr_Private_mat4v4float = OpTypePointer Private %mat4v4float -%uninit_matrix = OpUndef %mat4v4float - %Foo = OpTypeStruct %int -%_ptr_Private_Foo = OpTypePointer Private %Foo - %uninit_foo = OpUndef %Foo - %main = OpFunction %void None %3 - %5 = OpLabel -%uninit_function_int = OpVariable %_ptr_Function_int Function - %13 = OpAccessChain %_ptr_Input_float %vColor %uint_0 - %14 = OpLoad %float %13 - %17 = OpFOrdGreaterThan %bool %14 %float_10 - OpSelectionMerge %19 None - OpBranchConditional %17 %18 %24 - %18 = OpLabel - OpBranch %19 - %24 = OpLabel - OpBranch %19 - %19 = OpLabel - %27 = OpPhi %int %int_10 %18 %int_20 %24 - %28 = OpLoad %v4float %vColor - OpStore %FragColor %28 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/pixel-interlock-callstack.asm.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/pixel-interlock-callstack.asm.frag deleted file mode 100644 index ebd8d6bab7..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/pixel-interlock-callstack.asm.frag +++ /dev/null @@ -1,89 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 45 -; Schema: 0 - OpCapability Shader - OpCapability FragmentShaderPixelInterlockEXT - OpExtension "SPV_EXT_fragment_shader_interlock" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %gl_FragCoord - OpExecutionMode %main OriginUpperLeft - OpExecutionMode %main PixelInterlockOrderedEXT - OpSource GLSL 450 - OpSourceExtension "GL_ARB_fragment_shader_interlock" - OpName %main "main" - OpName %callee2_ "callee2(" - OpName %callee_ "callee(" - OpName %SSBO1 "SSBO1" - OpMemberName %SSBO1 0 "values1" - OpName %_ "" - OpName %gl_FragCoord "gl_FragCoord" - OpName %SSBO0 "SSBO0" - OpMemberName %SSBO0 0 "values0" - OpName %__0 "" - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %SSBO1 0 Offset 0 - OpDecorate %SSBO1 BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 1 - OpDecorate %gl_FragCoord BuiltIn FragCoord - OpDecorate %_runtimearr_uint_0 ArrayStride 4 - OpMemberDecorate %SSBO0 0 Offset 0 - OpDecorate %SSBO0 BufferBlock - OpDecorate %__0 DescriptorSet 0 - OpDecorate %__0 Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 -%_runtimearr_uint = OpTypeRuntimeArray %uint - %SSBO1 = OpTypeStruct %_runtimearr_uint -%_ptr_Uniform_SSBO1 = OpTypePointer Uniform %SSBO1 - %_ = OpVariable %_ptr_Uniform_SSBO1 Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Input_v4float = OpTypePointer Input %v4float -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input - %uint_0 = OpConstant %uint 0 -%_ptr_Input_float = OpTypePointer Input %float - %uint_1 = OpConstant %uint 1 -%_ptr_Uniform_uint = OpTypePointer Uniform %uint -%_runtimearr_uint_0 = OpTypeRuntimeArray %uint - %SSBO0 = OpTypeStruct %_runtimearr_uint_0 -%_ptr_Uniform_SSBO0 = OpTypePointer Uniform %SSBO0 - %__0 = OpVariable %_ptr_Uniform_SSBO0 Uniform - %main = OpFunction %void None %3 - %5 = OpLabel - %44 = OpFunctionCall %void %callee_ - OpReturn - OpFunctionEnd - %callee2_ = OpFunction %void None %3 - %7 = OpLabel - %23 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_0 - %24 = OpLoad %float %23 - %25 = OpConvertFToS %int %24 - %28 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 %25 - %29 = OpLoad %uint %28 - %30 = OpIAdd %uint %29 %uint_1 - %31 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 %25 - OpStore %31 %30 - OpReturn - OpFunctionEnd - %callee_ = OpFunction %void None %3 - %9 = OpLabel - %36 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_0 - %37 = OpLoad %float %36 - %38 = OpConvertFToS %int %37 - %39 = OpAccessChain %_ptr_Uniform_uint %__0 %int_0 %38 - %40 = OpLoad %uint %39 - %41 = OpIAdd %uint %40 %uint_1 - %42 = OpAccessChain %_ptr_Uniform_uint %__0 %int_0 %38 - OpStore %42 %41 - OpBeginInvocationInterlockEXT - %43 = OpFunctionCall %void %callee2_ - OpEndInvocationInterlockEXT - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/pixel-interlock-control-flow.asm.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/pixel-interlock-control-flow.asm.frag deleted file mode 100644 index 69b8f91120..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/pixel-interlock-control-flow.asm.frag +++ /dev/null @@ -1,121 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 45 -; Schema: 0 - OpCapability Shader - OpCapability FragmentShaderPixelInterlockEXT - OpExtension "SPV_EXT_fragment_shader_interlock" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %gl_FragCoord - OpExecutionMode %main OriginUpperLeft - OpExecutionMode %main PixelInterlockOrderedEXT - OpSource GLSL 450 - OpSourceExtension "GL_ARB_fragment_shader_interlock" - OpName %main "main" - OpName %callee2_ "callee2(" - OpName %callee_ "callee(" - OpName %SSBO1 "SSBO1" - OpMemberName %SSBO1 0 "values1" - OpName %_ "" - OpName %gl_FragCoord "gl_FragCoord" - OpName %SSBO0 "SSBO0" - OpMemberName %SSBO0 0 "values0" - OpName %__0 "" - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %SSBO1 0 Offset 0 - OpDecorate %SSBO1 BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 1 - OpDecorate %gl_FragCoord BuiltIn FragCoord - OpDecorate %_runtimearr_uint_0 ArrayStride 4 - OpMemberDecorate %SSBO0 0 Offset 0 - OpDecorate %SSBO0 BufferBlock - OpDecorate %__0 DescriptorSet 0 - OpDecorate %__0 Binding 0 - - OpMemberDecorate %SSBO2 0 Offset 0 - OpDecorate %SSBO2 BufferBlock - OpDecorate %ssbo2 DescriptorSet 0 - OpDecorate %ssbo2 Binding 2 - - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 -%_runtimearr_uint = OpTypeRuntimeArray %uint - %SSBO1 = OpTypeStruct %_runtimearr_uint - %SSBO2 = OpTypeStruct %_runtimearr_uint -%_ptr_Uniform_SSBO1 = OpTypePointer Uniform %SSBO1 -%_ptr_Uniform_SSBO2 = OpTypePointer Uniform %SSBO2 - %_ = OpVariable %_ptr_Uniform_SSBO1 Uniform - %ssbo2 = OpVariable %_ptr_Uniform_SSBO2 Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %uint_4 = OpConstant %uint 4 - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %bool = OpTypeBool - %true = OpConstantTrue %bool -%_ptr_Input_v4float = OpTypePointer Input %v4float -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input - %uint_0 = OpConstant %uint 0 -%_ptr_Input_float = OpTypePointer Input %float - %uint_1 = OpConstant %uint 1 -%_ptr_Uniform_uint = OpTypePointer Uniform %uint -%_runtimearr_uint_0 = OpTypeRuntimeArray %uint - %SSBO0 = OpTypeStruct %_runtimearr_uint_0 -%_ptr_Uniform_SSBO0 = OpTypePointer Uniform %SSBO0 - %__0 = OpVariable %_ptr_Uniform_SSBO0 Uniform - %main = OpFunction %void None %3 - %5 = OpLabel - %44 = OpFunctionCall %void %callee_ - %callee3_res = OpFunctionCall %void %callee3_ - OpReturn - OpFunctionEnd - - %callee3_ = OpFunction %void None %3 - %calle3_block = OpLabel - %frag_coord_x_ptr = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_0 - %frag_coord_x = OpLoad %float %frag_coord_x_ptr - %frag_coord_int = OpConvertFToS %int %frag_coord_x - %ssbo_ptr = OpAccessChain %_ptr_Uniform_uint %ssbo2 %int_0 %frag_coord_int - OpStore %ssbo_ptr %uint_4 - OpReturn - OpFunctionEnd - - %callee2_ = OpFunction %void None %3 - %7 = OpLabel - %23 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_0 - %24 = OpLoad %float %23 - %25 = OpConvertFToS %int %24 - %28 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 %25 - %29 = OpLoad %uint %28 - %30 = OpIAdd %uint %29 %uint_1 - %31 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 %25 - OpStore %31 %30 - OpReturn - OpFunctionEnd - %callee_ = OpFunction %void None %3 - %9 = OpLabel - %36 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_0 - %37 = OpLoad %float %36 - %38 = OpConvertFToS %int %37 - %39 = OpAccessChain %_ptr_Uniform_uint %__0 %int_0 %38 - %40 = OpLoad %uint %39 - %41 = OpIAdd %uint %40 %uint_1 - %42 = OpAccessChain %_ptr_Uniform_uint %__0 %int_0 %38 - OpStore %42 %41 - %43 = OpFunctionCall %void %callee2_ - - OpSelectionMerge %merged_block None - OpBranchConditional %true %dummy_block %merged_block - %dummy_block = OpLabel - OpBeginInvocationInterlockEXT - OpEndInvocationInterlockEXT - OpBranch %merged_block - - %merged_block = OpLabel - OpReturn - - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/pixel-interlock-split-functions.asm.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/pixel-interlock-split-functions.asm.frag deleted file mode 100644 index 7c0fe9a2b2..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/pixel-interlock-split-functions.asm.frag +++ /dev/null @@ -1,102 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 45 -; Schema: 0 - OpCapability Shader - OpCapability FragmentShaderPixelInterlockEXT - OpExtension "SPV_EXT_fragment_shader_interlock" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %gl_FragCoord - OpExecutionMode %main OriginUpperLeft - OpExecutionMode %main PixelInterlockOrderedEXT - OpSource GLSL 450 - OpSourceExtension "GL_ARB_fragment_shader_interlock" - OpName %main "main" - OpName %callee2_ "callee2(" - OpName %callee_ "callee(" - OpName %SSBO1 "SSBO1" - OpMemberName %SSBO1 0 "values1" - OpName %_ "" - OpName %gl_FragCoord "gl_FragCoord" - OpName %SSBO0 "SSBO0" - OpMemberName %SSBO0 0 "values0" - OpName %__0 "" - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %SSBO1 0 Offset 0 - OpDecorate %SSBO1 BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 1 - OpDecorate %gl_FragCoord BuiltIn FragCoord - OpDecorate %_runtimearr_uint_0 ArrayStride 4 - OpMemberDecorate %SSBO0 0 Offset 0 - OpDecorate %SSBO0 BufferBlock - OpDecorate %__0 DescriptorSet 0 - OpDecorate %__0 Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 -%_runtimearr_uint = OpTypeRuntimeArray %uint - %SSBO1 = OpTypeStruct %_runtimearr_uint -%_ptr_Uniform_SSBO1 = OpTypePointer Uniform %SSBO1 - %_ = OpVariable %_ptr_Uniform_SSBO1 Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Input_v4float = OpTypePointer Input %v4float -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input - %uint_0 = OpConstant %uint 0 -%_ptr_Input_float = OpTypePointer Input %float - %uint_1 = OpConstant %uint 1 -%_ptr_Uniform_uint = OpTypePointer Uniform %uint -%_runtimearr_uint_0 = OpTypeRuntimeArray %uint - %SSBO0 = OpTypeStruct %_runtimearr_uint_0 -%_ptr_Uniform_SSBO0 = OpTypePointer Uniform %SSBO0 - %__0 = OpVariable %_ptr_Uniform_SSBO0 Uniform - %main = OpFunction %void None %3 - %5 = OpLabel - %44 = OpFunctionCall %void %callee_ - %call3res = OpFunctionCall %void %callee3_ - %call4res = OpFunctionCall %void %callee4_ - OpReturn - OpFunctionEnd - - %callee3_ = OpFunction %void None %3 - %begin3 = OpLabel - OpBeginInvocationInterlockEXT - OpReturn - OpFunctionEnd - - %callee4_ = OpFunction %void None %3 - %begin4 = OpLabel - OpEndInvocationInterlockEXT - OpReturn - OpFunctionEnd - - %callee2_ = OpFunction %void None %3 - %7 = OpLabel - %23 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_0 - %24 = OpLoad %float %23 - %25 = OpConvertFToS %int %24 - %28 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 %25 - %29 = OpLoad %uint %28 - %30 = OpIAdd %uint %29 %uint_1 - %31 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 %25 - OpStore %31 %30 - OpReturn - OpFunctionEnd - %callee_ = OpFunction %void None %3 - %9 = OpLabel - %36 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_0 - %37 = OpLoad %float %36 - %38 = OpConvertFToS %int %37 - %39 = OpAccessChain %_ptr_Uniform_uint %__0 %int_0 %38 - %40 = OpLoad %uint %39 - %41 = OpIAdd %uint %40 %uint_1 - %42 = OpAccessChain %_ptr_Uniform_uint %__0 %int_0 %38 - OpStore %42 %41 - %43 = OpFunctionCall %void %callee2_ - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/reserved-function-identifier.asm.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/reserved-function-identifier.asm.frag deleted file mode 100644 index a5a16f2873..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/reserved-function-identifier.asm.frag +++ /dev/null @@ -1,60 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 37 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %ACOS_f1_ "mat3" - OpName %a "a" - OpName %ACOS_i1_ "gl_Foo" - OpName %a_0 "a" - OpName %FragColor "FragColor" - OpName %param "param" - OpName %param_0 "param" - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 -%_ptr_Function_float = OpTypePointer Function %float - %8 = OpTypeFunction %float %_ptr_Function_float - %int = OpTypeInt 32 1 -%_ptr_Function_int = OpTypePointer Function %int - %14 = OpTypeFunction %float %_ptr_Function_int - %float_1 = OpConstant %float 1 -%_ptr_Output_float = OpTypePointer Output %float - %FragColor = OpVariable %_ptr_Output_float Output - %float_2 = OpConstant %float 2 - %int_4 = OpConstant %int 4 - %main = OpFunction %void None %3 - %5 = OpLabel - %param = OpVariable %_ptr_Function_float Function - %param_0 = OpVariable %_ptr_Function_int Function - OpStore %param %float_2 - %32 = OpFunctionCall %float %ACOS_f1_ %param - OpStore %param_0 %int_4 - %35 = OpFunctionCall %float %ACOS_i1_ %param_0 - %36 = OpFAdd %float %32 %35 - OpStore %FragColor %36 - OpReturn - OpFunctionEnd - %ACOS_f1_ = OpFunction %float None %8 - %a = OpFunctionParameter %_ptr_Function_float - %11 = OpLabel - %18 = OpLoad %float %a - %20 = OpFAdd %float %18 %float_1 - OpReturnValue %20 - OpFunctionEnd - %ACOS_i1_ = OpFunction %float None %14 - %a_0 = OpFunctionParameter %_ptr_Function_int - %17 = OpLabel - %23 = OpLoad %int %a_0 - %24 = OpConvertSToF %float %23 - %25 = OpFAdd %float %24 %float_1 - OpReturnValue %25 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/reserved-identifiers.asm.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/reserved-identifiers.asm.frag deleted file mode 100644 index 5015cef82a..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/reserved-identifiers.asm.frag +++ /dev/null @@ -1,51 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 24 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %spvFoo %SPIRV_Cross_blah %_40 %_m40 %_underscore_foo_bar_meep - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %spvFoo "spvFoo" - OpName %SPIRV_Cross_blah "SPIRV_Cross_blah" - OpName %_40 "_40Bar" - OpName %_m40 "_m40" - OpName %_underscore_foo_bar_meep "__underscore_foo__bar_meep__" - OpDecorate %spvFoo Location 0 - OpDecorate %SPIRV_Cross_blah Location 1 - OpDecorate %_40 Location 2 - OpDecorate %_m40 Location 3 - OpDecorate %_underscore_foo_bar_meep Location 4 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %spvFoo = OpVariable %_ptr_Output_v4float Output - %float_0 = OpConstant %float 0 - %11 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 -%SPIRV_Cross_blah = OpVariable %_ptr_Output_v4float Output - %float_1 = OpConstant %float 1 - %14 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 - %_40 = OpVariable %_ptr_Output_v4float Output - %float_2 = OpConstant %float 2 - %17 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 - %_m40 = OpVariable %_ptr_Output_v4float Output - %float_3 = OpConstant %float 3 - %20 = OpConstantComposite %v4float %float_3 %float_3 %float_3 %float_3 -%_underscore_foo_bar_meep = OpVariable %_ptr_Output_v4float Output - %float_4 = OpConstant %float 4 - %23 = OpConstantComposite %v4float %float_4 %float_4 %float_4 %float_4 - %main = OpFunction %void None %3 - %5 = OpLabel - OpStore %spvFoo %11 - OpStore %SPIRV_Cross_blah %14 - OpStore %_40 %17 - OpStore %_m40 %20 - OpStore %_underscore_foo_bar_meep %23 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/selection-merge-to-continue.asm.invalid.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/selection-merge-to-continue.asm.invalid.frag deleted file mode 100644 index ecc491594f..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/selection-merge-to-continue.asm.invalid.frag +++ /dev/null @@ -1,85 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 3 -; Bound: 55 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %v0 - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %FragColor "FragColor" - OpName %i "i" - OpName %v0 "v0" - OpDecorate %FragColor Location 0 - OpDecorate %v0 Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %float_1 = OpConstant %float 1 - %11 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 - %int = OpTypeInt 32 1 -%_ptr_Function_int = OpTypePointer Function %int - %int_0 = OpConstant %int 0 - %int_4 = OpConstant %int 4 - %bool = OpTypeBool -%_ptr_Input_v4float = OpTypePointer Input %v4float - %v0 = OpVariable %_ptr_Input_v4float Input - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 -%_ptr_Input_float = OpTypePointer Input %float - %float_20 = OpConstant %float 20 - %int_3 = OpConstant %int 3 - %int_1 = OpConstant %int 1 - %main = OpFunction %void None %3 - %5 = OpLabel - %i = OpVariable %_ptr_Function_int Function - OpStore %FragColor %11 - OpStore %i %int_0 - OpBranch %16 - %16 = OpLabel - OpLoopMerge %18 %19 None - OpBranch %20 - %20 = OpLabel - %21 = OpLoad %int %i - %24 = OpSLessThan %bool %21 %int_4 - OpBranchConditional %24 %17 %18 - %17 = OpLabel - %30 = OpAccessChain %_ptr_Input_float %v0 %uint_0 - %31 = OpLoad %float %30 - %33 = OpFOrdEqual %bool %31 %float_20 - OpSelectionMerge %19 None - OpBranchConditional %33 %34 %44 - %34 = OpLabel - %36 = OpLoad %int %i - %38 = OpBitwiseAnd %int %36 %int_3 - %39 = OpAccessChain %_ptr_Input_float %v0 %38 - %40 = OpLoad %float %39 - %41 = OpLoad %v4float %FragColor - %42 = OpCompositeConstruct %v4float %40 %40 %40 %40 - %43 = OpFAdd %v4float %41 %42 - OpStore %FragColor %43 - OpBranch %19 - %44 = OpLabel - %45 = OpLoad %int %i - %47 = OpBitwiseAnd %int %45 %int_1 - %48 = OpAccessChain %_ptr_Input_float %v0 %47 - %49 = OpLoad %float %48 - %50 = OpLoad %v4float %FragColor - %51 = OpCompositeConstruct %v4float %49 %49 %49 %49 - %52 = OpFAdd %v4float %50 %51 - OpStore %FragColor %52 - OpBranch %19 - %19 = OpLabel - %53 = OpLoad %int %i - %54 = OpIAdd %int %53 %int_1 - OpStore %i %54 - OpBranch %16 - %18 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/sparse-texture-feedback-uint-code.asm.desktop.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/sparse-texture-feedback-uint-code.asm.desktop.frag deleted file mode 100644 index 9b2eb72899..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/sparse-texture-feedback-uint-code.asm.desktop.frag +++ /dev/null @@ -1,57 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 30 -; Schema: 0 - OpCapability Shader - OpCapability SparseResidency - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %vUV %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpSourceExtension "GL_ARB_sparse_texture2" - OpSourceExtension "GL_ARB_sparse_texture_clamp" - OpName %main "main" - OpName %ret "ret" - OpName %uSamp "uSamp" - OpName %vUV "vUV" - OpName %texel "texel" - OpName %ResType "ResType" - OpName %FragColor "FragColor" - OpDecorate %uSamp DescriptorSet 0 - OpDecorate %uSamp Binding 0 - OpDecorate %vUV Location 0 - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %bool = OpTypeBool -%_ptr_Function_bool = OpTypePointer Function %bool - %float = OpTypeFloat 32 - %10 = OpTypeImage %float 2D 0 0 0 1 Unknown - %11 = OpTypeSampledImage %10 -%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11 - %uSamp = OpVariable %_ptr_UniformConstant_11 UniformConstant - %v2float = OpTypeVector %float 2 -%_ptr_Input_v2float = OpTypePointer Input %v2float - %vUV = OpVariable %_ptr_Input_v2float Input - %v4float = OpTypeVector %float 4 -%_ptr_Function_v4float = OpTypePointer Function %v4float - %uint = OpTypeInt 32 0 - %ResType = OpTypeStruct %uint %v4float -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %main = OpFunction %void None %3 - %5 = OpLabel - %ret = OpVariable %_ptr_Function_bool Function - %texel = OpVariable %_ptr_Function_v4float Function - %14 = OpLoad %11 %uSamp - %18 = OpLoad %v2float %vUV - %24 = OpImageSparseSampleImplicitLod %ResType %14 %18 - %25 = OpCompositeExtract %v4float %24 1 - OpStore %texel %25 - %26 = OpCompositeExtract %uint %24 0 - %27 = OpImageSparseTexelsResident %bool %26 - OpStore %ret %27 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/subgroup-arithmetic-cast.nocompat.vk.asm.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/subgroup-arithmetic-cast.nocompat.vk.asm.frag deleted file mode 100644 index a47c6b785f..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/subgroup-arithmetic-cast.nocompat.vk.asm.frag +++ /dev/null @@ -1,65 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 78 -; Schema: 0 - OpCapability Shader - OpCapability GroupNonUniform - OpCapability GroupNonUniformArithmetic - OpCapability GroupNonUniformClustered - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %index %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpSourceExtension "GL_KHR_shader_subgroup_arithmetic" - OpSourceExtension "GL_KHR_shader_subgroup_basic" - OpSourceExtension "GL_KHR_shader_subgroup_clustered" - OpName %main "main" - OpName %index "index" - OpName %FragColor "FragColor" - OpDecorate %index Flat - OpDecorate %index Location 0 - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 -%_ptr_Function_uint = OpTypePointer Function %uint - %uint_0 = OpConstant %uint 0 - %int = OpTypeInt 32 1 -%_ptr_Input_int = OpTypePointer Input %int - %index = OpVariable %_ptr_Input_int Input - %uint_3 = OpConstant %uint 3 - %uint_4 = OpConstant %uint 4 -%_ptr_Output_uint = OpTypePointer Output %uint - %FragColor = OpVariable %_ptr_Output_uint Output - %main = OpFunction %void None %3 - %5 = OpLabel - %i = OpLoad %int %index - %u = OpBitcast %uint %i - %res0 = OpGroupNonUniformSMin %uint %uint_3 Reduce %i - %res1 = OpGroupNonUniformSMax %uint %uint_3 Reduce %u - %res2 = OpGroupNonUniformUMin %uint %uint_3 Reduce %i - %res3 = OpGroupNonUniformUMax %uint %uint_3 Reduce %u - %res4 = OpGroupNonUniformSMax %uint %uint_3 InclusiveScan %i - %res5 = OpGroupNonUniformSMin %uint %uint_3 InclusiveScan %u - %res6 = OpGroupNonUniformUMax %uint %uint_3 ExclusiveScan %i - %res7 = OpGroupNonUniformUMin %uint %uint_3 ExclusiveScan %u - %res8 = OpGroupNonUniformSMin %uint %uint_3 ClusteredReduce %i %uint_4 - %res9 = OpGroupNonUniformSMax %uint %uint_3 ClusteredReduce %u %uint_4 - %res10 = OpGroupNonUniformUMin %uint %uint_3 ClusteredReduce %i %uint_4 - %res11 = OpGroupNonUniformUMax %uint %uint_3 ClusteredReduce %u %uint_4 - OpStore %FragColor %res0 - OpStore %FragColor %res1 - OpStore %FragColor %res2 - OpStore %FragColor %res3 - OpStore %FragColor %res4 - OpStore %FragColor %res5 - OpStore %FragColor %res6 - OpStore %FragColor %res7 - OpStore %FragColor %res8 - OpStore %FragColor %res9 - OpStore %FragColor %res10 - OpStore %FragColor %res11 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/subgroup-ballot-only.vk.asm.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/subgroup-ballot-only.vk.asm.frag deleted file mode 100644 index 39f4d066db..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/subgroup-ballot-only.vk.asm.frag +++ /dev/null @@ -1,52 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Unknown(30017); 21022 -; Bound: 31 -; Schema: 0 - OpCapability Shader - OpCapability GroupNonUniformBallot - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %INDEX %SV_Target - OpExecutionMode %main OriginUpperLeft - OpName %main "main" - OpName %INDEX "INDEX" - OpName %SV_Target "SV_Target" - OpDecorate %INDEX Flat - OpDecorate %INDEX Location 0 - OpDecorate %SV_Target Location 0 - %void = OpTypeVoid - %2 = OpTypeFunction %void - %uint = OpTypeInt 32 0 -%_ptr_Input_uint = OpTypePointer Input %uint - %INDEX = OpVariable %_ptr_Input_uint Input - %v4uint = OpTypeVector %uint 4 -%_ptr_Output_v4uint = OpTypePointer Output %v4uint - %SV_Target = OpVariable %_ptr_Output_v4uint Output - %bool = OpTypeBool - %uint_100 = OpConstant %uint 100 - %uint_3 = OpConstant %uint 3 -%_ptr_Output_uint = OpTypePointer Output %uint - %uint_0 = OpConstant %uint 0 - %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 - %main = OpFunction %void None %2 - %4 = OpLabel - OpBranch %29 - %29 = OpLabel - %11 = OpLoad %uint %INDEX - %13 = OpULessThan %bool %11 %uint_100 - %15 = OpGroupNonUniformBallot %v4uint %uint_3 %13 - %17 = OpCompositeExtract %uint %15 0 - %18 = OpCompositeExtract %uint %15 1 - %19 = OpCompositeExtract %uint %15 2 - %20 = OpCompositeExtract %uint %15 3 - %22 = OpAccessChain %_ptr_Output_uint %SV_Target %uint_0 - OpStore %22 %17 - %24 = OpAccessChain %_ptr_Output_uint %SV_Target %uint_1 - OpStore %24 %18 - %26 = OpAccessChain %_ptr_Output_uint %SV_Target %uint_2 - OpStore %26 %19 - %28 = OpAccessChain %_ptr_Output_uint %SV_Target %uint_3 - OpStore %28 %20 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/switch-block-case-fallthrough.asm.invalid.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/switch-block-case-fallthrough.asm.invalid.frag deleted file mode 100644 index b154679510..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/switch-block-case-fallthrough.asm.invalid.frag +++ /dev/null @@ -1,80 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 29 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %vIndex %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %vIndex "vIndex" - OpName %FragColor "FragColor" - OpName %i "i" - OpName %j "j" - OpDecorate %vIndex Flat - OpDecorate %vIndex Location 0 - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %bool = OpTypeBool - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 - %int_2 = OpConstant %int 2 - %int_3 = OpConstant %int 3 -%_ptr_Input_int = OpTypePointer Input %int - %vIndex = OpVariable %_ptr_Input_int Input - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output -%_ptr_Function_int = OpTypePointer Function %int - %main = OpFunction %void None %3 - %header = OpLabel - %i = OpVariable %_ptr_Function_int Function - %j = OpVariable %_ptr_Function_int Function - %9 = OpLoad %int %vIndex - OpSelectionMerge %switch_merge None - OpSwitch %9 %default_case 100 %default_case 0 %case_0 1 %case_1 11 %case_1 2 %case_2 3 %case_3 4 %case_4 5 %case_5 - - %case_0 = OpLabel - OpBranch %default_case - - %default_case = OpLabel - %default_case_phi = OpPhi %int %int_2 %header %int_3 %case_0 - ; Test what happens when a case block dominates access to a variable. - OpStore %j %default_case_phi - OpBranch %case_1 - - %case_1 = OpLabel - ; Test phi nodes between case labels. - %case_1_phi = OpPhi %int %int_0 %default_case %int_1 %header - OpStore %j %case_1_phi - OpBranch %case_2 - - %case_2 = OpLabel - OpBranch %switch_merge - - %case_3 = OpLabel - ; Conditionally branch to another case block. This is really dumb, but it is apparently legal. - %case_3_cond = OpSGreaterThan %bool %9 %int_3 - OpBranchConditional %case_3_cond %case_4 %switch_merge - - %case_4 = OpLabel - ; When emitted from case 3, we should *not* see fallthrough behavior. - OpBranch %case_5 - - %case_5 = OpLabel - OpStore %i %int_0 - OpBranch %switch_merge - - %switch_merge = OpLabel - %26 = OpLoad %int %i - %27 = OpConvertSToF %float %26 - %28 = OpCompositeConstruct %v4float %27 %27 %27 %27 - OpStore %FragColor %28 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/switch-merge-to-continue.asm.invalid.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/switch-merge-to-continue.asm.invalid.frag deleted file mode 100644 index 94ef5f538f..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/switch-merge-to-continue.asm.invalid.frag +++ /dev/null @@ -1,85 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 3 -; Bound: 57 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %v0 - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %FragColor "FragColor" - OpName %i "i" - OpName %v0 "v0" - OpDecorate %FragColor Location 0 - OpDecorate %v0 Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %float_1 = OpConstant %float 1 - %11 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 - %int = OpTypeInt 32 1 -%_ptr_Function_int = OpTypePointer Function %int - %int_0 = OpConstant %int 0 - %int_4 = OpConstant %int 4 - %bool = OpTypeBool - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 -%_ptr_Output_float = OpTypePointer Output %float - %float_3 = OpConstant %float 3 - %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 - %int_1 = OpConstant %int 1 -%_ptr_Input_v4float = OpTypePointer Input %v4float - %v0 = OpVariable %_ptr_Input_v4float Input - %main = OpFunction %void None %3 - %5 = OpLabel - %i = OpVariable %_ptr_Function_int Function - OpStore %FragColor %11 - OpStore %i %int_0 - OpBranch %16 - %16 = OpLabel - OpLoopMerge %18 %19 None - OpBranch %20 - %20 = OpLabel - %21 = OpLoad %int %i - %24 = OpSLessThan %bool %21 %int_4 - OpBranchConditional %24 %17 %18 - %17 = OpLabel - %25 = OpLoad %int %i - OpSelectionMerge %19 None - OpSwitch %25 %28 0 %26 1 %27 - %28 = OpLabel - %46 = OpAccessChain %_ptr_Output_float %FragColor %uint_2 - %47 = OpLoad %float %46 - %48 = OpFAdd %float %47 %float_3 - %49 = OpAccessChain %_ptr_Output_float %FragColor %uint_2 - OpStore %49 %48 - OpBranch %19 - %26 = OpLabel - %33 = OpAccessChain %_ptr_Output_float %FragColor %uint_0 - %34 = OpLoad %float %33 - %35 = OpFAdd %float %34 %float_1 - %36 = OpAccessChain %_ptr_Output_float %FragColor %uint_0 - OpStore %36 %35 - OpBranch %19 - %27 = OpLabel - %40 = OpAccessChain %_ptr_Output_float %FragColor %uint_1 - %41 = OpLoad %float %40 - %42 = OpFAdd %float %41 %float_3 - %43 = OpAccessChain %_ptr_Output_float %FragColor %uint_1 - OpStore %43 %42 - OpBranch %19 - %19 = OpLabel - %52 = OpLoad %int %i - %54 = OpIAdd %int %52 %int_1 - OpStore %i %54 - OpBranch %16 - %18 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/switch-single-case-multiple-exit-cfg.asm.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/switch-single-case-multiple-exit-cfg.asm.frag deleted file mode 100644 index d2bd15a978..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/switch-single-case-multiple-exit-cfg.asm.frag +++ /dev/null @@ -1,57 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 54 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %gl_FragCoord %_GLF_color - OpExecutionMode %main OriginUpperLeft - OpSource ESSL 310 - OpName %main "main" - OpName %gl_FragCoord "gl_FragCoord" - OpName %_GLF_color "_GLF_color" - OpDecorate %gl_FragCoord BuiltIn FragCoord - OpDecorate %_GLF_color Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Input_v4float = OpTypePointer Input %v4float -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 -%_ptr_Input_float = OpTypePointer Input %float - %bool = OpTypeBool - %v2float = OpTypeVector %float 2 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %_GLF_color = OpVariable %_ptr_Output_v4float Output - %float_1 = OpConstant %float 1 - %52 = OpUndef %v2float - %main = OpFunction %void None %3 - %5 = OpLabel - OpSelectionMerge %9 None - OpSwitch %int_0 %8 - %8 = OpLabel - %17 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_0 - %18 = OpLoad %float %17 - %22 = OpFOrdNotEqual %bool %18 %18 - OpSelectionMerge %24 None - OpBranchConditional %22 %23 %24 - %23 = OpLabel - OpBranch %9 - %24 = OpLabel - %33 = OpCompositeExtract %float %52 1 - %51 = OpCompositeInsert %v2float %33 %52 1 - OpBranch %9 - %9 = OpLabel - %53 = OpPhi %v2float %52 %23 %51 %24 - %42 = OpCompositeExtract %float %53 0 - %43 = OpCompositeExtract %float %53 1 - %48 = OpCompositeConstruct %v4float %42 %43 %float_1 %float_1 - OpStore %_GLF_color %48 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/unordered-compare.asm.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/unordered-compare.asm.frag deleted file mode 100644 index 4ad8fc5abb..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/unordered-compare.asm.frag +++ /dev/null @@ -1,177 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 132 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %A %B %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %test_vector_ "test_vector(" - OpName %test_scalar_ "test_scalar(" - OpName %le "le" - OpName %A "A" - OpName %B "B" - OpName %leq "leq" - OpName %ge "ge" - OpName %geq "geq" - OpName %eq "eq" - OpName %neq "neq" - OpName %le_0 "le" - OpName %leq_0 "leq" - OpName %ge_0 "ge" - OpName %geq_0 "geq" - OpName %eq_0 "eq" - OpName %neq_0 "neq" - OpName %FragColor "FragColor" - OpDecorate %A Location 0 - OpDecorate %B Location 1 - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %8 = OpTypeFunction %v4float - %11 = OpTypeFunction %float - %bool = OpTypeBool - %v4bool = OpTypeVector %bool 4 -%_ptr_Function_v4bool = OpTypePointer Function %v4bool -%_ptr_Input_v4float = OpTypePointer Input %v4float - %A = OpVariable %_ptr_Input_v4float Input - %B = OpVariable %_ptr_Input_v4float Input - %float_0 = OpConstant %float 0 - %float_1 = OpConstant %float 1 - %47 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 - %48 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Function_bool = OpTypePointer Function %bool - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 -%_ptr_Input_float = OpTypePointer Input %float -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %main = OpFunction %void None %3 - %5 = OpLabel - %128 = OpFunctionCall %v4float %test_vector_ - %129 = OpFunctionCall %float %test_scalar_ - %130 = OpCompositeConstruct %v4float %129 %129 %129 %129 - %131 = OpFAdd %v4float %128 %130 - OpStore %FragColor %131 - OpReturn - OpFunctionEnd -%test_vector_ = OpFunction %v4float None %8 - %10 = OpLabel - %le = OpVariable %_ptr_Function_v4bool Function - %leq = OpVariable %_ptr_Function_v4bool Function - %ge = OpVariable %_ptr_Function_v4bool Function - %geq = OpVariable %_ptr_Function_v4bool Function - %eq = OpVariable %_ptr_Function_v4bool Function - %neq = OpVariable %_ptr_Function_v4bool Function - %20 = OpLoad %v4float %A - %22 = OpLoad %v4float %B - %23 = OpFUnordLessThan %v4bool %20 %22 - OpStore %le %23 - %25 = OpLoad %v4float %A - %26 = OpLoad %v4float %B - %27 = OpFUnordLessThanEqual %v4bool %25 %26 - OpStore %leq %27 - %29 = OpLoad %v4float %A - %30 = OpLoad %v4float %B - %31 = OpFUnordGreaterThan %v4bool %29 %30 - OpStore %ge %31 - %33 = OpLoad %v4float %A - %34 = OpLoad %v4float %B - %35 = OpFUnordGreaterThanEqual %v4bool %33 %34 - OpStore %geq %35 - %37 = OpLoad %v4float %A - %38 = OpLoad %v4float %B - %39 = OpFUnordEqual %v4bool %37 %38 - OpStore %eq %39 - %41 = OpLoad %v4float %A - %42 = OpLoad %v4float %B - %43 = OpFUnordNotEqual %v4bool %41 %42 - OpStore %neq %43 - %44 = OpLoad %v4bool %le - %49 = OpSelect %v4float %44 %48 %47 - %50 = OpLoad %v4bool %leq - %51 = OpSelect %v4float %50 %48 %47 - %52 = OpFAdd %v4float %49 %51 - %53 = OpLoad %v4bool %ge - %54 = OpSelect %v4float %53 %48 %47 - %55 = OpFAdd %v4float %52 %54 - %56 = OpLoad %v4bool %geq - %57 = OpSelect %v4float %56 %48 %47 - %58 = OpFAdd %v4float %55 %57 - %59 = OpLoad %v4bool %eq - %60 = OpSelect %v4float %59 %48 %47 - %61 = OpFAdd %v4float %58 %60 - %62 = OpLoad %v4bool %neq - %63 = OpSelect %v4float %62 %48 %47 - %64 = OpFAdd %v4float %61 %63 - OpReturnValue %64 - OpFunctionEnd -%test_scalar_ = OpFunction %float None %11 - %13 = OpLabel - %le_0 = OpVariable %_ptr_Function_bool Function - %leq_0 = OpVariable %_ptr_Function_bool Function - %ge_0 = OpVariable %_ptr_Function_bool Function - %geq_0 = OpVariable %_ptr_Function_bool Function - %eq_0 = OpVariable %_ptr_Function_bool Function - %neq_0 = OpVariable %_ptr_Function_bool Function - %72 = OpAccessChain %_ptr_Input_float %A %uint_0 - %73 = OpLoad %float %72 - %74 = OpAccessChain %_ptr_Input_float %B %uint_0 - %75 = OpLoad %float %74 - %76 = OpFUnordLessThan %bool %73 %75 - OpStore %le_0 %76 - %78 = OpAccessChain %_ptr_Input_float %A %uint_0 - %79 = OpLoad %float %78 - %80 = OpAccessChain %_ptr_Input_float %B %uint_0 - %81 = OpLoad %float %80 - %82 = OpFUnordLessThanEqual %bool %79 %81 - OpStore %leq_0 %82 - %84 = OpAccessChain %_ptr_Input_float %A %uint_0 - %85 = OpLoad %float %84 - %86 = OpAccessChain %_ptr_Input_float %B %uint_0 - %87 = OpLoad %float %86 - %88 = OpFUnordGreaterThan %bool %85 %87 - OpStore %ge_0 %88 - %90 = OpAccessChain %_ptr_Input_float %A %uint_0 - %91 = OpLoad %float %90 - %92 = OpAccessChain %_ptr_Input_float %B %uint_0 - %93 = OpLoad %float %92 - %94 = OpFUnordGreaterThanEqual %bool %91 %93 - OpStore %geq_0 %94 - %96 = OpAccessChain %_ptr_Input_float %A %uint_0 - %97 = OpLoad %float %96 - %98 = OpAccessChain %_ptr_Input_float %B %uint_0 - %99 = OpLoad %float %98 - %100 = OpFUnordEqual %bool %97 %99 - OpStore %eq_0 %100 - %102 = OpAccessChain %_ptr_Input_float %A %uint_0 - %103 = OpLoad %float %102 - %104 = OpAccessChain %_ptr_Input_float %B %uint_0 - %105 = OpLoad %float %104 - %106 = OpFUnordNotEqual %bool %103 %105 - OpStore %neq_0 %106 - %107 = OpLoad %bool %le_0 - %108 = OpSelect %float %107 %float_1 %float_0 - %109 = OpLoad %bool %leq_0 - %110 = OpSelect %float %109 %float_1 %float_0 - %111 = OpFAdd %float %108 %110 - %112 = OpLoad %bool %ge_0 - %113 = OpSelect %float %112 %float_1 %float_0 - %114 = OpFAdd %float %111 %113 - %115 = OpLoad %bool %geq_0 - %116 = OpSelect %float %115 %float_1 %float_0 - %117 = OpFAdd %float %114 %116 - %118 = OpLoad %bool %eq_0 - %119 = OpSelect %float %118 %float_1 %float_0 - %120 = OpFAdd %float %117 %119 - %121 = OpLoad %bool %neq_0 - %122 = OpSelect %float %121 %float_1 %float_0 - %123 = OpFAdd %float %120 %122 - OpReturnValue %123 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/vector-extract-dynamic-spec-constant.asm.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/vector-extract-dynamic-spec-constant.asm.frag deleted file mode 100644 index dda5fc4034..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/vector-extract-dynamic-spec-constant.asm.frag +++ /dev/null @@ -1,49 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 27 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %vColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %FragColor "FragColor" - OpName %vColor "vColor" - OpName %omap_r "omap_r" - OpName %omap_g "omap_g" - OpName %omap_b "omap_b" - OpName %omap_a "omap_a" - OpDecorate %FragColor Location 0 - OpDecorate %vColor Location 0 - OpDecorate %omap_r SpecId 0 - OpDecorate %omap_g SpecId 1 - OpDecorate %omap_b SpecId 2 - OpDecorate %omap_a SpecId 3 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output -%_ptr_Input_v4float = OpTypePointer Input %v4float - %vColor = OpVariable %_ptr_Input_v4float Input - %int = OpTypeInt 32 1 - %omap_r = OpSpecConstant %int 0 -%_ptr_Input_float = OpTypePointer Input %float - %omap_g = OpSpecConstant %int 1 - %omap_b = OpSpecConstant %int 2 - %omap_a = OpSpecConstant %int 3 - %main = OpFunction %void None %3 - %5 = OpLabel - %loaded = OpLoad %v4float %vColor - %r = OpVectorExtractDynamic %float %loaded %omap_r - %g = OpVectorExtractDynamic %float %loaded %omap_g - %b = OpVectorExtractDynamic %float %loaded %omap_b - %a = OpVectorExtractDynamic %float %loaded %omap_a - %rgba = OpCompositeConstruct %v4float %r %g %b %a - OpStore %FragColor %rgba - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/vector-shuffle-undef-index.asm.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/vector-shuffle-undef-index.asm.frag deleted file mode 100644 index 22c4efca93..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/vector-shuffle-undef-index.asm.frag +++ /dev/null @@ -1,42 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 29 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %vFloat - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %FragColor "FragColor" - OpName %vFloat "vFloat" - OpName %undef "undef" - OpDecorate %FragColor Location 0 - OpDecorate %vFloat Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output -%_ptr_Input_v4float = OpTypePointer Input %v4float - %vFloat = OpVariable %_ptr_Input_v4float Input - %v2float = OpTypeVector %float 2 -%_ptr_Private_v4float = OpTypePointer Private %v4float - %undef = OpUndef %v4float - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 -%_ptr_Private_float = OpTypePointer Private %float - %uint_3 = OpConstant %uint 3 -%_ptr_Input_float = OpTypePointer Input %float - %main = OpFunction %void None %3 - %5 = OpLabel - %13 = OpLoad %v4float %vFloat - %26 = OpVectorShuffle %v4float %13 %undef 4 1 0xffffffff 3 - %27 = OpVectorShuffle %v4float %13 %13 2 1 0xffffffff 3 - %28 = OpFAdd %v4float %26 %27 - OpStore %FragColor %28 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/frag/while-loop-inverted-test.asm.frag b/third_party/spirv-cross/shaders-no-opt/asm/frag/while-loop-inverted-test.asm.frag deleted file mode 100644 index d4ae922909..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/frag/while-loop-inverted-test.asm.frag +++ /dev/null @@ -1,53 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 29 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %i "i" - OpName %j "j" - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 -%_ptr_Function_int = OpTypePointer Function %int - %int_0 = OpConstant %int 0 - %int_20 = OpConstant %int 20 - %bool = OpTypeBool - %int_1 = OpConstant %int 1 - %main = OpFunction %void None %3 - %5 = OpLabel - %i = OpVariable %_ptr_Function_int Function - %j = OpVariable %_ptr_Function_int Function - OpStore %i %int_0 - OpStore %j %int_0 - OpBranch %11 - %11 = OpLabel - OpLoopMerge %13 %14 None - OpBranch %15 - %15 = OpLabel - %16 = OpLoad %int %i - %19 = OpIEqual %bool %16 %int_20 - OpBranchConditional %19 %13 %12 - %12 = OpLabel - %20 = OpLoad %int %j - %21 = OpLoad %int %i - %22 = OpIAdd %int %20 %21 - %24 = OpIAdd %int %22 %int_1 - %25 = OpLoad %int %j - %26 = OpIMul %int %24 %25 - OpStore %j %26 - %27 = OpLoad %int %i - %28 = OpIAdd %int %27 %int_1 - OpStore %i %28 - OpBranch %14 - %14 = OpLabel - OpBranch %11 - %13 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/geom/store-uint-layer.invalid.asm.geom b/third_party/spirv-cross/shaders-no-opt/asm/geom/store-uint-layer.invalid.asm.geom deleted file mode 100644 index 550fc4e990..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/geom/store-uint-layer.invalid.asm.geom +++ /dev/null @@ -1,130 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 74 -; Schema: 0 - OpCapability Geometry - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Geometry %main "main" %stream_pos %stream_layer %input_pos - OpExecutionMode %main Triangles - OpExecutionMode %main Invocations 1 - OpExecutionMode %main OutputTriangleStrip - OpExecutionMode %main OutputVertices 3 - OpSource HLSL 500 - OpName %main "main" - OpName %VertexOutput "VertexOutput" - OpMemberName %VertexOutput 0 "pos" - OpName %GeometryOutput "GeometryOutput" - OpMemberName %GeometryOutput 0 "pos" - OpMemberName %GeometryOutput 1 "layer" - OpName %_main_struct_VertexOutput_vf41_3__struct_GeometryOutput_vf4_u11_ "@main(struct-VertexOutput-vf41[3];struct-GeometryOutput-vf4-u11;" - OpName %input "input" - OpName %stream "stream" - OpName %output "output" - OpName %v "v" - OpName %stream_pos "stream.pos" - OpName %stream_layer "stream.layer" - OpName %input_0 "input" - OpName %input_pos "input.pos" - OpName %stream_0 "stream" - OpName %param "param" - OpName %param_0 "param" - OpDecorate %stream_pos BuiltIn Position - OpDecorate %stream_layer BuiltIn Layer - OpDecorate %input_pos BuiltIn Position - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%VertexOutput = OpTypeStruct %v4float - %uint = OpTypeInt 32 0 - %uint_3 = OpConstant %uint 3 -%_arr_VertexOutput_uint_3 = OpTypeArray %VertexOutput %uint_3 -%_ptr_Function__arr_VertexOutput_uint_3 = OpTypePointer Function %_arr_VertexOutput_uint_3 -%GeometryOutput = OpTypeStruct %v4float %uint -%_ptr_Function_GeometryOutput = OpTypePointer Function %GeometryOutput - %15 = OpTypeFunction %void %_ptr_Function__arr_VertexOutput_uint_3 %_ptr_Function_GeometryOutput - %int = OpTypeInt 32 1 - %int_1 = OpConstant %int 1 - %uint_1 = OpConstant %uint 1 -%_ptr_Function_uint = OpTypePointer Function %uint -%_ptr_Function_int = OpTypePointer Function %int - %int_0 = OpConstant %int 0 - %int_3 = OpConstant %int 3 - %bool = OpTypeBool -%_ptr_Function_v4float = OpTypePointer Function %v4float -%_ptr_Output_v4float = OpTypePointer Output %v4float - %stream_pos = OpVariable %_ptr_Output_v4float Output -%_ptr_Output_uint = OpTypePointer Output %uint -%stream_layer = OpVariable %_ptr_Output_uint Output -%_arr_v4float_uint_3 = OpTypeArray %v4float %uint_3 -%_ptr_Input__arr_v4float_uint_3 = OpTypePointer Input %_arr_v4float_uint_3 - %input_pos = OpVariable %_ptr_Input__arr_v4float_uint_3 Input -%_ptr_Input_v4float = OpTypePointer Input %v4float - %int_2 = OpConstant %int 2 - %main = OpFunction %void None %3 - %5 = OpLabel - %input_0 = OpVariable %_ptr_Function__arr_VertexOutput_uint_3 Function - %stream_0 = OpVariable %_ptr_Function_GeometryOutput Function - %param = OpVariable %_ptr_Function__arr_VertexOutput_uint_3 Function - %param_0 = OpVariable %_ptr_Function_GeometryOutput Function - %58 = OpAccessChain %_ptr_Input_v4float %input_pos %int_0 - %59 = OpLoad %v4float %58 - %60 = OpAccessChain %_ptr_Function_v4float %input_0 %int_0 %int_0 - OpStore %60 %59 - %61 = OpAccessChain %_ptr_Input_v4float %input_pos %int_1 - %62 = OpLoad %v4float %61 - %63 = OpAccessChain %_ptr_Function_v4float %input_0 %int_1 %int_0 - OpStore %63 %62 - %65 = OpAccessChain %_ptr_Input_v4float %input_pos %int_2 - %66 = OpLoad %v4float %65 - %67 = OpAccessChain %_ptr_Function_v4float %input_0 %int_2 %int_0 - OpStore %67 %66 - %70 = OpLoad %_arr_VertexOutput_uint_3 %input_0 - OpStore %param %70 - %72 = OpFunctionCall %void %_main_struct_VertexOutput_vf41_3__struct_GeometryOutput_vf4_u11_ %param %param_0 - %73 = OpLoad %GeometryOutput %param_0 - OpStore %stream_0 %73 - OpReturn - OpFunctionEnd -%_main_struct_VertexOutput_vf41_3__struct_GeometryOutput_vf4_u11_ = OpFunction %void None %15 - %input = OpFunctionParameter %_ptr_Function__arr_VertexOutput_uint_3 - %stream = OpFunctionParameter %_ptr_Function_GeometryOutput - %19 = OpLabel - %output = OpVariable %_ptr_Function_GeometryOutput Function - %v = OpVariable %_ptr_Function_int Function - %25 = OpAccessChain %_ptr_Function_uint %output %int_1 - OpStore %25 %uint_1 - OpStore %v %int_0 - OpBranch %29 - %29 = OpLabel - OpLoopMerge %31 %32 None - OpBranch %33 - %33 = OpLabel - %34 = OpLoad %int %v - %37 = OpSLessThan %bool %34 %int_3 - OpBranchConditional %37 %30 %31 - %30 = OpLabel - %38 = OpLoad %int %v - %40 = OpAccessChain %_ptr_Function_v4float %input %38 %int_0 - %41 = OpLoad %v4float %40 - %42 = OpAccessChain %_ptr_Function_v4float %output %int_0 - OpStore %42 %41 - %45 = OpAccessChain %_ptr_Function_v4float %output %int_0 - %46 = OpLoad %v4float %45 - OpStore %stream_pos %46 - %49 = OpAccessChain %_ptr_Function_uint %output %int_1 - %50 = OpLoad %uint %49 - OpStore %stream_layer %50 - OpEmitVertex - OpBranch %32 - %32 = OpLabel - %51 = OpLoad %int %v - %52 = OpIAdd %int %51 %int_1 - OpStore %v %52 - OpBranch %29 - %31 = OpLabel - OpEndPrimitive - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/loop-header-self-continue-break.asm.comp b/third_party/spirv-cross/shaders-no-opt/asm/loop-header-self-continue-break.asm.comp deleted file mode 100644 index a38b111235..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/loop-header-self-continue-break.asm.comp +++ /dev/null @@ -1,109 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Clspv; 0 -; Bound: 83 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_KHR_storage_buffer_storage_class" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %19 "main" %gl_GlobalInvocationID - OpSource OpenCL_C 120 - OpDecorate %_runtimearr_float ArrayStride 4 - OpMemberDecorate %_struct_3 0 Offset 0 - OpDecorate %_struct_3 Block - OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %15 DescriptorSet 0 - OpDecorate %15 Binding 0 - OpDecorate %16 DescriptorSet 0 - OpDecorate %16 Binding 1 - OpDecorate %10 SpecId 0 - OpDecorate %11 SpecId 1 - OpDecorate %12 SpecId 2 - %float = OpTypeFloat 32 -%_runtimearr_float = OpTypeRuntimeArray %float - %_struct_3 = OpTypeStruct %_runtimearr_float -%_ptr_StorageBuffer__struct_3 = OpTypePointer StorageBuffer %_struct_3 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%_ptr_Private_v3uint = OpTypePointer Private %v3uint - %10 = OpSpecConstant %uint 1 - %11 = OpSpecConstant %uint 1 - %12 = OpSpecConstant %uint 1 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %10 %11 %12 - %void = OpTypeVoid - %18 = OpTypeFunction %void -%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint - %uint_35 = OpConstant %uint 35 - %uint_1 = OpConstant %uint 1 - %float_3 = OpConstant %float 3 - %bool = OpTypeBool - %uint_34 = OpConstant %uint 34 - %uint_5 = OpConstant %uint 5 -%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input - %14 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize - %15 = OpVariable %_ptr_StorageBuffer__struct_3 StorageBuffer - %16 = OpVariable %_ptr_StorageBuffer__struct_3 StorageBuffer - %19 = OpFunction %void None %18 - %20 = OpLabel - %23 = OpAccessChain %_ptr_StorageBuffer_float %15 %uint_0 %uint_0 - %25 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %26 = OpLoad %uint %25 - %27 = OpLoad %float %23 - %29 = OpAccessChain %_ptr_StorageBuffer_float %15 %uint_0 %uint_35 - OpBranch %31 - %31 = OpLabel - %32 = OpPhi %float %27 %20 %67 %58 - %33 = OpPhi %uint %uint_0 %20 %63 %58 - %34 = OpLoad %float %29 - OpLoopMerge %69 %58 None - OpBranch %37 - %37 = OpLabel - %38 = OpPhi %float %46 %37 %32 %31 - %39 = OpPhi %float %38 %37 %34 %31 - %40 = OpPhi %uint %44 %37 %uint_0 %31 - %41 = OpAccessChain %_ptr_StorageBuffer_float %15 %uint_0 %40 - %42 = OpFAdd %float %39 %38 - %44 = OpIAdd %uint %40 %uint_1 - %45 = OpAccessChain %_ptr_StorageBuffer_float %15 %uint_0 %44 - %46 = OpLoad %float %45 - %47 = OpFAdd %float %42 %46 - %49 = OpFDiv %float %47 %float_3 - OpStore %41 %49 - %52 = OpULessThan %bool %40 %uint_34 - %53 = OpLogicalNot %bool %52 - OpLoopMerge %56 %37 None - OpBranchConditional %53 %56 %37 - %56 = OpLabel - OpBranch %58 - %58 = OpLabel - %59 = OpLoad %float %29 - %60 = OpFAdd %float %38 %59 - %61 = OpFAdd %float %32 %60 - %62 = OpFDiv %float %61 %float_3 - OpStore %29 %62 - %63 = OpIAdd %uint %33 %uint_1 - %65 = OpULessThan %bool %33 %uint_5 - %66 = OpLogicalNot %bool %65 - %67 = OpLoad %float %23 - OpBranchConditional %66 %69 %31 - %69 = OpLabel - %70 = OpPhi %float %75 %69 %67 %58 - %71 = OpPhi %uint %76 %69 %uint_1 %58 - %72 = OpAccessChain %_ptr_StorageBuffer_float %15 %uint_0 %71 - %73 = OpLoad %float %72 - %74 = OpFOrdLessThan %bool %70 %73 - %75 = OpSelect %float %74 %73 %70 - %76 = OpIAdd %uint %71 %uint_1 - %77 = OpULessThan %bool %71 %uint_35 - %78 = OpLogicalNot %bool %77 - OpLoopMerge %81 %69 None - OpBranchConditional %78 %81 %69 - %81 = OpLabel - %82 = OpAccessChain %_ptr_StorageBuffer_float %16 %uint_0 %26 - OpStore %82 %75 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/rgen/acceleration-nonuniform.spv14.vk.nocompat.asm.rgen b/third_party/spirv-cross/shaders-no-opt/asm/rgen/acceleration-nonuniform.spv14.vk.nocompat.asm.rgen deleted file mode 100644 index 2178c8af7a..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/rgen/acceleration-nonuniform.spv14.vk.nocompat.asm.rgen +++ /dev/null @@ -1,112 +0,0 @@ -; SPIR-V -; Version: 1.4 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 73 -; Schema: 0 - OpCapability RayTracingKHR - OpCapability ShaderNonUniform - OpCapability RuntimeDescriptorArray - OpExtension "SPV_EXT_descriptor_indexing" - OpExtension "SPV_KHR_ray_tracing" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint RayGenerationNV %main "main" %gl_LaunchIDEXT %gl_LaunchSizeEXT %as %payload %image - OpSource GLSL 460 - OpSourceExtension "GL_EXT_nonuniform_qualifier" - OpSourceExtension "GL_EXT_ray_tracing" - OpName %main "main" - OpName %col "col" - OpName %origin "origin" - OpName %gl_LaunchIDEXT "gl_LaunchIDEXT" - OpName %gl_LaunchSizeEXT "gl_LaunchSizeEXT" - OpName %direction "direction" - OpName %as "as" - OpName %payload "payload" - OpName %image "image" - OpDecorate %gl_LaunchIDEXT BuiltIn LaunchIdNV - OpDecorate %gl_LaunchSizeEXT BuiltIn LaunchSizeNV - OpDecorate %as DescriptorSet 0 - OpDecorate %as Binding 1 - OpDecorate %51 NonUniform - OpDecorate %payload Location 0 - OpDecorate %image DescriptorSet 0 - OpDecorate %image Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Function_v4float = OpTypePointer Function %v4float - %float_0 = OpConstant %float 0 - %float_1 = OpConstant %float 1 - %12 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1 - %v3float = OpTypeVector %float 3 -%_ptr_Function_v3float = OpTypePointer Function %v3float - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%gl_LaunchIDEXT = OpVariable %_ptr_Input_v3uint Input - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint -%gl_LaunchSizeEXT = OpVariable %_ptr_Input_v3uint Input - %uint_1 = OpConstant %uint 1 - %float_n1 = OpConstant %float -1 - %41 = OpConstantComposite %v3float %float_0 %float_0 %float_n1 - %42 = OpTypeAccelerationStructureKHR -%_runtimearr_42 = OpTypeRuntimeArray %42 -%_ptr_UniformConstant__runtimearr_42 = OpTypePointer UniformConstant %_runtimearr_42 - %as = OpVariable %_ptr_UniformConstant__runtimearr_42 UniformConstant -%_ptr_UniformConstant_42 = OpTypePointer UniformConstant %42 - %uint_255 = OpConstant %uint 255 - %float_1000 = OpConstant %float 1000 - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_RayPayloadNV_float = OpTypePointer RayPayloadNV %float - %payload = OpVariable %_ptr_RayPayloadNV_float RayPayloadNV -%_ptr_Function_float = OpTypePointer Function %float - %63 = OpTypeImage %float 2D 0 0 0 2 Rgba8 -%_ptr_UniformConstant_63 = OpTypePointer UniformConstant %63 - %image = OpVariable %_ptr_UniformConstant_63 UniformConstant - %v2uint = OpTypeVector %uint 2 - %v2int = OpTypeVector %int 2 - %main = OpFunction %void None %3 - %5 = OpLabel - %col = OpVariable %_ptr_Function_v4float Function - %origin = OpVariable %_ptr_Function_v3float Function - %direction = OpVariable %_ptr_Function_v3float Function - OpStore %col %12 - %22 = OpAccessChain %_ptr_Input_uint %gl_LaunchIDEXT %uint_0 - %23 = OpLoad %uint %22 - %24 = OpConvertUToF %float %23 - %26 = OpAccessChain %_ptr_Input_uint %gl_LaunchSizeEXT %uint_0 - %27 = OpLoad %uint %26 - %28 = OpConvertUToF %float %27 - %29 = OpFDiv %float %24 %28 - %31 = OpAccessChain %_ptr_Input_uint %gl_LaunchIDEXT %uint_1 - %32 = OpLoad %uint %31 - %33 = OpConvertUToF %float %32 - %34 = OpAccessChain %_ptr_Input_uint %gl_LaunchSizeEXT %uint_1 - %35 = OpLoad %uint %34 - %36 = OpConvertUToF %float %35 - %37 = OpFDiv %float %33 %36 - %38 = OpCompositeConstruct %v3float %29 %37 %float_1 - OpStore %origin %38 - OpStore %direction %41 - %46 = OpAccessChain %_ptr_Input_uint %gl_LaunchIDEXT %uint_0 - %47 = OpLoad %uint %46 - %48 = OpCopyObject %uint %47 - %50 = OpAccessChain %_ptr_UniformConstant_42 %as %48 - %51 = OpLoad %42 %50 - %53 = OpLoad %v3float %origin - %54 = OpLoad %v3float %direction - OpTraceRayKHR %51 %uint_0 %uint_255 %uint_0 %uint_1 %uint_0 %53 %float_0 %54 %float_1000 %payload - %60 = OpLoad %float %payload - %62 = OpAccessChain %_ptr_Function_float %col %uint_1 - OpStore %62 %60 - %66 = OpLoad %63 %image - %68 = OpLoad %v3uint %gl_LaunchIDEXT - %69 = OpVectorShuffle %v2uint %68 %68 0 1 - %71 = OpBitcast %v2int %69 - %72 = OpLoad %v4float %col - OpImageWrite %66 %71 %72 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/temporary.zero-initialize.asm.frag b/third_party/spirv-cross/shaders-no-opt/asm/temporary.zero-initialize.asm.frag deleted file mode 100644 index eccff08b33..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/temporary.zero-initialize.asm.frag +++ /dev/null @@ -1,93 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 65 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %vA %vB - OpExecutionMode %main OriginUpperLeft - OpSource ESSL 310 - OpName %main "main" - OpName %FragColor "FragColor" - OpName %vA "vA" - OpName %vB "vB" - OpDecorate %FragColor RelaxedPrecision - OpDecorate %FragColor Location 0 - OpDecorate %vA RelaxedPrecision - OpDecorate %vA Flat - OpDecorate %vA Location 0 - OpDecorate %25 RelaxedPrecision - OpDecorate %30 RelaxedPrecision - OpDecorate %vB RelaxedPrecision - OpDecorate %vB Flat - OpDecorate %vB Location 1 - OpDecorate %38 RelaxedPrecision - OpDecorate %40 RelaxedPrecision - OpDecorate %49 RelaxedPrecision - OpDecorate %51 RelaxedPrecision - OpDecorate %53 RelaxedPrecision - OpDecorate %56 RelaxedPrecision - OpDecorate %64 RelaxedPrecision - OpDecorate %58 RelaxedPrecision - OpDecorate %57 RelaxedPrecision - OpDecorate %60 RelaxedPrecision - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %float_0 = OpConstant %float 0 - %11 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_Input_int = OpTypePointer Input %int - %vA = OpVariable %_ptr_Input_int Input - %bool = OpTypeBool - %int_20 = OpConstant %int 20 - %int_50 = OpConstant %int 50 - %vB = OpVariable %_ptr_Input_int Input - %int_40 = OpConstant %int 40 - %int_60 = OpConstant %int 60 - %int_10 = OpConstant %int 10 - %float_1 = OpConstant %float 1 - %63 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 - %main = OpFunction %void None %3 - %5 = OpLabel - OpStore %FragColor %11 - OpBranch %17 - %17 = OpLabel - %60 = OpPhi %int %int_0 %5 %58 %20 - %57 = OpPhi %int %int_0 %5 %56 %20 - %25 = OpLoad %int %vA - %27 = OpSLessThan %bool %57 %25 - OpLoopMerge %19 %20 None - OpBranchConditional %27 %18 %19 - %18 = OpLabel - %30 = OpIAdd %int %25 %57 - %32 = OpIEqual %bool %30 %int_20 - OpSelectionMerge %34 None - OpBranchConditional %32 %33 %36 - %33 = OpLabel - OpBranch %34 - %36 = OpLabel - %38 = OpLoad %int %vB - %40 = OpIAdd %int %38 %57 - %42 = OpIEqual %bool %40 %int_40 - %64 = OpSelect %int %42 %int_60 %60 - OpBranch %34 - %34 = OpLabel - %58 = OpPhi %int %int_50 %33 %64 %36 - %49 = OpIAdd %int %58 %int_10 - %51 = OpLoad %v4float %FragColor - %53 = OpFAdd %v4float %51 %63 - OpStore %FragColor %53 - OpBranch %20 - %20 = OpLabel - %56 = OpIAdd %int %57 %49 - OpBranch %17 - %19 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/tesc/array-of-block-output-initializer.asm.tesc b/third_party/spirv-cross/shaders-no-opt/asm/tesc/array-of-block-output-initializer.asm.tesc deleted file mode 100644 index 0ec5fa90a9..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/tesc/array-of-block-output-initializer.asm.tesc +++ /dev/null @@ -1,101 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 42 -; Schema: 0 - OpCapability Tessellation - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %main "main" %gl_out %gl_InvocationID %_ %patches %v2 %v3 %verts - OpExecutionMode %main OutputVertices 4 - OpSource GLSL 450 - OpName %main "main" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %gl_out "gl_out" - OpName %gl_InvocationID "gl_InvocationID" - OpName %vert "vert" - OpMemberName %vert 0 "v0" - OpMemberName %vert 1 "v1" - OpName %_ "" - OpName %vert_patch "vert_patch" - OpMemberName %vert_patch 0 "v2" - OpMemberName %vert_patch 1 "v3" - OpName %patches "patches" - OpName %v2 "v2" - OpName %v3 "v3" - OpName %vert2 "vert2" - OpMemberName %vert2 0 "v4" - OpMemberName %vert2 1 "v5" - OpName %verts "verts" - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - OpDecorate %gl_InvocationID BuiltIn InvocationId - OpMemberDecorate %vert 0 Patch - OpMemberDecorate %vert 1 Patch - OpDecorate %vert Block - OpDecorate %_ Location 0 - OpMemberDecorate %vert_patch 0 Patch - OpMemberDecorate %vert_patch 1 Patch - OpDecorate %vert_patch Block - OpDecorate %patches Location 2 - OpDecorate %v2 Patch - OpDecorate %v2 Location 6 - OpDecorate %v3 Location 7 - OpDecorate %vert2 Block - OpDecorate %verts Location 8 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %uint = OpTypeInt 32 0 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 - %uint_4 = OpConstant %uint 4 -%_arr_gl_PerVertex_uint_4 = OpTypeArray %gl_PerVertex %uint_4 -%_ptr_Output__arr_gl_PerVertex_uint_4 = OpTypePointer Output %_arr_gl_PerVertex_uint_4 - %gl_out_zero = OpConstantNull %_arr_gl_PerVertex_uint_4 - %gl_out = OpVariable %_ptr_Output__arr_gl_PerVertex_uint_4 Output %gl_out_zero - %int = OpTypeInt 32 1 -%_ptr_Input_int = OpTypePointer Input %int -%gl_InvocationID = OpVariable %_ptr_Input_int Input - %int_0 = OpConstant %int 0 - %float_1 = OpConstant %float 1 - %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %vert = OpTypeStruct %float %float -%_ptr_Output_vert = OpTypePointer Output %vert - %__zero = OpConstantNull %vert - %_ = OpVariable %_ptr_Output_vert Output %__zero - %vert_patch = OpTypeStruct %float %float - %uint_2 = OpConstant %uint 2 -%_arr_vert_patch_uint_2 = OpTypeArray %vert_patch %uint_2 -%_ptr_Output__arr_vert_patch_uint_2 = OpTypePointer Output %_arr_vert_patch_uint_2 - %patches_zero = OpConstantNull %_arr_vert_patch_uint_2 - %patches = OpVariable %_ptr_Output__arr_vert_patch_uint_2 Output %patches_zero -%_ptr_Output_float = OpTypePointer Output %float - %v2_zero = OpConstantNull %float - %v2 = OpVariable %_ptr_Output_float Output %v2_zero -%_arr_float_uint_4 = OpTypeArray %float %uint_4 -%_ptr_Output__arr_float_uint_4 = OpTypePointer Output %_arr_float_uint_4 - %v3_zero = OpConstantNull %_arr_float_uint_4 - %v3 = OpVariable %_ptr_Output__arr_float_uint_4 Output %v3_zero - %vert2 = OpTypeStruct %float %float -%_arr_vert2_uint_4 = OpTypeArray %vert2 %uint_4 -%_ptr_Output__arr_vert2_uint_4 = OpTypePointer Output %_arr_vert2_uint_4 - %verts_zero = OpConstantNull %_arr_vert2_uint_4 - %verts = OpVariable %_ptr_Output__arr_vert2_uint_4 Output %verts_zero - %main = OpFunction %void None %3 - %5 = OpLabel - %19 = OpLoad %int %gl_InvocationID - %24 = OpAccessChain %_ptr_Output_v4float %gl_out %19 %int_0 - OpStore %24 %22 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/tesc/copy-memory-control-point.asm.tesc b/third_party/spirv-cross/shaders-no-opt/asm/tesc/copy-memory-control-point.asm.tesc deleted file mode 100644 index 7c0a638f98..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/tesc/copy-memory-control-point.asm.tesc +++ /dev/null @@ -1,199 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Wine VKD3D Shader Compiler; 2 -; Bound: 126 -; Schema: 0 - OpCapability Tessellation - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %1 "main" %4 %30 %80 %101 %103 %108 %110 %115 %117 - OpExecutionMode %1 OutputVertices 3 - OpExecutionMode %1 Triangles - OpExecutionMode %1 SpacingEqual - OpExecutionMode %1 VertexOrderCw - OpName %1 "main" - OpName %11 "opc" - OpName %14 "cb1_struct" - OpName %16 "cb0_0" - OpName %22 "vicp" - OpName %23 "fork0" - OpName %26 "vForkInstanceId" - OpName %34 "r0" - OpName %32 "fork0_epilogue" - OpName %75 "fork1" - OpName %81 "fork1_epilogue" - OpName %101 "v0" - OpName %103 "v1" - OpName %108 "vicp0" - OpName %110 "vocp0" - OpName %115 "vicp1" - OpName %117 "vocp1" - OpDecorate %4 BuiltIn InvocationId - OpDecorate %13 ArrayStride 16 - OpDecorate %14 Block - OpMemberDecorate %14 0 Offset 0 - OpDecorate %16 DescriptorSet 0 - OpDecorate %16 Binding 0 - OpDecorate %30 BuiltIn TessLevelOuter - OpDecorate %30 Patch - OpDecorate %30 Patch - OpDecorate %30 Patch - OpDecorate %30 Patch - OpDecorate %80 BuiltIn TessLevelInner - OpDecorate %80 Patch - OpDecorate %80 Patch - OpDecorate %101 Location 0 - OpDecorate %103 Location 1 - OpDecorate %108 Location 2 - OpDecorate %110 Location 3 - OpDecorate %115 Location 4 - OpDecorate %117 Location 5 - %2 = OpTypeInt 32 1 - %3 = OpTypePointer Input %2 - %4 = OpVariable %3 Input - %5 = OpTypeFloat 32 - %6 = OpTypeVector %5 4 - %7 = OpTypeInt 32 0 - %8 = OpConstant %7 4 - %9 = OpTypeArray %6 %8 - %10 = OpTypePointer Private %9 - %11 = OpVariable %10 Private - %12 = OpConstant %7 1 - %13 = OpTypeArray %6 %12 - %14 = OpTypeStruct %13 - %15 = OpTypePointer Uniform %14 - %16 = OpVariable %15 Uniform - %17 = OpConstant %7 3 - %18 = OpTypeArray %6 %17 - %19 = OpConstant %7 2 - %20 = OpTypeArray %18 %19 - %21 = OpTypePointer Private %20 - %22 = OpVariable %21 Private - %24 = OpTypeVoid - %25 = OpTypeFunction %24 %7 - %28 = OpTypeArray %5 %8 - %29 = OpTypePointer Output %28 - %30 = OpVariable %29 Output - %31 = OpConstant %7 0 - %33 = OpTypePointer Function %6 - %36 = OpTypePointer Function %5 - %38 = OpTypePointer Uniform %6 - %40 = OpTypePointer Uniform %5 - %46 = OpTypePointer Private %6 - %48 = OpTypePointer Private %5 - %52 = OpVariable %46 Private - %55 = OpVariable %46 Private - %58 = OpVariable %46 Private - %60 = OpTypeFunction %24 %46 %46 %46 - %69 = OpTypePointer Output %5 - %76 = OpTypeFunction %24 - %78 = OpTypeArray %5 %19 - %79 = OpTypePointer Output %78 - %80 = OpVariable %79 Output - %89 = OpVariable %46 Private - %91 = OpTypeFunction %24 %46 - %98 = OpTypePointer Private %18 - %100 = OpTypePointer Input %18 - %101 = OpVariable %100 Input - %103 = OpVariable %100 Input - %105 = OpTypeVector %5 3 - %106 = OpTypeArray %105 %17 - %107 = OpTypePointer Input %106 - %108 = OpVariable %107 Input - %109 = OpTypePointer Output %106 - %110 = OpVariable %109 Output - %111 = OpTypePointer Output %105 - %112 = OpTypePointer Input %105 - %115 = OpVariable %100 Input - %116 = OpTypePointer Output %18 - %117 = OpVariable %116 Output - %118 = OpTypePointer Output %6 - %119 = OpTypePointer Input %6 - %23 = OpFunction %24 None %25 - %26 = OpFunctionParameter %7 - %27 = OpLabel - %34 = OpVariable %33 Function - %35 = OpBitcast %5 %26 - %37 = OpInBoundsAccessChain %36 %34 %31 - OpStore %37 %35 - %39 = OpAccessChain %38 %16 %31 %31 - %41 = OpInBoundsAccessChain %40 %39 %31 - %42 = OpLoad %5 %41 - %43 = OpInBoundsAccessChain %36 %34 %31 - %44 = OpLoad %5 %43 - %45 = OpBitcast %2 %44 - %47 = OpAccessChain %46 %11 %45 - %49 = OpInBoundsAccessChain %48 %47 %31 - OpStore %49 %42 - %50 = OpAccessChain %46 %11 %31 - %51 = OpLoad %6 %50 - OpStore %52 %51 - %53 = OpAccessChain %46 %11 %12 - %54 = OpLoad %6 %53 - OpStore %55 %54 - %56 = OpAccessChain %46 %11 %19 - %57 = OpLoad %6 %56 - OpStore %58 %57 - %59 = OpFunctionCall %24 %32 %52 %55 %58 - OpReturn - OpFunctionEnd - %32 = OpFunction %24 None %60 - %61 = OpFunctionParameter %46 - %62 = OpFunctionParameter %46 - %63 = OpFunctionParameter %46 - %64 = OpLabel - %65 = OpLoad %6 %61 - %66 = OpLoad %6 %62 - %67 = OpLoad %6 %63 - %68 = OpCompositeExtract %5 %65 0 - %70 = OpAccessChain %69 %30 %31 - OpStore %70 %68 - %71 = OpCompositeExtract %5 %66 0 - %72 = OpAccessChain %69 %30 %12 - OpStore %72 %71 - %73 = OpCompositeExtract %5 %67 0 - %74 = OpAccessChain %69 %30 %19 - OpStore %74 %73 - OpReturn - OpFunctionEnd - %75 = OpFunction %24 None %76 - %77 = OpLabel - %82 = OpAccessChain %38 %16 %31 %31 - %83 = OpInBoundsAccessChain %40 %82 %31 - %84 = OpLoad %5 %83 - %85 = OpAccessChain %46 %11 %17 - %86 = OpInBoundsAccessChain %48 %85 %31 - OpStore %86 %84 - %87 = OpAccessChain %46 %11 %17 - %88 = OpLoad %6 %87 - OpStore %89 %88 - %90 = OpFunctionCall %24 %81 %89 - OpReturn - OpFunctionEnd - %81 = OpFunction %24 None %91 - %92 = OpFunctionParameter %46 - %93 = OpLabel - %94 = OpLoad %6 %92 - %95 = OpCompositeExtract %5 %94 0 - %96 = OpAccessChain %69 %80 %31 - OpStore %96 %95 - OpReturn - OpFunctionEnd - %1 = OpFunction %24 None %76 - %97 = OpLabel - %99 = OpInBoundsAccessChain %98 %22 %31 - OpCopyMemory %99 %101 - %102 = OpInBoundsAccessChain %98 %22 %12 - OpCopyMemory %102 %103 - %104 = OpLoad %2 %4 - %113 = OpAccessChain %111 %110 %104 - %114 = OpAccessChain %112 %108 %104 - OpCopyMemory %113 %114 - %120 = OpAccessChain %118 %117 %104 - %121 = OpAccessChain %119 %115 %104 - OpCopyMemory %120 %121 - %122 = OpFunctionCall %24 %23 %31 - %123 = OpFunctionCall %24 %23 %12 - %124 = OpFunctionCall %24 %23 %19 - %125 = OpFunctionCall %24 %75 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/tesc/tess-fixed-input-array-builtin-array.invalid.asm.tesc b/third_party/spirv-cross/shaders-no-opt/asm/tesc/tess-fixed-input-array-builtin-array.invalid.asm.tesc deleted file mode 100644 index 0fd4dce256..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/tesc/tess-fixed-input-array-builtin-array.invalid.asm.tesc +++ /dev/null @@ -1,248 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 2 -; Bound: 162 -; Schema: 0 - OpCapability Tessellation - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %hs_main "main" %p_pos %p_1 %i_1 %_entryPointOutput_pos %_entryPointOutput %_patchConstantOutput_EdgeTess %_patchConstantOutput_InsideTess - OpExecutionMode %hs_main OutputVertices 3 - OpExecutionMode %hs_main Triangles - OpExecutionMode %hs_main SpacingFractionalOdd - OpExecutionMode %hs_main VertexOrderCw - OpSource HLSL 500 - OpName %hs_main "hs_main" - OpName %VertexOutput "VertexOutput" - OpMemberName %VertexOutput 0 "pos" - OpMemberName %VertexOutput 1 "uv" - OpName %HSOut "HSOut" - OpMemberName %HSOut 0 "pos" - OpMemberName %HSOut 1 "uv" - OpName %_hs_main_struct_VertexOutput_vf4_vf21_3__u1_ "@hs_main(struct-VertexOutput-vf4-vf21[3];u1;" - OpName %p "p" - OpName %i "i" - OpName %HSConstantOut "HSConstantOut" - OpMemberName %HSConstantOut 0 "EdgeTess" - OpMemberName %HSConstantOut 1 "InsideTess" - OpName %PatchHS_struct_VertexOutput_vf4_vf21_3__ "PatchHS(struct-VertexOutput-vf4-vf21[3];" - OpName %patch "patch" - OpName %output "output" - OpName %p_0 "p" - OpName %p_pos "p.pos" - OpName %VertexOutput_0 "VertexOutput" - OpMemberName %VertexOutput_0 0 "uv" - OpName %p_1 "p" - OpName %i_0 "i" - OpName %i_1 "i" - OpName %flattenTemp "flattenTemp" - OpName %param "param" - OpName %param_0 "param" - OpName %_entryPointOutput_pos "@entryPointOutput.pos" - OpName %HSOut_0 "HSOut" - OpMemberName %HSOut_0 0 "uv" - OpName %_entryPointOutput "@entryPointOutput" - OpName %_patchConstantResult "@patchConstantResult" - OpName %param_1 "param" - OpName %_patchConstantOutput_EdgeTess "@patchConstantOutput.EdgeTess" - OpName %_patchConstantOutput_InsideTess "@patchConstantOutput.InsideTess" - OpName %output_0 "output" - OpDecorate %p_pos BuiltIn Position - OpDecorate %p_1 Location 0 - OpDecorate %i_1 BuiltIn InvocationId - OpDecorate %_entryPointOutput_pos BuiltIn Position - OpDecorate %_entryPointOutput Location 0 - OpDecorate %_patchConstantOutput_EdgeTess Patch - OpDecorate %_patchConstantOutput_EdgeTess BuiltIn TessLevelOuter - OpDecorate %_patchConstantOutput_InsideTess Patch - OpDecorate %_patchConstantOutput_InsideTess BuiltIn TessLevelInner - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %v2float = OpTypeVector %float 2 -%VertexOutput = OpTypeStruct %v4float %v2float - %uint = OpTypeInt 32 0 - %uint_3 = OpConstant %uint 3 -%_arr_VertexOutput_uint_3 = OpTypeArray %VertexOutput %uint_3 -%_ptr_Function__arr_VertexOutput_uint_3 = OpTypePointer Function %_arr_VertexOutput_uint_3 -%_ptr_Function_uint = OpTypePointer Function %uint - %HSOut = OpTypeStruct %v4float %v2float - %16 = OpTypeFunction %HSOut %_ptr_Function__arr_VertexOutput_uint_3 %_ptr_Function_uint -%_arr_float_uint_3 = OpTypeArray %float %uint_3 -%HSConstantOut = OpTypeStruct %_arr_float_uint_3 %float - %23 = OpTypeFunction %HSConstantOut %_ptr_Function__arr_VertexOutput_uint_3 -%_ptr_Function_HSOut = OpTypePointer Function %HSOut - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_Function_v4float = OpTypePointer Function %v4float - %int_1 = OpConstant %int 1 -%_ptr_Function_v2float = OpTypePointer Function %v2float -%_arr_v4float_uint_3 = OpTypeArray %v4float %uint_3 -%_ptr_Input__arr_v4float_uint_3 = OpTypePointer Input %_arr_v4float_uint_3 - %p_pos = OpVariable %_ptr_Input__arr_v4float_uint_3 Input -%_ptr_Input_v4float = OpTypePointer Input %v4float -%VertexOutput_0 = OpTypeStruct %v2float -%_arr_VertexOutput_0_uint_3 = OpTypeArray %VertexOutput_0 %uint_3 -%_ptr_Input__arr_VertexOutput_0_uint_3 = OpTypePointer Input %_arr_VertexOutput_0_uint_3 - %p_1 = OpVariable %_ptr_Input__arr_VertexOutput_0_uint_3 Input -%_ptr_Input_v2float = OpTypePointer Input %v2float - %int_2 = OpConstant %int 2 -%_ptr_Input_uint = OpTypePointer Input %uint - %i_1 = OpVariable %_ptr_Input_uint Input -%_ptr_Output__arr_v4float_uint_3 = OpTypePointer Output %_arr_v4float_uint_3 -%_entryPointOutput_pos = OpVariable %_ptr_Output__arr_v4float_uint_3 Output -%_ptr_Output_v4float = OpTypePointer Output %v4float - %HSOut_0 = OpTypeStruct %v2float -%_arr_HSOut_0_uint_3 = OpTypeArray %HSOut_0 %uint_3 -%_ptr_Output__arr_HSOut_0_uint_3 = OpTypePointer Output %_arr_HSOut_0_uint_3 -%_entryPointOutput = OpVariable %_ptr_Output__arr_HSOut_0_uint_3 Output -%_ptr_Output_v2float = OpTypePointer Output %v2float - %uint_2 = OpConstant %uint 2 - %uint_1 = OpConstant %uint 1 - %uint_0 = OpConstant %uint 0 - %bool = OpTypeBool -%_ptr_Function_HSConstantOut = OpTypePointer Function %HSConstantOut - %uint_4 = OpConstant %uint 4 -%_arr_float_uint_4 = OpTypeArray %float %uint_4 -%_ptr_Output__arr_float_uint_4 = OpTypePointer Output %_arr_float_uint_4 -%_patchConstantOutput_EdgeTess = OpVariable %_ptr_Output__arr_float_uint_4 Output -%_ptr_Function_float = OpTypePointer Function %float -%_ptr_Output_float = OpTypePointer Output %float -%_arr_float_uint_2 = OpTypeArray %float %uint_2 -%_ptr_Output__arr_float_uint_2 = OpTypePointer Output %_arr_float_uint_2 -%_patchConstantOutput_InsideTess = OpVariable %_ptr_Output__arr_float_uint_2 Output - %float_1 = OpConstant %float 1 - %hs_main = OpFunction %void None %3 - %5 = OpLabel - %p_0 = OpVariable %_ptr_Function__arr_VertexOutput_uint_3 Function - %i_0 = OpVariable %_ptr_Function_uint Function -%flattenTemp = OpVariable %_ptr_Function_HSOut Function - %param = OpVariable %_ptr_Function__arr_VertexOutput_uint_3 Function - %param_0 = OpVariable %_ptr_Function_uint Function -%_patchConstantResult = OpVariable %_ptr_Function_HSConstantOut Function - %param_1 = OpVariable %_ptr_Function__arr_VertexOutput_uint_3 Function - %50 = OpAccessChain %_ptr_Input_v4float %p_pos %int_0 - %51 = OpLoad %v4float %50 - %52 = OpAccessChain %_ptr_Function_v4float %p_0 %int_0 %int_0 - OpStore %52 %51 - %58 = OpAccessChain %_ptr_Input_v2float %p_1 %int_0 %int_0 - %59 = OpLoad %v2float %58 - %60 = OpAccessChain %_ptr_Function_v2float %p_0 %int_0 %int_1 - OpStore %60 %59 - %61 = OpAccessChain %_ptr_Input_v4float %p_pos %int_1 - %62 = OpLoad %v4float %61 - %63 = OpAccessChain %_ptr_Function_v4float %p_0 %int_1 %int_0 - OpStore %63 %62 - %64 = OpAccessChain %_ptr_Input_v2float %p_1 %int_1 %int_0 - %65 = OpLoad %v2float %64 - %66 = OpAccessChain %_ptr_Function_v2float %p_0 %int_1 %int_1 - OpStore %66 %65 - %68 = OpAccessChain %_ptr_Input_v4float %p_pos %int_2 - %69 = OpLoad %v4float %68 - %70 = OpAccessChain %_ptr_Function_v4float %p_0 %int_2 %int_0 - OpStore %70 %69 - %71 = OpAccessChain %_ptr_Input_v2float %p_1 %int_2 %int_0 - %72 = OpLoad %v2float %71 - %73 = OpAccessChain %_ptr_Function_v2float %p_0 %int_2 %int_1 - OpStore %73 %72 - %77 = OpLoad %uint %i_1 - OpStore %i_0 %77 - %80 = OpLoad %_arr_VertexOutput_uint_3 %p_0 - OpStore %param %80 - %82 = OpLoad %uint %i_0 - OpStore %param_0 %82 - %83 = OpFunctionCall %HSOut %_hs_main_struct_VertexOutput_vf4_vf21_3__u1_ %param %param_0 - OpStore %flattenTemp %83 - %86 = OpAccessChain %_ptr_Function_v4float %flattenTemp %int_0 - %87 = OpLoad %v4float %86 - %94 = OpLoad %uint %i_1 - %89 = OpAccessChain %_ptr_Output_v4float %_entryPointOutput_pos %94 - OpStore %89 %87 - %95 = OpAccessChain %_ptr_Function_v2float %flattenTemp %int_1 - %96 = OpLoad %v2float %95 - %98 = OpAccessChain %_ptr_Output_v2float %_entryPointOutput %94 %int_0 - OpStore %98 %96 - OpControlBarrier %uint_2 %uint_1 %uint_0 - %102 = OpLoad %uint %i_1 - %104 = OpIEqual %bool %102 %int_0 - OpSelectionMerge %106 None - OpBranchConditional %104 %105 %106 - %105 = OpLabel - %110 = OpLoad %_arr_VertexOutput_uint_3 %p_0 - OpStore %param_1 %110 - %111 = OpFunctionCall %HSConstantOut %PatchHS_struct_VertexOutput_vf4_vf21_3__ %param_1 - OpStore %_patchConstantResult %111 - %117 = OpAccessChain %_ptr_Function_float %_patchConstantResult %int_0 %int_0 - %118 = OpLoad %float %117 - %120 = OpAccessChain %_ptr_Output_float %_patchConstantOutput_EdgeTess %int_0 - OpStore %120 %118 - %121 = OpAccessChain %_ptr_Function_float %_patchConstantResult %int_0 %int_1 - %122 = OpLoad %float %121 - %123 = OpAccessChain %_ptr_Output_float %_patchConstantOutput_EdgeTess %int_1 - OpStore %123 %122 - %124 = OpAccessChain %_ptr_Function_float %_patchConstantResult %int_0 %int_2 - %125 = OpLoad %float %124 - %126 = OpAccessChain %_ptr_Output_float %_patchConstantOutput_EdgeTess %int_2 - OpStore %126 %125 - %130 = OpAccessChain %_ptr_Function_float %_patchConstantResult %int_1 - %131 = OpLoad %float %130 - %132 = OpAccessChain %_ptr_Output_float %_patchConstantOutput_InsideTess %int_0 - OpStore %132 %131 - OpBranch %106 - %106 = OpLabel - OpReturn - OpFunctionEnd -%_hs_main_struct_VertexOutput_vf4_vf21_3__u1_ = OpFunction %HSOut None %16 - %p = OpFunctionParameter %_ptr_Function__arr_VertexOutput_uint_3 - %i = OpFunctionParameter %_ptr_Function_uint - %20 = OpLabel - %output = OpVariable %_ptr_Function_HSOut Function - %31 = OpLoad %uint %i - %33 = OpAccessChain %_ptr_Function_v4float %p %31 %int_0 - %34 = OpLoad %v4float %33 - %35 = OpAccessChain %_ptr_Function_v4float %output %int_0 - OpStore %35 %34 - %37 = OpLoad %uint %i - %39 = OpAccessChain %_ptr_Function_v2float %p %37 %int_1 - %40 = OpLoad %v2float %39 - %41 = OpAccessChain %_ptr_Function_v2float %output %int_1 - OpStore %41 %40 - %42 = OpLoad %HSOut %output - OpReturnValue %42 - OpFunctionEnd -%PatchHS_struct_VertexOutput_vf4_vf21_3__ = OpFunction %HSConstantOut None %23 - %patch = OpFunctionParameter %_ptr_Function__arr_VertexOutput_uint_3 - %26 = OpLabel - %output_0 = OpVariable %_ptr_Function_HSConstantOut Function - %135 = OpAccessChain %_ptr_Function_v2float %patch %int_0 %int_1 - %136 = OpLoad %v2float %135 - %137 = OpCompositeConstruct %v2float %float_1 %float_1 - %138 = OpFAdd %v2float %137 %136 - %139 = OpCompositeExtract %float %138 0 - %140 = OpAccessChain %_ptr_Function_float %output_0 %int_0 %int_0 - OpStore %140 %139 - %141 = OpAccessChain %_ptr_Function_v2float %patch %int_0 %int_1 - %142 = OpLoad %v2float %141 - %143 = OpCompositeConstruct %v2float %float_1 %float_1 - %144 = OpFAdd %v2float %143 %142 - %145 = OpCompositeExtract %float %144 0 - %146 = OpAccessChain %_ptr_Function_float %output_0 %int_0 %int_1 - OpStore %146 %145 - %147 = OpAccessChain %_ptr_Function_v2float %patch %int_0 %int_1 - %148 = OpLoad %v2float %147 - %149 = OpCompositeConstruct %v2float %float_1 %float_1 - %150 = OpFAdd %v2float %149 %148 - %151 = OpCompositeExtract %float %150 0 - %152 = OpAccessChain %_ptr_Function_float %output_0 %int_0 %int_2 - OpStore %152 %151 - %153 = OpAccessChain %_ptr_Function_v2float %patch %int_0 %int_1 - %154 = OpLoad %v2float %153 - %155 = OpCompositeConstruct %v2float %float_1 %float_1 - %156 = OpFAdd %v2float %155 %154 - %157 = OpCompositeExtract %float %156 0 - %158 = OpAccessChain %_ptr_Function_float %output_0 %int_1 - OpStore %158 %157 - %159 = OpLoad %HSConstantOut %output_0 - OpReturnValue %159 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/tesc/tess-level-initializer.asm.tesc b/third_party/spirv-cross/shaders-no-opt/asm/tesc/tess-level-initializer.asm.tesc deleted file mode 100644 index 95fd147e7b..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/tesc/tess-level-initializer.asm.tesc +++ /dev/null @@ -1,87 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 47 -; Schema: 0 - OpCapability Tessellation - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %main "main" %gl_out %gl_InvocationID %gl_TessLevelInner %gl_TessLevelOuter - OpExecutionMode %main OutputVertices 4 - OpSource GLSL 450 - OpName %main "main" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %gl_out "gl_out" - OpName %gl_InvocationID "gl_InvocationID" - OpName %gl_TessLevelInner "gl_TessLevelInner" - OpName %gl_TessLevelOuter "gl_TessLevelOuter" - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - OpDecorate %gl_InvocationID BuiltIn InvocationId - OpDecorate %gl_TessLevelInner Patch - OpDecorate %gl_TessLevelInner BuiltIn TessLevelInner - OpDecorate %gl_TessLevelOuter Patch - OpDecorate %gl_TessLevelOuter BuiltIn TessLevelOuter - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %uint = OpTypeInt 32 0 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 - %uint_4 = OpConstant %uint 4 -%_arr_gl_PerVertex_uint_4 = OpTypeArray %gl_PerVertex %uint_4 -%_ptr_Output__arr_gl_PerVertex_uint_4 = OpTypePointer Output %_arr_gl_PerVertex_uint_4 - %gl_out = OpVariable %_ptr_Output__arr_gl_PerVertex_uint_4 Output - %int = OpTypeInt 32 1 -%_ptr_Input_int = OpTypePointer Input %int -%gl_InvocationID = OpVariable %_ptr_Input_int Input - %int_0 = OpConstant %int 0 - %float_1 = OpConstant %float 1 - %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %uint_2 = OpConstant %uint 2 -%_arr_float_uint_2 = OpTypeArray %float %uint_2 -%_ptr_Output__arr_float_uint_2 = OpTypePointer Output %_arr_float_uint_2 - %inner_zero = OpConstantNull %_arr_float_uint_2 -%gl_TessLevelInner = OpVariable %_ptr_Output__arr_float_uint_2 Output %inner_zero -%_ptr_Output_float = OpTypePointer Output %float - %int_1 = OpConstant %int 1 - %float_2 = OpConstant %float 2 -%_arr_float_uint_4 = OpTypeArray %float %uint_4 -%_ptr_Output__arr_float_uint_4 = OpTypePointer Output %_arr_float_uint_4 - %outer_zero = OpConstantNull %_arr_float_uint_4 -%gl_TessLevelOuter = OpVariable %_ptr_Output__arr_float_uint_4 Output %outer_zero - %float_3 = OpConstant %float 3 - %float_4 = OpConstant %float 4 - %int_2 = OpConstant %int 2 - %float_5 = OpConstant %float 5 - %int_3 = OpConstant %int 3 - %float_6 = OpConstant %float 6 - %main = OpFunction %void None %3 - %5 = OpLabel - %19 = OpLoad %int %gl_InvocationID - %24 = OpAccessChain %_ptr_Output_v4float %gl_out %19 %int_0 - OpStore %24 %22 - %30 = OpAccessChain %_ptr_Output_float %gl_TessLevelInner %int_0 - OpStore %30 %float_1 - %33 = OpAccessChain %_ptr_Output_float %gl_TessLevelInner %int_1 - OpStore %33 %float_2 - %38 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %int_0 - OpStore %38 %float_3 - %40 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %int_1 - OpStore %40 %float_4 - %43 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %int_2 - OpStore %43 %float_5 - %46 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %int_3 - OpStore %46 %float_6 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/vert/block-struct-initializer.asm.vert b/third_party/spirv-cross/shaders-no-opt/asm/vert/block-struct-initializer.asm.vert deleted file mode 100644 index a431e6a717..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/vert/block-struct-initializer.asm.vert +++ /dev/null @@ -1,37 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 13 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %main "main" %_ %foo - OpSource GLSL 450 - OpName %main "main" - OpName %Vert "Vert" - OpMemberName %Vert 0 "a" - OpMemberName %Vert 1 "b" - OpName %_ "" - OpName %Foo "Foo" - OpMemberName %Foo 0 "c" - OpMemberName %Foo 1 "d" - OpName %foo "foo" - OpDecorate %Vert Block - OpDecorate %_ Location 0 - OpDecorate %foo Location 2 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %Vert = OpTypeStruct %float %float -%_ptr_Output_Vert = OpTypePointer Output %Vert - %zero_vert = OpConstantNull %Vert - %_ = OpVariable %_ptr_Output_Vert Output %zero_vert - %Foo = OpTypeStruct %float %float -%_ptr_Output_Foo = OpTypePointer Output %Foo -%zero_foo = OpConstantNull %Foo - %foo = OpVariable %_ptr_Output_Foo Output %zero_foo - %main = OpFunction %void None %3 - %5 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/vert/builtin-output-initializer.asm.vert b/third_party/spirv-cross/shaders-no-opt/asm/vert/builtin-output-initializer.asm.vert deleted file mode 100644 index aaa68662e5..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/vert/builtin-output-initializer.asm.vert +++ /dev/null @@ -1,44 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 20 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %main "main" %_ - OpSource GLSL 450 - OpName %main "main" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %_ "" - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %uint = OpTypeInt 32 0 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 -%_ptr_Output_gl_PerVertex = OpTypePointer Output %gl_PerVertex - %zero = OpConstantNull %gl_PerVertex - %_ = OpVariable %_ptr_Output_gl_PerVertex Output %zero - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %float_1 = OpConstant %float 1 - %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %main = OpFunction %void None %3 - %5 = OpLabel - %19 = OpAccessChain %_ptr_Output_v4float %_ %int_0 - OpStore %19 %17 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/vert/complex-link-by-name.asm.vert b/third_party/spirv-cross/shaders-no-opt/asm/vert/complex-link-by-name.asm.vert deleted file mode 100644 index 94a883c1ed..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/vert/complex-link-by-name.asm.vert +++ /dev/null @@ -1,119 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 59 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %main "main" %_ %output_location_0 %output_location_2 %output_location_3 - OpSource GLSL 450 - OpName %main "main" - OpName %Foo "Struct_vec4" - OpMemberName %Foo 0 "m0" - OpName %c "c" - OpName %Foo_0 "Struct_vec4" - OpMemberName %Foo_0 0 "m0" - OpName %Bar "Struct_vec4" - OpMemberName %Bar 0 "m0" - OpName %UBO "UBO" - OpMemberName %UBO 0 "m0" - OpMemberName %UBO 1 "m1" - OpName %ubo_binding_0 "ubo_binding_0" - OpName %Bar_0 "Struct_vec4" - OpMemberName %Bar_0 0 "m0" - OpName %b "b" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %_ "" - OpName %VertexOut "VertexOut" - OpMemberName %VertexOut 0 "m0" - OpMemberName %VertexOut 1 "m1" - OpName %output_location_0 "output_location_0" - OpName %output_location_2 "output_location_2" - OpName %output_location_3 "output_location_3" - OpMemberDecorate %Foo_0 0 Offset 0 - OpMemberDecorate %Bar 0 Offset 0 - OpMemberDecorate %UBO 0 Offset 0 - OpMemberDecorate %UBO 1 Offset 16 - OpDecorate %UBO Block - OpDecorate %ubo_binding_0 DescriptorSet 0 - OpDecorate %ubo_binding_0 Binding 0 - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - OpDecorate %VertexOut Block - OpDecorate %output_location_0 Location 0 - OpDecorate %output_location_2 Location 2 - OpDecorate %output_location_3 Location 3 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %Foo = OpTypeStruct %v4float -%_ptr_Function_Foo = OpTypePointer Function %Foo - %Foo_0 = OpTypeStruct %v4float - %Bar = OpTypeStruct %v4float - %UBO = OpTypeStruct %Foo_0 %Bar -%_ptr_Uniform_UBO = OpTypePointer Uniform %UBO -%ubo_binding_0 = OpVariable %_ptr_Uniform_UBO Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_Uniform_Foo_0 = OpTypePointer Uniform %Foo_0 -%_ptr_Function_v4float = OpTypePointer Function %v4float - %Bar_0 = OpTypeStruct %v4float -%_ptr_Function_Bar_0 = OpTypePointer Function %Bar_0 - %int_1 = OpConstant %int 1 -%_ptr_Uniform_Bar = OpTypePointer Uniform %Bar - %uint = OpTypeInt 32 0 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 -%_ptr_Output_gl_PerVertex = OpTypePointer Output %gl_PerVertex - %_ = OpVariable %_ptr_Output_gl_PerVertex Output -%_ptr_Output_v4float = OpTypePointer Output %v4float - %VertexOut = OpTypeStruct %Foo %Bar_0 -%_ptr_Output_VertexOut = OpTypePointer Output %VertexOut -%output_location_0 = OpVariable %_ptr_Output_VertexOut Output -%_ptr_Output_Foo = OpTypePointer Output %Foo -%_ptr_Output_Bar_0 = OpTypePointer Output %Bar_0 -%output_location_2 = OpVariable %_ptr_Output_Foo Output -%output_location_3 = OpVariable %_ptr_Output_Bar_0 Output - %main = OpFunction %void None %3 - %5 = OpLabel - %c = OpVariable %_ptr_Function_Foo Function - %b = OpVariable %_ptr_Function_Bar_0 Function - %19 = OpAccessChain %_ptr_Uniform_Foo_0 %ubo_binding_0 %int_0 - %20 = OpLoad %Foo_0 %19 - %21 = OpCompositeExtract %v4float %20 0 - %23 = OpAccessChain %_ptr_Function_v4float %c %int_0 - OpStore %23 %21 - %29 = OpAccessChain %_ptr_Uniform_Bar %ubo_binding_0 %int_1 - %30 = OpLoad %Bar %29 - %31 = OpCompositeExtract %v4float %30 0 - %32 = OpAccessChain %_ptr_Function_v4float %b %int_0 - OpStore %32 %31 - %39 = OpAccessChain %_ptr_Function_v4float %c %int_0 - %40 = OpLoad %v4float %39 - %41 = OpAccessChain %_ptr_Function_v4float %b %int_0 - %42 = OpLoad %v4float %41 - %43 = OpFAdd %v4float %40 %42 - %45 = OpAccessChain %_ptr_Output_v4float %_ %int_0 - OpStore %45 %43 - %49 = OpLoad %Foo %c - %51 = OpAccessChain %_ptr_Output_Foo %output_location_0 %int_0 - OpStore %51 %49 - %52 = OpLoad %Bar_0 %b - %54 = OpAccessChain %_ptr_Output_Bar_0 %output_location_0 %int_1 - OpStore %54 %52 - %56 = OpLoad %Foo %c - OpStore %output_location_2 %56 - %58 = OpLoad %Bar_0 %b - OpStore %output_location_3 %58 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/vert/complex-link-by-name.force-flattened-io.legacy.asm.vert b/third_party/spirv-cross/shaders-no-opt/asm/vert/complex-link-by-name.force-flattened-io.legacy.asm.vert deleted file mode 100644 index 94a883c1ed..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/vert/complex-link-by-name.force-flattened-io.legacy.asm.vert +++ /dev/null @@ -1,119 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 59 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %main "main" %_ %output_location_0 %output_location_2 %output_location_3 - OpSource GLSL 450 - OpName %main "main" - OpName %Foo "Struct_vec4" - OpMemberName %Foo 0 "m0" - OpName %c "c" - OpName %Foo_0 "Struct_vec4" - OpMemberName %Foo_0 0 "m0" - OpName %Bar "Struct_vec4" - OpMemberName %Bar 0 "m0" - OpName %UBO "UBO" - OpMemberName %UBO 0 "m0" - OpMemberName %UBO 1 "m1" - OpName %ubo_binding_0 "ubo_binding_0" - OpName %Bar_0 "Struct_vec4" - OpMemberName %Bar_0 0 "m0" - OpName %b "b" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %_ "" - OpName %VertexOut "VertexOut" - OpMemberName %VertexOut 0 "m0" - OpMemberName %VertexOut 1 "m1" - OpName %output_location_0 "output_location_0" - OpName %output_location_2 "output_location_2" - OpName %output_location_3 "output_location_3" - OpMemberDecorate %Foo_0 0 Offset 0 - OpMemberDecorate %Bar 0 Offset 0 - OpMemberDecorate %UBO 0 Offset 0 - OpMemberDecorate %UBO 1 Offset 16 - OpDecorate %UBO Block - OpDecorate %ubo_binding_0 DescriptorSet 0 - OpDecorate %ubo_binding_0 Binding 0 - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - OpDecorate %VertexOut Block - OpDecorate %output_location_0 Location 0 - OpDecorate %output_location_2 Location 2 - OpDecorate %output_location_3 Location 3 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %Foo = OpTypeStruct %v4float -%_ptr_Function_Foo = OpTypePointer Function %Foo - %Foo_0 = OpTypeStruct %v4float - %Bar = OpTypeStruct %v4float - %UBO = OpTypeStruct %Foo_0 %Bar -%_ptr_Uniform_UBO = OpTypePointer Uniform %UBO -%ubo_binding_0 = OpVariable %_ptr_Uniform_UBO Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_Uniform_Foo_0 = OpTypePointer Uniform %Foo_0 -%_ptr_Function_v4float = OpTypePointer Function %v4float - %Bar_0 = OpTypeStruct %v4float -%_ptr_Function_Bar_0 = OpTypePointer Function %Bar_0 - %int_1 = OpConstant %int 1 -%_ptr_Uniform_Bar = OpTypePointer Uniform %Bar - %uint = OpTypeInt 32 0 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 -%_ptr_Output_gl_PerVertex = OpTypePointer Output %gl_PerVertex - %_ = OpVariable %_ptr_Output_gl_PerVertex Output -%_ptr_Output_v4float = OpTypePointer Output %v4float - %VertexOut = OpTypeStruct %Foo %Bar_0 -%_ptr_Output_VertexOut = OpTypePointer Output %VertexOut -%output_location_0 = OpVariable %_ptr_Output_VertexOut Output -%_ptr_Output_Foo = OpTypePointer Output %Foo -%_ptr_Output_Bar_0 = OpTypePointer Output %Bar_0 -%output_location_2 = OpVariable %_ptr_Output_Foo Output -%output_location_3 = OpVariable %_ptr_Output_Bar_0 Output - %main = OpFunction %void None %3 - %5 = OpLabel - %c = OpVariable %_ptr_Function_Foo Function - %b = OpVariable %_ptr_Function_Bar_0 Function - %19 = OpAccessChain %_ptr_Uniform_Foo_0 %ubo_binding_0 %int_0 - %20 = OpLoad %Foo_0 %19 - %21 = OpCompositeExtract %v4float %20 0 - %23 = OpAccessChain %_ptr_Function_v4float %c %int_0 - OpStore %23 %21 - %29 = OpAccessChain %_ptr_Uniform_Bar %ubo_binding_0 %int_1 - %30 = OpLoad %Bar %29 - %31 = OpCompositeExtract %v4float %30 0 - %32 = OpAccessChain %_ptr_Function_v4float %b %int_0 - OpStore %32 %31 - %39 = OpAccessChain %_ptr_Function_v4float %c %int_0 - %40 = OpLoad %v4float %39 - %41 = OpAccessChain %_ptr_Function_v4float %b %int_0 - %42 = OpLoad %v4float %41 - %43 = OpFAdd %v4float %40 %42 - %45 = OpAccessChain %_ptr_Output_v4float %_ %int_0 - OpStore %45 %43 - %49 = OpLoad %Foo %c - %51 = OpAccessChain %_ptr_Output_Foo %output_location_0 %int_0 - OpStore %51 %49 - %52 = OpLoad %Bar_0 %b - %54 = OpAccessChain %_ptr_Output_Bar_0 %output_location_0 %int_1 - OpStore %54 %52 - %56 = OpLoad %Foo %c - OpStore %output_location_2 %56 - %58 = OpLoad %Bar_0 %b - OpStore %output_location_3 %58 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/vert/constant-composite-extract.asm.vert b/third_party/spirv-cross/shaders-no-opt/asm/vert/constant-composite-extract.asm.vert deleted file mode 100644 index d5a1b41146..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/vert/constant-composite-extract.asm.vert +++ /dev/null @@ -1,66 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 10 -; Bound: 22 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %main "main" %_ - OpSource GLSL 450 - OpName %main "main" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %_ "" - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %m4float = OpTypeMatrix %v4float 4 - %uint = OpTypeInt 32 0 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 -%_ptr_Output_gl_PerVertex = OpTypePointer Output %gl_PerVertex - %_ = OpVariable %_ptr_Output_gl_PerVertex Output - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %float_1 = OpConstant %float 1 - %float_2 = OpConstant %float 2 - %float_3 = OpConstant %float 3 - %float_4 = OpConstant %float 4 - %float_5 = OpConstant %float 5 - %float_6 = OpConstant %float 6 - %float_7 = OpConstant %float 7 - %float_8 = OpConstant %float 8 - %vec0 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4 - %vec1 = OpConstantComposite %v4float %float_5 %float_6 %float_7 %float_8 - %cmat = OpConstantComposite %m4float %vec0 %vec1 %vec0 %vec1 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %main = OpFunction %void None %3 - %5 = OpLabel - %21 = OpAccessChain %_ptr_Output_v4float %_ %int_0 - %e0 = OpCompositeExtract %float %vec0 0 - %e1 = OpCompositeExtract %float %vec0 1 - %e2 = OpCompositeExtract %float %vec0 2 - %e3 = OpCompositeExtract %float %vec0 3 - %m13 = OpCompositeExtract %float %cmat 1 3 - %m21 = OpCompositeExtract %float %cmat 2 1 - %e_front = OpCompositeConstruct %v4float %e0 %e1 %e2 %e3 - %e_back = OpCompositeConstruct %v4float %e3 %e2 %m13 %m21 - %m0 = OpCompositeExtract %v4float %cmat 2 - %m1 = OpCompositeExtract %v4float %cmat 3 - %sum0 = OpFAdd %v4float %m0 %m1 - %sum1 = OpFAdd %v4float %e_front %e_back - %sum = OpFAdd %v4float %sum0 %sum1 - OpStore %21 %sum - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/vert/empty-struct-composite.asm.vert b/third_party/spirv-cross/shaders-no-opt/asm/vert/empty-struct-composite.asm.vert deleted file mode 100644 index 038ecaa6e3..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/vert/empty-struct-composite.asm.vert +++ /dev/null @@ -1,36 +0,0 @@ -; SPIR-V -; Version: 1.1 -; Generator: Google rspirv; 0 -; Bound: 17 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %2 "main" - OpName %Test "Test" - OpName %t "t" - OpName %retvar "retvar" - OpName %main "main" - OpName %retvar_0 "retvar" - %void = OpTypeVoid - %6 = OpTypeFunction %void - %Test = OpTypeStruct -%_ptr_Function_Test = OpTypePointer Function %Test -%_ptr_Function_void = OpTypePointer Function %void - %2 = OpFunction %void None %6 - %7 = OpLabel - %t = OpVariable %_ptr_Function_Test Function - %retvar = OpVariable %_ptr_Function_void Function - OpBranch %4 - %4 = OpLabel - %13 = OpCompositeConstruct %Test - OpStore %t %13 - OpReturn - OpFunctionEnd - %main = OpFunction %void None %6 - %15 = OpLabel - %retvar_0 = OpVariable %_ptr_Function_void Function - OpBranch %14 - %14 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/asm/vert/semantic-decoration.asm.vert b/third_party/spirv-cross/shaders-no-opt/asm/vert/semantic-decoration.asm.vert deleted file mode 100644 index 76007c30a3..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/asm/vert/semantic-decoration.asm.vert +++ /dev/null @@ -1,68 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 36 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_GOOGLE_decorate_string" - OpExtension "SPV_GOOGLE_hlsl_functionality1" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %main "main" %_entryPointOutput_p %_entryPointOutput_c - OpSource HLSL 500 - OpName %main "main" - OpName %VOut "VOut" - OpMemberName %VOut 0 "p" - OpMemberName %VOut 1 "c" - OpName %_main_ "@main(" - OpName %v "v" - OpName %flattenTemp "flattenTemp" - OpName %_entryPointOutput_p "@entryPointOutput.p" - OpName %_entryPointOutput_c "@entryPointOutput.c" - OpMemberDecorateStringGOOGLE %VOut 0 HlslSemanticGOOGLE "SV_POSITION" - OpMemberDecorateStringGOOGLE %VOut 1 HlslSemanticGOOGLE "COLOR" - OpDecorate %_entryPointOutput_p BuiltIn Position - OpDecorateStringGOOGLE %_entryPointOutput_p HlslSemanticGOOGLE "SV_POSITION" - OpDecorate %_entryPointOutput_c Location 0 - OpDecorateStringGOOGLE %_entryPointOutput_c HlslSemanticGOOGLE "COLOR" - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %VOut = OpTypeStruct %v4float %v4float - %9 = OpTypeFunction %VOut -%_ptr_Function_VOut = OpTypePointer Function %VOut - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %float_1 = OpConstant %float 1 - %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Function_v4float = OpTypePointer Function %v4float - %int_1 = OpConstant %int 1 - %float_2 = OpConstant %float 2 - %22 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 -%_ptr_Output_v4float = OpTypePointer Output %v4float -%_entryPointOutput_p = OpVariable %_ptr_Output_v4float Output -%_entryPointOutput_c = OpVariable %_ptr_Output_v4float Output - %main = OpFunction %void None %3 - %5 = OpLabel -%flattenTemp = OpVariable %_ptr_Function_VOut Function - %28 = OpFunctionCall %VOut %_main_ - OpStore %flattenTemp %28 - %31 = OpAccessChain %_ptr_Function_v4float %flattenTemp %int_0 - %32 = OpLoad %v4float %31 - OpStore %_entryPointOutput_p %32 - %34 = OpAccessChain %_ptr_Function_v4float %flattenTemp %int_1 - %35 = OpLoad %v4float %34 - OpStore %_entryPointOutput_c %35 - OpReturn - OpFunctionEnd - %_main_ = OpFunction %VOut None %9 - %11 = OpLabel - %v = OpVariable %_ptr_Function_VOut Function - %19 = OpAccessChain %_ptr_Function_v4float %v %int_0 - OpStore %19 %17 - %23 = OpAccessChain %_ptr_Function_v4float %v %int_1 - OpStore %23 %22 - %24 = OpLoad %VOut %v - OpReturnValue %24 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/comp/bitcast-16bit-1.invalid.comp b/third_party/spirv-cross/shaders-no-opt/comp/bitcast-16bit-1.invalid.comp deleted file mode 100644 index 0c21cda306..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/comp/bitcast-16bit-1.invalid.comp +++ /dev/null @@ -1,23 +0,0 @@ -#version 450 core -#extension GL_AMD_gpu_shader_half_float : require -#extension GL_AMD_gpu_shader_int16 : require -layout(local_size_x = 1) in; - -layout(binding = 0, std430) buffer SSBO0 -{ - i16vec4 inputs[]; -}; - -layout(binding = 1, std430) buffer SSBO1 -{ - ivec4 outputs[]; -}; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - f16vec2 a = int16BitsToFloat16(inputs[ident].xy); - outputs[ident].x = int(packFloat2x16(a + f16vec2(1, 1))); - outputs[ident].y = packInt2x16(inputs[ident].zw); - outputs[ident].z = int(packUint2x16(u16vec2(inputs[ident].xy))); -} diff --git a/third_party/spirv-cross/shaders-no-opt/comp/bitcast-16bit-2.invalid.comp b/third_party/spirv-cross/shaders-no-opt/comp/bitcast-16bit-2.invalid.comp deleted file mode 100644 index 6bb662412c..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/comp/bitcast-16bit-2.invalid.comp +++ /dev/null @@ -1,26 +0,0 @@ -#version 450 core -#extension GL_AMD_gpu_shader_half_float : require -#extension GL_AMD_gpu_shader_int16 : require -layout(local_size_x = 1) in; - -layout(binding = 0, std430) buffer SSBO0 -{ - ivec4 inputs[]; -}; - -layout(binding = 1, std430) buffer SSBO1 -{ - i16vec4 outputs[]; -}; - -layout(binding = 2) uniform UBO -{ - f16vec4 const0; -}; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - outputs[ident].xy = unpackInt2x16(inputs[ident].x) + float16BitsToInt16(const0.xy); - outputs[ident].zw = i16vec2(unpackUint2x16(uint(inputs[ident].y)) - float16BitsToUint16(const0.zw)); -} diff --git a/third_party/spirv-cross/shaders-no-opt/comp/bitfield.comp b/third_party/spirv-cross/shaders-no-opt/comp/bitfield.comp deleted file mode 100644 index d75b556b62..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/comp/bitfield.comp +++ /dev/null @@ -1,21 +0,0 @@ -#version 310 es - -void main() -{ - int signed_value = 0; - uint unsigned_value = 0u; - - int s = bitfieldExtract(signed_value, 5, 20); - uint u = bitfieldExtract(unsigned_value, 6, 21); - s = bitfieldInsert(s, 40, 5, 4); - u = bitfieldInsert(u, 60u, 5, 4); - - u = bitfieldReverse(u); - s = bitfieldReverse(s); - - int v0 = bitCount(u); - int v1 = bitCount(s); - - int v2 = findMSB(u); - int v3 = findLSB(s); -} diff --git a/third_party/spirv-cross/shaders-no-opt/comp/glsl.std450.comp b/third_party/spirv-cross/shaders-no-opt/comp/glsl.std450.comp deleted file mode 100644 index a17a82b82a..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/comp/glsl.std450.comp +++ /dev/null @@ -1,129 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -layout(binding = 0, std430) buffer SSBO -{ - float res; - int ires; - uint ures; - - vec4 f32; - ivec4 s32; - uvec4 u32; - - mat2 m2; - mat3 m3; - mat4 m4; -}; - -void main() -{ - float tmp; - vec2 v2; - vec3 v3; - vec4 v4; - int itmp; - - res = round(f32.x); - res = roundEven(f32.x); - res = trunc(f32.x); - res = abs(f32.x); - ires = abs(s32.x); - res = sign(f32.x); - ires = sign(s32.x); - res = floor(f32.x); - res = ceil(f32.x); - res = fract(f32.x); - res = radians(f32.x); - res = degrees(f32.x); - res = sin(f32.x); - res = cos(f32.x); - res = tan(f32.x); - res = asin(f32.x); - res = acos(f32.x); - res = atan(f32.x); - res = sinh(f32.x); - res = cosh(f32.x); - res = tanh(f32.x); - res = asinh(f32.x); - res = acosh(f32.x); - res = atanh(f32.x); - res = atan(f32.x, f32.y); - res = pow(f32.x, f32.y); - res = exp(f32.x); - res = log(f32.x); - res = exp2(f32.x); - res = log2(f32.x); - res = sqrt(f32.x); - res = inversesqrt(f32.x); - - res = length(f32.x); - res = distance(f32.x, f32.y); - res = normalize(f32.x); - res = faceforward(f32.x, f32.y, f32.z); - res = reflect(f32.x, f32.y); - res = refract(f32.x, f32.y, f32.z); - - res = length(f32.xy); - res = distance(f32.xy, f32.zw); - v2 = normalize(f32.xy); - v2 = faceforward(f32.xy, f32.yz, f32.zw); - v2 = reflect(f32.xy, f32.zw); - v2 = refract(f32.xy, f32.yz, f32.w); - - v3 = cross(f32.xyz, f32.yzw); - - res = determinant(m2); - res = determinant(m3); - res = determinant(m4); - m2 = inverse(m2); - m3 = inverse(m3); - m4 = inverse(m4); - - res = modf(f32.x, tmp); - // ModfStruct - - res = min(f32.x, f32.y); - ures = min(u32.x, u32.y); - ires = min(s32.x, s32.y); - res = max(f32.x, f32.y); - ures = max(u32.x, u32.y); - ires = max(s32.x, s32.y); - - res = clamp(f32.x, f32.y, f32.z); - ures = clamp(u32.x, u32.y, u32.z); - ires = clamp(s32.x, s32.y, s32.z); - - res = mix(f32.x, f32.y, f32.z); - res = step(f32.x, f32.y); - res = smoothstep(f32.x, f32.y, f32.z); - res = fma(f32.x, f32.y, f32.z); - - res = frexp(f32.x, itmp); - // FrexpStruct - res = ldexp(f32.x, itmp); - - ures = packSnorm4x8(f32); - ures = packUnorm4x8(f32); - ures = packSnorm2x16(f32.xy); - ures = packUnorm2x16(f32.xy); - ures = packHalf2x16(f32.xy); - // packDouble2x32 - - v2 = unpackSnorm2x16(u32.x); - v2 = unpackUnorm2x16(u32.x); - v2 = unpackHalf2x16(u32.x); - v4 = unpackSnorm4x8(u32.x); - v4 = unpackUnorm4x8(u32.x); - // unpackDouble2x32 - - s32 = findLSB(s32); - s32 = findLSB(u32); - s32 = findMSB(s32); - s32 = findMSB(u32); - - // interpolateAtSample - // interpolateAtOffset - - // NMin, NMax, NClamp -} diff --git a/third_party/spirv-cross/shaders-no-opt/comp/illegal-struct-name.asm.comp b/third_party/spirv-cross/shaders-no-opt/comp/illegal-struct-name.asm.comp deleted file mode 100644 index f7a8787d3d..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/comp/illegal-struct-name.asm.comp +++ /dev/null @@ -1,62 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 31 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %Foo "Foo" - OpMemberName %Foo 0 "abs" - OpName %f "f" - OpName %Foo_0 "Foo" - OpMemberName %Foo_0 0 "abs" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "foo" - OpMemberName %SSBO 1 "foo2" - OpName %_ "" - OpName %linear "abs" - OpMemberDecorate %Foo_0 0 Offset 0 - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %SSBO 1 Offset 4 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %Foo = OpTypeStruct %float -%_ptr_Function_Foo = OpTypePointer Function %Foo - %Foo_0 = OpTypeStruct %float - %SSBO = OpTypeStruct %Foo_0 %Foo_0 -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_Uniform_Foo_0 = OpTypePointer Uniform %Foo_0 -%_ptr_Function_float = OpTypePointer Function %float -%_ptr_Function_int = OpTypePointer Function %int - %int_10 = OpConstant %int 10 - %int_1 = OpConstant %int 1 -%_ptr_Uniform_float = OpTypePointer Uniform %float - %main = OpFunction %void None %3 - %5 = OpLabel - %f = OpVariable %_ptr_Function_Foo Function - %linear = OpVariable %_ptr_Function_int Function - %17 = OpAccessChain %_ptr_Uniform_Foo_0 %_ %int_0 - %18 = OpLoad %Foo_0 %17 - %19 = OpCompositeExtract %float %18 0 - %21 = OpAccessChain %_ptr_Function_float %f %int_0 - OpStore %21 %19 - OpStore %linear %int_10 - %26 = OpLoad %Foo %f - %27 = OpAccessChain %_ptr_Uniform_Foo_0 %_ %int_1 - %28 = OpCompositeExtract %float %26 0 - %30 = OpAccessChain %_ptr_Uniform_float %27 %int_0 - OpStore %30 %28 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/comp/image-load-formatted.comp b/third_party/spirv-cross/shaders-no-opt/comp/image-load-formatted.comp deleted file mode 100644 index 7fd587d99a..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/comp/image-load-formatted.comp +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 -#extension GL_EXT_shader_image_load_formatted : require -layout(local_size_x = 8, local_size_y = 8) in; - -layout(binding = 0) uniform image2D img; - -void main() -{ - vec4 v = imageLoad(img, ivec2(gl_GlobalInvocationID.xy)); - imageStore(img, ivec2(gl_GlobalInvocationID.xy), v + 1.0); -} diff --git a/third_party/spirv-cross/shaders-no-opt/comp/inout-struct.invalid.comp b/third_party/spirv-cross/shaders-no-opt/comp/inout-struct.invalid.comp deleted file mode 100644 index c1de959743..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/comp/inout-struct.invalid.comp +++ /dev/null @@ -1,55 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(std430, binding = 0) writeonly buffer SSBO -{ - vec4 data[]; -} outdata; - -layout(std430, binding = 1) readonly buffer SSBO2 -{ - vec4 data[]; -} indata; - -struct Foo -{ - vec4 a; - vec4 b; - vec4 c; - vec4 d; -}; - -layout(std430, binding = 2) readonly buffer SSBO3 -{ - Foo foos[]; -} foobar; - -vec4 bar(Foo foo) -{ - return foo.a + foo.b + foo.c + foo.d; -} - -void baz(out Foo foo) -{ - uint ident = gl_GlobalInvocationID.x; - foo.a = indata.data[4u * ident + 0u]; - foo.b = indata.data[4u * ident + 1u]; - foo.c = indata.data[4u * ident + 2u]; - foo.d = indata.data[4u * ident + 3u]; -} - -void meow(inout Foo foo) -{ - foo.a += 10.0; - foo.b += 20.0; - foo.c += 30.0; - foo.d += 40.0; -} - -void main() -{ - Foo foo; - baz(foo); - meow(foo); - outdata.data[gl_GlobalInvocationID.x] = bar(foo) + bar(foobar.foos[gl_GlobalInvocationID.x]); -} diff --git a/third_party/spirv-cross/shaders-no-opt/comp/loop.comp b/third_party/spirv-cross/shaders-no-opt/comp/loop.comp deleted file mode 100644 index 6d6c324243..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/comp/loop.comp +++ /dev/null @@ -1,98 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(std430, binding = 0) readonly buffer SSBO -{ - mat4 mvp; - vec4 in_data[]; -}; - -layout(std430, binding = 1) writeonly buffer SSBO2 -{ - vec4 out_data[]; -}; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - vec4 idat = in_data[ident]; - - int k = 0; - uint i = 0u; - - if (idat.y == 20.0) - { - do - { - k = k * 2; - i++; - } while (i < ident); - } - - switch (k) - { - case 10: - for (;;) - { - i++; - if (i > 10u) - break; - } - break; - - default: - for (;;) - { - i += 2u; - if (i > 20u) - break; - } - break; - } - - while (k < 10) - { - idat *= 2.0; - k++; - } - - for (uint i = 0u; i < 16u; i++, k++) - for (uint j = 0u; j < 30u; j++) - idat = mvp * idat; - - k = 0; - for (;;) - { - k++; - if (k > 10) - { - k += 2; - } - else - { - k += 3; - continue; - } - - k += 10; - } - - k = 0; - do - { - k++; - } while (k > 10); - - int l = 0; - for (;; l++) - { - if (l == 5) - { - continue; - } - - idat += 1.0; - } - out_data[ident] = idat; -} - diff --git a/third_party/spirv-cross/shaders-no-opt/comp/return.comp b/third_party/spirv-cross/shaders-no-opt/comp/return.comp deleted file mode 100644 index 617f437182..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/comp/return.comp +++ /dev/null @@ -1,33 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(std430, binding = 1) writeonly buffer SSBO2 -{ - vec4 out_data[]; -}; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - - if (ident == 2u) - { - out_data[ident] = vec4(20.0); - } - else if (ident == 4u) - { - out_data[ident] = vec4(10.0); - return; - } - - for (int i = 0; i < 20; i++) - { - if (i == 10) - break; - - return; - } - - out_data[ident] = vec4(10.0); -} - diff --git a/third_party/spirv-cross/shaders-no-opt/comp/shader_ballot_nonuniform_invocations.invalid.comp b/third_party/spirv-cross/shaders-no-opt/comp/shader_ballot_nonuniform_invocations.invalid.comp deleted file mode 100644 index afcc31d99e..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/comp/shader_ballot_nonuniform_invocations.invalid.comp +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 -#extension GL_AMD_shader_ballot : require - -void main () -{ - float addInvocations = addInvocationsNonUniformAMD(0.0); - int minInvocations = minInvocationsNonUniformAMD(1); - uint maxInvocations = maxInvocationsNonUniformAMD(4); -} diff --git a/third_party/spirv-cross/shaders-no-opt/comp/specialization-constant-evaluation.comp b/third_party/spirv-cross/shaders-no-opt/comp/specialization-constant-evaluation.comp deleted file mode 100644 index d45d021ac5..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/comp/specialization-constant-evaluation.comp +++ /dev/null @@ -1,123 +0,0 @@ -#version 450 - -layout(local_size_x = 1) in; - -layout(constant_id = 0) const bool TRUE = true; -layout(constant_id = 1) const bool FALSE = false; -layout(constant_id = 2) const int SONE = 1; -layout(constant_id = 3) const int STWO = 2; -layout(constant_id = 4) const int SNEG_TWO = -2; -layout(constant_id = 5) const uint UONE = 1; -layout(constant_id = 6) const uint UTWO = 2; -layout(constant_id = 7) const int SNEG_THREE = -3; - -const uint IADD = SONE + STWO + UONE + UTWO; // 6 -const uint ISUB = UTWO - SONE; // 1 -const uint IMUL = UTWO * UTWO; // 4 -const uint UDIV = UTWO / UTWO; // 1 -const int SDIV = STWO / SNEG_TWO; // -1 -//const int SREM = STWO % SNEG_THREE; // 1 -const int SREM = 1; -const int SMOD = STWO % SNEG_THREE; // -1 -const uint UMOD = IADD % IMUL; // 2 - -const uint LSHL = IADD << ISUB; // 12 -const uint RSHL = IADD >> ISUB; // 3 -const int RSHA = (-int(IADD)) >> (-SDIV); // -3 - -const bool IEQ = IADD == ISUB; // false -const bool INEQ = IADD != ISUB; // true -const bool ULT = IADD < ISUB; // false -const bool ULE = IADD <= ISUB; // false -const bool UGT = IADD > ISUB; // true -const bool UGE = IADD >= ISUB; // true - -const bool SLT = SMOD < SREM; // true -const bool SLE = SMOD <= SREM; // true -const bool SGT = SMOD > SREM; // false -const bool SGE = SMOD >= SREM; // false - -const bool LOR = IEQ || SLT; // true -const bool LAND = IEQ && SLT; // false -const bool LNOT = !LOR; // false - -const uint AND = IADD & IADD; // 6 -const uint OR = IADD | ISUB; // 7 -const uint XOR = IADD ^ IADD; // 0 -const uint NOT = ~XOR; // UINT_MAX - -const bool LEQ = LAND == LNOT; // true -const bool LNEQ = LAND != LNOT; // false - -const uint SEL = IEQ ? IADD : ISUB; // 1 - -#define DUMMY_SSBO(name, bind, size) layout(std430, set = 0, binding = bind) buffer SSBO_##name { float val[size]; float dummy; } name - -// Normalize all sizes to 1 element so that the default offsets in glslang matches up with what we should be computing. -// If we do it right, we should get no layout(offset = N) expressions. -DUMMY_SSBO(IAdd, 0, IADD - 5); -DUMMY_SSBO(ISub, 1, ISUB); -DUMMY_SSBO(IMul, 2, IMUL - 3); -DUMMY_SSBO(UDiv, 3, UDIV); -DUMMY_SSBO(SDiv, 4, SDIV + 2); -DUMMY_SSBO(SRem, 5, SREM); -DUMMY_SSBO(SMod, 6, SMOD + 2); -DUMMY_SSBO(UMod, 7, UMOD - 1); -DUMMY_SSBO(LShl, 8, LSHL - 11); -DUMMY_SSBO(RShl, 9, RSHL - 2); -DUMMY_SSBO(RSha, 10, RSHA + 4); -DUMMY_SSBO(IEq, 11, IEQ ? 2 : 1); -DUMMY_SSBO(INeq, 12, INEQ ? 1 : 2); -DUMMY_SSBO(Ult, 13, ULT ? 2 : 1); -DUMMY_SSBO(Ule, 14, ULE ? 2 : 1); -DUMMY_SSBO(Ugt, 15, UGT ? 1 : 2); -DUMMY_SSBO(Uge, 16, UGE ? 1 : 2); -DUMMY_SSBO(Slt, 17, SLT ? 1 : 2); -DUMMY_SSBO(Sle, 18, SLE ? 1 : 2); -DUMMY_SSBO(Sgt, 19, SGT ? 2 : 1); -DUMMY_SSBO(Sge, 20, SGE ? 2 : 1); -DUMMY_SSBO(Lor, 21, LOR ? 1 : 2); -DUMMY_SSBO(Land, 22, LAND ? 2 : 1); -DUMMY_SSBO(Lnot, 23, LNOT ? 2 : 1); -DUMMY_SSBO(And, 24, AND - 5); -DUMMY_SSBO(Or, 24, OR - 6); -DUMMY_SSBO(Xor, 24, XOR + 1); -DUMMY_SSBO(Not, 25, NOT - 0xfffffffeu); -DUMMY_SSBO(Leq, 26, LEQ ? 1 : 2); -DUMMY_SSBO(Lneq, 27, LNEQ ? 2 : 1); -DUMMY_SSBO(Sel, 28, SEL); - -void main() -{ - IAdd.val[0] = 0.0; - ISub.val[0] = 0.0; - IMul.val[0] = 0.0; - UDiv.val[0] = 0.0; - SDiv.val[0] = 0.0; - SRem.val[0] = 0.0; - SMod.val[0] = 0.0; - UMod.val[0] = 0.0; - LShl.val[0] = 0.0; - RShl.val[0] = 0.0; - RSha.val[0] = 0.0; - IEq.val[0] = 0.0; - INeq.val[0] = 0.0; - Ult.val[0] = 0.0; - Ule.val[0] = 0.0; - Ugt.val[0] = 0.0; - Uge.val[0] = 0.0; - Slt.val[0] = 0.0; - Sle.val[0] = 0.0; - Sgt.val[0] = 0.0; - Sge.val[0] = 0.0; - Lor.val[0] = 0.0; - Land.val[0] = 0.0; - Lnot.val[0] = 0.0; - And.val[0] = 0.0; - Or.val[0] = 0.0; - Xor.val[0] = 0.0; - Not.val[0] = 0.0; - Leq.val[0] = 0.0; - Lneq.val[0] = 0.0; - Sel.val[0] = 0.0; -} diff --git a/third_party/spirv-cross/shaders-no-opt/comp/struct-packing-scalar.nocompat.invalid.vk.comp b/third_party/spirv-cross/shaders-no-opt/comp/struct-packing-scalar.nocompat.invalid.vk.comp deleted file mode 100644 index 808403d963..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/comp/struct-packing-scalar.nocompat.invalid.vk.comp +++ /dev/null @@ -1,88 +0,0 @@ -#version 310 es -#extension GL_EXT_scalar_block_layout : require - -layout(local_size_x = 1) in; - -struct S0 -{ - vec2 a[1]; - float b; -}; - -struct S1 -{ - vec3 a; - float b; -}; - -struct S2 -{ - vec3 a[1]; - float b; -}; - -struct S3 -{ - vec2 a; - float b; -}; - -struct S4 -{ - vec2 c; -}; - -struct Content -{ - S0 m0s[1]; - S1 m1s[1]; - S2 m2s[1]; - S0 m0; - S1 m1; - S2 m2; - S3 m3; - float m4; - - S4 m3s[8]; -}; - -layout(binding = 1, scalar) restrict buffer SSBO1 -{ - Content content; - Content content1[2]; - Content content2; - - layout(column_major) mat2 m0; - layout(column_major) mat2 m1; - layout(column_major) mat2x3 m2[4]; - layout(column_major) mat3x2 m3; - layout(row_major) mat2 m4; - layout(row_major) mat2 m5[9]; - layout(row_major) mat2x3 m6[4][2]; - layout(row_major) mat3x2 m7; - float array[]; -} ssbo_430; - -layout(binding = 0, std140) restrict buffer SSBO0 -{ - Content content; - Content content1[2]; - Content content2; - - layout(column_major) mat2 m0; - layout(column_major) mat2 m1; - layout(column_major) mat2x3 m2[4]; - layout(column_major) mat3x2 m3; - layout(row_major) mat2 m4; - layout(row_major) mat2 m5[9]; - layout(row_major) mat2x3 m6[4][2]; - layout(row_major) mat3x2 m7; - - float array[]; -} ssbo_140; - -void main() -{ - ssbo_430.content = ssbo_140.content; -} - diff --git a/third_party/spirv-cross/shaders-no-opt/comp/subgroups.nocompat.invalid.vk.comp b/third_party/spirv-cross/shaders-no-opt/comp/subgroups.nocompat.invalid.vk.comp deleted file mode 100644 index a73a231259..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/comp/subgroups.nocompat.invalid.vk.comp +++ /dev/null @@ -1,132 +0,0 @@ -#version 450 -#extension GL_KHR_shader_subgroup_basic : require -#extension GL_KHR_shader_subgroup_ballot : require -#extension GL_KHR_shader_subgroup_vote : require -#extension GL_KHR_shader_subgroup_shuffle : require -#extension GL_KHR_shader_subgroup_shuffle_relative : require -#extension GL_KHR_shader_subgroup_arithmetic : require -#extension GL_KHR_shader_subgroup_clustered : require -#extension GL_KHR_shader_subgroup_quad : require -layout(local_size_x = 1) in; - -layout(std430, binding = 0) buffer SSBO -{ - float FragColor; -}; - -void main() -{ - // basic - FragColor = float(gl_NumSubgroups); - FragColor = float(gl_SubgroupID); - FragColor = float(gl_SubgroupSize); - FragColor = float(gl_SubgroupInvocationID); - subgroupBarrier(); - subgroupMemoryBarrier(); - subgroupMemoryBarrierBuffer(); - subgroupMemoryBarrierShared(); - subgroupMemoryBarrierImage(); - bool elected = subgroupElect(); - - // ballot - FragColor = float(gl_SubgroupEqMask); - FragColor = float(gl_SubgroupGeMask); - FragColor = float(gl_SubgroupGtMask); - FragColor = float(gl_SubgroupLeMask); - FragColor = float(gl_SubgroupLtMask); - vec4 broadcasted = subgroupBroadcast(vec4(10.0), 8u); - vec3 first = subgroupBroadcastFirst(vec3(20.0)); - uvec4 ballot_value = subgroupBallot(true); - bool inverse_ballot_value = subgroupInverseBallot(ballot_value); - bool bit_extracted = subgroupBallotBitExtract(uvec4(10u), 8u); - uint bit_count = subgroupBallotBitCount(ballot_value); - uint inclusive_bit_count = subgroupBallotInclusiveBitCount(ballot_value); - uint exclusive_bit_count = subgroupBallotExclusiveBitCount(ballot_value); - uint lsb = subgroupBallotFindLSB(ballot_value); - uint msb = subgroupBallotFindMSB(ballot_value); - - // shuffle - uint shuffled = subgroupShuffle(10u, 8u); - uint shuffled_xor = subgroupShuffleXor(30u, 8u); - - // shuffle relative - uint shuffled_up = subgroupShuffleUp(20u, 4u); - uint shuffled_down = subgroupShuffleDown(20u, 4u); - - // vote - bool has_all = subgroupAll(true); - bool has_any = subgroupAny(true); - bool has_equal = subgroupAllEqual(true); - - // arithmetic - vec4 added = subgroupAdd(vec4(20.0)); - ivec4 iadded = subgroupAdd(ivec4(20)); - vec4 multiplied = subgroupMul(vec4(20.0)); - ivec4 imultiplied = subgroupMul(ivec4(20)); - vec4 lo = subgroupMin(vec4(20.0)); - vec4 hi = subgroupMax(vec4(20.0)); - ivec4 slo = subgroupMin(ivec4(20)); - ivec4 shi = subgroupMax(ivec4(20)); - uvec4 ulo = subgroupMin(uvec4(20)); - uvec4 uhi = subgroupMax(uvec4(20)); - uvec4 anded = subgroupAnd(ballot_value); - uvec4 ored = subgroupOr(ballot_value); - uvec4 xored = subgroupXor(ballot_value); - bvec4 anded_b = subgroupAnd(equal(ballot_value, uvec4(42))); - bvec4 ored_b = subgroupOr(equal(ballot_value, uvec4(42))); - bvec4 xored_b = subgroupXor(equal(ballot_value, uvec4(42))); - - added = subgroupInclusiveAdd(added); - iadded = subgroupInclusiveAdd(iadded); - multiplied = subgroupInclusiveMul(multiplied); - imultiplied = subgroupInclusiveMul(imultiplied); - lo = subgroupInclusiveMin(lo); - hi = subgroupInclusiveMax(hi); - slo = subgroupInclusiveMin(slo); - shi = subgroupInclusiveMax(shi); - ulo = subgroupInclusiveMin(ulo); - uhi = subgroupInclusiveMax(uhi); - anded = subgroupInclusiveAnd(anded); - ored = subgroupInclusiveOr(ored); - xored = subgroupInclusiveXor(ored); - added = subgroupExclusiveAdd(lo); - - added = subgroupExclusiveAdd(multiplied); - multiplied = subgroupExclusiveMul(multiplied); - iadded = subgroupExclusiveAdd(imultiplied); - imultiplied = subgroupExclusiveMul(imultiplied); - lo = subgroupExclusiveMin(lo); - hi = subgroupExclusiveMax(hi); - ulo = subgroupExclusiveMin(ulo); - uhi = subgroupExclusiveMax(uhi); - slo = subgroupExclusiveMin(slo); - shi = subgroupExclusiveMax(shi); - anded = subgroupExclusiveAnd(anded); - ored = subgroupExclusiveOr(ored); - xored = subgroupExclusiveXor(ored); - - // clustered - added = subgroupClusteredAdd(added, 4u); - multiplied = subgroupClusteredMul(multiplied, 4u); - iadded = subgroupClusteredAdd(iadded, 4u); - imultiplied = subgroupClusteredMul(imultiplied, 4u); - lo = subgroupClusteredMin(lo, 4u); - hi = subgroupClusteredMax(hi, 4u); - ulo = subgroupClusteredMin(ulo, 4u); - uhi = subgroupClusteredMax(uhi, 4u); - slo = subgroupClusteredMin(slo, 4u); - shi = subgroupClusteredMax(shi, 4u); - anded = subgroupClusteredAnd(anded, 4u); - ored = subgroupClusteredOr(ored, 4u); - xored = subgroupClusteredXor(xored, 4u); - - anded_b = subgroupClusteredAnd(equal(anded, uvec4(2u)), 4u); - ored_b = subgroupClusteredOr(equal(ored, uvec4(3u)), 4u); - xored_b = subgroupClusteredXor(equal(xored, uvec4(4u)), 4u); - - // quad - vec4 swap_horiz = subgroupQuadSwapHorizontal(vec4(20.0)); - vec4 swap_vertical = subgroupQuadSwapVertical(vec4(20.0)); - vec4 swap_diagonal = subgroupQuadSwapDiagonal(vec4(20.0)); - vec4 quad_broadcast = subgroupQuadBroadcast(vec4(20.0), 3u); -} diff --git a/third_party/spirv-cross/shaders-no-opt/comp/subgroups_basicvoteballot.vk.comp b/third_party/spirv-cross/shaders-no-opt/comp/subgroups_basicvoteballot.vk.comp deleted file mode 100644 index 833f43079b..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/comp/subgroups_basicvoteballot.vk.comp +++ /dev/null @@ -1,49 +0,0 @@ -#version 450 -#extension GL_KHR_shader_subgroup_basic : require -#extension GL_KHR_shader_subgroup_ballot : require -#extension GL_KHR_shader_subgroup_vote : require - -layout(local_size_x = 1) in; - -layout(std430, binding = 0) buffer SSBO -{ - float FragColor; -}; - -void main() -{ - // basic - FragColor = float(gl_NumSubgroups); - FragColor = float(gl_SubgroupID); - FragColor = float(gl_SubgroupSize); - FragColor = float(gl_SubgroupInvocationID); - subgroupBarrier(); - subgroupMemoryBarrier(); - subgroupMemoryBarrierBuffer(); - subgroupMemoryBarrierShared(); - subgroupMemoryBarrierImage(); - bool elected = subgroupElect(); - - // ballot - FragColor = float(gl_SubgroupEqMask); - FragColor = float(gl_SubgroupGeMask); - FragColor = float(gl_SubgroupGtMask); - FragColor = float(gl_SubgroupLeMask); - FragColor = float(gl_SubgroupLtMask); - vec4 broadcasted = subgroupBroadcast(vec4(10.0), 8u); - vec3 first = subgroupBroadcastFirst(vec3(20.0)); - uvec4 ballot_value = subgroupBallot(true); - bool inverse_ballot_value = subgroupInverseBallot(ballot_value); - bool bit_extracted = subgroupBallotBitExtract(uvec4(10u), 8u); - uint bit_count = subgroupBallotBitCount(ballot_value); - uint inclusive_bit_count = subgroupBallotInclusiveBitCount(ballot_value); - uint exclusive_bit_count = subgroupBallotExclusiveBitCount(ballot_value); - uint lsb = subgroupBallotFindLSB(ballot_value); - uint msb = subgroupBallotFindMSB(ballot_value); - - // vote - bool has_all = subgroupAll(true); - bool has_any = subgroupAny(true); - bool has_equal_bool = subgroupAllEqual(true); - bool has_equal_T = subgroupAllEqual(uvec3(5u)); -} \ No newline at end of file diff --git a/third_party/spirv-cross/shaders-no-opt/frag/16bit-constants.invalid.frag b/third_party/spirv-cross/shaders-no-opt/frag/16bit-constants.invalid.frag deleted file mode 100644 index c53091b5b9..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/frag/16bit-constants.invalid.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 core - -#extension GL_AMD_gpu_shader_int16 : require -#extension GL_AMD_gpu_shader_half_float : require - -layout(location = 0) out float16_t foo; -layout(location = 1) out int16_t bar; -layout(location = 2) out uint16_t baz; - -void main() { - foo = 1.0hf; - bar = 2s; - baz = 3us; -} diff --git a/third_party/spirv-cross/shaders-no-opt/frag/fp16.invalid.desktop.frag b/third_party/spirv-cross/shaders-no-opt/frag/fp16.invalid.desktop.frag deleted file mode 100644 index f3517a92f8..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/frag/fp16.invalid.desktop.frag +++ /dev/null @@ -1,151 +0,0 @@ -#version 450 -#extension GL_AMD_gpu_shader_half_float : require - -layout(location = 0) in float16_t v1; -layout(location = 1) in f16vec2 v2; -layout(location = 2) in f16vec3 v3; -layout(location = 3) in f16vec4 v4; - -layout(location = 0) out float o1; -layout(location = 1) out vec2 o2; -layout(location = 2) out vec3 o3; -layout(location = 3) out vec4 o4; - -f16mat2 test_mat2(f16vec2 a, f16vec2 b, f16vec2 c, f16vec2 d) -{ - return f16mat2(a, b) * f16mat2(c, d); -} - -f16mat3 test_mat3(f16vec3 a, f16vec3 b, f16vec3 c, f16vec3 d, f16vec3 e, f16vec3 f) -{ - return f16mat3(a, b, c) * f16mat3(d, e, f); -} - -void test_constants() -{ - float16_t a = 1.0hf; - float16_t b = 1.5hf; - float16_t c = -1.5hf; // Negatives - float16_t d = (0.0hf / 0.0hf); // NaN - float16_t e = (1.0hf / 0.0hf); // +Inf - float16_t f = (-1.0hf / 0.0hf); // -Inf - float16_t g = 1014.0hf; // Large. - float16_t h = 0.000001hf; // Denormal -} - -float16_t test_result() -{ - return 1.0hf; -} - -void test_conversions() -{ - float16_t one = test_result(); - int a = int(one); - uint b = uint(one); - bool c = bool(one); - float d = float(one); - double e = double(one); - float16_t a2 = float16_t(a); - float16_t b2 = float16_t(b); - float16_t c2 = float16_t(c); - float16_t d2 = float16_t(d); - float16_t e2 = float16_t(e); -} - -void test_builtins() -{ - f16vec4 res; - res = radians(v4); - res = degrees(v4); - res = sin(v4); - res = cos(v4); - res = tan(v4); - res = asin(v4); - res = atan(v4, v3.xyzz); - res = atan(v4); - res = sinh(v4); - res = cosh(v4); - res = tanh(v4); - res = asinh(v4); - res = acosh(v4); - res = atanh(v4); - res = pow(v4, v4); - res = exp(v4); - res = log(v4); - res = exp2(v4); - res = log2(v4); - res = sqrt(v4); - res = inversesqrt(v4); - res = abs(v4); - res = sign(v4); - res = floor(v4); - res = trunc(v4); - res = round(v4); - res = roundEven(v4); - res = ceil(v4); - res = fract(v4); - res = mod(v4, v4); - f16vec4 tmp; - res = modf(v4, tmp); - res = min(v4, v4); - res = max(v4, v4); - res = clamp(v4, v4, v4); - res = mix(v4, v4, v4); - res = mix(v4, v4, lessThan(v4, v4)); - res = step(v4, v4); - res = smoothstep(v4, v4, v4); - - bvec4 btmp = isnan(v4); - btmp = isinf(v4); - res = fma(v4, v4, v4); - - ivec4 itmp; - res = frexp(v4, itmp); - res = ldexp(res, itmp); - - uint pack0 = packFloat2x16(v4.xy); - uint pack1 = packFloat2x16(v4.zw); - res = f16vec4(unpackFloat2x16(pack0), unpackFloat2x16(pack1)); - - float16_t t0 = length(v4); - t0 = distance(v4, v4); - t0 = dot(v4, v4); - f16vec3 res3 = cross(v3, v3); - res = normalize(v4); - res = faceforward(v4, v4, v4); - res = reflect(v4, v4); - res = refract(v4, v4, v1); - - btmp = lessThan(v4, v4); - btmp = lessThanEqual(v4, v4); - btmp = greaterThan(v4, v4); - btmp = greaterThanEqual(v4, v4); - btmp = equal(v4, v4); - btmp = notEqual(v4, v4); - - res = dFdx(v4); - res = dFdy(v4); - res = dFdxFine(v4); - res = dFdyFine(v4); - res = dFdxCoarse(v4); - res = dFdyCoarse(v4); - res = fwidth(v4); - res = fwidthFine(v4); - res = fwidthCoarse(v4); - - //res = interpolateAtCentroid(v4); - //res = interpolateAtSample(v4, 0); - //res = interpolateAtOffset(v4, f16vec2(0.1hf)); -} - -void main() -{ - // Basic matrix tests. - f16mat2 m0 = test_mat2(v2, v2, v3.xy, v3.xy); - f16mat3 m1 = test_mat3(v3, v3, v3, v4.xyz, v4.xyz, v4.yzw); - - test_constants(); - test_conversions(); - test_builtins(); -} diff --git a/third_party/spirv-cross/shaders-no-opt/frag/frag-fully-covered.frag b/third_party/spirv-cross/shaders-no-opt/frag/frag-fully-covered.frag deleted file mode 100644 index 95cc4fc975..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/frag/frag-fully-covered.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 -#extension GL_NV_conservative_raster_underestimation : require - -layout(location = 0) out vec4 FragColor; - -void main() -{ - if (!gl_FragFullyCoveredNV) - discard; - FragColor = vec4(1.0); -} diff --git a/third_party/spirv-cross/shaders-no-opt/frag/fragmentMaskFetch_subpassInput.vk.nocompat.invalid.frag b/third_party/spirv-cross/shaders-no-opt/frag/fragmentMaskFetch_subpassInput.vk.nocompat.invalid.frag deleted file mode 100644 index a3f03664ca..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/frag/fragmentMaskFetch_subpassInput.vk.nocompat.invalid.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 -#extension GL_AMD_shader_fragment_mask : require - -layout(input_attachment_index = 0, binding = 0) uniform subpassInputMS t; - -void main () -{ - vec4 test2 = fragmentFetchAMD(t, 4); - uint testi2 = fragmentMaskFetchAMD(t); -} diff --git a/third_party/spirv-cross/shaders-no-opt/frag/fs.invalid.frag b/third_party/spirv-cross/shaders-no-opt/frag/fs.invalid.frag deleted file mode 100644 index 1ff82de06e..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/frag/fs.invalid.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 -#extension GL_AMD_shader_fragment_mask : require -#extension GL_AMD_shader_explicit_vertex_parameter : require - -layout(binding = 0) uniform sampler2DMS texture1; -layout(location = 0) __explicitInterpAMD in vec4 vary; - -void main() -{ - uint testi1 = fragmentMaskFetchAMD(texture1, ivec2(0)); - vec4 test1 = fragmentFetchAMD(texture1, ivec2(1), 2); - - vec4 pos = interpolateAtVertexAMD(vary, 0u); -} diff --git a/third_party/spirv-cross/shaders-no-opt/frag/image-gather.frag b/third_party/spirv-cross/shaders-no-opt/frag/image-gather.frag deleted file mode 100644 index b492cfbe90..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/frag/image-gather.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; - -layout(set = 0, binding = 0) uniform sampler2D uSamp; -layout(set = 0, binding = 1) uniform sampler2DShadow uSampShadow; -layout(location = 0) in vec3 vUV; - -void main() -{ - FragColor = textureGather(uSamp, vUV.xy, 0); - FragColor += textureGather(uSamp, vUV.xy, 1); - FragColor += textureGather(uSampShadow, vUV.xy, vUV.z); -} diff --git a/third_party/spirv-cross/shaders-no-opt/frag/multi-dimensional.desktop.invalid.flatten_dim.frag b/third_party/spirv-cross/shaders-no-opt/frag/multi-dimensional.desktop.invalid.flatten_dim.frag deleted file mode 100644 index 24b2ff1d2a..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/frag/multi-dimensional.desktop.invalid.flatten_dim.frag +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; -layout(binding = 0) uniform sampler2D uTextures[2][3][1]; -layout(location = 0) flat in int vIndex; -layout(location = 1) in vec2 vUV; - -void main() -{ - vec4 values3[2][3][1]; - - for (int z = 0; z < 2; z++) - for (int y = 0; y < 3; y++) - for (int x = 0; x < 1; x++) - values3[z][y][x] = texture(uTextures[z][y][x], vUV); - - FragColor = values3[1][2][0] + values3[0][2][0] + values3[vIndex + 1][2][vIndex]; -} diff --git a/third_party/spirv-cross/shaders-no-opt/frag/nonuniform-constructor.vk.nocompat.frag b/third_party/spirv-cross/shaders-no-opt/frag/nonuniform-constructor.vk.nocompat.frag deleted file mode 100644 index 452aa953a4..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/frag/nonuniform-constructor.vk.nocompat.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 -#extension GL_EXT_nonuniform_qualifier : require - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec2 vUV; -layout(location = 1) flat in int vIndex; - -layout(set = 0, binding = 0) uniform texture2D uTex[]; -layout(set = 1, binding = 0) uniform sampler Immut; - -void main() -{ - FragColor = texture(nonuniformEXT(sampler2D(uTex[vIndex], Immut)), vUV); -} diff --git a/third_party/spirv-cross/shaders-no-opt/frag/pixel-interlock-simple-callstack.frag b/third_party/spirv-cross/shaders-no-opt/frag/pixel-interlock-simple-callstack.frag deleted file mode 100644 index 59079fe58b..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/frag/pixel-interlock-simple-callstack.frag +++ /dev/null @@ -1,31 +0,0 @@ -#version 450 -#extension GL_ARB_fragment_shader_interlock : require -layout(pixel_interlock_ordered) in; - -layout(set = 0, binding = 0, std430) buffer SSBO0 -{ - uint values0[]; -}; - -layout(set = 0, binding = 1, std430) buffer SSBO1 -{ - uint values1[]; -}; - -void callee2() -{ - values1[int(gl_FragCoord.x)] += 1; -} - -void callee() -{ - values0[int(gl_FragCoord.x)] += 1; - callee2(); -} - -void main() -{ - beginInvocationInterlockARB(); - callee(); - endInvocationInterlockARB(); -} diff --git a/third_party/spirv-cross/shaders-no-opt/frag/scalar-block-layout-ubo-std430.vk.nocompat.invalid.frag b/third_party/spirv-cross/shaders-no-opt/frag/scalar-block-layout-ubo-std430.vk.nocompat.invalid.frag deleted file mode 100644 index faa20fa658..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/frag/scalar-block-layout-ubo-std430.vk.nocompat.invalid.frag +++ /dev/null @@ -1,23 +0,0 @@ -#version 450 -#extension GL_EXT_scalar_block_layout : require - -layout(std430, binding = 0) uniform UBO -{ - float a[1024]; - vec3 b[2]; -}; - -layout(std430, binding = 1) uniform UBOEnhancedLayout -{ - float c[1024]; - vec3 d[2]; - layout(offset = 10000) float e; -}; - -layout(location = 0) flat in int vIndex; -layout(location = 0) out float FragColor; - -void main() -{ - FragColor = a[vIndex] + c[vIndex] + e; -} diff --git a/third_party/spirv-cross/shaders-no-opt/frag/sparse-texture-clamp.desktop.frag b/third_party/spirv-cross/shaders-no-opt/frag/sparse-texture-clamp.desktop.frag deleted file mode 100644 index 880e67e5de..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/frag/sparse-texture-clamp.desktop.frag +++ /dev/null @@ -1,23 +0,0 @@ -#version 450 -#extension GL_ARB_sparse_texture2 : require -#extension GL_ARB_sparse_texture_clamp : require - -layout(set = 0, binding = 0) uniform sampler2D uSamp; -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec2 vUV; - -void main() -{ - vec4 texel; - int code; - - code = sparseTextureClampARB(uSamp, vUV, 1.0, texel, 2.0); - texel = textureClampARB(uSamp, vUV, 1.0, 2.0); - code = sparseTextureOffsetClampARB(uSamp, vUV, ivec2(1, 2), 1.0, texel, 2.0); - texel = textureOffsetClampARB(uSamp, vUV, ivec2(1, 2), 1.0, 2.0); - code = sparseTextureGradClampARB(uSamp, vUV, vec2(1.0), vec2(2.0), 1.0, texel); - texel = textureGradClampARB(uSamp, vUV, vec2(1.0), vec2(2.0), 1.0); - code = sparseTextureGradOffsetClampARB(uSamp, vUV, vec2(1.0), vec2(2.0), ivec2(-1, -2), 1.0, texel); - texel = textureGradOffsetClampARB(uSamp, vUV, vec2(1.0), vec2(2.0), ivec2(-1, -2), 1.0); -} - diff --git a/third_party/spirv-cross/shaders-no-opt/frag/sparse-texture-feedback.desktop.frag b/third_party/spirv-cross/shaders-no-opt/frag/sparse-texture-feedback.desktop.frag deleted file mode 100644 index 67cc5b42a9..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/frag/sparse-texture-feedback.desktop.frag +++ /dev/null @@ -1,31 +0,0 @@ -#version 450 -#extension GL_ARB_sparse_texture2 : require -#extension GL_ARB_sparse_texture_clamp : require - -layout(set = 0, binding = 0) uniform sampler2D uSamp; -layout(set = 0, binding = 1) uniform sampler2DMS uSampMS; -layout(set = 0, binding = 2, rgba8) uniform image2D uImage; -layout(set = 0, binding = 3, rgba8) uniform image2DMS uImageMS; -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec2 vUV; - -void main() -{ - vec4 texel; - bool ret; - - ret = sparseTexelsResidentARB(sparseTextureARB(uSamp, vUV, texel)); - ret = sparseTexelsResidentARB(sparseTextureARB(uSamp, vUV, texel, 1.1)); - ret = sparseTexelsResidentARB(sparseTextureLodARB(uSamp, vUV, 1.0, texel)); - ret = sparseTexelsResidentARB(sparseTextureOffsetARB(uSamp, vUV, ivec2(1, 1), texel)); - ret = sparseTexelsResidentARB(sparseTextureOffsetARB(uSamp, vUV, ivec2(2, 2), texel, 0.5)); - ret = sparseTexelsResidentARB(sparseTexelFetchARB(uSamp, ivec2(vUV), 1, texel)); - ret = sparseTexelsResidentARB(sparseTexelFetchARB(uSampMS, ivec2(vUV), 2, texel)); - ret = sparseTexelsResidentARB(sparseTexelFetchOffsetARB(uSamp, ivec2(vUV), 1, ivec2(2, 3), texel)); - ret = sparseTexelsResidentARB(sparseTextureLodOffsetARB(uSamp, vUV, 1.5, ivec2(2, 3), texel)); - ret = sparseTexelsResidentARB(sparseTextureGradARB(uSamp, vUV, vec2(1.0), vec2(3.0), texel)); - ret = sparseTexelsResidentARB(sparseTextureGradOffsetARB(uSamp, vUV, vec2(1.0), vec2(3.0), ivec2(-2, -3), texel)); - ret = sparseTexelsResidentARB(sparseTextureClampARB(uSamp, vUV, 4.0, texel)); - ret = sparseTexelsResidentARB(sparseImageLoadARB(uImage, ivec2(vUV), texel)); - ret = sparseTexelsResidentARB(sparseImageLoadARB(uImageMS, ivec2(vUV), 1, texel)); -} diff --git a/third_party/spirv-cross/shaders-no-opt/frag/subpass-input.framebuffer-fetch.nocompat.frag b/third_party/spirv-cross/shaders-no-opt/frag/subpass-input.framebuffer-fetch.nocompat.frag deleted file mode 100644 index 621457a14a..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/frag/subpass-input.framebuffer-fetch.nocompat.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 310 es -precision mediump float; - -layout(input_attachment_index = 0, set = 0, binding = 0) uniform mediump subpassInput uSubpass0; -layout(input_attachment_index = 1, set = 0, binding = 1) uniform mediump subpassInput uSubpass1; -layout(location = 0) out vec3 FragColor; -layout(location = 1) out vec4 FragColor2; - -void main() -{ - FragColor.rgb = subpassLoad(uSubpass0).rgb + subpassLoad(uSubpass1).rgb; -} diff --git a/third_party/spirv-cross/shaders-no-opt/frag/subpass-input.framebuffer-fetch.nocompat.framebuffer-fetch-noncoherent.frag b/third_party/spirv-cross/shaders-no-opt/frag/subpass-input.framebuffer-fetch.nocompat.framebuffer-fetch-noncoherent.frag deleted file mode 100644 index 621457a14a..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/frag/subpass-input.framebuffer-fetch.nocompat.framebuffer-fetch-noncoherent.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 310 es -precision mediump float; - -layout(input_attachment_index = 0, set = 0, binding = 0) uniform mediump subpassInput uSubpass0; -layout(input_attachment_index = 1, set = 0, binding = 1) uniform mediump subpassInput uSubpass1; -layout(location = 0) out vec3 FragColor; -layout(location = 1) out vec4 FragColor2; - -void main() -{ - FragColor.rgb = subpassLoad(uSubpass0).rgb + subpassLoad(uSubpass1).rgb; -} diff --git a/third_party/spirv-cross/shaders-no-opt/frag/subpass-input.framebuffer-fetch.nocompat.legacy.frag b/third_party/spirv-cross/shaders-no-opt/frag/subpass-input.framebuffer-fetch.nocompat.legacy.frag deleted file mode 100644 index 621457a14a..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/frag/subpass-input.framebuffer-fetch.nocompat.legacy.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 310 es -precision mediump float; - -layout(input_attachment_index = 0, set = 0, binding = 0) uniform mediump subpassInput uSubpass0; -layout(input_attachment_index = 1, set = 0, binding = 1) uniform mediump subpassInput uSubpass1; -layout(location = 0) out vec3 FragColor; -layout(location = 1) out vec4 FragColor2; - -void main() -{ - FragColor.rgb = subpassLoad(uSubpass0).rgb + subpassLoad(uSubpass1).rgb; -} diff --git a/third_party/spirv-cross/shaders-no-opt/frag/subpass-input.framebuffer-fetch.nocompat.legacy.framebuffer-fetch-noncoherent.frag b/third_party/spirv-cross/shaders-no-opt/frag/subpass-input.framebuffer-fetch.nocompat.legacy.framebuffer-fetch-noncoherent.frag deleted file mode 100644 index 621457a14a..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/frag/subpass-input.framebuffer-fetch.nocompat.legacy.framebuffer-fetch-noncoherent.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 310 es -precision mediump float; - -layout(input_attachment_index = 0, set = 0, binding = 0) uniform mediump subpassInput uSubpass0; -layout(input_attachment_index = 1, set = 0, binding = 1) uniform mediump subpassInput uSubpass1; -layout(location = 0) out vec3 FragColor; -layout(location = 1) out vec4 FragColor2; - -void main() -{ - FragColor.rgb = subpassLoad(uSubpass0).rgb + subpassLoad(uSubpass1).rgb; -} diff --git a/third_party/spirv-cross/shaders-no-opt/frag/variables.zero-initialize.frag b/third_party/spirv-cross/shaders-no-opt/frag/variables.zero-initialize.frag deleted file mode 100644 index 41da8001f4..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/frag/variables.zero-initialize.frag +++ /dev/null @@ -1,21 +0,0 @@ -#version 450 - -layout(location = 0) in vec4 vColor; -layout(location = 0) out vec4 FragColor; - -int uninit_int; -ivec4 uninit_vector; -mat4 uninit_matrix; - -struct Foo { int a; }; -Foo uninit_foo; - -void main() -{ - int uninit_function_int; - if (vColor.x > 10.0) - uninit_function_int = 10; - else - uninit_function_int = 20; - FragColor = vColor; -} diff --git a/third_party/spirv-cross/shaders-no-opt/legacy/frag/switch-single-case-multiple-exit-cfg.legacy.asm.frag b/third_party/spirv-cross/shaders-no-opt/legacy/frag/switch-single-case-multiple-exit-cfg.legacy.asm.frag deleted file mode 100644 index d2bd15a978..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/legacy/frag/switch-single-case-multiple-exit-cfg.legacy.asm.frag +++ /dev/null @@ -1,57 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 54 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %gl_FragCoord %_GLF_color - OpExecutionMode %main OriginUpperLeft - OpSource ESSL 310 - OpName %main "main" - OpName %gl_FragCoord "gl_FragCoord" - OpName %_GLF_color "_GLF_color" - OpDecorate %gl_FragCoord BuiltIn FragCoord - OpDecorate %_GLF_color Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Input_v4float = OpTypePointer Input %v4float -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 -%_ptr_Input_float = OpTypePointer Input %float - %bool = OpTypeBool - %v2float = OpTypeVector %float 2 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %_GLF_color = OpVariable %_ptr_Output_v4float Output - %float_1 = OpConstant %float 1 - %52 = OpUndef %v2float - %main = OpFunction %void None %3 - %5 = OpLabel - OpSelectionMerge %9 None - OpSwitch %int_0 %8 - %8 = OpLabel - %17 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_0 - %18 = OpLoad %float %17 - %22 = OpFOrdNotEqual %bool %18 %18 - OpSelectionMerge %24 None - OpBranchConditional %22 %23 %24 - %23 = OpLabel - OpBranch %9 - %24 = OpLabel - %33 = OpCompositeExtract %float %52 1 - %51 = OpCompositeInsert %v2float %33 %52 1 - OpBranch %9 - %9 = OpLabel - %53 = OpPhi %v2float %52 %23 %51 %24 - %42 = OpCompositeExtract %float %53 0 - %43 = OpCompositeExtract %float %53 1 - %48 = OpCompositeConstruct %v4float %42 %43 %float_1 %float_1 - OpStore %_GLF_color %48 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-no-opt/vert/io-blocks.force-flattened-io.vert b/third_party/spirv-cross/shaders-no-opt/vert/io-blocks.force-flattened-io.vert deleted file mode 100644 index e308a9f289..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/vert/io-blocks.force-flattened-io.vert +++ /dev/null @@ -1,25 +0,0 @@ -#version 450 - -struct Foo -{ - vec4 bar[2]; - vec4 baz[2]; -}; - -layout(location = 0) out Vertex -{ - Foo foo; - Foo foo2; -}; - -layout(location = 8) out Foo foo3; - -void main() -{ - foo.bar[0] = vec4(1.0); - foo.baz[1] = vec4(2.0); - foo2.bar[0] = vec4(3.0); - foo2.baz[1] = vec4(4.0); - foo3.bar[0] = vec4(5.0); - foo3.baz[1] = vec4(6.0); -} diff --git a/third_party/spirv-cross/shaders-no-opt/vert/pass-array-by-value.vert b/third_party/spirv-cross/shaders-no-opt/vert/pass-array-by-value.vert deleted file mode 100644 index 2c142a7810..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/vert/pass-array-by-value.vert +++ /dev/null @@ -1,26 +0,0 @@ -#version 310 es - -layout(location = 0) in int Index1; -layout(location = 1) in int Index2; - -vec4 consume_constant_arrays2(const vec4 positions[4], const vec4 positions2[4]) -{ - return positions[Index1] + positions2[Index2]; -} - -vec4 consume_constant_arrays(const vec4 positions[4], const vec4 positions2[4]) -{ - return consume_constant_arrays2(positions, positions2); -} - -const vec4 LUT1[] = vec4[](vec4(0.0), vec4(1.0), vec4(2.0), vec4(3.0)); - -void main() -{ - vec4 LUT2[4]; - LUT2[0] = vec4(10.0); - LUT2[1] = vec4(11.0); - LUT2[2] = vec4(12.0); - LUT2[3] = vec4(13.0); - gl_Position = consume_constant_arrays(LUT1, LUT2); -} diff --git a/third_party/spirv-cross/shaders-no-opt/vulkan/frag/shading-rate.vk.nocompat.frag b/third_party/spirv-cross/shaders-no-opt/vulkan/frag/shading-rate.vk.nocompat.frag deleted file mode 100644 index 8aee6d3590..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/vulkan/frag/shading-rate.vk.nocompat.frag +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 -#extension GL_EXT_fragment_shading_rate : require - -layout(location = 0) out uint FragColor; - -void main() -{ - FragColor = gl_ShadingRateEXT; -} diff --git a/third_party/spirv-cross/shaders-no-opt/vulkan/frag/spec-constant.vk.frag b/third_party/spirv-cross/shaders-no-opt/vulkan/frag/spec-constant.vk.frag deleted file mode 100644 index 2002c1272e..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/vulkan/frag/spec-constant.vk.frag +++ /dev/null @@ -1,77 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) out vec4 FragColor; -layout(constant_id = 1) const float a = 1.0; -layout(constant_id = 2) const float b = 2.0; -layout(constant_id = 3) const int c = 3; -layout(constant_id = 4) const int d = 4; -layout(constant_id = 5) const uint e = 5u; -layout(constant_id = 6) const uint f = 6u; -layout(constant_id = 7) const bool g = false; -layout(constant_id = 8) const bool h = true; -// glslang doesn't seem to support partial spec constants or composites yet, so only test the basics. - -struct Foo -{ - float elems[d + 2]; -}; - -void main() -{ - float t0 = a; - float t1 = b; - - uint c0 = uint(c); // OpIAdd with different types. - // FConvert, float-to-double. - int c1 = -c; // SNegate - int c2 = ~c; // OpNot - int c3 = c + d; // OpIAdd - int c4 = c - d; // OpISub - int c5 = c * d; // OpIMul - int c6 = c / d; // OpSDiv - uint c7 = e / f; // OpUDiv - int c8 = c % d; // OpSMod - uint c9 = e % f; // OpUMod - // TODO: OpSRem, any way to access this in GLSL? - int c10 = c >> d; // OpShiftRightArithmetic - uint c11 = e >> f; // OpShiftRightLogical - int c12 = c << d; // OpShiftLeftLogical - int c13 = c | d; // OpBitwiseOr - int c14 = c ^ d; // OpBitwiseXor - int c15 = c & d; // OpBitwiseAnd - // VectorShuffle, CompositeExtract, CompositeInsert, not testable atm. - bool c16 = g || h; // OpLogicalOr - bool c17 = g && h; // OpLogicalAnd - bool c18 = !g; // OpLogicalNot - bool c19 = g == h; // OpLogicalEqual - bool c20 = g != h; // OpLogicalNotEqual - // OpSelect not testable atm. - bool c21 = c == d; // OpIEqual - bool c22 = c != d; // OpINotEqual - bool c23 = c < d; // OpSLessThan - bool c24 = e < f; // OpULessThan - bool c25 = c > d; // OpSGreaterThan - bool c26 = e > f; // OpUGreaterThan - bool c27 = c <= d; // OpSLessThanEqual - bool c28 = e <= f; // OpULessThanEqual - bool c29 = c >= d; // OpSGreaterThanEqual - bool c30 = e >= f; // OpUGreaterThanEqual - // OpQuantizeToF16 not testable atm. - - int c31 = c8 + c3; - - int c32 = int(e); // OpIAdd with different types. - bool c33 = bool(c); // int -> bool - bool c34 = bool(e); // uint -> bool - int c35 = int(g); // bool -> int - uint c36 = uint(g); // bool -> uint - float c37 = float(g); // bool -> float - - // Flexible sized arrays with spec constants and spec constant ops. - float vec0[c + 3][8]; - float vec1[c + 2]; - - Foo foo; - FragColor = vec4(t0 + t1) + vec0[0][0] + vec1[0] + foo.elems[c]; -} diff --git a/third_party/spirv-cross/shaders-no-opt/vulkan/frag/ubo-offset-out-of-order.vk.nocompat.frag b/third_party/spirv-cross/shaders-no-opt/vulkan/frag/ubo-offset-out-of-order.vk.nocompat.frag deleted file mode 100644 index 6d3987a886..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/vulkan/frag/ubo-offset-out-of-order.vk.nocompat.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; - -layout(std140, binding = 0) uniform UBO -{ - layout(offset = 16) mat4 m; - layout(offset = 0) vec4 v; -}; - -layout(location = 0) in vec4 vColor; - -void main() -{ - FragColor = m * vColor + v; -} diff --git a/third_party/spirv-cross/shaders-no-opt/vulkan/vert/primitive-shading-rate.vk.nocompat.vert b/third_party/spirv-cross/shaders-no-opt/vulkan/vert/primitive-shading-rate.vk.nocompat.vert deleted file mode 100644 index 95ac8d6445..0000000000 --- a/third_party/spirv-cross/shaders-no-opt/vulkan/vert/primitive-shading-rate.vk.nocompat.vert +++ /dev/null @@ -1,8 +0,0 @@ -#version 450 -#extension GL_EXT_fragment_shading_rate : require - -void main() -{ - gl_PrimitiveShadingRateEXT = 3; - gl_Position = vec4(1.0); -} diff --git a/third_party/spirv-cross/shaders-other/README.md b/third_party/spirv-cross/shaders-other/README.md deleted file mode 100644 index 6d454813eb..0000000000 --- a/third_party/spirv-cross/shaders-other/README.md +++ /dev/null @@ -1,4 +0,0 @@ -These shaders are not actually run yet as part of any test suite, -but are kept here because they have been used to manually test various aspects of SPIRV-Cross in the past. - -These would ideally be part of the test suite in some way. diff --git a/third_party/spirv-cross/shaders-other/aliased-entry-point-names.asm b/third_party/spirv-cross/shaders-other/aliased-entry-point-names.asm deleted file mode 100644 index d60cf3039c..0000000000 --- a/third_party/spirv-cross/shaders-other/aliased-entry-point-names.asm +++ /dev/null @@ -1,60 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 3 -; Bound: 20 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %main "main" %_ - OpEntryPoint Vertex %main2 "main2" %_ - OpEntryPoint Fragment %main3 "main" %FragColor - OpEntryPoint Fragment %main4 "main2" %FragColor - OpSource GLSL 450 - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %FragColor Location 0 - OpDecorate %gl_PerVertex Block - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %v4floatptr = OpTypePointer Output %v4float - %uint = OpTypeInt 32 0 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 -%_ptr_Output_gl_PerVertex = OpTypePointer Output %gl_PerVertex - %_ = OpVariable %_ptr_Output_gl_PerVertex Output - %FragColor = OpVariable %v4floatptr Output - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %float_1 = OpConstant %float 1 - %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 - %float_2 = OpConstant %float 2 - %18 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %main = OpFunction %void None %3 - %5 = OpLabel - %19 = OpAccessChain %_ptr_Output_v4float %_ %int_0 - OpStore %19 %17 - OpReturn - OpFunctionEnd - %main2 = OpFunction %void None %3 - %6 = OpLabel - %20 = OpAccessChain %_ptr_Output_v4float %_ %int_0 - OpStore %20 %18 - OpReturn - OpFunctionEnd - %main3 = OpFunction %void None %3 - %7 = OpLabel - OpStore %FragColor %17 - OpReturn - OpFunctionEnd - %main4 = OpFunction %void None %3 - %8 = OpLabel - OpStore %FragColor %18 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-reflection/asm/aliased-entry-point-names.asm.multi b/third_party/spirv-cross/shaders-reflection/asm/aliased-entry-point-names.asm.multi deleted file mode 100644 index 4a8e60efdb..0000000000 --- a/third_party/spirv-cross/shaders-reflection/asm/aliased-entry-point-names.asm.multi +++ /dev/null @@ -1,60 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 3 -; Bound: 20 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %main "main" %_ - OpEntryPoint Vertex %main2 "maim" %_ - OpEntryPoint Fragment %main3 "main" %FragColor - OpEntryPoint Fragment %main4 "maim" %FragColor - OpSource GLSL 450 - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %FragColor Location 0 - OpDecorate %gl_PerVertex Block - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %v4floatptr = OpTypePointer Output %v4float - %uint = OpTypeInt 32 0 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 -%_ptr_Output_gl_PerVertex = OpTypePointer Output %gl_PerVertex - %_ = OpVariable %_ptr_Output_gl_PerVertex Output - %FragColor = OpVariable %v4floatptr Output - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %float_1 = OpConstant %float 1 - %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 - %float_2 = OpConstant %float 2 - %18 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %main = OpFunction %void None %3 - %5 = OpLabel - %19 = OpAccessChain %_ptr_Output_v4float %_ %int_0 - OpStore %19 %17 - OpReturn - OpFunctionEnd - %main2 = OpFunction %void None %3 - %6 = OpLabel - %20 = OpAccessChain %_ptr_Output_v4float %_ %int_0 - OpStore %20 %18 - OpReturn - OpFunctionEnd - %main3 = OpFunction %void None %3 - %7 = OpLabel - OpStore %FragColor %17 - OpReturn - OpFunctionEnd - %main4 = OpFunction %void None %3 - %8 = OpLabel - OpStore %FragColor %18 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-reflection/asm/comp/pointer-to-array-of-physical-pointer.asm.comp b/third_party/spirv-cross/shaders-reflection/asm/comp/pointer-to-array-of-physical-pointer.asm.comp deleted file mode 100644 index caca050ad3..0000000000 --- a/third_party/spirv-cross/shaders-reflection/asm/comp/pointer-to-array-of-physical-pointer.asm.comp +++ /dev/null @@ -1,51 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 8 -; Bound: 17 -; Schema: 0 - OpCapability Shader - OpCapability PhysicalStorageBufferAddresses - OpExtension "SPV_EXT_physical_storage_buffer" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel PhysicalStorageBuffer64 GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 460 - OpSourceExtension "GL_EXT_buffer_reference" - OpSourceExtension "GL_EXT_buffer_reference2" - OpSourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64" - OpName %main "main" - OpName %Params "Params" - OpMemberName %Params 0 "x" - OpMemberName %Params 1 "y" - OpName %IntBuf "IntBuf" - OpMemberName %IntBuf 0 "v" - OpName %_ "" - OpDecorate %_arr_7_uint_3 ArrayStride 16 - OpMemberDecorate %Params 0 Offset 0 - OpMemberDecorate %Params 1 Offset 16 - OpDecorate %Params Block - OpMemberDecorate %IntBuf 0 Offset 0 - OpDecorate %IntBuf Block - OpDecorate %_arr__ptr_PhysicalStorageBuffer_IntBuf_uint_3 ArrayStride 16 - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - OpTypeForwardPointer %_ptr_PhysicalStorageBuffer_IntBuf PhysicalStorageBuffer - %uint = OpTypeInt 32 0 - %uint_3 = OpConstant %uint 3 -%_arr_7_uint_3 = OpTypeArray %_ptr_PhysicalStorageBuffer_IntBuf %uint_3 -%ptr_array_ptr = OpTypePointer PhysicalStorageBuffer %_arr_7_uint_3 - %Params = OpTypeStruct %float %ptr_array_ptr - %int = OpTypeInt 32 1 - %IntBuf = OpTypeStruct %int -%_ptr_PhysicalStorageBuffer_IntBuf = OpTypePointer PhysicalStorageBuffer %IntBuf -%_arr__ptr_PhysicalStorageBuffer_IntBuf_uint_3 = OpTypeArray %_ptr_PhysicalStorageBuffer_IntBuf %uint_3 -%_ptr_Uniform_Params = OpTypePointer Uniform %Params - %_ = OpVariable %_ptr_Uniform_Params Uniform - %main = OpFunction %void None %3 - %5 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-reflection/asm/op-source-glsl-ssbo-1.asm.comp b/third_party/spirv-cross/shaders-reflection/asm/op-source-glsl-ssbo-1.asm.comp deleted file mode 100644 index 5785320572..0000000000 --- a/third_party/spirv-cross/shaders-reflection/asm/op-source-glsl-ssbo-1.asm.comp +++ /dev/null @@ -1,53 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 35 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID %_ - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %SSBO0 "SSBO0" - OpMemberName %SSBO0 0 "a" - OpName %_ "" - OpName %gl_GlobalInvocationID "gl_GlobalInvocationID" - OpDecorate %_runtimearr_v4float ArrayStride 16 - OpMemberDecorate %SSBO0 0 Offset 0 - OpDecorate %SSBO0 BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId - OpDecorate %_runtimearr_v4float_0 ArrayStride 16 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_runtimearr_v4float = OpTypeRuntimeArray %v4float - %SSBO0 = OpTypeStruct %_runtimearr_v4float -%_ptr_Uniform_SSBO0 = OpTypePointer Uniform %SSBO0 - %_ = OpVariable %_ptr_Uniform_SSBO0 Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint - %float_1 = OpConstant %float 1 - %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float -%_runtimearr_v4float_0 = OpTypeRuntimeArray %v4float - %float_2 = OpConstant %float 2 - %33 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 - %main = OpFunction %void None %3 - %5 = OpLabel - %20 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %21 = OpLoad %uint %20 - %25 = OpAccessChain %_ptr_Uniform_v4float %_ %int_0 %21 - OpStore %25 %23 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-reflection/asm/op-source-glsl-ssbo-2.asm.comp b/third_party/spirv-cross/shaders-reflection/asm/op-source-glsl-ssbo-2.asm.comp deleted file mode 100644 index bfb627b5df..0000000000 --- a/third_party/spirv-cross/shaders-reflection/asm/op-source-glsl-ssbo-2.asm.comp +++ /dev/null @@ -1,65 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 35 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %SSBO0 "SSBO0" - OpMemberName %SSBO0 0 "a" - OpName %_ "" - OpName %gl_GlobalInvocationID "gl_GlobalInvocationID" - OpName %SSBO1 "SSBO1" - OpMemberName %SSBO1 0 "b" - OpName %__0 "" - OpDecorate %_runtimearr_v4float ArrayStride 16 - OpMemberDecorate %SSBO0 0 Offset 0 - OpDecorate %SSBO0 BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId - OpDecorate %_runtimearr_v4float_0 ArrayStride 16 - OpMemberDecorate %SSBO1 0 Offset 0 - OpDecorate %SSBO1 BufferBlock - OpDecorate %__0 DescriptorSet 0 - OpDecorate %__0 Binding 1 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_runtimearr_v4float = OpTypeRuntimeArray %v4float - %SSBO0 = OpTypeStruct %_runtimearr_v4float -%_ptr_Uniform_SSBO0 = OpTypePointer Uniform %SSBO0 - %_ = OpVariable %_ptr_Uniform_SSBO0 Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint - %float_1 = OpConstant %float 1 - %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float -%_runtimearr_v4float_0 = OpTypeRuntimeArray %v4float - %SSBO1 = OpTypeStruct %_runtimearr_v4float_0 -%_ptr_Uniform_SSBO1 = OpTypePointer Uniform %SSBO1 - %__0 = OpVariable %_ptr_Uniform_SSBO1 Uniform - %float_2 = OpConstant %float 2 - %33 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 - %main = OpFunction %void None %3 - %5 = OpLabel - %20 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %21 = OpLoad %uint %20 - %25 = OpAccessChain %_ptr_Uniform_v4float %_ %int_0 %21 - OpStore %25 %23 - %34 = OpAccessChain %_ptr_Uniform_v4float %__0 %int_0 %21 - OpStore %34 %33 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-reflection/asm/op-source-hlsl-uav-1.asm.comp b/third_party/spirv-cross/shaders-reflection/asm/op-source-hlsl-uav-1.asm.comp deleted file mode 100644 index 06d9f89651..0000000000 --- a/third_party/spirv-cross/shaders-reflection/asm/op-source-hlsl-uav-1.asm.comp +++ /dev/null @@ -1,48 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 48 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %threadId - OpExecutionMode %main LocalSize 1 1 1 - OpSource HLSL 500 - OpName %main "main" - OpName %UAV0 "UAV0" - OpMemberName %UAV0 0 "@data" - OpName %UAV0_0 "UAV0" - OpName %threadId "threadId" - OpDecorate %_runtimearr_v4float ArrayStride 16 - OpMemberDecorate %UAV0 0 Offset 0 - OpDecorate %UAV0 BufferBlock - OpDecorate %UAV0_0 DescriptorSet 0 - OpDecorate %UAV0_0 Binding 0 - OpDecorate %threadId BuiltIn GlobalInvocationId - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %v3int = OpTypeVector %int 3 - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_runtimearr_v4float = OpTypeRuntimeArray %v4float - %UAV0 = OpTypeStruct %_runtimearr_v4float -%_ptr_Uniform_UAV0 = OpTypePointer Uniform %UAV0 - %UAV0_0 = OpVariable %_ptr_Uniform_UAV0 Uniform - %int_0 = OpConstant %int 0 - %float_1 = OpConstant %float 1 - %26 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float - %float_2 = OpConstant %float 2 - %33 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 -%_ptr_Input_v3int = OpTypePointer Input %v3int - %threadId = OpVariable %_ptr_Input_v3int Input - %main = OpFunction %void None %3 - %5 = OpLabel - %38 = OpLoad %v3int %threadId - %43 = OpCompositeExtract %int %38 0 - %44 = OpAccessChain %_ptr_Uniform_v4float %UAV0_0 %int_0 %43 - OpStore %44 %26 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-reflection/asm/op-source-hlsl-uav-2.asm.comp b/third_party/spirv-cross/shaders-reflection/asm/op-source-hlsl-uav-2.asm.comp deleted file mode 100644 index 510957c1b7..0000000000 --- a/third_party/spirv-cross/shaders-reflection/asm/op-source-hlsl-uav-2.asm.comp +++ /dev/null @@ -1,54 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 48 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %threadId - OpExecutionMode %main LocalSize 1 1 1 - OpSource HLSL 500 - OpName %main "main" - OpName %UAV0 "UAV0" - OpMemberName %UAV0 0 "@data" - OpName %UAV0_0 "UAV0" - OpName %UAV1 "UAV1" - OpName %threadId "threadId" - OpDecorate %_runtimearr_v4float ArrayStride 16 - OpMemberDecorate %UAV0 0 Offset 0 - OpDecorate %UAV0 BufferBlock - OpDecorate %UAV0_0 DescriptorSet 0 - OpDecorate %UAV0_0 Binding 0 - OpDecorate %UAV1 DescriptorSet 0 - OpDecorate %UAV1 Binding 1 - OpDecorate %threadId BuiltIn GlobalInvocationId - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %v3int = OpTypeVector %int 3 - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_runtimearr_v4float = OpTypeRuntimeArray %v4float - %UAV0 = OpTypeStruct %_runtimearr_v4float -%_ptr_Uniform_UAV0 = OpTypePointer Uniform %UAV0 - %UAV0_0 = OpVariable %_ptr_Uniform_UAV0 Uniform - %int_0 = OpConstant %int 0 - %float_1 = OpConstant %float 1 - %26 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float - %UAV1 = OpVariable %_ptr_Uniform_UAV0 Uniform - %float_2 = OpConstant %float 2 - %33 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 -%_ptr_Input_v3int = OpTypePointer Input %v3int - %threadId = OpVariable %_ptr_Input_v3int Input - %main = OpFunction %void None %3 - %5 = OpLabel - %38 = OpLoad %v3int %threadId - %43 = OpCompositeExtract %int %38 0 - %44 = OpAccessChain %_ptr_Uniform_v4float %UAV0_0 %int_0 %43 - OpStore %44 %26 - %47 = OpAccessChain %_ptr_Uniform_v4float %UAV1 %int_0 %43 - OpStore %47 %33 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-reflection/asm/op-source-none-ssbo-1.asm.comp b/third_party/spirv-cross/shaders-reflection/asm/op-source-none-ssbo-1.asm.comp deleted file mode 100644 index 8a6b6c63c6..0000000000 --- a/third_party/spirv-cross/shaders-reflection/asm/op-source-none-ssbo-1.asm.comp +++ /dev/null @@ -1,52 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 35 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID %_ - OpExecutionMode %main LocalSize 1 1 1 - OpName %main "main" - OpName %SSBO0 "SSBO0" - OpMemberName %SSBO0 0 "a" - OpName %_ "" - OpName %gl_GlobalInvocationID "gl_GlobalInvocationID" - OpDecorate %_runtimearr_v4float ArrayStride 16 - OpMemberDecorate %SSBO0 0 Offset 0 - OpDecorate %SSBO0 BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId - OpDecorate %_runtimearr_v4float_0 ArrayStride 16 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_runtimearr_v4float = OpTypeRuntimeArray %v4float - %SSBO0 = OpTypeStruct %_runtimearr_v4float -%_ptr_Uniform_SSBO0 = OpTypePointer Uniform %SSBO0 - %_ = OpVariable %_ptr_Uniform_SSBO0 Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint - %float_1 = OpConstant %float 1 - %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float -%_runtimearr_v4float_0 = OpTypeRuntimeArray %v4float - %float_2 = OpConstant %float 2 - %33 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 - %main = OpFunction %void None %3 - %5 = OpLabel - %20 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %21 = OpLoad %uint %20 - %25 = OpAccessChain %_ptr_Uniform_v4float %_ %int_0 %21 - OpStore %25 %23 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-reflection/asm/op-source-none-ssbo-2.asm.comp b/third_party/spirv-cross/shaders-reflection/asm/op-source-none-ssbo-2.asm.comp deleted file mode 100644 index 8eaffb3348..0000000000 --- a/third_party/spirv-cross/shaders-reflection/asm/op-source-none-ssbo-2.asm.comp +++ /dev/null @@ -1,64 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 35 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID - OpExecutionMode %main LocalSize 1 1 1 - OpName %main "main" - OpName %SSBO0 "SSBO0" - OpMemberName %SSBO0 0 "a" - OpName %_ "" - OpName %gl_GlobalInvocationID "gl_GlobalInvocationID" - OpName %SSBO1 "SSBO1" - OpMemberName %SSBO1 0 "b" - OpName %__0 "" - OpDecorate %_runtimearr_v4float ArrayStride 16 - OpMemberDecorate %SSBO0 0 Offset 0 - OpDecorate %SSBO0 BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId - OpDecorate %_runtimearr_v4float_0 ArrayStride 16 - OpMemberDecorate %SSBO1 0 Offset 0 - OpDecorate %SSBO1 BufferBlock - OpDecorate %__0 DescriptorSet 0 - OpDecorate %__0 Binding 1 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_runtimearr_v4float = OpTypeRuntimeArray %v4float - %SSBO0 = OpTypeStruct %_runtimearr_v4float -%_ptr_Uniform_SSBO0 = OpTypePointer Uniform %SSBO0 - %_ = OpVariable %_ptr_Uniform_SSBO0 Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint - %float_1 = OpConstant %float 1 - %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float -%_runtimearr_v4float_0 = OpTypeRuntimeArray %v4float - %SSBO1 = OpTypeStruct %_runtimearr_v4float_0 -%_ptr_Uniform_SSBO1 = OpTypePointer Uniform %SSBO1 - %__0 = OpVariable %_ptr_Uniform_SSBO1 Uniform - %float_2 = OpConstant %float 2 - %33 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 - %main = OpFunction %void None %3 - %5 = OpLabel - %20 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %21 = OpLoad %uint %20 - %25 = OpAccessChain %_ptr_Uniform_v4float %_ %int_0 %21 - OpStore %25 %23 - %34 = OpAccessChain %_ptr_Uniform_v4float %__0 %int_0 %21 - OpStore %34 %33 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-reflection/asm/op-source-none-uav-1.asm.comp b/third_party/spirv-cross/shaders-reflection/asm/op-source-none-uav-1.asm.comp deleted file mode 100644 index ef4fa8eb78..0000000000 --- a/third_party/spirv-cross/shaders-reflection/asm/op-source-none-uav-1.asm.comp +++ /dev/null @@ -1,47 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 48 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %threadId - OpExecutionMode %main LocalSize 1 1 1 - OpName %main "main" - OpName %UAV0 "UAV0" - OpMemberName %UAV0 0 "@data" - OpName %UAV0_0 "UAV0" - OpName %threadId "threadId" - OpDecorate %_runtimearr_v4float ArrayStride 16 - OpMemberDecorate %UAV0 0 Offset 0 - OpDecorate %UAV0 BufferBlock - OpDecorate %UAV0_0 DescriptorSet 0 - OpDecorate %UAV0_0 Binding 0 - OpDecorate %threadId BuiltIn GlobalInvocationId - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %v3int = OpTypeVector %int 3 - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_runtimearr_v4float = OpTypeRuntimeArray %v4float - %UAV0 = OpTypeStruct %_runtimearr_v4float -%_ptr_Uniform_UAV0 = OpTypePointer Uniform %UAV0 - %UAV0_0 = OpVariable %_ptr_Uniform_UAV0 Uniform - %int_0 = OpConstant %int 0 - %float_1 = OpConstant %float 1 - %26 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float - %float_2 = OpConstant %float 2 - %33 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 -%_ptr_Input_v3int = OpTypePointer Input %v3int - %threadId = OpVariable %_ptr_Input_v3int Input - %main = OpFunction %void None %3 - %5 = OpLabel - %38 = OpLoad %v3int %threadId - %43 = OpCompositeExtract %int %38 0 - %44 = OpAccessChain %_ptr_Uniform_v4float %UAV0_0 %int_0 %43 - OpStore %44 %26 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-reflection/asm/op-source-none-uav-2.asm.comp b/third_party/spirv-cross/shaders-reflection/asm/op-source-none-uav-2.asm.comp deleted file mode 100644 index 3b8d9fdf3d..0000000000 --- a/third_party/spirv-cross/shaders-reflection/asm/op-source-none-uav-2.asm.comp +++ /dev/null @@ -1,53 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 48 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %threadId - OpExecutionMode %main LocalSize 1 1 1 - OpName %main "main" - OpName %UAV0 "UAV0" - OpMemberName %UAV0 0 "@data" - OpName %UAV0_0 "UAV0" - OpName %UAV1 "UAV1" - OpName %threadId "threadId" - OpDecorate %_runtimearr_v4float ArrayStride 16 - OpMemberDecorate %UAV0 0 Offset 0 - OpDecorate %UAV0 BufferBlock - OpDecorate %UAV0_0 DescriptorSet 0 - OpDecorate %UAV0_0 Binding 0 - OpDecorate %UAV1 DescriptorSet 0 - OpDecorate %UAV1 Binding 1 - OpDecorate %threadId BuiltIn GlobalInvocationId - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %v3int = OpTypeVector %int 3 - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_runtimearr_v4float = OpTypeRuntimeArray %v4float - %UAV0 = OpTypeStruct %_runtimearr_v4float -%_ptr_Uniform_UAV0 = OpTypePointer Uniform %UAV0 - %UAV0_0 = OpVariable %_ptr_Uniform_UAV0 Uniform - %int_0 = OpConstant %int 0 - %float_1 = OpConstant %float 1 - %26 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float - %UAV1 = OpVariable %_ptr_Uniform_UAV0 Uniform - %float_2 = OpConstant %float 2 - %33 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 -%_ptr_Input_v3int = OpTypePointer Input %v3int - %threadId = OpVariable %_ptr_Input_v3int Input - %main = OpFunction %void None %3 - %5 = OpLabel - %38 = OpLoad %v3int %threadId - %43 = OpCompositeExtract %int %38 0 - %44 = OpAccessChain %_ptr_Uniform_v4float %UAV0_0 %int_0 %43 - OpStore %44 %26 - %47 = OpAccessChain %_ptr_Uniform_v4float %UAV1 %int_0 %43 - OpStore %47 %33 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-reflection/comp/array-of-physical-pointer.comp b/third_party/spirv-cross/shaders-reflection/comp/array-of-physical-pointer.comp deleted file mode 100644 index 992f6f9089..0000000000 --- a/third_party/spirv-cross/shaders-reflection/comp/array-of-physical-pointer.comp +++ /dev/null @@ -1,15 +0,0 @@ -#version 460 -#extension GL_EXT_shader_explicit_arithmetic_types_int64 : enable -#extension GL_EXT_buffer_reference2 : enable -layout(buffer_reference, std430, buffer_reference_align = 4) buffer IntBuf -{ - int v; -}; -layout(std140, binding = 0) uniform Params -{ - float x; - IntBuf y[3]; -}; -void main() -{ -} diff --git a/third_party/spirv-cross/shaders-reflection/comp/function-pointer.invalid.asm.comp b/third_party/spirv-cross/shaders-reflection/comp/function-pointer.invalid.asm.comp deleted file mode 100644 index 440f3311ef..0000000000 --- a/third_party/spirv-cross/shaders-reflection/comp/function-pointer.invalid.asm.comp +++ /dev/null @@ -1,19 +0,0 @@ -; SPIR-V -; Version: 1.5 -; Generator: Khronos SPIR-V Tools Assembler; 0 -; Bound: 7 -; Schema: 0 -OpCapability Shader -%1 = OpExtInstImport "GLSL.std.450" -OpMemoryModel Logical GLSL450 -OpEntryPoint GLCompute %2 "main" -OpExecutionMode %2 LocalSize 1 1 1 -OpSource GLSL 450 -OpName %2 "main" -%3 = OpTypeVoid -%4 = OpTypeFunction %3 -%5 = OpTypePointer Private %4 -%2 = OpFunction %3 None %4 -%6 = OpLabel -OpReturn -OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-reflection/comp/physical-pointer.comp b/third_party/spirv-cross/shaders-reflection/comp/physical-pointer.comp deleted file mode 100644 index ecd1e287d2..0000000000 --- a/third_party/spirv-cross/shaders-reflection/comp/physical-pointer.comp +++ /dev/null @@ -1,15 +0,0 @@ -#version 460 -#extension GL_EXT_shader_explicit_arithmetic_types_int64 : enable -#extension GL_EXT_buffer_reference2 : enable -layout(buffer_reference, std430, buffer_reference_align = 4) buffer IntBuf -{ - int v; -}; -layout(std140, binding = 0) uniform Params -{ - float x; - IntBuf y; -}; -void main() -{ -} diff --git a/third_party/spirv-cross/shaders-reflection/comp/struct-layout.comp b/third_party/spirv-cross/shaders-reflection/comp/struct-layout.comp deleted file mode 100644 index 5a2b7802df..0000000000 --- a/third_party/spirv-cross/shaders-reflection/comp/struct-layout.comp +++ /dev/null @@ -1,24 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -struct Foo -{ - mat4 m; -}; - -layout(std430, binding = 0) readonly buffer SSBO -{ - Foo in_data[]; -}; - -layout(std430, binding = 1) writeonly buffer SSBO2 -{ - Foo out_data[]; -}; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - out_data[ident].m = in_data[ident].m * in_data[ident].m; -} - diff --git a/third_party/spirv-cross/shaders-reflection/comp/struct-packing.comp b/third_party/spirv-cross/shaders-reflection/comp/struct-packing.comp deleted file mode 100644 index d2ffbaef50..0000000000 --- a/third_party/spirv-cross/shaders-reflection/comp/struct-packing.comp +++ /dev/null @@ -1,87 +0,0 @@ -#version 450 - -layout(local_size_x = 1) in; - -struct S0 -{ - vec2 a[1]; - float b; -}; - -struct S1 -{ - vec3 a; - float b; -}; - -struct S2 -{ - vec3 a[1]; - float b; -}; - -struct S3 -{ - vec2 a; - float b; -}; - -struct S4 -{ - vec2 c; -}; - -struct Content -{ - S0 m0s[1]; - S1 m1s[1]; - S2 m2s[1]; - S0 m0; - S1 m1; - S2 m2; - S3 m3; - float m4; - - S4 m3s[8]; -}; - -layout(binding = 1, std430) restrict buffer SSBO1 -{ - Content content; - Content content1[2]; - Content content2; - - layout(column_major) mat2 m0; - layout(column_major) mat2 m1; - layout(column_major) mat2x3 m2[4]; - layout(column_major) mat3x2 m3; - layout(row_major) mat2 m4; - layout(row_major) mat2 m5[9]; - layout(row_major) mat2x3 m6[4][2]; - layout(row_major) mat3x2 m7; - float array[]; -} ssbo_430; - -layout(binding = 0, std140) restrict buffer SSBO0 -{ - Content content; - Content content1[2]; - Content content2; - - layout(column_major) mat2 m0; - layout(column_major) mat2 m1; - layout(column_major) mat2x3 m2[4]; - layout(column_major) mat3x2 m3; - layout(row_major) mat2 m4; - layout(row_major) mat2 m5[9]; - layout(row_major) mat2x3 m6[4][2]; - layout(row_major) mat3x2 m7; - - float array[]; -} ssbo_140; - -void main() -{ - ssbo_430.content = ssbo_140.content; -} - diff --git a/third_party/spirv-cross/shaders-reflection/comp/workgroup-size-spec-constant.comp b/third_party/spirv-cross/shaders-reflection/comp/workgroup-size-spec-constant.comp deleted file mode 100644 index 376a351622..0000000000 --- a/third_party/spirv-cross/shaders-reflection/comp/workgroup-size-spec-constant.comp +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 - -layout(local_size_x_id = 10, local_size_y_id = 40, local_size_z_id = 60) in; - -layout(std430, set = 0, binding = 0) buffer SSBO -{ - vec4 v; -}; - -void main() -{ - v = vec4(10.0); -} diff --git a/third_party/spirv-cross/shaders-reflection/frag/combined-texture-sampler-shadow.vk.frag b/third_party/spirv-cross/shaders-reflection/frag/combined-texture-sampler-shadow.vk.frag deleted file mode 100644 index 2fabb5ea8a..0000000000 --- a/third_party/spirv-cross/shaders-reflection/frag/combined-texture-sampler-shadow.vk.frag +++ /dev/null @@ -1,29 +0,0 @@ -#version 310 es -precision mediump float; - -layout(set = 0, binding = 0) uniform mediump samplerShadow uSampler; -layout(set = 0, binding = 1) uniform mediump sampler uSampler1; -layout(set = 0, binding = 2) uniform texture2D uDepth; -layout(location = 0) out float FragColor; - -float samp2(texture2D t, mediump samplerShadow s) -{ - return texture(sampler2DShadow(t, s), vec3(1.0)); -} - -float samp3(texture2D t, mediump sampler s) -{ - return texture(sampler2D(t, s), vec2(1.0)).x; -} - -float samp(texture2D t, mediump samplerShadow s, mediump sampler s1) -{ - float r0 = samp2(t, s); - float r1 = samp3(t, s1); - return r0 + r1; -} - -void main() -{ - FragColor = samp(uDepth, uSampler, uSampler1); -} diff --git a/third_party/spirv-cross/shaders-reflection/frag/combined-texture-sampler.vk.frag b/third_party/spirv-cross/shaders-reflection/frag/combined-texture-sampler.vk.frag deleted file mode 100644 index b7de8d47e9..0000000000 --- a/third_party/spirv-cross/shaders-reflection/frag/combined-texture-sampler.vk.frag +++ /dev/null @@ -1,47 +0,0 @@ -#version 310 es -precision mediump float; - -layout(set = 0, binding = 0) uniform mediump sampler uSampler0; -layout(set = 0, binding = 1) uniform mediump sampler uSampler1; -layout(set = 0, binding = 2) uniform mediump texture2D uTexture0; -layout(set = 0, binding = 3) uniform mediump texture2D uTexture1; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec2 vTex; - -vec4 sample_dual(mediump sampler samp, mediump texture2D tex) -{ - return texture(sampler2D(tex, samp), vTex); -} - -vec4 sample_global_tex(mediump sampler samp) -{ - vec4 a = texture(sampler2D(uTexture0, samp), vTex); - vec4 b = sample_dual(samp, uTexture1); - return a + b; -} - -vec4 sample_global_sampler(mediump texture2D tex) -{ - vec4 a = texture(sampler2D(tex, uSampler0), vTex); - vec4 b = sample_dual(uSampler1, tex); - return a + b; -} - -vec4 sample_duals() -{ - vec4 a = sample_dual(uSampler0, uTexture0); - vec4 b = sample_dual(uSampler1, uTexture1); - return a + b; -} - -void main() -{ - vec4 c0 = sample_duals(); - vec4 c1 = sample_global_tex(uSampler0); - vec4 c2 = sample_global_tex(uSampler1); - vec4 c3 = sample_global_sampler(uTexture0); - vec4 c4 = sample_global_sampler(uTexture1); - - FragColor = c0 + c1 + c2 + c3 + c4; -} diff --git a/third_party/spirv-cross/shaders-reflection/frag/image-load-store-uint-coord.asm.frag b/third_party/spirv-cross/shaders-reflection/frag/image-load-store-uint-coord.asm.frag deleted file mode 100644 index a9bf1a7497..0000000000 --- a/third_party/spirv-cross/shaders-reflection/frag/image-load-store-uint-coord.asm.frag +++ /dev/null @@ -1,103 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 2 -; Bound: 63 -; Schema: 0 - OpCapability Shader - OpCapability SampledBuffer - OpCapability ImageBuffer - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %_entryPointOutput - OpExecutionMode %main OriginUpperLeft - OpSource HLSL 500 - OpName %main "main" - OpName %_main_ "@main(" - OpName %storeTemp "storeTemp" - OpName %RWIm "RWIm" - OpName %v "v" - OpName %RWBuf "RWBuf" - OpName %ROIm "ROIm" - OpName %ROBuf "ROBuf" - OpName %_entryPointOutput "@entryPointOutput" - OpDecorate %RWIm DescriptorSet 0 - OpDecorate %RWIm Binding 1 - OpDecorate %RWBuf DescriptorSet 0 - OpDecorate %RWBuf Binding 0 - OpDecorate %ROIm DescriptorSet 0 - OpDecorate %ROIm Binding 1 - OpDecorate %ROBuf DescriptorSet 0 - OpDecorate %ROBuf Binding 0 - OpDecorate %_entryPointOutput Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %8 = OpTypeFunction %v4float -%_ptr_Function_v4float = OpTypePointer Function %v4float - %float_10 = OpConstant %float 10 - %float_0_5 = OpConstant %float 0.5 - %float_8 = OpConstant %float 8 - %float_2 = OpConstant %float 2 - %17 = OpConstantComposite %v4float %float_10 %float_0_5 %float_8 %float_2 - %18 = OpTypeImage %float 2D 0 0 0 2 Rgba32f -%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18 - %RWIm = OpVariable %_ptr_UniformConstant_18 UniformConstant - %uint = OpTypeInt 32 0 - %v2uint = OpTypeVector %uint 2 - %uint_10 = OpConstant %uint 10 - %25 = OpConstantComposite %v2uint %uint_10 %uint_10 - %uint_30 = OpConstant %uint 30 - %30 = OpConstantComposite %v2uint %uint_30 %uint_30 - %32 = OpTypeImage %float Buffer 0 0 0 2 Rgba32f -%_ptr_UniformConstant_32 = OpTypePointer UniformConstant %32 - %RWBuf = OpVariable %_ptr_UniformConstant_32 UniformConstant - %uint_80 = OpConstant %uint 80 - %38 = OpTypeImage %float 2D 0 0 0 1 Unknown - %SampledImage = OpTypeSampledImage %38 -%_ptr_UniformConstant_38 = OpTypePointer UniformConstant %SampledImage - %ROIm = OpVariable %_ptr_UniformConstant_38 UniformConstant - %uint_50 = OpConstant %uint 50 - %uint_60 = OpConstant %uint 60 - %44 = OpConstantComposite %v2uint %uint_50 %uint_60 - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %50 = OpTypeImage %float Buffer 0 0 0 1 Rgba32f -%_ptr_UniformConstant_50 = OpTypePointer UniformConstant %50 - %ROBuf = OpVariable %_ptr_UniformConstant_50 UniformConstant -%_ptr_Output_v4float = OpTypePointer Output %v4float -%_entryPointOutput = OpVariable %_ptr_Output_v4float Output - %main = OpFunction %void None %3 - %5 = OpLabel - %62 = OpFunctionCall %v4float %_main_ - OpStore %_entryPointOutput %62 - OpReturn - OpFunctionEnd - %_main_ = OpFunction %v4float None %8 - %10 = OpLabel - %storeTemp = OpVariable %_ptr_Function_v4float Function - %v = OpVariable %_ptr_Function_v4float Function - OpStore %storeTemp %17 - %21 = OpLoad %18 %RWIm - %26 = OpLoad %v4float %storeTemp - OpImageWrite %21 %25 %26 - %28 = OpLoad %18 %RWIm - %31 = OpImageRead %v4float %28 %30 - OpStore %v %31 - %35 = OpLoad %32 %RWBuf - %37 = OpLoad %v4float %v - OpImageWrite %35 %uint_80 %37 - %41 = OpLoad %SampledImage %ROIm - %ROImage = OpImage %38 %41 - %47 = OpImageFetch %v4float %ROImage %44 Lod %int_0 - %48 = OpLoad %v4float %v - %49 = OpFAdd %v4float %48 %47 - OpStore %v %49 - %53 = OpLoad %50 %ROBuf - %54 = OpImageFetch %v4float %53 %uint_80 - %55 = OpLoad %v4float %v - %56 = OpFAdd %v4float %55 %54 - OpStore %v %56 - %57 = OpLoad %v4float %v - OpReturnValue %57 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-reflection/frag/input-attachment-ms.vk.frag b/third_party/spirv-cross/shaders-reflection/frag/input-attachment-ms.vk.frag deleted file mode 100644 index e060738846..0000000000 --- a/third_party/spirv-cross/shaders-reflection/frag/input-attachment-ms.vk.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 - -layout(input_attachment_index = 0, set = 0, binding = 0) uniform subpassInputMS uSubpass0; -layout(input_attachment_index = 1, set = 0, binding = 1) uniform subpassInputMS uSubpass1; -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = subpassLoad(uSubpass0, 1) + subpassLoad(uSubpass1, 2) + subpassLoad(uSubpass0, gl_SampleID); -} diff --git a/third_party/spirv-cross/shaders-reflection/frag/input-attachment.vk.frag b/third_party/spirv-cross/shaders-reflection/frag/input-attachment.vk.frag deleted file mode 100644 index f082d15b2a..0000000000 --- a/third_party/spirv-cross/shaders-reflection/frag/input-attachment.vk.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 310 es -precision mediump float; - -layout(input_attachment_index = 0, set = 0, binding = 0) uniform mediump subpassInput uSubpass0; -layout(input_attachment_index = 1, set = 0, binding = 1) uniform mediump subpassInput uSubpass1; -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = subpassLoad(uSubpass0) + subpassLoad(uSubpass1); -} diff --git a/third_party/spirv-cross/shaders-reflection/frag/push-constant.vk.frag b/third_party/spirv-cross/shaders-reflection/frag/push-constant.vk.frag deleted file mode 100644 index 6180faba31..0000000000 --- a/third_party/spirv-cross/shaders-reflection/frag/push-constant.vk.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 310 es -precision mediump float; - -layout(push_constant, std430) uniform PushConstants -{ - vec4 value0; - vec4 value1; -} push; - -layout(location = 0) in vec4 vColor; -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vColor + push.value0 + push.value1; -} diff --git a/third_party/spirv-cross/shaders-reflection/frag/separate-sampler-texture-array.vk.frag b/third_party/spirv-cross/shaders-reflection/frag/separate-sampler-texture-array.vk.frag deleted file mode 100644 index b3501c1d8d..0000000000 --- a/third_party/spirv-cross/shaders-reflection/frag/separate-sampler-texture-array.vk.frag +++ /dev/null @@ -1,42 +0,0 @@ -#version 310 es -precision mediump float; - -layout(set = 0, binding = 0) uniform mediump sampler uSampler; -layout(set = 0, binding = 1) uniform mediump texture2D uTexture[4]; -layout(set = 0, binding = 2) uniform mediump texture3D uTexture3D[4]; -layout(set = 0, binding = 3) uniform mediump textureCube uTextureCube[4]; -layout(set = 0, binding = 4) uniform mediump texture2DArray uTextureArray[4]; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec2 vTex; -layout(location = 1) in vec3 vTex3; - -vec4 sample_func(mediump sampler samp, vec2 uv) -{ - return texture(sampler2D(uTexture[2], samp), uv); -} - -vec4 sample_func_dual(mediump sampler samp, mediump texture2D tex, vec2 uv) -{ - return texture(sampler2D(tex, samp), uv); -} - -vec4 sample_func_dual_array(mediump sampler samp, mediump texture2D tex[4], vec2 uv) -{ - return texture(sampler2D(tex[1], samp), uv); -} - -void main() -{ - vec2 off = 1.0 / vec2(textureSize(sampler2D(uTexture[1], uSampler), 0)); - vec2 off2 = 1.0 / vec2(textureSize(sampler2D(uTexture[2], uSampler), 1)); - - vec4 c0 = sample_func(uSampler, vTex + off + off2); - vec4 c1 = sample_func_dual(uSampler, uTexture[1], vTex + off + off2); - vec4 c2 = sample_func_dual_array(uSampler, uTexture, vTex + off + off2); - vec4 c3 = texture(sampler2DArray(uTextureArray[3], uSampler), vTex3); - vec4 c4 = texture(samplerCube(uTextureCube[1], uSampler), vTex3); - vec4 c5 = texture(sampler3D(uTexture3D[2], uSampler), vTex3); - - FragColor = c0 + c1 + c2 + c3 + c4 + c5; -} diff --git a/third_party/spirv-cross/shaders-reflection/frag/spec-constant.vk.frag b/third_party/spirv-cross/shaders-reflection/frag/spec-constant.vk.frag deleted file mode 100644 index e62a26059b..0000000000 --- a/third_party/spirv-cross/shaders-reflection/frag/spec-constant.vk.frag +++ /dev/null @@ -1,78 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) out vec4 FragColor; -layout(constant_id = 1) const float a = 1.5; -layout(constant_id = 2) const float b = 2.5; -layout(constant_id = 3) const int c = 3; -layout(constant_id = 4) const int d = 4; -layout(constant_id = 5) const uint e = 5u; -layout(constant_id = 6) const uint f = 6u; -layout(constant_id = 7) const bool g = false; -layout(constant_id = 8) const bool h = true; - -// glslang doesn't seem to support partial spec constants or composites yet, so only test the basics. - -struct Foo -{ - float elems[d + 2]; -}; - -void main() -{ - float t0 = a; - float t1 = b; - - uint c0 = uint(c); // OpIAdd with different types. - // FConvert, float-to-double. - int c1 = -c; // SNegate - int c2 = ~c; // OpNot - int c3 = c + d; // OpIAdd - int c4 = c - d; // OpISub - int c5 = c * d; // OpIMul - int c6 = c / d; // OpSDiv - uint c7 = e / f; // OpUDiv - int c8 = c % d; // OpSMod - uint c9 = e % f; // OpUMod - // TODO: OpSRem, any way to access this in GLSL? - int c10 = c >> d; // OpShiftRightArithmetic - uint c11 = e >> f; // OpShiftRightLogical - int c12 = c << d; // OpShiftLeftLogical - int c13 = c | d; // OpBitwiseOr - int c14 = c ^ d; // OpBitwiseXor - int c15 = c & d; // OpBitwiseAnd - // VectorShuffle, CompositeExtract, CompositeInsert, not testable atm. - bool c16 = g || h; // OpLogicalOr - bool c17 = g && h; // OpLogicalAnd - bool c18 = !g; // OpLogicalNot - bool c19 = g == h; // OpLogicalEqual - bool c20 = g != h; // OpLogicalNotEqual - // OpSelect not testable atm. - bool c21 = c == d; // OpIEqual - bool c22 = c != d; // OpINotEqual - bool c23 = c < d; // OpSLessThan - bool c24 = e < f; // OpULessThan - bool c25 = c > d; // OpSGreaterThan - bool c26 = e > f; // OpUGreaterThan - bool c27 = c <= d; // OpSLessThanEqual - bool c28 = e <= f; // OpULessThanEqual - bool c29 = c >= d; // OpSGreaterThanEqual - bool c30 = e >= f; // OpUGreaterThanEqual - // OpQuantizeToF16 not testable atm. - - int c31 = c8 + c3; - - int c32 = int(e); // OpIAdd with different types. - bool c33 = bool(c); // int -> bool - bool c34 = bool(e); // uint -> bool - int c35 = int(g); // bool -> int - uint c36 = uint(g); // bool -> uint - float c37 = float(g); // bool -> float - - // Flexible sized arrays with spec constants and spec constant ops. - float vec0[c + 3][8]; - float vec1[c + 2]; - - Foo foo; - FragColor = vec4(t0 + t1) + vec0[0][0] + vec1[0] + foo.elems[c]; -} diff --git a/third_party/spirv-cross/shaders-reflection/rgen/acceleration_structure.vk.rgen b/third_party/spirv-cross/shaders-reflection/rgen/acceleration_structure.vk.rgen deleted file mode 100644 index 568c1a28d0..0000000000 --- a/third_party/spirv-cross/shaders-reflection/rgen/acceleration_structure.vk.rgen +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(set = 0, binding = 1) uniform accelerationStructureNV as; - -void main() -{ - traceNV(as, 0u, 255u, 0u, 1u, 0u, vec3(0.0), 0.0, vec3(1.0), 1000.0, 0); -} diff --git a/third_party/spirv-cross/shaders-reflection/vert/array-size-reflection.vert b/third_party/spirv-cross/shaders-reflection/vert/array-size-reflection.vert deleted file mode 100644 index 24a4a43831..0000000000 --- a/third_party/spirv-cross/shaders-reflection/vert/array-size-reflection.vert +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 -layout(constant_id = 0) const int ARR_SIZE = 1; - -layout(binding = 0, set = 1, std140) uniform u_ -{ - vec4 u_0[ARR_SIZE]; -}; - -void main() -{ - gl_Position = u_0[0]; -} - diff --git a/third_party/spirv-cross/shaders-reflection/vert/read-from-row-major-array.vert b/third_party/spirv-cross/shaders-reflection/vert/read-from-row-major-array.vert deleted file mode 100644 index 792fb8e36c..0000000000 --- a/third_party/spirv-cross/shaders-reflection/vert/read-from-row-major-array.vert +++ /dev/null @@ -1,20 +0,0 @@ -#version 310 es -layout(location = 0) in highp vec4 a_position; -layout(location = 0) out mediump float v_vtxResult; - -layout(set = 0, binding = 0, std140, row_major) uniform Block -{ - highp mat2x3 var[3][4]; -}; - -mediump float compare_float (highp float a, highp float b) { return abs(a - b) < 0.05 ? 1.0 : 0.0; } -mediump float compare_vec3 (highp vec3 a, highp vec3 b) { return compare_float(a.x, b.x)*compare_float(a.y, b.y)*compare_float(a.z, b.z); } -mediump float compare_mat2x3 (highp mat2x3 a, highp mat2x3 b){ return compare_vec3(a[0], b[0])*compare_vec3(a[1], b[1]); } - -void main (void) -{ - gl_Position = a_position; - mediump float result = 1.0; - result *= compare_mat2x3(var[0][0], mat2x3(2.0, 6.0, -6.0, 0.0, 5.0, 5.0)); - v_vtxResult = result; -} diff --git a/third_party/spirv-cross/shaders-reflection/vert/stride-reflection.vert b/third_party/spirv-cross/shaders-reflection/vert/stride-reflection.vert deleted file mode 100644 index 6e7d96df44..0000000000 --- a/third_party/spirv-cross/shaders-reflection/vert/stride-reflection.vert +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 - -layout(binding = 0, set = 0, std140) uniform U -{ - vec4 v[4]; - mat4 c[4]; - layout(row_major) mat4 r[4]; -}; - -void main() -{ - gl_Position = v[0]; -} - diff --git a/third_party/spirv-cross/shaders-reflection/vert/texture_buffer.vert b/third_party/spirv-cross/shaders-reflection/vert/texture_buffer.vert deleted file mode 100644 index 6bc7ddfae2..0000000000 --- a/third_party/spirv-cross/shaders-reflection/vert/texture_buffer.vert +++ /dev/null @@ -1,10 +0,0 @@ -#version 310 es -#extension GL_OES_texture_buffer : require - -layout(binding = 4) uniform highp samplerBuffer uSamp; -layout(rgba32f, binding = 5) uniform readonly highp imageBuffer uSampo; - -void main() -{ - gl_Position = texelFetch(uSamp, 10) + imageLoad(uSampo, 100); -} diff --git a/third_party/spirv-cross/shaders-ue4-no-opt/asm/frag/accesschain-invalid-expression.asm.invalid.frag b/third_party/spirv-cross/shaders-ue4-no-opt/asm/frag/accesschain-invalid-expression.asm.invalid.frag deleted file mode 100644 index fae211f278..0000000000 --- a/third_party/spirv-cross/shaders-ue4-no-opt/asm/frag/accesschain-invalid-expression.asm.invalid.frag +++ /dev/null @@ -1,1087 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 572 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_GOOGLE_hlsl_functionality1" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %Main "main" %in_var_TEXCOORD0 %in_var_TEXCOORD7 %in_var_TEXCOORD8 %gl_FragCoord %gl_FrontFacing %out_var_SV_Target0 - OpExecutionMode %Main OriginUpperLeft - OpSource HLSL 600 - OpName %type_View "type.View" - OpMemberName %type_View 0 "View_TranslatedWorldToClip" - OpMemberName %type_View 1 "View_WorldToClip" - OpMemberName %type_View 2 "View_TranslatedWorldToView" - OpMemberName %type_View 3 "View_ViewToTranslatedWorld" - OpMemberName %type_View 4 "View_TranslatedWorldToCameraView" - OpMemberName %type_View 5 "View_CameraViewToTranslatedWorld" - OpMemberName %type_View 6 "View_ViewToClip" - OpMemberName %type_View 7 "View_ViewToClipNoAA" - OpMemberName %type_View 8 "View_ClipToView" - OpMemberName %type_View 9 "View_ClipToTranslatedWorld" - OpMemberName %type_View 10 "View_SVPositionToTranslatedWorld" - OpMemberName %type_View 11 "View_ScreenToWorld" - OpMemberName %type_View 12 "View_ScreenToTranslatedWorld" - OpMemberName %type_View 13 "View_ViewForward" - OpMemberName %type_View 14 "PrePadding_View_844" - OpMemberName %type_View 15 "View_ViewUp" - OpMemberName %type_View 16 "PrePadding_View_860" - OpMemberName %type_View 17 "View_ViewRight" - OpMemberName %type_View 18 "PrePadding_View_876" - OpMemberName %type_View 19 "View_HMDViewNoRollUp" - OpMemberName %type_View 20 "PrePadding_View_892" - OpMemberName %type_View 21 "View_HMDViewNoRollRight" - OpMemberName %type_View 22 "PrePadding_View_908" - OpMemberName %type_View 23 "View_InvDeviceZToWorldZTransform" - OpMemberName %type_View 24 "View_ScreenPositionScaleBias" - OpMemberName %type_View 25 "View_WorldCameraOrigin" - OpMemberName %type_View 26 "PrePadding_View_956" - OpMemberName %type_View 27 "View_TranslatedWorldCameraOrigin" - OpMemberName %type_View 28 "PrePadding_View_972" - OpMemberName %type_View 29 "View_WorldViewOrigin" - OpMemberName %type_View 30 "PrePadding_View_988" - OpMemberName %type_View 31 "View_PreViewTranslation" - OpMemberName %type_View 32 "PrePadding_View_1004" - OpMemberName %type_View 33 "View_PrevProjection" - OpMemberName %type_View 34 "View_PrevViewProj" - OpMemberName %type_View 35 "View_PrevViewRotationProj" - OpMemberName %type_View 36 "View_PrevViewToClip" - OpMemberName %type_View 37 "View_PrevClipToView" - OpMemberName %type_View 38 "View_PrevTranslatedWorldToClip" - OpMemberName %type_View 39 "View_PrevTranslatedWorldToView" - OpMemberName %type_View 40 "View_PrevViewToTranslatedWorld" - OpMemberName %type_View 41 "View_PrevTranslatedWorldToCameraView" - OpMemberName %type_View 42 "View_PrevCameraViewToTranslatedWorld" - OpMemberName %type_View 43 "View_PrevWorldCameraOrigin" - OpMemberName %type_View 44 "PrePadding_View_1660" - OpMemberName %type_View 45 "View_PrevWorldViewOrigin" - OpMemberName %type_View 46 "PrePadding_View_1676" - OpMemberName %type_View 47 "View_PrevPreViewTranslation" - OpMemberName %type_View 48 "PrePadding_View_1692" - OpMemberName %type_View 49 "View_PrevInvViewProj" - OpMemberName %type_View 50 "View_PrevScreenToTranslatedWorld" - OpMemberName %type_View 51 "View_ClipToPrevClip" - OpMemberName %type_View 52 "View_TemporalAAJitter" - OpMemberName %type_View 53 "View_GlobalClippingPlane" - OpMemberName %type_View 54 "View_FieldOfViewWideAngles" - OpMemberName %type_View 55 "View_PrevFieldOfViewWideAngles" - OpMemberName %type_View 56 "View_ViewRectMin" - OpMemberName %type_View 57 "View_ViewSizeAndInvSize" - OpMemberName %type_View 58 "View_BufferSizeAndInvSize" - OpMemberName %type_View 59 "View_BufferBilinearUVMinMax" - OpMemberName %type_View 60 "View_NumSceneColorMSAASamples" - OpMemberName %type_View 61 "View_PreExposure" - OpMemberName %type_View 62 "View_OneOverPreExposure" - OpMemberName %type_View 63 "PrePadding_View_2012" - OpMemberName %type_View 64 "View_DiffuseOverrideParameter" - OpMemberName %type_View 65 "View_SpecularOverrideParameter" - OpMemberName %type_View 66 "View_NormalOverrideParameter" - OpMemberName %type_View 67 "View_RoughnessOverrideParameter" - OpMemberName %type_View 68 "View_PrevFrameGameTime" - OpMemberName %type_View 69 "View_PrevFrameRealTime" - OpMemberName %type_View 70 "View_OutOfBoundsMask" - OpMemberName %type_View 71 "PrePadding_View_2084" - OpMemberName %type_View 72 "PrePadding_View_2088" - OpMemberName %type_View 73 "PrePadding_View_2092" - OpMemberName %type_View 74 "View_WorldCameraMovementSinceLastFrame" - OpMemberName %type_View 75 "View_CullingSign" - OpMemberName %type_View 76 "View_NearPlane" - OpMemberName %type_View 77 "View_AdaptiveTessellationFactor" - OpMemberName %type_View 78 "View_GameTime" - OpMemberName %type_View 79 "View_RealTime" - OpMemberName %type_View 80 "View_DeltaTime" - OpMemberName %type_View 81 "View_MaterialTextureMipBias" - OpMemberName %type_View 82 "View_MaterialTextureDerivativeMultiply" - OpMemberName %type_View 83 "View_Random" - OpMemberName %type_View 84 "View_FrameNumber" - OpMemberName %type_View 85 "View_StateFrameIndexMod8" - OpMemberName %type_View 86 "View_StateFrameIndex" - OpMemberName %type_View 87 "View_CameraCut" - OpMemberName %type_View 88 "View_UnlitViewmodeMask" - OpMemberName %type_View 89 "PrePadding_View_2164" - OpMemberName %type_View 90 "PrePadding_View_2168" - OpMemberName %type_View 91 "PrePadding_View_2172" - OpMemberName %type_View 92 "View_DirectionalLightColor" - OpMemberName %type_View 93 "View_DirectionalLightDirection" - OpMemberName %type_View 94 "PrePadding_View_2204" - OpMemberName %type_View 95 "View_TranslucencyLightingVolumeMin" - OpMemberName %type_View 96 "View_TranslucencyLightingVolumeInvSize" - OpMemberName %type_View 97 "View_TemporalAAParams" - OpMemberName %type_View 98 "View_CircleDOFParams" - OpMemberName %type_View 99 "View_DepthOfFieldSensorWidth" - OpMemberName %type_View 100 "View_DepthOfFieldFocalDistance" - OpMemberName %type_View 101 "View_DepthOfFieldScale" - OpMemberName %type_View 102 "View_DepthOfFieldFocalLength" - OpMemberName %type_View 103 "View_DepthOfFieldFocalRegion" - OpMemberName %type_View 104 "View_DepthOfFieldNearTransitionRegion" - OpMemberName %type_View 105 "View_DepthOfFieldFarTransitionRegion" - OpMemberName %type_View 106 "View_MotionBlurNormalizedToPixel" - OpMemberName %type_View 107 "View_bSubsurfacePostprocessEnabled" - OpMemberName %type_View 108 "View_GeneralPurposeTweak" - OpMemberName %type_View 109 "View_DemosaicVposOffset" - OpMemberName %type_View 110 "PrePadding_View_2348" - OpMemberName %type_View 111 "View_IndirectLightingColorScale" - OpMemberName %type_View 112 "View_HDR32bppEncodingMode" - OpMemberName %type_View 113 "View_AtmosphericFogSunDirection" - OpMemberName %type_View 114 "View_AtmosphericFogSunPower" - OpMemberName %type_View 115 "View_AtmosphericFogPower" - OpMemberName %type_View 116 "View_AtmosphericFogDensityScale" - OpMemberName %type_View 117 "View_AtmosphericFogDensityOffset" - OpMemberName %type_View 118 "View_AtmosphericFogGroundOffset" - OpMemberName %type_View 119 "View_AtmosphericFogDistanceScale" - OpMemberName %type_View 120 "View_AtmosphericFogAltitudeScale" - OpMemberName %type_View 121 "View_AtmosphericFogHeightScaleRayleigh" - OpMemberName %type_View 122 "View_AtmosphericFogStartDistance" - OpMemberName %type_View 123 "View_AtmosphericFogDistanceOffset" - OpMemberName %type_View 124 "View_AtmosphericFogSunDiscScale" - OpMemberName %type_View 125 "View_AtmosphericFogRenderMask" - OpMemberName %type_View 126 "View_AtmosphericFogInscatterAltitudeSampleNum" - OpMemberName %type_View 127 "View_AtmosphericFogSunColor" - OpMemberName %type_View 128 "View_NormalCurvatureToRoughnessScaleBias" - OpMemberName %type_View 129 "View_RenderingReflectionCaptureMask" - OpMemberName %type_View 130 "View_AmbientCubemapTint" - OpMemberName %type_View 131 "View_AmbientCubemapIntensity" - OpMemberName %type_View 132 "View_SkyLightParameters" - OpMemberName %type_View 133 "PrePadding_View_2488" - OpMemberName %type_View 134 "PrePadding_View_2492" - OpMemberName %type_View 135 "View_SkyLightColor" - OpMemberName %type_View 136 "View_SkyIrradianceEnvironmentMap" - OpMemberName %type_View 137 "View_MobilePreviewMode" - OpMemberName %type_View 138 "View_HMDEyePaddingOffset" - OpMemberName %type_View 139 "View_ReflectionCubemapMaxMip" - OpMemberName %type_View 140 "View_ShowDecalsMask" - OpMemberName %type_View 141 "View_DistanceFieldAOSpecularOcclusionMode" - OpMemberName %type_View 142 "View_IndirectCapsuleSelfShadowingIntensity" - OpMemberName %type_View 143 "PrePadding_View_2648" - OpMemberName %type_View 144 "PrePadding_View_2652" - OpMemberName %type_View 145 "View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight" - OpMemberName %type_View 146 "View_StereoPassIndex" - OpMemberName %type_View 147 "View_GlobalVolumeCenterAndExtent" - OpMemberName %type_View 148 "View_GlobalVolumeWorldToUVAddAndMul" - OpMemberName %type_View 149 "View_GlobalVolumeDimension" - OpMemberName %type_View 150 "View_GlobalVolumeTexelSize" - OpMemberName %type_View 151 "View_MaxGlobalDistance" - OpMemberName %type_View 152 "View_bCheckerboardSubsurfaceProfileRendering" - OpMemberName %type_View 153 "View_VolumetricFogInvGridSize" - OpMemberName %type_View 154 "PrePadding_View_2828" - OpMemberName %type_View 155 "View_VolumetricFogGridZParams" - OpMemberName %type_View 156 "PrePadding_View_2844" - OpMemberName %type_View 157 "View_VolumetricFogSVPosToVolumeUV" - OpMemberName %type_View 158 "View_VolumetricFogMaxDistance" - OpMemberName %type_View 159 "PrePadding_View_2860" - OpMemberName %type_View 160 "View_VolumetricLightmapWorldToUVScale" - OpMemberName %type_View 161 "PrePadding_View_2876" - OpMemberName %type_View 162 "View_VolumetricLightmapWorldToUVAdd" - OpMemberName %type_View 163 "PrePadding_View_2892" - OpMemberName %type_View 164 "View_VolumetricLightmapIndirectionTextureSize" - OpMemberName %type_View 165 "View_VolumetricLightmapBrickSize" - OpMemberName %type_View 166 "View_VolumetricLightmapBrickTexelSize" - OpMemberName %type_View 167 "View_StereoIPD" - OpMemberName %type_View 168 "View_IndirectLightingCacheShowFlag" - OpMemberName %type_View 169 "View_EyeToPixelSpreadAngle" - OpName %View "View" - OpName %type_MobileDirectionalLight "type.MobileDirectionalLight" - OpMemberName %type_MobileDirectionalLight 0 "MobileDirectionalLight_DirectionalLightColor" - OpMemberName %type_MobileDirectionalLight 1 "MobileDirectionalLight_DirectionalLightDirectionAndShadowTransition" - OpMemberName %type_MobileDirectionalLight 2 "MobileDirectionalLight_DirectionalLightShadowSize" - OpMemberName %type_MobileDirectionalLight 3 "MobileDirectionalLight_DirectionalLightDistanceFadeMAD" - OpMemberName %type_MobileDirectionalLight 4 "MobileDirectionalLight_DirectionalLightShadowDistances" - OpMemberName %type_MobileDirectionalLight 5 "MobileDirectionalLight_DirectionalLightScreenToShadow" - OpName %MobileDirectionalLight "MobileDirectionalLight" - OpName %type_2d_image "type.2d.image" - OpName %MobileDirectionalLight_DirectionalLightShadowTexture "MobileDirectionalLight_DirectionalLightShadowTexture" - OpName %type_sampler "type.sampler" - OpName %MobileDirectionalLight_DirectionalLightShadowSampler "MobileDirectionalLight_DirectionalLightShadowSampler" - OpName %Material_Texture2D_0 "Material_Texture2D_0" - OpName %Material_Texture2D_0Sampler "Material_Texture2D_0Sampler" - OpName %Material_Texture2D_1 "Material_Texture2D_1" - OpName %Material_Texture2D_1Sampler "Material_Texture2D_1Sampler" - OpName %type__Globals "type.$Globals" - OpMemberName %type__Globals 0 "NumDynamicPointLights" - OpMemberName %type__Globals 1 "LightPositionAndInvRadius" - OpMemberName %type__Globals 2 "LightColorAndFalloffExponent" - OpMemberName %type__Globals 3 "MobileReflectionParams" - OpName %_Globals "$Globals" - OpName %type_cube_image "type.cube.image" - OpName %ReflectionCubemap "ReflectionCubemap" - OpName %ReflectionCubemapSampler "ReflectionCubemapSampler" - OpName %in_var_TEXCOORD0 "in.var.TEXCOORD0" - OpName %in_var_TEXCOORD7 "in.var.TEXCOORD7" - OpName %in_var_TEXCOORD8 "in.var.TEXCOORD8" - OpName %out_var_SV_Target0 "out.var.SV_Target0" - OpName %Main "Main" - OpName %type_sampled_image "type.sampled.image" - OpName %type_sampled_image_0 "type.sampled.image" - OpDecorateString %in_var_TEXCOORD0 UserSemantic "TEXCOORD0" - OpDecorateString %in_var_TEXCOORD7 UserSemantic "TEXCOORD7" - OpDecorateString %in_var_TEXCOORD8 UserSemantic "TEXCOORD8" - OpDecorate %gl_FragCoord BuiltIn FragCoord - OpDecorateString %gl_FragCoord UserSemantic "SV_Position" - OpDecorate %gl_FrontFacing BuiltIn FrontFacing - OpDecorateString %gl_FrontFacing UserSemantic "SV_IsFrontFace" - OpDecorate %gl_FrontFacing Flat - OpDecorateString %out_var_SV_Target0 UserSemantic "SV_Target0" - OpDecorate %in_var_TEXCOORD0 Location 0 - OpDecorate %in_var_TEXCOORD7 Location 1 - OpDecorate %in_var_TEXCOORD8 Location 2 - OpDecorate %out_var_SV_Target0 Location 0 - OpDecorate %View DescriptorSet 0 - OpDecorate %View Binding 0 - OpDecorate %MobileDirectionalLight DescriptorSet 0 - OpDecorate %MobileDirectionalLight Binding 1 - OpDecorate %MobileDirectionalLight_DirectionalLightShadowTexture DescriptorSet 0 - OpDecorate %MobileDirectionalLight_DirectionalLightShadowTexture Binding 0 - OpDecorate %MobileDirectionalLight_DirectionalLightShadowSampler DescriptorSet 0 - OpDecorate %MobileDirectionalLight_DirectionalLightShadowSampler Binding 0 - OpDecorate %Material_Texture2D_0 DescriptorSet 0 - OpDecorate %Material_Texture2D_0 Binding 1 - OpDecorate %Material_Texture2D_0Sampler DescriptorSet 0 - OpDecorate %Material_Texture2D_0Sampler Binding 1 - OpDecorate %Material_Texture2D_1 DescriptorSet 0 - OpDecorate %Material_Texture2D_1 Binding 2 - OpDecorate %Material_Texture2D_1Sampler DescriptorSet 0 - OpDecorate %Material_Texture2D_1Sampler Binding 2 - OpDecorate %_Globals DescriptorSet 0 - OpDecorate %_Globals Binding 2 - OpDecorate %ReflectionCubemap DescriptorSet 0 - OpDecorate %ReflectionCubemap Binding 3 - OpDecorate %ReflectionCubemapSampler DescriptorSet 0 - OpDecorate %ReflectionCubemapSampler Binding 3 - OpDecorate %_arr_v4float_uint_2 ArrayStride 16 - OpDecorate %_arr_v4float_uint_7 ArrayStride 16 - OpDecorate %_arr_v4float_uint_4 ArrayStride 16 - OpMemberDecorate %type_View 0 Offset 0 - OpMemberDecorate %type_View 0 MatrixStride 16 - OpMemberDecorate %type_View 0 ColMajor - OpMemberDecorate %type_View 1 Offset 64 - OpMemberDecorate %type_View 1 MatrixStride 16 - OpMemberDecorate %type_View 1 ColMajor - OpMemberDecorate %type_View 2 Offset 128 - OpMemberDecorate %type_View 2 MatrixStride 16 - OpMemberDecorate %type_View 2 ColMajor - OpMemberDecorate %type_View 3 Offset 192 - OpMemberDecorate %type_View 3 MatrixStride 16 - OpMemberDecorate %type_View 3 ColMajor - OpMemberDecorate %type_View 4 Offset 256 - OpMemberDecorate %type_View 4 MatrixStride 16 - OpMemberDecorate %type_View 4 ColMajor - OpMemberDecorate %type_View 5 Offset 320 - OpMemberDecorate %type_View 5 MatrixStride 16 - OpMemberDecorate %type_View 5 ColMajor - OpMemberDecorate %type_View 6 Offset 384 - OpMemberDecorate %type_View 6 MatrixStride 16 - OpMemberDecorate %type_View 6 ColMajor - OpMemberDecorate %type_View 7 Offset 448 - OpMemberDecorate %type_View 7 MatrixStride 16 - OpMemberDecorate %type_View 7 ColMajor - OpMemberDecorate %type_View 8 Offset 512 - OpMemberDecorate %type_View 8 MatrixStride 16 - OpMemberDecorate %type_View 8 ColMajor - OpMemberDecorate %type_View 9 Offset 576 - OpMemberDecorate %type_View 9 MatrixStride 16 - OpMemberDecorate %type_View 9 ColMajor - OpMemberDecorate %type_View 10 Offset 640 - OpMemberDecorate %type_View 10 MatrixStride 16 - OpMemberDecorate %type_View 10 ColMajor - OpMemberDecorate %type_View 11 Offset 704 - OpMemberDecorate %type_View 11 MatrixStride 16 - OpMemberDecorate %type_View 11 ColMajor - OpMemberDecorate %type_View 12 Offset 768 - OpMemberDecorate %type_View 12 MatrixStride 16 - OpMemberDecorate %type_View 12 ColMajor - OpMemberDecorate %type_View 13 Offset 832 - OpMemberDecorate %type_View 14 Offset 844 - OpMemberDecorate %type_View 15 Offset 848 - OpMemberDecorate %type_View 16 Offset 860 - OpMemberDecorate %type_View 17 Offset 864 - OpMemberDecorate %type_View 18 Offset 876 - OpMemberDecorate %type_View 19 Offset 880 - OpMemberDecorate %type_View 20 Offset 892 - OpMemberDecorate %type_View 21 Offset 896 - OpMemberDecorate %type_View 22 Offset 908 - OpMemberDecorate %type_View 23 Offset 912 - OpMemberDecorate %type_View 24 Offset 928 - OpMemberDecorate %type_View 25 Offset 944 - OpMemberDecorate %type_View 26 Offset 956 - OpMemberDecorate %type_View 27 Offset 960 - OpMemberDecorate %type_View 28 Offset 972 - OpMemberDecorate %type_View 29 Offset 976 - OpMemberDecorate %type_View 30 Offset 988 - OpMemberDecorate %type_View 31 Offset 992 - OpMemberDecorate %type_View 32 Offset 1004 - OpMemberDecorate %type_View 33 Offset 1008 - OpMemberDecorate %type_View 33 MatrixStride 16 - OpMemberDecorate %type_View 33 ColMajor - OpMemberDecorate %type_View 34 Offset 1072 - OpMemberDecorate %type_View 34 MatrixStride 16 - OpMemberDecorate %type_View 34 ColMajor - OpMemberDecorate %type_View 35 Offset 1136 - OpMemberDecorate %type_View 35 MatrixStride 16 - OpMemberDecorate %type_View 35 ColMajor - OpMemberDecorate %type_View 36 Offset 1200 - OpMemberDecorate %type_View 36 MatrixStride 16 - OpMemberDecorate %type_View 36 ColMajor - OpMemberDecorate %type_View 37 Offset 1264 - OpMemberDecorate %type_View 37 MatrixStride 16 - OpMemberDecorate %type_View 37 ColMajor - OpMemberDecorate %type_View 38 Offset 1328 - OpMemberDecorate %type_View 38 MatrixStride 16 - OpMemberDecorate %type_View 38 ColMajor - OpMemberDecorate %type_View 39 Offset 1392 - OpMemberDecorate %type_View 39 MatrixStride 16 - OpMemberDecorate %type_View 39 ColMajor - OpMemberDecorate %type_View 40 Offset 1456 - OpMemberDecorate %type_View 40 MatrixStride 16 - OpMemberDecorate %type_View 40 ColMajor - OpMemberDecorate %type_View 41 Offset 1520 - OpMemberDecorate %type_View 41 MatrixStride 16 - OpMemberDecorate %type_View 41 ColMajor - OpMemberDecorate %type_View 42 Offset 1584 - OpMemberDecorate %type_View 42 MatrixStride 16 - OpMemberDecorate %type_View 42 ColMajor - OpMemberDecorate %type_View 43 Offset 1648 - OpMemberDecorate %type_View 44 Offset 1660 - OpMemberDecorate %type_View 45 Offset 1664 - OpMemberDecorate %type_View 46 Offset 1676 - OpMemberDecorate %type_View 47 Offset 1680 - OpMemberDecorate %type_View 48 Offset 1692 - OpMemberDecorate %type_View 49 Offset 1696 - OpMemberDecorate %type_View 49 MatrixStride 16 - OpMemberDecorate %type_View 49 ColMajor - OpMemberDecorate %type_View 50 Offset 1760 - OpMemberDecorate %type_View 50 MatrixStride 16 - OpMemberDecorate %type_View 50 ColMajor - OpMemberDecorate %type_View 51 Offset 1824 - OpMemberDecorate %type_View 51 MatrixStride 16 - OpMemberDecorate %type_View 51 ColMajor - OpMemberDecorate %type_View 52 Offset 1888 - OpMemberDecorate %type_View 53 Offset 1904 - OpMemberDecorate %type_View 54 Offset 1920 - OpMemberDecorate %type_View 55 Offset 1928 - OpMemberDecorate %type_View 56 Offset 1936 - OpMemberDecorate %type_View 57 Offset 1952 - OpMemberDecorate %type_View 58 Offset 1968 - OpMemberDecorate %type_View 59 Offset 1984 - OpMemberDecorate %type_View 60 Offset 2000 - OpMemberDecorate %type_View 61 Offset 2004 - OpMemberDecorate %type_View 62 Offset 2008 - OpMemberDecorate %type_View 63 Offset 2012 - OpMemberDecorate %type_View 64 Offset 2016 - OpMemberDecorate %type_View 65 Offset 2032 - OpMemberDecorate %type_View 66 Offset 2048 - OpMemberDecorate %type_View 67 Offset 2064 - OpMemberDecorate %type_View 68 Offset 2072 - OpMemberDecorate %type_View 69 Offset 2076 - OpMemberDecorate %type_View 70 Offset 2080 - OpMemberDecorate %type_View 71 Offset 2084 - OpMemberDecorate %type_View 72 Offset 2088 - OpMemberDecorate %type_View 73 Offset 2092 - OpMemberDecorate %type_View 74 Offset 2096 - OpMemberDecorate %type_View 75 Offset 2108 - OpMemberDecorate %type_View 76 Offset 2112 - OpMemberDecorate %type_View 77 Offset 2116 - OpMemberDecorate %type_View 78 Offset 2120 - OpMemberDecorate %type_View 79 Offset 2124 - OpMemberDecorate %type_View 80 Offset 2128 - OpMemberDecorate %type_View 81 Offset 2132 - OpMemberDecorate %type_View 82 Offset 2136 - OpMemberDecorate %type_View 83 Offset 2140 - OpMemberDecorate %type_View 84 Offset 2144 - OpMemberDecorate %type_View 85 Offset 2148 - OpMemberDecorate %type_View 86 Offset 2152 - OpMemberDecorate %type_View 87 Offset 2156 - OpMemberDecorate %type_View 88 Offset 2160 - OpMemberDecorate %type_View 89 Offset 2164 - OpMemberDecorate %type_View 90 Offset 2168 - OpMemberDecorate %type_View 91 Offset 2172 - OpMemberDecorate %type_View 92 Offset 2176 - OpMemberDecorate %type_View 93 Offset 2192 - OpMemberDecorate %type_View 94 Offset 2204 - OpMemberDecorate %type_View 95 Offset 2208 - OpMemberDecorate %type_View 96 Offset 2240 - OpMemberDecorate %type_View 97 Offset 2272 - OpMemberDecorate %type_View 98 Offset 2288 - OpMemberDecorate %type_View 99 Offset 2304 - OpMemberDecorate %type_View 100 Offset 2308 - OpMemberDecorate %type_View 101 Offset 2312 - OpMemberDecorate %type_View 102 Offset 2316 - OpMemberDecorate %type_View 103 Offset 2320 - OpMemberDecorate %type_View 104 Offset 2324 - OpMemberDecorate %type_View 105 Offset 2328 - OpMemberDecorate %type_View 106 Offset 2332 - OpMemberDecorate %type_View 107 Offset 2336 - OpMemberDecorate %type_View 108 Offset 2340 - OpMemberDecorate %type_View 109 Offset 2344 - OpMemberDecorate %type_View 110 Offset 2348 - OpMemberDecorate %type_View 111 Offset 2352 - OpMemberDecorate %type_View 112 Offset 2364 - OpMemberDecorate %type_View 113 Offset 2368 - OpMemberDecorate %type_View 114 Offset 2380 - OpMemberDecorate %type_View 115 Offset 2384 - OpMemberDecorate %type_View 116 Offset 2388 - OpMemberDecorate %type_View 117 Offset 2392 - OpMemberDecorate %type_View 118 Offset 2396 - OpMemberDecorate %type_View 119 Offset 2400 - OpMemberDecorate %type_View 120 Offset 2404 - OpMemberDecorate %type_View 121 Offset 2408 - OpMemberDecorate %type_View 122 Offset 2412 - OpMemberDecorate %type_View 123 Offset 2416 - OpMemberDecorate %type_View 124 Offset 2420 - OpMemberDecorate %type_View 125 Offset 2424 - OpMemberDecorate %type_View 126 Offset 2428 - OpMemberDecorate %type_View 127 Offset 2432 - OpMemberDecorate %type_View 128 Offset 2448 - OpMemberDecorate %type_View 129 Offset 2460 - OpMemberDecorate %type_View 130 Offset 2464 - OpMemberDecorate %type_View 131 Offset 2480 - OpMemberDecorate %type_View 132 Offset 2484 - OpMemberDecorate %type_View 133 Offset 2488 - OpMemberDecorate %type_View 134 Offset 2492 - OpMemberDecorate %type_View 135 Offset 2496 - OpMemberDecorate %type_View 136 Offset 2512 - OpMemberDecorate %type_View 137 Offset 2624 - OpMemberDecorate %type_View 138 Offset 2628 - OpMemberDecorate %type_View 139 Offset 2632 - OpMemberDecorate %type_View 140 Offset 2636 - OpMemberDecorate %type_View 141 Offset 2640 - OpMemberDecorate %type_View 142 Offset 2644 - OpMemberDecorate %type_View 143 Offset 2648 - OpMemberDecorate %type_View 144 Offset 2652 - OpMemberDecorate %type_View 145 Offset 2656 - OpMemberDecorate %type_View 146 Offset 2668 - OpMemberDecorate %type_View 147 Offset 2672 - OpMemberDecorate %type_View 148 Offset 2736 - OpMemberDecorate %type_View 149 Offset 2800 - OpMemberDecorate %type_View 150 Offset 2804 - OpMemberDecorate %type_View 151 Offset 2808 - OpMemberDecorate %type_View 152 Offset 2812 - OpMemberDecorate %type_View 153 Offset 2816 - OpMemberDecorate %type_View 154 Offset 2828 - OpMemberDecorate %type_View 155 Offset 2832 - OpMemberDecorate %type_View 156 Offset 2844 - OpMemberDecorate %type_View 157 Offset 2848 - OpMemberDecorate %type_View 158 Offset 2856 - OpMemberDecorate %type_View 159 Offset 2860 - OpMemberDecorate %type_View 160 Offset 2864 - OpMemberDecorate %type_View 161 Offset 2876 - OpMemberDecorate %type_View 162 Offset 2880 - OpMemberDecorate %type_View 163 Offset 2892 - OpMemberDecorate %type_View 164 Offset 2896 - OpMemberDecorate %type_View 165 Offset 2908 - OpMemberDecorate %type_View 166 Offset 2912 - OpMemberDecorate %type_View 167 Offset 2924 - OpMemberDecorate %type_View 168 Offset 2928 - OpMemberDecorate %type_View 169 Offset 2932 - OpDecorate %type_View Block - OpDecorate %_arr_mat4v4float_uint_4 ArrayStride 64 - OpMemberDecorate %type_MobileDirectionalLight 0 Offset 0 - OpMemberDecorate %type_MobileDirectionalLight 1 Offset 16 - OpMemberDecorate %type_MobileDirectionalLight 2 Offset 32 - OpMemberDecorate %type_MobileDirectionalLight 3 Offset 48 - OpMemberDecorate %type_MobileDirectionalLight 4 Offset 64 - OpMemberDecorate %type_MobileDirectionalLight 5 Offset 80 - OpMemberDecorate %type_MobileDirectionalLight 5 MatrixStride 16 - OpMemberDecorate %type_MobileDirectionalLight 5 ColMajor - OpDecorate %type_MobileDirectionalLight Block - OpMemberDecorate %type__Globals 0 Offset 0 - OpMemberDecorate %type__Globals 1 Offset 16 - OpMemberDecorate %type__Globals 2 Offset 80 - OpMemberDecorate %type__Globals 3 Offset 144 - OpDecorate %type__Globals Block - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%mat4v4float = OpTypeMatrix %v4float 4 - %v3float = OpTypeVector %float 3 - %v2float = OpTypeVector %float 2 - %int = OpTypeInt 32 1 - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 - %uint_7 = OpConstant %uint 7 - %uint_4 = OpConstant %uint 4 - %int_1 = OpConstant %int 1 - %int_2 = OpConstant %int 2 - %int_4 = OpConstant %int 4 - %float_0 = OpConstant %float 0 - %int_3 = OpConstant %int 3 - %47 = OpConstantComposite %v3float %float_0 %float_0 %float_0 - %float_1 = OpConstant %float 1 - %int_0 = OpConstant %int 0 - %bool = OpTypeBool - %int_5 = OpConstant %int 5 - %52 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 -%float_0_999989986 = OpConstant %float 0.999989986 -%float_65000 = OpConstant %float 65000 - %55 = OpConstantComposite %v3float %float_65000 %float_65000 %float_65000 -%float_0_318309873 = OpConstant %float 0.318309873 - %57 = OpConstantComposite %v3float %float_0_318309873 %float_0_318309873 %float_0_318309873 -%float_65500 = OpConstant %float 65500 - %float_0_5 = OpConstant %float 0.5 - %60 = OpConstantComposite %v2float %float_0_5 %float_0_5 - %float_2 = OpConstant %float 2 - %float_n2 = OpConstant %float -2 - %63 = OpConstantComposite %v2float %float_2 %float_n2 - %64 = OpConstantComposite %v3float %float_1 %float_1 %float_1 -%float_0_119999997 = OpConstant %float 0.119999997 - %float_n1 = OpConstant %float -1 -%float_n0_0274999999 = OpConstant %float -0.0274999999 - %68 = OpConstantComposite %v2float %float_n1 %float_n0_0274999999 -%float_0_0425000004 = OpConstant %float 0.0425000004 - %70 = OpConstantComposite %v2float %float_1 %float_0_0425000004 -%float_n9_27999973 = OpConstant %float -9.27999973 - %72 = OpConstantComposite %v2float %float_1 %float_1 - %float_0_25 = OpConstant %float 0.25 - %float_16 = OpConstant %float 16 - %int_31 = OpConstant %int 31 - %int_56 = OpConstant %int 56 - %int_57 = OpConstant %int 57 - %int_64 = OpConstant %int 64 - %int_65 = OpConstant %int 65 - %int_66 = OpConstant %int 66 - %int_67 = OpConstant %int 67 - %int_88 = OpConstant %int 88 - %int_135 = OpConstant %int 135 - %int_139 = OpConstant %int 139 -%mat3v3float = OpTypeMatrix %v3float 3 - %86 = OpConstantComposite %v2float %float_2 %float_2 -%float_0_300000012 = OpConstant %float 0.300000012 - %88 = OpConstantComposite %v3float %float_0_300000012 %float_0_300000012 %float_1 - %float_20 = OpConstant %float 20 - %90 = OpConstantComposite %v2float %float_20 %float_20 -%float_0_400000006 = OpConstant %float 0.400000006 - %float_24 = OpConstant %float 24 -%float_0_294999987 = OpConstant %float 0.294999987 -%float_0_660000026 = OpConstant %float 0.660000026 -%float_0_699999988 = OpConstant %float 0.699999988 -%float_65504 = OpConstant %float 65504 -%float_1_20000005 = OpConstant %float 1.20000005 - %98 = OpConstantComposite %v3float %float_2 %float_2 %float_2 -%_arr_v4float_uint_2 = OpTypeArray %v4float %uint_2 -%_arr_v4float_uint_7 = OpTypeArray %v4float %uint_7 -%_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4 - %type_View = OpTypeStruct %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %v3float %float %v3float %float %v3float %float %v3float %float %v3float %float %v4float %v4float %v3float %float %v3float %float %v3float %float %v3float %float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %v3float %float %v3float %float %v3float %float %mat4v4float %mat4v4float %mat4v4float %v4float %v4float %v2float %v2float %v4float %v4float %v4float %v4float %int %float %float %float %v4float %v4float %v4float %v2float %float %float %float %float %float %float %v3float %float %float %float %float %float %float %float %float %uint %uint %uint %uint %float %float %float %float %float %v4float %v3float %float %_arr_v4float_uint_2 %_arr_v4float_uint_2 %v4float %v4float %float %float %float %float %float %float %float %float %float %float %float %float %v3float %float %v3float %float %float %float %float %float %float %float %float %float %float %float %uint %uint %v4float %v3float %float %v4float %float %float %float %float %v4float %_arr_v4float_uint_7 %float %float %float %float %uint %float %float %float %v3float %int %_arr_v4float_uint_4 %_arr_v4float_uint_4 %float %float %float %float %v3float %float %v3float %float %v2float %float %float %v3float %float %v3float %float %v3float %float %v3float %float %float %float -%_ptr_Uniform_type_View = OpTypePointer Uniform %type_View -%_arr_mat4v4float_uint_4 = OpTypeArray %mat4v4float %uint_4 -%type_MobileDirectionalLight = OpTypeStruct %v4float %v4float %v4float %v4float %v4float %_arr_mat4v4float_uint_4 -%_ptr_Uniform_type_MobileDirectionalLight = OpTypePointer Uniform %type_MobileDirectionalLight -%type_2d_image = OpTypeImage %float 2D 2 0 0 1 Unknown -%_ptr_UniformConstant_type_2d_image = OpTypePointer UniformConstant %type_2d_image -%type_sampler = OpTypeSampler -%_ptr_UniformConstant_type_sampler = OpTypePointer UniformConstant %type_sampler -%type__Globals = OpTypeStruct %int %_arr_v4float_uint_4 %_arr_v4float_uint_4 %v4float -%_ptr_Uniform_type__Globals = OpTypePointer Uniform %type__Globals -%type_cube_image = OpTypeImage %float Cube 2 0 0 1 Unknown -%_ptr_UniformConstant_type_cube_image = OpTypePointer UniformConstant %type_cube_image -%_ptr_Input_v2float = OpTypePointer Input %v2float -%_ptr_Input_v4float = OpTypePointer Input %v4float -%_ptr_Input_bool = OpTypePointer Input %bool -%_ptr_Output_v4float = OpTypePointer Output %v4float - %void = OpTypeVoid - %110 = OpTypeFunction %void -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float -%_ptr_Uniform_float = OpTypePointer Uniform %float -%_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float -%_ptr_Uniform_int = OpTypePointer Uniform %int -%type_sampled_image = OpTypeSampledImage %type_cube_image -%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float -%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float -%type_sampled_image_0 = OpTypeSampledImage %type_2d_image - %View = OpVariable %_ptr_Uniform_type_View Uniform -%MobileDirectionalLight = OpVariable %_ptr_Uniform_type_MobileDirectionalLight Uniform -%MobileDirectionalLight_DirectionalLightShadowTexture = OpVariable %_ptr_UniformConstant_type_2d_image UniformConstant -%MobileDirectionalLight_DirectionalLightShadowSampler = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant -%Material_Texture2D_0 = OpVariable %_ptr_UniformConstant_type_2d_image UniformConstant -%Material_Texture2D_0Sampler = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant -%Material_Texture2D_1 = OpVariable %_ptr_UniformConstant_type_2d_image UniformConstant -%Material_Texture2D_1Sampler = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant - %_Globals = OpVariable %_ptr_Uniform_type__Globals Uniform -%ReflectionCubemap = OpVariable %_ptr_UniformConstant_type_cube_image UniformConstant -%ReflectionCubemapSampler = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant -%in_var_TEXCOORD0 = OpVariable %_ptr_Input_v2float Input -%in_var_TEXCOORD7 = OpVariable %_ptr_Input_v4float Input -%in_var_TEXCOORD8 = OpVariable %_ptr_Input_v4float Input -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input -%gl_FrontFacing = OpVariable %_ptr_Input_bool Input -%out_var_SV_Target0 = OpVariable %_ptr_Output_v4float Output - %117 = OpConstantComposite %v3float %float_1 %float_0 %float_0 - %118 = OpConstantComposite %v3float %float_0 %float_1 %float_0 - %119 = OpConstantComposite %v3float %float_0 %float_0 %float_1 - %120 = OpConstantComposite %mat3v3float %117 %118 %119 - %float_10 = OpConstant %float 10 - %122 = OpConstantComposite %v2float %float_10 %float_10 - %float_5 = OpConstant %float 5 - %124 = OpConstantComposite %v2float %float_5 %float_5 -%float_0_00066666666 = OpConstant %float 0.00066666666 - %float_n0_5 = OpConstant %float -0.5 - %127 = OpConstantComposite %v2float %float_n0_5 %float_n0_5 - %128 = OpConstantComposite %v2float %float_0_5 %float_n0_5 - %float_1_5 = OpConstant %float 1.5 - %130 = OpConstantComposite %v2float %float_1_5 %float_n0_5 - %131 = OpConstantComposite %v2float %float_n0_5 %float_0_5 - %132 = OpConstantComposite %v2float %float_1_5 %float_0_5 - %133 = OpConstantComposite %v2float %float_n0_5 %float_1_5 - %134 = OpConstantComposite %v2float %float_0_5 %float_1_5 - %135 = OpConstantComposite %v2float %float_1_5 %float_1_5 - %136 = OpUndef %v3float - %137 = OpUndef %v4float - %138 = OpUndef %float - %139 = OpUndef %v3float - %Main = OpFunction %void None %110 - %140 = OpLabel - %141 = OpLoad %v2float %in_var_TEXCOORD0 - %142 = OpLoad %v4float %in_var_TEXCOORD7 - %143 = OpLoad %v4float %in_var_TEXCOORD8 - %144 = OpLoad %v4float %gl_FragCoord - %145 = OpAccessChain %_ptr_Uniform_v3float %View %int_31 - %146 = OpLoad %v3float %145 - %147 = OpAccessChain %_ptr_Uniform_v4float %View %int_56 - %148 = OpLoad %v4float %147 - %149 = OpAccessChain %_ptr_Uniform_v4float %View %int_57 - %150 = OpLoad %v4float %149 - %151 = OpAccessChain %_ptr_Uniform_v4float %View %int_64 - %152 = OpLoad %v4float %151 - %153 = OpAccessChain %_ptr_Uniform_v4float %View %int_65 - %154 = OpLoad %v4float %153 - %155 = OpAccessChain %_ptr_Uniform_v4float %View %int_66 - %156 = OpLoad %v4float %155 - %157 = OpAccessChain %_ptr_Uniform_v2float %View %int_67 - %158 = OpLoad %v2float %157 - %159 = OpAccessChain %_ptr_Uniform_float %View %int_88 - %160 = OpLoad %float %159 - %161 = OpAccessChain %_ptr_Uniform_v4float %View %int_135 - %162 = OpLoad %v4float %161 - %163 = OpAccessChain %_ptr_Uniform_float %View %int_139 - %164 = OpLoad %float %163 - %165 = OpVectorShuffle %v2float %144 %144 0 1 - %166 = OpVectorShuffle %v2float %148 %148 0 1 - %167 = OpFSub %v2float %165 %166 - %168 = OpVectorShuffle %v2float %150 %150 2 3 - %169 = OpFMul %v2float %167 %168 - %170 = OpFSub %v2float %169 %60 - %171 = OpFMul %v2float %170 %63 - %172 = OpCompositeExtract %float %171 0 - %173 = OpCompositeExtract %float %171 1 - %174 = OpCompositeConstruct %v4float %172 %173 %138 %float_1 - %175 = OpCompositeExtract %float %144 3 - %176 = OpCompositeConstruct %v4float %175 %175 %175 %175 - %177 = OpFMul %v4float %174 %176 - %178 = OpVectorShuffle %v3float %143 %143 0 1 2 - %179 = OpFSub %v3float %178 %146 - %180 = OpFNegate %v3float %178 - %181 = OpExtInst %v3float %1 Normalize %180 - %182 = OpFMul %v2float %141 %60 - %183 = OpFMul %v2float %141 %122 - %184 = OpLoad %type_2d_image %Material_Texture2D_0 - %185 = OpLoad %type_sampler %Material_Texture2D_0Sampler - %186 = OpSampledImage %type_sampled_image_0 %184 %185 - %187 = OpImageSampleImplicitLod %v4float %186 %183 None - %188 = OpVectorShuffle %v2float %187 %187 0 1 - %189 = OpFMul %v2float %188 %86 - %190 = OpFSub %v2float %189 %72 - %191 = OpDot %float %190 %190 - %192 = OpFSub %float %float_1 %191 - %193 = OpExtInst %float %1 FClamp %192 %float_0 %float_1 - %194 = OpExtInst %float %1 Sqrt %193 - %195 = OpCompositeExtract %float %190 0 - %196 = OpCompositeExtract %float %190 1 - %197 = OpCompositeConstruct %v4float %195 %196 %194 %float_1 - %198 = OpVectorShuffle %v3float %197 %197 0 1 2 - %199 = OpFMul %v3float %198 %88 - %200 = OpVectorShuffle %v3float %156 %156 0 1 2 - %201 = OpCompositeExtract %float %156 3 - %202 = OpCompositeConstruct %v3float %201 %201 %201 - %203 = OpFMul %v3float %199 %202 - %204 = OpFAdd %v3float %203 %200 - %205 = OpMatrixTimesVector %v3float %120 %204 - %206 = OpExtInst %v3float %1 Normalize %205 - %207 = OpFNegate %v3float %181 - %208 = OpDot %float %206 %181 - %209 = OpCompositeConstruct %v3float %208 %208 %208 - %210 = OpFMul %v3float %206 %209 - %211 = OpFMul %v3float %210 %98 - %212 = OpFAdd %v3float %207 %211 - %213 = OpFMul %v2float %141 %90 - %214 = OpLoad %type_2d_image %Material_Texture2D_1 - %215 = OpLoad %type_sampler %Material_Texture2D_1Sampler - %216 = OpSampledImage %type_sampled_image_0 %214 %215 - %217 = OpImageSampleImplicitLod %v4float %216 %213 None - %218 = OpCompositeExtract %float %217 0 - %219 = OpExtInst %float %1 FMix %float_0_400000006 %float_1 %218 - %220 = OpFSub %float %float_1 %219 - %221 = OpFMul %v2float %141 %124 - %222 = OpSampledImage %type_sampled_image_0 %214 %215 - %223 = OpImageSampleImplicitLod %v4float %222 %221 None - %224 = OpCompositeExtract %float %177 3 - %225 = OpFSub %float %224 %float_24 - %226 = OpFMul %float %225 %float_0_00066666666 - %227 = OpExtInst %float %1 FMax %226 %float_0 - %228 = OpExtInst %float %1 FMin %227 %float_1 - %229 = OpCompositeExtract %float %223 1 - %230 = OpExtInst %float %1 FMix %229 %float_1 %228 - %231 = OpExtInst %float %1 FMix %219 %220 %230 - %232 = OpSampledImage %type_sampled_image_0 %214 %215 - %233 = OpImageSampleImplicitLod %v4float %232 %182 None - %234 = OpExtInst %float %1 FMix %229 %float_0 %228 - %235 = OpCompositeExtract %float %233 1 - %236 = OpFAdd %float %235 %234 - %237 = OpExtInst %float %1 FMix %236 %float_0_5 %float_0_5 - %238 = OpExtInst %float %1 FMix %float_0_294999987 %float_0_660000026 %237 - %239 = OpFMul %float %238 %float_0_5 - %240 = OpFMul %float %231 %239 - %241 = OpExtInst %float %1 FMix %float_0 %float_0_5 %235 - %242 = OpExtInst %float %1 FMix %float_0_699999988 %float_1 %229 - %243 = OpExtInst %float %1 FMix %242 %float_1 %228 - %244 = OpFAdd %float %241 %243 - %245 = OpExtInst %float %1 FMax %244 %float_0 - %246 = OpExtInst %float %1 FMin %245 %float_1 - %247 = OpCompositeConstruct %v3float %240 %240 %240 - %248 = OpExtInst %v3float %1 FClamp %247 %47 %64 - %249 = OpCompositeExtract %float %158 1 - %250 = OpFMul %float %246 %249 - %251 = OpCompositeExtract %float %158 0 - %252 = OpFAdd %float %250 %251 - %253 = OpExtInst %float %1 FClamp %252 %float_0_119999997 %float_1 - %254 = OpExtInst %float %1 FMax %208 %float_0 - %255 = OpCompositeConstruct %v2float %253 %253 - %256 = OpFMul %v2float %255 %68 - %257 = OpFAdd %v2float %256 %70 - %258 = OpCompositeExtract %float %257 0 - %259 = OpFMul %float %258 %258 - %260 = OpFMul %float %float_n9_27999973 %254 - %261 = OpExtInst %float %1 Exp2 %260 - %262 = OpExtInst %float %1 FMin %259 %261 - %263 = OpFMul %float %262 %258 - %264 = OpCompositeExtract %float %257 1 - %265 = OpFAdd %float %263 %264 - %266 = OpCompositeExtract %float %152 3 - %267 = OpCompositeConstruct %v3float %266 %266 %266 - %268 = OpFMul %v3float %248 %267 - %269 = OpVectorShuffle %v3float %152 %152 0 1 2 - %270 = OpFAdd %v3float %268 %269 - %271 = OpCompositeExtract %float %154 3 - %272 = OpFMul %float %265 %271 - %273 = OpCompositeConstruct %v3float %272 %272 %272 - %274 = OpVectorShuffle %v3float %154 %154 0 1 2 - %275 = OpFAdd %v3float %273 %274 - %276 = OpCompositeExtract %float %275 0 - %277 = OpExtInst %float %1 FClamp %float_1 %float_0 %float_1 - %278 = OpLoad %type_2d_image %MobileDirectionalLight_DirectionalLightShadowTexture - %279 = OpLoad %type_sampler %MobileDirectionalLight_DirectionalLightShadowSampler - %280 = OpAccessChain %_ptr_Uniform_v4float %MobileDirectionalLight %int_1 - %281 = OpAccessChain %_ptr_Uniform_float %MobileDirectionalLight %int_1 %int_3 - %282 = OpLoad %float %281 - %283 = OpAccessChain %_ptr_Uniform_v4float %MobileDirectionalLight %int_2 - %284 = OpLoad %v4float %283 - OpBranch %285 - %285 = OpLabel - %286 = OpPhi %int %int_0 %140 %287 %288 - %289 = OpSLessThan %bool %286 %int_2 - OpLoopMerge %290 %288 None - OpBranchConditional %289 %291 %290 - %291 = OpLabel - %292 = OpBitcast %uint %286 - %293 = OpAccessChain %_ptr_Uniform_float %MobileDirectionalLight %int_4 %292 - %294 = OpLoad %float %293 - %295 = OpFOrdLessThan %bool %224 %294 - OpSelectionMerge %288 None - OpBranchConditional %295 %296 %288 - %296 = OpLabel - %297 = OpCompositeExtract %float %177 0 - %298 = OpCompositeExtract %float %177 1 - %299 = OpCompositeConstruct %v4float %297 %298 %224 %float_1 - %300 = OpAccessChain %_ptr_Uniform_mat4v4float %MobileDirectionalLight %int_5 %286 - %301 = OpLoad %mat4v4float %300 - %302 = OpMatrixTimesVector %v4float %301 %299 - OpBranch %290 - %288 = OpLabel - %287 = OpIAdd %int %286 %int_1 - OpBranch %285 - %290 = OpLabel - %303 = OpPhi %v4float %52 %285 %302 %296 - %304 = OpCompositeExtract %float %303 2 - %305 = OpFOrdGreaterThan %bool %304 %float_0 - OpSelectionMerge %306 None - OpBranchConditional %305 %307 %306 - %307 = OpLabel - %308 = OpExtInst %float %1 FMin %304 %float_0_999989986 - %309 = OpVectorShuffle %v2float %303 %303 0 1 - %310 = OpVectorShuffle %v2float %284 %284 0 1 - %311 = OpFMul %v2float %309 %310 - %312 = OpExtInst %v2float %1 Fract %311 - %313 = OpExtInst %v2float %1 Floor %311 - %314 = OpFAdd %v2float %313 %127 - %315 = OpVectorShuffle %v2float %284 %284 2 3 - %316 = OpFMul %v2float %314 %315 - %317 = OpSampledImage %type_sampled_image_0 %278 %279 - %318 = OpImageSampleExplicitLod %v4float %317 %316 Lod %float_0 - %319 = OpCompositeExtract %float %318 0 - %320 = OpCompositeInsert %v3float %319 %139 0 - %321 = OpFAdd %v2float %313 %128 - %322 = OpFMul %v2float %321 %315 - %323 = OpSampledImage %type_sampled_image_0 %278 %279 - %324 = OpImageSampleExplicitLod %v4float %323 %322 Lod %float_0 - %325 = OpCompositeExtract %float %324 0 - %326 = OpCompositeInsert %v3float %325 %320 1 - %327 = OpFAdd %v2float %313 %130 - %328 = OpFMul %v2float %327 %315 - %329 = OpSampledImage %type_sampled_image_0 %278 %279 - %330 = OpImageSampleExplicitLod %v4float %329 %328 Lod %float_0 - %331 = OpCompositeExtract %float %330 0 - %332 = OpCompositeInsert %v3float %331 %326 2 - %333 = OpFMul %float %308 %282 - %334 = OpFSub %float %333 %float_1 - %335 = OpCompositeConstruct %v3float %282 %282 %282 - %336 = OpFMul %v3float %332 %335 - %337 = OpCompositeConstruct %v3float %334 %334 %334 - %338 = OpFSub %v3float %336 %337 - %339 = OpExtInst %v3float %1 FClamp %338 %47 %64 - %340 = OpFAdd %v2float %313 %131 - %341 = OpFMul %v2float %340 %315 - %342 = OpSampledImage %type_sampled_image_0 %278 %279 - %343 = OpImageSampleExplicitLod %v4float %342 %341 Lod %float_0 - %344 = OpCompositeExtract %float %343 0 - %345 = OpCompositeInsert %v3float %344 %139 0 - %346 = OpFAdd %v2float %313 %60 - %347 = OpFMul %v2float %346 %315 - %348 = OpSampledImage %type_sampled_image_0 %278 %279 - %349 = OpImageSampleExplicitLod %v4float %348 %347 Lod %float_0 - %350 = OpCompositeExtract %float %349 0 - %351 = OpCompositeInsert %v3float %350 %345 1 - %352 = OpFAdd %v2float %313 %132 - %353 = OpFMul %v2float %352 %315 - %354 = OpSampledImage %type_sampled_image_0 %278 %279 - %355 = OpImageSampleExplicitLod %v4float %354 %353 Lod %float_0 - %356 = OpCompositeExtract %float %355 0 - %357 = OpCompositeInsert %v3float %356 %351 2 - %358 = OpFMul %v3float %357 %335 - %359 = OpFSub %v3float %358 %337 - %360 = OpExtInst %v3float %1 FClamp %359 %47 %64 - %361 = OpFAdd %v2float %313 %133 - %362 = OpFMul %v2float %361 %315 - %363 = OpSampledImage %type_sampled_image_0 %278 %279 - %364 = OpImageSampleExplicitLod %v4float %363 %362 Lod %float_0 - %365 = OpCompositeExtract %float %364 0 - %366 = OpCompositeInsert %v3float %365 %139 0 - %367 = OpFAdd %v2float %313 %134 - %368 = OpFMul %v2float %367 %315 - %369 = OpSampledImage %type_sampled_image_0 %278 %279 - %370 = OpImageSampleExplicitLod %v4float %369 %368 Lod %float_0 - %371 = OpCompositeExtract %float %370 0 - %372 = OpCompositeInsert %v3float %371 %366 1 - %373 = OpFAdd %v2float %313 %135 - %374 = OpFMul %v2float %373 %315 - %375 = OpSampledImage %type_sampled_image_0 %278 %279 - %376 = OpImageSampleExplicitLod %v4float %375 %374 Lod %float_0 - %377 = OpCompositeExtract %float %376 0 - %378 = OpCompositeInsert %v3float %377 %372 2 - %379 = OpFMul %v3float %378 %335 - %380 = OpFSub %v3float %379 %337 - %381 = OpExtInst %v3float %1 FClamp %380 %47 %64 - %382 = OpCompositeExtract %float %339 0 - %383 = OpCompositeExtract %float %312 0 - %384 = OpFSub %float %float_1 %383 - %385 = OpFMul %float %382 %384 - %386 = OpCompositeExtract %float %360 0 - %387 = OpFMul %float %386 %384 - %388 = OpCompositeExtract %float %381 0 - %389 = OpFMul %float %388 %384 - %390 = OpCompositeExtract %float %339 1 - %391 = OpFAdd %float %385 %390 - %392 = OpCompositeExtract %float %360 1 - %393 = OpFAdd %float %387 %392 - %394 = OpCompositeExtract %float %381 1 - %395 = OpFAdd %float %389 %394 - %396 = OpCompositeExtract %float %339 2 - %397 = OpFMul %float %396 %383 - %398 = OpFAdd %float %391 %397 - %399 = OpCompositeInsert %v3float %398 %136 0 - %400 = OpCompositeExtract %float %360 2 - %401 = OpFMul %float %400 %383 - %402 = OpFAdd %float %393 %401 - %403 = OpCompositeInsert %v3float %402 %399 1 - %404 = OpCompositeExtract %float %381 2 - %405 = OpFMul %float %404 %383 - %406 = OpFAdd %float %395 %405 - %407 = OpCompositeInsert %v3float %406 %403 2 - %408 = OpCompositeExtract %float %312 1 - %409 = OpFSub %float %float_1 %408 - %410 = OpCompositeConstruct %v3float %409 %float_1 %408 - %411 = OpDot %float %407 %410 - %412 = OpFMul %float %float_0_25 %411 - %413 = OpExtInst %float %1 FClamp %412 %float_0 %float_1 - %414 = OpAccessChain %_ptr_Uniform_float %MobileDirectionalLight %int_3 %int_0 - %415 = OpLoad %float %414 - %416 = OpFMul %float %224 %415 - %417 = OpAccessChain %_ptr_Uniform_float %MobileDirectionalLight %int_3 %int_1 - %418 = OpLoad %float %417 - %419 = OpFAdd %float %416 %418 - %420 = OpExtInst %float %1 FClamp %419 %float_0 %float_1 - %421 = OpFMul %float %420 %420 - %422 = OpExtInst %float %1 FMix %413 %float_1 %421 - OpBranch %306 - %306 = OpLabel - %423 = OpPhi %float %float_1 %290 %422 %307 - %424 = OpLoad %v4float %280 - %425 = OpVectorShuffle %v3float %424 %424 0 1 2 - %426 = OpDot %float %206 %425 - %427 = OpExtInst %float %1 FMax %float_0 %426 - %428 = OpFAdd %v3float %181 %425 - %429 = OpExtInst %v3float %1 Normalize %428 - %430 = OpDot %float %206 %429 - %431 = OpExtInst %float %1 FMax %float_0 %430 - %432 = OpFMul %float %423 %427 - %433 = OpCompositeConstruct %v3float %432 %432 %432 - %434 = OpAccessChain %_ptr_Uniform_v4float %MobileDirectionalLight %int_0 - %435 = OpLoad %v4float %434 - %436 = OpVectorShuffle %v3float %435 %435 0 1 2 - %437 = OpFMul %v3float %433 %436 - %438 = OpFMul %float %253 %float_0_25 - %439 = OpFAdd %float %438 %float_0_25 - %440 = OpExtInst %v3float %1 Cross %206 %429 - %441 = OpDot %float %440 %440 - %442 = OpFMul %float %253 %253 - %443 = OpFMul %float %431 %442 - %444 = OpFMul %float %443 %443 - %445 = OpFAdd %float %441 %444 - %446 = OpFDiv %float %442 %445 - %447 = OpFMul %float %446 %446 - %448 = OpExtInst %float %1 FMin %447 %float_65504 - %449 = OpFMul %float %439 %448 - %450 = OpFMul %float %276 %449 - %451 = OpCompositeConstruct %v3float %450 %450 %450 - %452 = OpFAdd %v3float %270 %451 - %453 = OpFMul %v3float %437 %452 - %454 = OpAccessChain %_ptr_Uniform_float %_Globals %int_3 %int_3 - %455 = OpLoad %float %454 - %456 = OpFOrdGreaterThan %bool %455 %float_0 - %457 = OpSelect %float %456 %float_1 %float_0 - %458 = OpFOrdNotEqual %bool %457 %float_0 - %459 = OpSelect %float %458 %455 %164 - %460 = OpExtInst %float %1 Log2 %253 - %461 = OpFMul %float %float_1_20000005 %460 - %462 = OpFSub %float %float_1 %461 - %463 = OpFSub %float %459 %float_1 - %464 = OpFSub %float %463 %462 - %465 = OpLoad %type_cube_image %ReflectionCubemap - %466 = OpLoad %type_sampler %ReflectionCubemapSampler - %467 = OpSampledImage %type_sampled_image %465 %466 - %468 = OpImageSampleExplicitLod %v4float %467 %212 Lod %464 - OpSelectionMerge %469 None - OpBranchConditional %458 %470 %471 - %471 = OpLabel - %472 = OpVectorShuffle %v3float %468 %468 0 1 2 - %473 = OpCompositeExtract %float %468 3 - %474 = OpFMul %float %473 %float_16 - %475 = OpCompositeConstruct %v3float %474 %474 %474 - %476 = OpFMul %v3float %472 %475 - %477 = OpFMul %v3float %476 %476 - OpBranch %469 - %470 = OpLabel - %478 = OpVectorShuffle %v3float %468 %468 0 1 2 - %479 = OpVectorShuffle %v3float %162 %162 0 1 2 - %480 = OpFMul %v3float %478 %479 - OpBranch %469 - %469 = OpLabel - %481 = OpPhi %v3float %477 %471 %480 %470 - %482 = OpCompositeConstruct %v3float %277 %277 %277 - %483 = OpFMul %v3float %481 %482 - %484 = OpCompositeConstruct %v3float %276 %276 %276 - %485 = OpFMul %v3float %483 %484 - %486 = OpFAdd %v3float %453 %485 - OpBranch %487 - %487 = OpLabel - %488 = OpPhi %v3float %486 %469 %489 %490 - %491 = OpPhi %int %int_0 %469 %492 %490 - %493 = OpAccessChain %_ptr_Uniform_int %_Globals %int_0 - %494 = OpLoad %int %493 - %495 = OpSLessThan %bool %491 %494 - OpLoopMerge %496 %490 None - OpBranchConditional %495 %497 %496 - %497 = OpLabel - %498 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_1 %491 - %499 = OpLoad %v4float %498 - %500 = OpVectorShuffle %v3float %499 %499 0 1 2 - %501 = OpFSub %v3float %500 %179 - %502 = OpDot %float %501 %501 - %503 = OpExtInst %float %1 InverseSqrt %502 - %504 = OpCompositeConstruct %v3float %503 %503 %503 - %505 = OpFMul %v3float %501 %504 - %506 = OpFAdd %v3float %181 %505 - %507 = OpExtInst %v3float %1 Normalize %506 - %508 = OpDot %float %206 %505 - %509 = OpExtInst %float %1 FMax %float_0 %508 - %510 = OpDot %float %206 %507 - %511 = OpExtInst %float %1 FMax %float_0 %510 - %512 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_2 %491 - %513 = OpAccessChain %_ptr_Uniform_float %_Globals %int_2 %491 %int_3 - %514 = OpLoad %float %513 - %515 = OpFOrdEqual %bool %514 %float_0 - OpSelectionMerge %490 None - OpBranchConditional %515 %516 %517 - %517 = OpLabel - %518 = OpAccessChain %_ptr_Uniform_float %_Globals %int_1 %491 %int_3 - %519 = OpLoad %float %518 - %520 = OpCompositeConstruct %v3float %519 %519 %519 - %521 = OpFMul %v3float %501 %520 - %522 = OpDot %float %521 %521 - %523 = OpExtInst %float %1 FClamp %522 %float_0 %float_1 - %524 = OpFSub %float %float_1 %523 - %525 = OpExtInst %float %1 Pow %524 %514 - OpBranch %490 - %516 = OpLabel - %526 = OpFAdd %float %502 %float_1 - %527 = OpFDiv %float %float_1 %526 - %528 = OpAccessChain %_ptr_Uniform_float %_Globals %int_1 %491 %int_3 - %529 = OpLoad %float %528 - %530 = OpFMul %float %529 %529 - %531 = OpFMul %float %502 %530 - %532 = OpFMul %float %531 %531 - %533 = OpFSub %float %float_1 %532 - %534 = OpExtInst %float %1 FClamp %533 %float_0 %float_1 - %535 = OpFMul %float %534 %534 - %536 = OpFMul %float %527 %535 - OpBranch %490 - %490 = OpLabel - %537 = OpPhi %float %525 %517 %536 %516 - %538 = OpFMul %float %537 %509 - %539 = OpCompositeConstruct %v3float %538 %538 %538 - %540 = OpLoad %v4float %512 - %541 = OpVectorShuffle %v3float %540 %540 0 1 2 - %542 = OpFMul %v3float %539 %541 - %543 = OpFMul %v3float %542 %57 - %544 = OpExtInst %v3float %1 Cross %206 %507 - %545 = OpDot %float %544 %544 - %546 = OpFMul %float %511 %442 - %547 = OpFMul %float %546 %546 - %548 = OpFAdd %float %545 %547 - %549 = OpFDiv %float %442 %548 - %550 = OpFMul %float %549 %549 - %551 = OpExtInst %float %1 FMin %550 %float_65504 - %552 = OpFMul %float %439 %551 - %553 = OpFMul %float %276 %552 - %554 = OpCompositeConstruct %v3float %553 %553 %553 - %555 = OpFAdd %v3float %270 %554 - %556 = OpFMul %v3float %543 %555 - %557 = OpExtInst %v3float %1 FMin %55 %556 - %489 = OpFAdd %v3float %488 %557 - %492 = OpIAdd %int %491 %int_1 - OpBranch %487 - %496 = OpLabel - %558 = OpExtInst %v3float %1 FMax %47 %47 - %559 = OpFAdd %v3float %488 %558 - %560 = OpFAdd %v3float %270 %484 - %561 = OpCompositeConstruct %v3float %160 %160 %160 - %562 = OpExtInst %v3float %1 FMix %559 %560 %561 - %563 = OpCompositeExtract %float %142 3 - %564 = OpCompositeConstruct %v3float %563 %563 %563 - %565 = OpFMul %v3float %562 %564 - %566 = OpVectorShuffle %v3float %142 %142 0 1 2 - %567 = OpFAdd %v3float %565 %566 - %568 = OpVectorShuffle %v4float %137 %567 4 5 6 3 - %569 = OpCompositeExtract %float %143 3 - %570 = OpExtInst %float %1 FMin %569 %float_65500 - %571 = OpCompositeInsert %v4float %570 %568 3 - OpStore %out_var_SV_Target0 %571 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-ue4-no-opt/asm/frag/array-copy-error.asm.invalid.frag b/third_party/spirv-cross/shaders-ue4-no-opt/asm/frag/array-copy-error.asm.invalid.frag deleted file mode 100644 index eba220ba4e..0000000000 --- a/third_party/spirv-cross/shaders-ue4-no-opt/asm/frag/array-copy-error.asm.invalid.frag +++ /dev/null @@ -1,878 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 353 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_GOOGLE_hlsl_functionality1" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %MainPixelShader "main" %gl_FragCoord %in_var_TEXCOORD6 %in_var_TEXCOORD7 %in_var_TEXCOORD10_centroid %in_var_TEXCOORD11_centroid %in_var_TEXCOORD0 %in_var_PRIMITIVE_ID %gl_FrontFacing %gl_FragDepth %out_var_SV_Target0 - OpExecutionMode %MainPixelShader OriginUpperLeft - OpExecutionMode %MainPixelShader DepthReplacing - OpExecutionMode %MainPixelShader DepthLess - OpSource HLSL 600 - OpName %type_View "type.View" - OpMemberName %type_View 0 "View_TranslatedWorldToClip" - OpMemberName %type_View 1 "View_WorldToClip" - OpMemberName %type_View 2 "View_ClipToWorld" - OpMemberName %type_View 3 "View_TranslatedWorldToView" - OpMemberName %type_View 4 "View_ViewToTranslatedWorld" - OpMemberName %type_View 5 "View_TranslatedWorldToCameraView" - OpMemberName %type_View 6 "View_CameraViewToTranslatedWorld" - OpMemberName %type_View 7 "View_ViewToClip" - OpMemberName %type_View 8 "View_ViewToClipNoAA" - OpMemberName %type_View 9 "View_ClipToView" - OpMemberName %type_View 10 "View_ClipToTranslatedWorld" - OpMemberName %type_View 11 "View_SVPositionToTranslatedWorld" - OpMemberName %type_View 12 "View_ScreenToWorld" - OpMemberName %type_View 13 "View_ScreenToTranslatedWorld" - OpMemberName %type_View 14 "View_ViewForward" - OpMemberName %type_View 15 "PrePadding_View_908" - OpMemberName %type_View 16 "View_ViewUp" - OpMemberName %type_View 17 "PrePadding_View_924" - OpMemberName %type_View 18 "View_ViewRight" - OpMemberName %type_View 19 "PrePadding_View_940" - OpMemberName %type_View 20 "View_HMDViewNoRollUp" - OpMemberName %type_View 21 "PrePadding_View_956" - OpMemberName %type_View 22 "View_HMDViewNoRollRight" - OpMemberName %type_View 23 "PrePadding_View_972" - OpMemberName %type_View 24 "View_InvDeviceZToWorldZTransform" - OpMemberName %type_View 25 "View_ScreenPositionScaleBias" - OpMemberName %type_View 26 "View_WorldCameraOrigin" - OpMemberName %type_View 27 "PrePadding_View_1020" - OpMemberName %type_View 28 "View_TranslatedWorldCameraOrigin" - OpMemberName %type_View 29 "PrePadding_View_1036" - OpMemberName %type_View 30 "View_WorldViewOrigin" - OpMemberName %type_View 31 "PrePadding_View_1052" - OpMemberName %type_View 32 "View_PreViewTranslation" - OpMemberName %type_View 33 "PrePadding_View_1068" - OpMemberName %type_View 34 "View_PrevProjection" - OpMemberName %type_View 35 "View_PrevViewProj" - OpMemberName %type_View 36 "View_PrevViewRotationProj" - OpMemberName %type_View 37 "View_PrevViewToClip" - OpMemberName %type_View 38 "View_PrevClipToView" - OpMemberName %type_View 39 "View_PrevTranslatedWorldToClip" - OpMemberName %type_View 40 "View_PrevTranslatedWorldToView" - OpMemberName %type_View 41 "View_PrevViewToTranslatedWorld" - OpMemberName %type_View 42 "View_PrevTranslatedWorldToCameraView" - OpMemberName %type_View 43 "View_PrevCameraViewToTranslatedWorld" - OpMemberName %type_View 44 "View_PrevWorldCameraOrigin" - OpMemberName %type_View 45 "PrePadding_View_1724" - OpMemberName %type_View 46 "View_PrevWorldViewOrigin" - OpMemberName %type_View 47 "PrePadding_View_1740" - OpMemberName %type_View 48 "View_PrevPreViewTranslation" - OpMemberName %type_View 49 "PrePadding_View_1756" - OpMemberName %type_View 50 "View_PrevInvViewProj" - OpMemberName %type_View 51 "View_PrevScreenToTranslatedWorld" - OpMemberName %type_View 52 "View_ClipToPrevClip" - OpMemberName %type_View 53 "View_TemporalAAJitter" - OpMemberName %type_View 54 "View_GlobalClippingPlane" - OpMemberName %type_View 55 "View_FieldOfViewWideAngles" - OpMemberName %type_View 56 "View_PrevFieldOfViewWideAngles" - OpMemberName %type_View 57 "View_ViewRectMin" - OpMemberName %type_View 58 "View_ViewSizeAndInvSize" - OpMemberName %type_View 59 "View_BufferSizeAndInvSize" - OpMemberName %type_View 60 "View_BufferBilinearUVMinMax" - OpMemberName %type_View 61 "View_NumSceneColorMSAASamples" - OpMemberName %type_View 62 "View_PreExposure" - OpMemberName %type_View 63 "View_OneOverPreExposure" - OpMemberName %type_View 64 "PrePadding_View_2076" - OpMemberName %type_View 65 "View_DiffuseOverrideParameter" - OpMemberName %type_View 66 "View_SpecularOverrideParameter" - OpMemberName %type_View 67 "View_NormalOverrideParameter" - OpMemberName %type_View 68 "View_RoughnessOverrideParameter" - OpMemberName %type_View 69 "View_PrevFrameGameTime" - OpMemberName %type_View 70 "View_PrevFrameRealTime" - OpMemberName %type_View 71 "View_OutOfBoundsMask" - OpMemberName %type_View 72 "PrePadding_View_2148" - OpMemberName %type_View 73 "PrePadding_View_2152" - OpMemberName %type_View 74 "PrePadding_View_2156" - OpMemberName %type_View 75 "View_WorldCameraMovementSinceLastFrame" - OpMemberName %type_View 76 "View_CullingSign" - OpMemberName %type_View 77 "View_NearPlane" - OpMemberName %type_View 78 "View_AdaptiveTessellationFactor" - OpMemberName %type_View 79 "View_GameTime" - OpMemberName %type_View 80 "View_RealTime" - OpMemberName %type_View 81 "View_DeltaTime" - OpMemberName %type_View 82 "View_MaterialTextureMipBias" - OpMemberName %type_View 83 "View_MaterialTextureDerivativeMultiply" - OpMemberName %type_View 84 "View_Random" - OpMemberName %type_View 85 "View_FrameNumber" - OpMemberName %type_View 86 "View_StateFrameIndexMod8" - OpMemberName %type_View 87 "View_StateFrameIndex" - OpMemberName %type_View 88 "View_CameraCut" - OpMemberName %type_View 89 "View_UnlitViewmodeMask" - OpMemberName %type_View 90 "PrePadding_View_2228" - OpMemberName %type_View 91 "PrePadding_View_2232" - OpMemberName %type_View 92 "PrePadding_View_2236" - OpMemberName %type_View 93 "View_DirectionalLightColor" - OpMemberName %type_View 94 "View_DirectionalLightDirection" - OpMemberName %type_View 95 "PrePadding_View_2268" - OpMemberName %type_View 96 "View_TranslucencyLightingVolumeMin" - OpMemberName %type_View 97 "View_TranslucencyLightingVolumeInvSize" - OpMemberName %type_View 98 "View_TemporalAAParams" - OpMemberName %type_View 99 "View_CircleDOFParams" - OpMemberName %type_View 100 "View_DepthOfFieldSensorWidth" - OpMemberName %type_View 101 "View_DepthOfFieldFocalDistance" - OpMemberName %type_View 102 "View_DepthOfFieldScale" - OpMemberName %type_View 103 "View_DepthOfFieldFocalLength" - OpMemberName %type_View 104 "View_DepthOfFieldFocalRegion" - OpMemberName %type_View 105 "View_DepthOfFieldNearTransitionRegion" - OpMemberName %type_View 106 "View_DepthOfFieldFarTransitionRegion" - OpMemberName %type_View 107 "View_MotionBlurNormalizedToPixel" - OpMemberName %type_View 108 "View_bSubsurfacePostprocessEnabled" - OpMemberName %type_View 109 "View_GeneralPurposeTweak" - OpMemberName %type_View 110 "View_DemosaicVposOffset" - OpMemberName %type_View 111 "PrePadding_View_2412" - OpMemberName %type_View 112 "View_IndirectLightingColorScale" - OpMemberName %type_View 113 "View_HDR32bppEncodingMode" - OpMemberName %type_View 114 "View_AtmosphericFogSunDirection" - OpMemberName %type_View 115 "View_AtmosphericFogSunPower" - OpMemberName %type_View 116 "View_AtmosphericFogPower" - OpMemberName %type_View 117 "View_AtmosphericFogDensityScale" - OpMemberName %type_View 118 "View_AtmosphericFogDensityOffset" - OpMemberName %type_View 119 "View_AtmosphericFogGroundOffset" - OpMemberName %type_View 120 "View_AtmosphericFogDistanceScale" - OpMemberName %type_View 121 "View_AtmosphericFogAltitudeScale" - OpMemberName %type_View 122 "View_AtmosphericFogHeightScaleRayleigh" - OpMemberName %type_View 123 "View_AtmosphericFogStartDistance" - OpMemberName %type_View 124 "View_AtmosphericFogDistanceOffset" - OpMemberName %type_View 125 "View_AtmosphericFogSunDiscScale" - OpMemberName %type_View 126 "View_AtmosphericFogSunDiscHalfApexAngleRadian" - OpMemberName %type_View 127 "PrePadding_View_2492" - OpMemberName %type_View 128 "View_AtmosphericFogSunDiscLuminance" - OpMemberName %type_View 129 "View_AtmosphericFogRenderMask" - OpMemberName %type_View 130 "View_AtmosphericFogInscatterAltitudeSampleNum" - OpMemberName %type_View 131 "PrePadding_View_2520" - OpMemberName %type_View 132 "PrePadding_View_2524" - OpMemberName %type_View 133 "View_AtmosphericFogSunColor" - OpMemberName %type_View 134 "View_NormalCurvatureToRoughnessScaleBias" - OpMemberName %type_View 135 "View_RenderingReflectionCaptureMask" - OpMemberName %type_View 136 "View_AmbientCubemapTint" - OpMemberName %type_View 137 "View_AmbientCubemapIntensity" - OpMemberName %type_View 138 "View_SkyLightParameters" - OpMemberName %type_View 139 "PrePadding_View_2584" - OpMemberName %type_View 140 "PrePadding_View_2588" - OpMemberName %type_View 141 "View_SkyLightColor" - OpMemberName %type_View 142 "View_SkyIrradianceEnvironmentMap" - OpMemberName %type_View 143 "View_MobilePreviewMode" - OpMemberName %type_View 144 "View_HMDEyePaddingOffset" - OpMemberName %type_View 145 "View_ReflectionCubemapMaxMip" - OpMemberName %type_View 146 "View_ShowDecalsMask" - OpMemberName %type_View 147 "View_DistanceFieldAOSpecularOcclusionMode" - OpMemberName %type_View 148 "View_IndirectCapsuleSelfShadowingIntensity" - OpMemberName %type_View 149 "PrePadding_View_2744" - OpMemberName %type_View 150 "PrePadding_View_2748" - OpMemberName %type_View 151 "View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight" - OpMemberName %type_View 152 "View_StereoPassIndex" - OpMemberName %type_View 153 "View_GlobalVolumeCenterAndExtent" - OpMemberName %type_View 154 "View_GlobalVolumeWorldToUVAddAndMul" - OpMemberName %type_View 155 "View_GlobalVolumeDimension" - OpMemberName %type_View 156 "View_GlobalVolumeTexelSize" - OpMemberName %type_View 157 "View_MaxGlobalDistance" - OpMemberName %type_View 158 "PrePadding_View_2908" - OpMemberName %type_View 159 "View_CursorPosition" - OpMemberName %type_View 160 "View_bCheckerboardSubsurfaceProfileRendering" - OpMemberName %type_View 161 "PrePadding_View_2924" - OpMemberName %type_View 162 "View_VolumetricFogInvGridSize" - OpMemberName %type_View 163 "PrePadding_View_2940" - OpMemberName %type_View 164 "View_VolumetricFogGridZParams" - OpMemberName %type_View 165 "PrePadding_View_2956" - OpMemberName %type_View 166 "View_VolumetricFogSVPosToVolumeUV" - OpMemberName %type_View 167 "View_VolumetricFogMaxDistance" - OpMemberName %type_View 168 "PrePadding_View_2972" - OpMemberName %type_View 169 "View_VolumetricLightmapWorldToUVScale" - OpMemberName %type_View 170 "PrePadding_View_2988" - OpMemberName %type_View 171 "View_VolumetricLightmapWorldToUVAdd" - OpMemberName %type_View 172 "PrePadding_View_3004" - OpMemberName %type_View 173 "View_VolumetricLightmapIndirectionTextureSize" - OpMemberName %type_View 174 "View_VolumetricLightmapBrickSize" - OpMemberName %type_View 175 "View_VolumetricLightmapBrickTexelSize" - OpMemberName %type_View 176 "View_StereoIPD" - OpMemberName %type_View 177 "View_IndirectLightingCacheShowFlag" - OpMemberName %type_View 178 "View_EyeToPixelSpreadAngle" - OpName %View "View" - OpName %type_PrimitiveDither "type.PrimitiveDither" - OpMemberName %type_PrimitiveDither 0 "PrimitiveDither_LODFactor" - OpName %PrimitiveDither "PrimitiveDither" - OpName %type_PrimitiveFade "type.PrimitiveFade" - OpMemberName %type_PrimitiveFade 0 "PrimitiveFade_FadeTimeScaleBias" - OpName %PrimitiveFade "PrimitiveFade" - OpName %type_Material "type.Material" - OpMemberName %type_Material 0 "Material_VectorExpressions" - OpMemberName %type_Material 1 "Material_ScalarExpressions" - OpName %Material "Material" - OpName %type_2d_image "type.2d.image" - OpName %Material_Texture2D_0 "Material_Texture2D_0" - OpName %type_sampler "type.sampler" - OpName %Material_Texture2D_0Sampler "Material_Texture2D_0Sampler" - OpName %Material_Texture2D_3 "Material_Texture2D_3" - OpName %Material_Texture2D_3Sampler "Material_Texture2D_3Sampler" - OpName %in_var_TEXCOORD6 "in.var.TEXCOORD6" - OpName %in_var_TEXCOORD7 "in.var.TEXCOORD7" - OpName %in_var_TEXCOORD10_centroid "in.var.TEXCOORD10_centroid" - OpName %in_var_TEXCOORD11_centroid "in.var.TEXCOORD11_centroid" - OpName %in_var_TEXCOORD0 "in.var.TEXCOORD0" - OpName %in_var_PRIMITIVE_ID "in.var.PRIMITIVE_ID" - OpName %out_var_SV_Target0 "out.var.SV_Target0" - OpName %MainPixelShader "MainPixelShader" - OpName %type_sampled_image "type.sampled.image" - OpDecorate %gl_FragCoord BuiltIn FragCoord - OpDecorateString %gl_FragCoord UserSemantic "SV_Position" - OpDecorateString %in_var_TEXCOORD6 UserSemantic "TEXCOORD6" - OpDecorateString %in_var_TEXCOORD7 UserSemantic "TEXCOORD7" - OpDecorateString %in_var_TEXCOORD10_centroid UserSemantic "TEXCOORD10_centroid" - OpDecorateString %in_var_TEXCOORD11_centroid UserSemantic "TEXCOORD11_centroid" - OpDecorateString %in_var_TEXCOORD0 UserSemantic "TEXCOORD0" - OpDecorateString %in_var_PRIMITIVE_ID UserSemantic "PRIMITIVE_ID" - OpDecorate %in_var_PRIMITIVE_ID Flat - OpDecorate %gl_FrontFacing BuiltIn FrontFacing - OpDecorateString %gl_FrontFacing UserSemantic "SV_IsFrontFace" - OpDecorate %gl_FrontFacing Flat - OpDecorate %gl_FragDepth BuiltIn FragDepth - OpDecorateString %gl_FragDepth UserSemantic "SV_DepthLessEqual" - OpDecorateString %out_var_SV_Target0 UserSemantic "SV_Target0" - OpDecorate %in_var_TEXCOORD6 Location 0 - OpDecorate %in_var_TEXCOORD7 Location 1 - OpDecorate %in_var_TEXCOORD10_centroid Location 2 - OpDecorate %in_var_TEXCOORD11_centroid Location 3 - OpDecorate %in_var_TEXCOORD0 Location 4 - OpDecorate %in_var_PRIMITIVE_ID Location 5 - OpDecorate %out_var_SV_Target0 Location 0 - OpDecorate %View DescriptorSet 0 - OpDecorate %View Binding 0 - OpDecorate %PrimitiveDither DescriptorSet 0 - OpDecorate %PrimitiveDither Binding 1 - OpDecorate %PrimitiveFade DescriptorSet 0 - OpDecorate %PrimitiveFade Binding 2 - OpDecorate %Material DescriptorSet 0 - OpDecorate %Material Binding 3 - OpDecorate %Material_Texture2D_0 DescriptorSet 0 - OpDecorate %Material_Texture2D_0 Binding 0 - OpDecorate %Material_Texture2D_0Sampler DescriptorSet 0 - OpDecorate %Material_Texture2D_0Sampler Binding 0 - OpDecorate %Material_Texture2D_3 DescriptorSet 0 - OpDecorate %Material_Texture2D_3 Binding 1 - OpDecorate %Material_Texture2D_3Sampler DescriptorSet 0 - OpDecorate %Material_Texture2D_3Sampler Binding 1 - OpDecorate %_arr_v4float_uint_2 ArrayStride 16 - OpDecorate %_arr_v4float_uint_7 ArrayStride 16 - OpDecorate %_arr_v4float_uint_4 ArrayStride 16 - OpMemberDecorate %type_View 0 Offset 0 - OpMemberDecorate %type_View 0 MatrixStride 16 - OpMemberDecorate %type_View 0 ColMajor - OpMemberDecorate %type_View 1 Offset 64 - OpMemberDecorate %type_View 1 MatrixStride 16 - OpMemberDecorate %type_View 1 ColMajor - OpMemberDecorate %type_View 2 Offset 128 - OpMemberDecorate %type_View 2 MatrixStride 16 - OpMemberDecorate %type_View 2 ColMajor - OpMemberDecorate %type_View 3 Offset 192 - OpMemberDecorate %type_View 3 MatrixStride 16 - OpMemberDecorate %type_View 3 ColMajor - OpMemberDecorate %type_View 4 Offset 256 - OpMemberDecorate %type_View 4 MatrixStride 16 - OpMemberDecorate %type_View 4 ColMajor - OpMemberDecorate %type_View 5 Offset 320 - OpMemberDecorate %type_View 5 MatrixStride 16 - OpMemberDecorate %type_View 5 ColMajor - OpMemberDecorate %type_View 6 Offset 384 - OpMemberDecorate %type_View 6 MatrixStride 16 - OpMemberDecorate %type_View 6 ColMajor - OpMemberDecorate %type_View 7 Offset 448 - OpMemberDecorate %type_View 7 MatrixStride 16 - OpMemberDecorate %type_View 7 ColMajor - OpMemberDecorate %type_View 8 Offset 512 - OpMemberDecorate %type_View 8 MatrixStride 16 - OpMemberDecorate %type_View 8 ColMajor - OpMemberDecorate %type_View 9 Offset 576 - OpMemberDecorate %type_View 9 MatrixStride 16 - OpMemberDecorate %type_View 9 ColMajor - OpMemberDecorate %type_View 10 Offset 640 - OpMemberDecorate %type_View 10 MatrixStride 16 - OpMemberDecorate %type_View 10 ColMajor - OpMemberDecorate %type_View 11 Offset 704 - OpMemberDecorate %type_View 11 MatrixStride 16 - OpMemberDecorate %type_View 11 ColMajor - OpMemberDecorate %type_View 12 Offset 768 - OpMemberDecorate %type_View 12 MatrixStride 16 - OpMemberDecorate %type_View 12 ColMajor - OpMemberDecorate %type_View 13 Offset 832 - OpMemberDecorate %type_View 13 MatrixStride 16 - OpMemberDecorate %type_View 13 ColMajor - OpMemberDecorate %type_View 14 Offset 896 - OpMemberDecorate %type_View 15 Offset 908 - OpMemberDecorate %type_View 16 Offset 912 - OpMemberDecorate %type_View 17 Offset 924 - OpMemberDecorate %type_View 18 Offset 928 - OpMemberDecorate %type_View 19 Offset 940 - OpMemberDecorate %type_View 20 Offset 944 - OpMemberDecorate %type_View 21 Offset 956 - OpMemberDecorate %type_View 22 Offset 960 - OpMemberDecorate %type_View 23 Offset 972 - OpMemberDecorate %type_View 24 Offset 976 - OpMemberDecorate %type_View 25 Offset 992 - OpMemberDecorate %type_View 26 Offset 1008 - OpMemberDecorate %type_View 27 Offset 1020 - OpMemberDecorate %type_View 28 Offset 1024 - OpMemberDecorate %type_View 29 Offset 1036 - OpMemberDecorate %type_View 30 Offset 1040 - OpMemberDecorate %type_View 31 Offset 1052 - OpMemberDecorate %type_View 32 Offset 1056 - OpMemberDecorate %type_View 33 Offset 1068 - OpMemberDecorate %type_View 34 Offset 1072 - OpMemberDecorate %type_View 34 MatrixStride 16 - OpMemberDecorate %type_View 34 ColMajor - OpMemberDecorate %type_View 35 Offset 1136 - OpMemberDecorate %type_View 35 MatrixStride 16 - OpMemberDecorate %type_View 35 ColMajor - OpMemberDecorate %type_View 36 Offset 1200 - OpMemberDecorate %type_View 36 MatrixStride 16 - OpMemberDecorate %type_View 36 ColMajor - OpMemberDecorate %type_View 37 Offset 1264 - OpMemberDecorate %type_View 37 MatrixStride 16 - OpMemberDecorate %type_View 37 ColMajor - OpMemberDecorate %type_View 38 Offset 1328 - OpMemberDecorate %type_View 38 MatrixStride 16 - OpMemberDecorate %type_View 38 ColMajor - OpMemberDecorate %type_View 39 Offset 1392 - OpMemberDecorate %type_View 39 MatrixStride 16 - OpMemberDecorate %type_View 39 ColMajor - OpMemberDecorate %type_View 40 Offset 1456 - OpMemberDecorate %type_View 40 MatrixStride 16 - OpMemberDecorate %type_View 40 ColMajor - OpMemberDecorate %type_View 41 Offset 1520 - OpMemberDecorate %type_View 41 MatrixStride 16 - OpMemberDecorate %type_View 41 ColMajor - OpMemberDecorate %type_View 42 Offset 1584 - OpMemberDecorate %type_View 42 MatrixStride 16 - OpMemberDecorate %type_View 42 ColMajor - OpMemberDecorate %type_View 43 Offset 1648 - OpMemberDecorate %type_View 43 MatrixStride 16 - OpMemberDecorate %type_View 43 ColMajor - OpMemberDecorate %type_View 44 Offset 1712 - OpMemberDecorate %type_View 45 Offset 1724 - OpMemberDecorate %type_View 46 Offset 1728 - OpMemberDecorate %type_View 47 Offset 1740 - OpMemberDecorate %type_View 48 Offset 1744 - OpMemberDecorate %type_View 49 Offset 1756 - OpMemberDecorate %type_View 50 Offset 1760 - OpMemberDecorate %type_View 50 MatrixStride 16 - OpMemberDecorate %type_View 50 ColMajor - OpMemberDecorate %type_View 51 Offset 1824 - OpMemberDecorate %type_View 51 MatrixStride 16 - OpMemberDecorate %type_View 51 ColMajor - OpMemberDecorate %type_View 52 Offset 1888 - OpMemberDecorate %type_View 52 MatrixStride 16 - OpMemberDecorate %type_View 52 ColMajor - OpMemberDecorate %type_View 53 Offset 1952 - OpMemberDecorate %type_View 54 Offset 1968 - OpMemberDecorate %type_View 55 Offset 1984 - OpMemberDecorate %type_View 56 Offset 1992 - OpMemberDecorate %type_View 57 Offset 2000 - OpMemberDecorate %type_View 58 Offset 2016 - OpMemberDecorate %type_View 59 Offset 2032 - OpMemberDecorate %type_View 60 Offset 2048 - OpMemberDecorate %type_View 61 Offset 2064 - OpMemberDecorate %type_View 62 Offset 2068 - OpMemberDecorate %type_View 63 Offset 2072 - OpMemberDecorate %type_View 64 Offset 2076 - OpMemberDecorate %type_View 65 Offset 2080 - OpMemberDecorate %type_View 66 Offset 2096 - OpMemberDecorate %type_View 67 Offset 2112 - OpMemberDecorate %type_View 68 Offset 2128 - OpMemberDecorate %type_View 69 Offset 2136 - OpMemberDecorate %type_View 70 Offset 2140 - OpMemberDecorate %type_View 71 Offset 2144 - OpMemberDecorate %type_View 72 Offset 2148 - OpMemberDecorate %type_View 73 Offset 2152 - OpMemberDecorate %type_View 74 Offset 2156 - OpMemberDecorate %type_View 75 Offset 2160 - OpMemberDecorate %type_View 76 Offset 2172 - OpMemberDecorate %type_View 77 Offset 2176 - OpMemberDecorate %type_View 78 Offset 2180 - OpMemberDecorate %type_View 79 Offset 2184 - OpMemberDecorate %type_View 80 Offset 2188 - OpMemberDecorate %type_View 81 Offset 2192 - OpMemberDecorate %type_View 82 Offset 2196 - OpMemberDecorate %type_View 83 Offset 2200 - OpMemberDecorate %type_View 84 Offset 2204 - OpMemberDecorate %type_View 85 Offset 2208 - OpMemberDecorate %type_View 86 Offset 2212 - OpMemberDecorate %type_View 87 Offset 2216 - OpMemberDecorate %type_View 88 Offset 2220 - OpMemberDecorate %type_View 89 Offset 2224 - OpMemberDecorate %type_View 90 Offset 2228 - OpMemberDecorate %type_View 91 Offset 2232 - OpMemberDecorate %type_View 92 Offset 2236 - OpMemberDecorate %type_View 93 Offset 2240 - OpMemberDecorate %type_View 94 Offset 2256 - OpMemberDecorate %type_View 95 Offset 2268 - OpMemberDecorate %type_View 96 Offset 2272 - OpMemberDecorate %type_View 97 Offset 2304 - OpMemberDecorate %type_View 98 Offset 2336 - OpMemberDecorate %type_View 99 Offset 2352 - OpMemberDecorate %type_View 100 Offset 2368 - OpMemberDecorate %type_View 101 Offset 2372 - OpMemberDecorate %type_View 102 Offset 2376 - OpMemberDecorate %type_View 103 Offset 2380 - OpMemberDecorate %type_View 104 Offset 2384 - OpMemberDecorate %type_View 105 Offset 2388 - OpMemberDecorate %type_View 106 Offset 2392 - OpMemberDecorate %type_View 107 Offset 2396 - OpMemberDecorate %type_View 108 Offset 2400 - OpMemberDecorate %type_View 109 Offset 2404 - OpMemberDecorate %type_View 110 Offset 2408 - OpMemberDecorate %type_View 111 Offset 2412 - OpMemberDecorate %type_View 112 Offset 2416 - OpMemberDecorate %type_View 113 Offset 2428 - OpMemberDecorate %type_View 114 Offset 2432 - OpMemberDecorate %type_View 115 Offset 2444 - OpMemberDecorate %type_View 116 Offset 2448 - OpMemberDecorate %type_View 117 Offset 2452 - OpMemberDecorate %type_View 118 Offset 2456 - OpMemberDecorate %type_View 119 Offset 2460 - OpMemberDecorate %type_View 120 Offset 2464 - OpMemberDecorate %type_View 121 Offset 2468 - OpMemberDecorate %type_View 122 Offset 2472 - OpMemberDecorate %type_View 123 Offset 2476 - OpMemberDecorate %type_View 124 Offset 2480 - OpMemberDecorate %type_View 125 Offset 2484 - OpMemberDecorate %type_View 126 Offset 2488 - OpMemberDecorate %type_View 127 Offset 2492 - OpMemberDecorate %type_View 128 Offset 2496 - OpMemberDecorate %type_View 129 Offset 2512 - OpMemberDecorate %type_View 130 Offset 2516 - OpMemberDecorate %type_View 131 Offset 2520 - OpMemberDecorate %type_View 132 Offset 2524 - OpMemberDecorate %type_View 133 Offset 2528 - OpMemberDecorate %type_View 134 Offset 2544 - OpMemberDecorate %type_View 135 Offset 2556 - OpMemberDecorate %type_View 136 Offset 2560 - OpMemberDecorate %type_View 137 Offset 2576 - OpMemberDecorate %type_View 138 Offset 2580 - OpMemberDecorate %type_View 139 Offset 2584 - OpMemberDecorate %type_View 140 Offset 2588 - OpMemberDecorate %type_View 141 Offset 2592 - OpMemberDecorate %type_View 142 Offset 2608 - OpMemberDecorate %type_View 143 Offset 2720 - OpMemberDecorate %type_View 144 Offset 2724 - OpMemberDecorate %type_View 145 Offset 2728 - OpMemberDecorate %type_View 146 Offset 2732 - OpMemberDecorate %type_View 147 Offset 2736 - OpMemberDecorate %type_View 148 Offset 2740 - OpMemberDecorate %type_View 149 Offset 2744 - OpMemberDecorate %type_View 150 Offset 2748 - OpMemberDecorate %type_View 151 Offset 2752 - OpMemberDecorate %type_View 152 Offset 2764 - OpMemberDecorate %type_View 153 Offset 2768 - OpMemberDecorate %type_View 154 Offset 2832 - OpMemberDecorate %type_View 155 Offset 2896 - OpMemberDecorate %type_View 156 Offset 2900 - OpMemberDecorate %type_View 157 Offset 2904 - OpMemberDecorate %type_View 158 Offset 2908 - OpMemberDecorate %type_View 159 Offset 2912 - OpMemberDecorate %type_View 160 Offset 2920 - OpMemberDecorate %type_View 161 Offset 2924 - OpMemberDecorate %type_View 162 Offset 2928 - OpMemberDecorate %type_View 163 Offset 2940 - OpMemberDecorate %type_View 164 Offset 2944 - OpMemberDecorate %type_View 165 Offset 2956 - OpMemberDecorate %type_View 166 Offset 2960 - OpMemberDecorate %type_View 167 Offset 2968 - OpMemberDecorate %type_View 168 Offset 2972 - OpMemberDecorate %type_View 169 Offset 2976 - OpMemberDecorate %type_View 170 Offset 2988 - OpMemberDecorate %type_View 171 Offset 2992 - OpMemberDecorate %type_View 172 Offset 3004 - OpMemberDecorate %type_View 173 Offset 3008 - OpMemberDecorate %type_View 174 Offset 3020 - OpMemberDecorate %type_View 175 Offset 3024 - OpMemberDecorate %type_View 176 Offset 3036 - OpMemberDecorate %type_View 177 Offset 3040 - OpMemberDecorate %type_View 178 Offset 3044 - OpDecorate %type_View Block - OpMemberDecorate %type_PrimitiveDither 0 Offset 0 - OpDecorate %type_PrimitiveDither Block - OpMemberDecorate %type_PrimitiveFade 0 Offset 0 - OpDecorate %type_PrimitiveFade Block - OpDecorate %_arr_v4float_uint_9 ArrayStride 16 - OpDecorate %_arr_v4float_uint_3 ArrayStride 16 - OpMemberDecorate %type_Material 0 Offset 0 - OpMemberDecorate %type_Material 1 Offset 144 - OpDecorate %type_Material Block - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%mat4v4float = OpTypeMatrix %v4float 4 - %v3float = OpTypeVector %float 3 - %v2float = OpTypeVector %float 2 - %int = OpTypeInt 32 1 - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 - %uint_7 = OpConstant %uint 7 - %uint_4 = OpConstant %uint 4 - %v2int = OpTypeVector %int 2 -%float_0_00100000005 = OpConstant %float 0.00100000005 - %int_2 = OpConstant %int 2 - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 - %float_0 = OpConstant %float 0 - %49 = OpConstantComposite %v2float %float_0 %float_0 - %float_1 = OpConstant %float 1 - %int_4 = OpConstant %int 4 - %int_11 = OpConstant %int 11 -%float_0_249500006 = OpConstant %float 0.249500006 - %54 = OpConstantComposite %v2float %float_0_249500006 %float_0_249500006 -%float_0_499992371 = OpConstant %float 0.499992371 - %56 = OpConstantComposite %v2float %float_0_499992371 %float_0_499992371 - %int_32 = OpConstant %int 32 - %int_53 = OpConstant %int 53 - %int_57 = OpConstant %int 57 - %int_80 = OpConstant %int 80 - %int_82 = OpConstant %int 82 - %int_98 = OpConstant %int 98 - %uint_1 = OpConstant %uint 1 -%mat3v3float = OpTypeMatrix %v3float 3 - %float_2 = OpConstant %float 2 - %float_n1 = OpConstant %float -1 - %67 = OpConstantComposite %v2float %float_n1 %float_n1 - %bool = OpTypeBool - %float_n0_5 = OpConstant %float -0.5 - %70 = OpConstantComposite %v3float %float_0 %float_0 %float_1 -%float_0_333299994 = OpConstant %float 0.333299994 - %uint_5 = OpConstant %uint 5 -%float_347_834503 = OpConstant %float 347.834503 -%float_3343_28369 = OpConstant %float 3343.28369 - %75 = OpConstantComposite %v2float %float_347_834503 %float_3343_28369 - %float_1000 = OpConstant %float 1000 -%_arr_v4float_uint_2 = OpTypeArray %v4float %uint_2 -%_arr_v4float_uint_7 = OpTypeArray %v4float %uint_7 -%_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4 - %type_View = OpTypeStruct %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %v3float %float %v3float %float %v3float %float %v3float %float %v3float %float %v4float %v4float %v3float %float %v3float %float %v3float %float %v3float %float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %v3float %float %v3float %float %v3float %float %mat4v4float %mat4v4float %mat4v4float %v4float %v4float %v2float %v2float %v4float %v4float %v4float %v4float %int %float %float %float %v4float %v4float %v4float %v2float %float %float %float %float %float %float %v3float %float %float %float %float %float %float %float %float %uint %uint %uint %uint %float %float %float %float %float %v4float %v3float %float %_arr_v4float_uint_2 %_arr_v4float_uint_2 %v4float %v4float %float %float %float %float %float %float %float %float %float %float %float %float %v3float %float %v3float %float %float %float %float %float %float %float %float %float %float %float %float %float %v4float %uint %uint %uint %uint %v4float %v3float %float %v4float %float %float %float %float %v4float %_arr_v4float_uint_7 %float %float %float %float %uint %float %float %float %v3float %int %_arr_v4float_uint_4 %_arr_v4float_uint_4 %float %float %float %float %v2int %float %float %v3float %float %v3float %float %v2float %float %float %v3float %float %v3float %float %v3float %float %v3float %float %float %float -%_ptr_Uniform_type_View = OpTypePointer Uniform %type_View -%type_PrimitiveDither = OpTypeStruct %float -%_ptr_Uniform_type_PrimitiveDither = OpTypePointer Uniform %type_PrimitiveDither -%type_PrimitiveFade = OpTypeStruct %v2float -%_ptr_Uniform_type_PrimitiveFade = OpTypePointer Uniform %type_PrimitiveFade - %uint_9 = OpConstant %uint 9 -%_arr_v4float_uint_9 = OpTypeArray %v4float %uint_9 - %uint_3 = OpConstant %uint 3 -%_arr_v4float_uint_3 = OpTypeArray %v4float %uint_3 -%type_Material = OpTypeStruct %_arr_v4float_uint_9 %_arr_v4float_uint_3 -%_ptr_Uniform_type_Material = OpTypePointer Uniform %type_Material -%type_2d_image = OpTypeImage %float 2D 2 0 0 1 Unknown -%_ptr_UniformConstant_type_2d_image = OpTypePointer UniformConstant %type_2d_image -%type_sampler = OpTypeSampler -%_ptr_UniformConstant_type_sampler = OpTypePointer UniformConstant %type_sampler -%_ptr_Input_v4float = OpTypePointer Input %v4float -%_arr_v4float_uint_1 = OpTypeArray %v4float %uint_1 -%_ptr_Input__arr_v4float_uint_1 = OpTypePointer Input %_arr_v4float_uint_1 -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_Input_bool = OpTypePointer Input %bool -%_ptr_Output_float = OpTypePointer Output %float -%_ptr_Output_v4float = OpTypePointer Output %v4float - %void = OpTypeVoid - %93 = OpTypeFunction %void -%_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float -%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float -%_ptr_Uniform_float = OpTypePointer Uniform %float -%type_sampled_image = OpTypeSampledImage %type_2d_image - %View = OpVariable %_ptr_Uniform_type_View Uniform -%PrimitiveDither = OpVariable %_ptr_Uniform_type_PrimitiveDither Uniform -%PrimitiveFade = OpVariable %_ptr_Uniform_type_PrimitiveFade Uniform - %Material = OpVariable %_ptr_Uniform_type_Material Uniform -%Material_Texture2D_0 = OpVariable %_ptr_UniformConstant_type_2d_image UniformConstant -%Material_Texture2D_0Sampler = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant -%Material_Texture2D_3 = OpVariable %_ptr_UniformConstant_type_2d_image UniformConstant -%Material_Texture2D_3Sampler = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input -%in_var_TEXCOORD6 = OpVariable %_ptr_Input_v4float Input -%in_var_TEXCOORD7 = OpVariable %_ptr_Input_v4float Input -%in_var_TEXCOORD10_centroid = OpVariable %_ptr_Input_v4float Input -%in_var_TEXCOORD11_centroid = OpVariable %_ptr_Input_v4float Input -%in_var_TEXCOORD0 = OpVariable %_ptr_Input__arr_v4float_uint_1 Input -%in_var_PRIMITIVE_ID = OpVariable %_ptr_Input_uint Input -%gl_FrontFacing = OpVariable %_ptr_Input_bool Input -%gl_FragDepth = OpVariable %_ptr_Output_float Output -%out_var_SV_Target0 = OpVariable %_ptr_Output_v4float Output - %98 = OpUndef %float - %99 = OpConstantNull %v2float -%float_0_015625 = OpConstant %float 0.015625 - %101 = OpConstantComposite %v2float %float_0_015625 %float_0_015625 -%float_0_166666672 = OpConstant %float 0.166666672 - %103 = OpUndef %float - %104 = OpConstantNull %v3float -%MainPixelShader = OpFunction %void None %93 - %105 = OpLabel - %106 = OpLoad %v4float %gl_FragCoord - %107 = OpLoad %v4float %in_var_TEXCOORD6 - %108 = OpLoad %v4float %in_var_TEXCOORD7 - %109 = OpLoad %v4float %in_var_TEXCOORD10_centroid - %110 = OpLoad %v4float %in_var_TEXCOORD11_centroid - %111 = OpLoad %_arr_v4float_uint_1 %in_var_TEXCOORD0 - %112 = OpAccessChain %_ptr_Uniform_mat4v4float %View %int_4 - %113 = OpLoad %mat4v4float %112 - %114 = OpAccessChain %_ptr_Uniform_mat4v4float %View %int_11 - %115 = OpLoad %mat4v4float %114 - %116 = OpAccessChain %_ptr_Uniform_v3float %View %int_32 - %117 = OpLoad %v3float %116 - %118 = OpAccessChain %_ptr_Uniform_v4float %View %int_53 - %119 = OpLoad %v4float %118 - %120 = OpAccessChain %_ptr_Uniform_v4float %View %int_57 - %121 = OpLoad %v4float %120 - %122 = OpAccessChain %_ptr_Uniform_float %View %int_80 - %123 = OpLoad %float %122 - %124 = OpCompositeExtract %v4float %111 0 - %125 = OpVectorShuffle %v2float %99 %124 2 3 - %126 = OpVectorShuffle %v3float %109 %109 0 1 2 - %127 = OpVectorShuffle %v3float %110 %110 0 1 2 - %128 = OpExtInst %v3float %1 Cross %127 %126 - %129 = OpCompositeExtract %float %110 3 - %130 = OpCompositeConstruct %v3float %129 %129 %129 - %131 = OpFMul %v3float %128 %130 - %132 = OpCompositeConstruct %mat3v3float %126 %131 %127 - %133 = OpVectorShuffle %v2float %106 %106 0 1 - %134 = OpVectorShuffle %v2float %121 %121 0 1 - %135 = OpFSub %v2float %133 %134 - %136 = OpCompositeExtract %float %106 2 - %137 = OpCompositeConstruct %v4float %103 %103 %136 %float_1 - %138 = OpCompositeExtract %float %106 3 - %139 = OpCompositeConstruct %v4float %138 %138 %138 %138 - %140 = OpFMul %v4float %137 %139 - %141 = OpCompositeExtract %float %106 0 - %142 = OpCompositeExtract %float %106 1 - %143 = OpCompositeConstruct %v4float %141 %142 %136 %float_1 - %144 = OpMatrixTimesVector %v4float %115 %143 - %145 = OpVectorShuffle %v3float %144 %144 0 1 2 - %146 = OpCompositeExtract %float %144 3 - %147 = OpCompositeConstruct %v3float %146 %146 %146 - %148 = OpFDiv %v3float %145 %147 - %149 = OpFSub %v3float %148 %117 - %150 = OpFNegate %v3float %148 - %151 = OpExtInst %v3float %1 Normalize %150 - %152 = OpVectorTimesMatrix %v3float %151 %132 - %153 = OpVectorShuffle %v2float %152 %152 0 1 - %154 = OpFMul %v2float %153 %67 - %155 = OpCompositeExtract %float %152 2 - %156 = OpCompositeConstruct %v2float %155 %155 - %157 = OpFDiv %v2float %154 %156 - %158 = OpAccessChain %_ptr_Uniform_float %Material %int_1 %int_0 %int_0 - %159 = OpLoad %float %158 - %160 = OpCompositeConstruct %v2float %159 %159 - %161 = OpFMul %v2float %160 %157 - %162 = OpDot %float %151 %127 - %163 = OpExtInst %float %1 FAbs %162 - %164 = OpExtInst %float %1 FMax %163 %float_0 - %165 = OpExtInst %float %1 FMin %164 %float_1 - %166 = OpAccessChain %_ptr_Uniform_float %Material %int_1 %int_0 %int_1 - %167 = OpLoad %float %166 - %168 = OpAccessChain %_ptr_Uniform_float %Material %int_1 %int_0 %int_2 - %169 = OpLoad %float %168 - %170 = OpExtInst %float %1 FMix %167 %169 %165 - %171 = OpExtInst %float %1 Floor %170 - %172 = OpFDiv %float %float_1 %170 - %173 = OpCompositeConstruct %v2float %172 %172 - %174 = OpFMul %v2float %161 %173 - %175 = OpDPdx %v2float %125 - %176 = OpDPdy %v2float %125 - %177 = OpLoad %type_2d_image %Material_Texture2D_0 - %178 = OpLoad %type_sampler %Material_Texture2D_0Sampler - OpBranch %179 - %179 = OpLabel - %180 = OpPhi %float %float_1 %105 %181 %182 - %183 = OpPhi %v2float %49 %105 %184 %182 - %185 = OpPhi %int %int_0 %105 %186 %182 - %187 = OpPhi %float %float_1 %105 %188 %182 - %189 = OpPhi %float %float_1 %105 %180 %182 - %190 = OpConvertSToF %float %185 - %191 = OpFAdd %float %171 %float_2 - %192 = OpFOrdLessThan %bool %190 %191 - OpLoopMerge %193 %182 None - OpBranchConditional %192 %194 %193 - %194 = OpLabel - %195 = OpFAdd %v2float %125 %183 - %196 = OpSampledImage %type_sampled_image %177 %178 - %197 = OpImageSampleExplicitLod %v4float %196 %195 Grad %175 %176 - %188 = OpCompositeExtract %float %197 1 - %198 = OpFOrdLessThan %bool %180 %188 - OpSelectionMerge %182 None - OpBranchConditional %198 %199 %182 - %199 = OpLabel - %200 = OpFSub %float %189 %187 - %201 = OpFSub %float %188 %180 - %202 = OpFAdd %float %200 %201 - %203 = OpFDiv %float %201 %202 - %204 = OpFMul %float %189 %203 - %205 = OpFSub %float %float_1 %203 - %206 = OpFMul %float %180 %205 - %207 = OpFAdd %float %204 %206 - %208 = OpCompositeConstruct %v2float %203 %203 - %209 = OpFMul %v2float %208 %174 - %210 = OpFSub %v2float %183 %209 - OpBranch %193 - %182 = OpLabel - %181 = OpFSub %float %180 %172 - %184 = OpFAdd %v2float %183 %174 - %186 = OpIAdd %int %185 %int_1 - OpBranch %179 - %193 = OpLabel - %211 = OpPhi %float %98 %179 %207 %199 - %212 = OpPhi %v2float %183 %179 %210 %199 - %213 = OpVectorShuffle %v2float %212 %104 0 1 - %214 = OpFAdd %v2float %125 %213 - %215 = OpAccessChain %_ptr_Uniform_float %View %int_82 - %216 = OpLoad %float %215 - %217 = OpSampledImage %type_sampled_image %177 %178 - %218 = OpImageSampleImplicitLod %v4float %217 %214 Bias %216 - %219 = OpCompositeExtract %float %218 0 - %220 = OpAccessChain %_ptr_Uniform_float %Material %int_1 %int_2 %int_1 - %221 = OpLoad %float %220 - %222 = OpFMul %float %219 %221 - %223 = OpFSub %float %float_1 %222 - %224 = OpExtInst %float %1 FMax %223 %float_0 - %225 = OpExtInst %float %1 FMin %224 %float_1 - %226 = OpAccessChain %_ptr_Uniform_float %View %int_98 %int_0 - %227 = OpLoad %float %226 - %228 = OpCompositeConstruct %v2float %227 %227 - %229 = OpFAdd %v2float %135 %228 - %230 = OpCompositeExtract %float %229 0 - %231 = OpConvertFToU %uint %230 - %232 = OpCompositeExtract %float %229 1 - %233 = OpConvertFToU %uint %232 - %234 = OpIMul %uint %uint_2 %233 - %235 = OpIAdd %uint %231 %234 - %236 = OpUMod %uint %235 %uint_5 - %237 = OpConvertUToF %float %236 - %238 = OpFMul %v2float %135 %101 - %239 = OpLoad %type_2d_image %Material_Texture2D_3 - %240 = OpLoad %type_sampler %Material_Texture2D_3Sampler - %241 = OpSampledImage %type_sampled_image %239 %240 - %242 = OpImageSampleImplicitLod %v4float %241 %238 Bias %216 - %243 = OpCompositeExtract %float %242 0 - %244 = OpAccessChain %_ptr_Uniform_float %Material %int_1 %int_2 %int_2 - %245 = OpLoad %float %244 - %246 = OpFMul %float %243 %245 - %247 = OpFAdd %float %237 %246 - %248 = OpFMul %float %247 %float_0_166666672 - %249 = OpFAdd %float %225 %248 - %250 = OpFAdd %float %249 %float_n0_5 - %251 = OpCompositeExtract %float %218 2 - %252 = OpFAdd %float %251 %250 - %253 = OpSampledImage %type_sampled_image %239 %240 - %254 = OpImageSampleImplicitLod %v4float %253 %238 Bias %216 - %255 = OpCompositeExtract %float %254 0 - %256 = OpFAdd %float %237 %255 - %257 = OpFMul %float %256 %float_0_166666672 - %258 = OpAccessChain %_ptr_Uniform_float %PrimitiveFade %int_0 %int_0 - %259 = OpLoad %float %258 - %260 = OpFMul %float %123 %259 - %261 = OpAccessChain %_ptr_Uniform_float %PrimitiveFade %int_0 %int_1 - %262 = OpLoad %float %261 - %263 = OpFAdd %float %260 %262 - %264 = OpExtInst %float %1 FClamp %263 %float_0 %float_1 - %265 = OpFAdd %float %264 %257 - %266 = OpFAdd %float %265 %float_n0_5 - %267 = OpFMul %float %252 %266 - %268 = OpFSub %float %float_1 %211 - %269 = OpFMul %float %268 %159 - %270 = OpCompositeExtract %float %212 0 - %271 = OpCompositeExtract %float %212 1 - %272 = OpCompositeConstruct %v3float %270 %271 %269 - %273 = OpDot %float %272 %272 - %274 = OpExtInst %float %1 Sqrt %273 - %275 = OpDPdx %v2float %125 - %276 = OpExtInst %v2float %1 FAbs %275 - %277 = OpDot %float %276 %276 - %278 = OpExtInst %float %1 Sqrt %277 - %279 = OpDPdx %v3float %149 - %280 = OpDot %float %279 %279 - %281 = OpExtInst %float %1 Sqrt %280 - %282 = OpFDiv %float %278 %281 - %283 = OpDPdy %v2float %125 - %284 = OpExtInst %v2float %1 FAbs %283 - %285 = OpDot %float %284 %284 - %286 = OpExtInst %float %1 Sqrt %285 - %287 = OpDPdy %v3float %149 - %288 = OpDot %float %287 %287 - %289 = OpExtInst %float %1 Sqrt %288 - %290 = OpFDiv %float %286 %289 - %291 = OpExtInst %float %1 FMax %282 %290 - %292 = OpCompositeExtract %v4float %113 0 - %293 = OpVectorShuffle %v3float %292 %292 0 1 2 - %294 = OpCompositeExtract %v4float %113 1 - %295 = OpVectorShuffle %v3float %294 %294 0 1 2 - %296 = OpCompositeExtract %v4float %113 2 - %297 = OpVectorShuffle %v3float %296 %296 0 1 2 - %298 = OpCompositeConstruct %mat3v3float %293 %295 %297 - %299 = OpMatrixTimesVector %v3float %298 %70 - %300 = OpDot %float %299 %151 - %301 = OpExtInst %float %1 FAbs %300 - %302 = OpFDiv %float %291 %301 - %303 = OpFDiv %float %274 %302 - %304 = OpAccessChain %_ptr_Uniform_float %PrimitiveDither %int_0 - %305 = OpLoad %float %304 - %306 = OpFOrdNotEqual %bool %305 %float_0 - OpSelectionMerge %307 None - OpBranchConditional %306 %308 %307 - %308 = OpLabel - %309 = OpExtInst %float %1 FAbs %305 - %310 = OpFOrdGreaterThan %bool %309 %float_0_00100000005 - OpSelectionMerge %311 None - OpBranchConditional %310 %312 %311 - %312 = OpLabel - %313 = OpExtInst %v2float %1 Floor %133 - %314 = OpDot %float %313 %75 - %315 = OpExtInst %float %1 Cos %314 - %316 = OpFMul %float %315 %float_1000 - %317 = OpExtInst %float %1 Fract %316 - %318 = OpFOrdLessThan %bool %305 %float_0 - %319 = OpFAdd %float %305 %float_1 - %320 = OpFOrdGreaterThan %bool %319 %317 - %321 = OpFOrdLessThan %bool %305 %317 - %322 = OpSelect %bool %318 %320 %321 - %323 = OpSelect %float %322 %float_1 %float_0 - %324 = OpFSub %float %323 %float_0_00100000005 - %325 = OpFOrdLessThan %bool %324 %float_0 - OpSelectionMerge %326 None - OpBranchConditional %325 %327 %326 - %327 = OpLabel - OpKill - %326 = OpLabel - OpBranch %311 - %311 = OpLabel - OpBranch %307 - %307 = OpLabel - %328 = OpFSub %float %267 %float_0_333299994 - %329 = OpFOrdLessThan %bool %328 %float_0 - OpSelectionMerge %330 None - OpBranchConditional %329 %331 %330 - %331 = OpLabel - OpKill - %330 = OpLabel - %332 = OpCompositeExtract %float %140 2 - %333 = OpCompositeExtract %float %140 3 - %334 = OpFAdd %float %333 %303 - %335 = OpFDiv %float %332 %334 - %336 = OpExtInst %float %1 FMin %335 %136 - %337 = OpVectorShuffle %v2float %107 %107 0 1 - %338 = OpCompositeExtract %float %107 3 - %339 = OpCompositeConstruct %v2float %338 %338 - %340 = OpFDiv %v2float %337 %339 - %341 = OpVectorShuffle %v2float %119 %119 0 1 - %342 = OpFSub %v2float %340 %341 - %343 = OpVectorShuffle %v2float %108 %108 0 1 - %344 = OpCompositeExtract %float %108 3 - %345 = OpCompositeConstruct %v2float %344 %344 - %346 = OpFDiv %v2float %343 %345 - %347 = OpVectorShuffle %v2float %119 %119 2 3 - %348 = OpFSub %v2float %346 %347 - %349 = OpFSub %v2float %342 %348 - %350 = OpFMul %v2float %349 %54 - %351 = OpFAdd %v2float %350 %56 - %352 = OpVectorShuffle %v4float %351 %49 0 1 2 3 - OpStore %gl_FragDepth %336 - OpStore %out_var_SV_Target0 %352 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-ue4-no-opt/asm/frag/phi-variable-declaration.asm.invalid.frag b/third_party/spirv-cross/shaders-ue4-no-opt/asm/frag/phi-variable-declaration.asm.invalid.frag deleted file mode 100644 index eba220ba4e..0000000000 --- a/third_party/spirv-cross/shaders-ue4-no-opt/asm/frag/phi-variable-declaration.asm.invalid.frag +++ /dev/null @@ -1,878 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 353 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_GOOGLE_hlsl_functionality1" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %MainPixelShader "main" %gl_FragCoord %in_var_TEXCOORD6 %in_var_TEXCOORD7 %in_var_TEXCOORD10_centroid %in_var_TEXCOORD11_centroid %in_var_TEXCOORD0 %in_var_PRIMITIVE_ID %gl_FrontFacing %gl_FragDepth %out_var_SV_Target0 - OpExecutionMode %MainPixelShader OriginUpperLeft - OpExecutionMode %MainPixelShader DepthReplacing - OpExecutionMode %MainPixelShader DepthLess - OpSource HLSL 600 - OpName %type_View "type.View" - OpMemberName %type_View 0 "View_TranslatedWorldToClip" - OpMemberName %type_View 1 "View_WorldToClip" - OpMemberName %type_View 2 "View_ClipToWorld" - OpMemberName %type_View 3 "View_TranslatedWorldToView" - OpMemberName %type_View 4 "View_ViewToTranslatedWorld" - OpMemberName %type_View 5 "View_TranslatedWorldToCameraView" - OpMemberName %type_View 6 "View_CameraViewToTranslatedWorld" - OpMemberName %type_View 7 "View_ViewToClip" - OpMemberName %type_View 8 "View_ViewToClipNoAA" - OpMemberName %type_View 9 "View_ClipToView" - OpMemberName %type_View 10 "View_ClipToTranslatedWorld" - OpMemberName %type_View 11 "View_SVPositionToTranslatedWorld" - OpMemberName %type_View 12 "View_ScreenToWorld" - OpMemberName %type_View 13 "View_ScreenToTranslatedWorld" - OpMemberName %type_View 14 "View_ViewForward" - OpMemberName %type_View 15 "PrePadding_View_908" - OpMemberName %type_View 16 "View_ViewUp" - OpMemberName %type_View 17 "PrePadding_View_924" - OpMemberName %type_View 18 "View_ViewRight" - OpMemberName %type_View 19 "PrePadding_View_940" - OpMemberName %type_View 20 "View_HMDViewNoRollUp" - OpMemberName %type_View 21 "PrePadding_View_956" - OpMemberName %type_View 22 "View_HMDViewNoRollRight" - OpMemberName %type_View 23 "PrePadding_View_972" - OpMemberName %type_View 24 "View_InvDeviceZToWorldZTransform" - OpMemberName %type_View 25 "View_ScreenPositionScaleBias" - OpMemberName %type_View 26 "View_WorldCameraOrigin" - OpMemberName %type_View 27 "PrePadding_View_1020" - OpMemberName %type_View 28 "View_TranslatedWorldCameraOrigin" - OpMemberName %type_View 29 "PrePadding_View_1036" - OpMemberName %type_View 30 "View_WorldViewOrigin" - OpMemberName %type_View 31 "PrePadding_View_1052" - OpMemberName %type_View 32 "View_PreViewTranslation" - OpMemberName %type_View 33 "PrePadding_View_1068" - OpMemberName %type_View 34 "View_PrevProjection" - OpMemberName %type_View 35 "View_PrevViewProj" - OpMemberName %type_View 36 "View_PrevViewRotationProj" - OpMemberName %type_View 37 "View_PrevViewToClip" - OpMemberName %type_View 38 "View_PrevClipToView" - OpMemberName %type_View 39 "View_PrevTranslatedWorldToClip" - OpMemberName %type_View 40 "View_PrevTranslatedWorldToView" - OpMemberName %type_View 41 "View_PrevViewToTranslatedWorld" - OpMemberName %type_View 42 "View_PrevTranslatedWorldToCameraView" - OpMemberName %type_View 43 "View_PrevCameraViewToTranslatedWorld" - OpMemberName %type_View 44 "View_PrevWorldCameraOrigin" - OpMemberName %type_View 45 "PrePadding_View_1724" - OpMemberName %type_View 46 "View_PrevWorldViewOrigin" - OpMemberName %type_View 47 "PrePadding_View_1740" - OpMemberName %type_View 48 "View_PrevPreViewTranslation" - OpMemberName %type_View 49 "PrePadding_View_1756" - OpMemberName %type_View 50 "View_PrevInvViewProj" - OpMemberName %type_View 51 "View_PrevScreenToTranslatedWorld" - OpMemberName %type_View 52 "View_ClipToPrevClip" - OpMemberName %type_View 53 "View_TemporalAAJitter" - OpMemberName %type_View 54 "View_GlobalClippingPlane" - OpMemberName %type_View 55 "View_FieldOfViewWideAngles" - OpMemberName %type_View 56 "View_PrevFieldOfViewWideAngles" - OpMemberName %type_View 57 "View_ViewRectMin" - OpMemberName %type_View 58 "View_ViewSizeAndInvSize" - OpMemberName %type_View 59 "View_BufferSizeAndInvSize" - OpMemberName %type_View 60 "View_BufferBilinearUVMinMax" - OpMemberName %type_View 61 "View_NumSceneColorMSAASamples" - OpMemberName %type_View 62 "View_PreExposure" - OpMemberName %type_View 63 "View_OneOverPreExposure" - OpMemberName %type_View 64 "PrePadding_View_2076" - OpMemberName %type_View 65 "View_DiffuseOverrideParameter" - OpMemberName %type_View 66 "View_SpecularOverrideParameter" - OpMemberName %type_View 67 "View_NormalOverrideParameter" - OpMemberName %type_View 68 "View_RoughnessOverrideParameter" - OpMemberName %type_View 69 "View_PrevFrameGameTime" - OpMemberName %type_View 70 "View_PrevFrameRealTime" - OpMemberName %type_View 71 "View_OutOfBoundsMask" - OpMemberName %type_View 72 "PrePadding_View_2148" - OpMemberName %type_View 73 "PrePadding_View_2152" - OpMemberName %type_View 74 "PrePadding_View_2156" - OpMemberName %type_View 75 "View_WorldCameraMovementSinceLastFrame" - OpMemberName %type_View 76 "View_CullingSign" - OpMemberName %type_View 77 "View_NearPlane" - OpMemberName %type_View 78 "View_AdaptiveTessellationFactor" - OpMemberName %type_View 79 "View_GameTime" - OpMemberName %type_View 80 "View_RealTime" - OpMemberName %type_View 81 "View_DeltaTime" - OpMemberName %type_View 82 "View_MaterialTextureMipBias" - OpMemberName %type_View 83 "View_MaterialTextureDerivativeMultiply" - OpMemberName %type_View 84 "View_Random" - OpMemberName %type_View 85 "View_FrameNumber" - OpMemberName %type_View 86 "View_StateFrameIndexMod8" - OpMemberName %type_View 87 "View_StateFrameIndex" - OpMemberName %type_View 88 "View_CameraCut" - OpMemberName %type_View 89 "View_UnlitViewmodeMask" - OpMemberName %type_View 90 "PrePadding_View_2228" - OpMemberName %type_View 91 "PrePadding_View_2232" - OpMemberName %type_View 92 "PrePadding_View_2236" - OpMemberName %type_View 93 "View_DirectionalLightColor" - OpMemberName %type_View 94 "View_DirectionalLightDirection" - OpMemberName %type_View 95 "PrePadding_View_2268" - OpMemberName %type_View 96 "View_TranslucencyLightingVolumeMin" - OpMemberName %type_View 97 "View_TranslucencyLightingVolumeInvSize" - OpMemberName %type_View 98 "View_TemporalAAParams" - OpMemberName %type_View 99 "View_CircleDOFParams" - OpMemberName %type_View 100 "View_DepthOfFieldSensorWidth" - OpMemberName %type_View 101 "View_DepthOfFieldFocalDistance" - OpMemberName %type_View 102 "View_DepthOfFieldScale" - OpMemberName %type_View 103 "View_DepthOfFieldFocalLength" - OpMemberName %type_View 104 "View_DepthOfFieldFocalRegion" - OpMemberName %type_View 105 "View_DepthOfFieldNearTransitionRegion" - OpMemberName %type_View 106 "View_DepthOfFieldFarTransitionRegion" - OpMemberName %type_View 107 "View_MotionBlurNormalizedToPixel" - OpMemberName %type_View 108 "View_bSubsurfacePostprocessEnabled" - OpMemberName %type_View 109 "View_GeneralPurposeTweak" - OpMemberName %type_View 110 "View_DemosaicVposOffset" - OpMemberName %type_View 111 "PrePadding_View_2412" - OpMemberName %type_View 112 "View_IndirectLightingColorScale" - OpMemberName %type_View 113 "View_HDR32bppEncodingMode" - OpMemberName %type_View 114 "View_AtmosphericFogSunDirection" - OpMemberName %type_View 115 "View_AtmosphericFogSunPower" - OpMemberName %type_View 116 "View_AtmosphericFogPower" - OpMemberName %type_View 117 "View_AtmosphericFogDensityScale" - OpMemberName %type_View 118 "View_AtmosphericFogDensityOffset" - OpMemberName %type_View 119 "View_AtmosphericFogGroundOffset" - OpMemberName %type_View 120 "View_AtmosphericFogDistanceScale" - OpMemberName %type_View 121 "View_AtmosphericFogAltitudeScale" - OpMemberName %type_View 122 "View_AtmosphericFogHeightScaleRayleigh" - OpMemberName %type_View 123 "View_AtmosphericFogStartDistance" - OpMemberName %type_View 124 "View_AtmosphericFogDistanceOffset" - OpMemberName %type_View 125 "View_AtmosphericFogSunDiscScale" - OpMemberName %type_View 126 "View_AtmosphericFogSunDiscHalfApexAngleRadian" - OpMemberName %type_View 127 "PrePadding_View_2492" - OpMemberName %type_View 128 "View_AtmosphericFogSunDiscLuminance" - OpMemberName %type_View 129 "View_AtmosphericFogRenderMask" - OpMemberName %type_View 130 "View_AtmosphericFogInscatterAltitudeSampleNum" - OpMemberName %type_View 131 "PrePadding_View_2520" - OpMemberName %type_View 132 "PrePadding_View_2524" - OpMemberName %type_View 133 "View_AtmosphericFogSunColor" - OpMemberName %type_View 134 "View_NormalCurvatureToRoughnessScaleBias" - OpMemberName %type_View 135 "View_RenderingReflectionCaptureMask" - OpMemberName %type_View 136 "View_AmbientCubemapTint" - OpMemberName %type_View 137 "View_AmbientCubemapIntensity" - OpMemberName %type_View 138 "View_SkyLightParameters" - OpMemberName %type_View 139 "PrePadding_View_2584" - OpMemberName %type_View 140 "PrePadding_View_2588" - OpMemberName %type_View 141 "View_SkyLightColor" - OpMemberName %type_View 142 "View_SkyIrradianceEnvironmentMap" - OpMemberName %type_View 143 "View_MobilePreviewMode" - OpMemberName %type_View 144 "View_HMDEyePaddingOffset" - OpMemberName %type_View 145 "View_ReflectionCubemapMaxMip" - OpMemberName %type_View 146 "View_ShowDecalsMask" - OpMemberName %type_View 147 "View_DistanceFieldAOSpecularOcclusionMode" - OpMemberName %type_View 148 "View_IndirectCapsuleSelfShadowingIntensity" - OpMemberName %type_View 149 "PrePadding_View_2744" - OpMemberName %type_View 150 "PrePadding_View_2748" - OpMemberName %type_View 151 "View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight" - OpMemberName %type_View 152 "View_StereoPassIndex" - OpMemberName %type_View 153 "View_GlobalVolumeCenterAndExtent" - OpMemberName %type_View 154 "View_GlobalVolumeWorldToUVAddAndMul" - OpMemberName %type_View 155 "View_GlobalVolumeDimension" - OpMemberName %type_View 156 "View_GlobalVolumeTexelSize" - OpMemberName %type_View 157 "View_MaxGlobalDistance" - OpMemberName %type_View 158 "PrePadding_View_2908" - OpMemberName %type_View 159 "View_CursorPosition" - OpMemberName %type_View 160 "View_bCheckerboardSubsurfaceProfileRendering" - OpMemberName %type_View 161 "PrePadding_View_2924" - OpMemberName %type_View 162 "View_VolumetricFogInvGridSize" - OpMemberName %type_View 163 "PrePadding_View_2940" - OpMemberName %type_View 164 "View_VolumetricFogGridZParams" - OpMemberName %type_View 165 "PrePadding_View_2956" - OpMemberName %type_View 166 "View_VolumetricFogSVPosToVolumeUV" - OpMemberName %type_View 167 "View_VolumetricFogMaxDistance" - OpMemberName %type_View 168 "PrePadding_View_2972" - OpMemberName %type_View 169 "View_VolumetricLightmapWorldToUVScale" - OpMemberName %type_View 170 "PrePadding_View_2988" - OpMemberName %type_View 171 "View_VolumetricLightmapWorldToUVAdd" - OpMemberName %type_View 172 "PrePadding_View_3004" - OpMemberName %type_View 173 "View_VolumetricLightmapIndirectionTextureSize" - OpMemberName %type_View 174 "View_VolumetricLightmapBrickSize" - OpMemberName %type_View 175 "View_VolumetricLightmapBrickTexelSize" - OpMemberName %type_View 176 "View_StereoIPD" - OpMemberName %type_View 177 "View_IndirectLightingCacheShowFlag" - OpMemberName %type_View 178 "View_EyeToPixelSpreadAngle" - OpName %View "View" - OpName %type_PrimitiveDither "type.PrimitiveDither" - OpMemberName %type_PrimitiveDither 0 "PrimitiveDither_LODFactor" - OpName %PrimitiveDither "PrimitiveDither" - OpName %type_PrimitiveFade "type.PrimitiveFade" - OpMemberName %type_PrimitiveFade 0 "PrimitiveFade_FadeTimeScaleBias" - OpName %PrimitiveFade "PrimitiveFade" - OpName %type_Material "type.Material" - OpMemberName %type_Material 0 "Material_VectorExpressions" - OpMemberName %type_Material 1 "Material_ScalarExpressions" - OpName %Material "Material" - OpName %type_2d_image "type.2d.image" - OpName %Material_Texture2D_0 "Material_Texture2D_0" - OpName %type_sampler "type.sampler" - OpName %Material_Texture2D_0Sampler "Material_Texture2D_0Sampler" - OpName %Material_Texture2D_3 "Material_Texture2D_3" - OpName %Material_Texture2D_3Sampler "Material_Texture2D_3Sampler" - OpName %in_var_TEXCOORD6 "in.var.TEXCOORD6" - OpName %in_var_TEXCOORD7 "in.var.TEXCOORD7" - OpName %in_var_TEXCOORD10_centroid "in.var.TEXCOORD10_centroid" - OpName %in_var_TEXCOORD11_centroid "in.var.TEXCOORD11_centroid" - OpName %in_var_TEXCOORD0 "in.var.TEXCOORD0" - OpName %in_var_PRIMITIVE_ID "in.var.PRIMITIVE_ID" - OpName %out_var_SV_Target0 "out.var.SV_Target0" - OpName %MainPixelShader "MainPixelShader" - OpName %type_sampled_image "type.sampled.image" - OpDecorate %gl_FragCoord BuiltIn FragCoord - OpDecorateString %gl_FragCoord UserSemantic "SV_Position" - OpDecorateString %in_var_TEXCOORD6 UserSemantic "TEXCOORD6" - OpDecorateString %in_var_TEXCOORD7 UserSemantic "TEXCOORD7" - OpDecorateString %in_var_TEXCOORD10_centroid UserSemantic "TEXCOORD10_centroid" - OpDecorateString %in_var_TEXCOORD11_centroid UserSemantic "TEXCOORD11_centroid" - OpDecorateString %in_var_TEXCOORD0 UserSemantic "TEXCOORD0" - OpDecorateString %in_var_PRIMITIVE_ID UserSemantic "PRIMITIVE_ID" - OpDecorate %in_var_PRIMITIVE_ID Flat - OpDecorate %gl_FrontFacing BuiltIn FrontFacing - OpDecorateString %gl_FrontFacing UserSemantic "SV_IsFrontFace" - OpDecorate %gl_FrontFacing Flat - OpDecorate %gl_FragDepth BuiltIn FragDepth - OpDecorateString %gl_FragDepth UserSemantic "SV_DepthLessEqual" - OpDecorateString %out_var_SV_Target0 UserSemantic "SV_Target0" - OpDecorate %in_var_TEXCOORD6 Location 0 - OpDecorate %in_var_TEXCOORD7 Location 1 - OpDecorate %in_var_TEXCOORD10_centroid Location 2 - OpDecorate %in_var_TEXCOORD11_centroid Location 3 - OpDecorate %in_var_TEXCOORD0 Location 4 - OpDecorate %in_var_PRIMITIVE_ID Location 5 - OpDecorate %out_var_SV_Target0 Location 0 - OpDecorate %View DescriptorSet 0 - OpDecorate %View Binding 0 - OpDecorate %PrimitiveDither DescriptorSet 0 - OpDecorate %PrimitiveDither Binding 1 - OpDecorate %PrimitiveFade DescriptorSet 0 - OpDecorate %PrimitiveFade Binding 2 - OpDecorate %Material DescriptorSet 0 - OpDecorate %Material Binding 3 - OpDecorate %Material_Texture2D_0 DescriptorSet 0 - OpDecorate %Material_Texture2D_0 Binding 0 - OpDecorate %Material_Texture2D_0Sampler DescriptorSet 0 - OpDecorate %Material_Texture2D_0Sampler Binding 0 - OpDecorate %Material_Texture2D_3 DescriptorSet 0 - OpDecorate %Material_Texture2D_3 Binding 1 - OpDecorate %Material_Texture2D_3Sampler DescriptorSet 0 - OpDecorate %Material_Texture2D_3Sampler Binding 1 - OpDecorate %_arr_v4float_uint_2 ArrayStride 16 - OpDecorate %_arr_v4float_uint_7 ArrayStride 16 - OpDecorate %_arr_v4float_uint_4 ArrayStride 16 - OpMemberDecorate %type_View 0 Offset 0 - OpMemberDecorate %type_View 0 MatrixStride 16 - OpMemberDecorate %type_View 0 ColMajor - OpMemberDecorate %type_View 1 Offset 64 - OpMemberDecorate %type_View 1 MatrixStride 16 - OpMemberDecorate %type_View 1 ColMajor - OpMemberDecorate %type_View 2 Offset 128 - OpMemberDecorate %type_View 2 MatrixStride 16 - OpMemberDecorate %type_View 2 ColMajor - OpMemberDecorate %type_View 3 Offset 192 - OpMemberDecorate %type_View 3 MatrixStride 16 - OpMemberDecorate %type_View 3 ColMajor - OpMemberDecorate %type_View 4 Offset 256 - OpMemberDecorate %type_View 4 MatrixStride 16 - OpMemberDecorate %type_View 4 ColMajor - OpMemberDecorate %type_View 5 Offset 320 - OpMemberDecorate %type_View 5 MatrixStride 16 - OpMemberDecorate %type_View 5 ColMajor - OpMemberDecorate %type_View 6 Offset 384 - OpMemberDecorate %type_View 6 MatrixStride 16 - OpMemberDecorate %type_View 6 ColMajor - OpMemberDecorate %type_View 7 Offset 448 - OpMemberDecorate %type_View 7 MatrixStride 16 - OpMemberDecorate %type_View 7 ColMajor - OpMemberDecorate %type_View 8 Offset 512 - OpMemberDecorate %type_View 8 MatrixStride 16 - OpMemberDecorate %type_View 8 ColMajor - OpMemberDecorate %type_View 9 Offset 576 - OpMemberDecorate %type_View 9 MatrixStride 16 - OpMemberDecorate %type_View 9 ColMajor - OpMemberDecorate %type_View 10 Offset 640 - OpMemberDecorate %type_View 10 MatrixStride 16 - OpMemberDecorate %type_View 10 ColMajor - OpMemberDecorate %type_View 11 Offset 704 - OpMemberDecorate %type_View 11 MatrixStride 16 - OpMemberDecorate %type_View 11 ColMajor - OpMemberDecorate %type_View 12 Offset 768 - OpMemberDecorate %type_View 12 MatrixStride 16 - OpMemberDecorate %type_View 12 ColMajor - OpMemberDecorate %type_View 13 Offset 832 - OpMemberDecorate %type_View 13 MatrixStride 16 - OpMemberDecorate %type_View 13 ColMajor - OpMemberDecorate %type_View 14 Offset 896 - OpMemberDecorate %type_View 15 Offset 908 - OpMemberDecorate %type_View 16 Offset 912 - OpMemberDecorate %type_View 17 Offset 924 - OpMemberDecorate %type_View 18 Offset 928 - OpMemberDecorate %type_View 19 Offset 940 - OpMemberDecorate %type_View 20 Offset 944 - OpMemberDecorate %type_View 21 Offset 956 - OpMemberDecorate %type_View 22 Offset 960 - OpMemberDecorate %type_View 23 Offset 972 - OpMemberDecorate %type_View 24 Offset 976 - OpMemberDecorate %type_View 25 Offset 992 - OpMemberDecorate %type_View 26 Offset 1008 - OpMemberDecorate %type_View 27 Offset 1020 - OpMemberDecorate %type_View 28 Offset 1024 - OpMemberDecorate %type_View 29 Offset 1036 - OpMemberDecorate %type_View 30 Offset 1040 - OpMemberDecorate %type_View 31 Offset 1052 - OpMemberDecorate %type_View 32 Offset 1056 - OpMemberDecorate %type_View 33 Offset 1068 - OpMemberDecorate %type_View 34 Offset 1072 - OpMemberDecorate %type_View 34 MatrixStride 16 - OpMemberDecorate %type_View 34 ColMajor - OpMemberDecorate %type_View 35 Offset 1136 - OpMemberDecorate %type_View 35 MatrixStride 16 - OpMemberDecorate %type_View 35 ColMajor - OpMemberDecorate %type_View 36 Offset 1200 - OpMemberDecorate %type_View 36 MatrixStride 16 - OpMemberDecorate %type_View 36 ColMajor - OpMemberDecorate %type_View 37 Offset 1264 - OpMemberDecorate %type_View 37 MatrixStride 16 - OpMemberDecorate %type_View 37 ColMajor - OpMemberDecorate %type_View 38 Offset 1328 - OpMemberDecorate %type_View 38 MatrixStride 16 - OpMemberDecorate %type_View 38 ColMajor - OpMemberDecorate %type_View 39 Offset 1392 - OpMemberDecorate %type_View 39 MatrixStride 16 - OpMemberDecorate %type_View 39 ColMajor - OpMemberDecorate %type_View 40 Offset 1456 - OpMemberDecorate %type_View 40 MatrixStride 16 - OpMemberDecorate %type_View 40 ColMajor - OpMemberDecorate %type_View 41 Offset 1520 - OpMemberDecorate %type_View 41 MatrixStride 16 - OpMemberDecorate %type_View 41 ColMajor - OpMemberDecorate %type_View 42 Offset 1584 - OpMemberDecorate %type_View 42 MatrixStride 16 - OpMemberDecorate %type_View 42 ColMajor - OpMemberDecorate %type_View 43 Offset 1648 - OpMemberDecorate %type_View 43 MatrixStride 16 - OpMemberDecorate %type_View 43 ColMajor - OpMemberDecorate %type_View 44 Offset 1712 - OpMemberDecorate %type_View 45 Offset 1724 - OpMemberDecorate %type_View 46 Offset 1728 - OpMemberDecorate %type_View 47 Offset 1740 - OpMemberDecorate %type_View 48 Offset 1744 - OpMemberDecorate %type_View 49 Offset 1756 - OpMemberDecorate %type_View 50 Offset 1760 - OpMemberDecorate %type_View 50 MatrixStride 16 - OpMemberDecorate %type_View 50 ColMajor - OpMemberDecorate %type_View 51 Offset 1824 - OpMemberDecorate %type_View 51 MatrixStride 16 - OpMemberDecorate %type_View 51 ColMajor - OpMemberDecorate %type_View 52 Offset 1888 - OpMemberDecorate %type_View 52 MatrixStride 16 - OpMemberDecorate %type_View 52 ColMajor - OpMemberDecorate %type_View 53 Offset 1952 - OpMemberDecorate %type_View 54 Offset 1968 - OpMemberDecorate %type_View 55 Offset 1984 - OpMemberDecorate %type_View 56 Offset 1992 - OpMemberDecorate %type_View 57 Offset 2000 - OpMemberDecorate %type_View 58 Offset 2016 - OpMemberDecorate %type_View 59 Offset 2032 - OpMemberDecorate %type_View 60 Offset 2048 - OpMemberDecorate %type_View 61 Offset 2064 - OpMemberDecorate %type_View 62 Offset 2068 - OpMemberDecorate %type_View 63 Offset 2072 - OpMemberDecorate %type_View 64 Offset 2076 - OpMemberDecorate %type_View 65 Offset 2080 - OpMemberDecorate %type_View 66 Offset 2096 - OpMemberDecorate %type_View 67 Offset 2112 - OpMemberDecorate %type_View 68 Offset 2128 - OpMemberDecorate %type_View 69 Offset 2136 - OpMemberDecorate %type_View 70 Offset 2140 - OpMemberDecorate %type_View 71 Offset 2144 - OpMemberDecorate %type_View 72 Offset 2148 - OpMemberDecorate %type_View 73 Offset 2152 - OpMemberDecorate %type_View 74 Offset 2156 - OpMemberDecorate %type_View 75 Offset 2160 - OpMemberDecorate %type_View 76 Offset 2172 - OpMemberDecorate %type_View 77 Offset 2176 - OpMemberDecorate %type_View 78 Offset 2180 - OpMemberDecorate %type_View 79 Offset 2184 - OpMemberDecorate %type_View 80 Offset 2188 - OpMemberDecorate %type_View 81 Offset 2192 - OpMemberDecorate %type_View 82 Offset 2196 - OpMemberDecorate %type_View 83 Offset 2200 - OpMemberDecorate %type_View 84 Offset 2204 - OpMemberDecorate %type_View 85 Offset 2208 - OpMemberDecorate %type_View 86 Offset 2212 - OpMemberDecorate %type_View 87 Offset 2216 - OpMemberDecorate %type_View 88 Offset 2220 - OpMemberDecorate %type_View 89 Offset 2224 - OpMemberDecorate %type_View 90 Offset 2228 - OpMemberDecorate %type_View 91 Offset 2232 - OpMemberDecorate %type_View 92 Offset 2236 - OpMemberDecorate %type_View 93 Offset 2240 - OpMemberDecorate %type_View 94 Offset 2256 - OpMemberDecorate %type_View 95 Offset 2268 - OpMemberDecorate %type_View 96 Offset 2272 - OpMemberDecorate %type_View 97 Offset 2304 - OpMemberDecorate %type_View 98 Offset 2336 - OpMemberDecorate %type_View 99 Offset 2352 - OpMemberDecorate %type_View 100 Offset 2368 - OpMemberDecorate %type_View 101 Offset 2372 - OpMemberDecorate %type_View 102 Offset 2376 - OpMemberDecorate %type_View 103 Offset 2380 - OpMemberDecorate %type_View 104 Offset 2384 - OpMemberDecorate %type_View 105 Offset 2388 - OpMemberDecorate %type_View 106 Offset 2392 - OpMemberDecorate %type_View 107 Offset 2396 - OpMemberDecorate %type_View 108 Offset 2400 - OpMemberDecorate %type_View 109 Offset 2404 - OpMemberDecorate %type_View 110 Offset 2408 - OpMemberDecorate %type_View 111 Offset 2412 - OpMemberDecorate %type_View 112 Offset 2416 - OpMemberDecorate %type_View 113 Offset 2428 - OpMemberDecorate %type_View 114 Offset 2432 - OpMemberDecorate %type_View 115 Offset 2444 - OpMemberDecorate %type_View 116 Offset 2448 - OpMemberDecorate %type_View 117 Offset 2452 - OpMemberDecorate %type_View 118 Offset 2456 - OpMemberDecorate %type_View 119 Offset 2460 - OpMemberDecorate %type_View 120 Offset 2464 - OpMemberDecorate %type_View 121 Offset 2468 - OpMemberDecorate %type_View 122 Offset 2472 - OpMemberDecorate %type_View 123 Offset 2476 - OpMemberDecorate %type_View 124 Offset 2480 - OpMemberDecorate %type_View 125 Offset 2484 - OpMemberDecorate %type_View 126 Offset 2488 - OpMemberDecorate %type_View 127 Offset 2492 - OpMemberDecorate %type_View 128 Offset 2496 - OpMemberDecorate %type_View 129 Offset 2512 - OpMemberDecorate %type_View 130 Offset 2516 - OpMemberDecorate %type_View 131 Offset 2520 - OpMemberDecorate %type_View 132 Offset 2524 - OpMemberDecorate %type_View 133 Offset 2528 - OpMemberDecorate %type_View 134 Offset 2544 - OpMemberDecorate %type_View 135 Offset 2556 - OpMemberDecorate %type_View 136 Offset 2560 - OpMemberDecorate %type_View 137 Offset 2576 - OpMemberDecorate %type_View 138 Offset 2580 - OpMemberDecorate %type_View 139 Offset 2584 - OpMemberDecorate %type_View 140 Offset 2588 - OpMemberDecorate %type_View 141 Offset 2592 - OpMemberDecorate %type_View 142 Offset 2608 - OpMemberDecorate %type_View 143 Offset 2720 - OpMemberDecorate %type_View 144 Offset 2724 - OpMemberDecorate %type_View 145 Offset 2728 - OpMemberDecorate %type_View 146 Offset 2732 - OpMemberDecorate %type_View 147 Offset 2736 - OpMemberDecorate %type_View 148 Offset 2740 - OpMemberDecorate %type_View 149 Offset 2744 - OpMemberDecorate %type_View 150 Offset 2748 - OpMemberDecorate %type_View 151 Offset 2752 - OpMemberDecorate %type_View 152 Offset 2764 - OpMemberDecorate %type_View 153 Offset 2768 - OpMemberDecorate %type_View 154 Offset 2832 - OpMemberDecorate %type_View 155 Offset 2896 - OpMemberDecorate %type_View 156 Offset 2900 - OpMemberDecorate %type_View 157 Offset 2904 - OpMemberDecorate %type_View 158 Offset 2908 - OpMemberDecorate %type_View 159 Offset 2912 - OpMemberDecorate %type_View 160 Offset 2920 - OpMemberDecorate %type_View 161 Offset 2924 - OpMemberDecorate %type_View 162 Offset 2928 - OpMemberDecorate %type_View 163 Offset 2940 - OpMemberDecorate %type_View 164 Offset 2944 - OpMemberDecorate %type_View 165 Offset 2956 - OpMemberDecorate %type_View 166 Offset 2960 - OpMemberDecorate %type_View 167 Offset 2968 - OpMemberDecorate %type_View 168 Offset 2972 - OpMemberDecorate %type_View 169 Offset 2976 - OpMemberDecorate %type_View 170 Offset 2988 - OpMemberDecorate %type_View 171 Offset 2992 - OpMemberDecorate %type_View 172 Offset 3004 - OpMemberDecorate %type_View 173 Offset 3008 - OpMemberDecorate %type_View 174 Offset 3020 - OpMemberDecorate %type_View 175 Offset 3024 - OpMemberDecorate %type_View 176 Offset 3036 - OpMemberDecorate %type_View 177 Offset 3040 - OpMemberDecorate %type_View 178 Offset 3044 - OpDecorate %type_View Block - OpMemberDecorate %type_PrimitiveDither 0 Offset 0 - OpDecorate %type_PrimitiveDither Block - OpMemberDecorate %type_PrimitiveFade 0 Offset 0 - OpDecorate %type_PrimitiveFade Block - OpDecorate %_arr_v4float_uint_9 ArrayStride 16 - OpDecorate %_arr_v4float_uint_3 ArrayStride 16 - OpMemberDecorate %type_Material 0 Offset 0 - OpMemberDecorate %type_Material 1 Offset 144 - OpDecorate %type_Material Block - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%mat4v4float = OpTypeMatrix %v4float 4 - %v3float = OpTypeVector %float 3 - %v2float = OpTypeVector %float 2 - %int = OpTypeInt 32 1 - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 - %uint_7 = OpConstant %uint 7 - %uint_4 = OpConstant %uint 4 - %v2int = OpTypeVector %int 2 -%float_0_00100000005 = OpConstant %float 0.00100000005 - %int_2 = OpConstant %int 2 - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 - %float_0 = OpConstant %float 0 - %49 = OpConstantComposite %v2float %float_0 %float_0 - %float_1 = OpConstant %float 1 - %int_4 = OpConstant %int 4 - %int_11 = OpConstant %int 11 -%float_0_249500006 = OpConstant %float 0.249500006 - %54 = OpConstantComposite %v2float %float_0_249500006 %float_0_249500006 -%float_0_499992371 = OpConstant %float 0.499992371 - %56 = OpConstantComposite %v2float %float_0_499992371 %float_0_499992371 - %int_32 = OpConstant %int 32 - %int_53 = OpConstant %int 53 - %int_57 = OpConstant %int 57 - %int_80 = OpConstant %int 80 - %int_82 = OpConstant %int 82 - %int_98 = OpConstant %int 98 - %uint_1 = OpConstant %uint 1 -%mat3v3float = OpTypeMatrix %v3float 3 - %float_2 = OpConstant %float 2 - %float_n1 = OpConstant %float -1 - %67 = OpConstantComposite %v2float %float_n1 %float_n1 - %bool = OpTypeBool - %float_n0_5 = OpConstant %float -0.5 - %70 = OpConstantComposite %v3float %float_0 %float_0 %float_1 -%float_0_333299994 = OpConstant %float 0.333299994 - %uint_5 = OpConstant %uint 5 -%float_347_834503 = OpConstant %float 347.834503 -%float_3343_28369 = OpConstant %float 3343.28369 - %75 = OpConstantComposite %v2float %float_347_834503 %float_3343_28369 - %float_1000 = OpConstant %float 1000 -%_arr_v4float_uint_2 = OpTypeArray %v4float %uint_2 -%_arr_v4float_uint_7 = OpTypeArray %v4float %uint_7 -%_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4 - %type_View = OpTypeStruct %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %v3float %float %v3float %float %v3float %float %v3float %float %v3float %float %v4float %v4float %v3float %float %v3float %float %v3float %float %v3float %float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %v3float %float %v3float %float %v3float %float %mat4v4float %mat4v4float %mat4v4float %v4float %v4float %v2float %v2float %v4float %v4float %v4float %v4float %int %float %float %float %v4float %v4float %v4float %v2float %float %float %float %float %float %float %v3float %float %float %float %float %float %float %float %float %uint %uint %uint %uint %float %float %float %float %float %v4float %v3float %float %_arr_v4float_uint_2 %_arr_v4float_uint_2 %v4float %v4float %float %float %float %float %float %float %float %float %float %float %float %float %v3float %float %v3float %float %float %float %float %float %float %float %float %float %float %float %float %float %v4float %uint %uint %uint %uint %v4float %v3float %float %v4float %float %float %float %float %v4float %_arr_v4float_uint_7 %float %float %float %float %uint %float %float %float %v3float %int %_arr_v4float_uint_4 %_arr_v4float_uint_4 %float %float %float %float %v2int %float %float %v3float %float %v3float %float %v2float %float %float %v3float %float %v3float %float %v3float %float %v3float %float %float %float -%_ptr_Uniform_type_View = OpTypePointer Uniform %type_View -%type_PrimitiveDither = OpTypeStruct %float -%_ptr_Uniform_type_PrimitiveDither = OpTypePointer Uniform %type_PrimitiveDither -%type_PrimitiveFade = OpTypeStruct %v2float -%_ptr_Uniform_type_PrimitiveFade = OpTypePointer Uniform %type_PrimitiveFade - %uint_9 = OpConstant %uint 9 -%_arr_v4float_uint_9 = OpTypeArray %v4float %uint_9 - %uint_3 = OpConstant %uint 3 -%_arr_v4float_uint_3 = OpTypeArray %v4float %uint_3 -%type_Material = OpTypeStruct %_arr_v4float_uint_9 %_arr_v4float_uint_3 -%_ptr_Uniform_type_Material = OpTypePointer Uniform %type_Material -%type_2d_image = OpTypeImage %float 2D 2 0 0 1 Unknown -%_ptr_UniformConstant_type_2d_image = OpTypePointer UniformConstant %type_2d_image -%type_sampler = OpTypeSampler -%_ptr_UniformConstant_type_sampler = OpTypePointer UniformConstant %type_sampler -%_ptr_Input_v4float = OpTypePointer Input %v4float -%_arr_v4float_uint_1 = OpTypeArray %v4float %uint_1 -%_ptr_Input__arr_v4float_uint_1 = OpTypePointer Input %_arr_v4float_uint_1 -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_Input_bool = OpTypePointer Input %bool -%_ptr_Output_float = OpTypePointer Output %float -%_ptr_Output_v4float = OpTypePointer Output %v4float - %void = OpTypeVoid - %93 = OpTypeFunction %void -%_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float -%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float -%_ptr_Uniform_float = OpTypePointer Uniform %float -%type_sampled_image = OpTypeSampledImage %type_2d_image - %View = OpVariable %_ptr_Uniform_type_View Uniform -%PrimitiveDither = OpVariable %_ptr_Uniform_type_PrimitiveDither Uniform -%PrimitiveFade = OpVariable %_ptr_Uniform_type_PrimitiveFade Uniform - %Material = OpVariable %_ptr_Uniform_type_Material Uniform -%Material_Texture2D_0 = OpVariable %_ptr_UniformConstant_type_2d_image UniformConstant -%Material_Texture2D_0Sampler = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant -%Material_Texture2D_3 = OpVariable %_ptr_UniformConstant_type_2d_image UniformConstant -%Material_Texture2D_3Sampler = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input -%in_var_TEXCOORD6 = OpVariable %_ptr_Input_v4float Input -%in_var_TEXCOORD7 = OpVariable %_ptr_Input_v4float Input -%in_var_TEXCOORD10_centroid = OpVariable %_ptr_Input_v4float Input -%in_var_TEXCOORD11_centroid = OpVariable %_ptr_Input_v4float Input -%in_var_TEXCOORD0 = OpVariable %_ptr_Input__arr_v4float_uint_1 Input -%in_var_PRIMITIVE_ID = OpVariable %_ptr_Input_uint Input -%gl_FrontFacing = OpVariable %_ptr_Input_bool Input -%gl_FragDepth = OpVariable %_ptr_Output_float Output -%out_var_SV_Target0 = OpVariable %_ptr_Output_v4float Output - %98 = OpUndef %float - %99 = OpConstantNull %v2float -%float_0_015625 = OpConstant %float 0.015625 - %101 = OpConstantComposite %v2float %float_0_015625 %float_0_015625 -%float_0_166666672 = OpConstant %float 0.166666672 - %103 = OpUndef %float - %104 = OpConstantNull %v3float -%MainPixelShader = OpFunction %void None %93 - %105 = OpLabel - %106 = OpLoad %v4float %gl_FragCoord - %107 = OpLoad %v4float %in_var_TEXCOORD6 - %108 = OpLoad %v4float %in_var_TEXCOORD7 - %109 = OpLoad %v4float %in_var_TEXCOORD10_centroid - %110 = OpLoad %v4float %in_var_TEXCOORD11_centroid - %111 = OpLoad %_arr_v4float_uint_1 %in_var_TEXCOORD0 - %112 = OpAccessChain %_ptr_Uniform_mat4v4float %View %int_4 - %113 = OpLoad %mat4v4float %112 - %114 = OpAccessChain %_ptr_Uniform_mat4v4float %View %int_11 - %115 = OpLoad %mat4v4float %114 - %116 = OpAccessChain %_ptr_Uniform_v3float %View %int_32 - %117 = OpLoad %v3float %116 - %118 = OpAccessChain %_ptr_Uniform_v4float %View %int_53 - %119 = OpLoad %v4float %118 - %120 = OpAccessChain %_ptr_Uniform_v4float %View %int_57 - %121 = OpLoad %v4float %120 - %122 = OpAccessChain %_ptr_Uniform_float %View %int_80 - %123 = OpLoad %float %122 - %124 = OpCompositeExtract %v4float %111 0 - %125 = OpVectorShuffle %v2float %99 %124 2 3 - %126 = OpVectorShuffle %v3float %109 %109 0 1 2 - %127 = OpVectorShuffle %v3float %110 %110 0 1 2 - %128 = OpExtInst %v3float %1 Cross %127 %126 - %129 = OpCompositeExtract %float %110 3 - %130 = OpCompositeConstruct %v3float %129 %129 %129 - %131 = OpFMul %v3float %128 %130 - %132 = OpCompositeConstruct %mat3v3float %126 %131 %127 - %133 = OpVectorShuffle %v2float %106 %106 0 1 - %134 = OpVectorShuffle %v2float %121 %121 0 1 - %135 = OpFSub %v2float %133 %134 - %136 = OpCompositeExtract %float %106 2 - %137 = OpCompositeConstruct %v4float %103 %103 %136 %float_1 - %138 = OpCompositeExtract %float %106 3 - %139 = OpCompositeConstruct %v4float %138 %138 %138 %138 - %140 = OpFMul %v4float %137 %139 - %141 = OpCompositeExtract %float %106 0 - %142 = OpCompositeExtract %float %106 1 - %143 = OpCompositeConstruct %v4float %141 %142 %136 %float_1 - %144 = OpMatrixTimesVector %v4float %115 %143 - %145 = OpVectorShuffle %v3float %144 %144 0 1 2 - %146 = OpCompositeExtract %float %144 3 - %147 = OpCompositeConstruct %v3float %146 %146 %146 - %148 = OpFDiv %v3float %145 %147 - %149 = OpFSub %v3float %148 %117 - %150 = OpFNegate %v3float %148 - %151 = OpExtInst %v3float %1 Normalize %150 - %152 = OpVectorTimesMatrix %v3float %151 %132 - %153 = OpVectorShuffle %v2float %152 %152 0 1 - %154 = OpFMul %v2float %153 %67 - %155 = OpCompositeExtract %float %152 2 - %156 = OpCompositeConstruct %v2float %155 %155 - %157 = OpFDiv %v2float %154 %156 - %158 = OpAccessChain %_ptr_Uniform_float %Material %int_1 %int_0 %int_0 - %159 = OpLoad %float %158 - %160 = OpCompositeConstruct %v2float %159 %159 - %161 = OpFMul %v2float %160 %157 - %162 = OpDot %float %151 %127 - %163 = OpExtInst %float %1 FAbs %162 - %164 = OpExtInst %float %1 FMax %163 %float_0 - %165 = OpExtInst %float %1 FMin %164 %float_1 - %166 = OpAccessChain %_ptr_Uniform_float %Material %int_1 %int_0 %int_1 - %167 = OpLoad %float %166 - %168 = OpAccessChain %_ptr_Uniform_float %Material %int_1 %int_0 %int_2 - %169 = OpLoad %float %168 - %170 = OpExtInst %float %1 FMix %167 %169 %165 - %171 = OpExtInst %float %1 Floor %170 - %172 = OpFDiv %float %float_1 %170 - %173 = OpCompositeConstruct %v2float %172 %172 - %174 = OpFMul %v2float %161 %173 - %175 = OpDPdx %v2float %125 - %176 = OpDPdy %v2float %125 - %177 = OpLoad %type_2d_image %Material_Texture2D_0 - %178 = OpLoad %type_sampler %Material_Texture2D_0Sampler - OpBranch %179 - %179 = OpLabel - %180 = OpPhi %float %float_1 %105 %181 %182 - %183 = OpPhi %v2float %49 %105 %184 %182 - %185 = OpPhi %int %int_0 %105 %186 %182 - %187 = OpPhi %float %float_1 %105 %188 %182 - %189 = OpPhi %float %float_1 %105 %180 %182 - %190 = OpConvertSToF %float %185 - %191 = OpFAdd %float %171 %float_2 - %192 = OpFOrdLessThan %bool %190 %191 - OpLoopMerge %193 %182 None - OpBranchConditional %192 %194 %193 - %194 = OpLabel - %195 = OpFAdd %v2float %125 %183 - %196 = OpSampledImage %type_sampled_image %177 %178 - %197 = OpImageSampleExplicitLod %v4float %196 %195 Grad %175 %176 - %188 = OpCompositeExtract %float %197 1 - %198 = OpFOrdLessThan %bool %180 %188 - OpSelectionMerge %182 None - OpBranchConditional %198 %199 %182 - %199 = OpLabel - %200 = OpFSub %float %189 %187 - %201 = OpFSub %float %188 %180 - %202 = OpFAdd %float %200 %201 - %203 = OpFDiv %float %201 %202 - %204 = OpFMul %float %189 %203 - %205 = OpFSub %float %float_1 %203 - %206 = OpFMul %float %180 %205 - %207 = OpFAdd %float %204 %206 - %208 = OpCompositeConstruct %v2float %203 %203 - %209 = OpFMul %v2float %208 %174 - %210 = OpFSub %v2float %183 %209 - OpBranch %193 - %182 = OpLabel - %181 = OpFSub %float %180 %172 - %184 = OpFAdd %v2float %183 %174 - %186 = OpIAdd %int %185 %int_1 - OpBranch %179 - %193 = OpLabel - %211 = OpPhi %float %98 %179 %207 %199 - %212 = OpPhi %v2float %183 %179 %210 %199 - %213 = OpVectorShuffle %v2float %212 %104 0 1 - %214 = OpFAdd %v2float %125 %213 - %215 = OpAccessChain %_ptr_Uniform_float %View %int_82 - %216 = OpLoad %float %215 - %217 = OpSampledImage %type_sampled_image %177 %178 - %218 = OpImageSampleImplicitLod %v4float %217 %214 Bias %216 - %219 = OpCompositeExtract %float %218 0 - %220 = OpAccessChain %_ptr_Uniform_float %Material %int_1 %int_2 %int_1 - %221 = OpLoad %float %220 - %222 = OpFMul %float %219 %221 - %223 = OpFSub %float %float_1 %222 - %224 = OpExtInst %float %1 FMax %223 %float_0 - %225 = OpExtInst %float %1 FMin %224 %float_1 - %226 = OpAccessChain %_ptr_Uniform_float %View %int_98 %int_0 - %227 = OpLoad %float %226 - %228 = OpCompositeConstruct %v2float %227 %227 - %229 = OpFAdd %v2float %135 %228 - %230 = OpCompositeExtract %float %229 0 - %231 = OpConvertFToU %uint %230 - %232 = OpCompositeExtract %float %229 1 - %233 = OpConvertFToU %uint %232 - %234 = OpIMul %uint %uint_2 %233 - %235 = OpIAdd %uint %231 %234 - %236 = OpUMod %uint %235 %uint_5 - %237 = OpConvertUToF %float %236 - %238 = OpFMul %v2float %135 %101 - %239 = OpLoad %type_2d_image %Material_Texture2D_3 - %240 = OpLoad %type_sampler %Material_Texture2D_3Sampler - %241 = OpSampledImage %type_sampled_image %239 %240 - %242 = OpImageSampleImplicitLod %v4float %241 %238 Bias %216 - %243 = OpCompositeExtract %float %242 0 - %244 = OpAccessChain %_ptr_Uniform_float %Material %int_1 %int_2 %int_2 - %245 = OpLoad %float %244 - %246 = OpFMul %float %243 %245 - %247 = OpFAdd %float %237 %246 - %248 = OpFMul %float %247 %float_0_166666672 - %249 = OpFAdd %float %225 %248 - %250 = OpFAdd %float %249 %float_n0_5 - %251 = OpCompositeExtract %float %218 2 - %252 = OpFAdd %float %251 %250 - %253 = OpSampledImage %type_sampled_image %239 %240 - %254 = OpImageSampleImplicitLod %v4float %253 %238 Bias %216 - %255 = OpCompositeExtract %float %254 0 - %256 = OpFAdd %float %237 %255 - %257 = OpFMul %float %256 %float_0_166666672 - %258 = OpAccessChain %_ptr_Uniform_float %PrimitiveFade %int_0 %int_0 - %259 = OpLoad %float %258 - %260 = OpFMul %float %123 %259 - %261 = OpAccessChain %_ptr_Uniform_float %PrimitiveFade %int_0 %int_1 - %262 = OpLoad %float %261 - %263 = OpFAdd %float %260 %262 - %264 = OpExtInst %float %1 FClamp %263 %float_0 %float_1 - %265 = OpFAdd %float %264 %257 - %266 = OpFAdd %float %265 %float_n0_5 - %267 = OpFMul %float %252 %266 - %268 = OpFSub %float %float_1 %211 - %269 = OpFMul %float %268 %159 - %270 = OpCompositeExtract %float %212 0 - %271 = OpCompositeExtract %float %212 1 - %272 = OpCompositeConstruct %v3float %270 %271 %269 - %273 = OpDot %float %272 %272 - %274 = OpExtInst %float %1 Sqrt %273 - %275 = OpDPdx %v2float %125 - %276 = OpExtInst %v2float %1 FAbs %275 - %277 = OpDot %float %276 %276 - %278 = OpExtInst %float %1 Sqrt %277 - %279 = OpDPdx %v3float %149 - %280 = OpDot %float %279 %279 - %281 = OpExtInst %float %1 Sqrt %280 - %282 = OpFDiv %float %278 %281 - %283 = OpDPdy %v2float %125 - %284 = OpExtInst %v2float %1 FAbs %283 - %285 = OpDot %float %284 %284 - %286 = OpExtInst %float %1 Sqrt %285 - %287 = OpDPdy %v3float %149 - %288 = OpDot %float %287 %287 - %289 = OpExtInst %float %1 Sqrt %288 - %290 = OpFDiv %float %286 %289 - %291 = OpExtInst %float %1 FMax %282 %290 - %292 = OpCompositeExtract %v4float %113 0 - %293 = OpVectorShuffle %v3float %292 %292 0 1 2 - %294 = OpCompositeExtract %v4float %113 1 - %295 = OpVectorShuffle %v3float %294 %294 0 1 2 - %296 = OpCompositeExtract %v4float %113 2 - %297 = OpVectorShuffle %v3float %296 %296 0 1 2 - %298 = OpCompositeConstruct %mat3v3float %293 %295 %297 - %299 = OpMatrixTimesVector %v3float %298 %70 - %300 = OpDot %float %299 %151 - %301 = OpExtInst %float %1 FAbs %300 - %302 = OpFDiv %float %291 %301 - %303 = OpFDiv %float %274 %302 - %304 = OpAccessChain %_ptr_Uniform_float %PrimitiveDither %int_0 - %305 = OpLoad %float %304 - %306 = OpFOrdNotEqual %bool %305 %float_0 - OpSelectionMerge %307 None - OpBranchConditional %306 %308 %307 - %308 = OpLabel - %309 = OpExtInst %float %1 FAbs %305 - %310 = OpFOrdGreaterThan %bool %309 %float_0_00100000005 - OpSelectionMerge %311 None - OpBranchConditional %310 %312 %311 - %312 = OpLabel - %313 = OpExtInst %v2float %1 Floor %133 - %314 = OpDot %float %313 %75 - %315 = OpExtInst %float %1 Cos %314 - %316 = OpFMul %float %315 %float_1000 - %317 = OpExtInst %float %1 Fract %316 - %318 = OpFOrdLessThan %bool %305 %float_0 - %319 = OpFAdd %float %305 %float_1 - %320 = OpFOrdGreaterThan %bool %319 %317 - %321 = OpFOrdLessThan %bool %305 %317 - %322 = OpSelect %bool %318 %320 %321 - %323 = OpSelect %float %322 %float_1 %float_0 - %324 = OpFSub %float %323 %float_0_00100000005 - %325 = OpFOrdLessThan %bool %324 %float_0 - OpSelectionMerge %326 None - OpBranchConditional %325 %327 %326 - %327 = OpLabel - OpKill - %326 = OpLabel - OpBranch %311 - %311 = OpLabel - OpBranch %307 - %307 = OpLabel - %328 = OpFSub %float %267 %float_0_333299994 - %329 = OpFOrdLessThan %bool %328 %float_0 - OpSelectionMerge %330 None - OpBranchConditional %329 %331 %330 - %331 = OpLabel - OpKill - %330 = OpLabel - %332 = OpCompositeExtract %float %140 2 - %333 = OpCompositeExtract %float %140 3 - %334 = OpFAdd %float %333 %303 - %335 = OpFDiv %float %332 %334 - %336 = OpExtInst %float %1 FMin %335 %136 - %337 = OpVectorShuffle %v2float %107 %107 0 1 - %338 = OpCompositeExtract %float %107 3 - %339 = OpCompositeConstruct %v2float %338 %338 - %340 = OpFDiv %v2float %337 %339 - %341 = OpVectorShuffle %v2float %119 %119 0 1 - %342 = OpFSub %v2float %340 %341 - %343 = OpVectorShuffle %v2float %108 %108 0 1 - %344 = OpCompositeExtract %float %108 3 - %345 = OpCompositeConstruct %v2float %344 %344 - %346 = OpFDiv %v2float %343 %345 - %347 = OpVectorShuffle %v2float %119 %119 2 3 - %348 = OpFSub %v2float %346 %347 - %349 = OpFSub %v2float %342 %348 - %350 = OpFMul %v2float %349 %54 - %351 = OpFAdd %v2float %350 %56 - %352 = OpVectorShuffle %v4float %351 %49 0 1 2 3 - OpStore %gl_FragDepth %336 - OpStore %out_var_SV_Target0 %352 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-ue4-no-opt/asm/vert/loop-accesschain-writethrough.asm.invalid.vert b/third_party/spirv-cross/shaders-ue4-no-opt/asm/vert/loop-accesschain-writethrough.asm.invalid.vert deleted file mode 100644 index 693f16c009..0000000000 --- a/third_party/spirv-cross/shaders-ue4-no-opt/asm/vert/loop-accesschain-writethrough.asm.invalid.vert +++ /dev/null @@ -1,259 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 181 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_GOOGLE_hlsl_functionality1" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %ScatterMainVS "main" %gl_VertexIndex %gl_InstanceIndex %out_var_TEXCOORD0 %out_var_TEXCOORD1 %out_var_TEXCOORD2 %out_var_TEXCOORD3 %out_var_TEXCOORD4 %out_var_TEXCOORD5 %out_var_TEXCOORD6 %gl_Position - OpSource HLSL 600 - OpName %type__Globals "type.$Globals" - OpMemberName %type__Globals 0 "ViewportSize" - OpMemberName %type__Globals 1 "ScatteringScaling" - OpMemberName %type__Globals 2 "CocRadiusToCircumscribedRadius" - OpName %_Globals "$Globals" - OpName %type_StructuredBuffer_v4float "type.StructuredBuffer.v4float" - OpName %ScatterDrawList "ScatterDrawList" - OpName %out_var_TEXCOORD0 "out.var.TEXCOORD0" - OpName %out_var_TEXCOORD1 "out.var.TEXCOORD1" - OpName %out_var_TEXCOORD2 "out.var.TEXCOORD2" - OpName %out_var_TEXCOORD3 "out.var.TEXCOORD3" - OpName %out_var_TEXCOORD4 "out.var.TEXCOORD4" - OpName %out_var_TEXCOORD5 "out.var.TEXCOORD5" - OpName %out_var_TEXCOORD6 "out.var.TEXCOORD6" - OpName %ScatterMainVS "ScatterMainVS" - OpDecorate %gl_VertexIndex BuiltIn VertexIndex - OpDecorateString %gl_VertexIndex UserSemantic "SV_VertexID" - OpDecorate %gl_InstanceIndex BuiltIn InstanceIndex - OpDecorateString %gl_InstanceIndex UserSemantic "SV_InstanceID" - OpDecorateString %out_var_TEXCOORD0 UserSemantic "TEXCOORD0" - OpDecorateString %out_var_TEXCOORD1 UserSemantic "TEXCOORD1" - OpDecorateString %out_var_TEXCOORD2 UserSemantic "TEXCOORD2" - OpDecorateString %out_var_TEXCOORD3 UserSemantic "TEXCOORD3" - OpDecorateString %out_var_TEXCOORD4 UserSemantic "TEXCOORD4" - OpDecorateString %out_var_TEXCOORD5 UserSemantic "TEXCOORD5" - OpDecorateString %out_var_TEXCOORD6 UserSemantic "TEXCOORD6" - OpDecorate %gl_Position BuiltIn Position - OpDecorateString %gl_Position UserSemantic "SV_POSITION" - OpDecorate %out_var_TEXCOORD0 Location 0 - OpDecorate %out_var_TEXCOORD1 Location 1 - OpDecorate %out_var_TEXCOORD2 Location 2 - OpDecorate %out_var_TEXCOORD3 Location 3 - OpDecorate %out_var_TEXCOORD4 Location 4 - OpDecorate %out_var_TEXCOORD5 Location 5 - OpDecorate %out_var_TEXCOORD6 Location 6 - OpDecorate %_Globals DescriptorSet 0 - OpDecorate %_Globals Binding 1 - OpDecorate %ScatterDrawList DescriptorSet 0 - OpDecorate %ScatterDrawList Binding 0 - OpMemberDecorate %type__Globals 0 Offset 0 - OpMemberDecorate %type__Globals 1 Offset 16 - OpMemberDecorate %type__Globals 2 Offset 20 - OpDecorate %type__Globals Block - OpDecorate %_runtimearr_v4float ArrayStride 16 - OpMemberDecorate %type_StructuredBuffer_v4float 0 Offset 0 - OpMemberDecorate %type_StructuredBuffer_v4float 0 NonWritable - OpDecorate %type_StructuredBuffer_v4float BufferBlock - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %v2float = OpTypeVector %float 2 - %int = OpTypeInt 32 1 - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 - %uint_4 = OpConstant %uint 4 -%_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4 - %float_0_5 = OpConstant %float 0.5 - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 - %float_1 = OpConstant %float 1 - %uint_16 = OpConstant %uint 16 - %float_0 = OpConstant %float 0 - %uint_0 = OpConstant %uint 0 - %uint_5 = OpConstant %uint 5 - %uint_1 = OpConstant %uint 1 - %int_3 = OpConstant %int 3 - %float_n0_5 = OpConstant %float -0.5 - %int_2 = OpConstant %int 2 - %float_2 = OpConstant %float 2 - %39 = OpConstantComposite %v2float %float_2 %float_2 - %40 = OpConstantComposite %v2float %float_1 %float_1 - %41 = OpConstantComposite %v2float %float_0_5 %float_0_5 -%type__Globals = OpTypeStruct %v4float %float %float -%_ptr_Uniform_type__Globals = OpTypePointer Uniform %type__Globals -%_runtimearr_v4float = OpTypeRuntimeArray %v4float -%type_StructuredBuffer_v4float = OpTypeStruct %_runtimearr_v4float -%_ptr_Uniform_type_StructuredBuffer_v4float = OpTypePointer Uniform %type_StructuredBuffer_v4float -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_Output_v2float = OpTypePointer Output %v2float -%_ptr_Output_v4float = OpTypePointer Output %v4float - %void = OpTypeVoid - %48 = OpTypeFunction %void -%_ptr_Function_v2float = OpTypePointer Function %v2float -%_ptr_Function_v4float = OpTypePointer Function %v4float -%_ptr_Function__arr_v4float_uint_4 = OpTypePointer Function %_arr_v4float_uint_4 -%_arr_float_uint_4 = OpTypeArray %float %uint_4 -%_ptr_Function__arr_float_uint_4 = OpTypePointer Function %_arr_float_uint_4 -%_arr_v2float_uint_4 = OpTypeArray %v2float %uint_4 -%_ptr_Function__arr_v2float_uint_4 = OpTypePointer Function %_arr_v2float_uint_4 -%_ptr_Function_float = OpTypePointer Function %float - %bool = OpTypeBool -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float -%_ptr_Uniform_float = OpTypePointer Uniform %float - %_Globals = OpVariable %_ptr_Uniform_type__Globals Uniform -%ScatterDrawList = OpVariable %_ptr_Uniform_type_StructuredBuffer_v4float Uniform -%gl_VertexIndex = OpVariable %_ptr_Input_uint Input -%gl_InstanceIndex = OpVariable %_ptr_Input_uint Input -%out_var_TEXCOORD0 = OpVariable %_ptr_Output_v2float Output -%out_var_TEXCOORD1 = OpVariable %_ptr_Output_v4float Output -%out_var_TEXCOORD2 = OpVariable %_ptr_Output_v4float Output -%out_var_TEXCOORD3 = OpVariable %_ptr_Output_v4float Output -%out_var_TEXCOORD4 = OpVariable %_ptr_Output_v4float Output -%out_var_TEXCOORD5 = OpVariable %_ptr_Output_v4float Output -%out_var_TEXCOORD6 = OpVariable %_ptr_Output_v4float Output -%gl_Position = OpVariable %_ptr_Output_v4float Output -%ScatterMainVS = OpFunction %void None %48 - %60 = OpLabel - %61 = OpVariable %_ptr_Function__arr_v4float_uint_4 Function - %62 = OpVariable %_ptr_Function__arr_float_uint_4 Function - %63 = OpVariable %_ptr_Function__arr_v2float_uint_4 Function - %64 = OpLoad %uint %gl_VertexIndex - %65 = OpLoad %uint %gl_InstanceIndex - %66 = OpUDiv %uint %64 %uint_4 - %67 = OpIMul %uint %66 %uint_4 - %68 = OpISub %uint %64 %67 - %69 = OpIMul %uint %uint_16 %65 - %70 = OpIAdd %uint %69 %66 - OpBranch %71 - %71 = OpLabel - %72 = OpPhi %float %float_0 %60 %73 %74 - %75 = OpPhi %uint %uint_0 %60 %76 %74 - %77 = OpULessThan %bool %75 %uint_4 - OpLoopMerge %78 %74 Unroll - OpBranchConditional %77 %79 %78 - %79 = OpLabel - %80 = OpIMul %uint %uint_5 %70 - %81 = OpIAdd %uint %80 %75 - %82 = OpIAdd %uint %81 %uint_1 - %83 = OpAccessChain %_ptr_Uniform_v4float %ScatterDrawList %int_0 %82 - %84 = OpLoad %v4float %83 - %85 = OpCompositeExtract %float %84 0 - %86 = OpCompositeExtract %float %84 1 - %87 = OpCompositeExtract %float %84 2 - %88 = OpCompositeConstruct %v4float %85 %86 %87 %float_0 - %89 = OpAccessChain %_ptr_Function_v4float %61 %75 - OpStore %89 %88 - %90 = OpCompositeExtract %float %84 3 - %91 = OpAccessChain %_ptr_Function_float %62 %75 - OpStore %91 %90 - %92 = OpIEqual %bool %75 %uint_0 - OpSelectionMerge %74 None - OpBranchConditional %92 %93 %94 - %93 = OpLabel - %95 = OpLoad %float %91 - OpBranch %74 - %94 = OpLabel - %96 = OpLoad %float %91 - %97 = OpExtInst %float %1 FMax %72 %96 - OpBranch %74 - %74 = OpLabel - %73 = OpPhi %float %95 %93 %97 %94 - %98 = OpLoad %float %91 - %99 = OpFDiv %float %float_n0_5 %98 - %100 = OpAccessChain %_ptr_Function_float %63 %75 %int_0 - OpStore %100 %99 - %101 = OpLoad %float %91 - %102 = OpFMul %float %float_0_5 %101 - %103 = OpFAdd %float %102 %float_0_5 - %104 = OpAccessChain %_ptr_Function_float %63 %75 %int_1 - OpStore %104 %103 - %76 = OpIAdd %uint %75 %uint_1 - OpBranch %71 - %78 = OpLabel - %105 = OpAccessChain %_ptr_Function_v4float %61 %int_0 - %106 = OpLoad %v4float %105 - %107 = OpCompositeExtract %float %106 0 - %108 = OpCompositeExtract %float %106 1 - %109 = OpCompositeExtract %float %106 2 - %110 = OpAccessChain %_ptr_Function_float %62 %int_0 - %111 = OpLoad %float %110 - %112 = OpCompositeConstruct %v4float %107 %108 %109 %111 - %113 = OpAccessChain %_ptr_Function_v4float %61 %int_1 - %114 = OpLoad %v4float %113 - %115 = OpCompositeExtract %float %114 0 - %116 = OpCompositeExtract %float %114 1 - %117 = OpCompositeExtract %float %114 2 - %118 = OpAccessChain %_ptr_Function_float %62 %int_1 - %119 = OpLoad %float %118 - %120 = OpCompositeConstruct %v4float %115 %116 %117 %119 - %121 = OpAccessChain %_ptr_Function_v4float %61 %int_2 - %122 = OpLoad %v4float %121 - %123 = OpCompositeExtract %float %122 0 - %124 = OpCompositeExtract %float %122 1 - %125 = OpCompositeExtract %float %122 2 - %126 = OpAccessChain %_ptr_Function_float %62 %int_2 - %127 = OpLoad %float %126 - %128 = OpCompositeConstruct %v4float %123 %124 %125 %127 - %129 = OpAccessChain %_ptr_Function_v4float %61 %int_3 - %130 = OpLoad %v4float %129 - %131 = OpCompositeExtract %float %130 0 - %132 = OpCompositeExtract %float %130 1 - %133 = OpCompositeExtract %float %130 2 - %134 = OpAccessChain %_ptr_Function_float %62 %int_3 - %135 = OpLoad %float %134 - %136 = OpCompositeConstruct %v4float %131 %132 %133 %135 - %137 = OpAccessChain %_ptr_Uniform_float %_Globals %int_1 - %138 = OpLoad %float %137 - %139 = OpCompositeConstruct %v2float %138 %138 - %140 = OpIMul %uint %uint_5 %70 - %141 = OpAccessChain %_ptr_Uniform_v4float %ScatterDrawList %int_0 %140 - %142 = OpLoad %v4float %141 - %143 = OpVectorShuffle %v2float %142 %142 0 1 - %144 = OpFMul %v2float %139 %143 - %145 = OpAccessChain %_ptr_Function_v2float %63 %int_0 - %146 = OpLoad %v2float %145 - %147 = OpAccessChain %_ptr_Function_v2float %63 %int_1 - %148 = OpLoad %v2float %147 - %149 = OpVectorShuffle %v4float %146 %148 0 1 2 3 - %150 = OpAccessChain %_ptr_Function_v2float %63 %int_2 - %151 = OpLoad %v2float %150 - %152 = OpAccessChain %_ptr_Function_v2float %63 %int_3 - %153 = OpLoad %v2float %152 - %154 = OpVectorShuffle %v4float %151 %153 0 1 2 3 - %155 = OpUMod %uint %68 %uint_2 - %156 = OpConvertUToF %float %155 - %157 = OpUDiv %uint %68 %uint_2 - %158 = OpConvertUToF %float %157 - %159 = OpCompositeConstruct %v2float %156 %158 - %160 = OpFMul %v2float %159 %39 - %161 = OpFSub %v2float %160 %40 - %162 = OpAccessChain %_ptr_Uniform_float %_Globals %int_2 - %163 = OpLoad %float %162 - %164 = OpFMul %float %72 %163 - %165 = OpFAdd %float %164 %float_1 - %166 = OpCompositeConstruct %v2float %165 %165 - %167 = OpFMul %v2float %166 %161 - %168 = OpFAdd %v2float %167 %144 - %169 = OpFAdd %v2float %168 %41 - %170 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_0 - %171 = OpLoad %v4float %170 - %172 = OpVectorShuffle %v2float %171 %171 2 3 - %173 = OpFMul %v2float %169 %172 - %174 = OpCompositeExtract %float %173 0 - %175 = OpFMul %float %174 %float_2 - %176 = OpFSub %float %175 %float_1 - %177 = OpCompositeExtract %float %173 1 - %178 = OpFMul %float %177 %float_2 - %179 = OpFSub %float %float_1 %178 - %180 = OpCompositeConstruct %v4float %176 %179 %float_0 %float_1 - OpStore %out_var_TEXCOORD0 %144 - OpStore %out_var_TEXCOORD1 %112 - OpStore %out_var_TEXCOORD2 %120 - OpStore %out_var_TEXCOORD3 %128 - OpStore %out_var_TEXCOORD4 %136 - OpStore %out_var_TEXCOORD5 %149 - OpStore %out_var_TEXCOORD6 %154 - OpStore %gl_Position %180 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-ue4/asm/frag/depth-compare.asm.frag b/third_party/spirv-cross/shaders-ue4/asm/frag/depth-compare.asm.frag deleted file mode 100644 index 603d4f28c4..0000000000 --- a/third_party/spirv-cross/shaders-ue4/asm/frag/depth-compare.asm.frag +++ /dev/null @@ -1,961 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 452 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_GOOGLE_hlsl_functionality1" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %MainOnePassPointLightPS "main" %gl_FragCoord %out_var_SV_Target0 - OpExecutionMode %MainOnePassPointLightPS OriginUpperLeft - OpSource HLSL 600 - OpName %type_View "type.View" - OpMemberName %type_View 0 "View_TranslatedWorldToClip" - OpMemberName %type_View 1 "View_WorldToClip" - OpMemberName %type_View 2 "View_TranslatedWorldToView" - OpMemberName %type_View 3 "View_ViewToTranslatedWorld" - OpMemberName %type_View 4 "View_TranslatedWorldToCameraView" - OpMemberName %type_View 5 "View_CameraViewToTranslatedWorld" - OpMemberName %type_View 6 "View_ViewToClip" - OpMemberName %type_View 7 "View_ViewToClipNoAA" - OpMemberName %type_View 8 "View_ClipToView" - OpMemberName %type_View 9 "View_ClipToTranslatedWorld" - OpMemberName %type_View 10 "View_SVPositionToTranslatedWorld" - OpMemberName %type_View 11 "View_ScreenToWorld" - OpMemberName %type_View 12 "View_ScreenToTranslatedWorld" - OpMemberName %type_View 13 "View_ViewForward" - OpMemberName %type_View 14 "PrePadding_View_844" - OpMemberName %type_View 15 "View_ViewUp" - OpMemberName %type_View 16 "PrePadding_View_860" - OpMemberName %type_View 17 "View_ViewRight" - OpMemberName %type_View 18 "PrePadding_View_876" - OpMemberName %type_View 19 "View_HMDViewNoRollUp" - OpMemberName %type_View 20 "PrePadding_View_892" - OpMemberName %type_View 21 "View_HMDViewNoRollRight" - OpMemberName %type_View 22 "PrePadding_View_908" - OpMemberName %type_View 23 "View_InvDeviceZToWorldZTransform" - OpMemberName %type_View 24 "View_ScreenPositionScaleBias" - OpMemberName %type_View 25 "View_WorldCameraOrigin" - OpMemberName %type_View 26 "PrePadding_View_956" - OpMemberName %type_View 27 "View_TranslatedWorldCameraOrigin" - OpMemberName %type_View 28 "PrePadding_View_972" - OpMemberName %type_View 29 "View_WorldViewOrigin" - OpMemberName %type_View 30 "PrePadding_View_988" - OpMemberName %type_View 31 "View_PreViewTranslation" - OpMemberName %type_View 32 "PrePadding_View_1004" - OpMemberName %type_View 33 "View_PrevProjection" - OpMemberName %type_View 34 "View_PrevViewProj" - OpMemberName %type_View 35 "View_PrevViewRotationProj" - OpMemberName %type_View 36 "View_PrevViewToClip" - OpMemberName %type_View 37 "View_PrevClipToView" - OpMemberName %type_View 38 "View_PrevTranslatedWorldToClip" - OpMemberName %type_View 39 "View_PrevTranslatedWorldToView" - OpMemberName %type_View 40 "View_PrevViewToTranslatedWorld" - OpMemberName %type_View 41 "View_PrevTranslatedWorldToCameraView" - OpMemberName %type_View 42 "View_PrevCameraViewToTranslatedWorld" - OpMemberName %type_View 43 "View_PrevWorldCameraOrigin" - OpMemberName %type_View 44 "PrePadding_View_1660" - OpMemberName %type_View 45 "View_PrevWorldViewOrigin" - OpMemberName %type_View 46 "PrePadding_View_1676" - OpMemberName %type_View 47 "View_PrevPreViewTranslation" - OpMemberName %type_View 48 "PrePadding_View_1692" - OpMemberName %type_View 49 "View_PrevInvViewProj" - OpMemberName %type_View 50 "View_PrevScreenToTranslatedWorld" - OpMemberName %type_View 51 "View_ClipToPrevClip" - OpMemberName %type_View 52 "View_TemporalAAJitter" - OpMemberName %type_View 53 "View_GlobalClippingPlane" - OpMemberName %type_View 54 "View_FieldOfViewWideAngles" - OpMemberName %type_View 55 "View_PrevFieldOfViewWideAngles" - OpMemberName %type_View 56 "View_ViewRectMin" - OpMemberName %type_View 57 "View_ViewSizeAndInvSize" - OpMemberName %type_View 58 "View_BufferSizeAndInvSize" - OpMemberName %type_View 59 "View_BufferBilinearUVMinMax" - OpMemberName %type_View 60 "View_NumSceneColorMSAASamples" - OpMemberName %type_View 61 "View_PreExposure" - OpMemberName %type_View 62 "View_OneOverPreExposure" - OpMemberName %type_View 63 "PrePadding_View_2012" - OpMemberName %type_View 64 "View_DiffuseOverrideParameter" - OpMemberName %type_View 65 "View_SpecularOverrideParameter" - OpMemberName %type_View 66 "View_NormalOverrideParameter" - OpMemberName %type_View 67 "View_RoughnessOverrideParameter" - OpMemberName %type_View 68 "View_PrevFrameGameTime" - OpMemberName %type_View 69 "View_PrevFrameRealTime" - OpMemberName %type_View 70 "View_OutOfBoundsMask" - OpMemberName %type_View 71 "PrePadding_View_2084" - OpMemberName %type_View 72 "PrePadding_View_2088" - OpMemberName %type_View 73 "PrePadding_View_2092" - OpMemberName %type_View 74 "View_WorldCameraMovementSinceLastFrame" - OpMemberName %type_View 75 "View_CullingSign" - OpMemberName %type_View 76 "View_NearPlane" - OpMemberName %type_View 77 "View_AdaptiveTessellationFactor" - OpMemberName %type_View 78 "View_GameTime" - OpMemberName %type_View 79 "View_RealTime" - OpMemberName %type_View 80 "View_DeltaTime" - OpMemberName %type_View 81 "View_MaterialTextureMipBias" - OpMemberName %type_View 82 "View_MaterialTextureDerivativeMultiply" - OpMemberName %type_View 83 "View_Random" - OpMemberName %type_View 84 "View_FrameNumber" - OpMemberName %type_View 85 "View_StateFrameIndexMod8" - OpMemberName %type_View 86 "View_StateFrameIndex" - OpMemberName %type_View 87 "View_CameraCut" - OpMemberName %type_View 88 "View_UnlitViewmodeMask" - OpMemberName %type_View 89 "PrePadding_View_2164" - OpMemberName %type_View 90 "PrePadding_View_2168" - OpMemberName %type_View 91 "PrePadding_View_2172" - OpMemberName %type_View 92 "View_DirectionalLightColor" - OpMemberName %type_View 93 "View_DirectionalLightDirection" - OpMemberName %type_View 94 "PrePadding_View_2204" - OpMemberName %type_View 95 "View_TranslucencyLightingVolumeMin" - OpMemberName %type_View 96 "View_TranslucencyLightingVolumeInvSize" - OpMemberName %type_View 97 "View_TemporalAAParams" - OpMemberName %type_View 98 "View_CircleDOFParams" - OpMemberName %type_View 99 "View_DepthOfFieldSensorWidth" - OpMemberName %type_View 100 "View_DepthOfFieldFocalDistance" - OpMemberName %type_View 101 "View_DepthOfFieldScale" - OpMemberName %type_View 102 "View_DepthOfFieldFocalLength" - OpMemberName %type_View 103 "View_DepthOfFieldFocalRegion" - OpMemberName %type_View 104 "View_DepthOfFieldNearTransitionRegion" - OpMemberName %type_View 105 "View_DepthOfFieldFarTransitionRegion" - OpMemberName %type_View 106 "View_MotionBlurNormalizedToPixel" - OpMemberName %type_View 107 "View_bSubsurfacePostprocessEnabled" - OpMemberName %type_View 108 "View_GeneralPurposeTweak" - OpMemberName %type_View 109 "View_DemosaicVposOffset" - OpMemberName %type_View 110 "PrePadding_View_2348" - OpMemberName %type_View 111 "View_IndirectLightingColorScale" - OpMemberName %type_View 112 "View_HDR32bppEncodingMode" - OpMemberName %type_View 113 "View_AtmosphericFogSunDirection" - OpMemberName %type_View 114 "View_AtmosphericFogSunPower" - OpMemberName %type_View 115 "View_AtmosphericFogPower" - OpMemberName %type_View 116 "View_AtmosphericFogDensityScale" - OpMemberName %type_View 117 "View_AtmosphericFogDensityOffset" - OpMemberName %type_View 118 "View_AtmosphericFogGroundOffset" - OpMemberName %type_View 119 "View_AtmosphericFogDistanceScale" - OpMemberName %type_View 120 "View_AtmosphericFogAltitudeScale" - OpMemberName %type_View 121 "View_AtmosphericFogHeightScaleRayleigh" - OpMemberName %type_View 122 "View_AtmosphericFogStartDistance" - OpMemberName %type_View 123 "View_AtmosphericFogDistanceOffset" - OpMemberName %type_View 124 "View_AtmosphericFogSunDiscScale" - OpMemberName %type_View 125 "View_AtmosphericFogRenderMask" - OpMemberName %type_View 126 "View_AtmosphericFogInscatterAltitudeSampleNum" - OpMemberName %type_View 127 "View_AtmosphericFogSunColor" - OpMemberName %type_View 128 "View_NormalCurvatureToRoughnessScaleBias" - OpMemberName %type_View 129 "View_RenderingReflectionCaptureMask" - OpMemberName %type_View 130 "View_AmbientCubemapTint" - OpMemberName %type_View 131 "View_AmbientCubemapIntensity" - OpMemberName %type_View 132 "View_SkyLightParameters" - OpMemberName %type_View 133 "PrePadding_View_2488" - OpMemberName %type_View 134 "PrePadding_View_2492" - OpMemberName %type_View 135 "View_SkyLightColor" - OpMemberName %type_View 136 "View_SkyIrradianceEnvironmentMap" - OpMemberName %type_View 137 "View_MobilePreviewMode" - OpMemberName %type_View 138 "View_HMDEyePaddingOffset" - OpMemberName %type_View 139 "View_ReflectionCubemapMaxMip" - OpMemberName %type_View 140 "View_ShowDecalsMask" - OpMemberName %type_View 141 "View_DistanceFieldAOSpecularOcclusionMode" - OpMemberName %type_View 142 "View_IndirectCapsuleSelfShadowingIntensity" - OpMemberName %type_View 143 "PrePadding_View_2648" - OpMemberName %type_View 144 "PrePadding_View_2652" - OpMemberName %type_View 145 "View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight" - OpMemberName %type_View 146 "View_StereoPassIndex" - OpMemberName %type_View 147 "View_GlobalVolumeCenterAndExtent" - OpMemberName %type_View 148 "View_GlobalVolumeWorldToUVAddAndMul" - OpMemberName %type_View 149 "View_GlobalVolumeDimension" - OpMemberName %type_View 150 "View_GlobalVolumeTexelSize" - OpMemberName %type_View 151 "View_MaxGlobalDistance" - OpMemberName %type_View 152 "View_bCheckerboardSubsurfaceProfileRendering" - OpMemberName %type_View 153 "View_VolumetricFogInvGridSize" - OpMemberName %type_View 154 "PrePadding_View_2828" - OpMemberName %type_View 155 "View_VolumetricFogGridZParams" - OpMemberName %type_View 156 "PrePadding_View_2844" - OpMemberName %type_View 157 "View_VolumetricFogSVPosToVolumeUV" - OpMemberName %type_View 158 "View_VolumetricFogMaxDistance" - OpMemberName %type_View 159 "PrePadding_View_2860" - OpMemberName %type_View 160 "View_VolumetricLightmapWorldToUVScale" - OpMemberName %type_View 161 "PrePadding_View_2876" - OpMemberName %type_View 162 "View_VolumetricLightmapWorldToUVAdd" - OpMemberName %type_View 163 "PrePadding_View_2892" - OpMemberName %type_View 164 "View_VolumetricLightmapIndirectionTextureSize" - OpMemberName %type_View 165 "View_VolumetricLightmapBrickSize" - OpMemberName %type_View 166 "View_VolumetricLightmapBrickTexelSize" - OpMemberName %type_View 167 "View_StereoIPD" - OpMemberName %type_View 168 "View_IndirectLightingCacheShowFlag" - OpMemberName %type_View 169 "View_EyeToPixelSpreadAngle" - OpName %View "View" - OpName %type_2d_image "type.2d.image" - OpName %SceneTexturesStruct_SceneDepthTexture "SceneTexturesStruct_SceneDepthTexture" - OpName %type_sampler "type.sampler" - OpName %SceneTexturesStruct_SceneDepthTextureSampler "SceneTexturesStruct_SceneDepthTextureSampler" - OpName %SceneTexturesStruct_GBufferATexture "SceneTexturesStruct_GBufferATexture" - OpName %SceneTexturesStruct_GBufferBTexture "SceneTexturesStruct_GBufferBTexture" - OpName %SceneTexturesStruct_GBufferDTexture "SceneTexturesStruct_GBufferDTexture" - OpName %SceneTexturesStruct_GBufferATextureSampler "SceneTexturesStruct_GBufferATextureSampler" - OpName %SceneTexturesStruct_GBufferBTextureSampler "SceneTexturesStruct_GBufferBTextureSampler" - OpName %SceneTexturesStruct_GBufferDTextureSampler "SceneTexturesStruct_GBufferDTextureSampler" - OpName %ShadowDepthTextureSampler "ShadowDepthTextureSampler" - OpName %type__Globals "type.$Globals" - OpMemberName %type__Globals 0 "SoftTransitionScale" - OpMemberName %type__Globals 1 "ShadowViewProjectionMatrices" - OpMemberName %type__Globals 2 "InvShadowmapResolution" - OpMemberName %type__Globals 3 "ShadowFadeFraction" - OpMemberName %type__Globals 4 "ShadowSharpen" - OpMemberName %type__Globals 5 "LightPositionAndInvRadius" - OpMemberName %type__Globals 6 "ProjectionDepthBiasParameters" - OpMemberName %type__Globals 7 "PointLightDepthBiasAndProjParameters" - OpName %_Globals "$Globals" - OpName %type_cube_image "type.cube.image" - OpName %ShadowDepthCubeTexture "ShadowDepthCubeTexture" - OpName %ShadowDepthCubeTextureSampler "ShadowDepthCubeTextureSampler" - OpName %SSProfilesTexture "SSProfilesTexture" - OpName %out_var_SV_Target0 "out.var.SV_Target0" - OpName %MainOnePassPointLightPS "MainOnePassPointLightPS" - OpName %type_sampled_image "type.sampled.image" - OpName %type_sampled_image_0 "type.sampled.image" - OpDecorate %gl_FragCoord BuiltIn FragCoord - OpDecorateString %gl_FragCoord UserSemantic "SV_POSITION" - OpDecorateString %out_var_SV_Target0 UserSemantic "SV_Target0" - OpDecorate %out_var_SV_Target0 Location 0 - OpDecorate %View DescriptorSet 0 - OpDecorate %View Binding 0 - OpDecorate %SceneTexturesStruct_SceneDepthTexture DescriptorSet 0 - OpDecorate %SceneTexturesStruct_SceneDepthTexture Binding 0 - OpDecorate %SceneTexturesStruct_SceneDepthTextureSampler DescriptorSet 0 - OpDecorate %SceneTexturesStruct_SceneDepthTextureSampler Binding 0 - OpDecorate %SceneTexturesStruct_GBufferATexture DescriptorSet 0 - OpDecorate %SceneTexturesStruct_GBufferATexture Binding 1 - OpDecorate %SceneTexturesStruct_GBufferBTexture DescriptorSet 0 - OpDecorate %SceneTexturesStruct_GBufferBTexture Binding 2 - OpDecorate %SceneTexturesStruct_GBufferDTexture DescriptorSet 0 - OpDecorate %SceneTexturesStruct_GBufferDTexture Binding 3 - OpDecorate %SceneTexturesStruct_GBufferATextureSampler DescriptorSet 0 - OpDecorate %SceneTexturesStruct_GBufferATextureSampler Binding 1 - OpDecorate %SceneTexturesStruct_GBufferBTextureSampler DescriptorSet 0 - OpDecorate %SceneTexturesStruct_GBufferBTextureSampler Binding 2 - OpDecorate %SceneTexturesStruct_GBufferDTextureSampler DescriptorSet 0 - OpDecorate %SceneTexturesStruct_GBufferDTextureSampler Binding 3 - OpDecorate %ShadowDepthTextureSampler DescriptorSet 0 - OpDecorate %ShadowDepthTextureSampler Binding 4 - OpDecorate %_Globals DescriptorSet 0 - OpDecorate %_Globals Binding 1 - OpDecorate %ShadowDepthCubeTexture DescriptorSet 0 - OpDecorate %ShadowDepthCubeTexture Binding 4 - OpDecorate %ShadowDepthCubeTextureSampler DescriptorSet 0 - OpDecorate %ShadowDepthCubeTextureSampler Binding 5 - OpDecorate %SSProfilesTexture DescriptorSet 0 - OpDecorate %SSProfilesTexture Binding 5 - OpDecorate %_arr_v4float_uint_2 ArrayStride 16 - OpDecorate %_arr_v4float_uint_7 ArrayStride 16 - OpDecorate %_arr_v4float_uint_4 ArrayStride 16 - OpMemberDecorate %type_View 0 Offset 0 - OpMemberDecorate %type_View 0 MatrixStride 16 - OpMemberDecorate %type_View 0 ColMajor - OpMemberDecorate %type_View 1 Offset 64 - OpMemberDecorate %type_View 1 MatrixStride 16 - OpMemberDecorate %type_View 1 ColMajor - OpMemberDecorate %type_View 2 Offset 128 - OpMemberDecorate %type_View 2 MatrixStride 16 - OpMemberDecorate %type_View 2 ColMajor - OpMemberDecorate %type_View 3 Offset 192 - OpMemberDecorate %type_View 3 MatrixStride 16 - OpMemberDecorate %type_View 3 ColMajor - OpMemberDecorate %type_View 4 Offset 256 - OpMemberDecorate %type_View 4 MatrixStride 16 - OpMemberDecorate %type_View 4 ColMajor - OpMemberDecorate %type_View 5 Offset 320 - OpMemberDecorate %type_View 5 MatrixStride 16 - OpMemberDecorate %type_View 5 ColMajor - OpMemberDecorate %type_View 6 Offset 384 - OpMemberDecorate %type_View 6 MatrixStride 16 - OpMemberDecorate %type_View 6 ColMajor - OpMemberDecorate %type_View 7 Offset 448 - OpMemberDecorate %type_View 7 MatrixStride 16 - OpMemberDecorate %type_View 7 ColMajor - OpMemberDecorate %type_View 8 Offset 512 - OpMemberDecorate %type_View 8 MatrixStride 16 - OpMemberDecorate %type_View 8 ColMajor - OpMemberDecorate %type_View 9 Offset 576 - OpMemberDecorate %type_View 9 MatrixStride 16 - OpMemberDecorate %type_View 9 ColMajor - OpMemberDecorate %type_View 10 Offset 640 - OpMemberDecorate %type_View 10 MatrixStride 16 - OpMemberDecorate %type_View 10 ColMajor - OpMemberDecorate %type_View 11 Offset 704 - OpMemberDecorate %type_View 11 MatrixStride 16 - OpMemberDecorate %type_View 11 ColMajor - OpMemberDecorate %type_View 12 Offset 768 - OpMemberDecorate %type_View 12 MatrixStride 16 - OpMemberDecorate %type_View 12 ColMajor - OpMemberDecorate %type_View 13 Offset 832 - OpMemberDecorate %type_View 14 Offset 844 - OpMemberDecorate %type_View 15 Offset 848 - OpMemberDecorate %type_View 16 Offset 860 - OpMemberDecorate %type_View 17 Offset 864 - OpMemberDecorate %type_View 18 Offset 876 - OpMemberDecorate %type_View 19 Offset 880 - OpMemberDecorate %type_View 20 Offset 892 - OpMemberDecorate %type_View 21 Offset 896 - OpMemberDecorate %type_View 22 Offset 908 - OpMemberDecorate %type_View 23 Offset 912 - OpMemberDecorate %type_View 24 Offset 928 - OpMemberDecorate %type_View 25 Offset 944 - OpMemberDecorate %type_View 26 Offset 956 - OpMemberDecorate %type_View 27 Offset 960 - OpMemberDecorate %type_View 28 Offset 972 - OpMemberDecorate %type_View 29 Offset 976 - OpMemberDecorate %type_View 30 Offset 988 - OpMemberDecorate %type_View 31 Offset 992 - OpMemberDecorate %type_View 32 Offset 1004 - OpMemberDecorate %type_View 33 Offset 1008 - OpMemberDecorate %type_View 33 MatrixStride 16 - OpMemberDecorate %type_View 33 ColMajor - OpMemberDecorate %type_View 34 Offset 1072 - OpMemberDecorate %type_View 34 MatrixStride 16 - OpMemberDecorate %type_View 34 ColMajor - OpMemberDecorate %type_View 35 Offset 1136 - OpMemberDecorate %type_View 35 MatrixStride 16 - OpMemberDecorate %type_View 35 ColMajor - OpMemberDecorate %type_View 36 Offset 1200 - OpMemberDecorate %type_View 36 MatrixStride 16 - OpMemberDecorate %type_View 36 ColMajor - OpMemberDecorate %type_View 37 Offset 1264 - OpMemberDecorate %type_View 37 MatrixStride 16 - OpMemberDecorate %type_View 37 ColMajor - OpMemberDecorate %type_View 38 Offset 1328 - OpMemberDecorate %type_View 38 MatrixStride 16 - OpMemberDecorate %type_View 38 ColMajor - OpMemberDecorate %type_View 39 Offset 1392 - OpMemberDecorate %type_View 39 MatrixStride 16 - OpMemberDecorate %type_View 39 ColMajor - OpMemberDecorate %type_View 40 Offset 1456 - OpMemberDecorate %type_View 40 MatrixStride 16 - OpMemberDecorate %type_View 40 ColMajor - OpMemberDecorate %type_View 41 Offset 1520 - OpMemberDecorate %type_View 41 MatrixStride 16 - OpMemberDecorate %type_View 41 ColMajor - OpMemberDecorate %type_View 42 Offset 1584 - OpMemberDecorate %type_View 42 MatrixStride 16 - OpMemberDecorate %type_View 42 ColMajor - OpMemberDecorate %type_View 43 Offset 1648 - OpMemberDecorate %type_View 44 Offset 1660 - OpMemberDecorate %type_View 45 Offset 1664 - OpMemberDecorate %type_View 46 Offset 1676 - OpMemberDecorate %type_View 47 Offset 1680 - OpMemberDecorate %type_View 48 Offset 1692 - OpMemberDecorate %type_View 49 Offset 1696 - OpMemberDecorate %type_View 49 MatrixStride 16 - OpMemberDecorate %type_View 49 ColMajor - OpMemberDecorate %type_View 50 Offset 1760 - OpMemberDecorate %type_View 50 MatrixStride 16 - OpMemberDecorate %type_View 50 ColMajor - OpMemberDecorate %type_View 51 Offset 1824 - OpMemberDecorate %type_View 51 MatrixStride 16 - OpMemberDecorate %type_View 51 ColMajor - OpMemberDecorate %type_View 52 Offset 1888 - OpMemberDecorate %type_View 53 Offset 1904 - OpMemberDecorate %type_View 54 Offset 1920 - OpMemberDecorate %type_View 55 Offset 1928 - OpMemberDecorate %type_View 56 Offset 1936 - OpMemberDecorate %type_View 57 Offset 1952 - OpMemberDecorate %type_View 58 Offset 1968 - OpMemberDecorate %type_View 59 Offset 1984 - OpMemberDecorate %type_View 60 Offset 2000 - OpMemberDecorate %type_View 61 Offset 2004 - OpMemberDecorate %type_View 62 Offset 2008 - OpMemberDecorate %type_View 63 Offset 2012 - OpMemberDecorate %type_View 64 Offset 2016 - OpMemberDecorate %type_View 65 Offset 2032 - OpMemberDecorate %type_View 66 Offset 2048 - OpMemberDecorate %type_View 67 Offset 2064 - OpMemberDecorate %type_View 68 Offset 2072 - OpMemberDecorate %type_View 69 Offset 2076 - OpMemberDecorate %type_View 70 Offset 2080 - OpMemberDecorate %type_View 71 Offset 2084 - OpMemberDecorate %type_View 72 Offset 2088 - OpMemberDecorate %type_View 73 Offset 2092 - OpMemberDecorate %type_View 74 Offset 2096 - OpMemberDecorate %type_View 75 Offset 2108 - OpMemberDecorate %type_View 76 Offset 2112 - OpMemberDecorate %type_View 77 Offset 2116 - OpMemberDecorate %type_View 78 Offset 2120 - OpMemberDecorate %type_View 79 Offset 2124 - OpMemberDecorate %type_View 80 Offset 2128 - OpMemberDecorate %type_View 81 Offset 2132 - OpMemberDecorate %type_View 82 Offset 2136 - OpMemberDecorate %type_View 83 Offset 2140 - OpMemberDecorate %type_View 84 Offset 2144 - OpMemberDecorate %type_View 85 Offset 2148 - OpMemberDecorate %type_View 86 Offset 2152 - OpMemberDecorate %type_View 87 Offset 2156 - OpMemberDecorate %type_View 88 Offset 2160 - OpMemberDecorate %type_View 89 Offset 2164 - OpMemberDecorate %type_View 90 Offset 2168 - OpMemberDecorate %type_View 91 Offset 2172 - OpMemberDecorate %type_View 92 Offset 2176 - OpMemberDecorate %type_View 93 Offset 2192 - OpMemberDecorate %type_View 94 Offset 2204 - OpMemberDecorate %type_View 95 Offset 2208 - OpMemberDecorate %type_View 96 Offset 2240 - OpMemberDecorate %type_View 97 Offset 2272 - OpMemberDecorate %type_View 98 Offset 2288 - OpMemberDecorate %type_View 99 Offset 2304 - OpMemberDecorate %type_View 100 Offset 2308 - OpMemberDecorate %type_View 101 Offset 2312 - OpMemberDecorate %type_View 102 Offset 2316 - OpMemberDecorate %type_View 103 Offset 2320 - OpMemberDecorate %type_View 104 Offset 2324 - OpMemberDecorate %type_View 105 Offset 2328 - OpMemberDecorate %type_View 106 Offset 2332 - OpMemberDecorate %type_View 107 Offset 2336 - OpMemberDecorate %type_View 108 Offset 2340 - OpMemberDecorate %type_View 109 Offset 2344 - OpMemberDecorate %type_View 110 Offset 2348 - OpMemberDecorate %type_View 111 Offset 2352 - OpMemberDecorate %type_View 112 Offset 2364 - OpMemberDecorate %type_View 113 Offset 2368 - OpMemberDecorate %type_View 114 Offset 2380 - OpMemberDecorate %type_View 115 Offset 2384 - OpMemberDecorate %type_View 116 Offset 2388 - OpMemberDecorate %type_View 117 Offset 2392 - OpMemberDecorate %type_View 118 Offset 2396 - OpMemberDecorate %type_View 119 Offset 2400 - OpMemberDecorate %type_View 120 Offset 2404 - OpMemberDecorate %type_View 121 Offset 2408 - OpMemberDecorate %type_View 122 Offset 2412 - OpMemberDecorate %type_View 123 Offset 2416 - OpMemberDecorate %type_View 124 Offset 2420 - OpMemberDecorate %type_View 125 Offset 2424 - OpMemberDecorate %type_View 126 Offset 2428 - OpMemberDecorate %type_View 127 Offset 2432 - OpMemberDecorate %type_View 128 Offset 2448 - OpMemberDecorate %type_View 129 Offset 2460 - OpMemberDecorate %type_View 130 Offset 2464 - OpMemberDecorate %type_View 131 Offset 2480 - OpMemberDecorate %type_View 132 Offset 2484 - OpMemberDecorate %type_View 133 Offset 2488 - OpMemberDecorate %type_View 134 Offset 2492 - OpMemberDecorate %type_View 135 Offset 2496 - OpMemberDecorate %type_View 136 Offset 2512 - OpMemberDecorate %type_View 137 Offset 2624 - OpMemberDecorate %type_View 138 Offset 2628 - OpMemberDecorate %type_View 139 Offset 2632 - OpMemberDecorate %type_View 140 Offset 2636 - OpMemberDecorate %type_View 141 Offset 2640 - OpMemberDecorate %type_View 142 Offset 2644 - OpMemberDecorate %type_View 143 Offset 2648 - OpMemberDecorate %type_View 144 Offset 2652 - OpMemberDecorate %type_View 145 Offset 2656 - OpMemberDecorate %type_View 146 Offset 2668 - OpMemberDecorate %type_View 147 Offset 2672 - OpMemberDecorate %type_View 148 Offset 2736 - OpMemberDecorate %type_View 149 Offset 2800 - OpMemberDecorate %type_View 150 Offset 2804 - OpMemberDecorate %type_View 151 Offset 2808 - OpMemberDecorate %type_View 152 Offset 2812 - OpMemberDecorate %type_View 153 Offset 2816 - OpMemberDecorate %type_View 154 Offset 2828 - OpMemberDecorate %type_View 155 Offset 2832 - OpMemberDecorate %type_View 156 Offset 2844 - OpMemberDecorate %type_View 157 Offset 2848 - OpMemberDecorate %type_View 158 Offset 2856 - OpMemberDecorate %type_View 159 Offset 2860 - OpMemberDecorate %type_View 160 Offset 2864 - OpMemberDecorate %type_View 161 Offset 2876 - OpMemberDecorate %type_View 162 Offset 2880 - OpMemberDecorate %type_View 163 Offset 2892 - OpMemberDecorate %type_View 164 Offset 2896 - OpMemberDecorate %type_View 165 Offset 2908 - OpMemberDecorate %type_View 166 Offset 2912 - OpMemberDecorate %type_View 167 Offset 2924 - OpMemberDecorate %type_View 168 Offset 2928 - OpMemberDecorate %type_View 169 Offset 2932 - OpDecorate %type_View Block - OpDecorate %_arr_mat4v4float_uint_6 ArrayStride 64 - OpMemberDecorate %type__Globals 0 Offset 0 - OpMemberDecorate %type__Globals 1 Offset 16 - OpMemberDecorate %type__Globals 1 MatrixStride 16 - OpMemberDecorate %type__Globals 1 ColMajor - OpMemberDecorate %type__Globals 2 Offset 400 - OpMemberDecorate %type__Globals 3 Offset 404 - OpMemberDecorate %type__Globals 4 Offset 408 - OpMemberDecorate %type__Globals 5 Offset 416 - OpMemberDecorate %type__Globals 6 Offset 432 - OpMemberDecorate %type__Globals 7 Offset 448 - OpDecorate %type__Globals Block - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%mat4v4float = OpTypeMatrix %v4float 4 - %v3float = OpTypeVector %float 3 - %v2float = OpTypeVector %float 2 - %int = OpTypeInt 32 1 - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 - %uint_7 = OpConstant %uint 7 - %uint_4 = OpConstant %uint 4 - %float_0 = OpConstant %float 0 - %float_2_5 = OpConstant %float 2.5 -%float_2_37764096 = OpConstant %float 2.37764096 -%float_0_772542 = OpConstant %float 0.772542 -%float_1_46946299 = OpConstant %float 1.46946299 -%float_n2_02254295 = OpConstant %float -2.02254295 -%float_n1_46946299 = OpConstant %float -1.46946299 -%float_n2_022542 = OpConstant %float -2.022542 -%float_n2_37764096 = OpConstant %float -2.37764096 -%float_0_772543013 = OpConstant %float 0.772543013 - %float_1 = OpConstant %float 1 - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 - %int_3 = OpConstant %int 3 - %int_7 = OpConstant %int 7 - %int_58 = OpConstant %int 58 - %int_24 = OpConstant %int 24 - %int_11 = OpConstant %int 11 - %int_5 = OpConstant %int 5 - %float_0_5 = OpConstant %float 0.5 - %int_4 = OpConstant %int 4 - %int_2 = OpConstant %int 2 - %62 = OpConstantComposite %v3float %float_1 %float_1 %float_1 - %bool = OpTypeBool - %uint_5 = OpConstant %uint 5 - %65 = OpConstantComposite %v3float %float_0 %float_0 %float_1 - %66 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 - %float_10 = OpConstant %float 10 - %float_5 = OpConstant %float 5 - %uint_0 = OpConstant %uint 0 - %int_23 = OpConstant %int 23 - %uint_1 = OpConstant %uint 1 - %uint_3 = OpConstant %uint 3 - %uint_16 = OpConstant %uint 16 -%float_0_150000006 = OpConstant %float 0.150000006 - %float_0_25 = OpConstant %float 0.25 - %float_2 = OpConstant %float 2 - %77 = OpConstantComposite %v3float %float_2 %float_2 %float_2 - %float_255 = OpConstant %float 255 - %uint_15 = OpConstant %uint 15 -%uint_4294967280 = OpConstant %uint 4294967280 -%_arr_v4float_uint_2 = OpTypeArray %v4float %uint_2 -%_arr_v4float_uint_7 = OpTypeArray %v4float %uint_7 -%_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4 - %type_View = OpTypeStruct %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %v3float %float %v3float %float %v3float %float %v3float %float %v3float %float %v4float %v4float %v3float %float %v3float %float %v3float %float %v3float %float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %v3float %float %v3float %float %v3float %float %mat4v4float %mat4v4float %mat4v4float %v4float %v4float %v2float %v2float %v4float %v4float %v4float %v4float %int %float %float %float %v4float %v4float %v4float %v2float %float %float %float %float %float %float %v3float %float %float %float %float %float %float %float %float %uint %uint %uint %uint %float %float %float %float %float %v4float %v3float %float %_arr_v4float_uint_2 %_arr_v4float_uint_2 %v4float %v4float %float %float %float %float %float %float %float %float %float %float %float %float %v3float %float %v3float %float %float %float %float %float %float %float %float %float %float %float %uint %uint %v4float %v3float %float %v4float %float %float %float %float %v4float %_arr_v4float_uint_7 %float %float %float %float %uint %float %float %float %v3float %int %_arr_v4float_uint_4 %_arr_v4float_uint_4 %float %float %float %float %v3float %float %v3float %float %v2float %float %float %v3float %float %v3float %float %v3float %float %v3float %float %float %float -%_ptr_Uniform_type_View = OpTypePointer Uniform %type_View -%type_2d_image = OpTypeImage %float 2D 2 0 0 1 Unknown -%_ptr_UniformConstant_type_2d_image = OpTypePointer UniformConstant %type_2d_image -%type_sampler = OpTypeSampler -%_ptr_UniformConstant_type_sampler = OpTypePointer UniformConstant %type_sampler - %uint_6 = OpConstant %uint 6 -%_arr_mat4v4float_uint_6 = OpTypeArray %mat4v4float %uint_6 -%type__Globals = OpTypeStruct %v3float %_arr_mat4v4float_uint_6 %float %float %float %v4float %v2float %v4float -%_ptr_Uniform_type__Globals = OpTypePointer Uniform %type__Globals -%type_cube_image = OpTypeImage %float Cube 2 0 0 1 Unknown -%_ptr_UniformConstant_type_cube_image = OpTypePointer UniformConstant %type_cube_image - %v2int = OpTypeVector %int 2 -%_ptr_Input_v4float = OpTypePointer Input %v4float -%_ptr_Output_v4float = OpTypePointer Output %v4float - %void = OpTypeVoid - %91 = OpTypeFunction %void -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float -%_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float -%_ptr_Uniform_float = OpTypePointer Uniform %float -%type_sampled_image = OpTypeSampledImage %type_cube_image - %v3int = OpTypeVector %int 3 -%type_sampled_image_0 = OpTypeSampledImage %type_2d_image - %v4bool = OpTypeVector %bool 4 - %View = OpVariable %_ptr_Uniform_type_View Uniform -%SceneTexturesStruct_SceneDepthTexture = OpVariable %_ptr_UniformConstant_type_2d_image UniformConstant -%SceneTexturesStruct_SceneDepthTextureSampler = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant -%SceneTexturesStruct_GBufferATexture = OpVariable %_ptr_UniformConstant_type_2d_image UniformConstant -%SceneTexturesStruct_GBufferBTexture = OpVariable %_ptr_UniformConstant_type_2d_image UniformConstant -%SceneTexturesStruct_GBufferDTexture = OpVariable %_ptr_UniformConstant_type_2d_image UniformConstant -%SceneTexturesStruct_GBufferATextureSampler = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant -%SceneTexturesStruct_GBufferBTextureSampler = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant -%SceneTexturesStruct_GBufferDTextureSampler = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant -%ShadowDepthTextureSampler = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant - %_Globals = OpVariable %_ptr_Uniform_type__Globals Uniform -%ShadowDepthCubeTexture = OpVariable %_ptr_UniformConstant_type_cube_image UniformConstant -%ShadowDepthCubeTextureSampler = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant -%SSProfilesTexture = OpVariable %_ptr_UniformConstant_type_2d_image UniformConstant -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input -%out_var_SV_Target0 = OpVariable %_ptr_Output_v4float Output -%float_0_200000003 = OpConstant %float 0.200000003 - %98 = OpConstantComposite %v3float %float_2_5 %float_2_5 %float_2_5 - %99 = OpConstantComposite %v3float %float_2_37764096 %float_2_37764096 %float_2_37764096 - %100 = OpConstantComposite %v3float %float_0_772542 %float_0_772542 %float_0_772542 - %101 = OpConstantComposite %v3float %float_1_46946299 %float_1_46946299 %float_1_46946299 - %102 = OpConstantComposite %v3float %float_n2_02254295 %float_n2_02254295 %float_n2_02254295 - %103 = OpConstantComposite %v3float %float_n1_46946299 %float_n1_46946299 %float_n1_46946299 - %104 = OpConstantComposite %v3float %float_n2_022542 %float_n2_022542 %float_n2_022542 - %105 = OpConstantComposite %v3float %float_n2_37764096 %float_n2_37764096 %float_n2_37764096 - %106 = OpConstantComposite %v3float %float_0_772543013 %float_0_772543013 %float_0_772543013 - %107 = OpUndef %v4float -%MainOnePassPointLightPS = OpFunction %void None %91 - %108 = OpLabel - %109 = OpLoad %v4float %gl_FragCoord - %110 = OpVectorShuffle %v2float %109 %109 0 1 - %111 = OpAccessChain %_ptr_Uniform_v4float %View %int_58 - %112 = OpLoad %v4float %111 - %113 = OpVectorShuffle %v2float %112 %112 2 3 - %114 = OpFMul %v2float %110 %113 - %115 = OpLoad %type_2d_image %SceneTexturesStruct_SceneDepthTexture - %116 = OpLoad %type_sampler %SceneTexturesStruct_SceneDepthTextureSampler - %117 = OpSampledImage %type_sampled_image_0 %115 %116 - %118 = OpImageSampleExplicitLod %v4float %117 %114 Lod %float_0 - %119 = OpCompositeExtract %float %118 0 - %120 = OpAccessChain %_ptr_Uniform_float %View %int_23 %uint_0 - %121 = OpLoad %float %120 - %122 = OpFMul %float %119 %121 - %123 = OpAccessChain %_ptr_Uniform_float %View %int_23 %uint_1 - %124 = OpLoad %float %123 - %125 = OpFAdd %float %122 %124 - %126 = OpAccessChain %_ptr_Uniform_float %View %int_23 %uint_2 - %127 = OpLoad %float %126 - %128 = OpFMul %float %119 %127 - %129 = OpAccessChain %_ptr_Uniform_float %View %int_23 %uint_3 - %130 = OpLoad %float %129 - %131 = OpFSub %float %128 %130 - %132 = OpFDiv %float %float_1 %131 - %133 = OpFAdd %float %125 %132 - %134 = OpAccessChain %_ptr_Uniform_v4float %View %int_24 - %135 = OpLoad %v4float %134 - %136 = OpVectorShuffle %v2float %135 %135 3 2 - %137 = OpFSub %v2float %114 %136 - %138 = OpVectorShuffle %v2float %135 %135 0 1 - %139 = OpFDiv %v2float %137 %138 - %140 = OpCompositeConstruct %v2float %133 %133 - %141 = OpFMul %v2float %139 %140 - %142 = OpCompositeExtract %float %141 0 - %143 = OpCompositeExtract %float %141 1 - %144 = OpCompositeConstruct %v4float %142 %143 %133 %float_1 - %145 = OpAccessChain %_ptr_Uniform_mat4v4float %View %int_11 - %146 = OpLoad %mat4v4float %145 - %147 = OpMatrixTimesVector %v4float %146 %144 - %148 = OpVectorShuffle %v3float %147 %147 0 1 2 - %149 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_5 - %150 = OpLoad %v4float %149 - %151 = OpVectorShuffle %v3float %150 %150 0 1 2 - %152 = OpFSub %v3float %151 %148 - %153 = OpAccessChain %_ptr_Uniform_float %_Globals %int_5 %int_3 - %154 = OpLoad %float %153 - %155 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_7 - %156 = OpAccessChain %_ptr_Uniform_float %_Globals %int_7 %int_0 - %157 = OpLoad %float %156 - %158 = OpExtInst %float %1 Length %152 - %159 = OpFMul %float %158 %154 - %160 = OpFOrdLessThan %bool %159 %float_1 - OpSelectionMerge %161 DontFlatten - OpBranchConditional %160 %162 %161 - %162 = OpLabel - %163 = OpCompositeConstruct %v3float %158 %158 %158 - %164 = OpFDiv %v3float %152 %163 - %165 = OpExtInst %v3float %1 FAbs %152 - %166 = OpCompositeExtract %float %165 0 - %167 = OpCompositeExtract %float %165 1 - %168 = OpCompositeExtract %float %165 2 - %169 = OpExtInst %float %1 FMax %167 %168 - %170 = OpExtInst %float %1 FMax %166 %169 - %171 = OpFOrdEqual %bool %170 %166 - OpSelectionMerge %172 None - OpBranchConditional %171 %173 %174 - %174 = OpLabel - %175 = OpFOrdEqual %bool %170 %167 - OpSelectionMerge %176 None - OpBranchConditional %175 %177 %178 - %178 = OpLabel - %179 = OpCompositeExtract %float %152 2 - %180 = OpFOrdEqual %bool %168 %179 - %181 = OpSelect %int %180 %int_4 %int_5 - OpBranch %176 - %177 = OpLabel - %182 = OpCompositeExtract %float %152 1 - %183 = OpFOrdEqual %bool %167 %182 - %184 = OpSelect %int %183 %int_2 %int_3 - OpBranch %176 - %176 = OpLabel - %185 = OpPhi %int %184 %177 %181 %178 - OpBranch %172 - %173 = OpLabel - %186 = OpCompositeExtract %float %152 0 - %187 = OpFOrdEqual %bool %166 %186 - %188 = OpSelect %int %187 %int_0 %int_1 - OpBranch %172 - %172 = OpLabel - %189 = OpPhi %int %188 %173 %185 %176 - %190 = OpCompositeExtract %float %147 0 - %191 = OpCompositeExtract %float %147 1 - %192 = OpCompositeExtract %float %147 2 - %193 = OpCompositeConstruct %v4float %190 %191 %192 %float_1 - %194 = OpAccessChain %_ptr_Uniform_mat4v4float %_Globals %int_1 %189 - %195 = OpLoad %mat4v4float %194 - %196 = OpMatrixTimesVector %v4float %195 %193 - %197 = OpCompositeExtract %float %196 2 - %198 = OpCompositeExtract %float %196 3 - %199 = OpFDiv %float %197 %198 - %200 = OpFNegate %float %157 - %201 = OpFDiv %float %200 %198 - %202 = OpLoad %type_cube_image %ShadowDepthCubeTexture - %203 = OpLoad %type_sampler %ShadowDepthCubeTextureSampler - %204 = OpFAdd %float %199 %201 - %205 = OpSampledImage %type_sampled_image %202 %203 - %206 = OpImageSampleDrefExplicitLod %float %205 %164 %204 Lod %float_0 - OpBranch %161 - %161 = OpLabel - %207 = OpPhi %float %float_1 %108 %206 %172 - %208 = OpFSub %float %207 %float_0_5 - %209 = OpAccessChain %_ptr_Uniform_float %_Globals %int_4 - %210 = OpLoad %float %209 - %211 = OpFMul %float %208 %210 - %212 = OpFAdd %float %211 %float_0_5 - %213 = OpExtInst %float %1 FClamp %212 %float_0 %float_1 - %214 = OpFMul %float %213 %213 - %215 = OpAccessChain %_ptr_Uniform_float %_Globals %int_3 - %216 = OpLoad %float %215 - %217 = OpExtInst %float %1 FMix %float_1 %214 %216 - %218 = OpExtInst %float %1 Sqrt %217 - %219 = OpCompositeInsert %v4float %218 %107 2 - %220 = OpVectorShuffle %v4float %219 %62 4 5 2 6 - %221 = OpLoad %type_2d_image %SceneTexturesStruct_GBufferATexture - %222 = OpLoad %type_sampler %SceneTexturesStruct_GBufferATextureSampler - %223 = OpSampledImage %type_sampled_image_0 %221 %222 - %224 = OpImageSampleExplicitLod %v4float %223 %114 Lod %float_0 - %225 = OpLoad %type_2d_image %SceneTexturesStruct_GBufferBTexture - %226 = OpLoad %type_sampler %SceneTexturesStruct_GBufferBTextureSampler - %227 = OpSampledImage %type_sampled_image_0 %225 %226 - %228 = OpImageSampleExplicitLod %v4float %227 %114 Lod %float_0 - %229 = OpLoad %type_2d_image %SceneTexturesStruct_GBufferDTexture - %230 = OpLoad %type_sampler %SceneTexturesStruct_GBufferDTextureSampler - %231 = OpSampledImage %type_sampled_image_0 %229 %230 - %232 = OpImageSampleExplicitLod %v4float %231 %114 Lod %float_0 - %233 = OpVectorShuffle %v3float %224 %224 0 1 2 - %234 = OpFMul %v3float %233 %77 - %235 = OpFSub %v3float %234 %62 - %236 = OpExtInst %v3float %1 Normalize %235 - %237 = OpCompositeExtract %float %228 3 - %238 = OpFMul %float %237 %float_255 - %239 = OpExtInst %float %1 Round %238 - %240 = OpConvertFToU %uint %239 - %241 = OpBitwiseAnd %uint %240 %uint_15 - %242 = OpBitwiseAnd %uint %240 %uint_4294967280 - %243 = OpBitwiseAnd %uint %242 %uint_16 - %244 = OpINotEqual %bool %243 %uint_0 - %245 = OpLogicalNot %bool %244 - %246 = OpCompositeConstruct %v4bool %245 %245 %245 %245 - %247 = OpSelect %v4float %246 %232 %66 - %248 = OpIEqual %bool %241 %uint_5 - OpSelectionMerge %249 None - OpBranchConditional %248 %250 %249 - %250 = OpLabel - %251 = OpLoad %v4float %155 - %252 = OpCompositeExtract %float %247 0 - %253 = OpFMul %float %252 %float_255 - %254 = OpFAdd %float %253 %float_0_5 - %255 = OpConvertFToU %uint %254 - %256 = OpBitcast %int %255 - %257 = OpCompositeConstruct %v3int %int_1 %256 %int_0 - %258 = OpVectorShuffle %v2int %257 %257 0 1 - %259 = OpLoad %type_2d_image %SSProfilesTexture - %260 = OpImageFetch %v4float %259 %258 Lod %int_0 - %261 = OpCompositeExtract %float %260 0 - %262 = OpCompositeExtract %float %260 1 - %263 = OpFMul %float %262 %float_0_5 - %264 = OpCompositeConstruct %v3float %263 %263 %263 - %265 = OpFMul %v3float %236 %264 - %266 = OpFSub %v3float %148 %265 - %267 = OpDot %float %152 %152 - %268 = OpExtInst %float %1 InverseSqrt %267 - %269 = OpCompositeConstruct %v3float %268 %268 %268 - %270 = OpFMul %v3float %152 %269 - %271 = OpFNegate %v3float %270 - %272 = OpDot %float %271 %236 - %273 = OpExtInst %float %1 FClamp %272 %float_0 %float_1 - %274 = OpExtInst %float %1 Pow %273 %float_1 - OpSelectionMerge %275 DontFlatten - OpBranchConditional %160 %276 %275 - %276 = OpLabel - %277 = OpCompositeConstruct %v3float %158 %158 %158 - %278 = OpFDiv %v3float %152 %277 - %279 = OpExtInst %v3float %1 Cross %278 %65 - %280 = OpExtInst %v3float %1 Normalize %279 - %281 = OpExtInst %v3float %1 Cross %280 %278 - %282 = OpAccessChain %_ptr_Uniform_float %_Globals %int_2 - %283 = OpLoad %float %282 - %284 = OpCompositeConstruct %v3float %283 %283 %283 - %285 = OpFMul %v3float %280 %284 - %286 = OpFMul %v3float %281 %284 - %287 = OpExtInst %v3float %1 FAbs %278 - %288 = OpCompositeExtract %float %287 0 - %289 = OpCompositeExtract %float %287 1 - %290 = OpCompositeExtract %float %287 2 - %291 = OpExtInst %float %1 FMax %289 %290 - %292 = OpExtInst %float %1 FMax %288 %291 - %293 = OpFOrdEqual %bool %292 %288 - OpSelectionMerge %294 None - OpBranchConditional %293 %295 %296 - %296 = OpLabel - %297 = OpFOrdEqual %bool %292 %289 - OpSelectionMerge %298 None - OpBranchConditional %297 %299 %300 - %300 = OpLabel - %301 = OpCompositeExtract %float %278 2 - %302 = OpFOrdEqual %bool %290 %301 - %303 = OpSelect %int %302 %int_4 %int_5 - OpBranch %298 - %299 = OpLabel - %304 = OpCompositeExtract %float %278 1 - %305 = OpFOrdEqual %bool %289 %304 - %306 = OpSelect %int %305 %int_2 %int_3 - OpBranch %298 - %298 = OpLabel - %307 = OpPhi %int %306 %299 %303 %300 - OpBranch %294 - %295 = OpLabel - %308 = OpCompositeExtract %float %278 0 - %309 = OpFOrdEqual %bool %288 %308 - %310 = OpSelect %int %309 %int_0 %int_1 - OpBranch %294 - %294 = OpLabel - %311 = OpPhi %int %310 %295 %307 %298 - %312 = OpCompositeExtract %float %266 0 - %313 = OpCompositeExtract %float %266 1 - %314 = OpCompositeExtract %float %266 2 - %315 = OpCompositeConstruct %v4float %312 %313 %314 %float_1 - %316 = OpAccessChain %_ptr_Uniform_mat4v4float %_Globals %int_1 %311 - %317 = OpLoad %mat4v4float %316 - %318 = OpMatrixTimesVector %v4float %317 %315 - %319 = OpCompositeExtract %float %318 2 - %320 = OpCompositeExtract %float %318 3 - %321 = OpFDiv %float %319 %320 - %322 = OpFDiv %float %float_10 %154 - %323 = OpFMul %float %261 %322 - %324 = OpCompositeExtract %float %251 2 - %325 = OpFMul %float %321 %324 - %326 = OpCompositeExtract %float %251 3 - %327 = OpFSub %float %325 %326 - %328 = OpFDiv %float %float_1 %327 - %329 = OpFMul %float %328 %154 - %330 = OpFMul %v3float %286 %98 - %331 = OpFAdd %v3float %278 %330 - %332 = OpLoad %type_cube_image %ShadowDepthCubeTexture - %333 = OpLoad %type_sampler %ShadowDepthTextureSampler - %334 = OpSampledImage %type_sampled_image %332 %333 - %335 = OpImageSampleExplicitLod %v4float %334 %331 Lod %float_0 - %336 = OpCompositeExtract %float %335 0 - %337 = OpFMul %float %336 %324 - %338 = OpFSub %float %337 %326 - %339 = OpFDiv %float %float_1 %338 - %340 = OpFMul %float %339 %154 - %341 = OpFSub %float %329 %340 - %342 = OpFMul %float %341 %323 - %343 = OpFOrdGreaterThan %bool %342 %float_0 - %344 = OpFAdd %float %342 %263 - %345 = OpFMul %float %342 %274 - %346 = OpFAdd %float %345 %263 - %347 = OpExtInst %float %1 FMax %float_0 %346 - %348 = OpSelect %float %343 %344 %347 - %349 = OpExtInst %float %1 FAbs %348 - %350 = OpExtInst %float %1 FClamp %349 %float_0_150000006 %float_5 - %351 = OpFAdd %float %350 %float_0_25 - %352 = OpFMul %v3float %285 %99 - %353 = OpFAdd %v3float %278 %352 - %354 = OpFMul %v3float %286 %100 - %355 = OpFAdd %v3float %353 %354 - %356 = OpSampledImage %type_sampled_image %332 %333 - %357 = OpImageSampleExplicitLod %v4float %356 %355 Lod %float_0 - %358 = OpCompositeExtract %float %357 0 - %359 = OpFMul %float %358 %324 - %360 = OpFSub %float %359 %326 - %361 = OpFDiv %float %float_1 %360 - %362 = OpFMul %float %361 %154 - %363 = OpFSub %float %329 %362 - %364 = OpFMul %float %363 %323 - %365 = OpFOrdGreaterThan %bool %364 %float_0 - %366 = OpFAdd %float %364 %263 - %367 = OpFMul %float %364 %274 - %368 = OpFAdd %float %367 %263 - %369 = OpExtInst %float %1 FMax %float_0 %368 - %370 = OpSelect %float %365 %366 %369 - %371 = OpExtInst %float %1 FAbs %370 - %372 = OpExtInst %float %1 FClamp %371 %float_0_150000006 %float_5 - %373 = OpFAdd %float %372 %float_0_25 - %374 = OpFAdd %float %351 %373 - %375 = OpFMul %v3float %285 %101 - %376 = OpFAdd %v3float %278 %375 - %377 = OpFMul %v3float %286 %102 - %378 = OpFAdd %v3float %376 %377 - %379 = OpSampledImage %type_sampled_image %332 %333 - %380 = OpImageSampleExplicitLod %v4float %379 %378 Lod %float_0 - %381 = OpCompositeExtract %float %380 0 - %382 = OpFMul %float %381 %324 - %383 = OpFSub %float %382 %326 - %384 = OpFDiv %float %float_1 %383 - %385 = OpFMul %float %384 %154 - %386 = OpFSub %float %329 %385 - %387 = OpFMul %float %386 %323 - %388 = OpFOrdGreaterThan %bool %387 %float_0 - %389 = OpFAdd %float %387 %263 - %390 = OpFMul %float %387 %274 - %391 = OpFAdd %float %390 %263 - %392 = OpExtInst %float %1 FMax %float_0 %391 - %393 = OpSelect %float %388 %389 %392 - %394 = OpExtInst %float %1 FAbs %393 - %395 = OpExtInst %float %1 FClamp %394 %float_0_150000006 %float_5 - %396 = OpFAdd %float %395 %float_0_25 - %397 = OpFAdd %float %374 %396 - %398 = OpFMul %v3float %285 %103 - %399 = OpFAdd %v3float %278 %398 - %400 = OpFMul %v3float %286 %104 - %401 = OpFAdd %v3float %399 %400 - %402 = OpSampledImage %type_sampled_image %332 %333 - %403 = OpImageSampleExplicitLod %v4float %402 %401 Lod %float_0 - %404 = OpCompositeExtract %float %403 0 - %405 = OpFMul %float %404 %324 - %406 = OpFSub %float %405 %326 - %407 = OpFDiv %float %float_1 %406 - %408 = OpFMul %float %407 %154 - %409 = OpFSub %float %329 %408 - %410 = OpFMul %float %409 %323 - %411 = OpFOrdGreaterThan %bool %410 %float_0 - %412 = OpFAdd %float %410 %263 - %413 = OpFMul %float %410 %274 - %414 = OpFAdd %float %413 %263 - %415 = OpExtInst %float %1 FMax %float_0 %414 - %416 = OpSelect %float %411 %412 %415 - %417 = OpExtInst %float %1 FAbs %416 - %418 = OpExtInst %float %1 FClamp %417 %float_0_150000006 %float_5 - %419 = OpFAdd %float %418 %float_0_25 - %420 = OpFAdd %float %397 %419 - %421 = OpFMul %v3float %285 %105 - %422 = OpFAdd %v3float %278 %421 - %423 = OpFMul %v3float %286 %106 - %424 = OpFAdd %v3float %422 %423 - %425 = OpSampledImage %type_sampled_image %332 %333 - %426 = OpImageSampleExplicitLod %v4float %425 %424 Lod %float_0 - %427 = OpCompositeExtract %float %426 0 - %428 = OpFMul %float %427 %324 - %429 = OpFSub %float %428 %326 - %430 = OpFDiv %float %float_1 %429 - %431 = OpFMul %float %430 %154 - %432 = OpFSub %float %329 %431 - %433 = OpFMul %float %432 %323 - %434 = OpFOrdGreaterThan %bool %433 %float_0 - %435 = OpFAdd %float %433 %263 - %436 = OpFMul %float %433 %274 - %437 = OpFAdd %float %436 %263 - %438 = OpExtInst %float %1 FMax %float_0 %437 - %439 = OpSelect %float %434 %435 %438 - %440 = OpExtInst %float %1 FAbs %439 - %441 = OpExtInst %float %1 FClamp %440 %float_0_150000006 %float_5 - %442 = OpFAdd %float %441 %float_0_25 - %443 = OpFAdd %float %420 %442 - %444 = OpFMul %float %443 %float_0_200000003 - OpBranch %275 - %275 = OpLabel - %445 = OpPhi %float %float_1 %250 %444 %294 - %446 = OpFMul %float %445 %float_0_200000003 - %447 = OpFSub %float %float_1 %446 - OpBranch %249 - %249 = OpLabel - %448 = OpPhi %float %float_1 %161 %447 %275 - %449 = OpExtInst %float %1 Sqrt %448 - %450 = OpSelect %float %248 %449 %218 - %451 = OpCompositeInsert %v4float %450 %220 3 - OpStore %out_var_SV_Target0 %451 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-ue4/asm/frag/global-constant-arrays.asm.frag b/third_party/spirv-cross/shaders-ue4/asm/frag/global-constant-arrays.asm.frag deleted file mode 100644 index 47db9ebc51..0000000000 --- a/third_party/spirv-cross/shaders-ue4/asm/frag/global-constant-arrays.asm.frag +++ /dev/null @@ -1,3556 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 3005 -; Schema: 0 - OpCapability Shader - OpCapability Geometry - OpExtension "SPV_GOOGLE_hlsl_functionality1" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %MainPS "main" %in_var_TEXCOORD0 %gl_FragCoord %gl_Layer %out_var_SV_Target0 - OpExecutionMode %MainPS OriginUpperLeft - OpSource HLSL 600 - OpName %type__Globals "type.$Globals" - OpMemberName %type__Globals 0 "MappingPolynomial" - OpMemberName %type__Globals 1 "InverseGamma" - OpMemberName %type__Globals 2 "ColorMatrixR_ColorCurveCd1" - OpMemberName %type__Globals 3 "ColorMatrixG_ColorCurveCd3Cm3" - OpMemberName %type__Globals 4 "ColorMatrixB_ColorCurveCm2" - OpMemberName %type__Globals 5 "ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3" - OpMemberName %type__Globals 6 "ColorCurve_Ch1_Ch2" - OpMemberName %type__Globals 7 "ColorShadow_Luma" - OpMemberName %type__Globals 8 "ColorShadow_Tint1" - OpMemberName %type__Globals 9 "ColorShadow_Tint2" - OpMemberName %type__Globals 10 "FilmSlope" - OpMemberName %type__Globals 11 "FilmToe" - OpMemberName %type__Globals 12 "FilmShoulder" - OpMemberName %type__Globals 13 "FilmBlackClip" - OpMemberName %type__Globals 14 "FilmWhiteClip" - OpMemberName %type__Globals 15 "ColorScale" - OpMemberName %type__Globals 16 "OverlayColor" - OpMemberName %type__Globals 17 "WhiteTemp" - OpMemberName %type__Globals 18 "WhiteTint" - OpMemberName %type__Globals 19 "ColorSaturation" - OpMemberName %type__Globals 20 "ColorContrast" - OpMemberName %type__Globals 21 "ColorGamma" - OpMemberName %type__Globals 22 "ColorGain" - OpMemberName %type__Globals 23 "ColorOffset" - OpMemberName %type__Globals 24 "ColorSaturationShadows" - OpMemberName %type__Globals 25 "ColorContrastShadows" - OpMemberName %type__Globals 26 "ColorGammaShadows" - OpMemberName %type__Globals 27 "ColorGainShadows" - OpMemberName %type__Globals 28 "ColorOffsetShadows" - OpMemberName %type__Globals 29 "ColorSaturationMidtones" - OpMemberName %type__Globals 30 "ColorContrastMidtones" - OpMemberName %type__Globals 31 "ColorGammaMidtones" - OpMemberName %type__Globals 32 "ColorGainMidtones" - OpMemberName %type__Globals 33 "ColorOffsetMidtones" - OpMemberName %type__Globals 34 "ColorSaturationHighlights" - OpMemberName %type__Globals 35 "ColorContrastHighlights" - OpMemberName %type__Globals 36 "ColorGammaHighlights" - OpMemberName %type__Globals 37 "ColorGainHighlights" - OpMemberName %type__Globals 38 "ColorOffsetHighlights" - OpMemberName %type__Globals 39 "ColorCorrectionShadowsMax" - OpMemberName %type__Globals 40 "ColorCorrectionHighlightsMin" - OpMemberName %type__Globals 41 "OutputDevice" - OpMemberName %type__Globals 42 "OutputGamut" - OpMemberName %type__Globals 43 "BlueCorrection" - OpMemberName %type__Globals 44 "ExpandGamut" - OpName %_Globals "$Globals" - OpName %in_var_TEXCOORD0 "in.var.TEXCOORD0" - OpName %out_var_SV_Target0 "out.var.SV_Target0" - OpName %MainPS "MainPS" - OpDecorateString %in_var_TEXCOORD0 UserSemantic "TEXCOORD0" - OpDecorate %in_var_TEXCOORD0 NoPerspective - OpDecorate %gl_FragCoord BuiltIn FragCoord - OpDecorateString %gl_FragCoord UserSemantic "SV_POSITION" - OpDecorate %gl_Layer BuiltIn Layer - OpDecorateString %gl_Layer UserSemantic "SV_RenderTargetArrayIndex" - OpDecorate %gl_Layer Flat - OpDecorateString %out_var_SV_Target0 UserSemantic "SV_Target0" - OpDecorate %in_var_TEXCOORD0 Location 0 - OpDecorate %out_var_SV_Target0 Location 0 - OpDecorate %_Globals DescriptorSet 0 - OpDecorate %_Globals Binding 0 - OpMemberDecorate %type__Globals 0 Offset 0 - OpMemberDecorate %type__Globals 1 Offset 16 - OpMemberDecorate %type__Globals 2 Offset 32 - OpMemberDecorate %type__Globals 3 Offset 48 - OpMemberDecorate %type__Globals 4 Offset 64 - OpMemberDecorate %type__Globals 5 Offset 80 - OpMemberDecorate %type__Globals 6 Offset 96 - OpMemberDecorate %type__Globals 7 Offset 112 - OpMemberDecorate %type__Globals 8 Offset 128 - OpMemberDecorate %type__Globals 9 Offset 144 - OpMemberDecorate %type__Globals 10 Offset 160 - OpMemberDecorate %type__Globals 11 Offset 164 - OpMemberDecorate %type__Globals 12 Offset 168 - OpMemberDecorate %type__Globals 13 Offset 172 - OpMemberDecorate %type__Globals 14 Offset 176 - OpMemberDecorate %type__Globals 15 Offset 180 - OpMemberDecorate %type__Globals 16 Offset 192 - OpMemberDecorate %type__Globals 17 Offset 208 - OpMemberDecorate %type__Globals 18 Offset 212 - OpMemberDecorate %type__Globals 19 Offset 224 - OpMemberDecorate %type__Globals 20 Offset 240 - OpMemberDecorate %type__Globals 21 Offset 256 - OpMemberDecorate %type__Globals 22 Offset 272 - OpMemberDecorate %type__Globals 23 Offset 288 - OpMemberDecorate %type__Globals 24 Offset 304 - OpMemberDecorate %type__Globals 25 Offset 320 - OpMemberDecorate %type__Globals 26 Offset 336 - OpMemberDecorate %type__Globals 27 Offset 352 - OpMemberDecorate %type__Globals 28 Offset 368 - OpMemberDecorate %type__Globals 29 Offset 384 - OpMemberDecorate %type__Globals 30 Offset 400 - OpMemberDecorate %type__Globals 31 Offset 416 - OpMemberDecorate %type__Globals 32 Offset 432 - OpMemberDecorate %type__Globals 33 Offset 448 - OpMemberDecorate %type__Globals 34 Offset 464 - OpMemberDecorate %type__Globals 35 Offset 480 - OpMemberDecorate %type__Globals 36 Offset 496 - OpMemberDecorate %type__Globals 37 Offset 512 - OpMemberDecorate %type__Globals 38 Offset 528 - OpMemberDecorate %type__Globals 39 Offset 544 - OpMemberDecorate %type__Globals 40 Offset 548 - OpMemberDecorate %type__Globals 41 Offset 552 - OpMemberDecorate %type__Globals 42 Offset 556 - OpMemberDecorate %type__Globals 43 Offset 560 - OpMemberDecorate %type__Globals 44 Offset 564 - OpDecorate %type__Globals Block - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %v3float = OpTypeVector %float 3 - %v2float = OpTypeVector %float 2 - %int = OpTypeInt 32 1 - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 - %uint_7 = OpConstant %uint 7 - %uint_4 = OpConstant %uint 4 -%float_0_952552378 = OpConstant %float 0.952552378 - %float_0 = OpConstant %float 0 - -; HACK: Needed to hack this constant since MSVC and GNU libc are off by 1 ULP when converting to string (it probably still works fine though in a roundtrip ...) -%float_9_36786018en05 = OpConstant %float 9.25 - -%float_0_343966454 = OpConstant %float 0.343966454 -%float_0_728166103 = OpConstant %float 0.728166103 -%float_n0_0721325427 = OpConstant %float -0.0721325427 -%float_1_00882518 = OpConstant %float 1.00882518 -%float_1_04981101 = OpConstant %float 1.04981101 -%float_n9_74845025en05 = OpConstant %float -9.74845025e-05 -%float_n0_495903015 = OpConstant %float -0.495903015 -%float_1_37331307 = OpConstant %float 1.37331307 -%float_0_0982400328 = OpConstant %float 0.0982400328 -%float_0_991252005 = OpConstant %float 0.991252005 -%float_0_662454188 = OpConstant %float 0.662454188 -%float_0_134004205 = OpConstant %float 0.134004205 -%float_0_156187683 = OpConstant %float 0.156187683 -%float_0_272228718 = OpConstant %float 0.272228718 -%float_0_674081743 = OpConstant %float 0.674081743 -%float_0_0536895171 = OpConstant %float 0.0536895171 -%float_n0_00557464967 = OpConstant %float -0.00557464967 -%float_0_0040607336 = OpConstant %float 0.0040607336 -%float_1_01033914 = OpConstant %float 1.01033914 -%float_1_6410234 = OpConstant %float 1.6410234 -%float_n0_324803293 = OpConstant %float -0.324803293 -%float_n0_236424699 = OpConstant %float -0.236424699 -%float_n0_663662851 = OpConstant %float -0.663662851 -%float_1_61533165 = OpConstant %float 1.61533165 -%float_0_0167563483 = OpConstant %float 0.0167563483 -%float_0_0117218941 = OpConstant %float 0.0117218941 -%float_n0_00828444213 = OpConstant %float -0.00828444213 -%float_0_988394856 = OpConstant %float 0.988394856 -%float_1_45143926 = OpConstant %float 1.45143926 -%float_n0_236510754 = OpConstant %float -0.236510754 -%float_n0_214928567 = OpConstant %float -0.214928567 -%float_n0_0765537769 = OpConstant %float -0.0765537769 -%float_1_17622972 = OpConstant %float 1.17622972 -%float_n0_0996759236 = OpConstant %float -0.0996759236 -%float_0_00831614807 = OpConstant %float 0.00831614807 -%float_n0_00603244966 = OpConstant %float -0.00603244966 -%float_0_997716308 = OpConstant %float 0.997716308 -%float_0_695452213 = OpConstant %float 0.695452213 -%float_0_140678704 = OpConstant %float 0.140678704 -%float_0_163869068 = OpConstant %float 0.163869068 -%float_0_0447945632 = OpConstant %float 0.0447945632 -%float_0_859671116 = OpConstant %float 0.859671116 -%float_0_0955343172 = OpConstant %float 0.0955343172 -%float_n0_00552588282 = OpConstant %float -0.00552588282 -%float_0_00402521016 = OpConstant %float 0.00402521016 -%float_1_00150073 = OpConstant %float 1.00150073 - %67 = OpConstantComposite %v3float %float_0_272228718 %float_0_674081743 %float_0_0536895171 -%float_3_2409699 = OpConstant %float 3.2409699 -%float_n1_5373832 = OpConstant %float -1.5373832 -%float_n0_498610765 = OpConstant %float -0.498610765 -%float_n0_969243646 = OpConstant %float -0.969243646 -%float_1_8759675 = OpConstant %float 1.8759675 -%float_0_0415550582 = OpConstant %float 0.0415550582 -%float_0_0556300804 = OpConstant %float 0.0556300804 -%float_n0_203976959 = OpConstant %float -0.203976959 -%float_1_05697155 = OpConstant %float 1.05697155 -%float_0_412456393 = OpConstant %float 0.412456393 -%float_0_357576102 = OpConstant %float 0.357576102 -%float_0_180437505 = OpConstant %float 0.180437505 -%float_0_212672904 = OpConstant %float 0.212672904 -%float_0_715152204 = OpConstant %float 0.715152204 -%float_0_0721750036 = OpConstant %float 0.0721750036 -%float_0_0193339009 = OpConstant %float 0.0193339009 -%float_0_119191997 = OpConstant %float 0.119191997 -%float_0_950304091 = OpConstant %float 0.950304091 -%float_1_71660841 = OpConstant %float 1.71660841 -%float_n0_355662107 = OpConstant %float -0.355662107 -%float_n0_253360093 = OpConstant %float -0.253360093 -%float_n0_666682899 = OpConstant %float -0.666682899 -%float_1_61647761 = OpConstant %float 1.61647761 -%float_0_0157685 = OpConstant %float 0.0157685 -%float_0_0176422 = OpConstant %float 0.0176422 -%float_n0_0427763015 = OpConstant %float -0.0427763015 -%float_0_942228675 = OpConstant %float 0.942228675 -%float_2_49339628 = OpConstant %float 2.49339628 -%float_n0_93134588 = OpConstant %float -0.93134588 -%float_n0_402694494 = OpConstant %float -0.402694494 -%float_n0_829486787 = OpConstant %float -0.829486787 -%float_1_76265967 = OpConstant %float 1.76265967 -%float_0_0236246008 = OpConstant %float 0.0236246008 -%float_0_0358507 = OpConstant %float 0.0358507 -%float_n0_0761827007 = OpConstant %float -0.0761827007 -%float_0_957014024 = OpConstant %float 0.957014024 -%float_1_01303005 = OpConstant %float 1.01303005 -%float_0_00610530982 = OpConstant %float 0.00610530982 -%float_n0_0149710001 = OpConstant %float -0.0149710001 -%float_0_00769822998 = OpConstant %float 0.00769822998 -%float_0_998165011 = OpConstant %float 0.998165011 -%float_n0_00503202993 = OpConstant %float -0.00503202993 -%float_n0_00284131011 = OpConstant %float -0.00284131011 -%float_0_00468515977 = OpConstant %float 0.00468515977 -%float_0_924507022 = OpConstant %float 0.924507022 -%float_0_987223983 = OpConstant %float 0.987223983 -%float_n0_00611326983 = OpConstant %float -0.00611326983 -%float_0_0159533005 = OpConstant %float 0.0159533005 -%float_n0_00759836007 = OpConstant %float -0.00759836007 -%float_1_00186002 = OpConstant %float 1.00186002 -%float_0_0053300201 = OpConstant %float 0.0053300201 -%float_0_00307257008 = OpConstant %float 0.00307257008 -%float_n0_00509594986 = OpConstant %float -0.00509594986 -%float_1_08168006 = OpConstant %float 1.08168006 - %float_0_5 = OpConstant %float 0.5 - %float_n1 = OpConstant %float -1 - %float_1 = OpConstant %float 1 - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 -%float_0_015625 = OpConstant %float 0.015625 - %128 = OpConstantComposite %v2float %float_0_015625 %float_0_015625 - %129 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 - %int_42 = OpConstant %int 42 - %uint_3 = OpConstant %uint 3 - %132 = OpConstantComposite %v3float %float_0 %float_0 %float_0 - %int_9 = OpConstant %int 9 - %int_3 = OpConstant %int 3 - %135 = OpConstantComposite %v3float %float_1 %float_1 %float_1 - %float_n4 = OpConstant %float -4 - %int_44 = OpConstant %int 44 -%float_0_544169128 = OpConstant %float 0.544169128 -%float_0_239592597 = OpConstant %float 0.239592597 -%float_0_166694298 = OpConstant %float 0.166694298 -%float_0_239465594 = OpConstant %float 0.239465594 -%float_0_702153027 = OpConstant %float 0.702153027 -%float_0_058381401 = OpConstant %float 0.058381401 -%float_n0_00234390004 = OpConstant %float -0.00234390004 -%float_0_0361833982 = OpConstant %float 0.0361833982 -%float_1_05521834 = OpConstant %float 1.05521834 -%float_0_940437257 = OpConstant %float 0.940437257 -%float_n0_0183068793 = OpConstant %float -0.0183068793 -%float_0_077869609 = OpConstant %float 0.077869609 -%float_0_00837869663 = OpConstant %float 0.00837869663 -%float_0_828660011 = OpConstant %float 0.828660011 -%float_0_162961304 = OpConstant %float 0.162961304 -%float_0_00054712611 = OpConstant %float 0.00054712611 -%float_n0_000883374596 = OpConstant %float -0.000883374596 -%float_1_00033629 = OpConstant %float 1.00033629 -%float_1_06317997 = OpConstant %float 1.06317997 -%float_0_0233955998 = OpConstant %float 0.0233955998 -%float_n0_0865726024 = OpConstant %float -0.0865726024 -%float_n0_0106336996 = OpConstant %float -0.0106336996 -%float_1_20632005 = OpConstant %float 1.20632005 -%float_n0_195690006 = OpConstant %float -0.195690006 -%float_n0_000590886979 = OpConstant %float -0.000590886979 -%float_0_00105247996 = OpConstant %float 0.00105247996 -%float_0_999538004 = OpConstant %float 0.999538004 - %int_43 = OpConstant %int 43 - %int_15 = OpConstant %int 15 - %int_16 = OpConstant %int 16 - %uint_0 = OpConstant %uint 0 - %uint_1 = OpConstant %uint 1 - %uint_5 = OpConstant %uint 5 - %uint_6 = OpConstant %uint 6 - %int_2 = OpConstant %int 2 -%mat3v3float = OpTypeMatrix %v3float 3 - %int_41 = OpConstant %int 41 -%float_0_159301758 = OpConstant %float 0.159301758 -%float_78_84375 = OpConstant %float 78.84375 -%float_0_8359375 = OpConstant %float 0.8359375 -%float_18_8515625 = OpConstant %float 18.8515625 -%float_18_6875 = OpConstant %float 18.6875 -%float_10000 = OpConstant %float 10000 -%float_0_0126833133 = OpConstant %float 0.0126833133 - %182 = OpConstantComposite %v3float %float_0_0126833133 %float_0_0126833133 %float_0_0126833133 - %183 = OpConstantComposite %v3float %float_0_8359375 %float_0_8359375 %float_0_8359375 - %184 = OpConstantComposite %v3float %float_18_8515625 %float_18_8515625 %float_18_8515625 - %185 = OpConstantComposite %v3float %float_18_6875 %float_18_6875 %float_18_6875 -%float_6_27739477 = OpConstant %float 6.27739477 - %187 = OpConstantComposite %v3float %float_6_27739477 %float_6_27739477 %float_6_27739477 - %188 = OpConstantComposite %v3float %float_10000 %float_10000 %float_10000 - %float_14 = OpConstant %float 14 -%float_0_180000007 = OpConstant %float 0.180000007 -%float_0_434017599 = OpConstant %float 0.434017599 - %192 = OpConstantComposite %v3float %float_0_434017599 %float_0_434017599 %float_0_434017599 - %193 = OpConstantComposite %v3float %float_14 %float_14 %float_14 - %194 = OpConstantComposite %v3float %float_0_180000007 %float_0_180000007 %float_0_180000007 - %int_17 = OpConstant %int 17 - %float_4000 = OpConstant %float 4000 -%float_0_312700003 = OpConstant %float 0.312700003 -%float_0_328999996 = OpConstant %float 0.328999996 - %int_18 = OpConstant %int 18 - %int_24 = OpConstant %int 24 - %int_19 = OpConstant %int 19 - %int_25 = OpConstant %int 25 - %int_20 = OpConstant %int 20 - %int_26 = OpConstant %int 26 - %int_21 = OpConstant %int 21 - %int_27 = OpConstant %int 27 - %int_22 = OpConstant %int 22 - %int_28 = OpConstant %int 28 - %int_23 = OpConstant %int 23 - %int_39 = OpConstant %int 39 - %int_34 = OpConstant %int 34 - %int_35 = OpConstant %int 35 - %int_36 = OpConstant %int 36 - %int_37 = OpConstant %int 37 - %int_38 = OpConstant %int 38 - %int_40 = OpConstant %int 40 - %int_29 = OpConstant %int 29 - %int_30 = OpConstant %int 30 - %int_31 = OpConstant %int 31 - %int_32 = OpConstant %int 32 - %int_33 = OpConstant %int 33 -%float_0_0500000007 = OpConstant %float 0.0500000007 - %float_1_75 = OpConstant %float 1.75 -%float_0_400000006 = OpConstant %float 0.400000006 -%float_0_0299999993 = OpConstant %float 0.0299999993 - %float_2 = OpConstant %float 2 -%float_0_959999979 = OpConstant %float 0.959999979 - %228 = OpConstantComposite %v3float %float_0_959999979 %float_0_959999979 %float_0_959999979 - %int_13 = OpConstant %int 13 - %int_11 = OpConstant %int 11 - %int_14 = OpConstant %int 14 - %int_12 = OpConstant %int 12 -%float_0_800000012 = OpConstant %float 0.800000012 - %int_10 = OpConstant %int 10 - %float_10 = OpConstant %float 10 - %float_n2 = OpConstant %float -2 - %float_3 = OpConstant %float 3 - %238 = OpConstantComposite %v3float %float_3 %float_3 %float_3 - %239 = OpConstantComposite %v3float %float_2 %float_2 %float_2 -%float_0_930000007 = OpConstant %float 0.930000007 - %241 = OpConstantComposite %v3float %float_0_930000007 %float_0_930000007 %float_0_930000007 - %int_4 = OpConstant %int 4 - %int_8 = OpConstant %int 8 - %int_7 = OpConstant %int 7 - %int_5 = OpConstant %int 5 - %int_6 = OpConstant %int 6 -%float_0_00200000009 = OpConstant %float 0.00200000009 - %248 = OpConstantComposite %v3float %float_0_00200000009 %float_0_00200000009 %float_0_00200000009 -%float_6_10351999en05 = OpConstant %float 6.10351999e-05 - %250 = OpConstantComposite %v3float %float_6_10351999en05 %float_6_10351999en05 %float_6_10351999en05 - %float_4_5 = OpConstant %float 4.5 - %252 = OpConstantComposite %v3float %float_4_5 %float_4_5 %float_4_5 -%float_0_0179999992 = OpConstant %float 0.0179999992 - %254 = OpConstantComposite %v3float %float_0_0179999992 %float_0_0179999992 %float_0_0179999992 -%float_0_449999988 = OpConstant %float 0.449999988 - %256 = OpConstantComposite %v3float %float_0_449999988 %float_0_449999988 %float_0_449999988 -%float_1_09899998 = OpConstant %float 1.09899998 - %258 = OpConstantComposite %v3float %float_1_09899998 %float_1_09899998 %float_1_09899998 -%float_0_0989999995 = OpConstant %float 0.0989999995 - %260 = OpConstantComposite %v3float %float_0_0989999995 %float_0_0989999995 %float_0_0989999995 - %float_1_5 = OpConstant %float 1.5 - %262 = OpConstantComposite %v3float %float_1_5 %float_1_5 %float_1_5 - %263 = OpConstantComposite %v3float %float_0_159301758 %float_0_159301758 %float_0_159301758 - %264 = OpConstantComposite %v3float %float_78_84375 %float_78_84375 %float_78_84375 -%float_1_00055635 = OpConstant %float 1.00055635 - %float_7000 = OpConstant %float 7000 -%float_0_244063005 = OpConstant %float 0.244063005 -%float_99_1100006 = OpConstant %float 99.1100006 -%float_2967800 = OpConstant %float 2967800 -%float_0_237039998 = OpConstant %float 0.237039998 -%float_247_479996 = OpConstant %float 247.479996 -%float_1901800 = OpConstant %float 1901800 - %float_n3 = OpConstant %float -3 -%float_2_86999989 = OpConstant %float 2.86999989 -%float_0_275000006 = OpConstant %float 0.275000006 -%float_0_860117733 = OpConstant %float 0.860117733 -%float_0_000154118257 = OpConstant %float 0.000154118257 -%float_1_28641219en07 = OpConstant %float 1.28641219e-07 -%float_0_00084242021 = OpConstant %float 0.00084242021 -%float_7_08145137en07 = OpConstant %float 7.08145137e-07 -%float_0_317398727 = OpConstant %float 0.317398727 - -; HACK: Needed to hack this constant since MSVC and GNU libc are off by 1 ULP when converting to string (it probably still works fine though in a roundtrip ...) -%float_4_22806261en05 = OpConstant %float 4.25 - -%float_4_20481676en08 = OpConstant %float 4.20481676e-08 -%float_2_8974182en05 = OpConstant %float 2.8974182e-05 -%float_1_61456057en07 = OpConstant %float 1.61456057e-07 - %float_8 = OpConstant %float 8 - %float_4 = OpConstant %float 4 -%float_0_895099998 = OpConstant %float 0.895099998 -%float_0_266400009 = OpConstant %float 0.266400009 -%float_n0_161400005 = OpConstant %float -0.161400005 -%float_n0_750199974 = OpConstant %float -0.750199974 -%float_1_71350002 = OpConstant %float 1.71350002 -%float_0_0366999991 = OpConstant %float 0.0366999991 -%float_0_0388999991 = OpConstant %float 0.0388999991 -%float_n0_0684999973 = OpConstant %float -0.0684999973 -%float_1_02960002 = OpConstant %float 1.02960002 -%float_0_986992896 = OpConstant %float 0.986992896 -%float_n0_1470543 = OpConstant %float -0.1470543 -%float_0_159962699 = OpConstant %float 0.159962699 -%float_0_432305306 = OpConstant %float 0.432305306 -%float_0_518360317 = OpConstant %float 0.518360317 -%float_0_0492912009 = OpConstant %float 0.0492912009 -%float_n0_0085287001 = OpConstant %float -0.0085287001 -%float_0_040042799 = OpConstant %float 0.040042799 -%float_0_968486726 = OpConstant %float 0.968486726 -%float_5_55555534 = OpConstant %float 5.55555534 - %307 = OpConstantComposite %v3float %float_5_55555534 %float_5_55555534 %float_5_55555534 -%float_1_00000001en10 = OpConstant %float 1.00000001e-10 -%float_0_00999999978 = OpConstant %float 0.00999999978 -%float_0_666666687 = OpConstant %float 0.666666687 - %float_180 = OpConstant %float 180 - %float_360 = OpConstant %float 360 -%float_65535 = OpConstant %float 65535 - %314 = OpConstantComposite %v3float %float_65535 %float_65535 %float_65535 -%float_n4_97062206 = OpConstant %float -4.97062206 -%float_n3_02937818 = OpConstant %float -3.02937818 -%float_n2_12619996 = OpConstant %float -2.12619996 -%float_n1_51049995 = OpConstant %float -1.51049995 -%float_n1_05780005 = OpConstant %float -1.05780005 -%float_n0_466800004 = OpConstant %float -0.466800004 -%float_0_119379997 = OpConstant %float 0.119379997 -%float_0_708813429 = OpConstant %float 0.708813429 -%float_1_29118657 = OpConstant %float 1.29118657 -%float_0_808913231 = OpConstant %float 0.808913231 -%float_1_19108677 = OpConstant %float 1.19108677 -%float_1_56830001 = OpConstant %float 1.56830001 -%float_1_9483 = OpConstant %float 1.9483 -%float_2_30830002 = OpConstant %float 2.30830002 -%float_2_63840008 = OpConstant %float 2.63840008 -%float_2_85949993 = OpConstant %float 2.85949993 -%float_2_98726082 = OpConstant %float 2.98726082 -%float_3_01273918 = OpConstant %float 3.01273918 -%float_0_179999992 = OpConstant %float 0.179999992 -%float_9_99999975en05 = OpConstant %float 9.99999975e-05 - %float_1000 = OpConstant %float 1000 -%float_0_0599999987 = OpConstant %float 0.0599999987 -%float_3_50738446en05 = OpConstant %float 3.50738446e-05 - %338 = OpConstantComposite %v3float %float_3_50738446en05 %float_3_50738446en05 %float_3_50738446en05 -%float_n2_30102992 = OpConstant %float -2.30102992 -%float_n1_93120003 = OpConstant %float -1.93120003 -%float_n1_52049994 = OpConstant %float -1.52049994 -%float_0_801995218 = OpConstant %float 0.801995218 -%float_1_19800484 = OpConstant %float 1.19800484 -%float_1_59430003 = OpConstant %float 1.59430003 -%float_1_99730003 = OpConstant %float 1.99730003 -%float_2_37829995 = OpConstant %float 2.37829995 -%float_2_76839995 = OpConstant %float 2.76839995 -%float_3_05150008 = OpConstant %float 3.05150008 -%float_3_27462935 = OpConstant %float 3.27462935 -%float_3_32743073 = OpConstant %float 3.32743073 -%float_0_00499999989 = OpConstant %float 0.00499999989 - %float_11 = OpConstant %float 11 - %float_2000 = OpConstant %float 2000 -%float_0_119999997 = OpConstant %float 0.119999997 -%float_0_00313066994 = OpConstant %float 0.00313066994 -%float_12_9200001 = OpConstant %float 12.9200001 -%float_0_416666657 = OpConstant %float 0.416666657 -%float_1_05499995 = OpConstant %float 1.05499995 -%float_0_0549999997 = OpConstant %float 0.0549999997 -%float_n0_166666672 = OpConstant %float -0.166666672 - %float_n0_5 = OpConstant %float -0.5 -%float_0_166666672 = OpConstant %float 0.166666672 -%float_n3_15737653 = OpConstant %float -3.15737653 -%float_n0_485249996 = OpConstant %float -0.485249996 -%float_1_84773242 = OpConstant %float 1.84773242 -%float_n0_718548238 = OpConstant %float -0.718548238 -%float_2_08103061 = OpConstant %float 2.08103061 -%float_3_6681242 = OpConstant %float 3.6681242 - %float_18 = OpConstant %float 18 - %float_7 = OpConstant %float 7 -%type__Globals = OpTypeStruct %v4float %v3float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %float %float %float %float %float %v3float %v4float %float %float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %float %float %uint %uint %float %float -%_ptr_Uniform_type__Globals = OpTypePointer Uniform %type__Globals -%_ptr_Input_v2float = OpTypePointer Input %v2float -%_ptr_Input_v4float = OpTypePointer Input %v4float -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_Output_v4float = OpTypePointer Output %v4float - %void = OpTypeVoid - %377 = OpTypeFunction %void -%_ptr_Function_float = OpTypePointer Function %float -%_ptr_Uniform_uint = OpTypePointer Uniform %uint - %bool = OpTypeBool -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float -%_ptr_Uniform_float = OpTypePointer Uniform %float -%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float - %v2bool = OpTypeVector %bool 2 - %v3bool = OpTypeVector %bool 3 - %uint_10 = OpConstant %uint 10 -%_arr_float_uint_10 = OpTypeArray %float %uint_10 -%_arr_float_uint_6 = OpTypeArray %float %uint_6 - %_Globals = OpVariable %_ptr_Uniform_type__Globals Uniform -%in_var_TEXCOORD0 = OpVariable %_ptr_Input_v2float Input -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input - %gl_Layer = OpVariable %_ptr_Input_uint Input -%out_var_SV_Target0 = OpVariable %_ptr_Output_v4float Output -%_ptr_Function__arr_float_uint_6 = OpTypePointer Function %_arr_float_uint_6 -%_ptr_Function__arr_float_uint_10 = OpTypePointer Function %_arr_float_uint_10 - %391 = OpUndef %v3float - %392 = OpConstantComposite %v3float %float_0_952552378 %float_0 %float_9_36786018en05 - %393 = OpConstantComposite %v3float %float_0_343966454 %float_0_728166103 %float_n0_0721325427 - %394 = OpConstantComposite %v3float %float_0 %float_0 %float_1_00882518 - %395 = OpConstantComposite %mat3v3float %392 %393 %394 - %396 = OpConstantComposite %v3float %float_1_04981101 %float_0 %float_n9_74845025en05 - %397 = OpConstantComposite %v3float %float_n0_495903015 %float_1_37331307 %float_0_0982400328 - %398 = OpConstantComposite %v3float %float_0 %float_0 %float_0_991252005 - %399 = OpConstantComposite %mat3v3float %396 %397 %398 - %400 = OpConstantComposite %v3float %float_0_662454188 %float_0_134004205 %float_0_156187683 - %401 = OpConstantComposite %v3float %float_n0_00557464967 %float_0_0040607336 %float_1_01033914 - %402 = OpConstantComposite %mat3v3float %400 %67 %401 - %403 = OpConstantComposite %v3float %float_1_6410234 %float_n0_324803293 %float_n0_236424699 - %404 = OpConstantComposite %v3float %float_n0_663662851 %float_1_61533165 %float_0_0167563483 - %405 = OpConstantComposite %v3float %float_0_0117218941 %float_n0_00828444213 %float_0_988394856 - %406 = OpConstantComposite %mat3v3float %403 %404 %405 - %407 = OpConstantComposite %v3float %float_1_45143926 %float_n0_236510754 %float_n0_214928567 - %408 = OpConstantComposite %v3float %float_n0_0765537769 %float_1_17622972 %float_n0_0996759236 - %409 = OpConstantComposite %v3float %float_0_00831614807 %float_n0_00603244966 %float_0_997716308 - %410 = OpConstantComposite %mat3v3float %407 %408 %409 - %411 = OpConstantComposite %v3float %float_0_695452213 %float_0_140678704 %float_0_163869068 - %412 = OpConstantComposite %v3float %float_0_0447945632 %float_0_859671116 %float_0_0955343172 - %413 = OpConstantComposite %v3float %float_n0_00552588282 %float_0_00402521016 %float_1_00150073 - %414 = OpConstantComposite %mat3v3float %411 %412 %413 - %415 = OpConstantComposite %v3float %float_3_2409699 %float_n1_5373832 %float_n0_498610765 - %416 = OpConstantComposite %v3float %float_n0_969243646 %float_1_8759675 %float_0_0415550582 - %417 = OpConstantComposite %v3float %float_0_0556300804 %float_n0_203976959 %float_1_05697155 - %418 = OpConstantComposite %mat3v3float %415 %416 %417 - %419 = OpConstantComposite %v3float %float_0_412456393 %float_0_357576102 %float_0_180437505 - %420 = OpConstantComposite %v3float %float_0_212672904 %float_0_715152204 %float_0_0721750036 - %421 = OpConstantComposite %v3float %float_0_0193339009 %float_0_119191997 %float_0_950304091 - %422 = OpConstantComposite %mat3v3float %419 %420 %421 - %423 = OpConstantComposite %v3float %float_1_71660841 %float_n0_355662107 %float_n0_253360093 - %424 = OpConstantComposite %v3float %float_n0_666682899 %float_1_61647761 %float_0_0157685 - %425 = OpConstantComposite %v3float %float_0_0176422 %float_n0_0427763015 %float_0_942228675 - %426 = OpConstantComposite %mat3v3float %423 %424 %425 - %427 = OpConstantComposite %v3float %float_2_49339628 %float_n0_93134588 %float_n0_402694494 - %428 = OpConstantComposite %v3float %float_n0_829486787 %float_1_76265967 %float_0_0236246008 - %429 = OpConstantComposite %v3float %float_0_0358507 %float_n0_0761827007 %float_0_957014024 - %430 = OpConstantComposite %mat3v3float %427 %428 %429 - %431 = OpConstantComposite %v3float %float_1_01303005 %float_0_00610530982 %float_n0_0149710001 - %432 = OpConstantComposite %v3float %float_0_00769822998 %float_0_998165011 %float_n0_00503202993 - %433 = OpConstantComposite %v3float %float_n0_00284131011 %float_0_00468515977 %float_0_924507022 - %434 = OpConstantComposite %mat3v3float %431 %432 %433 - %435 = OpConstantComposite %v3float %float_0_987223983 %float_n0_00611326983 %float_0_0159533005 - %436 = OpConstantComposite %v3float %float_n0_00759836007 %float_1_00186002 %float_0_0053300201 - %437 = OpConstantComposite %v3float %float_0_00307257008 %float_n0_00509594986 %float_1_08168006 - %438 = OpConstantComposite %mat3v3float %435 %436 %437 - %439 = OpConstantComposite %v3float %float_0_5 %float_n1 %float_0_5 - %440 = OpConstantComposite %v3float %float_n1 %float_1 %float_0_5 - %441 = OpConstantComposite %v3float %float_0_5 %float_0 %float_0 - %442 = OpConstantComposite %mat3v3float %439 %440 %441 - %443 = OpConstantComposite %v3float %float_1 %float_0 %float_0 - %444 = OpConstantComposite %v3float %float_0 %float_1 %float_0 - %445 = OpConstantComposite %v3float %float_0 %float_0 %float_1 - %446 = OpConstantComposite %mat3v3float %443 %444 %445 -%float_n6_07624626 = OpConstant %float -6.07624626 - %448 = OpConstantComposite %v3float %float_n6_07624626 %float_n6_07624626 %float_n6_07624626 - %449 = OpConstantComposite %v3float %float_0_895099998 %float_0_266400009 %float_n0_161400005 - %450 = OpConstantComposite %v3float %float_n0_750199974 %float_1_71350002 %float_0_0366999991 - %451 = OpConstantComposite %v3float %float_0_0388999991 %float_n0_0684999973 %float_1_02960002 - %452 = OpConstantComposite %mat3v3float %449 %450 %451 - %453 = OpConstantComposite %v3float %float_0_986992896 %float_n0_1470543 %float_0_159962699 - %454 = OpConstantComposite %v3float %float_0_432305306 %float_0_518360317 %float_0_0492912009 - %455 = OpConstantComposite %v3float %float_n0_0085287001 %float_0_040042799 %float_0_968486726 - %456 = OpConstantComposite %mat3v3float %453 %454 %455 -%float_0_358299971 = OpConstant %float 0.358299971 - %458 = OpConstantComposite %v3float %float_0_544169128 %float_0_239592597 %float_0_166694298 - %459 = OpConstantComposite %v3float %float_0_239465594 %float_0_702153027 %float_0_058381401 - %460 = OpConstantComposite %v3float %float_n0_00234390004 %float_0_0361833982 %float_1_05521834 - %461 = OpConstantComposite %mat3v3float %458 %459 %460 - %462 = OpConstantComposite %v3float %float_0_940437257 %float_n0_0183068793 %float_0_077869609 - %463 = OpConstantComposite %v3float %float_0_00837869663 %float_0_828660011 %float_0_162961304 - %464 = OpConstantComposite %v3float %float_0_00054712611 %float_n0_000883374596 %float_1_00033629 - %465 = OpConstantComposite %mat3v3float %462 %463 %464 - %466 = OpConstantComposite %v3float %float_1_06317997 %float_0_0233955998 %float_n0_0865726024 - %467 = OpConstantComposite %v3float %float_n0_0106336996 %float_1_20632005 %float_n0_195690006 - %468 = OpConstantComposite %v3float %float_n0_000590886979 %float_0_00105247996 %float_0_999538004 - %469 = OpConstantComposite %mat3v3float %466 %467 %468 -%float_0_0533333346 = OpConstant %float 0.0533333346 -%float_0_159999996 = OpConstant %float 0.159999996 -%float_57_2957764 = OpConstant %float 57.2957764 -%float_n67_5 = OpConstant %float -67.5 - %float_67_5 = OpConstant %float 67.5 - %475 = OpConstantComposite %_arr_float_uint_6 %float_n4 %float_n4 %float_n3_15737653 %float_n0_485249996 %float_1_84773242 %float_1_84773242 - %476 = OpConstantComposite %_arr_float_uint_6 %float_n0_718548238 %float_2_08103061 %float_3_6681242 %float_4 %float_4 %float_4 - %float_n15 = OpConstant %float -15 - %float_n14 = OpConstant %float -14 - %479 = OpConstantComposite %_arr_float_uint_10 %float_n4_97062206 %float_n3_02937818 %float_n2_12619996 %float_n1_51049995 %float_n1_05780005 %float_n0_466800004 %float_0_119379997 %float_0_708813429 %float_1_29118657 %float_1_29118657 - %480 = OpConstantComposite %_arr_float_uint_10 %float_0_808913231 %float_1_19108677 %float_1_56830001 %float_1_9483 %float_2_30830002 %float_2_63840008 %float_2_85949993 %float_2_98726082 %float_3_01273918 %float_3_01273918 - %float_n12 = OpConstant %float -12 - %482 = OpConstantComposite %_arr_float_uint_10 %float_n2_30102992 %float_n2_30102992 %float_n1_93120003 %float_n1_52049994 %float_n1_05780005 %float_n0_466800004 %float_0_119379997 %float_0_708813429 %float_1_29118657 %float_1_29118657 - %483 = OpConstantComposite %_arr_float_uint_10 %float_0_801995218 %float_1_19800484 %float_1_59430003 %float_1_99730003 %float_2_37829995 %float_2_76839995 %float_3_05150008 %float_3_27462935 %float_3_32743073 %float_3_32743073 -%float_0_0322580636 = OpConstant %float 0.0322580636 -%float_1_03225803 = OpConstant %float 1.03225803 - %486 = OpConstantComposite %v2float %float_1_03225803 %float_1_03225803 -%float_4_60443853e_09 = OpConstant %float 4.60443853e+09 -%float_2_00528435e_09 = OpConstant %float 2.00528435e+09 -%float_0_333333343 = OpConstant %float 0.333333343 - %float_5 = OpConstant %float 5 - %float_2_5 = OpConstant %float 2.5 -%float_0_0250000004 = OpConstant %float 0.0250000004 -%float_0_239999995 = OpConstant %float 0.239999995 -%float_0_0148148146 = OpConstant %float 0.0148148146 -%float_0_819999993 = OpConstant %float 0.819999993 - %496 = OpConstantComposite %v3float %float_9_99999975en05 %float_9_99999975en05 %float_9_99999975en05 -%float_0_0296296291 = OpConstant %float 0.0296296291 -%float_0_952381015 = OpConstant %float 0.952381015 - %499 = OpConstantComposite %v3float %float_0_952381015 %float_0_952381015 %float_0_952381015 - %MainPS = OpFunction %void None %377 - %500 = OpLabel - %501 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %502 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %503 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %504 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %505 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %506 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %507 = OpVariable %_ptr_Function__arr_float_uint_10 Function - %508 = OpVariable %_ptr_Function__arr_float_uint_10 Function - %509 = OpVariable %_ptr_Function__arr_float_uint_10 Function - %510 = OpVariable %_ptr_Function__arr_float_uint_10 Function - %511 = OpVariable %_ptr_Function__arr_float_uint_10 Function - %512 = OpVariable %_ptr_Function__arr_float_uint_10 Function - %513 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %514 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %515 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %516 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %517 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %518 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %519 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %520 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %521 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %522 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %523 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %524 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %525 = OpVariable %_ptr_Function__arr_float_uint_10 Function - %526 = OpVariable %_ptr_Function__arr_float_uint_10 Function - %527 = OpVariable %_ptr_Function__arr_float_uint_10 Function - %528 = OpVariable %_ptr_Function__arr_float_uint_10 Function - %529 = OpVariable %_ptr_Function__arr_float_uint_10 Function - %530 = OpVariable %_ptr_Function__arr_float_uint_10 Function - %531 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %532 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %533 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %534 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %535 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %536 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %537 = OpLoad %v2float %in_var_TEXCOORD0 - %538 = OpLoad %uint %gl_Layer - %539 = OpFSub %v2float %537 %128 - %540 = OpFMul %v2float %539 %486 - %541 = OpCompositeExtract %float %540 0 - %542 = OpCompositeExtract %float %540 1 - %543 = OpConvertUToF %float %538 - %544 = OpFMul %float %543 %float_0_0322580636 - %545 = OpCompositeConstruct %v4float %541 %542 %544 %float_0 - %546 = OpMatrixTimesMatrix %mat3v3float %422 %434 - %547 = OpMatrixTimesMatrix %mat3v3float %546 %406 - %548 = OpMatrixTimesMatrix %mat3v3float %402 %438 - %549 = OpMatrixTimesMatrix %mat3v3float %548 %418 - %550 = OpMatrixTimesMatrix %mat3v3float %395 %406 - %551 = OpMatrixTimesMatrix %mat3v3float %402 %399 - %552 = OpAccessChain %_ptr_Uniform_uint %_Globals %int_42 - %553 = OpLoad %uint %552 - OpBranch %554 - %554 = OpLabel - OpLoopMerge %555 %556 None - OpBranch %557 - %557 = OpLabel - %558 = OpMatrixTimesMatrix %mat3v3float %548 %430 - %559 = OpMatrixTimesMatrix %mat3v3float %548 %426 - %560 = OpIEqual %bool %553 %uint_1 - OpSelectionMerge %561 None - OpBranchConditional %560 %562 %563 - %563 = OpLabel - %564 = OpIEqual %bool %553 %uint_2 - OpSelectionMerge %565 None - OpBranchConditional %564 %566 %567 - %567 = OpLabel - %568 = OpIEqual %bool %553 %uint_3 - OpSelectionMerge %569 None - OpBranchConditional %568 %570 %571 - %571 = OpLabel - %572 = OpIEqual %bool %553 %uint_4 - OpSelectionMerge %573 None - OpBranchConditional %572 %574 %575 - %575 = OpLabel - OpBranch %555 - %574 = OpLabel - OpBranch %555 - %573 = OpLabel - OpUnreachable - %570 = OpLabel - OpBranch %555 - %569 = OpLabel - OpUnreachable - %566 = OpLabel - OpBranch %555 - %565 = OpLabel - OpUnreachable - %562 = OpLabel - OpBranch %555 - %561 = OpLabel - OpUnreachable - %556 = OpLabel - OpBranch %554 - %555 = OpLabel - %576 = OpPhi %mat3v3float %549 %575 %446 %574 %414 %570 %559 %566 %558 %562 - %577 = OpVectorShuffle %v3float %545 %545 0 1 2 - %578 = OpAccessChain %_ptr_Uniform_uint %_Globals %int_41 - %579 = OpLoad %uint %578 - %580 = OpUGreaterThanEqual %bool %579 %uint_3 - OpSelectionMerge %581 None - OpBranchConditional %580 %582 %583 - %583 = OpLabel - %584 = OpFSub %v3float %577 %192 - %585 = OpFMul %v3float %584 %193 - %586 = OpExtInst %v3float %1 Exp2 %585 - %587 = OpFMul %v3float %586 %194 - %588 = OpExtInst %v3float %1 Exp2 %448 - %589 = OpFMul %v3float %588 %194 - %590 = OpFSub %v3float %587 %589 - OpBranch %581 - %582 = OpLabel - %591 = OpExtInst %v3float %1 Pow %577 %182 - %592 = OpFSub %v3float %591 %183 - %593 = OpExtInst %v3float %1 FMax %132 %592 - %594 = OpFMul %v3float %185 %591 - %595 = OpFSub %v3float %184 %594 - %596 = OpFDiv %v3float %593 %595 - %597 = OpExtInst %v3float %1 Pow %596 %187 - %598 = OpFMul %v3float %597 %188 - OpBranch %581 - %581 = OpLabel - %599 = OpPhi %v3float %590 %583 %598 %582 - %600 = OpAccessChain %_ptr_Uniform_float %_Globals %int_17 - %601 = OpLoad %float %600 - %602 = OpFMul %float %601 %float_1_00055635 - %603 = OpFOrdLessThanEqual %bool %602 %float_7000 - %604 = OpFDiv %float %float_4_60443853e_09 %601 - %605 = OpFSub %float %float_2967800 %604 - %606 = OpFDiv %float %605 %602 - %607 = OpFAdd %float %float_99_1100006 %606 - %608 = OpFDiv %float %607 %602 - %609 = OpFAdd %float %float_0_244063005 %608 - %610 = OpFDiv %float %float_2_00528435e_09 %601 - %611 = OpFSub %float %float_1901800 %610 - %612 = OpFDiv %float %611 %602 - %613 = OpFAdd %float %float_247_479996 %612 - %614 = OpFDiv %float %613 %602 - %615 = OpFAdd %float %float_0_237039998 %614 - %616 = OpSelect %float %603 %609 %615 - %617 = OpFMul %float %float_n3 %616 - %618 = OpFMul %float %617 %616 - %619 = OpFMul %float %float_2_86999989 %616 - %620 = OpFAdd %float %618 %619 - %621 = OpFSub %float %620 %float_0_275000006 - %622 = OpCompositeConstruct %v2float %616 %621 - %623 = OpFMul %float %float_0_000154118257 %601 - %624 = OpFAdd %float %float_0_860117733 %623 - %625 = OpFMul %float %float_1_28641219en07 %601 - %626 = OpFMul %float %625 %601 - %627 = OpFAdd %float %624 %626 - %628 = OpFMul %float %float_0_00084242021 %601 - %629 = OpFAdd %float %float_1 %628 - %630 = OpFMul %float %float_7_08145137en07 %601 - %631 = OpFMul %float %630 %601 - %632 = OpFAdd %float %629 %631 - %633 = OpFDiv %float %627 %632 - %634 = OpFMul %float %float_4_22806261en05 %601 - %635 = OpFAdd %float %float_0_317398727 %634 - %636 = OpFMul %float %float_4_20481676en08 %601 - %637 = OpFMul %float %636 %601 - %638 = OpFAdd %float %635 %637 - %639 = OpFMul %float %float_2_8974182en05 %601 - %640 = OpFSub %float %float_1 %639 - %641 = OpFMul %float %float_1_61456057en07 %601 - %642 = OpFMul %float %641 %601 - %643 = OpFAdd %float %640 %642 - %644 = OpFDiv %float %638 %643 - %645 = OpFMul %float %float_3 %633 - %646 = OpFMul %float %float_2 %633 - %647 = OpFMul %float %float_8 %644 - %648 = OpFSub %float %646 %647 - %649 = OpFAdd %float %648 %float_4 - %650 = OpFDiv %float %645 %649 - %651 = OpFMul %float %float_2 %644 - %652 = OpFDiv %float %651 %649 - %653 = OpCompositeConstruct %v2float %650 %652 - %654 = OpFOrdLessThan %bool %601 %float_4000 - %655 = OpCompositeConstruct %v2bool %654 %654 - %656 = OpSelect %v2float %655 %653 %622 - %657 = OpAccessChain %_ptr_Uniform_float %_Globals %int_18 - %658 = OpLoad %float %657 - %659 = OpCompositeConstruct %v2float %633 %644 - %660 = OpExtInst %v2float %1 Normalize %659 - %661 = OpCompositeExtract %float %660 1 - %662 = OpFNegate %float %661 - %663 = OpFMul %float %662 %658 - %664 = OpFMul %float %663 %float_0_0500000007 - %665 = OpFAdd %float %633 %664 - %666 = OpCompositeExtract %float %660 0 - %667 = OpFMul %float %666 %658 - %668 = OpFMul %float %667 %float_0_0500000007 - %669 = OpFAdd %float %644 %668 - %670 = OpFMul %float %float_3 %665 - %671 = OpFMul %float %float_2 %665 - %672 = OpFMul %float %float_8 %669 - %673 = OpFSub %float %671 %672 - %674 = OpFAdd %float %673 %float_4 - %675 = OpFDiv %float %670 %674 - %676 = OpFMul %float %float_2 %669 - %677 = OpFDiv %float %676 %674 - %678 = OpCompositeConstruct %v2float %675 %677 - %679 = OpFSub %v2float %678 %653 - %680 = OpFAdd %v2float %656 %679 - %681 = OpCompositeExtract %float %680 0 - %682 = OpCompositeExtract %float %680 1 - %683 = OpExtInst %float %1 FMax %682 %float_1_00000001en10 - %684 = OpFDiv %float %681 %683 - %685 = OpCompositeInsert %v3float %684 %391 0 - %686 = OpCompositeInsert %v3float %float_1 %685 1 - %687 = OpFSub %float %float_1 %681 - %688 = OpFSub %float %687 %682 - %689 = OpFDiv %float %688 %683 - %690 = OpCompositeInsert %v3float %689 %686 2 - %691 = OpExtInst %float %1 FMax %float_0_328999996 %float_1_00000001en10 - %692 = OpFDiv %float %float_0_312700003 %691 - %693 = OpCompositeInsert %v3float %692 %391 0 - %694 = OpCompositeInsert %v3float %float_1 %693 1 - %695 = OpFDiv %float %float_0_358299971 %691 - %696 = OpCompositeInsert %v3float %695 %694 2 - %697 = OpVectorTimesMatrix %v3float %690 %452 - %698 = OpVectorTimesMatrix %v3float %696 %452 - %699 = OpCompositeExtract %float %698 0 - %700 = OpCompositeExtract %float %697 0 - %701 = OpFDiv %float %699 %700 - %702 = OpCompositeConstruct %v3float %701 %float_0 %float_0 - %703 = OpCompositeExtract %float %698 1 - %704 = OpCompositeExtract %float %697 1 - %705 = OpFDiv %float %703 %704 - %706 = OpCompositeConstruct %v3float %float_0 %705 %float_0 - %707 = OpCompositeExtract %float %698 2 - %708 = OpCompositeExtract %float %697 2 - %709 = OpFDiv %float %707 %708 - %710 = OpCompositeConstruct %v3float %float_0 %float_0 %709 - %711 = OpCompositeConstruct %mat3v3float %702 %706 %710 - %712 = OpMatrixTimesMatrix %mat3v3float %452 %711 - %713 = OpMatrixTimesMatrix %mat3v3float %712 %456 - %714 = OpMatrixTimesMatrix %mat3v3float %422 %713 - %715 = OpMatrixTimesMatrix %mat3v3float %714 %418 - %716 = OpVectorTimesMatrix %v3float %599 %715 - %717 = OpVectorTimesMatrix %v3float %716 %547 - %718 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_9 - %719 = OpAccessChain %_ptr_Uniform_float %_Globals %int_9 %int_3 - %720 = OpLoad %float %719 - %721 = OpFOrdNotEqual %bool %720 %float_0 - OpSelectionMerge %722 None - OpBranchConditional %721 %723 %722 - %723 = OpLabel - %724 = OpDot %float %717 %67 - %725 = OpCompositeConstruct %v3float %724 %724 %724 - %726 = OpFDiv %v3float %717 %725 - %727 = OpFSub %v3float %726 %135 - %728 = OpDot %float %727 %727 - %729 = OpFMul %float %float_n4 %728 - %730 = OpExtInst %float %1 Exp2 %729 - %731 = OpFSub %float %float_1 %730 - %732 = OpAccessChain %_ptr_Uniform_float %_Globals %int_44 - %733 = OpLoad %float %732 - %734 = OpFMul %float %float_n4 %733 - %735 = OpFMul %float %734 %724 - %736 = OpFMul %float %735 %724 - %737 = OpExtInst %float %1 Exp2 %736 - %738 = OpFSub %float %float_1 %737 - %739 = OpFMul %float %731 %738 - %740 = OpMatrixTimesMatrix %mat3v3float %461 %406 - %741 = OpMatrixTimesMatrix %mat3v3float %549 %740 - %742 = OpVectorTimesMatrix %v3float %717 %741 - %743 = OpCompositeConstruct %v3float %739 %739 %739 - %744 = OpExtInst %v3float %1 FMix %717 %742 %743 - OpBranch %722 - %722 = OpLabel - %745 = OpPhi %v3float %717 %581 %744 %723 - %746 = OpDot %float %745 %67 - %747 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_24 - %748 = OpLoad %v4float %747 - %749 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_19 - %750 = OpLoad %v4float %749 - %751 = OpFMul %v4float %748 %750 - %752 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_25 - %753 = OpLoad %v4float %752 - %754 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_20 - %755 = OpLoad %v4float %754 - %756 = OpFMul %v4float %753 %755 - %757 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_26 - %758 = OpLoad %v4float %757 - %759 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_21 - %760 = OpLoad %v4float %759 - %761 = OpFMul %v4float %758 %760 - %762 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_27 - %763 = OpLoad %v4float %762 - %764 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_22 - %765 = OpLoad %v4float %764 - %766 = OpFMul %v4float %763 %765 - %767 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_28 - %768 = OpLoad %v4float %767 - %769 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_23 - %770 = OpLoad %v4float %769 - %771 = OpFAdd %v4float %768 %770 - %772 = OpCompositeConstruct %v3float %746 %746 %746 - %773 = OpVectorShuffle %v3float %751 %751 0 1 2 - %774 = OpCompositeExtract %float %751 3 - %775 = OpCompositeConstruct %v3float %774 %774 %774 - %776 = OpFMul %v3float %773 %775 - %777 = OpExtInst %v3float %1 FMix %772 %745 %776 - %778 = OpExtInst %v3float %1 FMax %132 %777 - %779 = OpFMul %v3float %778 %307 - %780 = OpVectorShuffle %v3float %756 %756 0 1 2 - %781 = OpCompositeExtract %float %756 3 - %782 = OpCompositeConstruct %v3float %781 %781 %781 - %783 = OpFMul %v3float %780 %782 - %784 = OpExtInst %v3float %1 Pow %779 %783 - %785 = OpFMul %v3float %784 %194 - %786 = OpVectorShuffle %v3float %761 %761 0 1 2 - %787 = OpCompositeExtract %float %761 3 - %788 = OpCompositeConstruct %v3float %787 %787 %787 - %789 = OpFMul %v3float %786 %788 - %790 = OpFDiv %v3float %135 %789 - %791 = OpExtInst %v3float %1 Pow %785 %790 - %792 = OpVectorShuffle %v3float %766 %766 0 1 2 - %793 = OpCompositeExtract %float %766 3 - %794 = OpCompositeConstruct %v3float %793 %793 %793 - %795 = OpFMul %v3float %792 %794 - %796 = OpFMul %v3float %791 %795 - %797 = OpVectorShuffle %v3float %771 %771 0 1 2 - %798 = OpCompositeExtract %float %771 3 - %799 = OpCompositeConstruct %v3float %798 %798 %798 - %800 = OpFAdd %v3float %797 %799 - %801 = OpFAdd %v3float %796 %800 - %802 = OpAccessChain %_ptr_Uniform_float %_Globals %int_39 - %803 = OpLoad %float %802 - %804 = OpExtInst %float %1 SmoothStep %float_0 %803 %746 - %805 = OpFSub %float %float_1 %804 - %806 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_34 - %807 = OpLoad %v4float %806 - %808 = OpFMul %v4float %807 %750 - %809 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_35 - %810 = OpLoad %v4float %809 - %811 = OpFMul %v4float %810 %755 - %812 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_36 - %813 = OpLoad %v4float %812 - %814 = OpFMul %v4float %813 %760 - %815 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_37 - %816 = OpLoad %v4float %815 - %817 = OpFMul %v4float %816 %765 - %818 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_38 - %819 = OpLoad %v4float %818 - %820 = OpFAdd %v4float %819 %770 - %821 = OpVectorShuffle %v3float %808 %808 0 1 2 - %822 = OpCompositeExtract %float %808 3 - %823 = OpCompositeConstruct %v3float %822 %822 %822 - %824 = OpFMul %v3float %821 %823 - %825 = OpExtInst %v3float %1 FMix %772 %745 %824 - %826 = OpExtInst %v3float %1 FMax %132 %825 - %827 = OpFMul %v3float %826 %307 - %828 = OpVectorShuffle %v3float %811 %811 0 1 2 - %829 = OpCompositeExtract %float %811 3 - %830 = OpCompositeConstruct %v3float %829 %829 %829 - %831 = OpFMul %v3float %828 %830 - %832 = OpExtInst %v3float %1 Pow %827 %831 - %833 = OpFMul %v3float %832 %194 - %834 = OpVectorShuffle %v3float %814 %814 0 1 2 - %835 = OpCompositeExtract %float %814 3 - %836 = OpCompositeConstruct %v3float %835 %835 %835 - %837 = OpFMul %v3float %834 %836 - %838 = OpFDiv %v3float %135 %837 - %839 = OpExtInst %v3float %1 Pow %833 %838 - %840 = OpVectorShuffle %v3float %817 %817 0 1 2 - %841 = OpCompositeExtract %float %817 3 - %842 = OpCompositeConstruct %v3float %841 %841 %841 - %843 = OpFMul %v3float %840 %842 - %844 = OpFMul %v3float %839 %843 - %845 = OpVectorShuffle %v3float %820 %820 0 1 2 - %846 = OpCompositeExtract %float %820 3 - %847 = OpCompositeConstruct %v3float %846 %846 %846 - %848 = OpFAdd %v3float %845 %847 - %849 = OpFAdd %v3float %844 %848 - %850 = OpAccessChain %_ptr_Uniform_float %_Globals %int_40 - %851 = OpLoad %float %850 - %852 = OpExtInst %float %1 SmoothStep %851 %float_1 %746 - %853 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_29 - %854 = OpLoad %v4float %853 - %855 = OpFMul %v4float %854 %750 - %856 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_30 - %857 = OpLoad %v4float %856 - %858 = OpFMul %v4float %857 %755 - %859 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_31 - %860 = OpLoad %v4float %859 - %861 = OpFMul %v4float %860 %760 - %862 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_32 - %863 = OpLoad %v4float %862 - %864 = OpFMul %v4float %863 %765 - %865 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_33 - %866 = OpLoad %v4float %865 - %867 = OpFAdd %v4float %866 %770 - %868 = OpVectorShuffle %v3float %855 %855 0 1 2 - %869 = OpCompositeExtract %float %855 3 - %870 = OpCompositeConstruct %v3float %869 %869 %869 - %871 = OpFMul %v3float %868 %870 - %872 = OpExtInst %v3float %1 FMix %772 %745 %871 - %873 = OpExtInst %v3float %1 FMax %132 %872 - %874 = OpFMul %v3float %873 %307 - %875 = OpVectorShuffle %v3float %858 %858 0 1 2 - %876 = OpCompositeExtract %float %858 3 - %877 = OpCompositeConstruct %v3float %876 %876 %876 - %878 = OpFMul %v3float %875 %877 - %879 = OpExtInst %v3float %1 Pow %874 %878 - %880 = OpFMul %v3float %879 %194 - %881 = OpVectorShuffle %v3float %861 %861 0 1 2 - %882 = OpCompositeExtract %float %861 3 - %883 = OpCompositeConstruct %v3float %882 %882 %882 - %884 = OpFMul %v3float %881 %883 - %885 = OpFDiv %v3float %135 %884 - %886 = OpExtInst %v3float %1 Pow %880 %885 - %887 = OpVectorShuffle %v3float %864 %864 0 1 2 - %888 = OpCompositeExtract %float %864 3 - %889 = OpCompositeConstruct %v3float %888 %888 %888 - %890 = OpFMul %v3float %887 %889 - %891 = OpFMul %v3float %886 %890 - %892 = OpVectorShuffle %v3float %867 %867 0 1 2 - %893 = OpCompositeExtract %float %867 3 - %894 = OpCompositeConstruct %v3float %893 %893 %893 - %895 = OpFAdd %v3float %892 %894 - %896 = OpFAdd %v3float %891 %895 - %897 = OpFSub %float %804 %852 - %898 = OpCompositeConstruct %v3float %805 %805 %805 - %899 = OpFMul %v3float %801 %898 - %900 = OpCompositeConstruct %v3float %897 %897 %897 - %901 = OpFMul %v3float %896 %900 - %902 = OpFAdd %v3float %899 %901 - %903 = OpCompositeConstruct %v3float %852 %852 %852 - %904 = OpFMul %v3float %849 %903 - %905 = OpFAdd %v3float %902 %904 - %906 = OpVectorTimesMatrix %v3float %905 %549 - %907 = OpMatrixTimesMatrix %mat3v3float %551 %465 - %908 = OpMatrixTimesMatrix %mat3v3float %907 %550 - %909 = OpMatrixTimesMatrix %mat3v3float %551 %469 - %910 = OpMatrixTimesMatrix %mat3v3float %909 %550 - %911 = OpVectorTimesMatrix %v3float %905 %908 - %912 = OpAccessChain %_ptr_Uniform_float %_Globals %int_43 - %913 = OpLoad %float %912 - %914 = OpCompositeConstruct %v3float %913 %913 %913 - %915 = OpExtInst %v3float %1 FMix %905 %911 %914 - %916 = OpVectorTimesMatrix %v3float %915 %551 - %917 = OpCompositeExtract %float %916 0 - %918 = OpCompositeExtract %float %916 1 - %919 = OpExtInst %float %1 FMin %917 %918 - %920 = OpCompositeExtract %float %916 2 - %921 = OpExtInst %float %1 FMin %919 %920 - %922 = OpExtInst %float %1 FMax %917 %918 - %923 = OpExtInst %float %1 FMax %922 %920 - %924 = OpExtInst %float %1 FMax %923 %float_1_00000001en10 - %925 = OpExtInst %float %1 FMax %921 %float_1_00000001en10 - %926 = OpFSub %float %924 %925 - %927 = OpExtInst %float %1 FMax %923 %float_0_00999999978 - %928 = OpFDiv %float %926 %927 - %929 = OpFSub %float %920 %918 - %930 = OpFMul %float %920 %929 - %931 = OpFSub %float %918 %917 - %932 = OpFMul %float %918 %931 - %933 = OpFAdd %float %930 %932 - %934 = OpFSub %float %917 %920 - %935 = OpFMul %float %917 %934 - %936 = OpFAdd %float %933 %935 - %937 = OpExtInst %float %1 Sqrt %936 - %938 = OpFAdd %float %920 %918 - %939 = OpFAdd %float %938 %917 - %940 = OpFMul %float %float_1_75 %937 - %941 = OpFAdd %float %939 %940 - %942 = OpFMul %float %941 %float_0_333333343 - %943 = OpFSub %float %928 %float_0_400000006 - %944 = OpFMul %float %943 %float_5 - %945 = OpFMul %float %943 %float_2_5 - %946 = OpExtInst %float %1 FAbs %945 - %947 = OpFSub %float %float_1 %946 - %948 = OpExtInst %float %1 FMax %947 %float_0 - %949 = OpExtInst %float %1 FSign %944 - %950 = OpConvertFToS %int %949 - %951 = OpConvertSToF %float %950 - %952 = OpFMul %float %948 %948 - %953 = OpFSub %float %float_1 %952 - %954 = OpFMul %float %951 %953 - %955 = OpFAdd %float %float_1 %954 - %956 = OpFMul %float %955 %float_0_0250000004 - %957 = OpFOrdLessThanEqual %bool %942 %float_0_0533333346 - OpSelectionMerge %958 None - OpBranchConditional %957 %959 %960 - %960 = OpLabel - %961 = OpFOrdGreaterThanEqual %bool %942 %float_0_159999996 - OpSelectionMerge %962 None - OpBranchConditional %961 %963 %964 - %964 = OpLabel - %965 = OpFDiv %float %float_0_239999995 %941 - %966 = OpFSub %float %965 %float_0_5 - %967 = OpFMul %float %956 %966 - OpBranch %962 - %963 = OpLabel - OpBranch %962 - %962 = OpLabel - %968 = OpPhi %float %967 %964 %float_0 %963 - OpBranch %958 - %959 = OpLabel - OpBranch %958 - %958 = OpLabel - %969 = OpPhi %float %968 %962 %956 %959 - %970 = OpFAdd %float %float_1 %969 - %971 = OpCompositeConstruct %v3float %970 %970 %970 - %972 = OpFMul %v3float %916 %971 - %973 = OpCompositeExtract %float %972 0 - %974 = OpCompositeExtract %float %972 1 - %975 = OpFOrdEqual %bool %973 %974 - %976 = OpCompositeExtract %float %972 2 - %977 = OpFOrdEqual %bool %974 %976 - %978 = OpLogicalAnd %bool %975 %977 - OpSelectionMerge %979 None - OpBranchConditional %978 %980 %981 - %981 = OpLabel - %982 = OpExtInst %float %1 Sqrt %float_3 - %983 = OpFSub %float %974 %976 - %984 = OpFMul %float %982 %983 - %985 = OpFMul %float %float_2 %973 - %986 = OpFSub %float %985 %974 - %987 = OpFSub %float %986 %976 - %988 = OpExtInst %float %1 Atan2 %984 %987 - %989 = OpFMul %float %float_57_2957764 %988 - OpBranch %979 - %980 = OpLabel - OpBranch %979 - %979 = OpLabel - %990 = OpPhi %float %989 %981 %float_0 %980 - %991 = OpFOrdLessThan %bool %990 %float_0 - OpSelectionMerge %992 None - OpBranchConditional %991 %993 %992 - %993 = OpLabel - %994 = OpFAdd %float %990 %float_360 - OpBranch %992 - %992 = OpLabel - %995 = OpPhi %float %990 %979 %994 %993 - %996 = OpExtInst %float %1 FClamp %995 %float_0 %float_360 - %997 = OpFOrdGreaterThan %bool %996 %float_180 - OpSelectionMerge %998 None - OpBranchConditional %997 %999 %998 - %999 = OpLabel - %1000 = OpFSub %float %996 %float_360 - OpBranch %998 - %998 = OpLabel - %1001 = OpPhi %float %996 %992 %1000 %999 - %1002 = OpFMul %float %1001 %float_0_0148148146 - %1003 = OpExtInst %float %1 FAbs %1002 - %1004 = OpFSub %float %float_1 %1003 - %1005 = OpExtInst %float %1 SmoothStep %float_0 %float_1 %1004 - %1006 = OpFMul %float %1005 %1005 - %1007 = OpFMul %float %1006 %928 - %1008 = OpFSub %float %float_0_0299999993 %973 - %1009 = OpFMul %float %1007 %1008 - %1010 = OpFMul %float %1009 %float_0_180000007 - %1011 = OpFAdd %float %973 %1010 - %1012 = OpCompositeInsert %v3float %1011 %972 0 - %1013 = OpVectorTimesMatrix %v3float %1012 %410 - %1014 = OpExtInst %v3float %1 FMax %132 %1013 - %1015 = OpDot %float %1014 %67 - %1016 = OpCompositeConstruct %v3float %1015 %1015 %1015 - %1017 = OpExtInst %v3float %1 FMix %1016 %1014 %228 - %1018 = OpAccessChain %_ptr_Uniform_float %_Globals %int_13 - %1019 = OpLoad %float %1018 - %1020 = OpFAdd %float %float_1 %1019 - %1021 = OpAccessChain %_ptr_Uniform_float %_Globals %int_11 - %1022 = OpLoad %float %1021 - %1023 = OpFSub %float %1020 %1022 - %1024 = OpAccessChain %_ptr_Uniform_float %_Globals %int_14 - %1025 = OpLoad %float %1024 - %1026 = OpFAdd %float %float_1 %1025 - %1027 = OpAccessChain %_ptr_Uniform_float %_Globals %int_12 - %1028 = OpLoad %float %1027 - %1029 = OpFSub %float %1026 %1028 - %1030 = OpFOrdGreaterThan %bool %1022 %float_0_800000012 - OpSelectionMerge %1031 None - OpBranchConditional %1030 %1032 %1033 - %1033 = OpLabel - %1034 = OpFAdd %float %float_0_180000007 %1019 - %1035 = OpFDiv %float %1034 %1023 - %1036 = OpExtInst %float %1 Log %float_0_180000007 - %1037 = OpExtInst %float %1 Log %float_10 - %1038 = OpFDiv %float %1036 %1037 - %1039 = OpFSub %float %float_2 %1035 - %1040 = OpFDiv %float %1035 %1039 - %1041 = OpExtInst %float %1 Log %1040 - %1042 = OpFMul %float %float_0_5 %1041 - %1043 = OpAccessChain %_ptr_Uniform_float %_Globals %int_10 - %1044 = OpLoad %float %1043 - %1045 = OpFDiv %float %1023 %1044 - %1046 = OpFMul %float %1042 %1045 - %1047 = OpFSub %float %1038 %1046 - OpBranch %1031 - %1032 = OpLabel - %1048 = OpFSub %float %float_0_819999993 %1022 - %1049 = OpAccessChain %_ptr_Uniform_float %_Globals %int_10 - %1050 = OpLoad %float %1049 - %1051 = OpFDiv %float %1048 %1050 - %1052 = OpExtInst %float %1 Log %float_0_180000007 - %1053 = OpExtInst %float %1 Log %float_10 - %1054 = OpFDiv %float %1052 %1053 - %1055 = OpFAdd %float %1051 %1054 - OpBranch %1031 - %1031 = OpLabel - %1056 = OpPhi %float %1047 %1033 %1055 %1032 - %1057 = OpFSub %float %float_1 %1022 - %1058 = OpAccessChain %_ptr_Uniform_float %_Globals %int_10 - %1059 = OpLoad %float %1058 - %1060 = OpFDiv %float %1057 %1059 - %1061 = OpFSub %float %1060 %1056 - %1062 = OpFDiv %float %1028 %1059 - %1063 = OpFSub %float %1062 %1061 - %1064 = OpExtInst %v3float %1 Log %1017 - %1065 = OpExtInst %float %1 Log %float_10 - %1066 = OpCompositeConstruct %v3float %1065 %1065 %1065 - %1067 = OpFDiv %v3float %1064 %1066 - %1068 = OpCompositeConstruct %v3float %1059 %1059 %1059 - %1069 = OpCompositeConstruct %v3float %1061 %1061 %1061 - %1070 = OpFAdd %v3float %1067 %1069 - %1071 = OpFMul %v3float %1068 %1070 - %1072 = OpFNegate %float %1019 - %1073 = OpCompositeConstruct %v3float %1072 %1072 %1072 - %1074 = OpFMul %float %float_2 %1023 - %1075 = OpCompositeConstruct %v3float %1074 %1074 %1074 - %1076 = OpFMul %float %float_n2 %1059 - %1077 = OpFDiv %float %1076 %1023 - %1078 = OpCompositeConstruct %v3float %1077 %1077 %1077 - %1079 = OpCompositeConstruct %v3float %1056 %1056 %1056 - %1080 = OpFSub %v3float %1067 %1079 - %1081 = OpFMul %v3float %1078 %1080 - %1082 = OpExtInst %v3float %1 Exp %1081 - %1083 = OpFAdd %v3float %135 %1082 - %1084 = OpFDiv %v3float %1075 %1083 - %1085 = OpFAdd %v3float %1073 %1084 - %1086 = OpCompositeConstruct %v3float %1026 %1026 %1026 - %1087 = OpFMul %float %float_2 %1029 - %1088 = OpCompositeConstruct %v3float %1087 %1087 %1087 - %1089 = OpFMul %float %float_2 %1059 - %1090 = OpFDiv %float %1089 %1029 - %1091 = OpCompositeConstruct %v3float %1090 %1090 %1090 - %1092 = OpCompositeConstruct %v3float %1063 %1063 %1063 - %1093 = OpFSub %v3float %1067 %1092 - %1094 = OpFMul %v3float %1091 %1093 - %1095 = OpExtInst %v3float %1 Exp %1094 - %1096 = OpFAdd %v3float %135 %1095 - %1097 = OpFDiv %v3float %1088 %1096 - %1098 = OpFSub %v3float %1086 %1097 - %1099 = OpFOrdLessThan %v3bool %1067 %1079 - %1100 = OpSelect %v3float %1099 %1085 %1071 - %1101 = OpFOrdGreaterThan %v3bool %1067 %1092 - %1102 = OpSelect %v3float %1101 %1098 %1071 - %1103 = OpFSub %float %1063 %1056 - %1104 = OpCompositeConstruct %v3float %1103 %1103 %1103 - %1105 = OpFDiv %v3float %1080 %1104 - %1106 = OpExtInst %v3float %1 FClamp %1105 %132 %135 - %1107 = OpFOrdLessThan %bool %1063 %1056 - %1108 = OpFSub %v3float %135 %1106 - %1109 = OpCompositeConstruct %v3bool %1107 %1107 %1107 - %1110 = OpSelect %v3float %1109 %1108 %1106 - %1111 = OpFMul %v3float %239 %1110 - %1112 = OpFSub %v3float %238 %1111 - %1113 = OpFMul %v3float %1112 %1110 - %1114 = OpFMul %v3float %1113 %1110 - %1115 = OpExtInst %v3float %1 FMix %1100 %1102 %1114 - %1116 = OpDot %float %1115 %67 - %1117 = OpCompositeConstruct %v3float %1116 %1116 %1116 - %1118 = OpExtInst %v3float %1 FMix %1117 %1115 %241 - %1119 = OpExtInst %v3float %1 FMax %132 %1118 - %1120 = OpVectorTimesMatrix %v3float %1119 %910 - %1121 = OpExtInst %v3float %1 FMix %1119 %1120 %914 - %1122 = OpVectorTimesMatrix %v3float %1121 %549 - %1123 = OpExtInst %v3float %1 FMax %132 %1122 - %1124 = OpFOrdEqual %bool %720 %float_0 - OpSelectionMerge %1125 DontFlatten - OpBranchConditional %1124 %1126 %1125 - %1126 = OpLabel - %1127 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_2 - %1128 = OpLoad %v4float %1127 - %1129 = OpVectorShuffle %v3float %1128 %1128 0 1 2 - %1130 = OpDot %float %906 %1129 - %1131 = OpCompositeInsert %v3float %1130 %391 0 - %1132 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_3 - %1133 = OpLoad %v4float %1132 - %1134 = OpVectorShuffle %v3float %1133 %1133 0 1 2 - %1135 = OpDot %float %906 %1134 - %1136 = OpCompositeInsert %v3float %1135 %1131 1 - %1137 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_4 - %1138 = OpLoad %v4float %1137 - %1139 = OpVectorShuffle %v3float %1138 %1138 0 1 2 - %1140 = OpDot %float %906 %1139 - %1141 = OpCompositeInsert %v3float %1140 %1136 2 - %1142 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_8 - %1143 = OpLoad %v4float %1142 - %1144 = OpVectorShuffle %v3float %1143 %1143 0 1 2 - %1145 = OpLoad %v4float %718 - %1146 = OpVectorShuffle %v3float %1145 %1145 0 1 2 - %1147 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_7 - %1148 = OpLoad %v4float %1147 - %1149 = OpVectorShuffle %v3float %1148 %1148 0 1 2 - %1150 = OpDot %float %906 %1149 - %1151 = OpFAdd %float %1150 %float_1 - %1152 = OpFDiv %float %float_1 %1151 - %1153 = OpCompositeConstruct %v3float %1152 %1152 %1152 - %1154 = OpFMul %v3float %1146 %1153 - %1155 = OpFAdd %v3float %1144 %1154 - %1156 = OpFMul %v3float %1141 %1155 - %1157 = OpExtInst %v3float %1 FMax %132 %1156 - %1158 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_5 - %1159 = OpLoad %v4float %1158 - %1160 = OpVectorShuffle %v3float %1159 %1159 0 0 0 - %1161 = OpFSub %v3float %1160 %1157 - %1162 = OpExtInst %v3float %1 FMax %132 %1161 - %1163 = OpVectorShuffle %v3float %1159 %1159 2 2 2 - %1164 = OpExtInst %v3float %1 FMax %1157 %1163 - %1165 = OpExtInst %v3float %1 FClamp %1157 %1160 %1163 - %1166 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_6 - %1167 = OpLoad %v4float %1166 - %1168 = OpVectorShuffle %v3float %1167 %1167 0 0 0 - %1169 = OpFMul %v3float %1164 %1168 - %1170 = OpVectorShuffle %v3float %1167 %1167 1 1 1 - %1171 = OpFAdd %v3float %1169 %1170 - %1172 = OpVectorShuffle %v3float %1159 %1159 3 3 3 - %1173 = OpFAdd %v3float %1164 %1172 - %1174 = OpFDiv %v3float %135 %1173 - %1175 = OpFMul %v3float %1171 %1174 - %1176 = OpVectorShuffle %v3float %1138 %1138 3 3 3 - %1177 = OpFMul %v3float %1165 %1176 - %1178 = OpVectorShuffle %v3float %1128 %1128 3 3 3 - %1179 = OpFMul %v3float %1162 %1178 - %1180 = OpVectorShuffle %v3float %1159 %1159 1 1 1 - %1181 = OpFAdd %v3float %1162 %1180 - %1182 = OpFDiv %v3float %135 %1181 - %1183 = OpFMul %v3float %1179 %1182 - %1184 = OpVectorShuffle %v3float %1133 %1133 3 3 3 - %1185 = OpFAdd %v3float %1183 %1184 - %1186 = OpFAdd %v3float %1177 %1185 - %1187 = OpFAdd %v3float %1175 %1186 - %1188 = OpFSub %v3float %1187 %248 - OpBranch %1125 - %1125 = OpLabel - %1189 = OpPhi %v3float %1123 %1031 %1188 %1126 - %1190 = OpAccessChain %_ptr_Uniform_float %_Globals %int_0 %int_0 - %1191 = OpLoad %float %1190 - %1192 = OpCompositeConstruct %v3float %1191 %1191 %1191 - %1193 = OpFMul %v3float %1189 %1189 - %1194 = OpFMul %v3float %1192 %1193 - %1195 = OpAccessChain %_ptr_Uniform_float %_Globals %int_0 %int_1 - %1196 = OpLoad %float %1195 - %1197 = OpCompositeConstruct %v3float %1196 %1196 %1196 - %1198 = OpFMul %v3float %1197 %1189 - %1199 = OpFAdd %v3float %1194 %1198 - %1200 = OpAccessChain %_ptr_Uniform_float %_Globals %int_0 %int_2 - %1201 = OpLoad %float %1200 - %1202 = OpCompositeConstruct %v3float %1201 %1201 %1201 - %1203 = OpFAdd %v3float %1199 %1202 - %1204 = OpAccessChain %_ptr_Uniform_v3float %_Globals %int_15 - %1205 = OpLoad %v3float %1204 - %1206 = OpFMul %v3float %1203 %1205 - %1207 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_16 - %1208 = OpLoad %v4float %1207 - %1209 = OpVectorShuffle %v3float %1208 %1208 0 1 2 - %1210 = OpAccessChain %_ptr_Uniform_float %_Globals %int_16 %int_3 - %1211 = OpLoad %float %1210 - %1212 = OpCompositeConstruct %v3float %1211 %1211 %1211 - %1213 = OpExtInst %v3float %1 FMix %1206 %1209 %1212 - %1214 = OpExtInst %v3float %1 FMax %132 %1213 - %1215 = OpAccessChain %_ptr_Uniform_float %_Globals %int_1 %int_1 - %1216 = OpLoad %float %1215 - %1217 = OpCompositeConstruct %v3float %1216 %1216 %1216 - %1218 = OpExtInst %v3float %1 Pow %1214 %1217 - %1219 = OpIEqual %bool %579 %uint_0 - OpSelectionMerge %1220 DontFlatten - OpBranchConditional %1219 %1221 %1222 - %1222 = OpLabel - %1223 = OpIEqual %bool %579 %uint_1 - OpSelectionMerge %1224 None - OpBranchConditional %1223 %1225 %1226 - %1226 = OpLabel - %1227 = OpIEqual %bool %579 %uint_3 - %1228 = OpIEqual %bool %579 %uint_5 - %1229 = OpLogicalOr %bool %1227 %1228 - OpSelectionMerge %1230 None - OpBranchConditional %1229 %1231 %1232 - %1232 = OpLabel - %1233 = OpIEqual %bool %579 %uint_4 - %1234 = OpIEqual %bool %579 %uint_6 - %1235 = OpLogicalOr %bool %1233 %1234 - OpSelectionMerge %1236 None - OpBranchConditional %1235 %1237 %1238 - %1238 = OpLabel - %1239 = OpIEqual %bool %579 %uint_7 - OpSelectionMerge %1240 None - OpBranchConditional %1239 %1241 %1242 - %1242 = OpLabel - %1243 = OpVectorTimesMatrix %v3float %1218 %547 - %1244 = OpVectorTimesMatrix %v3float %1243 %576 - %1245 = OpAccessChain %_ptr_Uniform_float %_Globals %int_1 %int_2 - %1246 = OpLoad %float %1245 - %1247 = OpCompositeConstruct %v3float %1246 %1246 %1246 - %1248 = OpExtInst %v3float %1 Pow %1244 %1247 - OpBranch %1240 - %1241 = OpLabel - %1249 = OpVectorTimesMatrix %v3float %906 %547 - %1250 = OpVectorTimesMatrix %v3float %1249 %576 - %1251 = OpFMul %v3float %1250 %496 - %1252 = OpExtInst %v3float %1 Pow %1251 %263 - %1253 = OpFMul %v3float %184 %1252 - %1254 = OpFAdd %v3float %183 %1253 - %1255 = OpFMul %v3float %185 %1252 - %1256 = OpFAdd %v3float %135 %1255 - %1257 = OpFDiv %v3float %135 %1256 - %1258 = OpFMul %v3float %1254 %1257 - %1259 = OpExtInst %v3float %1 Pow %1258 %264 - OpBranch %1240 - %1240 = OpLabel - %1260 = OpPhi %v3float %1248 %1242 %1259 %1241 - OpBranch %1236 - %1237 = OpLabel - %1261 = OpMatrixTimesMatrix %mat3v3float %546 %399 - %1262 = OpFMul %v3float %906 %262 - %1263 = OpVectorTimesMatrix %v3float %1262 %1261 - %1264 = OpCompositeExtract %float %1263 0 - %1265 = OpCompositeExtract %float %1263 1 - %1266 = OpExtInst %float %1 FMin %1264 %1265 - %1267 = OpCompositeExtract %float %1263 2 - %1268 = OpExtInst %float %1 FMin %1266 %1267 - %1269 = OpExtInst %float %1 FMax %1264 %1265 - %1270 = OpExtInst %float %1 FMax %1269 %1267 - %1271 = OpExtInst %float %1 FMax %1270 %float_1_00000001en10 - %1272 = OpExtInst %float %1 FMax %1268 %float_1_00000001en10 - %1273 = OpFSub %float %1271 %1272 - %1274 = OpExtInst %float %1 FMax %1270 %float_0_00999999978 - %1275 = OpFDiv %float %1273 %1274 - %1276 = OpFSub %float %1267 %1265 - %1277 = OpFMul %float %1267 %1276 - %1278 = OpFSub %float %1265 %1264 - %1279 = OpFMul %float %1265 %1278 - %1280 = OpFAdd %float %1277 %1279 - %1281 = OpFSub %float %1264 %1267 - %1282 = OpFMul %float %1264 %1281 - %1283 = OpFAdd %float %1280 %1282 - %1284 = OpExtInst %float %1 Sqrt %1283 - %1285 = OpFAdd %float %1267 %1265 - %1286 = OpFAdd %float %1285 %1264 - %1287 = OpFMul %float %float_1_75 %1284 - %1288 = OpFAdd %float %1286 %1287 - %1289 = OpFMul %float %1288 %float_0_333333343 - %1290 = OpFSub %float %1275 %float_0_400000006 - %1291 = OpFMul %float %1290 %float_5 - %1292 = OpFMul %float %1290 %float_2_5 - %1293 = OpExtInst %float %1 FAbs %1292 - %1294 = OpFSub %float %float_1 %1293 - %1295 = OpExtInst %float %1 FMax %1294 %float_0 - %1296 = OpExtInst %float %1 FSign %1291 - %1297 = OpConvertFToS %int %1296 - %1298 = OpConvertSToF %float %1297 - %1299 = OpFMul %float %1295 %1295 - %1300 = OpFSub %float %float_1 %1299 - %1301 = OpFMul %float %1298 %1300 - %1302 = OpFAdd %float %float_1 %1301 - %1303 = OpFMul %float %1302 %float_0_0250000004 - %1304 = OpFOrdLessThanEqual %bool %1289 %float_0_0533333346 - OpSelectionMerge %1305 None - OpBranchConditional %1304 %1306 %1307 - %1307 = OpLabel - %1308 = OpFOrdGreaterThanEqual %bool %1289 %float_0_159999996 - OpSelectionMerge %1309 None - OpBranchConditional %1308 %1310 %1311 - %1311 = OpLabel - %1312 = OpFDiv %float %float_0_239999995 %1288 - %1313 = OpFSub %float %1312 %float_0_5 - %1314 = OpFMul %float %1303 %1313 - OpBranch %1309 - %1310 = OpLabel - OpBranch %1309 - %1309 = OpLabel - %1315 = OpPhi %float %1314 %1311 %float_0 %1310 - OpBranch %1305 - %1306 = OpLabel - OpBranch %1305 - %1305 = OpLabel - %1316 = OpPhi %float %1315 %1309 %1303 %1306 - %1317 = OpFAdd %float %float_1 %1316 - %1318 = OpCompositeConstruct %v3float %1317 %1317 %1317 - %1319 = OpFMul %v3float %1263 %1318 - %1320 = OpCompositeExtract %float %1319 0 - %1321 = OpCompositeExtract %float %1319 1 - %1322 = OpFOrdEqual %bool %1320 %1321 - %1323 = OpCompositeExtract %float %1319 2 - %1324 = OpFOrdEqual %bool %1321 %1323 - %1325 = OpLogicalAnd %bool %1322 %1324 - OpSelectionMerge %1326 None - OpBranchConditional %1325 %1327 %1328 - %1328 = OpLabel - %1329 = OpExtInst %float %1 Sqrt %float_3 - %1330 = OpFSub %float %1321 %1323 - %1331 = OpFMul %float %1329 %1330 - %1332 = OpFMul %float %float_2 %1320 - %1333 = OpFSub %float %1332 %1321 - %1334 = OpFSub %float %1333 %1323 - %1335 = OpExtInst %float %1 Atan2 %1331 %1334 - %1336 = OpFMul %float %float_57_2957764 %1335 - OpBranch %1326 - %1327 = OpLabel - OpBranch %1326 - %1326 = OpLabel - %1337 = OpPhi %float %1336 %1328 %float_0 %1327 - %1338 = OpFOrdLessThan %bool %1337 %float_0 - OpSelectionMerge %1339 None - OpBranchConditional %1338 %1340 %1339 - %1340 = OpLabel - %1341 = OpFAdd %float %1337 %float_360 - OpBranch %1339 - %1339 = OpLabel - %1342 = OpPhi %float %1337 %1326 %1341 %1340 - %1343 = OpExtInst %float %1 FClamp %1342 %float_0 %float_360 - %1344 = OpFOrdGreaterThan %bool %1343 %float_180 - OpSelectionMerge %1345 None - OpBranchConditional %1344 %1346 %1345 - %1346 = OpLabel - %1347 = OpFSub %float %1343 %float_360 - OpBranch %1345 - %1345 = OpLabel - %1348 = OpPhi %float %1343 %1339 %1347 %1346 - %1349 = OpFOrdGreaterThan %bool %1348 %float_n67_5 - %1350 = OpFOrdLessThan %bool %1348 %float_67_5 - %1351 = OpLogicalAnd %bool %1349 %1350 - OpSelectionMerge %1352 None - OpBranchConditional %1351 %1353 %1352 - %1353 = OpLabel - %1354 = OpFSub %float %1348 %float_n67_5 - %1355 = OpFMul %float %1354 %float_0_0296296291 - %1356 = OpConvertFToS %int %1355 - %1357 = OpConvertSToF %float %1356 - %1358 = OpFSub %float %1355 %1357 - %1359 = OpFMul %float %1358 %1358 - %1360 = OpFMul %float %1359 %1358 - %1361 = OpIEqual %bool %1356 %int_3 - OpSelectionMerge %1362 None - OpBranchConditional %1361 %1363 %1364 - %1364 = OpLabel - %1365 = OpIEqual %bool %1356 %int_2 - OpSelectionMerge %1366 None - OpBranchConditional %1365 %1367 %1368 - %1368 = OpLabel - %1369 = OpIEqual %bool %1356 %int_1 - OpSelectionMerge %1370 None - OpBranchConditional %1369 %1371 %1372 - %1372 = OpLabel - %1373 = OpIEqual %bool %1356 %int_0 - OpSelectionMerge %1374 None - OpBranchConditional %1373 %1375 %1376 - %1376 = OpLabel - OpBranch %1374 - %1375 = OpLabel - %1377 = OpFMul %float %1360 %float_0_166666672 - OpBranch %1374 - %1374 = OpLabel - %1378 = OpPhi %float %float_0 %1376 %1377 %1375 - OpBranch %1370 - %1371 = OpLabel - %1379 = OpFMul %float %1360 %float_n0_5 - %1380 = OpFMul %float %1359 %float_0_5 - %1381 = OpFAdd %float %1379 %1380 - %1382 = OpFMul %float %1358 %float_0_5 - %1383 = OpFAdd %float %1381 %1382 - %1384 = OpFAdd %float %1383 %float_0_166666672 - OpBranch %1370 - %1370 = OpLabel - %1385 = OpPhi %float %1378 %1374 %1384 %1371 - OpBranch %1366 - %1367 = OpLabel - %1386 = OpFMul %float %1360 %float_0_5 - %1387 = OpFMul %float %1359 %float_n1 - %1388 = OpFAdd %float %1386 %1387 - %1389 = OpFAdd %float %1388 %float_0_666666687 - OpBranch %1366 - %1366 = OpLabel - %1390 = OpPhi %float %1385 %1370 %1389 %1367 - OpBranch %1362 - %1363 = OpLabel - %1391 = OpFMul %float %1360 %float_n0_166666672 - %1392 = OpFMul %float %1359 %float_0_5 - %1393 = OpFAdd %float %1391 %1392 - %1394 = OpFMul %float %1358 %float_n0_5 - %1395 = OpFAdd %float %1393 %1394 - %1396 = OpFAdd %float %1395 %float_0_166666672 - OpBranch %1362 - %1362 = OpLabel - %1397 = OpPhi %float %1390 %1366 %1396 %1363 - OpBranch %1352 - %1352 = OpLabel - %1398 = OpPhi %float %float_0 %1345 %1397 %1362 - %1399 = OpFMul %float %1398 %float_1_5 - %1400 = OpFMul %float %1399 %1275 - %1401 = OpFSub %float %float_0_0299999993 %1320 - %1402 = OpFMul %float %1400 %1401 - %1403 = OpFMul %float %1402 %float_0_180000007 - %1404 = OpFAdd %float %1320 %1403 - %1405 = OpCompositeInsert %v3float %1404 %1319 0 - %1406 = OpExtInst %v3float %1 FClamp %1405 %132 %314 - %1407 = OpVectorTimesMatrix %v3float %1406 %410 - %1408 = OpExtInst %v3float %1 FClamp %1407 %132 %314 - %1409 = OpDot %float %1408 %67 - %1410 = OpCompositeConstruct %v3float %1409 %1409 %1409 - %1411 = OpExtInst %v3float %1 FMix %1410 %1408 %228 - %1412 = OpCompositeExtract %float %1411 0 - %1413 = OpExtInst %float %1 Exp2 %float_n15 - %1414 = OpFMul %float %float_0_179999992 %1413 - %1415 = OpExtInst %float %1 Exp2 %float_18 - %1416 = OpFMul %float %float_0_179999992 %1415 - OpStore %502 %475 - OpStore %501 %476 - %1417 = OpFOrdLessThanEqual %bool %1412 %float_0 - %1418 = OpExtInst %float %1 Exp2 %float_n14 - %1419 = OpSelect %float %1417 %1418 %1412 - %1420 = OpExtInst %float %1 Log %1419 - %1421 = OpFDiv %float %1420 %1065 - %1422 = OpExtInst %float %1 Log %1414 - %1423 = OpFDiv %float %1422 %1065 - %1424 = OpFOrdLessThanEqual %bool %1421 %1423 - OpSelectionMerge %1425 None - OpBranchConditional %1424 %1426 %1427 - %1427 = OpLabel - %1428 = OpFOrdGreaterThan %bool %1421 %1423 - %1429 = OpExtInst %float %1 Log %float_0_180000007 - %1430 = OpFDiv %float %1429 %1065 - %1431 = OpFOrdLessThan %bool %1421 %1430 - %1432 = OpLogicalAnd %bool %1428 %1431 - OpSelectionMerge %1433 None - OpBranchConditional %1432 %1434 %1435 - %1435 = OpLabel - %1436 = OpFOrdGreaterThanEqual %bool %1421 %1430 - %1437 = OpExtInst %float %1 Log %1416 - %1438 = OpFDiv %float %1437 %1065 - %1439 = OpFOrdLessThan %bool %1421 %1438 - %1440 = OpLogicalAnd %bool %1436 %1439 - OpSelectionMerge %1441 None - OpBranchConditional %1440 %1442 %1443 - %1443 = OpLabel - %1444 = OpExtInst %float %1 Log %float_10000 - %1445 = OpFDiv %float %1444 %1065 - OpBranch %1441 - %1442 = OpLabel - %1446 = OpFSub %float %1421 %1430 - %1447 = OpFMul %float %float_3 %1446 - %1448 = OpFSub %float %1438 %1430 - %1449 = OpFDiv %float %1447 %1448 - %1450 = OpConvertFToS %int %1449 - %1451 = OpConvertSToF %float %1450 - %1452 = OpFSub %float %1449 %1451 - %1453 = OpAccessChain %_ptr_Function_float %501 %1450 - %1454 = OpLoad %float %1453 - %1455 = OpIAdd %int %1450 %int_1 - %1456 = OpAccessChain %_ptr_Function_float %501 %1455 - %1457 = OpLoad %float %1456 - %1458 = OpIAdd %int %1450 %int_2 - %1459 = OpAccessChain %_ptr_Function_float %501 %1458 - %1460 = OpLoad %float %1459 - %1461 = OpCompositeConstruct %v3float %1454 %1457 %1460 - %1462 = OpFMul %float %1452 %1452 - %1463 = OpCompositeConstruct %v3float %1462 %1452 %float_1 - %1464 = OpMatrixTimesVector %v3float %442 %1461 - %1465 = OpDot %float %1463 %1464 - OpBranch %1441 - %1441 = OpLabel - %1466 = OpPhi %float %1445 %1443 %1465 %1442 - OpBranch %1433 - %1434 = OpLabel - %1467 = OpFSub %float %1421 %1423 - %1468 = OpFMul %float %float_3 %1467 - %1469 = OpFSub %float %1430 %1423 - %1470 = OpFDiv %float %1468 %1469 - %1471 = OpConvertFToS %int %1470 - %1472 = OpConvertSToF %float %1471 - %1473 = OpFSub %float %1470 %1472 - %1474 = OpAccessChain %_ptr_Function_float %502 %1471 - %1475 = OpLoad %float %1474 - %1476 = OpIAdd %int %1471 %int_1 - %1477 = OpAccessChain %_ptr_Function_float %502 %1476 - %1478 = OpLoad %float %1477 - %1479 = OpIAdd %int %1471 %int_2 - %1480 = OpAccessChain %_ptr_Function_float %502 %1479 - %1481 = OpLoad %float %1480 - %1482 = OpCompositeConstruct %v3float %1475 %1478 %1481 - %1483 = OpFMul %float %1473 %1473 - %1484 = OpCompositeConstruct %v3float %1483 %1473 %float_1 - %1485 = OpMatrixTimesVector %v3float %442 %1482 - %1486 = OpDot %float %1484 %1485 - OpBranch %1433 - %1433 = OpLabel - %1487 = OpPhi %float %1466 %1441 %1486 %1434 - OpBranch %1425 - %1426 = OpLabel - %1488 = OpExtInst %float %1 Log %float_9_99999975en05 - %1489 = OpFDiv %float %1488 %1065 - OpBranch %1425 - %1425 = OpLabel - %1490 = OpPhi %float %1487 %1433 %1489 %1426 - %1491 = OpExtInst %float %1 Pow %float_10 %1490 - %1492 = OpCompositeInsert %v3float %1491 %391 0 - %1493 = OpCompositeExtract %float %1411 1 - OpStore %504 %475 - OpStore %503 %476 - %1494 = OpFOrdLessThanEqual %bool %1493 %float_0 - %1495 = OpSelect %float %1494 %1418 %1493 - %1496 = OpExtInst %float %1 Log %1495 - %1497 = OpFDiv %float %1496 %1065 - %1498 = OpFOrdLessThanEqual %bool %1497 %1423 - OpSelectionMerge %1499 None - OpBranchConditional %1498 %1500 %1501 - %1501 = OpLabel - %1502 = OpFOrdGreaterThan %bool %1497 %1423 - %1503 = OpExtInst %float %1 Log %float_0_180000007 - %1504 = OpFDiv %float %1503 %1065 - %1505 = OpFOrdLessThan %bool %1497 %1504 - %1506 = OpLogicalAnd %bool %1502 %1505 - OpSelectionMerge %1507 None - OpBranchConditional %1506 %1508 %1509 - %1509 = OpLabel - %1510 = OpFOrdGreaterThanEqual %bool %1497 %1504 - %1511 = OpExtInst %float %1 Log %1416 - %1512 = OpFDiv %float %1511 %1065 - %1513 = OpFOrdLessThan %bool %1497 %1512 - %1514 = OpLogicalAnd %bool %1510 %1513 - OpSelectionMerge %1515 None - OpBranchConditional %1514 %1516 %1517 - %1517 = OpLabel - %1518 = OpExtInst %float %1 Log %float_10000 - %1519 = OpFDiv %float %1518 %1065 - OpBranch %1515 - %1516 = OpLabel - %1520 = OpFSub %float %1497 %1504 - %1521 = OpFMul %float %float_3 %1520 - %1522 = OpFSub %float %1512 %1504 - %1523 = OpFDiv %float %1521 %1522 - %1524 = OpConvertFToS %int %1523 - %1525 = OpConvertSToF %float %1524 - %1526 = OpFSub %float %1523 %1525 - %1527 = OpAccessChain %_ptr_Function_float %503 %1524 - %1528 = OpLoad %float %1527 - %1529 = OpIAdd %int %1524 %int_1 - %1530 = OpAccessChain %_ptr_Function_float %503 %1529 - %1531 = OpLoad %float %1530 - %1532 = OpIAdd %int %1524 %int_2 - %1533 = OpAccessChain %_ptr_Function_float %503 %1532 - %1534 = OpLoad %float %1533 - %1535 = OpCompositeConstruct %v3float %1528 %1531 %1534 - %1536 = OpFMul %float %1526 %1526 - %1537 = OpCompositeConstruct %v3float %1536 %1526 %float_1 - %1538 = OpMatrixTimesVector %v3float %442 %1535 - %1539 = OpDot %float %1537 %1538 - OpBranch %1515 - %1515 = OpLabel - %1540 = OpPhi %float %1519 %1517 %1539 %1516 - OpBranch %1507 - %1508 = OpLabel - %1541 = OpFSub %float %1497 %1423 - %1542 = OpFMul %float %float_3 %1541 - %1543 = OpFSub %float %1504 %1423 - %1544 = OpFDiv %float %1542 %1543 - %1545 = OpConvertFToS %int %1544 - %1546 = OpConvertSToF %float %1545 - %1547 = OpFSub %float %1544 %1546 - %1548 = OpAccessChain %_ptr_Function_float %504 %1545 - %1549 = OpLoad %float %1548 - %1550 = OpIAdd %int %1545 %int_1 - %1551 = OpAccessChain %_ptr_Function_float %504 %1550 - %1552 = OpLoad %float %1551 - %1553 = OpIAdd %int %1545 %int_2 - %1554 = OpAccessChain %_ptr_Function_float %504 %1553 - %1555 = OpLoad %float %1554 - %1556 = OpCompositeConstruct %v3float %1549 %1552 %1555 - %1557 = OpFMul %float %1547 %1547 - %1558 = OpCompositeConstruct %v3float %1557 %1547 %float_1 - %1559 = OpMatrixTimesVector %v3float %442 %1556 - %1560 = OpDot %float %1558 %1559 - OpBranch %1507 - %1507 = OpLabel - %1561 = OpPhi %float %1540 %1515 %1560 %1508 - OpBranch %1499 - %1500 = OpLabel - %1562 = OpExtInst %float %1 Log %float_9_99999975en05 - %1563 = OpFDiv %float %1562 %1065 - OpBranch %1499 - %1499 = OpLabel - %1564 = OpPhi %float %1561 %1507 %1563 %1500 - %1565 = OpExtInst %float %1 Pow %float_10 %1564 - %1566 = OpCompositeInsert %v3float %1565 %1492 1 - %1567 = OpCompositeExtract %float %1411 2 - OpStore %506 %475 - OpStore %505 %476 - %1568 = OpFOrdLessThanEqual %bool %1567 %float_0 - %1569 = OpSelect %float %1568 %1418 %1567 - %1570 = OpExtInst %float %1 Log %1569 - %1571 = OpFDiv %float %1570 %1065 - %1572 = OpFOrdLessThanEqual %bool %1571 %1423 - OpSelectionMerge %1573 None - OpBranchConditional %1572 %1574 %1575 - %1575 = OpLabel - %1576 = OpFOrdGreaterThan %bool %1571 %1423 - %1577 = OpExtInst %float %1 Log %float_0_180000007 - %1578 = OpFDiv %float %1577 %1065 - %1579 = OpFOrdLessThan %bool %1571 %1578 - %1580 = OpLogicalAnd %bool %1576 %1579 - OpSelectionMerge %1581 None - OpBranchConditional %1580 %1582 %1583 - %1583 = OpLabel - %1584 = OpFOrdGreaterThanEqual %bool %1571 %1578 - %1585 = OpExtInst %float %1 Log %1416 - %1586 = OpFDiv %float %1585 %1065 - %1587 = OpFOrdLessThan %bool %1571 %1586 - %1588 = OpLogicalAnd %bool %1584 %1587 - OpSelectionMerge %1589 None - OpBranchConditional %1588 %1590 %1591 - %1591 = OpLabel - %1592 = OpExtInst %float %1 Log %float_10000 - %1593 = OpFDiv %float %1592 %1065 - OpBranch %1589 - %1590 = OpLabel - %1594 = OpFSub %float %1571 %1578 - %1595 = OpFMul %float %float_3 %1594 - %1596 = OpFSub %float %1586 %1578 - %1597 = OpFDiv %float %1595 %1596 - %1598 = OpConvertFToS %int %1597 - %1599 = OpConvertSToF %float %1598 - %1600 = OpFSub %float %1597 %1599 - %1601 = OpAccessChain %_ptr_Function_float %505 %1598 - %1602 = OpLoad %float %1601 - %1603 = OpIAdd %int %1598 %int_1 - %1604 = OpAccessChain %_ptr_Function_float %505 %1603 - %1605 = OpLoad %float %1604 - %1606 = OpIAdd %int %1598 %int_2 - %1607 = OpAccessChain %_ptr_Function_float %505 %1606 - %1608 = OpLoad %float %1607 - %1609 = OpCompositeConstruct %v3float %1602 %1605 %1608 - %1610 = OpFMul %float %1600 %1600 - %1611 = OpCompositeConstruct %v3float %1610 %1600 %float_1 - %1612 = OpMatrixTimesVector %v3float %442 %1609 - %1613 = OpDot %float %1611 %1612 - OpBranch %1589 - %1589 = OpLabel - %1614 = OpPhi %float %1593 %1591 %1613 %1590 - OpBranch %1581 - %1582 = OpLabel - %1615 = OpFSub %float %1571 %1423 - %1616 = OpFMul %float %float_3 %1615 - %1617 = OpFSub %float %1578 %1423 - %1618 = OpFDiv %float %1616 %1617 - %1619 = OpConvertFToS %int %1618 - %1620 = OpConvertSToF %float %1619 - %1621 = OpFSub %float %1618 %1620 - %1622 = OpAccessChain %_ptr_Function_float %506 %1619 - %1623 = OpLoad %float %1622 - %1624 = OpIAdd %int %1619 %int_1 - %1625 = OpAccessChain %_ptr_Function_float %506 %1624 - %1626 = OpLoad %float %1625 - %1627 = OpIAdd %int %1619 %int_2 - %1628 = OpAccessChain %_ptr_Function_float %506 %1627 - %1629 = OpLoad %float %1628 - %1630 = OpCompositeConstruct %v3float %1623 %1626 %1629 - %1631 = OpFMul %float %1621 %1621 - %1632 = OpCompositeConstruct %v3float %1631 %1621 %float_1 - %1633 = OpMatrixTimesVector %v3float %442 %1630 - %1634 = OpDot %float %1632 %1633 - OpBranch %1581 - %1581 = OpLabel - %1635 = OpPhi %float %1614 %1589 %1634 %1582 - OpBranch %1573 - %1574 = OpLabel - %1636 = OpExtInst %float %1 Log %float_9_99999975en05 - %1637 = OpFDiv %float %1636 %1065 - OpBranch %1573 - %1573 = OpLabel - %1638 = OpPhi %float %1635 %1581 %1637 %1574 - %1639 = OpExtInst %float %1 Pow %float_10 %1638 - %1640 = OpCompositeInsert %v3float %1639 %1566 2 - %1641 = OpVectorTimesMatrix %v3float %1640 %414 - %1642 = OpVectorTimesMatrix %v3float %1641 %410 - %1643 = OpExtInst %float %1 Pow %float_2 %float_n12 - %1644 = OpFMul %float %float_0_179999992 %1643 - OpStore %514 %475 - OpStore %513 %476 - %1645 = OpFOrdLessThanEqual %bool %1644 %float_0 - %1646 = OpSelect %float %1645 %1418 %1644 - %1647 = OpExtInst %float %1 Log %1646 - %1648 = OpFDiv %float %1647 %1065 - %1649 = OpFOrdLessThanEqual %bool %1648 %1423 - OpSelectionMerge %1650 None - OpBranchConditional %1649 %1651 %1652 - %1652 = OpLabel - %1653 = OpFOrdGreaterThan %bool %1648 %1423 - %1654 = OpExtInst %float %1 Log %float_0_180000007 - %1655 = OpFDiv %float %1654 %1065 - %1656 = OpFOrdLessThan %bool %1648 %1655 - %1657 = OpLogicalAnd %bool %1653 %1656 - OpSelectionMerge %1658 None - OpBranchConditional %1657 %1659 %1660 - %1660 = OpLabel - %1661 = OpFOrdGreaterThanEqual %bool %1648 %1655 - %1662 = OpExtInst %float %1 Log %1416 - %1663 = OpFDiv %float %1662 %1065 - %1664 = OpFOrdLessThan %bool %1648 %1663 - %1665 = OpLogicalAnd %bool %1661 %1664 - OpSelectionMerge %1666 None - OpBranchConditional %1665 %1667 %1668 - %1668 = OpLabel - %1669 = OpExtInst %float %1 Log %float_10000 - %1670 = OpFDiv %float %1669 %1065 - OpBranch %1666 - %1667 = OpLabel - %1671 = OpFSub %float %1648 %1655 - %1672 = OpFMul %float %float_3 %1671 - %1673 = OpFSub %float %1663 %1655 - %1674 = OpFDiv %float %1672 %1673 - %1675 = OpConvertFToS %int %1674 - %1676 = OpConvertSToF %float %1675 - %1677 = OpFSub %float %1674 %1676 - %1678 = OpAccessChain %_ptr_Function_float %513 %1675 - %1679 = OpLoad %float %1678 - %1680 = OpIAdd %int %1675 %int_1 - %1681 = OpAccessChain %_ptr_Function_float %513 %1680 - %1682 = OpLoad %float %1681 - %1683 = OpIAdd %int %1675 %int_2 - %1684 = OpAccessChain %_ptr_Function_float %513 %1683 - %1685 = OpLoad %float %1684 - %1686 = OpCompositeConstruct %v3float %1679 %1682 %1685 - %1687 = OpFMul %float %1677 %1677 - %1688 = OpCompositeConstruct %v3float %1687 %1677 %float_1 - %1689 = OpMatrixTimesVector %v3float %442 %1686 - %1690 = OpDot %float %1688 %1689 - OpBranch %1666 - %1666 = OpLabel - %1691 = OpPhi %float %1670 %1668 %1690 %1667 - OpBranch %1658 - %1659 = OpLabel - %1692 = OpFSub %float %1648 %1423 - %1693 = OpFMul %float %float_3 %1692 - %1694 = OpFSub %float %1655 %1423 - %1695 = OpFDiv %float %1693 %1694 - %1696 = OpConvertFToS %int %1695 - %1697 = OpConvertSToF %float %1696 - %1698 = OpFSub %float %1695 %1697 - %1699 = OpAccessChain %_ptr_Function_float %514 %1696 - %1700 = OpLoad %float %1699 - %1701 = OpIAdd %int %1696 %int_1 - %1702 = OpAccessChain %_ptr_Function_float %514 %1701 - %1703 = OpLoad %float %1702 - %1704 = OpIAdd %int %1696 %int_2 - %1705 = OpAccessChain %_ptr_Function_float %514 %1704 - %1706 = OpLoad %float %1705 - %1707 = OpCompositeConstruct %v3float %1700 %1703 %1706 - %1708 = OpFMul %float %1698 %1698 - %1709 = OpCompositeConstruct %v3float %1708 %1698 %float_1 - %1710 = OpMatrixTimesVector %v3float %442 %1707 - %1711 = OpDot %float %1709 %1710 - OpBranch %1658 - %1658 = OpLabel - %1712 = OpPhi %float %1691 %1666 %1711 %1659 - OpBranch %1650 - %1651 = OpLabel - %1713 = OpExtInst %float %1 Log %float_9_99999975en05 - %1714 = OpFDiv %float %1713 %1065 - OpBranch %1650 - %1650 = OpLabel - %1715 = OpPhi %float %1712 %1658 %1714 %1651 - %1716 = OpExtInst %float %1 Pow %float_10 %1715 - OpStore %516 %475 - OpStore %515 %476 - %1717 = OpExtInst %float %1 Log %float_0_180000007 - %1718 = OpFDiv %float %1717 %1065 - %1719 = OpFOrdLessThanEqual %bool %1718 %1423 - OpSelectionMerge %1720 None - OpBranchConditional %1719 %1721 %1722 - %1722 = OpLabel - %1723 = OpFOrdGreaterThan %bool %1718 %1423 - %1724 = OpFOrdLessThan %bool %1718 %1718 - %1725 = OpLogicalAnd %bool %1723 %1724 - OpSelectionMerge %1726 None - OpBranchConditional %1725 %1727 %1728 - %1728 = OpLabel - %1729 = OpFOrdGreaterThanEqual %bool %1718 %1718 - %1730 = OpExtInst %float %1 Log %1416 - %1731 = OpFDiv %float %1730 %1065 - %1732 = OpFOrdLessThan %bool %1718 %1731 - %1733 = OpLogicalAnd %bool %1729 %1732 - OpSelectionMerge %1734 None - OpBranchConditional %1733 %1735 %1736 - %1736 = OpLabel - %1737 = OpExtInst %float %1 Log %float_10000 - %1738 = OpFDiv %float %1737 %1065 - OpBranch %1734 - %1735 = OpLabel - %1739 = OpFSub %float %1718 %1718 - %1740 = OpFMul %float %float_3 %1739 - %1741 = OpFSub %float %1731 %1718 - %1742 = OpFDiv %float %1740 %1741 - %1743 = OpConvertFToS %int %1742 - %1744 = OpConvertSToF %float %1743 - %1745 = OpFSub %float %1742 %1744 - %1746 = OpAccessChain %_ptr_Function_float %515 %1743 - %1747 = OpLoad %float %1746 - %1748 = OpIAdd %int %1743 %int_1 - %1749 = OpAccessChain %_ptr_Function_float %515 %1748 - %1750 = OpLoad %float %1749 - %1751 = OpIAdd %int %1743 %int_2 - %1752 = OpAccessChain %_ptr_Function_float %515 %1751 - %1753 = OpLoad %float %1752 - %1754 = OpCompositeConstruct %v3float %1747 %1750 %1753 - %1755 = OpFMul %float %1745 %1745 - %1756 = OpCompositeConstruct %v3float %1755 %1745 %float_1 - %1757 = OpMatrixTimesVector %v3float %442 %1754 - %1758 = OpDot %float %1756 %1757 - OpBranch %1734 - %1734 = OpLabel - %1759 = OpPhi %float %1738 %1736 %1758 %1735 - OpBranch %1726 - %1727 = OpLabel - %1760 = OpFSub %float %1718 %1423 - %1761 = OpFMul %float %float_3 %1760 - %1762 = OpAccessChain %_ptr_Function_float %516 %int_3 - %1763 = OpLoad %float %1762 - %1764 = OpAccessChain %_ptr_Function_float %516 %int_4 - %1765 = OpLoad %float %1764 - %1766 = OpAccessChain %_ptr_Function_float %516 %int_5 - %1767 = OpLoad %float %1766 - %1768 = OpCompositeConstruct %v3float %1763 %1765 %1767 - %1769 = OpMatrixTimesVector %v3float %442 %1768 - %1770 = OpCompositeExtract %float %1769 2 - OpBranch %1726 - %1726 = OpLabel - %1771 = OpPhi %float %1759 %1734 %1770 %1727 - OpBranch %1720 - %1721 = OpLabel - %1772 = OpExtInst %float %1 Log %float_9_99999975en05 - %1773 = OpFDiv %float %1772 %1065 - OpBranch %1720 - %1720 = OpLabel - %1774 = OpPhi %float %1771 %1726 %1773 %1721 - %1775 = OpExtInst %float %1 Pow %float_10 %1774 - %1776 = OpExtInst %float %1 Pow %float_2 %float_11 - %1777 = OpFMul %float %float_0_179999992 %1776 - OpStore %518 %475 - OpStore %517 %476 - %1778 = OpFOrdLessThanEqual %bool %1777 %float_0 - %1779 = OpSelect %float %1778 %1418 %1777 - %1780 = OpExtInst %float %1 Log %1779 - %1781 = OpFDiv %float %1780 %1065 - %1782 = OpFOrdLessThanEqual %bool %1781 %1423 - OpSelectionMerge %1783 None - OpBranchConditional %1782 %1784 %1785 - %1785 = OpLabel - %1786 = OpFOrdGreaterThan %bool %1781 %1423 - %1787 = OpFOrdLessThan %bool %1781 %1718 - %1788 = OpLogicalAnd %bool %1786 %1787 - OpSelectionMerge %1789 None - OpBranchConditional %1788 %1790 %1791 - %1791 = OpLabel - %1792 = OpFOrdGreaterThanEqual %bool %1781 %1718 - %1793 = OpExtInst %float %1 Log %1416 - %1794 = OpFDiv %float %1793 %1065 - %1795 = OpFOrdLessThan %bool %1781 %1794 - %1796 = OpLogicalAnd %bool %1792 %1795 - OpSelectionMerge %1797 None - OpBranchConditional %1796 %1798 %1799 - %1799 = OpLabel - %1800 = OpExtInst %float %1 Log %float_10000 - %1801 = OpFDiv %float %1800 %1065 - OpBranch %1797 - %1798 = OpLabel - %1802 = OpFSub %float %1781 %1718 - %1803 = OpFMul %float %float_3 %1802 - %1804 = OpFSub %float %1794 %1718 - %1805 = OpFDiv %float %1803 %1804 - %1806 = OpConvertFToS %int %1805 - %1807 = OpConvertSToF %float %1806 - %1808 = OpFSub %float %1805 %1807 - %1809 = OpAccessChain %_ptr_Function_float %517 %1806 - %1810 = OpLoad %float %1809 - %1811 = OpIAdd %int %1806 %int_1 - %1812 = OpAccessChain %_ptr_Function_float %517 %1811 - %1813 = OpLoad %float %1812 - %1814 = OpIAdd %int %1806 %int_2 - %1815 = OpAccessChain %_ptr_Function_float %517 %1814 - %1816 = OpLoad %float %1815 - %1817 = OpCompositeConstruct %v3float %1810 %1813 %1816 - %1818 = OpFMul %float %1808 %1808 - %1819 = OpCompositeConstruct %v3float %1818 %1808 %float_1 - %1820 = OpMatrixTimesVector %v3float %442 %1817 - %1821 = OpDot %float %1819 %1820 - OpBranch %1797 - %1797 = OpLabel - %1822 = OpPhi %float %1801 %1799 %1821 %1798 - OpBranch %1789 - %1790 = OpLabel - %1823 = OpFSub %float %1781 %1423 - %1824 = OpFMul %float %float_3 %1823 - %1825 = OpFSub %float %1718 %1423 - %1826 = OpFDiv %float %1824 %1825 - %1827 = OpConvertFToS %int %1826 - %1828 = OpConvertSToF %float %1827 - %1829 = OpFSub %float %1826 %1828 - %1830 = OpAccessChain %_ptr_Function_float %518 %1827 - %1831 = OpLoad %float %1830 - %1832 = OpIAdd %int %1827 %int_1 - %1833 = OpAccessChain %_ptr_Function_float %518 %1832 - %1834 = OpLoad %float %1833 - %1835 = OpIAdd %int %1827 %int_2 - %1836 = OpAccessChain %_ptr_Function_float %518 %1835 - %1837 = OpLoad %float %1836 - %1838 = OpCompositeConstruct %v3float %1831 %1834 %1837 - %1839 = OpFMul %float %1829 %1829 - %1840 = OpCompositeConstruct %v3float %1839 %1829 %float_1 - %1841 = OpMatrixTimesVector %v3float %442 %1838 - %1842 = OpDot %float %1840 %1841 - OpBranch %1789 - %1789 = OpLabel - %1843 = OpPhi %float %1822 %1797 %1842 %1790 - OpBranch %1783 - %1784 = OpLabel - %1844 = OpExtInst %float %1 Log %float_9_99999975en05 - %1845 = OpFDiv %float %1844 %1065 - OpBranch %1783 - %1783 = OpLabel - %1846 = OpPhi %float %1843 %1789 %1845 %1784 - %1847 = OpExtInst %float %1 Pow %float_10 %1846 - %1848 = OpCompositeExtract %float %1642 0 - OpStore %512 %482 - OpStore %511 %483 - %1849 = OpFOrdLessThanEqual %bool %1848 %float_0 - %1850 = OpSelect %float %1849 %float_9_99999975en05 %1848 - %1851 = OpExtInst %float %1 Log %1850 - %1852 = OpFDiv %float %1851 %1065 - %1853 = OpExtInst %float %1 Log %1716 - %1854 = OpFDiv %float %1853 %1065 - %1855 = OpFOrdLessThanEqual %bool %1852 %1854 - OpSelectionMerge %1856 None - OpBranchConditional %1855 %1857 %1858 - %1858 = OpLabel - %1859 = OpFOrdGreaterThan %bool %1852 %1854 - %1860 = OpExtInst %float %1 Log %1775 - %1861 = OpFDiv %float %1860 %1065 - %1862 = OpFOrdLessThan %bool %1852 %1861 - %1863 = OpLogicalAnd %bool %1859 %1862 - OpSelectionMerge %1864 None - OpBranchConditional %1863 %1865 %1866 - %1866 = OpLabel - %1867 = OpFOrdGreaterThanEqual %bool %1852 %1861 - %1868 = OpExtInst %float %1 Log %1847 - %1869 = OpFDiv %float %1868 %1065 - %1870 = OpFOrdLessThan %bool %1852 %1869 - %1871 = OpLogicalAnd %bool %1867 %1870 - OpSelectionMerge %1872 None - OpBranchConditional %1871 %1873 %1874 - %1874 = OpLabel - %1875 = OpFMul %float %1852 %float_0_119999997 - %1876 = OpExtInst %float %1 Log %float_2000 - %1877 = OpFDiv %float %1876 %1065 - %1878 = OpFMul %float %float_0_119999997 %1868 - %1879 = OpFDiv %float %1878 %1065 - %1880 = OpFSub %float %1877 %1879 - %1881 = OpFAdd %float %1875 %1880 - OpBranch %1872 - %1873 = OpLabel - %1882 = OpFSub %float %1852 %1861 - %1883 = OpFMul %float %float_7 %1882 - %1884 = OpFSub %float %1869 %1861 - %1885 = OpFDiv %float %1883 %1884 - %1886 = OpConvertFToS %int %1885 - %1887 = OpConvertSToF %float %1886 - %1888 = OpFSub %float %1885 %1887 - %1889 = OpAccessChain %_ptr_Function_float %511 %1886 - %1890 = OpLoad %float %1889 - %1891 = OpIAdd %int %1886 %int_1 - %1892 = OpAccessChain %_ptr_Function_float %511 %1891 - %1893 = OpLoad %float %1892 - %1894 = OpIAdd %int %1886 %int_2 - %1895 = OpAccessChain %_ptr_Function_float %511 %1894 - %1896 = OpLoad %float %1895 - %1897 = OpCompositeConstruct %v3float %1890 %1893 %1896 - %1898 = OpFMul %float %1888 %1888 - %1899 = OpCompositeConstruct %v3float %1898 %1888 %float_1 - %1900 = OpMatrixTimesVector %v3float %442 %1897 - %1901 = OpDot %float %1899 %1900 - OpBranch %1872 - %1872 = OpLabel - %1902 = OpPhi %float %1881 %1874 %1901 %1873 - OpBranch %1864 - %1865 = OpLabel - %1903 = OpFSub %float %1852 %1854 - %1904 = OpFMul %float %float_7 %1903 - %1905 = OpFSub %float %1861 %1854 - %1906 = OpFDiv %float %1904 %1905 - %1907 = OpConvertFToS %int %1906 - %1908 = OpConvertSToF %float %1907 - %1909 = OpFSub %float %1906 %1908 - %1910 = OpAccessChain %_ptr_Function_float %512 %1907 - %1911 = OpLoad %float %1910 - %1912 = OpIAdd %int %1907 %int_1 - %1913 = OpAccessChain %_ptr_Function_float %512 %1912 - %1914 = OpLoad %float %1913 - %1915 = OpIAdd %int %1907 %int_2 - %1916 = OpAccessChain %_ptr_Function_float %512 %1915 - %1917 = OpLoad %float %1916 - %1918 = OpCompositeConstruct %v3float %1911 %1914 %1917 - %1919 = OpFMul %float %1909 %1909 - %1920 = OpCompositeConstruct %v3float %1919 %1909 %float_1 - %1921 = OpMatrixTimesVector %v3float %442 %1918 - %1922 = OpDot %float %1920 %1921 - OpBranch %1864 - %1864 = OpLabel - %1923 = OpPhi %float %1902 %1872 %1922 %1865 - OpBranch %1856 - %1857 = OpLabel - %1924 = OpExtInst %float %1 Log %float_0_00499999989 - %1925 = OpFDiv %float %1924 %1065 - OpBranch %1856 - %1856 = OpLabel - %1926 = OpPhi %float %1923 %1864 %1925 %1857 - %1927 = OpExtInst %float %1 Pow %float_10 %1926 - %1928 = OpCompositeInsert %v3float %1927 %391 0 - %1929 = OpCompositeExtract %float %1642 1 - OpStore %510 %482 - OpStore %509 %483 - %1930 = OpFOrdLessThanEqual %bool %1929 %float_0 - %1931 = OpSelect %float %1930 %float_9_99999975en05 %1929 - %1932 = OpExtInst %float %1 Log %1931 - %1933 = OpFDiv %float %1932 %1065 - %1934 = OpFOrdLessThanEqual %bool %1933 %1854 - OpSelectionMerge %1935 None - OpBranchConditional %1934 %1936 %1937 - %1937 = OpLabel - %1938 = OpFOrdGreaterThan %bool %1933 %1854 - %1939 = OpExtInst %float %1 Log %1775 - %1940 = OpFDiv %float %1939 %1065 - %1941 = OpFOrdLessThan %bool %1933 %1940 - %1942 = OpLogicalAnd %bool %1938 %1941 - OpSelectionMerge %1943 None - OpBranchConditional %1942 %1944 %1945 - %1945 = OpLabel - %1946 = OpFOrdGreaterThanEqual %bool %1933 %1940 - %1947 = OpExtInst %float %1 Log %1847 - %1948 = OpFDiv %float %1947 %1065 - %1949 = OpFOrdLessThan %bool %1933 %1948 - %1950 = OpLogicalAnd %bool %1946 %1949 - OpSelectionMerge %1951 None - OpBranchConditional %1950 %1952 %1953 - %1953 = OpLabel - %1954 = OpFMul %float %1933 %float_0_119999997 - %1955 = OpExtInst %float %1 Log %float_2000 - %1956 = OpFDiv %float %1955 %1065 - %1957 = OpFMul %float %float_0_119999997 %1947 - %1958 = OpFDiv %float %1957 %1065 - %1959 = OpFSub %float %1956 %1958 - %1960 = OpFAdd %float %1954 %1959 - OpBranch %1951 - %1952 = OpLabel - %1961 = OpFSub %float %1933 %1940 - %1962 = OpFMul %float %float_7 %1961 - %1963 = OpFSub %float %1948 %1940 - %1964 = OpFDiv %float %1962 %1963 - %1965 = OpConvertFToS %int %1964 - %1966 = OpConvertSToF %float %1965 - %1967 = OpFSub %float %1964 %1966 - %1968 = OpAccessChain %_ptr_Function_float %509 %1965 - %1969 = OpLoad %float %1968 - %1970 = OpIAdd %int %1965 %int_1 - %1971 = OpAccessChain %_ptr_Function_float %509 %1970 - %1972 = OpLoad %float %1971 - %1973 = OpIAdd %int %1965 %int_2 - %1974 = OpAccessChain %_ptr_Function_float %509 %1973 - %1975 = OpLoad %float %1974 - %1976 = OpCompositeConstruct %v3float %1969 %1972 %1975 - %1977 = OpFMul %float %1967 %1967 - %1978 = OpCompositeConstruct %v3float %1977 %1967 %float_1 - %1979 = OpMatrixTimesVector %v3float %442 %1976 - %1980 = OpDot %float %1978 %1979 - OpBranch %1951 - %1951 = OpLabel - %1981 = OpPhi %float %1960 %1953 %1980 %1952 - OpBranch %1943 - %1944 = OpLabel - %1982 = OpFSub %float %1933 %1854 - %1983 = OpFMul %float %float_7 %1982 - %1984 = OpFSub %float %1940 %1854 - %1985 = OpFDiv %float %1983 %1984 - %1986 = OpConvertFToS %int %1985 - %1987 = OpConvertSToF %float %1986 - %1988 = OpFSub %float %1985 %1987 - %1989 = OpAccessChain %_ptr_Function_float %510 %1986 - %1990 = OpLoad %float %1989 - %1991 = OpIAdd %int %1986 %int_1 - %1992 = OpAccessChain %_ptr_Function_float %510 %1991 - %1993 = OpLoad %float %1992 - %1994 = OpIAdd %int %1986 %int_2 - %1995 = OpAccessChain %_ptr_Function_float %510 %1994 - %1996 = OpLoad %float %1995 - %1997 = OpCompositeConstruct %v3float %1990 %1993 %1996 - %1998 = OpFMul %float %1988 %1988 - %1999 = OpCompositeConstruct %v3float %1998 %1988 %float_1 - %2000 = OpMatrixTimesVector %v3float %442 %1997 - %2001 = OpDot %float %1999 %2000 - OpBranch %1943 - %1943 = OpLabel - %2002 = OpPhi %float %1981 %1951 %2001 %1944 - OpBranch %1935 - %1936 = OpLabel - %2003 = OpExtInst %float %1 Log %float_0_00499999989 - %2004 = OpFDiv %float %2003 %1065 - OpBranch %1935 - %1935 = OpLabel - %2005 = OpPhi %float %2002 %1943 %2004 %1936 - %2006 = OpExtInst %float %1 Pow %float_10 %2005 - %2007 = OpCompositeInsert %v3float %2006 %1928 1 - %2008 = OpCompositeExtract %float %1642 2 - OpStore %508 %482 - OpStore %507 %483 - %2009 = OpFOrdLessThanEqual %bool %2008 %float_0 - %2010 = OpSelect %float %2009 %float_9_99999975en05 %2008 - %2011 = OpExtInst %float %1 Log %2010 - %2012 = OpFDiv %float %2011 %1065 - %2013 = OpFOrdLessThanEqual %bool %2012 %1854 - OpSelectionMerge %2014 None - OpBranchConditional %2013 %2015 %2016 - %2016 = OpLabel - %2017 = OpFOrdGreaterThan %bool %2012 %1854 - %2018 = OpExtInst %float %1 Log %1775 - %2019 = OpFDiv %float %2018 %1065 - %2020 = OpFOrdLessThan %bool %2012 %2019 - %2021 = OpLogicalAnd %bool %2017 %2020 - OpSelectionMerge %2022 None - OpBranchConditional %2021 %2023 %2024 - %2024 = OpLabel - %2025 = OpFOrdGreaterThanEqual %bool %2012 %2019 - %2026 = OpExtInst %float %1 Log %1847 - %2027 = OpFDiv %float %2026 %1065 - %2028 = OpFOrdLessThan %bool %2012 %2027 - %2029 = OpLogicalAnd %bool %2025 %2028 - OpSelectionMerge %2030 None - OpBranchConditional %2029 %2031 %2032 - %2032 = OpLabel - %2033 = OpFMul %float %2012 %float_0_119999997 - %2034 = OpExtInst %float %1 Log %float_2000 - %2035 = OpFDiv %float %2034 %1065 - %2036 = OpFMul %float %float_0_119999997 %2026 - %2037 = OpFDiv %float %2036 %1065 - %2038 = OpFSub %float %2035 %2037 - %2039 = OpFAdd %float %2033 %2038 - OpBranch %2030 - %2031 = OpLabel - %2040 = OpFSub %float %2012 %2019 - %2041 = OpFMul %float %float_7 %2040 - %2042 = OpFSub %float %2027 %2019 - %2043 = OpFDiv %float %2041 %2042 - %2044 = OpConvertFToS %int %2043 - %2045 = OpConvertSToF %float %2044 - %2046 = OpFSub %float %2043 %2045 - %2047 = OpAccessChain %_ptr_Function_float %507 %2044 - %2048 = OpLoad %float %2047 - %2049 = OpIAdd %int %2044 %int_1 - %2050 = OpAccessChain %_ptr_Function_float %507 %2049 - %2051 = OpLoad %float %2050 - %2052 = OpIAdd %int %2044 %int_2 - %2053 = OpAccessChain %_ptr_Function_float %507 %2052 - %2054 = OpLoad %float %2053 - %2055 = OpCompositeConstruct %v3float %2048 %2051 %2054 - %2056 = OpFMul %float %2046 %2046 - %2057 = OpCompositeConstruct %v3float %2056 %2046 %float_1 - %2058 = OpMatrixTimesVector %v3float %442 %2055 - %2059 = OpDot %float %2057 %2058 - OpBranch %2030 - %2030 = OpLabel - %2060 = OpPhi %float %2039 %2032 %2059 %2031 - OpBranch %2022 - %2023 = OpLabel - %2061 = OpFSub %float %2012 %1854 - %2062 = OpFMul %float %float_7 %2061 - %2063 = OpFSub %float %2019 %1854 - %2064 = OpFDiv %float %2062 %2063 - %2065 = OpConvertFToS %int %2064 - %2066 = OpConvertSToF %float %2065 - %2067 = OpFSub %float %2064 %2066 - %2068 = OpAccessChain %_ptr_Function_float %508 %2065 - %2069 = OpLoad %float %2068 - %2070 = OpIAdd %int %2065 %int_1 - %2071 = OpAccessChain %_ptr_Function_float %508 %2070 - %2072 = OpLoad %float %2071 - %2073 = OpIAdd %int %2065 %int_2 - %2074 = OpAccessChain %_ptr_Function_float %508 %2073 - %2075 = OpLoad %float %2074 - %2076 = OpCompositeConstruct %v3float %2069 %2072 %2075 - %2077 = OpFMul %float %2067 %2067 - %2078 = OpCompositeConstruct %v3float %2077 %2067 %float_1 - %2079 = OpMatrixTimesVector %v3float %442 %2076 - %2080 = OpDot %float %2078 %2079 - OpBranch %2022 - %2022 = OpLabel - %2081 = OpPhi %float %2060 %2030 %2080 %2023 - OpBranch %2014 - %2015 = OpLabel - %2082 = OpExtInst %float %1 Log %float_0_00499999989 - %2083 = OpFDiv %float %2082 %1065 - OpBranch %2014 - %2014 = OpLabel - %2084 = OpPhi %float %2081 %2022 %2083 %2015 - %2085 = OpExtInst %float %1 Pow %float_10 %2084 - %2086 = OpCompositeInsert %v3float %2085 %2007 2 - %2087 = OpVectorTimesMatrix %v3float %2086 %576 - %2088 = OpFMul %v3float %2087 %496 - %2089 = OpExtInst %v3float %1 Pow %2088 %263 - %2090 = OpFMul %v3float %184 %2089 - %2091 = OpFAdd %v3float %183 %2090 - %2092 = OpFMul %v3float %185 %2089 - %2093 = OpFAdd %v3float %135 %2092 - %2094 = OpFDiv %v3float %135 %2093 - %2095 = OpFMul %v3float %2091 %2094 - %2096 = OpExtInst %v3float %1 Pow %2095 %264 - OpBranch %1236 - %1236 = OpLabel - %2097 = OpPhi %v3float %1260 %1240 %2096 %2014 - OpBranch %1230 - %1231 = OpLabel - %2098 = OpMatrixTimesMatrix %mat3v3float %546 %399 - %2099 = OpFMul %v3float %906 %262 - %2100 = OpVectorTimesMatrix %v3float %2099 %2098 - %2101 = OpCompositeExtract %float %2100 0 - %2102 = OpCompositeExtract %float %2100 1 - %2103 = OpExtInst %float %1 FMin %2101 %2102 - %2104 = OpCompositeExtract %float %2100 2 - %2105 = OpExtInst %float %1 FMin %2103 %2104 - %2106 = OpExtInst %float %1 FMax %2101 %2102 - %2107 = OpExtInst %float %1 FMax %2106 %2104 - %2108 = OpExtInst %float %1 FMax %2107 %float_1_00000001en10 - %2109 = OpExtInst %float %1 FMax %2105 %float_1_00000001en10 - %2110 = OpFSub %float %2108 %2109 - %2111 = OpExtInst %float %1 FMax %2107 %float_0_00999999978 - %2112 = OpFDiv %float %2110 %2111 - %2113 = OpFSub %float %2104 %2102 - %2114 = OpFMul %float %2104 %2113 - %2115 = OpFSub %float %2102 %2101 - %2116 = OpFMul %float %2102 %2115 - %2117 = OpFAdd %float %2114 %2116 - %2118 = OpFSub %float %2101 %2104 - %2119 = OpFMul %float %2101 %2118 - %2120 = OpFAdd %float %2117 %2119 - %2121 = OpExtInst %float %1 Sqrt %2120 - %2122 = OpFAdd %float %2104 %2102 - %2123 = OpFAdd %float %2122 %2101 - %2124 = OpFMul %float %float_1_75 %2121 - %2125 = OpFAdd %float %2123 %2124 - %2126 = OpFMul %float %2125 %float_0_333333343 - %2127 = OpFSub %float %2112 %float_0_400000006 - %2128 = OpFMul %float %2127 %float_5 - %2129 = OpFMul %float %2127 %float_2_5 - %2130 = OpExtInst %float %1 FAbs %2129 - %2131 = OpFSub %float %float_1 %2130 - %2132 = OpExtInst %float %1 FMax %2131 %float_0 - %2133 = OpExtInst %float %1 FSign %2128 - %2134 = OpConvertFToS %int %2133 - %2135 = OpConvertSToF %float %2134 - %2136 = OpFMul %float %2132 %2132 - %2137 = OpFSub %float %float_1 %2136 - %2138 = OpFMul %float %2135 %2137 - %2139 = OpFAdd %float %float_1 %2138 - %2140 = OpFMul %float %2139 %float_0_0250000004 - %2141 = OpFOrdLessThanEqual %bool %2126 %float_0_0533333346 - OpSelectionMerge %2142 None - OpBranchConditional %2141 %2143 %2144 - %2144 = OpLabel - %2145 = OpFOrdGreaterThanEqual %bool %2126 %float_0_159999996 - OpSelectionMerge %2146 None - OpBranchConditional %2145 %2147 %2148 - %2148 = OpLabel - %2149 = OpFDiv %float %float_0_239999995 %2125 - %2150 = OpFSub %float %2149 %float_0_5 - %2151 = OpFMul %float %2140 %2150 - OpBranch %2146 - %2147 = OpLabel - OpBranch %2146 - %2146 = OpLabel - %2152 = OpPhi %float %2151 %2148 %float_0 %2147 - OpBranch %2142 - %2143 = OpLabel - OpBranch %2142 - %2142 = OpLabel - %2153 = OpPhi %float %2152 %2146 %2140 %2143 - %2154 = OpFAdd %float %float_1 %2153 - %2155 = OpCompositeConstruct %v3float %2154 %2154 %2154 - %2156 = OpFMul %v3float %2100 %2155 - %2157 = OpCompositeExtract %float %2156 0 - %2158 = OpCompositeExtract %float %2156 1 - %2159 = OpFOrdEqual %bool %2157 %2158 - %2160 = OpCompositeExtract %float %2156 2 - %2161 = OpFOrdEqual %bool %2158 %2160 - %2162 = OpLogicalAnd %bool %2159 %2161 - OpSelectionMerge %2163 None - OpBranchConditional %2162 %2164 %2165 - %2165 = OpLabel - %2166 = OpExtInst %float %1 Sqrt %float_3 - %2167 = OpFSub %float %2158 %2160 - %2168 = OpFMul %float %2166 %2167 - %2169 = OpFMul %float %float_2 %2157 - %2170 = OpFSub %float %2169 %2158 - %2171 = OpFSub %float %2170 %2160 - %2172 = OpExtInst %float %1 Atan2 %2168 %2171 - %2173 = OpFMul %float %float_57_2957764 %2172 - OpBranch %2163 - %2164 = OpLabel - OpBranch %2163 - %2163 = OpLabel - %2174 = OpPhi %float %2173 %2165 %float_0 %2164 - %2175 = OpFOrdLessThan %bool %2174 %float_0 - OpSelectionMerge %2176 None - OpBranchConditional %2175 %2177 %2176 - %2177 = OpLabel - %2178 = OpFAdd %float %2174 %float_360 - OpBranch %2176 - %2176 = OpLabel - %2179 = OpPhi %float %2174 %2163 %2178 %2177 - %2180 = OpExtInst %float %1 FClamp %2179 %float_0 %float_360 - %2181 = OpFOrdGreaterThan %bool %2180 %float_180 - OpSelectionMerge %2182 None - OpBranchConditional %2181 %2183 %2182 - %2183 = OpLabel - %2184 = OpFSub %float %2180 %float_360 - OpBranch %2182 - %2182 = OpLabel - %2185 = OpPhi %float %2180 %2176 %2184 %2183 - %2186 = OpFOrdGreaterThan %bool %2185 %float_n67_5 - %2187 = OpFOrdLessThan %bool %2185 %float_67_5 - %2188 = OpLogicalAnd %bool %2186 %2187 - OpSelectionMerge %2189 None - OpBranchConditional %2188 %2190 %2189 - %2190 = OpLabel - %2191 = OpFSub %float %2185 %float_n67_5 - %2192 = OpFMul %float %2191 %float_0_0296296291 - %2193 = OpConvertFToS %int %2192 - %2194 = OpConvertSToF %float %2193 - %2195 = OpFSub %float %2192 %2194 - %2196 = OpFMul %float %2195 %2195 - %2197 = OpFMul %float %2196 %2195 - %2198 = OpIEqual %bool %2193 %int_3 - OpSelectionMerge %2199 None - OpBranchConditional %2198 %2200 %2201 - %2201 = OpLabel - %2202 = OpIEqual %bool %2193 %int_2 - OpSelectionMerge %2203 None - OpBranchConditional %2202 %2204 %2205 - %2205 = OpLabel - %2206 = OpIEqual %bool %2193 %int_1 - OpSelectionMerge %2207 None - OpBranchConditional %2206 %2208 %2209 - %2209 = OpLabel - %2210 = OpIEqual %bool %2193 %int_0 - OpSelectionMerge %2211 None - OpBranchConditional %2210 %2212 %2213 - %2213 = OpLabel - OpBranch %2211 - %2212 = OpLabel - %2214 = OpFMul %float %2197 %float_0_166666672 - OpBranch %2211 - %2211 = OpLabel - %2215 = OpPhi %float %float_0 %2213 %2214 %2212 - OpBranch %2207 - %2208 = OpLabel - %2216 = OpFMul %float %2197 %float_n0_5 - %2217 = OpFMul %float %2196 %float_0_5 - %2218 = OpFAdd %float %2216 %2217 - %2219 = OpFMul %float %2195 %float_0_5 - %2220 = OpFAdd %float %2218 %2219 - %2221 = OpFAdd %float %2220 %float_0_166666672 - OpBranch %2207 - %2207 = OpLabel - %2222 = OpPhi %float %2215 %2211 %2221 %2208 - OpBranch %2203 - %2204 = OpLabel - %2223 = OpFMul %float %2197 %float_0_5 - %2224 = OpFMul %float %2196 %float_n1 - %2225 = OpFAdd %float %2223 %2224 - %2226 = OpFAdd %float %2225 %float_0_666666687 - OpBranch %2203 - %2203 = OpLabel - %2227 = OpPhi %float %2222 %2207 %2226 %2204 - OpBranch %2199 - %2200 = OpLabel - %2228 = OpFMul %float %2197 %float_n0_166666672 - %2229 = OpFMul %float %2196 %float_0_5 - %2230 = OpFAdd %float %2228 %2229 - %2231 = OpFMul %float %2195 %float_n0_5 - %2232 = OpFAdd %float %2230 %2231 - %2233 = OpFAdd %float %2232 %float_0_166666672 - OpBranch %2199 - %2199 = OpLabel - %2234 = OpPhi %float %2227 %2203 %2233 %2200 - OpBranch %2189 - %2189 = OpLabel - %2235 = OpPhi %float %float_0 %2182 %2234 %2199 - %2236 = OpFMul %float %2235 %float_1_5 - %2237 = OpFMul %float %2236 %2112 - %2238 = OpFSub %float %float_0_0299999993 %2157 - %2239 = OpFMul %float %2237 %2238 - %2240 = OpFMul %float %2239 %float_0_180000007 - %2241 = OpFAdd %float %2157 %2240 - %2242 = OpCompositeInsert %v3float %2241 %2156 0 - %2243 = OpExtInst %v3float %1 FClamp %2242 %132 %314 - %2244 = OpVectorTimesMatrix %v3float %2243 %410 - %2245 = OpExtInst %v3float %1 FClamp %2244 %132 %314 - %2246 = OpDot %float %2245 %67 - %2247 = OpCompositeConstruct %v3float %2246 %2246 %2246 - %2248 = OpExtInst %v3float %1 FMix %2247 %2245 %228 - %2249 = OpCompositeExtract %float %2248 0 - %2250 = OpExtInst %float %1 Exp2 %float_n15 - %2251 = OpFMul %float %float_0_179999992 %2250 - %2252 = OpExtInst %float %1 Exp2 %float_18 - %2253 = OpFMul %float %float_0_179999992 %2252 - OpStore %520 %475 - OpStore %519 %476 - %2254 = OpFOrdLessThanEqual %bool %2249 %float_0 - %2255 = OpExtInst %float %1 Exp2 %float_n14 - %2256 = OpSelect %float %2254 %2255 %2249 - %2257 = OpExtInst %float %1 Log %2256 - %2258 = OpFDiv %float %2257 %1065 - %2259 = OpExtInst %float %1 Log %2251 - %2260 = OpFDiv %float %2259 %1065 - %2261 = OpFOrdLessThanEqual %bool %2258 %2260 - OpSelectionMerge %2262 None - OpBranchConditional %2261 %2263 %2264 - %2264 = OpLabel - %2265 = OpFOrdGreaterThan %bool %2258 %2260 - %2266 = OpExtInst %float %1 Log %float_0_180000007 - %2267 = OpFDiv %float %2266 %1065 - %2268 = OpFOrdLessThan %bool %2258 %2267 - %2269 = OpLogicalAnd %bool %2265 %2268 - OpSelectionMerge %2270 None - OpBranchConditional %2269 %2271 %2272 - %2272 = OpLabel - %2273 = OpFOrdGreaterThanEqual %bool %2258 %2267 - %2274 = OpExtInst %float %1 Log %2253 - %2275 = OpFDiv %float %2274 %1065 - %2276 = OpFOrdLessThan %bool %2258 %2275 - %2277 = OpLogicalAnd %bool %2273 %2276 - OpSelectionMerge %2278 None - OpBranchConditional %2277 %2279 %2280 - %2280 = OpLabel - %2281 = OpExtInst %float %1 Log %float_10000 - %2282 = OpFDiv %float %2281 %1065 - OpBranch %2278 - %2279 = OpLabel - %2283 = OpFSub %float %2258 %2267 - %2284 = OpFMul %float %float_3 %2283 - %2285 = OpFSub %float %2275 %2267 - %2286 = OpFDiv %float %2284 %2285 - %2287 = OpConvertFToS %int %2286 - %2288 = OpConvertSToF %float %2287 - %2289 = OpFSub %float %2286 %2288 - %2290 = OpAccessChain %_ptr_Function_float %519 %2287 - %2291 = OpLoad %float %2290 - %2292 = OpIAdd %int %2287 %int_1 - %2293 = OpAccessChain %_ptr_Function_float %519 %2292 - %2294 = OpLoad %float %2293 - %2295 = OpIAdd %int %2287 %int_2 - %2296 = OpAccessChain %_ptr_Function_float %519 %2295 - %2297 = OpLoad %float %2296 - %2298 = OpCompositeConstruct %v3float %2291 %2294 %2297 - %2299 = OpFMul %float %2289 %2289 - %2300 = OpCompositeConstruct %v3float %2299 %2289 %float_1 - %2301 = OpMatrixTimesVector %v3float %442 %2298 - %2302 = OpDot %float %2300 %2301 - OpBranch %2278 - %2278 = OpLabel - %2303 = OpPhi %float %2282 %2280 %2302 %2279 - OpBranch %2270 - %2271 = OpLabel - %2304 = OpFSub %float %2258 %2260 - %2305 = OpFMul %float %float_3 %2304 - %2306 = OpFSub %float %2267 %2260 - %2307 = OpFDiv %float %2305 %2306 - %2308 = OpConvertFToS %int %2307 - %2309 = OpConvertSToF %float %2308 - %2310 = OpFSub %float %2307 %2309 - %2311 = OpAccessChain %_ptr_Function_float %520 %2308 - %2312 = OpLoad %float %2311 - %2313 = OpIAdd %int %2308 %int_1 - %2314 = OpAccessChain %_ptr_Function_float %520 %2313 - %2315 = OpLoad %float %2314 - %2316 = OpIAdd %int %2308 %int_2 - %2317 = OpAccessChain %_ptr_Function_float %520 %2316 - %2318 = OpLoad %float %2317 - %2319 = OpCompositeConstruct %v3float %2312 %2315 %2318 - %2320 = OpFMul %float %2310 %2310 - %2321 = OpCompositeConstruct %v3float %2320 %2310 %float_1 - %2322 = OpMatrixTimesVector %v3float %442 %2319 - %2323 = OpDot %float %2321 %2322 - OpBranch %2270 - %2270 = OpLabel - %2324 = OpPhi %float %2303 %2278 %2323 %2271 - OpBranch %2262 - %2263 = OpLabel - %2325 = OpExtInst %float %1 Log %float_9_99999975en05 - %2326 = OpFDiv %float %2325 %1065 - OpBranch %2262 - %2262 = OpLabel - %2327 = OpPhi %float %2324 %2270 %2326 %2263 - %2328 = OpExtInst %float %1 Pow %float_10 %2327 - %2329 = OpCompositeInsert %v3float %2328 %391 0 - %2330 = OpCompositeExtract %float %2248 1 - OpStore %522 %475 - OpStore %521 %476 - %2331 = OpFOrdLessThanEqual %bool %2330 %float_0 - %2332 = OpSelect %float %2331 %2255 %2330 - %2333 = OpExtInst %float %1 Log %2332 - %2334 = OpFDiv %float %2333 %1065 - %2335 = OpFOrdLessThanEqual %bool %2334 %2260 - OpSelectionMerge %2336 None - OpBranchConditional %2335 %2337 %2338 - %2338 = OpLabel - %2339 = OpFOrdGreaterThan %bool %2334 %2260 - %2340 = OpExtInst %float %1 Log %float_0_180000007 - %2341 = OpFDiv %float %2340 %1065 - %2342 = OpFOrdLessThan %bool %2334 %2341 - %2343 = OpLogicalAnd %bool %2339 %2342 - OpSelectionMerge %2344 None - OpBranchConditional %2343 %2345 %2346 - %2346 = OpLabel - %2347 = OpFOrdGreaterThanEqual %bool %2334 %2341 - %2348 = OpExtInst %float %1 Log %2253 - %2349 = OpFDiv %float %2348 %1065 - %2350 = OpFOrdLessThan %bool %2334 %2349 - %2351 = OpLogicalAnd %bool %2347 %2350 - OpSelectionMerge %2352 None - OpBranchConditional %2351 %2353 %2354 - %2354 = OpLabel - %2355 = OpExtInst %float %1 Log %float_10000 - %2356 = OpFDiv %float %2355 %1065 - OpBranch %2352 - %2353 = OpLabel - %2357 = OpFSub %float %2334 %2341 - %2358 = OpFMul %float %float_3 %2357 - %2359 = OpFSub %float %2349 %2341 - %2360 = OpFDiv %float %2358 %2359 - %2361 = OpConvertFToS %int %2360 - %2362 = OpConvertSToF %float %2361 - %2363 = OpFSub %float %2360 %2362 - %2364 = OpAccessChain %_ptr_Function_float %521 %2361 - %2365 = OpLoad %float %2364 - %2366 = OpIAdd %int %2361 %int_1 - %2367 = OpAccessChain %_ptr_Function_float %521 %2366 - %2368 = OpLoad %float %2367 - %2369 = OpIAdd %int %2361 %int_2 - %2370 = OpAccessChain %_ptr_Function_float %521 %2369 - %2371 = OpLoad %float %2370 - %2372 = OpCompositeConstruct %v3float %2365 %2368 %2371 - %2373 = OpFMul %float %2363 %2363 - %2374 = OpCompositeConstruct %v3float %2373 %2363 %float_1 - %2375 = OpMatrixTimesVector %v3float %442 %2372 - %2376 = OpDot %float %2374 %2375 - OpBranch %2352 - %2352 = OpLabel - %2377 = OpPhi %float %2356 %2354 %2376 %2353 - OpBranch %2344 - %2345 = OpLabel - %2378 = OpFSub %float %2334 %2260 - %2379 = OpFMul %float %float_3 %2378 - %2380 = OpFSub %float %2341 %2260 - %2381 = OpFDiv %float %2379 %2380 - %2382 = OpConvertFToS %int %2381 - %2383 = OpConvertSToF %float %2382 - %2384 = OpFSub %float %2381 %2383 - %2385 = OpAccessChain %_ptr_Function_float %522 %2382 - %2386 = OpLoad %float %2385 - %2387 = OpIAdd %int %2382 %int_1 - %2388 = OpAccessChain %_ptr_Function_float %522 %2387 - %2389 = OpLoad %float %2388 - %2390 = OpIAdd %int %2382 %int_2 - %2391 = OpAccessChain %_ptr_Function_float %522 %2390 - %2392 = OpLoad %float %2391 - %2393 = OpCompositeConstruct %v3float %2386 %2389 %2392 - %2394 = OpFMul %float %2384 %2384 - %2395 = OpCompositeConstruct %v3float %2394 %2384 %float_1 - %2396 = OpMatrixTimesVector %v3float %442 %2393 - %2397 = OpDot %float %2395 %2396 - OpBranch %2344 - %2344 = OpLabel - %2398 = OpPhi %float %2377 %2352 %2397 %2345 - OpBranch %2336 - %2337 = OpLabel - %2399 = OpExtInst %float %1 Log %float_9_99999975en05 - %2400 = OpFDiv %float %2399 %1065 - OpBranch %2336 - %2336 = OpLabel - %2401 = OpPhi %float %2398 %2344 %2400 %2337 - %2402 = OpExtInst %float %1 Pow %float_10 %2401 - %2403 = OpCompositeInsert %v3float %2402 %2329 1 - %2404 = OpCompositeExtract %float %2248 2 - OpStore %524 %475 - OpStore %523 %476 - %2405 = OpFOrdLessThanEqual %bool %2404 %float_0 - %2406 = OpSelect %float %2405 %2255 %2404 - %2407 = OpExtInst %float %1 Log %2406 - %2408 = OpFDiv %float %2407 %1065 - %2409 = OpFOrdLessThanEqual %bool %2408 %2260 - OpSelectionMerge %2410 None - OpBranchConditional %2409 %2411 %2412 - %2412 = OpLabel - %2413 = OpFOrdGreaterThan %bool %2408 %2260 - %2414 = OpExtInst %float %1 Log %float_0_180000007 - %2415 = OpFDiv %float %2414 %1065 - %2416 = OpFOrdLessThan %bool %2408 %2415 - %2417 = OpLogicalAnd %bool %2413 %2416 - OpSelectionMerge %2418 None - OpBranchConditional %2417 %2419 %2420 - %2420 = OpLabel - %2421 = OpFOrdGreaterThanEqual %bool %2408 %2415 - %2422 = OpExtInst %float %1 Log %2253 - %2423 = OpFDiv %float %2422 %1065 - %2424 = OpFOrdLessThan %bool %2408 %2423 - %2425 = OpLogicalAnd %bool %2421 %2424 - OpSelectionMerge %2426 None - OpBranchConditional %2425 %2427 %2428 - %2428 = OpLabel - %2429 = OpExtInst %float %1 Log %float_10000 - %2430 = OpFDiv %float %2429 %1065 - OpBranch %2426 - %2427 = OpLabel - %2431 = OpFSub %float %2408 %2415 - %2432 = OpFMul %float %float_3 %2431 - %2433 = OpFSub %float %2423 %2415 - %2434 = OpFDiv %float %2432 %2433 - %2435 = OpConvertFToS %int %2434 - %2436 = OpConvertSToF %float %2435 - %2437 = OpFSub %float %2434 %2436 - %2438 = OpAccessChain %_ptr_Function_float %523 %2435 - %2439 = OpLoad %float %2438 - %2440 = OpIAdd %int %2435 %int_1 - %2441 = OpAccessChain %_ptr_Function_float %523 %2440 - %2442 = OpLoad %float %2441 - %2443 = OpIAdd %int %2435 %int_2 - %2444 = OpAccessChain %_ptr_Function_float %523 %2443 - %2445 = OpLoad %float %2444 - %2446 = OpCompositeConstruct %v3float %2439 %2442 %2445 - %2447 = OpFMul %float %2437 %2437 - %2448 = OpCompositeConstruct %v3float %2447 %2437 %float_1 - %2449 = OpMatrixTimesVector %v3float %442 %2446 - %2450 = OpDot %float %2448 %2449 - OpBranch %2426 - %2426 = OpLabel - %2451 = OpPhi %float %2430 %2428 %2450 %2427 - OpBranch %2418 - %2419 = OpLabel - %2452 = OpFSub %float %2408 %2260 - %2453 = OpFMul %float %float_3 %2452 - %2454 = OpFSub %float %2415 %2260 - %2455 = OpFDiv %float %2453 %2454 - %2456 = OpConvertFToS %int %2455 - %2457 = OpConvertSToF %float %2456 - %2458 = OpFSub %float %2455 %2457 - %2459 = OpAccessChain %_ptr_Function_float %524 %2456 - %2460 = OpLoad %float %2459 - %2461 = OpIAdd %int %2456 %int_1 - %2462 = OpAccessChain %_ptr_Function_float %524 %2461 - %2463 = OpLoad %float %2462 - %2464 = OpIAdd %int %2456 %int_2 - %2465 = OpAccessChain %_ptr_Function_float %524 %2464 - %2466 = OpLoad %float %2465 - %2467 = OpCompositeConstruct %v3float %2460 %2463 %2466 - %2468 = OpFMul %float %2458 %2458 - %2469 = OpCompositeConstruct %v3float %2468 %2458 %float_1 - %2470 = OpMatrixTimesVector %v3float %442 %2467 - %2471 = OpDot %float %2469 %2470 - OpBranch %2418 - %2418 = OpLabel - %2472 = OpPhi %float %2451 %2426 %2471 %2419 - OpBranch %2410 - %2411 = OpLabel - %2473 = OpExtInst %float %1 Log %float_9_99999975en05 - %2474 = OpFDiv %float %2473 %1065 - OpBranch %2410 - %2410 = OpLabel - %2475 = OpPhi %float %2472 %2418 %2474 %2411 - %2476 = OpExtInst %float %1 Pow %float_10 %2475 - %2477 = OpCompositeInsert %v3float %2476 %2403 2 - %2478 = OpVectorTimesMatrix %v3float %2477 %414 - %2479 = OpVectorTimesMatrix %v3float %2478 %410 - %2480 = OpExtInst %float %1 Pow %float_2 %float_n12 - %2481 = OpFMul %float %float_0_179999992 %2480 - OpStore %532 %475 - OpStore %531 %476 - %2482 = OpFOrdLessThanEqual %bool %2481 %float_0 - %2483 = OpSelect %float %2482 %2255 %2481 - %2484 = OpExtInst %float %1 Log %2483 - %2485 = OpFDiv %float %2484 %1065 - %2486 = OpFOrdLessThanEqual %bool %2485 %2260 - OpSelectionMerge %2487 None - OpBranchConditional %2486 %2488 %2489 - %2489 = OpLabel - %2490 = OpFOrdGreaterThan %bool %2485 %2260 - %2491 = OpExtInst %float %1 Log %float_0_180000007 - %2492 = OpFDiv %float %2491 %1065 - %2493 = OpFOrdLessThan %bool %2485 %2492 - %2494 = OpLogicalAnd %bool %2490 %2493 - OpSelectionMerge %2495 None - OpBranchConditional %2494 %2496 %2497 - %2497 = OpLabel - %2498 = OpFOrdGreaterThanEqual %bool %2485 %2492 - %2499 = OpExtInst %float %1 Log %2253 - %2500 = OpFDiv %float %2499 %1065 - %2501 = OpFOrdLessThan %bool %2485 %2500 - %2502 = OpLogicalAnd %bool %2498 %2501 - OpSelectionMerge %2503 None - OpBranchConditional %2502 %2504 %2505 - %2505 = OpLabel - %2506 = OpExtInst %float %1 Log %float_10000 - %2507 = OpFDiv %float %2506 %1065 - OpBranch %2503 - %2504 = OpLabel - %2508 = OpFSub %float %2485 %2492 - %2509 = OpFMul %float %float_3 %2508 - %2510 = OpFSub %float %2500 %2492 - %2511 = OpFDiv %float %2509 %2510 - %2512 = OpConvertFToS %int %2511 - %2513 = OpConvertSToF %float %2512 - %2514 = OpFSub %float %2511 %2513 - %2515 = OpAccessChain %_ptr_Function_float %531 %2512 - %2516 = OpLoad %float %2515 - %2517 = OpIAdd %int %2512 %int_1 - %2518 = OpAccessChain %_ptr_Function_float %531 %2517 - %2519 = OpLoad %float %2518 - %2520 = OpIAdd %int %2512 %int_2 - %2521 = OpAccessChain %_ptr_Function_float %531 %2520 - %2522 = OpLoad %float %2521 - %2523 = OpCompositeConstruct %v3float %2516 %2519 %2522 - %2524 = OpFMul %float %2514 %2514 - %2525 = OpCompositeConstruct %v3float %2524 %2514 %float_1 - %2526 = OpMatrixTimesVector %v3float %442 %2523 - %2527 = OpDot %float %2525 %2526 - OpBranch %2503 - %2503 = OpLabel - %2528 = OpPhi %float %2507 %2505 %2527 %2504 - OpBranch %2495 - %2496 = OpLabel - %2529 = OpFSub %float %2485 %2260 - %2530 = OpFMul %float %float_3 %2529 - %2531 = OpFSub %float %2492 %2260 - %2532 = OpFDiv %float %2530 %2531 - %2533 = OpConvertFToS %int %2532 - %2534 = OpConvertSToF %float %2533 - %2535 = OpFSub %float %2532 %2534 - %2536 = OpAccessChain %_ptr_Function_float %532 %2533 - %2537 = OpLoad %float %2536 - %2538 = OpIAdd %int %2533 %int_1 - %2539 = OpAccessChain %_ptr_Function_float %532 %2538 - %2540 = OpLoad %float %2539 - %2541 = OpIAdd %int %2533 %int_2 - %2542 = OpAccessChain %_ptr_Function_float %532 %2541 - %2543 = OpLoad %float %2542 - %2544 = OpCompositeConstruct %v3float %2537 %2540 %2543 - %2545 = OpFMul %float %2535 %2535 - %2546 = OpCompositeConstruct %v3float %2545 %2535 %float_1 - %2547 = OpMatrixTimesVector %v3float %442 %2544 - %2548 = OpDot %float %2546 %2547 - OpBranch %2495 - %2495 = OpLabel - %2549 = OpPhi %float %2528 %2503 %2548 %2496 - OpBranch %2487 - %2488 = OpLabel - %2550 = OpExtInst %float %1 Log %float_9_99999975en05 - %2551 = OpFDiv %float %2550 %1065 - OpBranch %2487 - %2487 = OpLabel - %2552 = OpPhi %float %2549 %2495 %2551 %2488 - %2553 = OpExtInst %float %1 Pow %float_10 %2552 - OpStore %534 %475 - OpStore %533 %476 - %2554 = OpExtInst %float %1 Log %float_0_180000007 - %2555 = OpFDiv %float %2554 %1065 - %2556 = OpFOrdLessThanEqual %bool %2555 %2260 - OpSelectionMerge %2557 None - OpBranchConditional %2556 %2558 %2559 - %2559 = OpLabel - %2560 = OpFOrdGreaterThan %bool %2555 %2260 - %2561 = OpFOrdLessThan %bool %2555 %2555 - %2562 = OpLogicalAnd %bool %2560 %2561 - OpSelectionMerge %2563 None - OpBranchConditional %2562 %2564 %2565 - %2565 = OpLabel - %2566 = OpFOrdGreaterThanEqual %bool %2555 %2555 - %2567 = OpExtInst %float %1 Log %2253 - %2568 = OpFDiv %float %2567 %1065 - %2569 = OpFOrdLessThan %bool %2555 %2568 - %2570 = OpLogicalAnd %bool %2566 %2569 - OpSelectionMerge %2571 None - OpBranchConditional %2570 %2572 %2573 - %2573 = OpLabel - %2574 = OpExtInst %float %1 Log %float_10000 - %2575 = OpFDiv %float %2574 %1065 - OpBranch %2571 - %2572 = OpLabel - %2576 = OpFSub %float %2555 %2555 - %2577 = OpFMul %float %float_3 %2576 - %2578 = OpFSub %float %2568 %2555 - %2579 = OpFDiv %float %2577 %2578 - %2580 = OpConvertFToS %int %2579 - %2581 = OpConvertSToF %float %2580 - %2582 = OpFSub %float %2579 %2581 - %2583 = OpAccessChain %_ptr_Function_float %533 %2580 - %2584 = OpLoad %float %2583 - %2585 = OpIAdd %int %2580 %int_1 - %2586 = OpAccessChain %_ptr_Function_float %533 %2585 - %2587 = OpLoad %float %2586 - %2588 = OpIAdd %int %2580 %int_2 - %2589 = OpAccessChain %_ptr_Function_float %533 %2588 - %2590 = OpLoad %float %2589 - %2591 = OpCompositeConstruct %v3float %2584 %2587 %2590 - %2592 = OpFMul %float %2582 %2582 - %2593 = OpCompositeConstruct %v3float %2592 %2582 %float_1 - %2594 = OpMatrixTimesVector %v3float %442 %2591 - %2595 = OpDot %float %2593 %2594 - OpBranch %2571 - %2571 = OpLabel - %2596 = OpPhi %float %2575 %2573 %2595 %2572 - OpBranch %2563 - %2564 = OpLabel - %2597 = OpFSub %float %2555 %2260 - %2598 = OpFMul %float %float_3 %2597 - %2599 = OpAccessChain %_ptr_Function_float %534 %int_3 - %2600 = OpLoad %float %2599 - %2601 = OpAccessChain %_ptr_Function_float %534 %int_4 - %2602 = OpLoad %float %2601 - %2603 = OpAccessChain %_ptr_Function_float %534 %int_5 - %2604 = OpLoad %float %2603 - %2605 = OpCompositeConstruct %v3float %2600 %2602 %2604 - %2606 = OpMatrixTimesVector %v3float %442 %2605 - %2607 = OpCompositeExtract %float %2606 2 - OpBranch %2563 - %2563 = OpLabel - %2608 = OpPhi %float %2596 %2571 %2607 %2564 - OpBranch %2557 - %2558 = OpLabel - %2609 = OpExtInst %float %1 Log %float_9_99999975en05 - %2610 = OpFDiv %float %2609 %1065 - OpBranch %2557 - %2557 = OpLabel - %2611 = OpPhi %float %2608 %2563 %2610 %2558 - %2612 = OpExtInst %float %1 Pow %float_10 %2611 - %2613 = OpExtInst %float %1 Pow %float_2 %float_10 - %2614 = OpFMul %float %float_0_179999992 %2613 - OpStore %536 %475 - OpStore %535 %476 - %2615 = OpFOrdLessThanEqual %bool %2614 %float_0 - %2616 = OpSelect %float %2615 %2255 %2614 - %2617 = OpExtInst %float %1 Log %2616 - %2618 = OpFDiv %float %2617 %1065 - %2619 = OpFOrdLessThanEqual %bool %2618 %2260 - OpSelectionMerge %2620 None - OpBranchConditional %2619 %2621 %2622 - %2622 = OpLabel - %2623 = OpFOrdGreaterThan %bool %2618 %2260 - %2624 = OpFOrdLessThan %bool %2618 %2555 - %2625 = OpLogicalAnd %bool %2623 %2624 - OpSelectionMerge %2626 None - OpBranchConditional %2625 %2627 %2628 - %2628 = OpLabel - %2629 = OpFOrdGreaterThanEqual %bool %2618 %2555 - %2630 = OpExtInst %float %1 Log %2253 - %2631 = OpFDiv %float %2630 %1065 - %2632 = OpFOrdLessThan %bool %2618 %2631 - %2633 = OpLogicalAnd %bool %2629 %2632 - OpSelectionMerge %2634 None - OpBranchConditional %2633 %2635 %2636 - %2636 = OpLabel - %2637 = OpExtInst %float %1 Log %float_10000 - %2638 = OpFDiv %float %2637 %1065 - OpBranch %2634 - %2635 = OpLabel - %2639 = OpFSub %float %2618 %2555 - %2640 = OpFMul %float %float_3 %2639 - %2641 = OpFSub %float %2631 %2555 - %2642 = OpFDiv %float %2640 %2641 - %2643 = OpConvertFToS %int %2642 - %2644 = OpConvertSToF %float %2643 - %2645 = OpFSub %float %2642 %2644 - %2646 = OpAccessChain %_ptr_Function_float %535 %2643 - %2647 = OpLoad %float %2646 - %2648 = OpIAdd %int %2643 %int_1 - %2649 = OpAccessChain %_ptr_Function_float %535 %2648 - %2650 = OpLoad %float %2649 - %2651 = OpIAdd %int %2643 %int_2 - %2652 = OpAccessChain %_ptr_Function_float %535 %2651 - %2653 = OpLoad %float %2652 - %2654 = OpCompositeConstruct %v3float %2647 %2650 %2653 - %2655 = OpFMul %float %2645 %2645 - %2656 = OpCompositeConstruct %v3float %2655 %2645 %float_1 - %2657 = OpMatrixTimesVector %v3float %442 %2654 - %2658 = OpDot %float %2656 %2657 - OpBranch %2634 - %2634 = OpLabel - %2659 = OpPhi %float %2638 %2636 %2658 %2635 - OpBranch %2626 - %2627 = OpLabel - %2660 = OpFSub %float %2618 %2260 - %2661 = OpFMul %float %float_3 %2660 - %2662 = OpFSub %float %2555 %2260 - %2663 = OpFDiv %float %2661 %2662 - %2664 = OpConvertFToS %int %2663 - %2665 = OpConvertSToF %float %2664 - %2666 = OpFSub %float %2663 %2665 - %2667 = OpAccessChain %_ptr_Function_float %536 %2664 - %2668 = OpLoad %float %2667 - %2669 = OpIAdd %int %2664 %int_1 - %2670 = OpAccessChain %_ptr_Function_float %536 %2669 - %2671 = OpLoad %float %2670 - %2672 = OpIAdd %int %2664 %int_2 - %2673 = OpAccessChain %_ptr_Function_float %536 %2672 - %2674 = OpLoad %float %2673 - %2675 = OpCompositeConstruct %v3float %2668 %2671 %2674 - %2676 = OpFMul %float %2666 %2666 - %2677 = OpCompositeConstruct %v3float %2676 %2666 %float_1 - %2678 = OpMatrixTimesVector %v3float %442 %2675 - %2679 = OpDot %float %2677 %2678 - OpBranch %2626 - %2626 = OpLabel - %2680 = OpPhi %float %2659 %2634 %2679 %2627 - OpBranch %2620 - %2621 = OpLabel - %2681 = OpExtInst %float %1 Log %float_9_99999975en05 - %2682 = OpFDiv %float %2681 %1065 - OpBranch %2620 - %2620 = OpLabel - %2683 = OpPhi %float %2680 %2626 %2682 %2621 - %2684 = OpExtInst %float %1 Pow %float_10 %2683 - %2685 = OpCompositeExtract %float %2479 0 - OpStore %530 %479 - OpStore %529 %480 - %2686 = OpFOrdLessThanEqual %bool %2685 %float_0 - %2687 = OpSelect %float %2686 %float_9_99999975en05 %2685 - %2688 = OpExtInst %float %1 Log %2687 - %2689 = OpFDiv %float %2688 %1065 - %2690 = OpExtInst %float %1 Log %2553 - %2691 = OpFDiv %float %2690 %1065 - %2692 = OpFOrdLessThanEqual %bool %2689 %2691 - OpSelectionMerge %2693 None - OpBranchConditional %2692 %2694 %2695 - %2695 = OpLabel - %2696 = OpFOrdGreaterThan %bool %2689 %2691 - %2697 = OpExtInst %float %1 Log %2612 - %2698 = OpFDiv %float %2697 %1065 - %2699 = OpFOrdLessThan %bool %2689 %2698 - %2700 = OpLogicalAnd %bool %2696 %2699 - OpSelectionMerge %2701 None - OpBranchConditional %2700 %2702 %2703 - %2703 = OpLabel - %2704 = OpFOrdGreaterThanEqual %bool %2689 %2698 - %2705 = OpExtInst %float %1 Log %2684 - %2706 = OpFDiv %float %2705 %1065 - %2707 = OpFOrdLessThan %bool %2689 %2706 - %2708 = OpLogicalAnd %bool %2704 %2707 - OpSelectionMerge %2709 None - OpBranchConditional %2708 %2710 %2711 - %2711 = OpLabel - %2712 = OpFMul %float %2689 %float_0_0599999987 - %2713 = OpExtInst %float %1 Log %float_1000 - %2714 = OpFDiv %float %2713 %1065 - %2715 = OpFMul %float %float_0_0599999987 %2705 - %2716 = OpFDiv %float %2715 %1065 - %2717 = OpFSub %float %2714 %2716 - %2718 = OpFAdd %float %2712 %2717 - OpBranch %2709 - %2710 = OpLabel - %2719 = OpFSub %float %2689 %2698 - %2720 = OpFMul %float %float_7 %2719 - %2721 = OpFSub %float %2706 %2698 - %2722 = OpFDiv %float %2720 %2721 - %2723 = OpConvertFToS %int %2722 - %2724 = OpConvertSToF %float %2723 - %2725 = OpFSub %float %2722 %2724 - %2726 = OpAccessChain %_ptr_Function_float %529 %2723 - %2727 = OpLoad %float %2726 - %2728 = OpIAdd %int %2723 %int_1 - %2729 = OpAccessChain %_ptr_Function_float %529 %2728 - %2730 = OpLoad %float %2729 - %2731 = OpIAdd %int %2723 %int_2 - %2732 = OpAccessChain %_ptr_Function_float %529 %2731 - %2733 = OpLoad %float %2732 - %2734 = OpCompositeConstruct %v3float %2727 %2730 %2733 - %2735 = OpFMul %float %2725 %2725 - %2736 = OpCompositeConstruct %v3float %2735 %2725 %float_1 - %2737 = OpMatrixTimesVector %v3float %442 %2734 - %2738 = OpDot %float %2736 %2737 - OpBranch %2709 - %2709 = OpLabel - %2739 = OpPhi %float %2718 %2711 %2738 %2710 - OpBranch %2701 - %2702 = OpLabel - %2740 = OpFSub %float %2689 %2691 - %2741 = OpFMul %float %float_7 %2740 - %2742 = OpFSub %float %2698 %2691 - %2743 = OpFDiv %float %2741 %2742 - %2744 = OpConvertFToS %int %2743 - %2745 = OpConvertSToF %float %2744 - %2746 = OpFSub %float %2743 %2745 - %2747 = OpAccessChain %_ptr_Function_float %530 %2744 - %2748 = OpLoad %float %2747 - %2749 = OpIAdd %int %2744 %int_1 - %2750 = OpAccessChain %_ptr_Function_float %530 %2749 - %2751 = OpLoad %float %2750 - %2752 = OpIAdd %int %2744 %int_2 - %2753 = OpAccessChain %_ptr_Function_float %530 %2752 - %2754 = OpLoad %float %2753 - %2755 = OpCompositeConstruct %v3float %2748 %2751 %2754 - %2756 = OpFMul %float %2746 %2746 - %2757 = OpCompositeConstruct %v3float %2756 %2746 %float_1 - %2758 = OpMatrixTimesVector %v3float %442 %2755 - %2759 = OpDot %float %2757 %2758 - OpBranch %2701 - %2701 = OpLabel - %2760 = OpPhi %float %2739 %2709 %2759 %2702 - OpBranch %2693 - %2694 = OpLabel - %2761 = OpFMul %float %2689 %float_3 - %2762 = OpExtInst %float %1 Log %float_9_99999975en05 - %2763 = OpFDiv %float %2762 %1065 - %2764 = OpFMul %float %float_3 %2690 - %2765 = OpFDiv %float %2764 %1065 - %2766 = OpFSub %float %2763 %2765 - %2767 = OpFAdd %float %2761 %2766 - OpBranch %2693 - %2693 = OpLabel - %2768 = OpPhi %float %2760 %2701 %2767 %2694 - %2769 = OpExtInst %float %1 Pow %float_10 %2768 - %2770 = OpCompositeInsert %v3float %2769 %391 0 - %2771 = OpCompositeExtract %float %2479 1 - OpStore %528 %479 - OpStore %527 %480 - %2772 = OpFOrdLessThanEqual %bool %2771 %float_0 - %2773 = OpSelect %float %2772 %float_9_99999975en05 %2771 - %2774 = OpExtInst %float %1 Log %2773 - %2775 = OpFDiv %float %2774 %1065 - %2776 = OpFOrdLessThanEqual %bool %2775 %2691 - OpSelectionMerge %2777 None - OpBranchConditional %2776 %2778 %2779 - %2779 = OpLabel - %2780 = OpFOrdGreaterThan %bool %2775 %2691 - %2781 = OpExtInst %float %1 Log %2612 - %2782 = OpFDiv %float %2781 %1065 - %2783 = OpFOrdLessThan %bool %2775 %2782 - %2784 = OpLogicalAnd %bool %2780 %2783 - OpSelectionMerge %2785 None - OpBranchConditional %2784 %2786 %2787 - %2787 = OpLabel - %2788 = OpFOrdGreaterThanEqual %bool %2775 %2782 - %2789 = OpExtInst %float %1 Log %2684 - %2790 = OpFDiv %float %2789 %1065 - %2791 = OpFOrdLessThan %bool %2775 %2790 - %2792 = OpLogicalAnd %bool %2788 %2791 - OpSelectionMerge %2793 None - OpBranchConditional %2792 %2794 %2795 - %2795 = OpLabel - %2796 = OpFMul %float %2775 %float_0_0599999987 - %2797 = OpExtInst %float %1 Log %float_1000 - %2798 = OpFDiv %float %2797 %1065 - %2799 = OpFMul %float %float_0_0599999987 %2789 - %2800 = OpFDiv %float %2799 %1065 - %2801 = OpFSub %float %2798 %2800 - %2802 = OpFAdd %float %2796 %2801 - OpBranch %2793 - %2794 = OpLabel - %2803 = OpFSub %float %2775 %2782 - %2804 = OpFMul %float %float_7 %2803 - %2805 = OpFSub %float %2790 %2782 - %2806 = OpFDiv %float %2804 %2805 - %2807 = OpConvertFToS %int %2806 - %2808 = OpConvertSToF %float %2807 - %2809 = OpFSub %float %2806 %2808 - %2810 = OpAccessChain %_ptr_Function_float %527 %2807 - %2811 = OpLoad %float %2810 - %2812 = OpIAdd %int %2807 %int_1 - %2813 = OpAccessChain %_ptr_Function_float %527 %2812 - %2814 = OpLoad %float %2813 - %2815 = OpIAdd %int %2807 %int_2 - %2816 = OpAccessChain %_ptr_Function_float %527 %2815 - %2817 = OpLoad %float %2816 - %2818 = OpCompositeConstruct %v3float %2811 %2814 %2817 - %2819 = OpFMul %float %2809 %2809 - %2820 = OpCompositeConstruct %v3float %2819 %2809 %float_1 - %2821 = OpMatrixTimesVector %v3float %442 %2818 - %2822 = OpDot %float %2820 %2821 - OpBranch %2793 - %2793 = OpLabel - %2823 = OpPhi %float %2802 %2795 %2822 %2794 - OpBranch %2785 - %2786 = OpLabel - %2824 = OpFSub %float %2775 %2691 - %2825 = OpFMul %float %float_7 %2824 - %2826 = OpFSub %float %2782 %2691 - %2827 = OpFDiv %float %2825 %2826 - %2828 = OpConvertFToS %int %2827 - %2829 = OpConvertSToF %float %2828 - %2830 = OpFSub %float %2827 %2829 - %2831 = OpAccessChain %_ptr_Function_float %528 %2828 - %2832 = OpLoad %float %2831 - %2833 = OpIAdd %int %2828 %int_1 - %2834 = OpAccessChain %_ptr_Function_float %528 %2833 - %2835 = OpLoad %float %2834 - %2836 = OpIAdd %int %2828 %int_2 - %2837 = OpAccessChain %_ptr_Function_float %528 %2836 - %2838 = OpLoad %float %2837 - %2839 = OpCompositeConstruct %v3float %2832 %2835 %2838 - %2840 = OpFMul %float %2830 %2830 - %2841 = OpCompositeConstruct %v3float %2840 %2830 %float_1 - %2842 = OpMatrixTimesVector %v3float %442 %2839 - %2843 = OpDot %float %2841 %2842 - OpBranch %2785 - %2785 = OpLabel - %2844 = OpPhi %float %2823 %2793 %2843 %2786 - OpBranch %2777 - %2778 = OpLabel - %2845 = OpFMul %float %2775 %float_3 - %2846 = OpExtInst %float %1 Log %float_9_99999975en05 - %2847 = OpFDiv %float %2846 %1065 - %2848 = OpFMul %float %float_3 %2690 - %2849 = OpFDiv %float %2848 %1065 - %2850 = OpFSub %float %2847 %2849 - %2851 = OpFAdd %float %2845 %2850 - OpBranch %2777 - %2777 = OpLabel - %2852 = OpPhi %float %2844 %2785 %2851 %2778 - %2853 = OpExtInst %float %1 Pow %float_10 %2852 - %2854 = OpCompositeInsert %v3float %2853 %2770 1 - %2855 = OpCompositeExtract %float %2479 2 - OpStore %526 %479 - OpStore %525 %480 - %2856 = OpFOrdLessThanEqual %bool %2855 %float_0 - %2857 = OpSelect %float %2856 %float_9_99999975en05 %2855 - %2858 = OpExtInst %float %1 Log %2857 - %2859 = OpFDiv %float %2858 %1065 - %2860 = OpFOrdLessThanEqual %bool %2859 %2691 - OpSelectionMerge %2861 None - OpBranchConditional %2860 %2862 %2863 - %2863 = OpLabel - %2864 = OpFOrdGreaterThan %bool %2859 %2691 - %2865 = OpExtInst %float %1 Log %2612 - %2866 = OpFDiv %float %2865 %1065 - %2867 = OpFOrdLessThan %bool %2859 %2866 - %2868 = OpLogicalAnd %bool %2864 %2867 - OpSelectionMerge %2869 None - OpBranchConditional %2868 %2870 %2871 - %2871 = OpLabel - %2872 = OpFOrdGreaterThanEqual %bool %2859 %2866 - %2873 = OpExtInst %float %1 Log %2684 - %2874 = OpFDiv %float %2873 %1065 - %2875 = OpFOrdLessThan %bool %2859 %2874 - %2876 = OpLogicalAnd %bool %2872 %2875 - OpSelectionMerge %2877 None - OpBranchConditional %2876 %2878 %2879 - %2879 = OpLabel - %2880 = OpFMul %float %2859 %float_0_0599999987 - %2881 = OpExtInst %float %1 Log %float_1000 - %2882 = OpFDiv %float %2881 %1065 - %2883 = OpFMul %float %float_0_0599999987 %2873 - %2884 = OpFDiv %float %2883 %1065 - %2885 = OpFSub %float %2882 %2884 - %2886 = OpFAdd %float %2880 %2885 - OpBranch %2877 - %2878 = OpLabel - %2887 = OpFSub %float %2859 %2866 - %2888 = OpFMul %float %float_7 %2887 - %2889 = OpFSub %float %2874 %2866 - %2890 = OpFDiv %float %2888 %2889 - %2891 = OpConvertFToS %int %2890 - %2892 = OpConvertSToF %float %2891 - %2893 = OpFSub %float %2890 %2892 - %2894 = OpAccessChain %_ptr_Function_float %525 %2891 - %2895 = OpLoad %float %2894 - %2896 = OpIAdd %int %2891 %int_1 - %2897 = OpAccessChain %_ptr_Function_float %525 %2896 - %2898 = OpLoad %float %2897 - %2899 = OpIAdd %int %2891 %int_2 - %2900 = OpAccessChain %_ptr_Function_float %525 %2899 - %2901 = OpLoad %float %2900 - %2902 = OpCompositeConstruct %v3float %2895 %2898 %2901 - %2903 = OpFMul %float %2893 %2893 - %2904 = OpCompositeConstruct %v3float %2903 %2893 %float_1 - %2905 = OpMatrixTimesVector %v3float %442 %2902 - %2906 = OpDot %float %2904 %2905 - OpBranch %2877 - %2877 = OpLabel - %2907 = OpPhi %float %2886 %2879 %2906 %2878 - OpBranch %2869 - %2870 = OpLabel - %2908 = OpFSub %float %2859 %2691 - %2909 = OpFMul %float %float_7 %2908 - %2910 = OpFSub %float %2866 %2691 - %2911 = OpFDiv %float %2909 %2910 - %2912 = OpConvertFToS %int %2911 - %2913 = OpConvertSToF %float %2912 - %2914 = OpFSub %float %2911 %2913 - %2915 = OpAccessChain %_ptr_Function_float %526 %2912 - %2916 = OpLoad %float %2915 - %2917 = OpIAdd %int %2912 %int_1 - %2918 = OpAccessChain %_ptr_Function_float %526 %2917 - %2919 = OpLoad %float %2918 - %2920 = OpIAdd %int %2912 %int_2 - %2921 = OpAccessChain %_ptr_Function_float %526 %2920 - %2922 = OpLoad %float %2921 - %2923 = OpCompositeConstruct %v3float %2916 %2919 %2922 - %2924 = OpFMul %float %2914 %2914 - %2925 = OpCompositeConstruct %v3float %2924 %2914 %float_1 - %2926 = OpMatrixTimesVector %v3float %442 %2923 - %2927 = OpDot %float %2925 %2926 - OpBranch %2869 - %2869 = OpLabel - %2928 = OpPhi %float %2907 %2877 %2927 %2870 - OpBranch %2861 - %2862 = OpLabel - %2929 = OpFMul %float %2859 %float_3 - %2930 = OpExtInst %float %1 Log %float_9_99999975en05 - %2931 = OpFDiv %float %2930 %1065 - %2932 = OpFMul %float %float_3 %2690 - %2933 = OpFDiv %float %2932 %1065 - %2934 = OpFSub %float %2931 %2933 - %2935 = OpFAdd %float %2929 %2934 - OpBranch %2861 - %2861 = OpLabel - %2936 = OpPhi %float %2928 %2869 %2935 %2862 - %2937 = OpExtInst %float %1 Pow %float_10 %2936 - %2938 = OpCompositeInsert %v3float %2937 %2854 2 - %2939 = OpFSub %v3float %2938 %338 - %2940 = OpVectorTimesMatrix %v3float %2939 %576 - %2941 = OpFMul %v3float %2940 %496 - %2942 = OpExtInst %v3float %1 Pow %2941 %263 - %2943 = OpFMul %v3float %184 %2942 - %2944 = OpFAdd %v3float %183 %2943 - %2945 = OpFMul %v3float %185 %2942 - %2946 = OpFAdd %v3float %135 %2945 - %2947 = OpFDiv %v3float %135 %2946 - %2948 = OpFMul %v3float %2944 %2947 - %2949 = OpExtInst %v3float %1 Pow %2948 %264 - OpBranch %1230 - %1230 = OpLabel - %2950 = OpPhi %v3float %2097 %1236 %2949 %2861 - OpBranch %1224 - %1225 = OpLabel - %2951 = OpVectorTimesMatrix %v3float %1218 %547 - %2952 = OpVectorTimesMatrix %v3float %2951 %576 - %2953 = OpExtInst %v3float %1 FMax %250 %2952 - %2954 = OpFMul %v3float %2953 %252 - %2955 = OpExtInst %v3float %1 FMax %2953 %254 - %2956 = OpExtInst %v3float %1 Pow %2955 %256 - %2957 = OpFMul %v3float %2956 %258 - %2958 = OpFSub %v3float %2957 %260 - %2959 = OpExtInst %v3float %1 FMin %2954 %2958 - OpBranch %1224 - %1224 = OpLabel - %2960 = OpPhi %v3float %2950 %1230 %2959 %1225 - OpBranch %1220 - %1221 = OpLabel - %2961 = OpCompositeExtract %float %1218 0 - OpBranch %2962 - %2962 = OpLabel - OpLoopMerge %2963 %2964 None - OpBranch %2965 - %2965 = OpLabel - %2966 = OpFOrdLessThan %bool %2961 %float_0_00313066994 - OpSelectionMerge %2967 None - OpBranchConditional %2966 %2968 %2967 - %2968 = OpLabel - %2969 = OpFMul %float %2961 %float_12_9200001 - OpBranch %2963 - %2967 = OpLabel - %2970 = OpExtInst %float %1 Pow %2961 %float_0_416666657 - %2971 = OpFMul %float %2970 %float_1_05499995 - %2972 = OpFSub %float %2971 %float_0_0549999997 - OpBranch %2963 - %2964 = OpLabel - OpBranch %2962 - %2963 = OpLabel - %2973 = OpPhi %float %2969 %2968 %2972 %2967 - %2974 = OpCompositeExtract %float %1218 1 - OpBranch %2975 - %2975 = OpLabel - OpLoopMerge %2976 %2977 None - OpBranch %2978 - %2978 = OpLabel - %2979 = OpFOrdLessThan %bool %2974 %float_0_00313066994 - OpSelectionMerge %2980 None - OpBranchConditional %2979 %2981 %2980 - %2981 = OpLabel - %2982 = OpFMul %float %2974 %float_12_9200001 - OpBranch %2976 - %2980 = OpLabel - %2983 = OpExtInst %float %1 Pow %2974 %float_0_416666657 - %2984 = OpFMul %float %2983 %float_1_05499995 - %2985 = OpFSub %float %2984 %float_0_0549999997 - OpBranch %2976 - %2977 = OpLabel - OpBranch %2975 - %2976 = OpLabel - %2986 = OpPhi %float %2982 %2981 %2985 %2980 - %2987 = OpCompositeExtract %float %1218 2 - OpBranch %2988 - %2988 = OpLabel - OpLoopMerge %2989 %2990 None - OpBranch %2991 - %2991 = OpLabel - %2992 = OpFOrdLessThan %bool %2987 %float_0_00313066994 - OpSelectionMerge %2993 None - OpBranchConditional %2992 %2994 %2993 - %2994 = OpLabel - %2995 = OpFMul %float %2987 %float_12_9200001 - OpBranch %2989 - %2993 = OpLabel - %2996 = OpExtInst %float %1 Pow %2987 %float_0_416666657 - %2997 = OpFMul %float %2996 %float_1_05499995 - %2998 = OpFSub %float %2997 %float_0_0549999997 - OpBranch %2989 - %2990 = OpLabel - OpBranch %2988 - %2989 = OpLabel - %2999 = OpPhi %float %2995 %2994 %2998 %2993 - %3000 = OpCompositeConstruct %v3float %2973 %2986 %2999 - OpBranch %1220 - %1220 = OpLabel - %3001 = OpPhi %v3float %2960 %1224 %3000 %2989 - %3002 = OpFMul %v3float %3001 %499 - %3003 = OpVectorShuffle %v4float %129 %3002 4 5 6 3 - %3004 = OpCompositeInsert %v4float %float_0 %3003 3 - OpStore %out_var_SV_Target0 %3004 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-ue4/asm/frag/padded-float-array-member-defef.asm.frag b/third_party/spirv-cross/shaders-ue4/asm/frag/padded-float-array-member-defef.asm.frag deleted file mode 100644 index e0359bfdd3..0000000000 --- a/third_party/spirv-cross/shaders-ue4/asm/frag/padded-float-array-member-defef.asm.frag +++ /dev/null @@ -1,3694 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 3107 -; Schema: 0 - OpCapability Shader - OpCapability Geometry - OpExtension "SPV_GOOGLE_hlsl_functionality1" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %MainPS "main" %in_var_TEXCOORD0 %gl_FragCoord %gl_Layer %out_var_SV_Target0 - OpExecutionMode %MainPS OriginUpperLeft - OpSource HLSL 600 - OpName %type__Globals "type.$Globals" - OpMemberName %type__Globals 0 "MappingPolynomial" - OpMemberName %type__Globals 1 "InverseGamma" - OpMemberName %type__Globals 2 "ColorMatrixR_ColorCurveCd1" - OpMemberName %type__Globals 3 "ColorMatrixG_ColorCurveCd3Cm3" - OpMemberName %type__Globals 4 "ColorMatrixB_ColorCurveCm2" - OpMemberName %type__Globals 5 "ColorCurve_Cm0Cd0_Cd2_Ch0Cm1_Ch3" - OpMemberName %type__Globals 6 "ColorCurve_Ch1_Ch2" - OpMemberName %type__Globals 7 "ColorShadow_Luma" - OpMemberName %type__Globals 8 "ColorShadow_Tint1" - OpMemberName %type__Globals 9 "ColorShadow_Tint2" - OpMemberName %type__Globals 10 "FilmSlope" - OpMemberName %type__Globals 11 "FilmToe" - OpMemberName %type__Globals 12 "FilmShoulder" - OpMemberName %type__Globals 13 "FilmBlackClip" - OpMemberName %type__Globals 14 "FilmWhiteClip" - OpMemberName %type__Globals 15 "LUTWeights" - OpMemberName %type__Globals 16 "ColorScale" - OpMemberName %type__Globals 17 "OverlayColor" - OpMemberName %type__Globals 18 "WhiteTemp" - OpMemberName %type__Globals 19 "WhiteTint" - OpMemberName %type__Globals 20 "ColorSaturation" - OpMemberName %type__Globals 21 "ColorContrast" - OpMemberName %type__Globals 22 "ColorGamma" - OpMemberName %type__Globals 23 "ColorGain" - OpMemberName %type__Globals 24 "ColorOffset" - OpMemberName %type__Globals 25 "ColorSaturationShadows" - OpMemberName %type__Globals 26 "ColorContrastShadows" - OpMemberName %type__Globals 27 "ColorGammaShadows" - OpMemberName %type__Globals 28 "ColorGainShadows" - OpMemberName %type__Globals 29 "ColorOffsetShadows" - OpMemberName %type__Globals 30 "ColorSaturationMidtones" - OpMemberName %type__Globals 31 "ColorContrastMidtones" - OpMemberName %type__Globals 32 "ColorGammaMidtones" - OpMemberName %type__Globals 33 "ColorGainMidtones" - OpMemberName %type__Globals 34 "ColorOffsetMidtones" - OpMemberName %type__Globals 35 "ColorSaturationHighlights" - OpMemberName %type__Globals 36 "ColorContrastHighlights" - OpMemberName %type__Globals 37 "ColorGammaHighlights" - OpMemberName %type__Globals 38 "ColorGainHighlights" - OpMemberName %type__Globals 39 "ColorOffsetHighlights" - OpMemberName %type__Globals 40 "ColorCorrectionShadowsMax" - OpMemberName %type__Globals 41 "ColorCorrectionHighlightsMin" - OpMemberName %type__Globals 42 "OutputDevice" - OpMemberName %type__Globals 43 "OutputGamut" - OpMemberName %type__Globals 44 "BlueCorrection" - OpMemberName %type__Globals 45 "ExpandGamut" - OpName %_Globals "$Globals" - OpName %type_2d_image "type.2d.image" - OpName %Texture1 "Texture1" - OpName %type_sampler "type.sampler" - OpName %Texture1Sampler "Texture1Sampler" - OpName %in_var_TEXCOORD0 "in.var.TEXCOORD0" - OpName %out_var_SV_Target0 "out.var.SV_Target0" - OpName %MainPS "MainPS" - OpName %type_sampled_image "type.sampled.image" - OpDecorateString %in_var_TEXCOORD0 UserSemantic "TEXCOORD0" - OpDecorate %in_var_TEXCOORD0 NoPerspective - OpDecorate %gl_FragCoord BuiltIn FragCoord - OpDecorateString %gl_FragCoord UserSemantic "SV_POSITION" - OpDecorate %gl_Layer BuiltIn Layer - OpDecorateString %gl_Layer UserSemantic "SV_RenderTargetArrayIndex" - OpDecorate %gl_Layer Flat - OpDecorateString %out_var_SV_Target0 UserSemantic "SV_Target0" - OpDecorate %in_var_TEXCOORD0 Location 0 - OpDecorate %out_var_SV_Target0 Location 0 - OpDecorate %_Globals DescriptorSet 0 - OpDecorate %_Globals Binding 0 - OpDecorate %Texture1 DescriptorSet 0 - OpDecorate %Texture1 Binding 0 - OpDecorate %Texture1Sampler DescriptorSet 0 - OpDecorate %Texture1Sampler Binding 0 - OpDecorate %_arr_float_uint_5 ArrayStride 16 - OpMemberDecorate %type__Globals 0 Offset 0 - OpMemberDecorate %type__Globals 1 Offset 16 - OpMemberDecorate %type__Globals 2 Offset 32 - OpMemberDecorate %type__Globals 3 Offset 48 - OpMemberDecorate %type__Globals 4 Offset 64 - OpMemberDecorate %type__Globals 5 Offset 80 - OpMemberDecorate %type__Globals 6 Offset 96 - OpMemberDecorate %type__Globals 7 Offset 112 - OpMemberDecorate %type__Globals 8 Offset 128 - OpMemberDecorate %type__Globals 9 Offset 144 - OpMemberDecorate %type__Globals 10 Offset 160 - OpMemberDecorate %type__Globals 11 Offset 164 - OpMemberDecorate %type__Globals 12 Offset 168 - OpMemberDecorate %type__Globals 13 Offset 172 - OpMemberDecorate %type__Globals 14 Offset 176 - OpMemberDecorate %type__Globals 15 Offset 192 - OpMemberDecorate %type__Globals 16 Offset 272 - OpMemberDecorate %type__Globals 17 Offset 288 - OpMemberDecorate %type__Globals 18 Offset 304 - OpMemberDecorate %type__Globals 19 Offset 308 - OpMemberDecorate %type__Globals 20 Offset 320 - OpMemberDecorate %type__Globals 21 Offset 336 - OpMemberDecorate %type__Globals 22 Offset 352 - OpMemberDecorate %type__Globals 23 Offset 368 - OpMemberDecorate %type__Globals 24 Offset 384 - OpMemberDecorate %type__Globals 25 Offset 400 - OpMemberDecorate %type__Globals 26 Offset 416 - OpMemberDecorate %type__Globals 27 Offset 432 - OpMemberDecorate %type__Globals 28 Offset 448 - OpMemberDecorate %type__Globals 29 Offset 464 - OpMemberDecorate %type__Globals 30 Offset 480 - OpMemberDecorate %type__Globals 31 Offset 496 - OpMemberDecorate %type__Globals 32 Offset 512 - OpMemberDecorate %type__Globals 33 Offset 528 - OpMemberDecorate %type__Globals 34 Offset 544 - OpMemberDecorate %type__Globals 35 Offset 560 - OpMemberDecorate %type__Globals 36 Offset 576 - OpMemberDecorate %type__Globals 37 Offset 592 - OpMemberDecorate %type__Globals 38 Offset 608 - OpMemberDecorate %type__Globals 39 Offset 624 - OpMemberDecorate %type__Globals 40 Offset 640 - OpMemberDecorate %type__Globals 41 Offset 644 - OpMemberDecorate %type__Globals 42 Offset 648 - OpMemberDecorate %type__Globals 43 Offset 652 - OpMemberDecorate %type__Globals 44 Offset 656 - OpMemberDecorate %type__Globals 45 Offset 660 - OpDecorate %type__Globals Block - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %v3float = OpTypeVector %float 3 - %v2float = OpTypeVector %float 2 - %int = OpTypeInt 32 1 - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 - %uint_7 = OpConstant %uint 7 - %uint_4 = OpConstant %uint 4 -%float_0_952552378 = OpConstant %float 0.952552378 - %float_0 = OpConstant %float 0 - -; HACK: Needed to hack this constant since MSVC and GNU libc are off by 1 ULP when converting to string (it probably still works fine though in a roundtrip ...) -%float_9_36786018en05 = OpConstant %float 9.25 - -%float_0_343966454 = OpConstant %float 0.343966454 -%float_0_728166103 = OpConstant %float 0.728166103 -%float_n0_0721325427 = OpConstant %float -0.0721325427 -%float_1_00882518 = OpConstant %float 1.00882518 -%float_1_04981101 = OpConstant %float 1.04981101 -%float_n9_74845025en05 = OpConstant %float -9.74845025e-05 -%float_n0_495903015 = OpConstant %float -0.495903015 -%float_1_37331307 = OpConstant %float 1.37331307 -%float_0_0982400328 = OpConstant %float 0.0982400328 -%float_0_991252005 = OpConstant %float 0.991252005 -%float_0_662454188 = OpConstant %float 0.662454188 -%float_0_134004205 = OpConstant %float 0.134004205 -%float_0_156187683 = OpConstant %float 0.156187683 -%float_0_272228718 = OpConstant %float 0.272228718 -%float_0_674081743 = OpConstant %float 0.674081743 -%float_0_0536895171 = OpConstant %float 0.0536895171 -%float_n0_00557464967 = OpConstant %float -0.00557464967 -%float_0_0040607336 = OpConstant %float 0.0040607336 -%float_1_01033914 = OpConstant %float 1.01033914 -%float_1_6410234 = OpConstant %float 1.6410234 -%float_n0_324803293 = OpConstant %float -0.324803293 -%float_n0_236424699 = OpConstant %float -0.236424699 -%float_n0_663662851 = OpConstant %float -0.663662851 -%float_1_61533165 = OpConstant %float 1.61533165 -%float_0_0167563483 = OpConstant %float 0.0167563483 -%float_0_0117218941 = OpConstant %float 0.0117218941 -%float_n0_00828444213 = OpConstant %float -0.00828444213 -%float_0_988394856 = OpConstant %float 0.988394856 -%float_1_45143926 = OpConstant %float 1.45143926 -%float_n0_236510754 = OpConstant %float -0.236510754 -%float_n0_214928567 = OpConstant %float -0.214928567 -%float_n0_0765537769 = OpConstant %float -0.0765537769 -%float_1_17622972 = OpConstant %float 1.17622972 -%float_n0_0996759236 = OpConstant %float -0.0996759236 -%float_0_00831614807 = OpConstant %float 0.00831614807 -%float_n0_00603244966 = OpConstant %float -0.00603244966 -%float_0_997716308 = OpConstant %float 0.997716308 -%float_0_695452213 = OpConstant %float 0.695452213 -%float_0_140678704 = OpConstant %float 0.140678704 -%float_0_163869068 = OpConstant %float 0.163869068 -%float_0_0447945632 = OpConstant %float 0.0447945632 -%float_0_859671116 = OpConstant %float 0.859671116 -%float_0_0955343172 = OpConstant %float 0.0955343172 -%float_n0_00552588282 = OpConstant %float -0.00552588282 -%float_0_00402521016 = OpConstant %float 0.00402521016 -%float_1_00150073 = OpConstant %float 1.00150073 - %73 = OpConstantComposite %v3float %float_0_272228718 %float_0_674081743 %float_0_0536895171 -%float_3_2409699 = OpConstant %float 3.2409699 -%float_n1_5373832 = OpConstant %float -1.5373832 -%float_n0_498610765 = OpConstant %float -0.498610765 -%float_n0_969243646 = OpConstant %float -0.969243646 -%float_1_8759675 = OpConstant %float 1.8759675 -%float_0_0415550582 = OpConstant %float 0.0415550582 -%float_0_0556300804 = OpConstant %float 0.0556300804 -%float_n0_203976959 = OpConstant %float -0.203976959 -%float_1_05697155 = OpConstant %float 1.05697155 -%float_0_412456393 = OpConstant %float 0.412456393 -%float_0_357576102 = OpConstant %float 0.357576102 -%float_0_180437505 = OpConstant %float 0.180437505 -%float_0_212672904 = OpConstant %float 0.212672904 -%float_0_715152204 = OpConstant %float 0.715152204 -%float_0_0721750036 = OpConstant %float 0.0721750036 -%float_0_0193339009 = OpConstant %float 0.0193339009 -%float_0_119191997 = OpConstant %float 0.119191997 -%float_0_950304091 = OpConstant %float 0.950304091 -%float_1_71660841 = OpConstant %float 1.71660841 -%float_n0_355662107 = OpConstant %float -0.355662107 -%float_n0_253360093 = OpConstant %float -0.253360093 -%float_n0_666682899 = OpConstant %float -0.666682899 -%float_1_61647761 = OpConstant %float 1.61647761 -%float_0_0157685 = OpConstant %float 0.0157685 -%float_0_0176422 = OpConstant %float 0.0176422 -%float_n0_0427763015 = OpConstant %float -0.0427763015 -%float_0_942228675 = OpConstant %float 0.942228675 -%float_2_49339628 = OpConstant %float 2.49339628 -%float_n0_93134588 = OpConstant %float -0.93134588 -%float_n0_402694494 = OpConstant %float -0.402694494 -%float_n0_829486787 = OpConstant %float -0.829486787 -%float_1_76265967 = OpConstant %float 1.76265967 -%float_0_0236246008 = OpConstant %float 0.0236246008 -%float_0_0358507 = OpConstant %float 0.0358507 -%float_n0_0761827007 = OpConstant %float -0.0761827007 -%float_0_957014024 = OpConstant %float 0.957014024 -%float_1_01303005 = OpConstant %float 1.01303005 -%float_0_00610530982 = OpConstant %float 0.00610530982 -%float_n0_0149710001 = OpConstant %float -0.0149710001 -%float_0_00769822998 = OpConstant %float 0.00769822998 -%float_0_998165011 = OpConstant %float 0.998165011 -%float_n0_00503202993 = OpConstant %float -0.00503202993 -%float_n0_00284131011 = OpConstant %float -0.00284131011 -%float_0_00468515977 = OpConstant %float 0.00468515977 -%float_0_924507022 = OpConstant %float 0.924507022 -%float_0_987223983 = OpConstant %float 0.987223983 -%float_n0_00611326983 = OpConstant %float -0.00611326983 -%float_0_0159533005 = OpConstant %float 0.0159533005 -%float_n0_00759836007 = OpConstant %float -0.00759836007 -%float_1_00186002 = OpConstant %float 1.00186002 -%float_0_0053300201 = OpConstant %float 0.0053300201 -%float_0_00307257008 = OpConstant %float 0.00307257008 -%float_n0_00509594986 = OpConstant %float -0.00509594986 -%float_1_08168006 = OpConstant %float 1.08168006 - %float_0_5 = OpConstant %float 0.5 - %float_n1 = OpConstant %float -1 - %float_1 = OpConstant %float 1 - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 -%float_0_015625 = OpConstant %float 0.015625 - %134 = OpConstantComposite %v2float %float_0_015625 %float_0_015625 - %135 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 - %int_43 = OpConstant %int 43 - %uint_3 = OpConstant %uint 3 - %138 = OpConstantComposite %v3float %float_0 %float_0 %float_0 - %int_9 = OpConstant %int 9 - %int_3 = OpConstant %int 3 - %141 = OpConstantComposite %v3float %float_1 %float_1 %float_1 - %float_n4 = OpConstant %float -4 - %int_45 = OpConstant %int 45 -%float_0_544169128 = OpConstant %float 0.544169128 -%float_0_239592597 = OpConstant %float 0.239592597 -%float_0_166694298 = OpConstant %float 0.166694298 -%float_0_239465594 = OpConstant %float 0.239465594 -%float_0_702153027 = OpConstant %float 0.702153027 -%float_0_058381401 = OpConstant %float 0.058381401 -%float_n0_00234390004 = OpConstant %float -0.00234390004 -%float_0_0361833982 = OpConstant %float 0.0361833982 -%float_1_05521834 = OpConstant %float 1.05521834 -%float_0_940437257 = OpConstant %float 0.940437257 -%float_n0_0183068793 = OpConstant %float -0.0183068793 -%float_0_077869609 = OpConstant %float 0.077869609 -%float_0_00837869663 = OpConstant %float 0.00837869663 -%float_0_828660011 = OpConstant %float 0.828660011 -%float_0_162961304 = OpConstant %float 0.162961304 -%float_0_00054712611 = OpConstant %float 0.00054712611 -%float_n0_000883374596 = OpConstant %float -0.000883374596 -%float_1_00033629 = OpConstant %float 1.00033629 -%float_1_06317997 = OpConstant %float 1.06317997 -%float_0_0233955998 = OpConstant %float 0.0233955998 -%float_n0_0865726024 = OpConstant %float -0.0865726024 -%float_n0_0106336996 = OpConstant %float -0.0106336996 -%float_1_20632005 = OpConstant %float 1.20632005 -%float_n0_195690006 = OpConstant %float -0.195690006 -%float_n0_000590886979 = OpConstant %float -0.000590886979 -%float_0_00105247996 = OpConstant %float 0.00105247996 -%float_0_999538004 = OpConstant %float 0.999538004 - %int_44 = OpConstant %int 44 -%float_0_9375 = OpConstant %float 0.9375 - %173 = OpConstantComposite %v3float %float_0_9375 %float_0_9375 %float_0_9375 -%float_0_03125 = OpConstant %float 0.03125 - %175 = OpConstantComposite %v3float %float_0_03125 %float_0_03125 %float_0_03125 - %int_15 = OpConstant %int 15 - %float_16 = OpConstant %float 16 - %int_16 = OpConstant %int 16 - %int_17 = OpConstant %int 17 - %uint_0 = OpConstant %uint 0 - %uint_1 = OpConstant %uint 1 - %uint_5 = OpConstant %uint 5 - %uint_6 = OpConstant %uint 6 - %int_2 = OpConstant %int 2 -%mat3v3float = OpTypeMatrix %v3float 3 - %int_42 = OpConstant %int 42 -%float_0_159301758 = OpConstant %float 0.159301758 -%float_78_84375 = OpConstant %float 78.84375 -%float_0_8359375 = OpConstant %float 0.8359375 -%float_18_8515625 = OpConstant %float 18.8515625 -%float_18_6875 = OpConstant %float 18.6875 -%float_10000 = OpConstant %float 10000 -%float_0_0126833133 = OpConstant %float 0.0126833133 - %194 = OpConstantComposite %v3float %float_0_0126833133 %float_0_0126833133 %float_0_0126833133 - %195 = OpConstantComposite %v3float %float_0_8359375 %float_0_8359375 %float_0_8359375 - %196 = OpConstantComposite %v3float %float_18_8515625 %float_18_8515625 %float_18_8515625 - %197 = OpConstantComposite %v3float %float_18_6875 %float_18_6875 %float_18_6875 -%float_6_27739477 = OpConstant %float 6.27739477 - %199 = OpConstantComposite %v3float %float_6_27739477 %float_6_27739477 %float_6_27739477 - %200 = OpConstantComposite %v3float %float_10000 %float_10000 %float_10000 - %float_14 = OpConstant %float 14 -%float_0_180000007 = OpConstant %float 0.180000007 -%float_0_434017599 = OpConstant %float 0.434017599 - %204 = OpConstantComposite %v3float %float_0_434017599 %float_0_434017599 %float_0_434017599 - %205 = OpConstantComposite %v3float %float_14 %float_14 %float_14 - %206 = OpConstantComposite %v3float %float_0_180000007 %float_0_180000007 %float_0_180000007 - %int_18 = OpConstant %int 18 - %float_4000 = OpConstant %float 4000 -%float_0_312700003 = OpConstant %float 0.312700003 -%float_0_328999996 = OpConstant %float 0.328999996 - %int_19 = OpConstant %int 19 - %int_25 = OpConstant %int 25 - %int_20 = OpConstant %int 20 - %int_26 = OpConstant %int 26 - %int_21 = OpConstant %int 21 - %int_27 = OpConstant %int 27 - %int_22 = OpConstant %int 22 - %int_28 = OpConstant %int 28 - %int_23 = OpConstant %int 23 - %int_29 = OpConstant %int 29 - %int_24 = OpConstant %int 24 - %int_40 = OpConstant %int 40 - %int_35 = OpConstant %int 35 - %int_36 = OpConstant %int 36 - %int_37 = OpConstant %int 37 - %int_38 = OpConstant %int 38 - %int_39 = OpConstant %int 39 - %int_41 = OpConstant %int 41 - %int_30 = OpConstant %int 30 - %int_31 = OpConstant %int 31 - %int_32 = OpConstant %int 32 - %int_33 = OpConstant %int 33 - %int_34 = OpConstant %int 34 -%float_0_0500000007 = OpConstant %float 0.0500000007 - %float_1_75 = OpConstant %float 1.75 -%float_0_400000006 = OpConstant %float 0.400000006 -%float_0_819999993 = OpConstant %float 0.819999993 -%float_0_0299999993 = OpConstant %float 0.0299999993 - %float_2 = OpConstant %float 2 -%float_0_959999979 = OpConstant %float 0.959999979 - %241 = OpConstantComposite %v3float %float_0_959999979 %float_0_959999979 %float_0_959999979 - %int_13 = OpConstant %int 13 - %int_11 = OpConstant %int 11 - %int_14 = OpConstant %int 14 - %int_12 = OpConstant %int 12 -%float_0_800000012 = OpConstant %float 0.800000012 - %int_10 = OpConstant %int 10 - %float_10 = OpConstant %float 10 - %float_n2 = OpConstant %float -2 - %float_3 = OpConstant %float 3 - %251 = OpConstantComposite %v3float %float_3 %float_3 %float_3 - %252 = OpConstantComposite %v3float %float_2 %float_2 %float_2 -%float_0_930000007 = OpConstant %float 0.930000007 - %254 = OpConstantComposite %v3float %float_0_930000007 %float_0_930000007 %float_0_930000007 - %int_4 = OpConstant %int 4 - %int_8 = OpConstant %int 8 - %int_7 = OpConstant %int 7 - %int_5 = OpConstant %int 5 - %int_6 = OpConstant %int 6 -%float_0_00200000009 = OpConstant %float 0.00200000009 - %261 = OpConstantComposite %v3float %float_0_00200000009 %float_0_00200000009 %float_0_00200000009 -%float_6_10351999en05 = OpConstant %float 6.10351999e-05 - %263 = OpConstantComposite %v3float %float_6_10351999en05 %float_6_10351999en05 %float_6_10351999en05 -%float_0_0404499993 = OpConstant %float 0.0404499993 - %265 = OpConstantComposite %v3float %float_0_0404499993 %float_0_0404499993 %float_0_0404499993 -%float_0_947867274 = OpConstant %float 0.947867274 - %267 = OpConstantComposite %v3float %float_0_947867274 %float_0_947867274 %float_0_947867274 -%float_0_0521326996 = OpConstant %float 0.0521326996 - %269 = OpConstantComposite %v3float %float_0_0521326996 %float_0_0521326996 %float_0_0521326996 -%float_2_4000001 = OpConstant %float 2.4000001 - %271 = OpConstantComposite %v3float %float_2_4000001 %float_2_4000001 %float_2_4000001 -%float_0_0773993805 = OpConstant %float 0.0773993805 - %273 = OpConstantComposite %v3float %float_0_0773993805 %float_0_0773993805 %float_0_0773993805 - %float_4_5 = OpConstant %float 4.5 - %275 = OpConstantComposite %v3float %float_4_5 %float_4_5 %float_4_5 -%float_0_0179999992 = OpConstant %float 0.0179999992 - %277 = OpConstantComposite %v3float %float_0_0179999992 %float_0_0179999992 %float_0_0179999992 -%float_0_449999988 = OpConstant %float 0.449999988 - %279 = OpConstantComposite %v3float %float_0_449999988 %float_0_449999988 %float_0_449999988 -%float_1_09899998 = OpConstant %float 1.09899998 - %281 = OpConstantComposite %v3float %float_1_09899998 %float_1_09899998 %float_1_09899998 -%float_0_0989999995 = OpConstant %float 0.0989999995 - %283 = OpConstantComposite %v3float %float_0_0989999995 %float_0_0989999995 %float_0_0989999995 - %float_1_5 = OpConstant %float 1.5 - %285 = OpConstantComposite %v3float %float_1_5 %float_1_5 %float_1_5 - %286 = OpConstantComposite %v3float %float_0_159301758 %float_0_159301758 %float_0_159301758 - %287 = OpConstantComposite %v3float %float_78_84375 %float_78_84375 %float_78_84375 -%float_1_00055635 = OpConstant %float 1.00055635 - %float_7000 = OpConstant %float 7000 -%float_0_244063005 = OpConstant %float 0.244063005 -%float_99_1100006 = OpConstant %float 99.1100006 -%float_2967800 = OpConstant %float 2967800 -%float_0_237039998 = OpConstant %float 0.237039998 -%float_247_479996 = OpConstant %float 247.479996 -%float_1901800 = OpConstant %float 1901800 - %float_n3 = OpConstant %float -3 -%float_2_86999989 = OpConstant %float 2.86999989 -%float_0_275000006 = OpConstant %float 0.275000006 -%float_0_860117733 = OpConstant %float 0.860117733 -%float_0_000154118257 = OpConstant %float 0.000154118257 -%float_1_28641219en07 = OpConstant %float 1.28641219e-07 -%float_0_00084242021 = OpConstant %float 0.00084242021 -%float_7_08145137en07 = OpConstant %float 7.08145137e-07 -%float_0_317398727 = OpConstant %float 0.317398727 - -; HACK: Needed to hack this constant since MSVC and GNU libc are off by 1 ULP when converting to string (it probably still works fine though in a roundtrip ...) -%float_4_22806261en05 = OpConstant %float 4.25 - -%float_4_20481676en08 = OpConstant %float 4.20481676e-08 -%float_2_8974182en05 = OpConstant %float 2.8974182e-05 -%float_1_61456057en07 = OpConstant %float 1.61456057e-07 - %float_8 = OpConstant %float 8 - %float_4 = OpConstant %float 4 -%float_0_895099998 = OpConstant %float 0.895099998 -%float_0_266400009 = OpConstant %float 0.266400009 -%float_n0_161400005 = OpConstant %float -0.161400005 -%float_n0_750199974 = OpConstant %float -0.750199974 -%float_1_71350002 = OpConstant %float 1.71350002 -%float_0_0366999991 = OpConstant %float 0.0366999991 -%float_0_0388999991 = OpConstant %float 0.0388999991 -%float_n0_0684999973 = OpConstant %float -0.0684999973 -%float_1_02960002 = OpConstant %float 1.02960002 -%float_0_986992896 = OpConstant %float 0.986992896 -%float_n0_1470543 = OpConstant %float -0.1470543 -%float_0_159962699 = OpConstant %float 0.159962699 -%float_0_432305306 = OpConstant %float 0.432305306 -%float_0_518360317 = OpConstant %float 0.518360317 -%float_0_0492912009 = OpConstant %float 0.0492912009 -%float_n0_0085287001 = OpConstant %float -0.0085287001 -%float_0_040042799 = OpConstant %float 0.040042799 -%float_0_968486726 = OpConstant %float 0.968486726 -%float_5_55555534 = OpConstant %float 5.55555534 - %330 = OpConstantComposite %v3float %float_5_55555534 %float_5_55555534 %float_5_55555534 -%float_1_00000001en10 = OpConstant %float 1.00000001e-10 -%float_0_00999999978 = OpConstant %float 0.00999999978 -%float_0_666666687 = OpConstant %float 0.666666687 - %float_180 = OpConstant %float 180 - %float_360 = OpConstant %float 360 -%float_65535 = OpConstant %float 65535 - %337 = OpConstantComposite %v3float %float_65535 %float_65535 %float_65535 -%float_n4_97062206 = OpConstant %float -4.97062206 -%float_n3_02937818 = OpConstant %float -3.02937818 -%float_n2_12619996 = OpConstant %float -2.12619996 -%float_n1_51049995 = OpConstant %float -1.51049995 -%float_n1_05780005 = OpConstant %float -1.05780005 -%float_n0_466800004 = OpConstant %float -0.466800004 -%float_0_119379997 = OpConstant %float 0.119379997 -%float_0_708813429 = OpConstant %float 0.708813429 -%float_1_29118657 = OpConstant %float 1.29118657 -%float_0_808913231 = OpConstant %float 0.808913231 -%float_1_19108677 = OpConstant %float 1.19108677 -%float_1_56830001 = OpConstant %float 1.56830001 -%float_1_9483 = OpConstant %float 1.9483 -%float_2_30830002 = OpConstant %float 2.30830002 -%float_2_63840008 = OpConstant %float 2.63840008 -%float_2_85949993 = OpConstant %float 2.85949993 -%float_2_98726082 = OpConstant %float 2.98726082 -%float_3_01273918 = OpConstant %float 3.01273918 -%float_0_179999992 = OpConstant %float 0.179999992 -%float_9_99999975en05 = OpConstant %float 9.99999975e-05 - %float_1000 = OpConstant %float 1000 -%float_0_0599999987 = OpConstant %float 0.0599999987 -%float_3_50738446en05 = OpConstant %float 3.50738446e-05 - %361 = OpConstantComposite %v3float %float_3_50738446en05 %float_3_50738446en05 %float_3_50738446en05 -%float_n2_30102992 = OpConstant %float -2.30102992 -%float_n1_93120003 = OpConstant %float -1.93120003 -%float_n1_52049994 = OpConstant %float -1.52049994 -%float_0_801995218 = OpConstant %float 0.801995218 -%float_1_19800484 = OpConstant %float 1.19800484 -%float_1_59430003 = OpConstant %float 1.59430003 -%float_1_99730003 = OpConstant %float 1.99730003 -%float_2_37829995 = OpConstant %float 2.37829995 -%float_2_76839995 = OpConstant %float 2.76839995 -%float_3_05150008 = OpConstant %float 3.05150008 -%float_3_27462935 = OpConstant %float 3.27462935 -%float_3_32743073 = OpConstant %float 3.32743073 -%float_0_00499999989 = OpConstant %float 0.00499999989 - %float_11 = OpConstant %float 11 - %float_2000 = OpConstant %float 2000 -%float_0_119999997 = OpConstant %float 0.119999997 -%float_0_00313066994 = OpConstant %float 0.00313066994 -%float_12_9200001 = OpConstant %float 12.9200001 -%float_0_416666657 = OpConstant %float 0.416666657 -%float_1_05499995 = OpConstant %float 1.05499995 -%float_0_0549999997 = OpConstant %float 0.0549999997 -%float_n0_166666672 = OpConstant %float -0.166666672 - %float_n0_5 = OpConstant %float -0.5 -%float_0_166666672 = OpConstant %float 0.166666672 -%float_n3_15737653 = OpConstant %float -3.15737653 -%float_n0_485249996 = OpConstant %float -0.485249996 -%float_1_84773242 = OpConstant %float 1.84773242 -%float_n0_718548238 = OpConstant %float -0.718548238 -%float_2_08103061 = OpConstant %float 2.08103061 -%float_3_6681242 = OpConstant %float 3.6681242 - %float_18 = OpConstant %float 18 - %float_7 = OpConstant %float 7 -%_arr_float_uint_5 = OpTypeArray %float %uint_5 -%type__Globals = OpTypeStruct %v4float %v3float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %float %float %float %float %float %_arr_float_uint_5 %v3float %v4float %float %float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %float %float %uint %uint %float %float -%_ptr_Uniform_type__Globals = OpTypePointer Uniform %type__Globals -%type_2d_image = OpTypeImage %float 2D 2 0 0 1 Unknown -%_ptr_UniformConstant_type_2d_image = OpTypePointer UniformConstant %type_2d_image -%type_sampler = OpTypeSampler -%_ptr_UniformConstant_type_sampler = OpTypePointer UniformConstant %type_sampler -%_ptr_Input_v2float = OpTypePointer Input %v2float -%_ptr_Input_v4float = OpTypePointer Input %v4float -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_Output_v4float = OpTypePointer Output %v4float - %void = OpTypeVoid - %402 = OpTypeFunction %void -%_ptr_Function_float = OpTypePointer Function %float -%_ptr_Uniform_uint = OpTypePointer Uniform %uint - %bool = OpTypeBool -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float -%_ptr_Uniform_float = OpTypePointer Uniform %float -%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float - %v2bool = OpTypeVector %bool 2 - %v3bool = OpTypeVector %bool 3 -%type_sampled_image = OpTypeSampledImage %type_2d_image - %uint_10 = OpConstant %uint 10 -%_arr_float_uint_10 = OpTypeArray %float %uint_10 -%_arr_float_uint_6 = OpTypeArray %float %uint_6 - %_Globals = OpVariable %_ptr_Uniform_type__Globals Uniform - %Texture1 = OpVariable %_ptr_UniformConstant_type_2d_image UniformConstant -%Texture1Sampler = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant -%in_var_TEXCOORD0 = OpVariable %_ptr_Input_v2float Input -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input - %gl_Layer = OpVariable %_ptr_Input_uint Input -%out_var_SV_Target0 = OpVariable %_ptr_Output_v4float Output -%_ptr_Function__arr_float_uint_6 = OpTypePointer Function %_arr_float_uint_6 -%_ptr_Function__arr_float_uint_10 = OpTypePointer Function %_arr_float_uint_10 - %416 = OpConstantComposite %v3float %float_0_952552378 %float_0 %float_9_36786018en05 - %417 = OpConstantComposite %v3float %float_0_343966454 %float_0_728166103 %float_n0_0721325427 - %418 = OpConstantComposite %v3float %float_0 %float_0 %float_1_00882518 - %419 = OpConstantComposite %mat3v3float %416 %417 %418 - %420 = OpConstantComposite %v3float %float_1_04981101 %float_0 %float_n9_74845025en05 - %421 = OpConstantComposite %v3float %float_n0_495903015 %float_1_37331307 %float_0_0982400328 - %422 = OpConstantComposite %v3float %float_0 %float_0 %float_0_991252005 - %423 = OpConstantComposite %mat3v3float %420 %421 %422 - %424 = OpConstantComposite %v3float %float_0_662454188 %float_0_134004205 %float_0_156187683 - %425 = OpConstantComposite %v3float %float_n0_00557464967 %float_0_0040607336 %float_1_01033914 - %426 = OpConstantComposite %mat3v3float %424 %73 %425 - %427 = OpConstantComposite %v3float %float_1_6410234 %float_n0_324803293 %float_n0_236424699 - %428 = OpConstantComposite %v3float %float_n0_663662851 %float_1_61533165 %float_0_0167563483 - %429 = OpConstantComposite %v3float %float_0_0117218941 %float_n0_00828444213 %float_0_988394856 - %430 = OpConstantComposite %mat3v3float %427 %428 %429 - %431 = OpConstantComposite %v3float %float_1_45143926 %float_n0_236510754 %float_n0_214928567 - %432 = OpConstantComposite %v3float %float_n0_0765537769 %float_1_17622972 %float_n0_0996759236 - %433 = OpConstantComposite %v3float %float_0_00831614807 %float_n0_00603244966 %float_0_997716308 - %434 = OpConstantComposite %mat3v3float %431 %432 %433 - %435 = OpConstantComposite %v3float %float_0_695452213 %float_0_140678704 %float_0_163869068 - %436 = OpConstantComposite %v3float %float_0_0447945632 %float_0_859671116 %float_0_0955343172 - %437 = OpConstantComposite %v3float %float_n0_00552588282 %float_0_00402521016 %float_1_00150073 - %438 = OpConstantComposite %mat3v3float %435 %436 %437 - %439 = OpConstantComposite %v3float %float_3_2409699 %float_n1_5373832 %float_n0_498610765 - %440 = OpConstantComposite %v3float %float_n0_969243646 %float_1_8759675 %float_0_0415550582 - %441 = OpConstantComposite %v3float %float_0_0556300804 %float_n0_203976959 %float_1_05697155 - %442 = OpConstantComposite %mat3v3float %439 %440 %441 - %443 = OpConstantComposite %v3float %float_0_412456393 %float_0_357576102 %float_0_180437505 - %444 = OpConstantComposite %v3float %float_0_212672904 %float_0_715152204 %float_0_0721750036 - %445 = OpConstantComposite %v3float %float_0_0193339009 %float_0_119191997 %float_0_950304091 - %446 = OpConstantComposite %mat3v3float %443 %444 %445 - %447 = OpConstantComposite %v3float %float_1_71660841 %float_n0_355662107 %float_n0_253360093 - %448 = OpConstantComposite %v3float %float_n0_666682899 %float_1_61647761 %float_0_0157685 - %449 = OpConstantComposite %v3float %float_0_0176422 %float_n0_0427763015 %float_0_942228675 - %450 = OpConstantComposite %mat3v3float %447 %448 %449 - %451 = OpConstantComposite %v3float %float_2_49339628 %float_n0_93134588 %float_n0_402694494 - %452 = OpConstantComposite %v3float %float_n0_829486787 %float_1_76265967 %float_0_0236246008 - %453 = OpConstantComposite %v3float %float_0_0358507 %float_n0_0761827007 %float_0_957014024 - %454 = OpConstantComposite %mat3v3float %451 %452 %453 - %455 = OpConstantComposite %v3float %float_1_01303005 %float_0_00610530982 %float_n0_0149710001 - %456 = OpConstantComposite %v3float %float_0_00769822998 %float_0_998165011 %float_n0_00503202993 - %457 = OpConstantComposite %v3float %float_n0_00284131011 %float_0_00468515977 %float_0_924507022 - %458 = OpConstantComposite %mat3v3float %455 %456 %457 - %459 = OpConstantComposite %v3float %float_0_987223983 %float_n0_00611326983 %float_0_0159533005 - %460 = OpConstantComposite %v3float %float_n0_00759836007 %float_1_00186002 %float_0_0053300201 - %461 = OpConstantComposite %v3float %float_0_00307257008 %float_n0_00509594986 %float_1_08168006 - %462 = OpConstantComposite %mat3v3float %459 %460 %461 - %463 = OpConstantComposite %v3float %float_0_5 %float_n1 %float_0_5 - %464 = OpConstantComposite %v3float %float_n1 %float_1 %float_0_5 - %465 = OpConstantComposite %v3float %float_0_5 %float_0 %float_0 - %466 = OpConstantComposite %mat3v3float %463 %464 %465 - %467 = OpConstantComposite %v3float %float_1 %float_0 %float_0 - %468 = OpConstantComposite %v3float %float_0 %float_1 %float_0 - %469 = OpConstantComposite %v3float %float_0 %float_0 %float_1 - %470 = OpConstantComposite %mat3v3float %467 %468 %469 -%float_n6_07624626 = OpConstant %float -6.07624626 - %472 = OpConstantComposite %v3float %float_n6_07624626 %float_n6_07624626 %float_n6_07624626 - %473 = OpConstantComposite %v3float %float_0_895099998 %float_0_266400009 %float_n0_161400005 - %474 = OpConstantComposite %v3float %float_n0_750199974 %float_1_71350002 %float_0_0366999991 - %475 = OpConstantComposite %v3float %float_0_0388999991 %float_n0_0684999973 %float_1_02960002 - %476 = OpConstantComposite %mat3v3float %473 %474 %475 - %477 = OpConstantComposite %v3float %float_0_986992896 %float_n0_1470543 %float_0_159962699 - %478 = OpConstantComposite %v3float %float_0_432305306 %float_0_518360317 %float_0_0492912009 - %479 = OpConstantComposite %v3float %float_n0_0085287001 %float_0_040042799 %float_0_968486726 - %480 = OpConstantComposite %mat3v3float %477 %478 %479 - %481 = OpConstantComposite %v3float %float_0_544169128 %float_0_239592597 %float_0_166694298 - %482 = OpConstantComposite %v3float %float_0_239465594 %float_0_702153027 %float_0_058381401 - %483 = OpConstantComposite %v3float %float_n0_00234390004 %float_0_0361833982 %float_1_05521834 - %484 = OpConstantComposite %mat3v3float %481 %482 %483 - %485 = OpConstantComposite %v3float %float_0_940437257 %float_n0_0183068793 %float_0_077869609 - %486 = OpConstantComposite %v3float %float_0_00837869663 %float_0_828660011 %float_0_162961304 - %487 = OpConstantComposite %v3float %float_0_00054712611 %float_n0_000883374596 %float_1_00033629 - %488 = OpConstantComposite %mat3v3float %485 %486 %487 - %489 = OpConstantComposite %v3float %float_1_06317997 %float_0_0233955998 %float_n0_0865726024 - %490 = OpConstantComposite %v3float %float_n0_0106336996 %float_1_20632005 %float_n0_195690006 - %491 = OpConstantComposite %v3float %float_n0_000590886979 %float_0_00105247996 %float_0_999538004 - %492 = OpConstantComposite %mat3v3float %489 %490 %491 -%float_0_0533333346 = OpConstant %float 0.0533333346 -%float_0_159999996 = OpConstant %float 0.159999996 -%float_57_2957764 = OpConstant %float 57.2957764 -%float_0_0625 = OpConstant %float 0.0625 -%float_n67_5 = OpConstant %float -67.5 - %float_67_5 = OpConstant %float 67.5 - %499 = OpConstantComposite %_arr_float_uint_6 %float_n4 %float_n4 %float_n3_15737653 %float_n0_485249996 %float_1_84773242 %float_1_84773242 - %500 = OpConstantComposite %_arr_float_uint_6 %float_n0_718548238 %float_2_08103061 %float_3_6681242 %float_4 %float_4 %float_4 - %float_n15 = OpConstant %float -15 - %float_n14 = OpConstant %float -14 - %503 = OpConstantComposite %_arr_float_uint_10 %float_n4_97062206 %float_n3_02937818 %float_n2_12619996 %float_n1_51049995 %float_n1_05780005 %float_n0_466800004 %float_0_119379997 %float_0_708813429 %float_1_29118657 %float_1_29118657 - %504 = OpConstantComposite %_arr_float_uint_10 %float_0_808913231 %float_1_19108677 %float_1_56830001 %float_1_9483 %float_2_30830002 %float_2_63840008 %float_2_85949993 %float_2_98726082 %float_3_01273918 %float_3_01273918 - %float_n12 = OpConstant %float -12 - %506 = OpConstantComposite %_arr_float_uint_10 %float_n2_30102992 %float_n2_30102992 %float_n1_93120003 %float_n1_52049994 %float_n1_05780005 %float_n0_466800004 %float_0_119379997 %float_0_708813429 %float_1_29118657 %float_1_29118657 - %507 = OpConstantComposite %_arr_float_uint_10 %float_0_801995218 %float_1_19800484 %float_1_59430003 %float_1_99730003 %float_2_37829995 %float_2_76839995 %float_3_05150008 %float_3_27462935 %float_3_32743073 %float_3_32743073 -%float_0_0322580636 = OpConstant %float 0.0322580636 -%float_1_03225803 = OpConstant %float 1.03225803 - %510 = OpConstantComposite %v2float %float_1_03225803 %float_1_03225803 -%float_4_60443853e_09 = OpConstant %float 4.60443853e+09 -%float_2_00528435e_09 = OpConstant %float 2.00528435e+09 -%float_0_333333343 = OpConstant %float 0.333333343 - %float_5 = OpConstant %float 5 - %float_2_5 = OpConstant %float 2.5 -%float_0_0250000004 = OpConstant %float 0.0250000004 -%float_0_239999995 = OpConstant %float 0.239999995 -%float_0_0148148146 = OpConstant %float 0.0148148146 - %519 = OpConstantComposite %v3float %float_9_99999975en05 %float_9_99999975en05 %float_9_99999975en05 -%float_0_0296296291 = OpConstant %float 0.0296296291 -%float_0_952381015 = OpConstant %float 0.952381015 - %522 = OpConstantComposite %v3float %float_0_952381015 %float_0_952381015 %float_0_952381015 - %523 = OpUndef %v3float -%float_0_358299971 = OpConstant %float 0.358299971 - %525 = OpUndef %v3float - %MainPS = OpFunction %void None %402 - %526 = OpLabel - %527 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %528 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %529 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %530 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %531 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %532 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %533 = OpVariable %_ptr_Function__arr_float_uint_10 Function - %534 = OpVariable %_ptr_Function__arr_float_uint_10 Function - %535 = OpVariable %_ptr_Function__arr_float_uint_10 Function - %536 = OpVariable %_ptr_Function__arr_float_uint_10 Function - %537 = OpVariable %_ptr_Function__arr_float_uint_10 Function - %538 = OpVariable %_ptr_Function__arr_float_uint_10 Function - %539 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %540 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %541 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %542 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %543 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %544 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %545 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %546 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %547 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %548 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %549 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %550 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %551 = OpVariable %_ptr_Function__arr_float_uint_10 Function - %552 = OpVariable %_ptr_Function__arr_float_uint_10 Function - %553 = OpVariable %_ptr_Function__arr_float_uint_10 Function - %554 = OpVariable %_ptr_Function__arr_float_uint_10 Function - %555 = OpVariable %_ptr_Function__arr_float_uint_10 Function - %556 = OpVariable %_ptr_Function__arr_float_uint_10 Function - %557 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %558 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %559 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %560 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %561 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %562 = OpVariable %_ptr_Function__arr_float_uint_6 Function - %563 = OpLoad %v2float %in_var_TEXCOORD0 - %564 = OpLoad %uint %gl_Layer - %565 = OpFSub %v2float %563 %134 - %566 = OpFMul %v2float %565 %510 - %567 = OpCompositeExtract %float %566 0 - %568 = OpCompositeExtract %float %566 1 - %569 = OpConvertUToF %float %564 - %570 = OpFMul %float %569 %float_0_0322580636 - %571 = OpCompositeConstruct %v4float %567 %568 %570 %float_0 - %572 = OpMatrixTimesMatrix %mat3v3float %446 %458 - %573 = OpMatrixTimesMatrix %mat3v3float %572 %430 - %574 = OpMatrixTimesMatrix %mat3v3float %426 %462 - %575 = OpMatrixTimesMatrix %mat3v3float %574 %442 - %576 = OpMatrixTimesMatrix %mat3v3float %419 %430 - %577 = OpMatrixTimesMatrix %mat3v3float %426 %423 - %578 = OpAccessChain %_ptr_Uniform_uint %_Globals %int_43 - %579 = OpLoad %uint %578 - OpBranch %580 - %580 = OpLabel - OpLoopMerge %581 %582 None - OpBranch %583 - %583 = OpLabel - %584 = OpMatrixTimesMatrix %mat3v3float %574 %454 - %585 = OpMatrixTimesMatrix %mat3v3float %574 %450 - %586 = OpIEqual %bool %579 %uint_1 - OpSelectionMerge %587 None - OpBranchConditional %586 %588 %589 - %589 = OpLabel - %590 = OpIEqual %bool %579 %uint_2 - OpSelectionMerge %591 None - OpBranchConditional %590 %592 %593 - %593 = OpLabel - %594 = OpIEqual %bool %579 %uint_3 - OpSelectionMerge %595 None - OpBranchConditional %594 %596 %597 - %597 = OpLabel - %598 = OpIEqual %bool %579 %uint_4 - OpSelectionMerge %599 None - OpBranchConditional %598 %600 %601 - %601 = OpLabel - OpBranch %581 - %600 = OpLabel - OpBranch %581 - %599 = OpLabel - OpUnreachable - %596 = OpLabel - OpBranch %581 - %595 = OpLabel - OpUnreachable - %592 = OpLabel - OpBranch %581 - %591 = OpLabel - OpUnreachable - %588 = OpLabel - OpBranch %581 - %587 = OpLabel - OpUnreachable - %582 = OpLabel - OpBranch %580 - %581 = OpLabel - %602 = OpPhi %mat3v3float %575 %601 %470 %600 %438 %596 %585 %592 %584 %588 - %603 = OpVectorShuffle %v3float %571 %571 0 1 2 - %604 = OpAccessChain %_ptr_Uniform_uint %_Globals %int_42 - %605 = OpLoad %uint %604 - %606 = OpUGreaterThanEqual %bool %605 %uint_3 - OpSelectionMerge %607 None - OpBranchConditional %606 %608 %609 - %609 = OpLabel - %610 = OpFSub %v3float %603 %204 - %611 = OpFMul %v3float %610 %205 - %612 = OpExtInst %v3float %1 Exp2 %611 - %613 = OpFMul %v3float %612 %206 - %614 = OpExtInst %v3float %1 Exp2 %472 - %615 = OpFMul %v3float %614 %206 - %616 = OpFSub %v3float %613 %615 - OpBranch %607 - %608 = OpLabel - %617 = OpExtInst %v3float %1 Pow %603 %194 - %618 = OpFSub %v3float %617 %195 - %619 = OpExtInst %v3float %1 FMax %138 %618 - %620 = OpFMul %v3float %197 %617 - %621 = OpFSub %v3float %196 %620 - %622 = OpFDiv %v3float %619 %621 - %623 = OpExtInst %v3float %1 Pow %622 %199 - %624 = OpFMul %v3float %623 %200 - OpBranch %607 - %607 = OpLabel - %625 = OpPhi %v3float %616 %609 %624 %608 - %626 = OpAccessChain %_ptr_Uniform_float %_Globals %int_18 - %627 = OpLoad %float %626 - %628 = OpFMul %float %627 %float_1_00055635 - %629 = OpFOrdLessThanEqual %bool %628 %float_7000 - %630 = OpFDiv %float %float_4_60443853e_09 %627 - %631 = OpFSub %float %float_2967800 %630 - %632 = OpFDiv %float %631 %628 - %633 = OpFAdd %float %float_99_1100006 %632 - %634 = OpFDiv %float %633 %628 - %635 = OpFAdd %float %float_0_244063005 %634 - %636 = OpFDiv %float %float_2_00528435e_09 %627 - %637 = OpFSub %float %float_1901800 %636 - %638 = OpFDiv %float %637 %628 - %639 = OpFAdd %float %float_247_479996 %638 - %640 = OpFDiv %float %639 %628 - %641 = OpFAdd %float %float_0_237039998 %640 - %642 = OpSelect %float %629 %635 %641 - %643 = OpFMul %float %float_n3 %642 - %644 = OpFMul %float %643 %642 - %645 = OpFMul %float %float_2_86999989 %642 - %646 = OpFAdd %float %644 %645 - %647 = OpFSub %float %646 %float_0_275000006 - %648 = OpCompositeConstruct %v2float %642 %647 - %649 = OpFMul %float %float_0_000154118257 %627 - %650 = OpFAdd %float %float_0_860117733 %649 - %651 = OpFMul %float %float_1_28641219en07 %627 - %652 = OpFMul %float %651 %627 - %653 = OpFAdd %float %650 %652 - %654 = OpFMul %float %float_0_00084242021 %627 - %655 = OpFAdd %float %float_1 %654 - %656 = OpFMul %float %float_7_08145137en07 %627 - %657 = OpFMul %float %656 %627 - %658 = OpFAdd %float %655 %657 - %659 = OpFDiv %float %653 %658 - %660 = OpFMul %float %float_4_22806261en05 %627 - %661 = OpFAdd %float %float_0_317398727 %660 - %662 = OpFMul %float %float_4_20481676en08 %627 - %663 = OpFMul %float %662 %627 - %664 = OpFAdd %float %661 %663 - %665 = OpFMul %float %float_2_8974182en05 %627 - %666 = OpFSub %float %float_1 %665 - %667 = OpFMul %float %float_1_61456057en07 %627 - %668 = OpFMul %float %667 %627 - %669 = OpFAdd %float %666 %668 - %670 = OpFDiv %float %664 %669 - %671 = OpFMul %float %float_3 %659 - %672 = OpFMul %float %float_2 %659 - %673 = OpFMul %float %float_8 %670 - %674 = OpFSub %float %672 %673 - %675 = OpFAdd %float %674 %float_4 - %676 = OpFDiv %float %671 %675 - %677 = OpFMul %float %float_2 %670 - %678 = OpFDiv %float %677 %675 - %679 = OpCompositeConstruct %v2float %676 %678 - %680 = OpFOrdLessThan %bool %627 %float_4000 - %681 = OpCompositeConstruct %v2bool %680 %680 - %682 = OpSelect %v2float %681 %679 %648 - %683 = OpAccessChain %_ptr_Uniform_float %_Globals %int_19 - %684 = OpLoad %float %683 - %685 = OpCompositeConstruct %v2float %659 %670 - %686 = OpExtInst %v2float %1 Normalize %685 - %687 = OpCompositeExtract %float %686 1 - %688 = OpFNegate %float %687 - %689 = OpFMul %float %688 %684 - %690 = OpFMul %float %689 %float_0_0500000007 - %691 = OpFAdd %float %659 %690 - %692 = OpCompositeExtract %float %686 0 - %693 = OpFMul %float %692 %684 - %694 = OpFMul %float %693 %float_0_0500000007 - %695 = OpFAdd %float %670 %694 - %696 = OpFMul %float %float_3 %691 - %697 = OpFMul %float %float_2 %691 - %698 = OpFMul %float %float_8 %695 - %699 = OpFSub %float %697 %698 - %700 = OpFAdd %float %699 %float_4 - %701 = OpFDiv %float %696 %700 - %702 = OpFMul %float %float_2 %695 - %703 = OpFDiv %float %702 %700 - %704 = OpCompositeConstruct %v2float %701 %703 - %705 = OpFSub %v2float %704 %679 - %706 = OpFAdd %v2float %682 %705 - %707 = OpCompositeExtract %float %706 0 - %708 = OpCompositeExtract %float %706 1 - %709 = OpExtInst %float %1 FMax %708 %float_1_00000001en10 - %710 = OpFDiv %float %707 %709 - %711 = OpCompositeInsert %v3float %710 %523 0 - %712 = OpCompositeInsert %v3float %float_1 %711 1 - %713 = OpFSub %float %float_1 %707 - %714 = OpFSub %float %713 %708 - %715 = OpFDiv %float %714 %709 - %716 = OpCompositeInsert %v3float %715 %712 2 - %717 = OpExtInst %float %1 FMax %float_0_328999996 %float_1_00000001en10 - %718 = OpFDiv %float %float_0_312700003 %717 - %719 = OpCompositeInsert %v3float %718 %523 0 - %720 = OpCompositeInsert %v3float %float_1 %719 1 - %721 = OpFDiv %float %float_0_358299971 %717 - %722 = OpCompositeInsert %v3float %721 %720 2 - %723 = OpVectorTimesMatrix %v3float %716 %476 - %724 = OpVectorTimesMatrix %v3float %722 %476 - %725 = OpCompositeExtract %float %724 0 - %726 = OpCompositeExtract %float %723 0 - %727 = OpFDiv %float %725 %726 - %728 = OpCompositeConstruct %v3float %727 %float_0 %float_0 - %729 = OpCompositeExtract %float %724 1 - %730 = OpCompositeExtract %float %723 1 - %731 = OpFDiv %float %729 %730 - %732 = OpCompositeConstruct %v3float %float_0 %731 %float_0 - %733 = OpCompositeExtract %float %724 2 - %734 = OpCompositeExtract %float %723 2 - %735 = OpFDiv %float %733 %734 - %736 = OpCompositeConstruct %v3float %float_0 %float_0 %735 - %737 = OpCompositeConstruct %mat3v3float %728 %732 %736 - %738 = OpMatrixTimesMatrix %mat3v3float %476 %737 - %739 = OpMatrixTimesMatrix %mat3v3float %738 %480 - %740 = OpMatrixTimesMatrix %mat3v3float %446 %739 - %741 = OpMatrixTimesMatrix %mat3v3float %740 %442 - %742 = OpVectorTimesMatrix %v3float %625 %741 - %743 = OpVectorTimesMatrix %v3float %742 %573 - %744 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_9 - %745 = OpAccessChain %_ptr_Uniform_float %_Globals %int_9 %int_3 - %746 = OpLoad %float %745 - %747 = OpFOrdNotEqual %bool %746 %float_0 - OpSelectionMerge %748 None - OpBranchConditional %747 %749 %748 - %749 = OpLabel - %750 = OpDot %float %743 %73 - %751 = OpCompositeConstruct %v3float %750 %750 %750 - %752 = OpFDiv %v3float %743 %751 - %753 = OpFSub %v3float %752 %141 - %754 = OpDot %float %753 %753 - %755 = OpFMul %float %float_n4 %754 - %756 = OpExtInst %float %1 Exp2 %755 - %757 = OpFSub %float %float_1 %756 - %758 = OpAccessChain %_ptr_Uniform_float %_Globals %int_45 - %759 = OpLoad %float %758 - %760 = OpFMul %float %float_n4 %759 - %761 = OpFMul %float %760 %750 - %762 = OpFMul %float %761 %750 - %763 = OpExtInst %float %1 Exp2 %762 - %764 = OpFSub %float %float_1 %763 - %765 = OpFMul %float %757 %764 - %766 = OpMatrixTimesMatrix %mat3v3float %484 %430 - %767 = OpMatrixTimesMatrix %mat3v3float %575 %766 - %768 = OpVectorTimesMatrix %v3float %743 %767 - %769 = OpCompositeConstruct %v3float %765 %765 %765 - %770 = OpExtInst %v3float %1 FMix %743 %768 %769 - OpBranch %748 - %748 = OpLabel - %771 = OpPhi %v3float %743 %607 %770 %749 - %772 = OpDot %float %771 %73 - %773 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_25 - %774 = OpLoad %v4float %773 - %775 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_20 - %776 = OpLoad %v4float %775 - %777 = OpFMul %v4float %774 %776 - %778 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_26 - %779 = OpLoad %v4float %778 - %780 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_21 - %781 = OpLoad %v4float %780 - %782 = OpFMul %v4float %779 %781 - %783 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_27 - %784 = OpLoad %v4float %783 - %785 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_22 - %786 = OpLoad %v4float %785 - %787 = OpFMul %v4float %784 %786 - %788 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_28 - %789 = OpLoad %v4float %788 - %790 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_23 - %791 = OpLoad %v4float %790 - %792 = OpFMul %v4float %789 %791 - %793 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_29 - %794 = OpLoad %v4float %793 - %795 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_24 - %796 = OpLoad %v4float %795 - %797 = OpFAdd %v4float %794 %796 - %798 = OpCompositeConstruct %v3float %772 %772 %772 - %799 = OpVectorShuffle %v3float %777 %777 0 1 2 - %800 = OpCompositeExtract %float %777 3 - %801 = OpCompositeConstruct %v3float %800 %800 %800 - %802 = OpFMul %v3float %799 %801 - %803 = OpExtInst %v3float %1 FMix %798 %771 %802 - %804 = OpExtInst %v3float %1 FMax %138 %803 - %805 = OpFMul %v3float %804 %330 - %806 = OpVectorShuffle %v3float %782 %782 0 1 2 - %807 = OpCompositeExtract %float %782 3 - %808 = OpCompositeConstruct %v3float %807 %807 %807 - %809 = OpFMul %v3float %806 %808 - %810 = OpExtInst %v3float %1 Pow %805 %809 - %811 = OpFMul %v3float %810 %206 - %812 = OpVectorShuffle %v3float %787 %787 0 1 2 - %813 = OpCompositeExtract %float %787 3 - %814 = OpCompositeConstruct %v3float %813 %813 %813 - %815 = OpFMul %v3float %812 %814 - %816 = OpFDiv %v3float %141 %815 - %817 = OpExtInst %v3float %1 Pow %811 %816 - %818 = OpVectorShuffle %v3float %792 %792 0 1 2 - %819 = OpCompositeExtract %float %792 3 - %820 = OpCompositeConstruct %v3float %819 %819 %819 - %821 = OpFMul %v3float %818 %820 - %822 = OpFMul %v3float %817 %821 - %823 = OpVectorShuffle %v3float %797 %797 0 1 2 - %824 = OpCompositeExtract %float %797 3 - %825 = OpCompositeConstruct %v3float %824 %824 %824 - %826 = OpFAdd %v3float %823 %825 - %827 = OpFAdd %v3float %822 %826 - %828 = OpAccessChain %_ptr_Uniform_float %_Globals %int_40 - %829 = OpLoad %float %828 - %830 = OpExtInst %float %1 SmoothStep %float_0 %829 %772 - %831 = OpFSub %float %float_1 %830 - %832 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_35 - %833 = OpLoad %v4float %832 - %834 = OpFMul %v4float %833 %776 - %835 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_36 - %836 = OpLoad %v4float %835 - %837 = OpFMul %v4float %836 %781 - %838 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_37 - %839 = OpLoad %v4float %838 - %840 = OpFMul %v4float %839 %786 - %841 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_38 - %842 = OpLoad %v4float %841 - %843 = OpFMul %v4float %842 %791 - %844 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_39 - %845 = OpLoad %v4float %844 - %846 = OpFAdd %v4float %845 %796 - %847 = OpVectorShuffle %v3float %834 %834 0 1 2 - %848 = OpCompositeExtract %float %834 3 - %849 = OpCompositeConstruct %v3float %848 %848 %848 - %850 = OpFMul %v3float %847 %849 - %851 = OpExtInst %v3float %1 FMix %798 %771 %850 - %852 = OpExtInst %v3float %1 FMax %138 %851 - %853 = OpFMul %v3float %852 %330 - %854 = OpVectorShuffle %v3float %837 %837 0 1 2 - %855 = OpCompositeExtract %float %837 3 - %856 = OpCompositeConstruct %v3float %855 %855 %855 - %857 = OpFMul %v3float %854 %856 - %858 = OpExtInst %v3float %1 Pow %853 %857 - %859 = OpFMul %v3float %858 %206 - %860 = OpVectorShuffle %v3float %840 %840 0 1 2 - %861 = OpCompositeExtract %float %840 3 - %862 = OpCompositeConstruct %v3float %861 %861 %861 - %863 = OpFMul %v3float %860 %862 - %864 = OpFDiv %v3float %141 %863 - %865 = OpExtInst %v3float %1 Pow %859 %864 - %866 = OpVectorShuffle %v3float %843 %843 0 1 2 - %867 = OpCompositeExtract %float %843 3 - %868 = OpCompositeConstruct %v3float %867 %867 %867 - %869 = OpFMul %v3float %866 %868 - %870 = OpFMul %v3float %865 %869 - %871 = OpVectorShuffle %v3float %846 %846 0 1 2 - %872 = OpCompositeExtract %float %846 3 - %873 = OpCompositeConstruct %v3float %872 %872 %872 - %874 = OpFAdd %v3float %871 %873 - %875 = OpFAdd %v3float %870 %874 - %876 = OpAccessChain %_ptr_Uniform_float %_Globals %int_41 - %877 = OpLoad %float %876 - %878 = OpExtInst %float %1 SmoothStep %877 %float_1 %772 - %879 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_30 - %880 = OpLoad %v4float %879 - %881 = OpFMul %v4float %880 %776 - %882 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_31 - %883 = OpLoad %v4float %882 - %884 = OpFMul %v4float %883 %781 - %885 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_32 - %886 = OpLoad %v4float %885 - %887 = OpFMul %v4float %886 %786 - %888 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_33 - %889 = OpLoad %v4float %888 - %890 = OpFMul %v4float %889 %791 - %891 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_34 - %892 = OpLoad %v4float %891 - %893 = OpFAdd %v4float %892 %796 - %894 = OpVectorShuffle %v3float %881 %881 0 1 2 - %895 = OpCompositeExtract %float %881 3 - %896 = OpCompositeConstruct %v3float %895 %895 %895 - %897 = OpFMul %v3float %894 %896 - %898 = OpExtInst %v3float %1 FMix %798 %771 %897 - %899 = OpExtInst %v3float %1 FMax %138 %898 - %900 = OpFMul %v3float %899 %330 - %901 = OpVectorShuffle %v3float %884 %884 0 1 2 - %902 = OpCompositeExtract %float %884 3 - %903 = OpCompositeConstruct %v3float %902 %902 %902 - %904 = OpFMul %v3float %901 %903 - %905 = OpExtInst %v3float %1 Pow %900 %904 - %906 = OpFMul %v3float %905 %206 - %907 = OpVectorShuffle %v3float %887 %887 0 1 2 - %908 = OpCompositeExtract %float %887 3 - %909 = OpCompositeConstruct %v3float %908 %908 %908 - %910 = OpFMul %v3float %907 %909 - %911 = OpFDiv %v3float %141 %910 - %912 = OpExtInst %v3float %1 Pow %906 %911 - %913 = OpVectorShuffle %v3float %890 %890 0 1 2 - %914 = OpCompositeExtract %float %890 3 - %915 = OpCompositeConstruct %v3float %914 %914 %914 - %916 = OpFMul %v3float %913 %915 - %917 = OpFMul %v3float %912 %916 - %918 = OpVectorShuffle %v3float %893 %893 0 1 2 - %919 = OpCompositeExtract %float %893 3 - %920 = OpCompositeConstruct %v3float %919 %919 %919 - %921 = OpFAdd %v3float %918 %920 - %922 = OpFAdd %v3float %917 %921 - %923 = OpFSub %float %830 %878 - %924 = OpCompositeConstruct %v3float %831 %831 %831 - %925 = OpFMul %v3float %827 %924 - %926 = OpCompositeConstruct %v3float %923 %923 %923 - %927 = OpFMul %v3float %922 %926 - %928 = OpFAdd %v3float %925 %927 - %929 = OpCompositeConstruct %v3float %878 %878 %878 - %930 = OpFMul %v3float %875 %929 - %931 = OpFAdd %v3float %928 %930 - %932 = OpVectorTimesMatrix %v3float %931 %575 - %933 = OpMatrixTimesMatrix %mat3v3float %577 %488 - %934 = OpMatrixTimesMatrix %mat3v3float %933 %576 - %935 = OpMatrixTimesMatrix %mat3v3float %577 %492 - %936 = OpMatrixTimesMatrix %mat3v3float %935 %576 - %937 = OpVectorTimesMatrix %v3float %931 %934 - %938 = OpAccessChain %_ptr_Uniform_float %_Globals %int_44 - %939 = OpLoad %float %938 - %940 = OpCompositeConstruct %v3float %939 %939 %939 - %941 = OpExtInst %v3float %1 FMix %931 %937 %940 - %942 = OpVectorTimesMatrix %v3float %941 %577 - %943 = OpCompositeExtract %float %942 0 - %944 = OpCompositeExtract %float %942 1 - %945 = OpExtInst %float %1 FMin %943 %944 - %946 = OpCompositeExtract %float %942 2 - %947 = OpExtInst %float %1 FMin %945 %946 - %948 = OpExtInst %float %1 FMax %943 %944 - %949 = OpExtInst %float %1 FMax %948 %946 - %950 = OpExtInst %float %1 FMax %949 %float_1_00000001en10 - %951 = OpExtInst %float %1 FMax %947 %float_1_00000001en10 - %952 = OpFSub %float %950 %951 - %953 = OpExtInst %float %1 FMax %949 %float_0_00999999978 - %954 = OpFDiv %float %952 %953 - %955 = OpFSub %float %946 %944 - %956 = OpFMul %float %946 %955 - %957 = OpFSub %float %944 %943 - %958 = OpFMul %float %944 %957 - %959 = OpFAdd %float %956 %958 - %960 = OpFSub %float %943 %946 - %961 = OpFMul %float %943 %960 - %962 = OpFAdd %float %959 %961 - %963 = OpExtInst %float %1 Sqrt %962 - %964 = OpFAdd %float %946 %944 - %965 = OpFAdd %float %964 %943 - %966 = OpFMul %float %float_1_75 %963 - %967 = OpFAdd %float %965 %966 - %968 = OpFMul %float %967 %float_0_333333343 - %969 = OpFSub %float %954 %float_0_400000006 - %970 = OpFMul %float %969 %float_5 - %971 = OpFMul %float %969 %float_2_5 - %972 = OpExtInst %float %1 FAbs %971 - %973 = OpFSub %float %float_1 %972 - %974 = OpExtInst %float %1 FMax %973 %float_0 - %975 = OpExtInst %float %1 FSign %970 - %976 = OpConvertFToS %int %975 - %977 = OpConvertSToF %float %976 - %978 = OpFMul %float %974 %974 - %979 = OpFSub %float %float_1 %978 - %980 = OpFMul %float %977 %979 - %981 = OpFAdd %float %float_1 %980 - %982 = OpFMul %float %981 %float_0_0250000004 - %983 = OpFOrdLessThanEqual %bool %968 %float_0_0533333346 - OpSelectionMerge %984 None - OpBranchConditional %983 %985 %986 - %986 = OpLabel - %987 = OpFOrdGreaterThanEqual %bool %968 %float_0_159999996 - OpSelectionMerge %988 None - OpBranchConditional %987 %989 %990 - %990 = OpLabel - %991 = OpFDiv %float %float_0_239999995 %967 - %992 = OpFSub %float %991 %float_0_5 - %993 = OpFMul %float %982 %992 - OpBranch %988 - %989 = OpLabel - OpBranch %988 - %988 = OpLabel - %994 = OpPhi %float %993 %990 %float_0 %989 - OpBranch %984 - %985 = OpLabel - OpBranch %984 - %984 = OpLabel - %995 = OpPhi %float %994 %988 %982 %985 - %996 = OpFAdd %float %float_1 %995 - %997 = OpCompositeConstruct %v3float %996 %996 %996 - %998 = OpFMul %v3float %942 %997 - %999 = OpCompositeExtract %float %998 0 - %1000 = OpCompositeExtract %float %998 1 - %1001 = OpFOrdEqual %bool %999 %1000 - %1002 = OpCompositeExtract %float %998 2 - %1003 = OpFOrdEqual %bool %1000 %1002 - %1004 = OpLogicalAnd %bool %1001 %1003 - OpSelectionMerge %1005 None - OpBranchConditional %1004 %1006 %1007 - %1007 = OpLabel - %1008 = OpExtInst %float %1 Sqrt %float_3 - %1009 = OpFSub %float %1000 %1002 - %1010 = OpFMul %float %1008 %1009 - %1011 = OpFMul %float %float_2 %999 - %1012 = OpFSub %float %1011 %1000 - %1013 = OpFSub %float %1012 %1002 - %1014 = OpExtInst %float %1 Atan2 %1010 %1013 - %1015 = OpFMul %float %float_57_2957764 %1014 - OpBranch %1005 - %1006 = OpLabel - OpBranch %1005 - %1005 = OpLabel - %1016 = OpPhi %float %1015 %1007 %float_0 %1006 - %1017 = OpFOrdLessThan %bool %1016 %float_0 - OpSelectionMerge %1018 None - OpBranchConditional %1017 %1019 %1018 - %1019 = OpLabel - %1020 = OpFAdd %float %1016 %float_360 - OpBranch %1018 - %1018 = OpLabel - %1021 = OpPhi %float %1016 %1005 %1020 %1019 - %1022 = OpExtInst %float %1 FClamp %1021 %float_0 %float_360 - %1023 = OpFOrdGreaterThan %bool %1022 %float_180 - OpSelectionMerge %1024 None - OpBranchConditional %1023 %1025 %1024 - %1025 = OpLabel - %1026 = OpFSub %float %1022 %float_360 - OpBranch %1024 - %1024 = OpLabel - %1027 = OpPhi %float %1022 %1018 %1026 %1025 - %1028 = OpFMul %float %1027 %float_0_0148148146 - %1029 = OpExtInst %float %1 FAbs %1028 - %1030 = OpFSub %float %float_1 %1029 - %1031 = OpExtInst %float %1 SmoothStep %float_0 %float_1 %1030 - %1032 = OpFMul %float %1031 %1031 - %1033 = OpFMul %float %1032 %954 - %1034 = OpFSub %float %float_0_0299999993 %999 - %1035 = OpFMul %float %1033 %1034 - %1036 = OpFMul %float %1035 %float_0_180000007 - %1037 = OpFAdd %float %999 %1036 - %1038 = OpCompositeInsert %v3float %1037 %998 0 - %1039 = OpVectorTimesMatrix %v3float %1038 %434 - %1040 = OpExtInst %v3float %1 FMax %138 %1039 - %1041 = OpDot %float %1040 %73 - %1042 = OpCompositeConstruct %v3float %1041 %1041 %1041 - %1043 = OpExtInst %v3float %1 FMix %1042 %1040 %241 - %1044 = OpAccessChain %_ptr_Uniform_float %_Globals %int_13 - %1045 = OpLoad %float %1044 - %1046 = OpFAdd %float %float_1 %1045 - %1047 = OpAccessChain %_ptr_Uniform_float %_Globals %int_11 - %1048 = OpLoad %float %1047 - %1049 = OpFSub %float %1046 %1048 - %1050 = OpAccessChain %_ptr_Uniform_float %_Globals %int_14 - %1051 = OpLoad %float %1050 - %1052 = OpFAdd %float %float_1 %1051 - %1053 = OpAccessChain %_ptr_Uniform_float %_Globals %int_12 - %1054 = OpLoad %float %1053 - %1055 = OpFSub %float %1052 %1054 - %1056 = OpFOrdGreaterThan %bool %1048 %float_0_800000012 - OpSelectionMerge %1057 None - OpBranchConditional %1056 %1058 %1059 - %1059 = OpLabel - %1060 = OpFAdd %float %float_0_180000007 %1045 - %1061 = OpFDiv %float %1060 %1049 - %1062 = OpExtInst %float %1 Log %float_0_180000007 - %1063 = OpExtInst %float %1 Log %float_10 - %1064 = OpFDiv %float %1062 %1063 - %1065 = OpFSub %float %float_2 %1061 - %1066 = OpFDiv %float %1061 %1065 - %1067 = OpExtInst %float %1 Log %1066 - %1068 = OpFMul %float %float_0_5 %1067 - %1069 = OpAccessChain %_ptr_Uniform_float %_Globals %int_10 - %1070 = OpLoad %float %1069 - %1071 = OpFDiv %float %1049 %1070 - %1072 = OpFMul %float %1068 %1071 - %1073 = OpFSub %float %1064 %1072 - OpBranch %1057 - %1058 = OpLabel - %1074 = OpFSub %float %float_0_819999993 %1048 - %1075 = OpAccessChain %_ptr_Uniform_float %_Globals %int_10 - %1076 = OpLoad %float %1075 - %1077 = OpFDiv %float %1074 %1076 - %1078 = OpExtInst %float %1 Log %float_0_180000007 - %1079 = OpExtInst %float %1 Log %float_10 - %1080 = OpFDiv %float %1078 %1079 - %1081 = OpFAdd %float %1077 %1080 - OpBranch %1057 - %1057 = OpLabel - %1082 = OpPhi %float %1073 %1059 %1081 %1058 - %1083 = OpFSub %float %float_1 %1048 - %1084 = OpAccessChain %_ptr_Uniform_float %_Globals %int_10 - %1085 = OpLoad %float %1084 - %1086 = OpFDiv %float %1083 %1085 - %1087 = OpFSub %float %1086 %1082 - %1088 = OpFDiv %float %1054 %1085 - %1089 = OpFSub %float %1088 %1087 - %1090 = OpExtInst %v3float %1 Log %1043 - %1091 = OpExtInst %float %1 Log %float_10 - %1092 = OpCompositeConstruct %v3float %1091 %1091 %1091 - %1093 = OpFDiv %v3float %1090 %1092 - %1094 = OpCompositeConstruct %v3float %1085 %1085 %1085 - %1095 = OpCompositeConstruct %v3float %1087 %1087 %1087 - %1096 = OpFAdd %v3float %1093 %1095 - %1097 = OpFMul %v3float %1094 %1096 - %1098 = OpFNegate %float %1045 - %1099 = OpCompositeConstruct %v3float %1098 %1098 %1098 - %1100 = OpFMul %float %float_2 %1049 - %1101 = OpCompositeConstruct %v3float %1100 %1100 %1100 - %1102 = OpFMul %float %float_n2 %1085 - %1103 = OpFDiv %float %1102 %1049 - %1104 = OpCompositeConstruct %v3float %1103 %1103 %1103 - %1105 = OpCompositeConstruct %v3float %1082 %1082 %1082 - %1106 = OpFSub %v3float %1093 %1105 - %1107 = OpFMul %v3float %1104 %1106 - %1108 = OpExtInst %v3float %1 Exp %1107 - %1109 = OpFAdd %v3float %141 %1108 - %1110 = OpFDiv %v3float %1101 %1109 - %1111 = OpFAdd %v3float %1099 %1110 - %1112 = OpCompositeConstruct %v3float %1052 %1052 %1052 - %1113 = OpFMul %float %float_2 %1055 - %1114 = OpCompositeConstruct %v3float %1113 %1113 %1113 - %1115 = OpFMul %float %float_2 %1085 - %1116 = OpFDiv %float %1115 %1055 - %1117 = OpCompositeConstruct %v3float %1116 %1116 %1116 - %1118 = OpCompositeConstruct %v3float %1089 %1089 %1089 - %1119 = OpFSub %v3float %1093 %1118 - %1120 = OpFMul %v3float %1117 %1119 - %1121 = OpExtInst %v3float %1 Exp %1120 - %1122 = OpFAdd %v3float %141 %1121 - %1123 = OpFDiv %v3float %1114 %1122 - %1124 = OpFSub %v3float %1112 %1123 - %1125 = OpFOrdLessThan %v3bool %1093 %1105 - %1126 = OpSelect %v3float %1125 %1111 %1097 - %1127 = OpFOrdGreaterThan %v3bool %1093 %1118 - %1128 = OpSelect %v3float %1127 %1124 %1097 - %1129 = OpFSub %float %1089 %1082 - %1130 = OpCompositeConstruct %v3float %1129 %1129 %1129 - %1131 = OpFDiv %v3float %1106 %1130 - %1132 = OpExtInst %v3float %1 FClamp %1131 %138 %141 - %1133 = OpFOrdLessThan %bool %1089 %1082 - %1134 = OpFSub %v3float %141 %1132 - %1135 = OpCompositeConstruct %v3bool %1133 %1133 %1133 - %1136 = OpSelect %v3float %1135 %1134 %1132 - %1137 = OpFMul %v3float %252 %1136 - %1138 = OpFSub %v3float %251 %1137 - %1139 = OpFMul %v3float %1138 %1136 - %1140 = OpFMul %v3float %1139 %1136 - %1141 = OpExtInst %v3float %1 FMix %1126 %1128 %1140 - %1142 = OpDot %float %1141 %73 - %1143 = OpCompositeConstruct %v3float %1142 %1142 %1142 - %1144 = OpExtInst %v3float %1 FMix %1143 %1141 %254 - %1145 = OpExtInst %v3float %1 FMax %138 %1144 - %1146 = OpVectorTimesMatrix %v3float %1145 %936 - %1147 = OpExtInst %v3float %1 FMix %1145 %1146 %940 - %1148 = OpVectorTimesMatrix %v3float %1147 %575 - %1149 = OpExtInst %v3float %1 FMax %138 %1148 - %1150 = OpFOrdEqual %bool %746 %float_0 - OpSelectionMerge %1151 DontFlatten - OpBranchConditional %1150 %1152 %1151 - %1152 = OpLabel - %1153 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_2 - %1154 = OpLoad %v4float %1153 - %1155 = OpVectorShuffle %v3float %1154 %1154 0 1 2 - %1156 = OpDot %float %932 %1155 - %1157 = OpCompositeInsert %v3float %1156 %525 0 - %1158 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_3 - %1159 = OpLoad %v4float %1158 - %1160 = OpVectorShuffle %v3float %1159 %1159 0 1 2 - %1161 = OpDot %float %932 %1160 - %1162 = OpCompositeInsert %v3float %1161 %1157 1 - %1163 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_4 - %1164 = OpLoad %v4float %1163 - %1165 = OpVectorShuffle %v3float %1164 %1164 0 1 2 - %1166 = OpDot %float %932 %1165 - %1167 = OpCompositeInsert %v3float %1166 %1162 2 - %1168 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_8 - %1169 = OpLoad %v4float %1168 - %1170 = OpVectorShuffle %v3float %1169 %1169 0 1 2 - %1171 = OpLoad %v4float %744 - %1172 = OpVectorShuffle %v3float %1171 %1171 0 1 2 - %1173 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_7 - %1174 = OpLoad %v4float %1173 - %1175 = OpVectorShuffle %v3float %1174 %1174 0 1 2 - %1176 = OpDot %float %932 %1175 - %1177 = OpFAdd %float %1176 %float_1 - %1178 = OpFDiv %float %float_1 %1177 - %1179 = OpCompositeConstruct %v3float %1178 %1178 %1178 - %1180 = OpFMul %v3float %1172 %1179 - %1181 = OpFAdd %v3float %1170 %1180 - %1182 = OpFMul %v3float %1167 %1181 - %1183 = OpExtInst %v3float %1 FMax %138 %1182 - %1184 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_5 - %1185 = OpLoad %v4float %1184 - %1186 = OpVectorShuffle %v3float %1185 %1185 0 0 0 - %1187 = OpFSub %v3float %1186 %1183 - %1188 = OpExtInst %v3float %1 FMax %138 %1187 - %1189 = OpVectorShuffle %v3float %1185 %1185 2 2 2 - %1190 = OpExtInst %v3float %1 FMax %1183 %1189 - %1191 = OpExtInst %v3float %1 FClamp %1183 %1186 %1189 - %1192 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_6 - %1193 = OpLoad %v4float %1192 - %1194 = OpVectorShuffle %v3float %1193 %1193 0 0 0 - %1195 = OpFMul %v3float %1190 %1194 - %1196 = OpVectorShuffle %v3float %1193 %1193 1 1 1 - %1197 = OpFAdd %v3float %1195 %1196 - %1198 = OpVectorShuffle %v3float %1185 %1185 3 3 3 - %1199 = OpFAdd %v3float %1190 %1198 - %1200 = OpFDiv %v3float %141 %1199 - %1201 = OpFMul %v3float %1197 %1200 - %1202 = OpVectorShuffle %v3float %1164 %1164 3 3 3 - %1203 = OpFMul %v3float %1191 %1202 - %1204 = OpVectorShuffle %v3float %1154 %1154 3 3 3 - %1205 = OpFMul %v3float %1188 %1204 - %1206 = OpVectorShuffle %v3float %1185 %1185 1 1 1 - %1207 = OpFAdd %v3float %1188 %1206 - %1208 = OpFDiv %v3float %141 %1207 - %1209 = OpFMul %v3float %1205 %1208 - %1210 = OpVectorShuffle %v3float %1159 %1159 3 3 3 - %1211 = OpFAdd %v3float %1209 %1210 - %1212 = OpFAdd %v3float %1203 %1211 - %1213 = OpFAdd %v3float %1201 %1212 - %1214 = OpFSub %v3float %1213 %261 - OpBranch %1151 - %1151 = OpLabel - %1215 = OpPhi %v3float %1149 %1057 %1214 %1152 - %1216 = OpExtInst %v3float %1 FClamp %1215 %138 %141 - %1217 = OpCompositeExtract %float %1216 0 - OpBranch %1218 - %1218 = OpLabel - OpLoopMerge %1219 %1220 None - OpBranch %1221 - %1221 = OpLabel - %1222 = OpFOrdLessThan %bool %1217 %float_0_00313066994 - OpSelectionMerge %1223 None - OpBranchConditional %1222 %1224 %1223 - %1224 = OpLabel - %1225 = OpFMul %float %1217 %float_12_9200001 - OpBranch %1219 - %1223 = OpLabel - %1226 = OpExtInst %float %1 Pow %1217 %float_0_416666657 - %1227 = OpFMul %float %1226 %float_1_05499995 - %1228 = OpFSub %float %1227 %float_0_0549999997 - OpBranch %1219 - %1220 = OpLabel - OpBranch %1218 - %1219 = OpLabel - %1229 = OpPhi %float %1225 %1224 %1228 %1223 - %1230 = OpCompositeExtract %float %1216 1 - OpBranch %1231 - %1231 = OpLabel - OpLoopMerge %1232 %1233 None - OpBranch %1234 - %1234 = OpLabel - %1235 = OpFOrdLessThan %bool %1230 %float_0_00313066994 - OpSelectionMerge %1236 None - OpBranchConditional %1235 %1237 %1236 - %1237 = OpLabel - %1238 = OpFMul %float %1230 %float_12_9200001 - OpBranch %1232 - %1236 = OpLabel - %1239 = OpExtInst %float %1 Pow %1230 %float_0_416666657 - %1240 = OpFMul %float %1239 %float_1_05499995 - %1241 = OpFSub %float %1240 %float_0_0549999997 - OpBranch %1232 - %1233 = OpLabel - OpBranch %1231 - %1232 = OpLabel - %1242 = OpPhi %float %1238 %1237 %1241 %1236 - %1243 = OpCompositeExtract %float %1216 2 - OpBranch %1244 - %1244 = OpLabel - OpLoopMerge %1245 %1246 None - OpBranch %1247 - %1247 = OpLabel - %1248 = OpFOrdLessThan %bool %1243 %float_0_00313066994 - OpSelectionMerge %1249 None - OpBranchConditional %1248 %1250 %1249 - %1250 = OpLabel - %1251 = OpFMul %float %1243 %float_12_9200001 - OpBranch %1245 - %1249 = OpLabel - %1252 = OpExtInst %float %1 Pow %1243 %float_0_416666657 - %1253 = OpFMul %float %1252 %float_1_05499995 - %1254 = OpFSub %float %1253 %float_0_0549999997 - OpBranch %1245 - %1246 = OpLabel - OpBranch %1244 - %1245 = OpLabel - %1255 = OpPhi %float %1251 %1250 %1254 %1249 - %1256 = OpCompositeConstruct %v3float %1229 %1242 %1255 - %1257 = OpFMul %v3float %1256 %173 - %1258 = OpFAdd %v3float %1257 %175 - %1259 = OpAccessChain %_ptr_Uniform_float %_Globals %int_15 %int_0 - %1260 = OpLoad %float %1259 - %1261 = OpCompositeConstruct %v3float %1260 %1260 %1260 - %1262 = OpFMul %v3float %1261 %1256 - %1263 = OpAccessChain %_ptr_Uniform_float %_Globals %int_15 %int_1 - %1264 = OpLoad %float %1263 - %1265 = OpCompositeConstruct %v3float %1264 %1264 %1264 - %1266 = OpLoad %type_2d_image %Texture1 - %1267 = OpLoad %type_sampler %Texture1Sampler - %1268 = OpCompositeExtract %float %1258 2 - %1269 = OpFMul %float %1268 %float_16 - %1270 = OpFSub %float %1269 %float_0_5 - %1271 = OpExtInst %float %1 Floor %1270 - %1272 = OpFSub %float %1270 %1271 - %1273 = OpCompositeExtract %float %1258 0 - %1274 = OpFAdd %float %1273 %1271 - %1275 = OpFMul %float %1274 %float_0_0625 - %1276 = OpCompositeExtract %float %1258 1 - %1277 = OpCompositeConstruct %v2float %1275 %1276 - %1278 = OpSampledImage %type_sampled_image %1266 %1267 - %1279 = OpImageSampleImplicitLod %v4float %1278 %1277 None - %1280 = OpFAdd %float %1275 %float_0_0625 - %1281 = OpCompositeConstruct %v2float %1280 %1276 - %1282 = OpSampledImage %type_sampled_image %1266 %1267 - %1283 = OpImageSampleImplicitLod %v4float %1282 %1281 None - %1284 = OpCompositeConstruct %v4float %1272 %1272 %1272 %1272 - %1285 = OpExtInst %v4float %1 FMix %1279 %1283 %1284 - %1286 = OpVectorShuffle %v3float %1285 %1285 0 1 2 - %1287 = OpFMul %v3float %1265 %1286 - %1288 = OpFAdd %v3float %1262 %1287 - %1289 = OpExtInst %v3float %1 FMax %263 %1288 - %1290 = OpFOrdGreaterThan %v3bool %1289 %265 - %1291 = OpFMul %v3float %1289 %267 - %1292 = OpFAdd %v3float %1291 %269 - %1293 = OpExtInst %v3float %1 Pow %1292 %271 - %1294 = OpFMul %v3float %1289 %273 - %1295 = OpSelect %v3float %1290 %1293 %1294 - %1296 = OpAccessChain %_ptr_Uniform_float %_Globals %int_0 %int_0 - %1297 = OpLoad %float %1296 - %1298 = OpCompositeConstruct %v3float %1297 %1297 %1297 - %1299 = OpFMul %v3float %1295 %1295 - %1300 = OpFMul %v3float %1298 %1299 - %1301 = OpAccessChain %_ptr_Uniform_float %_Globals %int_0 %int_1 - %1302 = OpLoad %float %1301 - %1303 = OpCompositeConstruct %v3float %1302 %1302 %1302 - %1304 = OpFMul %v3float %1303 %1295 - %1305 = OpFAdd %v3float %1300 %1304 - %1306 = OpAccessChain %_ptr_Uniform_float %_Globals %int_0 %int_2 - %1307 = OpLoad %float %1306 - %1308 = OpCompositeConstruct %v3float %1307 %1307 %1307 - %1309 = OpFAdd %v3float %1305 %1308 - %1310 = OpAccessChain %_ptr_Uniform_v3float %_Globals %int_16 - %1311 = OpLoad %v3float %1310 - %1312 = OpFMul %v3float %1309 %1311 - %1313 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_17 - %1314 = OpLoad %v4float %1313 - %1315 = OpVectorShuffle %v3float %1314 %1314 0 1 2 - %1316 = OpAccessChain %_ptr_Uniform_float %_Globals %int_17 %int_3 - %1317 = OpLoad %float %1316 - %1318 = OpCompositeConstruct %v3float %1317 %1317 %1317 - %1319 = OpExtInst %v3float %1 FMix %1312 %1315 %1318 - %1320 = OpExtInst %v3float %1 FMax %138 %1319 - %1321 = OpAccessChain %_ptr_Uniform_float %_Globals %int_1 %int_1 - %1322 = OpLoad %float %1321 - %1323 = OpCompositeConstruct %v3float %1322 %1322 %1322 - %1324 = OpExtInst %v3float %1 Pow %1320 %1323 - %1325 = OpIEqual %bool %605 %uint_0 - OpSelectionMerge %1326 DontFlatten - OpBranchConditional %1325 %1327 %1328 - %1328 = OpLabel - %1329 = OpIEqual %bool %605 %uint_1 - OpSelectionMerge %1330 None - OpBranchConditional %1329 %1331 %1332 - %1332 = OpLabel - %1333 = OpIEqual %bool %605 %uint_3 - %1334 = OpIEqual %bool %605 %uint_5 - %1335 = OpLogicalOr %bool %1333 %1334 - OpSelectionMerge %1336 None - OpBranchConditional %1335 %1337 %1338 - %1338 = OpLabel - %1339 = OpIEqual %bool %605 %uint_4 - %1340 = OpIEqual %bool %605 %uint_6 - %1341 = OpLogicalOr %bool %1339 %1340 - OpSelectionMerge %1342 None - OpBranchConditional %1341 %1343 %1344 - %1344 = OpLabel - %1345 = OpIEqual %bool %605 %uint_7 - OpSelectionMerge %1346 None - OpBranchConditional %1345 %1347 %1348 - %1348 = OpLabel - %1349 = OpVectorTimesMatrix %v3float %1324 %573 - %1350 = OpVectorTimesMatrix %v3float %1349 %602 - %1351 = OpAccessChain %_ptr_Uniform_float %_Globals %int_1 %int_2 - %1352 = OpLoad %float %1351 - %1353 = OpCompositeConstruct %v3float %1352 %1352 %1352 - %1354 = OpExtInst %v3float %1 Pow %1350 %1353 - OpBranch %1346 - %1347 = OpLabel - %1355 = OpVectorTimesMatrix %v3float %932 %573 - %1356 = OpVectorTimesMatrix %v3float %1355 %602 - %1357 = OpFMul %v3float %1356 %519 - %1358 = OpExtInst %v3float %1 Pow %1357 %286 - %1359 = OpFMul %v3float %196 %1358 - %1360 = OpFAdd %v3float %195 %1359 - %1361 = OpFMul %v3float %197 %1358 - %1362 = OpFAdd %v3float %141 %1361 - %1363 = OpFDiv %v3float %141 %1362 - %1364 = OpFMul %v3float %1360 %1363 - %1365 = OpExtInst %v3float %1 Pow %1364 %287 - OpBranch %1346 - %1346 = OpLabel - %1366 = OpPhi %v3float %1354 %1348 %1365 %1347 - OpBranch %1342 - %1343 = OpLabel - %1367 = OpMatrixTimesMatrix %mat3v3float %572 %423 - %1368 = OpFMul %v3float %932 %285 - %1369 = OpVectorTimesMatrix %v3float %1368 %1367 - %1370 = OpCompositeExtract %float %1369 0 - %1371 = OpCompositeExtract %float %1369 1 - %1372 = OpExtInst %float %1 FMin %1370 %1371 - %1373 = OpCompositeExtract %float %1369 2 - %1374 = OpExtInst %float %1 FMin %1372 %1373 - %1375 = OpExtInst %float %1 FMax %1370 %1371 - %1376 = OpExtInst %float %1 FMax %1375 %1373 - %1377 = OpExtInst %float %1 FMax %1376 %float_1_00000001en10 - %1378 = OpExtInst %float %1 FMax %1374 %float_1_00000001en10 - %1379 = OpFSub %float %1377 %1378 - %1380 = OpExtInst %float %1 FMax %1376 %float_0_00999999978 - %1381 = OpFDiv %float %1379 %1380 - %1382 = OpFSub %float %1373 %1371 - %1383 = OpFMul %float %1373 %1382 - %1384 = OpFSub %float %1371 %1370 - %1385 = OpFMul %float %1371 %1384 - %1386 = OpFAdd %float %1383 %1385 - %1387 = OpFSub %float %1370 %1373 - %1388 = OpFMul %float %1370 %1387 - %1389 = OpFAdd %float %1386 %1388 - %1390 = OpExtInst %float %1 Sqrt %1389 - %1391 = OpFAdd %float %1373 %1371 - %1392 = OpFAdd %float %1391 %1370 - %1393 = OpFMul %float %float_1_75 %1390 - %1394 = OpFAdd %float %1392 %1393 - %1395 = OpFMul %float %1394 %float_0_333333343 - %1396 = OpFSub %float %1381 %float_0_400000006 - %1397 = OpFMul %float %1396 %float_5 - %1398 = OpFMul %float %1396 %float_2_5 - %1399 = OpExtInst %float %1 FAbs %1398 - %1400 = OpFSub %float %float_1 %1399 - %1401 = OpExtInst %float %1 FMax %1400 %float_0 - %1402 = OpExtInst %float %1 FSign %1397 - %1403 = OpConvertFToS %int %1402 - %1404 = OpConvertSToF %float %1403 - %1405 = OpFMul %float %1401 %1401 - %1406 = OpFSub %float %float_1 %1405 - %1407 = OpFMul %float %1404 %1406 - %1408 = OpFAdd %float %float_1 %1407 - %1409 = OpFMul %float %1408 %float_0_0250000004 - %1410 = OpFOrdLessThanEqual %bool %1395 %float_0_0533333346 - OpSelectionMerge %1411 None - OpBranchConditional %1410 %1412 %1413 - %1413 = OpLabel - %1414 = OpFOrdGreaterThanEqual %bool %1395 %float_0_159999996 - OpSelectionMerge %1415 None - OpBranchConditional %1414 %1416 %1417 - %1417 = OpLabel - %1418 = OpFDiv %float %float_0_239999995 %1394 - %1419 = OpFSub %float %1418 %float_0_5 - %1420 = OpFMul %float %1409 %1419 - OpBranch %1415 - %1416 = OpLabel - OpBranch %1415 - %1415 = OpLabel - %1421 = OpPhi %float %1420 %1417 %float_0 %1416 - OpBranch %1411 - %1412 = OpLabel - OpBranch %1411 - %1411 = OpLabel - %1422 = OpPhi %float %1421 %1415 %1409 %1412 - %1423 = OpFAdd %float %float_1 %1422 - %1424 = OpCompositeConstruct %v3float %1423 %1423 %1423 - %1425 = OpFMul %v3float %1369 %1424 - %1426 = OpCompositeExtract %float %1425 0 - %1427 = OpCompositeExtract %float %1425 1 - %1428 = OpFOrdEqual %bool %1426 %1427 - %1429 = OpCompositeExtract %float %1425 2 - %1430 = OpFOrdEqual %bool %1427 %1429 - %1431 = OpLogicalAnd %bool %1428 %1430 - OpSelectionMerge %1432 None - OpBranchConditional %1431 %1433 %1434 - %1434 = OpLabel - %1435 = OpExtInst %float %1 Sqrt %float_3 - %1436 = OpFSub %float %1427 %1429 - %1437 = OpFMul %float %1435 %1436 - %1438 = OpFMul %float %float_2 %1426 - %1439 = OpFSub %float %1438 %1427 - %1440 = OpFSub %float %1439 %1429 - %1441 = OpExtInst %float %1 Atan2 %1437 %1440 - %1442 = OpFMul %float %float_57_2957764 %1441 - OpBranch %1432 - %1433 = OpLabel - OpBranch %1432 - %1432 = OpLabel - %1443 = OpPhi %float %1442 %1434 %float_0 %1433 - %1444 = OpFOrdLessThan %bool %1443 %float_0 - OpSelectionMerge %1445 None - OpBranchConditional %1444 %1446 %1445 - %1446 = OpLabel - %1447 = OpFAdd %float %1443 %float_360 - OpBranch %1445 - %1445 = OpLabel - %1448 = OpPhi %float %1443 %1432 %1447 %1446 - %1449 = OpExtInst %float %1 FClamp %1448 %float_0 %float_360 - %1450 = OpFOrdGreaterThan %bool %1449 %float_180 - OpSelectionMerge %1451 None - OpBranchConditional %1450 %1452 %1451 - %1452 = OpLabel - %1453 = OpFSub %float %1449 %float_360 - OpBranch %1451 - %1451 = OpLabel - %1454 = OpPhi %float %1449 %1445 %1453 %1452 - %1455 = OpFOrdGreaterThan %bool %1454 %float_n67_5 - %1456 = OpFOrdLessThan %bool %1454 %float_67_5 - %1457 = OpLogicalAnd %bool %1455 %1456 - OpSelectionMerge %1458 None - OpBranchConditional %1457 %1459 %1458 - %1459 = OpLabel - %1460 = OpFSub %float %1454 %float_n67_5 - %1461 = OpFMul %float %1460 %float_0_0296296291 - %1462 = OpConvertFToS %int %1461 - %1463 = OpConvertSToF %float %1462 - %1464 = OpFSub %float %1461 %1463 - %1465 = OpFMul %float %1464 %1464 - %1466 = OpFMul %float %1465 %1464 - %1467 = OpIEqual %bool %1462 %int_3 - OpSelectionMerge %1468 None - OpBranchConditional %1467 %1469 %1470 - %1470 = OpLabel - %1471 = OpIEqual %bool %1462 %int_2 - OpSelectionMerge %1472 None - OpBranchConditional %1471 %1473 %1474 - %1474 = OpLabel - %1475 = OpIEqual %bool %1462 %int_1 - OpSelectionMerge %1476 None - OpBranchConditional %1475 %1477 %1478 - %1478 = OpLabel - %1479 = OpIEqual %bool %1462 %int_0 - OpSelectionMerge %1480 None - OpBranchConditional %1479 %1481 %1482 - %1482 = OpLabel - OpBranch %1480 - %1481 = OpLabel - %1483 = OpFMul %float %1466 %float_0_166666672 - OpBranch %1480 - %1480 = OpLabel - %1484 = OpPhi %float %float_0 %1482 %1483 %1481 - OpBranch %1476 - %1477 = OpLabel - %1485 = OpFMul %float %1466 %float_n0_5 - %1486 = OpFMul %float %1465 %float_0_5 - %1487 = OpFAdd %float %1485 %1486 - %1488 = OpFMul %float %1464 %float_0_5 - %1489 = OpFAdd %float %1487 %1488 - %1490 = OpFAdd %float %1489 %float_0_166666672 - OpBranch %1476 - %1476 = OpLabel - %1491 = OpPhi %float %1484 %1480 %1490 %1477 - OpBranch %1472 - %1473 = OpLabel - %1492 = OpFMul %float %1466 %float_0_5 - %1493 = OpFMul %float %1465 %float_n1 - %1494 = OpFAdd %float %1492 %1493 - %1495 = OpFAdd %float %1494 %float_0_666666687 - OpBranch %1472 - %1472 = OpLabel - %1496 = OpPhi %float %1491 %1476 %1495 %1473 - OpBranch %1468 - %1469 = OpLabel - %1497 = OpFMul %float %1466 %float_n0_166666672 - %1498 = OpFMul %float %1465 %float_0_5 - %1499 = OpFAdd %float %1497 %1498 - %1500 = OpFMul %float %1464 %float_n0_5 - %1501 = OpFAdd %float %1499 %1500 - %1502 = OpFAdd %float %1501 %float_0_166666672 - OpBranch %1468 - %1468 = OpLabel - %1503 = OpPhi %float %1496 %1472 %1502 %1469 - OpBranch %1458 - %1458 = OpLabel - %1504 = OpPhi %float %float_0 %1451 %1503 %1468 - %1505 = OpFMul %float %1504 %float_1_5 - %1506 = OpFMul %float %1505 %1381 - %1507 = OpFSub %float %float_0_0299999993 %1426 - %1508 = OpFMul %float %1506 %1507 - %1509 = OpFMul %float %1508 %float_0_180000007 - %1510 = OpFAdd %float %1426 %1509 - %1511 = OpCompositeInsert %v3float %1510 %1425 0 - %1512 = OpExtInst %v3float %1 FClamp %1511 %138 %337 - %1513 = OpVectorTimesMatrix %v3float %1512 %434 - %1514 = OpExtInst %v3float %1 FClamp %1513 %138 %337 - %1515 = OpDot %float %1514 %73 - %1516 = OpCompositeConstruct %v3float %1515 %1515 %1515 - %1517 = OpExtInst %v3float %1 FMix %1516 %1514 %241 - %1518 = OpCompositeExtract %float %1517 0 - %1519 = OpExtInst %float %1 Exp2 %float_n15 - %1520 = OpFMul %float %float_0_179999992 %1519 - %1521 = OpExtInst %float %1 Exp2 %float_18 - %1522 = OpFMul %float %float_0_179999992 %1521 - OpStore %528 %499 - OpStore %527 %500 - %1523 = OpFOrdLessThanEqual %bool %1518 %float_0 - %1524 = OpExtInst %float %1 Exp2 %float_n14 - %1525 = OpSelect %float %1523 %1524 %1518 - %1526 = OpExtInst %float %1 Log %1525 - %1527 = OpFDiv %float %1526 %1091 - %1528 = OpExtInst %float %1 Log %1520 - %1529 = OpFDiv %float %1528 %1091 - %1530 = OpFOrdLessThanEqual %bool %1527 %1529 - OpSelectionMerge %1531 None - OpBranchConditional %1530 %1532 %1533 - %1533 = OpLabel - %1534 = OpFOrdGreaterThan %bool %1527 %1529 - %1535 = OpExtInst %float %1 Log %float_0_180000007 - %1536 = OpFDiv %float %1535 %1091 - %1537 = OpFOrdLessThan %bool %1527 %1536 - %1538 = OpLogicalAnd %bool %1534 %1537 - OpSelectionMerge %1539 None - OpBranchConditional %1538 %1540 %1541 - %1541 = OpLabel - %1542 = OpFOrdGreaterThanEqual %bool %1527 %1536 - %1543 = OpExtInst %float %1 Log %1522 - %1544 = OpFDiv %float %1543 %1091 - %1545 = OpFOrdLessThan %bool %1527 %1544 - %1546 = OpLogicalAnd %bool %1542 %1545 - OpSelectionMerge %1547 None - OpBranchConditional %1546 %1548 %1549 - %1549 = OpLabel - %1550 = OpExtInst %float %1 Log %float_10000 - %1551 = OpFDiv %float %1550 %1091 - OpBranch %1547 - %1548 = OpLabel - %1552 = OpFSub %float %1527 %1536 - %1553 = OpFMul %float %float_3 %1552 - %1554 = OpFSub %float %1544 %1536 - %1555 = OpFDiv %float %1553 %1554 - %1556 = OpConvertFToS %int %1555 - %1557 = OpConvertSToF %float %1556 - %1558 = OpFSub %float %1555 %1557 - %1559 = OpAccessChain %_ptr_Function_float %527 %1556 - %1560 = OpLoad %float %1559 - %1561 = OpIAdd %int %1556 %int_1 - %1562 = OpAccessChain %_ptr_Function_float %527 %1561 - %1563 = OpLoad %float %1562 - %1564 = OpIAdd %int %1556 %int_2 - %1565 = OpAccessChain %_ptr_Function_float %527 %1564 - %1566 = OpLoad %float %1565 - %1567 = OpCompositeConstruct %v3float %1560 %1563 %1566 - %1568 = OpFMul %float %1558 %1558 - %1569 = OpCompositeConstruct %v3float %1568 %1558 %float_1 - %1570 = OpMatrixTimesVector %v3float %466 %1567 - %1571 = OpDot %float %1569 %1570 - OpBranch %1547 - %1547 = OpLabel - %1572 = OpPhi %float %1551 %1549 %1571 %1548 - OpBranch %1539 - %1540 = OpLabel - %1573 = OpFSub %float %1527 %1529 - %1574 = OpFMul %float %float_3 %1573 - %1575 = OpFSub %float %1536 %1529 - %1576 = OpFDiv %float %1574 %1575 - %1577 = OpConvertFToS %int %1576 - %1578 = OpConvertSToF %float %1577 - %1579 = OpFSub %float %1576 %1578 - %1580 = OpAccessChain %_ptr_Function_float %528 %1577 - %1581 = OpLoad %float %1580 - %1582 = OpIAdd %int %1577 %int_1 - %1583 = OpAccessChain %_ptr_Function_float %528 %1582 - %1584 = OpLoad %float %1583 - %1585 = OpIAdd %int %1577 %int_2 - %1586 = OpAccessChain %_ptr_Function_float %528 %1585 - %1587 = OpLoad %float %1586 - %1588 = OpCompositeConstruct %v3float %1581 %1584 %1587 - %1589 = OpFMul %float %1579 %1579 - %1590 = OpCompositeConstruct %v3float %1589 %1579 %float_1 - %1591 = OpMatrixTimesVector %v3float %466 %1588 - %1592 = OpDot %float %1590 %1591 - OpBranch %1539 - %1539 = OpLabel - %1593 = OpPhi %float %1572 %1547 %1592 %1540 - OpBranch %1531 - %1532 = OpLabel - %1594 = OpExtInst %float %1 Log %float_9_99999975en05 - %1595 = OpFDiv %float %1594 %1091 - OpBranch %1531 - %1531 = OpLabel - %1596 = OpPhi %float %1593 %1539 %1595 %1532 - %1597 = OpExtInst %float %1 Pow %float_10 %1596 - %1598 = OpCompositeInsert %v3float %1597 %523 0 - %1599 = OpCompositeExtract %float %1517 1 - OpStore %530 %499 - OpStore %529 %500 - %1600 = OpFOrdLessThanEqual %bool %1599 %float_0 - %1601 = OpSelect %float %1600 %1524 %1599 - %1602 = OpExtInst %float %1 Log %1601 - %1603 = OpFDiv %float %1602 %1091 - %1604 = OpFOrdLessThanEqual %bool %1603 %1529 - OpSelectionMerge %1605 None - OpBranchConditional %1604 %1606 %1607 - %1607 = OpLabel - %1608 = OpFOrdGreaterThan %bool %1603 %1529 - %1609 = OpExtInst %float %1 Log %float_0_180000007 - %1610 = OpFDiv %float %1609 %1091 - %1611 = OpFOrdLessThan %bool %1603 %1610 - %1612 = OpLogicalAnd %bool %1608 %1611 - OpSelectionMerge %1613 None - OpBranchConditional %1612 %1614 %1615 - %1615 = OpLabel - %1616 = OpFOrdGreaterThanEqual %bool %1603 %1610 - %1617 = OpExtInst %float %1 Log %1522 - %1618 = OpFDiv %float %1617 %1091 - %1619 = OpFOrdLessThan %bool %1603 %1618 - %1620 = OpLogicalAnd %bool %1616 %1619 - OpSelectionMerge %1621 None - OpBranchConditional %1620 %1622 %1623 - %1623 = OpLabel - %1624 = OpExtInst %float %1 Log %float_10000 - %1625 = OpFDiv %float %1624 %1091 - OpBranch %1621 - %1622 = OpLabel - %1626 = OpFSub %float %1603 %1610 - %1627 = OpFMul %float %float_3 %1626 - %1628 = OpFSub %float %1618 %1610 - %1629 = OpFDiv %float %1627 %1628 - %1630 = OpConvertFToS %int %1629 - %1631 = OpConvertSToF %float %1630 - %1632 = OpFSub %float %1629 %1631 - %1633 = OpAccessChain %_ptr_Function_float %529 %1630 - %1634 = OpLoad %float %1633 - %1635 = OpIAdd %int %1630 %int_1 - %1636 = OpAccessChain %_ptr_Function_float %529 %1635 - %1637 = OpLoad %float %1636 - %1638 = OpIAdd %int %1630 %int_2 - %1639 = OpAccessChain %_ptr_Function_float %529 %1638 - %1640 = OpLoad %float %1639 - %1641 = OpCompositeConstruct %v3float %1634 %1637 %1640 - %1642 = OpFMul %float %1632 %1632 - %1643 = OpCompositeConstruct %v3float %1642 %1632 %float_1 - %1644 = OpMatrixTimesVector %v3float %466 %1641 - %1645 = OpDot %float %1643 %1644 - OpBranch %1621 - %1621 = OpLabel - %1646 = OpPhi %float %1625 %1623 %1645 %1622 - OpBranch %1613 - %1614 = OpLabel - %1647 = OpFSub %float %1603 %1529 - %1648 = OpFMul %float %float_3 %1647 - %1649 = OpFSub %float %1610 %1529 - %1650 = OpFDiv %float %1648 %1649 - %1651 = OpConvertFToS %int %1650 - %1652 = OpConvertSToF %float %1651 - %1653 = OpFSub %float %1650 %1652 - %1654 = OpAccessChain %_ptr_Function_float %530 %1651 - %1655 = OpLoad %float %1654 - %1656 = OpIAdd %int %1651 %int_1 - %1657 = OpAccessChain %_ptr_Function_float %530 %1656 - %1658 = OpLoad %float %1657 - %1659 = OpIAdd %int %1651 %int_2 - %1660 = OpAccessChain %_ptr_Function_float %530 %1659 - %1661 = OpLoad %float %1660 - %1662 = OpCompositeConstruct %v3float %1655 %1658 %1661 - %1663 = OpFMul %float %1653 %1653 - %1664 = OpCompositeConstruct %v3float %1663 %1653 %float_1 - %1665 = OpMatrixTimesVector %v3float %466 %1662 - %1666 = OpDot %float %1664 %1665 - OpBranch %1613 - %1613 = OpLabel - %1667 = OpPhi %float %1646 %1621 %1666 %1614 - OpBranch %1605 - %1606 = OpLabel - %1668 = OpExtInst %float %1 Log %float_9_99999975en05 - %1669 = OpFDiv %float %1668 %1091 - OpBranch %1605 - %1605 = OpLabel - %1670 = OpPhi %float %1667 %1613 %1669 %1606 - %1671 = OpExtInst %float %1 Pow %float_10 %1670 - %1672 = OpCompositeInsert %v3float %1671 %1598 1 - %1673 = OpCompositeExtract %float %1517 2 - OpStore %532 %499 - OpStore %531 %500 - %1674 = OpFOrdLessThanEqual %bool %1673 %float_0 - %1675 = OpSelect %float %1674 %1524 %1673 - %1676 = OpExtInst %float %1 Log %1675 - %1677 = OpFDiv %float %1676 %1091 - %1678 = OpFOrdLessThanEqual %bool %1677 %1529 - OpSelectionMerge %1679 None - OpBranchConditional %1678 %1680 %1681 - %1681 = OpLabel - %1682 = OpFOrdGreaterThan %bool %1677 %1529 - %1683 = OpExtInst %float %1 Log %float_0_180000007 - %1684 = OpFDiv %float %1683 %1091 - %1685 = OpFOrdLessThan %bool %1677 %1684 - %1686 = OpLogicalAnd %bool %1682 %1685 - OpSelectionMerge %1687 None - OpBranchConditional %1686 %1688 %1689 - %1689 = OpLabel - %1690 = OpFOrdGreaterThanEqual %bool %1677 %1684 - %1691 = OpExtInst %float %1 Log %1522 - %1692 = OpFDiv %float %1691 %1091 - %1693 = OpFOrdLessThan %bool %1677 %1692 - %1694 = OpLogicalAnd %bool %1690 %1693 - OpSelectionMerge %1695 None - OpBranchConditional %1694 %1696 %1697 - %1697 = OpLabel - %1698 = OpExtInst %float %1 Log %float_10000 - %1699 = OpFDiv %float %1698 %1091 - OpBranch %1695 - %1696 = OpLabel - %1700 = OpFSub %float %1677 %1684 - %1701 = OpFMul %float %float_3 %1700 - %1702 = OpFSub %float %1692 %1684 - %1703 = OpFDiv %float %1701 %1702 - %1704 = OpConvertFToS %int %1703 - %1705 = OpConvertSToF %float %1704 - %1706 = OpFSub %float %1703 %1705 - %1707 = OpAccessChain %_ptr_Function_float %531 %1704 - %1708 = OpLoad %float %1707 - %1709 = OpIAdd %int %1704 %int_1 - %1710 = OpAccessChain %_ptr_Function_float %531 %1709 - %1711 = OpLoad %float %1710 - %1712 = OpIAdd %int %1704 %int_2 - %1713 = OpAccessChain %_ptr_Function_float %531 %1712 - %1714 = OpLoad %float %1713 - %1715 = OpCompositeConstruct %v3float %1708 %1711 %1714 - %1716 = OpFMul %float %1706 %1706 - %1717 = OpCompositeConstruct %v3float %1716 %1706 %float_1 - %1718 = OpMatrixTimesVector %v3float %466 %1715 - %1719 = OpDot %float %1717 %1718 - OpBranch %1695 - %1695 = OpLabel - %1720 = OpPhi %float %1699 %1697 %1719 %1696 - OpBranch %1687 - %1688 = OpLabel - %1721 = OpFSub %float %1677 %1529 - %1722 = OpFMul %float %float_3 %1721 - %1723 = OpFSub %float %1684 %1529 - %1724 = OpFDiv %float %1722 %1723 - %1725 = OpConvertFToS %int %1724 - %1726 = OpConvertSToF %float %1725 - %1727 = OpFSub %float %1724 %1726 - %1728 = OpAccessChain %_ptr_Function_float %532 %1725 - %1729 = OpLoad %float %1728 - %1730 = OpIAdd %int %1725 %int_1 - %1731 = OpAccessChain %_ptr_Function_float %532 %1730 - %1732 = OpLoad %float %1731 - %1733 = OpIAdd %int %1725 %int_2 - %1734 = OpAccessChain %_ptr_Function_float %532 %1733 - %1735 = OpLoad %float %1734 - %1736 = OpCompositeConstruct %v3float %1729 %1732 %1735 - %1737 = OpFMul %float %1727 %1727 - %1738 = OpCompositeConstruct %v3float %1737 %1727 %float_1 - %1739 = OpMatrixTimesVector %v3float %466 %1736 - %1740 = OpDot %float %1738 %1739 - OpBranch %1687 - %1687 = OpLabel - %1741 = OpPhi %float %1720 %1695 %1740 %1688 - OpBranch %1679 - %1680 = OpLabel - %1742 = OpExtInst %float %1 Log %float_9_99999975en05 - %1743 = OpFDiv %float %1742 %1091 - OpBranch %1679 - %1679 = OpLabel - %1744 = OpPhi %float %1741 %1687 %1743 %1680 - %1745 = OpExtInst %float %1 Pow %float_10 %1744 - %1746 = OpCompositeInsert %v3float %1745 %1672 2 - %1747 = OpVectorTimesMatrix %v3float %1746 %438 - %1748 = OpVectorTimesMatrix %v3float %1747 %434 - %1749 = OpExtInst %float %1 Pow %float_2 %float_n12 - %1750 = OpFMul %float %float_0_179999992 %1749 - OpStore %540 %499 - OpStore %539 %500 - %1751 = OpFOrdLessThanEqual %bool %1750 %float_0 - %1752 = OpSelect %float %1751 %1524 %1750 - %1753 = OpExtInst %float %1 Log %1752 - %1754 = OpFDiv %float %1753 %1091 - %1755 = OpFOrdLessThanEqual %bool %1754 %1529 - OpSelectionMerge %1756 None - OpBranchConditional %1755 %1757 %1758 - %1758 = OpLabel - %1759 = OpFOrdGreaterThan %bool %1754 %1529 - %1760 = OpExtInst %float %1 Log %float_0_180000007 - %1761 = OpFDiv %float %1760 %1091 - %1762 = OpFOrdLessThan %bool %1754 %1761 - %1763 = OpLogicalAnd %bool %1759 %1762 - OpSelectionMerge %1764 None - OpBranchConditional %1763 %1765 %1766 - %1766 = OpLabel - %1767 = OpFOrdGreaterThanEqual %bool %1754 %1761 - %1768 = OpExtInst %float %1 Log %1522 - %1769 = OpFDiv %float %1768 %1091 - %1770 = OpFOrdLessThan %bool %1754 %1769 - %1771 = OpLogicalAnd %bool %1767 %1770 - OpSelectionMerge %1772 None - OpBranchConditional %1771 %1773 %1774 - %1774 = OpLabel - %1775 = OpExtInst %float %1 Log %float_10000 - %1776 = OpFDiv %float %1775 %1091 - OpBranch %1772 - %1773 = OpLabel - %1777 = OpFSub %float %1754 %1761 - %1778 = OpFMul %float %float_3 %1777 - %1779 = OpFSub %float %1769 %1761 - %1780 = OpFDiv %float %1778 %1779 - %1781 = OpConvertFToS %int %1780 - %1782 = OpConvertSToF %float %1781 - %1783 = OpFSub %float %1780 %1782 - %1784 = OpAccessChain %_ptr_Function_float %539 %1781 - %1785 = OpLoad %float %1784 - %1786 = OpIAdd %int %1781 %int_1 - %1787 = OpAccessChain %_ptr_Function_float %539 %1786 - %1788 = OpLoad %float %1787 - %1789 = OpIAdd %int %1781 %int_2 - %1790 = OpAccessChain %_ptr_Function_float %539 %1789 - %1791 = OpLoad %float %1790 - %1792 = OpCompositeConstruct %v3float %1785 %1788 %1791 - %1793 = OpFMul %float %1783 %1783 - %1794 = OpCompositeConstruct %v3float %1793 %1783 %float_1 - %1795 = OpMatrixTimesVector %v3float %466 %1792 - %1796 = OpDot %float %1794 %1795 - OpBranch %1772 - %1772 = OpLabel - %1797 = OpPhi %float %1776 %1774 %1796 %1773 - OpBranch %1764 - %1765 = OpLabel - %1798 = OpFSub %float %1754 %1529 - %1799 = OpFMul %float %float_3 %1798 - %1800 = OpFSub %float %1761 %1529 - %1801 = OpFDiv %float %1799 %1800 - %1802 = OpConvertFToS %int %1801 - %1803 = OpConvertSToF %float %1802 - %1804 = OpFSub %float %1801 %1803 - %1805 = OpAccessChain %_ptr_Function_float %540 %1802 - %1806 = OpLoad %float %1805 - %1807 = OpIAdd %int %1802 %int_1 - %1808 = OpAccessChain %_ptr_Function_float %540 %1807 - %1809 = OpLoad %float %1808 - %1810 = OpIAdd %int %1802 %int_2 - %1811 = OpAccessChain %_ptr_Function_float %540 %1810 - %1812 = OpLoad %float %1811 - %1813 = OpCompositeConstruct %v3float %1806 %1809 %1812 - %1814 = OpFMul %float %1804 %1804 - %1815 = OpCompositeConstruct %v3float %1814 %1804 %float_1 - %1816 = OpMatrixTimesVector %v3float %466 %1813 - %1817 = OpDot %float %1815 %1816 - OpBranch %1764 - %1764 = OpLabel - %1818 = OpPhi %float %1797 %1772 %1817 %1765 - OpBranch %1756 - %1757 = OpLabel - %1819 = OpExtInst %float %1 Log %float_9_99999975en05 - %1820 = OpFDiv %float %1819 %1091 - OpBranch %1756 - %1756 = OpLabel - %1821 = OpPhi %float %1818 %1764 %1820 %1757 - %1822 = OpExtInst %float %1 Pow %float_10 %1821 - OpStore %542 %499 - OpStore %541 %500 - %1823 = OpExtInst %float %1 Log %float_0_180000007 - %1824 = OpFDiv %float %1823 %1091 - %1825 = OpFOrdLessThanEqual %bool %1824 %1529 - OpSelectionMerge %1826 None - OpBranchConditional %1825 %1827 %1828 - %1828 = OpLabel - %1829 = OpFOrdGreaterThan %bool %1824 %1529 - %1830 = OpFOrdLessThan %bool %1824 %1824 - %1831 = OpLogicalAnd %bool %1829 %1830 - OpSelectionMerge %1832 None - OpBranchConditional %1831 %1833 %1834 - %1834 = OpLabel - %1835 = OpFOrdGreaterThanEqual %bool %1824 %1824 - %1836 = OpExtInst %float %1 Log %1522 - %1837 = OpFDiv %float %1836 %1091 - %1838 = OpFOrdLessThan %bool %1824 %1837 - %1839 = OpLogicalAnd %bool %1835 %1838 - OpSelectionMerge %1840 None - OpBranchConditional %1839 %1841 %1842 - %1842 = OpLabel - %1843 = OpExtInst %float %1 Log %float_10000 - %1844 = OpFDiv %float %1843 %1091 - OpBranch %1840 - %1841 = OpLabel - %1845 = OpFSub %float %1824 %1824 - %1846 = OpFMul %float %float_3 %1845 - %1847 = OpFSub %float %1837 %1824 - %1848 = OpFDiv %float %1846 %1847 - %1849 = OpConvertFToS %int %1848 - %1850 = OpConvertSToF %float %1849 - %1851 = OpFSub %float %1848 %1850 - %1852 = OpAccessChain %_ptr_Function_float %541 %1849 - %1853 = OpLoad %float %1852 - %1854 = OpIAdd %int %1849 %int_1 - %1855 = OpAccessChain %_ptr_Function_float %541 %1854 - %1856 = OpLoad %float %1855 - %1857 = OpIAdd %int %1849 %int_2 - %1858 = OpAccessChain %_ptr_Function_float %541 %1857 - %1859 = OpLoad %float %1858 - %1860 = OpCompositeConstruct %v3float %1853 %1856 %1859 - %1861 = OpFMul %float %1851 %1851 - %1862 = OpCompositeConstruct %v3float %1861 %1851 %float_1 - %1863 = OpMatrixTimesVector %v3float %466 %1860 - %1864 = OpDot %float %1862 %1863 - OpBranch %1840 - %1840 = OpLabel - %1865 = OpPhi %float %1844 %1842 %1864 %1841 - OpBranch %1832 - %1833 = OpLabel - %1866 = OpAccessChain %_ptr_Function_float %542 %int_3 - %1867 = OpLoad %float %1866 - %1868 = OpAccessChain %_ptr_Function_float %542 %int_4 - %1869 = OpLoad %float %1868 - %1870 = OpAccessChain %_ptr_Function_float %542 %int_5 - %1871 = OpLoad %float %1870 - %1872 = OpCompositeConstruct %v3float %1867 %1869 %1871 - %1873 = OpMatrixTimesVector %v3float %466 %1872 - %1874 = OpCompositeExtract %float %1873 2 - OpBranch %1832 - %1832 = OpLabel - %1875 = OpPhi %float %1865 %1840 %1874 %1833 - OpBranch %1826 - %1827 = OpLabel - %1876 = OpExtInst %float %1 Log %float_9_99999975en05 - %1877 = OpFDiv %float %1876 %1091 - OpBranch %1826 - %1826 = OpLabel - %1878 = OpPhi %float %1875 %1832 %1877 %1827 - %1879 = OpExtInst %float %1 Pow %float_10 %1878 - %1880 = OpExtInst %float %1 Pow %float_2 %float_11 - %1881 = OpFMul %float %float_0_179999992 %1880 - OpStore %544 %499 - OpStore %543 %500 - %1882 = OpFOrdLessThanEqual %bool %1881 %float_0 - %1883 = OpSelect %float %1882 %1524 %1881 - %1884 = OpExtInst %float %1 Log %1883 - %1885 = OpFDiv %float %1884 %1091 - %1886 = OpFOrdLessThanEqual %bool %1885 %1529 - OpSelectionMerge %1887 None - OpBranchConditional %1886 %1888 %1889 - %1889 = OpLabel - %1890 = OpFOrdGreaterThan %bool %1885 %1529 - %1891 = OpFOrdLessThan %bool %1885 %1824 - %1892 = OpLogicalAnd %bool %1890 %1891 - OpSelectionMerge %1893 None - OpBranchConditional %1892 %1894 %1895 - %1895 = OpLabel - %1896 = OpFOrdGreaterThanEqual %bool %1885 %1824 - %1897 = OpExtInst %float %1 Log %1522 - %1898 = OpFDiv %float %1897 %1091 - %1899 = OpFOrdLessThan %bool %1885 %1898 - %1900 = OpLogicalAnd %bool %1896 %1899 - OpSelectionMerge %1901 None - OpBranchConditional %1900 %1902 %1903 - %1903 = OpLabel - %1904 = OpExtInst %float %1 Log %float_10000 - %1905 = OpFDiv %float %1904 %1091 - OpBranch %1901 - %1902 = OpLabel - %1906 = OpFSub %float %1885 %1824 - %1907 = OpFMul %float %float_3 %1906 - %1908 = OpFSub %float %1898 %1824 - %1909 = OpFDiv %float %1907 %1908 - %1910 = OpConvertFToS %int %1909 - %1911 = OpConvertSToF %float %1910 - %1912 = OpFSub %float %1909 %1911 - %1913 = OpAccessChain %_ptr_Function_float %543 %1910 - %1914 = OpLoad %float %1913 - %1915 = OpIAdd %int %1910 %int_1 - %1916 = OpAccessChain %_ptr_Function_float %543 %1915 - %1917 = OpLoad %float %1916 - %1918 = OpIAdd %int %1910 %int_2 - %1919 = OpAccessChain %_ptr_Function_float %543 %1918 - %1920 = OpLoad %float %1919 - %1921 = OpCompositeConstruct %v3float %1914 %1917 %1920 - %1922 = OpFMul %float %1912 %1912 - %1923 = OpCompositeConstruct %v3float %1922 %1912 %float_1 - %1924 = OpMatrixTimesVector %v3float %466 %1921 - %1925 = OpDot %float %1923 %1924 - OpBranch %1901 - %1901 = OpLabel - %1926 = OpPhi %float %1905 %1903 %1925 %1902 - OpBranch %1893 - %1894 = OpLabel - %1927 = OpFSub %float %1885 %1529 - %1928 = OpFMul %float %float_3 %1927 - %1929 = OpFSub %float %1824 %1529 - %1930 = OpFDiv %float %1928 %1929 - %1931 = OpConvertFToS %int %1930 - %1932 = OpConvertSToF %float %1931 - %1933 = OpFSub %float %1930 %1932 - %1934 = OpAccessChain %_ptr_Function_float %544 %1931 - %1935 = OpLoad %float %1934 - %1936 = OpIAdd %int %1931 %int_1 - %1937 = OpAccessChain %_ptr_Function_float %544 %1936 - %1938 = OpLoad %float %1937 - %1939 = OpIAdd %int %1931 %int_2 - %1940 = OpAccessChain %_ptr_Function_float %544 %1939 - %1941 = OpLoad %float %1940 - %1942 = OpCompositeConstruct %v3float %1935 %1938 %1941 - %1943 = OpFMul %float %1933 %1933 - %1944 = OpCompositeConstruct %v3float %1943 %1933 %float_1 - %1945 = OpMatrixTimesVector %v3float %466 %1942 - %1946 = OpDot %float %1944 %1945 - OpBranch %1893 - %1893 = OpLabel - %1947 = OpPhi %float %1926 %1901 %1946 %1894 - OpBranch %1887 - %1888 = OpLabel - %1948 = OpExtInst %float %1 Log %float_9_99999975en05 - %1949 = OpFDiv %float %1948 %1091 - OpBranch %1887 - %1887 = OpLabel - %1950 = OpPhi %float %1947 %1893 %1949 %1888 - %1951 = OpExtInst %float %1 Pow %float_10 %1950 - %1952 = OpCompositeExtract %float %1748 0 - OpStore %538 %506 - OpStore %537 %507 - %1953 = OpFOrdLessThanEqual %bool %1952 %float_0 - %1954 = OpSelect %float %1953 %float_9_99999975en05 %1952 - %1955 = OpExtInst %float %1 Log %1954 - %1956 = OpFDiv %float %1955 %1091 - %1957 = OpExtInst %float %1 Log %1822 - %1958 = OpFDiv %float %1957 %1091 - %1959 = OpFOrdLessThanEqual %bool %1956 %1958 - OpSelectionMerge %1960 None - OpBranchConditional %1959 %1961 %1962 - %1962 = OpLabel - %1963 = OpFOrdGreaterThan %bool %1956 %1958 - %1964 = OpExtInst %float %1 Log %1879 - %1965 = OpFDiv %float %1964 %1091 - %1966 = OpFOrdLessThan %bool %1956 %1965 - %1967 = OpLogicalAnd %bool %1963 %1966 - OpSelectionMerge %1968 None - OpBranchConditional %1967 %1969 %1970 - %1970 = OpLabel - %1971 = OpFOrdGreaterThanEqual %bool %1956 %1965 - %1972 = OpExtInst %float %1 Log %1951 - %1973 = OpFDiv %float %1972 %1091 - %1974 = OpFOrdLessThan %bool %1956 %1973 - %1975 = OpLogicalAnd %bool %1971 %1974 - OpSelectionMerge %1976 None - OpBranchConditional %1975 %1977 %1978 - %1978 = OpLabel - %1979 = OpFMul %float %1956 %float_0_119999997 - %1980 = OpExtInst %float %1 Log %float_2000 - %1981 = OpFDiv %float %1980 %1091 - %1982 = OpFMul %float %float_0_119999997 %1972 - %1983 = OpFDiv %float %1982 %1091 - %1984 = OpFSub %float %1981 %1983 - %1985 = OpFAdd %float %1979 %1984 - OpBranch %1976 - %1977 = OpLabel - %1986 = OpFSub %float %1956 %1965 - %1987 = OpFMul %float %float_7 %1986 - %1988 = OpFSub %float %1973 %1965 - %1989 = OpFDiv %float %1987 %1988 - %1990 = OpConvertFToS %int %1989 - %1991 = OpConvertSToF %float %1990 - %1992 = OpFSub %float %1989 %1991 - %1993 = OpAccessChain %_ptr_Function_float %537 %1990 - %1994 = OpLoad %float %1993 - %1995 = OpIAdd %int %1990 %int_1 - %1996 = OpAccessChain %_ptr_Function_float %537 %1995 - %1997 = OpLoad %float %1996 - %1998 = OpIAdd %int %1990 %int_2 - %1999 = OpAccessChain %_ptr_Function_float %537 %1998 - %2000 = OpLoad %float %1999 - %2001 = OpCompositeConstruct %v3float %1994 %1997 %2000 - %2002 = OpFMul %float %1992 %1992 - %2003 = OpCompositeConstruct %v3float %2002 %1992 %float_1 - %2004 = OpMatrixTimesVector %v3float %466 %2001 - %2005 = OpDot %float %2003 %2004 - OpBranch %1976 - %1976 = OpLabel - %2006 = OpPhi %float %1985 %1978 %2005 %1977 - OpBranch %1968 - %1969 = OpLabel - %2007 = OpFSub %float %1956 %1958 - %2008 = OpFMul %float %float_7 %2007 - %2009 = OpFSub %float %1965 %1958 - %2010 = OpFDiv %float %2008 %2009 - %2011 = OpConvertFToS %int %2010 - %2012 = OpConvertSToF %float %2011 - %2013 = OpFSub %float %2010 %2012 - %2014 = OpAccessChain %_ptr_Function_float %538 %2011 - %2015 = OpLoad %float %2014 - %2016 = OpIAdd %int %2011 %int_1 - %2017 = OpAccessChain %_ptr_Function_float %538 %2016 - %2018 = OpLoad %float %2017 - %2019 = OpIAdd %int %2011 %int_2 - %2020 = OpAccessChain %_ptr_Function_float %538 %2019 - %2021 = OpLoad %float %2020 - %2022 = OpCompositeConstruct %v3float %2015 %2018 %2021 - %2023 = OpFMul %float %2013 %2013 - %2024 = OpCompositeConstruct %v3float %2023 %2013 %float_1 - %2025 = OpMatrixTimesVector %v3float %466 %2022 - %2026 = OpDot %float %2024 %2025 - OpBranch %1968 - %1968 = OpLabel - %2027 = OpPhi %float %2006 %1976 %2026 %1969 - OpBranch %1960 - %1961 = OpLabel - %2028 = OpExtInst %float %1 Log %float_0_00499999989 - %2029 = OpFDiv %float %2028 %1091 - OpBranch %1960 - %1960 = OpLabel - %2030 = OpPhi %float %2027 %1968 %2029 %1961 - %2031 = OpExtInst %float %1 Pow %float_10 %2030 - %2032 = OpCompositeInsert %v3float %2031 %523 0 - %2033 = OpCompositeExtract %float %1748 1 - OpStore %536 %506 - OpStore %535 %507 - %2034 = OpFOrdLessThanEqual %bool %2033 %float_0 - %2035 = OpSelect %float %2034 %float_9_99999975en05 %2033 - %2036 = OpExtInst %float %1 Log %2035 - %2037 = OpFDiv %float %2036 %1091 - %2038 = OpFOrdLessThanEqual %bool %2037 %1958 - OpSelectionMerge %2039 None - OpBranchConditional %2038 %2040 %2041 - %2041 = OpLabel - %2042 = OpFOrdGreaterThan %bool %2037 %1958 - %2043 = OpExtInst %float %1 Log %1879 - %2044 = OpFDiv %float %2043 %1091 - %2045 = OpFOrdLessThan %bool %2037 %2044 - %2046 = OpLogicalAnd %bool %2042 %2045 - OpSelectionMerge %2047 None - OpBranchConditional %2046 %2048 %2049 - %2049 = OpLabel - %2050 = OpFOrdGreaterThanEqual %bool %2037 %2044 - %2051 = OpExtInst %float %1 Log %1951 - %2052 = OpFDiv %float %2051 %1091 - %2053 = OpFOrdLessThan %bool %2037 %2052 - %2054 = OpLogicalAnd %bool %2050 %2053 - OpSelectionMerge %2055 None - OpBranchConditional %2054 %2056 %2057 - %2057 = OpLabel - %2058 = OpFMul %float %2037 %float_0_119999997 - %2059 = OpExtInst %float %1 Log %float_2000 - %2060 = OpFDiv %float %2059 %1091 - %2061 = OpFMul %float %float_0_119999997 %2051 - %2062 = OpFDiv %float %2061 %1091 - %2063 = OpFSub %float %2060 %2062 - %2064 = OpFAdd %float %2058 %2063 - OpBranch %2055 - %2056 = OpLabel - %2065 = OpFSub %float %2037 %2044 - %2066 = OpFMul %float %float_7 %2065 - %2067 = OpFSub %float %2052 %2044 - %2068 = OpFDiv %float %2066 %2067 - %2069 = OpConvertFToS %int %2068 - %2070 = OpConvertSToF %float %2069 - %2071 = OpFSub %float %2068 %2070 - %2072 = OpAccessChain %_ptr_Function_float %535 %2069 - %2073 = OpLoad %float %2072 - %2074 = OpIAdd %int %2069 %int_1 - %2075 = OpAccessChain %_ptr_Function_float %535 %2074 - %2076 = OpLoad %float %2075 - %2077 = OpIAdd %int %2069 %int_2 - %2078 = OpAccessChain %_ptr_Function_float %535 %2077 - %2079 = OpLoad %float %2078 - %2080 = OpCompositeConstruct %v3float %2073 %2076 %2079 - %2081 = OpFMul %float %2071 %2071 - %2082 = OpCompositeConstruct %v3float %2081 %2071 %float_1 - %2083 = OpMatrixTimesVector %v3float %466 %2080 - %2084 = OpDot %float %2082 %2083 - OpBranch %2055 - %2055 = OpLabel - %2085 = OpPhi %float %2064 %2057 %2084 %2056 - OpBranch %2047 - %2048 = OpLabel - %2086 = OpFSub %float %2037 %1958 - %2087 = OpFMul %float %float_7 %2086 - %2088 = OpFSub %float %2044 %1958 - %2089 = OpFDiv %float %2087 %2088 - %2090 = OpConvertFToS %int %2089 - %2091 = OpConvertSToF %float %2090 - %2092 = OpFSub %float %2089 %2091 - %2093 = OpAccessChain %_ptr_Function_float %536 %2090 - %2094 = OpLoad %float %2093 - %2095 = OpIAdd %int %2090 %int_1 - %2096 = OpAccessChain %_ptr_Function_float %536 %2095 - %2097 = OpLoad %float %2096 - %2098 = OpIAdd %int %2090 %int_2 - %2099 = OpAccessChain %_ptr_Function_float %536 %2098 - %2100 = OpLoad %float %2099 - %2101 = OpCompositeConstruct %v3float %2094 %2097 %2100 - %2102 = OpFMul %float %2092 %2092 - %2103 = OpCompositeConstruct %v3float %2102 %2092 %float_1 - %2104 = OpMatrixTimesVector %v3float %466 %2101 - %2105 = OpDot %float %2103 %2104 - OpBranch %2047 - %2047 = OpLabel - %2106 = OpPhi %float %2085 %2055 %2105 %2048 - OpBranch %2039 - %2040 = OpLabel - %2107 = OpExtInst %float %1 Log %float_0_00499999989 - %2108 = OpFDiv %float %2107 %1091 - OpBranch %2039 - %2039 = OpLabel - %2109 = OpPhi %float %2106 %2047 %2108 %2040 - %2110 = OpExtInst %float %1 Pow %float_10 %2109 - %2111 = OpCompositeInsert %v3float %2110 %2032 1 - %2112 = OpCompositeExtract %float %1748 2 - OpStore %534 %506 - OpStore %533 %507 - %2113 = OpFOrdLessThanEqual %bool %2112 %float_0 - %2114 = OpSelect %float %2113 %float_9_99999975en05 %2112 - %2115 = OpExtInst %float %1 Log %2114 - %2116 = OpFDiv %float %2115 %1091 - %2117 = OpFOrdLessThanEqual %bool %2116 %1958 - OpSelectionMerge %2118 None - OpBranchConditional %2117 %2119 %2120 - %2120 = OpLabel - %2121 = OpFOrdGreaterThan %bool %2116 %1958 - %2122 = OpExtInst %float %1 Log %1879 - %2123 = OpFDiv %float %2122 %1091 - %2124 = OpFOrdLessThan %bool %2116 %2123 - %2125 = OpLogicalAnd %bool %2121 %2124 - OpSelectionMerge %2126 None - OpBranchConditional %2125 %2127 %2128 - %2128 = OpLabel - %2129 = OpFOrdGreaterThanEqual %bool %2116 %2123 - %2130 = OpExtInst %float %1 Log %1951 - %2131 = OpFDiv %float %2130 %1091 - %2132 = OpFOrdLessThan %bool %2116 %2131 - %2133 = OpLogicalAnd %bool %2129 %2132 - OpSelectionMerge %2134 None - OpBranchConditional %2133 %2135 %2136 - %2136 = OpLabel - %2137 = OpFMul %float %2116 %float_0_119999997 - %2138 = OpExtInst %float %1 Log %float_2000 - %2139 = OpFDiv %float %2138 %1091 - %2140 = OpFMul %float %float_0_119999997 %2130 - %2141 = OpFDiv %float %2140 %1091 - %2142 = OpFSub %float %2139 %2141 - %2143 = OpFAdd %float %2137 %2142 - OpBranch %2134 - %2135 = OpLabel - %2144 = OpFSub %float %2116 %2123 - %2145 = OpFMul %float %float_7 %2144 - %2146 = OpFSub %float %2131 %2123 - %2147 = OpFDiv %float %2145 %2146 - %2148 = OpConvertFToS %int %2147 - %2149 = OpConvertSToF %float %2148 - %2150 = OpFSub %float %2147 %2149 - %2151 = OpAccessChain %_ptr_Function_float %533 %2148 - %2152 = OpLoad %float %2151 - %2153 = OpIAdd %int %2148 %int_1 - %2154 = OpAccessChain %_ptr_Function_float %533 %2153 - %2155 = OpLoad %float %2154 - %2156 = OpIAdd %int %2148 %int_2 - %2157 = OpAccessChain %_ptr_Function_float %533 %2156 - %2158 = OpLoad %float %2157 - %2159 = OpCompositeConstruct %v3float %2152 %2155 %2158 - %2160 = OpFMul %float %2150 %2150 - %2161 = OpCompositeConstruct %v3float %2160 %2150 %float_1 - %2162 = OpMatrixTimesVector %v3float %466 %2159 - %2163 = OpDot %float %2161 %2162 - OpBranch %2134 - %2134 = OpLabel - %2164 = OpPhi %float %2143 %2136 %2163 %2135 - OpBranch %2126 - %2127 = OpLabel - %2165 = OpFSub %float %2116 %1958 - %2166 = OpFMul %float %float_7 %2165 - %2167 = OpFSub %float %2123 %1958 - %2168 = OpFDiv %float %2166 %2167 - %2169 = OpConvertFToS %int %2168 - %2170 = OpConvertSToF %float %2169 - %2171 = OpFSub %float %2168 %2170 - %2172 = OpAccessChain %_ptr_Function_float %534 %2169 - %2173 = OpLoad %float %2172 - %2174 = OpIAdd %int %2169 %int_1 - %2175 = OpAccessChain %_ptr_Function_float %534 %2174 - %2176 = OpLoad %float %2175 - %2177 = OpIAdd %int %2169 %int_2 - %2178 = OpAccessChain %_ptr_Function_float %534 %2177 - %2179 = OpLoad %float %2178 - %2180 = OpCompositeConstruct %v3float %2173 %2176 %2179 - %2181 = OpFMul %float %2171 %2171 - %2182 = OpCompositeConstruct %v3float %2181 %2171 %float_1 - %2183 = OpMatrixTimesVector %v3float %466 %2180 - %2184 = OpDot %float %2182 %2183 - OpBranch %2126 - %2126 = OpLabel - %2185 = OpPhi %float %2164 %2134 %2184 %2127 - OpBranch %2118 - %2119 = OpLabel - %2186 = OpExtInst %float %1 Log %float_0_00499999989 - %2187 = OpFDiv %float %2186 %1091 - OpBranch %2118 - %2118 = OpLabel - %2188 = OpPhi %float %2185 %2126 %2187 %2119 - %2189 = OpExtInst %float %1 Pow %float_10 %2188 - %2190 = OpCompositeInsert %v3float %2189 %2111 2 - %2191 = OpVectorTimesMatrix %v3float %2190 %602 - %2192 = OpFMul %v3float %2191 %519 - %2193 = OpExtInst %v3float %1 Pow %2192 %286 - %2194 = OpFMul %v3float %196 %2193 - %2195 = OpFAdd %v3float %195 %2194 - %2196 = OpFMul %v3float %197 %2193 - %2197 = OpFAdd %v3float %141 %2196 - %2198 = OpFDiv %v3float %141 %2197 - %2199 = OpFMul %v3float %2195 %2198 - %2200 = OpExtInst %v3float %1 Pow %2199 %287 - OpBranch %1342 - %1342 = OpLabel - %2201 = OpPhi %v3float %1366 %1346 %2200 %2118 - OpBranch %1336 - %1337 = OpLabel - %2202 = OpMatrixTimesMatrix %mat3v3float %572 %423 - %2203 = OpFMul %v3float %932 %285 - %2204 = OpVectorTimesMatrix %v3float %2203 %2202 - %2205 = OpCompositeExtract %float %2204 0 - %2206 = OpCompositeExtract %float %2204 1 - %2207 = OpExtInst %float %1 FMin %2205 %2206 - %2208 = OpCompositeExtract %float %2204 2 - %2209 = OpExtInst %float %1 FMin %2207 %2208 - %2210 = OpExtInst %float %1 FMax %2205 %2206 - %2211 = OpExtInst %float %1 FMax %2210 %2208 - %2212 = OpExtInst %float %1 FMax %2211 %float_1_00000001en10 - %2213 = OpExtInst %float %1 FMax %2209 %float_1_00000001en10 - %2214 = OpFSub %float %2212 %2213 - %2215 = OpExtInst %float %1 FMax %2211 %float_0_00999999978 - %2216 = OpFDiv %float %2214 %2215 - %2217 = OpFSub %float %2208 %2206 - %2218 = OpFMul %float %2208 %2217 - %2219 = OpFSub %float %2206 %2205 - %2220 = OpFMul %float %2206 %2219 - %2221 = OpFAdd %float %2218 %2220 - %2222 = OpFSub %float %2205 %2208 - %2223 = OpFMul %float %2205 %2222 - %2224 = OpFAdd %float %2221 %2223 - %2225 = OpExtInst %float %1 Sqrt %2224 - %2226 = OpFAdd %float %2208 %2206 - %2227 = OpFAdd %float %2226 %2205 - %2228 = OpFMul %float %float_1_75 %2225 - %2229 = OpFAdd %float %2227 %2228 - %2230 = OpFMul %float %2229 %float_0_333333343 - %2231 = OpFSub %float %2216 %float_0_400000006 - %2232 = OpFMul %float %2231 %float_5 - %2233 = OpFMul %float %2231 %float_2_5 - %2234 = OpExtInst %float %1 FAbs %2233 - %2235 = OpFSub %float %float_1 %2234 - %2236 = OpExtInst %float %1 FMax %2235 %float_0 - %2237 = OpExtInst %float %1 FSign %2232 - %2238 = OpConvertFToS %int %2237 - %2239 = OpConvertSToF %float %2238 - %2240 = OpFMul %float %2236 %2236 - %2241 = OpFSub %float %float_1 %2240 - %2242 = OpFMul %float %2239 %2241 - %2243 = OpFAdd %float %float_1 %2242 - %2244 = OpFMul %float %2243 %float_0_0250000004 - %2245 = OpFOrdLessThanEqual %bool %2230 %float_0_0533333346 - OpSelectionMerge %2246 None - OpBranchConditional %2245 %2247 %2248 - %2248 = OpLabel - %2249 = OpFOrdGreaterThanEqual %bool %2230 %float_0_159999996 - OpSelectionMerge %2250 None - OpBranchConditional %2249 %2251 %2252 - %2252 = OpLabel - %2253 = OpFDiv %float %float_0_239999995 %2229 - %2254 = OpFSub %float %2253 %float_0_5 - %2255 = OpFMul %float %2244 %2254 - OpBranch %2250 - %2251 = OpLabel - OpBranch %2250 - %2250 = OpLabel - %2256 = OpPhi %float %2255 %2252 %float_0 %2251 - OpBranch %2246 - %2247 = OpLabel - OpBranch %2246 - %2246 = OpLabel - %2257 = OpPhi %float %2256 %2250 %2244 %2247 - %2258 = OpFAdd %float %float_1 %2257 - %2259 = OpCompositeConstruct %v3float %2258 %2258 %2258 - %2260 = OpFMul %v3float %2204 %2259 - %2261 = OpCompositeExtract %float %2260 0 - %2262 = OpCompositeExtract %float %2260 1 - %2263 = OpFOrdEqual %bool %2261 %2262 - %2264 = OpCompositeExtract %float %2260 2 - %2265 = OpFOrdEqual %bool %2262 %2264 - %2266 = OpLogicalAnd %bool %2263 %2265 - OpSelectionMerge %2267 None - OpBranchConditional %2266 %2268 %2269 - %2269 = OpLabel - %2270 = OpExtInst %float %1 Sqrt %float_3 - %2271 = OpFSub %float %2262 %2264 - %2272 = OpFMul %float %2270 %2271 - %2273 = OpFMul %float %float_2 %2261 - %2274 = OpFSub %float %2273 %2262 - %2275 = OpFSub %float %2274 %2264 - %2276 = OpExtInst %float %1 Atan2 %2272 %2275 - %2277 = OpFMul %float %float_57_2957764 %2276 - OpBranch %2267 - %2268 = OpLabel - OpBranch %2267 - %2267 = OpLabel - %2278 = OpPhi %float %2277 %2269 %float_0 %2268 - %2279 = OpFOrdLessThan %bool %2278 %float_0 - OpSelectionMerge %2280 None - OpBranchConditional %2279 %2281 %2280 - %2281 = OpLabel - %2282 = OpFAdd %float %2278 %float_360 - OpBranch %2280 - %2280 = OpLabel - %2283 = OpPhi %float %2278 %2267 %2282 %2281 - %2284 = OpExtInst %float %1 FClamp %2283 %float_0 %float_360 - %2285 = OpFOrdGreaterThan %bool %2284 %float_180 - OpSelectionMerge %2286 None - OpBranchConditional %2285 %2287 %2286 - %2287 = OpLabel - %2288 = OpFSub %float %2284 %float_360 - OpBranch %2286 - %2286 = OpLabel - %2289 = OpPhi %float %2284 %2280 %2288 %2287 - %2290 = OpFOrdGreaterThan %bool %2289 %float_n67_5 - %2291 = OpFOrdLessThan %bool %2289 %float_67_5 - %2292 = OpLogicalAnd %bool %2290 %2291 - OpSelectionMerge %2293 None - OpBranchConditional %2292 %2294 %2293 - %2294 = OpLabel - %2295 = OpFSub %float %2289 %float_n67_5 - %2296 = OpFMul %float %2295 %float_0_0296296291 - %2297 = OpConvertFToS %int %2296 - %2298 = OpConvertSToF %float %2297 - %2299 = OpFSub %float %2296 %2298 - %2300 = OpFMul %float %2299 %2299 - %2301 = OpFMul %float %2300 %2299 - %2302 = OpIEqual %bool %2297 %int_3 - OpSelectionMerge %2303 None - OpBranchConditional %2302 %2304 %2305 - %2305 = OpLabel - %2306 = OpIEqual %bool %2297 %int_2 - OpSelectionMerge %2307 None - OpBranchConditional %2306 %2308 %2309 - %2309 = OpLabel - %2310 = OpIEqual %bool %2297 %int_1 - OpSelectionMerge %2311 None - OpBranchConditional %2310 %2312 %2313 - %2313 = OpLabel - %2314 = OpIEqual %bool %2297 %int_0 - OpSelectionMerge %2315 None - OpBranchConditional %2314 %2316 %2317 - %2317 = OpLabel - OpBranch %2315 - %2316 = OpLabel - %2318 = OpFMul %float %2301 %float_0_166666672 - OpBranch %2315 - %2315 = OpLabel - %2319 = OpPhi %float %float_0 %2317 %2318 %2316 - OpBranch %2311 - %2312 = OpLabel - %2320 = OpFMul %float %2301 %float_n0_5 - %2321 = OpFMul %float %2300 %float_0_5 - %2322 = OpFAdd %float %2320 %2321 - %2323 = OpFMul %float %2299 %float_0_5 - %2324 = OpFAdd %float %2322 %2323 - %2325 = OpFAdd %float %2324 %float_0_166666672 - OpBranch %2311 - %2311 = OpLabel - %2326 = OpPhi %float %2319 %2315 %2325 %2312 - OpBranch %2307 - %2308 = OpLabel - %2327 = OpFMul %float %2301 %float_0_5 - %2328 = OpFMul %float %2300 %float_n1 - %2329 = OpFAdd %float %2327 %2328 - %2330 = OpFAdd %float %2329 %float_0_666666687 - OpBranch %2307 - %2307 = OpLabel - %2331 = OpPhi %float %2326 %2311 %2330 %2308 - OpBranch %2303 - %2304 = OpLabel - %2332 = OpFMul %float %2301 %float_n0_166666672 - %2333 = OpFMul %float %2300 %float_0_5 - %2334 = OpFAdd %float %2332 %2333 - %2335 = OpFMul %float %2299 %float_n0_5 - %2336 = OpFAdd %float %2334 %2335 - %2337 = OpFAdd %float %2336 %float_0_166666672 - OpBranch %2303 - %2303 = OpLabel - %2338 = OpPhi %float %2331 %2307 %2337 %2304 - OpBranch %2293 - %2293 = OpLabel - %2339 = OpPhi %float %float_0 %2286 %2338 %2303 - %2340 = OpFMul %float %2339 %float_1_5 - %2341 = OpFMul %float %2340 %2216 - %2342 = OpFSub %float %float_0_0299999993 %2261 - %2343 = OpFMul %float %2341 %2342 - %2344 = OpFMul %float %2343 %float_0_180000007 - %2345 = OpFAdd %float %2261 %2344 - %2346 = OpCompositeInsert %v3float %2345 %2260 0 - %2347 = OpExtInst %v3float %1 FClamp %2346 %138 %337 - %2348 = OpVectorTimesMatrix %v3float %2347 %434 - %2349 = OpExtInst %v3float %1 FClamp %2348 %138 %337 - %2350 = OpDot %float %2349 %73 - %2351 = OpCompositeConstruct %v3float %2350 %2350 %2350 - %2352 = OpExtInst %v3float %1 FMix %2351 %2349 %241 - %2353 = OpCompositeExtract %float %2352 0 - %2354 = OpExtInst %float %1 Exp2 %float_n15 - %2355 = OpFMul %float %float_0_179999992 %2354 - %2356 = OpExtInst %float %1 Exp2 %float_18 - %2357 = OpFMul %float %float_0_179999992 %2356 - OpStore %546 %499 - OpStore %545 %500 - %2358 = OpFOrdLessThanEqual %bool %2353 %float_0 - %2359 = OpExtInst %float %1 Exp2 %float_n14 - %2360 = OpSelect %float %2358 %2359 %2353 - %2361 = OpExtInst %float %1 Log %2360 - %2362 = OpFDiv %float %2361 %1091 - %2363 = OpExtInst %float %1 Log %2355 - %2364 = OpFDiv %float %2363 %1091 - %2365 = OpFOrdLessThanEqual %bool %2362 %2364 - OpSelectionMerge %2366 None - OpBranchConditional %2365 %2367 %2368 - %2368 = OpLabel - %2369 = OpFOrdGreaterThan %bool %2362 %2364 - %2370 = OpExtInst %float %1 Log %float_0_180000007 - %2371 = OpFDiv %float %2370 %1091 - %2372 = OpFOrdLessThan %bool %2362 %2371 - %2373 = OpLogicalAnd %bool %2369 %2372 - OpSelectionMerge %2374 None - OpBranchConditional %2373 %2375 %2376 - %2376 = OpLabel - %2377 = OpFOrdGreaterThanEqual %bool %2362 %2371 - %2378 = OpExtInst %float %1 Log %2357 - %2379 = OpFDiv %float %2378 %1091 - %2380 = OpFOrdLessThan %bool %2362 %2379 - %2381 = OpLogicalAnd %bool %2377 %2380 - OpSelectionMerge %2382 None - OpBranchConditional %2381 %2383 %2384 - %2384 = OpLabel - %2385 = OpExtInst %float %1 Log %float_10000 - %2386 = OpFDiv %float %2385 %1091 - OpBranch %2382 - %2383 = OpLabel - %2387 = OpFSub %float %2362 %2371 - %2388 = OpFMul %float %float_3 %2387 - %2389 = OpFSub %float %2379 %2371 - %2390 = OpFDiv %float %2388 %2389 - %2391 = OpConvertFToS %int %2390 - %2392 = OpConvertSToF %float %2391 - %2393 = OpFSub %float %2390 %2392 - %2394 = OpAccessChain %_ptr_Function_float %545 %2391 - %2395 = OpLoad %float %2394 - %2396 = OpIAdd %int %2391 %int_1 - %2397 = OpAccessChain %_ptr_Function_float %545 %2396 - %2398 = OpLoad %float %2397 - %2399 = OpIAdd %int %2391 %int_2 - %2400 = OpAccessChain %_ptr_Function_float %545 %2399 - %2401 = OpLoad %float %2400 - %2402 = OpCompositeConstruct %v3float %2395 %2398 %2401 - %2403 = OpFMul %float %2393 %2393 - %2404 = OpCompositeConstruct %v3float %2403 %2393 %float_1 - %2405 = OpMatrixTimesVector %v3float %466 %2402 - %2406 = OpDot %float %2404 %2405 - OpBranch %2382 - %2382 = OpLabel - %2407 = OpPhi %float %2386 %2384 %2406 %2383 - OpBranch %2374 - %2375 = OpLabel - %2408 = OpFSub %float %2362 %2364 - %2409 = OpFMul %float %float_3 %2408 - %2410 = OpFSub %float %2371 %2364 - %2411 = OpFDiv %float %2409 %2410 - %2412 = OpConvertFToS %int %2411 - %2413 = OpConvertSToF %float %2412 - %2414 = OpFSub %float %2411 %2413 - %2415 = OpAccessChain %_ptr_Function_float %546 %2412 - %2416 = OpLoad %float %2415 - %2417 = OpIAdd %int %2412 %int_1 - %2418 = OpAccessChain %_ptr_Function_float %546 %2417 - %2419 = OpLoad %float %2418 - %2420 = OpIAdd %int %2412 %int_2 - %2421 = OpAccessChain %_ptr_Function_float %546 %2420 - %2422 = OpLoad %float %2421 - %2423 = OpCompositeConstruct %v3float %2416 %2419 %2422 - %2424 = OpFMul %float %2414 %2414 - %2425 = OpCompositeConstruct %v3float %2424 %2414 %float_1 - %2426 = OpMatrixTimesVector %v3float %466 %2423 - %2427 = OpDot %float %2425 %2426 - OpBranch %2374 - %2374 = OpLabel - %2428 = OpPhi %float %2407 %2382 %2427 %2375 - OpBranch %2366 - %2367 = OpLabel - %2429 = OpExtInst %float %1 Log %float_9_99999975en05 - %2430 = OpFDiv %float %2429 %1091 - OpBranch %2366 - %2366 = OpLabel - %2431 = OpPhi %float %2428 %2374 %2430 %2367 - %2432 = OpExtInst %float %1 Pow %float_10 %2431 - %2433 = OpCompositeInsert %v3float %2432 %523 0 - %2434 = OpCompositeExtract %float %2352 1 - OpStore %548 %499 - OpStore %547 %500 - %2435 = OpFOrdLessThanEqual %bool %2434 %float_0 - %2436 = OpSelect %float %2435 %2359 %2434 - %2437 = OpExtInst %float %1 Log %2436 - %2438 = OpFDiv %float %2437 %1091 - %2439 = OpFOrdLessThanEqual %bool %2438 %2364 - OpSelectionMerge %2440 None - OpBranchConditional %2439 %2441 %2442 - %2442 = OpLabel - %2443 = OpFOrdGreaterThan %bool %2438 %2364 - %2444 = OpExtInst %float %1 Log %float_0_180000007 - %2445 = OpFDiv %float %2444 %1091 - %2446 = OpFOrdLessThan %bool %2438 %2445 - %2447 = OpLogicalAnd %bool %2443 %2446 - OpSelectionMerge %2448 None - OpBranchConditional %2447 %2449 %2450 - %2450 = OpLabel - %2451 = OpFOrdGreaterThanEqual %bool %2438 %2445 - %2452 = OpExtInst %float %1 Log %2357 - %2453 = OpFDiv %float %2452 %1091 - %2454 = OpFOrdLessThan %bool %2438 %2453 - %2455 = OpLogicalAnd %bool %2451 %2454 - OpSelectionMerge %2456 None - OpBranchConditional %2455 %2457 %2458 - %2458 = OpLabel - %2459 = OpExtInst %float %1 Log %float_10000 - %2460 = OpFDiv %float %2459 %1091 - OpBranch %2456 - %2457 = OpLabel - %2461 = OpFSub %float %2438 %2445 - %2462 = OpFMul %float %float_3 %2461 - %2463 = OpFSub %float %2453 %2445 - %2464 = OpFDiv %float %2462 %2463 - %2465 = OpConvertFToS %int %2464 - %2466 = OpConvertSToF %float %2465 - %2467 = OpFSub %float %2464 %2466 - %2468 = OpAccessChain %_ptr_Function_float %547 %2465 - %2469 = OpLoad %float %2468 - %2470 = OpIAdd %int %2465 %int_1 - %2471 = OpAccessChain %_ptr_Function_float %547 %2470 - %2472 = OpLoad %float %2471 - %2473 = OpIAdd %int %2465 %int_2 - %2474 = OpAccessChain %_ptr_Function_float %547 %2473 - %2475 = OpLoad %float %2474 - %2476 = OpCompositeConstruct %v3float %2469 %2472 %2475 - %2477 = OpFMul %float %2467 %2467 - %2478 = OpCompositeConstruct %v3float %2477 %2467 %float_1 - %2479 = OpMatrixTimesVector %v3float %466 %2476 - %2480 = OpDot %float %2478 %2479 - OpBranch %2456 - %2456 = OpLabel - %2481 = OpPhi %float %2460 %2458 %2480 %2457 - OpBranch %2448 - %2449 = OpLabel - %2482 = OpFSub %float %2438 %2364 - %2483 = OpFMul %float %float_3 %2482 - %2484 = OpFSub %float %2445 %2364 - %2485 = OpFDiv %float %2483 %2484 - %2486 = OpConvertFToS %int %2485 - %2487 = OpConvertSToF %float %2486 - %2488 = OpFSub %float %2485 %2487 - %2489 = OpAccessChain %_ptr_Function_float %548 %2486 - %2490 = OpLoad %float %2489 - %2491 = OpIAdd %int %2486 %int_1 - %2492 = OpAccessChain %_ptr_Function_float %548 %2491 - %2493 = OpLoad %float %2492 - %2494 = OpIAdd %int %2486 %int_2 - %2495 = OpAccessChain %_ptr_Function_float %548 %2494 - %2496 = OpLoad %float %2495 - %2497 = OpCompositeConstruct %v3float %2490 %2493 %2496 - %2498 = OpFMul %float %2488 %2488 - %2499 = OpCompositeConstruct %v3float %2498 %2488 %float_1 - %2500 = OpMatrixTimesVector %v3float %466 %2497 - %2501 = OpDot %float %2499 %2500 - OpBranch %2448 - %2448 = OpLabel - %2502 = OpPhi %float %2481 %2456 %2501 %2449 - OpBranch %2440 - %2441 = OpLabel - %2503 = OpExtInst %float %1 Log %float_9_99999975en05 - %2504 = OpFDiv %float %2503 %1091 - OpBranch %2440 - %2440 = OpLabel - %2505 = OpPhi %float %2502 %2448 %2504 %2441 - %2506 = OpExtInst %float %1 Pow %float_10 %2505 - %2507 = OpCompositeInsert %v3float %2506 %2433 1 - %2508 = OpCompositeExtract %float %2352 2 - OpStore %550 %499 - OpStore %549 %500 - %2509 = OpFOrdLessThanEqual %bool %2508 %float_0 - %2510 = OpSelect %float %2509 %2359 %2508 - %2511 = OpExtInst %float %1 Log %2510 - %2512 = OpFDiv %float %2511 %1091 - %2513 = OpFOrdLessThanEqual %bool %2512 %2364 - OpSelectionMerge %2514 None - OpBranchConditional %2513 %2515 %2516 - %2516 = OpLabel - %2517 = OpFOrdGreaterThan %bool %2512 %2364 - %2518 = OpExtInst %float %1 Log %float_0_180000007 - %2519 = OpFDiv %float %2518 %1091 - %2520 = OpFOrdLessThan %bool %2512 %2519 - %2521 = OpLogicalAnd %bool %2517 %2520 - OpSelectionMerge %2522 None - OpBranchConditional %2521 %2523 %2524 - %2524 = OpLabel - %2525 = OpFOrdGreaterThanEqual %bool %2512 %2519 - %2526 = OpExtInst %float %1 Log %2357 - %2527 = OpFDiv %float %2526 %1091 - %2528 = OpFOrdLessThan %bool %2512 %2527 - %2529 = OpLogicalAnd %bool %2525 %2528 - OpSelectionMerge %2530 None - OpBranchConditional %2529 %2531 %2532 - %2532 = OpLabel - %2533 = OpExtInst %float %1 Log %float_10000 - %2534 = OpFDiv %float %2533 %1091 - OpBranch %2530 - %2531 = OpLabel - %2535 = OpFSub %float %2512 %2519 - %2536 = OpFMul %float %float_3 %2535 - %2537 = OpFSub %float %2527 %2519 - %2538 = OpFDiv %float %2536 %2537 - %2539 = OpConvertFToS %int %2538 - %2540 = OpConvertSToF %float %2539 - %2541 = OpFSub %float %2538 %2540 - %2542 = OpAccessChain %_ptr_Function_float %549 %2539 - %2543 = OpLoad %float %2542 - %2544 = OpIAdd %int %2539 %int_1 - %2545 = OpAccessChain %_ptr_Function_float %549 %2544 - %2546 = OpLoad %float %2545 - %2547 = OpIAdd %int %2539 %int_2 - %2548 = OpAccessChain %_ptr_Function_float %549 %2547 - %2549 = OpLoad %float %2548 - %2550 = OpCompositeConstruct %v3float %2543 %2546 %2549 - %2551 = OpFMul %float %2541 %2541 - %2552 = OpCompositeConstruct %v3float %2551 %2541 %float_1 - %2553 = OpMatrixTimesVector %v3float %466 %2550 - %2554 = OpDot %float %2552 %2553 - OpBranch %2530 - %2530 = OpLabel - %2555 = OpPhi %float %2534 %2532 %2554 %2531 - OpBranch %2522 - %2523 = OpLabel - %2556 = OpFSub %float %2512 %2364 - %2557 = OpFMul %float %float_3 %2556 - %2558 = OpFSub %float %2519 %2364 - %2559 = OpFDiv %float %2557 %2558 - %2560 = OpConvertFToS %int %2559 - %2561 = OpConvertSToF %float %2560 - %2562 = OpFSub %float %2559 %2561 - %2563 = OpAccessChain %_ptr_Function_float %550 %2560 - %2564 = OpLoad %float %2563 - %2565 = OpIAdd %int %2560 %int_1 - %2566 = OpAccessChain %_ptr_Function_float %550 %2565 - %2567 = OpLoad %float %2566 - %2568 = OpIAdd %int %2560 %int_2 - %2569 = OpAccessChain %_ptr_Function_float %550 %2568 - %2570 = OpLoad %float %2569 - %2571 = OpCompositeConstruct %v3float %2564 %2567 %2570 - %2572 = OpFMul %float %2562 %2562 - %2573 = OpCompositeConstruct %v3float %2572 %2562 %float_1 - %2574 = OpMatrixTimesVector %v3float %466 %2571 - %2575 = OpDot %float %2573 %2574 - OpBranch %2522 - %2522 = OpLabel - %2576 = OpPhi %float %2555 %2530 %2575 %2523 - OpBranch %2514 - %2515 = OpLabel - %2577 = OpExtInst %float %1 Log %float_9_99999975en05 - %2578 = OpFDiv %float %2577 %1091 - OpBranch %2514 - %2514 = OpLabel - %2579 = OpPhi %float %2576 %2522 %2578 %2515 - %2580 = OpExtInst %float %1 Pow %float_10 %2579 - %2581 = OpCompositeInsert %v3float %2580 %2507 2 - %2582 = OpVectorTimesMatrix %v3float %2581 %438 - %2583 = OpVectorTimesMatrix %v3float %2582 %434 - %2584 = OpExtInst %float %1 Pow %float_2 %float_n12 - %2585 = OpFMul %float %float_0_179999992 %2584 - OpStore %558 %499 - OpStore %557 %500 - %2586 = OpFOrdLessThanEqual %bool %2585 %float_0 - %2587 = OpSelect %float %2586 %2359 %2585 - %2588 = OpExtInst %float %1 Log %2587 - %2589 = OpFDiv %float %2588 %1091 - %2590 = OpFOrdLessThanEqual %bool %2589 %2364 - OpSelectionMerge %2591 None - OpBranchConditional %2590 %2592 %2593 - %2593 = OpLabel - %2594 = OpFOrdGreaterThan %bool %2589 %2364 - %2595 = OpExtInst %float %1 Log %float_0_180000007 - %2596 = OpFDiv %float %2595 %1091 - %2597 = OpFOrdLessThan %bool %2589 %2596 - %2598 = OpLogicalAnd %bool %2594 %2597 - OpSelectionMerge %2599 None - OpBranchConditional %2598 %2600 %2601 - %2601 = OpLabel - %2602 = OpFOrdGreaterThanEqual %bool %2589 %2596 - %2603 = OpExtInst %float %1 Log %2357 - %2604 = OpFDiv %float %2603 %1091 - %2605 = OpFOrdLessThan %bool %2589 %2604 - %2606 = OpLogicalAnd %bool %2602 %2605 - OpSelectionMerge %2607 None - OpBranchConditional %2606 %2608 %2609 - %2609 = OpLabel - %2610 = OpExtInst %float %1 Log %float_10000 - %2611 = OpFDiv %float %2610 %1091 - OpBranch %2607 - %2608 = OpLabel - %2612 = OpFSub %float %2589 %2596 - %2613 = OpFMul %float %float_3 %2612 - %2614 = OpFSub %float %2604 %2596 - %2615 = OpFDiv %float %2613 %2614 - %2616 = OpConvertFToS %int %2615 - %2617 = OpConvertSToF %float %2616 - %2618 = OpFSub %float %2615 %2617 - %2619 = OpAccessChain %_ptr_Function_float %557 %2616 - %2620 = OpLoad %float %2619 - %2621 = OpIAdd %int %2616 %int_1 - %2622 = OpAccessChain %_ptr_Function_float %557 %2621 - %2623 = OpLoad %float %2622 - %2624 = OpIAdd %int %2616 %int_2 - %2625 = OpAccessChain %_ptr_Function_float %557 %2624 - %2626 = OpLoad %float %2625 - %2627 = OpCompositeConstruct %v3float %2620 %2623 %2626 - %2628 = OpFMul %float %2618 %2618 - %2629 = OpCompositeConstruct %v3float %2628 %2618 %float_1 - %2630 = OpMatrixTimesVector %v3float %466 %2627 - %2631 = OpDot %float %2629 %2630 - OpBranch %2607 - %2607 = OpLabel - %2632 = OpPhi %float %2611 %2609 %2631 %2608 - OpBranch %2599 - %2600 = OpLabel - %2633 = OpFSub %float %2589 %2364 - %2634 = OpFMul %float %float_3 %2633 - %2635 = OpFSub %float %2596 %2364 - %2636 = OpFDiv %float %2634 %2635 - %2637 = OpConvertFToS %int %2636 - %2638 = OpConvertSToF %float %2637 - %2639 = OpFSub %float %2636 %2638 - %2640 = OpAccessChain %_ptr_Function_float %558 %2637 - %2641 = OpLoad %float %2640 - %2642 = OpIAdd %int %2637 %int_1 - %2643 = OpAccessChain %_ptr_Function_float %558 %2642 - %2644 = OpLoad %float %2643 - %2645 = OpIAdd %int %2637 %int_2 - %2646 = OpAccessChain %_ptr_Function_float %558 %2645 - %2647 = OpLoad %float %2646 - %2648 = OpCompositeConstruct %v3float %2641 %2644 %2647 - %2649 = OpFMul %float %2639 %2639 - %2650 = OpCompositeConstruct %v3float %2649 %2639 %float_1 - %2651 = OpMatrixTimesVector %v3float %466 %2648 - %2652 = OpDot %float %2650 %2651 - OpBranch %2599 - %2599 = OpLabel - %2653 = OpPhi %float %2632 %2607 %2652 %2600 - OpBranch %2591 - %2592 = OpLabel - %2654 = OpExtInst %float %1 Log %float_9_99999975en05 - %2655 = OpFDiv %float %2654 %1091 - OpBranch %2591 - %2591 = OpLabel - %2656 = OpPhi %float %2653 %2599 %2655 %2592 - %2657 = OpExtInst %float %1 Pow %float_10 %2656 - OpStore %560 %499 - OpStore %559 %500 - %2658 = OpExtInst %float %1 Log %float_0_180000007 - %2659 = OpFDiv %float %2658 %1091 - %2660 = OpFOrdLessThanEqual %bool %2659 %2364 - OpSelectionMerge %2661 None - OpBranchConditional %2660 %2662 %2663 - %2663 = OpLabel - %2664 = OpFOrdGreaterThan %bool %2659 %2364 - %2665 = OpFOrdLessThan %bool %2659 %2659 - %2666 = OpLogicalAnd %bool %2664 %2665 - OpSelectionMerge %2667 None - OpBranchConditional %2666 %2668 %2669 - %2669 = OpLabel - %2670 = OpFOrdGreaterThanEqual %bool %2659 %2659 - %2671 = OpExtInst %float %1 Log %2357 - %2672 = OpFDiv %float %2671 %1091 - %2673 = OpFOrdLessThan %bool %2659 %2672 - %2674 = OpLogicalAnd %bool %2670 %2673 - OpSelectionMerge %2675 None - OpBranchConditional %2674 %2676 %2677 - %2677 = OpLabel - %2678 = OpExtInst %float %1 Log %float_10000 - %2679 = OpFDiv %float %2678 %1091 - OpBranch %2675 - %2676 = OpLabel - %2680 = OpFSub %float %2659 %2659 - %2681 = OpFMul %float %float_3 %2680 - %2682 = OpFSub %float %2672 %2659 - %2683 = OpFDiv %float %2681 %2682 - %2684 = OpConvertFToS %int %2683 - %2685 = OpConvertSToF %float %2684 - %2686 = OpFSub %float %2683 %2685 - %2687 = OpAccessChain %_ptr_Function_float %559 %2684 - %2688 = OpLoad %float %2687 - %2689 = OpIAdd %int %2684 %int_1 - %2690 = OpAccessChain %_ptr_Function_float %559 %2689 - %2691 = OpLoad %float %2690 - %2692 = OpIAdd %int %2684 %int_2 - %2693 = OpAccessChain %_ptr_Function_float %559 %2692 - %2694 = OpLoad %float %2693 - %2695 = OpCompositeConstruct %v3float %2688 %2691 %2694 - %2696 = OpFMul %float %2686 %2686 - %2697 = OpCompositeConstruct %v3float %2696 %2686 %float_1 - %2698 = OpMatrixTimesVector %v3float %466 %2695 - %2699 = OpDot %float %2697 %2698 - OpBranch %2675 - %2675 = OpLabel - %2700 = OpPhi %float %2679 %2677 %2699 %2676 - OpBranch %2667 - %2668 = OpLabel - %2701 = OpAccessChain %_ptr_Function_float %560 %int_3 - %2702 = OpLoad %float %2701 - %2703 = OpAccessChain %_ptr_Function_float %560 %int_4 - %2704 = OpLoad %float %2703 - %2705 = OpAccessChain %_ptr_Function_float %560 %int_5 - %2706 = OpLoad %float %2705 - %2707 = OpCompositeConstruct %v3float %2702 %2704 %2706 - %2708 = OpMatrixTimesVector %v3float %466 %2707 - %2709 = OpCompositeExtract %float %2708 2 - OpBranch %2667 - %2667 = OpLabel - %2710 = OpPhi %float %2700 %2675 %2709 %2668 - OpBranch %2661 - %2662 = OpLabel - %2711 = OpExtInst %float %1 Log %float_9_99999975en05 - %2712 = OpFDiv %float %2711 %1091 - OpBranch %2661 - %2661 = OpLabel - %2713 = OpPhi %float %2710 %2667 %2712 %2662 - %2714 = OpExtInst %float %1 Pow %float_10 %2713 - %2715 = OpExtInst %float %1 Pow %float_2 %float_10 - %2716 = OpFMul %float %float_0_179999992 %2715 - OpStore %562 %499 - OpStore %561 %500 - %2717 = OpFOrdLessThanEqual %bool %2716 %float_0 - %2718 = OpSelect %float %2717 %2359 %2716 - %2719 = OpExtInst %float %1 Log %2718 - %2720 = OpFDiv %float %2719 %1091 - %2721 = OpFOrdLessThanEqual %bool %2720 %2364 - OpSelectionMerge %2722 None - OpBranchConditional %2721 %2723 %2724 - %2724 = OpLabel - %2725 = OpFOrdGreaterThan %bool %2720 %2364 - %2726 = OpFOrdLessThan %bool %2720 %2659 - %2727 = OpLogicalAnd %bool %2725 %2726 - OpSelectionMerge %2728 None - OpBranchConditional %2727 %2729 %2730 - %2730 = OpLabel - %2731 = OpFOrdGreaterThanEqual %bool %2720 %2659 - %2732 = OpExtInst %float %1 Log %2357 - %2733 = OpFDiv %float %2732 %1091 - %2734 = OpFOrdLessThan %bool %2720 %2733 - %2735 = OpLogicalAnd %bool %2731 %2734 - OpSelectionMerge %2736 None - OpBranchConditional %2735 %2737 %2738 - %2738 = OpLabel - %2739 = OpExtInst %float %1 Log %float_10000 - %2740 = OpFDiv %float %2739 %1091 - OpBranch %2736 - %2737 = OpLabel - %2741 = OpFSub %float %2720 %2659 - %2742 = OpFMul %float %float_3 %2741 - %2743 = OpFSub %float %2733 %2659 - %2744 = OpFDiv %float %2742 %2743 - %2745 = OpConvertFToS %int %2744 - %2746 = OpConvertSToF %float %2745 - %2747 = OpFSub %float %2744 %2746 - %2748 = OpAccessChain %_ptr_Function_float %561 %2745 - %2749 = OpLoad %float %2748 - %2750 = OpIAdd %int %2745 %int_1 - %2751 = OpAccessChain %_ptr_Function_float %561 %2750 - %2752 = OpLoad %float %2751 - %2753 = OpIAdd %int %2745 %int_2 - %2754 = OpAccessChain %_ptr_Function_float %561 %2753 - %2755 = OpLoad %float %2754 - %2756 = OpCompositeConstruct %v3float %2749 %2752 %2755 - %2757 = OpFMul %float %2747 %2747 - %2758 = OpCompositeConstruct %v3float %2757 %2747 %float_1 - %2759 = OpMatrixTimesVector %v3float %466 %2756 - %2760 = OpDot %float %2758 %2759 - OpBranch %2736 - %2736 = OpLabel - %2761 = OpPhi %float %2740 %2738 %2760 %2737 - OpBranch %2728 - %2729 = OpLabel - %2762 = OpFSub %float %2720 %2364 - %2763 = OpFMul %float %float_3 %2762 - %2764 = OpFSub %float %2659 %2364 - %2765 = OpFDiv %float %2763 %2764 - %2766 = OpConvertFToS %int %2765 - %2767 = OpConvertSToF %float %2766 - %2768 = OpFSub %float %2765 %2767 - %2769 = OpAccessChain %_ptr_Function_float %562 %2766 - %2770 = OpLoad %float %2769 - %2771 = OpIAdd %int %2766 %int_1 - %2772 = OpAccessChain %_ptr_Function_float %562 %2771 - %2773 = OpLoad %float %2772 - %2774 = OpIAdd %int %2766 %int_2 - %2775 = OpAccessChain %_ptr_Function_float %562 %2774 - %2776 = OpLoad %float %2775 - %2777 = OpCompositeConstruct %v3float %2770 %2773 %2776 - %2778 = OpFMul %float %2768 %2768 - %2779 = OpCompositeConstruct %v3float %2778 %2768 %float_1 - %2780 = OpMatrixTimesVector %v3float %466 %2777 - %2781 = OpDot %float %2779 %2780 - OpBranch %2728 - %2728 = OpLabel - %2782 = OpPhi %float %2761 %2736 %2781 %2729 - OpBranch %2722 - %2723 = OpLabel - %2783 = OpExtInst %float %1 Log %float_9_99999975en05 - %2784 = OpFDiv %float %2783 %1091 - OpBranch %2722 - %2722 = OpLabel - %2785 = OpPhi %float %2782 %2728 %2784 %2723 - %2786 = OpExtInst %float %1 Pow %float_10 %2785 - %2787 = OpCompositeExtract %float %2583 0 - OpStore %556 %503 - OpStore %555 %504 - %2788 = OpFOrdLessThanEqual %bool %2787 %float_0 - %2789 = OpSelect %float %2788 %float_9_99999975en05 %2787 - %2790 = OpExtInst %float %1 Log %2789 - %2791 = OpFDiv %float %2790 %1091 - %2792 = OpExtInst %float %1 Log %2657 - %2793 = OpFDiv %float %2792 %1091 - %2794 = OpFOrdLessThanEqual %bool %2791 %2793 - OpSelectionMerge %2795 None - OpBranchConditional %2794 %2796 %2797 - %2797 = OpLabel - %2798 = OpFOrdGreaterThan %bool %2791 %2793 - %2799 = OpExtInst %float %1 Log %2714 - %2800 = OpFDiv %float %2799 %1091 - %2801 = OpFOrdLessThan %bool %2791 %2800 - %2802 = OpLogicalAnd %bool %2798 %2801 - OpSelectionMerge %2803 None - OpBranchConditional %2802 %2804 %2805 - %2805 = OpLabel - %2806 = OpFOrdGreaterThanEqual %bool %2791 %2800 - %2807 = OpExtInst %float %1 Log %2786 - %2808 = OpFDiv %float %2807 %1091 - %2809 = OpFOrdLessThan %bool %2791 %2808 - %2810 = OpLogicalAnd %bool %2806 %2809 - OpSelectionMerge %2811 None - OpBranchConditional %2810 %2812 %2813 - %2813 = OpLabel - %2814 = OpFMul %float %2791 %float_0_0599999987 - %2815 = OpExtInst %float %1 Log %float_1000 - %2816 = OpFDiv %float %2815 %1091 - %2817 = OpFMul %float %float_0_0599999987 %2807 - %2818 = OpFDiv %float %2817 %1091 - %2819 = OpFSub %float %2816 %2818 - %2820 = OpFAdd %float %2814 %2819 - OpBranch %2811 - %2812 = OpLabel - %2821 = OpFSub %float %2791 %2800 - %2822 = OpFMul %float %float_7 %2821 - %2823 = OpFSub %float %2808 %2800 - %2824 = OpFDiv %float %2822 %2823 - %2825 = OpConvertFToS %int %2824 - %2826 = OpConvertSToF %float %2825 - %2827 = OpFSub %float %2824 %2826 - %2828 = OpAccessChain %_ptr_Function_float %555 %2825 - %2829 = OpLoad %float %2828 - %2830 = OpIAdd %int %2825 %int_1 - %2831 = OpAccessChain %_ptr_Function_float %555 %2830 - %2832 = OpLoad %float %2831 - %2833 = OpIAdd %int %2825 %int_2 - %2834 = OpAccessChain %_ptr_Function_float %555 %2833 - %2835 = OpLoad %float %2834 - %2836 = OpCompositeConstruct %v3float %2829 %2832 %2835 - %2837 = OpFMul %float %2827 %2827 - %2838 = OpCompositeConstruct %v3float %2837 %2827 %float_1 - %2839 = OpMatrixTimesVector %v3float %466 %2836 - %2840 = OpDot %float %2838 %2839 - OpBranch %2811 - %2811 = OpLabel - %2841 = OpPhi %float %2820 %2813 %2840 %2812 - OpBranch %2803 - %2804 = OpLabel - %2842 = OpFSub %float %2791 %2793 - %2843 = OpFMul %float %float_7 %2842 - %2844 = OpFSub %float %2800 %2793 - %2845 = OpFDiv %float %2843 %2844 - %2846 = OpConvertFToS %int %2845 - %2847 = OpConvertSToF %float %2846 - %2848 = OpFSub %float %2845 %2847 - %2849 = OpAccessChain %_ptr_Function_float %556 %2846 - %2850 = OpLoad %float %2849 - %2851 = OpIAdd %int %2846 %int_1 - %2852 = OpAccessChain %_ptr_Function_float %556 %2851 - %2853 = OpLoad %float %2852 - %2854 = OpIAdd %int %2846 %int_2 - %2855 = OpAccessChain %_ptr_Function_float %556 %2854 - %2856 = OpLoad %float %2855 - %2857 = OpCompositeConstruct %v3float %2850 %2853 %2856 - %2858 = OpFMul %float %2848 %2848 - %2859 = OpCompositeConstruct %v3float %2858 %2848 %float_1 - %2860 = OpMatrixTimesVector %v3float %466 %2857 - %2861 = OpDot %float %2859 %2860 - OpBranch %2803 - %2803 = OpLabel - %2862 = OpPhi %float %2841 %2811 %2861 %2804 - OpBranch %2795 - %2796 = OpLabel - %2863 = OpFMul %float %2791 %float_3 - %2864 = OpExtInst %float %1 Log %float_9_99999975en05 - %2865 = OpFDiv %float %2864 %1091 - %2866 = OpFMul %float %float_3 %2792 - %2867 = OpFDiv %float %2866 %1091 - %2868 = OpFSub %float %2865 %2867 - %2869 = OpFAdd %float %2863 %2868 - OpBranch %2795 - %2795 = OpLabel - %2870 = OpPhi %float %2862 %2803 %2869 %2796 - %2871 = OpExtInst %float %1 Pow %float_10 %2870 - %2872 = OpCompositeInsert %v3float %2871 %523 0 - %2873 = OpCompositeExtract %float %2583 1 - OpStore %554 %503 - OpStore %553 %504 - %2874 = OpFOrdLessThanEqual %bool %2873 %float_0 - %2875 = OpSelect %float %2874 %float_9_99999975en05 %2873 - %2876 = OpExtInst %float %1 Log %2875 - %2877 = OpFDiv %float %2876 %1091 - %2878 = OpFOrdLessThanEqual %bool %2877 %2793 - OpSelectionMerge %2879 None - OpBranchConditional %2878 %2880 %2881 - %2881 = OpLabel - %2882 = OpFOrdGreaterThan %bool %2877 %2793 - %2883 = OpExtInst %float %1 Log %2714 - %2884 = OpFDiv %float %2883 %1091 - %2885 = OpFOrdLessThan %bool %2877 %2884 - %2886 = OpLogicalAnd %bool %2882 %2885 - OpSelectionMerge %2887 None - OpBranchConditional %2886 %2888 %2889 - %2889 = OpLabel - %2890 = OpFOrdGreaterThanEqual %bool %2877 %2884 - %2891 = OpExtInst %float %1 Log %2786 - %2892 = OpFDiv %float %2891 %1091 - %2893 = OpFOrdLessThan %bool %2877 %2892 - %2894 = OpLogicalAnd %bool %2890 %2893 - OpSelectionMerge %2895 None - OpBranchConditional %2894 %2896 %2897 - %2897 = OpLabel - %2898 = OpFMul %float %2877 %float_0_0599999987 - %2899 = OpExtInst %float %1 Log %float_1000 - %2900 = OpFDiv %float %2899 %1091 - %2901 = OpFMul %float %float_0_0599999987 %2891 - %2902 = OpFDiv %float %2901 %1091 - %2903 = OpFSub %float %2900 %2902 - %2904 = OpFAdd %float %2898 %2903 - OpBranch %2895 - %2896 = OpLabel - %2905 = OpFSub %float %2877 %2884 - %2906 = OpFMul %float %float_7 %2905 - %2907 = OpFSub %float %2892 %2884 - %2908 = OpFDiv %float %2906 %2907 - %2909 = OpConvertFToS %int %2908 - %2910 = OpConvertSToF %float %2909 - %2911 = OpFSub %float %2908 %2910 - %2912 = OpAccessChain %_ptr_Function_float %553 %2909 - %2913 = OpLoad %float %2912 - %2914 = OpIAdd %int %2909 %int_1 - %2915 = OpAccessChain %_ptr_Function_float %553 %2914 - %2916 = OpLoad %float %2915 - %2917 = OpIAdd %int %2909 %int_2 - %2918 = OpAccessChain %_ptr_Function_float %553 %2917 - %2919 = OpLoad %float %2918 - %2920 = OpCompositeConstruct %v3float %2913 %2916 %2919 - %2921 = OpFMul %float %2911 %2911 - %2922 = OpCompositeConstruct %v3float %2921 %2911 %float_1 - %2923 = OpMatrixTimesVector %v3float %466 %2920 - %2924 = OpDot %float %2922 %2923 - OpBranch %2895 - %2895 = OpLabel - %2925 = OpPhi %float %2904 %2897 %2924 %2896 - OpBranch %2887 - %2888 = OpLabel - %2926 = OpFSub %float %2877 %2793 - %2927 = OpFMul %float %float_7 %2926 - %2928 = OpFSub %float %2884 %2793 - %2929 = OpFDiv %float %2927 %2928 - %2930 = OpConvertFToS %int %2929 - %2931 = OpConvertSToF %float %2930 - %2932 = OpFSub %float %2929 %2931 - %2933 = OpAccessChain %_ptr_Function_float %554 %2930 - %2934 = OpLoad %float %2933 - %2935 = OpIAdd %int %2930 %int_1 - %2936 = OpAccessChain %_ptr_Function_float %554 %2935 - %2937 = OpLoad %float %2936 - %2938 = OpIAdd %int %2930 %int_2 - %2939 = OpAccessChain %_ptr_Function_float %554 %2938 - %2940 = OpLoad %float %2939 - %2941 = OpCompositeConstruct %v3float %2934 %2937 %2940 - %2942 = OpFMul %float %2932 %2932 - %2943 = OpCompositeConstruct %v3float %2942 %2932 %float_1 - %2944 = OpMatrixTimesVector %v3float %466 %2941 - %2945 = OpDot %float %2943 %2944 - OpBranch %2887 - %2887 = OpLabel - %2946 = OpPhi %float %2925 %2895 %2945 %2888 - OpBranch %2879 - %2880 = OpLabel - %2947 = OpFMul %float %2877 %float_3 - %2948 = OpExtInst %float %1 Log %float_9_99999975en05 - %2949 = OpFDiv %float %2948 %1091 - %2950 = OpFMul %float %float_3 %2792 - %2951 = OpFDiv %float %2950 %1091 - %2952 = OpFSub %float %2949 %2951 - %2953 = OpFAdd %float %2947 %2952 - OpBranch %2879 - %2879 = OpLabel - %2954 = OpPhi %float %2946 %2887 %2953 %2880 - %2955 = OpExtInst %float %1 Pow %float_10 %2954 - %2956 = OpCompositeInsert %v3float %2955 %2872 1 - %2957 = OpCompositeExtract %float %2583 2 - OpStore %552 %503 - OpStore %551 %504 - %2958 = OpFOrdLessThanEqual %bool %2957 %float_0 - %2959 = OpSelect %float %2958 %float_9_99999975en05 %2957 - %2960 = OpExtInst %float %1 Log %2959 - %2961 = OpFDiv %float %2960 %1091 - %2962 = OpFOrdLessThanEqual %bool %2961 %2793 - OpSelectionMerge %2963 None - OpBranchConditional %2962 %2964 %2965 - %2965 = OpLabel - %2966 = OpFOrdGreaterThan %bool %2961 %2793 - %2967 = OpExtInst %float %1 Log %2714 - %2968 = OpFDiv %float %2967 %1091 - %2969 = OpFOrdLessThan %bool %2961 %2968 - %2970 = OpLogicalAnd %bool %2966 %2969 - OpSelectionMerge %2971 None - OpBranchConditional %2970 %2972 %2973 - %2973 = OpLabel - %2974 = OpFOrdGreaterThanEqual %bool %2961 %2968 - %2975 = OpExtInst %float %1 Log %2786 - %2976 = OpFDiv %float %2975 %1091 - %2977 = OpFOrdLessThan %bool %2961 %2976 - %2978 = OpLogicalAnd %bool %2974 %2977 - OpSelectionMerge %2979 None - OpBranchConditional %2978 %2980 %2981 - %2981 = OpLabel - %2982 = OpFMul %float %2961 %float_0_0599999987 - %2983 = OpExtInst %float %1 Log %float_1000 - %2984 = OpFDiv %float %2983 %1091 - %2985 = OpFMul %float %float_0_0599999987 %2975 - %2986 = OpFDiv %float %2985 %1091 - %2987 = OpFSub %float %2984 %2986 - %2988 = OpFAdd %float %2982 %2987 - OpBranch %2979 - %2980 = OpLabel - %2989 = OpFSub %float %2961 %2968 - %2990 = OpFMul %float %float_7 %2989 - %2991 = OpFSub %float %2976 %2968 - %2992 = OpFDiv %float %2990 %2991 - %2993 = OpConvertFToS %int %2992 - %2994 = OpConvertSToF %float %2993 - %2995 = OpFSub %float %2992 %2994 - %2996 = OpAccessChain %_ptr_Function_float %551 %2993 - %2997 = OpLoad %float %2996 - %2998 = OpIAdd %int %2993 %int_1 - %2999 = OpAccessChain %_ptr_Function_float %551 %2998 - %3000 = OpLoad %float %2999 - %3001 = OpIAdd %int %2993 %int_2 - %3002 = OpAccessChain %_ptr_Function_float %551 %3001 - %3003 = OpLoad %float %3002 - %3004 = OpCompositeConstruct %v3float %2997 %3000 %3003 - %3005 = OpFMul %float %2995 %2995 - %3006 = OpCompositeConstruct %v3float %3005 %2995 %float_1 - %3007 = OpMatrixTimesVector %v3float %466 %3004 - %3008 = OpDot %float %3006 %3007 - OpBranch %2979 - %2979 = OpLabel - %3009 = OpPhi %float %2988 %2981 %3008 %2980 - OpBranch %2971 - %2972 = OpLabel - %3010 = OpFSub %float %2961 %2793 - %3011 = OpFMul %float %float_7 %3010 - %3012 = OpFSub %float %2968 %2793 - %3013 = OpFDiv %float %3011 %3012 - %3014 = OpConvertFToS %int %3013 - %3015 = OpConvertSToF %float %3014 - %3016 = OpFSub %float %3013 %3015 - %3017 = OpAccessChain %_ptr_Function_float %552 %3014 - %3018 = OpLoad %float %3017 - %3019 = OpIAdd %int %3014 %int_1 - %3020 = OpAccessChain %_ptr_Function_float %552 %3019 - %3021 = OpLoad %float %3020 - %3022 = OpIAdd %int %3014 %int_2 - %3023 = OpAccessChain %_ptr_Function_float %552 %3022 - %3024 = OpLoad %float %3023 - %3025 = OpCompositeConstruct %v3float %3018 %3021 %3024 - %3026 = OpFMul %float %3016 %3016 - %3027 = OpCompositeConstruct %v3float %3026 %3016 %float_1 - %3028 = OpMatrixTimesVector %v3float %466 %3025 - %3029 = OpDot %float %3027 %3028 - OpBranch %2971 - %2971 = OpLabel - %3030 = OpPhi %float %3009 %2979 %3029 %2972 - OpBranch %2963 - %2964 = OpLabel - %3031 = OpFMul %float %2961 %float_3 - %3032 = OpExtInst %float %1 Log %float_9_99999975en05 - %3033 = OpFDiv %float %3032 %1091 - %3034 = OpFMul %float %float_3 %2792 - %3035 = OpFDiv %float %3034 %1091 - %3036 = OpFSub %float %3033 %3035 - %3037 = OpFAdd %float %3031 %3036 - OpBranch %2963 - %2963 = OpLabel - %3038 = OpPhi %float %3030 %2971 %3037 %2964 - %3039 = OpExtInst %float %1 Pow %float_10 %3038 - %3040 = OpCompositeInsert %v3float %3039 %2956 2 - %3041 = OpFSub %v3float %3040 %361 - %3042 = OpVectorTimesMatrix %v3float %3041 %602 - %3043 = OpFMul %v3float %3042 %519 - %3044 = OpExtInst %v3float %1 Pow %3043 %286 - %3045 = OpFMul %v3float %196 %3044 - %3046 = OpFAdd %v3float %195 %3045 - %3047 = OpFMul %v3float %197 %3044 - %3048 = OpFAdd %v3float %141 %3047 - %3049 = OpFDiv %v3float %141 %3048 - %3050 = OpFMul %v3float %3046 %3049 - %3051 = OpExtInst %v3float %1 Pow %3050 %287 - OpBranch %1336 - %1336 = OpLabel - %3052 = OpPhi %v3float %2201 %1342 %3051 %2963 - OpBranch %1330 - %1331 = OpLabel - %3053 = OpVectorTimesMatrix %v3float %1324 %573 - %3054 = OpVectorTimesMatrix %v3float %3053 %602 - %3055 = OpExtInst %v3float %1 FMax %263 %3054 - %3056 = OpFMul %v3float %3055 %275 - %3057 = OpExtInst %v3float %1 FMax %3055 %277 - %3058 = OpExtInst %v3float %1 Pow %3057 %279 - %3059 = OpFMul %v3float %3058 %281 - %3060 = OpFSub %v3float %3059 %283 - %3061 = OpExtInst %v3float %1 FMin %3056 %3060 - OpBranch %1330 - %1330 = OpLabel - %3062 = OpPhi %v3float %3052 %1336 %3061 %1331 - OpBranch %1326 - %1327 = OpLabel - %3063 = OpCompositeExtract %float %1324 0 - OpBranch %3064 - %3064 = OpLabel - OpLoopMerge %3065 %3066 None - OpBranch %3067 - %3067 = OpLabel - %3068 = OpFOrdLessThan %bool %3063 %float_0_00313066994 - OpSelectionMerge %3069 None - OpBranchConditional %3068 %3070 %3069 - %3070 = OpLabel - %3071 = OpFMul %float %3063 %float_12_9200001 - OpBranch %3065 - %3069 = OpLabel - %3072 = OpExtInst %float %1 Pow %3063 %float_0_416666657 - %3073 = OpFMul %float %3072 %float_1_05499995 - %3074 = OpFSub %float %3073 %float_0_0549999997 - OpBranch %3065 - %3066 = OpLabel - OpBranch %3064 - %3065 = OpLabel - %3075 = OpPhi %float %3071 %3070 %3074 %3069 - %3076 = OpCompositeExtract %float %1324 1 - OpBranch %3077 - %3077 = OpLabel - OpLoopMerge %3078 %3079 None - OpBranch %3080 - %3080 = OpLabel - %3081 = OpFOrdLessThan %bool %3076 %float_0_00313066994 - OpSelectionMerge %3082 None - OpBranchConditional %3081 %3083 %3082 - %3083 = OpLabel - %3084 = OpFMul %float %3076 %float_12_9200001 - OpBranch %3078 - %3082 = OpLabel - %3085 = OpExtInst %float %1 Pow %3076 %float_0_416666657 - %3086 = OpFMul %float %3085 %float_1_05499995 - %3087 = OpFSub %float %3086 %float_0_0549999997 - OpBranch %3078 - %3079 = OpLabel - OpBranch %3077 - %3078 = OpLabel - %3088 = OpPhi %float %3084 %3083 %3087 %3082 - %3089 = OpCompositeExtract %float %1324 2 - OpBranch %3090 - %3090 = OpLabel - OpLoopMerge %3091 %3092 None - OpBranch %3093 - %3093 = OpLabel - %3094 = OpFOrdLessThan %bool %3089 %float_0_00313066994 - OpSelectionMerge %3095 None - OpBranchConditional %3094 %3096 %3095 - %3096 = OpLabel - %3097 = OpFMul %float %3089 %float_12_9200001 - OpBranch %3091 - %3095 = OpLabel - %3098 = OpExtInst %float %1 Pow %3089 %float_0_416666657 - %3099 = OpFMul %float %3098 %float_1_05499995 - %3100 = OpFSub %float %3099 %float_0_0549999997 - OpBranch %3091 - %3092 = OpLabel - OpBranch %3090 - %3091 = OpLabel - %3101 = OpPhi %float %3097 %3096 %3100 %3095 - %3102 = OpCompositeConstruct %v3float %3075 %3088 %3101 - OpBranch %1326 - %1326 = OpLabel - %3103 = OpPhi %v3float %3062 %1330 %3102 %3091 - %3104 = OpFMul %v3float %3103 %522 - %3105 = OpVectorShuffle %v4float %135 %3104 4 5 6 3 - %3106 = OpCompositeInsert %v4float %float_0 %3105 3 - OpStore %out_var_SV_Target0 %3106 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-ue4/asm/frag/sample-mask-not-array.asm.frag b/third_party/spirv-cross/shaders-ue4/asm/frag/sample-mask-not-array.asm.frag deleted file mode 100644 index 097eb6354d..0000000000 --- a/third_party/spirv-cross/shaders-ue4/asm/frag/sample-mask-not-array.asm.frag +++ /dev/null @@ -1,1230 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 271 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_GOOGLE_hlsl_functionality1" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %MainPS "main" %in_var_TEXCOORD10_centroid %in_var_TEXCOORD11_centroid %in_var_PRIMITIVE_ID %in_var_TEXCOORD7 %gl_FragCoord %gl_FrontFacing %gl_SampleMask %out_var_SV_Target0 %gl_SampleMask_0 - OpExecutionMode %MainPS OriginUpperLeft - OpSource HLSL 600 - OpName %type_View "type.View" - OpMemberName %type_View 0 "View_TranslatedWorldToClip" - OpMemberName %type_View 1 "View_WorldToClip" - OpMemberName %type_View 2 "View_TranslatedWorldToView" - OpMemberName %type_View 3 "View_ViewToTranslatedWorld" - OpMemberName %type_View 4 "View_TranslatedWorldToCameraView" - OpMemberName %type_View 5 "View_CameraViewToTranslatedWorld" - OpMemberName %type_View 6 "View_ViewToClip" - OpMemberName %type_View 7 "View_ViewToClipNoAA" - OpMemberName %type_View 8 "View_ClipToView" - OpMemberName %type_View 9 "View_ClipToTranslatedWorld" - OpMemberName %type_View 10 "View_SVPositionToTranslatedWorld" - OpMemberName %type_View 11 "View_ScreenToWorld" - OpMemberName %type_View 12 "View_ScreenToTranslatedWorld" - OpMemberName %type_View 13 "View_ViewForward" - OpMemberName %type_View 14 "PrePadding_View_844" - OpMemberName %type_View 15 "View_ViewUp" - OpMemberName %type_View 16 "PrePadding_View_860" - OpMemberName %type_View 17 "View_ViewRight" - OpMemberName %type_View 18 "PrePadding_View_876" - OpMemberName %type_View 19 "View_HMDViewNoRollUp" - OpMemberName %type_View 20 "PrePadding_View_892" - OpMemberName %type_View 21 "View_HMDViewNoRollRight" - OpMemberName %type_View 22 "PrePadding_View_908" - OpMemberName %type_View 23 "View_InvDeviceZToWorldZTransform" - OpMemberName %type_View 24 "View_ScreenPositionScaleBias" - OpMemberName %type_View 25 "View_WorldCameraOrigin" - OpMemberName %type_View 26 "PrePadding_View_956" - OpMemberName %type_View 27 "View_TranslatedWorldCameraOrigin" - OpMemberName %type_View 28 "PrePadding_View_972" - OpMemberName %type_View 29 "View_WorldViewOrigin" - OpMemberName %type_View 30 "PrePadding_View_988" - OpMemberName %type_View 31 "View_PreViewTranslation" - OpMemberName %type_View 32 "PrePadding_View_1004" - OpMemberName %type_View 33 "View_PrevProjection" - OpMemberName %type_View 34 "View_PrevViewProj" - OpMemberName %type_View 35 "View_PrevViewRotationProj" - OpMemberName %type_View 36 "View_PrevViewToClip" - OpMemberName %type_View 37 "View_PrevClipToView" - OpMemberName %type_View 38 "View_PrevTranslatedWorldToClip" - OpMemberName %type_View 39 "View_PrevTranslatedWorldToView" - OpMemberName %type_View 40 "View_PrevViewToTranslatedWorld" - OpMemberName %type_View 41 "View_PrevTranslatedWorldToCameraView" - OpMemberName %type_View 42 "View_PrevCameraViewToTranslatedWorld" - OpMemberName %type_View 43 "View_PrevWorldCameraOrigin" - OpMemberName %type_View 44 "PrePadding_View_1660" - OpMemberName %type_View 45 "View_PrevWorldViewOrigin" - OpMemberName %type_View 46 "PrePadding_View_1676" - OpMemberName %type_View 47 "View_PrevPreViewTranslation" - OpMemberName %type_View 48 "PrePadding_View_1692" - OpMemberName %type_View 49 "View_PrevInvViewProj" - OpMemberName %type_View 50 "View_PrevScreenToTranslatedWorld" - OpMemberName %type_View 51 "View_ClipToPrevClip" - OpMemberName %type_View 52 "View_TemporalAAJitter" - OpMemberName %type_View 53 "View_GlobalClippingPlane" - OpMemberName %type_View 54 "View_FieldOfViewWideAngles" - OpMemberName %type_View 55 "View_PrevFieldOfViewWideAngles" - OpMemberName %type_View 56 "View_ViewRectMin" - OpMemberName %type_View 57 "View_ViewSizeAndInvSize" - OpMemberName %type_View 58 "View_BufferSizeAndInvSize" - OpMemberName %type_View 59 "View_BufferBilinearUVMinMax" - OpMemberName %type_View 60 "View_NumSceneColorMSAASamples" - OpMemberName %type_View 61 "View_PreExposure" - OpMemberName %type_View 62 "View_OneOverPreExposure" - OpMemberName %type_View 63 "PrePadding_View_2012" - OpMemberName %type_View 64 "View_DiffuseOverrideParameter" - OpMemberName %type_View 65 "View_SpecularOverrideParameter" - OpMemberName %type_View 66 "View_NormalOverrideParameter" - OpMemberName %type_View 67 "View_RoughnessOverrideParameter" - OpMemberName %type_View 68 "View_PrevFrameGameTime" - OpMemberName %type_View 69 "View_PrevFrameRealTime" - OpMemberName %type_View 70 "View_OutOfBoundsMask" - OpMemberName %type_View 71 "PrePadding_View_2084" - OpMemberName %type_View 72 "PrePadding_View_2088" - OpMemberName %type_View 73 "PrePadding_View_2092" - OpMemberName %type_View 74 "View_WorldCameraMovementSinceLastFrame" - OpMemberName %type_View 75 "View_CullingSign" - OpMemberName %type_View 76 "View_NearPlane" - OpMemberName %type_View 77 "View_AdaptiveTessellationFactor" - OpMemberName %type_View 78 "View_GameTime" - OpMemberName %type_View 79 "View_RealTime" - OpMemberName %type_View 80 "View_DeltaTime" - OpMemberName %type_View 81 "View_MaterialTextureMipBias" - OpMemberName %type_View 82 "View_MaterialTextureDerivativeMultiply" - OpMemberName %type_View 83 "View_Random" - OpMemberName %type_View 84 "View_FrameNumber" - OpMemberName %type_View 85 "View_StateFrameIndexMod8" - OpMemberName %type_View 86 "View_StateFrameIndex" - OpMemberName %type_View 87 "View_CameraCut" - OpMemberName %type_View 88 "View_UnlitViewmodeMask" - OpMemberName %type_View 89 "PrePadding_View_2164" - OpMemberName %type_View 90 "PrePadding_View_2168" - OpMemberName %type_View 91 "PrePadding_View_2172" - OpMemberName %type_View 92 "View_DirectionalLightColor" - OpMemberName %type_View 93 "View_DirectionalLightDirection" - OpMemberName %type_View 94 "PrePadding_View_2204" - OpMemberName %type_View 95 "View_TranslucencyLightingVolumeMin" - OpMemberName %type_View 96 "View_TranslucencyLightingVolumeInvSize" - OpMemberName %type_View 97 "View_TemporalAAParams" - OpMemberName %type_View 98 "View_CircleDOFParams" - OpMemberName %type_View 99 "View_DepthOfFieldSensorWidth" - OpMemberName %type_View 100 "View_DepthOfFieldFocalDistance" - OpMemberName %type_View 101 "View_DepthOfFieldScale" - OpMemberName %type_View 102 "View_DepthOfFieldFocalLength" - OpMemberName %type_View 103 "View_DepthOfFieldFocalRegion" - OpMemberName %type_View 104 "View_DepthOfFieldNearTransitionRegion" - OpMemberName %type_View 105 "View_DepthOfFieldFarTransitionRegion" - OpMemberName %type_View 106 "View_MotionBlurNormalizedToPixel" - OpMemberName %type_View 107 "View_bSubsurfacePostprocessEnabled" - OpMemberName %type_View 108 "View_GeneralPurposeTweak" - OpMemberName %type_View 109 "View_DemosaicVposOffset" - OpMemberName %type_View 110 "PrePadding_View_2348" - OpMemberName %type_View 111 "View_IndirectLightingColorScale" - OpMemberName %type_View 112 "View_HDR32bppEncodingMode" - OpMemberName %type_View 113 "View_AtmosphericFogSunDirection" - OpMemberName %type_View 114 "View_AtmosphericFogSunPower" - OpMemberName %type_View 115 "View_AtmosphericFogPower" - OpMemberName %type_View 116 "View_AtmosphericFogDensityScale" - OpMemberName %type_View 117 "View_AtmosphericFogDensityOffset" - OpMemberName %type_View 118 "View_AtmosphericFogGroundOffset" - OpMemberName %type_View 119 "View_AtmosphericFogDistanceScale" - OpMemberName %type_View 120 "View_AtmosphericFogAltitudeScale" - OpMemberName %type_View 121 "View_AtmosphericFogHeightScaleRayleigh" - OpMemberName %type_View 122 "View_AtmosphericFogStartDistance" - OpMemberName %type_View 123 "View_AtmosphericFogDistanceOffset" - OpMemberName %type_View 124 "View_AtmosphericFogSunDiscScale" - OpMemberName %type_View 125 "View_AtmosphericFogRenderMask" - OpMemberName %type_View 126 "View_AtmosphericFogInscatterAltitudeSampleNum" - OpMemberName %type_View 127 "View_AtmosphericFogSunColor" - OpMemberName %type_View 128 "View_NormalCurvatureToRoughnessScaleBias" - OpMemberName %type_View 129 "View_RenderingReflectionCaptureMask" - OpMemberName %type_View 130 "View_AmbientCubemapTint" - OpMemberName %type_View 131 "View_AmbientCubemapIntensity" - OpMemberName %type_View 132 "View_SkyLightParameters" - OpMemberName %type_View 133 "PrePadding_View_2488" - OpMemberName %type_View 134 "PrePadding_View_2492" - OpMemberName %type_View 135 "View_SkyLightColor" - OpMemberName %type_View 136 "View_SkyIrradianceEnvironmentMap" - OpMemberName %type_View 137 "View_MobilePreviewMode" - OpMemberName %type_View 138 "View_HMDEyePaddingOffset" - OpMemberName %type_View 139 "View_ReflectionCubemapMaxMip" - OpMemberName %type_View 140 "View_ShowDecalsMask" - OpMemberName %type_View 141 "View_DistanceFieldAOSpecularOcclusionMode" - OpMemberName %type_View 142 "View_IndirectCapsuleSelfShadowingIntensity" - OpMemberName %type_View 143 "PrePadding_View_2648" - OpMemberName %type_View 144 "PrePadding_View_2652" - OpMemberName %type_View 145 "View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight" - OpMemberName %type_View 146 "View_StereoPassIndex" - OpMemberName %type_View 147 "View_GlobalVolumeCenterAndExtent" - OpMemberName %type_View 148 "View_GlobalVolumeWorldToUVAddAndMul" - OpMemberName %type_View 149 "View_GlobalVolumeDimension" - OpMemberName %type_View 150 "View_GlobalVolumeTexelSize" - OpMemberName %type_View 151 "View_MaxGlobalDistance" - OpMemberName %type_View 152 "View_bCheckerboardSubsurfaceProfileRendering" - OpMemberName %type_View 153 "View_VolumetricFogInvGridSize" - OpMemberName %type_View 154 "PrePadding_View_2828" - OpMemberName %type_View 155 "View_VolumetricFogGridZParams" - OpMemberName %type_View 156 "PrePadding_View_2844" - OpMemberName %type_View 157 "View_VolumetricFogSVPosToVolumeUV" - OpMemberName %type_View 158 "View_VolumetricFogMaxDistance" - OpMemberName %type_View 159 "PrePadding_View_2860" - OpMemberName %type_View 160 "View_VolumetricLightmapWorldToUVScale" - OpMemberName %type_View 161 "PrePadding_View_2876" - OpMemberName %type_View 162 "View_VolumetricLightmapWorldToUVAdd" - OpMemberName %type_View 163 "PrePadding_View_2892" - OpMemberName %type_View 164 "View_VolumetricLightmapIndirectionTextureSize" - OpMemberName %type_View 165 "View_VolumetricLightmapBrickSize" - OpMemberName %type_View 166 "View_VolumetricLightmapBrickTexelSize" - OpMemberName %type_View 167 "View_StereoIPD" - OpMemberName %type_View 168 "View_IndirectLightingCacheShowFlag" - OpMemberName %type_View 169 "View_EyeToPixelSpreadAngle" - OpName %View "View" - OpName %type_3d_image "type.3d.image" - OpName %type_sampler "type.sampler" - OpName %View_SharedBilinearClampedSampler "View_SharedBilinearClampedSampler" - OpName %type_StructuredBuffer_v4float "type.StructuredBuffer.v4float" - OpName %View_PrimitiveSceneData "View_PrimitiveSceneData" - OpName %type_TranslucentBasePass "type.TranslucentBasePass" - OpMemberName %type_TranslucentBasePass 0 "TranslucentBasePass_Shared_Forward_NumLocalLights" - OpMemberName %type_TranslucentBasePass 1 "TranslucentBasePass_Shared_Forward_NumReflectionCaptures" - OpMemberName %type_TranslucentBasePass 2 "TranslucentBasePass_Shared_Forward_HasDirectionalLight" - OpMemberName %type_TranslucentBasePass 3 "TranslucentBasePass_Shared_Forward_NumGridCells" - OpMemberName %type_TranslucentBasePass 4 "TranslucentBasePass_Shared_Forward_CulledGridSize" - OpMemberName %type_TranslucentBasePass 5 "TranslucentBasePass_Shared_Forward_MaxCulledLightsPerCell" - OpMemberName %type_TranslucentBasePass 6 "TranslucentBasePass_Shared_Forward_LightGridPixelSizeShift" - OpMemberName %type_TranslucentBasePass 7 "PrePadding_TranslucentBasePass_Shared_Forward_36" - OpMemberName %type_TranslucentBasePass 8 "PrePadding_TranslucentBasePass_Shared_Forward_40" - OpMemberName %type_TranslucentBasePass 9 "PrePadding_TranslucentBasePass_Shared_Forward_44" - OpMemberName %type_TranslucentBasePass 10 "TranslucentBasePass_Shared_Forward_LightGridZParams" - OpMemberName %type_TranslucentBasePass 11 "PrePadding_TranslucentBasePass_Shared_Forward_60" - OpMemberName %type_TranslucentBasePass 12 "TranslucentBasePass_Shared_Forward_DirectionalLightDirection" - OpMemberName %type_TranslucentBasePass 13 "PrePadding_TranslucentBasePass_Shared_Forward_76" - OpMemberName %type_TranslucentBasePass 14 "TranslucentBasePass_Shared_Forward_DirectionalLightColor" - OpMemberName %type_TranslucentBasePass 15 "TranslucentBasePass_Shared_Forward_DirectionalLightVolumetricScatteringIntensity" - OpMemberName %type_TranslucentBasePass 16 "TranslucentBasePass_Shared_Forward_DirectionalLightShadowMapChannelMask" - OpMemberName %type_TranslucentBasePass 17 "PrePadding_TranslucentBasePass_Shared_Forward_100" - OpMemberName %type_TranslucentBasePass 18 "TranslucentBasePass_Shared_Forward_DirectionalLightDistanceFadeMAD" - OpMemberName %type_TranslucentBasePass 19 "TranslucentBasePass_Shared_Forward_NumDirectionalLightCascades" - OpMemberName %type_TranslucentBasePass 20 "PrePadding_TranslucentBasePass_Shared_Forward_116" - OpMemberName %type_TranslucentBasePass 21 "PrePadding_TranslucentBasePass_Shared_Forward_120" - OpMemberName %type_TranslucentBasePass 22 "PrePadding_TranslucentBasePass_Shared_Forward_124" - OpMemberName %type_TranslucentBasePass 23 "TranslucentBasePass_Shared_Forward_CascadeEndDepths" - OpMemberName %type_TranslucentBasePass 24 "TranslucentBasePass_Shared_Forward_DirectionalLightWorldToShadowMatrix" - OpMemberName %type_TranslucentBasePass 25 "TranslucentBasePass_Shared_Forward_DirectionalLightShadowmapMinMax" - OpMemberName %type_TranslucentBasePass 26 "TranslucentBasePass_Shared_Forward_DirectionalLightShadowmapAtlasBufferSize" - OpMemberName %type_TranslucentBasePass 27 "TranslucentBasePass_Shared_Forward_DirectionalLightDepthBias" - OpMemberName %type_TranslucentBasePass 28 "TranslucentBasePass_Shared_Forward_DirectionalLightUseStaticShadowing" - OpMemberName %type_TranslucentBasePass 29 "PrePadding_TranslucentBasePass_Shared_Forward_488" - OpMemberName %type_TranslucentBasePass 30 "PrePadding_TranslucentBasePass_Shared_Forward_492" - OpMemberName %type_TranslucentBasePass 31 "TranslucentBasePass_Shared_Forward_DirectionalLightStaticShadowBufferSize" - OpMemberName %type_TranslucentBasePass 32 "TranslucentBasePass_Shared_Forward_DirectionalLightWorldToStaticShadow" - OpMemberName %type_TranslucentBasePass 33 "PrePadding_TranslucentBasePass_Shared_ForwardISR_576" - OpMemberName %type_TranslucentBasePass 34 "PrePadding_TranslucentBasePass_Shared_ForwardISR_580" - OpMemberName %type_TranslucentBasePass 35 "PrePadding_TranslucentBasePass_Shared_ForwardISR_584" - OpMemberName %type_TranslucentBasePass 36 "PrePadding_TranslucentBasePass_Shared_ForwardISR_588" - OpMemberName %type_TranslucentBasePass 37 "PrePadding_TranslucentBasePass_Shared_ForwardISR_592" - OpMemberName %type_TranslucentBasePass 38 "PrePadding_TranslucentBasePass_Shared_ForwardISR_596" - OpMemberName %type_TranslucentBasePass 39 "PrePadding_TranslucentBasePass_Shared_ForwardISR_600" - OpMemberName %type_TranslucentBasePass 40 "PrePadding_TranslucentBasePass_Shared_ForwardISR_604" - OpMemberName %type_TranslucentBasePass 41 "PrePadding_TranslucentBasePass_Shared_ForwardISR_608" - OpMemberName %type_TranslucentBasePass 42 "PrePadding_TranslucentBasePass_Shared_ForwardISR_612" - OpMemberName %type_TranslucentBasePass 43 "PrePadding_TranslucentBasePass_Shared_ForwardISR_616" - OpMemberName %type_TranslucentBasePass 44 "PrePadding_TranslucentBasePass_Shared_ForwardISR_620" - OpMemberName %type_TranslucentBasePass 45 "PrePadding_TranslucentBasePass_Shared_ForwardISR_624" - OpMemberName %type_TranslucentBasePass 46 "PrePadding_TranslucentBasePass_Shared_ForwardISR_628" - OpMemberName %type_TranslucentBasePass 47 "PrePadding_TranslucentBasePass_Shared_ForwardISR_632" - OpMemberName %type_TranslucentBasePass 48 "PrePadding_TranslucentBasePass_Shared_ForwardISR_636" - OpMemberName %type_TranslucentBasePass 49 "TranslucentBasePass_Shared_ForwardISR_NumLocalLights" - OpMemberName %type_TranslucentBasePass 50 "TranslucentBasePass_Shared_ForwardISR_NumReflectionCaptures" - OpMemberName %type_TranslucentBasePass 51 "TranslucentBasePass_Shared_ForwardISR_HasDirectionalLight" - OpMemberName %type_TranslucentBasePass 52 "TranslucentBasePass_Shared_ForwardISR_NumGridCells" - OpMemberName %type_TranslucentBasePass 53 "TranslucentBasePass_Shared_ForwardISR_CulledGridSize" - OpMemberName %type_TranslucentBasePass 54 "TranslucentBasePass_Shared_ForwardISR_MaxCulledLightsPerCell" - OpMemberName %type_TranslucentBasePass 55 "TranslucentBasePass_Shared_ForwardISR_LightGridPixelSizeShift" - OpMemberName %type_TranslucentBasePass 56 "PrePadding_TranslucentBasePass_Shared_ForwardISR_676" - OpMemberName %type_TranslucentBasePass 57 "PrePadding_TranslucentBasePass_Shared_ForwardISR_680" - OpMemberName %type_TranslucentBasePass 58 "PrePadding_TranslucentBasePass_Shared_ForwardISR_684" - OpMemberName %type_TranslucentBasePass 59 "TranslucentBasePass_Shared_ForwardISR_LightGridZParams" - OpMemberName %type_TranslucentBasePass 60 "PrePadding_TranslucentBasePass_Shared_ForwardISR_700" - OpMemberName %type_TranslucentBasePass 61 "TranslucentBasePass_Shared_ForwardISR_DirectionalLightDirection" - OpMemberName %type_TranslucentBasePass 62 "PrePadding_TranslucentBasePass_Shared_ForwardISR_716" - OpMemberName %type_TranslucentBasePass 63 "TranslucentBasePass_Shared_ForwardISR_DirectionalLightColor" - OpMemberName %type_TranslucentBasePass 64 "TranslucentBasePass_Shared_ForwardISR_DirectionalLightVolumetricScatteringIntensity" - OpMemberName %type_TranslucentBasePass 65 "TranslucentBasePass_Shared_ForwardISR_DirectionalLightShadowMapChannelMask" - OpMemberName %type_TranslucentBasePass 66 "PrePadding_TranslucentBasePass_Shared_ForwardISR_740" - OpMemberName %type_TranslucentBasePass 67 "TranslucentBasePass_Shared_ForwardISR_DirectionalLightDistanceFadeMAD" - OpMemberName %type_TranslucentBasePass 68 "TranslucentBasePass_Shared_ForwardISR_NumDirectionalLightCascades" - OpMemberName %type_TranslucentBasePass 69 "PrePadding_TranslucentBasePass_Shared_ForwardISR_756" - OpMemberName %type_TranslucentBasePass 70 "PrePadding_TranslucentBasePass_Shared_ForwardISR_760" - OpMemberName %type_TranslucentBasePass 71 "PrePadding_TranslucentBasePass_Shared_ForwardISR_764" - OpMemberName %type_TranslucentBasePass 72 "TranslucentBasePass_Shared_ForwardISR_CascadeEndDepths" - OpMemberName %type_TranslucentBasePass 73 "TranslucentBasePass_Shared_ForwardISR_DirectionalLightWorldToShadowMatrix" - OpMemberName %type_TranslucentBasePass 74 "TranslucentBasePass_Shared_ForwardISR_DirectionalLightShadowmapMinMax" - OpMemberName %type_TranslucentBasePass 75 "TranslucentBasePass_Shared_ForwardISR_DirectionalLightShadowmapAtlasBufferSize" - OpMemberName %type_TranslucentBasePass 76 "TranslucentBasePass_Shared_ForwardISR_DirectionalLightDepthBias" - OpMemberName %type_TranslucentBasePass 77 "TranslucentBasePass_Shared_ForwardISR_DirectionalLightUseStaticShadowing" - OpMemberName %type_TranslucentBasePass 78 "PrePadding_TranslucentBasePass_Shared_ForwardISR_1128" - OpMemberName %type_TranslucentBasePass 79 "PrePadding_TranslucentBasePass_Shared_ForwardISR_1132" - OpMemberName %type_TranslucentBasePass 80 "TranslucentBasePass_Shared_ForwardISR_DirectionalLightStaticShadowBufferSize" - OpMemberName %type_TranslucentBasePass 81 "TranslucentBasePass_Shared_ForwardISR_DirectionalLightWorldToStaticShadow" - OpMemberName %type_TranslucentBasePass 82 "PrePadding_TranslucentBasePass_Shared_Reflection_1216" - OpMemberName %type_TranslucentBasePass 83 "PrePadding_TranslucentBasePass_Shared_Reflection_1220" - OpMemberName %type_TranslucentBasePass 84 "PrePadding_TranslucentBasePass_Shared_Reflection_1224" - OpMemberName %type_TranslucentBasePass 85 "PrePadding_TranslucentBasePass_Shared_Reflection_1228" - OpMemberName %type_TranslucentBasePass 86 "PrePadding_TranslucentBasePass_Shared_Reflection_1232" - OpMemberName %type_TranslucentBasePass 87 "PrePadding_TranslucentBasePass_Shared_Reflection_1236" - OpMemberName %type_TranslucentBasePass 88 "PrePadding_TranslucentBasePass_Shared_Reflection_1240" - OpMemberName %type_TranslucentBasePass 89 "PrePadding_TranslucentBasePass_Shared_Reflection_1244" - OpMemberName %type_TranslucentBasePass 90 "PrePadding_TranslucentBasePass_Shared_Reflection_1248" - OpMemberName %type_TranslucentBasePass 91 "PrePadding_TranslucentBasePass_Shared_Reflection_1252" - OpMemberName %type_TranslucentBasePass 92 "PrePadding_TranslucentBasePass_Shared_Reflection_1256" - OpMemberName %type_TranslucentBasePass 93 "PrePadding_TranslucentBasePass_Shared_Reflection_1260" - OpMemberName %type_TranslucentBasePass 94 "PrePadding_TranslucentBasePass_Shared_Reflection_1264" - OpMemberName %type_TranslucentBasePass 95 "PrePadding_TranslucentBasePass_Shared_Reflection_1268" - OpMemberName %type_TranslucentBasePass 96 "PrePadding_TranslucentBasePass_Shared_Reflection_1272" - OpMemberName %type_TranslucentBasePass 97 "PrePadding_TranslucentBasePass_Shared_Reflection_1276" - OpMemberName %type_TranslucentBasePass 98 "TranslucentBasePass_Shared_Reflection_SkyLightParameters" - OpMemberName %type_TranslucentBasePass 99 "TranslucentBasePass_Shared_Reflection_SkyLightCubemapBrightness" - OpMemberName %type_TranslucentBasePass 100 "PrePadding_TranslucentBasePass_Shared_PlanarReflection_1300" - OpMemberName %type_TranslucentBasePass 101 "PrePadding_TranslucentBasePass_Shared_PlanarReflection_1304" - OpMemberName %type_TranslucentBasePass 102 "PrePadding_TranslucentBasePass_Shared_PlanarReflection_1308" - OpMemberName %type_TranslucentBasePass 103 "PrePadding_TranslucentBasePass_Shared_PlanarReflection_1312" - OpMemberName %type_TranslucentBasePass 104 "PrePadding_TranslucentBasePass_Shared_PlanarReflection_1316" - OpMemberName %type_TranslucentBasePass 105 "PrePadding_TranslucentBasePass_Shared_PlanarReflection_1320" - OpMemberName %type_TranslucentBasePass 106 "PrePadding_TranslucentBasePass_Shared_PlanarReflection_1324" - OpMemberName %type_TranslucentBasePass 107 "PrePadding_TranslucentBasePass_Shared_PlanarReflection_1328" - OpMemberName %type_TranslucentBasePass 108 "PrePadding_TranslucentBasePass_Shared_PlanarReflection_1332" - OpMemberName %type_TranslucentBasePass 109 "PrePadding_TranslucentBasePass_Shared_PlanarReflection_1336" - OpMemberName %type_TranslucentBasePass 110 "PrePadding_TranslucentBasePass_Shared_PlanarReflection_1340" - OpMemberName %type_TranslucentBasePass 111 "PrePadding_TranslucentBasePass_Shared_PlanarReflection_1344" - OpMemberName %type_TranslucentBasePass 112 "PrePadding_TranslucentBasePass_Shared_PlanarReflection_1348" - OpMemberName %type_TranslucentBasePass 113 "PrePadding_TranslucentBasePass_Shared_PlanarReflection_1352" - OpMemberName %type_TranslucentBasePass 114 "PrePadding_TranslucentBasePass_Shared_PlanarReflection_1356" - OpMemberName %type_TranslucentBasePass 115 "TranslucentBasePass_Shared_PlanarReflection_ReflectionPlane" - OpMemberName %type_TranslucentBasePass 116 "TranslucentBasePass_Shared_PlanarReflection_PlanarReflectionOrigin" - OpMemberName %type_TranslucentBasePass 117 "TranslucentBasePass_Shared_PlanarReflection_PlanarReflectionXAxis" - OpMemberName %type_TranslucentBasePass 118 "TranslucentBasePass_Shared_PlanarReflection_PlanarReflectionYAxis" - OpMemberName %type_TranslucentBasePass 119 "TranslucentBasePass_Shared_PlanarReflection_InverseTransposeMirrorMatrix" - OpMemberName %type_TranslucentBasePass 120 "TranslucentBasePass_Shared_PlanarReflection_PlanarReflectionParameters" - OpMemberName %type_TranslucentBasePass 121 "PrePadding_TranslucentBasePass_Shared_PlanarReflection_1484" - OpMemberName %type_TranslucentBasePass 122 "TranslucentBasePass_Shared_PlanarReflection_PlanarReflectionParameters2" - OpMemberName %type_TranslucentBasePass 123 "PrePadding_TranslucentBasePass_Shared_PlanarReflection_1496" - OpMemberName %type_TranslucentBasePass 124 "PrePadding_TranslucentBasePass_Shared_PlanarReflection_1500" - OpMemberName %type_TranslucentBasePass 125 "TranslucentBasePass_Shared_PlanarReflection_ProjectionWithExtraFOV" - OpMemberName %type_TranslucentBasePass 126 "TranslucentBasePass_Shared_PlanarReflection_PlanarReflectionScreenScaleBias" - OpMemberName %type_TranslucentBasePass 127 "TranslucentBasePass_Shared_PlanarReflection_PlanarReflectionScreenBound" - OpMemberName %type_TranslucentBasePass 128 "TranslucentBasePass_Shared_PlanarReflection_bIsStereo" - OpMemberName %type_TranslucentBasePass 129 "PrePadding_TranslucentBasePass_Shared_Fog_1676" - OpMemberName %type_TranslucentBasePass 130 "PrePadding_TranslucentBasePass_Shared_Fog_1680" - OpMemberName %type_TranslucentBasePass 131 "PrePadding_TranslucentBasePass_Shared_Fog_1684" - OpMemberName %type_TranslucentBasePass 132 "PrePadding_TranslucentBasePass_Shared_Fog_1688" - OpMemberName %type_TranslucentBasePass 133 "PrePadding_TranslucentBasePass_Shared_Fog_1692" - OpMemberName %type_TranslucentBasePass 134 "TranslucentBasePass_Shared_Fog_ExponentialFogParameters" - OpMemberName %type_TranslucentBasePass 135 "TranslucentBasePass_Shared_Fog_ExponentialFogParameters2" - OpMemberName %type_TranslucentBasePass 136 "TranslucentBasePass_Shared_Fog_ExponentialFogColorParameter" - OpMemberName %type_TranslucentBasePass 137 "TranslucentBasePass_Shared_Fog_ExponentialFogParameters3" - OpMemberName %type_TranslucentBasePass 138 "TranslucentBasePass_Shared_Fog_InscatteringLightDirection" - OpMemberName %type_TranslucentBasePass 139 "TranslucentBasePass_Shared_Fog_DirectionalInscatteringColor" - OpMemberName %type_TranslucentBasePass 140 "TranslucentBasePass_Shared_Fog_SinCosInscatteringColorCubemapRotation" - OpMemberName %type_TranslucentBasePass 141 "PrePadding_TranslucentBasePass_Shared_Fog_1800" - OpMemberName %type_TranslucentBasePass 142 "PrePadding_TranslucentBasePass_Shared_Fog_1804" - OpMemberName %type_TranslucentBasePass 143 "TranslucentBasePass_Shared_Fog_FogInscatteringTextureParameters" - OpMemberName %type_TranslucentBasePass 144 "TranslucentBasePass_Shared_Fog_ApplyVolumetricFog" - OpMemberName %type_TranslucentBasePass 145 "PrePadding_TranslucentBasePass_1824" - OpMemberName %type_TranslucentBasePass 146 "PrePadding_TranslucentBasePass_1828" - OpMemberName %type_TranslucentBasePass 147 "PrePadding_TranslucentBasePass_1832" - OpMemberName %type_TranslucentBasePass 148 "PrePadding_TranslucentBasePass_1836" - OpMemberName %type_TranslucentBasePass 149 "PrePadding_TranslucentBasePass_1840" - OpMemberName %type_TranslucentBasePass 150 "PrePadding_TranslucentBasePass_1844" - OpMemberName %type_TranslucentBasePass 151 "PrePadding_TranslucentBasePass_1848" - OpMemberName %type_TranslucentBasePass 152 "PrePadding_TranslucentBasePass_1852" - OpMemberName %type_TranslucentBasePass 153 "PrePadding_TranslucentBasePass_1856" - OpMemberName %type_TranslucentBasePass 154 "PrePadding_TranslucentBasePass_1860" - OpMemberName %type_TranslucentBasePass 155 "PrePadding_TranslucentBasePass_1864" - OpMemberName %type_TranslucentBasePass 156 "PrePadding_TranslucentBasePass_1868" - OpMemberName %type_TranslucentBasePass 157 "PrePadding_TranslucentBasePass_1872" - OpMemberName %type_TranslucentBasePass 158 "PrePadding_TranslucentBasePass_1876" - OpMemberName %type_TranslucentBasePass 159 "PrePadding_TranslucentBasePass_1880" - OpMemberName %type_TranslucentBasePass 160 "PrePadding_TranslucentBasePass_1884" - OpMemberName %type_TranslucentBasePass 161 "PrePadding_TranslucentBasePass_1888" - OpMemberName %type_TranslucentBasePass 162 "PrePadding_TranslucentBasePass_1892" - OpMemberName %type_TranslucentBasePass 163 "PrePadding_TranslucentBasePass_1896" - OpMemberName %type_TranslucentBasePass 164 "PrePadding_TranslucentBasePass_1900" - OpMemberName %type_TranslucentBasePass 165 "PrePadding_TranslucentBasePass_1904" - OpMemberName %type_TranslucentBasePass 166 "PrePadding_TranslucentBasePass_1908" - OpMemberName %type_TranslucentBasePass 167 "PrePadding_TranslucentBasePass_1912" - OpMemberName %type_TranslucentBasePass 168 "PrePadding_TranslucentBasePass_1916" - OpMemberName %type_TranslucentBasePass 169 "PrePadding_TranslucentBasePass_1920" - OpMemberName %type_TranslucentBasePass 170 "PrePadding_TranslucentBasePass_1924" - OpMemberName %type_TranslucentBasePass 171 "PrePadding_TranslucentBasePass_1928" - OpMemberName %type_TranslucentBasePass 172 "PrePadding_TranslucentBasePass_1932" - OpMemberName %type_TranslucentBasePass 173 "PrePadding_TranslucentBasePass_1936" - OpMemberName %type_TranslucentBasePass 174 "PrePadding_TranslucentBasePass_1940" - OpMemberName %type_TranslucentBasePass 175 "PrePadding_TranslucentBasePass_1944" - OpMemberName %type_TranslucentBasePass 176 "PrePadding_TranslucentBasePass_1948" - OpMemberName %type_TranslucentBasePass 177 "PrePadding_TranslucentBasePass_1952" - OpMemberName %type_TranslucentBasePass 178 "PrePadding_TranslucentBasePass_1956" - OpMemberName %type_TranslucentBasePass 179 "PrePadding_TranslucentBasePass_1960" - OpMemberName %type_TranslucentBasePass 180 "PrePadding_TranslucentBasePass_1964" - OpMemberName %type_TranslucentBasePass 181 "PrePadding_TranslucentBasePass_1968" - OpMemberName %type_TranslucentBasePass 182 "PrePadding_TranslucentBasePass_1972" - OpMemberName %type_TranslucentBasePass 183 "PrePadding_TranslucentBasePass_1976" - OpMemberName %type_TranslucentBasePass 184 "PrePadding_TranslucentBasePass_1980" - OpMemberName %type_TranslucentBasePass 185 "PrePadding_TranslucentBasePass_1984" - OpMemberName %type_TranslucentBasePass 186 "PrePadding_TranslucentBasePass_1988" - OpMemberName %type_TranslucentBasePass 187 "PrePadding_TranslucentBasePass_1992" - OpMemberName %type_TranslucentBasePass 188 "PrePadding_TranslucentBasePass_1996" - OpMemberName %type_TranslucentBasePass 189 "PrePadding_TranslucentBasePass_2000" - OpMemberName %type_TranslucentBasePass 190 "PrePadding_TranslucentBasePass_2004" - OpMemberName %type_TranslucentBasePass 191 "PrePadding_TranslucentBasePass_2008" - OpMemberName %type_TranslucentBasePass 192 "PrePadding_TranslucentBasePass_2012" - OpMemberName %type_TranslucentBasePass 193 "PrePadding_TranslucentBasePass_2016" - OpMemberName %type_TranslucentBasePass 194 "PrePadding_TranslucentBasePass_2020" - OpMemberName %type_TranslucentBasePass 195 "PrePadding_TranslucentBasePass_2024" - OpMemberName %type_TranslucentBasePass 196 "PrePadding_TranslucentBasePass_2028" - OpMemberName %type_TranslucentBasePass 197 "PrePadding_TranslucentBasePass_2032" - OpMemberName %type_TranslucentBasePass 198 "PrePadding_TranslucentBasePass_2036" - OpMemberName %type_TranslucentBasePass 199 "PrePadding_TranslucentBasePass_2040" - OpMemberName %type_TranslucentBasePass 200 "PrePadding_TranslucentBasePass_2044" - OpMemberName %type_TranslucentBasePass 201 "PrePadding_TranslucentBasePass_2048" - OpMemberName %type_TranslucentBasePass 202 "PrePadding_TranslucentBasePass_2052" - OpMemberName %type_TranslucentBasePass 203 "PrePadding_TranslucentBasePass_2056" - OpMemberName %type_TranslucentBasePass 204 "PrePadding_TranslucentBasePass_2060" - OpMemberName %type_TranslucentBasePass 205 "PrePadding_TranslucentBasePass_2064" - OpMemberName %type_TranslucentBasePass 206 "PrePadding_TranslucentBasePass_2068" - OpMemberName %type_TranslucentBasePass 207 "PrePadding_TranslucentBasePass_2072" - OpMemberName %type_TranslucentBasePass 208 "PrePadding_TranslucentBasePass_2076" - OpMemberName %type_TranslucentBasePass 209 "PrePadding_TranslucentBasePass_2080" - OpMemberName %type_TranslucentBasePass 210 "PrePadding_TranslucentBasePass_2084" - OpMemberName %type_TranslucentBasePass 211 "PrePadding_TranslucentBasePass_2088" - OpMemberName %type_TranslucentBasePass 212 "PrePadding_TranslucentBasePass_2092" - OpMemberName %type_TranslucentBasePass 213 "PrePadding_TranslucentBasePass_2096" - OpMemberName %type_TranslucentBasePass 214 "PrePadding_TranslucentBasePass_2100" - OpMemberName %type_TranslucentBasePass 215 "PrePadding_TranslucentBasePass_2104" - OpMemberName %type_TranslucentBasePass 216 "PrePadding_TranslucentBasePass_2108" - OpMemberName %type_TranslucentBasePass 217 "PrePadding_TranslucentBasePass_2112" - OpMemberName %type_TranslucentBasePass 218 "PrePadding_TranslucentBasePass_2116" - OpMemberName %type_TranslucentBasePass 219 "PrePadding_TranslucentBasePass_2120" - OpMemberName %type_TranslucentBasePass 220 "PrePadding_TranslucentBasePass_2124" - OpMemberName %type_TranslucentBasePass 221 "PrePadding_TranslucentBasePass_2128" - OpMemberName %type_TranslucentBasePass 222 "PrePadding_TranslucentBasePass_2132" - OpMemberName %type_TranslucentBasePass 223 "PrePadding_TranslucentBasePass_2136" - OpMemberName %type_TranslucentBasePass 224 "PrePadding_TranslucentBasePass_2140" - OpMemberName %type_TranslucentBasePass 225 "TranslucentBasePass_HZBUvFactorAndInvFactor" - OpMemberName %type_TranslucentBasePass 226 "TranslucentBasePass_PrevScreenPositionScaleBias" - OpMemberName %type_TranslucentBasePass 227 "TranslucentBasePass_PrevSceneColorPreExposureInv" - OpName %TranslucentBasePass "TranslucentBasePass" - OpName %TranslucentBasePass_Shared_Fog_IntegratedLightScattering "TranslucentBasePass_Shared_Fog_IntegratedLightScattering" - OpName %type_Material "type.Material" - OpMemberName %type_Material 0 "Material_VectorExpressions" - OpMemberName %type_Material 1 "Material_ScalarExpressions" - OpName %Material "Material" - OpName %in_var_TEXCOORD10_centroid "in.var.TEXCOORD10_centroid" - OpName %in_var_TEXCOORD11_centroid "in.var.TEXCOORD11_centroid" - OpName %in_var_PRIMITIVE_ID "in.var.PRIMITIVE_ID" - OpName %in_var_TEXCOORD7 "in.var.TEXCOORD7" - OpName %out_var_SV_Target0 "out.var.SV_Target0" - OpName %MainPS "MainPS" - OpName %type_sampled_image "type.sampled.image" - OpDecorateString %in_var_TEXCOORD10_centroid UserSemantic "TEXCOORD10_centroid" - OpDecorateString %in_var_TEXCOORD11_centroid UserSemantic "TEXCOORD11_centroid" - OpDecorateString %in_var_PRIMITIVE_ID UserSemantic "PRIMITIVE_ID" - OpDecorate %in_var_PRIMITIVE_ID Flat - OpDecorateString %in_var_TEXCOORD7 UserSemantic "TEXCOORD7" - OpDecorate %gl_FragCoord BuiltIn FragCoord - OpDecorateString %gl_FragCoord UserSemantic "SV_Position" - OpDecorate %gl_FrontFacing BuiltIn FrontFacing - OpDecorateString %gl_FrontFacing UserSemantic "SV_IsFrontFace" - OpDecorate %gl_FrontFacing Flat - OpDecorate %gl_SampleMask BuiltIn SampleMask - OpDecorateString %gl_SampleMask UserSemantic "SV_Coverage" - OpDecorate %gl_SampleMask Flat - OpDecorateString %out_var_SV_Target0 UserSemantic "SV_Target0" - OpDecorate %gl_SampleMask_0 BuiltIn SampleMask - OpDecorateString %gl_SampleMask_0 UserSemantic "SV_Coverage" - OpDecorate %in_var_TEXCOORD10_centroid Location 0 - OpDecorate %in_var_TEXCOORD11_centroid Location 1 - OpDecorate %in_var_PRIMITIVE_ID Location 2 - OpDecorate %in_var_TEXCOORD7 Location 3 - OpDecorate %out_var_SV_Target0 Location 0 - OpDecorate %View DescriptorSet 0 - OpDecorate %View Binding 1 - OpDecorate %View_SharedBilinearClampedSampler DescriptorSet 0 - OpDecorate %View_SharedBilinearClampedSampler Binding 0 - OpDecorate %View_PrimitiveSceneData DescriptorSet 0 - OpDecorate %View_PrimitiveSceneData Binding 0 - OpDecorate %TranslucentBasePass DescriptorSet 0 - OpDecorate %TranslucentBasePass Binding 2 - OpDecorate %TranslucentBasePass_Shared_Fog_IntegratedLightScattering DescriptorSet 0 - OpDecorate %TranslucentBasePass_Shared_Fog_IntegratedLightScattering Binding 0 - OpDecorate %Material DescriptorSet 0 - OpDecorate %Material Binding 3 - OpDecorate %_arr_v4float_uint_2 ArrayStride 16 - OpDecorate %_arr_v4float_uint_7 ArrayStride 16 - OpDecorate %_arr_v4float_uint_4 ArrayStride 16 - OpMemberDecorate %type_View 0 Offset 0 - OpMemberDecorate %type_View 0 MatrixStride 16 - OpMemberDecorate %type_View 0 ColMajor - OpMemberDecorate %type_View 1 Offset 64 - OpMemberDecorate %type_View 1 MatrixStride 16 - OpMemberDecorate %type_View 1 ColMajor - OpMemberDecorate %type_View 2 Offset 128 - OpMemberDecorate %type_View 2 MatrixStride 16 - OpMemberDecorate %type_View 2 ColMajor - OpMemberDecorate %type_View 3 Offset 192 - OpMemberDecorate %type_View 3 MatrixStride 16 - OpMemberDecorate %type_View 3 ColMajor - OpMemberDecorate %type_View 4 Offset 256 - OpMemberDecorate %type_View 4 MatrixStride 16 - OpMemberDecorate %type_View 4 ColMajor - OpMemberDecorate %type_View 5 Offset 320 - OpMemberDecorate %type_View 5 MatrixStride 16 - OpMemberDecorate %type_View 5 ColMajor - OpMemberDecorate %type_View 6 Offset 384 - OpMemberDecorate %type_View 6 MatrixStride 16 - OpMemberDecorate %type_View 6 ColMajor - OpMemberDecorate %type_View 7 Offset 448 - OpMemberDecorate %type_View 7 MatrixStride 16 - OpMemberDecorate %type_View 7 ColMajor - OpMemberDecorate %type_View 8 Offset 512 - OpMemberDecorate %type_View 8 MatrixStride 16 - OpMemberDecorate %type_View 8 ColMajor - OpMemberDecorate %type_View 9 Offset 576 - OpMemberDecorate %type_View 9 MatrixStride 16 - OpMemberDecorate %type_View 9 ColMajor - OpMemberDecorate %type_View 10 Offset 640 - OpMemberDecorate %type_View 10 MatrixStride 16 - OpMemberDecorate %type_View 10 ColMajor - OpMemberDecorate %type_View 11 Offset 704 - OpMemberDecorate %type_View 11 MatrixStride 16 - OpMemberDecorate %type_View 11 ColMajor - OpMemberDecorate %type_View 12 Offset 768 - OpMemberDecorate %type_View 12 MatrixStride 16 - OpMemberDecorate %type_View 12 ColMajor - OpMemberDecorate %type_View 13 Offset 832 - OpMemberDecorate %type_View 14 Offset 844 - OpMemberDecorate %type_View 15 Offset 848 - OpMemberDecorate %type_View 16 Offset 860 - OpMemberDecorate %type_View 17 Offset 864 - OpMemberDecorate %type_View 18 Offset 876 - OpMemberDecorate %type_View 19 Offset 880 - OpMemberDecorate %type_View 20 Offset 892 - OpMemberDecorate %type_View 21 Offset 896 - OpMemberDecorate %type_View 22 Offset 908 - OpMemberDecorate %type_View 23 Offset 912 - OpMemberDecorate %type_View 24 Offset 928 - OpMemberDecorate %type_View 25 Offset 944 - OpMemberDecorate %type_View 26 Offset 956 - OpMemberDecorate %type_View 27 Offset 960 - OpMemberDecorate %type_View 28 Offset 972 - OpMemberDecorate %type_View 29 Offset 976 - OpMemberDecorate %type_View 30 Offset 988 - OpMemberDecorate %type_View 31 Offset 992 - OpMemberDecorate %type_View 32 Offset 1004 - OpMemberDecorate %type_View 33 Offset 1008 - OpMemberDecorate %type_View 33 MatrixStride 16 - OpMemberDecorate %type_View 33 ColMajor - OpMemberDecorate %type_View 34 Offset 1072 - OpMemberDecorate %type_View 34 MatrixStride 16 - OpMemberDecorate %type_View 34 ColMajor - OpMemberDecorate %type_View 35 Offset 1136 - OpMemberDecorate %type_View 35 MatrixStride 16 - OpMemberDecorate %type_View 35 ColMajor - OpMemberDecorate %type_View 36 Offset 1200 - OpMemberDecorate %type_View 36 MatrixStride 16 - OpMemberDecorate %type_View 36 ColMajor - OpMemberDecorate %type_View 37 Offset 1264 - OpMemberDecorate %type_View 37 MatrixStride 16 - OpMemberDecorate %type_View 37 ColMajor - OpMemberDecorate %type_View 38 Offset 1328 - OpMemberDecorate %type_View 38 MatrixStride 16 - OpMemberDecorate %type_View 38 ColMajor - OpMemberDecorate %type_View 39 Offset 1392 - OpMemberDecorate %type_View 39 MatrixStride 16 - OpMemberDecorate %type_View 39 ColMajor - OpMemberDecorate %type_View 40 Offset 1456 - OpMemberDecorate %type_View 40 MatrixStride 16 - OpMemberDecorate %type_View 40 ColMajor - OpMemberDecorate %type_View 41 Offset 1520 - OpMemberDecorate %type_View 41 MatrixStride 16 - OpMemberDecorate %type_View 41 ColMajor - OpMemberDecorate %type_View 42 Offset 1584 - OpMemberDecorate %type_View 42 MatrixStride 16 - OpMemberDecorate %type_View 42 ColMajor - OpMemberDecorate %type_View 43 Offset 1648 - OpMemberDecorate %type_View 44 Offset 1660 - OpMemberDecorate %type_View 45 Offset 1664 - OpMemberDecorate %type_View 46 Offset 1676 - OpMemberDecorate %type_View 47 Offset 1680 - OpMemberDecorate %type_View 48 Offset 1692 - OpMemberDecorate %type_View 49 Offset 1696 - OpMemberDecorate %type_View 49 MatrixStride 16 - OpMemberDecorate %type_View 49 ColMajor - OpMemberDecorate %type_View 50 Offset 1760 - OpMemberDecorate %type_View 50 MatrixStride 16 - OpMemberDecorate %type_View 50 ColMajor - OpMemberDecorate %type_View 51 Offset 1824 - OpMemberDecorate %type_View 51 MatrixStride 16 - OpMemberDecorate %type_View 51 ColMajor - OpMemberDecorate %type_View 52 Offset 1888 - OpMemberDecorate %type_View 53 Offset 1904 - OpMemberDecorate %type_View 54 Offset 1920 - OpMemberDecorate %type_View 55 Offset 1928 - OpMemberDecorate %type_View 56 Offset 1936 - OpMemberDecorate %type_View 57 Offset 1952 - OpMemberDecorate %type_View 58 Offset 1968 - OpMemberDecorate %type_View 59 Offset 1984 - OpMemberDecorate %type_View 60 Offset 2000 - OpMemberDecorate %type_View 61 Offset 2004 - OpMemberDecorate %type_View 62 Offset 2008 - OpMemberDecorate %type_View 63 Offset 2012 - OpMemberDecorate %type_View 64 Offset 2016 - OpMemberDecorate %type_View 65 Offset 2032 - OpMemberDecorate %type_View 66 Offset 2048 - OpMemberDecorate %type_View 67 Offset 2064 - OpMemberDecorate %type_View 68 Offset 2072 - OpMemberDecorate %type_View 69 Offset 2076 - OpMemberDecorate %type_View 70 Offset 2080 - OpMemberDecorate %type_View 71 Offset 2084 - OpMemberDecorate %type_View 72 Offset 2088 - OpMemberDecorate %type_View 73 Offset 2092 - OpMemberDecorate %type_View 74 Offset 2096 - OpMemberDecorate %type_View 75 Offset 2108 - OpMemberDecorate %type_View 76 Offset 2112 - OpMemberDecorate %type_View 77 Offset 2116 - OpMemberDecorate %type_View 78 Offset 2120 - OpMemberDecorate %type_View 79 Offset 2124 - OpMemberDecorate %type_View 80 Offset 2128 - OpMemberDecorate %type_View 81 Offset 2132 - OpMemberDecorate %type_View 82 Offset 2136 - OpMemberDecorate %type_View 83 Offset 2140 - OpMemberDecorate %type_View 84 Offset 2144 - OpMemberDecorate %type_View 85 Offset 2148 - OpMemberDecorate %type_View 86 Offset 2152 - OpMemberDecorate %type_View 87 Offset 2156 - OpMemberDecorate %type_View 88 Offset 2160 - OpMemberDecorate %type_View 89 Offset 2164 - OpMemberDecorate %type_View 90 Offset 2168 - OpMemberDecorate %type_View 91 Offset 2172 - OpMemberDecorate %type_View 92 Offset 2176 - OpMemberDecorate %type_View 93 Offset 2192 - OpMemberDecorate %type_View 94 Offset 2204 - OpMemberDecorate %type_View 95 Offset 2208 - OpMemberDecorate %type_View 96 Offset 2240 - OpMemberDecorate %type_View 97 Offset 2272 - OpMemberDecorate %type_View 98 Offset 2288 - OpMemberDecorate %type_View 99 Offset 2304 - OpMemberDecorate %type_View 100 Offset 2308 - OpMemberDecorate %type_View 101 Offset 2312 - OpMemberDecorate %type_View 102 Offset 2316 - OpMemberDecorate %type_View 103 Offset 2320 - OpMemberDecorate %type_View 104 Offset 2324 - OpMemberDecorate %type_View 105 Offset 2328 - OpMemberDecorate %type_View 106 Offset 2332 - OpMemberDecorate %type_View 107 Offset 2336 - OpMemberDecorate %type_View 108 Offset 2340 - OpMemberDecorate %type_View 109 Offset 2344 - OpMemberDecorate %type_View 110 Offset 2348 - OpMemberDecorate %type_View 111 Offset 2352 - OpMemberDecorate %type_View 112 Offset 2364 - OpMemberDecorate %type_View 113 Offset 2368 - OpMemberDecorate %type_View 114 Offset 2380 - OpMemberDecorate %type_View 115 Offset 2384 - OpMemberDecorate %type_View 116 Offset 2388 - OpMemberDecorate %type_View 117 Offset 2392 - OpMemberDecorate %type_View 118 Offset 2396 - OpMemberDecorate %type_View 119 Offset 2400 - OpMemberDecorate %type_View 120 Offset 2404 - OpMemberDecorate %type_View 121 Offset 2408 - OpMemberDecorate %type_View 122 Offset 2412 - OpMemberDecorate %type_View 123 Offset 2416 - OpMemberDecorate %type_View 124 Offset 2420 - OpMemberDecorate %type_View 125 Offset 2424 - OpMemberDecorate %type_View 126 Offset 2428 - OpMemberDecorate %type_View 127 Offset 2432 - OpMemberDecorate %type_View 128 Offset 2448 - OpMemberDecorate %type_View 129 Offset 2460 - OpMemberDecorate %type_View 130 Offset 2464 - OpMemberDecorate %type_View 131 Offset 2480 - OpMemberDecorate %type_View 132 Offset 2484 - OpMemberDecorate %type_View 133 Offset 2488 - OpMemberDecorate %type_View 134 Offset 2492 - OpMemberDecorate %type_View 135 Offset 2496 - OpMemberDecorate %type_View 136 Offset 2512 - OpMemberDecorate %type_View 137 Offset 2624 - OpMemberDecorate %type_View 138 Offset 2628 - OpMemberDecorate %type_View 139 Offset 2632 - OpMemberDecorate %type_View 140 Offset 2636 - OpMemberDecorate %type_View 141 Offset 2640 - OpMemberDecorate %type_View 142 Offset 2644 - OpMemberDecorate %type_View 143 Offset 2648 - OpMemberDecorate %type_View 144 Offset 2652 - OpMemberDecorate %type_View 145 Offset 2656 - OpMemberDecorate %type_View 146 Offset 2668 - OpMemberDecorate %type_View 147 Offset 2672 - OpMemberDecorate %type_View 148 Offset 2736 - OpMemberDecorate %type_View 149 Offset 2800 - OpMemberDecorate %type_View 150 Offset 2804 - OpMemberDecorate %type_View 151 Offset 2808 - OpMemberDecorate %type_View 152 Offset 2812 - OpMemberDecorate %type_View 153 Offset 2816 - OpMemberDecorate %type_View 154 Offset 2828 - OpMemberDecorate %type_View 155 Offset 2832 - OpMemberDecorate %type_View 156 Offset 2844 - OpMemberDecorate %type_View 157 Offset 2848 - OpMemberDecorate %type_View 158 Offset 2856 - OpMemberDecorate %type_View 159 Offset 2860 - OpMemberDecorate %type_View 160 Offset 2864 - OpMemberDecorate %type_View 161 Offset 2876 - OpMemberDecorate %type_View 162 Offset 2880 - OpMemberDecorate %type_View 163 Offset 2892 - OpMemberDecorate %type_View 164 Offset 2896 - OpMemberDecorate %type_View 165 Offset 2908 - OpMemberDecorate %type_View 166 Offset 2912 - OpMemberDecorate %type_View 167 Offset 2924 - OpMemberDecorate %type_View 168 Offset 2928 - OpMemberDecorate %type_View 169 Offset 2932 - OpDecorate %type_View Block - OpDecorate %_runtimearr_v4float ArrayStride 16 - OpMemberDecorate %type_StructuredBuffer_v4float 0 Offset 0 - OpMemberDecorate %type_StructuredBuffer_v4float 0 NonWritable - OpDecorate %type_StructuredBuffer_v4float BufferBlock - OpDecorate %_arr_mat4v4float_uint_4 ArrayStride 64 - OpDecorate %_arr_mat4v4float_uint_2 ArrayStride 64 - OpMemberDecorate %type_TranslucentBasePass 0 Offset 0 - OpMemberDecorate %type_TranslucentBasePass 1 Offset 4 - OpMemberDecorate %type_TranslucentBasePass 2 Offset 8 - OpMemberDecorate %type_TranslucentBasePass 3 Offset 12 - OpMemberDecorate %type_TranslucentBasePass 4 Offset 16 - OpMemberDecorate %type_TranslucentBasePass 5 Offset 28 - OpMemberDecorate %type_TranslucentBasePass 6 Offset 32 - OpMemberDecorate %type_TranslucentBasePass 7 Offset 36 - OpMemberDecorate %type_TranslucentBasePass 8 Offset 40 - OpMemberDecorate %type_TranslucentBasePass 9 Offset 44 - OpMemberDecorate %type_TranslucentBasePass 10 Offset 48 - OpMemberDecorate %type_TranslucentBasePass 11 Offset 60 - OpMemberDecorate %type_TranslucentBasePass 12 Offset 64 - OpMemberDecorate %type_TranslucentBasePass 13 Offset 76 - OpMemberDecorate %type_TranslucentBasePass 14 Offset 80 - OpMemberDecorate %type_TranslucentBasePass 15 Offset 92 - OpMemberDecorate %type_TranslucentBasePass 16 Offset 96 - OpMemberDecorate %type_TranslucentBasePass 17 Offset 100 - OpMemberDecorate %type_TranslucentBasePass 18 Offset 104 - OpMemberDecorate %type_TranslucentBasePass 19 Offset 112 - OpMemberDecorate %type_TranslucentBasePass 20 Offset 116 - OpMemberDecorate %type_TranslucentBasePass 21 Offset 120 - OpMemberDecorate %type_TranslucentBasePass 22 Offset 124 - OpMemberDecorate %type_TranslucentBasePass 23 Offset 128 - OpMemberDecorate %type_TranslucentBasePass 24 Offset 144 - OpMemberDecorate %type_TranslucentBasePass 24 MatrixStride 16 - OpMemberDecorate %type_TranslucentBasePass 24 ColMajor - OpMemberDecorate %type_TranslucentBasePass 25 Offset 400 - OpMemberDecorate %type_TranslucentBasePass 26 Offset 464 - OpMemberDecorate %type_TranslucentBasePass 27 Offset 480 - OpMemberDecorate %type_TranslucentBasePass 28 Offset 484 - OpMemberDecorate %type_TranslucentBasePass 29 Offset 488 - OpMemberDecorate %type_TranslucentBasePass 30 Offset 492 - OpMemberDecorate %type_TranslucentBasePass 31 Offset 496 - OpMemberDecorate %type_TranslucentBasePass 32 Offset 512 - OpMemberDecorate %type_TranslucentBasePass 32 MatrixStride 16 - OpMemberDecorate %type_TranslucentBasePass 32 ColMajor - OpMemberDecorate %type_TranslucentBasePass 33 Offset 576 - OpMemberDecorate %type_TranslucentBasePass 34 Offset 580 - OpMemberDecorate %type_TranslucentBasePass 35 Offset 584 - OpMemberDecorate %type_TranslucentBasePass 36 Offset 588 - OpMemberDecorate %type_TranslucentBasePass 37 Offset 592 - OpMemberDecorate %type_TranslucentBasePass 38 Offset 596 - OpMemberDecorate %type_TranslucentBasePass 39 Offset 600 - OpMemberDecorate %type_TranslucentBasePass 40 Offset 604 - OpMemberDecorate %type_TranslucentBasePass 41 Offset 608 - OpMemberDecorate %type_TranslucentBasePass 42 Offset 612 - OpMemberDecorate %type_TranslucentBasePass 43 Offset 616 - OpMemberDecorate %type_TranslucentBasePass 44 Offset 620 - OpMemberDecorate %type_TranslucentBasePass 45 Offset 624 - OpMemberDecorate %type_TranslucentBasePass 46 Offset 628 - OpMemberDecorate %type_TranslucentBasePass 47 Offset 632 - OpMemberDecorate %type_TranslucentBasePass 48 Offset 636 - OpMemberDecorate %type_TranslucentBasePass 49 Offset 640 - OpMemberDecorate %type_TranslucentBasePass 50 Offset 644 - OpMemberDecorate %type_TranslucentBasePass 51 Offset 648 - OpMemberDecorate %type_TranslucentBasePass 52 Offset 652 - OpMemberDecorate %type_TranslucentBasePass 53 Offset 656 - OpMemberDecorate %type_TranslucentBasePass 54 Offset 668 - OpMemberDecorate %type_TranslucentBasePass 55 Offset 672 - OpMemberDecorate %type_TranslucentBasePass 56 Offset 676 - OpMemberDecorate %type_TranslucentBasePass 57 Offset 680 - OpMemberDecorate %type_TranslucentBasePass 58 Offset 684 - OpMemberDecorate %type_TranslucentBasePass 59 Offset 688 - OpMemberDecorate %type_TranslucentBasePass 60 Offset 700 - OpMemberDecorate %type_TranslucentBasePass 61 Offset 704 - OpMemberDecorate %type_TranslucentBasePass 62 Offset 716 - OpMemberDecorate %type_TranslucentBasePass 63 Offset 720 - OpMemberDecorate %type_TranslucentBasePass 64 Offset 732 - OpMemberDecorate %type_TranslucentBasePass 65 Offset 736 - OpMemberDecorate %type_TranslucentBasePass 66 Offset 740 - OpMemberDecorate %type_TranslucentBasePass 67 Offset 744 - OpMemberDecorate %type_TranslucentBasePass 68 Offset 752 - OpMemberDecorate %type_TranslucentBasePass 69 Offset 756 - OpMemberDecorate %type_TranslucentBasePass 70 Offset 760 - OpMemberDecorate %type_TranslucentBasePass 71 Offset 764 - OpMemberDecorate %type_TranslucentBasePass 72 Offset 768 - OpMemberDecorate %type_TranslucentBasePass 73 Offset 784 - OpMemberDecorate %type_TranslucentBasePass 73 MatrixStride 16 - OpMemberDecorate %type_TranslucentBasePass 73 ColMajor - OpMemberDecorate %type_TranslucentBasePass 74 Offset 1040 - OpMemberDecorate %type_TranslucentBasePass 75 Offset 1104 - OpMemberDecorate %type_TranslucentBasePass 76 Offset 1120 - OpMemberDecorate %type_TranslucentBasePass 77 Offset 1124 - OpMemberDecorate %type_TranslucentBasePass 78 Offset 1128 - OpMemberDecorate %type_TranslucentBasePass 79 Offset 1132 - OpMemberDecorate %type_TranslucentBasePass 80 Offset 1136 - OpMemberDecorate %type_TranslucentBasePass 81 Offset 1152 - OpMemberDecorate %type_TranslucentBasePass 81 MatrixStride 16 - OpMemberDecorate %type_TranslucentBasePass 81 ColMajor - OpMemberDecorate %type_TranslucentBasePass 82 Offset 1216 - OpMemberDecorate %type_TranslucentBasePass 83 Offset 1220 - OpMemberDecorate %type_TranslucentBasePass 84 Offset 1224 - OpMemberDecorate %type_TranslucentBasePass 85 Offset 1228 - OpMemberDecorate %type_TranslucentBasePass 86 Offset 1232 - OpMemberDecorate %type_TranslucentBasePass 87 Offset 1236 - OpMemberDecorate %type_TranslucentBasePass 88 Offset 1240 - OpMemberDecorate %type_TranslucentBasePass 89 Offset 1244 - OpMemberDecorate %type_TranslucentBasePass 90 Offset 1248 - OpMemberDecorate %type_TranslucentBasePass 91 Offset 1252 - OpMemberDecorate %type_TranslucentBasePass 92 Offset 1256 - OpMemberDecorate %type_TranslucentBasePass 93 Offset 1260 - OpMemberDecorate %type_TranslucentBasePass 94 Offset 1264 - OpMemberDecorate %type_TranslucentBasePass 95 Offset 1268 - OpMemberDecorate %type_TranslucentBasePass 96 Offset 1272 - OpMemberDecorate %type_TranslucentBasePass 97 Offset 1276 - OpMemberDecorate %type_TranslucentBasePass 98 Offset 1280 - OpMemberDecorate %type_TranslucentBasePass 99 Offset 1296 - OpMemberDecorate %type_TranslucentBasePass 100 Offset 1300 - OpMemberDecorate %type_TranslucentBasePass 101 Offset 1304 - OpMemberDecorate %type_TranslucentBasePass 102 Offset 1308 - OpMemberDecorate %type_TranslucentBasePass 103 Offset 1312 - OpMemberDecorate %type_TranslucentBasePass 104 Offset 1316 - OpMemberDecorate %type_TranslucentBasePass 105 Offset 1320 - OpMemberDecorate %type_TranslucentBasePass 106 Offset 1324 - OpMemberDecorate %type_TranslucentBasePass 107 Offset 1328 - OpMemberDecorate %type_TranslucentBasePass 108 Offset 1332 - OpMemberDecorate %type_TranslucentBasePass 109 Offset 1336 - OpMemberDecorate %type_TranslucentBasePass 110 Offset 1340 - OpMemberDecorate %type_TranslucentBasePass 111 Offset 1344 - OpMemberDecorate %type_TranslucentBasePass 112 Offset 1348 - OpMemberDecorate %type_TranslucentBasePass 113 Offset 1352 - OpMemberDecorate %type_TranslucentBasePass 114 Offset 1356 - OpMemberDecorate %type_TranslucentBasePass 115 Offset 1360 - OpMemberDecorate %type_TranslucentBasePass 116 Offset 1376 - OpMemberDecorate %type_TranslucentBasePass 117 Offset 1392 - OpMemberDecorate %type_TranslucentBasePass 118 Offset 1408 - OpMemberDecorate %type_TranslucentBasePass 119 Offset 1424 - OpMemberDecorate %type_TranslucentBasePass 119 MatrixStride 16 - OpMemberDecorate %type_TranslucentBasePass 119 ColMajor - OpMemberDecorate %type_TranslucentBasePass 120 Offset 1472 - OpMemberDecorate %type_TranslucentBasePass 121 Offset 1484 - OpMemberDecorate %type_TranslucentBasePass 122 Offset 1488 - OpMemberDecorate %type_TranslucentBasePass 123 Offset 1496 - OpMemberDecorate %type_TranslucentBasePass 124 Offset 1500 - OpMemberDecorate %type_TranslucentBasePass 125 Offset 1504 - OpMemberDecorate %type_TranslucentBasePass 125 MatrixStride 16 - OpMemberDecorate %type_TranslucentBasePass 125 ColMajor - OpMemberDecorate %type_TranslucentBasePass 126 Offset 1632 - OpMemberDecorate %type_TranslucentBasePass 127 Offset 1664 - OpMemberDecorate %type_TranslucentBasePass 128 Offset 1672 - OpMemberDecorate %type_TranslucentBasePass 129 Offset 1676 - OpMemberDecorate %type_TranslucentBasePass 130 Offset 1680 - OpMemberDecorate %type_TranslucentBasePass 131 Offset 1684 - OpMemberDecorate %type_TranslucentBasePass 132 Offset 1688 - OpMemberDecorate %type_TranslucentBasePass 133 Offset 1692 - OpMemberDecorate %type_TranslucentBasePass 134 Offset 1696 - OpMemberDecorate %type_TranslucentBasePass 135 Offset 1712 - OpMemberDecorate %type_TranslucentBasePass 136 Offset 1728 - OpMemberDecorate %type_TranslucentBasePass 137 Offset 1744 - OpMemberDecorate %type_TranslucentBasePass 138 Offset 1760 - OpMemberDecorate %type_TranslucentBasePass 139 Offset 1776 - OpMemberDecorate %type_TranslucentBasePass 140 Offset 1792 - OpMemberDecorate %type_TranslucentBasePass 141 Offset 1800 - OpMemberDecorate %type_TranslucentBasePass 142 Offset 1804 - OpMemberDecorate %type_TranslucentBasePass 143 Offset 1808 - OpMemberDecorate %type_TranslucentBasePass 144 Offset 1820 - OpMemberDecorate %type_TranslucentBasePass 145 Offset 1824 - OpMemberDecorate %type_TranslucentBasePass 146 Offset 1828 - OpMemberDecorate %type_TranslucentBasePass 147 Offset 1832 - OpMemberDecorate %type_TranslucentBasePass 148 Offset 1836 - OpMemberDecorate %type_TranslucentBasePass 149 Offset 1840 - OpMemberDecorate %type_TranslucentBasePass 150 Offset 1844 - OpMemberDecorate %type_TranslucentBasePass 151 Offset 1848 - OpMemberDecorate %type_TranslucentBasePass 152 Offset 1852 - OpMemberDecorate %type_TranslucentBasePass 153 Offset 1856 - OpMemberDecorate %type_TranslucentBasePass 154 Offset 1860 - OpMemberDecorate %type_TranslucentBasePass 155 Offset 1864 - OpMemberDecorate %type_TranslucentBasePass 156 Offset 1868 - OpMemberDecorate %type_TranslucentBasePass 157 Offset 1872 - OpMemberDecorate %type_TranslucentBasePass 158 Offset 1876 - OpMemberDecorate %type_TranslucentBasePass 159 Offset 1880 - OpMemberDecorate %type_TranslucentBasePass 160 Offset 1884 - OpMemberDecorate %type_TranslucentBasePass 161 Offset 1888 - OpMemberDecorate %type_TranslucentBasePass 162 Offset 1892 - OpMemberDecorate %type_TranslucentBasePass 163 Offset 1896 - OpMemberDecorate %type_TranslucentBasePass 164 Offset 1900 - OpMemberDecorate %type_TranslucentBasePass 165 Offset 1904 - OpMemberDecorate %type_TranslucentBasePass 166 Offset 1908 - OpMemberDecorate %type_TranslucentBasePass 167 Offset 1912 - OpMemberDecorate %type_TranslucentBasePass 168 Offset 1916 - OpMemberDecorate %type_TranslucentBasePass 169 Offset 1920 - OpMemberDecorate %type_TranslucentBasePass 170 Offset 1924 - OpMemberDecorate %type_TranslucentBasePass 171 Offset 1928 - OpMemberDecorate %type_TranslucentBasePass 172 Offset 1932 - OpMemberDecorate %type_TranslucentBasePass 173 Offset 1936 - OpMemberDecorate %type_TranslucentBasePass 174 Offset 1940 - OpMemberDecorate %type_TranslucentBasePass 175 Offset 1944 - OpMemberDecorate %type_TranslucentBasePass 176 Offset 1948 - OpMemberDecorate %type_TranslucentBasePass 177 Offset 1952 - OpMemberDecorate %type_TranslucentBasePass 178 Offset 1956 - OpMemberDecorate %type_TranslucentBasePass 179 Offset 1960 - OpMemberDecorate %type_TranslucentBasePass 180 Offset 1964 - OpMemberDecorate %type_TranslucentBasePass 181 Offset 1968 - OpMemberDecorate %type_TranslucentBasePass 182 Offset 1972 - OpMemberDecorate %type_TranslucentBasePass 183 Offset 1976 - OpMemberDecorate %type_TranslucentBasePass 184 Offset 1980 - OpMemberDecorate %type_TranslucentBasePass 185 Offset 1984 - OpMemberDecorate %type_TranslucentBasePass 186 Offset 1988 - OpMemberDecorate %type_TranslucentBasePass 187 Offset 1992 - OpMemberDecorate %type_TranslucentBasePass 188 Offset 1996 - OpMemberDecorate %type_TranslucentBasePass 189 Offset 2000 - OpMemberDecorate %type_TranslucentBasePass 190 Offset 2004 - OpMemberDecorate %type_TranslucentBasePass 191 Offset 2008 - OpMemberDecorate %type_TranslucentBasePass 192 Offset 2012 - OpMemberDecorate %type_TranslucentBasePass 193 Offset 2016 - OpMemberDecorate %type_TranslucentBasePass 194 Offset 2020 - OpMemberDecorate %type_TranslucentBasePass 195 Offset 2024 - OpMemberDecorate %type_TranslucentBasePass 196 Offset 2028 - OpMemberDecorate %type_TranslucentBasePass 197 Offset 2032 - OpMemberDecorate %type_TranslucentBasePass 198 Offset 2036 - OpMemberDecorate %type_TranslucentBasePass 199 Offset 2040 - OpMemberDecorate %type_TranslucentBasePass 200 Offset 2044 - OpMemberDecorate %type_TranslucentBasePass 201 Offset 2048 - OpMemberDecorate %type_TranslucentBasePass 202 Offset 2052 - OpMemberDecorate %type_TranslucentBasePass 203 Offset 2056 - OpMemberDecorate %type_TranslucentBasePass 204 Offset 2060 - OpMemberDecorate %type_TranslucentBasePass 205 Offset 2064 - OpMemberDecorate %type_TranslucentBasePass 206 Offset 2068 - OpMemberDecorate %type_TranslucentBasePass 207 Offset 2072 - OpMemberDecorate %type_TranslucentBasePass 208 Offset 2076 - OpMemberDecorate %type_TranslucentBasePass 209 Offset 2080 - OpMemberDecorate %type_TranslucentBasePass 210 Offset 2084 - OpMemberDecorate %type_TranslucentBasePass 211 Offset 2088 - OpMemberDecorate %type_TranslucentBasePass 212 Offset 2092 - OpMemberDecorate %type_TranslucentBasePass 213 Offset 2096 - OpMemberDecorate %type_TranslucentBasePass 214 Offset 2100 - OpMemberDecorate %type_TranslucentBasePass 215 Offset 2104 - OpMemberDecorate %type_TranslucentBasePass 216 Offset 2108 - OpMemberDecorate %type_TranslucentBasePass 217 Offset 2112 - OpMemberDecorate %type_TranslucentBasePass 218 Offset 2116 - OpMemberDecorate %type_TranslucentBasePass 219 Offset 2120 - OpMemberDecorate %type_TranslucentBasePass 220 Offset 2124 - OpMemberDecorate %type_TranslucentBasePass 221 Offset 2128 - OpMemberDecorate %type_TranslucentBasePass 222 Offset 2132 - OpMemberDecorate %type_TranslucentBasePass 223 Offset 2136 - OpMemberDecorate %type_TranslucentBasePass 224 Offset 2140 - OpMemberDecorate %type_TranslucentBasePass 225 Offset 2144 - OpMemberDecorate %type_TranslucentBasePass 226 Offset 2160 - OpMemberDecorate %type_TranslucentBasePass 227 Offset 2176 - OpDecorate %type_TranslucentBasePass Block - OpDecorate %_arr_v4float_uint_1 ArrayStride 16 - OpMemberDecorate %type_Material 0 Offset 0 - OpMemberDecorate %type_Material 1 Offset 32 - OpDecorate %type_Material Block - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%mat4v4float = OpTypeMatrix %v4float 4 - %v3float = OpTypeVector %float 3 - %v2float = OpTypeVector %float 2 - %int = OpTypeInt 32 1 - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 - %uint_7 = OpConstant %uint 7 - %uint_4 = OpConstant %uint 4 - %uint_0 = OpConstant %uint 0 - %bool = OpTypeBool - %int_1 = OpConstant %int 1 - %int_0 = OpConstant %int 0 - %int_2 = OpConstant %int 2 - %float_0 = OpConstant %float 0 - %48 = OpConstantComposite %v3float %float_0 %float_0 %float_0 - %int_10 = OpConstant %int 10 - %int_144 = OpConstant %int 144 - %int_70 = OpConstant %int 70 - %float_1 = OpConstant %float 1 - %53 = OpConstantComposite %v3float %float_1 %float_1 %float_1 -%float_0_577000022 = OpConstant %float 0.577000022 - %55 = OpConstantComposite %v3float %float_0_577000022 %float_0_577000022 %float_0_577000022 - %56 = OpConstantComposite %v3float %float_1 %float_1 %float_0 - %57 = OpConstantComposite %v3float %float_0 %float_1 %float_1 - %float_0_5 = OpConstant %float 0.5 - %59 = OpConstantComposite %v3float %float_0_5 %float_0_5 %float_0_5 - %int_60 = OpConstant %int 60 - %61 = OpConstantComposite %v2float %float_0_5 %float_0_5 - %uint_26 = OpConstant %uint 26 - %uint_1 = OpConstant %uint 1 - %uint_5 = OpConstant %uint 5 - %uint_19 = OpConstant %uint 19 - %float_n0_5 = OpConstant %float -0.5 - %67 = OpConstantComposite %v2float %float_0_5 %float_n0_5 - %68 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1 - %float_0_25 = OpConstant %float 0.25 - %int_31 = OpConstant %int 31 - %int_66 = OpConstant %int 66 - %int_153 = OpConstant %int 153 - %int_155 = OpConstant %int 155 -%mat3v3float = OpTypeMatrix %v3float 3 - %75 = OpConstantComposite %v3float %float_0 %float_0 %float_1 - %float_n1 = OpConstant %float -1 -%float_0_200000003 = OpConstant %float 0.200000003 -%_arr_v4float_uint_2 = OpTypeArray %v4float %uint_2 -%_arr_v4float_uint_7 = OpTypeArray %v4float %uint_7 -%_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4 - %type_View = OpTypeStruct %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %v3float %float %v3float %float %v3float %float %v3float %float %v3float %float %v4float %v4float %v3float %float %v3float %float %v3float %float %v3float %float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %v3float %float %v3float %float %v3float %float %mat4v4float %mat4v4float %mat4v4float %v4float %v4float %v2float %v2float %v4float %v4float %v4float %v4float %int %float %float %float %v4float %v4float %v4float %v2float %float %float %float %float %float %float %v3float %float %float %float %float %float %float %float %float %uint %uint %uint %uint %float %float %float %float %float %v4float %v3float %float %_arr_v4float_uint_2 %_arr_v4float_uint_2 %v4float %v4float %float %float %float %float %float %float %float %float %float %float %float %float %v3float %float %v3float %float %float %float %float %float %float %float %float %float %float %float %uint %uint %v4float %v3float %float %v4float %float %float %float %float %v4float %_arr_v4float_uint_7 %float %float %float %float %uint %float %float %float %v3float %int %_arr_v4float_uint_4 %_arr_v4float_uint_4 %float %float %float %float %v3float %float %v3float %float %v2float %float %float %v3float %float %v3float %float %v3float %float %v3float %float %float %float -%_ptr_Uniform_type_View = OpTypePointer Uniform %type_View -%type_3d_image = OpTypeImage %float 3D 2 0 0 1 Unknown -%_ptr_UniformConstant_type_3d_image = OpTypePointer UniformConstant %type_3d_image -%type_sampler = OpTypeSampler -%_ptr_UniformConstant_type_sampler = OpTypePointer UniformConstant %type_sampler -%_runtimearr_v4float = OpTypeRuntimeArray %v4float -%type_StructuredBuffer_v4float = OpTypeStruct %_runtimearr_v4float -%_ptr_Uniform_type_StructuredBuffer_v4float = OpTypePointer Uniform %type_StructuredBuffer_v4float - %v3int = OpTypeVector %int 3 -%_arr_mat4v4float_uint_4 = OpTypeArray %mat4v4float %uint_4 -%mat3v4float = OpTypeMatrix %v4float 3 -%_arr_mat4v4float_uint_2 = OpTypeArray %mat4v4float %uint_2 -%type_TranslucentBasePass = OpTypeStruct %uint %uint %uint %uint %v3int %uint %uint %uint %uint %uint %v3float %float %v3float %float %v3float %float %uint %uint %v2float %uint %uint %uint %uint %v4float %_arr_mat4v4float_uint_4 %_arr_v4float_uint_4 %v4float %float %uint %uint %uint %v4float %mat4v4float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %uint %uint %uint %uint %v3int %uint %uint %uint %uint %uint %v3float %float %v3float %float %v3float %float %uint %uint %v2float %uint %uint %uint %uint %v4float %_arr_mat4v4float_uint_4 %_arr_v4float_uint_4 %v4float %float %uint %uint %uint %v4float %mat4v4float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %v4float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %v4float %v4float %v4float %v4float %mat3v4float %v3float %float %v2float %float %float %_arr_mat4v4float_uint_2 %_arr_v4float_uint_2 %v2float %uint %float %float %float %float %float %v4float %v4float %v4float %v4float %v4float %v4float %v2float %float %float %v3float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %v4float %v4float %float -%_ptr_Uniform_type_TranslucentBasePass = OpTypePointer Uniform %type_TranslucentBasePass -%_arr_v4float_uint_1 = OpTypeArray %v4float %uint_1 -%type_Material = OpTypeStruct %_arr_v4float_uint_2 %_arr_v4float_uint_1 -%_ptr_Uniform_type_Material = OpTypePointer Uniform %type_Material -%_ptr_Input_v4float = OpTypePointer Input %v4float -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_Input_bool = OpTypePointer Input %bool -%_arr_uint_uint_1 = OpTypeArray %uint %uint_1 -%_ptr_Input__arr_uint_uint_1 = OpTypePointer Input %_arr_uint_uint_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float -%_ptr_Output__arr_uint_uint_1 = OpTypePointer Output %_arr_uint_uint_1 - %void = OpTypeVoid - %94 = OpTypeFunction %void -%_ptr_Output_uint = OpTypePointer Output %uint -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float -%_ptr_Uniform_float = OpTypePointer Uniform %float - %v3bool = OpTypeVector %bool 3 -%_ptr_Uniform_int = OpTypePointer Uniform %int -%_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float -%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float -%type_sampled_image = OpTypeSampledImage %type_3d_image - %View = OpVariable %_ptr_Uniform_type_View Uniform -%View_SharedBilinearClampedSampler = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant -%View_PrimitiveSceneData = OpVariable %_ptr_Uniform_type_StructuredBuffer_v4float Uniform -%TranslucentBasePass = OpVariable %_ptr_Uniform_type_TranslucentBasePass Uniform -%TranslucentBasePass_Shared_Fog_IntegratedLightScattering = OpVariable %_ptr_UniformConstant_type_3d_image UniformConstant - %Material = OpVariable %_ptr_Uniform_type_Material Uniform -%in_var_TEXCOORD10_centroid = OpVariable %_ptr_Input_v4float Input -%in_var_TEXCOORD11_centroid = OpVariable %_ptr_Input_v4float Input -%in_var_PRIMITIVE_ID = OpVariable %_ptr_Input_uint Input -%in_var_TEXCOORD7 = OpVariable %_ptr_Input_v4float Input -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input -%gl_FrontFacing = OpVariable %_ptr_Input_bool Input -%gl_SampleMask = OpVariable %_ptr_Input__arr_uint_uint_1 Input -%out_var_SV_Target0 = OpVariable %_ptr_Output_v4float Output -%gl_SampleMask_0 = OpVariable %_ptr_Output__arr_uint_uint_1 Output - %102 = OpConstantNull %v4float - %float_n1_5 = OpConstant %float -1.5 - %float_3 = OpConstant %float 3 - %105 = OpConstantComposite %v3float %float_n1 %float_n1_5 %float_3 -%float_12_25 = OpConstant %float 12.25 -%float_0_00200000009 = OpConstant %float 0.00200000009 - %108 = OpUndef %float - %uint_15 = OpConstant %uint 15 - %MainPS = OpFunction %void None %94 - %110 = OpLabel - %111 = OpLoad %v4float %in_var_TEXCOORD10_centroid - %112 = OpLoad %v4float %in_var_TEXCOORD11_centroid - %113 = OpLoad %uint %in_var_PRIMITIVE_ID - %114 = OpLoad %v4float %in_var_TEXCOORD7 - %115 = OpLoad %v4float %gl_FragCoord - %116 = OpLoad %_arr_uint_uint_1 %gl_SampleMask - %117 = OpCompositeExtract %uint %116 0 - %118 = OpAccessChain %_ptr_Uniform_mat4v4float %View %int_1 - %119 = OpLoad %mat4v4float %118 - %120 = OpAccessChain %_ptr_Uniform_mat4v4float %View %int_10 - %121 = OpLoad %mat4v4float %120 - %122 = OpAccessChain %_ptr_Uniform_v3float %View %int_31 - %123 = OpLoad %v3float %122 - %124 = OpAccessChain %_ptr_Uniform_v4float %View %int_66 - %125 = OpLoad %v4float %124 - %126 = OpVectorShuffle %v3float %111 %111 0 1 2 - %127 = OpVectorShuffle %v3float %112 %112 0 1 2 - %128 = OpExtInst %v3float %1 Cross %127 %126 - %129 = OpCompositeExtract %float %112 3 - %130 = OpCompositeConstruct %v3float %129 %129 %129 - %131 = OpFMul %v3float %128 %130 - %132 = OpCompositeConstruct %mat3v3float %126 %131 %127 - %133 = OpCompositeExtract %float %115 0 - %134 = OpCompositeExtract %float %115 1 - %135 = OpCompositeExtract %float %115 2 - %136 = OpCompositeConstruct %v4float %133 %134 %135 %float_1 - %137 = OpMatrixTimesVector %v4float %121 %136 - %138 = OpVectorShuffle %v3float %137 %137 0 1 2 - %139 = OpCompositeExtract %float %137 3 - %140 = OpCompositeConstruct %v3float %139 %139 %139 - %141 = OpFDiv %v3float %138 %140 - %142 = OpFSub %v3float %141 %123 - %143 = OpVectorShuffle %v3float %125 %125 0 1 2 - %144 = OpCompositeExtract %float %125 3 - %145 = OpCompositeConstruct %v3float %144 %144 %144 - %146 = OpFMul %v3float %75 %145 - %147 = OpFAdd %v3float %146 %143 - %148 = OpExtInst %v3float %1 Normalize %147 - %149 = OpMatrixTimesVector %v3float %132 %148 - %150 = OpExtInst %v3float %1 Normalize %149 - %151 = OpExtInst %float %1 Sqrt %float_12_25 - %152 = OpCompositeConstruct %v3float %151 %151 %151 - %153 = OpFDiv %v3float %105 %152 - %154 = OpDot %float %153 %150 - %155 = OpFAdd %float %float_1 %154 - %156 = OpFMul %float %155 %float_0_5 - %157 = OpFAdd %float %156 %float_0_200000003 - %158 = OpAccessChain %_ptr_Uniform_v4float %Material %int_0 %int_1 - %159 = OpLoad %v4float %158 - %160 = OpVectorShuffle %v3float %159 %159 0 1 2 - %161 = OpCompositeConstruct %v3float %157 %157 %157 - %162 = OpFMul %v3float %160 %161 - %163 = OpAccessChain %_ptr_Uniform_float %TranslucentBasePass %int_144 - %164 = OpLoad %float %163 - %165 = OpFOrdGreaterThan %bool %164 %float_0 - OpSelectionMerge %166 None - OpBranchConditional %165 %167 %166 - %167 = OpLabel - %168 = OpCompositeExtract %float %142 0 - %169 = OpCompositeExtract %float %142 1 - %170 = OpCompositeExtract %float %142 2 - %171 = OpCompositeConstruct %v4float %168 %169 %170 %float_1 - %172 = OpMatrixTimesVector %v4float %119 %171 - %173 = OpCompositeExtract %float %172 3 - %174 = OpCompositeConstruct %v2float %173 %173 - %175 = OpVectorShuffle %v2float %172 %172 0 1 - %176 = OpFDiv %v2float %175 %174 - %177 = OpVectorShuffle %v2float %176 %102 0 1 - %178 = OpFMul %v2float %177 %67 - %179 = OpFAdd %v2float %178 %61 - %180 = OpCompositeExtract %float %179 0 - %181 = OpCompositeExtract %float %179 1 - %182 = OpAccessChain %_ptr_Uniform_float %View %int_155 %int_0 - %183 = OpLoad %float %182 - %184 = OpFMul %float %173 %183 - %185 = OpAccessChain %_ptr_Uniform_float %View %int_155 %int_1 - %186 = OpLoad %float %185 - %187 = OpFAdd %float %184 %186 - %188 = OpExtInst %float %1 Log2 %187 - %189 = OpAccessChain %_ptr_Uniform_float %View %int_155 %int_2 - %190 = OpLoad %float %189 - %191 = OpFMul %float %188 %190 - %192 = OpAccessChain %_ptr_Uniform_float %View %int_153 %int_2 - %193 = OpLoad %float %192 - %194 = OpFMul %float %191 %193 - %195 = OpCompositeConstruct %v3float %180 %181 %194 - OpSelectionMerge %196 None - OpBranchConditional %165 %197 %196 - %197 = OpLabel - %198 = OpLoad %type_3d_image %TranslucentBasePass_Shared_Fog_IntegratedLightScattering - %199 = OpLoad %type_sampler %View_SharedBilinearClampedSampler - %200 = OpSampledImage %type_sampled_image %198 %199 - %201 = OpImageSampleExplicitLod %v4float %200 %195 Lod %float_0 - OpBranch %196 - %196 = OpLabel - %202 = OpPhi %v4float %68 %167 %201 %197 - %203 = OpVectorShuffle %v3float %202 %202 0 1 2 - %204 = OpVectorShuffle %v3float %114 %114 0 1 2 - %205 = OpCompositeExtract %float %202 3 - %206 = OpCompositeConstruct %v3float %205 %205 %205 - %207 = OpFMul %v3float %204 %206 - %208 = OpFAdd %v3float %203 %207 - %209 = OpCompositeExtract %float %208 0 - %210 = OpCompositeExtract %float %208 1 - %211 = OpCompositeExtract %float %208 2 - %212 = OpCompositeExtract %float %114 3 - %213 = OpFMul %float %205 %212 - %214 = OpCompositeConstruct %v4float %209 %210 %211 %213 - OpBranch %166 - %166 = OpLabel - %215 = OpPhi %v4float %114 %110 %214 %196 - %216 = OpExtInst %v3float %1 FMax %162 %48 - %217 = OpAccessChain %_ptr_Uniform_float %View %int_70 - %218 = OpLoad %float %217 - %219 = OpFOrdGreaterThan %bool %218 %float_0 - OpSelectionMerge %220 DontFlatten - OpBranchConditional %219 %221 %220 - %221 = OpLabel - %222 = OpIMul %uint %113 %uint_26 - %223 = OpIAdd %uint %222 %uint_5 - %224 = OpAccessChain %_ptr_Uniform_v4float %View_PrimitiveSceneData %int_0 %223 - %225 = OpLoad %v4float %224 - %226 = OpVectorShuffle %v3float %225 %225 0 1 2 - %227 = OpFSub %v3float %142 %226 - %228 = OpExtInst %v3float %1 FAbs %227 - %229 = OpIAdd %uint %222 %uint_19 - %230 = OpAccessChain %_ptr_Uniform_v4float %View_PrimitiveSceneData %int_0 %229 - %231 = OpLoad %v4float %230 - %232 = OpVectorShuffle %v3float %231 %231 0 1 2 - %233 = OpFAdd %v3float %232 %53 - %234 = OpFOrdGreaterThan %v3bool %228 %233 - %235 = OpAny %bool %234 - OpSelectionMerge %236 None - OpBranchConditional %235 %237 %236 - %237 = OpLabel - %238 = OpDot %float %142 %55 - %239 = OpFMul %float %238 %float_0_00200000009 - %240 = OpExtInst %float %1 Fract %239 - %241 = OpCompositeConstruct %v3float %240 %240 %240 - %242 = OpFOrdGreaterThan %v3bool %241 %59 - %243 = OpSelect %v3float %242 %53 %48 - %244 = OpExtInst %v3float %1 FMix %56 %57 %243 - OpBranch %236 - %236 = OpLabel - %245 = OpPhi %v3float %216 %221 %244 %237 - OpBranch %220 - %220 = OpLabel - %246 = OpPhi %v3float %216 %166 %245 %236 - %247 = OpCompositeExtract %float %215 3 - %248 = OpCompositeConstruct %v3float %247 %247 %247 - %249 = OpFMul %v3float %246 %248 - %250 = OpVectorShuffle %v3float %215 %215 0 1 2 - %251 = OpFAdd %v3float %249 %250 - %252 = OpCompositeExtract %float %251 0 - %253 = OpCompositeExtract %float %251 1 - %254 = OpCompositeExtract %float %251 2 - %255 = OpCompositeConstruct %v4float %252 %253 %254 %108 - %256 = OpCompositeInsert %v4float %float_1 %255 3 - %257 = OpAccessChain %_ptr_Uniform_int %View %int_60 - %258 = OpLoad %int %257 - %259 = OpSGreaterThan %bool %258 %int_1 - OpSelectionMerge %260 None - OpBranchConditional %259 %261 %262 - %262 = OpLabel - OpBranch %260 - %261 = OpLabel - %263 = OpConvertSToF %float %258 - %264 = OpFMul %float %263 %float_0_25 - %265 = OpCompositeConstruct %v4float %264 %264 %264 %264 - %266 = OpFMul %v4float %256 %265 - %267 = OpBitwiseAnd %uint %117 %uint_15 - OpBranch %260 - %260 = OpLabel - %268 = OpPhi %v4float %266 %261 %256 %262 - %269 = OpPhi %uint %267 %261 %117 %262 - OpStore %out_var_SV_Target0 %268 - %270 = OpAccessChain %_ptr_Output_uint %gl_SampleMask_0 %uint_0 - OpStore %270 %269 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-ue4/asm/frag/subpass-input.ios.framebuffer-fetch.asm.frag b/third_party/spirv-cross/shaders-ue4/asm/frag/subpass-input.ios.framebuffer-fetch.asm.frag deleted file mode 100644 index e6565873a0..0000000000 --- a/third_party/spirv-cross/shaders-ue4/asm/frag/subpass-input.ios.framebuffer-fetch.asm.frag +++ /dev/null @@ -1,589 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 130 -; Schema: 0 - OpCapability Shader - OpCapability InputAttachment - OpExtension "SPV_GOOGLE_hlsl_functionality1" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %Main "main" %gl_FragCoord %out_var_SV_Target0 - OpExecutionMode %Main OriginUpperLeft - OpSource HLSL 600 - OpName %type_subpass_image "type.subpass.image" - OpName %gl_LastFragData "gl_LastFragData" - OpName %type_View "type.View" - OpMemberName %type_View 0 "View_TranslatedWorldToClip" - OpMemberName %type_View 1 "View_WorldToClip" - OpMemberName %type_View 2 "View_TranslatedWorldToView" - OpMemberName %type_View 3 "View_ViewToTranslatedWorld" - OpMemberName %type_View 4 "View_TranslatedWorldToCameraView" - OpMemberName %type_View 5 "View_CameraViewToTranslatedWorld" - OpMemberName %type_View 6 "View_ViewToClip" - OpMemberName %type_View 7 "View_ViewToClipNoAA" - OpMemberName %type_View 8 "View_ClipToView" - OpMemberName %type_View 9 "View_ClipToTranslatedWorld" - OpMemberName %type_View 10 "View_SVPositionToTranslatedWorld" - OpMemberName %type_View 11 "View_ScreenToWorld" - OpMemberName %type_View 12 "View_ScreenToTranslatedWorld" - OpMemberName %type_View 13 "View_ViewForward" - OpMemberName %type_View 14 "PrePadding_View_844" - OpMemberName %type_View 15 "View_ViewUp" - OpMemberName %type_View 16 "PrePadding_View_860" - OpMemberName %type_View 17 "View_ViewRight" - OpMemberName %type_View 18 "PrePadding_View_876" - OpMemberName %type_View 19 "View_HMDViewNoRollUp" - OpMemberName %type_View 20 "PrePadding_View_892" - OpMemberName %type_View 21 "View_HMDViewNoRollRight" - OpMemberName %type_View 22 "PrePadding_View_908" - OpMemberName %type_View 23 "View_InvDeviceZToWorldZTransform" - OpMemberName %type_View 24 "View_ScreenPositionScaleBias" - OpMemberName %type_View 25 "View_WorldCameraOrigin" - OpMemberName %type_View 26 "PrePadding_View_956" - OpMemberName %type_View 27 "View_TranslatedWorldCameraOrigin" - OpMemberName %type_View 28 "PrePadding_View_972" - OpMemberName %type_View 29 "View_WorldViewOrigin" - OpMemberName %type_View 30 "PrePadding_View_988" - OpMemberName %type_View 31 "View_PreViewTranslation" - OpMemberName %type_View 32 "PrePadding_View_1004" - OpMemberName %type_View 33 "View_PrevProjection" - OpMemberName %type_View 34 "View_PrevViewProj" - OpMemberName %type_View 35 "View_PrevViewRotationProj" - OpMemberName %type_View 36 "View_PrevViewToClip" - OpMemberName %type_View 37 "View_PrevClipToView" - OpMemberName %type_View 38 "View_PrevTranslatedWorldToClip" - OpMemberName %type_View 39 "View_PrevTranslatedWorldToView" - OpMemberName %type_View 40 "View_PrevViewToTranslatedWorld" - OpMemberName %type_View 41 "View_PrevTranslatedWorldToCameraView" - OpMemberName %type_View 42 "View_PrevCameraViewToTranslatedWorld" - OpMemberName %type_View 43 "View_PrevWorldCameraOrigin" - OpMemberName %type_View 44 "PrePadding_View_1660" - OpMemberName %type_View 45 "View_PrevWorldViewOrigin" - OpMemberName %type_View 46 "PrePadding_View_1676" - OpMemberName %type_View 47 "View_PrevPreViewTranslation" - OpMemberName %type_View 48 "PrePadding_View_1692" - OpMemberName %type_View 49 "View_PrevInvViewProj" - OpMemberName %type_View 50 "View_PrevScreenToTranslatedWorld" - OpMemberName %type_View 51 "View_ClipToPrevClip" - OpMemberName %type_View 52 "View_TemporalAAJitter" - OpMemberName %type_View 53 "View_GlobalClippingPlane" - OpMemberName %type_View 54 "View_FieldOfViewWideAngles" - OpMemberName %type_View 55 "View_PrevFieldOfViewWideAngles" - OpMemberName %type_View 56 "View_ViewRectMin" - OpMemberName %type_View 57 "View_ViewSizeAndInvSize" - OpMemberName %type_View 58 "View_BufferSizeAndInvSize" - OpMemberName %type_View 59 "View_BufferBilinearUVMinMax" - OpMemberName %type_View 60 "View_NumSceneColorMSAASamples" - OpMemberName %type_View 61 "View_PreExposure" - OpMemberName %type_View 62 "View_OneOverPreExposure" - OpMemberName %type_View 63 "PrePadding_View_2012" - OpMemberName %type_View 64 "View_DiffuseOverrideParameter" - OpMemberName %type_View 65 "View_SpecularOverrideParameter" - OpMemberName %type_View 66 "View_NormalOverrideParameter" - OpMemberName %type_View 67 "View_RoughnessOverrideParameter" - OpMemberName %type_View 68 "View_PrevFrameGameTime" - OpMemberName %type_View 69 "View_PrevFrameRealTime" - OpMemberName %type_View 70 "View_OutOfBoundsMask" - OpMemberName %type_View 71 "PrePadding_View_2084" - OpMemberName %type_View 72 "PrePadding_View_2088" - OpMemberName %type_View 73 "PrePadding_View_2092" - OpMemberName %type_View 74 "View_WorldCameraMovementSinceLastFrame" - OpMemberName %type_View 75 "View_CullingSign" - OpMemberName %type_View 76 "View_NearPlane" - OpMemberName %type_View 77 "View_AdaptiveTessellationFactor" - OpMemberName %type_View 78 "View_GameTime" - OpMemberName %type_View 79 "View_RealTime" - OpMemberName %type_View 80 "View_DeltaTime" - OpMemberName %type_View 81 "View_MaterialTextureMipBias" - OpMemberName %type_View 82 "View_MaterialTextureDerivativeMultiply" - OpMemberName %type_View 83 "View_Random" - OpMemberName %type_View 84 "View_FrameNumber" - OpMemberName %type_View 85 "View_StateFrameIndexMod8" - OpMemberName %type_View 86 "View_StateFrameIndex" - OpMemberName %type_View 87 "View_CameraCut" - OpMemberName %type_View 88 "View_UnlitViewmodeMask" - OpMemberName %type_View 89 "PrePadding_View_2164" - OpMemberName %type_View 90 "PrePadding_View_2168" - OpMemberName %type_View 91 "PrePadding_View_2172" - OpMemberName %type_View 92 "View_DirectionalLightColor" - OpMemberName %type_View 93 "View_DirectionalLightDirection" - OpMemberName %type_View 94 "PrePadding_View_2204" - OpMemberName %type_View 95 "View_TranslucencyLightingVolumeMin" - OpMemberName %type_View 96 "View_TranslucencyLightingVolumeInvSize" - OpMemberName %type_View 97 "View_TemporalAAParams" - OpMemberName %type_View 98 "View_CircleDOFParams" - OpMemberName %type_View 99 "View_DepthOfFieldSensorWidth" - OpMemberName %type_View 100 "View_DepthOfFieldFocalDistance" - OpMemberName %type_View 101 "View_DepthOfFieldScale" - OpMemberName %type_View 102 "View_DepthOfFieldFocalLength" - OpMemberName %type_View 103 "View_DepthOfFieldFocalRegion" - OpMemberName %type_View 104 "View_DepthOfFieldNearTransitionRegion" - OpMemberName %type_View 105 "View_DepthOfFieldFarTransitionRegion" - OpMemberName %type_View 106 "View_MotionBlurNormalizedToPixel" - OpMemberName %type_View 107 "View_bSubsurfacePostprocessEnabled" - OpMemberName %type_View 108 "View_GeneralPurposeTweak" - OpMemberName %type_View 109 "View_DemosaicVposOffset" - OpMemberName %type_View 110 "PrePadding_View_2348" - OpMemberName %type_View 111 "View_IndirectLightingColorScale" - OpMemberName %type_View 112 "View_HDR32bppEncodingMode" - OpMemberName %type_View 113 "View_AtmosphericFogSunDirection" - OpMemberName %type_View 114 "View_AtmosphericFogSunPower" - OpMemberName %type_View 115 "View_AtmosphericFogPower" - OpMemberName %type_View 116 "View_AtmosphericFogDensityScale" - OpMemberName %type_View 117 "View_AtmosphericFogDensityOffset" - OpMemberName %type_View 118 "View_AtmosphericFogGroundOffset" - OpMemberName %type_View 119 "View_AtmosphericFogDistanceScale" - OpMemberName %type_View 120 "View_AtmosphericFogAltitudeScale" - OpMemberName %type_View 121 "View_AtmosphericFogHeightScaleRayleigh" - OpMemberName %type_View 122 "View_AtmosphericFogStartDistance" - OpMemberName %type_View 123 "View_AtmosphericFogDistanceOffset" - OpMemberName %type_View 124 "View_AtmosphericFogSunDiscScale" - OpMemberName %type_View 125 "View_AtmosphericFogRenderMask" - OpMemberName %type_View 126 "View_AtmosphericFogInscatterAltitudeSampleNum" - OpMemberName %type_View 127 "View_AtmosphericFogSunColor" - OpMemberName %type_View 128 "View_NormalCurvatureToRoughnessScaleBias" - OpMemberName %type_View 129 "View_RenderingReflectionCaptureMask" - OpMemberName %type_View 130 "View_AmbientCubemapTint" - OpMemberName %type_View 131 "View_AmbientCubemapIntensity" - OpMemberName %type_View 132 "View_SkyLightParameters" - OpMemberName %type_View 133 "PrePadding_View_2488" - OpMemberName %type_View 134 "PrePadding_View_2492" - OpMemberName %type_View 135 "View_SkyLightColor" - OpMemberName %type_View 136 "View_SkyIrradianceEnvironmentMap" - OpMemberName %type_View 137 "View_MobilePreviewMode" - OpMemberName %type_View 138 "View_HMDEyePaddingOffset" - OpMemberName %type_View 139 "View_ReflectionCubemapMaxMip" - OpMemberName %type_View 140 "View_ShowDecalsMask" - OpMemberName %type_View 141 "View_DistanceFieldAOSpecularOcclusionMode" - OpMemberName %type_View 142 "View_IndirectCapsuleSelfShadowingIntensity" - OpMemberName %type_View 143 "PrePadding_View_2648" - OpMemberName %type_View 144 "PrePadding_View_2652" - OpMemberName %type_View 145 "View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight" - OpMemberName %type_View 146 "View_StereoPassIndex" - OpMemberName %type_View 147 "View_GlobalVolumeCenterAndExtent" - OpMemberName %type_View 148 "View_GlobalVolumeWorldToUVAddAndMul" - OpMemberName %type_View 149 "View_GlobalVolumeDimension" - OpMemberName %type_View 150 "View_GlobalVolumeTexelSize" - OpMemberName %type_View 151 "View_MaxGlobalDistance" - OpMemberName %type_View 152 "View_bCheckerboardSubsurfaceProfileRendering" - OpMemberName %type_View 153 "View_VolumetricFogInvGridSize" - OpMemberName %type_View 154 "PrePadding_View_2828" - OpMemberName %type_View 155 "View_VolumetricFogGridZParams" - OpMemberName %type_View 156 "PrePadding_View_2844" - OpMemberName %type_View 157 "View_VolumetricFogSVPosToVolumeUV" - OpMemberName %type_View 158 "View_VolumetricFogMaxDistance" - OpMemberName %type_View 159 "PrePadding_View_2860" - OpMemberName %type_View 160 "View_VolumetricLightmapWorldToUVScale" - OpMemberName %type_View 161 "PrePadding_View_2876" - OpMemberName %type_View 162 "View_VolumetricLightmapWorldToUVAdd" - OpMemberName %type_View 163 "PrePadding_View_2892" - OpMemberName %type_View 164 "View_VolumetricLightmapIndirectionTextureSize" - OpMemberName %type_View 165 "View_VolumetricLightmapBrickSize" - OpMemberName %type_View 166 "View_VolumetricLightmapBrickTexelSize" - OpMemberName %type_View 167 "View_StereoIPD" - OpMemberName %type_View 168 "View_IndirectLightingCacheShowFlag" - OpMemberName %type_View 169 "View_EyeToPixelSpreadAngle" - OpName %View "View" - OpName %type_sampler "type.sampler" - OpName %type_2d_image "type.2d.image" - OpName %ShadowDepthTexture "ShadowDepthTexture" - OpName %ShadowDepthTextureSampler "ShadowDepthTextureSampler" - OpName %type__Globals "type.$Globals" - OpMemberName %type__Globals 0 "SoftTransitionScale" - OpMemberName %type__Globals 1 "ShadowBufferSize" - OpMemberName %type__Globals 2 "ShadowFadeFraction" - OpMemberName %type__Globals 3 "ShadowSharpen" - OpMemberName %type__Globals 4 "LightPositionAndInvRadius" - OpMemberName %type__Globals 5 "ScreenToShadowMatrix" - OpMemberName %type__Globals 6 "ProjectionDepthBiasParameters" - OpMemberName %type__Globals 7 "ModulatedShadowColor" - OpMemberName %type__Globals 8 "ShadowTileOffsetAndSize" - OpName %_Globals "$Globals" - OpName %out_var_SV_Target0 "out.var.SV_Target0" - OpName %Main "Main" - OpName %type_sampled_image "type.sampled.image" - OpDecorate %gl_LastFragData InputAttachmentIndex 0 - OpDecorate %gl_FragCoord BuiltIn FragCoord - OpDecorateString %gl_FragCoord UserSemantic "SV_POSITION" - OpDecorateString %out_var_SV_Target0 UserSemantic "SV_Target0" - OpDecorate %out_var_SV_Target0 Location 0 - OpDecorate %gl_LastFragData DescriptorSet 0 - OpDecorate %gl_LastFragData Binding 0 - OpDecorate %View DescriptorSet 0 - OpDecorate %View Binding 0 - OpDecorate %ShadowDepthTexture DescriptorSet 0 - OpDecorate %ShadowDepthTexture Binding 0 - OpDecorate %ShadowDepthTextureSampler DescriptorSet 0 - OpDecorate %ShadowDepthTextureSampler Binding 0 - OpDecorate %_Globals DescriptorSet 0 - OpDecorate %_Globals Binding 1 - OpDecorate %_arr_v4float_uint_2 ArrayStride 16 - OpDecorate %_arr_v4float_uint_7 ArrayStride 16 - OpDecorate %_arr_v4float_uint_4 ArrayStride 16 - OpMemberDecorate %type_View 0 Offset 0 - OpMemberDecorate %type_View 0 MatrixStride 16 - OpMemberDecorate %type_View 0 ColMajor - OpMemberDecorate %type_View 1 Offset 64 - OpMemberDecorate %type_View 1 MatrixStride 16 - OpMemberDecorate %type_View 1 ColMajor - OpMemberDecorate %type_View 2 Offset 128 - OpMemberDecorate %type_View 2 MatrixStride 16 - OpMemberDecorate %type_View 2 ColMajor - OpMemberDecorate %type_View 3 Offset 192 - OpMemberDecorate %type_View 3 MatrixStride 16 - OpMemberDecorate %type_View 3 ColMajor - OpMemberDecorate %type_View 4 Offset 256 - OpMemberDecorate %type_View 4 MatrixStride 16 - OpMemberDecorate %type_View 4 ColMajor - OpMemberDecorate %type_View 5 Offset 320 - OpMemberDecorate %type_View 5 MatrixStride 16 - OpMemberDecorate %type_View 5 ColMajor - OpMemberDecorate %type_View 6 Offset 384 - OpMemberDecorate %type_View 6 MatrixStride 16 - OpMemberDecorate %type_View 6 ColMajor - OpMemberDecorate %type_View 7 Offset 448 - OpMemberDecorate %type_View 7 MatrixStride 16 - OpMemberDecorate %type_View 7 ColMajor - OpMemberDecorate %type_View 8 Offset 512 - OpMemberDecorate %type_View 8 MatrixStride 16 - OpMemberDecorate %type_View 8 ColMajor - OpMemberDecorate %type_View 9 Offset 576 - OpMemberDecorate %type_View 9 MatrixStride 16 - OpMemberDecorate %type_View 9 ColMajor - OpMemberDecorate %type_View 10 Offset 640 - OpMemberDecorate %type_View 10 MatrixStride 16 - OpMemberDecorate %type_View 10 ColMajor - OpMemberDecorate %type_View 11 Offset 704 - OpMemberDecorate %type_View 11 MatrixStride 16 - OpMemberDecorate %type_View 11 ColMajor - OpMemberDecorate %type_View 12 Offset 768 - OpMemberDecorate %type_View 12 MatrixStride 16 - OpMemberDecorate %type_View 12 ColMajor - OpMemberDecorate %type_View 13 Offset 832 - OpMemberDecorate %type_View 14 Offset 844 - OpMemberDecorate %type_View 15 Offset 848 - OpMemberDecorate %type_View 16 Offset 860 - OpMemberDecorate %type_View 17 Offset 864 - OpMemberDecorate %type_View 18 Offset 876 - OpMemberDecorate %type_View 19 Offset 880 - OpMemberDecorate %type_View 20 Offset 892 - OpMemberDecorate %type_View 21 Offset 896 - OpMemberDecorate %type_View 22 Offset 908 - OpMemberDecorate %type_View 23 Offset 912 - OpMemberDecorate %type_View 24 Offset 928 - OpMemberDecorate %type_View 25 Offset 944 - OpMemberDecorate %type_View 26 Offset 956 - OpMemberDecorate %type_View 27 Offset 960 - OpMemberDecorate %type_View 28 Offset 972 - OpMemberDecorate %type_View 29 Offset 976 - OpMemberDecorate %type_View 30 Offset 988 - OpMemberDecorate %type_View 31 Offset 992 - OpMemberDecorate %type_View 32 Offset 1004 - OpMemberDecorate %type_View 33 Offset 1008 - OpMemberDecorate %type_View 33 MatrixStride 16 - OpMemberDecorate %type_View 33 ColMajor - OpMemberDecorate %type_View 34 Offset 1072 - OpMemberDecorate %type_View 34 MatrixStride 16 - OpMemberDecorate %type_View 34 ColMajor - OpMemberDecorate %type_View 35 Offset 1136 - OpMemberDecorate %type_View 35 MatrixStride 16 - OpMemberDecorate %type_View 35 ColMajor - OpMemberDecorate %type_View 36 Offset 1200 - OpMemberDecorate %type_View 36 MatrixStride 16 - OpMemberDecorate %type_View 36 ColMajor - OpMemberDecorate %type_View 37 Offset 1264 - OpMemberDecorate %type_View 37 MatrixStride 16 - OpMemberDecorate %type_View 37 ColMajor - OpMemberDecorate %type_View 38 Offset 1328 - OpMemberDecorate %type_View 38 MatrixStride 16 - OpMemberDecorate %type_View 38 ColMajor - OpMemberDecorate %type_View 39 Offset 1392 - OpMemberDecorate %type_View 39 MatrixStride 16 - OpMemberDecorate %type_View 39 ColMajor - OpMemberDecorate %type_View 40 Offset 1456 - OpMemberDecorate %type_View 40 MatrixStride 16 - OpMemberDecorate %type_View 40 ColMajor - OpMemberDecorate %type_View 41 Offset 1520 - OpMemberDecorate %type_View 41 MatrixStride 16 - OpMemberDecorate %type_View 41 ColMajor - OpMemberDecorate %type_View 42 Offset 1584 - OpMemberDecorate %type_View 42 MatrixStride 16 - OpMemberDecorate %type_View 42 ColMajor - OpMemberDecorate %type_View 43 Offset 1648 - OpMemberDecorate %type_View 44 Offset 1660 - OpMemberDecorate %type_View 45 Offset 1664 - OpMemberDecorate %type_View 46 Offset 1676 - OpMemberDecorate %type_View 47 Offset 1680 - OpMemberDecorate %type_View 48 Offset 1692 - OpMemberDecorate %type_View 49 Offset 1696 - OpMemberDecorate %type_View 49 MatrixStride 16 - OpMemberDecorate %type_View 49 ColMajor - OpMemberDecorate %type_View 50 Offset 1760 - OpMemberDecorate %type_View 50 MatrixStride 16 - OpMemberDecorate %type_View 50 ColMajor - OpMemberDecorate %type_View 51 Offset 1824 - OpMemberDecorate %type_View 51 MatrixStride 16 - OpMemberDecorate %type_View 51 ColMajor - OpMemberDecorate %type_View 52 Offset 1888 - OpMemberDecorate %type_View 53 Offset 1904 - OpMemberDecorate %type_View 54 Offset 1920 - OpMemberDecorate %type_View 55 Offset 1928 - OpMemberDecorate %type_View 56 Offset 1936 - OpMemberDecorate %type_View 57 Offset 1952 - OpMemberDecorate %type_View 58 Offset 1968 - OpMemberDecorate %type_View 59 Offset 1984 - OpMemberDecorate %type_View 60 Offset 2000 - OpMemberDecorate %type_View 61 Offset 2004 - OpMemberDecorate %type_View 62 Offset 2008 - OpMemberDecorate %type_View 63 Offset 2012 - OpMemberDecorate %type_View 64 Offset 2016 - OpMemberDecorate %type_View 65 Offset 2032 - OpMemberDecorate %type_View 66 Offset 2048 - OpMemberDecorate %type_View 67 Offset 2064 - OpMemberDecorate %type_View 68 Offset 2072 - OpMemberDecorate %type_View 69 Offset 2076 - OpMemberDecorate %type_View 70 Offset 2080 - OpMemberDecorate %type_View 71 Offset 2084 - OpMemberDecorate %type_View 72 Offset 2088 - OpMemberDecorate %type_View 73 Offset 2092 - OpMemberDecorate %type_View 74 Offset 2096 - OpMemberDecorate %type_View 75 Offset 2108 - OpMemberDecorate %type_View 76 Offset 2112 - OpMemberDecorate %type_View 77 Offset 2116 - OpMemberDecorate %type_View 78 Offset 2120 - OpMemberDecorate %type_View 79 Offset 2124 - OpMemberDecorate %type_View 80 Offset 2128 - OpMemberDecorate %type_View 81 Offset 2132 - OpMemberDecorate %type_View 82 Offset 2136 - OpMemberDecorate %type_View 83 Offset 2140 - OpMemberDecorate %type_View 84 Offset 2144 - OpMemberDecorate %type_View 85 Offset 2148 - OpMemberDecorate %type_View 86 Offset 2152 - OpMemberDecorate %type_View 87 Offset 2156 - OpMemberDecorate %type_View 88 Offset 2160 - OpMemberDecorate %type_View 89 Offset 2164 - OpMemberDecorate %type_View 90 Offset 2168 - OpMemberDecorate %type_View 91 Offset 2172 - OpMemberDecorate %type_View 92 Offset 2176 - OpMemberDecorate %type_View 93 Offset 2192 - OpMemberDecorate %type_View 94 Offset 2204 - OpMemberDecorate %type_View 95 Offset 2208 - OpMemberDecorate %type_View 96 Offset 2240 - OpMemberDecorate %type_View 97 Offset 2272 - OpMemberDecorate %type_View 98 Offset 2288 - OpMemberDecorate %type_View 99 Offset 2304 - OpMemberDecorate %type_View 100 Offset 2308 - OpMemberDecorate %type_View 101 Offset 2312 - OpMemberDecorate %type_View 102 Offset 2316 - OpMemberDecorate %type_View 103 Offset 2320 - OpMemberDecorate %type_View 104 Offset 2324 - OpMemberDecorate %type_View 105 Offset 2328 - OpMemberDecorate %type_View 106 Offset 2332 - OpMemberDecorate %type_View 107 Offset 2336 - OpMemberDecorate %type_View 108 Offset 2340 - OpMemberDecorate %type_View 109 Offset 2344 - OpMemberDecorate %type_View 110 Offset 2348 - OpMemberDecorate %type_View 111 Offset 2352 - OpMemberDecorate %type_View 112 Offset 2364 - OpMemberDecorate %type_View 113 Offset 2368 - OpMemberDecorate %type_View 114 Offset 2380 - OpMemberDecorate %type_View 115 Offset 2384 - OpMemberDecorate %type_View 116 Offset 2388 - OpMemberDecorate %type_View 117 Offset 2392 - OpMemberDecorate %type_View 118 Offset 2396 - OpMemberDecorate %type_View 119 Offset 2400 - OpMemberDecorate %type_View 120 Offset 2404 - OpMemberDecorate %type_View 121 Offset 2408 - OpMemberDecorate %type_View 122 Offset 2412 - OpMemberDecorate %type_View 123 Offset 2416 - OpMemberDecorate %type_View 124 Offset 2420 - OpMemberDecorate %type_View 125 Offset 2424 - OpMemberDecorate %type_View 126 Offset 2428 - OpMemberDecorate %type_View 127 Offset 2432 - OpMemberDecorate %type_View 128 Offset 2448 - OpMemberDecorate %type_View 129 Offset 2460 - OpMemberDecorate %type_View 130 Offset 2464 - OpMemberDecorate %type_View 131 Offset 2480 - OpMemberDecorate %type_View 132 Offset 2484 - OpMemberDecorate %type_View 133 Offset 2488 - OpMemberDecorate %type_View 134 Offset 2492 - OpMemberDecorate %type_View 135 Offset 2496 - OpMemberDecorate %type_View 136 Offset 2512 - OpMemberDecorate %type_View 137 Offset 2624 - OpMemberDecorate %type_View 138 Offset 2628 - OpMemberDecorate %type_View 139 Offset 2632 - OpMemberDecorate %type_View 140 Offset 2636 - OpMemberDecorate %type_View 141 Offset 2640 - OpMemberDecorate %type_View 142 Offset 2644 - OpMemberDecorate %type_View 143 Offset 2648 - OpMemberDecorate %type_View 144 Offset 2652 - OpMemberDecorate %type_View 145 Offset 2656 - OpMemberDecorate %type_View 146 Offset 2668 - OpMemberDecorate %type_View 147 Offset 2672 - OpMemberDecorate %type_View 148 Offset 2736 - OpMemberDecorate %type_View 149 Offset 2800 - OpMemberDecorate %type_View 150 Offset 2804 - OpMemberDecorate %type_View 151 Offset 2808 - OpMemberDecorate %type_View 152 Offset 2812 - OpMemberDecorate %type_View 153 Offset 2816 - OpMemberDecorate %type_View 154 Offset 2828 - OpMemberDecorate %type_View 155 Offset 2832 - OpMemberDecorate %type_View 156 Offset 2844 - OpMemberDecorate %type_View 157 Offset 2848 - OpMemberDecorate %type_View 158 Offset 2856 - OpMemberDecorate %type_View 159 Offset 2860 - OpMemberDecorate %type_View 160 Offset 2864 - OpMemberDecorate %type_View 161 Offset 2876 - OpMemberDecorate %type_View 162 Offset 2880 - OpMemberDecorate %type_View 163 Offset 2892 - OpMemberDecorate %type_View 164 Offset 2896 - OpMemberDecorate %type_View 165 Offset 2908 - OpMemberDecorate %type_View 166 Offset 2912 - OpMemberDecorate %type_View 167 Offset 2924 - OpMemberDecorate %type_View 168 Offset 2928 - OpMemberDecorate %type_View 169 Offset 2932 - OpDecorate %type_View Block - OpMemberDecorate %type__Globals 0 Offset 0 - OpMemberDecorate %type__Globals 1 Offset 16 - OpMemberDecorate %type__Globals 2 Offset 32 - OpMemberDecorate %type__Globals 3 Offset 36 - OpMemberDecorate %type__Globals 4 Offset 48 - OpMemberDecorate %type__Globals 5 Offset 64 - OpMemberDecorate %type__Globals 5 MatrixStride 16 - OpMemberDecorate %type__Globals 5 ColMajor - OpMemberDecorate %type__Globals 6 Offset 128 - OpMemberDecorate %type__Globals 7 Offset 144 - OpMemberDecorate %type__Globals 8 Offset 160 - OpDecorate %type__Globals Block - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%mat4v4float = OpTypeMatrix %v4float 4 - %v3float = OpTypeVector %float 3 - %v2float = OpTypeVector %float 2 - %int = OpTypeInt 32 1 - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 - %uint_7 = OpConstant %uint 7 - %uint_4 = OpConstant %uint 4 - %float_1 = OpConstant %float 1 - %int_58 = OpConstant %int 58 - %int_24 = OpConstant %int 24 - %int_5 = OpConstant %int 5 - %int_2 = OpConstant %int 2 - %int_3 = OpConstant %int 3 - %int_8 = OpConstant %int 8 -%float_0_999989986 = OpConstant %float 0.999989986 - %int_0 = OpConstant %int 0 - %float_0 = OpConstant %float 0 - %int_7 = OpConstant %int 7 - %float_0_5 = OpConstant %float 0.5 - %41 = OpConstantComposite %v3float %float_1 %float_1 %float_1 - %v2int = OpTypeVector %int 2 - %43 = OpConstantComposite %v2int %int_0 %int_0 - %44 = OpConstantComposite %v3float %float_0 %float_0 %float_0 -%type_subpass_image = OpTypeImage %float SubpassData 2 0 0 2 Unknown -%_ptr_UniformConstant_type_subpass_image = OpTypePointer UniformConstant %type_subpass_image -%_arr_v4float_uint_2 = OpTypeArray %v4float %uint_2 -%_arr_v4float_uint_7 = OpTypeArray %v4float %uint_7 -%_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4 - %type_View = OpTypeStruct %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %v3float %float %v3float %float %v3float %float %v3float %float %v3float %float %v4float %v4float %v3float %float %v3float %float %v3float %float %v3float %float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %v3float %float %v3float %float %v3float %float %mat4v4float %mat4v4float %mat4v4float %v4float %v4float %v2float %v2float %v4float %v4float %v4float %v4float %int %float %float %float %v4float %v4float %v4float %v2float %float %float %float %float %float %float %v3float %float %float %float %float %float %float %float %float %uint %uint %uint %uint %float %float %float %float %float %v4float %v3float %float %_arr_v4float_uint_2 %_arr_v4float_uint_2 %v4float %v4float %float %float %float %float %float %float %float %float %float %float %float %float %v3float %float %v3float %float %float %float %float %float %float %float %float %float %float %float %uint %uint %v4float %v3float %float %v4float %float %float %float %float %v4float %_arr_v4float_uint_7 %float %float %float %float %uint %float %float %float %v3float %int %_arr_v4float_uint_4 %_arr_v4float_uint_4 %float %float %float %float %v3float %float %v3float %float %v2float %float %float %v3float %float %v3float %float %v3float %float %v3float %float %float %float -%_ptr_Uniform_type_View = OpTypePointer Uniform %type_View -%type_sampler = OpTypeSampler -%_ptr_UniformConstant_type_sampler = OpTypePointer UniformConstant %type_sampler -%type_2d_image = OpTypeImage %float 2D 2 0 0 1 Unknown -%_ptr_UniformConstant_type_2d_image = OpTypePointer UniformConstant %type_2d_image -%type__Globals = OpTypeStruct %v3float %v4float %float %float %v4float %mat4v4float %v2float %v4float %v4float -%_ptr_Uniform_type__Globals = OpTypePointer Uniform %type__Globals -%_ptr_Input_v4float = OpTypePointer Input %v4float -%_ptr_Output_v4float = OpTypePointer Output %v4float - %void = OpTypeVoid - %53 = OpTypeFunction %void -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float -%_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float -%_ptr_Uniform_float = OpTypePointer Uniform %float -%type_sampled_image = OpTypeSampledImage %type_2d_image -%gl_LastFragData = OpVariable %_ptr_UniformConstant_type_subpass_image UniformConstant - %View = OpVariable %_ptr_Uniform_type_View Uniform -%ShadowDepthTexture = OpVariable %_ptr_UniformConstant_type_2d_image UniformConstant -%ShadowDepthTextureSampler = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant - %_Globals = OpVariable %_ptr_Uniform_type__Globals Uniform -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input -%out_var_SV_Target0 = OpVariable %_ptr_Output_v4float Output - %57 = OpConstantNull %v4float - %58 = OpUndef %v4float - %Main = OpFunction %void None %53 - %59 = OpLabel - %60 = OpLoad %v4float %gl_FragCoord - %61 = OpVectorShuffle %v2float %60 %60 0 1 - %62 = OpAccessChain %_ptr_Uniform_v4float %View %int_58 - %63 = OpLoad %v4float %62 - %64 = OpVectorShuffle %v2float %63 %63 2 3 - %65 = OpFMul %v2float %61 %64 - %66 = OpLoad %type_subpass_image %gl_LastFragData - %67 = OpImageRead %v4float %66 %43 None - %68 = OpCompositeExtract %float %67 3 - %69 = OpAccessChain %_ptr_Uniform_v4float %View %int_24 - %70 = OpLoad %v4float %69 - %71 = OpVectorShuffle %v2float %70 %70 3 2 - %72 = OpFSub %v2float %65 %71 - %73 = OpVectorShuffle %v2float %70 %70 0 1 - %74 = OpFDiv %v2float %72 %73 - %75 = OpCompositeConstruct %v2float %68 %68 - %76 = OpFMul %v2float %74 %75 - %77 = OpCompositeExtract %float %76 0 - %78 = OpCompositeExtract %float %76 1 - %79 = OpCompositeConstruct %v4float %77 %78 %68 %float_1 - %80 = OpAccessChain %_ptr_Uniform_mat4v4float %_Globals %int_5 - %81 = OpLoad %mat4v4float %80 - %82 = OpMatrixTimesVector %v4float %81 %79 - %83 = OpCompositeExtract %float %82 2 - %84 = OpCompositeExtract %float %82 3 - %85 = OpCompositeConstruct %v3float %84 %84 %84 - %86 = OpVectorShuffle %v3float %82 %82 0 1 2 - %87 = OpFDiv %v3float %86 %85 - %88 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_8 - %89 = OpLoad %v4float %88 - %90 = OpVectorShuffle %v2float %89 %89 2 3 - %91 = OpVectorShuffle %v2float %87 %57 0 1 - %92 = OpFMul %v2float %91 %90 - %93 = OpVectorShuffle %v2float %89 %89 0 1 - %94 = OpVectorShuffle %v2float %92 %57 0 1 - %95 = OpFAdd %v2float %94 %93 - %96 = OpExtInst %float %1 FMin %83 %float_0_999989986 - %97 = OpLoad %type_2d_image %ShadowDepthTexture - %98 = OpLoad %type_sampler %ShadowDepthTextureSampler - %99 = OpAccessChain %_ptr_Uniform_float %_Globals %int_0 %int_2 - %100 = OpLoad %float %99 - %101 = OpVectorShuffle %v2float %95 %57 0 1 - %102 = OpSampledImage %type_sampled_image %97 %98 - %103 = OpImageSampleExplicitLod %v4float %102 %101 Lod %float_0 - %104 = OpVectorShuffle %v3float %103 %103 0 0 0 - %105 = OpFMul %float %96 %100 - %106 = OpFSub %float %105 %float_1 - %107 = OpCompositeConstruct %v3float %100 %100 %100 - %108 = OpFMul %v3float %104 %107 - %109 = OpCompositeConstruct %v3float %106 %106 %106 - %110 = OpFSub %v3float %108 %109 - %111 = OpExtInst %v3float %1 FClamp %110 %44 %41 - %112 = OpCompositeExtract %float %111 0 - %113 = OpFSub %float %112 %float_0_5 - %114 = OpAccessChain %_ptr_Uniform_float %_Globals %int_3 - %115 = OpLoad %float %114 - %116 = OpFMul %float %113 %115 - %117 = OpFAdd %float %116 %float_0_5 - %118 = OpExtInst %float %1 FClamp %117 %float_0 %float_1 - %119 = OpFMul %float %118 %118 - %120 = OpAccessChain %_ptr_Uniform_float %_Globals %int_2 - %121 = OpLoad %float %120 - %122 = OpExtInst %float %1 FMix %float_1 %119 %121 - %123 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_7 - %124 = OpLoad %v4float %123 - %125 = OpVectorShuffle %v3float %124 %124 0 1 2 - %126 = OpCompositeConstruct %v3float %122 %122 %122 - %127 = OpExtInst %v3float %1 FMix %125 %41 %126 - %128 = OpVectorShuffle %v4float %58 %127 4 5 6 3 - %129 = OpCompositeInsert %v4float %float_0 %128 3 - OpStore %out_var_SV_Target0 %129 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-ue4/asm/frag/subpass-input.msl23.framebuffer-fetch.asm.frag b/third_party/spirv-cross/shaders-ue4/asm/frag/subpass-input.msl23.framebuffer-fetch.asm.frag deleted file mode 100644 index e6565873a0..0000000000 --- a/third_party/spirv-cross/shaders-ue4/asm/frag/subpass-input.msl23.framebuffer-fetch.asm.frag +++ /dev/null @@ -1,589 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 130 -; Schema: 0 - OpCapability Shader - OpCapability InputAttachment - OpExtension "SPV_GOOGLE_hlsl_functionality1" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %Main "main" %gl_FragCoord %out_var_SV_Target0 - OpExecutionMode %Main OriginUpperLeft - OpSource HLSL 600 - OpName %type_subpass_image "type.subpass.image" - OpName %gl_LastFragData "gl_LastFragData" - OpName %type_View "type.View" - OpMemberName %type_View 0 "View_TranslatedWorldToClip" - OpMemberName %type_View 1 "View_WorldToClip" - OpMemberName %type_View 2 "View_TranslatedWorldToView" - OpMemberName %type_View 3 "View_ViewToTranslatedWorld" - OpMemberName %type_View 4 "View_TranslatedWorldToCameraView" - OpMemberName %type_View 5 "View_CameraViewToTranslatedWorld" - OpMemberName %type_View 6 "View_ViewToClip" - OpMemberName %type_View 7 "View_ViewToClipNoAA" - OpMemberName %type_View 8 "View_ClipToView" - OpMemberName %type_View 9 "View_ClipToTranslatedWorld" - OpMemberName %type_View 10 "View_SVPositionToTranslatedWorld" - OpMemberName %type_View 11 "View_ScreenToWorld" - OpMemberName %type_View 12 "View_ScreenToTranslatedWorld" - OpMemberName %type_View 13 "View_ViewForward" - OpMemberName %type_View 14 "PrePadding_View_844" - OpMemberName %type_View 15 "View_ViewUp" - OpMemberName %type_View 16 "PrePadding_View_860" - OpMemberName %type_View 17 "View_ViewRight" - OpMemberName %type_View 18 "PrePadding_View_876" - OpMemberName %type_View 19 "View_HMDViewNoRollUp" - OpMemberName %type_View 20 "PrePadding_View_892" - OpMemberName %type_View 21 "View_HMDViewNoRollRight" - OpMemberName %type_View 22 "PrePadding_View_908" - OpMemberName %type_View 23 "View_InvDeviceZToWorldZTransform" - OpMemberName %type_View 24 "View_ScreenPositionScaleBias" - OpMemberName %type_View 25 "View_WorldCameraOrigin" - OpMemberName %type_View 26 "PrePadding_View_956" - OpMemberName %type_View 27 "View_TranslatedWorldCameraOrigin" - OpMemberName %type_View 28 "PrePadding_View_972" - OpMemberName %type_View 29 "View_WorldViewOrigin" - OpMemberName %type_View 30 "PrePadding_View_988" - OpMemberName %type_View 31 "View_PreViewTranslation" - OpMemberName %type_View 32 "PrePadding_View_1004" - OpMemberName %type_View 33 "View_PrevProjection" - OpMemberName %type_View 34 "View_PrevViewProj" - OpMemberName %type_View 35 "View_PrevViewRotationProj" - OpMemberName %type_View 36 "View_PrevViewToClip" - OpMemberName %type_View 37 "View_PrevClipToView" - OpMemberName %type_View 38 "View_PrevTranslatedWorldToClip" - OpMemberName %type_View 39 "View_PrevTranslatedWorldToView" - OpMemberName %type_View 40 "View_PrevViewToTranslatedWorld" - OpMemberName %type_View 41 "View_PrevTranslatedWorldToCameraView" - OpMemberName %type_View 42 "View_PrevCameraViewToTranslatedWorld" - OpMemberName %type_View 43 "View_PrevWorldCameraOrigin" - OpMemberName %type_View 44 "PrePadding_View_1660" - OpMemberName %type_View 45 "View_PrevWorldViewOrigin" - OpMemberName %type_View 46 "PrePadding_View_1676" - OpMemberName %type_View 47 "View_PrevPreViewTranslation" - OpMemberName %type_View 48 "PrePadding_View_1692" - OpMemberName %type_View 49 "View_PrevInvViewProj" - OpMemberName %type_View 50 "View_PrevScreenToTranslatedWorld" - OpMemberName %type_View 51 "View_ClipToPrevClip" - OpMemberName %type_View 52 "View_TemporalAAJitter" - OpMemberName %type_View 53 "View_GlobalClippingPlane" - OpMemberName %type_View 54 "View_FieldOfViewWideAngles" - OpMemberName %type_View 55 "View_PrevFieldOfViewWideAngles" - OpMemberName %type_View 56 "View_ViewRectMin" - OpMemberName %type_View 57 "View_ViewSizeAndInvSize" - OpMemberName %type_View 58 "View_BufferSizeAndInvSize" - OpMemberName %type_View 59 "View_BufferBilinearUVMinMax" - OpMemberName %type_View 60 "View_NumSceneColorMSAASamples" - OpMemberName %type_View 61 "View_PreExposure" - OpMemberName %type_View 62 "View_OneOverPreExposure" - OpMemberName %type_View 63 "PrePadding_View_2012" - OpMemberName %type_View 64 "View_DiffuseOverrideParameter" - OpMemberName %type_View 65 "View_SpecularOverrideParameter" - OpMemberName %type_View 66 "View_NormalOverrideParameter" - OpMemberName %type_View 67 "View_RoughnessOverrideParameter" - OpMemberName %type_View 68 "View_PrevFrameGameTime" - OpMemberName %type_View 69 "View_PrevFrameRealTime" - OpMemberName %type_View 70 "View_OutOfBoundsMask" - OpMemberName %type_View 71 "PrePadding_View_2084" - OpMemberName %type_View 72 "PrePadding_View_2088" - OpMemberName %type_View 73 "PrePadding_View_2092" - OpMemberName %type_View 74 "View_WorldCameraMovementSinceLastFrame" - OpMemberName %type_View 75 "View_CullingSign" - OpMemberName %type_View 76 "View_NearPlane" - OpMemberName %type_View 77 "View_AdaptiveTessellationFactor" - OpMemberName %type_View 78 "View_GameTime" - OpMemberName %type_View 79 "View_RealTime" - OpMemberName %type_View 80 "View_DeltaTime" - OpMemberName %type_View 81 "View_MaterialTextureMipBias" - OpMemberName %type_View 82 "View_MaterialTextureDerivativeMultiply" - OpMemberName %type_View 83 "View_Random" - OpMemberName %type_View 84 "View_FrameNumber" - OpMemberName %type_View 85 "View_StateFrameIndexMod8" - OpMemberName %type_View 86 "View_StateFrameIndex" - OpMemberName %type_View 87 "View_CameraCut" - OpMemberName %type_View 88 "View_UnlitViewmodeMask" - OpMemberName %type_View 89 "PrePadding_View_2164" - OpMemberName %type_View 90 "PrePadding_View_2168" - OpMemberName %type_View 91 "PrePadding_View_2172" - OpMemberName %type_View 92 "View_DirectionalLightColor" - OpMemberName %type_View 93 "View_DirectionalLightDirection" - OpMemberName %type_View 94 "PrePadding_View_2204" - OpMemberName %type_View 95 "View_TranslucencyLightingVolumeMin" - OpMemberName %type_View 96 "View_TranslucencyLightingVolumeInvSize" - OpMemberName %type_View 97 "View_TemporalAAParams" - OpMemberName %type_View 98 "View_CircleDOFParams" - OpMemberName %type_View 99 "View_DepthOfFieldSensorWidth" - OpMemberName %type_View 100 "View_DepthOfFieldFocalDistance" - OpMemberName %type_View 101 "View_DepthOfFieldScale" - OpMemberName %type_View 102 "View_DepthOfFieldFocalLength" - OpMemberName %type_View 103 "View_DepthOfFieldFocalRegion" - OpMemberName %type_View 104 "View_DepthOfFieldNearTransitionRegion" - OpMemberName %type_View 105 "View_DepthOfFieldFarTransitionRegion" - OpMemberName %type_View 106 "View_MotionBlurNormalizedToPixel" - OpMemberName %type_View 107 "View_bSubsurfacePostprocessEnabled" - OpMemberName %type_View 108 "View_GeneralPurposeTweak" - OpMemberName %type_View 109 "View_DemosaicVposOffset" - OpMemberName %type_View 110 "PrePadding_View_2348" - OpMemberName %type_View 111 "View_IndirectLightingColorScale" - OpMemberName %type_View 112 "View_HDR32bppEncodingMode" - OpMemberName %type_View 113 "View_AtmosphericFogSunDirection" - OpMemberName %type_View 114 "View_AtmosphericFogSunPower" - OpMemberName %type_View 115 "View_AtmosphericFogPower" - OpMemberName %type_View 116 "View_AtmosphericFogDensityScale" - OpMemberName %type_View 117 "View_AtmosphericFogDensityOffset" - OpMemberName %type_View 118 "View_AtmosphericFogGroundOffset" - OpMemberName %type_View 119 "View_AtmosphericFogDistanceScale" - OpMemberName %type_View 120 "View_AtmosphericFogAltitudeScale" - OpMemberName %type_View 121 "View_AtmosphericFogHeightScaleRayleigh" - OpMemberName %type_View 122 "View_AtmosphericFogStartDistance" - OpMemberName %type_View 123 "View_AtmosphericFogDistanceOffset" - OpMemberName %type_View 124 "View_AtmosphericFogSunDiscScale" - OpMemberName %type_View 125 "View_AtmosphericFogRenderMask" - OpMemberName %type_View 126 "View_AtmosphericFogInscatterAltitudeSampleNum" - OpMemberName %type_View 127 "View_AtmosphericFogSunColor" - OpMemberName %type_View 128 "View_NormalCurvatureToRoughnessScaleBias" - OpMemberName %type_View 129 "View_RenderingReflectionCaptureMask" - OpMemberName %type_View 130 "View_AmbientCubemapTint" - OpMemberName %type_View 131 "View_AmbientCubemapIntensity" - OpMemberName %type_View 132 "View_SkyLightParameters" - OpMemberName %type_View 133 "PrePadding_View_2488" - OpMemberName %type_View 134 "PrePadding_View_2492" - OpMemberName %type_View 135 "View_SkyLightColor" - OpMemberName %type_View 136 "View_SkyIrradianceEnvironmentMap" - OpMemberName %type_View 137 "View_MobilePreviewMode" - OpMemberName %type_View 138 "View_HMDEyePaddingOffset" - OpMemberName %type_View 139 "View_ReflectionCubemapMaxMip" - OpMemberName %type_View 140 "View_ShowDecalsMask" - OpMemberName %type_View 141 "View_DistanceFieldAOSpecularOcclusionMode" - OpMemberName %type_View 142 "View_IndirectCapsuleSelfShadowingIntensity" - OpMemberName %type_View 143 "PrePadding_View_2648" - OpMemberName %type_View 144 "PrePadding_View_2652" - OpMemberName %type_View 145 "View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight" - OpMemberName %type_View 146 "View_StereoPassIndex" - OpMemberName %type_View 147 "View_GlobalVolumeCenterAndExtent" - OpMemberName %type_View 148 "View_GlobalVolumeWorldToUVAddAndMul" - OpMemberName %type_View 149 "View_GlobalVolumeDimension" - OpMemberName %type_View 150 "View_GlobalVolumeTexelSize" - OpMemberName %type_View 151 "View_MaxGlobalDistance" - OpMemberName %type_View 152 "View_bCheckerboardSubsurfaceProfileRendering" - OpMemberName %type_View 153 "View_VolumetricFogInvGridSize" - OpMemberName %type_View 154 "PrePadding_View_2828" - OpMemberName %type_View 155 "View_VolumetricFogGridZParams" - OpMemberName %type_View 156 "PrePadding_View_2844" - OpMemberName %type_View 157 "View_VolumetricFogSVPosToVolumeUV" - OpMemberName %type_View 158 "View_VolumetricFogMaxDistance" - OpMemberName %type_View 159 "PrePadding_View_2860" - OpMemberName %type_View 160 "View_VolumetricLightmapWorldToUVScale" - OpMemberName %type_View 161 "PrePadding_View_2876" - OpMemberName %type_View 162 "View_VolumetricLightmapWorldToUVAdd" - OpMemberName %type_View 163 "PrePadding_View_2892" - OpMemberName %type_View 164 "View_VolumetricLightmapIndirectionTextureSize" - OpMemberName %type_View 165 "View_VolumetricLightmapBrickSize" - OpMemberName %type_View 166 "View_VolumetricLightmapBrickTexelSize" - OpMemberName %type_View 167 "View_StereoIPD" - OpMemberName %type_View 168 "View_IndirectLightingCacheShowFlag" - OpMemberName %type_View 169 "View_EyeToPixelSpreadAngle" - OpName %View "View" - OpName %type_sampler "type.sampler" - OpName %type_2d_image "type.2d.image" - OpName %ShadowDepthTexture "ShadowDepthTexture" - OpName %ShadowDepthTextureSampler "ShadowDepthTextureSampler" - OpName %type__Globals "type.$Globals" - OpMemberName %type__Globals 0 "SoftTransitionScale" - OpMemberName %type__Globals 1 "ShadowBufferSize" - OpMemberName %type__Globals 2 "ShadowFadeFraction" - OpMemberName %type__Globals 3 "ShadowSharpen" - OpMemberName %type__Globals 4 "LightPositionAndInvRadius" - OpMemberName %type__Globals 5 "ScreenToShadowMatrix" - OpMemberName %type__Globals 6 "ProjectionDepthBiasParameters" - OpMemberName %type__Globals 7 "ModulatedShadowColor" - OpMemberName %type__Globals 8 "ShadowTileOffsetAndSize" - OpName %_Globals "$Globals" - OpName %out_var_SV_Target0 "out.var.SV_Target0" - OpName %Main "Main" - OpName %type_sampled_image "type.sampled.image" - OpDecorate %gl_LastFragData InputAttachmentIndex 0 - OpDecorate %gl_FragCoord BuiltIn FragCoord - OpDecorateString %gl_FragCoord UserSemantic "SV_POSITION" - OpDecorateString %out_var_SV_Target0 UserSemantic "SV_Target0" - OpDecorate %out_var_SV_Target0 Location 0 - OpDecorate %gl_LastFragData DescriptorSet 0 - OpDecorate %gl_LastFragData Binding 0 - OpDecorate %View DescriptorSet 0 - OpDecorate %View Binding 0 - OpDecorate %ShadowDepthTexture DescriptorSet 0 - OpDecorate %ShadowDepthTexture Binding 0 - OpDecorate %ShadowDepthTextureSampler DescriptorSet 0 - OpDecorate %ShadowDepthTextureSampler Binding 0 - OpDecorate %_Globals DescriptorSet 0 - OpDecorate %_Globals Binding 1 - OpDecorate %_arr_v4float_uint_2 ArrayStride 16 - OpDecorate %_arr_v4float_uint_7 ArrayStride 16 - OpDecorate %_arr_v4float_uint_4 ArrayStride 16 - OpMemberDecorate %type_View 0 Offset 0 - OpMemberDecorate %type_View 0 MatrixStride 16 - OpMemberDecorate %type_View 0 ColMajor - OpMemberDecorate %type_View 1 Offset 64 - OpMemberDecorate %type_View 1 MatrixStride 16 - OpMemberDecorate %type_View 1 ColMajor - OpMemberDecorate %type_View 2 Offset 128 - OpMemberDecorate %type_View 2 MatrixStride 16 - OpMemberDecorate %type_View 2 ColMajor - OpMemberDecorate %type_View 3 Offset 192 - OpMemberDecorate %type_View 3 MatrixStride 16 - OpMemberDecorate %type_View 3 ColMajor - OpMemberDecorate %type_View 4 Offset 256 - OpMemberDecorate %type_View 4 MatrixStride 16 - OpMemberDecorate %type_View 4 ColMajor - OpMemberDecorate %type_View 5 Offset 320 - OpMemberDecorate %type_View 5 MatrixStride 16 - OpMemberDecorate %type_View 5 ColMajor - OpMemberDecorate %type_View 6 Offset 384 - OpMemberDecorate %type_View 6 MatrixStride 16 - OpMemberDecorate %type_View 6 ColMajor - OpMemberDecorate %type_View 7 Offset 448 - OpMemberDecorate %type_View 7 MatrixStride 16 - OpMemberDecorate %type_View 7 ColMajor - OpMemberDecorate %type_View 8 Offset 512 - OpMemberDecorate %type_View 8 MatrixStride 16 - OpMemberDecorate %type_View 8 ColMajor - OpMemberDecorate %type_View 9 Offset 576 - OpMemberDecorate %type_View 9 MatrixStride 16 - OpMemberDecorate %type_View 9 ColMajor - OpMemberDecorate %type_View 10 Offset 640 - OpMemberDecorate %type_View 10 MatrixStride 16 - OpMemberDecorate %type_View 10 ColMajor - OpMemberDecorate %type_View 11 Offset 704 - OpMemberDecorate %type_View 11 MatrixStride 16 - OpMemberDecorate %type_View 11 ColMajor - OpMemberDecorate %type_View 12 Offset 768 - OpMemberDecorate %type_View 12 MatrixStride 16 - OpMemberDecorate %type_View 12 ColMajor - OpMemberDecorate %type_View 13 Offset 832 - OpMemberDecorate %type_View 14 Offset 844 - OpMemberDecorate %type_View 15 Offset 848 - OpMemberDecorate %type_View 16 Offset 860 - OpMemberDecorate %type_View 17 Offset 864 - OpMemberDecorate %type_View 18 Offset 876 - OpMemberDecorate %type_View 19 Offset 880 - OpMemberDecorate %type_View 20 Offset 892 - OpMemberDecorate %type_View 21 Offset 896 - OpMemberDecorate %type_View 22 Offset 908 - OpMemberDecorate %type_View 23 Offset 912 - OpMemberDecorate %type_View 24 Offset 928 - OpMemberDecorate %type_View 25 Offset 944 - OpMemberDecorate %type_View 26 Offset 956 - OpMemberDecorate %type_View 27 Offset 960 - OpMemberDecorate %type_View 28 Offset 972 - OpMemberDecorate %type_View 29 Offset 976 - OpMemberDecorate %type_View 30 Offset 988 - OpMemberDecorate %type_View 31 Offset 992 - OpMemberDecorate %type_View 32 Offset 1004 - OpMemberDecorate %type_View 33 Offset 1008 - OpMemberDecorate %type_View 33 MatrixStride 16 - OpMemberDecorate %type_View 33 ColMajor - OpMemberDecorate %type_View 34 Offset 1072 - OpMemberDecorate %type_View 34 MatrixStride 16 - OpMemberDecorate %type_View 34 ColMajor - OpMemberDecorate %type_View 35 Offset 1136 - OpMemberDecorate %type_View 35 MatrixStride 16 - OpMemberDecorate %type_View 35 ColMajor - OpMemberDecorate %type_View 36 Offset 1200 - OpMemberDecorate %type_View 36 MatrixStride 16 - OpMemberDecorate %type_View 36 ColMajor - OpMemberDecorate %type_View 37 Offset 1264 - OpMemberDecorate %type_View 37 MatrixStride 16 - OpMemberDecorate %type_View 37 ColMajor - OpMemberDecorate %type_View 38 Offset 1328 - OpMemberDecorate %type_View 38 MatrixStride 16 - OpMemberDecorate %type_View 38 ColMajor - OpMemberDecorate %type_View 39 Offset 1392 - OpMemberDecorate %type_View 39 MatrixStride 16 - OpMemberDecorate %type_View 39 ColMajor - OpMemberDecorate %type_View 40 Offset 1456 - OpMemberDecorate %type_View 40 MatrixStride 16 - OpMemberDecorate %type_View 40 ColMajor - OpMemberDecorate %type_View 41 Offset 1520 - OpMemberDecorate %type_View 41 MatrixStride 16 - OpMemberDecorate %type_View 41 ColMajor - OpMemberDecorate %type_View 42 Offset 1584 - OpMemberDecorate %type_View 42 MatrixStride 16 - OpMemberDecorate %type_View 42 ColMajor - OpMemberDecorate %type_View 43 Offset 1648 - OpMemberDecorate %type_View 44 Offset 1660 - OpMemberDecorate %type_View 45 Offset 1664 - OpMemberDecorate %type_View 46 Offset 1676 - OpMemberDecorate %type_View 47 Offset 1680 - OpMemberDecorate %type_View 48 Offset 1692 - OpMemberDecorate %type_View 49 Offset 1696 - OpMemberDecorate %type_View 49 MatrixStride 16 - OpMemberDecorate %type_View 49 ColMajor - OpMemberDecorate %type_View 50 Offset 1760 - OpMemberDecorate %type_View 50 MatrixStride 16 - OpMemberDecorate %type_View 50 ColMajor - OpMemberDecorate %type_View 51 Offset 1824 - OpMemberDecorate %type_View 51 MatrixStride 16 - OpMemberDecorate %type_View 51 ColMajor - OpMemberDecorate %type_View 52 Offset 1888 - OpMemberDecorate %type_View 53 Offset 1904 - OpMemberDecorate %type_View 54 Offset 1920 - OpMemberDecorate %type_View 55 Offset 1928 - OpMemberDecorate %type_View 56 Offset 1936 - OpMemberDecorate %type_View 57 Offset 1952 - OpMemberDecorate %type_View 58 Offset 1968 - OpMemberDecorate %type_View 59 Offset 1984 - OpMemberDecorate %type_View 60 Offset 2000 - OpMemberDecorate %type_View 61 Offset 2004 - OpMemberDecorate %type_View 62 Offset 2008 - OpMemberDecorate %type_View 63 Offset 2012 - OpMemberDecorate %type_View 64 Offset 2016 - OpMemberDecorate %type_View 65 Offset 2032 - OpMemberDecorate %type_View 66 Offset 2048 - OpMemberDecorate %type_View 67 Offset 2064 - OpMemberDecorate %type_View 68 Offset 2072 - OpMemberDecorate %type_View 69 Offset 2076 - OpMemberDecorate %type_View 70 Offset 2080 - OpMemberDecorate %type_View 71 Offset 2084 - OpMemberDecorate %type_View 72 Offset 2088 - OpMemberDecorate %type_View 73 Offset 2092 - OpMemberDecorate %type_View 74 Offset 2096 - OpMemberDecorate %type_View 75 Offset 2108 - OpMemberDecorate %type_View 76 Offset 2112 - OpMemberDecorate %type_View 77 Offset 2116 - OpMemberDecorate %type_View 78 Offset 2120 - OpMemberDecorate %type_View 79 Offset 2124 - OpMemberDecorate %type_View 80 Offset 2128 - OpMemberDecorate %type_View 81 Offset 2132 - OpMemberDecorate %type_View 82 Offset 2136 - OpMemberDecorate %type_View 83 Offset 2140 - OpMemberDecorate %type_View 84 Offset 2144 - OpMemberDecorate %type_View 85 Offset 2148 - OpMemberDecorate %type_View 86 Offset 2152 - OpMemberDecorate %type_View 87 Offset 2156 - OpMemberDecorate %type_View 88 Offset 2160 - OpMemberDecorate %type_View 89 Offset 2164 - OpMemberDecorate %type_View 90 Offset 2168 - OpMemberDecorate %type_View 91 Offset 2172 - OpMemberDecorate %type_View 92 Offset 2176 - OpMemberDecorate %type_View 93 Offset 2192 - OpMemberDecorate %type_View 94 Offset 2204 - OpMemberDecorate %type_View 95 Offset 2208 - OpMemberDecorate %type_View 96 Offset 2240 - OpMemberDecorate %type_View 97 Offset 2272 - OpMemberDecorate %type_View 98 Offset 2288 - OpMemberDecorate %type_View 99 Offset 2304 - OpMemberDecorate %type_View 100 Offset 2308 - OpMemberDecorate %type_View 101 Offset 2312 - OpMemberDecorate %type_View 102 Offset 2316 - OpMemberDecorate %type_View 103 Offset 2320 - OpMemberDecorate %type_View 104 Offset 2324 - OpMemberDecorate %type_View 105 Offset 2328 - OpMemberDecorate %type_View 106 Offset 2332 - OpMemberDecorate %type_View 107 Offset 2336 - OpMemberDecorate %type_View 108 Offset 2340 - OpMemberDecorate %type_View 109 Offset 2344 - OpMemberDecorate %type_View 110 Offset 2348 - OpMemberDecorate %type_View 111 Offset 2352 - OpMemberDecorate %type_View 112 Offset 2364 - OpMemberDecorate %type_View 113 Offset 2368 - OpMemberDecorate %type_View 114 Offset 2380 - OpMemberDecorate %type_View 115 Offset 2384 - OpMemberDecorate %type_View 116 Offset 2388 - OpMemberDecorate %type_View 117 Offset 2392 - OpMemberDecorate %type_View 118 Offset 2396 - OpMemberDecorate %type_View 119 Offset 2400 - OpMemberDecorate %type_View 120 Offset 2404 - OpMemberDecorate %type_View 121 Offset 2408 - OpMemberDecorate %type_View 122 Offset 2412 - OpMemberDecorate %type_View 123 Offset 2416 - OpMemberDecorate %type_View 124 Offset 2420 - OpMemberDecorate %type_View 125 Offset 2424 - OpMemberDecorate %type_View 126 Offset 2428 - OpMemberDecorate %type_View 127 Offset 2432 - OpMemberDecorate %type_View 128 Offset 2448 - OpMemberDecorate %type_View 129 Offset 2460 - OpMemberDecorate %type_View 130 Offset 2464 - OpMemberDecorate %type_View 131 Offset 2480 - OpMemberDecorate %type_View 132 Offset 2484 - OpMemberDecorate %type_View 133 Offset 2488 - OpMemberDecorate %type_View 134 Offset 2492 - OpMemberDecorate %type_View 135 Offset 2496 - OpMemberDecorate %type_View 136 Offset 2512 - OpMemberDecorate %type_View 137 Offset 2624 - OpMemberDecorate %type_View 138 Offset 2628 - OpMemberDecorate %type_View 139 Offset 2632 - OpMemberDecorate %type_View 140 Offset 2636 - OpMemberDecorate %type_View 141 Offset 2640 - OpMemberDecorate %type_View 142 Offset 2644 - OpMemberDecorate %type_View 143 Offset 2648 - OpMemberDecorate %type_View 144 Offset 2652 - OpMemberDecorate %type_View 145 Offset 2656 - OpMemberDecorate %type_View 146 Offset 2668 - OpMemberDecorate %type_View 147 Offset 2672 - OpMemberDecorate %type_View 148 Offset 2736 - OpMemberDecorate %type_View 149 Offset 2800 - OpMemberDecorate %type_View 150 Offset 2804 - OpMemberDecorate %type_View 151 Offset 2808 - OpMemberDecorate %type_View 152 Offset 2812 - OpMemberDecorate %type_View 153 Offset 2816 - OpMemberDecorate %type_View 154 Offset 2828 - OpMemberDecorate %type_View 155 Offset 2832 - OpMemberDecorate %type_View 156 Offset 2844 - OpMemberDecorate %type_View 157 Offset 2848 - OpMemberDecorate %type_View 158 Offset 2856 - OpMemberDecorate %type_View 159 Offset 2860 - OpMemberDecorate %type_View 160 Offset 2864 - OpMemberDecorate %type_View 161 Offset 2876 - OpMemberDecorate %type_View 162 Offset 2880 - OpMemberDecorate %type_View 163 Offset 2892 - OpMemberDecorate %type_View 164 Offset 2896 - OpMemberDecorate %type_View 165 Offset 2908 - OpMemberDecorate %type_View 166 Offset 2912 - OpMemberDecorate %type_View 167 Offset 2924 - OpMemberDecorate %type_View 168 Offset 2928 - OpMemberDecorate %type_View 169 Offset 2932 - OpDecorate %type_View Block - OpMemberDecorate %type__Globals 0 Offset 0 - OpMemberDecorate %type__Globals 1 Offset 16 - OpMemberDecorate %type__Globals 2 Offset 32 - OpMemberDecorate %type__Globals 3 Offset 36 - OpMemberDecorate %type__Globals 4 Offset 48 - OpMemberDecorate %type__Globals 5 Offset 64 - OpMemberDecorate %type__Globals 5 MatrixStride 16 - OpMemberDecorate %type__Globals 5 ColMajor - OpMemberDecorate %type__Globals 6 Offset 128 - OpMemberDecorate %type__Globals 7 Offset 144 - OpMemberDecorate %type__Globals 8 Offset 160 - OpDecorate %type__Globals Block - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%mat4v4float = OpTypeMatrix %v4float 4 - %v3float = OpTypeVector %float 3 - %v2float = OpTypeVector %float 2 - %int = OpTypeInt 32 1 - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 - %uint_7 = OpConstant %uint 7 - %uint_4 = OpConstant %uint 4 - %float_1 = OpConstant %float 1 - %int_58 = OpConstant %int 58 - %int_24 = OpConstant %int 24 - %int_5 = OpConstant %int 5 - %int_2 = OpConstant %int 2 - %int_3 = OpConstant %int 3 - %int_8 = OpConstant %int 8 -%float_0_999989986 = OpConstant %float 0.999989986 - %int_0 = OpConstant %int 0 - %float_0 = OpConstant %float 0 - %int_7 = OpConstant %int 7 - %float_0_5 = OpConstant %float 0.5 - %41 = OpConstantComposite %v3float %float_1 %float_1 %float_1 - %v2int = OpTypeVector %int 2 - %43 = OpConstantComposite %v2int %int_0 %int_0 - %44 = OpConstantComposite %v3float %float_0 %float_0 %float_0 -%type_subpass_image = OpTypeImage %float SubpassData 2 0 0 2 Unknown -%_ptr_UniformConstant_type_subpass_image = OpTypePointer UniformConstant %type_subpass_image -%_arr_v4float_uint_2 = OpTypeArray %v4float %uint_2 -%_arr_v4float_uint_7 = OpTypeArray %v4float %uint_7 -%_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4 - %type_View = OpTypeStruct %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %v3float %float %v3float %float %v3float %float %v3float %float %v3float %float %v4float %v4float %v3float %float %v3float %float %v3float %float %v3float %float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %v3float %float %v3float %float %v3float %float %mat4v4float %mat4v4float %mat4v4float %v4float %v4float %v2float %v2float %v4float %v4float %v4float %v4float %int %float %float %float %v4float %v4float %v4float %v2float %float %float %float %float %float %float %v3float %float %float %float %float %float %float %float %float %uint %uint %uint %uint %float %float %float %float %float %v4float %v3float %float %_arr_v4float_uint_2 %_arr_v4float_uint_2 %v4float %v4float %float %float %float %float %float %float %float %float %float %float %float %float %v3float %float %v3float %float %float %float %float %float %float %float %float %float %float %float %uint %uint %v4float %v3float %float %v4float %float %float %float %float %v4float %_arr_v4float_uint_7 %float %float %float %float %uint %float %float %float %v3float %int %_arr_v4float_uint_4 %_arr_v4float_uint_4 %float %float %float %float %v3float %float %v3float %float %v2float %float %float %v3float %float %v3float %float %v3float %float %v3float %float %float %float -%_ptr_Uniform_type_View = OpTypePointer Uniform %type_View -%type_sampler = OpTypeSampler -%_ptr_UniformConstant_type_sampler = OpTypePointer UniformConstant %type_sampler -%type_2d_image = OpTypeImage %float 2D 2 0 0 1 Unknown -%_ptr_UniformConstant_type_2d_image = OpTypePointer UniformConstant %type_2d_image -%type__Globals = OpTypeStruct %v3float %v4float %float %float %v4float %mat4v4float %v2float %v4float %v4float -%_ptr_Uniform_type__Globals = OpTypePointer Uniform %type__Globals -%_ptr_Input_v4float = OpTypePointer Input %v4float -%_ptr_Output_v4float = OpTypePointer Output %v4float - %void = OpTypeVoid - %53 = OpTypeFunction %void -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float -%_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float -%_ptr_Uniform_float = OpTypePointer Uniform %float -%type_sampled_image = OpTypeSampledImage %type_2d_image -%gl_LastFragData = OpVariable %_ptr_UniformConstant_type_subpass_image UniformConstant - %View = OpVariable %_ptr_Uniform_type_View Uniform -%ShadowDepthTexture = OpVariable %_ptr_UniformConstant_type_2d_image UniformConstant -%ShadowDepthTextureSampler = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant - %_Globals = OpVariable %_ptr_Uniform_type__Globals Uniform -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input -%out_var_SV_Target0 = OpVariable %_ptr_Output_v4float Output - %57 = OpConstantNull %v4float - %58 = OpUndef %v4float - %Main = OpFunction %void None %53 - %59 = OpLabel - %60 = OpLoad %v4float %gl_FragCoord - %61 = OpVectorShuffle %v2float %60 %60 0 1 - %62 = OpAccessChain %_ptr_Uniform_v4float %View %int_58 - %63 = OpLoad %v4float %62 - %64 = OpVectorShuffle %v2float %63 %63 2 3 - %65 = OpFMul %v2float %61 %64 - %66 = OpLoad %type_subpass_image %gl_LastFragData - %67 = OpImageRead %v4float %66 %43 None - %68 = OpCompositeExtract %float %67 3 - %69 = OpAccessChain %_ptr_Uniform_v4float %View %int_24 - %70 = OpLoad %v4float %69 - %71 = OpVectorShuffle %v2float %70 %70 3 2 - %72 = OpFSub %v2float %65 %71 - %73 = OpVectorShuffle %v2float %70 %70 0 1 - %74 = OpFDiv %v2float %72 %73 - %75 = OpCompositeConstruct %v2float %68 %68 - %76 = OpFMul %v2float %74 %75 - %77 = OpCompositeExtract %float %76 0 - %78 = OpCompositeExtract %float %76 1 - %79 = OpCompositeConstruct %v4float %77 %78 %68 %float_1 - %80 = OpAccessChain %_ptr_Uniform_mat4v4float %_Globals %int_5 - %81 = OpLoad %mat4v4float %80 - %82 = OpMatrixTimesVector %v4float %81 %79 - %83 = OpCompositeExtract %float %82 2 - %84 = OpCompositeExtract %float %82 3 - %85 = OpCompositeConstruct %v3float %84 %84 %84 - %86 = OpVectorShuffle %v3float %82 %82 0 1 2 - %87 = OpFDiv %v3float %86 %85 - %88 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_8 - %89 = OpLoad %v4float %88 - %90 = OpVectorShuffle %v2float %89 %89 2 3 - %91 = OpVectorShuffle %v2float %87 %57 0 1 - %92 = OpFMul %v2float %91 %90 - %93 = OpVectorShuffle %v2float %89 %89 0 1 - %94 = OpVectorShuffle %v2float %92 %57 0 1 - %95 = OpFAdd %v2float %94 %93 - %96 = OpExtInst %float %1 FMin %83 %float_0_999989986 - %97 = OpLoad %type_2d_image %ShadowDepthTexture - %98 = OpLoad %type_sampler %ShadowDepthTextureSampler - %99 = OpAccessChain %_ptr_Uniform_float %_Globals %int_0 %int_2 - %100 = OpLoad %float %99 - %101 = OpVectorShuffle %v2float %95 %57 0 1 - %102 = OpSampledImage %type_sampled_image %97 %98 - %103 = OpImageSampleExplicitLod %v4float %102 %101 Lod %float_0 - %104 = OpVectorShuffle %v3float %103 %103 0 0 0 - %105 = OpFMul %float %96 %100 - %106 = OpFSub %float %105 %float_1 - %107 = OpCompositeConstruct %v3float %100 %100 %100 - %108 = OpFMul %v3float %104 %107 - %109 = OpCompositeConstruct %v3float %106 %106 %106 - %110 = OpFSub %v3float %108 %109 - %111 = OpExtInst %v3float %1 FClamp %110 %44 %41 - %112 = OpCompositeExtract %float %111 0 - %113 = OpFSub %float %112 %float_0_5 - %114 = OpAccessChain %_ptr_Uniform_float %_Globals %int_3 - %115 = OpLoad %float %114 - %116 = OpFMul %float %113 %115 - %117 = OpFAdd %float %116 %float_0_5 - %118 = OpExtInst %float %1 FClamp %117 %float_0 %float_1 - %119 = OpFMul %float %118 %118 - %120 = OpAccessChain %_ptr_Uniform_float %_Globals %int_2 - %121 = OpLoad %float %120 - %122 = OpExtInst %float %1 FMix %float_1 %119 %121 - %123 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_7 - %124 = OpLoad %v4float %123 - %125 = OpVectorShuffle %v3float %124 %124 0 1 2 - %126 = OpCompositeConstruct %v3float %122 %122 %122 - %127 = OpExtInst %v3float %1 FMix %125 %41 %126 - %128 = OpVectorShuffle %v4float %58 %127 4 5 6 3 - %129 = OpCompositeInsert %v4float %float_0 %128 3 - OpStore %out_var_SV_Target0 %129 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-ue4/asm/frag/texture-atomics.asm.argument.msl2.frag b/third_party/spirv-cross/shaders-ue4/asm/frag/texture-atomics.asm.argument.msl2.frag deleted file mode 100644 index 270a1978fc..0000000000 --- a/third_party/spirv-cross/shaders-ue4/asm/frag/texture-atomics.asm.argument.msl2.frag +++ /dev/null @@ -1,242 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 180 -; Schema: 0 - OpCapability Shader - OpCapability SampledBuffer - OpCapability ImageBuffer - OpExtension "SPV_GOOGLE_hlsl_functionality1" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %ShadowObjectCullPS "main" %in_var_TEXCOORD0 %gl_FragCoord %out_var_SV_Target0 - OpExecutionMode %ShadowObjectCullPS OriginUpperLeft - OpSource HLSL 600 - OpName %type_StructuredBuffer_v4float "type.StructuredBuffer.v4float" - OpName %CulledObjectBoxBounds "CulledObjectBoxBounds" - OpName %type__Globals "type.$Globals" - OpMemberName %type__Globals 0 "ShadowTileListGroupSize" - OpName %_Globals "$Globals" - OpName %type_buffer_image "type.buffer.image" - OpName %RWShadowTileNumCulledObjects "RWShadowTileNumCulledObjects" - OpName %in_var_TEXCOORD0 "in.var.TEXCOORD0" - OpName %out_var_SV_Target0 "out.var.SV_Target0" - OpName %ShadowObjectCullPS "ShadowObjectCullPS" - OpDecorateString %in_var_TEXCOORD0 UserSemantic "TEXCOORD0" - OpDecorate %in_var_TEXCOORD0 Flat - OpDecorate %gl_FragCoord BuiltIn FragCoord - OpDecorateString %gl_FragCoord UserSemantic "SV_POSITION" - OpDecorateString %out_var_SV_Target0 UserSemantic "SV_Target0" - OpDecorate %in_var_TEXCOORD0 Location 0 - OpDecorate %out_var_SV_Target0 Location 0 - OpDecorate %CulledObjectBoxBounds DescriptorSet 0 - OpDecorate %CulledObjectBoxBounds Binding 1 - OpDecorate %_Globals DescriptorSet 0 - OpDecorate %_Globals Binding 2 - OpDecorate %RWShadowTileNumCulledObjects DescriptorSet 0 - OpDecorate %RWShadowTileNumCulledObjects Binding 0 - OpDecorate %_runtimearr_v4float ArrayStride 16 - OpMemberDecorate %type_StructuredBuffer_v4float 0 Offset 0 - OpMemberDecorate %type_StructuredBuffer_v4float 0 NonWritable - OpDecorate %type_StructuredBuffer_v4float BufferBlock - OpMemberDecorate %type__Globals 0 Offset 0 - OpDecorate %type__Globals Block - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %v3float = OpTypeVector %float 3 - %v2float = OpTypeVector %float 2 - %int = OpTypeInt 32 1 - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 - %uint_4 = OpConstant %uint 4 - %float_0 = OpConstant %float 0 - %22 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 - %int_1 = OpConstant %int 1 - %int_0 = OpConstant %int 0 - %uint_1 = OpConstant %uint 1 - %float_2 = OpConstant %float 2 - %27 = OpConstantComposite %v2float %float_2 %float_2 - %float_1 = OpConstant %float 1 - %29 = OpConstantComposite %v2float %float_1 %float_1 -%float_n1000 = OpConstant %float -1000 - %int_2 = OpConstant %int 2 - %float_0_5 = OpConstant %float 0.5 - %33 = OpConstantComposite %v3float %float_0_5 %float_0_5 %float_0_5 -%float_500000 = OpConstant %float 500000 - %35 = OpConstantComposite %v3float %float_500000 %float_500000 %float_500000 -%float_n500000 = OpConstant %float -500000 - %37 = OpConstantComposite %v3float %float_n500000 %float_n500000 %float_n500000 - %int_3 = OpConstant %int 3 - %int_4 = OpConstant %int 4 - %int_5 = OpConstant %int 5 - %int_6 = OpConstant %int 6 - %int_7 = OpConstant %int 7 - %int_8 = OpConstant %int 8 - %44 = OpConstantComposite %v3float %float_1 %float_1 %float_1 - %float_n1 = OpConstant %float -1 - %46 = OpConstantComposite %v3float %float_n1 %float_n1 %float_n1 - %uint_5 = OpConstant %uint 5 - %uint_0 = OpConstant %uint 0 - %uint_3 = OpConstant %uint 3 -%_runtimearr_v4float = OpTypeRuntimeArray %v4float -%type_StructuredBuffer_v4float = OpTypeStruct %_runtimearr_v4float -%_ptr_Uniform_type_StructuredBuffer_v4float = OpTypePointer Uniform %type_StructuredBuffer_v4float - %v2uint = OpTypeVector %uint 2 -%type__Globals = OpTypeStruct %v2uint -%_ptr_Uniform_type__Globals = OpTypePointer Uniform %type__Globals -%type_buffer_image = OpTypeImage %uint Buffer 2 0 0 2 R32ui -%_ptr_UniformConstant_type_buffer_image = OpTypePointer UniformConstant %type_buffer_image -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_Input_v4float = OpTypePointer Input %v4float -%_ptr_Output_v4float = OpTypePointer Output %v4float - %void = OpTypeVoid - %58 = OpTypeFunction %void -%_ptr_Function_v3float = OpTypePointer Function %v3float - %uint_8 = OpConstant %uint 8 -%_arr_v3float_uint_8 = OpTypeArray %v3float %uint_8 -%_ptr_Function__arr_v3float_uint_8 = OpTypePointer Function %_arr_v3float_uint_8 -%_ptr_Uniform_v2uint = OpTypePointer Uniform %v2uint -%_ptr_Uniform_uint = OpTypePointer Uniform %uint - %bool = OpTypeBool - %v2bool = OpTypeVector %bool 2 - %v3bool = OpTypeVector %bool 3 -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float -%_ptr_Image_uint = OpTypePointer Image %uint -%CulledObjectBoxBounds = OpVariable %_ptr_Uniform_type_StructuredBuffer_v4float Uniform - %_Globals = OpVariable %_ptr_Uniform_type__Globals Uniform -%RWShadowTileNumCulledObjects = OpVariable %_ptr_UniformConstant_type_buffer_image UniformConstant -%in_var_TEXCOORD0 = OpVariable %_ptr_Input_uint Input -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input -%out_var_SV_Target0 = OpVariable %_ptr_Output_v4float Output - %70 = OpUndef %v3float - %71 = OpConstantNull %v3float -%ShadowObjectCullPS = OpFunction %void None %58 - %72 = OpLabel - %73 = OpVariable %_ptr_Function__arr_v3float_uint_8 Function - %74 = OpLoad %uint %in_var_TEXCOORD0 - %75 = OpLoad %v4float %gl_FragCoord - %76 = OpVectorShuffle %v2float %75 %75 0 1 - %77 = OpConvertFToU %v2uint %76 - %78 = OpCompositeExtract %uint %77 1 - %79 = OpAccessChain %_ptr_Uniform_v2uint %_Globals %int_0 - %80 = OpAccessChain %_ptr_Uniform_uint %_Globals %int_0 %int_0 - %81 = OpLoad %uint %80 - %82 = OpIMul %uint %78 %81 - %83 = OpCompositeExtract %uint %77 0 - %84 = OpIAdd %uint %82 %83 - %85 = OpConvertUToF %float %83 - %86 = OpAccessChain %_ptr_Uniform_uint %_Globals %int_0 %int_1 - %87 = OpLoad %uint %86 - %88 = OpISub %uint %87 %uint_1 - %89 = OpISub %uint %88 %78 - %90 = OpConvertUToF %float %89 - %91 = OpCompositeConstruct %v2float %85 %90 - %92 = OpLoad %v2uint %79 - %93 = OpConvertUToF %v2float %92 - %94 = OpFDiv %v2float %91 %93 - %95 = OpFMul %v2float %94 %27 - %96 = OpFSub %v2float %95 %29 - %97 = OpFAdd %v2float %91 %29 - %98 = OpFDiv %v2float %97 %93 - %99 = OpFMul %v2float %98 %27 - %100 = OpFSub %v2float %99 %29 - %101 = OpVectorShuffle %v3float %70 %100 3 4 2 - %102 = OpCompositeInsert %v3float %float_1 %101 2 - %103 = OpIMul %uint %74 %uint_5 - %104 = OpAccessChain %_ptr_Uniform_v4float %CulledObjectBoxBounds %int_0 %103 - %105 = OpLoad %v4float %104 - %106 = OpVectorShuffle %v3float %105 %105 0 1 2 - %107 = OpIAdd %uint %103 %uint_1 - %108 = OpAccessChain %_ptr_Uniform_v4float %CulledObjectBoxBounds %int_0 %107 - %109 = OpLoad %v4float %108 - %110 = OpVectorShuffle %v3float %109 %109 0 1 2 - %111 = OpVectorShuffle %v2float %109 %71 0 1 - %112 = OpVectorShuffle %v2float %96 %71 0 1 - %113 = OpFOrdGreaterThan %v2bool %111 %112 - %114 = OpAll %bool %113 - %115 = OpFOrdLessThan %v3bool %106 %102 - %116 = OpAll %bool %115 - %117 = OpLogicalAnd %bool %114 %116 - OpSelectionMerge %118 DontFlatten - OpBranchConditional %117 %119 %118 - %119 = OpLabel - %120 = OpFAdd %v3float %106 %110 - %121 = OpFMul %v3float %33 %120 - %122 = OpCompositeExtract %float %96 0 - %123 = OpCompositeExtract %float %96 1 - %124 = OpCompositeConstruct %v3float %122 %123 %float_n1000 - %125 = OpAccessChain %_ptr_Function_v3float %73 %int_0 - OpStore %125 %124 - %126 = OpCompositeExtract %float %100 0 - %127 = OpCompositeConstruct %v3float %126 %123 %float_n1000 - %128 = OpAccessChain %_ptr_Function_v3float %73 %int_1 - OpStore %128 %127 - %129 = OpCompositeExtract %float %100 1 - %130 = OpCompositeConstruct %v3float %122 %129 %float_n1000 - %131 = OpAccessChain %_ptr_Function_v3float %73 %int_2 - OpStore %131 %130 - %132 = OpCompositeConstruct %v3float %126 %129 %float_n1000 - %133 = OpAccessChain %_ptr_Function_v3float %73 %int_3 - OpStore %133 %132 - %134 = OpCompositeConstruct %v3float %122 %123 %float_1 - %135 = OpAccessChain %_ptr_Function_v3float %73 %int_4 - OpStore %135 %134 - %136 = OpCompositeConstruct %v3float %126 %123 %float_1 - %137 = OpAccessChain %_ptr_Function_v3float %73 %int_5 - OpStore %137 %136 - %138 = OpCompositeConstruct %v3float %122 %129 %float_1 - %139 = OpAccessChain %_ptr_Function_v3float %73 %int_6 - OpStore %139 %138 - %140 = OpCompositeConstruct %v3float %126 %129 %float_1 - %141 = OpAccessChain %_ptr_Function_v3float %73 %int_7 - OpStore %141 %140 - %142 = OpIAdd %uint %103 %uint_2 - %143 = OpAccessChain %_ptr_Uniform_v4float %CulledObjectBoxBounds %int_0 %142 - %144 = OpLoad %v4float %143 - %145 = OpVectorShuffle %v3float %144 %144 0 1 2 - %146 = OpIAdd %uint %103 %uint_3 - %147 = OpAccessChain %_ptr_Uniform_v4float %CulledObjectBoxBounds %int_0 %146 - %148 = OpLoad %v4float %147 - %149 = OpVectorShuffle %v3float %148 %148 0 1 2 - %150 = OpIAdd %uint %103 %uint_4 - %151 = OpAccessChain %_ptr_Uniform_v4float %CulledObjectBoxBounds %int_0 %150 - %152 = OpLoad %v4float %151 - %153 = OpVectorShuffle %v3float %152 %152 0 1 2 - OpBranch %154 - %154 = OpLabel - %155 = OpPhi %v3float %37 %119 %156 %157 - %158 = OpPhi %v3float %35 %119 %159 %157 - %160 = OpPhi %int %int_0 %119 %161 %157 - %162 = OpSLessThan %bool %160 %int_8 - OpLoopMerge %163 %157 Unroll - OpBranchConditional %162 %157 %163 - %157 = OpLabel - %164 = OpAccessChain %_ptr_Function_v3float %73 %160 - %165 = OpLoad %v3float %164 - %166 = OpFSub %v3float %165 %121 - %167 = OpDot %float %166 %145 - %168 = OpDot %float %166 %149 - %169 = OpDot %float %166 %153 - %170 = OpCompositeConstruct %v3float %167 %168 %169 - %159 = OpExtInst %v3float %1 FMin %158 %170 - %156 = OpExtInst %v3float %1 FMax %155 %170 - %161 = OpIAdd %int %160 %int_1 - OpBranch %154 - %163 = OpLabel - %171 = OpFOrdLessThan %v3bool %158 %44 - %172 = OpAll %bool %171 - %173 = OpFOrdGreaterThan %v3bool %155 %46 - %174 = OpAll %bool %173 - %175 = OpLogicalAnd %bool %172 %174 - OpSelectionMerge %176 DontFlatten - OpBranchConditional %175 %177 %176 - %177 = OpLabel - %178 = OpImageTexelPointer %_ptr_Image_uint %RWShadowTileNumCulledObjects %84 %uint_0 - %179 = OpAtomicIAdd %uint %178 %uint_1 %uint_0 %uint_1 - OpBranch %176 - %176 = OpLabel - OpBranch %118 - %118 = OpLabel - OpStore %out_var_SV_Target0 %22 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-ue4/asm/frag/texture-atomics.asm.frag b/third_party/spirv-cross/shaders-ue4/asm/frag/texture-atomics.asm.frag deleted file mode 100644 index 270a1978fc..0000000000 --- a/third_party/spirv-cross/shaders-ue4/asm/frag/texture-atomics.asm.frag +++ /dev/null @@ -1,242 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 180 -; Schema: 0 - OpCapability Shader - OpCapability SampledBuffer - OpCapability ImageBuffer - OpExtension "SPV_GOOGLE_hlsl_functionality1" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %ShadowObjectCullPS "main" %in_var_TEXCOORD0 %gl_FragCoord %out_var_SV_Target0 - OpExecutionMode %ShadowObjectCullPS OriginUpperLeft - OpSource HLSL 600 - OpName %type_StructuredBuffer_v4float "type.StructuredBuffer.v4float" - OpName %CulledObjectBoxBounds "CulledObjectBoxBounds" - OpName %type__Globals "type.$Globals" - OpMemberName %type__Globals 0 "ShadowTileListGroupSize" - OpName %_Globals "$Globals" - OpName %type_buffer_image "type.buffer.image" - OpName %RWShadowTileNumCulledObjects "RWShadowTileNumCulledObjects" - OpName %in_var_TEXCOORD0 "in.var.TEXCOORD0" - OpName %out_var_SV_Target0 "out.var.SV_Target0" - OpName %ShadowObjectCullPS "ShadowObjectCullPS" - OpDecorateString %in_var_TEXCOORD0 UserSemantic "TEXCOORD0" - OpDecorate %in_var_TEXCOORD0 Flat - OpDecorate %gl_FragCoord BuiltIn FragCoord - OpDecorateString %gl_FragCoord UserSemantic "SV_POSITION" - OpDecorateString %out_var_SV_Target0 UserSemantic "SV_Target0" - OpDecorate %in_var_TEXCOORD0 Location 0 - OpDecorate %out_var_SV_Target0 Location 0 - OpDecorate %CulledObjectBoxBounds DescriptorSet 0 - OpDecorate %CulledObjectBoxBounds Binding 1 - OpDecorate %_Globals DescriptorSet 0 - OpDecorate %_Globals Binding 2 - OpDecorate %RWShadowTileNumCulledObjects DescriptorSet 0 - OpDecorate %RWShadowTileNumCulledObjects Binding 0 - OpDecorate %_runtimearr_v4float ArrayStride 16 - OpMemberDecorate %type_StructuredBuffer_v4float 0 Offset 0 - OpMemberDecorate %type_StructuredBuffer_v4float 0 NonWritable - OpDecorate %type_StructuredBuffer_v4float BufferBlock - OpMemberDecorate %type__Globals 0 Offset 0 - OpDecorate %type__Globals Block - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %v3float = OpTypeVector %float 3 - %v2float = OpTypeVector %float 2 - %int = OpTypeInt 32 1 - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 - %uint_4 = OpConstant %uint 4 - %float_0 = OpConstant %float 0 - %22 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 - %int_1 = OpConstant %int 1 - %int_0 = OpConstant %int 0 - %uint_1 = OpConstant %uint 1 - %float_2 = OpConstant %float 2 - %27 = OpConstantComposite %v2float %float_2 %float_2 - %float_1 = OpConstant %float 1 - %29 = OpConstantComposite %v2float %float_1 %float_1 -%float_n1000 = OpConstant %float -1000 - %int_2 = OpConstant %int 2 - %float_0_5 = OpConstant %float 0.5 - %33 = OpConstantComposite %v3float %float_0_5 %float_0_5 %float_0_5 -%float_500000 = OpConstant %float 500000 - %35 = OpConstantComposite %v3float %float_500000 %float_500000 %float_500000 -%float_n500000 = OpConstant %float -500000 - %37 = OpConstantComposite %v3float %float_n500000 %float_n500000 %float_n500000 - %int_3 = OpConstant %int 3 - %int_4 = OpConstant %int 4 - %int_5 = OpConstant %int 5 - %int_6 = OpConstant %int 6 - %int_7 = OpConstant %int 7 - %int_8 = OpConstant %int 8 - %44 = OpConstantComposite %v3float %float_1 %float_1 %float_1 - %float_n1 = OpConstant %float -1 - %46 = OpConstantComposite %v3float %float_n1 %float_n1 %float_n1 - %uint_5 = OpConstant %uint 5 - %uint_0 = OpConstant %uint 0 - %uint_3 = OpConstant %uint 3 -%_runtimearr_v4float = OpTypeRuntimeArray %v4float -%type_StructuredBuffer_v4float = OpTypeStruct %_runtimearr_v4float -%_ptr_Uniform_type_StructuredBuffer_v4float = OpTypePointer Uniform %type_StructuredBuffer_v4float - %v2uint = OpTypeVector %uint 2 -%type__Globals = OpTypeStruct %v2uint -%_ptr_Uniform_type__Globals = OpTypePointer Uniform %type__Globals -%type_buffer_image = OpTypeImage %uint Buffer 2 0 0 2 R32ui -%_ptr_UniformConstant_type_buffer_image = OpTypePointer UniformConstant %type_buffer_image -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_Input_v4float = OpTypePointer Input %v4float -%_ptr_Output_v4float = OpTypePointer Output %v4float - %void = OpTypeVoid - %58 = OpTypeFunction %void -%_ptr_Function_v3float = OpTypePointer Function %v3float - %uint_8 = OpConstant %uint 8 -%_arr_v3float_uint_8 = OpTypeArray %v3float %uint_8 -%_ptr_Function__arr_v3float_uint_8 = OpTypePointer Function %_arr_v3float_uint_8 -%_ptr_Uniform_v2uint = OpTypePointer Uniform %v2uint -%_ptr_Uniform_uint = OpTypePointer Uniform %uint - %bool = OpTypeBool - %v2bool = OpTypeVector %bool 2 - %v3bool = OpTypeVector %bool 3 -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float -%_ptr_Image_uint = OpTypePointer Image %uint -%CulledObjectBoxBounds = OpVariable %_ptr_Uniform_type_StructuredBuffer_v4float Uniform - %_Globals = OpVariable %_ptr_Uniform_type__Globals Uniform -%RWShadowTileNumCulledObjects = OpVariable %_ptr_UniformConstant_type_buffer_image UniformConstant -%in_var_TEXCOORD0 = OpVariable %_ptr_Input_uint Input -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input -%out_var_SV_Target0 = OpVariable %_ptr_Output_v4float Output - %70 = OpUndef %v3float - %71 = OpConstantNull %v3float -%ShadowObjectCullPS = OpFunction %void None %58 - %72 = OpLabel - %73 = OpVariable %_ptr_Function__arr_v3float_uint_8 Function - %74 = OpLoad %uint %in_var_TEXCOORD0 - %75 = OpLoad %v4float %gl_FragCoord - %76 = OpVectorShuffle %v2float %75 %75 0 1 - %77 = OpConvertFToU %v2uint %76 - %78 = OpCompositeExtract %uint %77 1 - %79 = OpAccessChain %_ptr_Uniform_v2uint %_Globals %int_0 - %80 = OpAccessChain %_ptr_Uniform_uint %_Globals %int_0 %int_0 - %81 = OpLoad %uint %80 - %82 = OpIMul %uint %78 %81 - %83 = OpCompositeExtract %uint %77 0 - %84 = OpIAdd %uint %82 %83 - %85 = OpConvertUToF %float %83 - %86 = OpAccessChain %_ptr_Uniform_uint %_Globals %int_0 %int_1 - %87 = OpLoad %uint %86 - %88 = OpISub %uint %87 %uint_1 - %89 = OpISub %uint %88 %78 - %90 = OpConvertUToF %float %89 - %91 = OpCompositeConstruct %v2float %85 %90 - %92 = OpLoad %v2uint %79 - %93 = OpConvertUToF %v2float %92 - %94 = OpFDiv %v2float %91 %93 - %95 = OpFMul %v2float %94 %27 - %96 = OpFSub %v2float %95 %29 - %97 = OpFAdd %v2float %91 %29 - %98 = OpFDiv %v2float %97 %93 - %99 = OpFMul %v2float %98 %27 - %100 = OpFSub %v2float %99 %29 - %101 = OpVectorShuffle %v3float %70 %100 3 4 2 - %102 = OpCompositeInsert %v3float %float_1 %101 2 - %103 = OpIMul %uint %74 %uint_5 - %104 = OpAccessChain %_ptr_Uniform_v4float %CulledObjectBoxBounds %int_0 %103 - %105 = OpLoad %v4float %104 - %106 = OpVectorShuffle %v3float %105 %105 0 1 2 - %107 = OpIAdd %uint %103 %uint_1 - %108 = OpAccessChain %_ptr_Uniform_v4float %CulledObjectBoxBounds %int_0 %107 - %109 = OpLoad %v4float %108 - %110 = OpVectorShuffle %v3float %109 %109 0 1 2 - %111 = OpVectorShuffle %v2float %109 %71 0 1 - %112 = OpVectorShuffle %v2float %96 %71 0 1 - %113 = OpFOrdGreaterThan %v2bool %111 %112 - %114 = OpAll %bool %113 - %115 = OpFOrdLessThan %v3bool %106 %102 - %116 = OpAll %bool %115 - %117 = OpLogicalAnd %bool %114 %116 - OpSelectionMerge %118 DontFlatten - OpBranchConditional %117 %119 %118 - %119 = OpLabel - %120 = OpFAdd %v3float %106 %110 - %121 = OpFMul %v3float %33 %120 - %122 = OpCompositeExtract %float %96 0 - %123 = OpCompositeExtract %float %96 1 - %124 = OpCompositeConstruct %v3float %122 %123 %float_n1000 - %125 = OpAccessChain %_ptr_Function_v3float %73 %int_0 - OpStore %125 %124 - %126 = OpCompositeExtract %float %100 0 - %127 = OpCompositeConstruct %v3float %126 %123 %float_n1000 - %128 = OpAccessChain %_ptr_Function_v3float %73 %int_1 - OpStore %128 %127 - %129 = OpCompositeExtract %float %100 1 - %130 = OpCompositeConstruct %v3float %122 %129 %float_n1000 - %131 = OpAccessChain %_ptr_Function_v3float %73 %int_2 - OpStore %131 %130 - %132 = OpCompositeConstruct %v3float %126 %129 %float_n1000 - %133 = OpAccessChain %_ptr_Function_v3float %73 %int_3 - OpStore %133 %132 - %134 = OpCompositeConstruct %v3float %122 %123 %float_1 - %135 = OpAccessChain %_ptr_Function_v3float %73 %int_4 - OpStore %135 %134 - %136 = OpCompositeConstruct %v3float %126 %123 %float_1 - %137 = OpAccessChain %_ptr_Function_v3float %73 %int_5 - OpStore %137 %136 - %138 = OpCompositeConstruct %v3float %122 %129 %float_1 - %139 = OpAccessChain %_ptr_Function_v3float %73 %int_6 - OpStore %139 %138 - %140 = OpCompositeConstruct %v3float %126 %129 %float_1 - %141 = OpAccessChain %_ptr_Function_v3float %73 %int_7 - OpStore %141 %140 - %142 = OpIAdd %uint %103 %uint_2 - %143 = OpAccessChain %_ptr_Uniform_v4float %CulledObjectBoxBounds %int_0 %142 - %144 = OpLoad %v4float %143 - %145 = OpVectorShuffle %v3float %144 %144 0 1 2 - %146 = OpIAdd %uint %103 %uint_3 - %147 = OpAccessChain %_ptr_Uniform_v4float %CulledObjectBoxBounds %int_0 %146 - %148 = OpLoad %v4float %147 - %149 = OpVectorShuffle %v3float %148 %148 0 1 2 - %150 = OpIAdd %uint %103 %uint_4 - %151 = OpAccessChain %_ptr_Uniform_v4float %CulledObjectBoxBounds %int_0 %150 - %152 = OpLoad %v4float %151 - %153 = OpVectorShuffle %v3float %152 %152 0 1 2 - OpBranch %154 - %154 = OpLabel - %155 = OpPhi %v3float %37 %119 %156 %157 - %158 = OpPhi %v3float %35 %119 %159 %157 - %160 = OpPhi %int %int_0 %119 %161 %157 - %162 = OpSLessThan %bool %160 %int_8 - OpLoopMerge %163 %157 Unroll - OpBranchConditional %162 %157 %163 - %157 = OpLabel - %164 = OpAccessChain %_ptr_Function_v3float %73 %160 - %165 = OpLoad %v3float %164 - %166 = OpFSub %v3float %165 %121 - %167 = OpDot %float %166 %145 - %168 = OpDot %float %166 %149 - %169 = OpDot %float %166 %153 - %170 = OpCompositeConstruct %v3float %167 %168 %169 - %159 = OpExtInst %v3float %1 FMin %158 %170 - %156 = OpExtInst %v3float %1 FMax %155 %170 - %161 = OpIAdd %int %160 %int_1 - OpBranch %154 - %163 = OpLabel - %171 = OpFOrdLessThan %v3bool %158 %44 - %172 = OpAll %bool %171 - %173 = OpFOrdGreaterThan %v3bool %155 %46 - %174 = OpAll %bool %173 - %175 = OpLogicalAnd %bool %172 %174 - OpSelectionMerge %176 DontFlatten - OpBranchConditional %175 %177 %176 - %177 = OpLabel - %178 = OpImageTexelPointer %_ptr_Image_uint %RWShadowTileNumCulledObjects %84 %uint_0 - %179 = OpAtomicIAdd %uint %178 %uint_1 %uint_0 %uint_1 - OpBranch %176 - %176 = OpLabel - OpBranch %118 - %118 = OpLabel - OpStore %out_var_SV_Target0 %22 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-ue4/asm/frag/texture-atomics.asm.graphics-robust-access.frag b/third_party/spirv-cross/shaders-ue4/asm/frag/texture-atomics.asm.graphics-robust-access.frag deleted file mode 100644 index 270a1978fc..0000000000 --- a/third_party/spirv-cross/shaders-ue4/asm/frag/texture-atomics.asm.graphics-robust-access.frag +++ /dev/null @@ -1,242 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 180 -; Schema: 0 - OpCapability Shader - OpCapability SampledBuffer - OpCapability ImageBuffer - OpExtension "SPV_GOOGLE_hlsl_functionality1" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %ShadowObjectCullPS "main" %in_var_TEXCOORD0 %gl_FragCoord %out_var_SV_Target0 - OpExecutionMode %ShadowObjectCullPS OriginUpperLeft - OpSource HLSL 600 - OpName %type_StructuredBuffer_v4float "type.StructuredBuffer.v4float" - OpName %CulledObjectBoxBounds "CulledObjectBoxBounds" - OpName %type__Globals "type.$Globals" - OpMemberName %type__Globals 0 "ShadowTileListGroupSize" - OpName %_Globals "$Globals" - OpName %type_buffer_image "type.buffer.image" - OpName %RWShadowTileNumCulledObjects "RWShadowTileNumCulledObjects" - OpName %in_var_TEXCOORD0 "in.var.TEXCOORD0" - OpName %out_var_SV_Target0 "out.var.SV_Target0" - OpName %ShadowObjectCullPS "ShadowObjectCullPS" - OpDecorateString %in_var_TEXCOORD0 UserSemantic "TEXCOORD0" - OpDecorate %in_var_TEXCOORD0 Flat - OpDecorate %gl_FragCoord BuiltIn FragCoord - OpDecorateString %gl_FragCoord UserSemantic "SV_POSITION" - OpDecorateString %out_var_SV_Target0 UserSemantic "SV_Target0" - OpDecorate %in_var_TEXCOORD0 Location 0 - OpDecorate %out_var_SV_Target0 Location 0 - OpDecorate %CulledObjectBoxBounds DescriptorSet 0 - OpDecorate %CulledObjectBoxBounds Binding 1 - OpDecorate %_Globals DescriptorSet 0 - OpDecorate %_Globals Binding 2 - OpDecorate %RWShadowTileNumCulledObjects DescriptorSet 0 - OpDecorate %RWShadowTileNumCulledObjects Binding 0 - OpDecorate %_runtimearr_v4float ArrayStride 16 - OpMemberDecorate %type_StructuredBuffer_v4float 0 Offset 0 - OpMemberDecorate %type_StructuredBuffer_v4float 0 NonWritable - OpDecorate %type_StructuredBuffer_v4float BufferBlock - OpMemberDecorate %type__Globals 0 Offset 0 - OpDecorate %type__Globals Block - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %v3float = OpTypeVector %float 3 - %v2float = OpTypeVector %float 2 - %int = OpTypeInt 32 1 - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 - %uint_4 = OpConstant %uint 4 - %float_0 = OpConstant %float 0 - %22 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 - %int_1 = OpConstant %int 1 - %int_0 = OpConstant %int 0 - %uint_1 = OpConstant %uint 1 - %float_2 = OpConstant %float 2 - %27 = OpConstantComposite %v2float %float_2 %float_2 - %float_1 = OpConstant %float 1 - %29 = OpConstantComposite %v2float %float_1 %float_1 -%float_n1000 = OpConstant %float -1000 - %int_2 = OpConstant %int 2 - %float_0_5 = OpConstant %float 0.5 - %33 = OpConstantComposite %v3float %float_0_5 %float_0_5 %float_0_5 -%float_500000 = OpConstant %float 500000 - %35 = OpConstantComposite %v3float %float_500000 %float_500000 %float_500000 -%float_n500000 = OpConstant %float -500000 - %37 = OpConstantComposite %v3float %float_n500000 %float_n500000 %float_n500000 - %int_3 = OpConstant %int 3 - %int_4 = OpConstant %int 4 - %int_5 = OpConstant %int 5 - %int_6 = OpConstant %int 6 - %int_7 = OpConstant %int 7 - %int_8 = OpConstant %int 8 - %44 = OpConstantComposite %v3float %float_1 %float_1 %float_1 - %float_n1 = OpConstant %float -1 - %46 = OpConstantComposite %v3float %float_n1 %float_n1 %float_n1 - %uint_5 = OpConstant %uint 5 - %uint_0 = OpConstant %uint 0 - %uint_3 = OpConstant %uint 3 -%_runtimearr_v4float = OpTypeRuntimeArray %v4float -%type_StructuredBuffer_v4float = OpTypeStruct %_runtimearr_v4float -%_ptr_Uniform_type_StructuredBuffer_v4float = OpTypePointer Uniform %type_StructuredBuffer_v4float - %v2uint = OpTypeVector %uint 2 -%type__Globals = OpTypeStruct %v2uint -%_ptr_Uniform_type__Globals = OpTypePointer Uniform %type__Globals -%type_buffer_image = OpTypeImage %uint Buffer 2 0 0 2 R32ui -%_ptr_UniformConstant_type_buffer_image = OpTypePointer UniformConstant %type_buffer_image -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_Input_v4float = OpTypePointer Input %v4float -%_ptr_Output_v4float = OpTypePointer Output %v4float - %void = OpTypeVoid - %58 = OpTypeFunction %void -%_ptr_Function_v3float = OpTypePointer Function %v3float - %uint_8 = OpConstant %uint 8 -%_arr_v3float_uint_8 = OpTypeArray %v3float %uint_8 -%_ptr_Function__arr_v3float_uint_8 = OpTypePointer Function %_arr_v3float_uint_8 -%_ptr_Uniform_v2uint = OpTypePointer Uniform %v2uint -%_ptr_Uniform_uint = OpTypePointer Uniform %uint - %bool = OpTypeBool - %v2bool = OpTypeVector %bool 2 - %v3bool = OpTypeVector %bool 3 -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float -%_ptr_Image_uint = OpTypePointer Image %uint -%CulledObjectBoxBounds = OpVariable %_ptr_Uniform_type_StructuredBuffer_v4float Uniform - %_Globals = OpVariable %_ptr_Uniform_type__Globals Uniform -%RWShadowTileNumCulledObjects = OpVariable %_ptr_UniformConstant_type_buffer_image UniformConstant -%in_var_TEXCOORD0 = OpVariable %_ptr_Input_uint Input -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input -%out_var_SV_Target0 = OpVariable %_ptr_Output_v4float Output - %70 = OpUndef %v3float - %71 = OpConstantNull %v3float -%ShadowObjectCullPS = OpFunction %void None %58 - %72 = OpLabel - %73 = OpVariable %_ptr_Function__arr_v3float_uint_8 Function - %74 = OpLoad %uint %in_var_TEXCOORD0 - %75 = OpLoad %v4float %gl_FragCoord - %76 = OpVectorShuffle %v2float %75 %75 0 1 - %77 = OpConvertFToU %v2uint %76 - %78 = OpCompositeExtract %uint %77 1 - %79 = OpAccessChain %_ptr_Uniform_v2uint %_Globals %int_0 - %80 = OpAccessChain %_ptr_Uniform_uint %_Globals %int_0 %int_0 - %81 = OpLoad %uint %80 - %82 = OpIMul %uint %78 %81 - %83 = OpCompositeExtract %uint %77 0 - %84 = OpIAdd %uint %82 %83 - %85 = OpConvertUToF %float %83 - %86 = OpAccessChain %_ptr_Uniform_uint %_Globals %int_0 %int_1 - %87 = OpLoad %uint %86 - %88 = OpISub %uint %87 %uint_1 - %89 = OpISub %uint %88 %78 - %90 = OpConvertUToF %float %89 - %91 = OpCompositeConstruct %v2float %85 %90 - %92 = OpLoad %v2uint %79 - %93 = OpConvertUToF %v2float %92 - %94 = OpFDiv %v2float %91 %93 - %95 = OpFMul %v2float %94 %27 - %96 = OpFSub %v2float %95 %29 - %97 = OpFAdd %v2float %91 %29 - %98 = OpFDiv %v2float %97 %93 - %99 = OpFMul %v2float %98 %27 - %100 = OpFSub %v2float %99 %29 - %101 = OpVectorShuffle %v3float %70 %100 3 4 2 - %102 = OpCompositeInsert %v3float %float_1 %101 2 - %103 = OpIMul %uint %74 %uint_5 - %104 = OpAccessChain %_ptr_Uniform_v4float %CulledObjectBoxBounds %int_0 %103 - %105 = OpLoad %v4float %104 - %106 = OpVectorShuffle %v3float %105 %105 0 1 2 - %107 = OpIAdd %uint %103 %uint_1 - %108 = OpAccessChain %_ptr_Uniform_v4float %CulledObjectBoxBounds %int_0 %107 - %109 = OpLoad %v4float %108 - %110 = OpVectorShuffle %v3float %109 %109 0 1 2 - %111 = OpVectorShuffle %v2float %109 %71 0 1 - %112 = OpVectorShuffle %v2float %96 %71 0 1 - %113 = OpFOrdGreaterThan %v2bool %111 %112 - %114 = OpAll %bool %113 - %115 = OpFOrdLessThan %v3bool %106 %102 - %116 = OpAll %bool %115 - %117 = OpLogicalAnd %bool %114 %116 - OpSelectionMerge %118 DontFlatten - OpBranchConditional %117 %119 %118 - %119 = OpLabel - %120 = OpFAdd %v3float %106 %110 - %121 = OpFMul %v3float %33 %120 - %122 = OpCompositeExtract %float %96 0 - %123 = OpCompositeExtract %float %96 1 - %124 = OpCompositeConstruct %v3float %122 %123 %float_n1000 - %125 = OpAccessChain %_ptr_Function_v3float %73 %int_0 - OpStore %125 %124 - %126 = OpCompositeExtract %float %100 0 - %127 = OpCompositeConstruct %v3float %126 %123 %float_n1000 - %128 = OpAccessChain %_ptr_Function_v3float %73 %int_1 - OpStore %128 %127 - %129 = OpCompositeExtract %float %100 1 - %130 = OpCompositeConstruct %v3float %122 %129 %float_n1000 - %131 = OpAccessChain %_ptr_Function_v3float %73 %int_2 - OpStore %131 %130 - %132 = OpCompositeConstruct %v3float %126 %129 %float_n1000 - %133 = OpAccessChain %_ptr_Function_v3float %73 %int_3 - OpStore %133 %132 - %134 = OpCompositeConstruct %v3float %122 %123 %float_1 - %135 = OpAccessChain %_ptr_Function_v3float %73 %int_4 - OpStore %135 %134 - %136 = OpCompositeConstruct %v3float %126 %123 %float_1 - %137 = OpAccessChain %_ptr_Function_v3float %73 %int_5 - OpStore %137 %136 - %138 = OpCompositeConstruct %v3float %122 %129 %float_1 - %139 = OpAccessChain %_ptr_Function_v3float %73 %int_6 - OpStore %139 %138 - %140 = OpCompositeConstruct %v3float %126 %129 %float_1 - %141 = OpAccessChain %_ptr_Function_v3float %73 %int_7 - OpStore %141 %140 - %142 = OpIAdd %uint %103 %uint_2 - %143 = OpAccessChain %_ptr_Uniform_v4float %CulledObjectBoxBounds %int_0 %142 - %144 = OpLoad %v4float %143 - %145 = OpVectorShuffle %v3float %144 %144 0 1 2 - %146 = OpIAdd %uint %103 %uint_3 - %147 = OpAccessChain %_ptr_Uniform_v4float %CulledObjectBoxBounds %int_0 %146 - %148 = OpLoad %v4float %147 - %149 = OpVectorShuffle %v3float %148 %148 0 1 2 - %150 = OpIAdd %uint %103 %uint_4 - %151 = OpAccessChain %_ptr_Uniform_v4float %CulledObjectBoxBounds %int_0 %150 - %152 = OpLoad %v4float %151 - %153 = OpVectorShuffle %v3float %152 %152 0 1 2 - OpBranch %154 - %154 = OpLabel - %155 = OpPhi %v3float %37 %119 %156 %157 - %158 = OpPhi %v3float %35 %119 %159 %157 - %160 = OpPhi %int %int_0 %119 %161 %157 - %162 = OpSLessThan %bool %160 %int_8 - OpLoopMerge %163 %157 Unroll - OpBranchConditional %162 %157 %163 - %157 = OpLabel - %164 = OpAccessChain %_ptr_Function_v3float %73 %160 - %165 = OpLoad %v3float %164 - %166 = OpFSub %v3float %165 %121 - %167 = OpDot %float %166 %145 - %168 = OpDot %float %166 %149 - %169 = OpDot %float %166 %153 - %170 = OpCompositeConstruct %v3float %167 %168 %169 - %159 = OpExtInst %v3float %1 FMin %158 %170 - %156 = OpExtInst %v3float %1 FMax %155 %170 - %161 = OpIAdd %int %160 %int_1 - OpBranch %154 - %163 = OpLabel - %171 = OpFOrdLessThan %v3bool %158 %44 - %172 = OpAll %bool %171 - %173 = OpFOrdGreaterThan %v3bool %155 %46 - %174 = OpAll %bool %173 - %175 = OpLogicalAnd %bool %172 %174 - OpSelectionMerge %176 DontFlatten - OpBranchConditional %175 %177 %176 - %177 = OpLabel - %178 = OpImageTexelPointer %_ptr_Image_uint %RWShadowTileNumCulledObjects %84 %uint_0 - %179 = OpAtomicIAdd %uint %178 %uint_1 %uint_0 %uint_1 - OpBranch %176 - %176 = OpLabel - OpBranch %118 - %118 = OpLabel - OpStore %out_var_SV_Target0 %22 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-ue4/asm/tesc/hs-incorrect-base-type.asm.tesc b/third_party/spirv-cross/shaders-ue4/asm/tesc/hs-incorrect-base-type.asm.tesc deleted file mode 100644 index 4c70e14cb7..0000000000 --- a/third_party/spirv-cross/shaders-ue4/asm/tesc/hs-incorrect-base-type.asm.tesc +++ /dev/null @@ -1,1158 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 598 -; Schema: 0 - OpCapability Tessellation - OpCapability SampledBuffer - OpCapability StorageImageExtendedFormats - OpExtension "SPV_GOOGLE_hlsl_functionality1" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %MainHull "main" %in_var_TEXCOORD10_centroid %in_var_TEXCOORD11_centroid %in_var_COLOR0 %in_var_TEXCOORD0 %in_var_TEXCOORD4 %in_var_PRIMITIVE_ID %in_var_LIGHTMAP_ID %in_var_VS_To_DS_Position %gl_InvocationID %out_var_TEXCOORD10_centroid %out_var_TEXCOORD11_centroid %out_var_COLOR0 %out_var_TEXCOORD0 %out_var_TEXCOORD4 %out_var_PRIMITIVE_ID %out_var_LIGHTMAP_ID %out_var_VS_To_DS_Position %out_var_PN_POSITION %out_var_PN_DisplacementScales %out_var_PN_TessellationMultiplier %out_var_PN_WorldDisplacementMultiplier %gl_TessLevelOuter %gl_TessLevelInner %out_var_PN_POSITION9 - OpExecutionMode %MainHull Triangles - OpExecutionMode %MainHull SpacingFractionalOdd - OpExecutionMode %MainHull VertexOrderCw - OpExecutionMode %MainHull OutputVertices 3 - OpSource HLSL 600 - OpName %FPNTessellationHSToDS "FPNTessellationHSToDS" - OpMemberName %FPNTessellationHSToDS 0 "PassSpecificData" - OpMemberName %FPNTessellationHSToDS 1 "WorldPosition" - OpMemberName %FPNTessellationHSToDS 2 "DisplacementScale" - OpMemberName %FPNTessellationHSToDS 3 "TessellationMultiplier" - OpMemberName %FPNTessellationHSToDS 4 "WorldDisplacementMultiplier" - OpName %FBasePassVSToDS "FBasePassVSToDS" - OpMemberName %FBasePassVSToDS 0 "FactoryInterpolants" - OpMemberName %FBasePassVSToDS 1 "BasePassInterpolants" - OpMemberName %FBasePassVSToDS 2 "Position" - OpName %FVertexFactoryInterpolantsVSToDS "FVertexFactoryInterpolantsVSToDS" - OpMemberName %FVertexFactoryInterpolantsVSToDS 0 "InterpolantsVSToPS" - OpName %FVertexFactoryInterpolantsVSToPS "FVertexFactoryInterpolantsVSToPS" - OpMemberName %FVertexFactoryInterpolantsVSToPS 0 "TangentToWorld0" - OpMemberName %FVertexFactoryInterpolantsVSToPS 1 "TangentToWorld2" - OpMemberName %FVertexFactoryInterpolantsVSToPS 2 "Color" - OpMemberName %FVertexFactoryInterpolantsVSToPS 3 "TexCoords" - OpMemberName %FVertexFactoryInterpolantsVSToPS 4 "LightMapCoordinate" - OpMemberName %FVertexFactoryInterpolantsVSToPS 5 "PrimitiveId" - OpMemberName %FVertexFactoryInterpolantsVSToPS 6 "LightmapDataIndex" - OpName %FBasePassInterpolantsVSToDS "FBasePassInterpolantsVSToDS" - OpName %FSharedBasePassInterpolants "FSharedBasePassInterpolants" - OpName %type_View "type.View" - OpMemberName %type_View 0 "View_TranslatedWorldToClip" - OpMemberName %type_View 1 "View_WorldToClip" - OpMemberName %type_View 2 "View_TranslatedWorldToView" - OpMemberName %type_View 3 "View_ViewToTranslatedWorld" - OpMemberName %type_View 4 "View_TranslatedWorldToCameraView" - OpMemberName %type_View 5 "View_CameraViewToTranslatedWorld" - OpMemberName %type_View 6 "View_ViewToClip" - OpMemberName %type_View 7 "View_ViewToClipNoAA" - OpMemberName %type_View 8 "View_ClipToView" - OpMemberName %type_View 9 "View_ClipToTranslatedWorld" - OpMemberName %type_View 10 "View_SVPositionToTranslatedWorld" - OpMemberName %type_View 11 "View_ScreenToWorld" - OpMemberName %type_View 12 "View_ScreenToTranslatedWorld" - OpMemberName %type_View 13 "View_ViewForward" - OpMemberName %type_View 14 "PrePadding_View_844" - OpMemberName %type_View 15 "View_ViewUp" - OpMemberName %type_View 16 "PrePadding_View_860" - OpMemberName %type_View 17 "View_ViewRight" - OpMemberName %type_View 18 "PrePadding_View_876" - OpMemberName %type_View 19 "View_HMDViewNoRollUp" - OpMemberName %type_View 20 "PrePadding_View_892" - OpMemberName %type_View 21 "View_HMDViewNoRollRight" - OpMemberName %type_View 22 "PrePadding_View_908" - OpMemberName %type_View 23 "View_InvDeviceZToWorldZTransform" - OpMemberName %type_View 24 "View_ScreenPositionScaleBias" - OpMemberName %type_View 25 "View_WorldCameraOrigin" - OpMemberName %type_View 26 "PrePadding_View_956" - OpMemberName %type_View 27 "View_TranslatedWorldCameraOrigin" - OpMemberName %type_View 28 "PrePadding_View_972" - OpMemberName %type_View 29 "View_WorldViewOrigin" - OpMemberName %type_View 30 "PrePadding_View_988" - OpMemberName %type_View 31 "View_PreViewTranslation" - OpMemberName %type_View 32 "PrePadding_View_1004" - OpMemberName %type_View 33 "View_PrevProjection" - OpMemberName %type_View 34 "View_PrevViewProj" - OpMemberName %type_View 35 "View_PrevViewRotationProj" - OpMemberName %type_View 36 "View_PrevViewToClip" - OpMemberName %type_View 37 "View_PrevClipToView" - OpMemberName %type_View 38 "View_PrevTranslatedWorldToClip" - OpMemberName %type_View 39 "View_PrevTranslatedWorldToView" - OpMemberName %type_View 40 "View_PrevViewToTranslatedWorld" - OpMemberName %type_View 41 "View_PrevTranslatedWorldToCameraView" - OpMemberName %type_View 42 "View_PrevCameraViewToTranslatedWorld" - OpMemberName %type_View 43 "View_PrevWorldCameraOrigin" - OpMemberName %type_View 44 "PrePadding_View_1660" - OpMemberName %type_View 45 "View_PrevWorldViewOrigin" - OpMemberName %type_View 46 "PrePadding_View_1676" - OpMemberName %type_View 47 "View_PrevPreViewTranslation" - OpMemberName %type_View 48 "PrePadding_View_1692" - OpMemberName %type_View 49 "View_PrevInvViewProj" - OpMemberName %type_View 50 "View_PrevScreenToTranslatedWorld" - OpMemberName %type_View 51 "View_ClipToPrevClip" - OpMemberName %type_View 52 "View_TemporalAAJitter" - OpMemberName %type_View 53 "View_GlobalClippingPlane" - OpMemberName %type_View 54 "View_FieldOfViewWideAngles" - OpMemberName %type_View 55 "View_PrevFieldOfViewWideAngles" - OpMemberName %type_View 56 "View_ViewRectMin" - OpMemberName %type_View 57 "View_ViewSizeAndInvSize" - OpMemberName %type_View 58 "View_BufferSizeAndInvSize" - OpMemberName %type_View 59 "View_BufferBilinearUVMinMax" - OpMemberName %type_View 60 "View_NumSceneColorMSAASamples" - OpMemberName %type_View 61 "View_PreExposure" - OpMemberName %type_View 62 "View_OneOverPreExposure" - OpMemberName %type_View 63 "PrePadding_View_2012" - OpMemberName %type_View 64 "View_DiffuseOverrideParameter" - OpMemberName %type_View 65 "View_SpecularOverrideParameter" - OpMemberName %type_View 66 "View_NormalOverrideParameter" - OpMemberName %type_View 67 "View_RoughnessOverrideParameter" - OpMemberName %type_View 68 "View_PrevFrameGameTime" - OpMemberName %type_View 69 "View_PrevFrameRealTime" - OpMemberName %type_View 70 "View_OutOfBoundsMask" - OpMemberName %type_View 71 "PrePadding_View_2084" - OpMemberName %type_View 72 "PrePadding_View_2088" - OpMemberName %type_View 73 "PrePadding_View_2092" - OpMemberName %type_View 74 "View_WorldCameraMovementSinceLastFrame" - OpMemberName %type_View 75 "View_CullingSign" - OpMemberName %type_View 76 "View_NearPlane" - OpMemberName %type_View 77 "View_AdaptiveTessellationFactor" - OpMemberName %type_View 78 "View_GameTime" - OpMemberName %type_View 79 "View_RealTime" - OpMemberName %type_View 80 "View_DeltaTime" - OpMemberName %type_View 81 "View_MaterialTextureMipBias" - OpMemberName %type_View 82 "View_MaterialTextureDerivativeMultiply" - OpMemberName %type_View 83 "View_Random" - OpMemberName %type_View 84 "View_FrameNumber" - OpMemberName %type_View 85 "View_StateFrameIndexMod8" - OpMemberName %type_View 86 "View_StateFrameIndex" - OpMemberName %type_View 87 "View_CameraCut" - OpMemberName %type_View 88 "View_UnlitViewmodeMask" - OpMemberName %type_View 89 "PrePadding_View_2164" - OpMemberName %type_View 90 "PrePadding_View_2168" - OpMemberName %type_View 91 "PrePadding_View_2172" - OpMemberName %type_View 92 "View_DirectionalLightColor" - OpMemberName %type_View 93 "View_DirectionalLightDirection" - OpMemberName %type_View 94 "PrePadding_View_2204" - OpMemberName %type_View 95 "View_TranslucencyLightingVolumeMin" - OpMemberName %type_View 96 "View_TranslucencyLightingVolumeInvSize" - OpMemberName %type_View 97 "View_TemporalAAParams" - OpMemberName %type_View 98 "View_CircleDOFParams" - OpMemberName %type_View 99 "View_DepthOfFieldSensorWidth" - OpMemberName %type_View 100 "View_DepthOfFieldFocalDistance" - OpMemberName %type_View 101 "View_DepthOfFieldScale" - OpMemberName %type_View 102 "View_DepthOfFieldFocalLength" - OpMemberName %type_View 103 "View_DepthOfFieldFocalRegion" - OpMemberName %type_View 104 "View_DepthOfFieldNearTransitionRegion" - OpMemberName %type_View 105 "View_DepthOfFieldFarTransitionRegion" - OpMemberName %type_View 106 "View_MotionBlurNormalizedToPixel" - OpMemberName %type_View 107 "View_bSubsurfacePostprocessEnabled" - OpMemberName %type_View 108 "View_GeneralPurposeTweak" - OpMemberName %type_View 109 "View_DemosaicVposOffset" - OpMemberName %type_View 110 "PrePadding_View_2348" - OpMemberName %type_View 111 "View_IndirectLightingColorScale" - OpMemberName %type_View 112 "View_HDR32bppEncodingMode" - OpMemberName %type_View 113 "View_AtmosphericFogSunDirection" - OpMemberName %type_View 114 "View_AtmosphericFogSunPower" - OpMemberName %type_View 115 "View_AtmosphericFogPower" - OpMemberName %type_View 116 "View_AtmosphericFogDensityScale" - OpMemberName %type_View 117 "View_AtmosphericFogDensityOffset" - OpMemberName %type_View 118 "View_AtmosphericFogGroundOffset" - OpMemberName %type_View 119 "View_AtmosphericFogDistanceScale" - OpMemberName %type_View 120 "View_AtmosphericFogAltitudeScale" - OpMemberName %type_View 121 "View_AtmosphericFogHeightScaleRayleigh" - OpMemberName %type_View 122 "View_AtmosphericFogStartDistance" - OpMemberName %type_View 123 "View_AtmosphericFogDistanceOffset" - OpMemberName %type_View 124 "View_AtmosphericFogSunDiscScale" - OpMemberName %type_View 125 "View_AtmosphericFogRenderMask" - OpMemberName %type_View 126 "View_AtmosphericFogInscatterAltitudeSampleNum" - OpMemberName %type_View 127 "View_AtmosphericFogSunColor" - OpMemberName %type_View 128 "View_NormalCurvatureToRoughnessScaleBias" - OpMemberName %type_View 129 "View_RenderingReflectionCaptureMask" - OpMemberName %type_View 130 "View_AmbientCubemapTint" - OpMemberName %type_View 131 "View_AmbientCubemapIntensity" - OpMemberName %type_View 132 "View_SkyLightParameters" - OpMemberName %type_View 133 "PrePadding_View_2488" - OpMemberName %type_View 134 "PrePadding_View_2492" - OpMemberName %type_View 135 "View_SkyLightColor" - OpMemberName %type_View 136 "View_SkyIrradianceEnvironmentMap" - OpMemberName %type_View 137 "View_MobilePreviewMode" - OpMemberName %type_View 138 "View_HMDEyePaddingOffset" - OpMemberName %type_View 139 "View_ReflectionCubemapMaxMip" - OpMemberName %type_View 140 "View_ShowDecalsMask" - OpMemberName %type_View 141 "View_DistanceFieldAOSpecularOcclusionMode" - OpMemberName %type_View 142 "View_IndirectCapsuleSelfShadowingIntensity" - OpMemberName %type_View 143 "PrePadding_View_2648" - OpMemberName %type_View 144 "PrePadding_View_2652" - OpMemberName %type_View 145 "View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight" - OpMemberName %type_View 146 "View_StereoPassIndex" - OpMemberName %type_View 147 "View_GlobalVolumeCenterAndExtent" - OpMemberName %type_View 148 "View_GlobalVolumeWorldToUVAddAndMul" - OpMemberName %type_View 149 "View_GlobalVolumeDimension" - OpMemberName %type_View 150 "View_GlobalVolumeTexelSize" - OpMemberName %type_View 151 "View_MaxGlobalDistance" - OpMemberName %type_View 152 "View_bCheckerboardSubsurfaceProfileRendering" - OpMemberName %type_View 153 "View_VolumetricFogInvGridSize" - OpMemberName %type_View 154 "PrePadding_View_2828" - OpMemberName %type_View 155 "View_VolumetricFogGridZParams" - OpMemberName %type_View 156 "PrePadding_View_2844" - OpMemberName %type_View 157 "View_VolumetricFogSVPosToVolumeUV" - OpMemberName %type_View 158 "View_VolumetricFogMaxDistance" - OpMemberName %type_View 159 "PrePadding_View_2860" - OpMemberName %type_View 160 "View_VolumetricLightmapWorldToUVScale" - OpMemberName %type_View 161 "PrePadding_View_2876" - OpMemberName %type_View 162 "View_VolumetricLightmapWorldToUVAdd" - OpMemberName %type_View 163 "PrePadding_View_2892" - OpMemberName %type_View 164 "View_VolumetricLightmapIndirectionTextureSize" - OpMemberName %type_View 165 "View_VolumetricLightmapBrickSize" - OpMemberName %type_View 166 "View_VolumetricLightmapBrickTexelSize" - OpMemberName %type_View 167 "View_StereoIPD" - OpMemberName %type_View 168 "View_IndirectLightingCacheShowFlag" - OpMemberName %type_View 169 "View_EyeToPixelSpreadAngle" - OpName %View "View" - OpName %type_StructuredBuffer_v4float "type.StructuredBuffer.v4float" - OpName %View_PrimitiveSceneData "View_PrimitiveSceneData" - OpName %in_var_TEXCOORD10_centroid "in.var.TEXCOORD10_centroid" - OpName %in_var_TEXCOORD11_centroid "in.var.TEXCOORD11_centroid" - OpName %in_var_COLOR0 "in.var.COLOR0" - OpName %in_var_TEXCOORD0 "in.var.TEXCOORD0" - OpName %in_var_TEXCOORD4 "in.var.TEXCOORD4" - OpName %in_var_PRIMITIVE_ID "in.var.PRIMITIVE_ID" - OpName %in_var_LIGHTMAP_ID "in.var.LIGHTMAP_ID" - OpName %in_var_VS_To_DS_Position "in.var.VS_To_DS_Position" - OpName %out_var_TEXCOORD10_centroid "out.var.TEXCOORD10_centroid" - OpName %out_var_TEXCOORD11_centroid "out.var.TEXCOORD11_centroid" - OpName %out_var_COLOR0 "out.var.COLOR0" - OpName %out_var_TEXCOORD0 "out.var.TEXCOORD0" - OpName %out_var_TEXCOORD4 "out.var.TEXCOORD4" - OpName %out_var_PRIMITIVE_ID "out.var.PRIMITIVE_ID" - OpName %out_var_LIGHTMAP_ID "out.var.LIGHTMAP_ID" - OpName %out_var_VS_To_DS_Position "out.var.VS_To_DS_Position" - OpName %out_var_PN_POSITION "out.var.PN_POSITION" - OpName %out_var_PN_DisplacementScales "out.var.PN_DisplacementScales" - OpName %out_var_PN_TessellationMultiplier "out.var.PN_TessellationMultiplier" - OpName %out_var_PN_WorldDisplacementMultiplier "out.var.PN_WorldDisplacementMultiplier" - OpName %out_var_PN_POSITION9 "out.var.PN_POSITION9" - OpName %MainHull "MainHull" - OpName %param_var_I "param.var.I" - OpName %temp_var_hullMainRetVal "temp.var.hullMainRetVal" - OpName %if_merge "if.merge" - OpDecorateString %in_var_TEXCOORD10_centroid UserSemantic "TEXCOORD10_centroid" - OpDecorateString %in_var_TEXCOORD11_centroid UserSemantic "TEXCOORD11_centroid" - OpDecorateString %in_var_COLOR0 UserSemantic "COLOR0" - OpDecorateString %in_var_TEXCOORD0 UserSemantic "TEXCOORD0" - OpDecorateString %in_var_TEXCOORD4 UserSemantic "TEXCOORD4" - OpDecorateString %in_var_PRIMITIVE_ID UserSemantic "PRIMITIVE_ID" - OpDecorateString %in_var_LIGHTMAP_ID UserSemantic "LIGHTMAP_ID" - OpDecorateString %in_var_VS_To_DS_Position UserSemantic "VS_To_DS_Position" - OpDecorate %gl_InvocationID BuiltIn InvocationId - OpDecorateString %gl_InvocationID UserSemantic "SV_OutputControlPointID" - OpDecorateString %out_var_TEXCOORD10_centroid UserSemantic "TEXCOORD10_centroid" - OpDecorateString %out_var_TEXCOORD11_centroid UserSemantic "TEXCOORD11_centroid" - OpDecorateString %out_var_COLOR0 UserSemantic "COLOR0" - OpDecorateString %out_var_TEXCOORD0 UserSemantic "TEXCOORD0" - OpDecorateString %out_var_TEXCOORD4 UserSemantic "TEXCOORD4" - OpDecorateString %out_var_PRIMITIVE_ID UserSemantic "PRIMITIVE_ID" - OpDecorateString %out_var_LIGHTMAP_ID UserSemantic "LIGHTMAP_ID" - OpDecorateString %out_var_VS_To_DS_Position UserSemantic "VS_To_DS_Position" - OpDecorateString %out_var_PN_POSITION UserSemantic "PN_POSITION" - OpDecorateString %out_var_PN_DisplacementScales UserSemantic "PN_DisplacementScales" - OpDecorateString %out_var_PN_TessellationMultiplier UserSemantic "PN_TessellationMultiplier" - OpDecorateString %out_var_PN_WorldDisplacementMultiplier UserSemantic "PN_WorldDisplacementMultiplier" - OpDecorate %gl_TessLevelOuter BuiltIn TessLevelOuter - OpDecorateString %gl_TessLevelOuter UserSemantic "SV_TessFactor" - OpDecorate %gl_TessLevelOuter Patch - OpDecorate %gl_TessLevelInner BuiltIn TessLevelInner - OpDecorateString %gl_TessLevelInner UserSemantic "SV_InsideTessFactor" - OpDecorate %gl_TessLevelInner Patch - OpDecorateString %out_var_PN_POSITION9 UserSemantic "PN_POSITION9" - OpDecorate %out_var_PN_POSITION9 Patch - OpDecorate %in_var_TEXCOORD10_centroid Location 0 - OpDecorate %in_var_TEXCOORD11_centroid Location 1 - OpDecorate %in_var_COLOR0 Location 2 - OpDecorate %in_var_TEXCOORD0 Location 3 - OpDecorate %in_var_TEXCOORD4 Location 4 - OpDecorate %in_var_PRIMITIVE_ID Location 5 - OpDecorate %in_var_LIGHTMAP_ID Location 6 - OpDecorate %in_var_VS_To_DS_Position Location 7 - OpDecorate %out_var_COLOR0 Location 0 - OpDecorate %out_var_LIGHTMAP_ID Location 1 - OpDecorate %out_var_PN_DisplacementScales Location 2 - OpDecorate %out_var_PN_POSITION Location 3 - OpDecorate %out_var_PN_POSITION9 Location 6 - OpDecorate %out_var_PN_TessellationMultiplier Location 7 - OpDecorate %out_var_PN_WorldDisplacementMultiplier Location 8 - OpDecorate %out_var_PRIMITIVE_ID Location 9 - OpDecorate %out_var_TEXCOORD0 Location 10 - OpDecorate %out_var_TEXCOORD10_centroid Location 11 - OpDecorate %out_var_TEXCOORD11_centroid Location 12 - OpDecorate %out_var_TEXCOORD4 Location 13 - OpDecorate %out_var_VS_To_DS_Position Location 14 - OpDecorate %View DescriptorSet 0 - OpDecorate %View Binding 1 - OpDecorate %View_PrimitiveSceneData DescriptorSet 0 - OpDecorate %View_PrimitiveSceneData Binding 0 - OpDecorate %_arr_v4float_uint_4 ArrayStride 16 - OpDecorate %_arr_v4float_uint_2 ArrayStride 16 - OpDecorate %_arr_v4float_uint_7 ArrayStride 16 - OpMemberDecorate %type_View 0 Offset 0 - OpMemberDecorate %type_View 0 MatrixStride 16 - OpMemberDecorate %type_View 0 ColMajor - OpMemberDecorate %type_View 1 Offset 64 - OpMemberDecorate %type_View 1 MatrixStride 16 - OpMemberDecorate %type_View 1 ColMajor - OpMemberDecorate %type_View 2 Offset 128 - OpMemberDecorate %type_View 2 MatrixStride 16 - OpMemberDecorate %type_View 2 ColMajor - OpMemberDecorate %type_View 3 Offset 192 - OpMemberDecorate %type_View 3 MatrixStride 16 - OpMemberDecorate %type_View 3 ColMajor - OpMemberDecorate %type_View 4 Offset 256 - OpMemberDecorate %type_View 4 MatrixStride 16 - OpMemberDecorate %type_View 4 ColMajor - OpMemberDecorate %type_View 5 Offset 320 - OpMemberDecorate %type_View 5 MatrixStride 16 - OpMemberDecorate %type_View 5 ColMajor - OpMemberDecorate %type_View 6 Offset 384 - OpMemberDecorate %type_View 6 MatrixStride 16 - OpMemberDecorate %type_View 6 ColMajor - OpMemberDecorate %type_View 7 Offset 448 - OpMemberDecorate %type_View 7 MatrixStride 16 - OpMemberDecorate %type_View 7 ColMajor - OpMemberDecorate %type_View 8 Offset 512 - OpMemberDecorate %type_View 8 MatrixStride 16 - OpMemberDecorate %type_View 8 ColMajor - OpMemberDecorate %type_View 9 Offset 576 - OpMemberDecorate %type_View 9 MatrixStride 16 - OpMemberDecorate %type_View 9 ColMajor - OpMemberDecorate %type_View 10 Offset 640 - OpMemberDecorate %type_View 10 MatrixStride 16 - OpMemberDecorate %type_View 10 ColMajor - OpMemberDecorate %type_View 11 Offset 704 - OpMemberDecorate %type_View 11 MatrixStride 16 - OpMemberDecorate %type_View 11 ColMajor - OpMemberDecorate %type_View 12 Offset 768 - OpMemberDecorate %type_View 12 MatrixStride 16 - OpMemberDecorate %type_View 12 ColMajor - OpMemberDecorate %type_View 13 Offset 832 - OpMemberDecorate %type_View 14 Offset 844 - OpMemberDecorate %type_View 15 Offset 848 - OpMemberDecorate %type_View 16 Offset 860 - OpMemberDecorate %type_View 17 Offset 864 - OpMemberDecorate %type_View 18 Offset 876 - OpMemberDecorate %type_View 19 Offset 880 - OpMemberDecorate %type_View 20 Offset 892 - OpMemberDecorate %type_View 21 Offset 896 - OpMemberDecorate %type_View 22 Offset 908 - OpMemberDecorate %type_View 23 Offset 912 - OpMemberDecorate %type_View 24 Offset 928 - OpMemberDecorate %type_View 25 Offset 944 - OpMemberDecorate %type_View 26 Offset 956 - OpMemberDecorate %type_View 27 Offset 960 - OpMemberDecorate %type_View 28 Offset 972 - OpMemberDecorate %type_View 29 Offset 976 - OpMemberDecorate %type_View 30 Offset 988 - OpMemberDecorate %type_View 31 Offset 992 - OpMemberDecorate %type_View 32 Offset 1004 - OpMemberDecorate %type_View 33 Offset 1008 - OpMemberDecorate %type_View 33 MatrixStride 16 - OpMemberDecorate %type_View 33 ColMajor - OpMemberDecorate %type_View 34 Offset 1072 - OpMemberDecorate %type_View 34 MatrixStride 16 - OpMemberDecorate %type_View 34 ColMajor - OpMemberDecorate %type_View 35 Offset 1136 - OpMemberDecorate %type_View 35 MatrixStride 16 - OpMemberDecorate %type_View 35 ColMajor - OpMemberDecorate %type_View 36 Offset 1200 - OpMemberDecorate %type_View 36 MatrixStride 16 - OpMemberDecorate %type_View 36 ColMajor - OpMemberDecorate %type_View 37 Offset 1264 - OpMemberDecorate %type_View 37 MatrixStride 16 - OpMemberDecorate %type_View 37 ColMajor - OpMemberDecorate %type_View 38 Offset 1328 - OpMemberDecorate %type_View 38 MatrixStride 16 - OpMemberDecorate %type_View 38 ColMajor - OpMemberDecorate %type_View 39 Offset 1392 - OpMemberDecorate %type_View 39 MatrixStride 16 - OpMemberDecorate %type_View 39 ColMajor - OpMemberDecorate %type_View 40 Offset 1456 - OpMemberDecorate %type_View 40 MatrixStride 16 - OpMemberDecorate %type_View 40 ColMajor - OpMemberDecorate %type_View 41 Offset 1520 - OpMemberDecorate %type_View 41 MatrixStride 16 - OpMemberDecorate %type_View 41 ColMajor - OpMemberDecorate %type_View 42 Offset 1584 - OpMemberDecorate %type_View 42 MatrixStride 16 - OpMemberDecorate %type_View 42 ColMajor - OpMemberDecorate %type_View 43 Offset 1648 - OpMemberDecorate %type_View 44 Offset 1660 - OpMemberDecorate %type_View 45 Offset 1664 - OpMemberDecorate %type_View 46 Offset 1676 - OpMemberDecorate %type_View 47 Offset 1680 - OpMemberDecorate %type_View 48 Offset 1692 - OpMemberDecorate %type_View 49 Offset 1696 - OpMemberDecorate %type_View 49 MatrixStride 16 - OpMemberDecorate %type_View 49 ColMajor - OpMemberDecorate %type_View 50 Offset 1760 - OpMemberDecorate %type_View 50 MatrixStride 16 - OpMemberDecorate %type_View 50 ColMajor - OpMemberDecorate %type_View 51 Offset 1824 - OpMemberDecorate %type_View 51 MatrixStride 16 - OpMemberDecorate %type_View 51 ColMajor - OpMemberDecorate %type_View 52 Offset 1888 - OpMemberDecorate %type_View 53 Offset 1904 - OpMemberDecorate %type_View 54 Offset 1920 - OpMemberDecorate %type_View 55 Offset 1928 - OpMemberDecorate %type_View 56 Offset 1936 - OpMemberDecorate %type_View 57 Offset 1952 - OpMemberDecorate %type_View 58 Offset 1968 - OpMemberDecorate %type_View 59 Offset 1984 - OpMemberDecorate %type_View 60 Offset 2000 - OpMemberDecorate %type_View 61 Offset 2004 - OpMemberDecorate %type_View 62 Offset 2008 - OpMemberDecorate %type_View 63 Offset 2012 - OpMemberDecorate %type_View 64 Offset 2016 - OpMemberDecorate %type_View 65 Offset 2032 - OpMemberDecorate %type_View 66 Offset 2048 - OpMemberDecorate %type_View 67 Offset 2064 - OpMemberDecorate %type_View 68 Offset 2072 - OpMemberDecorate %type_View 69 Offset 2076 - OpMemberDecorate %type_View 70 Offset 2080 - OpMemberDecorate %type_View 71 Offset 2084 - OpMemberDecorate %type_View 72 Offset 2088 - OpMemberDecorate %type_View 73 Offset 2092 - OpMemberDecorate %type_View 74 Offset 2096 - OpMemberDecorate %type_View 75 Offset 2108 - OpMemberDecorate %type_View 76 Offset 2112 - OpMemberDecorate %type_View 77 Offset 2116 - OpMemberDecorate %type_View 78 Offset 2120 - OpMemberDecorate %type_View 79 Offset 2124 - OpMemberDecorate %type_View 80 Offset 2128 - OpMemberDecorate %type_View 81 Offset 2132 - OpMemberDecorate %type_View 82 Offset 2136 - OpMemberDecorate %type_View 83 Offset 2140 - OpMemberDecorate %type_View 84 Offset 2144 - OpMemberDecorate %type_View 85 Offset 2148 - OpMemberDecorate %type_View 86 Offset 2152 - OpMemberDecorate %type_View 87 Offset 2156 - OpMemberDecorate %type_View 88 Offset 2160 - OpMemberDecorate %type_View 89 Offset 2164 - OpMemberDecorate %type_View 90 Offset 2168 - OpMemberDecorate %type_View 91 Offset 2172 - OpMemberDecorate %type_View 92 Offset 2176 - OpMemberDecorate %type_View 93 Offset 2192 - OpMemberDecorate %type_View 94 Offset 2204 - OpMemberDecorate %type_View 95 Offset 2208 - OpMemberDecorate %type_View 96 Offset 2240 - OpMemberDecorate %type_View 97 Offset 2272 - OpMemberDecorate %type_View 98 Offset 2288 - OpMemberDecorate %type_View 99 Offset 2304 - OpMemberDecorate %type_View 100 Offset 2308 - OpMemberDecorate %type_View 101 Offset 2312 - OpMemberDecorate %type_View 102 Offset 2316 - OpMemberDecorate %type_View 103 Offset 2320 - OpMemberDecorate %type_View 104 Offset 2324 - OpMemberDecorate %type_View 105 Offset 2328 - OpMemberDecorate %type_View 106 Offset 2332 - OpMemberDecorate %type_View 107 Offset 2336 - OpMemberDecorate %type_View 108 Offset 2340 - OpMemberDecorate %type_View 109 Offset 2344 - OpMemberDecorate %type_View 110 Offset 2348 - OpMemberDecorate %type_View 111 Offset 2352 - OpMemberDecorate %type_View 112 Offset 2364 - OpMemberDecorate %type_View 113 Offset 2368 - OpMemberDecorate %type_View 114 Offset 2380 - OpMemberDecorate %type_View 115 Offset 2384 - OpMemberDecorate %type_View 116 Offset 2388 - OpMemberDecorate %type_View 117 Offset 2392 - OpMemberDecorate %type_View 118 Offset 2396 - OpMemberDecorate %type_View 119 Offset 2400 - OpMemberDecorate %type_View 120 Offset 2404 - OpMemberDecorate %type_View 121 Offset 2408 - OpMemberDecorate %type_View 122 Offset 2412 - OpMemberDecorate %type_View 123 Offset 2416 - OpMemberDecorate %type_View 124 Offset 2420 - OpMemberDecorate %type_View 125 Offset 2424 - OpMemberDecorate %type_View 126 Offset 2428 - OpMemberDecorate %type_View 127 Offset 2432 - OpMemberDecorate %type_View 128 Offset 2448 - OpMemberDecorate %type_View 129 Offset 2460 - OpMemberDecorate %type_View 130 Offset 2464 - OpMemberDecorate %type_View 131 Offset 2480 - OpMemberDecorate %type_View 132 Offset 2484 - OpMemberDecorate %type_View 133 Offset 2488 - OpMemberDecorate %type_View 134 Offset 2492 - OpMemberDecorate %type_View 135 Offset 2496 - OpMemberDecorate %type_View 136 Offset 2512 - OpMemberDecorate %type_View 137 Offset 2624 - OpMemberDecorate %type_View 138 Offset 2628 - OpMemberDecorate %type_View 139 Offset 2632 - OpMemberDecorate %type_View 140 Offset 2636 - OpMemberDecorate %type_View 141 Offset 2640 - OpMemberDecorate %type_View 142 Offset 2644 - OpMemberDecorate %type_View 143 Offset 2648 - OpMemberDecorate %type_View 144 Offset 2652 - OpMemberDecorate %type_View 145 Offset 2656 - OpMemberDecorate %type_View 146 Offset 2668 - OpMemberDecorate %type_View 147 Offset 2672 - OpMemberDecorate %type_View 148 Offset 2736 - OpMemberDecorate %type_View 149 Offset 2800 - OpMemberDecorate %type_View 150 Offset 2804 - OpMemberDecorate %type_View 151 Offset 2808 - OpMemberDecorate %type_View 152 Offset 2812 - OpMemberDecorate %type_View 153 Offset 2816 - OpMemberDecorate %type_View 154 Offset 2828 - OpMemberDecorate %type_View 155 Offset 2832 - OpMemberDecorate %type_View 156 Offset 2844 - OpMemberDecorate %type_View 157 Offset 2848 - OpMemberDecorate %type_View 158 Offset 2856 - OpMemberDecorate %type_View 159 Offset 2860 - OpMemberDecorate %type_View 160 Offset 2864 - OpMemberDecorate %type_View 161 Offset 2876 - OpMemberDecorate %type_View 162 Offset 2880 - OpMemberDecorate %type_View 163 Offset 2892 - OpMemberDecorate %type_View 164 Offset 2896 - OpMemberDecorate %type_View 165 Offset 2908 - OpMemberDecorate %type_View 166 Offset 2912 - OpMemberDecorate %type_View 167 Offset 2924 - OpMemberDecorate %type_View 168 Offset 2928 - OpMemberDecorate %type_View 169 Offset 2932 - OpDecorate %type_View Block - OpDecorate %_runtimearr_v4float ArrayStride 16 - OpMemberDecorate %type_StructuredBuffer_v4float 0 Offset 0 - OpMemberDecorate %type_StructuredBuffer_v4float 0 NonWritable - OpDecorate %type_StructuredBuffer_v4float BufferBlock - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%mat4v4float = OpTypeMatrix %v4float 4 - %v3float = OpTypeVector %float 3 - %v2float = OpTypeVector %float 2 - %int = OpTypeInt 32 1 - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 - %uint_7 = OpConstant %uint 7 - %uint_4 = OpConstant %uint 4 - %uint_0 = OpConstant %uint 0 - %uint_1 = OpConstant %uint 1 - %uint_3 = OpConstant %uint 3 -%_arr_float_uint_3 = OpTypeArray %float %uint_3 - %int_1 = OpConstant %int 1 - %int_0 = OpConstant %int 0 - %int_2 = OpConstant %int 2 - %float_2 = OpConstant %float 2 - %62 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 - %float_0_5 = OpConstant %float 0.5 - %int_3 = OpConstant %int 3 -%float_0_333000004 = OpConstant %float 0.333000004 - %float_1 = OpConstant %float 1 - %67 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 - %float_15 = OpConstant %float 15 - %69 = OpConstantComposite %v4float %float_15 %float_15 %float_15 %float_15 -%_arr_v4float_uint_1 = OpTypeArray %v4float %uint_1 -%FVertexFactoryInterpolantsVSToPS = OpTypeStruct %v4float %v4float %v4float %_arr_v4float_uint_1 %v4float %uint %uint -%FVertexFactoryInterpolantsVSToDS = OpTypeStruct %FVertexFactoryInterpolantsVSToPS -%FSharedBasePassInterpolants = OpTypeStruct -%FBasePassInterpolantsVSToDS = OpTypeStruct %FSharedBasePassInterpolants -%FBasePassVSToDS = OpTypeStruct %FVertexFactoryInterpolantsVSToDS %FBasePassInterpolantsVSToDS %v4float -%_arr_v4float_uint_3 = OpTypeArray %v4float %uint_3 -%FPNTessellationHSToDS = OpTypeStruct %FBasePassVSToDS %_arr_v4float_uint_3 %v3float %float %float - %v3int = OpTypeVector %int 3 - %73 = OpConstantComposite %v3int %int_0 %int_0 %int_0 - %74 = OpConstantComposite %v3int %int_3 %int_3 %int_3 - %float_0 = OpConstant %float 0 - %76 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 - %77 = OpConstantComposite %v3float %float_0_5 %float_0_5 %float_0_5 - %int_77 = OpConstant %int 77 - %int_6 = OpConstant %int 6 - %int_27 = OpConstant %int 27 - %81 = OpConstantComposite %v3int %int_1 %int_1 %int_1 - %82 = OpConstantComposite %v3int %int_2 %int_2 %int_2 - %uint_26 = OpConstant %uint 26 - %uint_12 = OpConstant %uint 12 - %uint_22 = OpConstant %uint 22 -%_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4 -%_arr_v4float_uint_2 = OpTypeArray %v4float %uint_2 -%_arr_v4float_uint_7 = OpTypeArray %v4float %uint_7 - %type_View = OpTypeStruct %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %v3float %float %v3float %float %v3float %float %v3float %float %v3float %float %v4float %v4float %v3float %float %v3float %float %v3float %float %v3float %float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %v3float %float %v3float %float %v3float %float %mat4v4float %mat4v4float %mat4v4float %v4float %v4float %v2float %v2float %v4float %v4float %v4float %v4float %int %float %float %float %v4float %v4float %v4float %v2float %float %float %float %float %float %float %v3float %float %float %float %float %float %float %float %float %uint %uint %uint %uint %float %float %float %float %float %v4float %v3float %float %_arr_v4float_uint_2 %_arr_v4float_uint_2 %v4float %v4float %float %float %float %float %float %float %float %float %float %float %float %float %v3float %float %v3float %float %float %float %float %float %float %float %float %float %float %float %uint %uint %v4float %v3float %float %v4float %float %float %float %float %v4float %_arr_v4float_uint_7 %float %float %float %float %uint %float %float %float %v3float %int %_arr_v4float_uint_4 %_arr_v4float_uint_4 %float %float %float %float %v3float %float %v3float %float %v2float %float %float %v3float %float %v3float %float %v3float %float %v3float %float %float %float -%_ptr_Uniform_type_View = OpTypePointer Uniform %type_View -%_runtimearr_v4float = OpTypeRuntimeArray %v4float -%type_StructuredBuffer_v4float = OpTypeStruct %_runtimearr_v4float -%_ptr_Uniform_type_StructuredBuffer_v4float = OpTypePointer Uniform %type_StructuredBuffer_v4float -%_arr_v4float_uint_12 = OpTypeArray %v4float %uint_12 -%_ptr_Input__arr_v4float_uint_12 = OpTypePointer Input %_arr_v4float_uint_12 -%_arr__arr_v4float_uint_1_uint_12 = OpTypeArray %_arr_v4float_uint_1 %uint_12 -%_ptr_Input__arr__arr_v4float_uint_1_uint_12 = OpTypePointer Input %_arr__arr_v4float_uint_1_uint_12 -%_arr_uint_uint_12 = OpTypeArray %uint %uint_12 -%_ptr_Input__arr_uint_uint_12 = OpTypePointer Input %_arr_uint_uint_12 -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_Output__arr_v4float_uint_3 = OpTypePointer Output %_arr_v4float_uint_3 -%_arr__arr_v4float_uint_1_uint_3 = OpTypeArray %_arr_v4float_uint_1 %uint_3 -%_ptr_Output__arr__arr_v4float_uint_1_uint_3 = OpTypePointer Output %_arr__arr_v4float_uint_1_uint_3 -%_arr_uint_uint_3 = OpTypeArray %uint %uint_3 -%_ptr_Output__arr_uint_uint_3 = OpTypePointer Output %_arr_uint_uint_3 -%_arr__arr_v4float_uint_3_uint_3 = OpTypeArray %_arr_v4float_uint_3 %uint_3 -%_ptr_Output__arr__arr_v4float_uint_3_uint_3 = OpTypePointer Output %_arr__arr_v4float_uint_3_uint_3 -%_arr_v3float_uint_3 = OpTypeArray %v3float %uint_3 -%_ptr_Output__arr_v3float_uint_3 = OpTypePointer Output %_arr_v3float_uint_3 -%_ptr_Output__arr_float_uint_3 = OpTypePointer Output %_arr_float_uint_3 -%_arr_float_uint_4 = OpTypeArray %float %uint_4 -%_ptr_Output__arr_float_uint_4 = OpTypePointer Output %_arr_float_uint_4 -%_arr_float_uint_2 = OpTypeArray %float %uint_2 -%_ptr_Output__arr_float_uint_2 = OpTypePointer Output %_arr_float_uint_2 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %void = OpTypeVoid - %111 = OpTypeFunction %void -%_arr_FBasePassVSToDS_uint_12 = OpTypeArray %FBasePassVSToDS %uint_12 -%_ptr_Function__arr_FBasePassVSToDS_uint_12 = OpTypePointer Function %_arr_FBasePassVSToDS_uint_12 -%_arr_FPNTessellationHSToDS_uint_3 = OpTypeArray %FPNTessellationHSToDS %uint_3 -%_ptr_Workgroup__arr_FPNTessellationHSToDS_uint_3 = OpTypePointer Workgroup %_arr_FPNTessellationHSToDS_uint_3 -%_ptr_Output__arr_v4float_uint_1 = OpTypePointer Output %_arr_v4float_uint_1 -%_ptr_Output_uint = OpTypePointer Output %uint -%_ptr_Output_v3float = OpTypePointer Output %v3float -%_ptr_Output_float = OpTypePointer Output %float -%_ptr_Workgroup_FPNTessellationHSToDS = OpTypePointer Workgroup %FPNTessellationHSToDS - %bool = OpTypeBool -%_ptr_Function_v4float = OpTypePointer Function %v4float -%_ptr_Workgroup_v4float = OpTypePointer Workgroup %v4float -%_ptr_Function_float = OpTypePointer Function %float -%_ptr_Workgroup_float = OpTypePointer Workgroup %float -%mat3v3float = OpTypeMatrix %v3float 3 -%_ptr_Function_FVertexFactoryInterpolantsVSToDS = OpTypePointer Function %FVertexFactoryInterpolantsVSToDS -%_ptr_Function_FVertexFactoryInterpolantsVSToPS = OpTypePointer Function %FVertexFactoryInterpolantsVSToPS -%_ptr_Function_FBasePassVSToDS = OpTypePointer Function %FBasePassVSToDS - %v3bool = OpTypeVector %bool 3 -%_ptr_Uniform_float = OpTypePointer Uniform %float -%_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float -%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float - %View = OpVariable %_ptr_Uniform_type_View Uniform -%View_PrimitiveSceneData = OpVariable %_ptr_Uniform_type_StructuredBuffer_v4float Uniform -%in_var_TEXCOORD10_centroid = OpVariable %_ptr_Input__arr_v4float_uint_12 Input -%in_var_TEXCOORD11_centroid = OpVariable %_ptr_Input__arr_v4float_uint_12 Input -%in_var_COLOR0 = OpVariable %_ptr_Input__arr_v4float_uint_12 Input -%in_var_TEXCOORD0 = OpVariable %_ptr_Input__arr__arr_v4float_uint_1_uint_12 Input -%in_var_TEXCOORD4 = OpVariable %_ptr_Input__arr_v4float_uint_12 Input -%in_var_PRIMITIVE_ID = OpVariable %_ptr_Input__arr_uint_uint_12 Input -%in_var_LIGHTMAP_ID = OpVariable %_ptr_Input__arr_uint_uint_12 Input -%in_var_VS_To_DS_Position = OpVariable %_ptr_Input__arr_v4float_uint_12 Input -%gl_InvocationID = OpVariable %_ptr_Input_uint Input -%out_var_TEXCOORD10_centroid = OpVariable %_ptr_Output__arr_v4float_uint_3 Output -%out_var_TEXCOORD11_centroid = OpVariable %_ptr_Output__arr_v4float_uint_3 Output -%out_var_COLOR0 = OpVariable %_ptr_Output__arr_v4float_uint_3 Output -%out_var_TEXCOORD0 = OpVariable %_ptr_Output__arr__arr_v4float_uint_1_uint_3 Output -%out_var_TEXCOORD4 = OpVariable %_ptr_Output__arr_v4float_uint_3 Output -%out_var_PRIMITIVE_ID = OpVariable %_ptr_Output__arr_uint_uint_3 Output -%out_var_LIGHTMAP_ID = OpVariable %_ptr_Output__arr_uint_uint_3 Output -%out_var_VS_To_DS_Position = OpVariable %_ptr_Output__arr_v4float_uint_3 Output -%out_var_PN_POSITION = OpVariable %_ptr_Output__arr__arr_v4float_uint_3_uint_3 Output -%out_var_PN_DisplacementScales = OpVariable %_ptr_Output__arr_v3float_uint_3 Output -%out_var_PN_TessellationMultiplier = OpVariable %_ptr_Output__arr_float_uint_3 Output -%out_var_PN_WorldDisplacementMultiplier = OpVariable %_ptr_Output__arr_float_uint_3 Output -%gl_TessLevelOuter = OpVariable %_ptr_Output__arr_float_uint_4 Output -%gl_TessLevelInner = OpVariable %_ptr_Output__arr_float_uint_2 Output -%out_var_PN_POSITION9 = OpVariable %_ptr_Output_v4float Output - %133 = OpConstantNull %FSharedBasePassInterpolants - %134 = OpConstantComposite %FBasePassInterpolantsVSToDS %133 -%float_0_333333343 = OpConstant %float 0.333333343 - %136 = OpConstantComposite %v4float %float_0_333333343 %float_0_333333343 %float_0_333333343 %float_0_333333343 - %137 = OpConstantComposite %v4float %float_0_5 %float_0_5 %float_0_5 %float_0_5 -%float_0_166666672 = OpConstant %float 0.166666672 - %139 = OpConstantComposite %v4float %float_0_166666672 %float_0_166666672 %float_0_166666672 %float_0_166666672 - %140 = OpUndef %v4float - -; XXX: Original asm used Function here, which is wrong. -; This patches the SPIR-V to be correct. -%temp_var_hullMainRetVal = OpVariable %_ptr_Workgroup__arr_FPNTessellationHSToDS_uint_3 Workgroup - - %MainHull = OpFunction %void None %111 - %141 = OpLabel -%param_var_I = OpVariable %_ptr_Function__arr_FBasePassVSToDS_uint_12 Function - %142 = OpLoad %_arr_v4float_uint_12 %in_var_TEXCOORD10_centroid - %143 = OpLoad %_arr_v4float_uint_12 %in_var_TEXCOORD11_centroid - %144 = OpLoad %_arr_v4float_uint_12 %in_var_COLOR0 - %145 = OpLoad %_arr__arr_v4float_uint_1_uint_12 %in_var_TEXCOORD0 - %146 = OpLoad %_arr_v4float_uint_12 %in_var_TEXCOORD4 - %147 = OpLoad %_arr_uint_uint_12 %in_var_PRIMITIVE_ID - %148 = OpLoad %_arr_uint_uint_12 %in_var_LIGHTMAP_ID - %149 = OpCompositeExtract %v4float %142 0 - %150 = OpCompositeExtract %v4float %143 0 - %151 = OpCompositeExtract %v4float %144 0 - %152 = OpCompositeExtract %_arr_v4float_uint_1 %145 0 - %153 = OpCompositeExtract %v4float %146 0 - %154 = OpCompositeExtract %uint %147 0 - %155 = OpCompositeExtract %uint %148 0 - %156 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %149 %150 %151 %152 %153 %154 %155 - %157 = OpCompositeExtract %v4float %142 1 - %158 = OpCompositeExtract %v4float %143 1 - %159 = OpCompositeExtract %v4float %144 1 - %160 = OpCompositeExtract %_arr_v4float_uint_1 %145 1 - %161 = OpCompositeExtract %v4float %146 1 - %162 = OpCompositeExtract %uint %147 1 - %163 = OpCompositeExtract %uint %148 1 - %164 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %157 %158 %159 %160 %161 %162 %163 - %165 = OpCompositeExtract %v4float %142 2 - %166 = OpCompositeExtract %v4float %143 2 - %167 = OpCompositeExtract %v4float %144 2 - %168 = OpCompositeExtract %_arr_v4float_uint_1 %145 2 - %169 = OpCompositeExtract %v4float %146 2 - %170 = OpCompositeExtract %uint %147 2 - %171 = OpCompositeExtract %uint %148 2 - %172 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %165 %166 %167 %168 %169 %170 %171 - %173 = OpCompositeExtract %v4float %142 3 - %174 = OpCompositeExtract %v4float %143 3 - %175 = OpCompositeExtract %v4float %144 3 - %176 = OpCompositeExtract %_arr_v4float_uint_1 %145 3 - %177 = OpCompositeExtract %v4float %146 3 - %178 = OpCompositeExtract %uint %147 3 - %179 = OpCompositeExtract %uint %148 3 - %180 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %173 %174 %175 %176 %177 %178 %179 - %181 = OpCompositeExtract %v4float %142 4 - %182 = OpCompositeExtract %v4float %143 4 - %183 = OpCompositeExtract %v4float %144 4 - %184 = OpCompositeExtract %_arr_v4float_uint_1 %145 4 - %185 = OpCompositeExtract %v4float %146 4 - %186 = OpCompositeExtract %uint %147 4 - %187 = OpCompositeExtract %uint %148 4 - %188 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %181 %182 %183 %184 %185 %186 %187 - %189 = OpCompositeExtract %v4float %142 5 - %190 = OpCompositeExtract %v4float %143 5 - %191 = OpCompositeExtract %v4float %144 5 - %192 = OpCompositeExtract %_arr_v4float_uint_1 %145 5 - %193 = OpCompositeExtract %v4float %146 5 - %194 = OpCompositeExtract %uint %147 5 - %195 = OpCompositeExtract %uint %148 5 - %196 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %189 %190 %191 %192 %193 %194 %195 - %197 = OpCompositeExtract %v4float %142 6 - %198 = OpCompositeExtract %v4float %143 6 - %199 = OpCompositeExtract %v4float %144 6 - %200 = OpCompositeExtract %_arr_v4float_uint_1 %145 6 - %201 = OpCompositeExtract %v4float %146 6 - %202 = OpCompositeExtract %uint %147 6 - %203 = OpCompositeExtract %uint %148 6 - %204 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %197 %198 %199 %200 %201 %202 %203 - %205 = OpCompositeExtract %v4float %142 7 - %206 = OpCompositeExtract %v4float %143 7 - %207 = OpCompositeExtract %v4float %144 7 - %208 = OpCompositeExtract %_arr_v4float_uint_1 %145 7 - %209 = OpCompositeExtract %v4float %146 7 - %210 = OpCompositeExtract %uint %147 7 - %211 = OpCompositeExtract %uint %148 7 - %212 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %205 %206 %207 %208 %209 %210 %211 - %213 = OpCompositeExtract %v4float %142 8 - %214 = OpCompositeExtract %v4float %143 8 - %215 = OpCompositeExtract %v4float %144 8 - %216 = OpCompositeExtract %_arr_v4float_uint_1 %145 8 - %217 = OpCompositeExtract %v4float %146 8 - %218 = OpCompositeExtract %uint %147 8 - %219 = OpCompositeExtract %uint %148 8 - %220 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %213 %214 %215 %216 %217 %218 %219 - %221 = OpCompositeExtract %v4float %142 9 - %222 = OpCompositeExtract %v4float %143 9 - %223 = OpCompositeExtract %v4float %144 9 - %224 = OpCompositeExtract %_arr_v4float_uint_1 %145 9 - %225 = OpCompositeExtract %v4float %146 9 - %226 = OpCompositeExtract %uint %147 9 - %227 = OpCompositeExtract %uint %148 9 - %228 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %221 %222 %223 %224 %225 %226 %227 - %229 = OpCompositeExtract %v4float %142 10 - %230 = OpCompositeExtract %v4float %143 10 - %231 = OpCompositeExtract %v4float %144 10 - %232 = OpCompositeExtract %_arr_v4float_uint_1 %145 10 - %233 = OpCompositeExtract %v4float %146 10 - %234 = OpCompositeExtract %uint %147 10 - %235 = OpCompositeExtract %uint %148 10 - %236 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %229 %230 %231 %232 %233 %234 %235 - %237 = OpCompositeExtract %v4float %142 11 - %238 = OpCompositeExtract %v4float %143 11 - %239 = OpCompositeExtract %v4float %144 11 - %240 = OpCompositeExtract %_arr_v4float_uint_1 %145 11 - %241 = OpCompositeExtract %v4float %146 11 - %242 = OpCompositeExtract %uint %147 11 - %243 = OpCompositeExtract %uint %148 11 - %244 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %237 %238 %239 %240 %241 %242 %243 - %245 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %156 - %246 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %164 - %247 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %172 - %248 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %180 - %249 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %188 - %250 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %196 - %251 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %204 - %252 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %212 - %253 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %220 - %254 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %228 - %255 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %236 - %256 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %244 - %257 = OpLoad %_arr_v4float_uint_12 %in_var_VS_To_DS_Position - %258 = OpCompositeExtract %v4float %257 0 - %259 = OpCompositeConstruct %FBasePassVSToDS %245 %134 %258 - %260 = OpCompositeExtract %v4float %257 1 - %261 = OpCompositeConstruct %FBasePassVSToDS %246 %134 %260 - %262 = OpCompositeExtract %v4float %257 2 - %263 = OpCompositeConstruct %FBasePassVSToDS %247 %134 %262 - %264 = OpCompositeExtract %v4float %257 3 - %265 = OpCompositeConstruct %FBasePassVSToDS %248 %134 %264 - %266 = OpCompositeExtract %v4float %257 4 - %267 = OpCompositeConstruct %FBasePassVSToDS %249 %134 %266 - %268 = OpCompositeExtract %v4float %257 5 - %269 = OpCompositeConstruct %FBasePassVSToDS %250 %134 %268 - %270 = OpCompositeExtract %v4float %257 6 - %271 = OpCompositeConstruct %FBasePassVSToDS %251 %134 %270 - %272 = OpCompositeExtract %v4float %257 7 - %273 = OpCompositeConstruct %FBasePassVSToDS %252 %134 %272 - %274 = OpCompositeExtract %v4float %257 8 - %275 = OpCompositeConstruct %FBasePassVSToDS %253 %134 %274 - %276 = OpCompositeExtract %v4float %257 9 - %277 = OpCompositeConstruct %FBasePassVSToDS %254 %134 %276 - %278 = OpCompositeExtract %v4float %257 10 - %279 = OpCompositeConstruct %FBasePassVSToDS %255 %134 %278 - %280 = OpCompositeExtract %v4float %257 11 - %281 = OpCompositeConstruct %FBasePassVSToDS %256 %134 %280 - %282 = OpCompositeConstruct %_arr_FBasePassVSToDS_uint_12 %259 %261 %263 %265 %267 %269 %271 %273 %275 %277 %279 %281 - OpStore %param_var_I %282 - %283 = OpLoad %uint %gl_InvocationID - %284 = OpAccessChain %_ptr_Function_FVertexFactoryInterpolantsVSToDS %param_var_I %283 %int_0 - %285 = OpLoad %FVertexFactoryInterpolantsVSToDS %284 - %286 = OpCompositeExtract %FVertexFactoryInterpolantsVSToPS %285 0 - %287 = OpCompositeExtract %v4float %286 0 - %288 = OpCompositeExtract %v4float %286 1 - %289 = OpVectorShuffle %v3float %287 %287 0 1 2 - %290 = OpVectorShuffle %v3float %288 %288 0 1 2 - %291 = OpExtInst %v3float %1 Cross %290 %289 - %292 = OpCompositeExtract %float %288 3 - %293 = OpCompositeConstruct %v3float %292 %292 %292 - %294 = OpFMul %v3float %291 %293 - %295 = OpCompositeConstruct %mat3v3float %289 %294 %290 - %296 = OpCompositeExtract %float %288 0 - %297 = OpCompositeExtract %float %288 1 - %298 = OpCompositeExtract %float %288 2 - %299 = OpCompositeConstruct %v4float %296 %297 %298 %float_0 - %300 = OpAccessChain %_ptr_Function_FVertexFactoryInterpolantsVSToPS %param_var_I %283 %int_0 %int_0 - %301 = OpLoad %FVertexFactoryInterpolantsVSToPS %300 - %302 = OpCompositeExtract %uint %301 5 - %303 = OpIMul %uint %302 %uint_26 - %304 = OpIAdd %uint %303 %uint_22 - %305 = OpAccessChain %_ptr_Uniform_v4float %View_PrimitiveSceneData %int_0 %304 - %306 = OpLoad %v4float %305 - %307 = OpVectorShuffle %v3float %306 %306 0 1 2 - %308 = OpVectorTimesMatrix %v3float %307 %295 - %309 = OpULessThan %bool %283 %uint_2 - %310 = OpIAdd %uint %283 %uint_1 - %311 = OpSelect %uint %309 %310 %uint_0 - %312 = OpIMul %uint %uint_2 %283 - %313 = OpIAdd %uint %uint_3 %312 - %314 = OpIAdd %uint %312 %uint_4 - %315 = OpAccessChain %_ptr_Function_FBasePassVSToDS %param_var_I %283 - %316 = OpLoad %FBasePassVSToDS %315 - %317 = OpAccessChain %_ptr_Function_v4float %param_var_I %283 %int_2 - %318 = OpLoad %v4float %317 - %319 = OpAccessChain %_ptr_Function_FVertexFactoryInterpolantsVSToDS %param_var_I %311 %int_0 - %320 = OpLoad %FVertexFactoryInterpolantsVSToDS %319 - %321 = OpCompositeExtract %FVertexFactoryInterpolantsVSToPS %320 0 - %322 = OpCompositeExtract %v4float %321 1 - %323 = OpCompositeExtract %float %322 0 - %324 = OpCompositeExtract %float %322 1 - %325 = OpCompositeExtract %float %322 2 - %326 = OpCompositeConstruct %v4float %323 %324 %325 %float_0 - %327 = OpAccessChain %_ptr_Function_FVertexFactoryInterpolantsVSToDS %param_var_I %313 %int_0 - %328 = OpLoad %FVertexFactoryInterpolantsVSToDS %327 - %329 = OpCompositeExtract %FVertexFactoryInterpolantsVSToPS %328 0 - %330 = OpCompositeExtract %v4float %329 1 - %331 = OpCompositeExtract %float %330 0 - %332 = OpCompositeExtract %float %330 1 - %333 = OpCompositeExtract %float %330 2 - %334 = OpCompositeConstruct %v4float %331 %332 %333 %float_0 - %335 = OpAccessChain %_ptr_Function_FVertexFactoryInterpolantsVSToDS %param_var_I %314 %int_0 - %336 = OpLoad %FVertexFactoryInterpolantsVSToDS %335 - %337 = OpCompositeExtract %FVertexFactoryInterpolantsVSToPS %336 0 - %338 = OpCompositeExtract %v4float %337 1 - %339 = OpCompositeExtract %float %338 0 - %340 = OpCompositeExtract %float %338 1 - %341 = OpCompositeExtract %float %338 2 - %342 = OpCompositeConstruct %v4float %339 %340 %341 %float_0 - %343 = OpLoad %v4float %317 - %344 = OpAccessChain %_ptr_Function_v4float %param_var_I %311 %int_2 - %345 = OpLoad %v4float %344 - %346 = OpFMul %v4float %62 %343 - %347 = OpFAdd %v4float %346 %345 - %348 = OpFSub %v4float %345 %343 - %349 = OpDot %float %348 %299 - %350 = OpCompositeConstruct %v4float %349 %349 %349 %349 - %351 = OpFMul %v4float %350 %299 - %352 = OpFSub %v4float %347 %351 - %353 = OpFMul %v4float %352 %136 - %354 = OpAccessChain %_ptr_Function_v4float %param_var_I %313 %int_2 - %355 = OpLoad %v4float %354 - %356 = OpAccessChain %_ptr_Function_v4float %param_var_I %314 %int_2 - %357 = OpLoad %v4float %356 - %358 = OpFMul %v4float %62 %355 - %359 = OpFAdd %v4float %358 %357 - %360 = OpFSub %v4float %357 %355 - %361 = OpDot %float %360 %334 - %362 = OpCompositeConstruct %v4float %361 %361 %361 %361 - %363 = OpFMul %v4float %362 %334 - %364 = OpFSub %v4float %359 %363 - %365 = OpFMul %v4float %364 %136 - %366 = OpFAdd %v4float %353 %365 - %367 = OpFMul %v4float %366 %137 - %368 = OpLoad %v4float %344 - %369 = OpLoad %v4float %317 - %370 = OpFMul %v4float %62 %368 - %371 = OpFAdd %v4float %370 %369 - %372 = OpFSub %v4float %369 %368 - %373 = OpDot %float %372 %326 - %374 = OpCompositeConstruct %v4float %373 %373 %373 %373 - %375 = OpFMul %v4float %374 %326 - %376 = OpFSub %v4float %371 %375 - %377 = OpFMul %v4float %376 %136 - %378 = OpLoad %v4float %356 - %379 = OpLoad %v4float %354 - %380 = OpFMul %v4float %62 %378 - %381 = OpFAdd %v4float %380 %379 - %382 = OpFSub %v4float %379 %378 - %383 = OpDot %float %382 %342 - %384 = OpCompositeConstruct %v4float %383 %383 %383 %383 - %385 = OpFMul %v4float %384 %342 - %386 = OpFSub %v4float %381 %385 - %387 = OpFMul %v4float %386 %136 - %388 = OpFAdd %v4float %377 %387 - %389 = OpFMul %v4float %388 %137 - %390 = OpCompositeConstruct %_arr_v4float_uint_3 %318 %367 %389 - %391 = OpCompositeConstruct %FPNTessellationHSToDS %316 %390 %308 %float_1 %float_1 - %392 = OpCompositeExtract %FVertexFactoryInterpolantsVSToDS %316 0 - %393 = OpCompositeExtract %FVertexFactoryInterpolantsVSToPS %392 0 - %394 = OpCompositeExtract %v4float %393 0 - %395 = OpAccessChain %_ptr_Output_v4float %out_var_TEXCOORD10_centroid %283 - OpStore %395 %394 - %396 = OpCompositeExtract %v4float %393 1 - %397 = OpAccessChain %_ptr_Output_v4float %out_var_TEXCOORD11_centroid %283 - OpStore %397 %396 - %398 = OpCompositeExtract %v4float %393 2 - %399 = OpAccessChain %_ptr_Output_v4float %out_var_COLOR0 %283 - OpStore %399 %398 - %400 = OpCompositeExtract %_arr_v4float_uint_1 %393 3 - %401 = OpAccessChain %_ptr_Output__arr_v4float_uint_1 %out_var_TEXCOORD0 %283 - OpStore %401 %400 - %402 = OpCompositeExtract %v4float %393 4 - %403 = OpAccessChain %_ptr_Output_v4float %out_var_TEXCOORD4 %283 - OpStore %403 %402 - %404 = OpCompositeExtract %uint %393 5 - %405 = OpAccessChain %_ptr_Output_uint %out_var_PRIMITIVE_ID %283 - OpStore %405 %404 - %406 = OpCompositeExtract %uint %393 6 - %407 = OpAccessChain %_ptr_Output_uint %out_var_LIGHTMAP_ID %283 - OpStore %407 %406 - %408 = OpCompositeExtract %v4float %316 2 - %409 = OpAccessChain %_ptr_Output_v4float %out_var_VS_To_DS_Position %283 - OpStore %409 %408 - %410 = OpAccessChain %_ptr_Output__arr_v4float_uint_3 %out_var_PN_POSITION %283 - OpStore %410 %390 - %411 = OpAccessChain %_ptr_Output_v3float %out_var_PN_DisplacementScales %283 - OpStore %411 %308 - %412 = OpAccessChain %_ptr_Output_float %out_var_PN_TessellationMultiplier %283 - OpStore %412 %float_1 - %413 = OpAccessChain %_ptr_Output_float %out_var_PN_WorldDisplacementMultiplier %283 - OpStore %413 %float_1 - %414 = OpAccessChain %_ptr_Workgroup_FPNTessellationHSToDS %temp_var_hullMainRetVal %283 - OpStore %414 %391 - OpControlBarrier %uint_2 %uint_4 %uint_0 - %415 = OpIEqual %bool %283 %uint_0 - OpSelectionMerge %if_merge None - OpBranchConditional %415 %416 %if_merge - %416 = OpLabel - %417 = OpAccessChain %_ptr_Uniform_mat4v4float %View %int_0 - %418 = OpLoad %mat4v4float %417 - %419 = OpAccessChain %_ptr_Uniform_mat4v4float %View %int_6 - %420 = OpLoad %mat4v4float %419 - %421 = OpAccessChain %_ptr_Uniform_v3float %View %int_27 - %422 = OpLoad %v3float %421 - %423 = OpAccessChain %_ptr_Uniform_float %View %int_77 - %424 = OpLoad %float %423 - %425 = OpAccessChain %_ptr_Workgroup_v4float %temp_var_hullMainRetVal %uint_0 %int_1 %int_0 - %426 = OpLoad %v4float %425 - %427 = OpAccessChain %_ptr_Workgroup_v4float %temp_var_hullMainRetVal %uint_0 %int_1 %int_1 - %428 = OpLoad %v4float %427 - %429 = OpAccessChain %_ptr_Workgroup_v4float %temp_var_hullMainRetVal %uint_0 %int_1 %int_2 - %430 = OpLoad %v4float %429 - %431 = OpAccessChain %_ptr_Workgroup_v4float %temp_var_hullMainRetVal %uint_1 %int_1 %int_0 - %432 = OpLoad %v4float %431 - %433 = OpAccessChain %_ptr_Workgroup_v4float %temp_var_hullMainRetVal %uint_1 %int_1 %int_1 - %434 = OpLoad %v4float %433 - %435 = OpAccessChain %_ptr_Workgroup_v4float %temp_var_hullMainRetVal %uint_1 %int_1 %int_2 - %436 = OpLoad %v4float %435 - %437 = OpAccessChain %_ptr_Workgroup_v4float %temp_var_hullMainRetVal %uint_2 %int_1 %int_0 - %438 = OpLoad %v4float %437 - %439 = OpAccessChain %_ptr_Workgroup_v4float %temp_var_hullMainRetVal %uint_2 %int_1 %int_1 - %440 = OpLoad %v4float %439 - %441 = OpAccessChain %_ptr_Workgroup_v4float %temp_var_hullMainRetVal %uint_2 %int_1 %int_2 - %442 = OpLoad %v4float %441 - %443 = OpFAdd %v4float %428 %430 - %444 = OpFAdd %v4float %443 %434 - %445 = OpFAdd %v4float %444 %436 - %446 = OpFAdd %v4float %445 %440 - %447 = OpFAdd %v4float %446 %442 - %448 = OpFMul %v4float %447 %139 - %449 = OpFAdd %v4float %438 %432 - %450 = OpFAdd %v4float %449 %426 - %451 = OpFMul %v4float %450 %136 - %452 = OpFSub %v4float %448 %451 - %453 = OpFMul %v4float %452 %137 - %454 = OpFAdd %v4float %448 %453 - %455 = OpAccessChain %_ptr_Workgroup_float %temp_var_hullMainRetVal %uint_1 %int_3 - %456 = OpLoad %float %455 - %457 = OpAccessChain %_ptr_Workgroup_float %temp_var_hullMainRetVal %uint_2 %int_3 - %458 = OpLoad %float %457 - %459 = OpFAdd %float %456 %458 - %460 = OpFMul %float %float_0_5 %459 - %461 = OpCompositeInsert %v4float %460 %140 0 - %462 = OpLoad %float %457 - %463 = OpAccessChain %_ptr_Workgroup_float %temp_var_hullMainRetVal %uint_0 %int_3 - %464 = OpLoad %float %463 - %465 = OpFAdd %float %462 %464 - %466 = OpFMul %float %float_0_5 %465 - %467 = OpCompositeInsert %v4float %466 %461 1 - %468 = OpLoad %float %463 - %469 = OpLoad %float %455 - %470 = OpFAdd %float %468 %469 - %471 = OpFMul %float %float_0_5 %470 - %472 = OpCompositeInsert %v4float %471 %467 2 - %473 = OpLoad %float %463 - %474 = OpLoad %float %455 - %475 = OpFAdd %float %473 %474 - %476 = OpLoad %float %457 - %477 = OpFAdd %float %475 %476 - %478 = OpFMul %float %float_0_333000004 %477 - %479 = OpCompositeInsert %v4float %478 %472 3 - %480 = OpVectorShuffle %v3float %426 %426 0 1 2 - %481 = OpVectorShuffle %v3float %432 %432 0 1 2 - %482 = OpVectorShuffle %v3float %438 %438 0 1 2 - OpBranch %483 - %483 = OpLabel - OpLoopMerge %484 %485 None - OpBranch %486 - %486 = OpLabel - %487 = OpMatrixTimesVector %v4float %420 %76 - %488 = OpCompositeExtract %float %426 0 - %489 = OpCompositeExtract %float %426 1 - %490 = OpCompositeExtract %float %426 2 - %491 = OpCompositeConstruct %v4float %488 %489 %490 %float_1 - %492 = OpMatrixTimesVector %v4float %418 %491 - %493 = OpVectorShuffle %v3float %492 %492 0 1 2 - %494 = OpVectorShuffle %v3float %487 %487 0 1 2 - %495 = OpFSub %v3float %493 %494 - %496 = OpCompositeExtract %float %492 3 - %497 = OpCompositeExtract %float %487 3 - %498 = OpFAdd %float %496 %497 - %499 = OpCompositeConstruct %v3float %498 %498 %498 - %500 = OpFOrdLessThan %v3bool %495 %499 - %501 = OpSelect %v3int %500 %81 %73 - %502 = OpFAdd %v3float %493 %494 - %503 = OpFNegate %float %496 - %504 = OpFSub %float %503 %497 - %505 = OpCompositeConstruct %v3float %504 %504 %504 - %506 = OpFOrdGreaterThan %v3bool %502 %505 - %507 = OpSelect %v3int %506 %81 %73 - %508 = OpIMul %v3int %82 %507 - %509 = OpIAdd %v3int %501 %508 - %510 = OpCompositeExtract %float %432 0 - %511 = OpCompositeExtract %float %432 1 - %512 = OpCompositeExtract %float %432 2 - %513 = OpCompositeConstruct %v4float %510 %511 %512 %float_1 - %514 = OpMatrixTimesVector %v4float %418 %513 - %515 = OpVectorShuffle %v3float %514 %514 0 1 2 - %516 = OpFSub %v3float %515 %494 - %517 = OpCompositeExtract %float %514 3 - %518 = OpFAdd %float %517 %497 - %519 = OpCompositeConstruct %v3float %518 %518 %518 - %520 = OpFOrdLessThan %v3bool %516 %519 - %521 = OpSelect %v3int %520 %81 %73 - %522 = OpFAdd %v3float %515 %494 - %523 = OpFNegate %float %517 - %524 = OpFSub %float %523 %497 - %525 = OpCompositeConstruct %v3float %524 %524 %524 - %526 = OpFOrdGreaterThan %v3bool %522 %525 - %527 = OpSelect %v3int %526 %81 %73 - %528 = OpIMul %v3int %82 %527 - %529 = OpIAdd %v3int %521 %528 - %530 = OpBitwiseOr %v3int %509 %529 - %531 = OpCompositeExtract %float %438 0 - %532 = OpCompositeExtract %float %438 1 - %533 = OpCompositeExtract %float %438 2 - %534 = OpCompositeConstruct %v4float %531 %532 %533 %float_1 - %535 = OpMatrixTimesVector %v4float %418 %534 - %536 = OpVectorShuffle %v3float %535 %535 0 1 2 - %537 = OpFSub %v3float %536 %494 - %538 = OpCompositeExtract %float %535 3 - %539 = OpFAdd %float %538 %497 - %540 = OpCompositeConstruct %v3float %539 %539 %539 - %541 = OpFOrdLessThan %v3bool %537 %540 - %542 = OpSelect %v3int %541 %81 %73 - %543 = OpFAdd %v3float %536 %494 - %544 = OpFNegate %float %538 - %545 = OpFSub %float %544 %497 - %546 = OpCompositeConstruct %v3float %545 %545 %545 - %547 = OpFOrdGreaterThan %v3bool %543 %546 - %548 = OpSelect %v3int %547 %81 %73 - %549 = OpIMul %v3int %82 %548 - %550 = OpIAdd %v3int %542 %549 - %551 = OpBitwiseOr %v3int %530 %550 - %552 = OpINotEqual %v3bool %551 %74 - %553 = OpAny %bool %552 - OpSelectionMerge %554 None - OpBranchConditional %553 %555 %554 - %555 = OpLabel - OpBranch %484 - %554 = OpLabel - %556 = OpFSub %v3float %480 %481 - %557 = OpFSub %v3float %481 %482 - %558 = OpFSub %v3float %482 %480 - %559 = OpFAdd %v3float %480 %481 - %560 = OpFMul %v3float %77 %559 - %561 = OpFSub %v3float %560 %422 - %562 = OpFAdd %v3float %481 %482 - %563 = OpFMul %v3float %77 %562 - %564 = OpFSub %v3float %563 %422 - %565 = OpFAdd %v3float %482 %480 - %566 = OpFMul %v3float %77 %565 - %567 = OpFSub %v3float %566 %422 - %568 = OpDot %float %557 %557 - %569 = OpDot %float %564 %564 - %570 = OpFDiv %float %568 %569 - %571 = OpExtInst %float %1 Sqrt %570 - %572 = OpDot %float %558 %558 - %573 = OpDot %float %567 %567 - %574 = OpFDiv %float %572 %573 - %575 = OpExtInst %float %1 Sqrt %574 - %576 = OpDot %float %556 %556 - %577 = OpDot %float %561 %561 - %578 = OpFDiv %float %576 %577 - %579 = OpExtInst %float %1 Sqrt %578 - %580 = OpCompositeConstruct %v4float %571 %575 %579 %float_1 - %581 = OpFAdd %float %571 %575 - %582 = OpFAdd %float %581 %579 - %583 = OpFMul %float %float_0_333000004 %582 - %584 = OpCompositeInsert %v4float %583 %580 3 - %585 = OpCompositeConstruct %v4float %424 %424 %424 %424 - %586 = OpFMul %v4float %585 %584 - OpBranch %484 - %485 = OpLabel - OpBranch %483 - %484 = OpLabel - %587 = OpPhi %v4float %76 %555 %586 %554 - %588 = OpFMul %v4float %479 %587 - %589 = OpExtInst %v4float %1 FClamp %588 %67 %69 - %590 = OpCompositeExtract %float %589 0 - %591 = OpCompositeExtract %float %589 1 - %592 = OpCompositeExtract %float %589 2 - %593 = OpCompositeExtract %float %589 3 - %594 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %uint_0 - OpStore %594 %590 - %595 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %uint_1 - OpStore %595 %591 - %596 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %uint_2 - OpStore %596 %592 - %597 = OpAccessChain %_ptr_Output_float %gl_TessLevelInner %uint_0 - OpStore %597 %593 - OpStore %out_var_PN_POSITION9 %454 - OpBranch %if_merge - %if_merge = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-ue4/asm/tesc/hs-input-array-access.asm.tesc b/third_party/spirv-cross/shaders-ue4/asm/tesc/hs-input-array-access.asm.tesc deleted file mode 100644 index a146896b90..0000000000 --- a/third_party/spirv-cross/shaders-ue4/asm/tesc/hs-input-array-access.asm.tesc +++ /dev/null @@ -1,1264 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 607 -; Schema: 0 - OpCapability Tessellation - OpCapability SampledBuffer - OpExtension "SPV_GOOGLE_hlsl_functionality1" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %MainHull "main" %in_var_TEXCOORD10_centroid %in_var_TEXCOORD11_centroid %in_var_VS_To_DS_Position %in_var_VS_To_DS_VertexID %gl_InvocationID %out_var_TEXCOORD10_centroid %out_var_TEXCOORD11_centroid %out_var_VS_To_DS_Position %out_var_VS_To_DS_VertexID %out_var_PN_POSITION %out_var_PN_DisplacementScales %out_var_PN_TessellationMultiplier %out_var_PN_WorldDisplacementMultiplier %out_var_PN_DominantVertex %out_var_PN_DominantVertex1 %out_var_PN_DominantVertex2 %out_var_PN_DominantEdge %out_var_PN_DominantEdge1 %out_var_PN_DominantEdge2 %out_var_PN_DominantEdge3 %out_var_PN_DominantEdge4 %out_var_PN_DominantEdge5 %gl_TessLevelOuter %gl_TessLevelInner %out_var_PN_POSITION9 - OpExecutionMode %MainHull Triangles - OpExecutionMode %MainHull SpacingFractionalOdd - OpExecutionMode %MainHull VertexOrderCw - OpExecutionMode %MainHull OutputVertices 3 - OpSource HLSL 600 - OpName %FPNTessellationHSToDS "FPNTessellationHSToDS" - OpMemberName %FPNTessellationHSToDS 0 "PassSpecificData" - OpMemberName %FPNTessellationHSToDS 1 "WorldPosition" - OpMemberName %FPNTessellationHSToDS 2 "DisplacementScale" - OpMemberName %FPNTessellationHSToDS 3 "TessellationMultiplier" - OpMemberName %FPNTessellationHSToDS 4 "WorldDisplacementMultiplier" - OpMemberName %FPNTessellationHSToDS 5 "DominantVertex" - OpMemberName %FPNTessellationHSToDS 6 "DominantEdge" - OpName %FHitProxyVSToDS "FHitProxyVSToDS" - OpMemberName %FHitProxyVSToDS 0 "FactoryInterpolants" - OpMemberName %FHitProxyVSToDS 1 "Position" - OpMemberName %FHitProxyVSToDS 2 "VertexID" - OpName %FVertexFactoryInterpolantsVSToDS "FVertexFactoryInterpolantsVSToDS" - OpMemberName %FVertexFactoryInterpolantsVSToDS 0 "InterpolantsVSToPS" - OpName %FVertexFactoryInterpolantsVSToPS "FVertexFactoryInterpolantsVSToPS" - OpMemberName %FVertexFactoryInterpolantsVSToPS 0 "TangentToWorld0" - OpMemberName %FVertexFactoryInterpolantsVSToPS 1 "TangentToWorld2" - OpName %FHullShaderConstantDominantVertexData "FHullShaderConstantDominantVertexData" - OpMemberName %FHullShaderConstantDominantVertexData 0 "UV" - OpMemberName %FHullShaderConstantDominantVertexData 1 "Normal" - OpMemberName %FHullShaderConstantDominantVertexData 2 "Tangent" - OpName %FHullShaderConstantDominantEdgeData "FHullShaderConstantDominantEdgeData" - OpMemberName %FHullShaderConstantDominantEdgeData 0 "UV0" - OpMemberName %FHullShaderConstantDominantEdgeData 1 "UV1" - OpMemberName %FHullShaderConstantDominantEdgeData 2 "Normal0" - OpMemberName %FHullShaderConstantDominantEdgeData 3 "Normal1" - OpMemberName %FHullShaderConstantDominantEdgeData 4 "Tangent0" - OpMemberName %FHullShaderConstantDominantEdgeData 5 "Tangent1" - OpName %type_View "type.View" - OpMemberName %type_View 0 "View_TranslatedWorldToClip" - OpMemberName %type_View 1 "View_WorldToClip" - OpMemberName %type_View 2 "View_ClipToWorld" - OpMemberName %type_View 3 "View_TranslatedWorldToView" - OpMemberName %type_View 4 "View_ViewToTranslatedWorld" - OpMemberName %type_View 5 "View_TranslatedWorldToCameraView" - OpMemberName %type_View 6 "View_CameraViewToTranslatedWorld" - OpMemberName %type_View 7 "View_ViewToClip" - OpMemberName %type_View 8 "View_ViewToClipNoAA" - OpMemberName %type_View 9 "View_ClipToView" - OpMemberName %type_View 10 "View_ClipToTranslatedWorld" - OpMemberName %type_View 11 "View_SVPositionToTranslatedWorld" - OpMemberName %type_View 12 "View_ScreenToWorld" - OpMemberName %type_View 13 "View_ScreenToTranslatedWorld" - OpMemberName %type_View 14 "View_ViewForward" - OpMemberName %type_View 15 "PrePadding_View_908" - OpMemberName %type_View 16 "View_ViewUp" - OpMemberName %type_View 17 "PrePadding_View_924" - OpMemberName %type_View 18 "View_ViewRight" - OpMemberName %type_View 19 "PrePadding_View_940" - OpMemberName %type_View 20 "View_HMDViewNoRollUp" - OpMemberName %type_View 21 "PrePadding_View_956" - OpMemberName %type_View 22 "View_HMDViewNoRollRight" - OpMemberName %type_View 23 "PrePadding_View_972" - OpMemberName %type_View 24 "View_InvDeviceZToWorldZTransform" - OpMemberName %type_View 25 "View_ScreenPositionScaleBias" - OpMemberName %type_View 26 "View_WorldCameraOrigin" - OpMemberName %type_View 27 "PrePadding_View_1020" - OpMemberName %type_View 28 "View_TranslatedWorldCameraOrigin" - OpMemberName %type_View 29 "PrePadding_View_1036" - OpMemberName %type_View 30 "View_WorldViewOrigin" - OpMemberName %type_View 31 "PrePadding_View_1052" - OpMemberName %type_View 32 "View_PreViewTranslation" - OpMemberName %type_View 33 "PrePadding_View_1068" - OpMemberName %type_View 34 "View_PrevProjection" - OpMemberName %type_View 35 "View_PrevViewProj" - OpMemberName %type_View 36 "View_PrevViewRotationProj" - OpMemberName %type_View 37 "View_PrevViewToClip" - OpMemberName %type_View 38 "View_PrevClipToView" - OpMemberName %type_View 39 "View_PrevTranslatedWorldToClip" - OpMemberName %type_View 40 "View_PrevTranslatedWorldToView" - OpMemberName %type_View 41 "View_PrevViewToTranslatedWorld" - OpMemberName %type_View 42 "View_PrevTranslatedWorldToCameraView" - OpMemberName %type_View 43 "View_PrevCameraViewToTranslatedWorld" - OpMemberName %type_View 44 "View_PrevWorldCameraOrigin" - OpMemberName %type_View 45 "PrePadding_View_1724" - OpMemberName %type_View 46 "View_PrevWorldViewOrigin" - OpMemberName %type_View 47 "PrePadding_View_1740" - OpMemberName %type_View 48 "View_PrevPreViewTranslation" - OpMemberName %type_View 49 "PrePadding_View_1756" - OpMemberName %type_View 50 "View_PrevInvViewProj" - OpMemberName %type_View 51 "View_PrevScreenToTranslatedWorld" - OpMemberName %type_View 52 "View_ClipToPrevClip" - OpMemberName %type_View 53 "View_TemporalAAJitter" - OpMemberName %type_View 54 "View_GlobalClippingPlane" - OpMemberName %type_View 55 "View_FieldOfViewWideAngles" - OpMemberName %type_View 56 "View_PrevFieldOfViewWideAngles" - OpMemberName %type_View 57 "View_ViewRectMin" - OpMemberName %type_View 58 "View_ViewSizeAndInvSize" - OpMemberName %type_View 59 "View_BufferSizeAndInvSize" - OpMemberName %type_View 60 "View_BufferBilinearUVMinMax" - OpMemberName %type_View 61 "View_NumSceneColorMSAASamples" - OpMemberName %type_View 62 "View_PreExposure" - OpMemberName %type_View 63 "View_OneOverPreExposure" - OpMemberName %type_View 64 "PrePadding_View_2076" - OpMemberName %type_View 65 "View_DiffuseOverrideParameter" - OpMemberName %type_View 66 "View_SpecularOverrideParameter" - OpMemberName %type_View 67 "View_NormalOverrideParameter" - OpMemberName %type_View 68 "View_RoughnessOverrideParameter" - OpMemberName %type_View 69 "View_PrevFrameGameTime" - OpMemberName %type_View 70 "View_PrevFrameRealTime" - OpMemberName %type_View 71 "View_OutOfBoundsMask" - OpMemberName %type_View 72 "PrePadding_View_2148" - OpMemberName %type_View 73 "PrePadding_View_2152" - OpMemberName %type_View 74 "PrePadding_View_2156" - OpMemberName %type_View 75 "View_WorldCameraMovementSinceLastFrame" - OpMemberName %type_View 76 "View_CullingSign" - OpMemberName %type_View 77 "View_NearPlane" - OpMemberName %type_View 78 "View_AdaptiveTessellationFactor" - OpMemberName %type_View 79 "View_GameTime" - OpMemberName %type_View 80 "View_RealTime" - OpMemberName %type_View 81 "View_DeltaTime" - OpMemberName %type_View 82 "View_MaterialTextureMipBias" - OpMemberName %type_View 83 "View_MaterialTextureDerivativeMultiply" - OpMemberName %type_View 84 "View_Random" - OpMemberName %type_View 85 "View_FrameNumber" - OpMemberName %type_View 86 "View_StateFrameIndexMod8" - OpMemberName %type_View 87 "View_StateFrameIndex" - OpMemberName %type_View 88 "View_CameraCut" - OpMemberName %type_View 89 "View_UnlitViewmodeMask" - OpMemberName %type_View 90 "PrePadding_View_2228" - OpMemberName %type_View 91 "PrePadding_View_2232" - OpMemberName %type_View 92 "PrePadding_View_2236" - OpMemberName %type_View 93 "View_DirectionalLightColor" - OpMemberName %type_View 94 "View_DirectionalLightDirection" - OpMemberName %type_View 95 "PrePadding_View_2268" - OpMemberName %type_View 96 "View_TranslucencyLightingVolumeMin" - OpMemberName %type_View 97 "View_TranslucencyLightingVolumeInvSize" - OpMemberName %type_View 98 "View_TemporalAAParams" - OpMemberName %type_View 99 "View_CircleDOFParams" - OpMemberName %type_View 100 "View_DepthOfFieldSensorWidth" - OpMemberName %type_View 101 "View_DepthOfFieldFocalDistance" - OpMemberName %type_View 102 "View_DepthOfFieldScale" - OpMemberName %type_View 103 "View_DepthOfFieldFocalLength" - OpMemberName %type_View 104 "View_DepthOfFieldFocalRegion" - OpMemberName %type_View 105 "View_DepthOfFieldNearTransitionRegion" - OpMemberName %type_View 106 "View_DepthOfFieldFarTransitionRegion" - OpMemberName %type_View 107 "View_MotionBlurNormalizedToPixel" - OpMemberName %type_View 108 "View_bSubsurfacePostprocessEnabled" - OpMemberName %type_View 109 "View_GeneralPurposeTweak" - OpMemberName %type_View 110 "View_DemosaicVposOffset" - OpMemberName %type_View 111 "PrePadding_View_2412" - OpMemberName %type_View 112 "View_IndirectLightingColorScale" - OpMemberName %type_View 113 "View_HDR32bppEncodingMode" - OpMemberName %type_View 114 "View_AtmosphericFogSunDirection" - OpMemberName %type_View 115 "View_AtmosphericFogSunPower" - OpMemberName %type_View 116 "View_AtmosphericFogPower" - OpMemberName %type_View 117 "View_AtmosphericFogDensityScale" - OpMemberName %type_View 118 "View_AtmosphericFogDensityOffset" - OpMemberName %type_View 119 "View_AtmosphericFogGroundOffset" - OpMemberName %type_View 120 "View_AtmosphericFogDistanceScale" - OpMemberName %type_View 121 "View_AtmosphericFogAltitudeScale" - OpMemberName %type_View 122 "View_AtmosphericFogHeightScaleRayleigh" - OpMemberName %type_View 123 "View_AtmosphericFogStartDistance" - OpMemberName %type_View 124 "View_AtmosphericFogDistanceOffset" - OpMemberName %type_View 125 "View_AtmosphericFogSunDiscScale" - OpMemberName %type_View 126 "View_AtmosphericFogSunDiscHalfApexAngleRadian" - OpMemberName %type_View 127 "PrePadding_View_2492" - OpMemberName %type_View 128 "View_AtmosphericFogSunDiscLuminance" - OpMemberName %type_View 129 "View_AtmosphericFogRenderMask" - OpMemberName %type_View 130 "View_AtmosphericFogInscatterAltitudeSampleNum" - OpMemberName %type_View 131 "PrePadding_View_2520" - OpMemberName %type_View 132 "PrePadding_View_2524" - OpMemberName %type_View 133 "View_AtmosphericFogSunColor" - OpMemberName %type_View 134 "View_NormalCurvatureToRoughnessScaleBias" - OpMemberName %type_View 135 "View_RenderingReflectionCaptureMask" - OpMemberName %type_View 136 "View_AmbientCubemapTint" - OpMemberName %type_View 137 "View_AmbientCubemapIntensity" - OpMemberName %type_View 138 "View_SkyLightParameters" - OpMemberName %type_View 139 "PrePadding_View_2584" - OpMemberName %type_View 140 "PrePadding_View_2588" - OpMemberName %type_View 141 "View_SkyLightColor" - OpMemberName %type_View 142 "View_SkyIrradianceEnvironmentMap" - OpMemberName %type_View 143 "View_MobilePreviewMode" - OpMemberName %type_View 144 "View_HMDEyePaddingOffset" - OpMemberName %type_View 145 "View_ReflectionCubemapMaxMip" - OpMemberName %type_View 146 "View_ShowDecalsMask" - OpMemberName %type_View 147 "View_DistanceFieldAOSpecularOcclusionMode" - OpMemberName %type_View 148 "View_IndirectCapsuleSelfShadowingIntensity" - OpMemberName %type_View 149 "PrePadding_View_2744" - OpMemberName %type_View 150 "PrePadding_View_2748" - OpMemberName %type_View 151 "View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight" - OpMemberName %type_View 152 "View_StereoPassIndex" - OpMemberName %type_View 153 "View_GlobalVolumeCenterAndExtent" - OpMemberName %type_View 154 "View_GlobalVolumeWorldToUVAddAndMul" - OpMemberName %type_View 155 "View_GlobalVolumeDimension" - OpMemberName %type_View 156 "View_GlobalVolumeTexelSize" - OpMemberName %type_View 157 "View_MaxGlobalDistance" - OpMemberName %type_View 158 "PrePadding_View_2908" - OpMemberName %type_View 159 "View_CursorPosition" - OpMemberName %type_View 160 "View_bCheckerboardSubsurfaceProfileRendering" - OpMemberName %type_View 161 "PrePadding_View_2924" - OpMemberName %type_View 162 "View_VolumetricFogInvGridSize" - OpMemberName %type_View 163 "PrePadding_View_2940" - OpMemberName %type_View 164 "View_VolumetricFogGridZParams" - OpMemberName %type_View 165 "PrePadding_View_2956" - OpMemberName %type_View 166 "View_VolumetricFogSVPosToVolumeUV" - OpMemberName %type_View 167 "View_VolumetricFogMaxDistance" - OpMemberName %type_View 168 "PrePadding_View_2972" - OpMemberName %type_View 169 "View_VolumetricLightmapWorldToUVScale" - OpMemberName %type_View 170 "PrePadding_View_2988" - OpMemberName %type_View 171 "View_VolumetricLightmapWorldToUVAdd" - OpMemberName %type_View 172 "PrePadding_View_3004" - OpMemberName %type_View 173 "View_VolumetricLightmapIndirectionTextureSize" - OpMemberName %type_View 174 "View_VolumetricLightmapBrickSize" - OpMemberName %type_View 175 "View_VolumetricLightmapBrickTexelSize" - OpMemberName %type_View 176 "View_StereoIPD" - OpMemberName %type_View 177 "View_IndirectLightingCacheShowFlag" - OpMemberName %type_View 178 "View_EyeToPixelSpreadAngle" - OpName %View "View" - OpName %type_Primitive "type.Primitive" - OpMemberName %type_Primitive 0 "Primitive_LocalToWorld" - OpMemberName %type_Primitive 1 "Primitive_InvNonUniformScaleAndDeterminantSign" - OpMemberName %type_Primitive 2 "Primitive_ObjectWorldPositionAndRadius" - OpMemberName %type_Primitive 3 "Primitive_WorldToLocal" - OpMemberName %type_Primitive 4 "Primitive_PreviousLocalToWorld" - OpMemberName %type_Primitive 5 "Primitive_PreviousWorldToLocal" - OpMemberName %type_Primitive 6 "Primitive_ActorWorldPosition" - OpMemberName %type_Primitive 7 "Primitive_UseSingleSampleShadowFromStationaryLights" - OpMemberName %type_Primitive 8 "Primitive_ObjectBounds" - OpMemberName %type_Primitive 9 "Primitive_LpvBiasMultiplier" - OpMemberName %type_Primitive 10 "Primitive_DecalReceiverMask" - OpMemberName %type_Primitive 11 "Primitive_PerObjectGBufferData" - OpMemberName %type_Primitive 12 "Primitive_UseVolumetricLightmapShadowFromStationaryLights" - OpMemberName %type_Primitive 13 "Primitive_DrawsVelocity" - OpMemberName %type_Primitive 14 "Primitive_ObjectOrientation" - OpMemberName %type_Primitive 15 "Primitive_NonUniformScale" - OpMemberName %type_Primitive 16 "Primitive_LocalObjectBoundsMin" - OpMemberName %type_Primitive 17 "Primitive_LightingChannelMask" - OpMemberName %type_Primitive 18 "Primitive_LocalObjectBoundsMax" - OpMemberName %type_Primitive 19 "Primitive_LightmapDataIndex" - OpMemberName %type_Primitive 20 "Primitive_PreSkinnedLocalBounds" - OpMemberName %type_Primitive 21 "Primitive_SingleCaptureIndex" - OpMemberName %type_Primitive 22 "Primitive_OutputVelocity" - OpMemberName %type_Primitive 23 "PrePadding_Primitive_420" - OpMemberName %type_Primitive 24 "PrePadding_Primitive_424" - OpMemberName %type_Primitive 25 "PrePadding_Primitive_428" - OpMemberName %type_Primitive 26 "Primitive_CustomPrimitiveData" - OpName %Primitive "Primitive" - OpName %in_var_TEXCOORD10_centroid "in.var.TEXCOORD10_centroid" - OpName %in_var_TEXCOORD11_centroid "in.var.TEXCOORD11_centroid" - OpName %in_var_VS_To_DS_Position "in.var.VS_To_DS_Position" - OpName %in_var_VS_To_DS_VertexID "in.var.VS_To_DS_VertexID" - OpName %out_var_TEXCOORD10_centroid "out.var.TEXCOORD10_centroid" - OpName %out_var_TEXCOORD11_centroid "out.var.TEXCOORD11_centroid" - OpName %out_var_VS_To_DS_Position "out.var.VS_To_DS_Position" - OpName %out_var_VS_To_DS_VertexID "out.var.VS_To_DS_VertexID" - OpName %out_var_PN_POSITION "out.var.PN_POSITION" - OpName %out_var_PN_DisplacementScales "out.var.PN_DisplacementScales" - OpName %out_var_PN_TessellationMultiplier "out.var.PN_TessellationMultiplier" - OpName %out_var_PN_WorldDisplacementMultiplier "out.var.PN_WorldDisplacementMultiplier" - OpName %out_var_PN_DominantVertex "out.var.PN_DominantVertex" - OpName %out_var_PN_DominantVertex1 "out.var.PN_DominantVertex1" - OpName %out_var_PN_DominantVertex2 "out.var.PN_DominantVertex2" - OpName %out_var_PN_DominantEdge "out.var.PN_DominantEdge" - OpName %out_var_PN_DominantEdge1 "out.var.PN_DominantEdge1" - OpName %out_var_PN_DominantEdge2 "out.var.PN_DominantEdge2" - OpName %out_var_PN_DominantEdge3 "out.var.PN_DominantEdge3" - OpName %out_var_PN_DominantEdge4 "out.var.PN_DominantEdge4" - OpName %out_var_PN_DominantEdge5 "out.var.PN_DominantEdge5" - OpName %out_var_PN_POSITION9 "out.var.PN_POSITION9" - OpName %MainHull "MainHull" - OpName %param_var_I "param.var.I" - OpName %temp_var_hullMainRetVal "temp.var.hullMainRetVal" - OpName %if_merge "if.merge" - OpDecorateString %in_var_TEXCOORD10_centroid UserSemantic "TEXCOORD10_centroid" - OpDecorateString %in_var_TEXCOORD11_centroid UserSemantic "TEXCOORD11_centroid" - OpDecorateString %in_var_VS_To_DS_Position UserSemantic "VS_To_DS_Position" - OpDecorateString %in_var_VS_To_DS_VertexID UserSemantic "VS_To_DS_VertexID" - OpDecorate %gl_InvocationID BuiltIn InvocationId - OpDecorateString %gl_InvocationID UserSemantic "SV_OutputControlPointID" - OpDecorateString %out_var_TEXCOORD10_centroid UserSemantic "TEXCOORD10_centroid" - OpDecorateString %out_var_TEXCOORD11_centroid UserSemantic "TEXCOORD11_centroid" - OpDecorateString %out_var_VS_To_DS_Position UserSemantic "VS_To_DS_Position" - OpDecorateString %out_var_VS_To_DS_VertexID UserSemantic "VS_To_DS_VertexID" - OpDecorateString %out_var_PN_POSITION UserSemantic "PN_POSITION" - OpDecorateString %out_var_PN_DisplacementScales UserSemantic "PN_DisplacementScales" - OpDecorateString %out_var_PN_TessellationMultiplier UserSemantic "PN_TessellationMultiplier" - OpDecorateString %out_var_PN_WorldDisplacementMultiplier UserSemantic "PN_WorldDisplacementMultiplier" - OpDecorateString %out_var_PN_DominantVertex UserSemantic "PN_DominantVertex" - OpDecorateString %out_var_PN_DominantVertex1 UserSemantic "PN_DominantVertex" - OpDecorateString %out_var_PN_DominantVertex2 UserSemantic "PN_DominantVertex" - OpDecorateString %out_var_PN_DominantEdge UserSemantic "PN_DominantEdge" - OpDecorateString %out_var_PN_DominantEdge1 UserSemantic "PN_DominantEdge" - OpDecorateString %out_var_PN_DominantEdge2 UserSemantic "PN_DominantEdge" - OpDecorateString %out_var_PN_DominantEdge3 UserSemantic "PN_DominantEdge" - OpDecorateString %out_var_PN_DominantEdge4 UserSemantic "PN_DominantEdge" - OpDecorateString %out_var_PN_DominantEdge5 UserSemantic "PN_DominantEdge" - OpDecorate %gl_TessLevelOuter BuiltIn TessLevelOuter - OpDecorateString %gl_TessLevelOuter UserSemantic "SV_TessFactor" - OpDecorate %gl_TessLevelOuter Patch - OpDecorate %gl_TessLevelInner BuiltIn TessLevelInner - OpDecorateString %gl_TessLevelInner UserSemantic "SV_InsideTessFactor" - OpDecorate %gl_TessLevelInner Patch - OpDecorateString %out_var_PN_POSITION9 UserSemantic "PN_POSITION9" - OpDecorate %out_var_PN_POSITION9 Patch - OpDecorate %in_var_TEXCOORD10_centroid Location 0 - OpDecorate %in_var_TEXCOORD11_centroid Location 1 - OpDecorate %in_var_VS_To_DS_Position Location 2 - OpDecorate %in_var_VS_To_DS_VertexID Location 3 - OpDecorate %out_var_PN_DisplacementScales Location 0 - OpDecorate %out_var_PN_DominantEdge Location 1 - OpDecorate %out_var_PN_DominantEdge1 Location 2 - OpDecorate %out_var_PN_DominantEdge2 Location 3 - OpDecorate %out_var_PN_DominantEdge3 Location 4 - OpDecorate %out_var_PN_DominantEdge4 Location 5 - OpDecorate %out_var_PN_DominantEdge5 Location 6 - OpDecorate %out_var_PN_DominantVertex Location 7 - OpDecorate %out_var_PN_DominantVertex1 Location 8 - OpDecorate %out_var_PN_DominantVertex2 Location 9 - OpDecorate %out_var_PN_POSITION Location 10 - OpDecorate %out_var_PN_POSITION9 Location 13 - OpDecorate %out_var_PN_TessellationMultiplier Location 14 - OpDecorate %out_var_PN_WorldDisplacementMultiplier Location 15 - OpDecorate %out_var_TEXCOORD10_centroid Location 16 - OpDecorate %out_var_TEXCOORD11_centroid Location 17 - OpDecorate %out_var_VS_To_DS_Position Location 18 - OpDecorate %out_var_VS_To_DS_VertexID Location 19 - OpDecorate %View DescriptorSet 0 - OpDecorate %View Binding 0 - OpDecorate %Primitive DescriptorSet 0 - OpDecorate %Primitive Binding 1 - OpDecorate %_arr_v4float_uint_2 ArrayStride 16 - OpDecorate %_arr_v4float_uint_7 ArrayStride 16 - OpDecorate %_arr_v4float_uint_4 ArrayStride 16 - OpMemberDecorate %type_View 0 Offset 0 - OpMemberDecorate %type_View 0 MatrixStride 16 - OpMemberDecorate %type_View 0 ColMajor - OpMemberDecorate %type_View 1 Offset 64 - OpMemberDecorate %type_View 1 MatrixStride 16 - OpMemberDecorate %type_View 1 ColMajor - OpMemberDecorate %type_View 2 Offset 128 - OpMemberDecorate %type_View 2 MatrixStride 16 - OpMemberDecorate %type_View 2 ColMajor - OpMemberDecorate %type_View 3 Offset 192 - OpMemberDecorate %type_View 3 MatrixStride 16 - OpMemberDecorate %type_View 3 ColMajor - OpMemberDecorate %type_View 4 Offset 256 - OpMemberDecorate %type_View 4 MatrixStride 16 - OpMemberDecorate %type_View 4 ColMajor - OpMemberDecorate %type_View 5 Offset 320 - OpMemberDecorate %type_View 5 MatrixStride 16 - OpMemberDecorate %type_View 5 ColMajor - OpMemberDecorate %type_View 6 Offset 384 - OpMemberDecorate %type_View 6 MatrixStride 16 - OpMemberDecorate %type_View 6 ColMajor - OpMemberDecorate %type_View 7 Offset 448 - OpMemberDecorate %type_View 7 MatrixStride 16 - OpMemberDecorate %type_View 7 ColMajor - OpMemberDecorate %type_View 8 Offset 512 - OpMemberDecorate %type_View 8 MatrixStride 16 - OpMemberDecorate %type_View 8 ColMajor - OpMemberDecorate %type_View 9 Offset 576 - OpMemberDecorate %type_View 9 MatrixStride 16 - OpMemberDecorate %type_View 9 ColMajor - OpMemberDecorate %type_View 10 Offset 640 - OpMemberDecorate %type_View 10 MatrixStride 16 - OpMemberDecorate %type_View 10 ColMajor - OpMemberDecorate %type_View 11 Offset 704 - OpMemberDecorate %type_View 11 MatrixStride 16 - OpMemberDecorate %type_View 11 ColMajor - OpMemberDecorate %type_View 12 Offset 768 - OpMemberDecorate %type_View 12 MatrixStride 16 - OpMemberDecorate %type_View 12 ColMajor - OpMemberDecorate %type_View 13 Offset 832 - OpMemberDecorate %type_View 13 MatrixStride 16 - OpMemberDecorate %type_View 13 ColMajor - OpMemberDecorate %type_View 14 Offset 896 - OpMemberDecorate %type_View 15 Offset 908 - OpMemberDecorate %type_View 16 Offset 912 - OpMemberDecorate %type_View 17 Offset 924 - OpMemberDecorate %type_View 18 Offset 928 - OpMemberDecorate %type_View 19 Offset 940 - OpMemberDecorate %type_View 20 Offset 944 - OpMemberDecorate %type_View 21 Offset 956 - OpMemberDecorate %type_View 22 Offset 960 - OpMemberDecorate %type_View 23 Offset 972 - OpMemberDecorate %type_View 24 Offset 976 - OpMemberDecorate %type_View 25 Offset 992 - OpMemberDecorate %type_View 26 Offset 1008 - OpMemberDecorate %type_View 27 Offset 1020 - OpMemberDecorate %type_View 28 Offset 1024 - OpMemberDecorate %type_View 29 Offset 1036 - OpMemberDecorate %type_View 30 Offset 1040 - OpMemberDecorate %type_View 31 Offset 1052 - OpMemberDecorate %type_View 32 Offset 1056 - OpMemberDecorate %type_View 33 Offset 1068 - OpMemberDecorate %type_View 34 Offset 1072 - OpMemberDecorate %type_View 34 MatrixStride 16 - OpMemberDecorate %type_View 34 ColMajor - OpMemberDecorate %type_View 35 Offset 1136 - OpMemberDecorate %type_View 35 MatrixStride 16 - OpMemberDecorate %type_View 35 ColMajor - OpMemberDecorate %type_View 36 Offset 1200 - OpMemberDecorate %type_View 36 MatrixStride 16 - OpMemberDecorate %type_View 36 ColMajor - OpMemberDecorate %type_View 37 Offset 1264 - OpMemberDecorate %type_View 37 MatrixStride 16 - OpMemberDecorate %type_View 37 ColMajor - OpMemberDecorate %type_View 38 Offset 1328 - OpMemberDecorate %type_View 38 MatrixStride 16 - OpMemberDecorate %type_View 38 ColMajor - OpMemberDecorate %type_View 39 Offset 1392 - OpMemberDecorate %type_View 39 MatrixStride 16 - OpMemberDecorate %type_View 39 ColMajor - OpMemberDecorate %type_View 40 Offset 1456 - OpMemberDecorate %type_View 40 MatrixStride 16 - OpMemberDecorate %type_View 40 ColMajor - OpMemberDecorate %type_View 41 Offset 1520 - OpMemberDecorate %type_View 41 MatrixStride 16 - OpMemberDecorate %type_View 41 ColMajor - OpMemberDecorate %type_View 42 Offset 1584 - OpMemberDecorate %type_View 42 MatrixStride 16 - OpMemberDecorate %type_View 42 ColMajor - OpMemberDecorate %type_View 43 Offset 1648 - OpMemberDecorate %type_View 43 MatrixStride 16 - OpMemberDecorate %type_View 43 ColMajor - OpMemberDecorate %type_View 44 Offset 1712 - OpMemberDecorate %type_View 45 Offset 1724 - OpMemberDecorate %type_View 46 Offset 1728 - OpMemberDecorate %type_View 47 Offset 1740 - OpMemberDecorate %type_View 48 Offset 1744 - OpMemberDecorate %type_View 49 Offset 1756 - OpMemberDecorate %type_View 50 Offset 1760 - OpMemberDecorate %type_View 50 MatrixStride 16 - OpMemberDecorate %type_View 50 ColMajor - OpMemberDecorate %type_View 51 Offset 1824 - OpMemberDecorate %type_View 51 MatrixStride 16 - OpMemberDecorate %type_View 51 ColMajor - OpMemberDecorate %type_View 52 Offset 1888 - OpMemberDecorate %type_View 52 MatrixStride 16 - OpMemberDecorate %type_View 52 ColMajor - OpMemberDecorate %type_View 53 Offset 1952 - OpMemberDecorate %type_View 54 Offset 1968 - OpMemberDecorate %type_View 55 Offset 1984 - OpMemberDecorate %type_View 56 Offset 1992 - OpMemberDecorate %type_View 57 Offset 2000 - OpMemberDecorate %type_View 58 Offset 2016 - OpMemberDecorate %type_View 59 Offset 2032 - OpMemberDecorate %type_View 60 Offset 2048 - OpMemberDecorate %type_View 61 Offset 2064 - OpMemberDecorate %type_View 62 Offset 2068 - OpMemberDecorate %type_View 63 Offset 2072 - OpMemberDecorate %type_View 64 Offset 2076 - OpMemberDecorate %type_View 65 Offset 2080 - OpMemberDecorate %type_View 66 Offset 2096 - OpMemberDecorate %type_View 67 Offset 2112 - OpMemberDecorate %type_View 68 Offset 2128 - OpMemberDecorate %type_View 69 Offset 2136 - OpMemberDecorate %type_View 70 Offset 2140 - OpMemberDecorate %type_View 71 Offset 2144 - OpMemberDecorate %type_View 72 Offset 2148 - OpMemberDecorate %type_View 73 Offset 2152 - OpMemberDecorate %type_View 74 Offset 2156 - OpMemberDecorate %type_View 75 Offset 2160 - OpMemberDecorate %type_View 76 Offset 2172 - OpMemberDecorate %type_View 77 Offset 2176 - OpMemberDecorate %type_View 78 Offset 2180 - OpMemberDecorate %type_View 79 Offset 2184 - OpMemberDecorate %type_View 80 Offset 2188 - OpMemberDecorate %type_View 81 Offset 2192 - OpMemberDecorate %type_View 82 Offset 2196 - OpMemberDecorate %type_View 83 Offset 2200 - OpMemberDecorate %type_View 84 Offset 2204 - OpMemberDecorate %type_View 85 Offset 2208 - OpMemberDecorate %type_View 86 Offset 2212 - OpMemberDecorate %type_View 87 Offset 2216 - OpMemberDecorate %type_View 88 Offset 2220 - OpMemberDecorate %type_View 89 Offset 2224 - OpMemberDecorate %type_View 90 Offset 2228 - OpMemberDecorate %type_View 91 Offset 2232 - OpMemberDecorate %type_View 92 Offset 2236 - OpMemberDecorate %type_View 93 Offset 2240 - OpMemberDecorate %type_View 94 Offset 2256 - OpMemberDecorate %type_View 95 Offset 2268 - OpMemberDecorate %type_View 96 Offset 2272 - OpMemberDecorate %type_View 97 Offset 2304 - OpMemberDecorate %type_View 98 Offset 2336 - OpMemberDecorate %type_View 99 Offset 2352 - OpMemberDecorate %type_View 100 Offset 2368 - OpMemberDecorate %type_View 101 Offset 2372 - OpMemberDecorate %type_View 102 Offset 2376 - OpMemberDecorate %type_View 103 Offset 2380 - OpMemberDecorate %type_View 104 Offset 2384 - OpMemberDecorate %type_View 105 Offset 2388 - OpMemberDecorate %type_View 106 Offset 2392 - OpMemberDecorate %type_View 107 Offset 2396 - OpMemberDecorate %type_View 108 Offset 2400 - OpMemberDecorate %type_View 109 Offset 2404 - OpMemberDecorate %type_View 110 Offset 2408 - OpMemberDecorate %type_View 111 Offset 2412 - OpMemberDecorate %type_View 112 Offset 2416 - OpMemberDecorate %type_View 113 Offset 2428 - OpMemberDecorate %type_View 114 Offset 2432 - OpMemberDecorate %type_View 115 Offset 2444 - OpMemberDecorate %type_View 116 Offset 2448 - OpMemberDecorate %type_View 117 Offset 2452 - OpMemberDecorate %type_View 118 Offset 2456 - OpMemberDecorate %type_View 119 Offset 2460 - OpMemberDecorate %type_View 120 Offset 2464 - OpMemberDecorate %type_View 121 Offset 2468 - OpMemberDecorate %type_View 122 Offset 2472 - OpMemberDecorate %type_View 123 Offset 2476 - OpMemberDecorate %type_View 124 Offset 2480 - OpMemberDecorate %type_View 125 Offset 2484 - OpMemberDecorate %type_View 126 Offset 2488 - OpMemberDecorate %type_View 127 Offset 2492 - OpMemberDecorate %type_View 128 Offset 2496 - OpMemberDecorate %type_View 129 Offset 2512 - OpMemberDecorate %type_View 130 Offset 2516 - OpMemberDecorate %type_View 131 Offset 2520 - OpMemberDecorate %type_View 132 Offset 2524 - OpMemberDecorate %type_View 133 Offset 2528 - OpMemberDecorate %type_View 134 Offset 2544 - OpMemberDecorate %type_View 135 Offset 2556 - OpMemberDecorate %type_View 136 Offset 2560 - OpMemberDecorate %type_View 137 Offset 2576 - OpMemberDecorate %type_View 138 Offset 2580 - OpMemberDecorate %type_View 139 Offset 2584 - OpMemberDecorate %type_View 140 Offset 2588 - OpMemberDecorate %type_View 141 Offset 2592 - OpMemberDecorate %type_View 142 Offset 2608 - OpMemberDecorate %type_View 143 Offset 2720 - OpMemberDecorate %type_View 144 Offset 2724 - OpMemberDecorate %type_View 145 Offset 2728 - OpMemberDecorate %type_View 146 Offset 2732 - OpMemberDecorate %type_View 147 Offset 2736 - OpMemberDecorate %type_View 148 Offset 2740 - OpMemberDecorate %type_View 149 Offset 2744 - OpMemberDecorate %type_View 150 Offset 2748 - OpMemberDecorate %type_View 151 Offset 2752 - OpMemberDecorate %type_View 152 Offset 2764 - OpMemberDecorate %type_View 153 Offset 2768 - OpMemberDecorate %type_View 154 Offset 2832 - OpMemberDecorate %type_View 155 Offset 2896 - OpMemberDecorate %type_View 156 Offset 2900 - OpMemberDecorate %type_View 157 Offset 2904 - OpMemberDecorate %type_View 158 Offset 2908 - OpMemberDecorate %type_View 159 Offset 2912 - OpMemberDecorate %type_View 160 Offset 2920 - OpMemberDecorate %type_View 161 Offset 2924 - OpMemberDecorate %type_View 162 Offset 2928 - OpMemberDecorate %type_View 163 Offset 2940 - OpMemberDecorate %type_View 164 Offset 2944 - OpMemberDecorate %type_View 165 Offset 2956 - OpMemberDecorate %type_View 166 Offset 2960 - OpMemberDecorate %type_View 167 Offset 2968 - OpMemberDecorate %type_View 168 Offset 2972 - OpMemberDecorate %type_View 169 Offset 2976 - OpMemberDecorate %type_View 170 Offset 2988 - OpMemberDecorate %type_View 171 Offset 2992 - OpMemberDecorate %type_View 172 Offset 3004 - OpMemberDecorate %type_View 173 Offset 3008 - OpMemberDecorate %type_View 174 Offset 3020 - OpMemberDecorate %type_View 175 Offset 3024 - OpMemberDecorate %type_View 176 Offset 3036 - OpMemberDecorate %type_View 177 Offset 3040 - OpMemberDecorate %type_View 178 Offset 3044 - OpDecorate %type_View Block - OpMemberDecorate %type_Primitive 0 Offset 0 - OpMemberDecorate %type_Primitive 0 MatrixStride 16 - OpMemberDecorate %type_Primitive 0 ColMajor - OpMemberDecorate %type_Primitive 1 Offset 64 - OpMemberDecorate %type_Primitive 2 Offset 80 - OpMemberDecorate %type_Primitive 3 Offset 96 - OpMemberDecorate %type_Primitive 3 MatrixStride 16 - OpMemberDecorate %type_Primitive 3 ColMajor - OpMemberDecorate %type_Primitive 4 Offset 160 - OpMemberDecorate %type_Primitive 4 MatrixStride 16 - OpMemberDecorate %type_Primitive 4 ColMajor - OpMemberDecorate %type_Primitive 5 Offset 224 - OpMemberDecorate %type_Primitive 5 MatrixStride 16 - OpMemberDecorate %type_Primitive 5 ColMajor - OpMemberDecorate %type_Primitive 6 Offset 288 - OpMemberDecorate %type_Primitive 7 Offset 300 - OpMemberDecorate %type_Primitive 8 Offset 304 - OpMemberDecorate %type_Primitive 9 Offset 316 - OpMemberDecorate %type_Primitive 10 Offset 320 - OpMemberDecorate %type_Primitive 11 Offset 324 - OpMemberDecorate %type_Primitive 12 Offset 328 - OpMemberDecorate %type_Primitive 13 Offset 332 - OpMemberDecorate %type_Primitive 14 Offset 336 - OpMemberDecorate %type_Primitive 15 Offset 352 - OpMemberDecorate %type_Primitive 16 Offset 368 - OpMemberDecorate %type_Primitive 17 Offset 380 - OpMemberDecorate %type_Primitive 18 Offset 384 - OpMemberDecorate %type_Primitive 19 Offset 396 - OpMemberDecorate %type_Primitive 20 Offset 400 - OpMemberDecorate %type_Primitive 21 Offset 412 - OpMemberDecorate %type_Primitive 22 Offset 416 - OpMemberDecorate %type_Primitive 23 Offset 420 - OpMemberDecorate %type_Primitive 24 Offset 424 - OpMemberDecorate %type_Primitive 25 Offset 428 - OpMemberDecorate %type_Primitive 26 Offset 432 - OpDecorate %type_Primitive Block - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%mat4v4float = OpTypeMatrix %v4float 4 - %v3float = OpTypeVector %float 3 - %v2float = OpTypeVector %float 2 - %int = OpTypeInt 32 1 - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 - %uint_7 = OpConstant %uint 7 - %uint_4 = OpConstant %uint 4 - %v2int = OpTypeVector %int 2 - %uint_0 = OpConstant %uint 0 - %uint_1 = OpConstant %uint 1 - %uint_3 = OpConstant %uint 3 -%_arr_float_uint_3 = OpTypeArray %float %uint_3 - %int_1 = OpConstant %int 1 - %int_0 = OpConstant %int 0 - %int_2 = OpConstant %int 2 - %float_2 = OpConstant %float 2 - %63 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 - %float_0_5 = OpConstant %float 0.5 - %int_3 = OpConstant %int 3 -%float_0_333000004 = OpConstant %float 0.333000004 - %float_1 = OpConstant %float 1 - %68 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 - %float_15 = OpConstant %float 15 - %70 = OpConstantComposite %v4float %float_15 %float_15 %float_15 %float_15 -%FVertexFactoryInterpolantsVSToPS = OpTypeStruct %v4float %v4float -%FVertexFactoryInterpolantsVSToDS = OpTypeStruct %FVertexFactoryInterpolantsVSToPS -%FHitProxyVSToDS = OpTypeStruct %FVertexFactoryInterpolantsVSToDS %v4float %uint -%_arr_v4float_uint_3 = OpTypeArray %v4float %uint_3 -%FHullShaderConstantDominantVertexData = OpTypeStruct %v2float %v4float %v3float -%FHullShaderConstantDominantEdgeData = OpTypeStruct %v2float %v2float %v4float %v4float %v3float %v3float -%FPNTessellationHSToDS = OpTypeStruct %FHitProxyVSToDS %_arr_v4float_uint_3 %v3float %float %float %FHullShaderConstantDominantVertexData %FHullShaderConstantDominantEdgeData - %uint_9 = OpConstant %uint 9 - %v3int = OpTypeVector %int 3 - %74 = OpConstantComposite %v3int %int_0 %int_0 %int_0 - %75 = OpConstantComposite %v3int %int_3 %int_3 %int_3 - %float_0 = OpConstant %float 0 - %77 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 - %78 = OpConstantComposite %v3float %float_0_5 %float_0_5 %float_0_5 - %int_78 = OpConstant %int 78 - %int_15 = OpConstant %int 15 - %int_7 = OpConstant %int 7 - %int_28 = OpConstant %int 28 - %83 = OpConstantComposite %v3int %int_1 %int_1 %int_1 - %84 = OpConstantComposite %v3int %int_2 %int_2 %int_2 -%_arr_v4float_uint_2 = OpTypeArray %v4float %uint_2 -%_arr_v4float_uint_7 = OpTypeArray %v4float %uint_7 -%_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4 - %type_View = OpTypeStruct %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %v3float %float %v3float %float %v3float %float %v3float %float %v3float %float %v4float %v4float %v3float %float %v3float %float %v3float %float %v3float %float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %v3float %float %v3float %float %v3float %float %mat4v4float %mat4v4float %mat4v4float %v4float %v4float %v2float %v2float %v4float %v4float %v4float %v4float %int %float %float %float %v4float %v4float %v4float %v2float %float %float %float %float %float %float %v3float %float %float %float %float %float %float %float %float %uint %uint %uint %uint %float %float %float %float %float %v4float %v3float %float %_arr_v4float_uint_2 %_arr_v4float_uint_2 %v4float %v4float %float %float %float %float %float %float %float %float %float %float %float %float %v3float %float %v3float %float %float %float %float %float %float %float %float %float %float %float %float %float %v4float %uint %uint %uint %uint %v4float %v3float %float %v4float %float %float %float %float %v4float %_arr_v4float_uint_7 %float %float %float %float %uint %float %float %float %v3float %int %_arr_v4float_uint_4 %_arr_v4float_uint_4 %float %float %float %float %v2int %float %float %v3float %float %v3float %float %v2float %float %float %v3float %float %v3float %float %v3float %float %v3float %float %float %float -%_ptr_Uniform_type_View = OpTypePointer Uniform %type_View -%type_Primitive = OpTypeStruct %mat4v4float %v4float %v4float %mat4v4float %mat4v4float %mat4v4float %v3float %float %v3float %float %float %float %float %float %v4float %v4float %v3float %uint %v3float %uint %v3float %int %uint %uint %uint %uint %_arr_v4float_uint_4 -%_ptr_Uniform_type_Primitive = OpTypePointer Uniform %type_Primitive - %uint_12 = OpConstant %uint 12 -%_arr_v4float_uint_12 = OpTypeArray %v4float %uint_12 -%_ptr_Input__arr_v4float_uint_12 = OpTypePointer Input %_arr_v4float_uint_12 -%_arr_uint_uint_12 = OpTypeArray %uint %uint_12 -%_ptr_Input__arr_uint_uint_12 = OpTypePointer Input %_arr_uint_uint_12 -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_Output__arr_v4float_uint_3 = OpTypePointer Output %_arr_v4float_uint_3 -%_arr_uint_uint_3 = OpTypeArray %uint %uint_3 -%_ptr_Output__arr_uint_uint_3 = OpTypePointer Output %_arr_uint_uint_3 -%_arr__arr_v4float_uint_3_uint_3 = OpTypeArray %_arr_v4float_uint_3 %uint_3 -%_ptr_Output__arr__arr_v4float_uint_3_uint_3 = OpTypePointer Output %_arr__arr_v4float_uint_3_uint_3 -%_arr_v3float_uint_3 = OpTypeArray %v3float %uint_3 -%_ptr_Output__arr_v3float_uint_3 = OpTypePointer Output %_arr_v3float_uint_3 -%_ptr_Output__arr_float_uint_3 = OpTypePointer Output %_arr_float_uint_3 -%_arr_v2float_uint_3 = OpTypeArray %v2float %uint_3 -%_ptr_Output__arr_v2float_uint_3 = OpTypePointer Output %_arr_v2float_uint_3 -%_arr_float_uint_4 = OpTypeArray %float %uint_4 -%_ptr_Output__arr_float_uint_4 = OpTypePointer Output %_arr_float_uint_4 -%_arr_float_uint_2 = OpTypeArray %float %uint_2 -%_ptr_Output__arr_float_uint_2 = OpTypePointer Output %_arr_float_uint_2 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %void = OpTypeVoid - %109 = OpTypeFunction %void -%_arr_FHitProxyVSToDS_uint_12 = OpTypeArray %FHitProxyVSToDS %uint_12 -%_ptr_Function__arr_FHitProxyVSToDS_uint_12 = OpTypePointer Function %_arr_FHitProxyVSToDS_uint_12 -%_arr_FPNTessellationHSToDS_uint_3 = OpTypeArray %FPNTessellationHSToDS %uint_3 -%_ptr_Function__arr_FPNTessellationHSToDS_uint_3 = OpTypePointer Function %_arr_FPNTessellationHSToDS_uint_3 -%_ptr_Workgroup__arr_FPNTessellationHSToDS_uint_3 = OpTypePointer Workgroup %_arr_FPNTessellationHSToDS_uint_3 -%_ptr_Output_uint = OpTypePointer Output %uint -%_ptr_Output_v3float = OpTypePointer Output %v3float -%_ptr_Output_float = OpTypePointer Output %float -%_ptr_Output_v2float = OpTypePointer Output %v2float -%_ptr_Function_FPNTessellationHSToDS = OpTypePointer Function %FPNTessellationHSToDS -%_ptr_Workgroup_FPNTessellationHSToDS = OpTypePointer Workgroup %FPNTessellationHSToDS - %bool = OpTypeBool -%_ptr_Function_v4float = OpTypePointer Function %v4float -%_ptr_Function_float = OpTypePointer Function %float -%_ptr_Workgroup_v4float = OpTypePointer Workgroup %v4float -%_ptr_Workgroup_float = OpTypePointer Workgroup %float -%mat3v3float = OpTypeMatrix %v3float 3 -%_ptr_Function_FVertexFactoryInterpolantsVSToDS = OpTypePointer Function %FVertexFactoryInterpolantsVSToDS -%_ptr_Function_FHitProxyVSToDS = OpTypePointer Function %FHitProxyVSToDS - %v3bool = OpTypeVector %bool 3 -%_ptr_Uniform_float = OpTypePointer Uniform %float -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float -%_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float -%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float - %View = OpVariable %_ptr_Uniform_type_View Uniform - %Primitive = OpVariable %_ptr_Uniform_type_Primitive Uniform -%in_var_TEXCOORD10_centroid = OpVariable %_ptr_Input__arr_v4float_uint_12 Input -%in_var_TEXCOORD11_centroid = OpVariable %_ptr_Input__arr_v4float_uint_12 Input -%in_var_VS_To_DS_Position = OpVariable %_ptr_Input__arr_v4float_uint_12 Input -%in_var_VS_To_DS_VertexID = OpVariable %_ptr_Input__arr_uint_uint_12 Input -%gl_InvocationID = OpVariable %_ptr_Input_uint Input -%out_var_TEXCOORD10_centroid = OpVariable %_ptr_Output__arr_v4float_uint_3 Output -%out_var_TEXCOORD11_centroid = OpVariable %_ptr_Output__arr_v4float_uint_3 Output -%out_var_VS_To_DS_Position = OpVariable %_ptr_Output__arr_v4float_uint_3 Output -%out_var_VS_To_DS_VertexID = OpVariable %_ptr_Output__arr_uint_uint_3 Output -%out_var_PN_POSITION = OpVariable %_ptr_Output__arr__arr_v4float_uint_3_uint_3 Output -%out_var_PN_DisplacementScales = OpVariable %_ptr_Output__arr_v3float_uint_3 Output -%out_var_PN_TessellationMultiplier = OpVariable %_ptr_Output__arr_float_uint_3 Output -%out_var_PN_WorldDisplacementMultiplier = OpVariable %_ptr_Output__arr_float_uint_3 Output -%out_var_PN_DominantVertex = OpVariable %_ptr_Output__arr_v2float_uint_3 Output -%out_var_PN_DominantVertex1 = OpVariable %_ptr_Output__arr_v4float_uint_3 Output -%out_var_PN_DominantVertex2 = OpVariable %_ptr_Output__arr_v3float_uint_3 Output -%out_var_PN_DominantEdge = OpVariable %_ptr_Output__arr_v2float_uint_3 Output -%out_var_PN_DominantEdge1 = OpVariable %_ptr_Output__arr_v2float_uint_3 Output -%out_var_PN_DominantEdge2 = OpVariable %_ptr_Output__arr_v4float_uint_3 Output -%out_var_PN_DominantEdge3 = OpVariable %_ptr_Output__arr_v4float_uint_3 Output -%out_var_PN_DominantEdge4 = OpVariable %_ptr_Output__arr_v3float_uint_3 Output -%out_var_PN_DominantEdge5 = OpVariable %_ptr_Output__arr_v3float_uint_3 Output -%gl_TessLevelOuter = OpVariable %_ptr_Output__arr_float_uint_4 Output -%gl_TessLevelInner = OpVariable %_ptr_Output__arr_float_uint_2 Output -%out_var_PN_POSITION9 = OpVariable %_ptr_Output_v4float Output - %130 = OpConstantNull %v2float -%float_0_333333343 = OpConstant %float 0.333333343 - %132 = OpConstantComposite %v4float %float_0_333333343 %float_0_333333343 %float_0_333333343 %float_0_333333343 - %133 = OpConstantComposite %v4float %float_0_5 %float_0_5 %float_0_5 %float_0_5 -%float_0_166666672 = OpConstant %float 0.166666672 - %135 = OpConstantComposite %v4float %float_0_166666672 %float_0_166666672 %float_0_166666672 %float_0_166666672 - %136 = OpUndef %v4float - -; XXX: Original asm used Function here, which is wrong. -; This patches the SPIR-V to be correct. -%temp_var_hullMainRetVal = OpVariable %_ptr_Workgroup__arr_FPNTessellationHSToDS_uint_3 Workgroup - - %MainHull = OpFunction %void None %109 - %137 = OpLabel -%param_var_I = OpVariable %_ptr_Function__arr_FHitProxyVSToDS_uint_12 Function - %138 = OpLoad %_arr_v4float_uint_12 %in_var_TEXCOORD10_centroid - %139 = OpLoad %_arr_v4float_uint_12 %in_var_TEXCOORD11_centroid - %140 = OpCompositeExtract %v4float %138 0 - %141 = OpCompositeExtract %v4float %139 0 - %142 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %140 %141 - %143 = OpCompositeExtract %v4float %138 1 - %144 = OpCompositeExtract %v4float %139 1 - %145 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %143 %144 - %146 = OpCompositeExtract %v4float %138 2 - %147 = OpCompositeExtract %v4float %139 2 - %148 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %146 %147 - %149 = OpCompositeExtract %v4float %138 3 - %150 = OpCompositeExtract %v4float %139 3 - %151 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %149 %150 - %152 = OpCompositeExtract %v4float %138 4 - %153 = OpCompositeExtract %v4float %139 4 - %154 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %152 %153 - %155 = OpCompositeExtract %v4float %138 5 - %156 = OpCompositeExtract %v4float %139 5 - %157 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %155 %156 - %158 = OpCompositeExtract %v4float %138 6 - %159 = OpCompositeExtract %v4float %139 6 - %160 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %158 %159 - %161 = OpCompositeExtract %v4float %138 7 - %162 = OpCompositeExtract %v4float %139 7 - %163 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %161 %162 - %164 = OpCompositeExtract %v4float %138 8 - %165 = OpCompositeExtract %v4float %139 8 - %166 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %164 %165 - %167 = OpCompositeExtract %v4float %138 9 - %168 = OpCompositeExtract %v4float %139 9 - %169 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %167 %168 - %170 = OpCompositeExtract %v4float %138 10 - %171 = OpCompositeExtract %v4float %139 10 - %172 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %170 %171 - %173 = OpCompositeExtract %v4float %138 11 - %174 = OpCompositeExtract %v4float %139 11 - %175 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %173 %174 - %176 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %142 - %177 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %145 - %178 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %148 - %179 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %151 - %180 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %154 - %181 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %157 - %182 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %160 - %183 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %163 - %184 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %166 - %185 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %169 - %186 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %172 - %187 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %175 - %188 = OpLoad %_arr_v4float_uint_12 %in_var_VS_To_DS_Position - %189 = OpLoad %_arr_uint_uint_12 %in_var_VS_To_DS_VertexID - %190 = OpCompositeExtract %v4float %188 0 - %191 = OpCompositeExtract %uint %189 0 - %192 = OpCompositeConstruct %FHitProxyVSToDS %176 %190 %191 - %193 = OpCompositeExtract %v4float %188 1 - %194 = OpCompositeExtract %uint %189 1 - %195 = OpCompositeConstruct %FHitProxyVSToDS %177 %193 %194 - %196 = OpCompositeExtract %v4float %188 2 - %197 = OpCompositeExtract %uint %189 2 - %198 = OpCompositeConstruct %FHitProxyVSToDS %178 %196 %197 - %199 = OpCompositeExtract %v4float %188 3 - %200 = OpCompositeExtract %uint %189 3 - %201 = OpCompositeConstruct %FHitProxyVSToDS %179 %199 %200 - %202 = OpCompositeExtract %v4float %188 4 - %203 = OpCompositeExtract %uint %189 4 - %204 = OpCompositeConstruct %FHitProxyVSToDS %180 %202 %203 - %205 = OpCompositeExtract %v4float %188 5 - %206 = OpCompositeExtract %uint %189 5 - %207 = OpCompositeConstruct %FHitProxyVSToDS %181 %205 %206 - %208 = OpCompositeExtract %v4float %188 6 - %209 = OpCompositeExtract %uint %189 6 - %210 = OpCompositeConstruct %FHitProxyVSToDS %182 %208 %209 - %211 = OpCompositeExtract %v4float %188 7 - %212 = OpCompositeExtract %uint %189 7 - %213 = OpCompositeConstruct %FHitProxyVSToDS %183 %211 %212 - %214 = OpCompositeExtract %v4float %188 8 - %215 = OpCompositeExtract %uint %189 8 - %216 = OpCompositeConstruct %FHitProxyVSToDS %184 %214 %215 - %217 = OpCompositeExtract %v4float %188 9 - %218 = OpCompositeExtract %uint %189 9 - %219 = OpCompositeConstruct %FHitProxyVSToDS %185 %217 %218 - %220 = OpCompositeExtract %v4float %188 10 - %221 = OpCompositeExtract %uint %189 10 - %222 = OpCompositeConstruct %FHitProxyVSToDS %186 %220 %221 - %223 = OpCompositeExtract %v4float %188 11 - %224 = OpCompositeExtract %uint %189 11 - %225 = OpCompositeConstruct %FHitProxyVSToDS %187 %223 %224 - %226 = OpCompositeConstruct %_arr_FHitProxyVSToDS_uint_12 %192 %195 %198 %201 %204 %207 %210 %213 %216 %219 %222 %225 - OpStore %param_var_I %226 - %227 = OpLoad %uint %gl_InvocationID - %228 = OpAccessChain %_ptr_Function_FVertexFactoryInterpolantsVSToDS %param_var_I %227 %int_0 - %229 = OpLoad %FVertexFactoryInterpolantsVSToDS %228 - %230 = OpCompositeExtract %FVertexFactoryInterpolantsVSToPS %229 0 - %231 = OpCompositeExtract %v4float %230 0 - %232 = OpCompositeExtract %v4float %230 1 - %233 = OpVectorShuffle %v3float %231 %231 0 1 2 - %234 = OpVectorShuffle %v3float %232 %232 0 1 2 - %235 = OpExtInst %v3float %1 Cross %234 %233 - %236 = OpCompositeExtract %float %232 3 - %237 = OpCompositeConstruct %v3float %236 %236 %236 - %238 = OpFMul %v3float %235 %237 - %239 = OpCompositeConstruct %mat3v3float %233 %238 %234 - %240 = OpCompositeExtract %float %232 0 - %241 = OpCompositeExtract %float %232 1 - %242 = OpCompositeExtract %float %232 2 - %243 = OpCompositeConstruct %v4float %240 %241 %242 %float_0 - %244 = OpAccessChain %_ptr_Uniform_v4float %Primitive %int_15 - %245 = OpLoad %v4float %244 - %246 = OpVectorShuffle %v3float %245 %245 0 1 2 - %247 = OpVectorTimesMatrix %v3float %246 %239 - %248 = OpULessThan %bool %227 %uint_2 - %249 = OpIAdd %uint %227 %uint_1 - %250 = OpSelect %uint %248 %249 %uint_0 - %251 = OpIMul %uint %uint_2 %227 - %252 = OpIAdd %uint %uint_3 %251 - %253 = OpIAdd %uint %251 %uint_4 - %254 = OpAccessChain %_ptr_Function_FHitProxyVSToDS %param_var_I %227 - %255 = OpLoad %FHitProxyVSToDS %254 - %256 = OpAccessChain %_ptr_Function_v4float %param_var_I %227 %int_1 - %257 = OpLoad %v4float %256 - %258 = OpULessThan %bool %250 %uint_2 - %259 = OpIAdd %uint %250 %uint_1 - %260 = OpSelect %uint %258 %259 %uint_0 - %261 = OpIMul %uint %uint_2 %250 - %262 = OpIAdd %uint %uint_3 %261 - %263 = OpIAdd %uint %261 %uint_4 - %264 = OpIAdd %uint %uint_9 %227 - %265 = OpAccessChain %_ptr_Function_FHitProxyVSToDS %param_var_I %264 - %266 = OpLoad %FHitProxyVSToDS %265 - %267 = OpCompositeExtract %FVertexFactoryInterpolantsVSToDS %266 0 - %268 = OpCompositeExtract %FVertexFactoryInterpolantsVSToPS %267 0 - %269 = OpCompositeExtract %v4float %268 0 - %270 = OpCompositeExtract %v4float %268 1 - %271 = OpVectorShuffle %v3float %269 %269 0 1 2 - %272 = OpCompositeExtract %float %270 0 - %273 = OpCompositeExtract %float %270 1 - %274 = OpCompositeExtract %float %270 2 - %275 = OpCompositeConstruct %v4float %272 %273 %274 %float_0 - %276 = OpAccessChain %_ptr_Function_FHitProxyVSToDS %param_var_I %250 - %277 = OpLoad %FHitProxyVSToDS %276 - %278 = OpCompositeExtract %uint %277 2 - %279 = OpAccessChain %_ptr_Function_FHitProxyVSToDS %param_var_I %260 - %280 = OpLoad %FHitProxyVSToDS %279 - %281 = OpCompositeExtract %uint %280 2 - %282 = OpAccessChain %_ptr_Function_FHitProxyVSToDS %param_var_I %262 - %283 = OpLoad %FHitProxyVSToDS %282 - %284 = OpCompositeExtract %uint %283 2 - %285 = OpAccessChain %_ptr_Function_FHitProxyVSToDS %param_var_I %263 - %286 = OpLoad %FHitProxyVSToDS %285 - %287 = OpCompositeExtract %uint %286 2 - %288 = OpCompositeExtract %FVertexFactoryInterpolantsVSToDS %277 0 - %289 = OpCompositeExtract %FVertexFactoryInterpolantsVSToPS %288 0 - %290 = OpCompositeExtract %v4float %289 0 - %291 = OpCompositeExtract %v4float %289 1 - %292 = OpCompositeExtract %FVertexFactoryInterpolantsVSToDS %280 0 - %293 = OpCompositeExtract %FVertexFactoryInterpolantsVSToPS %292 0 - %294 = OpCompositeExtract %v4float %293 0 - %295 = OpCompositeExtract %v4float %293 1 - %296 = OpULessThan %bool %284 %278 - %297 = OpIEqual %bool %284 %278 - %298 = OpULessThan %bool %287 %281 - %299 = OpLogicalAnd %bool %297 %298 - %300 = OpLogicalOr %bool %296 %299 - OpSelectionMerge %301 None - OpBranchConditional %300 %302 %301 - %302 = OpLabel - %303 = OpCompositeExtract %FVertexFactoryInterpolantsVSToDS %283 0 - %304 = OpCompositeExtract %FVertexFactoryInterpolantsVSToPS %303 0 - %305 = OpCompositeExtract %v4float %304 0 - %306 = OpCompositeExtract %v4float %304 1 - %307 = OpCompositeExtract %FVertexFactoryInterpolantsVSToDS %286 0 - %308 = OpCompositeExtract %FVertexFactoryInterpolantsVSToPS %307 0 - %309 = OpCompositeExtract %v4float %308 0 - %310 = OpCompositeExtract %v4float %308 1 - OpBranch %301 - %301 = OpLabel - %311 = OpPhi %v4float %294 %137 %309 %302 - %312 = OpPhi %v4float %295 %137 %310 %302 - %313 = OpPhi %v4float %290 %137 %305 %302 - %314 = OpPhi %v4float %291 %137 %306 %302 - %315 = OpVectorShuffle %v3float %313 %313 0 1 2 - %316 = OpVectorShuffle %v3float %311 %311 0 1 2 - %317 = OpCompositeExtract %float %314 0 - %318 = OpCompositeExtract %float %314 1 - %319 = OpCompositeExtract %float %314 2 - %320 = OpCompositeConstruct %v4float %317 %318 %319 %float_0 - %321 = OpCompositeExtract %float %312 0 - %322 = OpCompositeExtract %float %312 1 - %323 = OpCompositeExtract %float %312 2 - %324 = OpCompositeConstruct %v4float %321 %322 %323 %float_0 - %325 = OpAccessChain %_ptr_Function_FVertexFactoryInterpolantsVSToDS %param_var_I %250 %int_0 - %326 = OpLoad %FVertexFactoryInterpolantsVSToDS %325 - %327 = OpCompositeExtract %FVertexFactoryInterpolantsVSToPS %326 0 - %328 = OpCompositeExtract %v4float %327 1 - %329 = OpCompositeExtract %float %328 0 - %330 = OpCompositeExtract %float %328 1 - %331 = OpCompositeExtract %float %328 2 - %332 = OpCompositeConstruct %v4float %329 %330 %331 %float_0 - %333 = OpAccessChain %_ptr_Function_FVertexFactoryInterpolantsVSToDS %param_var_I %252 %int_0 - %334 = OpLoad %FVertexFactoryInterpolantsVSToDS %333 - %335 = OpCompositeExtract %FVertexFactoryInterpolantsVSToPS %334 0 - %336 = OpCompositeExtract %v4float %335 1 - %337 = OpCompositeExtract %float %336 0 - %338 = OpCompositeExtract %float %336 1 - %339 = OpCompositeExtract %float %336 2 - %340 = OpCompositeConstruct %v4float %337 %338 %339 %float_0 - %341 = OpAccessChain %_ptr_Function_FVertexFactoryInterpolantsVSToDS %param_var_I %253 %int_0 - %342 = OpLoad %FVertexFactoryInterpolantsVSToDS %341 - %343 = OpCompositeExtract %FVertexFactoryInterpolantsVSToPS %342 0 - %344 = OpCompositeExtract %v4float %343 1 - %345 = OpCompositeExtract %float %344 0 - %346 = OpCompositeExtract %float %344 1 - %347 = OpCompositeExtract %float %344 2 - %348 = OpCompositeConstruct %v4float %345 %346 %347 %float_0 - %349 = OpLoad %v4float %256 - %350 = OpAccessChain %_ptr_Function_v4float %param_var_I %250 %int_1 - %351 = OpLoad %v4float %350 - %352 = OpFMul %v4float %63 %349 - %353 = OpFAdd %v4float %352 %351 - %354 = OpFSub %v4float %351 %349 - %355 = OpDot %float %354 %243 - %356 = OpCompositeConstruct %v4float %355 %355 %355 %355 - %357 = OpFMul %v4float %356 %243 - %358 = OpFSub %v4float %353 %357 - %359 = OpFMul %v4float %358 %132 - %360 = OpAccessChain %_ptr_Function_v4float %param_var_I %252 %int_1 - %361 = OpLoad %v4float %360 - %362 = OpAccessChain %_ptr_Function_v4float %param_var_I %253 %int_1 - %363 = OpLoad %v4float %362 - %364 = OpFMul %v4float %63 %361 - %365 = OpFAdd %v4float %364 %363 - %366 = OpFSub %v4float %363 %361 - %367 = OpDot %float %366 %340 - %368 = OpCompositeConstruct %v4float %367 %367 %367 %367 - %369 = OpFMul %v4float %368 %340 - %370 = OpFSub %v4float %365 %369 - %371 = OpFMul %v4float %370 %132 - %372 = OpFAdd %v4float %359 %371 - %373 = OpFMul %v4float %372 %133 - %374 = OpLoad %v4float %350 - %375 = OpLoad %v4float %256 - %376 = OpFMul %v4float %63 %374 - %377 = OpFAdd %v4float %376 %375 - %378 = OpFSub %v4float %375 %374 - %379 = OpDot %float %378 %332 - %380 = OpCompositeConstruct %v4float %379 %379 %379 %379 - %381 = OpFMul %v4float %380 %332 - %382 = OpFSub %v4float %377 %381 - %383 = OpFMul %v4float %382 %132 - %384 = OpLoad %v4float %362 - %385 = OpLoad %v4float %360 - %386 = OpFMul %v4float %63 %384 - %387 = OpFAdd %v4float %386 %385 - %388 = OpFSub %v4float %385 %384 - %389 = OpDot %float %388 %348 - %390 = OpCompositeConstruct %v4float %389 %389 %389 %389 - %391 = OpFMul %v4float %390 %348 - %392 = OpFSub %v4float %387 %391 - %393 = OpFMul %v4float %392 %132 - %394 = OpFAdd %v4float %383 %393 - %395 = OpFMul %v4float %394 %133 - %396 = OpCompositeConstruct %FHullShaderConstantDominantEdgeData %130 %130 %320 %324 %315 %316 - %397 = OpCompositeConstruct %FHullShaderConstantDominantVertexData %130 %275 %271 - %398 = OpCompositeConstruct %_arr_v4float_uint_3 %257 %373 %395 - %399 = OpCompositeConstruct %FPNTessellationHSToDS %255 %398 %247 %float_1 %float_1 %397 %396 - %400 = OpCompositeExtract %FVertexFactoryInterpolantsVSToDS %255 0 - %401 = OpCompositeExtract %FVertexFactoryInterpolantsVSToPS %400 0 - %402 = OpCompositeExtract %v4float %401 0 - %403 = OpAccessChain %_ptr_Output_v4float %out_var_TEXCOORD10_centroid %227 - OpStore %403 %402 - %404 = OpCompositeExtract %v4float %401 1 - %405 = OpAccessChain %_ptr_Output_v4float %out_var_TEXCOORD11_centroid %227 - OpStore %405 %404 - %406 = OpCompositeExtract %v4float %255 1 - %407 = OpAccessChain %_ptr_Output_v4float %out_var_VS_To_DS_Position %227 - OpStore %407 %406 - %408 = OpCompositeExtract %uint %255 2 - %409 = OpAccessChain %_ptr_Output_uint %out_var_VS_To_DS_VertexID %227 - OpStore %409 %408 - %410 = OpAccessChain %_ptr_Output__arr_v4float_uint_3 %out_var_PN_POSITION %227 - OpStore %410 %398 - %411 = OpAccessChain %_ptr_Output_v3float %out_var_PN_DisplacementScales %227 - OpStore %411 %247 - %412 = OpAccessChain %_ptr_Output_float %out_var_PN_TessellationMultiplier %227 - OpStore %412 %float_1 - %413 = OpAccessChain %_ptr_Output_float %out_var_PN_WorldDisplacementMultiplier %227 - OpStore %413 %float_1 - %414 = OpAccessChain %_ptr_Output_v2float %out_var_PN_DominantVertex %227 - OpStore %414 %130 - %415 = OpAccessChain %_ptr_Output_v4float %out_var_PN_DominantVertex1 %227 - OpStore %415 %275 - %416 = OpAccessChain %_ptr_Output_v3float %out_var_PN_DominantVertex2 %227 - OpStore %416 %271 - %417 = OpAccessChain %_ptr_Output_v2float %out_var_PN_DominantEdge %227 - OpStore %417 %130 - %418 = OpAccessChain %_ptr_Output_v2float %out_var_PN_DominantEdge1 %227 - OpStore %418 %130 - %419 = OpAccessChain %_ptr_Output_v4float %out_var_PN_DominantEdge2 %227 - OpStore %419 %320 - %420 = OpAccessChain %_ptr_Output_v4float %out_var_PN_DominantEdge3 %227 - OpStore %420 %324 - %421 = OpAccessChain %_ptr_Output_v3float %out_var_PN_DominantEdge4 %227 - OpStore %421 %315 - %422 = OpAccessChain %_ptr_Output_v3float %out_var_PN_DominantEdge5 %227 - OpStore %422 %316 - %423 = OpAccessChain %_ptr_Workgroup_FPNTessellationHSToDS %temp_var_hullMainRetVal %227 - OpStore %423 %399 - OpControlBarrier %uint_2 %uint_4 %uint_0 - %424 = OpIEqual %bool %227 %uint_0 - OpSelectionMerge %if_merge None - OpBranchConditional %424 %425 %if_merge - %425 = OpLabel - %426 = OpAccessChain %_ptr_Uniform_mat4v4float %View %int_0 - %427 = OpLoad %mat4v4float %426 - %428 = OpAccessChain %_ptr_Uniform_mat4v4float %View %int_7 - %429 = OpLoad %mat4v4float %428 - %430 = OpAccessChain %_ptr_Uniform_v3float %View %int_28 - %431 = OpLoad %v3float %430 - %432 = OpAccessChain %_ptr_Uniform_float %View %int_78 - %433 = OpLoad %float %432 - %434 = OpAccessChain %_ptr_Workgroup_v4float %temp_var_hullMainRetVal %uint_0 %int_1 %int_0 - %435 = OpLoad %v4float %434 - %436 = OpAccessChain %_ptr_Workgroup_v4float %temp_var_hullMainRetVal %uint_0 %int_1 %int_1 - %437 = OpLoad %v4float %436 - %438 = OpAccessChain %_ptr_Workgroup_v4float %temp_var_hullMainRetVal %uint_0 %int_1 %int_2 - %439 = OpLoad %v4float %438 - %440 = OpAccessChain %_ptr_Workgroup_v4float %temp_var_hullMainRetVal %uint_1 %int_1 %int_0 - %441 = OpLoad %v4float %440 - %442 = OpAccessChain %_ptr_Workgroup_v4float %temp_var_hullMainRetVal %uint_1 %int_1 %int_1 - %443 = OpLoad %v4float %442 - %444 = OpAccessChain %_ptr_Workgroup_v4float %temp_var_hullMainRetVal %uint_1 %int_1 %int_2 - %445 = OpLoad %v4float %444 - %446 = OpAccessChain %_ptr_Workgroup_v4float %temp_var_hullMainRetVal %uint_2 %int_1 %int_0 - %447 = OpLoad %v4float %446 - %448 = OpAccessChain %_ptr_Workgroup_v4float %temp_var_hullMainRetVal %uint_2 %int_1 %int_1 - %449 = OpLoad %v4float %448 - %450 = OpAccessChain %_ptr_Workgroup_v4float %temp_var_hullMainRetVal %uint_2 %int_1 %int_2 - %451 = OpLoad %v4float %450 - %452 = OpFAdd %v4float %437 %439 - %453 = OpFAdd %v4float %452 %443 - %454 = OpFAdd %v4float %453 %445 - %455 = OpFAdd %v4float %454 %449 - %456 = OpFAdd %v4float %455 %451 - %457 = OpFMul %v4float %456 %135 - %458 = OpFAdd %v4float %447 %441 - %459 = OpFAdd %v4float %458 %435 - %460 = OpFMul %v4float %459 %132 - %461 = OpFSub %v4float %457 %460 - %462 = OpFMul %v4float %461 %133 - %463 = OpFAdd %v4float %457 %462 - %464 = OpAccessChain %_ptr_Workgroup_float %temp_var_hullMainRetVal %uint_1 %int_3 - %465 = OpLoad %float %464 - %466 = OpAccessChain %_ptr_Workgroup_float %temp_var_hullMainRetVal %uint_2 %int_3 - %467 = OpLoad %float %466 - %468 = OpFAdd %float %465 %467 - %469 = OpFMul %float %float_0_5 %468 - %470 = OpCompositeInsert %v4float %469 %136 0 - %471 = OpLoad %float %466 - %472 = OpAccessChain %_ptr_Workgroup_float %temp_var_hullMainRetVal %uint_0 %int_3 - %473 = OpLoad %float %472 - %474 = OpFAdd %float %471 %473 - %475 = OpFMul %float %float_0_5 %474 - %476 = OpCompositeInsert %v4float %475 %470 1 - %477 = OpLoad %float %472 - %478 = OpLoad %float %464 - %479 = OpFAdd %float %477 %478 - %480 = OpFMul %float %float_0_5 %479 - %481 = OpCompositeInsert %v4float %480 %476 2 - %482 = OpLoad %float %472 - %483 = OpLoad %float %464 - %484 = OpFAdd %float %482 %483 - %485 = OpLoad %float %466 - %486 = OpFAdd %float %484 %485 - %487 = OpFMul %float %float_0_333000004 %486 - %488 = OpCompositeInsert %v4float %487 %481 3 - %489 = OpVectorShuffle %v3float %435 %435 0 1 2 - %490 = OpVectorShuffle %v3float %441 %441 0 1 2 - %491 = OpVectorShuffle %v3float %447 %447 0 1 2 - OpBranch %492 - %492 = OpLabel - OpLoopMerge %493 %494 None - OpBranch %495 - %495 = OpLabel - %496 = OpMatrixTimesVector %v4float %429 %77 - %497 = OpCompositeExtract %float %435 0 - %498 = OpCompositeExtract %float %435 1 - %499 = OpCompositeExtract %float %435 2 - %500 = OpCompositeConstruct %v4float %497 %498 %499 %float_1 - %501 = OpMatrixTimesVector %v4float %427 %500 - %502 = OpVectorShuffle %v3float %501 %501 0 1 2 - %503 = OpVectorShuffle %v3float %496 %496 0 1 2 - %504 = OpFSub %v3float %502 %503 - %505 = OpCompositeExtract %float %501 3 - %506 = OpCompositeExtract %float %496 3 - %507 = OpFAdd %float %505 %506 - %508 = OpCompositeConstruct %v3float %507 %507 %507 - %509 = OpFOrdLessThan %v3bool %504 %508 - %510 = OpSelect %v3int %509 %83 %74 - %511 = OpFAdd %v3float %502 %503 - %512 = OpFNegate %float %505 - %513 = OpFSub %float %512 %506 - %514 = OpCompositeConstruct %v3float %513 %513 %513 - %515 = OpFOrdGreaterThan %v3bool %511 %514 - %516 = OpSelect %v3int %515 %83 %74 - %517 = OpIMul %v3int %84 %516 - %518 = OpIAdd %v3int %510 %517 - %519 = OpCompositeExtract %float %441 0 - %520 = OpCompositeExtract %float %441 1 - %521 = OpCompositeExtract %float %441 2 - %522 = OpCompositeConstruct %v4float %519 %520 %521 %float_1 - %523 = OpMatrixTimesVector %v4float %427 %522 - %524 = OpVectorShuffle %v3float %523 %523 0 1 2 - %525 = OpFSub %v3float %524 %503 - %526 = OpCompositeExtract %float %523 3 - %527 = OpFAdd %float %526 %506 - %528 = OpCompositeConstruct %v3float %527 %527 %527 - %529 = OpFOrdLessThan %v3bool %525 %528 - %530 = OpSelect %v3int %529 %83 %74 - %531 = OpFAdd %v3float %524 %503 - %532 = OpFNegate %float %526 - %533 = OpFSub %float %532 %506 - %534 = OpCompositeConstruct %v3float %533 %533 %533 - %535 = OpFOrdGreaterThan %v3bool %531 %534 - %536 = OpSelect %v3int %535 %83 %74 - %537 = OpIMul %v3int %84 %536 - %538 = OpIAdd %v3int %530 %537 - %539 = OpBitwiseOr %v3int %518 %538 - %540 = OpCompositeExtract %float %447 0 - %541 = OpCompositeExtract %float %447 1 - %542 = OpCompositeExtract %float %447 2 - %543 = OpCompositeConstruct %v4float %540 %541 %542 %float_1 - %544 = OpMatrixTimesVector %v4float %427 %543 - %545 = OpVectorShuffle %v3float %544 %544 0 1 2 - %546 = OpFSub %v3float %545 %503 - %547 = OpCompositeExtract %float %544 3 - %548 = OpFAdd %float %547 %506 - %549 = OpCompositeConstruct %v3float %548 %548 %548 - %550 = OpFOrdLessThan %v3bool %546 %549 - %551 = OpSelect %v3int %550 %83 %74 - %552 = OpFAdd %v3float %545 %503 - %553 = OpFNegate %float %547 - %554 = OpFSub %float %553 %506 - %555 = OpCompositeConstruct %v3float %554 %554 %554 - %556 = OpFOrdGreaterThan %v3bool %552 %555 - %557 = OpSelect %v3int %556 %83 %74 - %558 = OpIMul %v3int %84 %557 - %559 = OpIAdd %v3int %551 %558 - %560 = OpBitwiseOr %v3int %539 %559 - %561 = OpINotEqual %v3bool %560 %75 - %562 = OpAny %bool %561 - OpSelectionMerge %563 None - OpBranchConditional %562 %564 %563 - %564 = OpLabel - OpBranch %493 - %563 = OpLabel - %565 = OpFSub %v3float %489 %490 - %566 = OpFSub %v3float %490 %491 - %567 = OpFSub %v3float %491 %489 - %568 = OpFAdd %v3float %489 %490 - %569 = OpFMul %v3float %78 %568 - %570 = OpFSub %v3float %569 %431 - %571 = OpFAdd %v3float %490 %491 - %572 = OpFMul %v3float %78 %571 - %573 = OpFSub %v3float %572 %431 - %574 = OpFAdd %v3float %491 %489 - %575 = OpFMul %v3float %78 %574 - %576 = OpFSub %v3float %575 %431 - %577 = OpDot %float %566 %566 - %578 = OpDot %float %573 %573 - %579 = OpFDiv %float %577 %578 - %580 = OpExtInst %float %1 Sqrt %579 - %581 = OpDot %float %567 %567 - %582 = OpDot %float %576 %576 - %583 = OpFDiv %float %581 %582 - %584 = OpExtInst %float %1 Sqrt %583 - %585 = OpDot %float %565 %565 - %586 = OpDot %float %570 %570 - %587 = OpFDiv %float %585 %586 - %588 = OpExtInst %float %1 Sqrt %587 - %589 = OpCompositeConstruct %v4float %580 %584 %588 %float_1 - %590 = OpFAdd %float %580 %584 - %591 = OpFAdd %float %590 %588 - %592 = OpFMul %float %float_0_333000004 %591 - %593 = OpCompositeInsert %v4float %592 %589 3 - %594 = OpCompositeConstruct %v4float %433 %433 %433 %433 - %595 = OpFMul %v4float %594 %593 - OpBranch %493 - %494 = OpLabel - OpBranch %492 - %493 = OpLabel - %596 = OpPhi %v4float %77 %564 %595 %563 - %597 = OpFMul %v4float %488 %596 - %598 = OpExtInst %v4float %1 FClamp %597 %68 %70 - %599 = OpCompositeExtract %float %598 0 - %600 = OpCompositeExtract %float %598 1 - %601 = OpCompositeExtract %float %598 2 - %602 = OpCompositeExtract %float %598 3 - %603 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %uint_0 - OpStore %603 %599 - %604 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %uint_1 - OpStore %604 %600 - %605 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %uint_2 - OpStore %605 %601 - %606 = OpAccessChain %_ptr_Output_float %gl_TessLevelInner %uint_0 - OpStore %606 %602 - OpStore %out_var_PN_POSITION9 %463 - OpBranch %if_merge - %if_merge = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-ue4/asm/tesc/hs-texcoord-array.asm.tesc b/third_party/spirv-cross/shaders-ue4/asm/tesc/hs-texcoord-array.asm.tesc deleted file mode 100644 index 1a9b95e085..0000000000 --- a/third_party/spirv-cross/shaders-ue4/asm/tesc/hs-texcoord-array.asm.tesc +++ /dev/null @@ -1,1144 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 531 -; Schema: 0 - OpCapability Tessellation - OpCapability SampledBuffer - OpExtension "SPV_GOOGLE_hlsl_functionality1" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %MainHull "main" %in_var_TEXCOORD10_centroid %in_var_TEXCOORD11_centroid %in_var_COLOR0 %in_var_TEXCOORD0 %in_var_VS_To_DS_Position %gl_InvocationID %out_var_TEXCOORD10_centroid %out_var_TEXCOORD11_centroid %out_var_COLOR0 %out_var_TEXCOORD0 %out_var_VS_To_DS_Position %out_var_PN_POSITION %out_var_PN_DisplacementScales %out_var_PN_TessellationMultiplier %out_var_PN_WorldDisplacementMultiplier %gl_TessLevelOuter %gl_TessLevelInner %out_var_PN_POSITION9 - OpExecutionMode %MainHull Triangles - OpExecutionMode %MainHull SpacingFractionalOdd - OpExecutionMode %MainHull VertexOrderCw - OpExecutionMode %MainHull OutputVertices 3 - OpSource HLSL 600 - OpName %FPNTessellationHSToDS "FPNTessellationHSToDS" - OpMemberName %FPNTessellationHSToDS 0 "PassSpecificData" - OpMemberName %FPNTessellationHSToDS 1 "WorldPosition" - OpMemberName %FPNTessellationHSToDS 2 "DisplacementScale" - OpMemberName %FPNTessellationHSToDS 3 "TessellationMultiplier" - OpMemberName %FPNTessellationHSToDS 4 "WorldDisplacementMultiplier" - OpName %FHitProxyVSToDS "FHitProxyVSToDS" - OpMemberName %FHitProxyVSToDS 0 "FactoryInterpolants" - OpMemberName %FHitProxyVSToDS 1 "Position" - OpName %FVertexFactoryInterpolantsVSToDS "FVertexFactoryInterpolantsVSToDS" - OpMemberName %FVertexFactoryInterpolantsVSToDS 0 "InterpolantsVSToPS" - OpName %FVertexFactoryInterpolantsVSToPS "FVertexFactoryInterpolantsVSToPS" - OpMemberName %FVertexFactoryInterpolantsVSToPS 0 "TangentToWorld0" - OpMemberName %FVertexFactoryInterpolantsVSToPS 1 "TangentToWorld2" - OpMemberName %FVertexFactoryInterpolantsVSToPS 2 "Color" - OpMemberName %FVertexFactoryInterpolantsVSToPS 3 "TexCoords" - OpName %type_View "type.View" - OpMemberName %type_View 0 "View_TranslatedWorldToClip" - OpMemberName %type_View 1 "View_WorldToClip" - OpMemberName %type_View 2 "View_ClipToWorld" - OpMemberName %type_View 3 "View_TranslatedWorldToView" - OpMemberName %type_View 4 "View_ViewToTranslatedWorld" - OpMemberName %type_View 5 "View_TranslatedWorldToCameraView" - OpMemberName %type_View 6 "View_CameraViewToTranslatedWorld" - OpMemberName %type_View 7 "View_ViewToClip" - OpMemberName %type_View 8 "View_ViewToClipNoAA" - OpMemberName %type_View 9 "View_ClipToView" - OpMemberName %type_View 10 "View_ClipToTranslatedWorld" - OpMemberName %type_View 11 "View_SVPositionToTranslatedWorld" - OpMemberName %type_View 12 "View_ScreenToWorld" - OpMemberName %type_View 13 "View_ScreenToTranslatedWorld" - OpMemberName %type_View 14 "View_ViewForward" - OpMemberName %type_View 15 "PrePadding_View_908" - OpMemberName %type_View 16 "View_ViewUp" - OpMemberName %type_View 17 "PrePadding_View_924" - OpMemberName %type_View 18 "View_ViewRight" - OpMemberName %type_View 19 "PrePadding_View_940" - OpMemberName %type_View 20 "View_HMDViewNoRollUp" - OpMemberName %type_View 21 "PrePadding_View_956" - OpMemberName %type_View 22 "View_HMDViewNoRollRight" - OpMemberName %type_View 23 "PrePadding_View_972" - OpMemberName %type_View 24 "View_InvDeviceZToWorldZTransform" - OpMemberName %type_View 25 "View_ScreenPositionScaleBias" - OpMemberName %type_View 26 "View_WorldCameraOrigin" - OpMemberName %type_View 27 "PrePadding_View_1020" - OpMemberName %type_View 28 "View_TranslatedWorldCameraOrigin" - OpMemberName %type_View 29 "PrePadding_View_1036" - OpMemberName %type_View 30 "View_WorldViewOrigin" - OpMemberName %type_View 31 "PrePadding_View_1052" - OpMemberName %type_View 32 "View_PreViewTranslation" - OpMemberName %type_View 33 "PrePadding_View_1068" - OpMemberName %type_View 34 "View_PrevProjection" - OpMemberName %type_View 35 "View_PrevViewProj" - OpMemberName %type_View 36 "View_PrevViewRotationProj" - OpMemberName %type_View 37 "View_PrevViewToClip" - OpMemberName %type_View 38 "View_PrevClipToView" - OpMemberName %type_View 39 "View_PrevTranslatedWorldToClip" - OpMemberName %type_View 40 "View_PrevTranslatedWorldToView" - OpMemberName %type_View 41 "View_PrevViewToTranslatedWorld" - OpMemberName %type_View 42 "View_PrevTranslatedWorldToCameraView" - OpMemberName %type_View 43 "View_PrevCameraViewToTranslatedWorld" - OpMemberName %type_View 44 "View_PrevWorldCameraOrigin" - OpMemberName %type_View 45 "PrePadding_View_1724" - OpMemberName %type_View 46 "View_PrevWorldViewOrigin" - OpMemberName %type_View 47 "PrePadding_View_1740" - OpMemberName %type_View 48 "View_PrevPreViewTranslation" - OpMemberName %type_View 49 "PrePadding_View_1756" - OpMemberName %type_View 50 "View_PrevInvViewProj" - OpMemberName %type_View 51 "View_PrevScreenToTranslatedWorld" - OpMemberName %type_View 52 "View_ClipToPrevClip" - OpMemberName %type_View 53 "View_TemporalAAJitter" - OpMemberName %type_View 54 "View_GlobalClippingPlane" - OpMemberName %type_View 55 "View_FieldOfViewWideAngles" - OpMemberName %type_View 56 "View_PrevFieldOfViewWideAngles" - OpMemberName %type_View 57 "View_ViewRectMin" - OpMemberName %type_View 58 "View_ViewSizeAndInvSize" - OpMemberName %type_View 59 "View_BufferSizeAndInvSize" - OpMemberName %type_View 60 "View_BufferBilinearUVMinMax" - OpMemberName %type_View 61 "View_NumSceneColorMSAASamples" - OpMemberName %type_View 62 "View_PreExposure" - OpMemberName %type_View 63 "View_OneOverPreExposure" - OpMemberName %type_View 64 "PrePadding_View_2076" - OpMemberName %type_View 65 "View_DiffuseOverrideParameter" - OpMemberName %type_View 66 "View_SpecularOverrideParameter" - OpMemberName %type_View 67 "View_NormalOverrideParameter" - OpMemberName %type_View 68 "View_RoughnessOverrideParameter" - OpMemberName %type_View 69 "View_PrevFrameGameTime" - OpMemberName %type_View 70 "View_PrevFrameRealTime" - OpMemberName %type_View 71 "View_OutOfBoundsMask" - OpMemberName %type_View 72 "PrePadding_View_2148" - OpMemberName %type_View 73 "PrePadding_View_2152" - OpMemberName %type_View 74 "PrePadding_View_2156" - OpMemberName %type_View 75 "View_WorldCameraMovementSinceLastFrame" - OpMemberName %type_View 76 "View_CullingSign" - OpMemberName %type_View 77 "View_NearPlane" - OpMemberName %type_View 78 "View_AdaptiveTessellationFactor" - OpMemberName %type_View 79 "View_GameTime" - OpMemberName %type_View 80 "View_RealTime" - OpMemberName %type_View 81 "View_DeltaTime" - OpMemberName %type_View 82 "View_MaterialTextureMipBias" - OpMemberName %type_View 83 "View_MaterialTextureDerivativeMultiply" - OpMemberName %type_View 84 "View_Random" - OpMemberName %type_View 85 "View_FrameNumber" - OpMemberName %type_View 86 "View_StateFrameIndexMod8" - OpMemberName %type_View 87 "View_StateFrameIndex" - OpMemberName %type_View 88 "View_CameraCut" - OpMemberName %type_View 89 "View_UnlitViewmodeMask" - OpMemberName %type_View 90 "PrePadding_View_2228" - OpMemberName %type_View 91 "PrePadding_View_2232" - OpMemberName %type_View 92 "PrePadding_View_2236" - OpMemberName %type_View 93 "View_DirectionalLightColor" - OpMemberName %type_View 94 "View_DirectionalLightDirection" - OpMemberName %type_View 95 "PrePadding_View_2268" - OpMemberName %type_View 96 "View_TranslucencyLightingVolumeMin" - OpMemberName %type_View 97 "View_TranslucencyLightingVolumeInvSize" - OpMemberName %type_View 98 "View_TemporalAAParams" - OpMemberName %type_View 99 "View_CircleDOFParams" - OpMemberName %type_View 100 "View_DepthOfFieldSensorWidth" - OpMemberName %type_View 101 "View_DepthOfFieldFocalDistance" - OpMemberName %type_View 102 "View_DepthOfFieldScale" - OpMemberName %type_View 103 "View_DepthOfFieldFocalLength" - OpMemberName %type_View 104 "View_DepthOfFieldFocalRegion" - OpMemberName %type_View 105 "View_DepthOfFieldNearTransitionRegion" - OpMemberName %type_View 106 "View_DepthOfFieldFarTransitionRegion" - OpMemberName %type_View 107 "View_MotionBlurNormalizedToPixel" - OpMemberName %type_View 108 "View_bSubsurfacePostprocessEnabled" - OpMemberName %type_View 109 "View_GeneralPurposeTweak" - OpMemberName %type_View 110 "View_DemosaicVposOffset" - OpMemberName %type_View 111 "PrePadding_View_2412" - OpMemberName %type_View 112 "View_IndirectLightingColorScale" - OpMemberName %type_View 113 "View_HDR32bppEncodingMode" - OpMemberName %type_View 114 "View_AtmosphericFogSunDirection" - OpMemberName %type_View 115 "View_AtmosphericFogSunPower" - OpMemberName %type_View 116 "View_AtmosphericFogPower" - OpMemberName %type_View 117 "View_AtmosphericFogDensityScale" - OpMemberName %type_View 118 "View_AtmosphericFogDensityOffset" - OpMemberName %type_View 119 "View_AtmosphericFogGroundOffset" - OpMemberName %type_View 120 "View_AtmosphericFogDistanceScale" - OpMemberName %type_View 121 "View_AtmosphericFogAltitudeScale" - OpMemberName %type_View 122 "View_AtmosphericFogHeightScaleRayleigh" - OpMemberName %type_View 123 "View_AtmosphericFogStartDistance" - OpMemberName %type_View 124 "View_AtmosphericFogDistanceOffset" - OpMemberName %type_View 125 "View_AtmosphericFogSunDiscScale" - OpMemberName %type_View 126 "View_AtmosphericFogSunDiscHalfApexAngleRadian" - OpMemberName %type_View 127 "PrePadding_View_2492" - OpMemberName %type_View 128 "View_AtmosphericFogSunDiscLuminance" - OpMemberName %type_View 129 "View_AtmosphericFogRenderMask" - OpMemberName %type_View 130 "View_AtmosphericFogInscatterAltitudeSampleNum" - OpMemberName %type_View 131 "PrePadding_View_2520" - OpMemberName %type_View 132 "PrePadding_View_2524" - OpMemberName %type_View 133 "View_AtmosphericFogSunColor" - OpMemberName %type_View 134 "View_NormalCurvatureToRoughnessScaleBias" - OpMemberName %type_View 135 "View_RenderingReflectionCaptureMask" - OpMemberName %type_View 136 "View_AmbientCubemapTint" - OpMemberName %type_View 137 "View_AmbientCubemapIntensity" - OpMemberName %type_View 138 "View_SkyLightParameters" - OpMemberName %type_View 139 "PrePadding_View_2584" - OpMemberName %type_View 140 "PrePadding_View_2588" - OpMemberName %type_View 141 "View_SkyLightColor" - OpMemberName %type_View 142 "View_SkyIrradianceEnvironmentMap" - OpMemberName %type_View 143 "View_MobilePreviewMode" - OpMemberName %type_View 144 "View_HMDEyePaddingOffset" - OpMemberName %type_View 145 "View_ReflectionCubemapMaxMip" - OpMemberName %type_View 146 "View_ShowDecalsMask" - OpMemberName %type_View 147 "View_DistanceFieldAOSpecularOcclusionMode" - OpMemberName %type_View 148 "View_IndirectCapsuleSelfShadowingIntensity" - OpMemberName %type_View 149 "PrePadding_View_2744" - OpMemberName %type_View 150 "PrePadding_View_2748" - OpMemberName %type_View 151 "View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight" - OpMemberName %type_View 152 "View_StereoPassIndex" - OpMemberName %type_View 153 "View_GlobalVolumeCenterAndExtent" - OpMemberName %type_View 154 "View_GlobalVolumeWorldToUVAddAndMul" - OpMemberName %type_View 155 "View_GlobalVolumeDimension" - OpMemberName %type_View 156 "View_GlobalVolumeTexelSize" - OpMemberName %type_View 157 "View_MaxGlobalDistance" - OpMemberName %type_View 158 "PrePadding_View_2908" - OpMemberName %type_View 159 "View_CursorPosition" - OpMemberName %type_View 160 "View_bCheckerboardSubsurfaceProfileRendering" - OpMemberName %type_View 161 "PrePadding_View_2924" - OpMemberName %type_View 162 "View_VolumetricFogInvGridSize" - OpMemberName %type_View 163 "PrePadding_View_2940" - OpMemberName %type_View 164 "View_VolumetricFogGridZParams" - OpMemberName %type_View 165 "PrePadding_View_2956" - OpMemberName %type_View 166 "View_VolumetricFogSVPosToVolumeUV" - OpMemberName %type_View 167 "View_VolumetricFogMaxDistance" - OpMemberName %type_View 168 "PrePadding_View_2972" - OpMemberName %type_View 169 "View_VolumetricLightmapWorldToUVScale" - OpMemberName %type_View 170 "PrePadding_View_2988" - OpMemberName %type_View 171 "View_VolumetricLightmapWorldToUVAdd" - OpMemberName %type_View 172 "PrePadding_View_3004" - OpMemberName %type_View 173 "View_VolumetricLightmapIndirectionTextureSize" - OpMemberName %type_View 174 "View_VolumetricLightmapBrickSize" - OpMemberName %type_View 175 "View_VolumetricLightmapBrickTexelSize" - OpMemberName %type_View 176 "View_StereoIPD" - OpMemberName %type_View 177 "View_IndirectLightingCacheShowFlag" - OpMemberName %type_View 178 "View_EyeToPixelSpreadAngle" - OpName %View "View" - OpName %type_Primitive "type.Primitive" - OpMemberName %type_Primitive 0 "Primitive_LocalToWorld" - OpMemberName %type_Primitive 1 "Primitive_InvNonUniformScaleAndDeterminantSign" - OpMemberName %type_Primitive 2 "Primitive_ObjectWorldPositionAndRadius" - OpMemberName %type_Primitive 3 "Primitive_WorldToLocal" - OpMemberName %type_Primitive 4 "Primitive_PreviousLocalToWorld" - OpMemberName %type_Primitive 5 "Primitive_PreviousWorldToLocal" - OpMemberName %type_Primitive 6 "Primitive_ActorWorldPosition" - OpMemberName %type_Primitive 7 "Primitive_UseSingleSampleShadowFromStationaryLights" - OpMemberName %type_Primitive 8 "Primitive_ObjectBounds" - OpMemberName %type_Primitive 9 "Primitive_LpvBiasMultiplier" - OpMemberName %type_Primitive 10 "Primitive_DecalReceiverMask" - OpMemberName %type_Primitive 11 "Primitive_PerObjectGBufferData" - OpMemberName %type_Primitive 12 "Primitive_UseVolumetricLightmapShadowFromStationaryLights" - OpMemberName %type_Primitive 13 "Primitive_DrawsVelocity" - OpMemberName %type_Primitive 14 "Primitive_ObjectOrientation" - OpMemberName %type_Primitive 15 "Primitive_NonUniformScale" - OpMemberName %type_Primitive 16 "Primitive_LocalObjectBoundsMin" - OpMemberName %type_Primitive 17 "Primitive_LightingChannelMask" - OpMemberName %type_Primitive 18 "Primitive_LocalObjectBoundsMax" - OpMemberName %type_Primitive 19 "Primitive_LightmapDataIndex" - OpMemberName %type_Primitive 20 "Primitive_PreSkinnedLocalBounds" - OpMemberName %type_Primitive 21 "Primitive_SingleCaptureIndex" - OpMemberName %type_Primitive 22 "Primitive_OutputVelocity" - OpMemberName %type_Primitive 23 "PrePadding_Primitive_420" - OpMemberName %type_Primitive 24 "PrePadding_Primitive_424" - OpMemberName %type_Primitive 25 "PrePadding_Primitive_428" - OpMemberName %type_Primitive 26 "Primitive_CustomPrimitiveData" - OpName %Primitive "Primitive" - OpName %in_var_TEXCOORD10_centroid "in.var.TEXCOORD10_centroid" - OpName %in_var_TEXCOORD11_centroid "in.var.TEXCOORD11_centroid" - OpName %in_var_COLOR0 "in.var.COLOR0" - OpName %in_var_TEXCOORD0 "in.var.TEXCOORD0" - OpName %in_var_VS_To_DS_Position "in.var.VS_To_DS_Position" - OpName %out_var_TEXCOORD10_centroid "out.var.TEXCOORD10_centroid" - OpName %out_var_TEXCOORD11_centroid "out.var.TEXCOORD11_centroid" - OpName %out_var_COLOR0 "out.var.COLOR0" - OpName %out_var_TEXCOORD0 "out.var.TEXCOORD0" - OpName %out_var_VS_To_DS_Position "out.var.VS_To_DS_Position" - OpName %out_var_PN_POSITION "out.var.PN_POSITION" - OpName %out_var_PN_DisplacementScales "out.var.PN_DisplacementScales" - OpName %out_var_PN_TessellationMultiplier "out.var.PN_TessellationMultiplier" - OpName %out_var_PN_WorldDisplacementMultiplier "out.var.PN_WorldDisplacementMultiplier" - OpName %out_var_PN_POSITION9 "out.var.PN_POSITION9" - OpName %MainHull "MainHull" - OpName %param_var_I "param.var.I" - OpName %temp_var_hullMainRetVal "temp.var.hullMainRetVal" - OpName %if_merge "if.merge" - OpDecorateString %in_var_TEXCOORD10_centroid UserSemantic "TEXCOORD10_centroid" - OpDecorateString %in_var_TEXCOORD11_centroid UserSemantic "TEXCOORD11_centroid" - OpDecorateString %in_var_COLOR0 UserSemantic "COLOR0" - OpDecorateString %in_var_TEXCOORD0 UserSemantic "TEXCOORD0" - OpDecorateString %in_var_VS_To_DS_Position UserSemantic "VS_To_DS_Position" - OpDecorate %gl_InvocationID BuiltIn InvocationId - OpDecorateString %gl_InvocationID UserSemantic "SV_OutputControlPointID" - OpDecorateString %out_var_TEXCOORD10_centroid UserSemantic "TEXCOORD10_centroid" - OpDecorateString %out_var_TEXCOORD11_centroid UserSemantic "TEXCOORD11_centroid" - OpDecorateString %out_var_COLOR0 UserSemantic "COLOR0" - OpDecorateString %out_var_TEXCOORD0 UserSemantic "TEXCOORD0" - OpDecorateString %out_var_VS_To_DS_Position UserSemantic "VS_To_DS_Position" - OpDecorateString %out_var_PN_POSITION UserSemantic "PN_POSITION" - OpDecorateString %out_var_PN_DisplacementScales UserSemantic "PN_DisplacementScales" - OpDecorateString %out_var_PN_TessellationMultiplier UserSemantic "PN_TessellationMultiplier" - OpDecorateString %out_var_PN_WorldDisplacementMultiplier UserSemantic "PN_WorldDisplacementMultiplier" - OpDecorate %gl_TessLevelOuter BuiltIn TessLevelOuter - OpDecorateString %gl_TessLevelOuter UserSemantic "SV_TessFactor" - OpDecorate %gl_TessLevelOuter Patch - OpDecorate %gl_TessLevelInner BuiltIn TessLevelInner - OpDecorateString %gl_TessLevelInner UserSemantic "SV_InsideTessFactor" - OpDecorate %gl_TessLevelInner Patch - OpDecorateString %out_var_PN_POSITION9 UserSemantic "PN_POSITION9" - OpDecorate %out_var_PN_POSITION9 Patch - OpDecorate %in_var_TEXCOORD10_centroid Location 0 - OpDecorate %in_var_TEXCOORD11_centroid Location 1 - OpDecorate %in_var_COLOR0 Location 2 - OpDecorate %in_var_TEXCOORD0 Location 3 - OpDecorate %in_var_VS_To_DS_Position Location 5 - OpDecorate %out_var_COLOR0 Location 0 - OpDecorate %out_var_PN_DisplacementScales Location 1 - OpDecorate %out_var_PN_POSITION Location 2 - OpDecorate %out_var_PN_POSITION9 Location 5 - OpDecorate %out_var_PN_TessellationMultiplier Location 6 - OpDecorate %out_var_PN_WorldDisplacementMultiplier Location 7 - OpDecorate %out_var_TEXCOORD0 Location 8 - OpDecorate %out_var_TEXCOORD10_centroid Location 10 - OpDecorate %out_var_TEXCOORD11_centroid Location 11 - OpDecorate %out_var_VS_To_DS_Position Location 12 - OpDecorate %View DescriptorSet 0 - OpDecorate %View Binding 0 - OpDecorate %Primitive DescriptorSet 0 - OpDecorate %Primitive Binding 1 - OpDecorate %_arr_v4float_uint_2 ArrayStride 16 - OpDecorate %_arr_v4float_uint_7 ArrayStride 16 - OpDecorate %_arr_v4float_uint_4 ArrayStride 16 - OpMemberDecorate %type_View 0 Offset 0 - OpMemberDecorate %type_View 0 MatrixStride 16 - OpMemberDecorate %type_View 0 ColMajor - OpMemberDecorate %type_View 1 Offset 64 - OpMemberDecorate %type_View 1 MatrixStride 16 - OpMemberDecorate %type_View 1 ColMajor - OpMemberDecorate %type_View 2 Offset 128 - OpMemberDecorate %type_View 2 MatrixStride 16 - OpMemberDecorate %type_View 2 ColMajor - OpMemberDecorate %type_View 3 Offset 192 - OpMemberDecorate %type_View 3 MatrixStride 16 - OpMemberDecorate %type_View 3 ColMajor - OpMemberDecorate %type_View 4 Offset 256 - OpMemberDecorate %type_View 4 MatrixStride 16 - OpMemberDecorate %type_View 4 ColMajor - OpMemberDecorate %type_View 5 Offset 320 - OpMemberDecorate %type_View 5 MatrixStride 16 - OpMemberDecorate %type_View 5 ColMajor - OpMemberDecorate %type_View 6 Offset 384 - OpMemberDecorate %type_View 6 MatrixStride 16 - OpMemberDecorate %type_View 6 ColMajor - OpMemberDecorate %type_View 7 Offset 448 - OpMemberDecorate %type_View 7 MatrixStride 16 - OpMemberDecorate %type_View 7 ColMajor - OpMemberDecorate %type_View 8 Offset 512 - OpMemberDecorate %type_View 8 MatrixStride 16 - OpMemberDecorate %type_View 8 ColMajor - OpMemberDecorate %type_View 9 Offset 576 - OpMemberDecorate %type_View 9 MatrixStride 16 - OpMemberDecorate %type_View 9 ColMajor - OpMemberDecorate %type_View 10 Offset 640 - OpMemberDecorate %type_View 10 MatrixStride 16 - OpMemberDecorate %type_View 10 ColMajor - OpMemberDecorate %type_View 11 Offset 704 - OpMemberDecorate %type_View 11 MatrixStride 16 - OpMemberDecorate %type_View 11 ColMajor - OpMemberDecorate %type_View 12 Offset 768 - OpMemberDecorate %type_View 12 MatrixStride 16 - OpMemberDecorate %type_View 12 ColMajor - OpMemberDecorate %type_View 13 Offset 832 - OpMemberDecorate %type_View 13 MatrixStride 16 - OpMemberDecorate %type_View 13 ColMajor - OpMemberDecorate %type_View 14 Offset 896 - OpMemberDecorate %type_View 15 Offset 908 - OpMemberDecorate %type_View 16 Offset 912 - OpMemberDecorate %type_View 17 Offset 924 - OpMemberDecorate %type_View 18 Offset 928 - OpMemberDecorate %type_View 19 Offset 940 - OpMemberDecorate %type_View 20 Offset 944 - OpMemberDecorate %type_View 21 Offset 956 - OpMemberDecorate %type_View 22 Offset 960 - OpMemberDecorate %type_View 23 Offset 972 - OpMemberDecorate %type_View 24 Offset 976 - OpMemberDecorate %type_View 25 Offset 992 - OpMemberDecorate %type_View 26 Offset 1008 - OpMemberDecorate %type_View 27 Offset 1020 - OpMemberDecorate %type_View 28 Offset 1024 - OpMemberDecorate %type_View 29 Offset 1036 - OpMemberDecorate %type_View 30 Offset 1040 - OpMemberDecorate %type_View 31 Offset 1052 - OpMemberDecorate %type_View 32 Offset 1056 - OpMemberDecorate %type_View 33 Offset 1068 - OpMemberDecorate %type_View 34 Offset 1072 - OpMemberDecorate %type_View 34 MatrixStride 16 - OpMemberDecorate %type_View 34 ColMajor - OpMemberDecorate %type_View 35 Offset 1136 - OpMemberDecorate %type_View 35 MatrixStride 16 - OpMemberDecorate %type_View 35 ColMajor - OpMemberDecorate %type_View 36 Offset 1200 - OpMemberDecorate %type_View 36 MatrixStride 16 - OpMemberDecorate %type_View 36 ColMajor - OpMemberDecorate %type_View 37 Offset 1264 - OpMemberDecorate %type_View 37 MatrixStride 16 - OpMemberDecorate %type_View 37 ColMajor - OpMemberDecorate %type_View 38 Offset 1328 - OpMemberDecorate %type_View 38 MatrixStride 16 - OpMemberDecorate %type_View 38 ColMajor - OpMemberDecorate %type_View 39 Offset 1392 - OpMemberDecorate %type_View 39 MatrixStride 16 - OpMemberDecorate %type_View 39 ColMajor - OpMemberDecorate %type_View 40 Offset 1456 - OpMemberDecorate %type_View 40 MatrixStride 16 - OpMemberDecorate %type_View 40 ColMajor - OpMemberDecorate %type_View 41 Offset 1520 - OpMemberDecorate %type_View 41 MatrixStride 16 - OpMemberDecorate %type_View 41 ColMajor - OpMemberDecorate %type_View 42 Offset 1584 - OpMemberDecorate %type_View 42 MatrixStride 16 - OpMemberDecorate %type_View 42 ColMajor - OpMemberDecorate %type_View 43 Offset 1648 - OpMemberDecorate %type_View 43 MatrixStride 16 - OpMemberDecorate %type_View 43 ColMajor - OpMemberDecorate %type_View 44 Offset 1712 - OpMemberDecorate %type_View 45 Offset 1724 - OpMemberDecorate %type_View 46 Offset 1728 - OpMemberDecorate %type_View 47 Offset 1740 - OpMemberDecorate %type_View 48 Offset 1744 - OpMemberDecorate %type_View 49 Offset 1756 - OpMemberDecorate %type_View 50 Offset 1760 - OpMemberDecorate %type_View 50 MatrixStride 16 - OpMemberDecorate %type_View 50 ColMajor - OpMemberDecorate %type_View 51 Offset 1824 - OpMemberDecorate %type_View 51 MatrixStride 16 - OpMemberDecorate %type_View 51 ColMajor - OpMemberDecorate %type_View 52 Offset 1888 - OpMemberDecorate %type_View 52 MatrixStride 16 - OpMemberDecorate %type_View 52 ColMajor - OpMemberDecorate %type_View 53 Offset 1952 - OpMemberDecorate %type_View 54 Offset 1968 - OpMemberDecorate %type_View 55 Offset 1984 - OpMemberDecorate %type_View 56 Offset 1992 - OpMemberDecorate %type_View 57 Offset 2000 - OpMemberDecorate %type_View 58 Offset 2016 - OpMemberDecorate %type_View 59 Offset 2032 - OpMemberDecorate %type_View 60 Offset 2048 - OpMemberDecorate %type_View 61 Offset 2064 - OpMemberDecorate %type_View 62 Offset 2068 - OpMemberDecorate %type_View 63 Offset 2072 - OpMemberDecorate %type_View 64 Offset 2076 - OpMemberDecorate %type_View 65 Offset 2080 - OpMemberDecorate %type_View 66 Offset 2096 - OpMemberDecorate %type_View 67 Offset 2112 - OpMemberDecorate %type_View 68 Offset 2128 - OpMemberDecorate %type_View 69 Offset 2136 - OpMemberDecorate %type_View 70 Offset 2140 - OpMemberDecorate %type_View 71 Offset 2144 - OpMemberDecorate %type_View 72 Offset 2148 - OpMemberDecorate %type_View 73 Offset 2152 - OpMemberDecorate %type_View 74 Offset 2156 - OpMemberDecorate %type_View 75 Offset 2160 - OpMemberDecorate %type_View 76 Offset 2172 - OpMemberDecorate %type_View 77 Offset 2176 - OpMemberDecorate %type_View 78 Offset 2180 - OpMemberDecorate %type_View 79 Offset 2184 - OpMemberDecorate %type_View 80 Offset 2188 - OpMemberDecorate %type_View 81 Offset 2192 - OpMemberDecorate %type_View 82 Offset 2196 - OpMemberDecorate %type_View 83 Offset 2200 - OpMemberDecorate %type_View 84 Offset 2204 - OpMemberDecorate %type_View 85 Offset 2208 - OpMemberDecorate %type_View 86 Offset 2212 - OpMemberDecorate %type_View 87 Offset 2216 - OpMemberDecorate %type_View 88 Offset 2220 - OpMemberDecorate %type_View 89 Offset 2224 - OpMemberDecorate %type_View 90 Offset 2228 - OpMemberDecorate %type_View 91 Offset 2232 - OpMemberDecorate %type_View 92 Offset 2236 - OpMemberDecorate %type_View 93 Offset 2240 - OpMemberDecorate %type_View 94 Offset 2256 - OpMemberDecorate %type_View 95 Offset 2268 - OpMemberDecorate %type_View 96 Offset 2272 - OpMemberDecorate %type_View 97 Offset 2304 - OpMemberDecorate %type_View 98 Offset 2336 - OpMemberDecorate %type_View 99 Offset 2352 - OpMemberDecorate %type_View 100 Offset 2368 - OpMemberDecorate %type_View 101 Offset 2372 - OpMemberDecorate %type_View 102 Offset 2376 - OpMemberDecorate %type_View 103 Offset 2380 - OpMemberDecorate %type_View 104 Offset 2384 - OpMemberDecorate %type_View 105 Offset 2388 - OpMemberDecorate %type_View 106 Offset 2392 - OpMemberDecorate %type_View 107 Offset 2396 - OpMemberDecorate %type_View 108 Offset 2400 - OpMemberDecorate %type_View 109 Offset 2404 - OpMemberDecorate %type_View 110 Offset 2408 - OpMemberDecorate %type_View 111 Offset 2412 - OpMemberDecorate %type_View 112 Offset 2416 - OpMemberDecorate %type_View 113 Offset 2428 - OpMemberDecorate %type_View 114 Offset 2432 - OpMemberDecorate %type_View 115 Offset 2444 - OpMemberDecorate %type_View 116 Offset 2448 - OpMemberDecorate %type_View 117 Offset 2452 - OpMemberDecorate %type_View 118 Offset 2456 - OpMemberDecorate %type_View 119 Offset 2460 - OpMemberDecorate %type_View 120 Offset 2464 - OpMemberDecorate %type_View 121 Offset 2468 - OpMemberDecorate %type_View 122 Offset 2472 - OpMemberDecorate %type_View 123 Offset 2476 - OpMemberDecorate %type_View 124 Offset 2480 - OpMemberDecorate %type_View 125 Offset 2484 - OpMemberDecorate %type_View 126 Offset 2488 - OpMemberDecorate %type_View 127 Offset 2492 - OpMemberDecorate %type_View 128 Offset 2496 - OpMemberDecorate %type_View 129 Offset 2512 - OpMemberDecorate %type_View 130 Offset 2516 - OpMemberDecorate %type_View 131 Offset 2520 - OpMemberDecorate %type_View 132 Offset 2524 - OpMemberDecorate %type_View 133 Offset 2528 - OpMemberDecorate %type_View 134 Offset 2544 - OpMemberDecorate %type_View 135 Offset 2556 - OpMemberDecorate %type_View 136 Offset 2560 - OpMemberDecorate %type_View 137 Offset 2576 - OpMemberDecorate %type_View 138 Offset 2580 - OpMemberDecorate %type_View 139 Offset 2584 - OpMemberDecorate %type_View 140 Offset 2588 - OpMemberDecorate %type_View 141 Offset 2592 - OpMemberDecorate %type_View 142 Offset 2608 - OpMemberDecorate %type_View 143 Offset 2720 - OpMemberDecorate %type_View 144 Offset 2724 - OpMemberDecorate %type_View 145 Offset 2728 - OpMemberDecorate %type_View 146 Offset 2732 - OpMemberDecorate %type_View 147 Offset 2736 - OpMemberDecorate %type_View 148 Offset 2740 - OpMemberDecorate %type_View 149 Offset 2744 - OpMemberDecorate %type_View 150 Offset 2748 - OpMemberDecorate %type_View 151 Offset 2752 - OpMemberDecorate %type_View 152 Offset 2764 - OpMemberDecorate %type_View 153 Offset 2768 - OpMemberDecorate %type_View 154 Offset 2832 - OpMemberDecorate %type_View 155 Offset 2896 - OpMemberDecorate %type_View 156 Offset 2900 - OpMemberDecorate %type_View 157 Offset 2904 - OpMemberDecorate %type_View 158 Offset 2908 - OpMemberDecorate %type_View 159 Offset 2912 - OpMemberDecorate %type_View 160 Offset 2920 - OpMemberDecorate %type_View 161 Offset 2924 - OpMemberDecorate %type_View 162 Offset 2928 - OpMemberDecorate %type_View 163 Offset 2940 - OpMemberDecorate %type_View 164 Offset 2944 - OpMemberDecorate %type_View 165 Offset 2956 - OpMemberDecorate %type_View 166 Offset 2960 - OpMemberDecorate %type_View 167 Offset 2968 - OpMemberDecorate %type_View 168 Offset 2972 - OpMemberDecorate %type_View 169 Offset 2976 - OpMemberDecorate %type_View 170 Offset 2988 - OpMemberDecorate %type_View 171 Offset 2992 - OpMemberDecorate %type_View 172 Offset 3004 - OpMemberDecorate %type_View 173 Offset 3008 - OpMemberDecorate %type_View 174 Offset 3020 - OpMemberDecorate %type_View 175 Offset 3024 - OpMemberDecorate %type_View 176 Offset 3036 - OpMemberDecorate %type_View 177 Offset 3040 - OpMemberDecorate %type_View 178 Offset 3044 - OpDecorate %type_View Block - OpMemberDecorate %type_Primitive 0 Offset 0 - OpMemberDecorate %type_Primitive 0 MatrixStride 16 - OpMemberDecorate %type_Primitive 0 ColMajor - OpMemberDecorate %type_Primitive 1 Offset 64 - OpMemberDecorate %type_Primitive 2 Offset 80 - OpMemberDecorate %type_Primitive 3 Offset 96 - OpMemberDecorate %type_Primitive 3 MatrixStride 16 - OpMemberDecorate %type_Primitive 3 ColMajor - OpMemberDecorate %type_Primitive 4 Offset 160 - OpMemberDecorate %type_Primitive 4 MatrixStride 16 - OpMemberDecorate %type_Primitive 4 ColMajor - OpMemberDecorate %type_Primitive 5 Offset 224 - OpMemberDecorate %type_Primitive 5 MatrixStride 16 - OpMemberDecorate %type_Primitive 5 ColMajor - OpMemberDecorate %type_Primitive 6 Offset 288 - OpMemberDecorate %type_Primitive 7 Offset 300 - OpMemberDecorate %type_Primitive 8 Offset 304 - OpMemberDecorate %type_Primitive 9 Offset 316 - OpMemberDecorate %type_Primitive 10 Offset 320 - OpMemberDecorate %type_Primitive 11 Offset 324 - OpMemberDecorate %type_Primitive 12 Offset 328 - OpMemberDecorate %type_Primitive 13 Offset 332 - OpMemberDecorate %type_Primitive 14 Offset 336 - OpMemberDecorate %type_Primitive 15 Offset 352 - OpMemberDecorate %type_Primitive 16 Offset 368 - OpMemberDecorate %type_Primitive 17 Offset 380 - OpMemberDecorate %type_Primitive 18 Offset 384 - OpMemberDecorate %type_Primitive 19 Offset 396 - OpMemberDecorate %type_Primitive 20 Offset 400 - OpMemberDecorate %type_Primitive 21 Offset 412 - OpMemberDecorate %type_Primitive 22 Offset 416 - OpMemberDecorate %type_Primitive 23 Offset 420 - OpMemberDecorate %type_Primitive 24 Offset 424 - OpMemberDecorate %type_Primitive 25 Offset 428 - OpMemberDecorate %type_Primitive 26 Offset 432 - OpDecorate %type_Primitive Block - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%mat4v4float = OpTypeMatrix %v4float 4 - %v3float = OpTypeVector %float 3 - %v2float = OpTypeVector %float 2 - %int = OpTypeInt 32 1 - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 - %uint_7 = OpConstant %uint 7 - %uint_4 = OpConstant %uint 4 - %v2int = OpTypeVector %int 2 - %uint_0 = OpConstant %uint 0 - %uint_1 = OpConstant %uint 1 - %uint_3 = OpConstant %uint 3 -%_arr_float_uint_3 = OpTypeArray %float %uint_3 - %int_1 = OpConstant %int 1 - %int_0 = OpConstant %int 0 - %int_2 = OpConstant %int 2 - %float_2 = OpConstant %float 2 - %54 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 - %float_0_5 = OpConstant %float 0.5 - %int_3 = OpConstant %int 3 -%float_0_333000004 = OpConstant %float 0.333000004 - %float_1 = OpConstant %float 1 - %59 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 - %float_15 = OpConstant %float 15 - %61 = OpConstantComposite %v4float %float_15 %float_15 %float_15 %float_15 -%_arr_v2float_uint_2 = OpTypeArray %v2float %uint_2 -%FVertexFactoryInterpolantsVSToPS = OpTypeStruct %v4float %v4float %v4float %_arr_v2float_uint_2 -%FVertexFactoryInterpolantsVSToDS = OpTypeStruct %FVertexFactoryInterpolantsVSToPS -%FHitProxyVSToDS = OpTypeStruct %FVertexFactoryInterpolantsVSToDS %v4float -%_arr_v4float_uint_3 = OpTypeArray %v4float %uint_3 -%FPNTessellationHSToDS = OpTypeStruct %FHitProxyVSToDS %_arr_v4float_uint_3 %v3float %float %float - %v3int = OpTypeVector %int 3 - %65 = OpConstantComposite %v3int %int_0 %int_0 %int_0 - %66 = OpConstantComposite %v3int %int_3 %int_3 %int_3 - %float_0 = OpConstant %float 0 - %68 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 - %69 = OpConstantComposite %v3float %float_0_5 %float_0_5 %float_0_5 - %int_78 = OpConstant %int 78 - %int_15 = OpConstant %int 15 - %int_7 = OpConstant %int 7 - %int_28 = OpConstant %int 28 - %74 = OpConstantComposite %v3int %int_1 %int_1 %int_1 - %75 = OpConstantComposite %v3int %int_2 %int_2 %int_2 -%_arr_v4float_uint_2 = OpTypeArray %v4float %uint_2 -%_arr_v4float_uint_7 = OpTypeArray %v4float %uint_7 -%_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4 - %type_View = OpTypeStruct %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %v3float %float %v3float %float %v3float %float %v3float %float %v3float %float %v4float %v4float %v3float %float %v3float %float %v3float %float %v3float %float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %v3float %float %v3float %float %v3float %float %mat4v4float %mat4v4float %mat4v4float %v4float %v4float %v2float %v2float %v4float %v4float %v4float %v4float %int %float %float %float %v4float %v4float %v4float %v2float %float %float %float %float %float %float %v3float %float %float %float %float %float %float %float %float %uint %uint %uint %uint %float %float %float %float %float %v4float %v3float %float %_arr_v4float_uint_2 %_arr_v4float_uint_2 %v4float %v4float %float %float %float %float %float %float %float %float %float %float %float %float %v3float %float %v3float %float %float %float %float %float %float %float %float %float %float %float %float %float %v4float %uint %uint %uint %uint %v4float %v3float %float %v4float %float %float %float %float %v4float %_arr_v4float_uint_7 %float %float %float %float %uint %float %float %float %v3float %int %_arr_v4float_uint_4 %_arr_v4float_uint_4 %float %float %float %float %v2int %float %float %v3float %float %v3float %float %v2float %float %float %v3float %float %v3float %float %v3float %float %v3float %float %float %float -%_ptr_Uniform_type_View = OpTypePointer Uniform %type_View -%type_Primitive = OpTypeStruct %mat4v4float %v4float %v4float %mat4v4float %mat4v4float %mat4v4float %v3float %float %v3float %float %float %float %float %float %v4float %v4float %v3float %uint %v3float %uint %v3float %int %uint %uint %uint %uint %_arr_v4float_uint_4 -%_ptr_Uniform_type_Primitive = OpTypePointer Uniform %type_Primitive - %uint_12 = OpConstant %uint 12 -%_arr_v4float_uint_12 = OpTypeArray %v4float %uint_12 -%_ptr_Input__arr_v4float_uint_12 = OpTypePointer Input %_arr_v4float_uint_12 -%_arr__arr_v2float_uint_2_uint_12 = OpTypeArray %_arr_v2float_uint_2 %uint_12 -%_ptr_Input__arr__arr_v2float_uint_2_uint_12 = OpTypePointer Input %_arr__arr_v2float_uint_2_uint_12 -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_Output__arr_v4float_uint_3 = OpTypePointer Output %_arr_v4float_uint_3 -%_arr__arr_v2float_uint_2_uint_3 = OpTypeArray %_arr_v2float_uint_2 %uint_3 -%_ptr_Output__arr__arr_v2float_uint_2_uint_3 = OpTypePointer Output %_arr__arr_v2float_uint_2_uint_3 -%_arr__arr_v4float_uint_3_uint_3 = OpTypeArray %_arr_v4float_uint_3 %uint_3 -%_ptr_Output__arr__arr_v4float_uint_3_uint_3 = OpTypePointer Output %_arr__arr_v4float_uint_3_uint_3 -%_arr_v3float_uint_3 = OpTypeArray %v3float %uint_3 -%_ptr_Output__arr_v3float_uint_3 = OpTypePointer Output %_arr_v3float_uint_3 -%_ptr_Output__arr_float_uint_3 = OpTypePointer Output %_arr_float_uint_3 -%_arr_float_uint_4 = OpTypeArray %float %uint_4 -%_ptr_Output__arr_float_uint_4 = OpTypePointer Output %_arr_float_uint_4 -%_arr_float_uint_2 = OpTypeArray %float %uint_2 -%_ptr_Output__arr_float_uint_2 = OpTypePointer Output %_arr_float_uint_2 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %void = OpTypeVoid - %98 = OpTypeFunction %void -%_arr_FHitProxyVSToDS_uint_12 = OpTypeArray %FHitProxyVSToDS %uint_12 -%_ptr_Function__arr_FHitProxyVSToDS_uint_12 = OpTypePointer Function %_arr_FHitProxyVSToDS_uint_12 -%_arr_FPNTessellationHSToDS_uint_3 = OpTypeArray %FPNTessellationHSToDS %uint_3 -%_ptr_Function__arr_FPNTessellationHSToDS_uint_3 = OpTypePointer Function %_arr_FPNTessellationHSToDS_uint_3 -%_ptr_Workgroup__arr_FPNTessellationHSToDS_uint_3 = OpTypePointer Workgroup %_arr_FPNTessellationHSToDS_uint_3 -%_ptr_Output__arr_v2float_uint_2 = OpTypePointer Output %_arr_v2float_uint_2 -%_ptr_Output_v3float = OpTypePointer Output %v3float -%_ptr_Output_float = OpTypePointer Output %float -%_ptr_Function_FPNTessellationHSToDS = OpTypePointer Function %FPNTessellationHSToDS -%_ptr_Workgroup_FPNTessellationHSToDS = OpTypePointer Workgroup %FPNTessellationHSToDS - %bool = OpTypeBool -%_ptr_Function_v4float = OpTypePointer Function %v4float -%_ptr_Function_float = OpTypePointer Function %float -%_ptr_Workgroup_v4float = OpTypePointer Workgroup %v4float -%_ptr_Workgroup_float = OpTypePointer Workgroup %float -%mat3v3float = OpTypeMatrix %v3float 3 -%_ptr_Function_FVertexFactoryInterpolantsVSToDS = OpTypePointer Function %FVertexFactoryInterpolantsVSToDS -%_ptr_Function_FHitProxyVSToDS = OpTypePointer Function %FHitProxyVSToDS - %v3bool = OpTypeVector %bool 3 -%_ptr_Uniform_float = OpTypePointer Uniform %float -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float -%_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float -%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float - %View = OpVariable %_ptr_Uniform_type_View Uniform - %Primitive = OpVariable %_ptr_Uniform_type_Primitive Uniform -%in_var_TEXCOORD10_centroid = OpVariable %_ptr_Input__arr_v4float_uint_12 Input -%in_var_TEXCOORD11_centroid = OpVariable %_ptr_Input__arr_v4float_uint_12 Input -%in_var_COLOR0 = OpVariable %_ptr_Input__arr_v4float_uint_12 Input -%in_var_TEXCOORD0 = OpVariable %_ptr_Input__arr__arr_v2float_uint_2_uint_12 Input -%in_var_VS_To_DS_Position = OpVariable %_ptr_Input__arr_v4float_uint_12 Input -%gl_InvocationID = OpVariable %_ptr_Input_uint Input -%out_var_TEXCOORD10_centroid = OpVariable %_ptr_Output__arr_v4float_uint_3 Output -%out_var_TEXCOORD11_centroid = OpVariable %_ptr_Output__arr_v4float_uint_3 Output -%out_var_COLOR0 = OpVariable %_ptr_Output__arr_v4float_uint_3 Output -%out_var_TEXCOORD0 = OpVariable %_ptr_Output__arr__arr_v2float_uint_2_uint_3 Output -%out_var_VS_To_DS_Position = OpVariable %_ptr_Output__arr_v4float_uint_3 Output -%out_var_PN_POSITION = OpVariable %_ptr_Output__arr__arr_v4float_uint_3_uint_3 Output -%out_var_PN_DisplacementScales = OpVariable %_ptr_Output__arr_v3float_uint_3 Output -%out_var_PN_TessellationMultiplier = OpVariable %_ptr_Output__arr_float_uint_3 Output -%out_var_PN_WorldDisplacementMultiplier = OpVariable %_ptr_Output__arr_float_uint_3 Output -%gl_TessLevelOuter = OpVariable %_ptr_Output__arr_float_uint_4 Output -%gl_TessLevelInner = OpVariable %_ptr_Output__arr_float_uint_2 Output -%out_var_PN_POSITION9 = OpVariable %_ptr_Output_v4float Output -%float_0_333333343 = OpConstant %float 0.333333343 - %119 = OpConstantComposite %v4float %float_0_333333343 %float_0_333333343 %float_0_333333343 %float_0_333333343 - %120 = OpConstantComposite %v4float %float_0_5 %float_0_5 %float_0_5 %float_0_5 -%float_0_166666672 = OpConstant %float 0.166666672 - %122 = OpConstantComposite %v4float %float_0_166666672 %float_0_166666672 %float_0_166666672 %float_0_166666672 - %123 = OpUndef %v4float - -; XXX: Original asm used Function here, which is wrong. -; This patches the SPIR-V to be correct. -%temp_var_hullMainRetVal = OpVariable %_ptr_Workgroup__arr_FPNTessellationHSToDS_uint_3 Workgroup - - %MainHull = OpFunction %void None %98 - %124 = OpLabel -%param_var_I = OpVariable %_ptr_Function__arr_FHitProxyVSToDS_uint_12 Function - %125 = OpLoad %_arr_v4float_uint_12 %in_var_TEXCOORD10_centroid - %126 = OpLoad %_arr_v4float_uint_12 %in_var_TEXCOORD11_centroid - %127 = OpLoad %_arr_v4float_uint_12 %in_var_COLOR0 - %128 = OpLoad %_arr__arr_v2float_uint_2_uint_12 %in_var_TEXCOORD0 - %129 = OpCompositeExtract %v4float %125 0 - %130 = OpCompositeExtract %v4float %126 0 - %131 = OpCompositeExtract %v4float %127 0 - %132 = OpCompositeExtract %_arr_v2float_uint_2 %128 0 - %133 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %129 %130 %131 %132 - %134 = OpCompositeExtract %v4float %125 1 - %135 = OpCompositeExtract %v4float %126 1 - %136 = OpCompositeExtract %v4float %127 1 - %137 = OpCompositeExtract %_arr_v2float_uint_2 %128 1 - %138 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %134 %135 %136 %137 - %139 = OpCompositeExtract %v4float %125 2 - %140 = OpCompositeExtract %v4float %126 2 - %141 = OpCompositeExtract %v4float %127 2 - %142 = OpCompositeExtract %_arr_v2float_uint_2 %128 2 - %143 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %139 %140 %141 %142 - %144 = OpCompositeExtract %v4float %125 3 - %145 = OpCompositeExtract %v4float %126 3 - %146 = OpCompositeExtract %v4float %127 3 - %147 = OpCompositeExtract %_arr_v2float_uint_2 %128 3 - %148 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %144 %145 %146 %147 - %149 = OpCompositeExtract %v4float %125 4 - %150 = OpCompositeExtract %v4float %126 4 - %151 = OpCompositeExtract %v4float %127 4 - %152 = OpCompositeExtract %_arr_v2float_uint_2 %128 4 - %153 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %149 %150 %151 %152 - %154 = OpCompositeExtract %v4float %125 5 - %155 = OpCompositeExtract %v4float %126 5 - %156 = OpCompositeExtract %v4float %127 5 - %157 = OpCompositeExtract %_arr_v2float_uint_2 %128 5 - %158 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %154 %155 %156 %157 - %159 = OpCompositeExtract %v4float %125 6 - %160 = OpCompositeExtract %v4float %126 6 - %161 = OpCompositeExtract %v4float %127 6 - %162 = OpCompositeExtract %_arr_v2float_uint_2 %128 6 - %163 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %159 %160 %161 %162 - %164 = OpCompositeExtract %v4float %125 7 - %165 = OpCompositeExtract %v4float %126 7 - %166 = OpCompositeExtract %v4float %127 7 - %167 = OpCompositeExtract %_arr_v2float_uint_2 %128 7 - %168 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %164 %165 %166 %167 - %169 = OpCompositeExtract %v4float %125 8 - %170 = OpCompositeExtract %v4float %126 8 - %171 = OpCompositeExtract %v4float %127 8 - %172 = OpCompositeExtract %_arr_v2float_uint_2 %128 8 - %173 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %169 %170 %171 %172 - %174 = OpCompositeExtract %v4float %125 9 - %175 = OpCompositeExtract %v4float %126 9 - %176 = OpCompositeExtract %v4float %127 9 - %177 = OpCompositeExtract %_arr_v2float_uint_2 %128 9 - %178 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %174 %175 %176 %177 - %179 = OpCompositeExtract %v4float %125 10 - %180 = OpCompositeExtract %v4float %126 10 - %181 = OpCompositeExtract %v4float %127 10 - %182 = OpCompositeExtract %_arr_v2float_uint_2 %128 10 - %183 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %179 %180 %181 %182 - %184 = OpCompositeExtract %v4float %125 11 - %185 = OpCompositeExtract %v4float %126 11 - %186 = OpCompositeExtract %v4float %127 11 - %187 = OpCompositeExtract %_arr_v2float_uint_2 %128 11 - %188 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %184 %185 %186 %187 - %189 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %133 - %190 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %138 - %191 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %143 - %192 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %148 - %193 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %153 - %194 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %158 - %195 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %163 - %196 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %168 - %197 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %173 - %198 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %178 - %199 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %183 - %200 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %188 - %201 = OpLoad %_arr_v4float_uint_12 %in_var_VS_To_DS_Position - %202 = OpCompositeExtract %v4float %201 0 - %203 = OpCompositeConstruct %FHitProxyVSToDS %189 %202 - %204 = OpCompositeExtract %v4float %201 1 - %205 = OpCompositeConstruct %FHitProxyVSToDS %190 %204 - %206 = OpCompositeExtract %v4float %201 2 - %207 = OpCompositeConstruct %FHitProxyVSToDS %191 %206 - %208 = OpCompositeExtract %v4float %201 3 - %209 = OpCompositeConstruct %FHitProxyVSToDS %192 %208 - %210 = OpCompositeExtract %v4float %201 4 - %211 = OpCompositeConstruct %FHitProxyVSToDS %193 %210 - %212 = OpCompositeExtract %v4float %201 5 - %213 = OpCompositeConstruct %FHitProxyVSToDS %194 %212 - %214 = OpCompositeExtract %v4float %201 6 - %215 = OpCompositeConstruct %FHitProxyVSToDS %195 %214 - %216 = OpCompositeExtract %v4float %201 7 - %217 = OpCompositeConstruct %FHitProxyVSToDS %196 %216 - %218 = OpCompositeExtract %v4float %201 8 - %219 = OpCompositeConstruct %FHitProxyVSToDS %197 %218 - %220 = OpCompositeExtract %v4float %201 9 - %221 = OpCompositeConstruct %FHitProxyVSToDS %198 %220 - %222 = OpCompositeExtract %v4float %201 10 - %223 = OpCompositeConstruct %FHitProxyVSToDS %199 %222 - %224 = OpCompositeExtract %v4float %201 11 - %225 = OpCompositeConstruct %FHitProxyVSToDS %200 %224 - %226 = OpCompositeConstruct %_arr_FHitProxyVSToDS_uint_12 %203 %205 %207 %209 %211 %213 %215 %217 %219 %221 %223 %225 - OpStore %param_var_I %226 - %227 = OpLoad %uint %gl_InvocationID - %228 = OpAccessChain %_ptr_Function_FVertexFactoryInterpolantsVSToDS %param_var_I %227 %int_0 - %229 = OpLoad %FVertexFactoryInterpolantsVSToDS %228 - %230 = OpCompositeExtract %FVertexFactoryInterpolantsVSToPS %229 0 - %231 = OpCompositeExtract %v4float %230 0 - %232 = OpCompositeExtract %v4float %230 1 - %233 = OpVectorShuffle %v3float %231 %231 0 1 2 - %234 = OpVectorShuffle %v3float %232 %232 0 1 2 - %235 = OpExtInst %v3float %1 Cross %234 %233 - %236 = OpCompositeExtract %float %232 3 - %237 = OpCompositeConstruct %v3float %236 %236 %236 - %238 = OpFMul %v3float %235 %237 - %239 = OpCompositeConstruct %mat3v3float %233 %238 %234 - %240 = OpCompositeExtract %float %232 0 - %241 = OpCompositeExtract %float %232 1 - %242 = OpCompositeExtract %float %232 2 - %243 = OpCompositeConstruct %v4float %240 %241 %242 %float_0 - %244 = OpAccessChain %_ptr_Uniform_v4float %Primitive %int_15 - %245 = OpLoad %v4float %244 - %246 = OpVectorShuffle %v3float %245 %245 0 1 2 - %247 = OpVectorTimesMatrix %v3float %246 %239 - %248 = OpULessThan %bool %227 %uint_2 - %249 = OpIAdd %uint %227 %uint_1 - %250 = OpSelect %uint %248 %249 %uint_0 - %251 = OpIMul %uint %uint_2 %227 - %252 = OpIAdd %uint %uint_3 %251 - %253 = OpIAdd %uint %251 %uint_4 - %254 = OpAccessChain %_ptr_Function_FHitProxyVSToDS %param_var_I %227 - %255 = OpLoad %FHitProxyVSToDS %254 - %256 = OpAccessChain %_ptr_Function_v4float %param_var_I %227 %int_1 - %257 = OpLoad %v4float %256 - %258 = OpAccessChain %_ptr_Function_FVertexFactoryInterpolantsVSToDS %param_var_I %250 %int_0 - %259 = OpLoad %FVertexFactoryInterpolantsVSToDS %258 - %260 = OpCompositeExtract %FVertexFactoryInterpolantsVSToPS %259 0 - %261 = OpCompositeExtract %v4float %260 1 - %262 = OpCompositeExtract %float %261 0 - %263 = OpCompositeExtract %float %261 1 - %264 = OpCompositeExtract %float %261 2 - %265 = OpCompositeConstruct %v4float %262 %263 %264 %float_0 - %266 = OpAccessChain %_ptr_Function_FVertexFactoryInterpolantsVSToDS %param_var_I %252 %int_0 - %267 = OpLoad %FVertexFactoryInterpolantsVSToDS %266 - %268 = OpCompositeExtract %FVertexFactoryInterpolantsVSToPS %267 0 - %269 = OpCompositeExtract %v4float %268 1 - %270 = OpCompositeExtract %float %269 0 - %271 = OpCompositeExtract %float %269 1 - %272 = OpCompositeExtract %float %269 2 - %273 = OpCompositeConstruct %v4float %270 %271 %272 %float_0 - %274 = OpAccessChain %_ptr_Function_FVertexFactoryInterpolantsVSToDS %param_var_I %253 %int_0 - %275 = OpLoad %FVertexFactoryInterpolantsVSToDS %274 - %276 = OpCompositeExtract %FVertexFactoryInterpolantsVSToPS %275 0 - %277 = OpCompositeExtract %v4float %276 1 - %278 = OpCompositeExtract %float %277 0 - %279 = OpCompositeExtract %float %277 1 - %280 = OpCompositeExtract %float %277 2 - %281 = OpCompositeConstruct %v4float %278 %279 %280 %float_0 - %282 = OpLoad %v4float %256 - %283 = OpAccessChain %_ptr_Function_v4float %param_var_I %250 %int_1 - %284 = OpLoad %v4float %283 - %285 = OpFMul %v4float %54 %282 - %286 = OpFAdd %v4float %285 %284 - %287 = OpFSub %v4float %284 %282 - %288 = OpDot %float %287 %243 - %289 = OpCompositeConstruct %v4float %288 %288 %288 %288 - %290 = OpFMul %v4float %289 %243 - %291 = OpFSub %v4float %286 %290 - %292 = OpFMul %v4float %291 %119 - %293 = OpAccessChain %_ptr_Function_v4float %param_var_I %252 %int_1 - %294 = OpLoad %v4float %293 - %295 = OpAccessChain %_ptr_Function_v4float %param_var_I %253 %int_1 - %296 = OpLoad %v4float %295 - %297 = OpFMul %v4float %54 %294 - %298 = OpFAdd %v4float %297 %296 - %299 = OpFSub %v4float %296 %294 - %300 = OpDot %float %299 %273 - %301 = OpCompositeConstruct %v4float %300 %300 %300 %300 - %302 = OpFMul %v4float %301 %273 - %303 = OpFSub %v4float %298 %302 - %304 = OpFMul %v4float %303 %119 - %305 = OpFAdd %v4float %292 %304 - %306 = OpFMul %v4float %305 %120 - %307 = OpLoad %v4float %283 - %308 = OpLoad %v4float %256 - %309 = OpFMul %v4float %54 %307 - %310 = OpFAdd %v4float %309 %308 - %311 = OpFSub %v4float %308 %307 - %312 = OpDot %float %311 %265 - %313 = OpCompositeConstruct %v4float %312 %312 %312 %312 - %314 = OpFMul %v4float %313 %265 - %315 = OpFSub %v4float %310 %314 - %316 = OpFMul %v4float %315 %119 - %317 = OpLoad %v4float %295 - %318 = OpLoad %v4float %293 - %319 = OpFMul %v4float %54 %317 - %320 = OpFAdd %v4float %319 %318 - %321 = OpFSub %v4float %318 %317 - %322 = OpDot %float %321 %281 - %323 = OpCompositeConstruct %v4float %322 %322 %322 %322 - %324 = OpFMul %v4float %323 %281 - %325 = OpFSub %v4float %320 %324 - %326 = OpFMul %v4float %325 %119 - %327 = OpFAdd %v4float %316 %326 - %328 = OpFMul %v4float %327 %120 - %329 = OpCompositeConstruct %_arr_v4float_uint_3 %257 %306 %328 - %330 = OpCompositeConstruct %FPNTessellationHSToDS %255 %329 %247 %float_1 %float_1 - %331 = OpCompositeExtract %FVertexFactoryInterpolantsVSToDS %255 0 - %332 = OpCompositeExtract %FVertexFactoryInterpolantsVSToPS %331 0 - %333 = OpCompositeExtract %v4float %332 0 - %334 = OpAccessChain %_ptr_Output_v4float %out_var_TEXCOORD10_centroid %227 - OpStore %334 %333 - %335 = OpCompositeExtract %v4float %332 1 - %336 = OpAccessChain %_ptr_Output_v4float %out_var_TEXCOORD11_centroid %227 - OpStore %336 %335 - %337 = OpCompositeExtract %v4float %332 2 - %338 = OpAccessChain %_ptr_Output_v4float %out_var_COLOR0 %227 - OpStore %338 %337 - %339 = OpCompositeExtract %_arr_v2float_uint_2 %332 3 - %340 = OpAccessChain %_ptr_Output__arr_v2float_uint_2 %out_var_TEXCOORD0 %227 - OpStore %340 %339 - %341 = OpCompositeExtract %v4float %255 1 - %342 = OpAccessChain %_ptr_Output_v4float %out_var_VS_To_DS_Position %227 - OpStore %342 %341 - %343 = OpAccessChain %_ptr_Output__arr_v4float_uint_3 %out_var_PN_POSITION %227 - OpStore %343 %329 - %344 = OpAccessChain %_ptr_Output_v3float %out_var_PN_DisplacementScales %227 - OpStore %344 %247 - %345 = OpAccessChain %_ptr_Output_float %out_var_PN_TessellationMultiplier %227 - OpStore %345 %float_1 - %346 = OpAccessChain %_ptr_Output_float %out_var_PN_WorldDisplacementMultiplier %227 - OpStore %346 %float_1 - %347 = OpAccessChain %_ptr_Workgroup_FPNTessellationHSToDS %temp_var_hullMainRetVal %227 - OpStore %347 %330 - OpControlBarrier %uint_2 %uint_4 %uint_0 - %348 = OpIEqual %bool %227 %uint_0 - OpSelectionMerge %if_merge None - OpBranchConditional %348 %349 %if_merge - %349 = OpLabel - %350 = OpAccessChain %_ptr_Uniform_mat4v4float %View %int_0 - %351 = OpLoad %mat4v4float %350 - %352 = OpAccessChain %_ptr_Uniform_mat4v4float %View %int_7 - %353 = OpLoad %mat4v4float %352 - %354 = OpAccessChain %_ptr_Uniform_v3float %View %int_28 - %355 = OpLoad %v3float %354 - %356 = OpAccessChain %_ptr_Uniform_float %View %int_78 - %357 = OpLoad %float %356 - %358 = OpAccessChain %_ptr_Workgroup_v4float %temp_var_hullMainRetVal %uint_0 %int_1 %int_0 - %359 = OpLoad %v4float %358 - %360 = OpAccessChain %_ptr_Workgroup_v4float %temp_var_hullMainRetVal %uint_0 %int_1 %int_1 - %361 = OpLoad %v4float %360 - %362 = OpAccessChain %_ptr_Workgroup_v4float %temp_var_hullMainRetVal %uint_0 %int_1 %int_2 - %363 = OpLoad %v4float %362 - %364 = OpAccessChain %_ptr_Workgroup_v4float %temp_var_hullMainRetVal %uint_1 %int_1 %int_0 - %365 = OpLoad %v4float %364 - %366 = OpAccessChain %_ptr_Workgroup_v4float %temp_var_hullMainRetVal %uint_1 %int_1 %int_1 - %367 = OpLoad %v4float %366 - %368 = OpAccessChain %_ptr_Workgroup_v4float %temp_var_hullMainRetVal %uint_1 %int_1 %int_2 - %369 = OpLoad %v4float %368 - %370 = OpAccessChain %_ptr_Workgroup_v4float %temp_var_hullMainRetVal %uint_2 %int_1 %int_0 - %371 = OpLoad %v4float %370 - %372 = OpAccessChain %_ptr_Workgroup_v4float %temp_var_hullMainRetVal %uint_2 %int_1 %int_1 - %373 = OpLoad %v4float %372 - %374 = OpAccessChain %_ptr_Workgroup_v4float %temp_var_hullMainRetVal %uint_2 %int_1 %int_2 - %375 = OpLoad %v4float %374 - %376 = OpFAdd %v4float %361 %363 - %377 = OpFAdd %v4float %376 %367 - %378 = OpFAdd %v4float %377 %369 - %379 = OpFAdd %v4float %378 %373 - %380 = OpFAdd %v4float %379 %375 - %381 = OpFMul %v4float %380 %122 - %382 = OpFAdd %v4float %371 %365 - %383 = OpFAdd %v4float %382 %359 - %384 = OpFMul %v4float %383 %119 - %385 = OpFSub %v4float %381 %384 - %386 = OpFMul %v4float %385 %120 - %387 = OpFAdd %v4float %381 %386 - %388 = OpAccessChain %_ptr_Workgroup_float %temp_var_hullMainRetVal %uint_1 %int_3 - %389 = OpLoad %float %388 - %390 = OpAccessChain %_ptr_Workgroup_float %temp_var_hullMainRetVal %uint_2 %int_3 - %391 = OpLoad %float %390 - %392 = OpFAdd %float %389 %391 - %393 = OpFMul %float %float_0_5 %392 - %394 = OpCompositeInsert %v4float %393 %123 0 - %395 = OpLoad %float %390 - %396 = OpAccessChain %_ptr_Workgroup_float %temp_var_hullMainRetVal %uint_0 %int_3 - %397 = OpLoad %float %396 - %398 = OpFAdd %float %395 %397 - %399 = OpFMul %float %float_0_5 %398 - %400 = OpCompositeInsert %v4float %399 %394 1 - %401 = OpLoad %float %396 - %402 = OpLoad %float %388 - %403 = OpFAdd %float %401 %402 - %404 = OpFMul %float %float_0_5 %403 - %405 = OpCompositeInsert %v4float %404 %400 2 - %406 = OpLoad %float %396 - %407 = OpLoad %float %388 - %408 = OpFAdd %float %406 %407 - %409 = OpLoad %float %390 - %410 = OpFAdd %float %408 %409 - %411 = OpFMul %float %float_0_333000004 %410 - %412 = OpCompositeInsert %v4float %411 %405 3 - %413 = OpVectorShuffle %v3float %359 %359 0 1 2 - %414 = OpVectorShuffle %v3float %365 %365 0 1 2 - %415 = OpVectorShuffle %v3float %371 %371 0 1 2 - OpBranch %416 - %416 = OpLabel - OpLoopMerge %417 %418 None - OpBranch %419 - %419 = OpLabel - %420 = OpMatrixTimesVector %v4float %353 %68 - %421 = OpCompositeExtract %float %359 0 - %422 = OpCompositeExtract %float %359 1 - %423 = OpCompositeExtract %float %359 2 - %424 = OpCompositeConstruct %v4float %421 %422 %423 %float_1 - %425 = OpMatrixTimesVector %v4float %351 %424 - %426 = OpVectorShuffle %v3float %425 %425 0 1 2 - %427 = OpVectorShuffle %v3float %420 %420 0 1 2 - %428 = OpFSub %v3float %426 %427 - %429 = OpCompositeExtract %float %425 3 - %430 = OpCompositeExtract %float %420 3 - %431 = OpFAdd %float %429 %430 - %432 = OpCompositeConstruct %v3float %431 %431 %431 - %433 = OpFOrdLessThan %v3bool %428 %432 - %434 = OpSelect %v3int %433 %74 %65 - %435 = OpFAdd %v3float %426 %427 - %436 = OpFNegate %float %429 - %437 = OpFSub %float %436 %430 - %438 = OpCompositeConstruct %v3float %437 %437 %437 - %439 = OpFOrdGreaterThan %v3bool %435 %438 - %440 = OpSelect %v3int %439 %74 %65 - %441 = OpIMul %v3int %75 %440 - %442 = OpIAdd %v3int %434 %441 - %443 = OpCompositeExtract %float %365 0 - %444 = OpCompositeExtract %float %365 1 - %445 = OpCompositeExtract %float %365 2 - %446 = OpCompositeConstruct %v4float %443 %444 %445 %float_1 - %447 = OpMatrixTimesVector %v4float %351 %446 - %448 = OpVectorShuffle %v3float %447 %447 0 1 2 - %449 = OpFSub %v3float %448 %427 - %450 = OpCompositeExtract %float %447 3 - %451 = OpFAdd %float %450 %430 - %452 = OpCompositeConstruct %v3float %451 %451 %451 - %453 = OpFOrdLessThan %v3bool %449 %452 - %454 = OpSelect %v3int %453 %74 %65 - %455 = OpFAdd %v3float %448 %427 - %456 = OpFNegate %float %450 - %457 = OpFSub %float %456 %430 - %458 = OpCompositeConstruct %v3float %457 %457 %457 - %459 = OpFOrdGreaterThan %v3bool %455 %458 - %460 = OpSelect %v3int %459 %74 %65 - %461 = OpIMul %v3int %75 %460 - %462 = OpIAdd %v3int %454 %461 - %463 = OpBitwiseOr %v3int %442 %462 - %464 = OpCompositeExtract %float %371 0 - %465 = OpCompositeExtract %float %371 1 - %466 = OpCompositeExtract %float %371 2 - %467 = OpCompositeConstruct %v4float %464 %465 %466 %float_1 - %468 = OpMatrixTimesVector %v4float %351 %467 - %469 = OpVectorShuffle %v3float %468 %468 0 1 2 - %470 = OpFSub %v3float %469 %427 - %471 = OpCompositeExtract %float %468 3 - %472 = OpFAdd %float %471 %430 - %473 = OpCompositeConstruct %v3float %472 %472 %472 - %474 = OpFOrdLessThan %v3bool %470 %473 - %475 = OpSelect %v3int %474 %74 %65 - %476 = OpFAdd %v3float %469 %427 - %477 = OpFNegate %float %471 - %478 = OpFSub %float %477 %430 - %479 = OpCompositeConstruct %v3float %478 %478 %478 - %480 = OpFOrdGreaterThan %v3bool %476 %479 - %481 = OpSelect %v3int %480 %74 %65 - %482 = OpIMul %v3int %75 %481 - %483 = OpIAdd %v3int %475 %482 - %484 = OpBitwiseOr %v3int %463 %483 - %485 = OpINotEqual %v3bool %484 %66 - %486 = OpAny %bool %485 - OpSelectionMerge %487 None - OpBranchConditional %486 %488 %487 - %488 = OpLabel - OpBranch %417 - %487 = OpLabel - %489 = OpFSub %v3float %413 %414 - %490 = OpFSub %v3float %414 %415 - %491 = OpFSub %v3float %415 %413 - %492 = OpFAdd %v3float %413 %414 - %493 = OpFMul %v3float %69 %492 - %494 = OpFSub %v3float %493 %355 - %495 = OpFAdd %v3float %414 %415 - %496 = OpFMul %v3float %69 %495 - %497 = OpFSub %v3float %496 %355 - %498 = OpFAdd %v3float %415 %413 - %499 = OpFMul %v3float %69 %498 - %500 = OpFSub %v3float %499 %355 - %501 = OpDot %float %490 %490 - %502 = OpDot %float %497 %497 - %503 = OpFDiv %float %501 %502 - %504 = OpExtInst %float %1 Sqrt %503 - %505 = OpDot %float %491 %491 - %506 = OpDot %float %500 %500 - %507 = OpFDiv %float %505 %506 - %508 = OpExtInst %float %1 Sqrt %507 - %509 = OpDot %float %489 %489 - %510 = OpDot %float %494 %494 - %511 = OpFDiv %float %509 %510 - %512 = OpExtInst %float %1 Sqrt %511 - %513 = OpCompositeConstruct %v4float %504 %508 %512 %float_1 - %514 = OpFAdd %float %504 %508 - %515 = OpFAdd %float %514 %512 - %516 = OpFMul %float %float_0_333000004 %515 - %517 = OpCompositeInsert %v4float %516 %513 3 - %518 = OpCompositeConstruct %v4float %357 %357 %357 %357 - %519 = OpFMul %v4float %518 %517 - OpBranch %417 - %418 = OpLabel - OpBranch %416 - %417 = OpLabel - %520 = OpPhi %v4float %68 %488 %519 %487 - %521 = OpFMul %v4float %412 %520 - %522 = OpExtInst %v4float %1 FClamp %521 %59 %61 - %523 = OpCompositeExtract %float %522 0 - %524 = OpCompositeExtract %float %522 1 - %525 = OpCompositeExtract %float %522 2 - %526 = OpCompositeExtract %float %522 3 - %527 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %uint_0 - OpStore %527 %523 - %528 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %uint_1 - OpStore %528 %524 - %529 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %uint_2 - OpStore %529 %525 - %530 = OpAccessChain %_ptr_Output_float %gl_TessLevelInner %uint_0 - OpStore %530 %526 - OpStore %out_var_PN_POSITION9 %387 - OpBranch %if_merge - %if_merge = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.asm.tesc b/third_party/spirv-cross/shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.asm.tesc deleted file mode 100644 index 98216e7924..0000000000 --- a/third_party/spirv-cross/shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.asm.tesc +++ /dev/null @@ -1,352 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 179 -; Schema: 0 - OpCapability Tessellation - OpCapability SampledBuffer - OpExtension "SPV_GOOGLE_hlsl_functionality1" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationControl %MainHull "main" %in_var_TEXCOORD10_centroid %in_var_TEXCOORD11_centroid %in_var_VS_To_DS_Position %gl_InvocationID %out_var_TEXCOORD10_centroid %out_var_TEXCOORD11_centroid %out_var_VS_To_DS_Position %out_var_Flat_DisplacementScales %out_var_Flat_TessellationMultiplier %out_var_Flat_WorldDisplacementMultiplier %gl_TessLevelOuter %gl_TessLevelInner - OpExecutionMode %MainHull Triangles - OpExecutionMode %MainHull SpacingFractionalOdd - OpExecutionMode %MainHull VertexOrderCw - OpExecutionMode %MainHull OutputVertices 3 - OpSource HLSL 600 - OpName %FFlatTessellationHSToDS "FFlatTessellationHSToDS" - OpMemberName %FFlatTessellationHSToDS 0 "PassSpecificData" - OpMemberName %FFlatTessellationHSToDS 1 "DisplacementScale" - OpMemberName %FFlatTessellationHSToDS 2 "TessellationMultiplier" - OpMemberName %FFlatTessellationHSToDS 3 "WorldDisplacementMultiplier" - OpName %FBasePassVSToDS "FBasePassVSToDS" - OpMemberName %FBasePassVSToDS 0 "FactoryInterpolants" - OpMemberName %FBasePassVSToDS 1 "BasePassInterpolants" - OpMemberName %FBasePassVSToDS 2 "Position" - OpName %FVertexFactoryInterpolantsVSToDS "FVertexFactoryInterpolantsVSToDS" - OpMemberName %FVertexFactoryInterpolantsVSToDS 0 "InterpolantsVSToPS" - OpName %FVertexFactoryInterpolantsVSToPS "FVertexFactoryInterpolantsVSToPS" - OpMemberName %FVertexFactoryInterpolantsVSToPS 0 "TangentToWorld0" - OpMemberName %FVertexFactoryInterpolantsVSToPS 1 "TangentToWorld2" - OpName %FBasePassInterpolantsVSToDS "FBasePassInterpolantsVSToDS" - OpName %FSharedBasePassInterpolants "FSharedBasePassInterpolants" - OpName %type_Primitive "type.Primitive" - OpMemberName %type_Primitive 0 "Primitive_LocalToWorld" - OpMemberName %type_Primitive 1 "Primitive_InvNonUniformScaleAndDeterminantSign" - OpMemberName %type_Primitive 2 "Primitive_ObjectWorldPositionAndRadius" - OpMemberName %type_Primitive 3 "Primitive_WorldToLocal" - OpMemberName %type_Primitive 4 "Primitive_PreviousLocalToWorld" - OpMemberName %type_Primitive 5 "Primitive_PreviousWorldToLocal" - OpMemberName %type_Primitive 6 "Primitive_ActorWorldPosition" - OpMemberName %type_Primitive 7 "Primitive_UseSingleSampleShadowFromStationaryLights" - OpMemberName %type_Primitive 8 "Primitive_ObjectBounds" - OpMemberName %type_Primitive 9 "Primitive_LpvBiasMultiplier" - OpMemberName %type_Primitive 10 "Primitive_DecalReceiverMask" - OpMemberName %type_Primitive 11 "Primitive_PerObjectGBufferData" - OpMemberName %type_Primitive 12 "Primitive_UseVolumetricLightmapShadowFromStationaryLights" - OpMemberName %type_Primitive 13 "Primitive_DrawsVelocity" - OpMemberName %type_Primitive 14 "Primitive_ObjectOrientation" - OpMemberName %type_Primitive 15 "Primitive_NonUniformScale" - OpMemberName %type_Primitive 16 "Primitive_LocalObjectBoundsMin" - OpMemberName %type_Primitive 17 "Primitive_LightingChannelMask" - OpMemberName %type_Primitive 18 "Primitive_LocalObjectBoundsMax" - OpMemberName %type_Primitive 19 "Primitive_LightmapDataIndex" - OpMemberName %type_Primitive 20 "Primitive_PreSkinnedLocalBounds" - OpMemberName %type_Primitive 21 "Primitive_SingleCaptureIndex" - OpMemberName %type_Primitive 22 "Primitive_OutputVelocity" - OpMemberName %type_Primitive 23 "PrePadding_Primitive_420" - OpMemberName %type_Primitive 24 "PrePadding_Primitive_424" - OpMemberName %type_Primitive 25 "PrePadding_Primitive_428" - OpMemberName %type_Primitive 26 "Primitive_CustomPrimitiveData" - OpName %Primitive "Primitive" - OpName %type_Material "type.Material" - OpMemberName %type_Material 0 "Material_VectorExpressions" - OpMemberName %type_Material 1 "Material_ScalarExpressions" - OpName %Material "Material" - OpName %in_var_TEXCOORD10_centroid "in.var.TEXCOORD10_centroid" - OpName %in_var_TEXCOORD11_centroid "in.var.TEXCOORD11_centroid" - OpName %in_var_VS_To_DS_Position "in.var.VS_To_DS_Position" - OpName %out_var_TEXCOORD10_centroid "out.var.TEXCOORD10_centroid" - OpName %out_var_TEXCOORD11_centroid "out.var.TEXCOORD11_centroid" - OpName %out_var_VS_To_DS_Position "out.var.VS_To_DS_Position" - OpName %out_var_Flat_DisplacementScales "out.var.Flat_DisplacementScales" - OpName %out_var_Flat_TessellationMultiplier "out.var.Flat_TessellationMultiplier" - OpName %out_var_Flat_WorldDisplacementMultiplier "out.var.Flat_WorldDisplacementMultiplier" - OpName %MainHull "MainHull" - OpName %param_var_I "param.var.I" - OpName %temp_var_hullMainRetVal "temp.var.hullMainRetVal" - OpName %if_merge "if.merge" - OpDecorateString %in_var_TEXCOORD10_centroid UserSemantic "TEXCOORD10_centroid" - OpDecorateString %in_var_TEXCOORD11_centroid UserSemantic "TEXCOORD11_centroid" - OpDecorateString %in_var_VS_To_DS_Position UserSemantic "VS_To_DS_Position" - OpDecorate %gl_InvocationID BuiltIn InvocationId - OpDecorateString %gl_InvocationID UserSemantic "SV_OutputControlPointID" - OpDecorateString %out_var_TEXCOORD10_centroid UserSemantic "TEXCOORD10_centroid" - OpDecorateString %out_var_TEXCOORD11_centroid UserSemantic "TEXCOORD11_centroid" - OpDecorateString %out_var_VS_To_DS_Position UserSemantic "VS_To_DS_Position" - OpDecorateString %out_var_Flat_DisplacementScales UserSemantic "Flat_DisplacementScales" - OpDecorateString %out_var_Flat_TessellationMultiplier UserSemantic "Flat_TessellationMultiplier" - OpDecorateString %out_var_Flat_WorldDisplacementMultiplier UserSemantic "Flat_WorldDisplacementMultiplier" - OpDecorate %gl_TessLevelOuter BuiltIn TessLevelOuter - OpDecorateString %gl_TessLevelOuter UserSemantic "SV_TessFactor" - OpDecorate %gl_TessLevelOuter Patch - OpDecorate %gl_TessLevelInner BuiltIn TessLevelInner - OpDecorateString %gl_TessLevelInner UserSemantic "SV_InsideTessFactor" - OpDecorate %gl_TessLevelInner Patch - OpDecorate %in_var_TEXCOORD10_centroid Location 0 - OpDecorate %in_var_TEXCOORD11_centroid Location 1 - OpDecorate %in_var_VS_To_DS_Position Location 2 - OpDecorate %out_var_Flat_DisplacementScales Location 0 - OpDecorate %out_var_Flat_TessellationMultiplier Location 1 - OpDecorate %out_var_Flat_WorldDisplacementMultiplier Location 2 - OpDecorate %out_var_TEXCOORD10_centroid Location 3 - OpDecorate %out_var_TEXCOORD11_centroid Location 4 - OpDecorate %out_var_VS_To_DS_Position Location 5 - OpDecorate %Primitive DescriptorSet 0 - OpDecorate %Primitive Binding 0 - OpDecorate %Material DescriptorSet 0 - OpDecorate %Material Binding 1 - OpDecorate %_arr_v4float_uint_4 ArrayStride 16 - OpMemberDecorate %type_Primitive 0 Offset 0 - OpMemberDecorate %type_Primitive 0 MatrixStride 16 - OpMemberDecorate %type_Primitive 0 ColMajor - OpMemberDecorate %type_Primitive 1 Offset 64 - OpMemberDecorate %type_Primitive 2 Offset 80 - OpMemberDecorate %type_Primitive 3 Offset 96 - OpMemberDecorate %type_Primitive 3 MatrixStride 16 - OpMemberDecorate %type_Primitive 3 ColMajor - OpMemberDecorate %type_Primitive 4 Offset 160 - OpMemberDecorate %type_Primitive 4 MatrixStride 16 - OpMemberDecorate %type_Primitive 4 ColMajor - OpMemberDecorate %type_Primitive 5 Offset 224 - OpMemberDecorate %type_Primitive 5 MatrixStride 16 - OpMemberDecorate %type_Primitive 5 ColMajor - OpMemberDecorate %type_Primitive 6 Offset 288 - OpMemberDecorate %type_Primitive 7 Offset 300 - OpMemberDecorate %type_Primitive 8 Offset 304 - OpMemberDecorate %type_Primitive 9 Offset 316 - OpMemberDecorate %type_Primitive 10 Offset 320 - OpMemberDecorate %type_Primitive 11 Offset 324 - OpMemberDecorate %type_Primitive 12 Offset 328 - OpMemberDecorate %type_Primitive 13 Offset 332 - OpMemberDecorate %type_Primitive 14 Offset 336 - OpMemberDecorate %type_Primitive 15 Offset 352 - OpMemberDecorate %type_Primitive 16 Offset 368 - OpMemberDecorate %type_Primitive 17 Offset 380 - OpMemberDecorate %type_Primitive 18 Offset 384 - OpMemberDecorate %type_Primitive 19 Offset 396 - OpMemberDecorate %type_Primitive 20 Offset 400 - OpMemberDecorate %type_Primitive 21 Offset 412 - OpMemberDecorate %type_Primitive 22 Offset 416 - OpMemberDecorate %type_Primitive 23 Offset 420 - OpMemberDecorate %type_Primitive 24 Offset 424 - OpMemberDecorate %type_Primitive 25 Offset 428 - OpMemberDecorate %type_Primitive 26 Offset 432 - OpDecorate %type_Primitive Block - OpDecorate %_arr_v4float_uint_3 ArrayStride 16 - OpDecorate %_arr_v4float_uint_1 ArrayStride 16 - OpMemberDecorate %type_Material 0 Offset 0 - OpMemberDecorate %type_Material 1 Offset 48 - OpDecorate %type_Material Block - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%mat4v4float = OpTypeMatrix %v4float 4 - %v3float = OpTypeVector %float 3 - %int = OpTypeInt 32 1 - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 - %uint_4 = OpConstant %uint 4 - %uint_0 = OpConstant %uint 0 - %uint_1 = OpConstant %uint 1 - %uint_3 = OpConstant %uint 3 -%_arr_float_uint_3 = OpTypeArray %float %uint_3 - %int_0 = OpConstant %int 0 - %int_2 = OpConstant %int 2 - %float_0_5 = OpConstant %float 0.5 - %int_1 = OpConstant %int 1 -%float_0_333000004 = OpConstant %float 0.333000004 - %float_1 = OpConstant %float 1 - %49 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 - %float_15 = OpConstant %float 15 - %51 = OpConstantComposite %v4float %float_15 %float_15 %float_15 %float_15 -%FVertexFactoryInterpolantsVSToPS = OpTypeStruct %v4float %v4float -%FVertexFactoryInterpolantsVSToDS = OpTypeStruct %FVertexFactoryInterpolantsVSToPS -%FSharedBasePassInterpolants = OpTypeStruct -%FBasePassInterpolantsVSToDS = OpTypeStruct %FSharedBasePassInterpolants -%FBasePassVSToDS = OpTypeStruct %FVertexFactoryInterpolantsVSToDS %FBasePassInterpolantsVSToDS %v4float -%FFlatTessellationHSToDS = OpTypeStruct %FBasePassVSToDS %v3float %float %float - %int_15 = OpConstant %int 15 -%_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4 -%type_Primitive = OpTypeStruct %mat4v4float %v4float %v4float %mat4v4float %mat4v4float %mat4v4float %v3float %float %v3float %float %float %float %float %float %v4float %v4float %v3float %uint %v3float %uint %v3float %int %uint %uint %uint %uint %_arr_v4float_uint_4 -%_ptr_Uniform_type_Primitive = OpTypePointer Uniform %type_Primitive -%_arr_v4float_uint_3 = OpTypeArray %v4float %uint_3 -%_arr_v4float_uint_1 = OpTypeArray %v4float %uint_1 -%type_Material = OpTypeStruct %_arr_v4float_uint_3 %_arr_v4float_uint_1 -%_ptr_Uniform_type_Material = OpTypePointer Uniform %type_Material -%_arr_v4float_uint_3_0 = OpTypeArray %v4float %uint_3 -%_ptr_Input__arr_v4float_uint_3_0 = OpTypePointer Input %_arr_v4float_uint_3_0 -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_Output__arr_v4float_uint_3_0 = OpTypePointer Output %_arr_v4float_uint_3_0 -%_arr_v3float_uint_3 = OpTypeArray %v3float %uint_3 -%_ptr_Output__arr_v3float_uint_3 = OpTypePointer Output %_arr_v3float_uint_3 -%_ptr_Output__arr_float_uint_3 = OpTypePointer Output %_arr_float_uint_3 -%_arr_float_uint_4 = OpTypeArray %float %uint_4 -%_ptr_Output__arr_float_uint_4 = OpTypePointer Output %_arr_float_uint_4 -%_arr_float_uint_2 = OpTypeArray %float %uint_2 -%_ptr_Output__arr_float_uint_2 = OpTypePointer Output %_arr_float_uint_2 - %void = OpTypeVoid - %67 = OpTypeFunction %void -%_arr_FBasePassVSToDS_uint_3 = OpTypeArray %FBasePassVSToDS %uint_3 -%_ptr_Function__arr_FBasePassVSToDS_uint_3 = OpTypePointer Function %_arr_FBasePassVSToDS_uint_3 -%_arr_FFlatTessellationHSToDS_uint_3 = OpTypeArray %FFlatTessellationHSToDS %uint_3 -%_ptr_Function__arr_FFlatTessellationHSToDS_uint_3 = OpTypePointer Function %_arr_FFlatTessellationHSToDS_uint_3 -%_ptr_Workgroup__arr_FFlatTessellationHSToDS_uint_3 = OpTypePointer Workgroup %_arr_FFlatTessellationHSToDS_uint_3 -%_ptr_Output_v4float = OpTypePointer Output %v4float -%_ptr_Output_v3float = OpTypePointer Output %v3float -%_ptr_Output_float = OpTypePointer Output %float -%_ptr_Function_FFlatTessellationHSToDS = OpTypePointer Function %FFlatTessellationHSToDS -%_ptr_Workgroup_FFlatTessellationHSToDS = OpTypePointer Workgroup %FFlatTessellationHSToDS - %bool = OpTypeBool -%_ptr_Function_float = OpTypePointer Function %float -%_ptr_Workgroup_float = OpTypePointer Workgroup %float -%mat3v3float = OpTypeMatrix %v3float 3 -%_ptr_Function_FVertexFactoryInterpolantsVSToDS = OpTypePointer Function %FVertexFactoryInterpolantsVSToDS -%_ptr_Function_FBasePassVSToDS = OpTypePointer Function %FBasePassVSToDS -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float -%_ptr_Uniform_float = OpTypePointer Uniform %float - %Primitive = OpVariable %_ptr_Uniform_type_Primitive Uniform - %Material = OpVariable %_ptr_Uniform_type_Material Uniform -%in_var_TEXCOORD10_centroid = OpVariable %_ptr_Input__arr_v4float_uint_3_0 Input -%in_var_TEXCOORD11_centroid = OpVariable %_ptr_Input__arr_v4float_uint_3_0 Input -%in_var_VS_To_DS_Position = OpVariable %_ptr_Input__arr_v4float_uint_3_0 Input -%gl_InvocationID = OpVariable %_ptr_Input_uint Input -%out_var_TEXCOORD10_centroid = OpVariable %_ptr_Output__arr_v4float_uint_3_0 Output -%out_var_TEXCOORD11_centroid = OpVariable %_ptr_Output__arr_v4float_uint_3_0 Output -%out_var_VS_To_DS_Position = OpVariable %_ptr_Output__arr_v4float_uint_3_0 Output -%out_var_Flat_DisplacementScales = OpVariable %_ptr_Output__arr_v3float_uint_3 Output -%out_var_Flat_TessellationMultiplier = OpVariable %_ptr_Output__arr_float_uint_3 Output -%out_var_Flat_WorldDisplacementMultiplier = OpVariable %_ptr_Output__arr_float_uint_3 Output -%gl_TessLevelOuter = OpVariable %_ptr_Output__arr_float_uint_4 Output -%gl_TessLevelInner = OpVariable %_ptr_Output__arr_float_uint_2 Output - %83 = OpConstantNull %FSharedBasePassInterpolants - %84 = OpConstantComposite %FBasePassInterpolantsVSToDS %83 - %85 = OpUndef %v4float - -; XXX: Original asm used Function here, which is wrong. -; This patches the SPIR-V to be correct. -%temp_var_hullMainRetVal = OpVariable %_ptr_Workgroup__arr_FFlatTessellationHSToDS_uint_3 Workgroup - - %MainHull = OpFunction %void None %67 - %86 = OpLabel -%param_var_I = OpVariable %_ptr_Function__arr_FBasePassVSToDS_uint_3 Function - %87 = OpLoad %_arr_v4float_uint_3_0 %in_var_TEXCOORD10_centroid - %88 = OpLoad %_arr_v4float_uint_3_0 %in_var_TEXCOORD11_centroid - %89 = OpCompositeExtract %v4float %87 0 - %90 = OpCompositeExtract %v4float %88 0 - %91 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %89 %90 - %92 = OpCompositeExtract %v4float %87 1 - %93 = OpCompositeExtract %v4float %88 1 - %94 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %92 %93 - %95 = OpCompositeExtract %v4float %87 2 - %96 = OpCompositeExtract %v4float %88 2 - %97 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToPS %95 %96 - %98 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %91 - %99 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %94 - %100 = OpCompositeConstruct %FVertexFactoryInterpolantsVSToDS %97 - %101 = OpLoad %_arr_v4float_uint_3_0 %in_var_VS_To_DS_Position - %102 = OpCompositeExtract %v4float %101 0 - %103 = OpCompositeConstruct %FBasePassVSToDS %98 %84 %102 - %104 = OpCompositeExtract %v4float %101 1 - %105 = OpCompositeConstruct %FBasePassVSToDS %99 %84 %104 - %106 = OpCompositeExtract %v4float %101 2 - %107 = OpCompositeConstruct %FBasePassVSToDS %100 %84 %106 - %108 = OpCompositeConstruct %_arr_FBasePassVSToDS_uint_3 %103 %105 %107 - OpStore %param_var_I %108 - %109 = OpLoad %uint %gl_InvocationID - %110 = OpAccessChain %_ptr_Function_FVertexFactoryInterpolantsVSToDS %param_var_I %109 %int_0 - %111 = OpLoad %FVertexFactoryInterpolantsVSToDS %110 - %112 = OpCompositeExtract %FVertexFactoryInterpolantsVSToPS %111 0 - %113 = OpCompositeExtract %v4float %112 0 - %114 = OpCompositeExtract %v4float %112 1 - %115 = OpVectorShuffle %v3float %113 %113 0 1 2 - %116 = OpVectorShuffle %v3float %114 %114 0 1 2 - %117 = OpExtInst %v3float %1 Cross %116 %115 - %118 = OpCompositeExtract %float %114 3 - %119 = OpCompositeConstruct %v3float %118 %118 %118 - %120 = OpFMul %v3float %117 %119 - %121 = OpCompositeConstruct %mat3v3float %115 %120 %116 - %122 = OpAccessChain %_ptr_Uniform_v4float %Primitive %int_15 - %123 = OpLoad %v4float %122 - %124 = OpVectorShuffle %v3float %123 %123 0 1 2 - %125 = OpVectorTimesMatrix %v3float %124 %121 - %126 = OpAccessChain %_ptr_Function_FBasePassVSToDS %param_var_I %109 - %127 = OpLoad %FBasePassVSToDS %126 - %128 = OpAccessChain %_ptr_Uniform_float %Material %int_1 %int_0 %int_0 - %129 = OpLoad %float %128 - %130 = OpCompositeConstruct %FFlatTessellationHSToDS %127 %125 %129 %float_1 - %131 = OpCompositeExtract %FVertexFactoryInterpolantsVSToDS %127 0 - %132 = OpCompositeExtract %FVertexFactoryInterpolantsVSToPS %131 0 - %133 = OpCompositeExtract %v4float %132 0 - %134 = OpAccessChain %_ptr_Output_v4float %out_var_TEXCOORD10_centroid %109 - OpStore %134 %133 - %135 = OpCompositeExtract %v4float %132 1 - %136 = OpAccessChain %_ptr_Output_v4float %out_var_TEXCOORD11_centroid %109 - OpStore %136 %135 - %137 = OpCompositeExtract %v4float %127 2 - %138 = OpAccessChain %_ptr_Output_v4float %out_var_VS_To_DS_Position %109 - OpStore %138 %137 - %139 = OpAccessChain %_ptr_Output_v3float %out_var_Flat_DisplacementScales %109 - OpStore %139 %125 - %140 = OpAccessChain %_ptr_Output_float %out_var_Flat_TessellationMultiplier %109 - OpStore %140 %129 - %141 = OpAccessChain %_ptr_Output_float %out_var_Flat_WorldDisplacementMultiplier %109 - OpStore %141 %float_1 - %142 = OpAccessChain %_ptr_Workgroup_FFlatTessellationHSToDS %temp_var_hullMainRetVal %109 - OpStore %142 %130 - OpControlBarrier %uint_2 %uint_4 %uint_0 - %143 = OpIEqual %bool %109 %uint_0 - OpSelectionMerge %if_merge None - OpBranchConditional %143 %144 %if_merge - %144 = OpLabel - %145 = OpAccessChain %_ptr_Workgroup_float %temp_var_hullMainRetVal %uint_1 %int_2 - %146 = OpLoad %float %145 - %147 = OpAccessChain %_ptr_Workgroup_float %temp_var_hullMainRetVal %uint_2 %int_2 - %148 = OpLoad %float %147 - %149 = OpFAdd %float %146 %148 - %150 = OpFMul %float %float_0_5 %149 - %151 = OpCompositeInsert %v4float %150 %85 0 - %152 = OpLoad %float %147 - %153 = OpAccessChain %_ptr_Workgroup_float %temp_var_hullMainRetVal %uint_0 %int_2 - %154 = OpLoad %float %153 - %155 = OpFAdd %float %152 %154 - %156 = OpFMul %float %float_0_5 %155 - %157 = OpCompositeInsert %v4float %156 %151 1 - %158 = OpLoad %float %153 - %159 = OpLoad %float %145 - %160 = OpFAdd %float %158 %159 - %161 = OpFMul %float %float_0_5 %160 - %162 = OpCompositeInsert %v4float %161 %157 2 - %163 = OpLoad %float %153 - %164 = OpLoad %float %145 - %165 = OpFAdd %float %163 %164 - %166 = OpLoad %float %147 - %167 = OpFAdd %float %165 %166 - %168 = OpFMul %float %float_0_333000004 %167 - %169 = OpCompositeInsert %v4float %168 %162 3 - %170 = OpExtInst %v4float %1 FClamp %169 %49 %51 - %171 = OpCompositeExtract %float %170 0 - %172 = OpCompositeExtract %float %170 1 - %173 = OpCompositeExtract %float %170 2 - %174 = OpCompositeExtract %float %170 3 - %175 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %uint_0 - OpStore %175 %171 - %176 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %uint_1 - OpStore %176 %172 - %177 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %uint_2 - OpStore %177 %173 - %178 = OpAccessChain %_ptr_Output_float %gl_TessLevelInner %uint_0 - OpStore %178 %174 - OpBranch %if_merge - %if_merge = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-ue4/asm/tese/ds-double-gl-in-deref.asm.tese b/third_party/spirv-cross/shaders-ue4/asm/tese/ds-double-gl-in-deref.asm.tese deleted file mode 100644 index dc543d1f86..0000000000 --- a/third_party/spirv-cross/shaders-ue4/asm/tese/ds-double-gl-in-deref.asm.tese +++ /dev/null @@ -1,1046 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 310 -; Schema: 0 - OpCapability Tessellation - OpCapability SampledBuffer - OpCapability StorageImageExtendedFormats - OpExtension "SPV_GOOGLE_hlsl_functionality1" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationEvaluation %MainDomain "main" %in_var_TEXCOORD10_centroid %in_var_TEXCOORD11_centroid %in_var_COLOR0 %in_var_TEXCOORD0 %in_var_PRIMITIVE_ID %in_var_VS_to_DS_Position %in_var_PN_POSITION %in_var_PN_DisplacementScales %in_var_PN_TessellationMultiplier %in_var_PN_WorldDisplacementMultiplier %gl_TessLevelOuter %gl_TessLevelInner %in_var_PN_POSITION9 %gl_TessCoord %out_var_TEXCOORD10_centroid %out_var_TEXCOORD11_centroid %out_var_COLOR0 %out_var_TEXCOORD0 %out_var_PRIMITIVE_ID %out_var_TEXCOORD6 %out_var_TEXCOORD8 %out_var_TEXCOORD7 %gl_Position - OpExecutionMode %MainDomain Triangles - OpSource HLSL 600 - OpName %type_View "type.View" - OpMemberName %type_View 0 "View_TranslatedWorldToClip" - OpMemberName %type_View 1 "View_WorldToClip" - OpMemberName %type_View 2 "View_ClipToWorld" - OpMemberName %type_View 3 "View_TranslatedWorldToView" - OpMemberName %type_View 4 "View_ViewToTranslatedWorld" - OpMemberName %type_View 5 "View_TranslatedWorldToCameraView" - OpMemberName %type_View 6 "View_CameraViewToTranslatedWorld" - OpMemberName %type_View 7 "View_ViewToClip" - OpMemberName %type_View 8 "View_ViewToClipNoAA" - OpMemberName %type_View 9 "View_ClipToView" - OpMemberName %type_View 10 "View_ClipToTranslatedWorld" - OpMemberName %type_View 11 "View_SVPositionToTranslatedWorld" - OpMemberName %type_View 12 "View_ScreenToWorld" - OpMemberName %type_View 13 "View_ScreenToTranslatedWorld" - OpMemberName %type_View 14 "View_ViewForward" - OpMemberName %type_View 15 "PrePadding_View_908" - OpMemberName %type_View 16 "View_ViewUp" - OpMemberName %type_View 17 "PrePadding_View_924" - OpMemberName %type_View 18 "View_ViewRight" - OpMemberName %type_View 19 "PrePadding_View_940" - OpMemberName %type_View 20 "View_HMDViewNoRollUp" - OpMemberName %type_View 21 "PrePadding_View_956" - OpMemberName %type_View 22 "View_HMDViewNoRollRight" - OpMemberName %type_View 23 "PrePadding_View_972" - OpMemberName %type_View 24 "View_InvDeviceZToWorldZTransform" - OpMemberName %type_View 25 "View_ScreenPositionScaleBias" - OpMemberName %type_View 26 "View_WorldCameraOrigin" - OpMemberName %type_View 27 "PrePadding_View_1020" - OpMemberName %type_View 28 "View_TranslatedWorldCameraOrigin" - OpMemberName %type_View 29 "PrePadding_View_1036" - OpMemberName %type_View 30 "View_WorldViewOrigin" - OpMemberName %type_View 31 "PrePadding_View_1052" - OpMemberName %type_View 32 "View_PreViewTranslation" - OpMemberName %type_View 33 "PrePadding_View_1068" - OpMemberName %type_View 34 "View_PrevProjection" - OpMemberName %type_View 35 "View_PrevViewProj" - OpMemberName %type_View 36 "View_PrevViewRotationProj" - OpMemberName %type_View 37 "View_PrevViewToClip" - OpMemberName %type_View 38 "View_PrevClipToView" - OpMemberName %type_View 39 "View_PrevTranslatedWorldToClip" - OpMemberName %type_View 40 "View_PrevTranslatedWorldToView" - OpMemberName %type_View 41 "View_PrevViewToTranslatedWorld" - OpMemberName %type_View 42 "View_PrevTranslatedWorldToCameraView" - OpMemberName %type_View 43 "View_PrevCameraViewToTranslatedWorld" - OpMemberName %type_View 44 "View_PrevWorldCameraOrigin" - OpMemberName %type_View 45 "PrePadding_View_1724" - OpMemberName %type_View 46 "View_PrevWorldViewOrigin" - OpMemberName %type_View 47 "PrePadding_View_1740" - OpMemberName %type_View 48 "View_PrevPreViewTranslation" - OpMemberName %type_View 49 "PrePadding_View_1756" - OpMemberName %type_View 50 "View_PrevInvViewProj" - OpMemberName %type_View 51 "View_PrevScreenToTranslatedWorld" - OpMemberName %type_View 52 "View_ClipToPrevClip" - OpMemberName %type_View 53 "View_TemporalAAJitter" - OpMemberName %type_View 54 "View_GlobalClippingPlane" - OpMemberName %type_View 55 "View_FieldOfViewWideAngles" - OpMemberName %type_View 56 "View_PrevFieldOfViewWideAngles" - OpMemberName %type_View 57 "View_ViewRectMin" - OpMemberName %type_View 58 "View_ViewSizeAndInvSize" - OpMemberName %type_View 59 "View_BufferSizeAndInvSize" - OpMemberName %type_View 60 "View_BufferBilinearUVMinMax" - OpMemberName %type_View 61 "View_NumSceneColorMSAASamples" - OpMemberName %type_View 62 "View_PreExposure" - OpMemberName %type_View 63 "View_OneOverPreExposure" - OpMemberName %type_View 64 "PrePadding_View_2076" - OpMemberName %type_View 65 "View_DiffuseOverrideParameter" - OpMemberName %type_View 66 "View_SpecularOverrideParameter" - OpMemberName %type_View 67 "View_NormalOverrideParameter" - OpMemberName %type_View 68 "View_RoughnessOverrideParameter" - OpMemberName %type_View 69 "View_PrevFrameGameTime" - OpMemberName %type_View 70 "View_PrevFrameRealTime" - OpMemberName %type_View 71 "View_OutOfBoundsMask" - OpMemberName %type_View 72 "PrePadding_View_2148" - OpMemberName %type_View 73 "PrePadding_View_2152" - OpMemberName %type_View 74 "PrePadding_View_2156" - OpMemberName %type_View 75 "View_WorldCameraMovementSinceLastFrame" - OpMemberName %type_View 76 "View_CullingSign" - OpMemberName %type_View 77 "View_NearPlane" - OpMemberName %type_View 78 "View_AdaptiveTessellationFactor" - OpMemberName %type_View 79 "View_GameTime" - OpMemberName %type_View 80 "View_RealTime" - OpMemberName %type_View 81 "View_DeltaTime" - OpMemberName %type_View 82 "View_MaterialTextureMipBias" - OpMemberName %type_View 83 "View_MaterialTextureDerivativeMultiply" - OpMemberName %type_View 84 "View_Random" - OpMemberName %type_View 85 "View_FrameNumber" - OpMemberName %type_View 86 "View_StateFrameIndexMod8" - OpMemberName %type_View 87 "View_StateFrameIndex" - OpMemberName %type_View 88 "View_CameraCut" - OpMemberName %type_View 89 "View_UnlitViewmodeMask" - OpMemberName %type_View 90 "PrePadding_View_2228" - OpMemberName %type_View 91 "PrePadding_View_2232" - OpMemberName %type_View 92 "PrePadding_View_2236" - OpMemberName %type_View 93 "View_DirectionalLightColor" - OpMemberName %type_View 94 "View_DirectionalLightDirection" - OpMemberName %type_View 95 "PrePadding_View_2268" - OpMemberName %type_View 96 "View_TranslucencyLightingVolumeMin" - OpMemberName %type_View 97 "View_TranslucencyLightingVolumeInvSize" - OpMemberName %type_View 98 "View_TemporalAAParams" - OpMemberName %type_View 99 "View_CircleDOFParams" - OpMemberName %type_View 100 "View_DepthOfFieldSensorWidth" - OpMemberName %type_View 101 "View_DepthOfFieldFocalDistance" - OpMemberName %type_View 102 "View_DepthOfFieldScale" - OpMemberName %type_View 103 "View_DepthOfFieldFocalLength" - OpMemberName %type_View 104 "View_DepthOfFieldFocalRegion" - OpMemberName %type_View 105 "View_DepthOfFieldNearTransitionRegion" - OpMemberName %type_View 106 "View_DepthOfFieldFarTransitionRegion" - OpMemberName %type_View 107 "View_MotionBlurNormalizedToPixel" - OpMemberName %type_View 108 "View_bSubsurfacePostprocessEnabled" - OpMemberName %type_View 109 "View_GeneralPurposeTweak" - OpMemberName %type_View 110 "View_DemosaicVposOffset" - OpMemberName %type_View 111 "PrePadding_View_2412" - OpMemberName %type_View 112 "View_IndirectLightingColorScale" - OpMemberName %type_View 113 "View_HDR32bppEncodingMode" - OpMemberName %type_View 114 "View_AtmosphericFogSunDirection" - OpMemberName %type_View 115 "View_AtmosphericFogSunPower" - OpMemberName %type_View 116 "View_AtmosphericFogPower" - OpMemberName %type_View 117 "View_AtmosphericFogDensityScale" - OpMemberName %type_View 118 "View_AtmosphericFogDensityOffset" - OpMemberName %type_View 119 "View_AtmosphericFogGroundOffset" - OpMemberName %type_View 120 "View_AtmosphericFogDistanceScale" - OpMemberName %type_View 121 "View_AtmosphericFogAltitudeScale" - OpMemberName %type_View 122 "View_AtmosphericFogHeightScaleRayleigh" - OpMemberName %type_View 123 "View_AtmosphericFogStartDistance" - OpMemberName %type_View 124 "View_AtmosphericFogDistanceOffset" - OpMemberName %type_View 125 "View_AtmosphericFogSunDiscScale" - OpMemberName %type_View 126 "View_AtmosphericFogSunDiscHalfApexAngleRadian" - OpMemberName %type_View 127 "PrePadding_View_2492" - OpMemberName %type_View 128 "View_AtmosphericFogSunDiscLuminance" - OpMemberName %type_View 129 "View_AtmosphericFogRenderMask" - OpMemberName %type_View 130 "View_AtmosphericFogInscatterAltitudeSampleNum" - OpMemberName %type_View 131 "PrePadding_View_2520" - OpMemberName %type_View 132 "PrePadding_View_2524" - OpMemberName %type_View 133 "View_AtmosphericFogSunColor" - OpMemberName %type_View 134 "View_NormalCurvatureToRoughnessScaleBias" - OpMemberName %type_View 135 "View_RenderingReflectionCaptureMask" - OpMemberName %type_View 136 "View_AmbientCubemapTint" - OpMemberName %type_View 137 "View_AmbientCubemapIntensity" - OpMemberName %type_View 138 "View_SkyLightParameters" - OpMemberName %type_View 139 "PrePadding_View_2584" - OpMemberName %type_View 140 "PrePadding_View_2588" - OpMemberName %type_View 141 "View_SkyLightColor" - OpMemberName %type_View 142 "View_SkyIrradianceEnvironmentMap" - OpMemberName %type_View 143 "View_MobilePreviewMode" - OpMemberName %type_View 144 "View_HMDEyePaddingOffset" - OpMemberName %type_View 145 "View_ReflectionCubemapMaxMip" - OpMemberName %type_View 146 "View_ShowDecalsMask" - OpMemberName %type_View 147 "View_DistanceFieldAOSpecularOcclusionMode" - OpMemberName %type_View 148 "View_IndirectCapsuleSelfShadowingIntensity" - OpMemberName %type_View 149 "PrePadding_View_2744" - OpMemberName %type_View 150 "PrePadding_View_2748" - OpMemberName %type_View 151 "View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight" - OpMemberName %type_View 152 "View_StereoPassIndex" - OpMemberName %type_View 153 "View_GlobalVolumeCenterAndExtent" - OpMemberName %type_View 154 "View_GlobalVolumeWorldToUVAddAndMul" - OpMemberName %type_View 155 "View_GlobalVolumeDimension" - OpMemberName %type_View 156 "View_GlobalVolumeTexelSize" - OpMemberName %type_View 157 "View_MaxGlobalDistance" - OpMemberName %type_View 158 "PrePadding_View_2908" - OpMemberName %type_View 159 "View_CursorPosition" - OpMemberName %type_View 160 "View_bCheckerboardSubsurfaceProfileRendering" - OpMemberName %type_View 161 "PrePadding_View_2924" - OpMemberName %type_View 162 "View_VolumetricFogInvGridSize" - OpMemberName %type_View 163 "PrePadding_View_2940" - OpMemberName %type_View 164 "View_VolumetricFogGridZParams" - OpMemberName %type_View 165 "PrePadding_View_2956" - OpMemberName %type_View 166 "View_VolumetricFogSVPosToVolumeUV" - OpMemberName %type_View 167 "View_VolumetricFogMaxDistance" - OpMemberName %type_View 168 "PrePadding_View_2972" - OpMemberName %type_View 169 "View_VolumetricLightmapWorldToUVScale" - OpMemberName %type_View 170 "PrePadding_View_2988" - OpMemberName %type_View 171 "View_VolumetricLightmapWorldToUVAdd" - OpMemberName %type_View 172 "PrePadding_View_3004" - OpMemberName %type_View 173 "View_VolumetricLightmapIndirectionTextureSize" - OpMemberName %type_View 174 "View_VolumetricLightmapBrickSize" - OpMemberName %type_View 175 "View_VolumetricLightmapBrickTexelSize" - OpMemberName %type_View 176 "View_StereoIPD" - OpMemberName %type_View 177 "View_IndirectLightingCacheShowFlag" - OpMemberName %type_View 178 "View_EyeToPixelSpreadAngle" - OpName %View "View" - OpName %type_sampler "type.sampler" - OpName %type_2d_image "type.2d.image" - OpName %type_ShadowDepthPass "type.ShadowDepthPass" - OpMemberName %type_ShadowDepthPass 0 "PrePadding_ShadowDepthPass_LPV_0" - OpMemberName %type_ShadowDepthPass 1 "PrePadding_ShadowDepthPass_LPV_4" - OpMemberName %type_ShadowDepthPass 2 "PrePadding_ShadowDepthPass_LPV_8" - OpMemberName %type_ShadowDepthPass 3 "PrePadding_ShadowDepthPass_LPV_12" - OpMemberName %type_ShadowDepthPass 4 "PrePadding_ShadowDepthPass_LPV_16" - OpMemberName %type_ShadowDepthPass 5 "PrePadding_ShadowDepthPass_LPV_20" - OpMemberName %type_ShadowDepthPass 6 "PrePadding_ShadowDepthPass_LPV_24" - OpMemberName %type_ShadowDepthPass 7 "PrePadding_ShadowDepthPass_LPV_28" - OpMemberName %type_ShadowDepthPass 8 "PrePadding_ShadowDepthPass_LPV_32" - OpMemberName %type_ShadowDepthPass 9 "PrePadding_ShadowDepthPass_LPV_36" - OpMemberName %type_ShadowDepthPass 10 "PrePadding_ShadowDepthPass_LPV_40" - OpMemberName %type_ShadowDepthPass 11 "PrePadding_ShadowDepthPass_LPV_44" - OpMemberName %type_ShadowDepthPass 12 "PrePadding_ShadowDepthPass_LPV_48" - OpMemberName %type_ShadowDepthPass 13 "PrePadding_ShadowDepthPass_LPV_52" - OpMemberName %type_ShadowDepthPass 14 "PrePadding_ShadowDepthPass_LPV_56" - OpMemberName %type_ShadowDepthPass 15 "PrePadding_ShadowDepthPass_LPV_60" - OpMemberName %type_ShadowDepthPass 16 "PrePadding_ShadowDepthPass_LPV_64" - OpMemberName %type_ShadowDepthPass 17 "PrePadding_ShadowDepthPass_LPV_68" - OpMemberName %type_ShadowDepthPass 18 "PrePadding_ShadowDepthPass_LPV_72" - OpMemberName %type_ShadowDepthPass 19 "PrePadding_ShadowDepthPass_LPV_76" - OpMemberName %type_ShadowDepthPass 20 "PrePadding_ShadowDepthPass_LPV_80" - OpMemberName %type_ShadowDepthPass 21 "PrePadding_ShadowDepthPass_LPV_84" - OpMemberName %type_ShadowDepthPass 22 "PrePadding_ShadowDepthPass_LPV_88" - OpMemberName %type_ShadowDepthPass 23 "PrePadding_ShadowDepthPass_LPV_92" - OpMemberName %type_ShadowDepthPass 24 "PrePadding_ShadowDepthPass_LPV_96" - OpMemberName %type_ShadowDepthPass 25 "PrePadding_ShadowDepthPass_LPV_100" - OpMemberName %type_ShadowDepthPass 26 "PrePadding_ShadowDepthPass_LPV_104" - OpMemberName %type_ShadowDepthPass 27 "PrePadding_ShadowDepthPass_LPV_108" - OpMemberName %type_ShadowDepthPass 28 "PrePadding_ShadowDepthPass_LPV_112" - OpMemberName %type_ShadowDepthPass 29 "PrePadding_ShadowDepthPass_LPV_116" - OpMemberName %type_ShadowDepthPass 30 "PrePadding_ShadowDepthPass_LPV_120" - OpMemberName %type_ShadowDepthPass 31 "PrePadding_ShadowDepthPass_LPV_124" - OpMemberName %type_ShadowDepthPass 32 "PrePadding_ShadowDepthPass_LPV_128" - OpMemberName %type_ShadowDepthPass 33 "PrePadding_ShadowDepthPass_LPV_132" - OpMemberName %type_ShadowDepthPass 34 "PrePadding_ShadowDepthPass_LPV_136" - OpMemberName %type_ShadowDepthPass 35 "PrePadding_ShadowDepthPass_LPV_140" - OpMemberName %type_ShadowDepthPass 36 "PrePadding_ShadowDepthPass_LPV_144" - OpMemberName %type_ShadowDepthPass 37 "PrePadding_ShadowDepthPass_LPV_148" - OpMemberName %type_ShadowDepthPass 38 "PrePadding_ShadowDepthPass_LPV_152" - OpMemberName %type_ShadowDepthPass 39 "PrePadding_ShadowDepthPass_LPV_156" - OpMemberName %type_ShadowDepthPass 40 "PrePadding_ShadowDepthPass_LPV_160" - OpMemberName %type_ShadowDepthPass 41 "PrePadding_ShadowDepthPass_LPV_164" - OpMemberName %type_ShadowDepthPass 42 "PrePadding_ShadowDepthPass_LPV_168" - OpMemberName %type_ShadowDepthPass 43 "PrePadding_ShadowDepthPass_LPV_172" - OpMemberName %type_ShadowDepthPass 44 "PrePadding_ShadowDepthPass_LPV_176" - OpMemberName %type_ShadowDepthPass 45 "PrePadding_ShadowDepthPass_LPV_180" - OpMemberName %type_ShadowDepthPass 46 "PrePadding_ShadowDepthPass_LPV_184" - OpMemberName %type_ShadowDepthPass 47 "PrePadding_ShadowDepthPass_LPV_188" - OpMemberName %type_ShadowDepthPass 48 "PrePadding_ShadowDepthPass_LPV_192" - OpMemberName %type_ShadowDepthPass 49 "PrePadding_ShadowDepthPass_LPV_196" - OpMemberName %type_ShadowDepthPass 50 "PrePadding_ShadowDepthPass_LPV_200" - OpMemberName %type_ShadowDepthPass 51 "PrePadding_ShadowDepthPass_LPV_204" - OpMemberName %type_ShadowDepthPass 52 "PrePadding_ShadowDepthPass_LPV_208" - OpMemberName %type_ShadowDepthPass 53 "PrePadding_ShadowDepthPass_LPV_212" - OpMemberName %type_ShadowDepthPass 54 "PrePadding_ShadowDepthPass_LPV_216" - OpMemberName %type_ShadowDepthPass 55 "PrePadding_ShadowDepthPass_LPV_220" - OpMemberName %type_ShadowDepthPass 56 "PrePadding_ShadowDepthPass_LPV_224" - OpMemberName %type_ShadowDepthPass 57 "PrePadding_ShadowDepthPass_LPV_228" - OpMemberName %type_ShadowDepthPass 58 "PrePadding_ShadowDepthPass_LPV_232" - OpMemberName %type_ShadowDepthPass 59 "PrePadding_ShadowDepthPass_LPV_236" - OpMemberName %type_ShadowDepthPass 60 "PrePadding_ShadowDepthPass_LPV_240" - OpMemberName %type_ShadowDepthPass 61 "PrePadding_ShadowDepthPass_LPV_244" - OpMemberName %type_ShadowDepthPass 62 "PrePadding_ShadowDepthPass_LPV_248" - OpMemberName %type_ShadowDepthPass 63 "PrePadding_ShadowDepthPass_LPV_252" - OpMemberName %type_ShadowDepthPass 64 "PrePadding_ShadowDepthPass_LPV_256" - OpMemberName %type_ShadowDepthPass 65 "PrePadding_ShadowDepthPass_LPV_260" - OpMemberName %type_ShadowDepthPass 66 "PrePadding_ShadowDepthPass_LPV_264" - OpMemberName %type_ShadowDepthPass 67 "PrePadding_ShadowDepthPass_LPV_268" - OpMemberName %type_ShadowDepthPass 68 "ShadowDepthPass_LPV_mRsmToWorld" - OpMemberName %type_ShadowDepthPass 69 "ShadowDepthPass_LPV_mLightColour" - OpMemberName %type_ShadowDepthPass 70 "ShadowDepthPass_LPV_GeometryVolumeCaptureLightDirection" - OpMemberName %type_ShadowDepthPass 71 "ShadowDepthPass_LPV_mEyePos" - OpMemberName %type_ShadowDepthPass 72 "ShadowDepthPass_LPV_mOldGridOffset" - OpMemberName %type_ShadowDepthPass 73 "PrePadding_ShadowDepthPass_LPV_396" - OpMemberName %type_ShadowDepthPass 74 "ShadowDepthPass_LPV_mLpvGridOffset" - OpMemberName %type_ShadowDepthPass 75 "ShadowDepthPass_LPV_ClearMultiplier" - OpMemberName %type_ShadowDepthPass 76 "ShadowDepthPass_LPV_LpvScale" - OpMemberName %type_ShadowDepthPass 77 "ShadowDepthPass_LPV_OneOverLpvScale" - OpMemberName %type_ShadowDepthPass 78 "ShadowDepthPass_LPV_DirectionalOcclusionIntensity" - OpMemberName %type_ShadowDepthPass 79 "ShadowDepthPass_LPV_DirectionalOcclusionRadius" - OpMemberName %type_ShadowDepthPass 80 "ShadowDepthPass_LPV_RsmAreaIntensityMultiplier" - OpMemberName %type_ShadowDepthPass 81 "ShadowDepthPass_LPV_RsmPixelToTexcoordMultiplier" - OpMemberName %type_ShadowDepthPass 82 "ShadowDepthPass_LPV_SecondaryOcclusionStrength" - OpMemberName %type_ShadowDepthPass 83 "ShadowDepthPass_LPV_SecondaryBounceStrength" - OpMemberName %type_ShadowDepthPass 84 "ShadowDepthPass_LPV_VplInjectionBias" - OpMemberName %type_ShadowDepthPass 85 "ShadowDepthPass_LPV_GeometryVolumeInjectionBias" - OpMemberName %type_ShadowDepthPass 86 "ShadowDepthPass_LPV_EmissiveInjectionMultiplier" - OpMemberName %type_ShadowDepthPass 87 "ShadowDepthPass_LPV_PropagationIndex" - OpMemberName %type_ShadowDepthPass 88 "ShadowDepthPass_ProjectionMatrix" - OpMemberName %type_ShadowDepthPass 89 "ShadowDepthPass_ViewMatrix" - OpMemberName %type_ShadowDepthPass 90 "ShadowDepthPass_ShadowParams" - OpMemberName %type_ShadowDepthPass 91 "ShadowDepthPass_bClampToNearPlane" - OpMemberName %type_ShadowDepthPass 92 "PrePadding_ShadowDepthPass_612" - OpMemberName %type_ShadowDepthPass 93 "PrePadding_ShadowDepthPass_616" - OpMemberName %type_ShadowDepthPass 94 "PrePadding_ShadowDepthPass_620" - OpMemberName %type_ShadowDepthPass 95 "ShadowDepthPass_ShadowViewProjectionMatrices" - OpMemberName %type_ShadowDepthPass 96 "ShadowDepthPass_ShadowViewMatrices" - OpName %ShadowDepthPass "ShadowDepthPass" - OpName %Material_Texture2D_3 "Material_Texture2D_3" - OpName %Material_Texture2D_3Sampler "Material_Texture2D_3Sampler" - OpName %in_var_TEXCOORD10_centroid "in.var.TEXCOORD10_centroid" - OpName %in_var_TEXCOORD11_centroid "in.var.TEXCOORD11_centroid" - OpName %in_var_COLOR0 "in.var.COLOR0" - OpName %in_var_TEXCOORD0 "in.var.TEXCOORD0" - OpName %in_var_PRIMITIVE_ID "in.var.PRIMITIVE_ID" - OpName %in_var_VS_to_DS_Position "in.var.VS_to_DS_Position" - OpName %in_var_PN_POSITION "in.var.PN_POSITION" - OpName %in_var_PN_DisplacementScales "in.var.PN_DisplacementScales" - OpName %in_var_PN_TessellationMultiplier "in.var.PN_TessellationMultiplier" - OpName %in_var_PN_WorldDisplacementMultiplier "in.var.PN_WorldDisplacementMultiplier" - OpName %in_var_PN_POSITION9 "in.var.PN_POSITION9" - OpName %out_var_TEXCOORD10_centroid "out.var.TEXCOORD10_centroid" - OpName %out_var_TEXCOORD11_centroid "out.var.TEXCOORD11_centroid" - OpName %out_var_COLOR0 "out.var.COLOR0" - OpName %out_var_TEXCOORD0 "out.var.TEXCOORD0" - OpName %out_var_PRIMITIVE_ID "out.var.PRIMITIVE_ID" - OpName %out_var_TEXCOORD6 "out.var.TEXCOORD6" - OpName %out_var_TEXCOORD8 "out.var.TEXCOORD8" - OpName %out_var_TEXCOORD7 "out.var.TEXCOORD7" - OpName %MainDomain "MainDomain" - OpName %type_sampled_image "type.sampled.image" - OpDecorateString %in_var_TEXCOORD10_centroid UserSemantic "TEXCOORD10_centroid" - OpDecorateString %in_var_TEXCOORD11_centroid UserSemantic "TEXCOORD11_centroid" - OpDecorateString %in_var_COLOR0 UserSemantic "COLOR0" - OpDecorateString %in_var_TEXCOORD0 UserSemantic "TEXCOORD0" - OpDecorateString %in_var_PRIMITIVE_ID UserSemantic "PRIMITIVE_ID" - OpDecorateString %in_var_VS_to_DS_Position UserSemantic "VS_to_DS_Position" - OpDecorateString %in_var_PN_POSITION UserSemantic "PN_POSITION" - OpDecorateString %in_var_PN_DisplacementScales UserSemantic "PN_DisplacementScales" - OpDecorateString %in_var_PN_TessellationMultiplier UserSemantic "PN_TessellationMultiplier" - OpDecorateString %in_var_PN_WorldDisplacementMultiplier UserSemantic "PN_WorldDisplacementMultiplier" - OpDecorate %gl_TessLevelOuter BuiltIn TessLevelOuter - OpDecorateString %gl_TessLevelOuter UserSemantic "SV_TessFactor" - OpDecorate %gl_TessLevelOuter Patch - OpDecorate %gl_TessLevelInner BuiltIn TessLevelInner - OpDecorateString %gl_TessLevelInner UserSemantic "SV_InsideTessFactor" - OpDecorate %gl_TessLevelInner Patch - OpDecorateString %in_var_PN_POSITION9 UserSemantic "PN_POSITION9" - OpDecorate %in_var_PN_POSITION9 Patch - OpDecorate %gl_TessCoord BuiltIn TessCoord - OpDecorateString %gl_TessCoord UserSemantic "SV_DomainLocation" - OpDecorate %gl_TessCoord Patch - OpDecorateString %out_var_TEXCOORD10_centroid UserSemantic "TEXCOORD10_centroid" - OpDecorateString %out_var_TEXCOORD11_centroid UserSemantic "TEXCOORD11_centroid" - OpDecorateString %out_var_COLOR0 UserSemantic "COLOR0" - OpDecorateString %out_var_TEXCOORD0 UserSemantic "TEXCOORD0" - OpDecorateString %out_var_PRIMITIVE_ID UserSemantic "PRIMITIVE_ID" - OpDecorateString %out_var_TEXCOORD6 UserSemantic "TEXCOORD6" - OpDecorateString %out_var_TEXCOORD8 UserSemantic "TEXCOORD8" - OpDecorateString %out_var_TEXCOORD7 UserSemantic "TEXCOORD7" - OpDecorate %gl_Position BuiltIn Position - OpDecorateString %gl_Position UserSemantic "SV_POSITION" - OpDecorate %in_var_COLOR0 Location 0 - OpDecorate %in_var_PN_DisplacementScales Location 1 - OpDecorate %in_var_PN_POSITION Location 2 - OpDecorate %in_var_PN_POSITION9 Location 5 - OpDecorate %in_var_PN_TessellationMultiplier Location 6 - OpDecorate %in_var_PN_WorldDisplacementMultiplier Location 7 - OpDecorate %in_var_PRIMITIVE_ID Location 8 - OpDecorate %in_var_TEXCOORD0 Location 9 - OpDecorate %in_var_TEXCOORD10_centroid Location 10 - OpDecorate %in_var_TEXCOORD11_centroid Location 11 - OpDecorate %in_var_VS_to_DS_Position Location 12 - OpDecorate %out_var_TEXCOORD10_centroid Location 0 - OpDecorate %out_var_TEXCOORD11_centroid Location 1 - OpDecorate %out_var_COLOR0 Location 2 - OpDecorate %out_var_TEXCOORD0 Location 3 - OpDecorate %out_var_PRIMITIVE_ID Location 4 - OpDecorate %out_var_TEXCOORD6 Location 5 - OpDecorate %out_var_TEXCOORD8 Location 6 - OpDecorate %out_var_TEXCOORD7 Location 7 - OpDecorate %View DescriptorSet 0 - OpDecorate %View Binding 0 - OpDecorate %ShadowDepthPass DescriptorSet 0 - OpDecorate %ShadowDepthPass Binding 1 - OpDecorate %Material_Texture2D_3 DescriptorSet 0 - OpDecorate %Material_Texture2D_3 Binding 0 - OpDecorate %Material_Texture2D_3Sampler DescriptorSet 0 - OpDecorate %Material_Texture2D_3Sampler Binding 0 - OpDecorate %_arr_v4float_uint_2 ArrayStride 16 - OpDecorate %_arr_v4float_uint_7 ArrayStride 16 - OpDecorate %_arr_v4float_uint_4 ArrayStride 16 - OpMemberDecorate %type_View 0 Offset 0 - OpMemberDecorate %type_View 0 MatrixStride 16 - OpMemberDecorate %type_View 0 ColMajor - OpMemberDecorate %type_View 1 Offset 64 - OpMemberDecorate %type_View 1 MatrixStride 16 - OpMemberDecorate %type_View 1 ColMajor - OpMemberDecorate %type_View 2 Offset 128 - OpMemberDecorate %type_View 2 MatrixStride 16 - OpMemberDecorate %type_View 2 ColMajor - OpMemberDecorate %type_View 3 Offset 192 - OpMemberDecorate %type_View 3 MatrixStride 16 - OpMemberDecorate %type_View 3 ColMajor - OpMemberDecorate %type_View 4 Offset 256 - OpMemberDecorate %type_View 4 MatrixStride 16 - OpMemberDecorate %type_View 4 ColMajor - OpMemberDecorate %type_View 5 Offset 320 - OpMemberDecorate %type_View 5 MatrixStride 16 - OpMemberDecorate %type_View 5 ColMajor - OpMemberDecorate %type_View 6 Offset 384 - OpMemberDecorate %type_View 6 MatrixStride 16 - OpMemberDecorate %type_View 6 ColMajor - OpMemberDecorate %type_View 7 Offset 448 - OpMemberDecorate %type_View 7 MatrixStride 16 - OpMemberDecorate %type_View 7 ColMajor - OpMemberDecorate %type_View 8 Offset 512 - OpMemberDecorate %type_View 8 MatrixStride 16 - OpMemberDecorate %type_View 8 ColMajor - OpMemberDecorate %type_View 9 Offset 576 - OpMemberDecorate %type_View 9 MatrixStride 16 - OpMemberDecorate %type_View 9 ColMajor - OpMemberDecorate %type_View 10 Offset 640 - OpMemberDecorate %type_View 10 MatrixStride 16 - OpMemberDecorate %type_View 10 ColMajor - OpMemberDecorate %type_View 11 Offset 704 - OpMemberDecorate %type_View 11 MatrixStride 16 - OpMemberDecorate %type_View 11 ColMajor - OpMemberDecorate %type_View 12 Offset 768 - OpMemberDecorate %type_View 12 MatrixStride 16 - OpMemberDecorate %type_View 12 ColMajor - OpMemberDecorate %type_View 13 Offset 832 - OpMemberDecorate %type_View 13 MatrixStride 16 - OpMemberDecorate %type_View 13 ColMajor - OpMemberDecorate %type_View 14 Offset 896 - OpMemberDecorate %type_View 15 Offset 908 - OpMemberDecorate %type_View 16 Offset 912 - OpMemberDecorate %type_View 17 Offset 924 - OpMemberDecorate %type_View 18 Offset 928 - OpMemberDecorate %type_View 19 Offset 940 - OpMemberDecorate %type_View 20 Offset 944 - OpMemberDecorate %type_View 21 Offset 956 - OpMemberDecorate %type_View 22 Offset 960 - OpMemberDecorate %type_View 23 Offset 972 - OpMemberDecorate %type_View 24 Offset 976 - OpMemberDecorate %type_View 25 Offset 992 - OpMemberDecorate %type_View 26 Offset 1008 - OpMemberDecorate %type_View 27 Offset 1020 - OpMemberDecorate %type_View 28 Offset 1024 - OpMemberDecorate %type_View 29 Offset 1036 - OpMemberDecorate %type_View 30 Offset 1040 - OpMemberDecorate %type_View 31 Offset 1052 - OpMemberDecorate %type_View 32 Offset 1056 - OpMemberDecorate %type_View 33 Offset 1068 - OpMemberDecorate %type_View 34 Offset 1072 - OpMemberDecorate %type_View 34 MatrixStride 16 - OpMemberDecorate %type_View 34 ColMajor - OpMemberDecorate %type_View 35 Offset 1136 - OpMemberDecorate %type_View 35 MatrixStride 16 - OpMemberDecorate %type_View 35 ColMajor - OpMemberDecorate %type_View 36 Offset 1200 - OpMemberDecorate %type_View 36 MatrixStride 16 - OpMemberDecorate %type_View 36 ColMajor - OpMemberDecorate %type_View 37 Offset 1264 - OpMemberDecorate %type_View 37 MatrixStride 16 - OpMemberDecorate %type_View 37 ColMajor - OpMemberDecorate %type_View 38 Offset 1328 - OpMemberDecorate %type_View 38 MatrixStride 16 - OpMemberDecorate %type_View 38 ColMajor - OpMemberDecorate %type_View 39 Offset 1392 - OpMemberDecorate %type_View 39 MatrixStride 16 - OpMemberDecorate %type_View 39 ColMajor - OpMemberDecorate %type_View 40 Offset 1456 - OpMemberDecorate %type_View 40 MatrixStride 16 - OpMemberDecorate %type_View 40 ColMajor - OpMemberDecorate %type_View 41 Offset 1520 - OpMemberDecorate %type_View 41 MatrixStride 16 - OpMemberDecorate %type_View 41 ColMajor - OpMemberDecorate %type_View 42 Offset 1584 - OpMemberDecorate %type_View 42 MatrixStride 16 - OpMemberDecorate %type_View 42 ColMajor - OpMemberDecorate %type_View 43 Offset 1648 - OpMemberDecorate %type_View 43 MatrixStride 16 - OpMemberDecorate %type_View 43 ColMajor - OpMemberDecorate %type_View 44 Offset 1712 - OpMemberDecorate %type_View 45 Offset 1724 - OpMemberDecorate %type_View 46 Offset 1728 - OpMemberDecorate %type_View 47 Offset 1740 - OpMemberDecorate %type_View 48 Offset 1744 - OpMemberDecorate %type_View 49 Offset 1756 - OpMemberDecorate %type_View 50 Offset 1760 - OpMemberDecorate %type_View 50 MatrixStride 16 - OpMemberDecorate %type_View 50 ColMajor - OpMemberDecorate %type_View 51 Offset 1824 - OpMemberDecorate %type_View 51 MatrixStride 16 - OpMemberDecorate %type_View 51 ColMajor - OpMemberDecorate %type_View 52 Offset 1888 - OpMemberDecorate %type_View 52 MatrixStride 16 - OpMemberDecorate %type_View 52 ColMajor - OpMemberDecorate %type_View 53 Offset 1952 - OpMemberDecorate %type_View 54 Offset 1968 - OpMemberDecorate %type_View 55 Offset 1984 - OpMemberDecorate %type_View 56 Offset 1992 - OpMemberDecorate %type_View 57 Offset 2000 - OpMemberDecorate %type_View 58 Offset 2016 - OpMemberDecorate %type_View 59 Offset 2032 - OpMemberDecorate %type_View 60 Offset 2048 - OpMemberDecorate %type_View 61 Offset 2064 - OpMemberDecorate %type_View 62 Offset 2068 - OpMemberDecorate %type_View 63 Offset 2072 - OpMemberDecorate %type_View 64 Offset 2076 - OpMemberDecorate %type_View 65 Offset 2080 - OpMemberDecorate %type_View 66 Offset 2096 - OpMemberDecorate %type_View 67 Offset 2112 - OpMemberDecorate %type_View 68 Offset 2128 - OpMemberDecorate %type_View 69 Offset 2136 - OpMemberDecorate %type_View 70 Offset 2140 - OpMemberDecorate %type_View 71 Offset 2144 - OpMemberDecorate %type_View 72 Offset 2148 - OpMemberDecorate %type_View 73 Offset 2152 - OpMemberDecorate %type_View 74 Offset 2156 - OpMemberDecorate %type_View 75 Offset 2160 - OpMemberDecorate %type_View 76 Offset 2172 - OpMemberDecorate %type_View 77 Offset 2176 - OpMemberDecorate %type_View 78 Offset 2180 - OpMemberDecorate %type_View 79 Offset 2184 - OpMemberDecorate %type_View 80 Offset 2188 - OpMemberDecorate %type_View 81 Offset 2192 - OpMemberDecorate %type_View 82 Offset 2196 - OpMemberDecorate %type_View 83 Offset 2200 - OpMemberDecorate %type_View 84 Offset 2204 - OpMemberDecorate %type_View 85 Offset 2208 - OpMemberDecorate %type_View 86 Offset 2212 - OpMemberDecorate %type_View 87 Offset 2216 - OpMemberDecorate %type_View 88 Offset 2220 - OpMemberDecorate %type_View 89 Offset 2224 - OpMemberDecorate %type_View 90 Offset 2228 - OpMemberDecorate %type_View 91 Offset 2232 - OpMemberDecorate %type_View 92 Offset 2236 - OpMemberDecorate %type_View 93 Offset 2240 - OpMemberDecorate %type_View 94 Offset 2256 - OpMemberDecorate %type_View 95 Offset 2268 - OpMemberDecorate %type_View 96 Offset 2272 - OpMemberDecorate %type_View 97 Offset 2304 - OpMemberDecorate %type_View 98 Offset 2336 - OpMemberDecorate %type_View 99 Offset 2352 - OpMemberDecorate %type_View 100 Offset 2368 - OpMemberDecorate %type_View 101 Offset 2372 - OpMemberDecorate %type_View 102 Offset 2376 - OpMemberDecorate %type_View 103 Offset 2380 - OpMemberDecorate %type_View 104 Offset 2384 - OpMemberDecorate %type_View 105 Offset 2388 - OpMemberDecorate %type_View 106 Offset 2392 - OpMemberDecorate %type_View 107 Offset 2396 - OpMemberDecorate %type_View 108 Offset 2400 - OpMemberDecorate %type_View 109 Offset 2404 - OpMemberDecorate %type_View 110 Offset 2408 - OpMemberDecorate %type_View 111 Offset 2412 - OpMemberDecorate %type_View 112 Offset 2416 - OpMemberDecorate %type_View 113 Offset 2428 - OpMemberDecorate %type_View 114 Offset 2432 - OpMemberDecorate %type_View 115 Offset 2444 - OpMemberDecorate %type_View 116 Offset 2448 - OpMemberDecorate %type_View 117 Offset 2452 - OpMemberDecorate %type_View 118 Offset 2456 - OpMemberDecorate %type_View 119 Offset 2460 - OpMemberDecorate %type_View 120 Offset 2464 - OpMemberDecorate %type_View 121 Offset 2468 - OpMemberDecorate %type_View 122 Offset 2472 - OpMemberDecorate %type_View 123 Offset 2476 - OpMemberDecorate %type_View 124 Offset 2480 - OpMemberDecorate %type_View 125 Offset 2484 - OpMemberDecorate %type_View 126 Offset 2488 - OpMemberDecorate %type_View 127 Offset 2492 - OpMemberDecorate %type_View 128 Offset 2496 - OpMemberDecorate %type_View 129 Offset 2512 - OpMemberDecorate %type_View 130 Offset 2516 - OpMemberDecorate %type_View 131 Offset 2520 - OpMemberDecorate %type_View 132 Offset 2524 - OpMemberDecorate %type_View 133 Offset 2528 - OpMemberDecorate %type_View 134 Offset 2544 - OpMemberDecorate %type_View 135 Offset 2556 - OpMemberDecorate %type_View 136 Offset 2560 - OpMemberDecorate %type_View 137 Offset 2576 - OpMemberDecorate %type_View 138 Offset 2580 - OpMemberDecorate %type_View 139 Offset 2584 - OpMemberDecorate %type_View 140 Offset 2588 - OpMemberDecorate %type_View 141 Offset 2592 - OpMemberDecorate %type_View 142 Offset 2608 - OpMemberDecorate %type_View 143 Offset 2720 - OpMemberDecorate %type_View 144 Offset 2724 - OpMemberDecorate %type_View 145 Offset 2728 - OpMemberDecorate %type_View 146 Offset 2732 - OpMemberDecorate %type_View 147 Offset 2736 - OpMemberDecorate %type_View 148 Offset 2740 - OpMemberDecorate %type_View 149 Offset 2744 - OpMemberDecorate %type_View 150 Offset 2748 - OpMemberDecorate %type_View 151 Offset 2752 - OpMemberDecorate %type_View 152 Offset 2764 - OpMemberDecorate %type_View 153 Offset 2768 - OpMemberDecorate %type_View 154 Offset 2832 - OpMemberDecorate %type_View 155 Offset 2896 - OpMemberDecorate %type_View 156 Offset 2900 - OpMemberDecorate %type_View 157 Offset 2904 - OpMemberDecorate %type_View 158 Offset 2908 - OpMemberDecorate %type_View 159 Offset 2912 - OpMemberDecorate %type_View 160 Offset 2920 - OpMemberDecorate %type_View 161 Offset 2924 - OpMemberDecorate %type_View 162 Offset 2928 - OpMemberDecorate %type_View 163 Offset 2940 - OpMemberDecorate %type_View 164 Offset 2944 - OpMemberDecorate %type_View 165 Offset 2956 - OpMemberDecorate %type_View 166 Offset 2960 - OpMemberDecorate %type_View 167 Offset 2968 - OpMemberDecorate %type_View 168 Offset 2972 - OpMemberDecorate %type_View 169 Offset 2976 - OpMemberDecorate %type_View 170 Offset 2988 - OpMemberDecorate %type_View 171 Offset 2992 - OpMemberDecorate %type_View 172 Offset 3004 - OpMemberDecorate %type_View 173 Offset 3008 - OpMemberDecorate %type_View 174 Offset 3020 - OpMemberDecorate %type_View 175 Offset 3024 - OpMemberDecorate %type_View 176 Offset 3036 - OpMemberDecorate %type_View 177 Offset 3040 - OpMemberDecorate %type_View 178 Offset 3044 - OpDecorate %type_View Block - OpDecorate %_arr_mat4v4float_uint_6 ArrayStride 64 - OpMemberDecorate %type_ShadowDepthPass 0 Offset 0 - OpMemberDecorate %type_ShadowDepthPass 1 Offset 4 - OpMemberDecorate %type_ShadowDepthPass 2 Offset 8 - OpMemberDecorate %type_ShadowDepthPass 3 Offset 12 - OpMemberDecorate %type_ShadowDepthPass 4 Offset 16 - OpMemberDecorate %type_ShadowDepthPass 5 Offset 20 - OpMemberDecorate %type_ShadowDepthPass 6 Offset 24 - OpMemberDecorate %type_ShadowDepthPass 7 Offset 28 - OpMemberDecorate %type_ShadowDepthPass 8 Offset 32 - OpMemberDecorate %type_ShadowDepthPass 9 Offset 36 - OpMemberDecorate %type_ShadowDepthPass 10 Offset 40 - OpMemberDecorate %type_ShadowDepthPass 11 Offset 44 - OpMemberDecorate %type_ShadowDepthPass 12 Offset 48 - OpMemberDecorate %type_ShadowDepthPass 13 Offset 52 - OpMemberDecorate %type_ShadowDepthPass 14 Offset 56 - OpMemberDecorate %type_ShadowDepthPass 15 Offset 60 - OpMemberDecorate %type_ShadowDepthPass 16 Offset 64 - OpMemberDecorate %type_ShadowDepthPass 17 Offset 68 - OpMemberDecorate %type_ShadowDepthPass 18 Offset 72 - OpMemberDecorate %type_ShadowDepthPass 19 Offset 76 - OpMemberDecorate %type_ShadowDepthPass 20 Offset 80 - OpMemberDecorate %type_ShadowDepthPass 21 Offset 84 - OpMemberDecorate %type_ShadowDepthPass 22 Offset 88 - OpMemberDecorate %type_ShadowDepthPass 23 Offset 92 - OpMemberDecorate %type_ShadowDepthPass 24 Offset 96 - OpMemberDecorate %type_ShadowDepthPass 25 Offset 100 - OpMemberDecorate %type_ShadowDepthPass 26 Offset 104 - OpMemberDecorate %type_ShadowDepthPass 27 Offset 108 - OpMemberDecorate %type_ShadowDepthPass 28 Offset 112 - OpMemberDecorate %type_ShadowDepthPass 29 Offset 116 - OpMemberDecorate %type_ShadowDepthPass 30 Offset 120 - OpMemberDecorate %type_ShadowDepthPass 31 Offset 124 - OpMemberDecorate %type_ShadowDepthPass 32 Offset 128 - OpMemberDecorate %type_ShadowDepthPass 33 Offset 132 - OpMemberDecorate %type_ShadowDepthPass 34 Offset 136 - OpMemberDecorate %type_ShadowDepthPass 35 Offset 140 - OpMemberDecorate %type_ShadowDepthPass 36 Offset 144 - OpMemberDecorate %type_ShadowDepthPass 37 Offset 148 - OpMemberDecorate %type_ShadowDepthPass 38 Offset 152 - OpMemberDecorate %type_ShadowDepthPass 39 Offset 156 - OpMemberDecorate %type_ShadowDepthPass 40 Offset 160 - OpMemberDecorate %type_ShadowDepthPass 41 Offset 164 - OpMemberDecorate %type_ShadowDepthPass 42 Offset 168 - OpMemberDecorate %type_ShadowDepthPass 43 Offset 172 - OpMemberDecorate %type_ShadowDepthPass 44 Offset 176 - OpMemberDecorate %type_ShadowDepthPass 45 Offset 180 - OpMemberDecorate %type_ShadowDepthPass 46 Offset 184 - OpMemberDecorate %type_ShadowDepthPass 47 Offset 188 - OpMemberDecorate %type_ShadowDepthPass 48 Offset 192 - OpMemberDecorate %type_ShadowDepthPass 49 Offset 196 - OpMemberDecorate %type_ShadowDepthPass 50 Offset 200 - OpMemberDecorate %type_ShadowDepthPass 51 Offset 204 - OpMemberDecorate %type_ShadowDepthPass 52 Offset 208 - OpMemberDecorate %type_ShadowDepthPass 53 Offset 212 - OpMemberDecorate %type_ShadowDepthPass 54 Offset 216 - OpMemberDecorate %type_ShadowDepthPass 55 Offset 220 - OpMemberDecorate %type_ShadowDepthPass 56 Offset 224 - OpMemberDecorate %type_ShadowDepthPass 57 Offset 228 - OpMemberDecorate %type_ShadowDepthPass 58 Offset 232 - OpMemberDecorate %type_ShadowDepthPass 59 Offset 236 - OpMemberDecorate %type_ShadowDepthPass 60 Offset 240 - OpMemberDecorate %type_ShadowDepthPass 61 Offset 244 - OpMemberDecorate %type_ShadowDepthPass 62 Offset 248 - OpMemberDecorate %type_ShadowDepthPass 63 Offset 252 - OpMemberDecorate %type_ShadowDepthPass 64 Offset 256 - OpMemberDecorate %type_ShadowDepthPass 65 Offset 260 - OpMemberDecorate %type_ShadowDepthPass 66 Offset 264 - OpMemberDecorate %type_ShadowDepthPass 67 Offset 268 - OpMemberDecorate %type_ShadowDepthPass 68 Offset 272 - OpMemberDecorate %type_ShadowDepthPass 68 MatrixStride 16 - OpMemberDecorate %type_ShadowDepthPass 68 ColMajor - OpMemberDecorate %type_ShadowDepthPass 69 Offset 336 - OpMemberDecorate %type_ShadowDepthPass 70 Offset 352 - OpMemberDecorate %type_ShadowDepthPass 71 Offset 368 - OpMemberDecorate %type_ShadowDepthPass 72 Offset 384 - OpMemberDecorate %type_ShadowDepthPass 73 Offset 396 - OpMemberDecorate %type_ShadowDepthPass 74 Offset 400 - OpMemberDecorate %type_ShadowDepthPass 75 Offset 412 - OpMemberDecorate %type_ShadowDepthPass 76 Offset 416 - OpMemberDecorate %type_ShadowDepthPass 77 Offset 420 - OpMemberDecorate %type_ShadowDepthPass 78 Offset 424 - OpMemberDecorate %type_ShadowDepthPass 79 Offset 428 - OpMemberDecorate %type_ShadowDepthPass 80 Offset 432 - OpMemberDecorate %type_ShadowDepthPass 81 Offset 436 - OpMemberDecorate %type_ShadowDepthPass 82 Offset 440 - OpMemberDecorate %type_ShadowDepthPass 83 Offset 444 - OpMemberDecorate %type_ShadowDepthPass 84 Offset 448 - OpMemberDecorate %type_ShadowDepthPass 85 Offset 452 - OpMemberDecorate %type_ShadowDepthPass 86 Offset 456 - OpMemberDecorate %type_ShadowDepthPass 87 Offset 460 - OpMemberDecorate %type_ShadowDepthPass 88 Offset 464 - OpMemberDecorate %type_ShadowDepthPass 88 MatrixStride 16 - OpMemberDecorate %type_ShadowDepthPass 88 ColMajor - OpMemberDecorate %type_ShadowDepthPass 89 Offset 528 - OpMemberDecorate %type_ShadowDepthPass 89 MatrixStride 16 - OpMemberDecorate %type_ShadowDepthPass 89 ColMajor - OpMemberDecorate %type_ShadowDepthPass 90 Offset 592 - OpMemberDecorate %type_ShadowDepthPass 91 Offset 608 - OpMemberDecorate %type_ShadowDepthPass 92 Offset 612 - OpMemberDecorate %type_ShadowDepthPass 93 Offset 616 - OpMemberDecorate %type_ShadowDepthPass 94 Offset 620 - OpMemberDecorate %type_ShadowDepthPass 95 Offset 624 - OpMemberDecorate %type_ShadowDepthPass 95 MatrixStride 16 - OpMemberDecorate %type_ShadowDepthPass 95 ColMajor - OpMemberDecorate %type_ShadowDepthPass 96 Offset 1008 - OpMemberDecorate %type_ShadowDepthPass 96 MatrixStride 16 - OpMemberDecorate %type_ShadowDepthPass 96 ColMajor - OpDecorate %type_ShadowDepthPass Block - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%mat4v4float = OpTypeMatrix %v4float 4 - %v3float = OpTypeVector %float 3 - %v2float = OpTypeVector %float 2 - %int = OpTypeInt 32 1 - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 - %uint_7 = OpConstant %uint 7 - %uint_4 = OpConstant %uint 4 - %v2int = OpTypeVector %int 2 - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 - %int_2 = OpConstant %int 2 - %float_3 = OpConstant %float 3 - %uint_0 = OpConstant %uint 0 - %uint_1 = OpConstant %uint 1 - %float_6 = OpConstant %float 6 - %57 = OpConstantComposite %v4float %float_6 %float_6 %float_6 %float_6 - %float_1 = OpConstant %float 1 - %int_79 = OpConstant %int 79 -%float_0_200000003 = OpConstant %float 0.200000003 -%float_n0_699999988 = OpConstant %float -0.699999988 - %float_2 = OpConstant %float 2 - %63 = OpConstantComposite %v2float %float_1 %float_2 - %float_n1 = OpConstant %float -1 - %float_10 = OpConstant %float 10 - %float_0_5 = OpConstant %float 0.5 - %67 = OpConstantComposite %v3float %float_0_5 %float_0_5 %float_0_5 - %int_88 = OpConstant %int 88 - %int_89 = OpConstant %int 89 - %int_90 = OpConstant %int 90 - %int_91 = OpConstant %int 91 - %float_0 = OpConstant %float 0 -%float_9_99999997en07 = OpConstant %float 9.99999997e-07 -%_arr_v4float_uint_2 = OpTypeArray %v4float %uint_2 -%_arr_v4float_uint_7 = OpTypeArray %v4float %uint_7 -%_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4 - %type_View = OpTypeStruct %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %v3float %float %v3float %float %v3float %float %v3float %float %v3float %float %v4float %v4float %v3float %float %v3float %float %v3float %float %v3float %float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %v3float %float %v3float %float %v3float %float %mat4v4float %mat4v4float %mat4v4float %v4float %v4float %v2float %v2float %v4float %v4float %v4float %v4float %int %float %float %float %v4float %v4float %v4float %v2float %float %float %float %float %float %float %v3float %float %float %float %float %float %float %float %float %uint %uint %uint %uint %float %float %float %float %float %v4float %v3float %float %_arr_v4float_uint_2 %_arr_v4float_uint_2 %v4float %v4float %float %float %float %float %float %float %float %float %float %float %float %float %v3float %float %v3float %float %float %float %float %float %float %float %float %float %float %float %float %float %v4float %uint %uint %uint %uint %v4float %v3float %float %v4float %float %float %float %float %v4float %_arr_v4float_uint_7 %float %float %float %float %uint %float %float %float %v3float %int %_arr_v4float_uint_4 %_arr_v4float_uint_4 %float %float %float %float %v2int %float %float %v3float %float %v3float %float %v2float %float %float %v3float %float %v3float %float %v3float %float %v3float %float %float %float -%_ptr_Uniform_type_View = OpTypePointer Uniform %type_View -%type_sampler = OpTypeSampler -%_ptr_UniformConstant_type_sampler = OpTypePointer UniformConstant %type_sampler -%type_2d_image = OpTypeImage %float 2D 2 0 0 1 Unknown -%_ptr_UniformConstant_type_2d_image = OpTypePointer UniformConstant %type_2d_image - %uint_6 = OpConstant %uint 6 -%_arr_mat4v4float_uint_6 = OpTypeArray %mat4v4float %uint_6 - %v3int = OpTypeVector %int 3 -%type_ShadowDepthPass = OpTypeStruct %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %mat4v4float %v4float %v4float %v4float %v3int %int %v3int %float %float %float %float %float %float %float %float %float %float %float %float %int %mat4v4float %mat4v4float %v4float %float %float %float %float %_arr_mat4v4float_uint_6 %_arr_mat4v4float_uint_6 -%_ptr_Uniform_type_ShadowDepthPass = OpTypePointer Uniform %type_ShadowDepthPass - %uint_3 = OpConstant %uint 3 -%_arr_v4float_uint_3 = OpTypeArray %v4float %uint_3 -%_ptr_Input__arr_v4float_uint_3 = OpTypePointer Input %_arr_v4float_uint_3 -%_arr_v4float_uint_1 = OpTypeArray %v4float %uint_1 -%_arr__arr_v4float_uint_1_uint_3 = OpTypeArray %_arr_v4float_uint_1 %uint_3 -%_ptr_Input__arr__arr_v4float_uint_1_uint_3 = OpTypePointer Input %_arr__arr_v4float_uint_1_uint_3 -%_arr_uint_uint_3 = OpTypeArray %uint %uint_3 -%_ptr_Input__arr_uint_uint_3 = OpTypePointer Input %_arr_uint_uint_3 -%_arr__arr_v4float_uint_3_uint_3 = OpTypeArray %_arr_v4float_uint_3 %uint_3 -%_ptr_Input__arr__arr_v4float_uint_3_uint_3 = OpTypePointer Input %_arr__arr_v4float_uint_3_uint_3 -%_arr_v3float_uint_3 = OpTypeArray %v3float %uint_3 -%_ptr_Input__arr_v3float_uint_3 = OpTypePointer Input %_arr_v3float_uint_3 -%_arr_float_uint_3 = OpTypeArray %float %uint_3 -%_ptr_Input__arr_float_uint_3 = OpTypePointer Input %_arr_float_uint_3 -%_arr_float_uint_4 = OpTypeArray %float %uint_4 -%_ptr_Input__arr_float_uint_4 = OpTypePointer Input %_arr_float_uint_4 -%_arr_float_uint_2 = OpTypeArray %float %uint_2 -%_ptr_Input__arr_float_uint_2 = OpTypePointer Input %_arr_float_uint_2 -%_ptr_Input_v4float = OpTypePointer Input %v4float -%_ptr_Input_v3float = OpTypePointer Input %v3float -%_ptr_Output_v4float = OpTypePointer Output %v4float -%_ptr_Output__arr_v4float_uint_1 = OpTypePointer Output %_arr_v4float_uint_1 -%_ptr_Output_uint = OpTypePointer Output %uint -%_ptr_Output_float = OpTypePointer Output %float -%_ptr_Output_v3float = OpTypePointer Output %v3float - %void = OpTypeVoid - %106 = OpTypeFunction %void -%_ptr_Function_float = OpTypePointer Function %float - %bool = OpTypeBool -%_ptr_Uniform_float = OpTypePointer Uniform %float -%_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float -%_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float -%type_sampled_image = OpTypeSampledImage %type_2d_image - %View = OpVariable %_ptr_Uniform_type_View Uniform -%ShadowDepthPass = OpVariable %_ptr_Uniform_type_ShadowDepthPass Uniform -%Material_Texture2D_3 = OpVariable %_ptr_UniformConstant_type_2d_image UniformConstant -%Material_Texture2D_3Sampler = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant -%in_var_TEXCOORD10_centroid = OpVariable %_ptr_Input__arr_v4float_uint_3 Input -%in_var_TEXCOORD11_centroid = OpVariable %_ptr_Input__arr_v4float_uint_3 Input -%in_var_COLOR0 = OpVariable %_ptr_Input__arr_v4float_uint_3 Input -%in_var_TEXCOORD0 = OpVariable %_ptr_Input__arr__arr_v4float_uint_1_uint_3 Input -%in_var_PRIMITIVE_ID = OpVariable %_ptr_Input__arr_uint_uint_3 Input -%in_var_VS_to_DS_Position = OpVariable %_ptr_Input__arr_v4float_uint_3 Input -%in_var_PN_POSITION = OpVariable %_ptr_Input__arr__arr_v4float_uint_3_uint_3 Input -%in_var_PN_DisplacementScales = OpVariable %_ptr_Input__arr_v3float_uint_3 Input -%in_var_PN_TessellationMultiplier = OpVariable %_ptr_Input__arr_float_uint_3 Input -%in_var_PN_WorldDisplacementMultiplier = OpVariable %_ptr_Input__arr_float_uint_3 Input -%gl_TessLevelOuter = OpVariable %_ptr_Input__arr_float_uint_4 Input -%gl_TessLevelInner = OpVariable %_ptr_Input__arr_float_uint_2 Input -%in_var_PN_POSITION9 = OpVariable %_ptr_Input_v4float Input -%gl_TessCoord = OpVariable %_ptr_Input_v3float Input -%out_var_TEXCOORD10_centroid = OpVariable %_ptr_Output_v4float Output -%out_var_TEXCOORD11_centroid = OpVariable %_ptr_Output_v4float Output -%out_var_COLOR0 = OpVariable %_ptr_Output_v4float Output -%out_var_TEXCOORD0 = OpVariable %_ptr_Output__arr_v4float_uint_1 Output -%out_var_PRIMITIVE_ID = OpVariable %_ptr_Output_uint Output -%out_var_TEXCOORD6 = OpVariable %_ptr_Output_float Output -%out_var_TEXCOORD8 = OpVariable %_ptr_Output_float Output -%out_var_TEXCOORD7 = OpVariable %_ptr_Output_v3float Output -%gl_Position = OpVariable %_ptr_Output_v4float Output - %112 = OpConstantNull %v4float - %113 = OpUndef %v4float -%_ptr_Input_uint = OpTypePointer Input %uint - %MainDomain = OpFunction %void None %106 - %115 = OpLabel - %116 = OpVariable %_ptr_Function_mat4v4float Function - %117 = OpLoad %_arr_v4float_uint_3 %in_var_TEXCOORD10_centroid - %118 = OpLoad %_arr_v4float_uint_3 %in_var_TEXCOORD11_centroid - %119 = OpLoad %_arr_v4float_uint_3 %in_var_COLOR0 - %120 = OpLoad %_arr__arr_v4float_uint_1_uint_3 %in_var_TEXCOORD0 - %121 = OpAccessChain %_ptr_Input_uint %in_var_PRIMITIVE_ID %uint_0 - %122 = OpLoad %uint %121 - %123 = OpCompositeExtract %v4float %117 0 - %124 = OpCompositeExtract %v4float %118 0 - %125 = OpCompositeExtract %v4float %119 0 - %126 = OpCompositeExtract %_arr_v4float_uint_1 %120 0 - %127 = OpCompositeExtract %v4float %117 1 - %128 = OpCompositeExtract %v4float %118 1 - %129 = OpCompositeExtract %v4float %119 1 - %130 = OpCompositeExtract %_arr_v4float_uint_1 %120 1 - %131 = OpCompositeExtract %v4float %117 2 - %132 = OpCompositeExtract %v4float %118 2 - %133 = OpCompositeExtract %v4float %119 2 - %134 = OpCompositeExtract %_arr_v4float_uint_1 %120 2 - %135 = OpLoad %_arr__arr_v4float_uint_3_uint_3 %in_var_PN_POSITION - %136 = OpLoad %_arr_float_uint_3 %in_var_PN_WorldDisplacementMultiplier - %137 = OpCompositeExtract %_arr_v4float_uint_3 %135 0 - %138 = OpCompositeExtract %float %136 0 - %139 = OpCompositeExtract %_arr_v4float_uint_3 %135 1 - %140 = OpCompositeExtract %float %136 1 - %141 = OpCompositeExtract %_arr_v4float_uint_3 %135 2 - %142 = OpCompositeExtract %float %136 2 - %143 = OpCompositeExtract %v4float %137 0 - %144 = OpCompositeExtract %v4float %137 1 - %145 = OpCompositeExtract %v4float %137 2 - %146 = OpCompositeExtract %v4float %139 0 - %147 = OpCompositeExtract %v4float %139 1 - %148 = OpCompositeExtract %v4float %139 2 - %149 = OpCompositeExtract %v4float %141 0 - %150 = OpCompositeExtract %v4float %141 1 - %151 = OpCompositeExtract %v4float %141 2 - %152 = OpLoad %v4float %in_var_PN_POSITION9 - %153 = OpLoad %v3float %gl_TessCoord - %154 = OpCompositeExtract %float %153 0 - %155 = OpCompositeExtract %float %153 1 - %156 = OpCompositeExtract %float %153 2 - %157 = OpFMul %float %154 %154 - %158 = OpFMul %float %155 %155 - %159 = OpFMul %float %156 %156 - %160 = OpFMul %float %157 %float_3 - %161 = OpFMul %float %158 %float_3 - %162 = OpFMul %float %159 %float_3 - %163 = OpCompositeConstruct %v4float %157 %157 %157 %157 - %164 = OpFMul %v4float %143 %163 - %165 = OpCompositeConstruct %v4float %154 %154 %154 %154 - %166 = OpFMul %v4float %164 %165 - %167 = OpCompositeConstruct %v4float %158 %158 %158 %158 - %168 = OpFMul %v4float %146 %167 - %169 = OpCompositeConstruct %v4float %155 %155 %155 %155 - %170 = OpFMul %v4float %168 %169 - %171 = OpFAdd %v4float %166 %170 - %172 = OpCompositeConstruct %v4float %159 %159 %159 %159 - %173 = OpFMul %v4float %149 %172 - %174 = OpCompositeConstruct %v4float %156 %156 %156 %156 - %175 = OpFMul %v4float %173 %174 - %176 = OpFAdd %v4float %171 %175 - %177 = OpCompositeConstruct %v4float %160 %160 %160 %160 - %178 = OpFMul %v4float %144 %177 - %179 = OpFMul %v4float %178 %169 - %180 = OpFAdd %v4float %176 %179 - %181 = OpCompositeConstruct %v4float %161 %161 %161 %161 - %182 = OpFMul %v4float %145 %181 - %183 = OpFMul %v4float %182 %165 - %184 = OpFAdd %v4float %180 %183 - %185 = OpFMul %v4float %147 %181 - %186 = OpFMul %v4float %185 %174 - %187 = OpFAdd %v4float %184 %186 - %188 = OpCompositeConstruct %v4float %162 %162 %162 %162 - %189 = OpFMul %v4float %148 %188 - %190 = OpFMul %v4float %189 %169 - %191 = OpFAdd %v4float %187 %190 - %192 = OpFMul %v4float %150 %188 - %193 = OpFMul %v4float %192 %165 - %194 = OpFAdd %v4float %191 %193 - %195 = OpFMul %v4float %151 %177 - %196 = OpFMul %v4float %195 %174 - %197 = OpFAdd %v4float %194 %196 - %198 = OpFMul %v4float %152 %57 - %199 = OpFMul %v4float %198 %174 - %200 = OpFMul %v4float %199 %165 - %201 = OpFMul %v4float %200 %169 - %202 = OpFAdd %v4float %197 %201 - %203 = OpCompositeExtract %v4float %126 0 - %204 = OpCompositeExtract %v4float %130 0 - %205 = OpVectorShuffle %v3float %123 %123 0 1 2 - %206 = OpCompositeConstruct %v3float %154 %154 %154 - %207 = OpFMul %v3float %205 %206 - %208 = OpVectorShuffle %v3float %127 %127 0 1 2 - %209 = OpCompositeConstruct %v3float %155 %155 %155 - %210 = OpFMul %v3float %208 %209 - %211 = OpFAdd %v3float %207 %210 - %212 = OpFMul %v4float %124 %165 - %213 = OpFMul %v4float %128 %169 - %214 = OpFAdd %v4float %212 %213 - %215 = OpFMul %v4float %125 %165 - %216 = OpFMul %v4float %129 %169 - %217 = OpFAdd %v4float %215 %216 - %218 = OpFMul %v4float %203 %165 - %219 = OpFMul %v4float %204 %169 - %220 = OpFAdd %v4float %218 %219 - %221 = OpCompositeExtract %v4float %134 0 - %222 = OpVectorShuffle %v3float %211 %112 0 1 2 - %223 = OpVectorShuffle %v3float %131 %131 0 1 2 - %224 = OpCompositeConstruct %v3float %156 %156 %156 - %225 = OpFMul %v3float %223 %224 - %226 = OpFAdd %v3float %222 %225 - %227 = OpVectorShuffle %v4float %113 %226 4 5 6 3 - %228 = OpFMul %v4float %132 %174 - %229 = OpFAdd %v4float %214 %228 - %230 = OpFMul %v4float %133 %174 - %231 = OpFAdd %v4float %217 %230 - %232 = OpFMul %v4float %221 %174 - %233 = OpFAdd %v4float %220 %232 - %234 = OpCompositeConstruct %_arr_v4float_uint_1 %233 - %235 = OpVectorShuffle %v2float %233 %233 2 3 - %236 = OpVectorShuffle %v3float %229 %229 0 1 2 - %237 = OpAccessChain %_ptr_Uniform_float %View %int_79 - %238 = OpLoad %float %237 - %239 = OpFMul %float %238 %float_0_200000003 - %240 = OpFMul %float %238 %float_n0_699999988 - %241 = OpFMul %v2float %235 %63 - %242 = OpCompositeConstruct %v2float %239 %240 - %243 = OpFAdd %v2float %242 %241 - %244 = OpLoad %type_2d_image %Material_Texture2D_3 - %245 = OpLoad %type_sampler %Material_Texture2D_3Sampler - %246 = OpSampledImage %type_sampled_image %244 %245 - %247 = OpImageSampleExplicitLod %v4float %246 %243 Lod %float_n1 - %248 = OpCompositeExtract %float %247 0 - %249 = OpFMul %float %248 %float_10 - %250 = OpCompositeExtract %float %231 0 - %251 = OpFSub %float %float_1 %250 - %252 = OpFMul %float %249 %251 - %253 = OpCompositeConstruct %v3float %252 %252 %252 - %254 = OpFMul %v3float %253 %236 - %255 = OpFMul %v3float %254 %67 - %256 = OpFMul %float %138 %154 - %257 = OpFMul %float %140 %155 - %258 = OpFAdd %float %256 %257 - %259 = OpFMul %float %142 %156 - %260 = OpFAdd %float %258 %259 - %261 = OpCompositeConstruct %v3float %260 %260 %260 - %262 = OpFMul %v3float %255 %261 - %263 = OpVectorShuffle %v3float %202 %202 0 1 2 - %264 = OpFAdd %v3float %263 %262 - %265 = OpVectorShuffle %v4float %202 %264 4 5 6 3 - %266 = OpAccessChain %_ptr_Uniform_mat4v4float %ShadowDepthPass %int_88 - %267 = OpLoad %mat4v4float %266 - %268 = OpAccessChain %_ptr_Uniform_mat4v4float %ShadowDepthPass %int_89 - %269 = OpLoad %mat4v4float %268 - OpStore %116 %269 - %270 = OpMatrixTimesVector %v4float %267 %265 - %271 = OpAccessChain %_ptr_Uniform_float %ShadowDepthPass %int_91 - %272 = OpLoad %float %271 - %273 = OpFOrdGreaterThan %bool %272 %float_0 - %274 = OpCompositeExtract %float %270 2 - %275 = OpFOrdLessThan %bool %274 %float_0 - %276 = OpLogicalAnd %bool %273 %275 - OpSelectionMerge %277 None - OpBranchConditional %276 %278 %277 - %278 = OpLabel - %279 = OpCompositeInsert %v4float %float_9_99999997en07 %270 2 - %280 = OpCompositeInsert %v4float %float_1 %279 3 - OpBranch %277 - %277 = OpLabel - %281 = OpPhi %v4float %270 %115 %280 %278 - %282 = OpAccessChain %_ptr_Function_float %116 %uint_0 %int_2 - %283 = OpLoad %float %282 - %284 = OpAccessChain %_ptr_Function_float %116 %uint_1 %int_2 - %285 = OpLoad %float %284 - %286 = OpAccessChain %_ptr_Function_float %116 %uint_2 %int_2 - %287 = OpLoad %float %286 - %288 = OpCompositeConstruct %v3float %283 %285 %287 - %289 = OpDot %float %288 %236 - %290 = OpExtInst %float %1 FAbs %289 - %291 = OpAccessChain %_ptr_Uniform_float %ShadowDepthPass %int_90 %int_2 - %292 = OpLoad %float %291 - %293 = OpExtInst %float %1 FAbs %290 - %294 = OpFOrdGreaterThan %bool %293 %float_0 - %295 = OpFMul %float %290 %290 - %296 = OpFSub %float %float_1 %295 - %297 = OpExtInst %float %1 FClamp %296 %float_0 %float_1 - %298 = OpExtInst %float %1 Sqrt %297 - %299 = OpFDiv %float %298 %290 - %300 = OpSelect %float %294 %299 %292 - %301 = OpExtInst %float %1 FClamp %300 %float_0 %292 - %302 = OpAccessChain %_ptr_Uniform_float %ShadowDepthPass %int_90 %int_1 - %303 = OpLoad %float %302 - %304 = OpFMul %float %303 %301 - %305 = OpAccessChain %_ptr_Uniform_float %ShadowDepthPass %int_90 %int_0 - %306 = OpLoad %float %305 - %307 = OpFAdd %float %304 %306 - %308 = OpCompositeExtract %float %281 2 - %309 = OpVectorShuffle %v3float %264 %112 0 1 2 - OpStore %out_var_TEXCOORD10_centroid %227 - OpStore %out_var_TEXCOORD11_centroid %229 - OpStore %out_var_COLOR0 %231 - OpStore %out_var_TEXCOORD0 %234 - OpStore %out_var_PRIMITIVE_ID %122 - OpStore %out_var_TEXCOORD6 %308 - OpStore %out_var_TEXCOORD8 %307 - OpStore %out_var_TEXCOORD7 %309 - OpStore %gl_Position %281 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-ue4/asm/tese/ds-patch-input-fixes.asm.tese b/third_party/spirv-cross/shaders-ue4/asm/tese/ds-patch-input-fixes.asm.tese deleted file mode 100644 index cb55bb4250..0000000000 --- a/third_party/spirv-cross/shaders-ue4/asm/tese/ds-patch-input-fixes.asm.tese +++ /dev/null @@ -1,1175 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 581 -; Schema: 0 - OpCapability Tessellation - OpCapability ClipDistance - OpCapability SampledBuffer - OpExtension "SPV_GOOGLE_hlsl_functionality1" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationEvaluation %MainDomain "main" %gl_ClipDistance %in_var_TEXCOORD6 %in_var_TEXCOORD8 %in_var_TEXCOORD10_centroid %in_var_TEXCOORD11_centroid %in_var_VS_To_DS_Position %in_var_VS_To_DS_VertexID %in_var_PN_POSITION %in_var_PN_DisplacementScales %in_var_PN_TessellationMultiplier %in_var_PN_WorldDisplacementMultiplier %in_var_PN_DominantVertex %in_var_PN_DominantVertex1 %in_var_PN_DominantVertex2 %in_var_PN_DominantEdge %in_var_PN_DominantEdge1 %in_var_PN_DominantEdge2 %in_var_PN_DominantEdge3 %in_var_PN_DominantEdge4 %in_var_PN_DominantEdge5 %gl_TessLevelOuter %gl_TessLevelInner %in_var_PN_POSITION9 %gl_TessCoord %gl_Position %out_var_TEXCOORD6 %out_var_TEXCOORD7 %out_var_TEXCOORD10_centroid %out_var_TEXCOORD11_centroid - OpExecutionMode %MainDomain Triangles - OpExecutionMode %MainDomain SpacingFractionalOdd - OpExecutionMode %MainDomain VertexOrderCw - OpSource HLSL 600 - OpName %type_View "type.View" - OpMemberName %type_View 0 "View_TranslatedWorldToClip" - OpMemberName %type_View 1 "View_WorldToClip" - OpMemberName %type_View 2 "View_ClipToWorld" - OpMemberName %type_View 3 "View_TranslatedWorldToView" - OpMemberName %type_View 4 "View_ViewToTranslatedWorld" - OpMemberName %type_View 5 "View_TranslatedWorldToCameraView" - OpMemberName %type_View 6 "View_CameraViewToTranslatedWorld" - OpMemberName %type_View 7 "View_ViewToClip" - OpMemberName %type_View 8 "View_ViewToClipNoAA" - OpMemberName %type_View 9 "View_ClipToView" - OpMemberName %type_View 10 "View_ClipToTranslatedWorld" - OpMemberName %type_View 11 "View_SVPositionToTranslatedWorld" - OpMemberName %type_View 12 "View_ScreenToWorld" - OpMemberName %type_View 13 "View_ScreenToTranslatedWorld" - OpMemberName %type_View 14 "View_ViewForward" - OpMemberName %type_View 15 "PrePadding_View_908" - OpMemberName %type_View 16 "View_ViewUp" - OpMemberName %type_View 17 "PrePadding_View_924" - OpMemberName %type_View 18 "View_ViewRight" - OpMemberName %type_View 19 "PrePadding_View_940" - OpMemberName %type_View 20 "View_HMDViewNoRollUp" - OpMemberName %type_View 21 "PrePadding_View_956" - OpMemberName %type_View 22 "View_HMDViewNoRollRight" - OpMemberName %type_View 23 "PrePadding_View_972" - OpMemberName %type_View 24 "View_InvDeviceZToWorldZTransform" - OpMemberName %type_View 25 "View_ScreenPositionScaleBias" - OpMemberName %type_View 26 "View_WorldCameraOrigin" - OpMemberName %type_View 27 "PrePadding_View_1020" - OpMemberName %type_View 28 "View_TranslatedWorldCameraOrigin" - OpMemberName %type_View 29 "PrePadding_View_1036" - OpMemberName %type_View 30 "View_WorldViewOrigin" - OpMemberName %type_View 31 "PrePadding_View_1052" - OpMemberName %type_View 32 "View_PreViewTranslation" - OpMemberName %type_View 33 "PrePadding_View_1068" - OpMemberName %type_View 34 "View_PrevProjection" - OpMemberName %type_View 35 "View_PrevViewProj" - OpMemberName %type_View 36 "View_PrevViewRotationProj" - OpMemberName %type_View 37 "View_PrevViewToClip" - OpMemberName %type_View 38 "View_PrevClipToView" - OpMemberName %type_View 39 "View_PrevTranslatedWorldToClip" - OpMemberName %type_View 40 "View_PrevTranslatedWorldToView" - OpMemberName %type_View 41 "View_PrevViewToTranslatedWorld" - OpMemberName %type_View 42 "View_PrevTranslatedWorldToCameraView" - OpMemberName %type_View 43 "View_PrevCameraViewToTranslatedWorld" - OpMemberName %type_View 44 "View_PrevWorldCameraOrigin" - OpMemberName %type_View 45 "PrePadding_View_1724" - OpMemberName %type_View 46 "View_PrevWorldViewOrigin" - OpMemberName %type_View 47 "PrePadding_View_1740" - OpMemberName %type_View 48 "View_PrevPreViewTranslation" - OpMemberName %type_View 49 "PrePadding_View_1756" - OpMemberName %type_View 50 "View_PrevInvViewProj" - OpMemberName %type_View 51 "View_PrevScreenToTranslatedWorld" - OpMemberName %type_View 52 "View_ClipToPrevClip" - OpMemberName %type_View 53 "View_TemporalAAJitter" - OpMemberName %type_View 54 "View_GlobalClippingPlane" - OpMemberName %type_View 55 "View_FieldOfViewWideAngles" - OpMemberName %type_View 56 "View_PrevFieldOfViewWideAngles" - OpMemberName %type_View 57 "View_ViewRectMin" - OpMemberName %type_View 58 "View_ViewSizeAndInvSize" - OpMemberName %type_View 59 "View_BufferSizeAndInvSize" - OpMemberName %type_View 60 "View_BufferBilinearUVMinMax" - OpMemberName %type_View 61 "View_NumSceneColorMSAASamples" - OpMemberName %type_View 62 "View_PreExposure" - OpMemberName %type_View 63 "View_OneOverPreExposure" - OpMemberName %type_View 64 "PrePadding_View_2076" - OpMemberName %type_View 65 "View_DiffuseOverrideParameter" - OpMemberName %type_View 66 "View_SpecularOverrideParameter" - OpMemberName %type_View 67 "View_NormalOverrideParameter" - OpMemberName %type_View 68 "View_RoughnessOverrideParameter" - OpMemberName %type_View 69 "View_PrevFrameGameTime" - OpMemberName %type_View 70 "View_PrevFrameRealTime" - OpMemberName %type_View 71 "View_OutOfBoundsMask" - OpMemberName %type_View 72 "PrePadding_View_2148" - OpMemberName %type_View 73 "PrePadding_View_2152" - OpMemberName %type_View 74 "PrePadding_View_2156" - OpMemberName %type_View 75 "View_WorldCameraMovementSinceLastFrame" - OpMemberName %type_View 76 "View_CullingSign" - OpMemberName %type_View 77 "View_NearPlane" - OpMemberName %type_View 78 "View_AdaptiveTessellationFactor" - OpMemberName %type_View 79 "View_GameTime" - OpMemberName %type_View 80 "View_RealTime" - OpMemberName %type_View 81 "View_DeltaTime" - OpMemberName %type_View 82 "View_MaterialTextureMipBias" - OpMemberName %type_View 83 "View_MaterialTextureDerivativeMultiply" - OpMemberName %type_View 84 "View_Random" - OpMemberName %type_View 85 "View_FrameNumber" - OpMemberName %type_View 86 "View_StateFrameIndexMod8" - OpMemberName %type_View 87 "View_StateFrameIndex" - OpMemberName %type_View 88 "View_CameraCut" - OpMemberName %type_View 89 "View_UnlitViewmodeMask" - OpMemberName %type_View 90 "PrePadding_View_2228" - OpMemberName %type_View 91 "PrePadding_View_2232" - OpMemberName %type_View 92 "PrePadding_View_2236" - OpMemberName %type_View 93 "View_DirectionalLightColor" - OpMemberName %type_View 94 "View_DirectionalLightDirection" - OpMemberName %type_View 95 "PrePadding_View_2268" - OpMemberName %type_View 96 "View_TranslucencyLightingVolumeMin" - OpMemberName %type_View 97 "View_TranslucencyLightingVolumeInvSize" - OpMemberName %type_View 98 "View_TemporalAAParams" - OpMemberName %type_View 99 "View_CircleDOFParams" - OpMemberName %type_View 100 "View_DepthOfFieldSensorWidth" - OpMemberName %type_View 101 "View_DepthOfFieldFocalDistance" - OpMemberName %type_View 102 "View_DepthOfFieldScale" - OpMemberName %type_View 103 "View_DepthOfFieldFocalLength" - OpMemberName %type_View 104 "View_DepthOfFieldFocalRegion" - OpMemberName %type_View 105 "View_DepthOfFieldNearTransitionRegion" - OpMemberName %type_View 106 "View_DepthOfFieldFarTransitionRegion" - OpMemberName %type_View 107 "View_MotionBlurNormalizedToPixel" - OpMemberName %type_View 108 "View_bSubsurfacePostprocessEnabled" - OpMemberName %type_View 109 "View_GeneralPurposeTweak" - OpMemberName %type_View 110 "View_DemosaicVposOffset" - OpMemberName %type_View 111 "PrePadding_View_2412" - OpMemberName %type_View 112 "View_IndirectLightingColorScale" - OpMemberName %type_View 113 "View_HDR32bppEncodingMode" - OpMemberName %type_View 114 "View_AtmosphericFogSunDirection" - OpMemberName %type_View 115 "View_AtmosphericFogSunPower" - OpMemberName %type_View 116 "View_AtmosphericFogPower" - OpMemberName %type_View 117 "View_AtmosphericFogDensityScale" - OpMemberName %type_View 118 "View_AtmosphericFogDensityOffset" - OpMemberName %type_View 119 "View_AtmosphericFogGroundOffset" - OpMemberName %type_View 120 "View_AtmosphericFogDistanceScale" - OpMemberName %type_View 121 "View_AtmosphericFogAltitudeScale" - OpMemberName %type_View 122 "View_AtmosphericFogHeightScaleRayleigh" - OpMemberName %type_View 123 "View_AtmosphericFogStartDistance" - OpMemberName %type_View 124 "View_AtmosphericFogDistanceOffset" - OpMemberName %type_View 125 "View_AtmosphericFogSunDiscScale" - OpMemberName %type_View 126 "View_AtmosphericFogSunDiscHalfApexAngleRadian" - OpMemberName %type_View 127 "PrePadding_View_2492" - OpMemberName %type_View 128 "View_AtmosphericFogSunDiscLuminance" - OpMemberName %type_View 129 "View_AtmosphericFogRenderMask" - OpMemberName %type_View 130 "View_AtmosphericFogInscatterAltitudeSampleNum" - OpMemberName %type_View 131 "PrePadding_View_2520" - OpMemberName %type_View 132 "PrePadding_View_2524" - OpMemberName %type_View 133 "View_AtmosphericFogSunColor" - OpMemberName %type_View 134 "View_NormalCurvatureToRoughnessScaleBias" - OpMemberName %type_View 135 "View_RenderingReflectionCaptureMask" - OpMemberName %type_View 136 "View_AmbientCubemapTint" - OpMemberName %type_View 137 "View_AmbientCubemapIntensity" - OpMemberName %type_View 138 "View_SkyLightParameters" - OpMemberName %type_View 139 "PrePadding_View_2584" - OpMemberName %type_View 140 "PrePadding_View_2588" - OpMemberName %type_View 141 "View_SkyLightColor" - OpMemberName %type_View 142 "View_SkyIrradianceEnvironmentMap" - OpMemberName %type_View 143 "View_MobilePreviewMode" - OpMemberName %type_View 144 "View_HMDEyePaddingOffset" - OpMemberName %type_View 145 "View_ReflectionCubemapMaxMip" - OpMemberName %type_View 146 "View_ShowDecalsMask" - OpMemberName %type_View 147 "View_DistanceFieldAOSpecularOcclusionMode" - OpMemberName %type_View 148 "View_IndirectCapsuleSelfShadowingIntensity" - OpMemberName %type_View 149 "PrePadding_View_2744" - OpMemberName %type_View 150 "PrePadding_View_2748" - OpMemberName %type_View 151 "View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight" - OpMemberName %type_View 152 "View_StereoPassIndex" - OpMemberName %type_View 153 "View_GlobalVolumeCenterAndExtent" - OpMemberName %type_View 154 "View_GlobalVolumeWorldToUVAddAndMul" - OpMemberName %type_View 155 "View_GlobalVolumeDimension" - OpMemberName %type_View 156 "View_GlobalVolumeTexelSize" - OpMemberName %type_View 157 "View_MaxGlobalDistance" - OpMemberName %type_View 158 "PrePadding_View_2908" - OpMemberName %type_View 159 "View_CursorPosition" - OpMemberName %type_View 160 "View_bCheckerboardSubsurfaceProfileRendering" - OpMemberName %type_View 161 "PrePadding_View_2924" - OpMemberName %type_View 162 "View_VolumetricFogInvGridSize" - OpMemberName %type_View 163 "PrePadding_View_2940" - OpMemberName %type_View 164 "View_VolumetricFogGridZParams" - OpMemberName %type_View 165 "PrePadding_View_2956" - OpMemberName %type_View 166 "View_VolumetricFogSVPosToVolumeUV" - OpMemberName %type_View 167 "View_VolumetricFogMaxDistance" - OpMemberName %type_View 168 "PrePadding_View_2972" - OpMemberName %type_View 169 "View_VolumetricLightmapWorldToUVScale" - OpMemberName %type_View 170 "PrePadding_View_2988" - OpMemberName %type_View 171 "View_VolumetricLightmapWorldToUVAdd" - OpMemberName %type_View 172 "PrePadding_View_3004" - OpMemberName %type_View 173 "View_VolumetricLightmapIndirectionTextureSize" - OpMemberName %type_View 174 "View_VolumetricLightmapBrickSize" - OpMemberName %type_View 175 "View_VolumetricLightmapBrickTexelSize" - OpMemberName %type_View 176 "View_StereoIPD" - OpMemberName %type_View 177 "View_IndirectLightingCacheShowFlag" - OpMemberName %type_View 178 "View_EyeToPixelSpreadAngle" - OpMemberName %type_View 179 "PrePadding_View_3048" - OpMemberName %type_View 180 "PrePadding_View_3052" - OpMemberName %type_View 181 "View_WorldToVirtualTexture" - OpMemberName %type_View 182 "View_VirtualTextureParams" - OpMemberName %type_View 183 "View_XRPassthroughCameraUVs" - OpName %View "View" - OpName %type_sampler "type.sampler" - OpName %type_3d_image "type.3d.image" - OpName %View_GlobalDistanceFieldTexture0 "View_GlobalDistanceFieldTexture0" - OpName %View_GlobalDistanceFieldSampler0 "View_GlobalDistanceFieldSampler0" - OpName %View_GlobalDistanceFieldTexture1 "View_GlobalDistanceFieldTexture1" - OpName %View_GlobalDistanceFieldTexture2 "View_GlobalDistanceFieldTexture2" - OpName %View_GlobalDistanceFieldTexture3 "View_GlobalDistanceFieldTexture3" - OpName %type_Material "type.Material" - OpMemberName %type_Material 0 "Material_VectorExpressions" - OpMemberName %type_Material 1 "Material_ScalarExpressions" - OpName %Material "Material" - OpName %in_var_TEXCOORD6 "in.var.TEXCOORD6" - OpName %in_var_TEXCOORD8 "in.var.TEXCOORD8" - OpName %in_var_TEXCOORD10_centroid "in.var.TEXCOORD10_centroid" - OpName %in_var_TEXCOORD11_centroid "in.var.TEXCOORD11_centroid" - OpName %in_var_VS_To_DS_Position "in.var.VS_To_DS_Position" - OpName %in_var_VS_To_DS_VertexID "in.var.VS_To_DS_VertexID" - OpName %in_var_PN_POSITION "in.var.PN_POSITION" - OpName %in_var_PN_DisplacementScales "in.var.PN_DisplacementScales" - OpName %in_var_PN_TessellationMultiplier "in.var.PN_TessellationMultiplier" - OpName %in_var_PN_WorldDisplacementMultiplier "in.var.PN_WorldDisplacementMultiplier" - OpName %in_var_PN_DominantVertex "in.var.PN_DominantVertex" - OpName %in_var_PN_DominantVertex1 "in.var.PN_DominantVertex1" - OpName %in_var_PN_DominantVertex2 "in.var.PN_DominantVertex2" - OpName %in_var_PN_DominantEdge "in.var.PN_DominantEdge" - OpName %in_var_PN_DominantEdge1 "in.var.PN_DominantEdge1" - OpName %in_var_PN_DominantEdge2 "in.var.PN_DominantEdge2" - OpName %in_var_PN_DominantEdge3 "in.var.PN_DominantEdge3" - OpName %in_var_PN_DominantEdge4 "in.var.PN_DominantEdge4" - OpName %in_var_PN_DominantEdge5 "in.var.PN_DominantEdge5" - OpName %in_var_PN_POSITION9 "in.var.PN_POSITION9" - OpName %out_var_TEXCOORD6 "out.var.TEXCOORD6" - OpName %out_var_TEXCOORD7 "out.var.TEXCOORD7" - OpName %out_var_TEXCOORD10_centroid "out.var.TEXCOORD10_centroid" - OpName %out_var_TEXCOORD11_centroid "out.var.TEXCOORD11_centroid" - OpName %MainDomain "MainDomain" - OpName %type_sampled_image "type.sampled.image" - OpDecorate %gl_ClipDistance BuiltIn ClipDistance - OpDecorateString %gl_ClipDistance UserSemantic "SV_ClipDistance" - OpDecorateString %in_var_TEXCOORD6 UserSemantic "TEXCOORD6" - OpDecorateString %in_var_TEXCOORD8 UserSemantic "TEXCOORD8" - OpDecorateString %in_var_TEXCOORD10_centroid UserSemantic "TEXCOORD10_centroid" - OpDecorateString %in_var_TEXCOORD11_centroid UserSemantic "TEXCOORD11_centroid" - OpDecorateString %in_var_VS_To_DS_Position UserSemantic "VS_To_DS_Position" - OpDecorateString %in_var_VS_To_DS_VertexID UserSemantic "VS_To_DS_VertexID" - OpDecorateString %in_var_PN_POSITION UserSemantic "PN_POSITION" - OpDecorateString %in_var_PN_DisplacementScales UserSemantic "PN_DisplacementScales" - OpDecorateString %in_var_PN_TessellationMultiplier UserSemantic "PN_TessellationMultiplier" - OpDecorateString %in_var_PN_WorldDisplacementMultiplier UserSemantic "PN_WorldDisplacementMultiplier" - OpDecorateString %in_var_PN_DominantVertex UserSemantic "PN_DominantVertex" - OpDecorateString %in_var_PN_DominantVertex1 UserSemantic "PN_DominantVertex" - OpDecorateString %in_var_PN_DominantVertex2 UserSemantic "PN_DominantVertex" - OpDecorateString %in_var_PN_DominantEdge UserSemantic "PN_DominantEdge" - OpDecorateString %in_var_PN_DominantEdge1 UserSemantic "PN_DominantEdge" - OpDecorateString %in_var_PN_DominantEdge2 UserSemantic "PN_DominantEdge" - OpDecorateString %in_var_PN_DominantEdge3 UserSemantic "PN_DominantEdge" - OpDecorateString %in_var_PN_DominantEdge4 UserSemantic "PN_DominantEdge" - OpDecorateString %in_var_PN_DominantEdge5 UserSemantic "PN_DominantEdge" - OpDecorate %gl_TessLevelOuter BuiltIn TessLevelOuter - OpDecorateString %gl_TessLevelOuter UserSemantic "SV_TessFactor" - OpDecorate %gl_TessLevelOuter Patch - OpDecorate %gl_TessLevelInner BuiltIn TessLevelInner - OpDecorateString %gl_TessLevelInner UserSemantic "SV_InsideTessFactor" - OpDecorate %gl_TessLevelInner Patch - OpDecorateString %in_var_PN_POSITION9 UserSemantic "PN_POSITION9" - OpDecorate %in_var_PN_POSITION9 Patch - OpDecorate %gl_TessCoord BuiltIn TessCoord - OpDecorateString %gl_TessCoord UserSemantic "SV_DomainLocation" - OpDecorate %gl_TessCoord Patch - OpDecorate %gl_Position BuiltIn Position - OpDecorateString %gl_Position UserSemantic "SV_POSITION" - OpDecorateString %out_var_TEXCOORD6 UserSemantic "TEXCOORD6" - OpDecorateString %out_var_TEXCOORD7 UserSemantic "TEXCOORD7" - OpDecorateString %out_var_TEXCOORD10_centroid UserSemantic "TEXCOORD10_centroid" - OpDecorateString %out_var_TEXCOORD11_centroid UserSemantic "TEXCOORD11_centroid" - OpDecorate %in_var_PN_DisplacementScales Location 0 - OpDecorate %in_var_PN_DominantEdge Location 1 - OpDecorate %in_var_PN_DominantEdge1 Location 2 - OpDecorate %in_var_PN_DominantEdge2 Location 3 - OpDecorate %in_var_PN_DominantEdge3 Location 4 - OpDecorate %in_var_PN_DominantEdge4 Location 5 - OpDecorate %in_var_PN_DominantEdge5 Location 6 - OpDecorate %in_var_PN_DominantVertex Location 7 - OpDecorate %in_var_PN_DominantVertex1 Location 8 - OpDecorate %in_var_PN_DominantVertex2 Location 9 - OpDecorate %in_var_PN_POSITION Location 10 - OpDecorate %in_var_PN_POSITION9 Location 13 - OpDecorate %in_var_PN_TessellationMultiplier Location 14 - OpDecorate %in_var_PN_WorldDisplacementMultiplier Location 15 - OpDecorate %in_var_TEXCOORD10_centroid Location 16 - OpDecorate %in_var_TEXCOORD11_centroid Location 17 - OpDecorate %in_var_TEXCOORD6 Location 18 - OpDecorate %in_var_TEXCOORD8 Location 19 - OpDecorate %in_var_VS_To_DS_Position Location 20 - OpDecorate %in_var_VS_To_DS_VertexID Location 21 - OpDecorate %out_var_TEXCOORD6 Location 0 - OpDecorate %out_var_TEXCOORD7 Location 1 - OpDecorate %out_var_TEXCOORD10_centroid Location 2 - OpDecorate %out_var_TEXCOORD11_centroid Location 3 - OpDecorate %View DescriptorSet 0 - OpDecorate %View Binding 0 - OpDecorate %View_GlobalDistanceFieldTexture0 DescriptorSet 0 - OpDecorate %View_GlobalDistanceFieldTexture0 Binding 0 - OpDecorate %View_GlobalDistanceFieldSampler0 DescriptorSet 0 - OpDecorate %View_GlobalDistanceFieldSampler0 Binding 0 - OpDecorate %View_GlobalDistanceFieldTexture1 DescriptorSet 0 - OpDecorate %View_GlobalDistanceFieldTexture1 Binding 1 - OpDecorate %View_GlobalDistanceFieldTexture2 DescriptorSet 0 - OpDecorate %View_GlobalDistanceFieldTexture2 Binding 2 - OpDecorate %View_GlobalDistanceFieldTexture3 DescriptorSet 0 - OpDecorate %View_GlobalDistanceFieldTexture3 Binding 3 - OpDecorate %Material DescriptorSet 0 - OpDecorate %Material Binding 1 - OpDecorate %_arr_v4float_uint_2 ArrayStride 16 - OpDecorate %_arr_v4float_uint_7 ArrayStride 16 - OpDecorate %_arr_v4float_uint_4 ArrayStride 16 - OpMemberDecorate %type_View 0 Offset 0 - OpMemberDecorate %type_View 0 MatrixStride 16 - OpMemberDecorate %type_View 0 ColMajor - OpMemberDecorate %type_View 1 Offset 64 - OpMemberDecorate %type_View 1 MatrixStride 16 - OpMemberDecorate %type_View 1 ColMajor - OpMemberDecorate %type_View 2 Offset 128 - OpMemberDecorate %type_View 2 MatrixStride 16 - OpMemberDecorate %type_View 2 ColMajor - OpMemberDecorate %type_View 3 Offset 192 - OpMemberDecorate %type_View 3 MatrixStride 16 - OpMemberDecorate %type_View 3 ColMajor - OpMemberDecorate %type_View 4 Offset 256 - OpMemberDecorate %type_View 4 MatrixStride 16 - OpMemberDecorate %type_View 4 ColMajor - OpMemberDecorate %type_View 5 Offset 320 - OpMemberDecorate %type_View 5 MatrixStride 16 - OpMemberDecorate %type_View 5 ColMajor - OpMemberDecorate %type_View 6 Offset 384 - OpMemberDecorate %type_View 6 MatrixStride 16 - OpMemberDecorate %type_View 6 ColMajor - OpMemberDecorate %type_View 7 Offset 448 - OpMemberDecorate %type_View 7 MatrixStride 16 - OpMemberDecorate %type_View 7 ColMajor - OpMemberDecorate %type_View 8 Offset 512 - OpMemberDecorate %type_View 8 MatrixStride 16 - OpMemberDecorate %type_View 8 ColMajor - OpMemberDecorate %type_View 9 Offset 576 - OpMemberDecorate %type_View 9 MatrixStride 16 - OpMemberDecorate %type_View 9 ColMajor - OpMemberDecorate %type_View 10 Offset 640 - OpMemberDecorate %type_View 10 MatrixStride 16 - OpMemberDecorate %type_View 10 ColMajor - OpMemberDecorate %type_View 11 Offset 704 - OpMemberDecorate %type_View 11 MatrixStride 16 - OpMemberDecorate %type_View 11 ColMajor - OpMemberDecorate %type_View 12 Offset 768 - OpMemberDecorate %type_View 12 MatrixStride 16 - OpMemberDecorate %type_View 12 ColMajor - OpMemberDecorate %type_View 13 Offset 832 - OpMemberDecorate %type_View 13 MatrixStride 16 - OpMemberDecorate %type_View 13 ColMajor - OpMemberDecorate %type_View 14 Offset 896 - OpMemberDecorate %type_View 15 Offset 908 - OpMemberDecorate %type_View 16 Offset 912 - OpMemberDecorate %type_View 17 Offset 924 - OpMemberDecorate %type_View 18 Offset 928 - OpMemberDecorate %type_View 19 Offset 940 - OpMemberDecorate %type_View 20 Offset 944 - OpMemberDecorate %type_View 21 Offset 956 - OpMemberDecorate %type_View 22 Offset 960 - OpMemberDecorate %type_View 23 Offset 972 - OpMemberDecorate %type_View 24 Offset 976 - OpMemberDecorate %type_View 25 Offset 992 - OpMemberDecorate %type_View 26 Offset 1008 - OpMemberDecorate %type_View 27 Offset 1020 - OpMemberDecorate %type_View 28 Offset 1024 - OpMemberDecorate %type_View 29 Offset 1036 - OpMemberDecorate %type_View 30 Offset 1040 - OpMemberDecorate %type_View 31 Offset 1052 - OpMemberDecorate %type_View 32 Offset 1056 - OpMemberDecorate %type_View 33 Offset 1068 - OpMemberDecorate %type_View 34 Offset 1072 - OpMemberDecorate %type_View 34 MatrixStride 16 - OpMemberDecorate %type_View 34 ColMajor - OpMemberDecorate %type_View 35 Offset 1136 - OpMemberDecorate %type_View 35 MatrixStride 16 - OpMemberDecorate %type_View 35 ColMajor - OpMemberDecorate %type_View 36 Offset 1200 - OpMemberDecorate %type_View 36 MatrixStride 16 - OpMemberDecorate %type_View 36 ColMajor - OpMemberDecorate %type_View 37 Offset 1264 - OpMemberDecorate %type_View 37 MatrixStride 16 - OpMemberDecorate %type_View 37 ColMajor - OpMemberDecorate %type_View 38 Offset 1328 - OpMemberDecorate %type_View 38 MatrixStride 16 - OpMemberDecorate %type_View 38 ColMajor - OpMemberDecorate %type_View 39 Offset 1392 - OpMemberDecorate %type_View 39 MatrixStride 16 - OpMemberDecorate %type_View 39 ColMajor - OpMemberDecorate %type_View 40 Offset 1456 - OpMemberDecorate %type_View 40 MatrixStride 16 - OpMemberDecorate %type_View 40 ColMajor - OpMemberDecorate %type_View 41 Offset 1520 - OpMemberDecorate %type_View 41 MatrixStride 16 - OpMemberDecorate %type_View 41 ColMajor - OpMemberDecorate %type_View 42 Offset 1584 - OpMemberDecorate %type_View 42 MatrixStride 16 - OpMemberDecorate %type_View 42 ColMajor - OpMemberDecorate %type_View 43 Offset 1648 - OpMemberDecorate %type_View 43 MatrixStride 16 - OpMemberDecorate %type_View 43 ColMajor - OpMemberDecorate %type_View 44 Offset 1712 - OpMemberDecorate %type_View 45 Offset 1724 - OpMemberDecorate %type_View 46 Offset 1728 - OpMemberDecorate %type_View 47 Offset 1740 - OpMemberDecorate %type_View 48 Offset 1744 - OpMemberDecorate %type_View 49 Offset 1756 - OpMemberDecorate %type_View 50 Offset 1760 - OpMemberDecorate %type_View 50 MatrixStride 16 - OpMemberDecorate %type_View 50 ColMajor - OpMemberDecorate %type_View 51 Offset 1824 - OpMemberDecorate %type_View 51 MatrixStride 16 - OpMemberDecorate %type_View 51 ColMajor - OpMemberDecorate %type_View 52 Offset 1888 - OpMemberDecorate %type_View 52 MatrixStride 16 - OpMemberDecorate %type_View 52 ColMajor - OpMemberDecorate %type_View 53 Offset 1952 - OpMemberDecorate %type_View 54 Offset 1968 - OpMemberDecorate %type_View 55 Offset 1984 - OpMemberDecorate %type_View 56 Offset 1992 - OpMemberDecorate %type_View 57 Offset 2000 - OpMemberDecorate %type_View 58 Offset 2016 - OpMemberDecorate %type_View 59 Offset 2032 - OpMemberDecorate %type_View 60 Offset 2048 - OpMemberDecorate %type_View 61 Offset 2064 - OpMemberDecorate %type_View 62 Offset 2068 - OpMemberDecorate %type_View 63 Offset 2072 - OpMemberDecorate %type_View 64 Offset 2076 - OpMemberDecorate %type_View 65 Offset 2080 - OpMemberDecorate %type_View 66 Offset 2096 - OpMemberDecorate %type_View 67 Offset 2112 - OpMemberDecorate %type_View 68 Offset 2128 - OpMemberDecorate %type_View 69 Offset 2136 - OpMemberDecorate %type_View 70 Offset 2140 - OpMemberDecorate %type_View 71 Offset 2144 - OpMemberDecorate %type_View 72 Offset 2148 - OpMemberDecorate %type_View 73 Offset 2152 - OpMemberDecorate %type_View 74 Offset 2156 - OpMemberDecorate %type_View 75 Offset 2160 - OpMemberDecorate %type_View 76 Offset 2172 - OpMemberDecorate %type_View 77 Offset 2176 - OpMemberDecorate %type_View 78 Offset 2180 - OpMemberDecorate %type_View 79 Offset 2184 - OpMemberDecorate %type_View 80 Offset 2188 - OpMemberDecorate %type_View 81 Offset 2192 - OpMemberDecorate %type_View 82 Offset 2196 - OpMemberDecorate %type_View 83 Offset 2200 - OpMemberDecorate %type_View 84 Offset 2204 - OpMemberDecorate %type_View 85 Offset 2208 - OpMemberDecorate %type_View 86 Offset 2212 - OpMemberDecorate %type_View 87 Offset 2216 - OpMemberDecorate %type_View 88 Offset 2220 - OpMemberDecorate %type_View 89 Offset 2224 - OpMemberDecorate %type_View 90 Offset 2228 - OpMemberDecorate %type_View 91 Offset 2232 - OpMemberDecorate %type_View 92 Offset 2236 - OpMemberDecorate %type_View 93 Offset 2240 - OpMemberDecorate %type_View 94 Offset 2256 - OpMemberDecorate %type_View 95 Offset 2268 - OpMemberDecorate %type_View 96 Offset 2272 - OpMemberDecorate %type_View 97 Offset 2304 - OpMemberDecorate %type_View 98 Offset 2336 - OpMemberDecorate %type_View 99 Offset 2352 - OpMemberDecorate %type_View 100 Offset 2368 - OpMemberDecorate %type_View 101 Offset 2372 - OpMemberDecorate %type_View 102 Offset 2376 - OpMemberDecorate %type_View 103 Offset 2380 - OpMemberDecorate %type_View 104 Offset 2384 - OpMemberDecorate %type_View 105 Offset 2388 - OpMemberDecorate %type_View 106 Offset 2392 - OpMemberDecorate %type_View 107 Offset 2396 - OpMemberDecorate %type_View 108 Offset 2400 - OpMemberDecorate %type_View 109 Offset 2404 - OpMemberDecorate %type_View 110 Offset 2408 - OpMemberDecorate %type_View 111 Offset 2412 - OpMemberDecorate %type_View 112 Offset 2416 - OpMemberDecorate %type_View 113 Offset 2428 - OpMemberDecorate %type_View 114 Offset 2432 - OpMemberDecorate %type_View 115 Offset 2444 - OpMemberDecorate %type_View 116 Offset 2448 - OpMemberDecorate %type_View 117 Offset 2452 - OpMemberDecorate %type_View 118 Offset 2456 - OpMemberDecorate %type_View 119 Offset 2460 - OpMemberDecorate %type_View 120 Offset 2464 - OpMemberDecorate %type_View 121 Offset 2468 - OpMemberDecorate %type_View 122 Offset 2472 - OpMemberDecorate %type_View 123 Offset 2476 - OpMemberDecorate %type_View 124 Offset 2480 - OpMemberDecorate %type_View 125 Offset 2484 - OpMemberDecorate %type_View 126 Offset 2488 - OpMemberDecorate %type_View 127 Offset 2492 - OpMemberDecorate %type_View 128 Offset 2496 - OpMemberDecorate %type_View 129 Offset 2512 - OpMemberDecorate %type_View 130 Offset 2516 - OpMemberDecorate %type_View 131 Offset 2520 - OpMemberDecorate %type_View 132 Offset 2524 - OpMemberDecorate %type_View 133 Offset 2528 - OpMemberDecorate %type_View 134 Offset 2544 - OpMemberDecorate %type_View 135 Offset 2556 - OpMemberDecorate %type_View 136 Offset 2560 - OpMemberDecorate %type_View 137 Offset 2576 - OpMemberDecorate %type_View 138 Offset 2580 - OpMemberDecorate %type_View 139 Offset 2584 - OpMemberDecorate %type_View 140 Offset 2588 - OpMemberDecorate %type_View 141 Offset 2592 - OpMemberDecorate %type_View 142 Offset 2608 - OpMemberDecorate %type_View 143 Offset 2720 - OpMemberDecorate %type_View 144 Offset 2724 - OpMemberDecorate %type_View 145 Offset 2728 - OpMemberDecorate %type_View 146 Offset 2732 - OpMemberDecorate %type_View 147 Offset 2736 - OpMemberDecorate %type_View 148 Offset 2740 - OpMemberDecorate %type_View 149 Offset 2744 - OpMemberDecorate %type_View 150 Offset 2748 - OpMemberDecorate %type_View 151 Offset 2752 - OpMemberDecorate %type_View 152 Offset 2764 - OpMemberDecorate %type_View 153 Offset 2768 - OpMemberDecorate %type_View 154 Offset 2832 - OpMemberDecorate %type_View 155 Offset 2896 - OpMemberDecorate %type_View 156 Offset 2900 - OpMemberDecorate %type_View 157 Offset 2904 - OpMemberDecorate %type_View 158 Offset 2908 - OpMemberDecorate %type_View 159 Offset 2912 - OpMemberDecorate %type_View 160 Offset 2920 - OpMemberDecorate %type_View 161 Offset 2924 - OpMemberDecorate %type_View 162 Offset 2928 - OpMemberDecorate %type_View 163 Offset 2940 - OpMemberDecorate %type_View 164 Offset 2944 - OpMemberDecorate %type_View 165 Offset 2956 - OpMemberDecorate %type_View 166 Offset 2960 - OpMemberDecorate %type_View 167 Offset 2968 - OpMemberDecorate %type_View 168 Offset 2972 - OpMemberDecorate %type_View 169 Offset 2976 - OpMemberDecorate %type_View 170 Offset 2988 - OpMemberDecorate %type_View 171 Offset 2992 - OpMemberDecorate %type_View 172 Offset 3004 - OpMemberDecorate %type_View 173 Offset 3008 - OpMemberDecorate %type_View 174 Offset 3020 - OpMemberDecorate %type_View 175 Offset 3024 - OpMemberDecorate %type_View 176 Offset 3036 - OpMemberDecorate %type_View 177 Offset 3040 - OpMemberDecorate %type_View 178 Offset 3044 - OpMemberDecorate %type_View 179 Offset 3048 - OpMemberDecorate %type_View 180 Offset 3052 - OpMemberDecorate %type_View 181 Offset 3056 - OpMemberDecorate %type_View 181 MatrixStride 16 - OpMemberDecorate %type_View 181 ColMajor - OpMemberDecorate %type_View 182 Offset 3120 - OpMemberDecorate %type_View 183 Offset 3136 - OpDecorate %type_View Block - OpDecorate %_arr_v4float_uint_5 ArrayStride 16 - OpMemberDecorate %type_Material 0 Offset 0 - OpMemberDecorate %type_Material 1 Offset 80 - OpDecorate %type_Material Block - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%mat4v4float = OpTypeMatrix %v4float 4 - %v3float = OpTypeVector %float 3 - %v2float = OpTypeVector %float 2 - %int = OpTypeInt 32 1 - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 - %uint_7 = OpConstant %uint 7 - %uint_4 = OpConstant %uint 4 - %v2int = OpTypeVector %int 2 -%float_0_00100000005 = OpConstant %float 0.00100000005 - %uint_0 = OpConstant %uint 0 - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 - %int_2 = OpConstant %int 2 - %float_3 = OpConstant %float 3 - %uint_1 = OpConstant %uint 1 - %float_6 = OpConstant %float 6 - %67 = OpConstantComposite %v4float %float_6 %float_6 %float_6 %float_6 - %float_1 = OpConstant %float 1 - %float_0 = OpConstant %float 0 - %int_3 = OpConstant %int 3 - %float_2 = OpConstant %float 2 - %int_26 = OpConstant %int 26 - %int_32 = OpConstant %int 32 - %int_54 = OpConstant %int 54 - %int_153 = OpConstant %int 153 - %int_154 = OpConstant %int 154 - %int_156 = OpConstant %int 156 - %int_157 = OpConstant %int 157 - %float_10 = OpConstant %float 10 - %uint_3 = OpConstant %uint 3 - %81 = OpConstantComposite %v3float %float_0 %float_0 %float_0 -%_arr_v4float_uint_2 = OpTypeArray %v4float %uint_2 -%_arr_v4float_uint_7 = OpTypeArray %v4float %uint_7 -%_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4 - %type_View = OpTypeStruct %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %v3float %float %v3float %float %v3float %float %v3float %float %v3float %float %v4float %v4float %v3float %float %v3float %float %v3float %float %v3float %float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %v3float %float %v3float %float %v3float %float %mat4v4float %mat4v4float %mat4v4float %v4float %v4float %v2float %v2float %v4float %v4float %v4float %v4float %int %float %float %float %v4float %v4float %v4float %v2float %float %float %float %float %float %float %v3float %float %float %float %float %float %float %float %float %uint %uint %uint %uint %float %float %float %float %float %v4float %v3float %float %_arr_v4float_uint_2 %_arr_v4float_uint_2 %v4float %v4float %float %float %float %float %float %float %float %float %float %float %float %float %v3float %float %v3float %float %float %float %float %float %float %float %float %float %float %float %float %float %v4float %uint %uint %uint %uint %v4float %v3float %float %v4float %float %float %float %float %v4float %_arr_v4float_uint_7 %float %float %float %float %uint %float %float %float %v3float %int %_arr_v4float_uint_4 %_arr_v4float_uint_4 %float %float %float %float %v2int %float %float %v3float %float %v3float %float %v2float %float %float %v3float %float %v3float %float %v3float %float %v3float %float %float %float %float %float %mat4v4float %v4float %_arr_v4float_uint_2 -%_ptr_Uniform_type_View = OpTypePointer Uniform %type_View -%type_sampler = OpTypeSampler -%_ptr_UniformConstant_type_sampler = OpTypePointer UniformConstant %type_sampler -%type_3d_image = OpTypeImage %float 3D 2 0 0 1 Unknown -%_ptr_UniformConstant_type_3d_image = OpTypePointer UniformConstant %type_3d_image - %uint_5 = OpConstant %uint 5 -%_arr_v4float_uint_5 = OpTypeArray %v4float %uint_5 -%type_Material = OpTypeStruct %_arr_v4float_uint_5 %_arr_v4float_uint_2 -%_ptr_Uniform_type_Material = OpTypePointer Uniform %type_Material -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%_ptr_Output__arr_float_uint_1 = OpTypePointer Output %_arr_float_uint_1 -%_arr_v4float_uint_3 = OpTypeArray %v4float %uint_3 -%_ptr_Input__arr_v4float_uint_3 = OpTypePointer Input %_arr_v4float_uint_3 -%_arr_uint_uint_3 = OpTypeArray %uint %uint_3 -%_ptr_Input__arr_uint_uint_3 = OpTypePointer Input %_arr_uint_uint_3 -%_arr__arr_v4float_uint_3_uint_3 = OpTypeArray %_arr_v4float_uint_3 %uint_3 -%_ptr_Input__arr__arr_v4float_uint_3_uint_3 = OpTypePointer Input %_arr__arr_v4float_uint_3_uint_3 -%_arr_v3float_uint_3 = OpTypeArray %v3float %uint_3 -%_ptr_Input__arr_v3float_uint_3 = OpTypePointer Input %_arr_v3float_uint_3 -%_arr_float_uint_3 = OpTypeArray %float %uint_3 -%_ptr_Input__arr_float_uint_3 = OpTypePointer Input %_arr_float_uint_3 -%_arr_v2float_uint_3 = OpTypeArray %v2float %uint_3 -%_ptr_Input__arr_v2float_uint_3 = OpTypePointer Input %_arr_v2float_uint_3 -%_arr_float_uint_4 = OpTypeArray %float %uint_4 -%_ptr_Input__arr_float_uint_4 = OpTypePointer Input %_arr_float_uint_4 -%_arr_float_uint_2 = OpTypeArray %float %uint_2 -%_ptr_Input__arr_float_uint_2 = OpTypePointer Input %_arr_float_uint_2 -%_ptr_Input_v4float = OpTypePointer Input %v4float -%_ptr_Input_v3float = OpTypePointer Input %v3float -%_ptr_Output_v4float = OpTypePointer Output %v4float - %void = OpTypeVoid - %109 = OpTypeFunction %void -%_ptr_Output_float = OpTypePointer Output %float -%mat3v3float = OpTypeMatrix %v3float 3 - %bool = OpTypeBool -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float -%_ptr_Uniform_float = OpTypePointer Uniform %float -%_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float -%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float -%type_sampled_image = OpTypeSampledImage %type_3d_image - %View = OpVariable %_ptr_Uniform_type_View Uniform -%View_GlobalDistanceFieldTexture0 = OpVariable %_ptr_UniformConstant_type_3d_image UniformConstant -%View_GlobalDistanceFieldSampler0 = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant -%View_GlobalDistanceFieldTexture1 = OpVariable %_ptr_UniformConstant_type_3d_image UniformConstant -%View_GlobalDistanceFieldTexture2 = OpVariable %_ptr_UniformConstant_type_3d_image UniformConstant -%View_GlobalDistanceFieldTexture3 = OpVariable %_ptr_UniformConstant_type_3d_image UniformConstant - %Material = OpVariable %_ptr_Uniform_type_Material Uniform -%gl_ClipDistance = OpVariable %_ptr_Output__arr_float_uint_1 Output -%in_var_TEXCOORD6 = OpVariable %_ptr_Input__arr_v4float_uint_3 Input -%in_var_TEXCOORD8 = OpVariable %_ptr_Input__arr_v4float_uint_3 Input -%in_var_TEXCOORD10_centroid = OpVariable %_ptr_Input__arr_v4float_uint_3 Input -%in_var_TEXCOORD11_centroid = OpVariable %_ptr_Input__arr_v4float_uint_3 Input -%in_var_VS_To_DS_Position = OpVariable %_ptr_Input__arr_v4float_uint_3 Input -%in_var_VS_To_DS_VertexID = OpVariable %_ptr_Input__arr_uint_uint_3 Input -%in_var_PN_POSITION = OpVariable %_ptr_Input__arr__arr_v4float_uint_3_uint_3 Input -%in_var_PN_DisplacementScales = OpVariable %_ptr_Input__arr_v3float_uint_3 Input -%in_var_PN_TessellationMultiplier = OpVariable %_ptr_Input__arr_float_uint_3 Input -%in_var_PN_WorldDisplacementMultiplier = OpVariable %_ptr_Input__arr_float_uint_3 Input -%in_var_PN_DominantVertex = OpVariable %_ptr_Input__arr_v2float_uint_3 Input -%in_var_PN_DominantVertex1 = OpVariable %_ptr_Input__arr_v4float_uint_3 Input -%in_var_PN_DominantVertex2 = OpVariable %_ptr_Input__arr_v3float_uint_3 Input -%in_var_PN_DominantEdge = OpVariable %_ptr_Input__arr_v2float_uint_3 Input -%in_var_PN_DominantEdge1 = OpVariable %_ptr_Input__arr_v2float_uint_3 Input -%in_var_PN_DominantEdge2 = OpVariable %_ptr_Input__arr_v4float_uint_3 Input -%in_var_PN_DominantEdge3 = OpVariable %_ptr_Input__arr_v4float_uint_3 Input -%in_var_PN_DominantEdge4 = OpVariable %_ptr_Input__arr_v3float_uint_3 Input -%in_var_PN_DominantEdge5 = OpVariable %_ptr_Input__arr_v3float_uint_3 Input -%gl_TessLevelOuter = OpVariable %_ptr_Input__arr_float_uint_4 Input -%gl_TessLevelInner = OpVariable %_ptr_Input__arr_float_uint_2 Input -%in_var_PN_POSITION9 = OpVariable %_ptr_Input_v4float Input -%gl_TessCoord = OpVariable %_ptr_Input_v3float Input -%gl_Position = OpVariable %_ptr_Output_v4float Output -%out_var_TEXCOORD6 = OpVariable %_ptr_Output_v4float Output -%out_var_TEXCOORD7 = OpVariable %_ptr_Output_v4float Output -%out_var_TEXCOORD10_centroid = OpVariable %_ptr_Output_v4float Output -%out_var_TEXCOORD11_centroid = OpVariable %_ptr_Output_v4float Output - %117 = OpConstantNull %v4float - %118 = OpUndef %v4float - %MainDomain = OpFunction %void None %109 - %119 = OpLabel - %120 = OpLoad %_arr_v4float_uint_3 %in_var_TEXCOORD6 - %121 = OpLoad %_arr_v4float_uint_3 %in_var_TEXCOORD8 - %122 = OpCompositeExtract %v4float %120 0 - %123 = OpCompositeExtract %v4float %121 0 - %124 = OpCompositeExtract %v4float %120 1 - %125 = OpCompositeExtract %v4float %121 1 - %126 = OpCompositeExtract %v4float %120 2 - %127 = OpCompositeExtract %v4float %121 2 - %128 = OpLoad %_arr_v4float_uint_3 %in_var_TEXCOORD10_centroid - %129 = OpLoad %_arr_v4float_uint_3 %in_var_TEXCOORD11_centroid - %130 = OpCompositeExtract %v4float %128 0 - %131 = OpCompositeExtract %v4float %129 0 - %132 = OpCompositeExtract %v4float %128 1 - %133 = OpCompositeExtract %v4float %129 1 - %134 = OpCompositeExtract %v4float %128 2 - %135 = OpCompositeExtract %v4float %129 2 - %136 = OpLoad %_arr__arr_v4float_uint_3_uint_3 %in_var_PN_POSITION - %137 = OpLoad %_arr_float_uint_3 %in_var_PN_WorldDisplacementMultiplier - %138 = OpLoad %_arr_v4float_uint_3 %in_var_PN_DominantVertex1 - %139 = OpLoad %_arr_v3float_uint_3 %in_var_PN_DominantVertex2 - %140 = OpCompositeExtract %v4float %138 0 - %141 = OpCompositeExtract %v3float %139 0 - %142 = OpCompositeExtract %v4float %138 1 - %143 = OpCompositeExtract %v3float %139 1 - %144 = OpCompositeExtract %v4float %138 2 - %145 = OpCompositeExtract %v3float %139 2 - %146 = OpLoad %_arr_v4float_uint_3 %in_var_PN_DominantEdge2 - %147 = OpLoad %_arr_v4float_uint_3 %in_var_PN_DominantEdge3 - %148 = OpLoad %_arr_v3float_uint_3 %in_var_PN_DominantEdge4 - %149 = OpLoad %_arr_v3float_uint_3 %in_var_PN_DominantEdge5 - %150 = OpCompositeExtract %v4float %146 0 - %151 = OpCompositeExtract %v4float %147 0 - %152 = OpCompositeExtract %v3float %148 0 - %153 = OpCompositeExtract %v3float %149 0 - %154 = OpCompositeExtract %v4float %146 1 - %155 = OpCompositeExtract %v4float %147 1 - %156 = OpCompositeExtract %v3float %148 1 - %157 = OpCompositeExtract %v3float %149 1 - %158 = OpCompositeExtract %v4float %146 2 - %159 = OpCompositeExtract %v4float %147 2 - %160 = OpCompositeExtract %v3float %148 2 - %161 = OpCompositeExtract %v3float %149 2 - %162 = OpCompositeExtract %_arr_v4float_uint_3 %136 0 - %163 = OpCompositeExtract %float %137 0 - %164 = OpCompositeExtract %_arr_v4float_uint_3 %136 1 - %165 = OpCompositeExtract %float %137 1 - %166 = OpCompositeExtract %_arr_v4float_uint_3 %136 2 - %167 = OpCompositeExtract %float %137 2 - %168 = OpCompositeExtract %v4float %162 0 - %169 = OpCompositeExtract %v4float %162 1 - %170 = OpCompositeExtract %v4float %162 2 - %171 = OpCompositeExtract %v4float %164 0 - %172 = OpCompositeExtract %v4float %164 1 - %173 = OpCompositeExtract %v4float %164 2 - %174 = OpCompositeExtract %v4float %166 0 - %175 = OpCompositeExtract %v4float %166 1 - %176 = OpCompositeExtract %v4float %166 2 - %177 = OpLoad %v4float %in_var_PN_POSITION9 - %178 = OpLoad %v3float %gl_TessCoord - %179 = OpAccessChain %_ptr_Uniform_mat4v4float %View %int_0 - %180 = OpLoad %mat4v4float %179 - %181 = OpAccessChain %_ptr_Uniform_v3float %View %int_26 - %182 = OpLoad %v3float %181 - %183 = OpAccessChain %_ptr_Uniform_v3float %View %int_32 - %184 = OpLoad %v3float %183 - %185 = OpAccessChain %_ptr_Uniform_v4float %View %int_54 - %186 = OpLoad %v4float %185 - %187 = OpCompositeExtract %float %178 0 - %188 = OpCompositeExtract %float %178 1 - %189 = OpCompositeExtract %float %178 2 - %190 = OpFMul %float %187 %187 - %191 = OpFMul %float %188 %188 - %192 = OpFMul %float %189 %189 - %193 = OpFMul %float %190 %float_3 - %194 = OpFMul %float %191 %float_3 - %195 = OpFMul %float %192 %float_3 - %196 = OpCompositeConstruct %v4float %190 %190 %190 %190 - %197 = OpFMul %v4float %168 %196 - %198 = OpCompositeConstruct %v4float %187 %187 %187 %187 - %199 = OpFMul %v4float %197 %198 - %200 = OpCompositeConstruct %v4float %191 %191 %191 %191 - %201 = OpFMul %v4float %171 %200 - %202 = OpCompositeConstruct %v4float %188 %188 %188 %188 - %203 = OpFMul %v4float %201 %202 - %204 = OpFAdd %v4float %199 %203 - %205 = OpCompositeConstruct %v4float %192 %192 %192 %192 - %206 = OpFMul %v4float %174 %205 - %207 = OpCompositeConstruct %v4float %189 %189 %189 %189 - %208 = OpFMul %v4float %206 %207 - %209 = OpFAdd %v4float %204 %208 - %210 = OpCompositeConstruct %v4float %193 %193 %193 %193 - %211 = OpFMul %v4float %169 %210 - %212 = OpFMul %v4float %211 %202 - %213 = OpFAdd %v4float %209 %212 - %214 = OpCompositeConstruct %v4float %194 %194 %194 %194 - %215 = OpFMul %v4float %170 %214 - %216 = OpFMul %v4float %215 %198 - %217 = OpFAdd %v4float %213 %216 - %218 = OpFMul %v4float %172 %214 - %219 = OpFMul %v4float %218 %207 - %220 = OpFAdd %v4float %217 %219 - %221 = OpCompositeConstruct %v4float %195 %195 %195 %195 - %222 = OpFMul %v4float %173 %221 - %223 = OpFMul %v4float %222 %202 - %224 = OpFAdd %v4float %220 %223 - %225 = OpFMul %v4float %175 %221 - %226 = OpFMul %v4float %225 %198 - %227 = OpFAdd %v4float %224 %226 - %228 = OpFMul %v4float %176 %210 - %229 = OpFMul %v4float %228 %207 - %230 = OpFAdd %v4float %227 %229 - %231 = OpFMul %v4float %177 %67 - %232 = OpFMul %v4float %231 %207 - %233 = OpFMul %v4float %232 %198 - %234 = OpFMul %v4float %233 %202 - %235 = OpFAdd %v4float %230 %234 - %236 = OpVectorShuffle %v3float %130 %130 0 1 2 - %237 = OpCompositeConstruct %v3float %187 %187 %187 - %238 = OpFMul %v3float %236 %237 - %239 = OpVectorShuffle %v3float %132 %132 0 1 2 - %240 = OpCompositeConstruct %v3float %188 %188 %188 - %241 = OpFMul %v3float %239 %240 - %242 = OpFAdd %v3float %238 %241 - %243 = OpFMul %v4float %131 %198 - %244 = OpFMul %v4float %133 %202 - %245 = OpFAdd %v4float %243 %244 - %246 = OpFMul %v4float %122 %198 - %247 = OpFMul %v4float %124 %202 - %248 = OpFAdd %v4float %246 %247 - %249 = OpFMul %v4float %123 %198 - %250 = OpFMul %v4float %125 %202 - %251 = OpFAdd %v4float %249 %250 - %252 = OpVectorShuffle %v3float %242 %117 0 1 2 - %253 = OpVectorShuffle %v3float %134 %134 0 1 2 - %254 = OpCompositeConstruct %v3float %189 %189 %189 - %255 = OpFMul %v3float %253 %254 - %256 = OpFAdd %v3float %252 %255 - %257 = OpVectorShuffle %v4float %118 %256 4 5 6 3 - %258 = OpFMul %v4float %135 %207 - %259 = OpFAdd %v4float %245 %258 - %260 = OpFMul %v4float %126 %207 - %261 = OpFAdd %v4float %248 %260 - %262 = OpFMul %v4float %127 %207 - %263 = OpFAdd %v4float %251 %262 - %264 = OpVectorShuffle %v3float %235 %235 0 1 2 - %265 = OpVectorShuffle %v3float %256 %117 0 1 2 - %266 = OpVectorShuffle %v3float %259 %259 0 1 2 - %267 = OpExtInst %v3float %1 Cross %266 %265 - %268 = OpCompositeExtract %float %259 3 - %269 = OpCompositeConstruct %v3float %268 %268 %268 - %270 = OpFMul %v3float %267 %269 - %271 = OpCompositeConstruct %mat3v3float %265 %270 %266 - %272 = OpFAdd %v3float %264 %182 - %273 = OpCompositeExtract %float %259 0 - %274 = OpCompositeExtract %float %259 1 - %275 = OpCompositeExtract %float %259 2 - %276 = OpCompositeConstruct %v4float %273 %274 %275 %float_0 - %277 = OpFOrdEqual %bool %187 %float_0 - %278 = OpSelect %int %277 %int_1 %int_0 - %279 = OpConvertSToF %float %278 - %280 = OpFOrdEqual %bool %188 %float_0 - %281 = OpSelect %int %280 %int_1 %int_0 - %282 = OpConvertSToF %float %281 - %283 = OpFOrdEqual %bool %189 %float_0 - %284 = OpSelect %int %283 %int_1 %int_0 - %285 = OpConvertSToF %float %284 - %286 = OpFAdd %float %279 %282 - %287 = OpFAdd %float %286 %285 - %288 = OpFOrdEqual %bool %287 %float_2 - %289 = OpSelect %int %288 %int_1 %int_0 - %290 = OpConvertSToF %float %289 - %291 = OpFOrdEqual %bool %287 %float_1 - %292 = OpSelect %int %291 %int_1 %int_0 - %293 = OpConvertSToF %float %292 - %294 = OpFOrdEqual %bool %287 %float_0 - %295 = OpSelect %int %294 %int_1 %int_0 - %296 = OpConvertSToF %float %295 - %297 = OpFOrdEqual %bool %290 %float_1 - OpSelectionMerge %298 None - OpBranchConditional %297 %299 %300 - %300 = OpLabel - %301 = OpFOrdNotEqual %bool %293 %float_0 - OpSelectionMerge %302 None - OpBranchConditional %301 %303 %302 - %303 = OpLabel - %304 = OpCompositeConstruct %v4float %279 %279 %279 %279 - %305 = OpFMul %v4float %304 %150 - %306 = OpCompositeConstruct %v4float %282 %282 %282 %282 - %307 = OpFMul %v4float %306 %154 - %308 = OpFAdd %v4float %305 %307 - %309 = OpCompositeConstruct %v4float %285 %285 %285 %285 - %310 = OpFMul %v4float %309 %158 - %311 = OpFAdd %v4float %308 %310 - %312 = OpFMul %v4float %304 %151 - %313 = OpFMul %v4float %306 %155 - %314 = OpFAdd %v4float %312 %313 - %315 = OpFMul %v4float %309 %159 - %316 = OpFAdd %v4float %314 %315 - %317 = OpFMul %v4float %202 %311 - %318 = OpFMul %v4float %207 %316 - %319 = OpFAdd %v4float %317 %318 - %320 = OpFMul %v4float %304 %319 - %321 = OpFMul %v4float %207 %311 - %322 = OpFMul %v4float %198 %316 - %323 = OpFAdd %v4float %321 %322 - %324 = OpFMul %v4float %306 %323 - %325 = OpFAdd %v4float %320 %324 - %326 = OpFMul %v4float %198 %311 - %327 = OpFMul %v4float %202 %316 - %328 = OpFAdd %v4float %326 %327 - %329 = OpFMul %v4float %309 %328 - %330 = OpFAdd %v4float %325 %329 - %331 = OpCompositeConstruct %v3float %279 %279 %279 - %332 = OpFMul %v3float %331 %152 - %333 = OpCompositeConstruct %v3float %282 %282 %282 - %334 = OpFMul %v3float %333 %156 - %335 = OpFAdd %v3float %332 %334 - %336 = OpCompositeConstruct %v3float %285 %285 %285 - %337 = OpFMul %v3float %336 %160 - %338 = OpFAdd %v3float %335 %337 - %339 = OpFMul %v3float %331 %153 - %340 = OpFMul %v3float %333 %157 - %341 = OpFAdd %v3float %339 %340 - %342 = OpFMul %v3float %336 %161 - %343 = OpFAdd %v3float %341 %342 - %344 = OpFMul %v3float %240 %338 - %345 = OpFMul %v3float %254 %343 - %346 = OpFAdd %v3float %344 %345 - %347 = OpFMul %v3float %331 %346 - %348 = OpFMul %v3float %254 %338 - %349 = OpFMul %v3float %237 %343 - %350 = OpFAdd %v3float %348 %349 - %351 = OpFMul %v3float %333 %350 - %352 = OpFAdd %v3float %347 %351 - %353 = OpFMul %v3float %237 %338 - %354 = OpFMul %v3float %240 %343 - %355 = OpFAdd %v3float %353 %354 - %356 = OpFMul %v3float %336 %355 - %357 = OpFAdd %v3float %352 %356 - OpBranch %302 - %302 = OpLabel - %358 = OpPhi %v4float %276 %300 %330 %303 - %359 = OpPhi %v3float %265 %300 %357 %303 - OpBranch %298 - %299 = OpLabel - %360 = OpFAdd %float %282 %285 - %361 = OpFOrdEqual %bool %360 %float_2 - %362 = OpSelect %int %361 %int_1 %int_0 - %363 = OpConvertSToF %float %362 - %364 = OpFAdd %float %285 %279 - %365 = OpFOrdEqual %bool %364 %float_2 - %366 = OpSelect %int %365 %int_1 %int_0 - %367 = OpConvertSToF %float %366 - %368 = OpFOrdEqual %bool %286 %float_2 - %369 = OpSelect %int %368 %int_1 %int_0 - %370 = OpConvertSToF %float %369 - %371 = OpCompositeConstruct %v4float %363 %363 %363 %363 - %372 = OpFMul %v4float %371 %140 - %373 = OpCompositeConstruct %v4float %367 %367 %367 %367 - %374 = OpFMul %v4float %373 %142 - %375 = OpFAdd %v4float %372 %374 - %376 = OpCompositeConstruct %v4float %370 %370 %370 %370 - %377 = OpFMul %v4float %376 %144 - %378 = OpFAdd %v4float %375 %377 - %379 = OpCompositeConstruct %v3float %363 %363 %363 - %380 = OpFMul %v3float %379 %141 - %381 = OpCompositeConstruct %v3float %367 %367 %367 - %382 = OpFMul %v3float %381 %143 - %383 = OpFAdd %v3float %380 %382 - %384 = OpCompositeConstruct %v3float %370 %370 %370 - %385 = OpFMul %v3float %384 %145 - %386 = OpFAdd %v3float %383 %385 - OpBranch %298 - %298 = OpLabel - %387 = OpPhi %v4float %378 %299 %358 %302 - %388 = OpPhi %v3float %386 %299 %359 %302 - %389 = OpFOrdEqual %bool %296 %float_0 - OpSelectionMerge %390 None - OpBranchConditional %389 %391 %390 - %391 = OpLabel - %392 = OpVectorShuffle %v3float %387 %387 0 1 2 - %393 = OpExtInst %v3float %1 Cross %392 %388 - %394 = OpCompositeExtract %float %387 3 - %395 = OpCompositeConstruct %v3float %394 %394 %394 - %396 = OpFMul %v3float %393 %395 - %397 = OpCompositeConstruct %mat3v3float %388 %396 %392 - OpBranch %390 - %390 = OpLabel - %398 = OpPhi %mat3v3float %271 %298 %397 %391 - %399 = OpAccessChain %_ptr_Uniform_float %View %int_157 - %400 = OpLoad %float %399 - %401 = OpAccessChain %_ptr_Uniform_v4float %View %int_153 %int_0 - %402 = OpLoad %v4float %401 - %403 = OpVectorShuffle %v3float %402 %402 0 1 2 - %404 = OpVectorShuffle %v3float %402 %402 3 3 3 - %405 = OpFSub %v3float %272 %403 - %406 = OpFAdd %v3float %405 %404 - %407 = OpExtInst %v3float %1 FMax %406 %81 - %408 = OpFAdd %v3float %403 %404 - %409 = OpFSub %v3float %408 %272 - %410 = OpExtInst %v3float %1 FMax %409 %81 - %411 = OpExtInst %v3float %1 FMin %407 %410 - %412 = OpCompositeExtract %float %411 0 - %413 = OpCompositeExtract %float %411 1 - %414 = OpCompositeExtract %float %411 2 - %415 = OpExtInst %float %1 FMin %413 %414 - %416 = OpExtInst %float %1 FMin %412 %415 - %417 = OpAccessChain %_ptr_Uniform_float %View %int_153 %int_0 %int_3 - %418 = OpLoad %float %417 - %419 = OpAccessChain %_ptr_Uniform_float %View %int_156 - %420 = OpLoad %float %419 - %421 = OpFMul %float %418 %420 - %422 = OpFOrdGreaterThan %bool %416 %421 - OpSelectionMerge %423 DontFlatten - OpBranchConditional %422 %424 %425 - %425 = OpLabel - %426 = OpAccessChain %_ptr_Uniform_v4float %View %int_153 %int_1 - %427 = OpLoad %v4float %426 - %428 = OpVectorShuffle %v3float %427 %427 0 1 2 - %429 = OpVectorShuffle %v3float %427 %427 3 3 3 - %430 = OpFSub %v3float %272 %428 - %431 = OpFAdd %v3float %430 %429 - %432 = OpExtInst %v3float %1 FMax %431 %81 - %433 = OpFAdd %v3float %428 %429 - %434 = OpFSub %v3float %433 %272 - %435 = OpExtInst %v3float %1 FMax %434 %81 - %436 = OpExtInst %v3float %1 FMin %432 %435 - %437 = OpCompositeExtract %float %436 0 - %438 = OpCompositeExtract %float %436 1 - %439 = OpCompositeExtract %float %436 2 - %440 = OpExtInst %float %1 FMin %438 %439 - %441 = OpExtInst %float %1 FMin %437 %440 - %442 = OpAccessChain %_ptr_Uniform_float %View %int_153 %int_1 %int_3 - %443 = OpLoad %float %442 - %444 = OpFMul %float %443 %420 - %445 = OpFOrdGreaterThan %bool %441 %444 - OpSelectionMerge %446 DontFlatten - OpBranchConditional %445 %447 %448 - %448 = OpLabel - %449 = OpAccessChain %_ptr_Uniform_v4float %View %int_153 %int_2 - %450 = OpLoad %v4float %449 - %451 = OpVectorShuffle %v3float %450 %450 0 1 2 - %452 = OpVectorShuffle %v3float %450 %450 3 3 3 - %453 = OpFSub %v3float %272 %451 - %454 = OpFAdd %v3float %453 %452 - %455 = OpExtInst %v3float %1 FMax %454 %81 - %456 = OpFAdd %v3float %451 %452 - %457 = OpFSub %v3float %456 %272 - %458 = OpExtInst %v3float %1 FMax %457 %81 - %459 = OpExtInst %v3float %1 FMin %455 %458 - %460 = OpCompositeExtract %float %459 0 - %461 = OpCompositeExtract %float %459 1 - %462 = OpCompositeExtract %float %459 2 - %463 = OpExtInst %float %1 FMin %461 %462 - %464 = OpExtInst %float %1 FMin %460 %463 - %465 = OpAccessChain %_ptr_Uniform_v4float %View %int_153 %int_3 - %466 = OpLoad %v4float %465 - %467 = OpVectorShuffle %v3float %466 %466 0 1 2 - %468 = OpVectorShuffle %v3float %466 %466 3 3 3 - %469 = OpFSub %v3float %272 %467 - %470 = OpFAdd %v3float %469 %468 - %471 = OpExtInst %v3float %1 FMax %470 %81 - %472 = OpFAdd %v3float %467 %468 - %473 = OpFSub %v3float %472 %272 - %474 = OpExtInst %v3float %1 FMax %473 %81 - %475 = OpExtInst %v3float %1 FMin %471 %474 - %476 = OpCompositeExtract %float %475 0 - %477 = OpCompositeExtract %float %475 1 - %478 = OpCompositeExtract %float %475 2 - %479 = OpExtInst %float %1 FMin %477 %478 - %480 = OpExtInst %float %1 FMin %476 %479 - %481 = OpAccessChain %_ptr_Uniform_float %View %int_153 %int_2 %int_3 - %482 = OpLoad %float %481 - %483 = OpFMul %float %482 %420 - %484 = OpFOrdGreaterThan %bool %464 %483 - OpSelectionMerge %485 DontFlatten - OpBranchConditional %484 %486 %487 - %487 = OpLabel - %488 = OpAccessChain %_ptr_Uniform_float %View %int_153 %int_3 %int_3 - %489 = OpLoad %float %488 - %490 = OpFMul %float %489 %420 - %491 = OpFOrdGreaterThan %bool %480 %490 - OpSelectionMerge %492 None - OpBranchConditional %491 %493 %492 - %493 = OpLabel - %494 = OpFMul %float %480 %float_10 - %495 = OpAccessChain %_ptr_Uniform_float %View %int_154 %int_3 %int_3 - %496 = OpLoad %float %495 - %497 = OpFMul %float %494 %496 - %498 = OpExtInst %float %1 FClamp %497 %float_0 %float_1 - %499 = OpAccessChain %_ptr_Uniform_v4float %View %int_154 %uint_3 - %500 = OpLoad %v4float %499 - %501 = OpVectorShuffle %v3float %500 %500 3 3 3 - %502 = OpFMul %v3float %272 %501 - %503 = OpVectorShuffle %v3float %500 %500 0 1 2 - %504 = OpFAdd %v3float %502 %503 - %505 = OpLoad %type_3d_image %View_GlobalDistanceFieldTexture3 - %506 = OpLoad %type_sampler %View_GlobalDistanceFieldSampler0 - %507 = OpSampledImage %type_sampled_image %505 %506 - %508 = OpImageSampleExplicitLod %v4float %507 %504 Lod %float_0 - %509 = OpCompositeExtract %float %508 0 - %510 = OpExtInst %float %1 FMix %400 %509 %498 - OpBranch %492 - %492 = OpLabel - %511 = OpPhi %float %400 %487 %510 %493 - OpBranch %485 - %486 = OpLabel - %512 = OpAccessChain %_ptr_Uniform_v4float %View %int_154 %uint_2 - %513 = OpLoad %v4float %512 - %514 = OpVectorShuffle %v3float %513 %513 3 3 3 - %515 = OpFMul %v3float %272 %514 - %516 = OpVectorShuffle %v3float %513 %513 0 1 2 - %517 = OpFAdd %v3float %515 %516 - %518 = OpLoad %type_3d_image %View_GlobalDistanceFieldTexture2 - %519 = OpLoad %type_sampler %View_GlobalDistanceFieldSampler0 - %520 = OpSampledImage %type_sampled_image %518 %519 - %521 = OpImageSampleExplicitLod %v4float %520 %517 Lod %float_0 - %522 = OpCompositeExtract %float %521 0 - OpBranch %485 - %485 = OpLabel - %523 = OpPhi %float %522 %486 %511 %492 - OpBranch %446 - %447 = OpLabel - %524 = OpAccessChain %_ptr_Uniform_v4float %View %int_154 %uint_1 - %525 = OpLoad %v4float %524 - %526 = OpVectorShuffle %v3float %525 %525 3 3 3 - %527 = OpFMul %v3float %272 %526 - %528 = OpVectorShuffle %v3float %525 %525 0 1 2 - %529 = OpFAdd %v3float %527 %528 - %530 = OpLoad %type_3d_image %View_GlobalDistanceFieldTexture1 - %531 = OpLoad %type_sampler %View_GlobalDistanceFieldSampler0 - %532 = OpSampledImage %type_sampled_image %530 %531 - %533 = OpImageSampleExplicitLod %v4float %532 %529 Lod %float_0 - %534 = OpCompositeExtract %float %533 0 - OpBranch %446 - %446 = OpLabel - %535 = OpPhi %float %534 %447 %523 %485 - OpBranch %423 - %424 = OpLabel - %536 = OpAccessChain %_ptr_Uniform_v4float %View %int_154 %uint_0 - %537 = OpLoad %v4float %536 - %538 = OpVectorShuffle %v3float %537 %537 3 3 3 - %539 = OpFMul %v3float %272 %538 - %540 = OpVectorShuffle %v3float %537 %537 0 1 2 - %541 = OpFAdd %v3float %539 %540 - %542 = OpLoad %type_3d_image %View_GlobalDistanceFieldTexture0 - %543 = OpLoad %type_sampler %View_GlobalDistanceFieldSampler0 - %544 = OpSampledImage %type_sampled_image %542 %543 - %545 = OpImageSampleExplicitLod %v4float %544 %541 Lod %float_0 - %546 = OpCompositeExtract %float %545 0 - OpBranch %423 - %423 = OpLabel - %547 = OpPhi %float %546 %424 %535 %446 - %548 = OpAccessChain %_ptr_Uniform_float %Material %int_1 %int_0 %int_2 - %549 = OpLoad %float %548 - %550 = OpFAdd %float %547 %549 - %551 = OpExtInst %float %1 FMin %550 %float_0 - %552 = OpAccessChain %_ptr_Uniform_float %Material %int_1 %int_0 %int_3 - %553 = OpLoad %float %552 - %554 = OpFMul %float %551 %553 - %555 = OpCompositeExtract %v3float %398 2 - %556 = OpCompositeConstruct %v3float %554 %554 %554 - %557 = OpFMul %v3float %555 %556 - %558 = OpFMul %float %163 %187 - %559 = OpFMul %float %165 %188 - %560 = OpFAdd %float %558 %559 - %561 = OpFMul %float %167 %189 - %562 = OpFAdd %float %560 %561 - %563 = OpCompositeConstruct %v3float %562 %562 %562 - %564 = OpFMul %v3float %557 %563 - %565 = OpFAdd %v3float %264 %564 - %566 = OpVectorShuffle %v4float %235 %565 4 5 6 3 - %567 = OpVectorShuffle %v3float %565 %117 0 1 2 - %568 = OpFSub %v3float %567 %184 - %569 = OpCompositeExtract %float %568 0 - %570 = OpCompositeExtract %float %568 1 - %571 = OpCompositeExtract %float %568 2 - %572 = OpCompositeConstruct %v4float %569 %570 %571 %float_1 - %573 = OpDot %float %186 %572 - %574 = OpMatrixTimesVector %v4float %180 %566 - %575 = OpCompositeExtract %float %574 3 - %576 = OpFMul %float %float_0_00100000005 %575 - %577 = OpCompositeExtract %float %574 2 - %578 = OpFAdd %float %577 %576 - %579 = OpCompositeInsert %v4float %578 %574 2 - OpStore %gl_Position %579 - OpStore %out_var_TEXCOORD6 %261 - OpStore %out_var_TEXCOORD7 %263 - OpStore %out_var_TEXCOORD10_centroid %257 - OpStore %out_var_TEXCOORD11_centroid %259 - %580 = OpAccessChain %_ptr_Output_float %gl_ClipDistance %uint_0 - OpStore %580 %573 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-ue4/asm/tese/ds-patch-inputs.asm.tese b/third_party/spirv-cross/shaders-ue4/asm/tese/ds-patch-inputs.asm.tese deleted file mode 100644 index e792c7e116..0000000000 --- a/third_party/spirv-cross/shaders-ue4/asm/tese/ds-patch-inputs.asm.tese +++ /dev/null @@ -1,547 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 236 -; Schema: 0 - OpCapability Tessellation - OpCapability SampledBuffer - OpExtension "SPV_GOOGLE_hlsl_functionality1" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationEvaluation %MainDomain "main" %in_var_TEXCOORD10_centroid %in_var_TEXCOORD11_centroid %in_var_VS_to_DS_Position %in_var_VS_To_DS_VertexID %in_var_PN_POSITION %in_var_PN_DisplacementScales %in_var_PN_TessellationMultiplier %in_var_PN_WorldDisplacementMultiplier %in_var_PN_DominantVertex %in_var_PN_DominantVertex1 %in_var_PN_DominantVertex2 %in_var_PN_DominantEdge %in_var_PN_DominantEdge1 %in_var_PN_DominantEdge2 %in_var_PN_DominantEdge3 %in_var_PN_DominantEdge4 %in_var_PN_DominantEdge5 %gl_TessLevelOuter %gl_TessLevelInner %in_var_PN_POSITION9 %gl_TessCoord %out_var_TEXCOORD10_centroid %out_var_TEXCOORD11_centroid %out_var_TEXCOORD6 %out_var_TEXCOORD7 %gl_Position - OpExecutionMode %MainDomain Triangles - OpSource HLSL 600 - OpName %type_ShadowDepthPass "type.ShadowDepthPass" - OpMemberName %type_ShadowDepthPass 0 "PrePadding_ShadowDepthPass_LPV_0" - OpMemberName %type_ShadowDepthPass 1 "PrePadding_ShadowDepthPass_LPV_4" - OpMemberName %type_ShadowDepthPass 2 "PrePadding_ShadowDepthPass_LPV_8" - OpMemberName %type_ShadowDepthPass 3 "PrePadding_ShadowDepthPass_LPV_12" - OpMemberName %type_ShadowDepthPass 4 "PrePadding_ShadowDepthPass_LPV_16" - OpMemberName %type_ShadowDepthPass 5 "PrePadding_ShadowDepthPass_LPV_20" - OpMemberName %type_ShadowDepthPass 6 "PrePadding_ShadowDepthPass_LPV_24" - OpMemberName %type_ShadowDepthPass 7 "PrePadding_ShadowDepthPass_LPV_28" - OpMemberName %type_ShadowDepthPass 8 "PrePadding_ShadowDepthPass_LPV_32" - OpMemberName %type_ShadowDepthPass 9 "PrePadding_ShadowDepthPass_LPV_36" - OpMemberName %type_ShadowDepthPass 10 "PrePadding_ShadowDepthPass_LPV_40" - OpMemberName %type_ShadowDepthPass 11 "PrePadding_ShadowDepthPass_LPV_44" - OpMemberName %type_ShadowDepthPass 12 "PrePadding_ShadowDepthPass_LPV_48" - OpMemberName %type_ShadowDepthPass 13 "PrePadding_ShadowDepthPass_LPV_52" - OpMemberName %type_ShadowDepthPass 14 "PrePadding_ShadowDepthPass_LPV_56" - OpMemberName %type_ShadowDepthPass 15 "PrePadding_ShadowDepthPass_LPV_60" - OpMemberName %type_ShadowDepthPass 16 "PrePadding_ShadowDepthPass_LPV_64" - OpMemberName %type_ShadowDepthPass 17 "PrePadding_ShadowDepthPass_LPV_68" - OpMemberName %type_ShadowDepthPass 18 "PrePadding_ShadowDepthPass_LPV_72" - OpMemberName %type_ShadowDepthPass 19 "PrePadding_ShadowDepthPass_LPV_76" - OpMemberName %type_ShadowDepthPass 20 "PrePadding_ShadowDepthPass_LPV_80" - OpMemberName %type_ShadowDepthPass 21 "PrePadding_ShadowDepthPass_LPV_84" - OpMemberName %type_ShadowDepthPass 22 "PrePadding_ShadowDepthPass_LPV_88" - OpMemberName %type_ShadowDepthPass 23 "PrePadding_ShadowDepthPass_LPV_92" - OpMemberName %type_ShadowDepthPass 24 "PrePadding_ShadowDepthPass_LPV_96" - OpMemberName %type_ShadowDepthPass 25 "PrePadding_ShadowDepthPass_LPV_100" - OpMemberName %type_ShadowDepthPass 26 "PrePadding_ShadowDepthPass_LPV_104" - OpMemberName %type_ShadowDepthPass 27 "PrePadding_ShadowDepthPass_LPV_108" - OpMemberName %type_ShadowDepthPass 28 "PrePadding_ShadowDepthPass_LPV_112" - OpMemberName %type_ShadowDepthPass 29 "PrePadding_ShadowDepthPass_LPV_116" - OpMemberName %type_ShadowDepthPass 30 "PrePadding_ShadowDepthPass_LPV_120" - OpMemberName %type_ShadowDepthPass 31 "PrePadding_ShadowDepthPass_LPV_124" - OpMemberName %type_ShadowDepthPass 32 "PrePadding_ShadowDepthPass_LPV_128" - OpMemberName %type_ShadowDepthPass 33 "PrePadding_ShadowDepthPass_LPV_132" - OpMemberName %type_ShadowDepthPass 34 "PrePadding_ShadowDepthPass_LPV_136" - OpMemberName %type_ShadowDepthPass 35 "PrePadding_ShadowDepthPass_LPV_140" - OpMemberName %type_ShadowDepthPass 36 "PrePadding_ShadowDepthPass_LPV_144" - OpMemberName %type_ShadowDepthPass 37 "PrePadding_ShadowDepthPass_LPV_148" - OpMemberName %type_ShadowDepthPass 38 "PrePadding_ShadowDepthPass_LPV_152" - OpMemberName %type_ShadowDepthPass 39 "PrePadding_ShadowDepthPass_LPV_156" - OpMemberName %type_ShadowDepthPass 40 "PrePadding_ShadowDepthPass_LPV_160" - OpMemberName %type_ShadowDepthPass 41 "PrePadding_ShadowDepthPass_LPV_164" - OpMemberName %type_ShadowDepthPass 42 "PrePadding_ShadowDepthPass_LPV_168" - OpMemberName %type_ShadowDepthPass 43 "PrePadding_ShadowDepthPass_LPV_172" - OpMemberName %type_ShadowDepthPass 44 "PrePadding_ShadowDepthPass_LPV_176" - OpMemberName %type_ShadowDepthPass 45 "PrePadding_ShadowDepthPass_LPV_180" - OpMemberName %type_ShadowDepthPass 46 "PrePadding_ShadowDepthPass_LPV_184" - OpMemberName %type_ShadowDepthPass 47 "PrePadding_ShadowDepthPass_LPV_188" - OpMemberName %type_ShadowDepthPass 48 "PrePadding_ShadowDepthPass_LPV_192" - OpMemberName %type_ShadowDepthPass 49 "PrePadding_ShadowDepthPass_LPV_196" - OpMemberName %type_ShadowDepthPass 50 "PrePadding_ShadowDepthPass_LPV_200" - OpMemberName %type_ShadowDepthPass 51 "PrePadding_ShadowDepthPass_LPV_204" - OpMemberName %type_ShadowDepthPass 52 "PrePadding_ShadowDepthPass_LPV_208" - OpMemberName %type_ShadowDepthPass 53 "PrePadding_ShadowDepthPass_LPV_212" - OpMemberName %type_ShadowDepthPass 54 "PrePadding_ShadowDepthPass_LPV_216" - OpMemberName %type_ShadowDepthPass 55 "PrePadding_ShadowDepthPass_LPV_220" - OpMemberName %type_ShadowDepthPass 56 "PrePadding_ShadowDepthPass_LPV_224" - OpMemberName %type_ShadowDepthPass 57 "PrePadding_ShadowDepthPass_LPV_228" - OpMemberName %type_ShadowDepthPass 58 "PrePadding_ShadowDepthPass_LPV_232" - OpMemberName %type_ShadowDepthPass 59 "PrePadding_ShadowDepthPass_LPV_236" - OpMemberName %type_ShadowDepthPass 60 "PrePadding_ShadowDepthPass_LPV_240" - OpMemberName %type_ShadowDepthPass 61 "PrePadding_ShadowDepthPass_LPV_244" - OpMemberName %type_ShadowDepthPass 62 "PrePadding_ShadowDepthPass_LPV_248" - OpMemberName %type_ShadowDepthPass 63 "PrePadding_ShadowDepthPass_LPV_252" - OpMemberName %type_ShadowDepthPass 64 "PrePadding_ShadowDepthPass_LPV_256" - OpMemberName %type_ShadowDepthPass 65 "PrePadding_ShadowDepthPass_LPV_260" - OpMemberName %type_ShadowDepthPass 66 "PrePadding_ShadowDepthPass_LPV_264" - OpMemberName %type_ShadowDepthPass 67 "PrePadding_ShadowDepthPass_LPV_268" - OpMemberName %type_ShadowDepthPass 68 "ShadowDepthPass_LPV_mRsmToWorld" - OpMemberName %type_ShadowDepthPass 69 "ShadowDepthPass_LPV_mLightColour" - OpMemberName %type_ShadowDepthPass 70 "ShadowDepthPass_LPV_GeometryVolumeCaptureLightDirection" - OpMemberName %type_ShadowDepthPass 71 "ShadowDepthPass_LPV_mEyePos" - OpMemberName %type_ShadowDepthPass 72 "ShadowDepthPass_LPV_mOldGridOffset" - OpMemberName %type_ShadowDepthPass 73 "PrePadding_ShadowDepthPass_LPV_396" - OpMemberName %type_ShadowDepthPass 74 "ShadowDepthPass_LPV_mLpvGridOffset" - OpMemberName %type_ShadowDepthPass 75 "ShadowDepthPass_LPV_ClearMultiplier" - OpMemberName %type_ShadowDepthPass 76 "ShadowDepthPass_LPV_LpvScale" - OpMemberName %type_ShadowDepthPass 77 "ShadowDepthPass_LPV_OneOverLpvScale" - OpMemberName %type_ShadowDepthPass 78 "ShadowDepthPass_LPV_DirectionalOcclusionIntensity" - OpMemberName %type_ShadowDepthPass 79 "ShadowDepthPass_LPV_DirectionalOcclusionRadius" - OpMemberName %type_ShadowDepthPass 80 "ShadowDepthPass_LPV_RsmAreaIntensityMultiplier" - OpMemberName %type_ShadowDepthPass 81 "ShadowDepthPass_LPV_RsmPixelToTexcoordMultiplier" - OpMemberName %type_ShadowDepthPass 82 "ShadowDepthPass_LPV_SecondaryOcclusionStrength" - OpMemberName %type_ShadowDepthPass 83 "ShadowDepthPass_LPV_SecondaryBounceStrength" - OpMemberName %type_ShadowDepthPass 84 "ShadowDepthPass_LPV_VplInjectionBias" - OpMemberName %type_ShadowDepthPass 85 "ShadowDepthPass_LPV_GeometryVolumeInjectionBias" - OpMemberName %type_ShadowDepthPass 86 "ShadowDepthPass_LPV_EmissiveInjectionMultiplier" - OpMemberName %type_ShadowDepthPass 87 "ShadowDepthPass_LPV_PropagationIndex" - OpMemberName %type_ShadowDepthPass 88 "ShadowDepthPass_ProjectionMatrix" - OpMemberName %type_ShadowDepthPass 89 "ShadowDepthPass_ViewMatrix" - OpMemberName %type_ShadowDepthPass 90 "ShadowDepthPass_ShadowParams" - OpMemberName %type_ShadowDepthPass 91 "ShadowDepthPass_bClampToNearPlane" - OpMemberName %type_ShadowDepthPass 92 "PrePadding_ShadowDepthPass_612" - OpMemberName %type_ShadowDepthPass 93 "PrePadding_ShadowDepthPass_616" - OpMemberName %type_ShadowDepthPass 94 "PrePadding_ShadowDepthPass_620" - OpMemberName %type_ShadowDepthPass 95 "ShadowDepthPass_ShadowViewProjectionMatrices" - OpMemberName %type_ShadowDepthPass 96 "ShadowDepthPass_ShadowViewMatrices" - OpName %ShadowDepthPass "ShadowDepthPass" - OpName %in_var_TEXCOORD10_centroid "in.var.TEXCOORD10_centroid" - OpName %in_var_TEXCOORD11_centroid "in.var.TEXCOORD11_centroid" - OpName %in_var_VS_to_DS_Position "in.var.VS_to_DS_Position" - OpName %in_var_VS_To_DS_VertexID "in.var.VS_To_DS_VertexID" - OpName %in_var_PN_POSITION "in.var.PN_POSITION" - OpName %in_var_PN_DisplacementScales "in.var.PN_DisplacementScales" - OpName %in_var_PN_TessellationMultiplier "in.var.PN_TessellationMultiplier" - OpName %in_var_PN_WorldDisplacementMultiplier "in.var.PN_WorldDisplacementMultiplier" - OpName %in_var_PN_DominantVertex "in.var.PN_DominantVertex" - OpName %in_var_PN_DominantVertex1 "in.var.PN_DominantVertex1" - OpName %in_var_PN_DominantVertex2 "in.var.PN_DominantVertex2" - OpName %in_var_PN_DominantEdge "in.var.PN_DominantEdge" - OpName %in_var_PN_DominantEdge1 "in.var.PN_DominantEdge1" - OpName %in_var_PN_DominantEdge2 "in.var.PN_DominantEdge2" - OpName %in_var_PN_DominantEdge3 "in.var.PN_DominantEdge3" - OpName %in_var_PN_DominantEdge4 "in.var.PN_DominantEdge4" - OpName %in_var_PN_DominantEdge5 "in.var.PN_DominantEdge5" - OpName %in_var_PN_POSITION9 "in.var.PN_POSITION9" - OpName %out_var_TEXCOORD10_centroid "out.var.TEXCOORD10_centroid" - OpName %out_var_TEXCOORD11_centroid "out.var.TEXCOORD11_centroid" - OpName %out_var_TEXCOORD6 "out.var.TEXCOORD6" - OpName %out_var_TEXCOORD7 "out.var.TEXCOORD7" - OpName %MainDomain "MainDomain" - OpDecorateString %in_var_TEXCOORD10_centroid UserSemantic "TEXCOORD10_centroid" - OpDecorateString %in_var_TEXCOORD11_centroid UserSemantic "TEXCOORD11_centroid" - OpDecorateString %in_var_VS_to_DS_Position UserSemantic "VS_to_DS_Position" - OpDecorateString %in_var_VS_To_DS_VertexID UserSemantic "VS_To_DS_VertexID" - OpDecorateString %in_var_PN_POSITION UserSemantic "PN_POSITION" - OpDecorateString %in_var_PN_DisplacementScales UserSemantic "PN_DisplacementScales" - OpDecorateString %in_var_PN_TessellationMultiplier UserSemantic "PN_TessellationMultiplier" - OpDecorateString %in_var_PN_WorldDisplacementMultiplier UserSemantic "PN_WorldDisplacementMultiplier" - OpDecorateString %in_var_PN_DominantVertex UserSemantic "PN_DominantVertex" - OpDecorateString %in_var_PN_DominantVertex1 UserSemantic "PN_DominantVertex" - OpDecorateString %in_var_PN_DominantVertex2 UserSemantic "PN_DominantVertex" - OpDecorateString %in_var_PN_DominantEdge UserSemantic "PN_DominantEdge" - OpDecorateString %in_var_PN_DominantEdge1 UserSemantic "PN_DominantEdge" - OpDecorateString %in_var_PN_DominantEdge2 UserSemantic "PN_DominantEdge" - OpDecorateString %in_var_PN_DominantEdge3 UserSemantic "PN_DominantEdge" - OpDecorateString %in_var_PN_DominantEdge4 UserSemantic "PN_DominantEdge" - OpDecorateString %in_var_PN_DominantEdge5 UserSemantic "PN_DominantEdge" - OpDecorate %gl_TessLevelOuter BuiltIn TessLevelOuter - OpDecorateString %gl_TessLevelOuter UserSemantic "SV_TessFactor" - OpDecorate %gl_TessLevelOuter Patch - OpDecorate %gl_TessLevelInner BuiltIn TessLevelInner - OpDecorateString %gl_TessLevelInner UserSemantic "SV_InsideTessFactor" - OpDecorate %gl_TessLevelInner Patch - OpDecorateString %in_var_PN_POSITION9 UserSemantic "PN_POSITION9" - OpDecorate %in_var_PN_POSITION9 Patch - OpDecorate %gl_TessCoord BuiltIn TessCoord - OpDecorateString %gl_TessCoord UserSemantic "SV_DomainLocation" - OpDecorate %gl_TessCoord Patch - OpDecorateString %out_var_TEXCOORD10_centroid UserSemantic "TEXCOORD10_centroid" - OpDecorateString %out_var_TEXCOORD11_centroid UserSemantic "TEXCOORD11_centroid" - OpDecorateString %out_var_TEXCOORD6 UserSemantic "TEXCOORD6" - OpDecorateString %out_var_TEXCOORD7 UserSemantic "TEXCOORD7" - OpDecorate %gl_Position BuiltIn Position - OpDecorateString %gl_Position UserSemantic "SV_POSITION" - OpDecorate %in_var_PN_DisplacementScales Location 0 - OpDecorate %in_var_PN_DominantEdge Location 1 - OpDecorate %in_var_PN_DominantEdge1 Location 2 - OpDecorate %in_var_PN_DominantEdge2 Location 3 - OpDecorate %in_var_PN_DominantEdge3 Location 4 - OpDecorate %in_var_PN_DominantEdge4 Location 5 - OpDecorate %in_var_PN_DominantEdge5 Location 6 - OpDecorate %in_var_PN_DominantVertex Location 7 - OpDecorate %in_var_PN_DominantVertex1 Location 8 - OpDecorate %in_var_PN_DominantVertex2 Location 9 - OpDecorate %in_var_PN_POSITION Location 10 - OpDecorate %in_var_PN_POSITION9 Location 13 - OpDecorate %in_var_PN_TessellationMultiplier Location 14 - OpDecorate %in_var_PN_WorldDisplacementMultiplier Location 15 - OpDecorate %in_var_TEXCOORD10_centroid Location 16 - OpDecorate %in_var_TEXCOORD11_centroid Location 17 - OpDecorate %in_var_VS_To_DS_VertexID Location 18 - OpDecorate %in_var_VS_to_DS_Position Location 19 - OpDecorate %out_var_TEXCOORD10_centroid Location 0 - OpDecorate %out_var_TEXCOORD11_centroid Location 1 - OpDecorate %out_var_TEXCOORD6 Location 2 - OpDecorate %out_var_TEXCOORD7 Location 3 - OpDecorate %ShadowDepthPass DescriptorSet 0 - OpDecorate %ShadowDepthPass Binding 0 - OpDecorate %_arr_mat4v4float_uint_6 ArrayStride 64 - OpMemberDecorate %type_ShadowDepthPass 0 Offset 0 - OpMemberDecorate %type_ShadowDepthPass 1 Offset 4 - OpMemberDecorate %type_ShadowDepthPass 2 Offset 8 - OpMemberDecorate %type_ShadowDepthPass 3 Offset 12 - OpMemberDecorate %type_ShadowDepthPass 4 Offset 16 - OpMemberDecorate %type_ShadowDepthPass 5 Offset 20 - OpMemberDecorate %type_ShadowDepthPass 6 Offset 24 - OpMemberDecorate %type_ShadowDepthPass 7 Offset 28 - OpMemberDecorate %type_ShadowDepthPass 8 Offset 32 - OpMemberDecorate %type_ShadowDepthPass 9 Offset 36 - OpMemberDecorate %type_ShadowDepthPass 10 Offset 40 - OpMemberDecorate %type_ShadowDepthPass 11 Offset 44 - OpMemberDecorate %type_ShadowDepthPass 12 Offset 48 - OpMemberDecorate %type_ShadowDepthPass 13 Offset 52 - OpMemberDecorate %type_ShadowDepthPass 14 Offset 56 - OpMemberDecorate %type_ShadowDepthPass 15 Offset 60 - OpMemberDecorate %type_ShadowDepthPass 16 Offset 64 - OpMemberDecorate %type_ShadowDepthPass 17 Offset 68 - OpMemberDecorate %type_ShadowDepthPass 18 Offset 72 - OpMemberDecorate %type_ShadowDepthPass 19 Offset 76 - OpMemberDecorate %type_ShadowDepthPass 20 Offset 80 - OpMemberDecorate %type_ShadowDepthPass 21 Offset 84 - OpMemberDecorate %type_ShadowDepthPass 22 Offset 88 - OpMemberDecorate %type_ShadowDepthPass 23 Offset 92 - OpMemberDecorate %type_ShadowDepthPass 24 Offset 96 - OpMemberDecorate %type_ShadowDepthPass 25 Offset 100 - OpMemberDecorate %type_ShadowDepthPass 26 Offset 104 - OpMemberDecorate %type_ShadowDepthPass 27 Offset 108 - OpMemberDecorate %type_ShadowDepthPass 28 Offset 112 - OpMemberDecorate %type_ShadowDepthPass 29 Offset 116 - OpMemberDecorate %type_ShadowDepthPass 30 Offset 120 - OpMemberDecorate %type_ShadowDepthPass 31 Offset 124 - OpMemberDecorate %type_ShadowDepthPass 32 Offset 128 - OpMemberDecorate %type_ShadowDepthPass 33 Offset 132 - OpMemberDecorate %type_ShadowDepthPass 34 Offset 136 - OpMemberDecorate %type_ShadowDepthPass 35 Offset 140 - OpMemberDecorate %type_ShadowDepthPass 36 Offset 144 - OpMemberDecorate %type_ShadowDepthPass 37 Offset 148 - OpMemberDecorate %type_ShadowDepthPass 38 Offset 152 - OpMemberDecorate %type_ShadowDepthPass 39 Offset 156 - OpMemberDecorate %type_ShadowDepthPass 40 Offset 160 - OpMemberDecorate %type_ShadowDepthPass 41 Offset 164 - OpMemberDecorate %type_ShadowDepthPass 42 Offset 168 - OpMemberDecorate %type_ShadowDepthPass 43 Offset 172 - OpMemberDecorate %type_ShadowDepthPass 44 Offset 176 - OpMemberDecorate %type_ShadowDepthPass 45 Offset 180 - OpMemberDecorate %type_ShadowDepthPass 46 Offset 184 - OpMemberDecorate %type_ShadowDepthPass 47 Offset 188 - OpMemberDecorate %type_ShadowDepthPass 48 Offset 192 - OpMemberDecorate %type_ShadowDepthPass 49 Offset 196 - OpMemberDecorate %type_ShadowDepthPass 50 Offset 200 - OpMemberDecorate %type_ShadowDepthPass 51 Offset 204 - OpMemberDecorate %type_ShadowDepthPass 52 Offset 208 - OpMemberDecorate %type_ShadowDepthPass 53 Offset 212 - OpMemberDecorate %type_ShadowDepthPass 54 Offset 216 - OpMemberDecorate %type_ShadowDepthPass 55 Offset 220 - OpMemberDecorate %type_ShadowDepthPass 56 Offset 224 - OpMemberDecorate %type_ShadowDepthPass 57 Offset 228 - OpMemberDecorate %type_ShadowDepthPass 58 Offset 232 - OpMemberDecorate %type_ShadowDepthPass 59 Offset 236 - OpMemberDecorate %type_ShadowDepthPass 60 Offset 240 - OpMemberDecorate %type_ShadowDepthPass 61 Offset 244 - OpMemberDecorate %type_ShadowDepthPass 62 Offset 248 - OpMemberDecorate %type_ShadowDepthPass 63 Offset 252 - OpMemberDecorate %type_ShadowDepthPass 64 Offset 256 - OpMemberDecorate %type_ShadowDepthPass 65 Offset 260 - OpMemberDecorate %type_ShadowDepthPass 66 Offset 264 - OpMemberDecorate %type_ShadowDepthPass 67 Offset 268 - OpMemberDecorate %type_ShadowDepthPass 68 Offset 272 - OpMemberDecorate %type_ShadowDepthPass 68 MatrixStride 16 - OpMemberDecorate %type_ShadowDepthPass 68 ColMajor - OpMemberDecorate %type_ShadowDepthPass 69 Offset 336 - OpMemberDecorate %type_ShadowDepthPass 70 Offset 352 - OpMemberDecorate %type_ShadowDepthPass 71 Offset 368 - OpMemberDecorate %type_ShadowDepthPass 72 Offset 384 - OpMemberDecorate %type_ShadowDepthPass 73 Offset 396 - OpMemberDecorate %type_ShadowDepthPass 74 Offset 400 - OpMemberDecorate %type_ShadowDepthPass 75 Offset 412 - OpMemberDecorate %type_ShadowDepthPass 76 Offset 416 - OpMemberDecorate %type_ShadowDepthPass 77 Offset 420 - OpMemberDecorate %type_ShadowDepthPass 78 Offset 424 - OpMemberDecorate %type_ShadowDepthPass 79 Offset 428 - OpMemberDecorate %type_ShadowDepthPass 80 Offset 432 - OpMemberDecorate %type_ShadowDepthPass 81 Offset 436 - OpMemberDecorate %type_ShadowDepthPass 82 Offset 440 - OpMemberDecorate %type_ShadowDepthPass 83 Offset 444 - OpMemberDecorate %type_ShadowDepthPass 84 Offset 448 - OpMemberDecorate %type_ShadowDepthPass 85 Offset 452 - OpMemberDecorate %type_ShadowDepthPass 86 Offset 456 - OpMemberDecorate %type_ShadowDepthPass 87 Offset 460 - OpMemberDecorate %type_ShadowDepthPass 88 Offset 464 - OpMemberDecorate %type_ShadowDepthPass 88 MatrixStride 16 - OpMemberDecorate %type_ShadowDepthPass 88 ColMajor - OpMemberDecorate %type_ShadowDepthPass 89 Offset 528 - OpMemberDecorate %type_ShadowDepthPass 89 MatrixStride 16 - OpMemberDecorate %type_ShadowDepthPass 89 ColMajor - OpMemberDecorate %type_ShadowDepthPass 90 Offset 592 - OpMemberDecorate %type_ShadowDepthPass 91 Offset 608 - OpMemberDecorate %type_ShadowDepthPass 92 Offset 612 - OpMemberDecorate %type_ShadowDepthPass 93 Offset 616 - OpMemberDecorate %type_ShadowDepthPass 94 Offset 620 - OpMemberDecorate %type_ShadowDepthPass 95 Offset 624 - OpMemberDecorate %type_ShadowDepthPass 95 MatrixStride 16 - OpMemberDecorate %type_ShadowDepthPass 95 ColMajor - OpMemberDecorate %type_ShadowDepthPass 96 Offset 1008 - OpMemberDecorate %type_ShadowDepthPass 96 MatrixStride 16 - OpMemberDecorate %type_ShadowDepthPass 96 ColMajor - OpDecorate %type_ShadowDepthPass Block - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%mat4v4float = OpTypeMatrix %v4float 4 - %v3float = OpTypeVector %float 3 - %v2float = OpTypeVector %float 2 - %int = OpTypeInt 32 1 - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 - %uint_4 = OpConstant %uint 4 - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 - %int_2 = OpConstant %int 2 - %float_3 = OpConstant %float 3 - %uint_0 = OpConstant %uint 0 - %uint_1 = OpConstant %uint 1 - %float_6 = OpConstant %float 6 - %48 = OpConstantComposite %v4float %float_6 %float_6 %float_6 %float_6 - %float_1 = OpConstant %float 1 - %float_0 = OpConstant %float 0 - %int_3 = OpConstant %int 3 - %int_88 = OpConstant %int 88 - %int_89 = OpConstant %int 89 - %int_90 = OpConstant %int 90 - %int_91 = OpConstant %int 91 -%float_9_99999997en07 = OpConstant %float 9.99999997e-07 - %uint_6 = OpConstant %uint 6 -%_arr_mat4v4float_uint_6 = OpTypeArray %mat4v4float %uint_6 - %v3int = OpTypeVector %int 3 -%type_ShadowDepthPass = OpTypeStruct %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %mat4v4float %v4float %v4float %v4float %v3int %int %v3int %float %float %float %float %float %float %float %float %float %float %float %float %int %mat4v4float %mat4v4float %v4float %float %float %float %float %_arr_mat4v4float_uint_6 %_arr_mat4v4float_uint_6 -%_ptr_Uniform_type_ShadowDepthPass = OpTypePointer Uniform %type_ShadowDepthPass - %uint_3 = OpConstant %uint 3 -%_arr_v4float_uint_3 = OpTypeArray %v4float %uint_3 -%_ptr_Input__arr_v4float_uint_3 = OpTypePointer Input %_arr_v4float_uint_3 -%_arr_uint_uint_3 = OpTypeArray %uint %uint_3 -%_ptr_Input__arr_uint_uint_3 = OpTypePointer Input %_arr_uint_uint_3 -%_arr__arr_v4float_uint_3_uint_3 = OpTypeArray %_arr_v4float_uint_3 %uint_3 -%_ptr_Input__arr__arr_v4float_uint_3_uint_3 = OpTypePointer Input %_arr__arr_v4float_uint_3_uint_3 -%_arr_v3float_uint_3 = OpTypeArray %v3float %uint_3 -%_ptr_Input__arr_v3float_uint_3 = OpTypePointer Input %_arr_v3float_uint_3 -%_arr_float_uint_3 = OpTypeArray %float %uint_3 -%_ptr_Input__arr_float_uint_3 = OpTypePointer Input %_arr_float_uint_3 -%_arr_v2float_uint_3 = OpTypeArray %v2float %uint_3 -%_ptr_Input__arr_v2float_uint_3 = OpTypePointer Input %_arr_v2float_uint_3 -%_arr_float_uint_4 = OpTypeArray %float %uint_4 -%_ptr_Input__arr_float_uint_4 = OpTypePointer Input %_arr_float_uint_4 -%_arr_float_uint_2 = OpTypeArray %float %uint_2 -%_ptr_Input__arr_float_uint_2 = OpTypePointer Input %_arr_float_uint_2 -%_ptr_Input_v4float = OpTypePointer Input %v4float -%_ptr_Input_v3float = OpTypePointer Input %v3float -%_ptr_Output_v4float = OpTypePointer Output %v4float -%_ptr_Output_float = OpTypePointer Output %float -%_ptr_Output_v3float = OpTypePointer Output %v3float - %void = OpTypeVoid - %83 = OpTypeFunction %void -%_ptr_Function_float = OpTypePointer Function %float - %bool = OpTypeBool -%_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float -%_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float -%_ptr_Uniform_float = OpTypePointer Uniform %float -%ShadowDepthPass = OpVariable %_ptr_Uniform_type_ShadowDepthPass Uniform -%in_var_TEXCOORD10_centroid = OpVariable %_ptr_Input__arr_v4float_uint_3 Input -%in_var_TEXCOORD11_centroid = OpVariable %_ptr_Input__arr_v4float_uint_3 Input -%in_var_VS_to_DS_Position = OpVariable %_ptr_Input__arr_v4float_uint_3 Input -%in_var_VS_To_DS_VertexID = OpVariable %_ptr_Input__arr_uint_uint_3 Input -%in_var_PN_POSITION = OpVariable %_ptr_Input__arr__arr_v4float_uint_3_uint_3 Input -%in_var_PN_DisplacementScales = OpVariable %_ptr_Input__arr_v3float_uint_3 Input -%in_var_PN_TessellationMultiplier = OpVariable %_ptr_Input__arr_float_uint_3 Input -%in_var_PN_WorldDisplacementMultiplier = OpVariable %_ptr_Input__arr_float_uint_3 Input -%in_var_PN_DominantVertex = OpVariable %_ptr_Input__arr_v2float_uint_3 Input -%in_var_PN_DominantVertex1 = OpVariable %_ptr_Input__arr_v4float_uint_3 Input -%in_var_PN_DominantVertex2 = OpVariable %_ptr_Input__arr_v3float_uint_3 Input -%in_var_PN_DominantEdge = OpVariable %_ptr_Input__arr_v2float_uint_3 Input -%in_var_PN_DominantEdge1 = OpVariable %_ptr_Input__arr_v2float_uint_3 Input -%in_var_PN_DominantEdge2 = OpVariable %_ptr_Input__arr_v4float_uint_3 Input -%in_var_PN_DominantEdge3 = OpVariable %_ptr_Input__arr_v4float_uint_3 Input -%in_var_PN_DominantEdge4 = OpVariable %_ptr_Input__arr_v3float_uint_3 Input -%in_var_PN_DominantEdge5 = OpVariable %_ptr_Input__arr_v3float_uint_3 Input -%gl_TessLevelOuter = OpVariable %_ptr_Input__arr_float_uint_4 Input -%gl_TessLevelInner = OpVariable %_ptr_Input__arr_float_uint_2 Input -%in_var_PN_POSITION9 = OpVariable %_ptr_Input_v4float Input -%gl_TessCoord = OpVariable %_ptr_Input_v3float Input -%out_var_TEXCOORD10_centroid = OpVariable %_ptr_Output_v4float Output -%out_var_TEXCOORD11_centroid = OpVariable %_ptr_Output_v4float Output -%out_var_TEXCOORD6 = OpVariable %_ptr_Output_float Output -%out_var_TEXCOORD7 = OpVariable %_ptr_Output_v3float Output -%gl_Position = OpVariable %_ptr_Output_v4float Output - %89 = OpConstantNull %v4float - %90 = OpUndef %v4float - %MainDomain = OpFunction %void None %83 - %91 = OpLabel - %92 = OpVariable %_ptr_Function_mat4v4float Function - %93 = OpLoad %_arr_v4float_uint_3 %in_var_TEXCOORD10_centroid - %94 = OpLoad %_arr_v4float_uint_3 %in_var_TEXCOORD11_centroid - %95 = OpCompositeExtract %v4float %93 0 - %96 = OpCompositeExtract %v4float %94 0 - %97 = OpCompositeExtract %v4float %93 1 - %98 = OpCompositeExtract %v4float %94 1 - %99 = OpCompositeExtract %v4float %93 2 - %100 = OpCompositeExtract %v4float %94 2 - %101 = OpLoad %_arr__arr_v4float_uint_3_uint_3 %in_var_PN_POSITION - %102 = OpCompositeExtract %_arr_v4float_uint_3 %101 0 - %103 = OpCompositeExtract %_arr_v4float_uint_3 %101 1 - %104 = OpCompositeExtract %_arr_v4float_uint_3 %101 2 - %105 = OpCompositeExtract %v4float %102 0 - %106 = OpCompositeExtract %v4float %102 1 - %107 = OpCompositeExtract %v4float %102 2 - %108 = OpCompositeExtract %v4float %103 0 - %109 = OpCompositeExtract %v4float %103 1 - %110 = OpCompositeExtract %v4float %103 2 - %111 = OpCompositeExtract %v4float %104 0 - %112 = OpCompositeExtract %v4float %104 1 - %113 = OpCompositeExtract %v4float %104 2 - %114 = OpLoad %v4float %in_var_PN_POSITION9 - %115 = OpLoad %v3float %gl_TessCoord - %116 = OpCompositeExtract %float %115 0 - %117 = OpCompositeExtract %float %115 1 - %118 = OpCompositeExtract %float %115 2 - %119 = OpFMul %float %116 %116 - %120 = OpFMul %float %117 %117 - %121 = OpFMul %float %118 %118 - %122 = OpFMul %float %119 %float_3 - %123 = OpFMul %float %120 %float_3 - %124 = OpFMul %float %121 %float_3 - %125 = OpCompositeConstruct %v4float %119 %119 %119 %119 - %126 = OpFMul %v4float %105 %125 - %127 = OpCompositeConstruct %v4float %116 %116 %116 %116 - %128 = OpFMul %v4float %126 %127 - %129 = OpCompositeConstruct %v4float %120 %120 %120 %120 - %130 = OpFMul %v4float %108 %129 - %131 = OpCompositeConstruct %v4float %117 %117 %117 %117 - %132 = OpFMul %v4float %130 %131 - %133 = OpFAdd %v4float %128 %132 - %134 = OpCompositeConstruct %v4float %121 %121 %121 %121 - %135 = OpFMul %v4float %111 %134 - %136 = OpCompositeConstruct %v4float %118 %118 %118 %118 - %137 = OpFMul %v4float %135 %136 - %138 = OpFAdd %v4float %133 %137 - %139 = OpCompositeConstruct %v4float %122 %122 %122 %122 - %140 = OpFMul %v4float %106 %139 - %141 = OpFMul %v4float %140 %131 - %142 = OpFAdd %v4float %138 %141 - %143 = OpCompositeConstruct %v4float %123 %123 %123 %123 - %144 = OpFMul %v4float %107 %143 - %145 = OpFMul %v4float %144 %127 - %146 = OpFAdd %v4float %142 %145 - %147 = OpFMul %v4float %109 %143 - %148 = OpFMul %v4float %147 %136 - %149 = OpFAdd %v4float %146 %148 - %150 = OpCompositeConstruct %v4float %124 %124 %124 %124 - %151 = OpFMul %v4float %110 %150 - %152 = OpFMul %v4float %151 %131 - %153 = OpFAdd %v4float %149 %152 - %154 = OpFMul %v4float %112 %150 - %155 = OpFMul %v4float %154 %127 - %156 = OpFAdd %v4float %153 %155 - %157 = OpFMul %v4float %113 %139 - %158 = OpFMul %v4float %157 %136 - %159 = OpFAdd %v4float %156 %158 - %160 = OpFMul %v4float %114 %48 - %161 = OpFMul %v4float %160 %136 - %162 = OpFMul %v4float %161 %127 - %163 = OpFMul %v4float %162 %131 - %164 = OpFAdd %v4float %159 %163 - %165 = OpVectorShuffle %v3float %95 %95 0 1 2 - %166 = OpCompositeConstruct %v3float %116 %116 %116 - %167 = OpFMul %v3float %165 %166 - %168 = OpVectorShuffle %v3float %97 %97 0 1 2 - %169 = OpCompositeConstruct %v3float %117 %117 %117 - %170 = OpFMul %v3float %168 %169 - %171 = OpFAdd %v3float %167 %170 - %172 = OpFMul %v4float %96 %127 - %173 = OpFMul %v4float %98 %131 - %174 = OpFAdd %v4float %172 %173 - %175 = OpVectorShuffle %v3float %171 %89 0 1 2 - %176 = OpVectorShuffle %v3float %99 %99 0 1 2 - %177 = OpCompositeConstruct %v3float %118 %118 %118 - %178 = OpFMul %v3float %176 %177 - %179 = OpFAdd %v3float %175 %178 - %180 = OpVectorShuffle %v4float %90 %179 4 5 6 3 - %181 = OpFMul %v4float %100 %136 - %182 = OpFAdd %v4float %174 %181 - %183 = OpVectorShuffle %v3float %182 %182 0 1 2 - %184 = OpVectorShuffle %v4float %164 %164 4 5 6 3 - %185 = OpAccessChain %_ptr_Uniform_mat4v4float %ShadowDepthPass %int_88 - %186 = OpLoad %mat4v4float %185 - %187 = OpAccessChain %_ptr_Uniform_mat4v4float %ShadowDepthPass %int_89 - %188 = OpLoad %mat4v4float %187 - OpStore %92 %188 - %189 = OpMatrixTimesVector %v4float %186 %184 - %190 = OpAccessChain %_ptr_Uniform_float %ShadowDepthPass %int_91 - %191 = OpLoad %float %190 - %192 = OpFOrdGreaterThan %bool %191 %float_0 - %193 = OpCompositeExtract %float %189 2 - %194 = OpFOrdLessThan %bool %193 %float_0 - %195 = OpLogicalAnd %bool %192 %194 - OpSelectionMerge %196 None - OpBranchConditional %195 %197 %196 - %197 = OpLabel - %198 = OpCompositeInsert %v4float %float_9_99999997en07 %189 2 - %199 = OpCompositeInsert %v4float %float_1 %198 3 - OpBranch %196 - %196 = OpLabel - %200 = OpPhi %v4float %189 %91 %199 %197 - %201 = OpAccessChain %_ptr_Function_float %92 %uint_0 %int_2 - %202 = OpLoad %float %201 - %203 = OpAccessChain %_ptr_Function_float %92 %uint_1 %int_2 - %204 = OpLoad %float %203 - %205 = OpAccessChain %_ptr_Function_float %92 %uint_2 %int_2 - %206 = OpLoad %float %205 - %207 = OpCompositeConstruct %v3float %202 %204 %206 - %208 = OpDot %float %207 %183 - %209 = OpExtInst %float %1 FAbs %208 - %210 = OpAccessChain %_ptr_Uniform_float %ShadowDepthPass %int_90 %int_2 - %211 = OpLoad %float %210 - %212 = OpExtInst %float %1 FAbs %209 - %213 = OpFOrdGreaterThan %bool %212 %float_0 - %214 = OpFMul %float %209 %209 - %215 = OpFSub %float %float_1 %214 - %216 = OpExtInst %float %1 FClamp %215 %float_0 %float_1 - %217 = OpExtInst %float %1 Sqrt %216 - %218 = OpFDiv %float %217 %209 - %219 = OpSelect %float %213 %218 %211 - %220 = OpExtInst %float %1 FClamp %219 %float_0 %211 - %221 = OpAccessChain %_ptr_Uniform_float %ShadowDepthPass %int_90 %int_1 - %222 = OpLoad %float %221 - %223 = OpFMul %float %222 %220 - %224 = OpAccessChain %_ptr_Uniform_float %ShadowDepthPass %int_90 %int_0 - %225 = OpLoad %float %224 - %226 = OpFAdd %float %223 %225 - %227 = OpAccessChain %_ptr_Uniform_float %ShadowDepthPass %int_90 %int_3 - %228 = OpLoad %float %227 - %229 = OpCompositeExtract %float %200 2 - %230 = OpFMul %float %229 %228 - %231 = OpFAdd %float %230 %226 - %232 = OpCompositeExtract %float %200 3 - %233 = OpFMul %float %231 %232 - %234 = OpCompositeInsert %v4float %233 %200 2 - %235 = OpVectorShuffle %v3float %164 %89 0 1 2 - OpStore %out_var_TEXCOORD10_centroid %180 - OpStore %out_var_TEXCOORD11_centroid %182 - OpStore %out_var_TEXCOORD6 %float_0 - OpStore %out_var_TEXCOORD7 %235 - OpStore %gl_Position %234 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-ue4/asm/tese/ds-texcoord-array.asm.tese b/third_party/spirv-cross/shaders-ue4/asm/tese/ds-texcoord-array.asm.tese deleted file mode 100644 index 778e93d39a..0000000000 --- a/third_party/spirv-cross/shaders-ue4/asm/tese/ds-texcoord-array.asm.tese +++ /dev/null @@ -1,715 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 183 -; Schema: 0 - OpCapability Tessellation - OpCapability SampledBuffer - OpExtension "SPV_GOOGLE_hlsl_functionality1" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationEvaluation %MainDomain "main" %gl_TessLevelOuter %gl_TessLevelInner %in_var_TEXCOORD10_centroid %in_var_TEXCOORD11_centroid %in_var_TEXCOORD0 %in_var_COLOR1 %in_var_COLOR2 %in_var_VS_To_DS_Position %in_var_TEXCOORD7 %in_var_Flat_DisplacementScales %in_var_Flat_TessellationMultiplier %in_var_Flat_WorldDisplacementMultiplier %gl_TessCoord %out_var_TEXCOORD10_centroid %out_var_TEXCOORD11_centroid %out_var_TEXCOORD0 %out_var_COLOR1 %out_var_COLOR2 %out_var_TEXCOORD6 %out_var_TEXCOORD7 %gl_Position - OpExecutionMode %MainDomain Triangles - OpExecutionMode %MainDomain SpacingFractionalOdd - OpExecutionMode %MainDomain VertexOrderCw - OpSource HLSL 600 - OpName %type_View "type.View" - OpMemberName %type_View 0 "View_TranslatedWorldToClip" - OpMemberName %type_View 1 "View_WorldToClip" - OpMemberName %type_View 2 "View_ClipToWorld" - OpMemberName %type_View 3 "View_TranslatedWorldToView" - OpMemberName %type_View 4 "View_ViewToTranslatedWorld" - OpMemberName %type_View 5 "View_TranslatedWorldToCameraView" - OpMemberName %type_View 6 "View_CameraViewToTranslatedWorld" - OpMemberName %type_View 7 "View_ViewToClip" - OpMemberName %type_View 8 "View_ViewToClipNoAA" - OpMemberName %type_View 9 "View_ClipToView" - OpMemberName %type_View 10 "View_ClipToTranslatedWorld" - OpMemberName %type_View 11 "View_SVPositionToTranslatedWorld" - OpMemberName %type_View 12 "View_ScreenToWorld" - OpMemberName %type_View 13 "View_ScreenToTranslatedWorld" - OpMemberName %type_View 14 "View_ViewForward" - OpMemberName %type_View 15 "PrePadding_View_908" - OpMemberName %type_View 16 "View_ViewUp" - OpMemberName %type_View 17 "PrePadding_View_924" - OpMemberName %type_View 18 "View_ViewRight" - OpMemberName %type_View 19 "PrePadding_View_940" - OpMemberName %type_View 20 "View_HMDViewNoRollUp" - OpMemberName %type_View 21 "PrePadding_View_956" - OpMemberName %type_View 22 "View_HMDViewNoRollRight" - OpMemberName %type_View 23 "PrePadding_View_972" - OpMemberName %type_View 24 "View_InvDeviceZToWorldZTransform" - OpMemberName %type_View 25 "View_ScreenPositionScaleBias" - OpMemberName %type_View 26 "View_WorldCameraOrigin" - OpMemberName %type_View 27 "PrePadding_View_1020" - OpMemberName %type_View 28 "View_TranslatedWorldCameraOrigin" - OpMemberName %type_View 29 "PrePadding_View_1036" - OpMemberName %type_View 30 "View_WorldViewOrigin" - OpMemberName %type_View 31 "PrePadding_View_1052" - OpMemberName %type_View 32 "View_PreViewTranslation" - OpMemberName %type_View 33 "PrePadding_View_1068" - OpMemberName %type_View 34 "View_PrevProjection" - OpMemberName %type_View 35 "View_PrevViewProj" - OpMemberName %type_View 36 "View_PrevViewRotationProj" - OpMemberName %type_View 37 "View_PrevViewToClip" - OpMemberName %type_View 38 "View_PrevClipToView" - OpMemberName %type_View 39 "View_PrevTranslatedWorldToClip" - OpMemberName %type_View 40 "View_PrevTranslatedWorldToView" - OpMemberName %type_View 41 "View_PrevViewToTranslatedWorld" - OpMemberName %type_View 42 "View_PrevTranslatedWorldToCameraView" - OpMemberName %type_View 43 "View_PrevCameraViewToTranslatedWorld" - OpMemberName %type_View 44 "View_PrevWorldCameraOrigin" - OpMemberName %type_View 45 "PrePadding_View_1724" - OpMemberName %type_View 46 "View_PrevWorldViewOrigin" - OpMemberName %type_View 47 "PrePadding_View_1740" - OpMemberName %type_View 48 "View_PrevPreViewTranslation" - OpMemberName %type_View 49 "PrePadding_View_1756" - OpMemberName %type_View 50 "View_PrevInvViewProj" - OpMemberName %type_View 51 "View_PrevScreenToTranslatedWorld" - OpMemberName %type_View 52 "View_ClipToPrevClip" - OpMemberName %type_View 53 "View_TemporalAAJitter" - OpMemberName %type_View 54 "View_GlobalClippingPlane" - OpMemberName %type_View 55 "View_FieldOfViewWideAngles" - OpMemberName %type_View 56 "View_PrevFieldOfViewWideAngles" - OpMemberName %type_View 57 "View_ViewRectMin" - OpMemberName %type_View 58 "View_ViewSizeAndInvSize" - OpMemberName %type_View 59 "View_BufferSizeAndInvSize" - OpMemberName %type_View 60 "View_BufferBilinearUVMinMax" - OpMemberName %type_View 61 "View_NumSceneColorMSAASamples" - OpMemberName %type_View 62 "View_PreExposure" - OpMemberName %type_View 63 "View_OneOverPreExposure" - OpMemberName %type_View 64 "PrePadding_View_2076" - OpMemberName %type_View 65 "View_DiffuseOverrideParameter" - OpMemberName %type_View 66 "View_SpecularOverrideParameter" - OpMemberName %type_View 67 "View_NormalOverrideParameter" - OpMemberName %type_View 68 "View_RoughnessOverrideParameter" - OpMemberName %type_View 69 "View_PrevFrameGameTime" - OpMemberName %type_View 70 "View_PrevFrameRealTime" - OpMemberName %type_View 71 "View_OutOfBoundsMask" - OpMemberName %type_View 72 "PrePadding_View_2148" - OpMemberName %type_View 73 "PrePadding_View_2152" - OpMemberName %type_View 74 "PrePadding_View_2156" - OpMemberName %type_View 75 "View_WorldCameraMovementSinceLastFrame" - OpMemberName %type_View 76 "View_CullingSign" - OpMemberName %type_View 77 "View_NearPlane" - OpMemberName %type_View 78 "View_AdaptiveTessellationFactor" - OpMemberName %type_View 79 "View_GameTime" - OpMemberName %type_View 80 "View_RealTime" - OpMemberName %type_View 81 "View_DeltaTime" - OpMemberName %type_View 82 "View_MaterialTextureMipBias" - OpMemberName %type_View 83 "View_MaterialTextureDerivativeMultiply" - OpMemberName %type_View 84 "View_Random" - OpMemberName %type_View 85 "View_FrameNumber" - OpMemberName %type_View 86 "View_StateFrameIndexMod8" - OpMemberName %type_View 87 "View_StateFrameIndex" - OpMemberName %type_View 88 "View_CameraCut" - OpMemberName %type_View 89 "View_UnlitViewmodeMask" - OpMemberName %type_View 90 "PrePadding_View_2228" - OpMemberName %type_View 91 "PrePadding_View_2232" - OpMemberName %type_View 92 "PrePadding_View_2236" - OpMemberName %type_View 93 "View_DirectionalLightColor" - OpMemberName %type_View 94 "View_DirectionalLightDirection" - OpMemberName %type_View 95 "PrePadding_View_2268" - OpMemberName %type_View 96 "View_TranslucencyLightingVolumeMin" - OpMemberName %type_View 97 "View_TranslucencyLightingVolumeInvSize" - OpMemberName %type_View 98 "View_TemporalAAParams" - OpMemberName %type_View 99 "View_CircleDOFParams" - OpMemberName %type_View 100 "View_DepthOfFieldSensorWidth" - OpMemberName %type_View 101 "View_DepthOfFieldFocalDistance" - OpMemberName %type_View 102 "View_DepthOfFieldScale" - OpMemberName %type_View 103 "View_DepthOfFieldFocalLength" - OpMemberName %type_View 104 "View_DepthOfFieldFocalRegion" - OpMemberName %type_View 105 "View_DepthOfFieldNearTransitionRegion" - OpMemberName %type_View 106 "View_DepthOfFieldFarTransitionRegion" - OpMemberName %type_View 107 "View_MotionBlurNormalizedToPixel" - OpMemberName %type_View 108 "View_bSubsurfacePostprocessEnabled" - OpMemberName %type_View 109 "View_GeneralPurposeTweak" - OpMemberName %type_View 110 "View_DemosaicVposOffset" - OpMemberName %type_View 111 "PrePadding_View_2412" - OpMemberName %type_View 112 "View_IndirectLightingColorScale" - OpMemberName %type_View 113 "View_HDR32bppEncodingMode" - OpMemberName %type_View 114 "View_AtmosphericFogSunDirection" - OpMemberName %type_View 115 "View_AtmosphericFogSunPower" - OpMemberName %type_View 116 "View_AtmosphericFogPower" - OpMemberName %type_View 117 "View_AtmosphericFogDensityScale" - OpMemberName %type_View 118 "View_AtmosphericFogDensityOffset" - OpMemberName %type_View 119 "View_AtmosphericFogGroundOffset" - OpMemberName %type_View 120 "View_AtmosphericFogDistanceScale" - OpMemberName %type_View 121 "View_AtmosphericFogAltitudeScale" - OpMemberName %type_View 122 "View_AtmosphericFogHeightScaleRayleigh" - OpMemberName %type_View 123 "View_AtmosphericFogStartDistance" - OpMemberName %type_View 124 "View_AtmosphericFogDistanceOffset" - OpMemberName %type_View 125 "View_AtmosphericFogSunDiscScale" - OpMemberName %type_View 126 "View_AtmosphericFogSunDiscHalfApexAngleRadian" - OpMemberName %type_View 127 "PrePadding_View_2492" - OpMemberName %type_View 128 "View_AtmosphericFogSunDiscLuminance" - OpMemberName %type_View 129 "View_AtmosphericFogRenderMask" - OpMemberName %type_View 130 "View_AtmosphericFogInscatterAltitudeSampleNum" - OpMemberName %type_View 131 "PrePadding_View_2520" - OpMemberName %type_View 132 "PrePadding_View_2524" - OpMemberName %type_View 133 "View_AtmosphericFogSunColor" - OpMemberName %type_View 134 "View_NormalCurvatureToRoughnessScaleBias" - OpMemberName %type_View 135 "View_RenderingReflectionCaptureMask" - OpMemberName %type_View 136 "View_AmbientCubemapTint" - OpMemberName %type_View 137 "View_AmbientCubemapIntensity" - OpMemberName %type_View 138 "View_SkyLightParameters" - OpMemberName %type_View 139 "PrePadding_View_2584" - OpMemberName %type_View 140 "PrePadding_View_2588" - OpMemberName %type_View 141 "View_SkyLightColor" - OpMemberName %type_View 142 "View_SkyIrradianceEnvironmentMap" - OpMemberName %type_View 143 "View_MobilePreviewMode" - OpMemberName %type_View 144 "View_HMDEyePaddingOffset" - OpMemberName %type_View 145 "View_ReflectionCubemapMaxMip" - OpMemberName %type_View 146 "View_ShowDecalsMask" - OpMemberName %type_View 147 "View_DistanceFieldAOSpecularOcclusionMode" - OpMemberName %type_View 148 "View_IndirectCapsuleSelfShadowingIntensity" - OpMemberName %type_View 149 "PrePadding_View_2744" - OpMemberName %type_View 150 "PrePadding_View_2748" - OpMemberName %type_View 151 "View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight" - OpMemberName %type_View 152 "View_StereoPassIndex" - OpMemberName %type_View 153 "View_GlobalVolumeCenterAndExtent" - OpMemberName %type_View 154 "View_GlobalVolumeWorldToUVAddAndMul" - OpMemberName %type_View 155 "View_GlobalVolumeDimension" - OpMemberName %type_View 156 "View_GlobalVolumeTexelSize" - OpMemberName %type_View 157 "View_MaxGlobalDistance" - OpMemberName %type_View 158 "PrePadding_View_2908" - OpMemberName %type_View 159 "View_CursorPosition" - OpMemberName %type_View 160 "View_bCheckerboardSubsurfaceProfileRendering" - OpMemberName %type_View 161 "PrePadding_View_2924" - OpMemberName %type_View 162 "View_VolumetricFogInvGridSize" - OpMemberName %type_View 163 "PrePadding_View_2940" - OpMemberName %type_View 164 "View_VolumetricFogGridZParams" - OpMemberName %type_View 165 "PrePadding_View_2956" - OpMemberName %type_View 166 "View_VolumetricFogSVPosToVolumeUV" - OpMemberName %type_View 167 "View_VolumetricFogMaxDistance" - OpMemberName %type_View 168 "PrePadding_View_2972" - OpMemberName %type_View 169 "View_VolumetricLightmapWorldToUVScale" - OpMemberName %type_View 170 "PrePadding_View_2988" - OpMemberName %type_View 171 "View_VolumetricLightmapWorldToUVAdd" - OpMemberName %type_View 172 "PrePadding_View_3004" - OpMemberName %type_View 173 "View_VolumetricLightmapIndirectionTextureSize" - OpMemberName %type_View 174 "View_VolumetricLightmapBrickSize" - OpMemberName %type_View 175 "View_VolumetricLightmapBrickTexelSize" - OpMemberName %type_View 176 "View_StereoIPD" - OpMemberName %type_View 177 "View_IndirectLightingCacheShowFlag" - OpMemberName %type_View 178 "View_EyeToPixelSpreadAngle" - OpMemberName %type_View 179 "PrePadding_View_3048" - OpMemberName %type_View 180 "PrePadding_View_3052" - OpMemberName %type_View 181 "View_WorldToVirtualTexture" - OpMemberName %type_View 182 "View_VirtualTextureParams" - OpMemberName %type_View 183 "View_XRPassthroughCameraUVs" - OpName %View "View" - OpName %in_var_TEXCOORD10_centroid "in.var.TEXCOORD10_centroid" - OpName %in_var_TEXCOORD11_centroid "in.var.TEXCOORD11_centroid" - OpName %in_var_TEXCOORD0 "in.var.TEXCOORD0" - OpName %in_var_COLOR1 "in.var.COLOR1" - OpName %in_var_COLOR2 "in.var.COLOR2" - OpName %in_var_VS_To_DS_Position "in.var.VS_To_DS_Position" - OpName %in_var_TEXCOORD7 "in.var.TEXCOORD7" - OpName %in_var_Flat_DisplacementScales "in.var.Flat_DisplacementScales" - OpName %in_var_Flat_TessellationMultiplier "in.var.Flat_TessellationMultiplier" - OpName %in_var_Flat_WorldDisplacementMultiplier "in.var.Flat_WorldDisplacementMultiplier" - OpName %out_var_TEXCOORD10_centroid "out.var.TEXCOORD10_centroid" - OpName %out_var_TEXCOORD11_centroid "out.var.TEXCOORD11_centroid" - OpName %out_var_TEXCOORD0 "out.var.TEXCOORD0" - OpName %out_var_COLOR1 "out.var.COLOR1" - OpName %out_var_COLOR2 "out.var.COLOR2" - OpName %out_var_TEXCOORD6 "out.var.TEXCOORD6" - OpName %out_var_TEXCOORD7 "out.var.TEXCOORD7" - OpName %MainDomain "MainDomain" - OpDecorate %gl_TessLevelOuter BuiltIn TessLevelOuter - OpDecorateString %gl_TessLevelOuter UserSemantic "SV_TessFactor" - OpDecorate %gl_TessLevelOuter Patch - OpDecorate %gl_TessLevelInner BuiltIn TessLevelInner - OpDecorateString %gl_TessLevelInner UserSemantic "SV_InsideTessFactor" - OpDecorate %gl_TessLevelInner Patch - OpDecorateString %in_var_TEXCOORD10_centroid UserSemantic "TEXCOORD10_centroid" - OpDecorateString %in_var_TEXCOORD11_centroid UserSemantic "TEXCOORD11_centroid" - OpDecorateString %in_var_TEXCOORD0 UserSemantic "TEXCOORD0" - OpDecorateString %in_var_COLOR1 UserSemantic "COLOR1" - OpDecorateString %in_var_COLOR2 UserSemantic "COLOR2" - OpDecorateString %in_var_VS_To_DS_Position UserSemantic "VS_To_DS_Position" - OpDecorateString %in_var_TEXCOORD7 UserSemantic "TEXCOORD7" - OpDecorateString %in_var_Flat_DisplacementScales UserSemantic "Flat_DisplacementScales" - OpDecorateString %in_var_Flat_TessellationMultiplier UserSemantic "Flat_TessellationMultiplier" - OpDecorateString %in_var_Flat_WorldDisplacementMultiplier UserSemantic "Flat_WorldDisplacementMultiplier" - OpDecorate %gl_TessCoord BuiltIn TessCoord - OpDecorateString %gl_TessCoord UserSemantic "SV_DomainLocation" - OpDecorate %gl_TessCoord Patch - OpDecorateString %out_var_TEXCOORD10_centroid UserSemantic "TEXCOORD10_centroid" - OpDecorateString %out_var_TEXCOORD11_centroid UserSemantic "TEXCOORD11_centroid" - OpDecorateString %out_var_TEXCOORD0 UserSemantic "TEXCOORD0" - OpDecorateString %out_var_COLOR1 UserSemantic "COLOR1" - OpDecorateString %out_var_COLOR2 UserSemantic "COLOR2" - OpDecorateString %out_var_TEXCOORD6 UserSemantic "TEXCOORD6" - OpDecorateString %out_var_TEXCOORD7 UserSemantic "TEXCOORD7" - OpDecorate %gl_Position BuiltIn Position - OpDecorateString %gl_Position UserSemantic "SV_POSITION" - OpDecorate %in_var_COLOR1 Location 0 - OpDecorate %in_var_COLOR2 Location 1 - OpDecorate %in_var_Flat_DisplacementScales Location 2 - OpDecorate %in_var_Flat_TessellationMultiplier Location 3 - OpDecorate %in_var_Flat_WorldDisplacementMultiplier Location 4 - OpDecorate %in_var_TEXCOORD0 Location 5 - OpDecorate %in_var_TEXCOORD10_centroid Location 6 - OpDecorate %in_var_TEXCOORD11_centroid Location 7 - OpDecorate %in_var_TEXCOORD7 Location 8 - OpDecorate %in_var_VS_To_DS_Position Location 9 - OpDecorate %out_var_TEXCOORD10_centroid Location 0 - OpDecorate %out_var_TEXCOORD11_centroid Location 1 - OpDecorate %out_var_TEXCOORD0 Location 2 - OpDecorate %out_var_COLOR1 Location 3 - OpDecorate %out_var_COLOR2 Location 4 - OpDecorate %out_var_TEXCOORD6 Location 5 - OpDecorate %out_var_TEXCOORD7 Location 6 - OpDecorate %View DescriptorSet 0 - OpDecorate %View Binding 0 - OpDecorate %_arr_v4float_uint_2 ArrayStride 16 - OpDecorate %_arr_v4float_uint_7 ArrayStride 16 - OpDecorate %_arr_v4float_uint_4 ArrayStride 16 - OpMemberDecorate %type_View 0 Offset 0 - OpMemberDecorate %type_View 0 MatrixStride 16 - OpMemberDecorate %type_View 0 ColMajor - OpMemberDecorate %type_View 1 Offset 64 - OpMemberDecorate %type_View 1 MatrixStride 16 - OpMemberDecorate %type_View 1 ColMajor - OpMemberDecorate %type_View 2 Offset 128 - OpMemberDecorate %type_View 2 MatrixStride 16 - OpMemberDecorate %type_View 2 ColMajor - OpMemberDecorate %type_View 3 Offset 192 - OpMemberDecorate %type_View 3 MatrixStride 16 - OpMemberDecorate %type_View 3 ColMajor - OpMemberDecorate %type_View 4 Offset 256 - OpMemberDecorate %type_View 4 MatrixStride 16 - OpMemberDecorate %type_View 4 ColMajor - OpMemberDecorate %type_View 5 Offset 320 - OpMemberDecorate %type_View 5 MatrixStride 16 - OpMemberDecorate %type_View 5 ColMajor - OpMemberDecorate %type_View 6 Offset 384 - OpMemberDecorate %type_View 6 MatrixStride 16 - OpMemberDecorate %type_View 6 ColMajor - OpMemberDecorate %type_View 7 Offset 448 - OpMemberDecorate %type_View 7 MatrixStride 16 - OpMemberDecorate %type_View 7 ColMajor - OpMemberDecorate %type_View 8 Offset 512 - OpMemberDecorate %type_View 8 MatrixStride 16 - OpMemberDecorate %type_View 8 ColMajor - OpMemberDecorate %type_View 9 Offset 576 - OpMemberDecorate %type_View 9 MatrixStride 16 - OpMemberDecorate %type_View 9 ColMajor - OpMemberDecorate %type_View 10 Offset 640 - OpMemberDecorate %type_View 10 MatrixStride 16 - OpMemberDecorate %type_View 10 ColMajor - OpMemberDecorate %type_View 11 Offset 704 - OpMemberDecorate %type_View 11 MatrixStride 16 - OpMemberDecorate %type_View 11 ColMajor - OpMemberDecorate %type_View 12 Offset 768 - OpMemberDecorate %type_View 12 MatrixStride 16 - OpMemberDecorate %type_View 12 ColMajor - OpMemberDecorate %type_View 13 Offset 832 - OpMemberDecorate %type_View 13 MatrixStride 16 - OpMemberDecorate %type_View 13 ColMajor - OpMemberDecorate %type_View 14 Offset 896 - OpMemberDecorate %type_View 15 Offset 908 - OpMemberDecorate %type_View 16 Offset 912 - OpMemberDecorate %type_View 17 Offset 924 - OpMemberDecorate %type_View 18 Offset 928 - OpMemberDecorate %type_View 19 Offset 940 - OpMemberDecorate %type_View 20 Offset 944 - OpMemberDecorate %type_View 21 Offset 956 - OpMemberDecorate %type_View 22 Offset 960 - OpMemberDecorate %type_View 23 Offset 972 - OpMemberDecorate %type_View 24 Offset 976 - OpMemberDecorate %type_View 25 Offset 992 - OpMemberDecorate %type_View 26 Offset 1008 - OpMemberDecorate %type_View 27 Offset 1020 - OpMemberDecorate %type_View 28 Offset 1024 - OpMemberDecorate %type_View 29 Offset 1036 - OpMemberDecorate %type_View 30 Offset 1040 - OpMemberDecorate %type_View 31 Offset 1052 - OpMemberDecorate %type_View 32 Offset 1056 - OpMemberDecorate %type_View 33 Offset 1068 - OpMemberDecorate %type_View 34 Offset 1072 - OpMemberDecorate %type_View 34 MatrixStride 16 - OpMemberDecorate %type_View 34 ColMajor - OpMemberDecorate %type_View 35 Offset 1136 - OpMemberDecorate %type_View 35 MatrixStride 16 - OpMemberDecorate %type_View 35 ColMajor - OpMemberDecorate %type_View 36 Offset 1200 - OpMemberDecorate %type_View 36 MatrixStride 16 - OpMemberDecorate %type_View 36 ColMajor - OpMemberDecorate %type_View 37 Offset 1264 - OpMemberDecorate %type_View 37 MatrixStride 16 - OpMemberDecorate %type_View 37 ColMajor - OpMemberDecorate %type_View 38 Offset 1328 - OpMemberDecorate %type_View 38 MatrixStride 16 - OpMemberDecorate %type_View 38 ColMajor - OpMemberDecorate %type_View 39 Offset 1392 - OpMemberDecorate %type_View 39 MatrixStride 16 - OpMemberDecorate %type_View 39 ColMajor - OpMemberDecorate %type_View 40 Offset 1456 - OpMemberDecorate %type_View 40 MatrixStride 16 - OpMemberDecorate %type_View 40 ColMajor - OpMemberDecorate %type_View 41 Offset 1520 - OpMemberDecorate %type_View 41 MatrixStride 16 - OpMemberDecorate %type_View 41 ColMajor - OpMemberDecorate %type_View 42 Offset 1584 - OpMemberDecorate %type_View 42 MatrixStride 16 - OpMemberDecorate %type_View 42 ColMajor - OpMemberDecorate %type_View 43 Offset 1648 - OpMemberDecorate %type_View 43 MatrixStride 16 - OpMemberDecorate %type_View 43 ColMajor - OpMemberDecorate %type_View 44 Offset 1712 - OpMemberDecorate %type_View 45 Offset 1724 - OpMemberDecorate %type_View 46 Offset 1728 - OpMemberDecorate %type_View 47 Offset 1740 - OpMemberDecorate %type_View 48 Offset 1744 - OpMemberDecorate %type_View 49 Offset 1756 - OpMemberDecorate %type_View 50 Offset 1760 - OpMemberDecorate %type_View 50 MatrixStride 16 - OpMemberDecorate %type_View 50 ColMajor - OpMemberDecorate %type_View 51 Offset 1824 - OpMemberDecorate %type_View 51 MatrixStride 16 - OpMemberDecorate %type_View 51 ColMajor - OpMemberDecorate %type_View 52 Offset 1888 - OpMemberDecorate %type_View 52 MatrixStride 16 - OpMemberDecorate %type_View 52 ColMajor - OpMemberDecorate %type_View 53 Offset 1952 - OpMemberDecorate %type_View 54 Offset 1968 - OpMemberDecorate %type_View 55 Offset 1984 - OpMemberDecorate %type_View 56 Offset 1992 - OpMemberDecorate %type_View 57 Offset 2000 - OpMemberDecorate %type_View 58 Offset 2016 - OpMemberDecorate %type_View 59 Offset 2032 - OpMemberDecorate %type_View 60 Offset 2048 - OpMemberDecorate %type_View 61 Offset 2064 - OpMemberDecorate %type_View 62 Offset 2068 - OpMemberDecorate %type_View 63 Offset 2072 - OpMemberDecorate %type_View 64 Offset 2076 - OpMemberDecorate %type_View 65 Offset 2080 - OpMemberDecorate %type_View 66 Offset 2096 - OpMemberDecorate %type_View 67 Offset 2112 - OpMemberDecorate %type_View 68 Offset 2128 - OpMemberDecorate %type_View 69 Offset 2136 - OpMemberDecorate %type_View 70 Offset 2140 - OpMemberDecorate %type_View 71 Offset 2144 - OpMemberDecorate %type_View 72 Offset 2148 - OpMemberDecorate %type_View 73 Offset 2152 - OpMemberDecorate %type_View 74 Offset 2156 - OpMemberDecorate %type_View 75 Offset 2160 - OpMemberDecorate %type_View 76 Offset 2172 - OpMemberDecorate %type_View 77 Offset 2176 - OpMemberDecorate %type_View 78 Offset 2180 - OpMemberDecorate %type_View 79 Offset 2184 - OpMemberDecorate %type_View 80 Offset 2188 - OpMemberDecorate %type_View 81 Offset 2192 - OpMemberDecorate %type_View 82 Offset 2196 - OpMemberDecorate %type_View 83 Offset 2200 - OpMemberDecorate %type_View 84 Offset 2204 - OpMemberDecorate %type_View 85 Offset 2208 - OpMemberDecorate %type_View 86 Offset 2212 - OpMemberDecorate %type_View 87 Offset 2216 - OpMemberDecorate %type_View 88 Offset 2220 - OpMemberDecorate %type_View 89 Offset 2224 - OpMemberDecorate %type_View 90 Offset 2228 - OpMemberDecorate %type_View 91 Offset 2232 - OpMemberDecorate %type_View 92 Offset 2236 - OpMemberDecorate %type_View 93 Offset 2240 - OpMemberDecorate %type_View 94 Offset 2256 - OpMemberDecorate %type_View 95 Offset 2268 - OpMemberDecorate %type_View 96 Offset 2272 - OpMemberDecorate %type_View 97 Offset 2304 - OpMemberDecorate %type_View 98 Offset 2336 - OpMemberDecorate %type_View 99 Offset 2352 - OpMemberDecorate %type_View 100 Offset 2368 - OpMemberDecorate %type_View 101 Offset 2372 - OpMemberDecorate %type_View 102 Offset 2376 - OpMemberDecorate %type_View 103 Offset 2380 - OpMemberDecorate %type_View 104 Offset 2384 - OpMemberDecorate %type_View 105 Offset 2388 - OpMemberDecorate %type_View 106 Offset 2392 - OpMemberDecorate %type_View 107 Offset 2396 - OpMemberDecorate %type_View 108 Offset 2400 - OpMemberDecorate %type_View 109 Offset 2404 - OpMemberDecorate %type_View 110 Offset 2408 - OpMemberDecorate %type_View 111 Offset 2412 - OpMemberDecorate %type_View 112 Offset 2416 - OpMemberDecorate %type_View 113 Offset 2428 - OpMemberDecorate %type_View 114 Offset 2432 - OpMemberDecorate %type_View 115 Offset 2444 - OpMemberDecorate %type_View 116 Offset 2448 - OpMemberDecorate %type_View 117 Offset 2452 - OpMemberDecorate %type_View 118 Offset 2456 - OpMemberDecorate %type_View 119 Offset 2460 - OpMemberDecorate %type_View 120 Offset 2464 - OpMemberDecorate %type_View 121 Offset 2468 - OpMemberDecorate %type_View 122 Offset 2472 - OpMemberDecorate %type_View 123 Offset 2476 - OpMemberDecorate %type_View 124 Offset 2480 - OpMemberDecorate %type_View 125 Offset 2484 - OpMemberDecorate %type_View 126 Offset 2488 - OpMemberDecorate %type_View 127 Offset 2492 - OpMemberDecorate %type_View 128 Offset 2496 - OpMemberDecorate %type_View 129 Offset 2512 - OpMemberDecorate %type_View 130 Offset 2516 - OpMemberDecorate %type_View 131 Offset 2520 - OpMemberDecorate %type_View 132 Offset 2524 - OpMemberDecorate %type_View 133 Offset 2528 - OpMemberDecorate %type_View 134 Offset 2544 - OpMemberDecorate %type_View 135 Offset 2556 - OpMemberDecorate %type_View 136 Offset 2560 - OpMemberDecorate %type_View 137 Offset 2576 - OpMemberDecorate %type_View 138 Offset 2580 - OpMemberDecorate %type_View 139 Offset 2584 - OpMemberDecorate %type_View 140 Offset 2588 - OpMemberDecorate %type_View 141 Offset 2592 - OpMemberDecorate %type_View 142 Offset 2608 - OpMemberDecorate %type_View 143 Offset 2720 - OpMemberDecorate %type_View 144 Offset 2724 - OpMemberDecorate %type_View 145 Offset 2728 - OpMemberDecorate %type_View 146 Offset 2732 - OpMemberDecorate %type_View 147 Offset 2736 - OpMemberDecorate %type_View 148 Offset 2740 - OpMemberDecorate %type_View 149 Offset 2744 - OpMemberDecorate %type_View 150 Offset 2748 - OpMemberDecorate %type_View 151 Offset 2752 - OpMemberDecorate %type_View 152 Offset 2764 - OpMemberDecorate %type_View 153 Offset 2768 - OpMemberDecorate %type_View 154 Offset 2832 - OpMemberDecorate %type_View 155 Offset 2896 - OpMemberDecorate %type_View 156 Offset 2900 - OpMemberDecorate %type_View 157 Offset 2904 - OpMemberDecorate %type_View 158 Offset 2908 - OpMemberDecorate %type_View 159 Offset 2912 - OpMemberDecorate %type_View 160 Offset 2920 - OpMemberDecorate %type_View 161 Offset 2924 - OpMemberDecorate %type_View 162 Offset 2928 - OpMemberDecorate %type_View 163 Offset 2940 - OpMemberDecorate %type_View 164 Offset 2944 - OpMemberDecorate %type_View 165 Offset 2956 - OpMemberDecorate %type_View 166 Offset 2960 - OpMemberDecorate %type_View 167 Offset 2968 - OpMemberDecorate %type_View 168 Offset 2972 - OpMemberDecorate %type_View 169 Offset 2976 - OpMemberDecorate %type_View 170 Offset 2988 - OpMemberDecorate %type_View 171 Offset 2992 - OpMemberDecorate %type_View 172 Offset 3004 - OpMemberDecorate %type_View 173 Offset 3008 - OpMemberDecorate %type_View 174 Offset 3020 - OpMemberDecorate %type_View 175 Offset 3024 - OpMemberDecorate %type_View 176 Offset 3036 - OpMemberDecorate %type_View 177 Offset 3040 - OpMemberDecorate %type_View 178 Offset 3044 - OpMemberDecorate %type_View 179 Offset 3048 - OpMemberDecorate %type_View 180 Offset 3052 - OpMemberDecorate %type_View 181 Offset 3056 - OpMemberDecorate %type_View 181 MatrixStride 16 - OpMemberDecorate %type_View 181 ColMajor - OpMemberDecorate %type_View 182 Offset 3120 - OpMemberDecorate %type_View 183 Offset 3136 - OpDecorate %type_View Block - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%mat4v4float = OpTypeMatrix %v4float 4 - %v3float = OpTypeVector %float 3 - %v2float = OpTypeVector %float 2 - %int = OpTypeInt 32 1 - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 - %uint_7 = OpConstant %uint 7 - %uint_4 = OpConstant %uint 4 - %v2int = OpTypeVector %int 2 - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 - %uint_1 = OpConstant %uint 1 -%_arr_v4float_uint_2 = OpTypeArray %v4float %uint_2 -%_arr_v4float_uint_7 = OpTypeArray %v4float %uint_7 -%_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4 - %type_View = OpTypeStruct %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %v3float %float %v3float %float %v3float %float %v3float %float %v3float %float %v4float %v4float %v3float %float %v3float %float %v3float %float %v3float %float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %v3float %float %v3float %float %v3float %float %mat4v4float %mat4v4float %mat4v4float %v4float %v4float %v2float %v2float %v4float %v4float %v4float %v4float %int %float %float %float %v4float %v4float %v4float %v2float %float %float %float %float %float %float %v3float %float %float %float %float %float %float %float %float %uint %uint %uint %uint %float %float %float %float %float %v4float %v3float %float %_arr_v4float_uint_2 %_arr_v4float_uint_2 %v4float %v4float %float %float %float %float %float %float %float %float %float %float %float %float %v3float %float %v3float %float %float %float %float %float %float %float %float %float %float %float %float %float %v4float %uint %uint %uint %uint %v4float %v3float %float %v4float %float %float %float %float %v4float %_arr_v4float_uint_7 %float %float %float %float %uint %float %float %float %v3float %int %_arr_v4float_uint_4 %_arr_v4float_uint_4 %float %float %float %float %v2int %float %float %v3float %float %v3float %float %v2float %float %float %v3float %float %v3float %float %v3float %float %v3float %float %float %float %float %float %mat4v4float %v4float %_arr_v4float_uint_2 -%_ptr_Uniform_type_View = OpTypePointer Uniform %type_View -%_arr_float_uint_4 = OpTypeArray %float %uint_4 -%_ptr_Input__arr_float_uint_4 = OpTypePointer Input %_arr_float_uint_4 -%_arr_float_uint_2 = OpTypeArray %float %uint_2 -%_ptr_Input__arr_float_uint_2 = OpTypePointer Input %_arr_float_uint_2 - %uint_3 = OpConstant %uint 3 -%_arr_v4float_uint_3 = OpTypeArray %v4float %uint_3 -%_ptr_Input__arr_v4float_uint_3 = OpTypePointer Input %_arr_v4float_uint_3 -%_arr_v4float_uint_1 = OpTypeArray %v4float %uint_1 -%_arr__arr_v4float_uint_1_uint_3 = OpTypeArray %_arr_v4float_uint_1 %uint_3 -%_ptr_Input__arr__arr_v4float_uint_1_uint_3 = OpTypePointer Input %_arr__arr_v4float_uint_1_uint_3 -%_arr_v3float_uint_3 = OpTypeArray %v3float %uint_3 -%_ptr_Input__arr_v3float_uint_3 = OpTypePointer Input %_arr_v3float_uint_3 -%_arr_float_uint_3 = OpTypeArray %float %uint_3 -%_ptr_Input__arr_float_uint_3 = OpTypePointer Input %_arr_float_uint_3 -%_ptr_Input_v3float = OpTypePointer Input %v3float -%_ptr_Output_v4float = OpTypePointer Output %v4float -%_ptr_Output__arr_v4float_uint_1 = OpTypePointer Output %_arr_v4float_uint_1 -%_ptr_Output_v3float = OpTypePointer Output %v3float - %void = OpTypeVoid - %63 = OpTypeFunction %void -%_ptr_Function_v4float = OpTypePointer Function %v4float - %bool = OpTypeBool -%_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float - %View = OpVariable %_ptr_Uniform_type_View Uniform -%gl_TessLevelOuter = OpVariable %_ptr_Input__arr_float_uint_4 Input -%gl_TessLevelInner = OpVariable %_ptr_Input__arr_float_uint_2 Input -%in_var_TEXCOORD10_centroid = OpVariable %_ptr_Input__arr_v4float_uint_3 Input -%in_var_TEXCOORD11_centroid = OpVariable %_ptr_Input__arr_v4float_uint_3 Input -%in_var_TEXCOORD0 = OpVariable %_ptr_Input__arr__arr_v4float_uint_1_uint_3 Input -%in_var_COLOR1 = OpVariable %_ptr_Input__arr_v4float_uint_3 Input -%in_var_COLOR2 = OpVariable %_ptr_Input__arr_v4float_uint_3 Input -%in_var_VS_To_DS_Position = OpVariable %_ptr_Input__arr_v4float_uint_3 Input -%in_var_TEXCOORD7 = OpVariable %_ptr_Input__arr_v3float_uint_3 Input -%in_var_Flat_DisplacementScales = OpVariable %_ptr_Input__arr_v3float_uint_3 Input -%in_var_Flat_TessellationMultiplier = OpVariable %_ptr_Input__arr_float_uint_3 Input -%in_var_Flat_WorldDisplacementMultiplier = OpVariable %_ptr_Input__arr_float_uint_3 Input -%gl_TessCoord = OpVariable %_ptr_Input_v3float Input -%out_var_TEXCOORD10_centroid = OpVariable %_ptr_Output_v4float Output -%out_var_TEXCOORD11_centroid = OpVariable %_ptr_Output_v4float Output -%out_var_TEXCOORD0 = OpVariable %_ptr_Output__arr_v4float_uint_1 Output -%out_var_COLOR1 = OpVariable %_ptr_Output_v4float Output -%out_var_COLOR2 = OpVariable %_ptr_Output_v4float Output -%out_var_TEXCOORD6 = OpVariable %_ptr_Output_v4float Output -%out_var_TEXCOORD7 = OpVariable %_ptr_Output_v3float Output -%gl_Position = OpVariable %_ptr_Output_v4float Output -%_ptr_Function__arr_v4float_uint_1 = OpTypePointer Function %_arr_v4float_uint_1 - %68 = OpUndef %v4float - %69 = OpConstantNull %v4float - %MainDomain = OpFunction %void None %63 - %70 = OpLabel - %71 = OpVariable %_ptr_Function__arr_v4float_uint_1 Function - %72 = OpVariable %_ptr_Function__arr_v4float_uint_1 Function - %73 = OpVariable %_ptr_Function__arr_v4float_uint_1 Function - %74 = OpVariable %_ptr_Function__arr_v4float_uint_1 Function - %75 = OpVariable %_ptr_Function__arr_v4float_uint_1 Function - %76 = OpVariable %_ptr_Function__arr_v4float_uint_1 Function - %77 = OpLoad %_arr_v4float_uint_3 %in_var_TEXCOORD10_centroid - %78 = OpLoad %_arr_v4float_uint_3 %in_var_TEXCOORD11_centroid - %79 = OpLoad %_arr__arr_v4float_uint_1_uint_3 %in_var_TEXCOORD0 - %80 = OpLoad %_arr_v4float_uint_3 %in_var_COLOR1 - %81 = OpLoad %_arr_v4float_uint_3 %in_var_COLOR2 - %82 = OpCompositeExtract %v4float %77 0 - %83 = OpCompositeExtract %v4float %78 0 - %84 = OpCompositeExtract %_arr_v4float_uint_1 %79 0 - %85 = OpCompositeExtract %v4float %80 0 - %86 = OpCompositeExtract %v4float %81 0 - %87 = OpCompositeExtract %v4float %77 1 - %88 = OpCompositeExtract %v4float %78 1 - %89 = OpCompositeExtract %_arr_v4float_uint_1 %79 1 - %90 = OpCompositeExtract %v4float %80 1 - %91 = OpCompositeExtract %v4float %81 1 - %92 = OpCompositeExtract %v4float %77 2 - %93 = OpCompositeExtract %v4float %78 2 - %94 = OpCompositeExtract %_arr_v4float_uint_1 %79 2 - %95 = OpCompositeExtract %v4float %80 2 - %96 = OpCompositeExtract %v4float %81 2 - %97 = OpLoad %_arr_v4float_uint_3 %in_var_VS_To_DS_Position - %98 = OpLoad %_arr_v3float_uint_3 %in_var_TEXCOORD7 - %99 = OpCompositeExtract %v4float %97 0 - %100 = OpCompositeExtract %v3float %98 0 - %101 = OpCompositeExtract %v4float %97 1 - %102 = OpCompositeExtract %v3float %98 1 - %103 = OpCompositeExtract %v4float %97 2 - %104 = OpCompositeExtract %v3float %98 2 - %105 = OpLoad %v3float %gl_TessCoord - %106 = OpAccessChain %_ptr_Uniform_mat4v4float %View %int_0 - %107 = OpLoad %mat4v4float %106 - %108 = OpCompositeExtract %float %105 0 - %109 = OpCompositeExtract %float %105 1 - %110 = OpCompositeExtract %float %105 2 - %111 = OpCompositeConstruct %v4float %108 %108 %108 %108 - %112 = OpFMul %v4float %99 %111 - %113 = OpCompositeConstruct %v4float %109 %109 %109 %109 - %114 = OpFMul %v4float %101 %113 - %115 = OpFAdd %v4float %112 %114 - %116 = OpCompositeConstruct %v4float %110 %110 %110 %110 - %117 = OpFMul %v4float %103 %116 - %118 = OpFAdd %v4float %115 %117 - OpStore %72 %84 - OpStore %71 %89 - %119 = OpVectorShuffle %v3float %82 %82 0 1 2 - %120 = OpCompositeConstruct %v3float %108 %108 %108 - %121 = OpFMul %v3float %119 %120 - %122 = OpVectorShuffle %v3float %87 %87 0 1 2 - %123 = OpCompositeConstruct %v3float %109 %109 %109 - %124 = OpFMul %v3float %122 %123 - %125 = OpFAdd %v3float %121 %124 - %126 = OpFMul %v4float %83 %111 - %127 = OpFMul %v4float %88 %113 - %128 = OpFAdd %v4float %126 %127 - %129 = OpFMul %v4float %85 %111 - %130 = OpFMul %v4float %90 %113 - %131 = OpFAdd %v4float %129 %130 - OpBranch %132 - %132 = OpLabel - %133 = OpPhi %int %int_0 %70 %134 %135 - %136 = OpSLessThan %bool %133 %int_1 - OpLoopMerge %137 %135 None - OpBranchConditional %136 %135 %137 - %135 = OpLabel - %138 = OpAccessChain %_ptr_Function_v4float %72 %133 - %139 = OpLoad %v4float %138 - %140 = OpFMul %v4float %139 %111 - %141 = OpAccessChain %_ptr_Function_v4float %71 %133 - %142 = OpLoad %v4float %141 - %143 = OpFMul %v4float %142 %113 - %144 = OpFAdd %v4float %140 %143 - %145 = OpAccessChain %_ptr_Function_v4float %73 %133 - OpStore %145 %144 - %134 = OpIAdd %int %133 %int_1 - OpBranch %132 - %137 = OpLabel - %146 = OpFMul %v4float %86 %111 - %147 = OpFMul %v4float %91 %113 - %148 = OpFAdd %v4float %146 %147 - %149 = OpLoad %_arr_v4float_uint_1 %73 - %150 = OpFMul %v3float %100 %120 - %151 = OpFMul %v3float %102 %123 - %152 = OpFAdd %v3float %150 %151 - OpStore %75 %149 - OpStore %74 %94 - %153 = OpVectorShuffle %v3float %125 %69 0 1 2 - %154 = OpVectorShuffle %v3float %92 %92 0 1 2 - %155 = OpCompositeConstruct %v3float %110 %110 %110 - %156 = OpFMul %v3float %154 %155 - %157 = OpFAdd %v3float %153 %156 - %158 = OpVectorShuffle %v4float %68 %157 4 5 6 3 - %159 = OpFMul %v4float %93 %116 - %160 = OpFAdd %v4float %128 %159 - %161 = OpFMul %v4float %95 %116 - %162 = OpFAdd %v4float %131 %161 - OpBranch %163 - %163 = OpLabel - %164 = OpPhi %int %int_0 %137 %165 %166 - %167 = OpSLessThan %bool %164 %int_1 - OpLoopMerge %168 %166 None - OpBranchConditional %167 %166 %168 - %166 = OpLabel - %169 = OpAccessChain %_ptr_Function_v4float %75 %164 - %170 = OpLoad %v4float %169 - %171 = OpAccessChain %_ptr_Function_v4float %74 %164 - %172 = OpLoad %v4float %171 - %173 = OpFMul %v4float %172 %116 - %174 = OpFAdd %v4float %170 %173 - %175 = OpAccessChain %_ptr_Function_v4float %76 %164 - OpStore %175 %174 - %165 = OpIAdd %int %164 %int_1 - OpBranch %163 - %168 = OpLabel - %176 = OpFMul %v4float %96 %116 - %177 = OpFAdd %v4float %148 %176 - %178 = OpLoad %_arr_v4float_uint_1 %76 - %179 = OpFMul %v3float %104 %155 - %180 = OpFAdd %v3float %152 %179 - %181 = OpVectorShuffle %v4float %118 %118 4 5 6 3 - %182 = OpMatrixTimesVector %v4float %107 %181 - OpStore %out_var_TEXCOORD10_centroid %158 - OpStore %out_var_TEXCOORD11_centroid %160 - OpStore %out_var_TEXCOORD0 %178 - OpStore %out_var_COLOR1 %162 - OpStore %out_var_COLOR2 %177 - OpStore %out_var_TEXCOORD6 %181 - OpStore %out_var_TEXCOORD7 %180 - OpStore %gl_Position %182 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-ue4/asm/vert/array-missing-copies.asm.vert b/third_party/spirv-cross/shaders-ue4/asm/vert/array-missing-copies.asm.vert deleted file mode 100644 index 23dc727560..0000000000 --- a/third_party/spirv-cross/shaders-ue4/asm/vert/array-missing-copies.asm.vert +++ /dev/null @@ -1,1131 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 487 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_GOOGLE_hlsl_functionality1" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %Main "main" %in_var_ATTRIBUTE0 %in_var_ATTRIBUTE1 %out_var_TEXCOORD0 %out_var_TEXCOORD1 %out_var_TEXCOORD2 %out_var_TEXCOORD3 %out_var_TEXCOORD8 %gl_Position - OpSource HLSL 600 - OpName %type_View "type.View" - OpMemberName %type_View 0 "View_TranslatedWorldToClip" - OpMemberName %type_View 1 "View_WorldToClip" - OpMemberName %type_View 2 "View_TranslatedWorldToView" - OpMemberName %type_View 3 "View_ViewToTranslatedWorld" - OpMemberName %type_View 4 "View_TranslatedWorldToCameraView" - OpMemberName %type_View 5 "View_CameraViewToTranslatedWorld" - OpMemberName %type_View 6 "View_ViewToClip" - OpMemberName %type_View 7 "View_ViewToClipNoAA" - OpMemberName %type_View 8 "View_ClipToView" - OpMemberName %type_View 9 "View_ClipToTranslatedWorld" - OpMemberName %type_View 10 "View_SVPositionToTranslatedWorld" - OpMemberName %type_View 11 "View_ScreenToWorld" - OpMemberName %type_View 12 "View_ScreenToTranslatedWorld" - OpMemberName %type_View 13 "View_ViewForward" - OpMemberName %type_View 14 "PrePadding_View_844" - OpMemberName %type_View 15 "View_ViewUp" - OpMemberName %type_View 16 "PrePadding_View_860" - OpMemberName %type_View 17 "View_ViewRight" - OpMemberName %type_View 18 "PrePadding_View_876" - OpMemberName %type_View 19 "View_HMDViewNoRollUp" - OpMemberName %type_View 20 "PrePadding_View_892" - OpMemberName %type_View 21 "View_HMDViewNoRollRight" - OpMemberName %type_View 22 "PrePadding_View_908" - OpMemberName %type_View 23 "View_InvDeviceZToWorldZTransform" - OpMemberName %type_View 24 "View_ScreenPositionScaleBias" - OpMemberName %type_View 25 "View_WorldCameraOrigin" - OpMemberName %type_View 26 "PrePadding_View_956" - OpMemberName %type_View 27 "View_TranslatedWorldCameraOrigin" - OpMemberName %type_View 28 "PrePadding_View_972" - OpMemberName %type_View 29 "View_WorldViewOrigin" - OpMemberName %type_View 30 "PrePadding_View_988" - OpMemberName %type_View 31 "View_PreViewTranslation" - OpMemberName %type_View 32 "PrePadding_View_1004" - OpMemberName %type_View 33 "View_PrevProjection" - OpMemberName %type_View 34 "View_PrevViewProj" - OpMemberName %type_View 35 "View_PrevViewRotationProj" - OpMemberName %type_View 36 "View_PrevViewToClip" - OpMemberName %type_View 37 "View_PrevClipToView" - OpMemberName %type_View 38 "View_PrevTranslatedWorldToClip" - OpMemberName %type_View 39 "View_PrevTranslatedWorldToView" - OpMemberName %type_View 40 "View_PrevViewToTranslatedWorld" - OpMemberName %type_View 41 "View_PrevTranslatedWorldToCameraView" - OpMemberName %type_View 42 "View_PrevCameraViewToTranslatedWorld" - OpMemberName %type_View 43 "View_PrevWorldCameraOrigin" - OpMemberName %type_View 44 "PrePadding_View_1660" - OpMemberName %type_View 45 "View_PrevWorldViewOrigin" - OpMemberName %type_View 46 "PrePadding_View_1676" - OpMemberName %type_View 47 "View_PrevPreViewTranslation" - OpMemberName %type_View 48 "PrePadding_View_1692" - OpMemberName %type_View 49 "View_PrevInvViewProj" - OpMemberName %type_View 50 "View_PrevScreenToTranslatedWorld" - OpMemberName %type_View 51 "View_ClipToPrevClip" - OpMemberName %type_View 52 "View_TemporalAAJitter" - OpMemberName %type_View 53 "View_GlobalClippingPlane" - OpMemberName %type_View 54 "View_FieldOfViewWideAngles" - OpMemberName %type_View 55 "View_PrevFieldOfViewWideAngles" - OpMemberName %type_View 56 "View_ViewRectMin" - OpMemberName %type_View 57 "View_ViewSizeAndInvSize" - OpMemberName %type_View 58 "View_BufferSizeAndInvSize" - OpMemberName %type_View 59 "View_BufferBilinearUVMinMax" - OpMemberName %type_View 60 "View_NumSceneColorMSAASamples" - OpMemberName %type_View 61 "View_PreExposure" - OpMemberName %type_View 62 "View_OneOverPreExposure" - OpMemberName %type_View 63 "PrePadding_View_2012" - OpMemberName %type_View 64 "View_DiffuseOverrideParameter" - OpMemberName %type_View 65 "View_SpecularOverrideParameter" - OpMemberName %type_View 66 "View_NormalOverrideParameter" - OpMemberName %type_View 67 "View_RoughnessOverrideParameter" - OpMemberName %type_View 68 "View_PrevFrameGameTime" - OpMemberName %type_View 69 "View_PrevFrameRealTime" - OpMemberName %type_View 70 "View_OutOfBoundsMask" - OpMemberName %type_View 71 "PrePadding_View_2084" - OpMemberName %type_View 72 "PrePadding_View_2088" - OpMemberName %type_View 73 "PrePadding_View_2092" - OpMemberName %type_View 74 "View_WorldCameraMovementSinceLastFrame" - OpMemberName %type_View 75 "View_CullingSign" - OpMemberName %type_View 76 "View_NearPlane" - OpMemberName %type_View 77 "View_AdaptiveTessellationFactor" - OpMemberName %type_View 78 "View_GameTime" - OpMemberName %type_View 79 "View_RealTime" - OpMemberName %type_View 80 "View_DeltaTime" - OpMemberName %type_View 81 "View_MaterialTextureMipBias" - OpMemberName %type_View 82 "View_MaterialTextureDerivativeMultiply" - OpMemberName %type_View 83 "View_Random" - OpMemberName %type_View 84 "View_FrameNumber" - OpMemberName %type_View 85 "View_StateFrameIndexMod8" - OpMemberName %type_View 86 "View_StateFrameIndex" - OpMemberName %type_View 87 "View_CameraCut" - OpMemberName %type_View 88 "View_UnlitViewmodeMask" - OpMemberName %type_View 89 "PrePadding_View_2164" - OpMemberName %type_View 90 "PrePadding_View_2168" - OpMemberName %type_View 91 "PrePadding_View_2172" - OpMemberName %type_View 92 "View_DirectionalLightColor" - OpMemberName %type_View 93 "View_DirectionalLightDirection" - OpMemberName %type_View 94 "PrePadding_View_2204" - OpMemberName %type_View 95 "View_TranslucencyLightingVolumeMin" - OpMemberName %type_View 96 "View_TranslucencyLightingVolumeInvSize" - OpMemberName %type_View 97 "View_TemporalAAParams" - OpMemberName %type_View 98 "View_CircleDOFParams" - OpMemberName %type_View 99 "View_DepthOfFieldSensorWidth" - OpMemberName %type_View 100 "View_DepthOfFieldFocalDistance" - OpMemberName %type_View 101 "View_DepthOfFieldScale" - OpMemberName %type_View 102 "View_DepthOfFieldFocalLength" - OpMemberName %type_View 103 "View_DepthOfFieldFocalRegion" - OpMemberName %type_View 104 "View_DepthOfFieldNearTransitionRegion" - OpMemberName %type_View 105 "View_DepthOfFieldFarTransitionRegion" - OpMemberName %type_View 106 "View_MotionBlurNormalizedToPixel" - OpMemberName %type_View 107 "View_bSubsurfacePostprocessEnabled" - OpMemberName %type_View 108 "View_GeneralPurposeTweak" - OpMemberName %type_View 109 "View_DemosaicVposOffset" - OpMemberName %type_View 110 "PrePadding_View_2348" - OpMemberName %type_View 111 "View_IndirectLightingColorScale" - OpMemberName %type_View 112 "View_HDR32bppEncodingMode" - OpMemberName %type_View 113 "View_AtmosphericFogSunDirection" - OpMemberName %type_View 114 "View_AtmosphericFogSunPower" - OpMemberName %type_View 115 "View_AtmosphericFogPower" - OpMemberName %type_View 116 "View_AtmosphericFogDensityScale" - OpMemberName %type_View 117 "View_AtmosphericFogDensityOffset" - OpMemberName %type_View 118 "View_AtmosphericFogGroundOffset" - OpMemberName %type_View 119 "View_AtmosphericFogDistanceScale" - OpMemberName %type_View 120 "View_AtmosphericFogAltitudeScale" - OpMemberName %type_View 121 "View_AtmosphericFogHeightScaleRayleigh" - OpMemberName %type_View 122 "View_AtmosphericFogStartDistance" - OpMemberName %type_View 123 "View_AtmosphericFogDistanceOffset" - OpMemberName %type_View 124 "View_AtmosphericFogSunDiscScale" - OpMemberName %type_View 125 "View_AtmosphericFogRenderMask" - OpMemberName %type_View 126 "View_AtmosphericFogInscatterAltitudeSampleNum" - OpMemberName %type_View 127 "View_AtmosphericFogSunColor" - OpMemberName %type_View 128 "View_NormalCurvatureToRoughnessScaleBias" - OpMemberName %type_View 129 "View_RenderingReflectionCaptureMask" - OpMemberName %type_View 130 "View_AmbientCubemapTint" - OpMemberName %type_View 131 "View_AmbientCubemapIntensity" - OpMemberName %type_View 132 "View_SkyLightParameters" - OpMemberName %type_View 133 "PrePadding_View_2488" - OpMemberName %type_View 134 "PrePadding_View_2492" - OpMemberName %type_View 135 "View_SkyLightColor" - OpMemberName %type_View 136 "View_SkyIrradianceEnvironmentMap" - OpMemberName %type_View 137 "View_MobilePreviewMode" - OpMemberName %type_View 138 "View_HMDEyePaddingOffset" - OpMemberName %type_View 139 "View_ReflectionCubemapMaxMip" - OpMemberName %type_View 140 "View_ShowDecalsMask" - OpMemberName %type_View 141 "View_DistanceFieldAOSpecularOcclusionMode" - OpMemberName %type_View 142 "View_IndirectCapsuleSelfShadowingIntensity" - OpMemberName %type_View 143 "PrePadding_View_2648" - OpMemberName %type_View 144 "PrePadding_View_2652" - OpMemberName %type_View 145 "View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight" - OpMemberName %type_View 146 "View_StereoPassIndex" - OpMemberName %type_View 147 "View_GlobalVolumeCenterAndExtent" - OpMemberName %type_View 148 "View_GlobalVolumeWorldToUVAddAndMul" - OpMemberName %type_View 149 "View_GlobalVolumeDimension" - OpMemberName %type_View 150 "View_GlobalVolumeTexelSize" - OpMemberName %type_View 151 "View_MaxGlobalDistance" - OpMemberName %type_View 152 "View_bCheckerboardSubsurfaceProfileRendering" - OpMemberName %type_View 153 "View_VolumetricFogInvGridSize" - OpMemberName %type_View 154 "PrePadding_View_2828" - OpMemberName %type_View 155 "View_VolumetricFogGridZParams" - OpMemberName %type_View 156 "PrePadding_View_2844" - OpMemberName %type_View 157 "View_VolumetricFogSVPosToVolumeUV" - OpMemberName %type_View 158 "View_VolumetricFogMaxDistance" - OpMemberName %type_View 159 "PrePadding_View_2860" - OpMemberName %type_View 160 "View_VolumetricLightmapWorldToUVScale" - OpMemberName %type_View 161 "PrePadding_View_2876" - OpMemberName %type_View 162 "View_VolumetricLightmapWorldToUVAdd" - OpMemberName %type_View 163 "PrePadding_View_2892" - OpMemberName %type_View 164 "View_VolumetricLightmapIndirectionTextureSize" - OpMemberName %type_View 165 "View_VolumetricLightmapBrickSize" - OpMemberName %type_View 166 "View_VolumetricLightmapBrickTexelSize" - OpMemberName %type_View 167 "View_StereoIPD" - OpMemberName %type_View 168 "View_IndirectLightingCacheShowFlag" - OpMemberName %type_View 169 "View_EyeToPixelSpreadAngle" - OpName %View "View" - OpName %type_MobileBasePass "type.MobileBasePass" - OpMemberName %type_MobileBasePass 0 "MobileBasePass_Fog_ExponentialFogParameters" - OpMemberName %type_MobileBasePass 1 "MobileBasePass_Fog_ExponentialFogParameters2" - OpMemberName %type_MobileBasePass 2 "MobileBasePass_Fog_ExponentialFogColorParameter" - OpMemberName %type_MobileBasePass 3 "MobileBasePass_Fog_ExponentialFogParameters3" - OpMemberName %type_MobileBasePass 4 "MobileBasePass_Fog_InscatteringLightDirection" - OpMemberName %type_MobileBasePass 5 "MobileBasePass_Fog_DirectionalInscatteringColor" - OpMemberName %type_MobileBasePass 6 "MobileBasePass_Fog_SinCosInscatteringColorCubemapRotation" - OpMemberName %type_MobileBasePass 7 "PrePadding_MobileBasePass_Fog_104" - OpMemberName %type_MobileBasePass 8 "PrePadding_MobileBasePass_Fog_108" - OpMemberName %type_MobileBasePass 9 "MobileBasePass_Fog_FogInscatteringTextureParameters" - OpMemberName %type_MobileBasePass 10 "MobileBasePass_Fog_ApplyVolumetricFog" - OpMemberName %type_MobileBasePass 11 "PrePadding_MobileBasePass_PlanarReflection_128" - OpMemberName %type_MobileBasePass 12 "PrePadding_MobileBasePass_PlanarReflection_132" - OpMemberName %type_MobileBasePass 13 "PrePadding_MobileBasePass_PlanarReflection_136" - OpMemberName %type_MobileBasePass 14 "PrePadding_MobileBasePass_PlanarReflection_140" - OpMemberName %type_MobileBasePass 15 "PrePadding_MobileBasePass_PlanarReflection_144" - OpMemberName %type_MobileBasePass 16 "PrePadding_MobileBasePass_PlanarReflection_148" - OpMemberName %type_MobileBasePass 17 "PrePadding_MobileBasePass_PlanarReflection_152" - OpMemberName %type_MobileBasePass 18 "PrePadding_MobileBasePass_PlanarReflection_156" - OpMemberName %type_MobileBasePass 19 "MobileBasePass_PlanarReflection_ReflectionPlane" - OpMemberName %type_MobileBasePass 20 "MobileBasePass_PlanarReflection_PlanarReflectionOrigin" - OpMemberName %type_MobileBasePass 21 "MobileBasePass_PlanarReflection_PlanarReflectionXAxis" - OpMemberName %type_MobileBasePass 22 "MobileBasePass_PlanarReflection_PlanarReflectionYAxis" - OpMemberName %type_MobileBasePass 23 "MobileBasePass_PlanarReflection_InverseTransposeMirrorMatrix" - OpMemberName %type_MobileBasePass 24 "MobileBasePass_PlanarReflection_PlanarReflectionParameters" - OpMemberName %type_MobileBasePass 25 "PrePadding_MobileBasePass_PlanarReflection_284" - OpMemberName %type_MobileBasePass 26 "MobileBasePass_PlanarReflection_PlanarReflectionParameters2" - OpMemberName %type_MobileBasePass 27 "PrePadding_MobileBasePass_PlanarReflection_296" - OpMemberName %type_MobileBasePass 28 "PrePadding_MobileBasePass_PlanarReflection_300" - OpMemberName %type_MobileBasePass 29 "MobileBasePass_PlanarReflection_ProjectionWithExtraFOV" - OpMemberName %type_MobileBasePass 30 "MobileBasePass_PlanarReflection_PlanarReflectionScreenScaleBias" - OpMemberName %type_MobileBasePass 31 "MobileBasePass_PlanarReflection_PlanarReflectionScreenBound" - OpMemberName %type_MobileBasePass 32 "MobileBasePass_PlanarReflection_bIsStereo" - OpName %MobileBasePass "MobileBasePass" - OpName %type_Primitive "type.Primitive" - OpMemberName %type_Primitive 0 "Primitive_LocalToWorld" - OpMemberName %type_Primitive 1 "Primitive_InvNonUniformScaleAndDeterminantSign" - OpMemberName %type_Primitive 2 "Primitive_ObjectWorldPositionAndRadius" - OpMemberName %type_Primitive 3 "Primitive_WorldToLocal" - OpMemberName %type_Primitive 4 "Primitive_PreviousLocalToWorld" - OpMemberName %type_Primitive 5 "Primitive_PreviousWorldToLocal" - OpMemberName %type_Primitive 6 "Primitive_ActorWorldPosition" - OpMemberName %type_Primitive 7 "Primitive_UseSingleSampleShadowFromStationaryLights" - OpMemberName %type_Primitive 8 "Primitive_ObjectBounds" - OpMemberName %type_Primitive 9 "Primitive_LpvBiasMultiplier" - OpMemberName %type_Primitive 10 "Primitive_DecalReceiverMask" - OpMemberName %type_Primitive 11 "Primitive_PerObjectGBufferData" - OpMemberName %type_Primitive 12 "Primitive_UseVolumetricLightmapShadowFromStationaryLights" - OpMemberName %type_Primitive 13 "Primitive_UseEditorDepthTest" - OpMemberName %type_Primitive 14 "Primitive_ObjectOrientation" - OpMemberName %type_Primitive 15 "Primitive_NonUniformScale" - OpMemberName %type_Primitive 16 "Primitive_LocalObjectBoundsMin" - OpMemberName %type_Primitive 17 "PrePadding_Primitive_380" - OpMemberName %type_Primitive 18 "Primitive_LocalObjectBoundsMax" - OpMemberName %type_Primitive 19 "Primitive_LightingChannelMask" - OpMemberName %type_Primitive 20 "Primitive_LightmapDataIndex" - OpMemberName %type_Primitive 21 "Primitive_SingleCaptureIndex" - OpName %Primitive "Primitive" - OpName %type_LandscapeParameters "type.LandscapeParameters" - OpMemberName %type_LandscapeParameters 0 "LandscapeParameters_HeightmapUVScaleBias" - OpMemberName %type_LandscapeParameters 1 "LandscapeParameters_WeightmapUVScaleBias" - OpMemberName %type_LandscapeParameters 2 "LandscapeParameters_LandscapeLightmapScaleBias" - OpMemberName %type_LandscapeParameters 3 "LandscapeParameters_SubsectionSizeVertsLayerUVPan" - OpMemberName %type_LandscapeParameters 4 "LandscapeParameters_SubsectionOffsetParams" - OpMemberName %type_LandscapeParameters 5 "LandscapeParameters_LightmapSubsectionOffsetParams" - OpMemberName %type_LandscapeParameters 6 "LandscapeParameters_LocalToWorldNoScaling" - OpName %LandscapeParameters "LandscapeParameters" - OpName %type__Globals "type.$Globals" - OpMemberName %type__Globals 0 "LodBias" - OpMemberName %type__Globals 1 "LodValues" - OpMemberName %type__Globals 2 "SectionLods" - OpMemberName %type__Globals 3 "NeighborSectionLod" - OpName %_Globals "$Globals" - OpName %in_var_ATTRIBUTE0 "in.var.ATTRIBUTE0" - OpName %in_var_ATTRIBUTE1 "in.var.ATTRIBUTE1" - OpName %out_var_TEXCOORD0 "out.var.TEXCOORD0" - OpName %out_var_TEXCOORD1 "out.var.TEXCOORD1" - OpName %out_var_TEXCOORD2 "out.var.TEXCOORD2" - OpName %out_var_TEXCOORD3 "out.var.TEXCOORD3" - OpName %out_var_TEXCOORD8 "out.var.TEXCOORD8" - OpName %Main "Main" - OpDecorateString %in_var_ATTRIBUTE0 UserSemantic "ATTRIBUTE0" - OpDecorateString %in_var_ATTRIBUTE1 UserSemantic "ATTRIBUTE1" - OpDecorateString %out_var_TEXCOORD0 UserSemantic "TEXCOORD0" - OpDecorateString %out_var_TEXCOORD1 UserSemantic "TEXCOORD1" - OpDecorateString %out_var_TEXCOORD2 UserSemantic "TEXCOORD2" - OpDecorateString %out_var_TEXCOORD3 UserSemantic "TEXCOORD3" - OpDecorateString %out_var_TEXCOORD8 UserSemantic "TEXCOORD8" - OpDecorate %gl_Position BuiltIn Position - OpDecorateString %gl_Position UserSemantic "SV_POSITION" - OpDecorate %in_var_ATTRIBUTE0 Location 0 - OpDecorate %in_var_ATTRIBUTE1 Location 1 - OpDecorate %out_var_TEXCOORD0 Location 0 - OpDecorate %out_var_TEXCOORD1 Location 1 - OpDecorate %out_var_TEXCOORD2 Location 2 - OpDecorate %out_var_TEXCOORD3 Location 3 - OpDecorate %out_var_TEXCOORD8 Location 4 - OpDecorate %View DescriptorSet 0 - OpDecorate %View Binding 0 - OpDecorate %MobileBasePass DescriptorSet 0 - OpDecorate %MobileBasePass Binding 1 - OpDecorate %Primitive DescriptorSet 0 - OpDecorate %Primitive Binding 2 - OpDecorate %LandscapeParameters DescriptorSet 0 - OpDecorate %LandscapeParameters Binding 3 - OpDecorate %_Globals DescriptorSet 0 - OpDecorate %_Globals Binding 4 - OpDecorate %_arr_v4float_uint_2_0 ArrayStride 16 - OpDecorate %_arr_v4float_uint_7 ArrayStride 16 - OpDecorate %_arr_v4float_uint_4 ArrayStride 16 - OpMemberDecorate %type_View 0 Offset 0 - OpMemberDecorate %type_View 0 MatrixStride 16 - OpMemberDecorate %type_View 0 ColMajor - OpMemberDecorate %type_View 1 Offset 64 - OpMemberDecorate %type_View 1 MatrixStride 16 - OpMemberDecorate %type_View 1 ColMajor - OpMemberDecorate %type_View 2 Offset 128 - OpMemberDecorate %type_View 2 MatrixStride 16 - OpMemberDecorate %type_View 2 ColMajor - OpMemberDecorate %type_View 3 Offset 192 - OpMemberDecorate %type_View 3 MatrixStride 16 - OpMemberDecorate %type_View 3 ColMajor - OpMemberDecorate %type_View 4 Offset 256 - OpMemberDecorate %type_View 4 MatrixStride 16 - OpMemberDecorate %type_View 4 ColMajor - OpMemberDecorate %type_View 5 Offset 320 - OpMemberDecorate %type_View 5 MatrixStride 16 - OpMemberDecorate %type_View 5 ColMajor - OpMemberDecorate %type_View 6 Offset 384 - OpMemberDecorate %type_View 6 MatrixStride 16 - OpMemberDecorate %type_View 6 ColMajor - OpMemberDecorate %type_View 7 Offset 448 - OpMemberDecorate %type_View 7 MatrixStride 16 - OpMemberDecorate %type_View 7 ColMajor - OpMemberDecorate %type_View 8 Offset 512 - OpMemberDecorate %type_View 8 MatrixStride 16 - OpMemberDecorate %type_View 8 ColMajor - OpMemberDecorate %type_View 9 Offset 576 - OpMemberDecorate %type_View 9 MatrixStride 16 - OpMemberDecorate %type_View 9 ColMajor - OpMemberDecorate %type_View 10 Offset 640 - OpMemberDecorate %type_View 10 MatrixStride 16 - OpMemberDecorate %type_View 10 ColMajor - OpMemberDecorate %type_View 11 Offset 704 - OpMemberDecorate %type_View 11 MatrixStride 16 - OpMemberDecorate %type_View 11 ColMajor - OpMemberDecorate %type_View 12 Offset 768 - OpMemberDecorate %type_View 12 MatrixStride 16 - OpMemberDecorate %type_View 12 ColMajor - OpMemberDecorate %type_View 13 Offset 832 - OpMemberDecorate %type_View 14 Offset 844 - OpMemberDecorate %type_View 15 Offset 848 - OpMemberDecorate %type_View 16 Offset 860 - OpMemberDecorate %type_View 17 Offset 864 - OpMemberDecorate %type_View 18 Offset 876 - OpMemberDecorate %type_View 19 Offset 880 - OpMemberDecorate %type_View 20 Offset 892 - OpMemberDecorate %type_View 21 Offset 896 - OpMemberDecorate %type_View 22 Offset 908 - OpMemberDecorate %type_View 23 Offset 912 - OpMemberDecorate %type_View 24 Offset 928 - OpMemberDecorate %type_View 25 Offset 944 - OpMemberDecorate %type_View 26 Offset 956 - OpMemberDecorate %type_View 27 Offset 960 - OpMemberDecorate %type_View 28 Offset 972 - OpMemberDecorate %type_View 29 Offset 976 - OpMemberDecorate %type_View 30 Offset 988 - OpMemberDecorate %type_View 31 Offset 992 - OpMemberDecorate %type_View 32 Offset 1004 - OpMemberDecorate %type_View 33 Offset 1008 - OpMemberDecorate %type_View 33 MatrixStride 16 - OpMemberDecorate %type_View 33 ColMajor - OpMemberDecorate %type_View 34 Offset 1072 - OpMemberDecorate %type_View 34 MatrixStride 16 - OpMemberDecorate %type_View 34 ColMajor - OpMemberDecorate %type_View 35 Offset 1136 - OpMemberDecorate %type_View 35 MatrixStride 16 - OpMemberDecorate %type_View 35 ColMajor - OpMemberDecorate %type_View 36 Offset 1200 - OpMemberDecorate %type_View 36 MatrixStride 16 - OpMemberDecorate %type_View 36 ColMajor - OpMemberDecorate %type_View 37 Offset 1264 - OpMemberDecorate %type_View 37 MatrixStride 16 - OpMemberDecorate %type_View 37 ColMajor - OpMemberDecorate %type_View 38 Offset 1328 - OpMemberDecorate %type_View 38 MatrixStride 16 - OpMemberDecorate %type_View 38 ColMajor - OpMemberDecorate %type_View 39 Offset 1392 - OpMemberDecorate %type_View 39 MatrixStride 16 - OpMemberDecorate %type_View 39 ColMajor - OpMemberDecorate %type_View 40 Offset 1456 - OpMemberDecorate %type_View 40 MatrixStride 16 - OpMemberDecorate %type_View 40 ColMajor - OpMemberDecorate %type_View 41 Offset 1520 - OpMemberDecorate %type_View 41 MatrixStride 16 - OpMemberDecorate %type_View 41 ColMajor - OpMemberDecorate %type_View 42 Offset 1584 - OpMemberDecorate %type_View 42 MatrixStride 16 - OpMemberDecorate %type_View 42 ColMajor - OpMemberDecorate %type_View 43 Offset 1648 - OpMemberDecorate %type_View 44 Offset 1660 - OpMemberDecorate %type_View 45 Offset 1664 - OpMemberDecorate %type_View 46 Offset 1676 - OpMemberDecorate %type_View 47 Offset 1680 - OpMemberDecorate %type_View 48 Offset 1692 - OpMemberDecorate %type_View 49 Offset 1696 - OpMemberDecorate %type_View 49 MatrixStride 16 - OpMemberDecorate %type_View 49 ColMajor - OpMemberDecorate %type_View 50 Offset 1760 - OpMemberDecorate %type_View 50 MatrixStride 16 - OpMemberDecorate %type_View 50 ColMajor - OpMemberDecorate %type_View 51 Offset 1824 - OpMemberDecorate %type_View 51 MatrixStride 16 - OpMemberDecorate %type_View 51 ColMajor - OpMemberDecorate %type_View 52 Offset 1888 - OpMemberDecorate %type_View 53 Offset 1904 - OpMemberDecorate %type_View 54 Offset 1920 - OpMemberDecorate %type_View 55 Offset 1928 - OpMemberDecorate %type_View 56 Offset 1936 - OpMemberDecorate %type_View 57 Offset 1952 - OpMemberDecorate %type_View 58 Offset 1968 - OpMemberDecorate %type_View 59 Offset 1984 - OpMemberDecorate %type_View 60 Offset 2000 - OpMemberDecorate %type_View 61 Offset 2004 - OpMemberDecorate %type_View 62 Offset 2008 - OpMemberDecorate %type_View 63 Offset 2012 - OpMemberDecorate %type_View 64 Offset 2016 - OpMemberDecorate %type_View 65 Offset 2032 - OpMemberDecorate %type_View 66 Offset 2048 - OpMemberDecorate %type_View 67 Offset 2064 - OpMemberDecorate %type_View 68 Offset 2072 - OpMemberDecorate %type_View 69 Offset 2076 - OpMemberDecorate %type_View 70 Offset 2080 - OpMemberDecorate %type_View 71 Offset 2084 - OpMemberDecorate %type_View 72 Offset 2088 - OpMemberDecorate %type_View 73 Offset 2092 - OpMemberDecorate %type_View 74 Offset 2096 - OpMemberDecorate %type_View 75 Offset 2108 - OpMemberDecorate %type_View 76 Offset 2112 - OpMemberDecorate %type_View 77 Offset 2116 - OpMemberDecorate %type_View 78 Offset 2120 - OpMemberDecorate %type_View 79 Offset 2124 - OpMemberDecorate %type_View 80 Offset 2128 - OpMemberDecorate %type_View 81 Offset 2132 - OpMemberDecorate %type_View 82 Offset 2136 - OpMemberDecorate %type_View 83 Offset 2140 - OpMemberDecorate %type_View 84 Offset 2144 - OpMemberDecorate %type_View 85 Offset 2148 - OpMemberDecorate %type_View 86 Offset 2152 - OpMemberDecorate %type_View 87 Offset 2156 - OpMemberDecorate %type_View 88 Offset 2160 - OpMemberDecorate %type_View 89 Offset 2164 - OpMemberDecorate %type_View 90 Offset 2168 - OpMemberDecorate %type_View 91 Offset 2172 - OpMemberDecorate %type_View 92 Offset 2176 - OpMemberDecorate %type_View 93 Offset 2192 - OpMemberDecorate %type_View 94 Offset 2204 - OpMemberDecorate %type_View 95 Offset 2208 - OpMemberDecorate %type_View 96 Offset 2240 - OpMemberDecorate %type_View 97 Offset 2272 - OpMemberDecorate %type_View 98 Offset 2288 - OpMemberDecorate %type_View 99 Offset 2304 - OpMemberDecorate %type_View 100 Offset 2308 - OpMemberDecorate %type_View 101 Offset 2312 - OpMemberDecorate %type_View 102 Offset 2316 - OpMemberDecorate %type_View 103 Offset 2320 - OpMemberDecorate %type_View 104 Offset 2324 - OpMemberDecorate %type_View 105 Offset 2328 - OpMemberDecorate %type_View 106 Offset 2332 - OpMemberDecorate %type_View 107 Offset 2336 - OpMemberDecorate %type_View 108 Offset 2340 - OpMemberDecorate %type_View 109 Offset 2344 - OpMemberDecorate %type_View 110 Offset 2348 - OpMemberDecorate %type_View 111 Offset 2352 - OpMemberDecorate %type_View 112 Offset 2364 - OpMemberDecorate %type_View 113 Offset 2368 - OpMemberDecorate %type_View 114 Offset 2380 - OpMemberDecorate %type_View 115 Offset 2384 - OpMemberDecorate %type_View 116 Offset 2388 - OpMemberDecorate %type_View 117 Offset 2392 - OpMemberDecorate %type_View 118 Offset 2396 - OpMemberDecorate %type_View 119 Offset 2400 - OpMemberDecorate %type_View 120 Offset 2404 - OpMemberDecorate %type_View 121 Offset 2408 - OpMemberDecorate %type_View 122 Offset 2412 - OpMemberDecorate %type_View 123 Offset 2416 - OpMemberDecorate %type_View 124 Offset 2420 - OpMemberDecorate %type_View 125 Offset 2424 - OpMemberDecorate %type_View 126 Offset 2428 - OpMemberDecorate %type_View 127 Offset 2432 - OpMemberDecorate %type_View 128 Offset 2448 - OpMemberDecorate %type_View 129 Offset 2460 - OpMemberDecorate %type_View 130 Offset 2464 - OpMemberDecorate %type_View 131 Offset 2480 - OpMemberDecorate %type_View 132 Offset 2484 - OpMemberDecorate %type_View 133 Offset 2488 - OpMemberDecorate %type_View 134 Offset 2492 - OpMemberDecorate %type_View 135 Offset 2496 - OpMemberDecorate %type_View 136 Offset 2512 - OpMemberDecorate %type_View 137 Offset 2624 - OpMemberDecorate %type_View 138 Offset 2628 - OpMemberDecorate %type_View 139 Offset 2632 - OpMemberDecorate %type_View 140 Offset 2636 - OpMemberDecorate %type_View 141 Offset 2640 - OpMemberDecorate %type_View 142 Offset 2644 - OpMemberDecorate %type_View 143 Offset 2648 - OpMemberDecorate %type_View 144 Offset 2652 - OpMemberDecorate %type_View 145 Offset 2656 - OpMemberDecorate %type_View 146 Offset 2668 - OpMemberDecorate %type_View 147 Offset 2672 - OpMemberDecorate %type_View 148 Offset 2736 - OpMemberDecorate %type_View 149 Offset 2800 - OpMemberDecorate %type_View 150 Offset 2804 - OpMemberDecorate %type_View 151 Offset 2808 - OpMemberDecorate %type_View 152 Offset 2812 - OpMemberDecorate %type_View 153 Offset 2816 - OpMemberDecorate %type_View 154 Offset 2828 - OpMemberDecorate %type_View 155 Offset 2832 - OpMemberDecorate %type_View 156 Offset 2844 - OpMemberDecorate %type_View 157 Offset 2848 - OpMemberDecorate %type_View 158 Offset 2856 - OpMemberDecorate %type_View 159 Offset 2860 - OpMemberDecorate %type_View 160 Offset 2864 - OpMemberDecorate %type_View 161 Offset 2876 - OpMemberDecorate %type_View 162 Offset 2880 - OpMemberDecorate %type_View 163 Offset 2892 - OpMemberDecorate %type_View 164 Offset 2896 - OpMemberDecorate %type_View 165 Offset 2908 - OpMemberDecorate %type_View 166 Offset 2912 - OpMemberDecorate %type_View 167 Offset 2924 - OpMemberDecorate %type_View 168 Offset 2928 - OpMemberDecorate %type_View 169 Offset 2932 - OpDecorate %type_View Block - OpDecorate %_arr_mat4v4float_uint_2 ArrayStride 64 - OpMemberDecorate %type_MobileBasePass 0 Offset 0 - OpMemberDecorate %type_MobileBasePass 1 Offset 16 - OpMemberDecorate %type_MobileBasePass 2 Offset 32 - OpMemberDecorate %type_MobileBasePass 3 Offset 48 - OpMemberDecorate %type_MobileBasePass 4 Offset 64 - OpMemberDecorate %type_MobileBasePass 5 Offset 80 - OpMemberDecorate %type_MobileBasePass 6 Offset 96 - OpMemberDecorate %type_MobileBasePass 7 Offset 104 - OpMemberDecorate %type_MobileBasePass 8 Offset 108 - OpMemberDecorate %type_MobileBasePass 9 Offset 112 - OpMemberDecorate %type_MobileBasePass 10 Offset 124 - OpMemberDecorate %type_MobileBasePass 11 Offset 128 - OpMemberDecorate %type_MobileBasePass 12 Offset 132 - OpMemberDecorate %type_MobileBasePass 13 Offset 136 - OpMemberDecorate %type_MobileBasePass 14 Offset 140 - OpMemberDecorate %type_MobileBasePass 15 Offset 144 - OpMemberDecorate %type_MobileBasePass 16 Offset 148 - OpMemberDecorate %type_MobileBasePass 17 Offset 152 - OpMemberDecorate %type_MobileBasePass 18 Offset 156 - OpMemberDecorate %type_MobileBasePass 19 Offset 160 - OpMemberDecorate %type_MobileBasePass 20 Offset 176 - OpMemberDecorate %type_MobileBasePass 21 Offset 192 - OpMemberDecorate %type_MobileBasePass 22 Offset 208 - OpMemberDecorate %type_MobileBasePass 23 Offset 224 - OpMemberDecorate %type_MobileBasePass 23 MatrixStride 16 - OpMemberDecorate %type_MobileBasePass 23 ColMajor - OpMemberDecorate %type_MobileBasePass 24 Offset 272 - OpMemberDecorate %type_MobileBasePass 25 Offset 284 - OpMemberDecorate %type_MobileBasePass 26 Offset 288 - OpMemberDecorate %type_MobileBasePass 27 Offset 296 - OpMemberDecorate %type_MobileBasePass 28 Offset 300 - OpMemberDecorate %type_MobileBasePass 29 Offset 304 - OpMemberDecorate %type_MobileBasePass 29 MatrixStride 16 - OpMemberDecorate %type_MobileBasePass 29 ColMajor - OpMemberDecorate %type_MobileBasePass 30 Offset 432 - OpMemberDecorate %type_MobileBasePass 31 Offset 464 - OpMemberDecorate %type_MobileBasePass 32 Offset 472 - OpDecorate %type_MobileBasePass Block - OpMemberDecorate %type_Primitive 0 Offset 0 - OpMemberDecorate %type_Primitive 0 MatrixStride 16 - OpMemberDecorate %type_Primitive 0 ColMajor - OpMemberDecorate %type_Primitive 1 Offset 64 - OpMemberDecorate %type_Primitive 2 Offset 80 - OpMemberDecorate %type_Primitive 3 Offset 96 - OpMemberDecorate %type_Primitive 3 MatrixStride 16 - OpMemberDecorate %type_Primitive 3 ColMajor - OpMemberDecorate %type_Primitive 4 Offset 160 - OpMemberDecorate %type_Primitive 4 MatrixStride 16 - OpMemberDecorate %type_Primitive 4 ColMajor - OpMemberDecorate %type_Primitive 5 Offset 224 - OpMemberDecorate %type_Primitive 5 MatrixStride 16 - OpMemberDecorate %type_Primitive 5 ColMajor - OpMemberDecorate %type_Primitive 6 Offset 288 - OpMemberDecorate %type_Primitive 7 Offset 300 - OpMemberDecorate %type_Primitive 8 Offset 304 - OpMemberDecorate %type_Primitive 9 Offset 316 - OpMemberDecorate %type_Primitive 10 Offset 320 - OpMemberDecorate %type_Primitive 11 Offset 324 - OpMemberDecorate %type_Primitive 12 Offset 328 - OpMemberDecorate %type_Primitive 13 Offset 332 - OpMemberDecorate %type_Primitive 14 Offset 336 - OpMemberDecorate %type_Primitive 15 Offset 352 - OpMemberDecorate %type_Primitive 16 Offset 368 - OpMemberDecorate %type_Primitive 17 Offset 380 - OpMemberDecorate %type_Primitive 18 Offset 384 - OpMemberDecorate %type_Primitive 19 Offset 396 - OpMemberDecorate %type_Primitive 20 Offset 400 - OpMemberDecorate %type_Primitive 21 Offset 404 - OpDecorate %type_Primitive Block - OpMemberDecorate %type_LandscapeParameters 0 Offset 0 - OpMemberDecorate %type_LandscapeParameters 1 Offset 16 - OpMemberDecorate %type_LandscapeParameters 2 Offset 32 - OpMemberDecorate %type_LandscapeParameters 3 Offset 48 - OpMemberDecorate %type_LandscapeParameters 4 Offset 64 - OpMemberDecorate %type_LandscapeParameters 5 Offset 80 - OpMemberDecorate %type_LandscapeParameters 6 Offset 96 - OpMemberDecorate %type_LandscapeParameters 6 MatrixStride 16 - OpMemberDecorate %type_LandscapeParameters 6 ColMajor - OpDecorate %type_LandscapeParameters Block - OpMemberDecorate %type__Globals 0 Offset 0 - OpMemberDecorate %type__Globals 1 Offset 16 - OpMemberDecorate %type__Globals 2 Offset 32 - OpMemberDecorate %type__Globals 3 Offset 48 - OpDecorate %type__Globals Block - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%mat4v4float = OpTypeMatrix %v4float 4 - %v3float = OpTypeVector %float 3 - %v2float = OpTypeVector %float 2 - %int = OpTypeInt 32 1 - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 -%_arr_v4float_uint_2 = OpTypeArray %v4float %uint_2 - %uint_7 = OpConstant %uint 7 - %uint_4 = OpConstant %uint 4 -%float_0_00999999978 = OpConstant %float 0.00999999978 - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 - %float_0 = OpConstant %float 0 - %40 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 - %int_2 = OpConstant %int 2 - %int_3 = OpConstant %int 3 - %float_255 = OpConstant %float 255 - %44 = OpConstantComposite %v4float %float_255 %float_255 %float_255 %float_255 - %float_0_5 = OpConstant %float 0.5 - %46 = OpConstantComposite %v2float %float_0_5 %float_0_5 - %float_2 = OpConstant %float 2 - %48 = OpConstantComposite %v2float %float_2 %float_2 - %float_1 = OpConstant %float 1 - %uint_0 = OpConstant %uint 0 - %uint_1 = OpConstant %uint 1 - %float_3 = OpConstant %float 3 - %float_0_25 = OpConstant %float 0.25 - %uint_3 = OpConstant %uint 3 - %float_4 = OpConstant %float 4 -%float_0_125 = OpConstant %float 0.125 - %float_5 = OpConstant %float 5 -%float_0_0625 = OpConstant %float 0.0625 -%float_0_03125 = OpConstant %float 0.03125 - %60 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 - %int_5 = OpConstant %int 5 - %int_4 = OpConstant %int 4 - %63 = OpConstantComposite %v3float %float_0 %float_0 %float_0 - %int_25 = OpConstant %int 25 - %int_27 = OpConstant %int 27 - %int_31 = OpConstant %int 31 - %67 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 -%float_32768 = OpConstant %float 32768 -%_arr_v4float_uint_2_0 = OpTypeArray %v4float %uint_2 -%_arr_v4float_uint_7 = OpTypeArray %v4float %uint_7 -%_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4 - %type_View = OpTypeStruct %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %v3float %float %v3float %float %v3float %float %v3float %float %v3float %float %v4float %v4float %v3float %float %v3float %float %v3float %float %v3float %float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %v3float %float %v3float %float %v3float %float %mat4v4float %mat4v4float %mat4v4float %v4float %v4float %v2float %v2float %v4float %v4float %v4float %v4float %int %float %float %float %v4float %v4float %v4float %v2float %float %float %float %float %float %float %v3float %float %float %float %float %float %float %float %float %uint %uint %uint %uint %float %float %float %float %float %v4float %v3float %float %_arr_v4float_uint_2_0 %_arr_v4float_uint_2_0 %v4float %v4float %float %float %float %float %float %float %float %float %float %float %float %float %v3float %float %v3float %float %float %float %float %float %float %float %float %float %float %float %uint %uint %v4float %v3float %float %v4float %float %float %float %float %v4float %_arr_v4float_uint_7 %float %float %float %float %uint %float %float %float %v3float %int %_arr_v4float_uint_4 %_arr_v4float_uint_4 %float %float %float %float %v3float %float %v3float %float %v2float %float %float %v3float %float %v3float %float %v3float %float %v3float %float %float %float -%_ptr_Uniform_type_View = OpTypePointer Uniform %type_View -%mat3v4float = OpTypeMatrix %v4float 3 -%_arr_mat4v4float_uint_2 = OpTypeArray %mat4v4float %uint_2 -%type_MobileBasePass = OpTypeStruct %v4float %v4float %v4float %v4float %v4float %v4float %v2float %float %float %v3float %float %float %float %float %float %float %float %float %float %v4float %v4float %v4float %v4float %mat3v4float %v3float %float %v2float %float %float %_arr_mat4v4float_uint_2 %_arr_v4float_uint_2_0 %v2float %uint -%_ptr_Uniform_type_MobileBasePass = OpTypePointer Uniform %type_MobileBasePass -%type_Primitive = OpTypeStruct %mat4v4float %v4float %v4float %mat4v4float %mat4v4float %mat4v4float %v3float %float %v3float %float %float %float %float %float %v4float %v4float %v3float %float %v3float %uint %uint %int -%_ptr_Uniform_type_Primitive = OpTypePointer Uniform %type_Primitive -%type_LandscapeParameters = OpTypeStruct %v4float %v4float %v4float %v4float %v4float %v4float %mat4v4float -%_ptr_Uniform_type_LandscapeParameters = OpTypePointer Uniform %type_LandscapeParameters -%type__Globals = OpTypeStruct %v4float %v4float %v4float %_arr_v4float_uint_4 -%_ptr_Uniform_type__Globals = OpTypePointer Uniform %type__Globals -%_ptr_Input_v4float = OpTypePointer Input %v4float -%_ptr_Input__arr_v4float_uint_2 = OpTypePointer Input %_arr_v4float_uint_2 -%_ptr_Output_v2float = OpTypePointer Output %v2float -%_ptr_Output_v4float = OpTypePointer Output %v4float - %void = OpTypeVoid - %80 = OpTypeFunction %void -%_arr_v4float_uint_1 = OpTypeArray %v4float %uint_1 -%_ptr_Function__arr_v4float_uint_1 = OpTypePointer Function %_arr_v4float_uint_1 -%_ptr_Function_v4float = OpTypePointer Function %v4float - %bool = OpTypeBool -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float -%_ptr_Uniform_float = OpTypePointer Uniform %float - %v3bool = OpTypeVector %bool 3 -%_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float -%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float - %View = OpVariable %_ptr_Uniform_type_View Uniform -%MobileBasePass = OpVariable %_ptr_Uniform_type_MobileBasePass Uniform - %Primitive = OpVariable %_ptr_Uniform_type_Primitive Uniform -%LandscapeParameters = OpVariable %_ptr_Uniform_type_LandscapeParameters Uniform - %_Globals = OpVariable %_ptr_Uniform_type__Globals Uniform -%in_var_ATTRIBUTE0 = OpVariable %_ptr_Input_v4float Input -%in_var_ATTRIBUTE1 = OpVariable %_ptr_Input__arr_v4float_uint_2 Input -%out_var_TEXCOORD0 = OpVariable %_ptr_Output_v2float Output -%out_var_TEXCOORD1 = OpVariable %_ptr_Output_v2float Output -%out_var_TEXCOORD2 = OpVariable %_ptr_Output_v4float Output -%out_var_TEXCOORD3 = OpVariable %_ptr_Output_v4float Output -%out_var_TEXCOORD8 = OpVariable %_ptr_Output_v4float Output -%gl_Position = OpVariable %_ptr_Output_v4float Output -%float_0_0078125 = OpConstant %float 0.0078125 - %float_n127 = OpConstant %float -127 - %92 = OpConstantNull %v4float -%float_0_00392156886 = OpConstant %float 0.00392156886 - %94 = OpConstantComposite %v2float %float_0_00392156886 %float_0_00392156886 -%float_65280 = OpConstant %float 65280 - %Main = OpFunction %void None %80 - %96 = OpLabel - %97 = OpVariable %_ptr_Function__arr_v4float_uint_1 Function - %98 = OpLoad %v4float %in_var_ATTRIBUTE0 - %99 = OpLoad %_arr_v4float_uint_2 %in_var_ATTRIBUTE1 - %100 = OpAccessChain %_ptr_Uniform_mat4v4float %View %int_0 - %101 = OpLoad %mat4v4float %100 - %102 = OpAccessChain %_ptr_Uniform_v3float %View %int_27 - %103 = OpLoad %v3float %102 - %104 = OpAccessChain %_ptr_Uniform_v3float %View %int_31 - %105 = OpLoad %v3float %104 - OpBranch %106 - %106 = OpLabel - %107 = OpPhi %int %int_0 %96 %108 %109 - %110 = OpSLessThan %bool %107 %int_1 - OpLoopMerge %111 %109 Unroll - OpBranchConditional %110 %109 %111 - %109 = OpLabel - %112 = OpAccessChain %_ptr_Function_v4float %97 %107 - OpStore %112 %40 - %108 = OpIAdd %int %107 %int_1 - OpBranch %106 - %111 = OpLabel - %113 = OpCompositeExtract %v4float %99 0 - %114 = OpCompositeExtract %v4float %99 1 - %115 = OpFMul %v4float %98 %44 - %116 = OpVectorShuffle %v2float %115 %115 2 3 - %117 = OpFMul %v2float %116 %46 - %118 = OpExtInst %v2float %1 Fract %117 - %119 = OpFMul %v2float %118 %48 - %120 = OpFSub %v2float %116 %119 - %121 = OpFMul %v2float %120 %94 - %122 = OpVectorShuffle %v2float %115 %92 0 1 - %123 = OpAccessChain %_ptr_Uniform_float %_Globals %int_1 %int_3 - %124 = OpLoad %float %123 - %125 = OpCompositeConstruct %v2float %124 %124 - %126 = OpFMul %v2float %122 %125 - %127 = OpCompositeExtract %float %126 1 - %128 = OpCompositeExtract %float %126 0 - %129 = OpFSub %float %float_1 %128 - %130 = OpFSub %float %float_1 %127 - %131 = OpCompositeConstruct %v4float %127 %128 %129 %130 - %132 = OpFMul %v4float %131 %67 - %133 = OpCompositeExtract %float %119 1 - %134 = OpFOrdGreaterThan %bool %133 %float_0_5 - OpSelectionMerge %135 None - OpBranchConditional %134 %136 %137 - %136 = OpLabel - %138 = OpCompositeExtract %float %119 0 - %139 = OpFOrdGreaterThan %bool %138 %float_0_5 - OpSelectionMerge %140 None - OpBranchConditional %139 %141 %142 - %141 = OpLabel - %143 = OpAccessChain %_ptr_Uniform_float %_Globals %int_2 %int_3 - %144 = OpLoad %float %143 - %145 = OpCompositeConstruct %v4float %144 %144 %144 %144 - %146 = OpFMul %v4float %132 %145 - %147 = OpFSub %v4float %60 %132 - %148 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_3 %int_3 - %149 = OpLoad %v4float %148 - %150 = OpFMul %v4float %147 %149 - %151 = OpFAdd %v4float %146 %150 - OpBranch %140 - %142 = OpLabel - %152 = OpAccessChain %_ptr_Uniform_float %_Globals %int_2 %int_2 - %153 = OpLoad %float %152 - %154 = OpCompositeConstruct %v4float %153 %153 %153 %153 - %155 = OpFMul %v4float %132 %154 - %156 = OpFSub %v4float %60 %132 - %157 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_3 %int_2 - %158 = OpLoad %v4float %157 - %159 = OpFMul %v4float %156 %158 - %160 = OpFAdd %v4float %155 %159 - OpBranch %140 - %140 = OpLabel - %161 = OpPhi %v4float %151 %141 %160 %142 - OpBranch %135 - %137 = OpLabel - %162 = OpCompositeExtract %float %119 0 - %163 = OpFOrdGreaterThan %bool %162 %float_0_5 - OpSelectionMerge %164 None - OpBranchConditional %163 %165 %166 - %165 = OpLabel - %167 = OpAccessChain %_ptr_Uniform_float %_Globals %int_2 %int_1 - %168 = OpLoad %float %167 - %169 = OpCompositeConstruct %v4float %168 %168 %168 %168 - %170 = OpFMul %v4float %132 %169 - %171 = OpFSub %v4float %60 %132 - %172 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_3 %int_1 - %173 = OpLoad %v4float %172 - %174 = OpFMul %v4float %171 %173 - %175 = OpFAdd %v4float %170 %174 - OpBranch %164 - %166 = OpLabel - %176 = OpAccessChain %_ptr_Uniform_float %_Globals %int_2 %int_0 - %177 = OpLoad %float %176 - %178 = OpCompositeConstruct %v4float %177 %177 %177 %177 - %179 = OpFMul %v4float %132 %178 - %180 = OpFSub %v4float %60 %132 - %181 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_3 %int_0 - %182 = OpLoad %v4float %181 - %183 = OpFMul %v4float %180 %182 - %184 = OpFAdd %v4float %179 %183 - OpBranch %164 - %164 = OpLabel - %185 = OpPhi %v4float %175 %165 %184 %166 - OpBranch %135 - %135 = OpLabel - %186 = OpPhi %v4float %161 %140 %185 %164 - %187 = OpFAdd %float %128 %127 - %188 = OpFOrdGreaterThan %bool %187 %float_1 - OpSelectionMerge %189 None - OpBranchConditional %188 %190 %191 - %190 = OpLabel - %192 = OpFOrdLessThan %bool %128 %127 - OpSelectionMerge %193 None - OpBranchConditional %192 %194 %195 - %194 = OpLabel - %196 = OpCompositeExtract %float %186 3 - OpBranch %193 - %195 = OpLabel - %197 = OpCompositeExtract %float %186 2 - OpBranch %193 - %193 = OpLabel - %198 = OpPhi %float %196 %194 %197 %195 - OpBranch %189 - %191 = OpLabel - %199 = OpFOrdLessThan %bool %128 %127 - OpSelectionMerge %200 None - OpBranchConditional %199 %201 %202 - %201 = OpLabel - %203 = OpCompositeExtract %float %186 1 - OpBranch %200 - %202 = OpLabel - %204 = OpCompositeExtract %float %186 0 - OpBranch %200 - %200 = OpLabel - %205 = OpPhi %float %203 %201 %204 %202 - OpBranch %189 - %189 = OpLabel - %206 = OpPhi %float %198 %193 %205 %200 - %207 = OpExtInst %float %1 Floor %206 - %208 = OpFSub %float %206 %207 - %209 = OpFOrdLessThan %bool %207 %float_1 - %210 = OpCompositeExtract %float %114 0 - %211 = OpCompositeExtract %float %114 1 - %212 = OpCompositeConstruct %v3float %float_1 %210 %211 - %213 = OpFOrdLessThan %bool %207 %float_2 - %214 = OpCompositeExtract %float %114 2 - %215 = OpCompositeConstruct %v3float %float_0_5 %211 %214 - %216 = OpFOrdLessThan %bool %207 %float_3 - %217 = OpCompositeExtract %float %114 3 - %218 = OpCompositeConstruct %v3float %float_0_25 %214 %217 - %219 = OpFOrdLessThan %bool %207 %float_4 - %220 = OpCompositeExtract %float %121 0 - %221 = OpCompositeConstruct %v3float %float_0_125 %217 %220 - %222 = OpFOrdLessThan %bool %207 %float_5 - %223 = OpCompositeExtract %float %121 1 - %224 = OpCompositeConstruct %v3float %float_0_0625 %220 %223 - %225 = OpCompositeConstruct %v3float %float_0_03125 %223 %223 - %226 = OpCompositeConstruct %v3bool %222 %222 %222 - %227 = OpSelect %v3float %226 %224 %225 - %228 = OpCompositeConstruct %v3bool %219 %219 %219 - %229 = OpSelect %v3float %228 %221 %227 - %230 = OpCompositeConstruct %v3bool %216 %216 %216 - %231 = OpSelect %v3float %230 %218 %229 - %232 = OpCompositeConstruct %v3bool %213 %213 %213 - %233 = OpSelect %v3float %232 %215 %231 - %234 = OpCompositeConstruct %v3bool %209 %209 %209 - %235 = OpSelect %v3float %234 %212 %233 - %236 = OpCompositeExtract %float %235 0 - %237 = OpCompositeExtract %float %235 1 - %238 = OpCompositeExtract %float %235 2 - %239 = OpCompositeExtract %float %113 0 - %240 = OpFMul %float %239 %float_65280 - %241 = OpCompositeExtract %float %113 1 - %242 = OpFMul %float %241 %float_255 - %243 = OpFAdd %float %240 %242 - %244 = OpFSub %float %243 %float_32768 - %245 = OpFMul %float %244 %float_0_0078125 - %246 = OpCompositeExtract %float %113 2 - %247 = OpFMul %float %246 %float_65280 - %248 = OpCompositeExtract %float %113 3 - %249 = OpFMul %float %248 %float_255 - %250 = OpFAdd %float %247 %249 - %251 = OpFSub %float %250 %float_32768 - %252 = OpFMul %float %251 %float_0_0078125 - %253 = OpExtInst %float %1 FMix %245 %252 %237 - %254 = OpExtInst %float %1 FMix %245 %252 %238 - %255 = OpCompositeConstruct %v2float %236 %236 - %256 = OpFMul %v2float %122 %255 - %257 = OpExtInst %v2float %1 Floor %256 - %258 = OpAccessChain %_ptr_Uniform_v4float %LandscapeParameters %int_3 - %259 = OpAccessChain %_ptr_Uniform_float %LandscapeParameters %int_3 %int_0 - %260 = OpLoad %float %259 - %261 = OpFMul %float %260 %236 - %262 = OpFSub %float %261 %float_1 - %263 = OpFMul %float %260 %float_0_5 - %264 = OpFMul %float %263 %236 - %265 = OpExtInst %float %1 FMax %264 %float_2 - %266 = OpFSub %float %265 %float_1 - %267 = OpCompositeConstruct %v2float %262 %266 - %268 = OpAccessChain %_ptr_Uniform_float %LandscapeParameters %int_3 %int_1 - %269 = OpLoad %float %268 - %270 = OpCompositeConstruct %v2float %269 %269 - %271 = OpFMul %v2float %267 %270 - %272 = OpCompositeExtract %float %271 0 - %273 = OpCompositeConstruct %v2float %272 %272 - %274 = OpFDiv %v2float %257 %273 - %275 = OpFMul %v2float %257 %46 - %276 = OpExtInst %v2float %1 Floor %275 - %277 = OpCompositeExtract %float %271 1 - %278 = OpCompositeConstruct %v2float %277 %277 - %279 = OpFDiv %v2float %276 %278 - %280 = OpCompositeExtract %float %274 0 - %281 = OpCompositeExtract %float %274 1 - %282 = OpCompositeConstruct %v3float %280 %281 %253 - %283 = OpCompositeExtract %float %279 0 - %284 = OpCompositeExtract %float %279 1 - %285 = OpCompositeConstruct %v3float %283 %284 %254 - %286 = OpCompositeConstruct %v3float %208 %208 %208 - %287 = OpExtInst %v3float %1 FMix %282 %285 %286 - %288 = OpVectorShuffle %v2float %119 %92 0 1 - %289 = OpAccessChain %_ptr_Uniform_v4float %LandscapeParameters %int_4 - %290 = OpLoad %v4float %289 - %291 = OpVectorShuffle %v2float %290 %290 3 3 - %292 = OpFMul %v2float %288 %291 - %293 = OpCompositeExtract %float %292 0 - %294 = OpCompositeExtract %float %292 1 - %295 = OpCompositeConstruct %v3float %293 %294 %float_0 - %296 = OpFAdd %v3float %287 %295 - %297 = OpAccessChain %_ptr_Uniform_v4float %Primitive %int_0 %uint_0 - %298 = OpLoad %v4float %297 - %299 = OpVectorShuffle %v3float %298 %298 0 1 2 - %300 = OpVectorShuffle %v3float %296 %296 0 0 0 - %301 = OpFMul %v3float %299 %300 - %302 = OpAccessChain %_ptr_Uniform_v4float %Primitive %int_0 %uint_1 - %303 = OpLoad %v4float %302 - %304 = OpVectorShuffle %v3float %303 %303 0 1 2 - %305 = OpVectorShuffle %v3float %296 %296 1 1 1 - %306 = OpFMul %v3float %304 %305 - %307 = OpFAdd %v3float %301 %306 - %308 = OpAccessChain %_ptr_Uniform_v4float %Primitive %int_0 %uint_2 - %309 = OpLoad %v4float %308 - %310 = OpVectorShuffle %v3float %309 %309 0 1 2 - %311 = OpVectorShuffle %v3float %296 %296 2 2 2 - %312 = OpFMul %v3float %310 %311 - %313 = OpFAdd %v3float %307 %312 - %314 = OpAccessChain %_ptr_Uniform_v4float %Primitive %int_0 %uint_3 - %315 = OpLoad %v4float %314 - %316 = OpVectorShuffle %v3float %315 %315 0 1 2 - %317 = OpFAdd %v3float %316 %105 - %318 = OpFAdd %v3float %313 %317 - %319 = OpCompositeExtract %float %318 0 - %320 = OpCompositeExtract %float %318 1 - %321 = OpCompositeExtract %float %318 2 - %322 = OpCompositeConstruct %v4float %319 %320 %321 %float_1 - %323 = OpVectorShuffle %v2float %287 %287 0 1 - %324 = OpLoad %v4float %258 - %325 = OpVectorShuffle %v2float %324 %324 2 3 - %326 = OpFAdd %v2float %323 %325 - %327 = OpFAdd %v2float %326 %292 - %328 = OpAccessChain %_ptr_Uniform_v4float %LandscapeParameters %int_1 - %329 = OpLoad %v4float %328 - %330 = OpVectorShuffle %v2float %329 %329 0 1 - %331 = OpFMul %v2float %323 %330 - %332 = OpVectorShuffle %v2float %329 %329 2 3 - %333 = OpFAdd %v2float %331 %332 - %334 = OpVectorShuffle %v2float %290 %290 2 2 - %335 = OpFMul %v2float %288 %334 - %336 = OpFAdd %v2float %333 %335 - %337 = OpVectorShuffle %v2float %327 %92 0 1 - %338 = OpVectorShuffle %v4float %322 %322 4 5 6 3 - %339 = OpMatrixTimesVector %v4float %101 %338 - %340 = OpVectorShuffle %v3float %322 %92 0 1 2 - %341 = OpFSub %v3float %340 %103 - %342 = OpAccessChain %_ptr_Uniform_v4float %MobileBasePass %int_2 - %343 = OpAccessChain %_ptr_Uniform_float %MobileBasePass %int_2 %int_3 - %344 = OpLoad %float %343 - %345 = OpDot %float %341 %341 - %346 = OpExtInst %float %1 InverseSqrt %345 - %347 = OpFMul %float %345 %346 - %348 = OpCompositeConstruct %v3float %346 %346 %346 - %349 = OpFMul %v3float %341 %348 - %350 = OpAccessChain %_ptr_Uniform_float %MobileBasePass %int_0 %int_0 - %351 = OpLoad %float %350 - %352 = OpAccessChain %_ptr_Uniform_float %MobileBasePass %int_1 %int_0 - %353 = OpLoad %float %352 - %354 = OpCompositeExtract %float %341 2 - %355 = OpAccessChain %_ptr_Uniform_float %MobileBasePass %int_0 %int_3 - %356 = OpLoad %float %355 - %357 = OpExtInst %float %1 FMax %float_0 %356 - %358 = OpFOrdGreaterThan %bool %357 %float_0 - OpSelectionMerge %359 None - OpBranchConditional %358 %360 %359 - %360 = OpLabel - %361 = OpFMul %float %357 %346 - %362 = OpFMul %float %361 %354 - %363 = OpAccessChain %_ptr_Uniform_float %View %int_25 %int_2 - %364 = OpLoad %float %363 - %365 = OpFAdd %float %364 %362 - %366 = OpFSub %float %354 %362 - %367 = OpFSub %float %float_1 %361 - %368 = OpFMul %float %367 %347 - %369 = OpAccessChain %_ptr_Uniform_float %MobileBasePass %int_0 %int_1 - %370 = OpLoad %float %369 - %371 = OpAccessChain %_ptr_Uniform_float %MobileBasePass %int_3 %int_1 - %372 = OpLoad %float %371 - %373 = OpFSub %float %365 %372 - %374 = OpFMul %float %370 %373 - %375 = OpExtInst %float %1 FMax %float_n127 %374 - %376 = OpAccessChain %_ptr_Uniform_float %MobileBasePass %int_3 %int_0 - %377 = OpLoad %float %376 - %378 = OpFNegate %float %375 - %379 = OpExtInst %float %1 Exp2 %378 - %380 = OpFMul %float %377 %379 - %381 = OpAccessChain %_ptr_Uniform_float %MobileBasePass %int_1 %int_1 - %382 = OpLoad %float %381 - %383 = OpAccessChain %_ptr_Uniform_float %MobileBasePass %int_1 %int_3 - %384 = OpLoad %float %383 - %385 = OpFSub %float %365 %384 - %386 = OpFMul %float %382 %385 - %387 = OpExtInst %float %1 FMax %float_n127 %386 - %388 = OpAccessChain %_ptr_Uniform_float %MobileBasePass %int_1 %int_2 - %389 = OpLoad %float %388 - %390 = OpFNegate %float %387 - %391 = OpExtInst %float %1 Exp2 %390 - %392 = OpFMul %float %389 %391 - OpBranch %359 - %359 = OpLabel - %393 = OpPhi %float %347 %189 %368 %360 - %394 = OpPhi %float %353 %189 %392 %360 - %395 = OpPhi %float %351 %189 %380 %360 - %396 = OpPhi %float %354 %189 %366 %360 - %397 = OpAccessChain %_ptr_Uniform_float %MobileBasePass %int_0 %int_1 - %398 = OpLoad %float %397 - %399 = OpFMul %float %398 %396 - %400 = OpExtInst %float %1 FMax %float_n127 %399 - %401 = OpFNegate %float %400 - %402 = OpExtInst %float %1 Exp2 %401 - %403 = OpFSub %float %float_1 %402 - %404 = OpFDiv %float %403 %400 - %405 = OpExtInst %float %1 Log %float_2 - %406 = OpFMul %float %405 %405 - %407 = OpFMul %float %float_0_5 %406 - %408 = OpFMul %float %407 %400 - %409 = OpFSub %float %405 %408 - %410 = OpExtInst %float %1 FAbs %400 - %411 = OpFOrdGreaterThan %bool %410 %float_0_00999999978 - %412 = OpSelect %float %411 %404 %409 - %413 = OpFMul %float %395 %412 - %414 = OpAccessChain %_ptr_Uniform_float %MobileBasePass %int_1 %int_1 - %415 = OpLoad %float %414 - %416 = OpFMul %float %415 %396 - %417 = OpExtInst %float %1 FMax %float_n127 %416 - %418 = OpFNegate %float %417 - %419 = OpExtInst %float %1 Exp2 %418 - %420 = OpFSub %float %float_1 %419 - %421 = OpFDiv %float %420 %417 - %422 = OpFMul %float %407 %417 - %423 = OpFSub %float %405 %422 - %424 = OpExtInst %float %1 FAbs %417 - %425 = OpFOrdGreaterThan %bool %424 %float_0_00999999978 - %426 = OpSelect %float %425 %421 %423 - %427 = OpFMul %float %394 %426 - %428 = OpFAdd %float %413 %427 - %429 = OpFMul %float %428 %393 - %430 = OpLoad %v4float %342 - %431 = OpVectorShuffle %v3float %430 %430 0 1 2 - %432 = OpAccessChain %_ptr_Uniform_v4float %MobileBasePass %int_4 - %433 = OpAccessChain %_ptr_Uniform_float %MobileBasePass %int_4 %int_3 - %434 = OpLoad %float %433 - %435 = OpFOrdGreaterThanEqual %bool %434 %float_0 - OpSelectionMerge %436 DontFlatten - OpBranchConditional %435 %437 %436 - %437 = OpLabel - %438 = OpAccessChain %_ptr_Uniform_v4float %MobileBasePass %int_5 - %439 = OpLoad %v4float %438 - %440 = OpVectorShuffle %v3float %439 %439 0 1 2 - %441 = OpLoad %v4float %432 - %442 = OpVectorShuffle %v3float %441 %441 0 1 2 - %443 = OpDot %float %349 %442 - %444 = OpExtInst %float %1 FClamp %443 %float_0 %float_1 - %445 = OpAccessChain %_ptr_Uniform_float %MobileBasePass %int_5 %int_3 - %446 = OpLoad %float %445 - %447 = OpExtInst %float %1 Pow %444 %446 - %448 = OpCompositeConstruct %v3float %447 %447 %447 - %449 = OpFMul %v3float %440 %448 - %450 = OpFSub %float %393 %434 - %451 = OpExtInst %float %1 FMax %450 %float_0 - %452 = OpFMul %float %428 %451 - %453 = OpFNegate %float %452 - %454 = OpExtInst %float %1 Exp2 %453 - %455 = OpExtInst %float %1 FClamp %454 %float_0 %float_1 - %456 = OpFSub %float %float_1 %455 - %457 = OpCompositeConstruct %v3float %456 %456 %456 - %458 = OpFMul %v3float %449 %457 - OpBranch %436 - %436 = OpLabel - %459 = OpPhi %v3float %63 %359 %458 %437 - %460 = OpFNegate %float %429 - %461 = OpExtInst %float %1 Exp2 %460 - %462 = OpExtInst %float %1 FClamp %461 %float_0 %float_1 - %463 = OpExtInst %float %1 FMax %462 %344 - %464 = OpAccessChain %_ptr_Uniform_float %MobileBasePass %int_3 %int_3 - %465 = OpLoad %float %464 - %466 = OpFOrdGreaterThan %bool %465 %float_0 - %467 = OpFOrdGreaterThan %bool %347 %465 - %468 = OpLogicalAnd %bool %466 %467 - %469 = OpCompositeConstruct %v3bool %468 %468 %468 - %470 = OpSelect %v3float %469 %63 %459 - %471 = OpSelect %float %468 %float_1 %463 - %472 = OpFSub %float %float_1 %471 - %473 = OpCompositeConstruct %v3float %472 %472 %472 - %474 = OpFMul %v3float %431 %473 - %475 = OpFAdd %v3float %474 %470 - %476 = OpCompositeExtract %float %475 0 - %477 = OpCompositeExtract %float %475 1 - %478 = OpCompositeExtract %float %475 2 - %479 = OpCompositeConstruct %v4float %476 %477 %478 %471 - %480 = OpAccessChain %_ptr_Function_v4float %97 %int_0 - OpStore %480 %479 - %481 = OpCompositeExtract %float %339 3 - %482 = OpCompositeInsert %v4float %481 %338 3 - %483 = OpLoad %_arr_v4float_uint_1 %97 - %484 = OpCompositeExtract %v4float %483 0 - %485 = OpVectorShuffle %v4float %92 %484 0 1 4 5 - %486 = OpVectorShuffle %v4float %92 %484 0 1 6 7 - OpStore %out_var_TEXCOORD0 %337 - OpStore %out_var_TEXCOORD1 %336 - OpStore %out_var_TEXCOORD2 %485 - OpStore %out_var_TEXCOORD3 %486 - OpStore %out_var_TEXCOORD8 %482 - OpStore %gl_Position %339 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders-ue4/asm/vert/texture-buffer.asm.vert b/third_party/spirv-cross/shaders-ue4/asm/vert/texture-buffer.asm.vert deleted file mode 100644 index 6d52623a14..0000000000 --- a/third_party/spirv-cross/shaders-ue4/asm/vert/texture-buffer.asm.vert +++ /dev/null @@ -1,1054 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 397 -; Schema: 0 - OpCapability Shader - OpCapability SampledBuffer - OpCapability StorageImageExtendedFormats - OpExtension "SPV_GOOGLE_hlsl_functionality1" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %Main "main" %gl_VertexIndex %gl_InstanceIndex %in_var_ATTRIBUTE0 %out_var_TEXCOORD6 %gl_Position - OpSource HLSL 600 - OpName %type_View "type.View" - OpMemberName %type_View 0 "View_TranslatedWorldToClip" - OpMemberName %type_View 1 "View_WorldToClip" - OpMemberName %type_View 2 "View_TranslatedWorldToView" - OpMemberName %type_View 3 "View_ViewToTranslatedWorld" - OpMemberName %type_View 4 "View_TranslatedWorldToCameraView" - OpMemberName %type_View 5 "View_CameraViewToTranslatedWorld" - OpMemberName %type_View 6 "View_ViewToClip" - OpMemberName %type_View 7 "View_ViewToClipNoAA" - OpMemberName %type_View 8 "View_ClipToView" - OpMemberName %type_View 9 "View_ClipToTranslatedWorld" - OpMemberName %type_View 10 "View_SVPositionToTranslatedWorld" - OpMemberName %type_View 11 "View_ScreenToWorld" - OpMemberName %type_View 12 "View_ScreenToTranslatedWorld" - OpMemberName %type_View 13 "View_ViewForward" - OpMemberName %type_View 14 "PrePadding_View_844" - OpMemberName %type_View 15 "View_ViewUp" - OpMemberName %type_View 16 "PrePadding_View_860" - OpMemberName %type_View 17 "View_ViewRight" - OpMemberName %type_View 18 "PrePadding_View_876" - OpMemberName %type_View 19 "View_HMDViewNoRollUp" - OpMemberName %type_View 20 "PrePadding_View_892" - OpMemberName %type_View 21 "View_HMDViewNoRollRight" - OpMemberName %type_View 22 "PrePadding_View_908" - OpMemberName %type_View 23 "View_InvDeviceZToWorldZTransform" - OpMemberName %type_View 24 "View_ScreenPositionScaleBias" - OpMemberName %type_View 25 "View_WorldCameraOrigin" - OpMemberName %type_View 26 "PrePadding_View_956" - OpMemberName %type_View 27 "View_TranslatedWorldCameraOrigin" - OpMemberName %type_View 28 "PrePadding_View_972" - OpMemberName %type_View 29 "View_WorldViewOrigin" - OpMemberName %type_View 30 "PrePadding_View_988" - OpMemberName %type_View 31 "View_PreViewTranslation" - OpMemberName %type_View 32 "PrePadding_View_1004" - OpMemberName %type_View 33 "View_PrevProjection" - OpMemberName %type_View 34 "View_PrevViewProj" - OpMemberName %type_View 35 "View_PrevViewRotationProj" - OpMemberName %type_View 36 "View_PrevViewToClip" - OpMemberName %type_View 37 "View_PrevClipToView" - OpMemberName %type_View 38 "View_PrevTranslatedWorldToClip" - OpMemberName %type_View 39 "View_PrevTranslatedWorldToView" - OpMemberName %type_View 40 "View_PrevViewToTranslatedWorld" - OpMemberName %type_View 41 "View_PrevTranslatedWorldToCameraView" - OpMemberName %type_View 42 "View_PrevCameraViewToTranslatedWorld" - OpMemberName %type_View 43 "View_PrevWorldCameraOrigin" - OpMemberName %type_View 44 "PrePadding_View_1660" - OpMemberName %type_View 45 "View_PrevWorldViewOrigin" - OpMemberName %type_View 46 "PrePadding_View_1676" - OpMemberName %type_View 47 "View_PrevPreViewTranslation" - OpMemberName %type_View 48 "PrePadding_View_1692" - OpMemberName %type_View 49 "View_PrevInvViewProj" - OpMemberName %type_View 50 "View_PrevScreenToTranslatedWorld" - OpMemberName %type_View 51 "View_ClipToPrevClip" - OpMemberName %type_View 52 "View_TemporalAAJitter" - OpMemberName %type_View 53 "View_GlobalClippingPlane" - OpMemberName %type_View 54 "View_FieldOfViewWideAngles" - OpMemberName %type_View 55 "View_PrevFieldOfViewWideAngles" - OpMemberName %type_View 56 "View_ViewRectMin" - OpMemberName %type_View 57 "View_ViewSizeAndInvSize" - OpMemberName %type_View 58 "View_BufferSizeAndInvSize" - OpMemberName %type_View 59 "View_BufferBilinearUVMinMax" - OpMemberName %type_View 60 "View_NumSceneColorMSAASamples" - OpMemberName %type_View 61 "View_PreExposure" - OpMemberName %type_View 62 "View_OneOverPreExposure" - OpMemberName %type_View 63 "PrePadding_View_2012" - OpMemberName %type_View 64 "View_DiffuseOverrideParameter" - OpMemberName %type_View 65 "View_SpecularOverrideParameter" - OpMemberName %type_View 66 "View_NormalOverrideParameter" - OpMemberName %type_View 67 "View_RoughnessOverrideParameter" - OpMemberName %type_View 68 "View_PrevFrameGameTime" - OpMemberName %type_View 69 "View_PrevFrameRealTime" - OpMemberName %type_View 70 "View_OutOfBoundsMask" - OpMemberName %type_View 71 "PrePadding_View_2084" - OpMemberName %type_View 72 "PrePadding_View_2088" - OpMemberName %type_View 73 "PrePadding_View_2092" - OpMemberName %type_View 74 "View_WorldCameraMovementSinceLastFrame" - OpMemberName %type_View 75 "View_CullingSign" - OpMemberName %type_View 76 "View_NearPlane" - OpMemberName %type_View 77 "View_AdaptiveTessellationFactor" - OpMemberName %type_View 78 "View_GameTime" - OpMemberName %type_View 79 "View_RealTime" - OpMemberName %type_View 80 "View_DeltaTime" - OpMemberName %type_View 81 "View_MaterialTextureMipBias" - OpMemberName %type_View 82 "View_MaterialTextureDerivativeMultiply" - OpMemberName %type_View 83 "View_Random" - OpMemberName %type_View 84 "View_FrameNumber" - OpMemberName %type_View 85 "View_StateFrameIndexMod8" - OpMemberName %type_View 86 "View_StateFrameIndex" - OpMemberName %type_View 87 "View_CameraCut" - OpMemberName %type_View 88 "View_UnlitViewmodeMask" - OpMemberName %type_View 89 "PrePadding_View_2164" - OpMemberName %type_View 90 "PrePadding_View_2168" - OpMemberName %type_View 91 "PrePadding_View_2172" - OpMemberName %type_View 92 "View_DirectionalLightColor" - OpMemberName %type_View 93 "View_DirectionalLightDirection" - OpMemberName %type_View 94 "PrePadding_View_2204" - OpMemberName %type_View 95 "View_TranslucencyLightingVolumeMin" - OpMemberName %type_View 96 "View_TranslucencyLightingVolumeInvSize" - OpMemberName %type_View 97 "View_TemporalAAParams" - OpMemberName %type_View 98 "View_CircleDOFParams" - OpMemberName %type_View 99 "View_DepthOfFieldSensorWidth" - OpMemberName %type_View 100 "View_DepthOfFieldFocalDistance" - OpMemberName %type_View 101 "View_DepthOfFieldScale" - OpMemberName %type_View 102 "View_DepthOfFieldFocalLength" - OpMemberName %type_View 103 "View_DepthOfFieldFocalRegion" - OpMemberName %type_View 104 "View_DepthOfFieldNearTransitionRegion" - OpMemberName %type_View 105 "View_DepthOfFieldFarTransitionRegion" - OpMemberName %type_View 106 "View_MotionBlurNormalizedToPixel" - OpMemberName %type_View 107 "View_bSubsurfacePostprocessEnabled" - OpMemberName %type_View 108 "View_GeneralPurposeTweak" - OpMemberName %type_View 109 "View_DemosaicVposOffset" - OpMemberName %type_View 110 "PrePadding_View_2348" - OpMemberName %type_View 111 "View_IndirectLightingColorScale" - OpMemberName %type_View 112 "View_HDR32bppEncodingMode" - OpMemberName %type_View 113 "View_AtmosphericFogSunDirection" - OpMemberName %type_View 114 "View_AtmosphericFogSunPower" - OpMemberName %type_View 115 "View_AtmosphericFogPower" - OpMemberName %type_View 116 "View_AtmosphericFogDensityScale" - OpMemberName %type_View 117 "View_AtmosphericFogDensityOffset" - OpMemberName %type_View 118 "View_AtmosphericFogGroundOffset" - OpMemberName %type_View 119 "View_AtmosphericFogDistanceScale" - OpMemberName %type_View 120 "View_AtmosphericFogAltitudeScale" - OpMemberName %type_View 121 "View_AtmosphericFogHeightScaleRayleigh" - OpMemberName %type_View 122 "View_AtmosphericFogStartDistance" - OpMemberName %type_View 123 "View_AtmosphericFogDistanceOffset" - OpMemberName %type_View 124 "View_AtmosphericFogSunDiscScale" - OpMemberName %type_View 125 "View_AtmosphericFogRenderMask" - OpMemberName %type_View 126 "View_AtmosphericFogInscatterAltitudeSampleNum" - OpMemberName %type_View 127 "View_AtmosphericFogSunColor" - OpMemberName %type_View 128 "View_NormalCurvatureToRoughnessScaleBias" - OpMemberName %type_View 129 "View_RenderingReflectionCaptureMask" - OpMemberName %type_View 130 "View_AmbientCubemapTint" - OpMemberName %type_View 131 "View_AmbientCubemapIntensity" - OpMemberName %type_View 132 "View_SkyLightParameters" - OpMemberName %type_View 133 "PrePadding_View_2488" - OpMemberName %type_View 134 "PrePadding_View_2492" - OpMemberName %type_View 135 "View_SkyLightColor" - OpMemberName %type_View 136 "View_SkyIrradianceEnvironmentMap" - OpMemberName %type_View 137 "View_MobilePreviewMode" - OpMemberName %type_View 138 "View_HMDEyePaddingOffset" - OpMemberName %type_View 139 "View_ReflectionCubemapMaxMip" - OpMemberName %type_View 140 "View_ShowDecalsMask" - OpMemberName %type_View 141 "View_DistanceFieldAOSpecularOcclusionMode" - OpMemberName %type_View 142 "View_IndirectCapsuleSelfShadowingIntensity" - OpMemberName %type_View 143 "PrePadding_View_2648" - OpMemberName %type_View 144 "PrePadding_View_2652" - OpMemberName %type_View 145 "View_ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight" - OpMemberName %type_View 146 "View_StereoPassIndex" - OpMemberName %type_View 147 "View_GlobalVolumeCenterAndExtent" - OpMemberName %type_View 148 "View_GlobalVolumeWorldToUVAddAndMul" - OpMemberName %type_View 149 "View_GlobalVolumeDimension" - OpMemberName %type_View 150 "View_GlobalVolumeTexelSize" - OpMemberName %type_View 151 "View_MaxGlobalDistance" - OpMemberName %type_View 152 "View_bCheckerboardSubsurfaceProfileRendering" - OpMemberName %type_View 153 "View_VolumetricFogInvGridSize" - OpMemberName %type_View 154 "PrePadding_View_2828" - OpMemberName %type_View 155 "View_VolumetricFogGridZParams" - OpMemberName %type_View 156 "PrePadding_View_2844" - OpMemberName %type_View 157 "View_VolumetricFogSVPosToVolumeUV" - OpMemberName %type_View 158 "View_VolumetricFogMaxDistance" - OpMemberName %type_View 159 "PrePadding_View_2860" - OpMemberName %type_View 160 "View_VolumetricLightmapWorldToUVScale" - OpMemberName %type_View 161 "PrePadding_View_2876" - OpMemberName %type_View 162 "View_VolumetricLightmapWorldToUVAdd" - OpMemberName %type_View 163 "PrePadding_View_2892" - OpMemberName %type_View 164 "View_VolumetricLightmapIndirectionTextureSize" - OpMemberName %type_View 165 "View_VolumetricLightmapBrickSize" - OpMemberName %type_View 166 "View_VolumetricLightmapBrickTexelSize" - OpMemberName %type_View 167 "View_StereoIPD" - OpMemberName %type_View 168 "View_IndirectLightingCacheShowFlag" - OpMemberName %type_View 169 "View_EyeToPixelSpreadAngle" - OpName %View "View" - OpName %type_Primitive "type.Primitive" - OpMemberName %type_Primitive 0 "Primitive_LocalToWorld" - OpMemberName %type_Primitive 1 "Primitive_InvNonUniformScaleAndDeterminantSign" - OpMemberName %type_Primitive 2 "Primitive_ObjectWorldPositionAndRadius" - OpMemberName %type_Primitive 3 "Primitive_WorldToLocal" - OpMemberName %type_Primitive 4 "Primitive_PreviousLocalToWorld" - OpMemberName %type_Primitive 5 "Primitive_PreviousWorldToLocal" - OpMemberName %type_Primitive 6 "Primitive_ActorWorldPosition" - OpMemberName %type_Primitive 7 "Primitive_UseSingleSampleShadowFromStationaryLights" - OpMemberName %type_Primitive 8 "Primitive_ObjectBounds" - OpMemberName %type_Primitive 9 "Primitive_LpvBiasMultiplier" - OpMemberName %type_Primitive 10 "Primitive_DecalReceiverMask" - OpMemberName %type_Primitive 11 "Primitive_PerObjectGBufferData" - OpMemberName %type_Primitive 12 "Primitive_UseVolumetricLightmapShadowFromStationaryLights" - OpMemberName %type_Primitive 13 "Primitive_UseEditorDepthTest" - OpMemberName %type_Primitive 14 "Primitive_ObjectOrientation" - OpMemberName %type_Primitive 15 "Primitive_NonUniformScale" - OpMemberName %type_Primitive 16 "Primitive_LocalObjectBoundsMin" - OpMemberName %type_Primitive 17 "PrePadding_Primitive_380" - OpMemberName %type_Primitive 18 "Primitive_LocalObjectBoundsMax" - OpMemberName %type_Primitive 19 "Primitive_LightingChannelMask" - OpMemberName %type_Primitive 20 "Primitive_LightmapDataIndex" - OpMemberName %type_Primitive 21 "Primitive_SingleCaptureIndex" - OpName %Primitive "Primitive" - OpName %type_MobileShadowDepthPass "type.MobileShadowDepthPass" - OpMemberName %type_MobileShadowDepthPass 0 "PrePadding_MobileShadowDepthPass_0" - OpMemberName %type_MobileShadowDepthPass 1 "PrePadding_MobileShadowDepthPass_4" - OpMemberName %type_MobileShadowDepthPass 2 "PrePadding_MobileShadowDepthPass_8" - OpMemberName %type_MobileShadowDepthPass 3 "PrePadding_MobileShadowDepthPass_12" - OpMemberName %type_MobileShadowDepthPass 4 "PrePadding_MobileShadowDepthPass_16" - OpMemberName %type_MobileShadowDepthPass 5 "PrePadding_MobileShadowDepthPass_20" - OpMemberName %type_MobileShadowDepthPass 6 "PrePadding_MobileShadowDepthPass_24" - OpMemberName %type_MobileShadowDepthPass 7 "PrePadding_MobileShadowDepthPass_28" - OpMemberName %type_MobileShadowDepthPass 8 "PrePadding_MobileShadowDepthPass_32" - OpMemberName %type_MobileShadowDepthPass 9 "PrePadding_MobileShadowDepthPass_36" - OpMemberName %type_MobileShadowDepthPass 10 "PrePadding_MobileShadowDepthPass_40" - OpMemberName %type_MobileShadowDepthPass 11 "PrePadding_MobileShadowDepthPass_44" - OpMemberName %type_MobileShadowDepthPass 12 "PrePadding_MobileShadowDepthPass_48" - OpMemberName %type_MobileShadowDepthPass 13 "PrePadding_MobileShadowDepthPass_52" - OpMemberName %type_MobileShadowDepthPass 14 "PrePadding_MobileShadowDepthPass_56" - OpMemberName %type_MobileShadowDepthPass 15 "PrePadding_MobileShadowDepthPass_60" - OpMemberName %type_MobileShadowDepthPass 16 "PrePadding_MobileShadowDepthPass_64" - OpMemberName %type_MobileShadowDepthPass 17 "PrePadding_MobileShadowDepthPass_68" - OpMemberName %type_MobileShadowDepthPass 18 "PrePadding_MobileShadowDepthPass_72" - OpMemberName %type_MobileShadowDepthPass 19 "PrePadding_MobileShadowDepthPass_76" - OpMemberName %type_MobileShadowDepthPass 20 "MobileShadowDepthPass_ProjectionMatrix" - OpMemberName %type_MobileShadowDepthPass 21 "MobileShadowDepthPass_ShadowParams" - OpMemberName %type_MobileShadowDepthPass 22 "MobileShadowDepthPass_bClampToNearPlane" - OpMemberName %type_MobileShadowDepthPass 23 "PrePadding_MobileShadowDepthPass_156" - OpMemberName %type_MobileShadowDepthPass 24 "MobileShadowDepthPass_ShadowViewProjectionMatrices" - OpName %MobileShadowDepthPass "MobileShadowDepthPass" - OpName %type_EmitterDynamicUniforms "type.EmitterDynamicUniforms" - OpMemberName %type_EmitterDynamicUniforms 0 "EmitterDynamicUniforms_LocalToWorldScale" - OpMemberName %type_EmitterDynamicUniforms 1 "EmitterDynamicUniforms_EmitterInstRandom" - OpMemberName %type_EmitterDynamicUniforms 2 "PrePadding_EmitterDynamicUniforms_12" - OpMemberName %type_EmitterDynamicUniforms 3 "EmitterDynamicUniforms_AxisLockRight" - OpMemberName %type_EmitterDynamicUniforms 4 "EmitterDynamicUniforms_AxisLockUp" - OpMemberName %type_EmitterDynamicUniforms 5 "EmitterDynamicUniforms_DynamicColor" - OpMemberName %type_EmitterDynamicUniforms 6 "EmitterDynamicUniforms_MacroUVParameters" - OpName %EmitterDynamicUniforms "EmitterDynamicUniforms" - OpName %type_EmitterUniforms "type.EmitterUniforms" - OpMemberName %type_EmitterUniforms 0 "EmitterUniforms_ColorCurve" - OpMemberName %type_EmitterUniforms 1 "EmitterUniforms_ColorScale" - OpMemberName %type_EmitterUniforms 2 "EmitterUniforms_ColorBias" - OpMemberName %type_EmitterUniforms 3 "EmitterUniforms_MiscCurve" - OpMemberName %type_EmitterUniforms 4 "EmitterUniforms_MiscScale" - OpMemberName %type_EmitterUniforms 5 "EmitterUniforms_MiscBias" - OpMemberName %type_EmitterUniforms 6 "EmitterUniforms_SizeBySpeed" - OpMemberName %type_EmitterUniforms 7 "EmitterUniforms_SubImageSize" - OpMemberName %type_EmitterUniforms 8 "EmitterUniforms_TangentSelector" - OpMemberName %type_EmitterUniforms 9 "EmitterUniforms_CameraFacingBlend" - OpMemberName %type_EmitterUniforms 10 "EmitterUniforms_RemoveHMDRoll" - OpMemberName %type_EmitterUniforms 11 "EmitterUniforms_RotationRateScale" - OpMemberName %type_EmitterUniforms 12 "EmitterUniforms_RotationBias" - OpMemberName %type_EmitterUniforms 13 "EmitterUniforms_CameraMotionBlurAmount" - OpMemberName %type_EmitterUniforms 14 "PrePadding_EmitterUniforms_172" - OpMemberName %type_EmitterUniforms 15 "EmitterUniforms_PivotOffset" - OpName %EmitterUniforms "EmitterUniforms" - OpName %type_buffer_image "type.buffer.image" - OpName %ParticleIndices "ParticleIndices" - OpName %type__Globals "type.$Globals" - OpMemberName %type__Globals 0 "ParticleIndicesOffset" - OpName %_Globals "$Globals" - OpName %type_2d_image "type.2d.image" - OpName %PositionTexture "PositionTexture" - OpName %type_sampler "type.sampler" - OpName %PositionTextureSampler "PositionTextureSampler" - OpName %VelocityTexture "VelocityTexture" - OpName %VelocityTextureSampler "VelocityTextureSampler" - OpName %AttributesTexture "AttributesTexture" - OpName %AttributesTextureSampler "AttributesTextureSampler" - OpName %CurveTexture "CurveTexture" - OpName %CurveTextureSampler "CurveTextureSampler" - OpName %in_var_ATTRIBUTE0 "in.var.ATTRIBUTE0" - OpName %out_var_TEXCOORD6 "out.var.TEXCOORD6" - OpName %Main "Main" - OpName %type_sampled_image "type.sampled.image" - OpDecorate %gl_VertexIndex BuiltIn VertexIndex - OpDecorateString %gl_VertexIndex UserSemantic "SV_VertexID" - OpDecorate %gl_InstanceIndex BuiltIn InstanceIndex - OpDecorateString %gl_InstanceIndex UserSemantic "SV_InstanceID" - OpDecorateString %in_var_ATTRIBUTE0 UserSemantic "ATTRIBUTE0" - OpDecorateString %out_var_TEXCOORD6 UserSemantic "TEXCOORD6" - OpDecorate %gl_Position BuiltIn Position - OpDecorateString %gl_Position UserSemantic "SV_POSITION" - OpDecorate %in_var_ATTRIBUTE0 Location 0 - OpDecorate %out_var_TEXCOORD6 Location 0 - OpDecorate %View DescriptorSet 0 - OpDecorate %View Binding 1 - OpDecorate %Primitive DescriptorSet 0 - OpDecorate %Primitive Binding 2 - OpDecorate %MobileShadowDepthPass DescriptorSet 0 - OpDecorate %MobileShadowDepthPass Binding 3 - OpDecorate %EmitterDynamicUniforms DescriptorSet 0 - OpDecorate %EmitterDynamicUniforms Binding 4 - OpDecorate %EmitterUniforms DescriptorSet 0 - OpDecorate %EmitterUniforms Binding 5 - OpDecorate %ParticleIndices DescriptorSet 0 - OpDecorate %ParticleIndices Binding 0 - OpDecorate %_Globals DescriptorSet 0 - OpDecorate %_Globals Binding 6 - OpDecorate %PositionTexture DescriptorSet 0 - OpDecorate %PositionTexture Binding 1 - OpDecorate %PositionTextureSampler DescriptorSet 0 - OpDecorate %PositionTextureSampler Binding 0 - OpDecorate %VelocityTexture DescriptorSet 0 - OpDecorate %VelocityTexture Binding 2 - OpDecorate %VelocityTextureSampler DescriptorSet 0 - OpDecorate %VelocityTextureSampler Binding 1 - OpDecorate %AttributesTexture DescriptorSet 0 - OpDecorate %AttributesTexture Binding 3 - OpDecorate %AttributesTextureSampler DescriptorSet 0 - OpDecorate %AttributesTextureSampler Binding 2 - OpDecorate %CurveTexture DescriptorSet 0 - OpDecorate %CurveTexture Binding 4 - OpDecorate %CurveTextureSampler DescriptorSet 0 - OpDecorate %CurveTextureSampler Binding 3 - OpDecorate %_arr_v4float_uint_2 ArrayStride 16 - OpDecorate %_arr_v4float_uint_7 ArrayStride 16 - OpDecorate %_arr_v4float_uint_4 ArrayStride 16 - OpMemberDecorate %type_View 0 Offset 0 - OpMemberDecorate %type_View 0 MatrixStride 16 - OpMemberDecorate %type_View 0 ColMajor - OpMemberDecorate %type_View 1 Offset 64 - OpMemberDecorate %type_View 1 MatrixStride 16 - OpMemberDecorate %type_View 1 ColMajor - OpMemberDecorate %type_View 2 Offset 128 - OpMemberDecorate %type_View 2 MatrixStride 16 - OpMemberDecorate %type_View 2 ColMajor - OpMemberDecorate %type_View 3 Offset 192 - OpMemberDecorate %type_View 3 MatrixStride 16 - OpMemberDecorate %type_View 3 ColMajor - OpMemberDecorate %type_View 4 Offset 256 - OpMemberDecorate %type_View 4 MatrixStride 16 - OpMemberDecorate %type_View 4 ColMajor - OpMemberDecorate %type_View 5 Offset 320 - OpMemberDecorate %type_View 5 MatrixStride 16 - OpMemberDecorate %type_View 5 ColMajor - OpMemberDecorate %type_View 6 Offset 384 - OpMemberDecorate %type_View 6 MatrixStride 16 - OpMemberDecorate %type_View 6 ColMajor - OpMemberDecorate %type_View 7 Offset 448 - OpMemberDecorate %type_View 7 MatrixStride 16 - OpMemberDecorate %type_View 7 ColMajor - OpMemberDecorate %type_View 8 Offset 512 - OpMemberDecorate %type_View 8 MatrixStride 16 - OpMemberDecorate %type_View 8 ColMajor - OpMemberDecorate %type_View 9 Offset 576 - OpMemberDecorate %type_View 9 MatrixStride 16 - OpMemberDecorate %type_View 9 ColMajor - OpMemberDecorate %type_View 10 Offset 640 - OpMemberDecorate %type_View 10 MatrixStride 16 - OpMemberDecorate %type_View 10 ColMajor - OpMemberDecorate %type_View 11 Offset 704 - OpMemberDecorate %type_View 11 MatrixStride 16 - OpMemberDecorate %type_View 11 ColMajor - OpMemberDecorate %type_View 12 Offset 768 - OpMemberDecorate %type_View 12 MatrixStride 16 - OpMemberDecorate %type_View 12 ColMajor - OpMemberDecorate %type_View 13 Offset 832 - OpMemberDecorate %type_View 14 Offset 844 - OpMemberDecorate %type_View 15 Offset 848 - OpMemberDecorate %type_View 16 Offset 860 - OpMemberDecorate %type_View 17 Offset 864 - OpMemberDecorate %type_View 18 Offset 876 - OpMemberDecorate %type_View 19 Offset 880 - OpMemberDecorate %type_View 20 Offset 892 - OpMemberDecorate %type_View 21 Offset 896 - OpMemberDecorate %type_View 22 Offset 908 - OpMemberDecorate %type_View 23 Offset 912 - OpMemberDecorate %type_View 24 Offset 928 - OpMemberDecorate %type_View 25 Offset 944 - OpMemberDecorate %type_View 26 Offset 956 - OpMemberDecorate %type_View 27 Offset 960 - OpMemberDecorate %type_View 28 Offset 972 - OpMemberDecorate %type_View 29 Offset 976 - OpMemberDecorate %type_View 30 Offset 988 - OpMemberDecorate %type_View 31 Offset 992 - OpMemberDecorate %type_View 32 Offset 1004 - OpMemberDecorate %type_View 33 Offset 1008 - OpMemberDecorate %type_View 33 MatrixStride 16 - OpMemberDecorate %type_View 33 ColMajor - OpMemberDecorate %type_View 34 Offset 1072 - OpMemberDecorate %type_View 34 MatrixStride 16 - OpMemberDecorate %type_View 34 ColMajor - OpMemberDecorate %type_View 35 Offset 1136 - OpMemberDecorate %type_View 35 MatrixStride 16 - OpMemberDecorate %type_View 35 ColMajor - OpMemberDecorate %type_View 36 Offset 1200 - OpMemberDecorate %type_View 36 MatrixStride 16 - OpMemberDecorate %type_View 36 ColMajor - OpMemberDecorate %type_View 37 Offset 1264 - OpMemberDecorate %type_View 37 MatrixStride 16 - OpMemberDecorate %type_View 37 ColMajor - OpMemberDecorate %type_View 38 Offset 1328 - OpMemberDecorate %type_View 38 MatrixStride 16 - OpMemberDecorate %type_View 38 ColMajor - OpMemberDecorate %type_View 39 Offset 1392 - OpMemberDecorate %type_View 39 MatrixStride 16 - OpMemberDecorate %type_View 39 ColMajor - OpMemberDecorate %type_View 40 Offset 1456 - OpMemberDecorate %type_View 40 MatrixStride 16 - OpMemberDecorate %type_View 40 ColMajor - OpMemberDecorate %type_View 41 Offset 1520 - OpMemberDecorate %type_View 41 MatrixStride 16 - OpMemberDecorate %type_View 41 ColMajor - OpMemberDecorate %type_View 42 Offset 1584 - OpMemberDecorate %type_View 42 MatrixStride 16 - OpMemberDecorate %type_View 42 ColMajor - OpMemberDecorate %type_View 43 Offset 1648 - OpMemberDecorate %type_View 44 Offset 1660 - OpMemberDecorate %type_View 45 Offset 1664 - OpMemberDecorate %type_View 46 Offset 1676 - OpMemberDecorate %type_View 47 Offset 1680 - OpMemberDecorate %type_View 48 Offset 1692 - OpMemberDecorate %type_View 49 Offset 1696 - OpMemberDecorate %type_View 49 MatrixStride 16 - OpMemberDecorate %type_View 49 ColMajor - OpMemberDecorate %type_View 50 Offset 1760 - OpMemberDecorate %type_View 50 MatrixStride 16 - OpMemberDecorate %type_View 50 ColMajor - OpMemberDecorate %type_View 51 Offset 1824 - OpMemberDecorate %type_View 51 MatrixStride 16 - OpMemberDecorate %type_View 51 ColMajor - OpMemberDecorate %type_View 52 Offset 1888 - OpMemberDecorate %type_View 53 Offset 1904 - OpMemberDecorate %type_View 54 Offset 1920 - OpMemberDecorate %type_View 55 Offset 1928 - OpMemberDecorate %type_View 56 Offset 1936 - OpMemberDecorate %type_View 57 Offset 1952 - OpMemberDecorate %type_View 58 Offset 1968 - OpMemberDecorate %type_View 59 Offset 1984 - OpMemberDecorate %type_View 60 Offset 2000 - OpMemberDecorate %type_View 61 Offset 2004 - OpMemberDecorate %type_View 62 Offset 2008 - OpMemberDecorate %type_View 63 Offset 2012 - OpMemberDecorate %type_View 64 Offset 2016 - OpMemberDecorate %type_View 65 Offset 2032 - OpMemberDecorate %type_View 66 Offset 2048 - OpMemberDecorate %type_View 67 Offset 2064 - OpMemberDecorate %type_View 68 Offset 2072 - OpMemberDecorate %type_View 69 Offset 2076 - OpMemberDecorate %type_View 70 Offset 2080 - OpMemberDecorate %type_View 71 Offset 2084 - OpMemberDecorate %type_View 72 Offset 2088 - OpMemberDecorate %type_View 73 Offset 2092 - OpMemberDecorate %type_View 74 Offset 2096 - OpMemberDecorate %type_View 75 Offset 2108 - OpMemberDecorate %type_View 76 Offset 2112 - OpMemberDecorate %type_View 77 Offset 2116 - OpMemberDecorate %type_View 78 Offset 2120 - OpMemberDecorate %type_View 79 Offset 2124 - OpMemberDecorate %type_View 80 Offset 2128 - OpMemberDecorate %type_View 81 Offset 2132 - OpMemberDecorate %type_View 82 Offset 2136 - OpMemberDecorate %type_View 83 Offset 2140 - OpMemberDecorate %type_View 84 Offset 2144 - OpMemberDecorate %type_View 85 Offset 2148 - OpMemberDecorate %type_View 86 Offset 2152 - OpMemberDecorate %type_View 87 Offset 2156 - OpMemberDecorate %type_View 88 Offset 2160 - OpMemberDecorate %type_View 89 Offset 2164 - OpMemberDecorate %type_View 90 Offset 2168 - OpMemberDecorate %type_View 91 Offset 2172 - OpMemberDecorate %type_View 92 Offset 2176 - OpMemberDecorate %type_View 93 Offset 2192 - OpMemberDecorate %type_View 94 Offset 2204 - OpMemberDecorate %type_View 95 Offset 2208 - OpMemberDecorate %type_View 96 Offset 2240 - OpMemberDecorate %type_View 97 Offset 2272 - OpMemberDecorate %type_View 98 Offset 2288 - OpMemberDecorate %type_View 99 Offset 2304 - OpMemberDecorate %type_View 100 Offset 2308 - OpMemberDecorate %type_View 101 Offset 2312 - OpMemberDecorate %type_View 102 Offset 2316 - OpMemberDecorate %type_View 103 Offset 2320 - OpMemberDecorate %type_View 104 Offset 2324 - OpMemberDecorate %type_View 105 Offset 2328 - OpMemberDecorate %type_View 106 Offset 2332 - OpMemberDecorate %type_View 107 Offset 2336 - OpMemberDecorate %type_View 108 Offset 2340 - OpMemberDecorate %type_View 109 Offset 2344 - OpMemberDecorate %type_View 110 Offset 2348 - OpMemberDecorate %type_View 111 Offset 2352 - OpMemberDecorate %type_View 112 Offset 2364 - OpMemberDecorate %type_View 113 Offset 2368 - OpMemberDecorate %type_View 114 Offset 2380 - OpMemberDecorate %type_View 115 Offset 2384 - OpMemberDecorate %type_View 116 Offset 2388 - OpMemberDecorate %type_View 117 Offset 2392 - OpMemberDecorate %type_View 118 Offset 2396 - OpMemberDecorate %type_View 119 Offset 2400 - OpMemberDecorate %type_View 120 Offset 2404 - OpMemberDecorate %type_View 121 Offset 2408 - OpMemberDecorate %type_View 122 Offset 2412 - OpMemberDecorate %type_View 123 Offset 2416 - OpMemberDecorate %type_View 124 Offset 2420 - OpMemberDecorate %type_View 125 Offset 2424 - OpMemberDecorate %type_View 126 Offset 2428 - OpMemberDecorate %type_View 127 Offset 2432 - OpMemberDecorate %type_View 128 Offset 2448 - OpMemberDecorate %type_View 129 Offset 2460 - OpMemberDecorate %type_View 130 Offset 2464 - OpMemberDecorate %type_View 131 Offset 2480 - OpMemberDecorate %type_View 132 Offset 2484 - OpMemberDecorate %type_View 133 Offset 2488 - OpMemberDecorate %type_View 134 Offset 2492 - OpMemberDecorate %type_View 135 Offset 2496 - OpMemberDecorate %type_View 136 Offset 2512 - OpMemberDecorate %type_View 137 Offset 2624 - OpMemberDecorate %type_View 138 Offset 2628 - OpMemberDecorate %type_View 139 Offset 2632 - OpMemberDecorate %type_View 140 Offset 2636 - OpMemberDecorate %type_View 141 Offset 2640 - OpMemberDecorate %type_View 142 Offset 2644 - OpMemberDecorate %type_View 143 Offset 2648 - OpMemberDecorate %type_View 144 Offset 2652 - OpMemberDecorate %type_View 145 Offset 2656 - OpMemberDecorate %type_View 146 Offset 2668 - OpMemberDecorate %type_View 147 Offset 2672 - OpMemberDecorate %type_View 148 Offset 2736 - OpMemberDecorate %type_View 149 Offset 2800 - OpMemberDecorate %type_View 150 Offset 2804 - OpMemberDecorate %type_View 151 Offset 2808 - OpMemberDecorate %type_View 152 Offset 2812 - OpMemberDecorate %type_View 153 Offset 2816 - OpMemberDecorate %type_View 154 Offset 2828 - OpMemberDecorate %type_View 155 Offset 2832 - OpMemberDecorate %type_View 156 Offset 2844 - OpMemberDecorate %type_View 157 Offset 2848 - OpMemberDecorate %type_View 158 Offset 2856 - OpMemberDecorate %type_View 159 Offset 2860 - OpMemberDecorate %type_View 160 Offset 2864 - OpMemberDecorate %type_View 161 Offset 2876 - OpMemberDecorate %type_View 162 Offset 2880 - OpMemberDecorate %type_View 163 Offset 2892 - OpMemberDecorate %type_View 164 Offset 2896 - OpMemberDecorate %type_View 165 Offset 2908 - OpMemberDecorate %type_View 166 Offset 2912 - OpMemberDecorate %type_View 167 Offset 2924 - OpMemberDecorate %type_View 168 Offset 2928 - OpMemberDecorate %type_View 169 Offset 2932 - OpDecorate %type_View Block - OpMemberDecorate %type_Primitive 0 Offset 0 - OpMemberDecorate %type_Primitive 0 MatrixStride 16 - OpMemberDecorate %type_Primitive 0 ColMajor - OpMemberDecorate %type_Primitive 1 Offset 64 - OpMemberDecorate %type_Primitive 2 Offset 80 - OpMemberDecorate %type_Primitive 3 Offset 96 - OpMemberDecorate %type_Primitive 3 MatrixStride 16 - OpMemberDecorate %type_Primitive 3 ColMajor - OpMemberDecorate %type_Primitive 4 Offset 160 - OpMemberDecorate %type_Primitive 4 MatrixStride 16 - OpMemberDecorate %type_Primitive 4 ColMajor - OpMemberDecorate %type_Primitive 5 Offset 224 - OpMemberDecorate %type_Primitive 5 MatrixStride 16 - OpMemberDecorate %type_Primitive 5 ColMajor - OpMemberDecorate %type_Primitive 6 Offset 288 - OpMemberDecorate %type_Primitive 7 Offset 300 - OpMemberDecorate %type_Primitive 8 Offset 304 - OpMemberDecorate %type_Primitive 9 Offset 316 - OpMemberDecorate %type_Primitive 10 Offset 320 - OpMemberDecorate %type_Primitive 11 Offset 324 - OpMemberDecorate %type_Primitive 12 Offset 328 - OpMemberDecorate %type_Primitive 13 Offset 332 - OpMemberDecorate %type_Primitive 14 Offset 336 - OpMemberDecorate %type_Primitive 15 Offset 352 - OpMemberDecorate %type_Primitive 16 Offset 368 - OpMemberDecorate %type_Primitive 17 Offset 380 - OpMemberDecorate %type_Primitive 18 Offset 384 - OpMemberDecorate %type_Primitive 19 Offset 396 - OpMemberDecorate %type_Primitive 20 Offset 400 - OpMemberDecorate %type_Primitive 21 Offset 404 - OpDecorate %type_Primitive Block - OpDecorate %_arr_mat4v4float_uint_6 ArrayStride 64 - OpMemberDecorate %type_MobileShadowDepthPass 0 Offset 0 - OpMemberDecorate %type_MobileShadowDepthPass 1 Offset 4 - OpMemberDecorate %type_MobileShadowDepthPass 2 Offset 8 - OpMemberDecorate %type_MobileShadowDepthPass 3 Offset 12 - OpMemberDecorate %type_MobileShadowDepthPass 4 Offset 16 - OpMemberDecorate %type_MobileShadowDepthPass 5 Offset 20 - OpMemberDecorate %type_MobileShadowDepthPass 6 Offset 24 - OpMemberDecorate %type_MobileShadowDepthPass 7 Offset 28 - OpMemberDecorate %type_MobileShadowDepthPass 8 Offset 32 - OpMemberDecorate %type_MobileShadowDepthPass 9 Offset 36 - OpMemberDecorate %type_MobileShadowDepthPass 10 Offset 40 - OpMemberDecorate %type_MobileShadowDepthPass 11 Offset 44 - OpMemberDecorate %type_MobileShadowDepthPass 12 Offset 48 - OpMemberDecorate %type_MobileShadowDepthPass 13 Offset 52 - OpMemberDecorate %type_MobileShadowDepthPass 14 Offset 56 - OpMemberDecorate %type_MobileShadowDepthPass 15 Offset 60 - OpMemberDecorate %type_MobileShadowDepthPass 16 Offset 64 - OpMemberDecorate %type_MobileShadowDepthPass 17 Offset 68 - OpMemberDecorate %type_MobileShadowDepthPass 18 Offset 72 - OpMemberDecorate %type_MobileShadowDepthPass 19 Offset 76 - OpMemberDecorate %type_MobileShadowDepthPass 20 Offset 80 - OpMemberDecorate %type_MobileShadowDepthPass 20 MatrixStride 16 - OpMemberDecorate %type_MobileShadowDepthPass 20 ColMajor - OpMemberDecorate %type_MobileShadowDepthPass 21 Offset 144 - OpMemberDecorate %type_MobileShadowDepthPass 22 Offset 152 - OpMemberDecorate %type_MobileShadowDepthPass 23 Offset 156 - OpMemberDecorate %type_MobileShadowDepthPass 24 Offset 160 - OpMemberDecorate %type_MobileShadowDepthPass 24 MatrixStride 16 - OpMemberDecorate %type_MobileShadowDepthPass 24 ColMajor - OpDecorate %type_MobileShadowDepthPass Block - OpMemberDecorate %type_EmitterDynamicUniforms 0 Offset 0 - OpMemberDecorate %type_EmitterDynamicUniforms 1 Offset 8 - OpMemberDecorate %type_EmitterDynamicUniforms 2 Offset 12 - OpMemberDecorate %type_EmitterDynamicUniforms 3 Offset 16 - OpMemberDecorate %type_EmitterDynamicUniforms 4 Offset 32 - OpMemberDecorate %type_EmitterDynamicUniforms 5 Offset 48 - OpMemberDecorate %type_EmitterDynamicUniforms 6 Offset 64 - OpDecorate %type_EmitterDynamicUniforms Block - OpMemberDecorate %type_EmitterUniforms 0 Offset 0 - OpMemberDecorate %type_EmitterUniforms 1 Offset 16 - OpMemberDecorate %type_EmitterUniforms 2 Offset 32 - OpMemberDecorate %type_EmitterUniforms 3 Offset 48 - OpMemberDecorate %type_EmitterUniforms 4 Offset 64 - OpMemberDecorate %type_EmitterUniforms 5 Offset 80 - OpMemberDecorate %type_EmitterUniforms 6 Offset 96 - OpMemberDecorate %type_EmitterUniforms 7 Offset 112 - OpMemberDecorate %type_EmitterUniforms 8 Offset 128 - OpMemberDecorate %type_EmitterUniforms 9 Offset 144 - OpMemberDecorate %type_EmitterUniforms 10 Offset 156 - OpMemberDecorate %type_EmitterUniforms 11 Offset 160 - OpMemberDecorate %type_EmitterUniforms 12 Offset 164 - OpMemberDecorate %type_EmitterUniforms 13 Offset 168 - OpMemberDecorate %type_EmitterUniforms 14 Offset 172 - OpMemberDecorate %type_EmitterUniforms 15 Offset 176 - OpDecorate %type_EmitterUniforms Block - OpMemberDecorate %type__Globals 0 Offset 0 - OpDecorate %type__Globals Block - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%mat4v4float = OpTypeMatrix %v4float 4 - %v3float = OpTypeVector %float 3 - %v2float = OpTypeVector %float 2 - %int = OpTypeInt 32 1 - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 - %uint_7 = OpConstant %uint 7 - %uint_4 = OpConstant %uint 4 - %float_0 = OpConstant %float 0 - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 - %uint_16 = OpConstant %uint 16 - %int_3 = OpConstant %int 3 - %float_1 = OpConstant %float 1 -%float_9_99999975en05 = OpConstant %float 9.99999975e-05 - %54 = OpConstantComposite %v3float %float_0 %float_0 %float_9_99999975en05 - %int_2 = OpConstant %int 2 - %int_5 = OpConstant %int 5 - %int_4 = OpConstant %int 4 - %float_0_5 = OpConstant %float 0.5 - %float_n0_5 = OpConstant %float -0.5 - %float_2 = OpConstant %float 2 - %61 = OpConstantComposite %v2float %float_2 %float_2 - %int_6 = OpConstant %int 6 - %63 = OpConstantComposite %v2float %float_1 %float_1 - %int_11 = OpConstant %int 11 - %int_15 = OpConstant %int 15 - %int_8 = OpConstant %int 8 - %int_9 = OpConstant %int 9 - %int_10 = OpConstant %int 10 - %int_12 = OpConstant %int 12 - %uint_0 = OpConstant %uint 0 - %uint_1 = OpConstant %uint 1 -%mat3v3float = OpTypeMatrix %v3float 3 - %int_20 = OpConstant %int 20 - %int_22 = OpConstant %int 22 -%float_9_99999997en07 = OpConstant %float 9.99999997e-07 - %int_21 = OpConstant %int 21 - %int_17 = OpConstant %int 17 - %int_19 = OpConstant %int 19 - %int_27 = OpConstant %int 27 - %int_31 = OpConstant %int 31 - %uint_3 = OpConstant %uint 3 - %82 = OpConstantComposite %v3float %float_0 %float_0 %float_1 -%float_0_00999999978 = OpConstant %float 0.00999999978 -%_arr_v4float_uint_2 = OpTypeArray %v4float %uint_2 -%_arr_v4float_uint_7 = OpTypeArray %v4float %uint_7 -%_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4 - %type_View = OpTypeStruct %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %v3float %float %v3float %float %v3float %float %v3float %float %v3float %float %v4float %v4float %v3float %float %v3float %float %v3float %float %v3float %float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %mat4v4float %v3float %float %v3float %float %v3float %float %mat4v4float %mat4v4float %mat4v4float %v4float %v4float %v2float %v2float %v4float %v4float %v4float %v4float %int %float %float %float %v4float %v4float %v4float %v2float %float %float %float %float %float %float %v3float %float %float %float %float %float %float %float %float %uint %uint %uint %uint %float %float %float %float %float %v4float %v3float %float %_arr_v4float_uint_2 %_arr_v4float_uint_2 %v4float %v4float %float %float %float %float %float %float %float %float %float %float %float %float %v3float %float %v3float %float %float %float %float %float %float %float %float %float %float %float %uint %uint %v4float %v3float %float %v4float %float %float %float %float %v4float %_arr_v4float_uint_7 %float %float %float %float %uint %float %float %float %v3float %int %_arr_v4float_uint_4 %_arr_v4float_uint_4 %float %float %float %float %v3float %float %v3float %float %v2float %float %float %v3float %float %v3float %float %v3float %float %v3float %float %float %float -%_ptr_Uniform_type_View = OpTypePointer Uniform %type_View -%type_Primitive = OpTypeStruct %mat4v4float %v4float %v4float %mat4v4float %mat4v4float %mat4v4float %v3float %float %v3float %float %float %float %float %float %v4float %v4float %v3float %float %v3float %uint %uint %int -%_ptr_Uniform_type_Primitive = OpTypePointer Uniform %type_Primitive - %uint_6 = OpConstant %uint 6 -%_arr_mat4v4float_uint_6 = OpTypeArray %mat4v4float %uint_6 -%type_MobileShadowDepthPass = OpTypeStruct %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %float %mat4v4float %v2float %float %float %_arr_mat4v4float_uint_6 -%_ptr_Uniform_type_MobileShadowDepthPass = OpTypePointer Uniform %type_MobileShadowDepthPass -%type_EmitterDynamicUniforms = OpTypeStruct %v2float %float %float %v4float %v4float %v4float %v4float -%_ptr_Uniform_type_EmitterDynamicUniforms = OpTypePointer Uniform %type_EmitterDynamicUniforms -%type_EmitterUniforms = OpTypeStruct %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v3float %float %float %float %float %float %v2float -%_ptr_Uniform_type_EmitterUniforms = OpTypePointer Uniform %type_EmitterUniforms -%type_buffer_image = OpTypeImage %float Buffer 2 0 0 1 Rg32f -%_ptr_UniformConstant_type_buffer_image = OpTypePointer UniformConstant %type_buffer_image -%type__Globals = OpTypeStruct %uint -%_ptr_Uniform_type__Globals = OpTypePointer Uniform %type__Globals -%type_2d_image = OpTypeImage %float 2D 2 0 0 1 Unknown -%_ptr_UniformConstant_type_2d_image = OpTypePointer UniformConstant %type_2d_image -%type_sampler = OpTypeSampler -%_ptr_UniformConstant_type_sampler = OpTypePointer UniformConstant %type_sampler -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_Input_v2float = OpTypePointer Input %v2float -%_ptr_Output_float = OpTypePointer Output %float -%_ptr_Output_v4float = OpTypePointer Output %v4float - %void = OpTypeVoid - %99 = OpTypeFunction %void -%_ptr_Uniform_uint = OpTypePointer Uniform %uint -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float - %bool = OpTypeBool -%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float -%_ptr_Uniform_float = OpTypePointer Uniform %float -%_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float -%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float -%type_sampled_image = OpTypeSampledImage %type_2d_image - %View = OpVariable %_ptr_Uniform_type_View Uniform - %Primitive = OpVariable %_ptr_Uniform_type_Primitive Uniform -%MobileShadowDepthPass = OpVariable %_ptr_Uniform_type_MobileShadowDepthPass Uniform -%EmitterDynamicUniforms = OpVariable %_ptr_Uniform_type_EmitterDynamicUniforms Uniform -%EmitterUniforms = OpVariable %_ptr_Uniform_type_EmitterUniforms Uniform -%ParticleIndices = OpVariable %_ptr_UniformConstant_type_buffer_image UniformConstant - %_Globals = OpVariable %_ptr_Uniform_type__Globals Uniform -%PositionTexture = OpVariable %_ptr_UniformConstant_type_2d_image UniformConstant -%PositionTextureSampler = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant -%VelocityTexture = OpVariable %_ptr_UniformConstant_type_2d_image UniformConstant -%VelocityTextureSampler = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant -%AttributesTexture = OpVariable %_ptr_UniformConstant_type_2d_image UniformConstant -%AttributesTextureSampler = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant -%CurveTexture = OpVariable %_ptr_UniformConstant_type_2d_image UniformConstant -%CurveTextureSampler = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant -%gl_VertexIndex = OpVariable %_ptr_Input_uint Input -%gl_InstanceIndex = OpVariable %_ptr_Input_uint Input -%in_var_ATTRIBUTE0 = OpVariable %_ptr_Input_v2float Input -%out_var_TEXCOORD6 = OpVariable %_ptr_Output_float Output -%gl_Position = OpVariable %_ptr_Output_v4float Output -%float_6_28318548 = OpConstant %float 6.28318548 - %108 = OpConstantNull %v3float - %Main = OpFunction %void None %99 - %109 = OpLabel - %110 = OpLoad %uint %gl_VertexIndex - %111 = OpLoad %uint %gl_InstanceIndex - %112 = OpLoad %v2float %in_var_ATTRIBUTE0 - %113 = OpAccessChain %_ptr_Uniform_v3float %View %int_15 - %114 = OpLoad %v3float %113 - %115 = OpAccessChain %_ptr_Uniform_v3float %View %int_17 - %116 = OpLoad %v3float %115 - %117 = OpAccessChain %_ptr_Uniform_v3float %View %int_19 - %118 = OpLoad %v3float %117 - %119 = OpAccessChain %_ptr_Uniform_v3float %View %int_21 - %120 = OpLoad %v3float %119 - %121 = OpAccessChain %_ptr_Uniform_v3float %View %int_27 - %122 = OpLoad %v3float %121 - %123 = OpAccessChain %_ptr_Uniform_v3float %View %int_31 - %124 = OpLoad %v3float %123 - %125 = OpIMul %uint %111 %uint_16 - %126 = OpUDiv %uint %110 %uint_4 - %127 = OpIAdd %uint %125 %126 - %128 = OpAccessChain %_ptr_Uniform_uint %_Globals %int_0 - %129 = OpLoad %uint %128 - %130 = OpIAdd %uint %129 %127 - %131 = OpLoad %type_buffer_image %ParticleIndices - %132 = OpImageFetch %v4float %131 %130 None - %133 = OpVectorShuffle %v2float %132 %132 0 1 - %134 = OpLoad %type_2d_image %PositionTexture - %135 = OpLoad %type_sampler %PositionTextureSampler - %136 = OpSampledImage %type_sampled_image %134 %135 - %137 = OpImageSampleExplicitLod %v4float %136 %133 Lod %float_0 - %138 = OpLoad %type_2d_image %VelocityTexture - %139 = OpLoad %type_sampler %VelocityTextureSampler - %140 = OpSampledImage %type_sampled_image %138 %139 - %141 = OpImageSampleExplicitLod %v4float %140 %133 Lod %float_0 - %142 = OpLoad %type_2d_image %AttributesTexture - %143 = OpLoad %type_sampler %AttributesTextureSampler - %144 = OpSampledImage %type_sampled_image %142 %143 - %145 = OpImageSampleExplicitLod %v4float %144 %133 Lod %float_0 - %146 = OpCompositeExtract %float %137 3 - %147 = OpExtInst %float %1 Step %146 %float_1 - %148 = OpVectorShuffle %v3float %141 %141 0 1 2 - %149 = OpAccessChain %_ptr_Uniform_mat4v4float %Primitive %int_0 - %150 = OpLoad %mat4v4float %149 - %151 = OpCompositeExtract %v4float %150 0 - %152 = OpVectorShuffle %v3float %151 %151 0 1 2 - %153 = OpCompositeExtract %v4float %150 1 - %154 = OpVectorShuffle %v3float %153 %153 0 1 2 - %155 = OpCompositeExtract %v4float %150 2 - %156 = OpVectorShuffle %v3float %155 %155 0 1 2 - %157 = OpCompositeConstruct %mat3v3float %152 %154 %156 - %158 = OpMatrixTimesVector %v3float %157 %148 - %159 = OpFAdd %v3float %158 %54 - %160 = OpExtInst %v3float %1 Normalize %159 - %161 = OpExtInst %float %1 Length %158 - %162 = OpAccessChain %_ptr_Uniform_v4float %EmitterUniforms %int_3 - %163 = OpLoad %v4float %162 - %164 = OpVectorShuffle %v2float %163 %163 0 1 - %165 = OpVectorShuffle %v2float %163 %163 2 3 - %166 = OpCompositeConstruct %v2float %146 %146 - %167 = OpFMul %v2float %165 %166 - %168 = OpFAdd %v2float %164 %167 - %169 = OpLoad %type_2d_image %CurveTexture - %170 = OpLoad %type_sampler %CurveTextureSampler - %171 = OpSampledImage %type_sampled_image %169 %170 - %172 = OpImageSampleExplicitLod %v4float %171 %168 Lod %float_0 - %173 = OpAccessChain %_ptr_Uniform_v4float %EmitterUniforms %int_4 - %174 = OpLoad %v4float %173 - %175 = OpFMul %v4float %172 %174 - %176 = OpAccessChain %_ptr_Uniform_v4float %EmitterUniforms %int_5 - %177 = OpLoad %v4float %176 - %178 = OpFAdd %v4float %175 %177 - %179 = OpCompositeExtract %float %145 0 - %180 = OpFOrdLessThan %bool %179 %float_0_5 - %181 = OpSelect %float %180 %float_0 %float_n0_5 - %182 = OpCompositeExtract %float %145 1 - %183 = OpFOrdLessThan %bool %182 %float_0_5 - %184 = OpSelect %float %183 %float_0 %float_n0_5 - %185 = OpCompositeConstruct %v2float %181 %184 - %186 = OpVectorShuffle %v2float %145 %145 0 1 - %187 = OpFAdd %v2float %186 %185 - %188 = OpFMul %v2float %187 %61 - %189 = OpVectorShuffle %v2float %178 %178 0 1 - %190 = OpAccessChain %_ptr_Uniform_v2float %EmitterDynamicUniforms %int_0 - %191 = OpLoad %v2float %190 - %192 = OpFMul %v2float %189 %191 - %193 = OpAccessChain %_ptr_Uniform_v4float %EmitterUniforms %int_6 - %194 = OpLoad %v4float %193 - %195 = OpVectorShuffle %v2float %194 %194 0 1 - %196 = OpCompositeConstruct %v2float %161 %161 - %197 = OpFMul %v2float %195 %196 - %198 = OpExtInst %v2float %1 FMax %197 %63 - %199 = OpVectorShuffle %v2float %194 %194 2 3 - %200 = OpExtInst %v2float %1 FMin %198 %199 - %201 = OpFMul %v2float %188 %192 - %202 = OpFMul %v2float %201 %200 - %203 = OpCompositeConstruct %v2float %147 %147 - %204 = OpFMul %v2float %202 %203 - %205 = OpCompositeExtract %float %145 3 - %206 = OpAccessChain %_ptr_Uniform_float %EmitterUniforms %int_11 - %207 = OpLoad %float %206 - %208 = OpFMul %float %205 %207 - %209 = OpCompositeExtract %float %145 2 - %210 = OpFMul %float %208 %146 - %211 = OpFAdd %float %209 %210 - %212 = OpFMul %float %211 %float_6_28318548 - %213 = OpAccessChain %_ptr_Uniform_v4float %Primitive %int_0 %uint_0 - %214 = OpLoad %v4float %213 - %215 = OpVectorShuffle %v3float %214 %214 0 1 2 - %216 = OpVectorShuffle %v3float %137 %108 0 0 0 - %217 = OpFMul %v3float %215 %216 - %218 = OpAccessChain %_ptr_Uniform_v4float %Primitive %int_0 %uint_1 - %219 = OpLoad %v4float %218 - %220 = OpVectorShuffle %v3float %219 %219 0 1 2 - %221 = OpVectorShuffle %v3float %137 %108 1 1 1 - %222 = OpFMul %v3float %220 %221 - %223 = OpFAdd %v3float %217 %222 - %224 = OpAccessChain %_ptr_Uniform_v4float %Primitive %int_0 %uint_2 - %225 = OpLoad %v4float %224 - %226 = OpVectorShuffle %v3float %225 %225 0 1 2 - %227 = OpVectorShuffle %v3float %137 %108 2 2 2 - %228 = OpFMul %v3float %226 %227 - %229 = OpFAdd %v3float %223 %228 - %230 = OpAccessChain %_ptr_Uniform_v4float %Primitive %int_0 %uint_3 - %231 = OpLoad %v4float %230 - %232 = OpVectorShuffle %v3float %231 %231 0 1 2 - %233 = OpFAdd %v3float %232 %124 - %234 = OpFAdd %v3float %229 %233 - %235 = OpCompositeExtract %float %234 0 - %236 = OpCompositeExtract %float %234 1 - %237 = OpCompositeExtract %float %234 2 - %238 = OpCompositeConstruct %v4float %235 %236 %237 %float_1 - %239 = OpVectorShuffle %v3float %238 %238 0 1 2 - %240 = OpAccessChain %_ptr_Uniform_float %EmitterUniforms %int_10 - %241 = OpLoad %float %240 - %242 = OpCompositeConstruct %v3float %241 %241 %241 - %243 = OpExtInst %v3float %1 FMix %116 %120 %242 - %244 = OpExtInst %v3float %1 FMix %114 %118 %242 - %245 = OpAccessChain %_ptr_Uniform_v4float %EmitterDynamicUniforms %int_3 - %246 = OpLoad %v4float %245 - %247 = OpVectorShuffle %v3float %246 %246 0 1 2 - %248 = OpAccessChain %_ptr_Uniform_float %EmitterDynamicUniforms %int_3 %int_3 - %249 = OpLoad %float %248 - %250 = OpCompositeConstruct %v3float %249 %249 %249 - %251 = OpExtInst %v3float %1 FMix %243 %247 %250 - %252 = OpFNegate %v3float %244 - %253 = OpAccessChain %_ptr_Uniform_v4float %EmitterDynamicUniforms %int_4 - %254 = OpLoad %v4float %253 - %255 = OpVectorShuffle %v3float %254 %254 0 1 2 - %256 = OpAccessChain %_ptr_Uniform_float %EmitterDynamicUniforms %int_4 %int_3 - %257 = OpLoad %float %256 - %258 = OpCompositeConstruct %v3float %257 %257 %257 - %259 = OpExtInst %v3float %1 FMix %252 %255 %258 - %260 = OpFSub %v3float %122 %239 - %261 = OpDot %float %260 %260 - %262 = OpExtInst %float %1 FMax %261 %float_0_00999999978 - %263 = OpExtInst %float %1 Sqrt %262 - %264 = OpCompositeConstruct %v3float %263 %263 %263 - %265 = OpFDiv %v3float %260 %264 - %266 = OpAccessChain %_ptr_Uniform_float %EmitterUniforms %int_9 %int_0 - %267 = OpLoad %float %266 - %268 = OpFOrdGreaterThan %bool %267 %float_0 - OpSelectionMerge %269 DontFlatten - OpBranchConditional %268 %270 %271 - %270 = OpLabel - %272 = OpAccessChain %_ptr_Uniform_float %EmitterUniforms %int_9 %int_1 - %273 = OpLoad %float %272 - %274 = OpFMul %float %261 %273 - %275 = OpAccessChain %_ptr_Uniform_float %EmitterUniforms %int_9 %int_2 - %276 = OpLoad %float %275 - %277 = OpFSub %float %274 %276 - %278 = OpExtInst %float %1 FClamp %277 %float_0 %float_1 - %279 = OpExtInst %v3float %1 Cross %265 %82 - %280 = OpDot %float %279 %279 - %281 = OpExtInst %float %1 FMax %280 %float_0_00999999978 - %282 = OpExtInst %float %1 Sqrt %281 - %283 = OpCompositeConstruct %v3float %282 %282 %282 - %284 = OpFDiv %v3float %279 %283 - %285 = OpExtInst %v3float %1 Cross %265 %284 - %286 = OpCompositeConstruct %v3float %278 %278 %278 - %287 = OpExtInst %v3float %1 FMix %251 %284 %286 - %288 = OpExtInst %v3float %1 Normalize %287 - %289 = OpExtInst %v3float %1 FMix %259 %285 %286 - %290 = OpExtInst %v3float %1 Normalize %289 - OpBranch %269 - %271 = OpLabel - %291 = OpAccessChain %_ptr_Uniform_float %EmitterUniforms %int_8 %int_1 - %292 = OpLoad %float %291 - %293 = OpFOrdGreaterThan %bool %292 %float_0 - OpSelectionMerge %294 Flatten - OpBranchConditional %293 %295 %296 - %295 = OpLabel - %297 = OpExtInst %v3float %1 Cross %265 %160 - %298 = OpDot %float %297 %297 - %299 = OpExtInst %float %1 FMax %298 %float_0_00999999978 - %300 = OpExtInst %float %1 Sqrt %299 - %301 = OpCompositeConstruct %v3float %300 %300 %300 - %302 = OpFDiv %v3float %297 %301 - %303 = OpFNegate %v3float %160 - OpBranch %294 - %296 = OpLabel - %304 = OpAccessChain %_ptr_Uniform_float %EmitterUniforms %int_8 %int_2 - %305 = OpLoad %float %304 - %306 = OpFOrdGreaterThan %bool %305 %float_0 - OpSelectionMerge %307 None - OpBranchConditional %306 %308 %309 - %308 = OpLabel - %310 = OpExtInst %v3float %1 Cross %247 %265 - %311 = OpDot %float %310 %310 - %312 = OpExtInst %float %1 FMax %311 %float_0_00999999978 - %313 = OpExtInst %float %1 Sqrt %312 - %314 = OpCompositeConstruct %v3float %313 %313 %313 - %315 = OpFDiv %v3float %310 %314 - %316 = OpFNegate %v3float %315 - OpBranch %307 - %309 = OpLabel - %317 = OpAccessChain %_ptr_Uniform_float %EmitterUniforms %int_8 %int_3 - %318 = OpLoad %float %317 - %319 = OpFOrdGreaterThan %bool %318 %float_0 - OpSelectionMerge %320 None - OpBranchConditional %319 %321 %320 - %321 = OpLabel - %322 = OpExtInst %v3float %1 Cross %265 %82 - %323 = OpDot %float %322 %322 - %324 = OpExtInst %float %1 FMax %323 %float_0_00999999978 - %325 = OpExtInst %float %1 Sqrt %324 - %326 = OpCompositeConstruct %v3float %325 %325 %325 - %327 = OpFDiv %v3float %322 %326 - %328 = OpExtInst %v3float %1 Cross %265 %327 - OpBranch %320 - %320 = OpLabel - %329 = OpPhi %v3float %251 %309 %327 %321 - %330 = OpPhi %v3float %259 %309 %328 %321 - OpBranch %307 - %307 = OpLabel - %331 = OpPhi %v3float %247 %308 %329 %320 - %332 = OpPhi %v3float %316 %308 %330 %320 - OpBranch %294 - %294 = OpLabel - %333 = OpPhi %v3float %302 %295 %331 %307 - %334 = OpPhi %v3float %303 %295 %332 %307 - OpBranch %269 - %269 = OpLabel - %335 = OpPhi %v3float %288 %270 %333 %294 - %336 = OpPhi %v3float %290 %270 %334 %294 - %337 = OpAccessChain %_ptr_Uniform_float %EmitterUniforms %int_12 - %338 = OpLoad %float %337 - %339 = OpFAdd %float %212 %338 - %340 = OpExtInst %float %1 Sin %339 - %341 = OpExtInst %float %1 Cos %339 - %342 = OpCompositeConstruct %v3float %340 %340 %340 - %343 = OpFMul %v3float %342 %336 - %344 = OpCompositeConstruct %v3float %341 %341 %341 - %345 = OpFMul %v3float %344 %335 - %346 = OpFAdd %v3float %343 %345 - %347 = OpFMul %v3float %344 %336 - %348 = OpFMul %v3float %342 %335 - %349 = OpFSub %v3float %347 %348 - %350 = OpCompositeExtract %float %204 0 - %351 = OpCompositeExtract %float %112 0 - %352 = OpAccessChain %_ptr_Uniform_float %EmitterUniforms %int_15 %int_0 - %353 = OpLoad %float %352 - %354 = OpFAdd %float %351 %353 - %355 = OpFMul %float %350 %354 - %356 = OpCompositeConstruct %v3float %355 %355 %355 - %357 = OpFMul %v3float %356 %346 - %358 = OpCompositeExtract %float %204 1 - %359 = OpCompositeExtract %float %112 1 - %360 = OpAccessChain %_ptr_Uniform_float %EmitterUniforms %int_15 %int_1 - %361 = OpLoad %float %360 - %362 = OpFAdd %float %359 %361 - %363 = OpFMul %float %358 %362 - %364 = OpCompositeConstruct %v3float %363 %363 %363 - %365 = OpFMul %v3float %364 %349 - %366 = OpFAdd %v3float %357 %365 - %367 = OpFAdd %v3float %239 %366 - %368 = OpCompositeExtract %float %367 0 - %369 = OpCompositeExtract %float %367 1 - %370 = OpCompositeExtract %float %367 2 - %371 = OpCompositeConstruct %v4float %368 %369 %370 %float_1 - %372 = OpVectorShuffle %v4float %371 %371 4 5 6 3 - %373 = OpAccessChain %_ptr_Uniform_mat4v4float %MobileShadowDepthPass %int_20 - %374 = OpLoad %mat4v4float %373 - %375 = OpMatrixTimesVector %v4float %374 %372 - %376 = OpAccessChain %_ptr_Uniform_float %MobileShadowDepthPass %int_22 - %377 = OpLoad %float %376 - %378 = OpFOrdGreaterThan %bool %377 %float_0 - %379 = OpCompositeExtract %float %375 2 - %380 = OpFOrdLessThan %bool %379 %float_0 - %381 = OpLogicalAnd %bool %378 %380 - OpSelectionMerge %382 None - OpBranchConditional %381 %383 %382 - %383 = OpLabel - %384 = OpCompositeInsert %v4float %float_9_99999997en07 %375 2 - %385 = OpCompositeInsert %v4float %float_1 %384 3 - OpBranch %382 - %382 = OpLabel - %386 = OpPhi %v4float %375 %269 %385 %383 - %387 = OpAccessChain %_ptr_Uniform_float %MobileShadowDepthPass %int_21 %int_0 - %388 = OpLoad %float %387 - %389 = OpAccessChain %_ptr_Uniform_float %MobileShadowDepthPass %int_21 %int_1 - %390 = OpLoad %float %389 - %391 = OpCompositeExtract %float %386 2 - %392 = OpFMul %float %391 %390 - %393 = OpFAdd %float %392 %388 - %394 = OpCompositeExtract %float %386 3 - %395 = OpFMul %float %393 %394 - %396 = OpCompositeInsert %v4float %395 %386 2 - OpStore %out_var_TEXCOORD6 %float_0 - OpStore %gl_Position %396 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/amd/gcn_shader.comp b/third_party/spirv-cross/shaders/amd/gcn_shader.comp deleted file mode 100644 index 037cdde6b6..0000000000 --- a/third_party/spirv-cross/shaders/amd/gcn_shader.comp +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 -#extension GL_AMD_gcn_shader : require -#extension GL_ARB_gpu_shader_int64 : require - -layout (local_size_x = 64) in; - -void main () -{ - float cubeFace = cubeFaceIndexAMD(vec3(0.0)); - vec2 cubeFaceCoord = cubeFaceCoordAMD(vec3(1.0)); - - uint64_t time = timeAMD(); -} diff --git a/third_party/spirv-cross/shaders/amd/shader_ballot.comp b/third_party/spirv-cross/shaders/amd/shader_ballot.comp deleted file mode 100644 index d2a7271128..0000000000 --- a/third_party/spirv-cross/shaders/amd/shader_ballot.comp +++ /dev/null @@ -1,33 +0,0 @@ -#version 450 -#extension GL_AMD_shader_ballot : require -#extension GL_ARB_shader_ballot : require - -layout (local_size_x = 64) in; -layout (std430, binding = 0) buffer inputData -{ - float inputDataArray[]; -}; - -layout (std430, binding = 1) buffer outputData -{ - float outputDataArray[]; -}; - -void main () -{ - float thisLaneData = inputDataArray [gl_LocalInvocationID.x]; - bool laneActive = (thisLaneData > 0); - - uint thisLaneOutputSlot = mbcntAMD (ballotARB (laneActive)); - - int firstInvocation = readFirstInvocationARB(1); - int invocation = readInvocationARB(1, 0); - - vec3 swizzleInvocations = swizzleInvocationsAMD(vec3(0.0, 2.0, 1.0), uvec4(3)); - vec3 swizzelInvocationsMasked = swizzleInvocationsMaskedAMD(vec3(0.0, 2.0, 1.0), uvec3(2)); - vec3 writeInvocation = writeInvocationAMD(swizzleInvocations, swizzelInvocationsMasked, 0); - - if (laneActive) { - outputDataArray[thisLaneOutputSlot] = thisLaneData; - } -} diff --git a/third_party/spirv-cross/shaders/amd/shader_group_vote.comp b/third_party/spirv-cross/shaders/amd/shader_group_vote.comp deleted file mode 100644 index d24aa92f84..0000000000 --- a/third_party/spirv-cross/shaders/amd/shader_group_vote.comp +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 -#extension GL_ARB_shader_group_vote : require - -layout (local_size_x = 64) in; -layout (std430, binding = 0) buffer inputData -{ - float inputDataArray[]; -}; - -void main () -{ - float thisLaneData = inputDataArray [gl_LocalInvocationID.x]; - bool laneActive = (thisLaneData > 0); - - bool allInvocations = allInvocationsARB(laneActive); - bool anyInvocations = anyInvocationARB(laneActive); - bool allInvocationsEqual = allInvocationsEqualARB(laneActive); -} diff --git a/third_party/spirv-cross/shaders/amd/shader_trinary_minmax.comp b/third_party/spirv-cross/shaders/amd/shader_trinary_minmax.comp deleted file mode 100644 index f836146a17..0000000000 --- a/third_party/spirv-cross/shaders/amd/shader_trinary_minmax.comp +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 -#extension GL_AMD_shader_trinary_minmax : require - -layout (local_size_x = 64) in; - -void main () -{ - int t11 = min3(0, 3, 2); - int t12 = max3(0, 3, 2); - int t13 = mid3(0, 3, 2); -} diff --git a/third_party/spirv-cross/shaders/asm/comp/atomic-decrement.asm.comp b/third_party/spirv-cross/shaders/asm/comp/atomic-decrement.asm.comp deleted file mode 100644 index a87b931880..0000000000 --- a/third_party/spirv-cross/shaders/asm/comp/atomic-decrement.asm.comp +++ /dev/null @@ -1,71 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Wine VKD3D Shader Compiler; 0 -; Bound: 43 -; Schema: 0 - OpCapability Shader - OpCapability SampledBuffer - OpCapability ImageBuffer - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %3 "main" %15 - OpExecutionMode %3 LocalSize 4 1 1 - OpName %3 "main" - OpName %8 "u0" - OpName %9 "u0_counters" - OpMemberName %9 0 "c" - OpName %11 "u0_counter" - OpName %15 "vThreadID" - OpName %19 "r0" - OpDecorate %8 DescriptorSet 0 - OpDecorate %8 Binding 0 - OpMemberDecorate %9 0 Offset 0 - OpDecorate %9 BufferBlock - OpDecorate %11 DescriptorSet 1 - OpDecorate %11 Binding 0 - OpDecorate %15 BuiltIn GlobalInvocationId - %1 = OpTypeVoid - %2 = OpTypeFunction %1 - %5 = OpTypeInt 32 0 - %6 = OpTypeImage %5 Buffer 0 0 0 2 R32ui - %7 = OpTypePointer UniformConstant %6 - %8 = OpVariable %7 UniformConstant - %9 = OpTypeStruct %5 - %10 = OpTypePointer Uniform %9 - %11 = OpVariable %10 Uniform - %12 = OpTypeInt 32 1 - %13 = OpTypeVector %12 3 - %14 = OpTypePointer Input %13 - %15 = OpVariable %14 Input - %16 = OpTypeFloat 32 - %17 = OpTypeVector %16 4 - %18 = OpTypePointer Function %17 - %20 = OpTypePointer Uniform %5 - %21 = OpConstant %5 0 - %23 = OpConstant %5 1 - %26 = OpTypePointer Function %16 - %33 = OpConstant %12 0 - %34 = OpConstant %5 2 - %37 = OpTypePointer Input %12 - %41 = OpTypeVector %5 4 - %3 = OpFunction %1 None %2 - %4 = OpLabel - %19 = OpVariable %18 Function - %22 = OpAccessChain %20 %11 %21 - %24 = OpAtomicIDecrement %5 %22 %23 %21 - %25 = OpBitcast %16 %24 - %27 = OpInBoundsAccessChain %26 %19 %21 - OpStore %27 %25 - %28 = OpLoad %6 %8 - %29 = OpInBoundsAccessChain %26 %19 %21 - %30 = OpLoad %16 %29 - %31 = OpBitcast %12 %30 - %32 = OpIMul %5 %31 %23 - %35 = OpShiftRightLogical %5 %33 %34 - %36 = OpIAdd %5 %32 %35 - %38 = OpInBoundsAccessChain %37 %15 %21 - %39 = OpLoad %12 %38 - %40 = OpBitcast %5 %39 - %42 = OpCompositeConstruct %41 %40 %40 %40 %40 - OpImageWrite %28 %36 %42 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/comp/atomic-increment.asm.comp b/third_party/spirv-cross/shaders/asm/comp/atomic-increment.asm.comp deleted file mode 100644 index 3acb7115f5..0000000000 --- a/third_party/spirv-cross/shaders/asm/comp/atomic-increment.asm.comp +++ /dev/null @@ -1,71 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Wine VKD3D Shader Compiler; 0 -; Bound: 43 -; Schema: 0 - OpCapability Shader - OpCapability SampledBuffer - OpCapability ImageBuffer - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %3 "main" %15 - OpExecutionMode %3 LocalSize 4 1 1 - OpName %3 "main" - OpName %8 "u0" - OpName %9 "u0_counters" - OpMemberName %9 0 "c" - OpName %11 "u0_counter" - OpName %15 "vThreadID" - OpName %19 "r0" - OpDecorate %8 DescriptorSet 0 - OpDecorate %8 Binding 0 - OpMemberDecorate %9 0 Offset 0 - OpDecorate %9 BufferBlock - OpDecorate %11 DescriptorSet 1 - OpDecorate %11 Binding 0 - OpDecorate %15 BuiltIn GlobalInvocationId - %1 = OpTypeVoid - %2 = OpTypeFunction %1 - %5 = OpTypeInt 32 0 - %6 = OpTypeImage %5 Buffer 0 0 0 2 R32ui - %7 = OpTypePointer UniformConstant %6 - %8 = OpVariable %7 UniformConstant - %9 = OpTypeStruct %5 - %10 = OpTypePointer Uniform %9 - %11 = OpVariable %10 Uniform - %12 = OpTypeInt 32 1 - %13 = OpTypeVector %12 3 - %14 = OpTypePointer Input %13 - %15 = OpVariable %14 Input - %16 = OpTypeFloat 32 - %17 = OpTypeVector %16 4 - %18 = OpTypePointer Function %17 - %20 = OpTypePointer Uniform %5 - %21 = OpConstant %5 0 - %23 = OpConstant %5 1 - %26 = OpTypePointer Function %16 - %33 = OpConstant %12 0 - %34 = OpConstant %5 2 - %37 = OpTypePointer Input %12 - %41 = OpTypeVector %5 4 - %3 = OpFunction %1 None %2 - %4 = OpLabel - %19 = OpVariable %18 Function - %22 = OpAccessChain %20 %11 %21 - %24 = OpAtomicIIncrement %5 %22 %23 %21 - %25 = OpBitcast %16 %24 - %27 = OpInBoundsAccessChain %26 %19 %21 - OpStore %27 %25 - %28 = OpLoad %6 %8 - %29 = OpInBoundsAccessChain %26 %19 %21 - %30 = OpLoad %16 %29 - %31 = OpBitcast %12 %30 - %32 = OpIMul %5 %31 %23 - %35 = OpShiftRightLogical %5 %33 %34 - %36 = OpIAdd %5 %32 %35 - %38 = OpInBoundsAccessChain %37 %15 %21 - %39 = OpLoad %12 %38 - %40 = OpBitcast %5 %39 - %42 = OpCompositeConstruct %41 %40 %40 %40 %40 - OpImageWrite %28 %36 %42 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/comp/bitcast_iadd.asm.comp b/third_party/spirv-cross/shaders/asm/comp/bitcast_iadd.asm.comp deleted file mode 100644 index 3b31ab2851..0000000000 --- a/third_party/spirv-cross/shaders/asm/comp/bitcast_iadd.asm.comp +++ /dev/null @@ -1,79 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 30 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %func "main" - OpExecutionMode %func LocalSize 1 1 1 - OpSource ESSL 310 - OpSourceExtension "GL_GOOGLE_cpp_style_line_directive" - OpSourceExtension "GL_GOOGLE_include_directive" - OpMemberDecorate %input_struct 0 Offset 0 - OpMemberDecorate %input_struct 1 Offset 16 - OpMemberDecorate %output_struct 0 Offset 0 - OpMemberDecorate %output_struct 1 Offset 16 - OpDecorate %input_struct BufferBlock - OpDecorate %inputs DescriptorSet 0 - OpDecorate %inputs Binding 0 - OpDecorate %inputs Restrict - OpDecorate %output_struct BufferBlock - OpDecorate %outputs DescriptorSet 0 - OpDecorate %outputs Binding 1 - OpDecorate %outputs Restrict - - %void = OpTypeVoid - %main_func = OpTypeFunction %void - - %uint = OpTypeInt 32 0 - %uvec4 = OpTypeVector %uint 4 - - %int = OpTypeInt 32 1 - %ivec4 = OpTypeVector %int 4 - - %ivec4_ptr = OpTypePointer Uniform %ivec4 - %uvec4_ptr = OpTypePointer Uniform %uvec4 - - %zero = OpConstant %int 0 - %one = OpConstant %int 1 - - %input_struct = OpTypeStruct %ivec4 %uvec4 - %input_struct_ptr = OpTypePointer Uniform %input_struct - %inputs = OpVariable %input_struct_ptr Uniform - %output_struct = OpTypeStruct %uvec4 %ivec4 - %output_struct_ptr = OpTypePointer Uniform %output_struct - %outputs = OpVariable %output_struct_ptr Uniform - - %func = OpFunction %void None %main_func - %block = OpLabel - - %input1_ptr = OpAccessChain %ivec4_ptr %inputs %zero - %input0_ptr = OpAccessChain %uvec4_ptr %inputs %one - %input1 = OpLoad %ivec4 %input1_ptr - %input0 = OpLoad %uvec4 %input0_ptr - - %output_ptr_uvec4 = OpAccessChain %uvec4_ptr %outputs %zero - %output_ptr_ivec4 = OpAccessChain %ivec4_ptr %outputs %one - -; Test all variants of IAdd - %result_iadd_0 = OpIAdd %uvec4 %input0 %input1 - %result_iadd_1 = OpIAdd %uvec4 %input1 %input0 - %result_iadd_2 = OpIAdd %uvec4 %input0 %input0 - %result_iadd_3 = OpIAdd %uvec4 %input1 %input1 - %result_iadd_4 = OpIAdd %ivec4 %input0 %input0 - %result_iadd_5 = OpIAdd %ivec4 %input1 %input1 - %result_iadd_6 = OpIAdd %ivec4 %input0 %input1 - %result_iadd_7 = OpIAdd %ivec4 %input1 %input0 - OpStore %output_ptr_uvec4 %result_iadd_0 - OpStore %output_ptr_uvec4 %result_iadd_1 - OpStore %output_ptr_uvec4 %result_iadd_2 - OpStore %output_ptr_uvec4 %result_iadd_3 - OpStore %output_ptr_ivec4 %result_iadd_4 - OpStore %output_ptr_ivec4 %result_iadd_5 - OpStore %output_ptr_ivec4 %result_iadd_6 - OpStore %output_ptr_ivec4 %result_iadd_7 - - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/comp/bitcast_icmp.asm.comp b/third_party/spirv-cross/shaders/asm/comp/bitcast_icmp.asm.comp deleted file mode 100644 index b7b4e0b2e1..0000000000 --- a/third_party/spirv-cross/shaders/asm/comp/bitcast_icmp.asm.comp +++ /dev/null @@ -1,101 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 30 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %func "main" - OpExecutionMode %func LocalSize 1 1 1 - OpSource ESSL 310 - OpSourceExtension "GL_GOOGLE_cpp_style_line_directive" - OpSourceExtension "GL_GOOGLE_include_directive" - OpMemberDecorate %input_struct 0 Offset 0 - OpMemberDecorate %input_struct 1 Offset 16 - OpMemberDecorate %output_struct 0 Offset 0 - OpMemberDecorate %output_struct 1 Offset 16 - OpDecorate %input_struct BufferBlock - OpDecorate %inputs DescriptorSet 0 - OpDecorate %inputs Binding 0 - OpDecorate %inputs Restrict - OpDecorate %output_struct BufferBlock - OpDecorate %outputs DescriptorSet 0 - OpDecorate %outputs Binding 1 - OpDecorate %outputs Restrict - - %void = OpTypeVoid - %main_func = OpTypeFunction %void - - %bool = OpTypeBool - %bvec4 = OpTypeVector %bool 4 - - %uint = OpTypeInt 32 0 - %uvec4 = OpTypeVector %uint 4 - - %int = OpTypeInt 32 1 - %ivec4 = OpTypeVector %int 4 - - %ivec4_ptr = OpTypePointer Uniform %ivec4 - %uvec4_ptr = OpTypePointer Uniform %uvec4 - - %zero = OpConstant %int 0 - %one = OpConstant %int 1 - %uzero = OpConstant %uint 0 - %uone = OpConstant %uint 1 - %utrue = OpConstantComposite %uvec4 %uone %uone %uone %uone - %ufalse = OpConstantComposite %uvec4 %uzero %uzero %uzero %uzero - - %input_struct = OpTypeStruct %ivec4 %uvec4 - %input_struct_ptr = OpTypePointer Uniform %input_struct - %inputs = OpVariable %input_struct_ptr Uniform - %output_struct = OpTypeStruct %uvec4 %ivec4 - %output_struct_ptr = OpTypePointer Uniform %output_struct - %outputs = OpVariable %output_struct_ptr Uniform - - %func = OpFunction %void None %main_func - %block = OpLabel - - %input1_ptr = OpAccessChain %ivec4_ptr %inputs %zero - %input0_ptr = OpAccessChain %uvec4_ptr %inputs %one - %input1 = OpLoad %ivec4 %input1_ptr - %input0 = OpLoad %uvec4 %input0_ptr - - %output_ptr_uvec4 = OpAccessChain %uvec4_ptr %outputs %zero - - %result_slt = OpSLessThan %bvec4 %input0 %input1 - %result_sle = OpSLessThanEqual %bvec4 %input0 %input1 - %result_ult = OpULessThan %bvec4 %input0 %input1 - %result_ule = OpULessThanEqual %bvec4 %input0 %input1 - %result_sgt = OpSGreaterThan %bvec4 %input0 %input1 - %result_sge = OpSGreaterThanEqual %bvec4 %input0 %input1 - %result_ugt = OpUGreaterThan %bvec4 %input0 %input1 - %result_uge = OpUGreaterThanEqual %bvec4 %input0 %input1 - - %int_slt = OpSelect %uvec4 %result_slt %utrue %ufalse - OpStore %output_ptr_uvec4 %int_slt - - %int_sle = OpSelect %uvec4 %result_sle %utrue %ufalse - OpStore %output_ptr_uvec4 %int_sle - - %int_ult = OpSelect %uvec4 %result_ult %utrue %ufalse - OpStore %output_ptr_uvec4 %int_ult - - %int_ule = OpSelect %uvec4 %result_ule %utrue %ufalse - OpStore %output_ptr_uvec4 %int_ule - - %int_sgt = OpSelect %uvec4 %result_sgt %utrue %ufalse - OpStore %output_ptr_uvec4 %int_sgt - - %int_sge = OpSelect %uvec4 %result_sge %utrue %ufalse - OpStore %output_ptr_uvec4 %int_sge - - %int_ugt = OpSelect %uvec4 %result_ugt %utrue %ufalse - OpStore %output_ptr_uvec4 %int_ugt - - %int_uge = OpSelect %uvec4 %result_uge %utrue %ufalse - OpStore %output_ptr_uvec4 %int_uge - - - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/comp/bitcast_iequal.asm.comp b/third_party/spirv-cross/shaders/asm/comp/bitcast_iequal.asm.comp deleted file mode 100644 index c98f52c5ad..0000000000 --- a/third_party/spirv-cross/shaders/asm/comp/bitcast_iequal.asm.comp +++ /dev/null @@ -1,90 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 30 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %func "main" - OpExecutionMode %func LocalSize 1 1 1 - OpSource ESSL 310 - OpSourceExtension "GL_GOOGLE_cpp_style_line_directive" - OpSourceExtension "GL_GOOGLE_include_directive" - OpMemberDecorate %input_struct 0 Offset 0 - OpMemberDecorate %input_struct 1 Offset 16 - OpMemberDecorate %output_struct 0 Offset 0 - OpMemberDecorate %output_struct 1 Offset 16 - OpDecorate %input_struct BufferBlock - OpDecorate %inputs DescriptorSet 0 - OpDecorate %inputs Binding 0 - OpDecorate %output_struct BufferBlock - OpDecorate %outputs DescriptorSet 0 - OpDecorate %outputs Binding 1 - - %void = OpTypeVoid - %main_func = OpTypeFunction %void - - %uint = OpTypeInt 32 0 - %uvec4 = OpTypeVector %uint 4 - - %int = OpTypeInt 32 1 - %ivec4 = OpTypeVector %int 4 - %bool = OpTypeBool - %bvec4 = OpTypeVector %bool 4 - - %ivec4_ptr = OpTypePointer Uniform %ivec4 - %uvec4_ptr = OpTypePointer Uniform %uvec4 - - %zero = OpConstant %int 0 - %one = OpConstant %int 1 - %uone = OpConstant %uint 1 - %uzero = OpConstant %uint 0 - %uvec41 = OpConstantComposite %uvec4 %uone %uone %uone %uone - %ivec41 = OpConstantComposite %ivec4 %one %one %one %one - %uvec40 = OpConstantComposite %uvec4 %uzero %uzero %uzero %uzero - %ivec40 = OpConstantComposite %ivec4 %zero %zero %zero %zero - - %input_struct = OpTypeStruct %ivec4 %uvec4 - %input_struct_ptr = OpTypePointer Uniform %input_struct - %inputs = OpVariable %input_struct_ptr Uniform - %output_struct = OpTypeStruct %uvec4 %ivec4 - %output_struct_ptr = OpTypePointer Uniform %output_struct - %outputs = OpVariable %output_struct_ptr Uniform - - %func = OpFunction %void None %main_func - %block = OpLabel - - %input1_ptr = OpAccessChain %ivec4_ptr %inputs %zero - %input0_ptr = OpAccessChain %uvec4_ptr %inputs %one - %input1 = OpLoad %ivec4 %input1_ptr - %input0 = OpLoad %uvec4 %input0_ptr - - %output_ptr_uvec4 = OpAccessChain %uvec4_ptr %outputs %zero - %output_ptr_ivec4 = OpAccessChain %ivec4_ptr %outputs %one - -; Test all variants of IEqual - %result_iequal0 = OpIEqual %bvec4 %input0 %input1 - %result_iequal1 = OpIEqual %bvec4 %input1 %input0 - %result_iequal2 = OpIEqual %bvec4 %input0 %input0 - %result_iequal3 = OpIEqual %bvec4 %input1 %input1 - %result_0 = OpSelect %uvec4 %result_iequal0 %uvec41 %uvec40 - %result_1 = OpSelect %uvec4 %result_iequal1 %uvec41 %uvec40 - %result_2 = OpSelect %uvec4 %result_iequal2 %uvec41 %uvec40 - %result_3 = OpSelect %uvec4 %result_iequal3 %uvec41 %uvec40 - %result_4 = OpSelect %ivec4 %result_iequal0 %ivec41 %ivec40 - %result_5 = OpSelect %ivec4 %result_iequal1 %ivec41 %ivec40 - %result_6 = OpSelect %ivec4 %result_iequal2 %ivec41 %ivec40 - %result_7 = OpSelect %ivec4 %result_iequal3 %ivec41 %ivec40 - - OpStore %output_ptr_uvec4 %result_0 - OpStore %output_ptr_uvec4 %result_1 - OpStore %output_ptr_uvec4 %result_2 - OpStore %output_ptr_uvec4 %result_3 - OpStore %output_ptr_ivec4 %result_4 - OpStore %output_ptr_ivec4 %result_5 - OpStore %output_ptr_ivec4 %result_6 - OpStore %output_ptr_ivec4 %result_7 - - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/comp/bitcast_sar.asm.comp b/third_party/spirv-cross/shaders/asm/comp/bitcast_sar.asm.comp deleted file mode 100644 index 64f19fc349..0000000000 --- a/third_party/spirv-cross/shaders/asm/comp/bitcast_sar.asm.comp +++ /dev/null @@ -1,77 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 30 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %func "main" - OpExecutionMode %func LocalSize 1 1 1 - OpSource ESSL 310 - OpSourceExtension "GL_GOOGLE_cpp_style_line_directive" - OpSourceExtension "GL_GOOGLE_include_directive" - OpMemberDecorate %input_struct 0 Offset 0 - OpMemberDecorate %input_struct 1 Offset 16 - OpMemberDecorate %output_struct 0 Offset 0 - OpMemberDecorate %output_struct 1 Offset 16 - OpDecorate %input_struct BufferBlock - OpDecorate %inputs DescriptorSet 0 - OpDecorate %inputs Binding 0 - OpDecorate %output_struct BufferBlock - OpDecorate %outputs DescriptorSet 0 - OpDecorate %outputs Binding 1 - - %void = OpTypeVoid - %main_func = OpTypeFunction %void - - %uint = OpTypeInt 32 0 - %uvec4 = OpTypeVector %uint 4 - - %int = OpTypeInt 32 1 - %ivec4 = OpTypeVector %int 4 - - %ivec4_ptr = OpTypePointer Uniform %ivec4 - %uvec4_ptr = OpTypePointer Uniform %uvec4 - - %zero = OpConstant %int 0 - %one = OpConstant %int 1 - - %input_struct = OpTypeStruct %ivec4 %uvec4 - %input_struct_ptr = OpTypePointer Uniform %input_struct - %inputs = OpVariable %input_struct_ptr Uniform - %output_struct = OpTypeStruct %uvec4 %ivec4 - %output_struct_ptr = OpTypePointer Uniform %output_struct - %outputs = OpVariable %output_struct_ptr Uniform - - %func = OpFunction %void None %main_func - %block = OpLabel - - %input1_ptr = OpAccessChain %ivec4_ptr %inputs %zero - %input0_ptr = OpAccessChain %uvec4_ptr %inputs %one - %input1 = OpLoad %ivec4 %input1_ptr - %input0 = OpLoad %uvec4 %input0_ptr - - %output_ptr_uvec4 = OpAccessChain %uvec4_ptr %outputs %zero - %output_ptr_ivec4 = OpAccessChain %ivec4_ptr %outputs %one - -; Test all variants of ShiftRightArithmetic - %result_iadd_0 = OpShiftRightArithmetic %uvec4 %input0 %input1 - %result_iadd_1 = OpShiftRightArithmetic %uvec4 %input1 %input0 - %result_iadd_2 = OpShiftRightArithmetic %uvec4 %input0 %input0 - %result_iadd_3 = OpShiftRightArithmetic %uvec4 %input1 %input1 - %result_iadd_4 = OpShiftRightArithmetic %ivec4 %input0 %input0 - %result_iadd_5 = OpShiftRightArithmetic %ivec4 %input1 %input1 - %result_iadd_6 = OpShiftRightArithmetic %ivec4 %input0 %input1 - %result_iadd_7 = OpShiftRightArithmetic %ivec4 %input1 %input0 - OpStore %output_ptr_uvec4 %result_iadd_0 - OpStore %output_ptr_uvec4 %result_iadd_1 - OpStore %output_ptr_uvec4 %result_iadd_2 - OpStore %output_ptr_uvec4 %result_iadd_3 - OpStore %output_ptr_ivec4 %result_iadd_4 - OpStore %output_ptr_ivec4 %result_iadd_5 - OpStore %output_ptr_ivec4 %result_iadd_6 - OpStore %output_ptr_ivec4 %result_iadd_7 - - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/comp/bitcast_sdiv.asm.comp b/third_party/spirv-cross/shaders/asm/comp/bitcast_sdiv.asm.comp deleted file mode 100644 index ab73ec83df..0000000000 --- a/third_party/spirv-cross/shaders/asm/comp/bitcast_sdiv.asm.comp +++ /dev/null @@ -1,77 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 30 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %func "main" - OpExecutionMode %func LocalSize 1 1 1 - OpSource ESSL 310 - OpSourceExtension "GL_GOOGLE_cpp_style_line_directive" - OpSourceExtension "GL_GOOGLE_include_directive" - OpMemberDecorate %input_struct 0 Offset 0 - OpMemberDecorate %input_struct 1 Offset 16 - OpMemberDecorate %output_struct 0 Offset 0 - OpMemberDecorate %output_struct 1 Offset 16 - OpDecorate %input_struct BufferBlock - OpDecorate %inputs DescriptorSet 0 - OpDecorate %inputs Binding 0 - OpDecorate %output_struct BufferBlock - OpDecorate %outputs DescriptorSet 0 - OpDecorate %outputs Binding 1 - - %void = OpTypeVoid - %main_func = OpTypeFunction %void - - %uint = OpTypeInt 32 0 - %uvec4 = OpTypeVector %uint 4 - - %int = OpTypeInt 32 1 - %ivec4 = OpTypeVector %int 4 - - %ivec4_ptr = OpTypePointer Uniform %ivec4 - %uvec4_ptr = OpTypePointer Uniform %uvec4 - - %zero = OpConstant %int 0 - %one = OpConstant %int 1 - - %input_struct = OpTypeStruct %ivec4 %uvec4 - %input_struct_ptr = OpTypePointer Uniform %input_struct - %inputs = OpVariable %input_struct_ptr Uniform - %output_struct = OpTypeStruct %uvec4 %ivec4 - %output_struct_ptr = OpTypePointer Uniform %output_struct - %outputs = OpVariable %output_struct_ptr Uniform - - %func = OpFunction %void None %main_func - %block = OpLabel - - %input1_ptr = OpAccessChain %ivec4_ptr %inputs %zero - %input0_ptr = OpAccessChain %uvec4_ptr %inputs %one - %input1 = OpLoad %ivec4 %input1_ptr - %input0 = OpLoad %uvec4 %input0_ptr - - %output_ptr_uvec4 = OpAccessChain %uvec4_ptr %outputs %zero - %output_ptr_ivec4 = OpAccessChain %ivec4_ptr %outputs %one - -; Test all variants of SDiv - %result_iadd_0 = OpSDiv %uvec4 %input0 %input1 - %result_iadd_1 = OpSDiv %uvec4 %input1 %input0 - %result_iadd_2 = OpSDiv %uvec4 %input0 %input0 - %result_iadd_3 = OpSDiv %uvec4 %input1 %input1 - %result_iadd_4 = OpSDiv %ivec4 %input0 %input0 - %result_iadd_5 = OpSDiv %ivec4 %input1 %input1 - %result_iadd_6 = OpSDiv %ivec4 %input0 %input1 - %result_iadd_7 = OpSDiv %ivec4 %input1 %input0 - OpStore %output_ptr_uvec4 %result_iadd_0 - OpStore %output_ptr_uvec4 %result_iadd_1 - OpStore %output_ptr_uvec4 %result_iadd_2 - OpStore %output_ptr_uvec4 %result_iadd_3 - OpStore %output_ptr_ivec4 %result_iadd_4 - OpStore %output_ptr_ivec4 %result_iadd_5 - OpStore %output_ptr_ivec4 %result_iadd_6 - OpStore %output_ptr_ivec4 %result_iadd_7 - - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/comp/bitcast_slr.asm.comp b/third_party/spirv-cross/shaders/asm/comp/bitcast_slr.asm.comp deleted file mode 100644 index 6741f5cb58..0000000000 --- a/third_party/spirv-cross/shaders/asm/comp/bitcast_slr.asm.comp +++ /dev/null @@ -1,77 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 30 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %func "main" - OpExecutionMode %func LocalSize 1 1 1 - OpSource ESSL 310 - OpSourceExtension "GL_GOOGLE_cpp_style_line_directive" - OpSourceExtension "GL_GOOGLE_include_directive" - OpMemberDecorate %input_struct 0 Offset 0 - OpMemberDecorate %input_struct 1 Offset 16 - OpMemberDecorate %output_struct 0 Offset 0 - OpMemberDecorate %output_struct 1 Offset 16 - OpDecorate %input_struct BufferBlock - OpDecorate %inputs DescriptorSet 0 - OpDecorate %inputs Binding 0 - OpDecorate %output_struct BufferBlock - OpDecorate %outputs DescriptorSet 0 - OpDecorate %outputs Binding 1 - - %void = OpTypeVoid - %main_func = OpTypeFunction %void - - %uint = OpTypeInt 32 0 - %uvec4 = OpTypeVector %uint 4 - - %int = OpTypeInt 32 1 - %ivec4 = OpTypeVector %int 4 - - %ivec4_ptr = OpTypePointer Uniform %ivec4 - %uvec4_ptr = OpTypePointer Uniform %uvec4 - - %zero = OpConstant %int 0 - %one = OpConstant %int 1 - - %input_struct = OpTypeStruct %ivec4 %uvec4 - %input_struct_ptr = OpTypePointer Uniform %input_struct - %inputs = OpVariable %input_struct_ptr Uniform - %output_struct = OpTypeStruct %uvec4 %ivec4 - %output_struct_ptr = OpTypePointer Uniform %output_struct - %outputs = OpVariable %output_struct_ptr Uniform - - %func = OpFunction %void None %main_func - %block = OpLabel - - %input1_ptr = OpAccessChain %ivec4_ptr %inputs %zero - %input0_ptr = OpAccessChain %uvec4_ptr %inputs %one - %input1 = OpLoad %ivec4 %input1_ptr - %input0 = OpLoad %uvec4 %input0_ptr - - %output_ptr_uvec4 = OpAccessChain %uvec4_ptr %outputs %zero - %output_ptr_ivec4 = OpAccessChain %ivec4_ptr %outputs %one - -; Test all variants of ShiftRightLogical - %result_iadd_0 = OpShiftRightLogical %uvec4 %input0 %input1 - %result_iadd_1 = OpShiftRightLogical %uvec4 %input1 %input0 - %result_iadd_2 = OpShiftRightLogical %uvec4 %input0 %input0 - %result_iadd_3 = OpShiftRightLogical %uvec4 %input1 %input1 - %result_iadd_4 = OpShiftRightLogical %ivec4 %input0 %input0 - %result_iadd_5 = OpShiftRightLogical %ivec4 %input1 %input1 - %result_iadd_6 = OpShiftRightLogical %ivec4 %input0 %input1 - %result_iadd_7 = OpShiftRightLogical %ivec4 %input1 %input0 - OpStore %output_ptr_uvec4 %result_iadd_0 - OpStore %output_ptr_uvec4 %result_iadd_1 - OpStore %output_ptr_uvec4 %result_iadd_2 - OpStore %output_ptr_uvec4 %result_iadd_3 - OpStore %output_ptr_ivec4 %result_iadd_4 - OpStore %output_ptr_ivec4 %result_iadd_5 - OpStore %output_ptr_ivec4 %result_iadd_6 - OpStore %output_ptr_ivec4 %result_iadd_7 - - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/comp/block-name-alias-global.asm.comp b/third_party/spirv-cross/shaders/asm/comp/block-name-alias-global.asm.comp deleted file mode 100644 index 85f6cc0414..0000000000 --- a/third_party/spirv-cross/shaders/asm/comp/block-name-alias-global.asm.comp +++ /dev/null @@ -1,119 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 59 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %Foo "A" - OpMemberName %Foo 0 "a" - OpMemberName %Foo 1 "b" - OpName %A "A" - OpMemberName %A 0 "Data" - OpName %C1 "C1" - OpName %gl_GlobalInvocationID "gl_GlobalInvocationID" - OpName %Foo_0 "A" - OpMemberName %Foo_0 0 "a" - OpMemberName %Foo_0 1 "b" - OpName %A_0 "A" - OpMemberName %A_0 0 "Data" - OpName %C2 "C2" - OpName %B "B" - OpMemberName %B 0 "Data" - OpName %C3 "C3" - OpName %B_0 "B" - OpMemberName %B_0 0 "Data" - OpName %C4 "C4" - OpMemberDecorate %Foo 0 Offset 0 - OpMemberDecorate %Foo 1 Offset 4 - OpDecorate %_runtimearr_Foo ArrayStride 8 - OpMemberDecorate %A 0 Offset 0 - OpDecorate %A BufferBlock - OpDecorate %C1 DescriptorSet 0 - OpDecorate %C1 Binding 1 - OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId - OpMemberDecorate %Foo_0 0 Offset 0 - OpMemberDecorate %Foo_0 1 Offset 4 - OpDecorate %_arr_Foo_0_uint_1024 ArrayStride 16 - OpMemberDecorate %A_0 0 Offset 0 - OpDecorate %A_0 Block - OpDecorate %C2 DescriptorSet 0 - OpDecorate %C2 Binding 2 - OpDecorate %_runtimearr_Foo_0 ArrayStride 8 - OpMemberDecorate %B 0 Offset 0 - OpDecorate %B BufferBlock - OpDecorate %C3 DescriptorSet 0 - OpDecorate %C3 Binding 0 - OpDecorate %_arr_Foo_0_uint_1024_0 ArrayStride 16 - OpMemberDecorate %B_0 0 Offset 0 - OpDecorate %B_0 Block - OpDecorate %C4 DescriptorSet 0 - OpDecorate %C4 Binding 3 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %Foo = OpTypeStruct %int %int -%_runtimearr_Foo = OpTypeRuntimeArray %Foo - %A = OpTypeStruct %_runtimearr_Foo -%_ptr_Uniform_A = OpTypePointer Uniform %A - %C1 = OpVariable %_ptr_Uniform_A Uniform - %int_0 = OpConstant %int 0 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint - %Foo_0 = OpTypeStruct %int %int - %uint_1024 = OpConstant %uint 1024 -%_arr_Foo_0_uint_1024 = OpTypeArray %Foo_0 %uint_1024 - %A_0 = OpTypeStruct %_arr_Foo_0_uint_1024 -%_ptr_Uniform_A_0 = OpTypePointer Uniform %A_0 - %C2 = OpVariable %_ptr_Uniform_A_0 Uniform -%_ptr_Uniform_Foo_0 = OpTypePointer Uniform %Foo_0 -%_ptr_Uniform_Foo = OpTypePointer Uniform %Foo -%_ptr_Uniform_int = OpTypePointer Uniform %int - %int_1 = OpConstant %int 1 -%_runtimearr_Foo_0 = OpTypeRuntimeArray %Foo - %B = OpTypeStruct %_runtimearr_Foo_0 -%_ptr_Uniform_B = OpTypePointer Uniform %B - %C3 = OpVariable %_ptr_Uniform_B Uniform -%_arr_Foo_0_uint_1024_0 = OpTypeArray %Foo_0 %uint_1024 - %B_0 = OpTypeStruct %_arr_Foo_0_uint_1024_0 -%_ptr_Uniform_B_0 = OpTypePointer Uniform %B_0 - %C4 = OpVariable %_ptr_Uniform_B_0 Uniform - %main = OpFunction %void None %3 - %5 = OpLabel - %19 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %20 = OpLoad %uint %19 - %27 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %28 = OpLoad %uint %27 - %30 = OpAccessChain %_ptr_Uniform_Foo_0 %C2 %int_0 %28 - %31 = OpLoad %Foo_0 %30 - %33 = OpAccessChain %_ptr_Uniform_Foo %C1 %int_0 %20 - %34 = OpCompositeExtract %int %31 0 - %36 = OpAccessChain %_ptr_Uniform_int %33 %int_0 - OpStore %36 %34 - %37 = OpCompositeExtract %int %31 1 - %39 = OpAccessChain %_ptr_Uniform_int %33 %int_1 - OpStore %39 %37 - %44 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %45 = OpLoad %uint %44 - %50 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %51 = OpLoad %uint %50 - %52 = OpAccessChain %_ptr_Uniform_Foo_0 %C4 %int_0 %51 - %53 = OpLoad %Foo_0 %52 - %54 = OpAccessChain %_ptr_Uniform_Foo %C3 %int_0 %45 - %55 = OpCompositeExtract %int %53 0 - %56 = OpAccessChain %_ptr_Uniform_int %54 %int_0 - OpStore %56 %55 - %57 = OpCompositeExtract %int %53 1 - %58 = OpAccessChain %_ptr_Uniform_int %54 %int_1 - OpStore %58 %57 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/comp/builtin-compute-bitcast.asm.comp b/third_party/spirv-cross/shaders/asm/comp/builtin-compute-bitcast.asm.comp deleted file mode 100644 index 4bc9202fc7..0000000000 --- a/third_party/spirv-cross/shaders/asm/comp/builtin-compute-bitcast.asm.comp +++ /dev/null @@ -1,50 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 26 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %gl_WorkGroupID %gl_GlobalInvocationID - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %BUF "BUF" - OpMemberName %BUF 0 "values" - OpName %_ "" - OpName %gl_WorkGroupID "gl_WorkGroupID" - OpName %gl_GlobalInvocationID "gl_GlobalInvocationID" - OpDecorate %_runtimearr_int ArrayStride 4 - OpMemberDecorate %BUF 0 Offset 0 - OpDecorate %BUF BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId - OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId - %void = OpTypeVoid - %int = OpTypeInt 32 1 -%_runtimearr_int = OpTypeRuntimeArray %int - %3 = OpTypeFunction %void - %BUF = OpTypeStruct %_runtimearr_int -%_ptr_Uniform_BUF = OpTypePointer Uniform %BUF - %_ = OpVariable %_ptr_Uniform_BUF Uniform - %int_0 = OpConstant %int 0 - %v3int = OpTypeVector %int 3 -%_ptr_Input_v3int = OpTypePointer Input %v3int -%gl_WorkGroupID = OpVariable %_ptr_Input_v3int Input - %int_1 = OpConstant %int 1 -%_ptr_Input_int = OpTypePointer Input %int -%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3int Input - %int_2 = OpConstant %int 2 -%_ptr_Uniform_int = OpTypePointer Uniform %int - %main = OpFunction %void None %3 - %5 = OpLabel - %18 = OpAccessChain %_ptr_Input_int %gl_WorkGroupID %int_1 - %19 = OpLoad %int %18 - %22 = OpAccessChain %_ptr_Input_int %gl_GlobalInvocationID %int_2 - %23 = OpLoad %int %22 - %25 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %19 - OpStore %25 %23 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/comp/decoration-group.asm.comp b/third_party/spirv-cross/shaders/asm/comp/decoration-group.asm.comp deleted file mode 100644 index b597b4bd83..0000000000 --- a/third_party/spirv-cross/shaders/asm/comp/decoration-group.asm.comp +++ /dev/null @@ -1,99 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos SPIR-V Tools Assembler; 0 -; Bound: 58 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %1 "main" %2 - OpExecutionMode %1 LocalSize 1 1 1 - OpSource GLSL 430 - OpName %1 "main" - OpName %2 "gl_GlobalInvocationID" - OpDecorate %2 BuiltIn GlobalInvocationId - OpDecorate %3 ArrayStride 4 - OpDecorate %4 BufferBlock - OpDecorate %5 Offset 0 - %4 = OpDecorationGroup - %5 = OpDecorationGroup - OpGroupDecorate %4 %6 %7 %8 %9 %10 %11 - OpGroupMemberDecorate %5 %6 0 %7 0 %8 0 %9 0 %10 0 %11 0 - OpDecorate %12 DescriptorSet 0 - OpDecorate %13 DescriptorSet 0 - OpDecorate %13 NonWritable - OpDecorate %13 Restrict - %14 = OpDecorationGroup - %12 = OpDecorationGroup - %13 = OpDecorationGroup - OpGroupDecorate %12 %15 - OpGroupDecorate %12 %15 - OpGroupDecorate %12 %15 - OpDecorate %15 DescriptorSet 0 - OpDecorate %15 Binding 5 - OpGroupDecorate %14 %16 - OpDecorate %16 DescriptorSet 0 - OpDecorate %16 Binding 0 - OpGroupDecorate %12 %17 - OpDecorate %17 Binding 1 - OpGroupDecorate %13 %18 %19 - OpDecorate %18 Binding 2 - OpDecorate %19 Binding 3 - OpGroupDecorate %14 %20 - OpGroupDecorate %12 %20 - OpGroupDecorate %13 %20 - OpDecorate %20 Binding 4 - %21 = OpTypeBool - %22 = OpTypeVoid - %23 = OpTypeFunction %22 - %24 = OpTypeInt 32 0 - %25 = OpTypeInt 32 1 - %26 = OpTypeFloat 32 - %27 = OpTypeVector %24 3 - %28 = OpTypeVector %26 3 - %29 = OpTypePointer Input %27 - %30 = OpTypePointer Uniform %25 - %31 = OpTypePointer Uniform %26 - %32 = OpTypeRuntimeArray %25 - %3 = OpTypeRuntimeArray %26 - %2 = OpVariable %29 Input - %33 = OpConstant %25 0 - %6 = OpTypeStruct %3 - %34 = OpTypePointer Uniform %6 - %15 = OpVariable %34 Uniform - %7 = OpTypeStruct %3 - %35 = OpTypePointer Uniform %7 - %16 = OpVariable %35 Uniform - %8 = OpTypeStruct %3 - %36 = OpTypePointer Uniform %8 - %17 = OpVariable %36 Uniform - %9 = OpTypeStruct %3 - %37 = OpTypePointer Uniform %9 - %18 = OpVariable %37 Uniform - %10 = OpTypeStruct %3 - %38 = OpTypePointer Uniform %10 - %19 = OpVariable %38 Uniform - %11 = OpTypeStruct %3 - %39 = OpTypePointer Uniform %11 - %20 = OpVariable %39 Uniform - %1 = OpFunction %22 None %23 - %40 = OpLabel - %41 = OpLoad %27 %2 - %42 = OpCompositeExtract %24 %41 0 - %43 = OpAccessChain %31 %16 %33 %42 - %44 = OpAccessChain %31 %17 %33 %42 - %45 = OpAccessChain %31 %18 %33 %42 - %46 = OpAccessChain %31 %19 %33 %42 - %47 = OpAccessChain %31 %20 %33 %42 - %48 = OpAccessChain %31 %15 %33 %42 - %49 = OpLoad %26 %43 - %50 = OpLoad %26 %44 - %51 = OpLoad %26 %45 - %52 = OpLoad %26 %46 - %53 = OpLoad %26 %47 - %54 = OpFAdd %26 %49 %50 - %55 = OpFAdd %26 %54 %51 - %56 = OpFAdd %26 %55 %52 - %57 = OpFAdd %26 %56 %53 - OpStore %48 %57 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/comp/global-parameter-name-alias.asm.comp b/third_party/spirv-cross/shaders/asm/comp/global-parameter-name-alias.asm.comp deleted file mode 100644 index 78b1dc74e8..0000000000 --- a/third_party/spirv-cross/shaders/asm/comp/global-parameter-name-alias.asm.comp +++ /dev/null @@ -1,102 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 61 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %id_1 - OpExecutionMode %main LocalSize 1 1 1 - OpSource HLSL 500 - OpName %main "main" - OpName %Load_u1_ "Load(u1;" - OpName %size "size" - OpName %_main_vu3_ "@main(vu3;" - OpName %id "id" - OpName %data "data" - OpName %byteAddrTemp "byteAddrTemp" - OpName %ssbo "ssbo" - OpMemberName %ssbo 0 "@data" - OpName %ssbo_0 "ssbo" - OpName %param "param" - OpName %id_0 "id" - OpName %id_1 "id" - OpName %param_0 "param" - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %ssbo 0 NonWritable - OpMemberDecorate %ssbo 0 Offset 0 - OpDecorate %ssbo BufferBlock - OpDecorate %ssbo_0 DescriptorSet 0 - OpDecorate %ssbo_0 Binding 1 - OpDecorate %id_1 BuiltIn GlobalInvocationId - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 -%_ptr_Function_uint = OpTypePointer Function %uint - %8 = OpTypeFunction %void %_ptr_Function_uint - %v3uint = OpTypeVector %uint 3 -%_ptr_Function_v3uint = OpTypePointer Function %v3uint - %14 = OpTypeFunction %void %_ptr_Function_v3uint - %v4uint = OpTypeVector %uint 4 -%_ptr_Function_v4uint = OpTypePointer Function %v4uint - %int = OpTypeInt 32 1 -%_ptr_Function_int = OpTypePointer Function %int - %int_2 = OpConstant %int 2 -%_runtimearr_uint = OpTypeRuntimeArray %uint - %ssbo = OpTypeStruct %_runtimearr_uint -%_ptr_Uniform_ssbo = OpTypePointer Uniform %ssbo - %ssbo_0 = OpVariable %_ptr_Uniform_ssbo Uniform - %int_0 = OpConstant %int 0 -%_ptr_Uniform_uint = OpTypePointer Uniform %uint - %int_1 = OpConstant %int 1 - %int_3 = OpConstant %int 3 - %uint_4 = OpConstant %uint 4 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint - %id_1 = OpVariable %_ptr_Input_v3uint Input - %main = OpFunction %void None %3 - %5 = OpLabel - %id_0 = OpVariable %_ptr_Function_v3uint Function - %param_0 = OpVariable %_ptr_Function_v3uint Function - %57 = OpLoad %v3uint %id_1 - OpStore %id_0 %57 - %59 = OpLoad %v3uint %id_0 - OpStore %param_0 %59 - %60 = OpFunctionCall %void %_main_vu3_ %param_0 - OpReturn - OpFunctionEnd - %Load_u1_ = OpFunction %void None %8 - %size = OpFunctionParameter %_ptr_Function_uint - %11 = OpLabel - %data = OpVariable %_ptr_Function_v4uint Function -%byteAddrTemp = OpVariable %_ptr_Function_int Function - %24 = OpLoad %uint %size - %26 = OpShiftRightLogical %int %24 %int_2 - OpStore %byteAddrTemp %26 - %32 = OpLoad %int %byteAddrTemp - %34 = OpAccessChain %_ptr_Uniform_uint %ssbo_0 %int_0 %32 - %35 = OpLoad %uint %34 - %36 = OpLoad %int %byteAddrTemp - %38 = OpIAdd %int %36 %int_1 - %39 = OpAccessChain %_ptr_Uniform_uint %ssbo_0 %int_0 %38 - %40 = OpLoad %uint %39 - %41 = OpLoad %int %byteAddrTemp - %42 = OpIAdd %int %41 %int_2 - %43 = OpAccessChain %_ptr_Uniform_uint %ssbo_0 %int_0 %42 - %44 = OpLoad %uint %43 - %45 = OpLoad %int %byteAddrTemp - %47 = OpIAdd %int %45 %int_3 - %48 = OpAccessChain %_ptr_Uniform_uint %ssbo_0 %int_0 %47 - %49 = OpLoad %uint %48 - %50 = OpCompositeConstruct %v4uint %35 %40 %44 %49 - OpStore %data %50 - OpReturn - OpFunctionEnd - %_main_vu3_ = OpFunction %void None %14 - %id = OpFunctionParameter %_ptr_Function_v3uint - %17 = OpLabel - %param = OpVariable %_ptr_Function_uint Function - OpStore %param %uint_4 - %53 = OpFunctionCall %void %Load_u1_ %param - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/comp/hlsl-functionality.asm.comp b/third_party/spirv-cross/shaders/asm/comp/hlsl-functionality.asm.comp deleted file mode 100644 index d431113972..0000000000 --- a/third_party/spirv-cross/shaders/asm/comp/hlsl-functionality.asm.comp +++ /dev/null @@ -1,64 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 31 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_GOOGLE_hlsl_functionality1" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource HLSL 500 - OpName %main "main" - OpName %_main_ "@main(" - OpName %Buf "Buf" - OpMemberName %Buf 0 "@data" - OpName %Buf_0 "Buf" - OpName %Buf_count "Buf@count" - OpMemberName %Buf_count 0 "@count" - OpName %Buf_count_0 "Buf@count" - OpDecorate %_runtimearr_v4float ArrayStride 16 - OpMemberDecorate %Buf 0 Offset 0 - OpDecorate %Buf BufferBlock - OpDecorate %Buf_0 DescriptorSet 0 - OpDecorate %Buf_0 Binding 0 - OpMemberDecorate %Buf_count 0 Offset 0 - OpDecorate %Buf_count BufferBlock - OpDecorate %Buf_count_0 DescriptorSet 0 - OpDecorate %Buf_count_0 Binding 1 - OpDecorateId %Buf_0 HlslCounterBufferGOOGLE %Buf_count_0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_runtimearr_v4float = OpTypeRuntimeArray %v4float - %Buf = OpTypeStruct %_runtimearr_v4float -%_ptr_Uniform_Buf = OpTypePointer Uniform %Buf - %Buf_0 = OpVariable %_ptr_Uniform_Buf Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %Buf_count = OpTypeStruct %int -%_ptr_Uniform_Buf_count = OpTypePointer Uniform %Buf_count -%Buf_count_0 = OpVariable %_ptr_Uniform_Buf_count Uniform -%_ptr_Uniform_int = OpTypePointer Uniform %int - %int_1 = OpConstant %int 1 - %uint = OpTypeInt 32 0 - %uint_1 = OpConstant %uint 1 - %uint_0 = OpConstant %uint 0 - %float_1 = OpConstant %float 1 - %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float - %main = OpFunction %void None %3 - %5 = OpLabel - %30 = OpFunctionCall %void %_main_ - OpReturn - OpFunctionEnd - %_main_ = OpFunction %void None %3 - %7 = OpLabel - %20 = OpAccessChain %_ptr_Uniform_int %Buf_count_0 %int_0 - %25 = OpAtomicIAdd %int %20 %uint_1 %uint_0 %int_1 - %29 = OpAccessChain %_ptr_Uniform_v4float %Buf_0 %int_0 %25 - OpStore %29 %27 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/comp/logical.asm.comp b/third_party/spirv-cross/shaders/asm/comp/logical.asm.comp deleted file mode 100644 index 4174e77f3d..0000000000 --- a/third_party/spirv-cross/shaders/asm/comp/logical.asm.comp +++ /dev/null @@ -1,191 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 152 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource ESSL 310 - OpName %main "main" - OpName %and_b1_b1_ "and(b1;b1;" - OpName %a "a" - OpName %b "b" - OpName %and_vb2_vb2_ "and(vb2;vb2;" - OpName %a_0 "a" - OpName %b_0 "b" - OpName %and_vb3_vb3_ "and(vb3;vb3;" - OpName %a_1 "a" - OpName %b_1 "b" - OpName %and_vb4_vb4_ "and(vb4;vb4;" - OpName %a_2 "a" - OpName %b_2 "b" - OpName %b0 "b0" - OpName %SSBO0 "SSBO0" - OpMemberName %SSBO0 0 "a" - OpMemberName %SSBO0 1 "b" - OpMemberName %SSBO0 2 "c" - OpMemberName %SSBO0 3 "d" - OpName %s0 "s0" - OpName %SSBO1 "SSBO1" - OpMemberName %SSBO1 0 "a" - OpMemberName %SSBO1 1 "b" - OpMemberName %SSBO1 2 "c" - OpMemberName %SSBO1 3 "d" - OpName %s1 "s1" - OpName %param "param" - OpName %param_0 "param" - OpName %b1 "b1" - OpName %param_1 "param" - OpName %param_2 "param" - OpName %b2 "b2" - OpName %param_3 "param" - OpName %param_4 "param" - OpName %b3 "b3" - OpName %param_5 "param" - OpName %param_6 "param" - OpMemberDecorate %SSBO0 0 Offset 0 - OpMemberDecorate %SSBO0 1 Offset 8 - OpMemberDecorate %SSBO0 2 Offset 16 - OpMemberDecorate %SSBO0 3 Offset 32 - OpDecorate %SSBO0 BufferBlock - OpDecorate %s0 DescriptorSet 0 - OpDecorate %s0 Binding 0 - OpMemberDecorate %SSBO1 0 Offset 0 - OpMemberDecorate %SSBO1 1 Offset 8 - OpMemberDecorate %SSBO1 2 Offset 16 - OpMemberDecorate %SSBO1 3 Offset 32 - OpDecorate %SSBO1 BufferBlock - OpDecorate %s1 DescriptorSet 0 - OpDecorate %s1 Binding 1 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %bool = OpTypeBool -%_ptr_Function_bool = OpTypePointer Function %bool - %8 = OpTypeFunction %bool %_ptr_Function_bool %_ptr_Function_bool - %v2bool = OpTypeVector %bool 2 -%_ptr_Function_v2bool = OpTypePointer Function %v2bool - %15 = OpTypeFunction %v2bool %_ptr_Function_v2bool %_ptr_Function_v2bool - %v3bool = OpTypeVector %bool 3 -%_ptr_Function_v3bool = OpTypePointer Function %v3bool - %22 = OpTypeFunction %v3bool %_ptr_Function_v3bool %_ptr_Function_v3bool - %v4bool = OpTypeVector %bool 4 -%_ptr_Function_v4bool = OpTypePointer Function %v4bool - %29 = OpTypeFunction %v4bool %_ptr_Function_v4bool %_ptr_Function_v4bool - %float = OpTypeFloat 32 - %v2float = OpTypeVector %float 2 - %v3float = OpTypeVector %float 3 - %v4float = OpTypeVector %float 4 - %SSBO0 = OpTypeStruct %float %v2float %v3float %v4float -%_ptr_Uniform_SSBO0 = OpTypePointer Uniform %SSBO0 - %s0 = OpVariable %_ptr_Uniform_SSBO0 Uniform - %int = OpTypeInt 32 1 - %102 = OpConstant %int 0 -%_ptr_Uniform_float = OpTypePointer Uniform %float - %SSBO1 = OpTypeStruct %float %v2float %v3float %v4float -%_ptr_Uniform_SSBO1 = OpTypePointer Uniform %SSBO1 - %s1 = OpVariable %_ptr_Uniform_SSBO1 Uniform - %117 = OpConstant %int 1 -%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float - %129 = OpConstant %int 2 -%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float - %141 = OpConstant %int 3 -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float - %main = OpFunction %void None %3 - %5 = OpLabel - %b0 = OpVariable %_ptr_Function_bool Function - %param = OpVariable %_ptr_Function_bool Function - %param_0 = OpVariable %_ptr_Function_bool Function - %b1 = OpVariable %_ptr_Function_v2bool Function - %param_1 = OpVariable %_ptr_Function_v2bool Function - %param_2 = OpVariable %_ptr_Function_v2bool Function - %b2 = OpVariable %_ptr_Function_v3bool Function - %param_3 = OpVariable %_ptr_Function_v3bool Function - %param_4 = OpVariable %_ptr_Function_v3bool Function - %b3 = OpVariable %_ptr_Function_v4bool Function - %param_5 = OpVariable %_ptr_Function_v4bool Function - %param_6 = OpVariable %_ptr_Function_v4bool Function - %104 = OpAccessChain %_ptr_Uniform_float %s0 %102 - %105 = OpLoad %float %104 - %106 = OpIsInf %bool %105 - %110 = OpAccessChain %_ptr_Uniform_float %s1 %102 - %111 = OpLoad %float %110 - %112 = OpIsNan %bool %111 - OpStore %param %106 - OpStore %param_0 %112 - %115 = OpFunctionCall %bool %and_b1_b1_ %param %param_0 - OpStore %b0 %115 - %119 = OpAccessChain %_ptr_Uniform_v2float %s0 %117 - %120 = OpLoad %v2float %119 - %121 = OpIsInf %v2bool %120 - %122 = OpAccessChain %_ptr_Uniform_v2float %s1 %117 - %123 = OpLoad %v2float %122 - %124 = OpIsNan %v2bool %123 - OpStore %param_1 %121 - OpStore %param_2 %124 - %127 = OpFunctionCall %v2bool %and_vb2_vb2_ %param_1 %param_2 - OpStore %b1 %127 - %131 = OpAccessChain %_ptr_Uniform_v3float %s0 %129 - %132 = OpLoad %v3float %131 - %133 = OpIsInf %v3bool %132 - %134 = OpAccessChain %_ptr_Uniform_v3float %s1 %129 - %135 = OpLoad %v3float %134 - %136 = OpIsNan %v3bool %135 - OpStore %param_3 %133 - OpStore %param_4 %136 - %139 = OpFunctionCall %v3bool %and_vb3_vb3_ %param_3 %param_4 - OpStore %b2 %139 - %143 = OpAccessChain %_ptr_Uniform_v4float %s0 %141 - %144 = OpLoad %v4float %143 - %145 = OpIsInf %v4bool %144 - %146 = OpAccessChain %_ptr_Uniform_v4float %s1 %141 - %147 = OpLoad %v4float %146 - %148 = OpIsNan %v4bool %147 - OpStore %param_5 %145 - OpStore %param_6 %148 - %151 = OpFunctionCall %v4bool %and_vb4_vb4_ %param_5 %param_6 - OpStore %b3 %151 - OpReturn - OpFunctionEnd - %and_b1_b1_ = OpFunction %bool None %8 - %a = OpFunctionParameter %_ptr_Function_bool - %b = OpFunctionParameter %_ptr_Function_bool - %12 = OpLabel - %34 = OpLoad %bool %a - %35 = OpLoad %bool %b - %36 = OpLogicalAnd %bool %34 %35 - %37 = OpLogicalOr %bool %36 %35 - %38 = OpLogicalNot %bool %37 - OpReturnValue %38 - OpFunctionEnd -%and_vb2_vb2_ = OpFunction %v2bool None %15 - %a_0 = OpFunctionParameter %_ptr_Function_v2bool - %b_0 = OpFunctionParameter %_ptr_Function_v2bool - %19 = OpLabel - %39 = OpLoad %v2bool %a_0 - %41 = OpLoad %v2bool %b_0 - %48 = OpLogicalAnd %v2bool %39 %41 - %49 = OpLogicalOr %v2bool %48 %41 - %50 = OpLogicalNot %v2bool %49 - OpReturnValue %50 - OpFunctionEnd -%and_vb3_vb3_ = OpFunction %v3bool None %22 - %a_1 = OpFunctionParameter %_ptr_Function_v3bool - %b_1 = OpFunctionParameter %_ptr_Function_v3bool - %26 = OpLabel - %52 = OpLoad %v3bool %a_1 - %54 = OpLoad %v3bool %b_1 - %66 = OpLogicalAnd %v3bool %52 %54 - OpReturnValue %66 - OpFunctionEnd -%and_vb4_vb4_ = OpFunction %v4bool None %29 - %a_2 = OpFunctionParameter %_ptr_Function_v4bool - %b_2 = OpFunctionParameter %_ptr_Function_v4bool - %33 = OpLabel - %70 = OpLoad %v4bool %a_2 - %72 = OpLoad %v4bool %b_2 - %74 = OpLogicalAnd %v4bool %70 %72 - OpReturnValue %74 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/comp/multiple-entry.asm.comp b/third_party/spirv-cross/shaders/asm/comp/multiple-entry.asm.comp deleted file mode 100644 index 9ddc07bccf..0000000000 --- a/third_party/spirv-cross/shaders/asm/comp/multiple-entry.asm.comp +++ /dev/null @@ -1,98 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 30 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %func_alt "main2" %frag_in %frag_out - OpEntryPoint GLCompute %func "main" - OpExecutionMode %func LocalSize 1 1 1 - OpExecutionMode %func_alt OriginUpperLeft - OpSource ESSL 310 - OpSourceExtension "GL_GOOGLE_cpp_style_line_directive" - OpSourceExtension "GL_GOOGLE_include_directive" - OpMemberDecorate %input_struct 0 Offset 0 - OpMemberDecorate %input_struct 1 Offset 16 - OpMemberDecorate %output_struct 0 Offset 0 - OpMemberDecorate %output_struct 1 Offset 16 - OpDecorate %input_struct BufferBlock - OpDecorate %inputs DescriptorSet 0 - OpDecorate %inputs Binding 0 - OpDecorate %inputs Restrict - OpDecorate %output_struct BufferBlock - OpDecorate %outputs DescriptorSet 0 - OpDecorate %outputs Binding 1 - OpDecorate %outputs Restrict - OpDecorate %frag_in Location 0 - OpDecorate %frag_out Location 0 - - %void = OpTypeVoid - %main_func = OpTypeFunction %void - - %uint = OpTypeInt 32 0 - %uvec4 = OpTypeVector %uint 4 - - %int = OpTypeInt 32 1 - %ivec4 = OpTypeVector %int 4 - - %ivec4_ptr = OpTypePointer Uniform %ivec4 - %uvec4_ptr = OpTypePointer Uniform %uvec4 - - %float = OpTypeFloat 32 - %vec4 = OpTypeVector %float 4 - %vec4_input_ptr = OpTypePointer Input %vec4 - %vec4_output_ptr = OpTypePointer Output %vec4 - - %zero = OpConstant %int 0 - %one = OpConstant %int 1 - - %input_struct = OpTypeStruct %ivec4 %uvec4 - %input_struct_ptr = OpTypePointer Uniform %input_struct - %inputs = OpVariable %input_struct_ptr Uniform - %output_struct = OpTypeStruct %uvec4 %ivec4 - %output_struct_ptr = OpTypePointer Uniform %output_struct - %outputs = OpVariable %output_struct_ptr Uniform - - %frag_in = OpVariable %vec4_input_ptr Input - %frag_out = OpVariable %vec4_output_ptr Output - - %func = OpFunction %void None %main_func - %block = OpLabel - - %input1_ptr = OpAccessChain %ivec4_ptr %inputs %zero - %input0_ptr = OpAccessChain %uvec4_ptr %inputs %one - %input1 = OpLoad %ivec4 %input1_ptr - %input0 = OpLoad %uvec4 %input0_ptr - - %output_ptr_uvec4 = OpAccessChain %uvec4_ptr %outputs %zero - %output_ptr_ivec4 = OpAccessChain %ivec4_ptr %outputs %one - -; Test all variants of IAdd - %result_iadd_0 = OpIAdd %uvec4 %input0 %input1 - %result_iadd_1 = OpIAdd %uvec4 %input1 %input0 - %result_iadd_2 = OpIAdd %uvec4 %input0 %input0 - %result_iadd_3 = OpIAdd %uvec4 %input1 %input1 - %result_iadd_4 = OpIAdd %ivec4 %input0 %input0 - %result_iadd_5 = OpIAdd %ivec4 %input1 %input1 - %result_iadd_6 = OpIAdd %ivec4 %input0 %input1 - %result_iadd_7 = OpIAdd %ivec4 %input1 %input0 - OpStore %output_ptr_uvec4 %result_iadd_0 - OpStore %output_ptr_uvec4 %result_iadd_1 - OpStore %output_ptr_uvec4 %result_iadd_2 - OpStore %output_ptr_uvec4 %result_iadd_3 - OpStore %output_ptr_ivec4 %result_iadd_4 - OpStore %output_ptr_ivec4 %result_iadd_5 - OpStore %output_ptr_ivec4 %result_iadd_6 - OpStore %output_ptr_ivec4 %result_iadd_7 - - OpReturn - OpFunctionEnd - - %func_alt = OpFunction %void None %main_func - %block_alt = OpLabel - %frag_input_value = OpLoad %vec4 %frag_in - OpStore %frag_out %frag_input_value - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/comp/nmin-max-clamp.asm.comp b/third_party/spirv-cross/shaders/asm/comp/nmin-max-clamp.asm.comp deleted file mode 100644 index 6c060eedad..0000000000 --- a/third_party/spirv-cross/shaders/asm/comp/nmin-max-clamp.asm.comp +++ /dev/null @@ -1,203 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Khronos SPIR-V Tools Assembler; 0 -; Bound: 139 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "a1" - OpMemberName %SSBO 1 "a2" - OpMemberName %SSBO 2 "a3" - OpMemberName %SSBO 3 "a4" - OpMemberName %SSBO 4 "b1" - OpMemberName %SSBO 5 "b2" - OpMemberName %SSBO 6 "b3" - OpMemberName %SSBO 7 "b4" - OpMemberName %SSBO 8 "c1" - OpMemberName %SSBO 9 "c2" - OpMemberName %SSBO 10 "c3" - OpMemberName %SSBO 11 "c4" - OpName %_ "" - OpName %i "i" - OpMemberDecorate %SSBO 0 Offset 0 - OpMemberDecorate %SSBO 1 Offset 8 - OpMemberDecorate %SSBO 2 Offset 16 - OpMemberDecorate %SSBO 3 Offset 32 - OpMemberDecorate %SSBO 4 Offset 48 - OpMemberDecorate %SSBO 5 Offset 56 - OpMemberDecorate %SSBO 6 Offset 64 - OpMemberDecorate %SSBO 7 Offset 80 - OpMemberDecorate %SSBO 8 Offset 96 - OpMemberDecorate %SSBO 9 Offset 104 - OpMemberDecorate %SSBO 10 Offset 112 - OpMemberDecorate %SSBO 11 Offset 128 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - %void = OpTypeVoid - %7 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v2float = OpTypeVector %float 2 - %v3float = OpTypeVector %float 3 - %v4float = OpTypeVector %float 4 - %SSBO = OpTypeStruct %float %v2float %v3float %v4float %float %v2float %v3float %v4float %float %v2float %v3float %v4float -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %int_4 = OpConstant %int 4 -%_ptr_Uniform_float = OpTypePointer Uniform %float - %int_8 = OpConstant %int 8 - %int_1 = OpConstant %int 1 - %int_5 = OpConstant %int 5 -%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float - %int_9 = OpConstant %int 9 - %int_2 = OpConstant %int 2 - %int_6 = OpConstant %int 6 -%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float - %int_10 = OpConstant %int 10 - %int_3 = OpConstant %int 3 - %int_7 = OpConstant %int 7 -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float - %int_11 = OpConstant %int 11 -%_ptr_Function_int = OpTypePointer Function %int - %bool = OpTypeBool - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 - %uint_1 = OpConstant %uint 1 - %main = OpFunction %void None %7 - %35 = OpLabel - %i = OpVariable %_ptr_Function_int Function - %36 = OpAccessChain %_ptr_Uniform_float %_ %int_4 - %37 = OpLoad %float %36 - %38 = OpAccessChain %_ptr_Uniform_float %_ %int_8 - %39 = OpLoad %float %38 - %40 = OpExtInst %float %1 NMin %37 %39 - %41 = OpAccessChain %_ptr_Uniform_float %_ %int_0 - OpStore %41 %40 - %42 = OpAccessChain %_ptr_Uniform_v2float %_ %int_5 - %43 = OpLoad %v2float %42 - %44 = OpAccessChain %_ptr_Uniform_v2float %_ %int_9 - %45 = OpLoad %v2float %44 - %46 = OpExtInst %v2float %1 NMin %43 %45 - %47 = OpAccessChain %_ptr_Uniform_v2float %_ %int_1 - OpStore %47 %46 - %48 = OpAccessChain %_ptr_Uniform_v3float %_ %int_6 - %49 = OpLoad %v3float %48 - %50 = OpAccessChain %_ptr_Uniform_v3float %_ %int_10 - %51 = OpLoad %v3float %50 - %52 = OpExtInst %v3float %1 NMin %49 %51 - %53 = OpAccessChain %_ptr_Uniform_v3float %_ %int_2 - OpStore %53 %52 - %54 = OpAccessChain %_ptr_Uniform_v4float %_ %int_7 - %55 = OpLoad %v4float %54 - %56 = OpAccessChain %_ptr_Uniform_v4float %_ %int_11 - %57 = OpLoad %v4float %56 - %58 = OpExtInst %v4float %1 NMin %55 %57 - %59 = OpAccessChain %_ptr_Uniform_v4float %_ %int_3 - OpStore %59 %58 - %60 = OpAccessChain %_ptr_Uniform_float %_ %int_4 - %61 = OpLoad %float %60 - %62 = OpAccessChain %_ptr_Uniform_float %_ %int_8 - %63 = OpLoad %float %62 - %64 = OpExtInst %float %1 NMax %61 %63 - %65 = OpAccessChain %_ptr_Uniform_float %_ %int_0 - OpStore %65 %64 - %66 = OpAccessChain %_ptr_Uniform_v2float %_ %int_5 - %67 = OpLoad %v2float %66 - %68 = OpAccessChain %_ptr_Uniform_v2float %_ %int_9 - %69 = OpLoad %v2float %68 - %70 = OpExtInst %v2float %1 NMax %67 %69 - %71 = OpAccessChain %_ptr_Uniform_v2float %_ %int_1 - OpStore %71 %70 - %72 = OpAccessChain %_ptr_Uniform_v3float %_ %int_6 - %73 = OpLoad %v3float %72 - %74 = OpAccessChain %_ptr_Uniform_v3float %_ %int_10 - %75 = OpLoad %v3float %74 - %76 = OpExtInst %v3float %1 NMax %73 %75 - %77 = OpAccessChain %_ptr_Uniform_v3float %_ %int_2 - OpStore %77 %76 - %78 = OpAccessChain %_ptr_Uniform_v4float %_ %int_7 - %79 = OpLoad %v4float %78 - %80 = OpAccessChain %_ptr_Uniform_v4float %_ %int_11 - %81 = OpLoad %v4float %80 - %82 = OpExtInst %v4float %1 NMax %79 %81 - %83 = OpAccessChain %_ptr_Uniform_v4float %_ %int_3 - OpStore %83 %82 - %84 = OpAccessChain %_ptr_Uniform_float %_ %int_0 - %85 = OpLoad %float %84 - %86 = OpAccessChain %_ptr_Uniform_float %_ %int_4 - %87 = OpLoad %float %86 - %88 = OpAccessChain %_ptr_Uniform_float %_ %int_8 - %89 = OpLoad %float %88 - %90 = OpExtInst %float %1 NClamp %85 %87 %89 - %91 = OpAccessChain %_ptr_Uniform_float %_ %int_0 - OpStore %91 %90 - %92 = OpAccessChain %_ptr_Uniform_v2float %_ %int_1 - %93 = OpLoad %v2float %92 - %94 = OpAccessChain %_ptr_Uniform_v2float %_ %int_5 - %95 = OpLoad %v2float %94 - %96 = OpAccessChain %_ptr_Uniform_v2float %_ %int_9 - %97 = OpLoad %v2float %96 - %98 = OpExtInst %v2float %1 NClamp %93 %95 %97 - %99 = OpAccessChain %_ptr_Uniform_v2float %_ %int_1 - OpStore %99 %98 - %100 = OpAccessChain %_ptr_Uniform_v3float %_ %int_2 - %101 = OpLoad %v3float %100 - %102 = OpAccessChain %_ptr_Uniform_v3float %_ %int_6 - %103 = OpLoad %v3float %102 - %104 = OpAccessChain %_ptr_Uniform_v3float %_ %int_10 - %105 = OpLoad %v3float %104 - %106 = OpExtInst %v3float %1 NClamp %101 %103 %105 - %107 = OpAccessChain %_ptr_Uniform_v3float %_ %int_2 - OpStore %107 %106 - %108 = OpAccessChain %_ptr_Uniform_v4float %_ %int_3 - %109 = OpLoad %v4float %108 - %110 = OpAccessChain %_ptr_Uniform_v4float %_ %int_7 - %111 = OpLoad %v4float %110 - %112 = OpAccessChain %_ptr_Uniform_v4float %_ %int_11 - %113 = OpLoad %v4float %112 - %114 = OpExtInst %v4float %1 NClamp %109 %111 %113 - %115 = OpAccessChain %_ptr_Uniform_v4float %_ %int_3 - OpStore %115 %114 - OpStore %i %int_0 - OpBranch %116 - %116 = OpLabel - OpLoopMerge %117 %118 None - OpBranch %119 - %119 = OpLabel - %120 = OpLoad %int %i - %121 = OpSLessThan %bool %120 %int_2 - OpBranchConditional %121 %122 %117 - %122 = OpLabel - %123 = OpAccessChain %_ptr_Uniform_v2float %_ %int_5 - %124 = OpLoad %v2float %123 - %125 = OpAccessChain %_ptr_Uniform_v2float %_ %int_9 - %126 = OpLoad %v2float %125 - %127 = OpExtInst %v2float %1 NMin %124 %126 - %128 = OpAccessChain %_ptr_Uniform_v2float %_ %int_1 - OpStore %128 %127 - OpBranch %118 - %118 = OpLabel - %129 = OpLoad %int %i - %130 = OpIAdd %int %129 %int_1 - OpStore %i %130 - %131 = OpAccessChain %_ptr_Uniform_float %_ %int_0 - %132 = OpLoad %float %131 - %133 = OpAccessChain %_ptr_Uniform_float %_ %int_5 %uint_0 - %134 = OpLoad %float %133 - %135 = OpAccessChain %_ptr_Uniform_float %_ %int_5 %uint_1 - %136 = OpLoad %float %135 - %137 = OpExtInst %float %1 NClamp %132 %134 %136 - %138 = OpAccessChain %_ptr_Uniform_float %_ %int_0 - OpStore %138 %137 - OpBranch %116 - %117 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/comp/op-phi-swap.asm.comp b/third_party/spirv-cross/shaders/asm/comp/op-phi-swap.asm.comp deleted file mode 100644 index dc18d6972f..0000000000 --- a/third_party/spirv-cross/shaders/asm/comp/op-phi-swap.asm.comp +++ /dev/null @@ -1,63 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos SPIR-V Tools Assembler; 0 -; Bound: 39 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID - OpExecutionMode %main LocalSize 1 1 1 - OpName %main "main" - OpName %gl_GlobalInvocationID "gl_GlobalInvocationID" - OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId - OpDecorate %_struct_3 BufferBlock - OpDecorate %4 DescriptorSet 0 - OpDecorate %4 Binding 0 - OpDecorate %5 DescriptorSet 0 - OpDecorate %5 Binding 1 - OpDecorate %_runtimearr_float ArrayStride 4 - OpMemberDecorate %_struct_3 0 Offset 0 - %bool = OpTypeBool - %void = OpTypeVoid - %9 = OpTypeFunction %void - %uint = OpTypeInt 32 0 - %int = OpTypeInt 32 1 - %float = OpTypeFloat 32 - %v3uint = OpTypeVector %uint 3 - %v3float = OpTypeVector %float 3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%_ptr_Uniform_int = OpTypePointer Uniform %int -%_ptr_Uniform_float = OpTypePointer Uniform %float -%_runtimearr_int = OpTypeRuntimeArray %int -%_runtimearr_float = OpTypeRuntimeArray %float - %_struct_3 = OpTypeStruct %_runtimearr_float -%_ptr_Uniform__struct_3 = OpTypePointer Uniform %_struct_3 - %4 = OpVariable %_ptr_Uniform__struct_3 Uniform - %5 = OpVariable %_ptr_Uniform__struct_3 Uniform -%_ptr_Function_float = OpTypePointer Function %float -%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input - %true = OpConstantTrue %bool - %false = OpConstantFalse %bool - %int_0 = OpConstant %int 0 - %float_8_5 = OpConstant %float 8.5 - %main = OpFunction %void None %9 - %25 = OpLabel - %26 = OpVariable %_ptr_Function_float Function %float_8_5 - %27 = OpLoad %v3uint %gl_GlobalInvocationID - %28 = OpCompositeExtract %uint %27 0 - %29 = OpAccessChain %_ptr_Uniform_float %4 %int_0 %28 - %30 = OpAccessChain %_ptr_Uniform_float %5 %int_0 %28 - %31 = OpLoad %float %29 - %32 = OpLoad %float %26 - OpBranch %33 - %33 = OpLabel - %34 = OpPhi %bool %true %25 %false %33 - %35 = OpPhi %float %31 %25 %36 %33 - %36 = OpPhi %float %32 %25 %35 %33 - OpLoopMerge %37 %33 None - OpBranchConditional %34 %33 %37 - %37 = OpLabel - %38 = OpFSub %float %35 %36 - OpStore %30 %38 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/comp/quantize.asm.comp b/third_party/spirv-cross/shaders/asm/comp/quantize.asm.comp deleted file mode 100644 index f5afc6570c..0000000000 --- a/third_party/spirv-cross/shaders/asm/comp/quantize.asm.comp +++ /dev/null @@ -1,67 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 38 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %4 "main" - OpExecutionMode %4 LocalSize 1 1 1 - OpSource ESSL 310 - OpName %4 "main" - OpName %10 "SSBO0" - OpMemberName %10 0 "scalar" - OpMemberName %10 1 "vec2_val" - OpMemberName %10 2 "vec3_val" - OpMemberName %10 3 "vec4_val" - OpName %12 "" - OpMemberDecorate %10 0 Offset 0 - OpMemberDecorate %10 1 Offset 8 - OpMemberDecorate %10 2 Offset 16 - OpMemberDecorate %10 3 Offset 32 - OpDecorate %10 BufferBlock - OpDecorate %12 DescriptorSet 0 - OpDecorate %12 Binding 0 - %2 = OpTypeVoid - %3 = OpTypeFunction %2 - %6 = OpTypeFloat 32 - %7 = OpTypeVector %6 2 - %8 = OpTypeVector %6 3 - %9 = OpTypeVector %6 4 - %10 = OpTypeStruct %6 %7 %8 %9 - %11 = OpTypePointer Uniform %10 - %12 = OpVariable %11 Uniform - %13 = OpTypeInt 32 1 - %14 = OpConstant %13 0 - %15 = OpTypePointer Uniform %6 - %20 = OpConstant %13 1 - %21 = OpTypePointer Uniform %7 - %26 = OpConstant %13 2 - %27 = OpTypePointer Uniform %8 - %32 = OpConstant %13 3 - %33 = OpTypePointer Uniform %9 - %4 = OpFunction %2 None %3 - %5 = OpLabel - %16 = OpAccessChain %15 %12 %14 - %17 = OpLoad %6 %16 - %18 = OpQuantizeToF16 %6 %17 - %19 = OpAccessChain %15 %12 %14 - OpStore %19 %18 - %22 = OpAccessChain %21 %12 %20 - %23 = OpLoad %7 %22 - %24 = OpQuantizeToF16 %7 %23 - %25 = OpAccessChain %21 %12 %20 - OpStore %25 %24 - %28 = OpAccessChain %27 %12 %26 - %29 = OpLoad %8 %28 - %30 = OpQuantizeToF16 %8 %29 - %31 = OpAccessChain %27 %12 %26 - OpStore %31 %30 - %34 = OpAccessChain %33 %12 %32 - %35 = OpLoad %9 %34 - %36 = OpQuantizeToF16 %9 %35 - %37 = OpAccessChain %33 %12 %32 - OpStore %37 %36 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/comp/recompile-block-naming.asm.comp b/third_party/spirv-cross/shaders/asm/comp/recompile-block-naming.asm.comp deleted file mode 100644 index 227a82b18e..0000000000 --- a/third_party/spirv-cross/shaders/asm/comp/recompile-block-naming.asm.comp +++ /dev/null @@ -1,140 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 97 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource HLSL 500 - OpName %main "main" - OpName %_main_ "@main(" - OpName %a "a" - OpName %byteAddrTemp "byteAddrTemp" - OpName %MyFirstBuffer "MyFirstBuffer" - OpMemberName %MyFirstBuffer 0 "@data" - OpName %MyFirstBuffer_0 "MyFirstBuffer" - OpName %b "b" - OpName %byteAddrTemp_0 "byteAddrTemp" - OpName %MySecondBuffer "MySecondBuffer" - OpName %byteAddrTemp_1 "byteAddrTemp" - OpName %MyThirdBuffer "MyThirdBuffer" - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %MyFirstBuffer 0 Offset 0 - OpDecorate %MyFirstBuffer BufferBlock - OpDecorate %MyFirstBuffer_0 DescriptorSet 0 - OpDecorate %MyFirstBuffer_0 Binding 0 - OpDecorate %MySecondBuffer DescriptorSet 0 - OpDecorate %MySecondBuffer Binding 0 - OpDecorate %MyThirdBuffer DescriptorSet 0 - OpDecorate %MyThirdBuffer Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 - %v4uint = OpTypeVector %uint 4 -%_ptr_Function_v4uint = OpTypePointer Function %v4uint - %int = OpTypeInt 32 1 -%_ptr_Function_int = OpTypePointer Function %int - %int_0 = OpConstant %int 0 - %int_2 = OpConstant %int 2 -%_runtimearr_uint = OpTypeRuntimeArray %uint -%MyFirstBuffer = OpTypeStruct %_runtimearr_uint -%_ptr_Uniform_MyFirstBuffer = OpTypePointer Uniform %MyFirstBuffer -%MyFirstBuffer_0 = OpVariable %_ptr_Uniform_MyFirstBuffer Uniform -%_ptr_Uniform_uint = OpTypePointer Uniform %uint - %int_1 = OpConstant %int 1 - %int_3 = OpConstant %int 3 - %int_4 = OpConstant %int 4 -%MySecondBuffer = OpVariable %_ptr_Uniform_MyFirstBuffer Uniform -%MyThirdBuffer = OpVariable %_ptr_Uniform_MyFirstBuffer Uniform - %uint_0 = OpConstant %uint 0 - %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 - %uint_3 = OpConstant %uint 3 - %main = OpFunction %void None %3 - %5 = OpLabel - %96 = OpFunctionCall %void %_main_ - OpReturn - OpFunctionEnd - %_main_ = OpFunction %void None %3 - %7 = OpLabel - %a = OpVariable %_ptr_Function_v4uint Function -%byteAddrTemp = OpVariable %_ptr_Function_int Function - %b = OpVariable %_ptr_Function_v4uint Function -%byteAddrTemp_0 = OpVariable %_ptr_Function_int Function -%byteAddrTemp_1 = OpVariable %_ptr_Function_int Function - %17 = OpShiftRightArithmetic %int %int_0 %int_2 - OpStore %byteAddrTemp %17 - %22 = OpLoad %int %byteAddrTemp - %24 = OpAccessChain %_ptr_Uniform_uint %MyFirstBuffer_0 %int_0 %22 - %25 = OpLoad %uint %24 - %26 = OpLoad %int %byteAddrTemp - %28 = OpIAdd %int %26 %int_1 - %29 = OpAccessChain %_ptr_Uniform_uint %MyFirstBuffer_0 %int_0 %28 - %30 = OpLoad %uint %29 - %31 = OpLoad %int %byteAddrTemp - %32 = OpIAdd %int %31 %int_2 - %33 = OpAccessChain %_ptr_Uniform_uint %MyFirstBuffer_0 %int_0 %32 - %34 = OpLoad %uint %33 - %35 = OpLoad %int %byteAddrTemp - %37 = OpIAdd %int %35 %int_3 - %38 = OpAccessChain %_ptr_Uniform_uint %MyFirstBuffer_0 %int_0 %37 - %39 = OpLoad %uint %38 - %40 = OpCompositeConstruct %v4uint %25 %30 %34 %39 - OpStore %a %40 - %44 = OpShiftRightArithmetic %int %int_4 %int_2 - OpStore %byteAddrTemp_0 %44 - %46 = OpLoad %int %byteAddrTemp_0 - %47 = OpAccessChain %_ptr_Uniform_uint %MySecondBuffer %int_0 %46 - %48 = OpLoad %uint %47 - %49 = OpLoad %int %byteAddrTemp_0 - %50 = OpIAdd %int %49 %int_1 - %51 = OpAccessChain %_ptr_Uniform_uint %MySecondBuffer %int_0 %50 - %52 = OpLoad %uint %51 - %53 = OpLoad %int %byteAddrTemp_0 - %54 = OpIAdd %int %53 %int_2 - %55 = OpAccessChain %_ptr_Uniform_uint %MySecondBuffer %int_0 %54 - %56 = OpLoad %uint %55 - %57 = OpLoad %int %byteAddrTemp_0 - %58 = OpIAdd %int %57 %int_3 - %59 = OpAccessChain %_ptr_Uniform_uint %MySecondBuffer %int_0 %58 - %60 = OpLoad %uint %59 - %61 = OpCompositeConstruct %v4uint %48 %52 %56 %60 - OpStore %b %61 - %63 = OpShiftRightArithmetic %int %int_0 %int_2 - OpStore %byteAddrTemp_1 %63 - %65 = OpLoad %int %byteAddrTemp_1 - %66 = OpLoad %v4uint %a - %67 = OpLoad %v4uint %b - %68 = OpIAdd %v4uint %66 %67 - %70 = OpCompositeExtract %uint %68 0 - %71 = OpAccessChain %_ptr_Uniform_uint %MyThirdBuffer %int_0 %65 - OpStore %71 %70 - %72 = OpLoad %int %byteAddrTemp_1 - %73 = OpIAdd %int %72 %int_1 - %74 = OpLoad %v4uint %a - %75 = OpLoad %v4uint %b - %76 = OpIAdd %v4uint %74 %75 - %78 = OpCompositeExtract %uint %76 1 - %79 = OpAccessChain %_ptr_Uniform_uint %MyThirdBuffer %int_0 %73 - OpStore %79 %78 - %80 = OpLoad %int %byteAddrTemp_1 - %81 = OpIAdd %int %80 %int_2 - %82 = OpLoad %v4uint %a - %83 = OpLoad %v4uint %b - %84 = OpIAdd %v4uint %82 %83 - %86 = OpCompositeExtract %uint %84 2 - %87 = OpAccessChain %_ptr_Uniform_uint %MyThirdBuffer %int_0 %81 - OpStore %87 %86 - %88 = OpLoad %int %byteAddrTemp_1 - %89 = OpIAdd %int %88 %int_3 - %90 = OpLoad %v4uint %a - %91 = OpLoad %v4uint %b - %92 = OpIAdd %v4uint %90 %91 - %94 = OpCompositeExtract %uint %92 3 - %95 = OpAccessChain %_ptr_Uniform_uint %MyThirdBuffer %int_0 %89 - OpStore %95 %94 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/comp/specialization-constant-workgroup.asm.comp b/third_party/spirv-cross/shaders/asm/comp/specialization-constant-workgroup.asm.comp deleted file mode 100644 index 188e3fec36..0000000000 --- a/third_party/spirv-cross/shaders/asm/comp/specialization-constant-workgroup.asm.comp +++ /dev/null @@ -1,47 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 24 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 20 1 - OpSource ESSL 310 - OpName %main "main" - OpName %SSBO "SSBO" - OpMemberName %SSBO 0 "a" - OpName %_ "" - OpMemberDecorate %SSBO 0 Offset 0 - OpDecorate %SSBO BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - OpDecorate %19 SpecId 10 - OpDecorate %21 SpecId 12 - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %SSBO = OpTypeStruct %float -%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO - %_ = OpVariable %_ptr_Uniform_SSBO Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %float_1 = OpConstant %float 1 -%_ptr_Uniform_float = OpTypePointer Uniform %float - %uint = OpTypeInt 32 0 - %19 = OpSpecConstant %uint 9 - %uint_20 = OpConstant %uint 20 - %21 = OpSpecConstant %uint 4 - %v3uint = OpTypeVector %uint 3 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %19 %uint_20 %21 - %main = OpFunction %void None %3 - %5 = OpLabel - %14 = OpAccessChain %_ptr_Uniform_float %_ %int_0 - %15 = OpLoad %float %14 - %16 = OpFAdd %float %15 %float_1 - %17 = OpAccessChain %_ptr_Uniform_float %_ %int_0 - OpStore %17 %16 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/comp/switch-break-ladder.asm.comp b/third_party/spirv-cross/shaders/asm/comp/switch-break-ladder.asm.comp deleted file mode 100644 index a32c9ef988..0000000000 --- a/third_party/spirv-cross/shaders/asm/comp/switch-break-ladder.asm.comp +++ /dev/null @@ -1,92 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 50 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpName %main "main" - OpName %c "c" - OpName %BUF "BUF" - OpMemberName %BUF 0 "a" - OpMemberName %BUF 1 "b" - OpMemberName %BUF 2 "d" - OpName %o "o" - OpName %a "a" - OpMemberDecorate %BUF 0 Offset 0 - OpMemberDecorate %BUF 1 Offset 4 - OpMemberDecorate %BUF 2 Offset 8 - OpDecorate %BUF BufferBlock - OpDecorate %o DescriptorSet 0 - OpDecorate %o Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 -%_ptr_Function_int = OpTypePointer Function %int - %BUF = OpTypeStruct %int %int %int -%_ptr_Uniform_BUF = OpTypePointer Uniform %BUF - %o = OpVariable %_ptr_Uniform_BUF Uniform - %int_0 = OpConstant %int 0 -%_ptr_Uniform_int = OpTypePointer Uniform %int - %int_2 = OpConstant %int 2 - %int_1 = OpConstant %int 1 - %main = OpFunction %void None %3 - %5 = OpLabel - %c = OpVariable %_ptr_Function_int Function - %a = OpVariable %_ptr_Function_int Function - %14 = OpAccessChain %_ptr_Uniform_int %o %int_0 - %15 = OpLoad %int %14 - OpStore %c %15 - OpBranch %16 - %16 = OpLabel - OpLoopMerge %18 %19 None - OpBranch %17 - %17 = OpLabel - %20 = OpLoad %int %c - OpSelectionMerge %23 None - OpSwitch %20 %23 5 %21 1 %22 2 %22 3 %22 - %21 = OpLabel - OpBranch %24 - %24 = OpLabel - OpLoopMerge %26 %27 None - OpBranch %25 - %25 = OpLabel - %29 = OpAccessChain %_ptr_Uniform_int %o %int_2 - %30 = OpLoad %int %29 - OpSelectionMerge %33 None - OpSwitch %30 %32 10 %31 20 %31 - %32 = OpLabel - OpBranch %27 - %31 = OpLabel - %34 = OpLoad %int %c - %35 = OpLoad %int %c - %36 = OpIAdd %int %35 %34 - OpStore %c %36 - OpBranch %26 - %33 = OpLabel - OpUnreachable - %27 = OpLabel - OpBranch %24 - %26 = OpLabel - OpBranch %23 - %22 = OpLabel - %42 = OpLoad %int %c - OpStore %a %42 - OpBranch %18 - %23 = OpLabel - %45 = OpLoad %int %c - %47 = OpIAdd %int %45 %int_1 - OpStore %c %47 - OpBranch %19 - %19 = OpLabel - OpBranch %16 - %18 = OpLabel - %48 = OpLoad %int %a - %49 = OpAccessChain %_ptr_Uniform_int %o %int_1 - OpStore %49 %48 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/combined-sampler-reuse.vk.asm.frag b/third_party/spirv-cross/shaders/asm/frag/combined-sampler-reuse.vk.asm.frag deleted file mode 100644 index ba2f95b234..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/combined-sampler-reuse.vk.asm.frag +++ /dev/null @@ -1,57 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 36 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %vUV - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %FragColor "FragColor" - OpName %uTex "uTex" - OpName %uSampler "uSampler" - OpName %vUV "vUV" - OpDecorate %FragColor Location 0 - OpDecorate %uTex DescriptorSet 0 - OpDecorate %uTex Binding 1 - OpDecorate %uSampler DescriptorSet 0 - OpDecorate %uSampler Binding 0 - OpDecorate %vUV Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %10 = OpTypeImage %float 2D 0 0 0 1 Unknown -%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10 - %uTex = OpVariable %_ptr_UniformConstant_10 UniformConstant - %14 = OpTypeSampler -%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14 - %uSampler = OpVariable %_ptr_UniformConstant_14 UniformConstant - %18 = OpTypeSampledImage %10 - %v2float = OpTypeVector %float 2 -%_ptr_Input_v2float = OpTypePointer Input %v2float - %vUV = OpVariable %_ptr_Input_v2float Input - %int = OpTypeInt 32 1 - %v2int = OpTypeVector %int 2 - %int_1 = OpConstant %int 1 - %32 = OpConstantComposite %v2int %int_1 %int_1 - %main = OpFunction %void None %3 - %5 = OpLabel - %13 = OpLoad %10 %uTex - %17 = OpLoad %14 %uSampler - %19 = OpSampledImage %18 %13 %17 - %23 = OpLoad %v2float %vUV - %24 = OpImageSampleImplicitLod %v4float %19 %23 - OpStore %FragColor %24 - %28 = OpLoad %v2float %vUV - %33 = OpImageSampleImplicitLod %v4float %19 %28 ConstOffset %32 - %34 = OpLoad %v4float %FragColor - %35 = OpFAdd %v4float %34 %33 - OpStore %FragColor %35 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/complex-name-workarounds.asm.frag b/third_party/spirv-cross/shaders/asm/frag/complex-name-workarounds.asm.frag deleted file mode 100644 index 59a67730a6..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/complex-name-workarounds.asm.frag +++ /dev/null @@ -1,81 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 47 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %a %b %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %func__vf4_ "fu__nc_" - OpName %a_ "a_" - OpName %func_2_vf4_ "fu__nc_" - OpName %a_2 "___" - OpName %c0 "___" - OpName %a "__" - OpName %b "a" - OpName %param "b" - OpName %c1 "b" - OpName %param_0 "b" - OpName %FragColor "b" - OpDecorate %a Location 0 - OpDecorate %b Location 1 - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Function_v4float = OpTypePointer Function %v4float - %9 = OpTypeFunction %v4float %_ptr_Function_v4float -%_ptr_Input_v4float = OpTypePointer Input %v4float - %a = OpVariable %_ptr_Input_v4float Input - %b = OpVariable %_ptr_Input_v4float Input -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %main = OpFunction %void None %3 - %5 = OpLabel - %c0 = OpVariable %_ptr_Function_v4float Function - %param = OpVariable %_ptr_Function_v4float Function - %c1 = OpVariable %_ptr_Function_v4float Function - %param_0 = OpVariable %_ptr_Function_v4float Function - %25 = OpLoad %v4float %a - %27 = OpLoad %v4float %b - %28 = OpFAdd %v4float %25 %27 - %30 = OpLoad %v4float %a - OpStore %param %30 - %31 = OpFunctionCall %v4float %func__vf4_ %param - %32 = OpFAdd %v4float %28 %31 - OpStore %c0 %32 - %34 = OpLoad %v4float %a - %35 = OpLoad %v4float %b - %36 = OpFSub %v4float %34 %35 - %38 = OpLoad %v4float %b - OpStore %param_0 %38 - %39 = OpFunctionCall %v4float %func_2_vf4_ %param_0 - %40 = OpFAdd %v4float %36 %39 - OpStore %c1 %40 - %43 = OpLoad %v4float %c0 - OpStore %FragColor %43 - %44 = OpLoad %v4float %c1 - OpStore %FragColor %44 - %45 = OpLoad %v4float %c0 - OpStore %FragColor %45 - %46 = OpLoad %v4float %c1 - OpStore %FragColor %46 - OpReturn - OpFunctionEnd - %func__vf4_ = OpFunction %v4float None %9 - %a_ = OpFunctionParameter %_ptr_Function_v4float - %12 = OpLabel - %16 = OpLoad %v4float %a_ - OpReturnValue %16 - OpFunctionEnd -%func_2_vf4_ = OpFunction %v4float None %9 - %a_2 = OpFunctionParameter %_ptr_Function_v4float - %15 = OpLabel - %19 = OpLoad %v4float %a_2 - OpReturnValue %19 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/composite-construct-struct-no-swizzle.asm.frag b/third_party/spirv-cross/shaders/asm/frag/composite-construct-struct-no-swizzle.asm.frag deleted file mode 100644 index f33c48617a..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/composite-construct-struct-no-swizzle.asm.frag +++ /dev/null @@ -1,51 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 3 -; Bound: 39 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %foo %FooOut - OpExecutionMode %main OriginUpperLeft - OpSource ESSL 310 - OpName %main "main" - OpName %foo "foo" - OpName %SwizzleTest "SwizzleTest" - OpMemberName %SwizzleTest 0 "a" - OpMemberName %SwizzleTest 1 "b" - OpName %FooOut "FooOut" - OpDecorate %foo RelaxedPrecision - OpDecorate %foo Location 0 - OpDecorate %12 RelaxedPrecision - OpMemberDecorate %SwizzleTest 0 RelaxedPrecision - OpMemberDecorate %SwizzleTest 1 RelaxedPrecision - OpDecorate %FooOut RelaxedPrecision - OpDecorate %FooOut Location 0 - OpDecorate %34 RelaxedPrecision - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v2float = OpTypeVector %float 2 -%_ptr_Function_v2float = OpTypePointer Function %v2float -%_ptr_Input_v2float = OpTypePointer Input %v2float - %foo = OpVariable %_ptr_Input_v2float Input -%SwizzleTest = OpTypeStruct %float %float -%_ptr_Function_SwizzleTest = OpTypePointer Function %SwizzleTest - %uint = OpTypeInt 32 0 -%_ptr_Function_float = OpTypePointer Function %float -%_ptr_Output_float = OpTypePointer Output %float - %FooOut = OpVariable %_ptr_Output_float Output - %int = OpTypeInt 32 1 - %main = OpFunction %void None %3 - %5 = OpLabel - %12 = OpLoad %v2float %foo - %36 = OpCompositeExtract %float %12 0 - %38 = OpCompositeExtract %float %12 1 - %test0 = OpCompositeConstruct %SwizzleTest %36 %38 - %new0 = OpCompositeExtract %float %test0 0 - %new1 = OpCompositeExtract %float %test0 1 - %34 = OpFAdd %float %new0 %new1 - OpStore %FooOut %34 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/default-member-names.asm.frag b/third_party/spirv-cross/shaders/asm/frag/default-member-names.asm.frag deleted file mode 100644 index ba493c0f91..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/default-member-names.asm.frag +++ /dev/null @@ -1,57 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 43 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %2 "main" %3 - OpExecutionMode %2 OriginUpperLeft - OpDecorate %3 Location 0 - %void = OpTypeVoid - %9 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %12 = OpTypeFunction %v4float - %_struct_5 = OpTypeStruct %float - %_struct_6 = OpTypeStruct %float %float %float %float %float %float %float %float %float %float %float %float %_struct_5 -%_ptr_Function__struct_6 = OpTypePointer Function %_struct_6 - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_Function_float = OpTypePointer Function %float - %int_1 = OpConstant %int 1 - %int_2 = OpConstant %int 2 - %int_3 = OpConstant %int 3 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %3 = OpVariable %_ptr_Output_v4float Output -%_ptr_Function_v4float = OpTypePointer Function %v4float - %2 = OpFunction %void None %9 - %22 = OpLabel - %23 = OpVariable %_ptr_Function__struct_6 Function - %24 = OpAccessChain %_ptr_Function_float %23 %int_0 - %25 = OpLoad %float %24 - %26 = OpAccessChain %_ptr_Function_float %23 %int_1 - %27 = OpLoad %float %26 - %28 = OpAccessChain %_ptr_Function_float %23 %int_2 - %29 = OpLoad %float %28 - %30 = OpAccessChain %_ptr_Function_float %23 %int_3 - %31 = OpLoad %float %30 - %32 = OpCompositeConstruct %v4float %25 %27 %29 %31 - OpStore %3 %32 - OpReturn - OpFunctionEnd - %4 = OpFunction %v4float None %12 - %33 = OpLabel - %7 = OpVariable %_ptr_Function__struct_6 Function - %34 = OpAccessChain %_ptr_Function_float %7 %int_0 - %35 = OpLoad %float %34 - %36 = OpAccessChain %_ptr_Function_float %7 %int_1 - %37 = OpLoad %float %36 - %38 = OpAccessChain %_ptr_Function_float %7 %int_2 - %39 = OpLoad %float %38 - %40 = OpAccessChain %_ptr_Function_float %7 %int_3 - %41 = OpLoad %float %40 - %42 = OpCompositeConstruct %v4float %35 %37 %39 %41 - OpReturnValue %42 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/do-while-statement-fallback.asm.frag b/third_party/spirv-cross/shaders/asm/frag/do-while-statement-fallback.asm.frag deleted file mode 100644 index 08de3ef203..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/do-while-statement-fallback.asm.frag +++ /dev/null @@ -1,76 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 35 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %foo "foo" - OpName %FragColor "FragColor" - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 -%_ptr_Function_float = OpTypePointer Function %float - %float_1 = OpConstant %float 1 - %float_2 = OpConstant %float 2 - %bool = OpTypeBool - %false = OpConstantFalse %bool - %float_3 = OpConstant %float 3 - %float_4 = OpConstant %float 4 - %float_5 = OpConstant %float 5 -%_ptr_Output_float = OpTypePointer Output %float - %FragColor = OpVariable %_ptr_Output_float Output - %main = OpFunction %void None %3 - %5 = OpLabel - %foo = OpVariable %_ptr_Function_float Function - OpStore %foo %float_1 - OpBranch %10 - %10 = OpLabel - OpLoopMerge %12 %13 None - OpBranch %11 - %11 = OpLabel - OpBranch %13 - %13 = OpLabel - OpStore %foo %float_2 - OpBranchConditional %false %10 %12 - %12 = OpLabel - OpBranch %17 - %17 = OpLabel - OpLoopMerge %19 %20 None - OpBranch %18 - %18 = OpLabel - OpBranch %20 - %20 = OpLabel - OpStore %foo %float_3 - OpBranchConditional %false %17 %19 - %19 = OpLabel - OpBranch %22 - %22 = OpLabel - OpLoopMerge %24 %25 None - OpBranch %23 - %23 = OpLabel - OpBranch %25 - %25 = OpLabel - OpStore %foo %float_4 - OpBranchConditional %false %22 %24 - %24 = OpLabel - OpBranch %27 - %27 = OpLabel - OpLoopMerge %29 %30 None - OpBranch %28 - %28 = OpLabel - OpBranch %30 - %30 = OpLabel - OpStore %foo %float_5 - OpBranchConditional %false %27 %29 - %29 = OpLabel - %34 = OpLoad %float %foo - OpStore %FragColor %34 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/empty-struct.asm.frag b/third_party/spirv-cross/shaders/asm/frag/empty-struct.asm.frag deleted file mode 100644 index 0efd3158cb..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/empty-struct.asm.frag +++ /dev/null @@ -1,55 +0,0 @@ -; SPIR-V -; Version: 1.2 -; Generator: Khronos; 0 -; Bound: 43 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %EntryPoint_Main "main" - OpExecutionMode %EntryPoint_Main OriginUpperLeft - OpSource Unknown 100 - OpName %EmptyStructTest "EmptyStructTest" - OpName %GetValue "GetValue" - OpName %GetValue2 "GetValue" - OpName %self "self" - OpName %self2 "self" - OpName %emptyStruct "emptyStruct" - OpName %value "value" - OpName %EntryPoint_Main "EntryPoint_Main" - -%EmptyStructTest = OpTypeStruct -%_ptr_Function_EmptyStructTest = OpTypePointer Function %EmptyStructTest - %float = OpTypeFloat 32 -%_ptr_Function_float = OpTypePointer Function %float - %5 = OpTypeFunction %float %_ptr_Function_EmptyStructTest - %6 = OpTypeFunction %float %EmptyStructTest - %void = OpTypeVoid -%_ptr_Function_void = OpTypePointer Function %void - %8 = OpTypeFunction %void %_ptr_Function_EmptyStructTest - %9 = OpTypeFunction %void - %float_0 = OpConstant %float 0 - - %GetValue = OpFunction %float None %5 - %self = OpFunctionParameter %_ptr_Function_EmptyStructTest - %13 = OpLabel - OpReturnValue %float_0 - OpFunctionEnd - - %GetValue2 = OpFunction %float None %6 - %self2 = OpFunctionParameter %EmptyStructTest - %14 = OpLabel - OpReturnValue %float_0 - OpFunctionEnd - -%EntryPoint_Main = OpFunction %void None %9 - %37 = OpLabel - %emptyStruct = OpVariable %_ptr_Function_EmptyStructTest Function - %18 = OpVariable %_ptr_Function_EmptyStructTest Function - %value = OpVariable %_ptr_Function_float Function - %value2 = OpCompositeConstruct %EmptyStructTest - %22 = OpFunctionCall %float %GetValue %emptyStruct - %23 = OpFunctionCall %float %GetValue2 %value2 - OpStore %value %22 - OpStore %value %23 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/for-loop-phi-only-continue.asm.frag b/third_party/spirv-cross/shaders/asm/frag/for-loop-phi-only-continue.asm.frag deleted file mode 100644 index ae84b30b41..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/for-loop-phi-only-continue.asm.frag +++ /dev/null @@ -1,48 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 51 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %FragColor "FragColor" - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %float_0 = OpConstant %float 0 - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %int_16 = OpConstant %int 16 - %bool = OpTypeBool - %float_1 = OpConstant %float 1 - %int_1 = OpConstant %int 1 - %float_2 = OpConstant %float 2 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %main = OpFunction %void None %3 - %5 = OpLabel - OpBranch %14 - %14 = OpLabel - %50 = OpPhi %float %float_0 %5 %25 %15 - %47 = OpPhi %int %int_0 %5 %28 %15 - %22 = OpSLessThan %bool %47 %int_16 - OpLoopMerge %16 %15 None - OpBranchConditional %22 %body1 %16 - %body1 = OpLabel - %25 = OpFAdd %float %50 %float_1 - %28 = OpIAdd %int %47 %int_1 - OpBranch %15 - %15 = OpLabel - OpBranch %14 - %16 = OpLabel - %46 = OpCompositeConstruct %v4float %50 %50 %50 %50 - OpStore %FragColor %46 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/frem.asm.frag b/third_party/spirv-cross/shaders/asm/frag/frem.asm.frag deleted file mode 100644 index 8350c75c04..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/frem.asm.frag +++ /dev/null @@ -1,41 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 3 -; Bound: 16 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %vA %vB - OpExecutionMode %main OriginUpperLeft - OpSource ESSL 310 - OpName %main "main" - OpName %FragColor "FragColor" - OpName %vA "vA" - OpName %vB "vB" - OpDecorate %FragColor RelaxedPrecision - OpDecorate %FragColor Location 0 - OpDecorate %vA RelaxedPrecision - OpDecorate %vA Location 0 - OpDecorate %12 RelaxedPrecision - OpDecorate %vB RelaxedPrecision - OpDecorate %vB Location 1 - OpDecorate %14 RelaxedPrecision - OpDecorate %15 RelaxedPrecision - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output -%_ptr_Input_v4float = OpTypePointer Input %v4float - %vA = OpVariable %_ptr_Input_v4float Input - %vB = OpVariable %_ptr_Input_v4float Input - %main = OpFunction %void None %3 - %5 = OpLabel - %12 = OpLoad %v4float %vA - %14 = OpLoad %v4float %vB - %15 = OpFRem %v4float %12 %14 - OpStore %FragColor %15 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/function-overload-alias.asm.frag b/third_party/spirv-cross/shaders/asm/frag/function-overload-alias.asm.frag deleted file mode 100644 index 397aa98ce2..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/function-overload-alias.asm.frag +++ /dev/null @@ -1,153 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 3 -; Bound: 76 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource ESSL 310 - OpName %main "main" - OpName %foobar_vf4_ "foo" - OpName %a "foo" - OpName %foobar_vf3_ "foo" - OpName %a_0 "foo" - OpName %foobaz_vf4_ "foo" - OpName %a_1 "foo" - OpName %foobaz_vf2_ "foo" - OpName %a_2 "foo" - OpName %a_3 "foo" - OpName %param "foo" - OpName %b "foo" - OpName %param_0 "foo" - OpName %c "foo" - OpName %param_1 "foo" - OpName %d "foo" - OpName %param_2 "foo" - OpName %FragColor "FragColor" - OpDecorate %foobar_vf4_ RelaxedPrecision - OpDecorate %a RelaxedPrecision - OpDecorate %foobar_vf3_ RelaxedPrecision - OpDecorate %a_0 RelaxedPrecision - OpDecorate %foobaz_vf4_ RelaxedPrecision - OpDecorate %a_1 RelaxedPrecision - OpDecorate %foobaz_vf2_ RelaxedPrecision - OpDecorate %a_2 RelaxedPrecision - OpDecorate %28 RelaxedPrecision - OpDecorate %30 RelaxedPrecision - OpDecorate %31 RelaxedPrecision - OpDecorate %34 RelaxedPrecision - OpDecorate %35 RelaxedPrecision - OpDecorate %36 RelaxedPrecision - OpDecorate %37 RelaxedPrecision - OpDecorate %40 RelaxedPrecision - OpDecorate %42 RelaxedPrecision - OpDecorate %43 RelaxedPrecision - OpDecorate %46 RelaxedPrecision - OpDecorate %47 RelaxedPrecision - OpDecorate %48 RelaxedPrecision - OpDecorate %49 RelaxedPrecision - OpDecorate %a_3 RelaxedPrecision - OpDecorate %55 RelaxedPrecision - OpDecorate %b RelaxedPrecision - OpDecorate %59 RelaxedPrecision - OpDecorate %c RelaxedPrecision - OpDecorate %62 RelaxedPrecision - OpDecorate %d RelaxedPrecision - OpDecorate %66 RelaxedPrecision - OpDecorate %FragColor RelaxedPrecision - OpDecorate %FragColor Location 0 - OpDecorate %69 RelaxedPrecision - OpDecorate %70 RelaxedPrecision - OpDecorate %71 RelaxedPrecision - OpDecorate %72 RelaxedPrecision - OpDecorate %73 RelaxedPrecision - OpDecorate %74 RelaxedPrecision - OpDecorate %75 RelaxedPrecision - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Function_v4float = OpTypePointer Function %v4float - %9 = OpTypeFunction %v4float %_ptr_Function_v4float - %v3float = OpTypeVector %float 3 -%_ptr_Function_v3float = OpTypePointer Function %v3float - %15 = OpTypeFunction %v4float %_ptr_Function_v3float - %v2float = OpTypeVector %float 2 -%_ptr_Function_v2float = OpTypePointer Function %v2float - %24 = OpTypeFunction %v4float %_ptr_Function_v2float - %float_1 = OpConstant %float 1 - %float_2 = OpConstant %float 2 - %53 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 - %57 = OpConstantComposite %v3float %float_1 %float_1 %float_1 - %64 = OpConstantComposite %v2float %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %main = OpFunction %void None %3 - %5 = OpLabel - %a_3 = OpVariable %_ptr_Function_v4float Function - %param = OpVariable %_ptr_Function_v4float Function - %b = OpVariable %_ptr_Function_v4float Function - %param_0 = OpVariable %_ptr_Function_v3float Function - %c = OpVariable %_ptr_Function_v4float Function - %param_1 = OpVariable %_ptr_Function_v4float Function - %d = OpVariable %_ptr_Function_v4float Function - %param_2 = OpVariable %_ptr_Function_v2float Function - OpStore %param %53 - %55 = OpFunctionCall %v4float %foobar_vf4_ %param - OpStore %a_3 %55 - OpStore %param_0 %57 - %59 = OpFunctionCall %v4float %foobar_vf3_ %param_0 - OpStore %b %59 - OpStore %param_1 %53 - %62 = OpFunctionCall %v4float %foobaz_vf4_ %param_1 - OpStore %c %62 - OpStore %param_2 %64 - %66 = OpFunctionCall %v4float %foobaz_vf2_ %param_2 - OpStore %d %66 - %69 = OpLoad %v4float %a_3 - %70 = OpLoad %v4float %b - %71 = OpFAdd %v4float %69 %70 - %72 = OpLoad %v4float %c - %73 = OpFAdd %v4float %71 %72 - %74 = OpLoad %v4float %d - %75 = OpFAdd %v4float %73 %74 - OpStore %FragColor %75 - OpReturn - OpFunctionEnd -%foobar_vf4_ = OpFunction %v4float None %9 - %a = OpFunctionParameter %_ptr_Function_v4float - %12 = OpLabel - %28 = OpLoad %v4float %a - %30 = OpCompositeConstruct %v4float %float_1 %float_1 %float_1 %float_1 - %31 = OpFAdd %v4float %28 %30 - OpReturnValue %31 - OpFunctionEnd -%foobar_vf3_ = OpFunction %v4float None %15 - %a_0 = OpFunctionParameter %_ptr_Function_v3float - %18 = OpLabel - %34 = OpLoad %v3float %a_0 - %35 = OpVectorShuffle %v4float %34 %34 0 1 2 2 - %36 = OpCompositeConstruct %v4float %float_1 %float_1 %float_1 %float_1 - %37 = OpFAdd %v4float %35 %36 - OpReturnValue %37 - OpFunctionEnd -%foobaz_vf4_ = OpFunction %v4float None %9 - %a_1 = OpFunctionParameter %_ptr_Function_v4float - %21 = OpLabel - %40 = OpLoad %v4float %a_1 - %42 = OpCompositeConstruct %v4float %float_2 %float_2 %float_2 %float_2 - %43 = OpFAdd %v4float %40 %42 - OpReturnValue %43 - OpFunctionEnd -%foobaz_vf2_ = OpFunction %v4float None %24 - %a_2 = OpFunctionParameter %_ptr_Function_v2float - %27 = OpLabel - %46 = OpLoad %v2float %a_2 - %47 = OpVectorShuffle %v4float %46 %46 0 1 0 1 - %48 = OpCompositeConstruct %v4float %float_2 %float_2 %float_2 %float_2 - %49 = OpFAdd %v4float %47 %48 - OpReturnValue %49 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/hlsl-sample-cmp-level-zero-cube.asm.frag b/third_party/spirv-cross/shaders/asm/frag/hlsl-sample-cmp-level-zero-cube.asm.frag deleted file mode 100644 index 75ce80bfd4..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/hlsl-sample-cmp-level-zero-cube.asm.frag +++ /dev/null @@ -1,60 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 38 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %_entryPointOutput - OpExecutionMode %main OriginUpperLeft - OpSource HLSL 500 - OpName %main "main" - OpName %_main_ "@main(" - OpName %pointLightShadowMap "pointLightShadowMap" - OpName %shadowSamplerPCF "shadowSamplerPCF" - OpName %_entryPointOutput "@entryPointOutput" - OpDecorate %pointLightShadowMap DescriptorSet 0 - OpDecorate %shadowSamplerPCF DescriptorSet 0 - OpDecorate %pointLightShadowMap Binding 0 - OpDecorate %shadowSamplerPCF Binding 1 - OpDecorate %_entryPointOutput Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %7 = OpTypeFunction %float - %10 = OpTypeImage %float Cube 0 0 0 1 Unknown -%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10 -%pointLightShadowMap = OpVariable %_ptr_UniformConstant_10 UniformConstant - %14 = OpTypeSampler -%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14 -%shadowSamplerPCF = OpVariable %_ptr_UniformConstant_14 UniformConstant - %18 = OpTypeImage %float Cube 1 0 0 1 Unknown - %19 = OpTypeSampledImage %18 - %v3float = OpTypeVector %float 3 - %float_0_1 = OpConstant %float 0.1 - %23 = OpConstantComposite %v3float %float_0_1 %float_0_1 %float_0_1 - %float_0_5 = OpConstant %float 0.5 - %v4float = OpTypeVector %float 4 - %float_0 = OpConstant %float 0 -%_ptr_Output_float = OpTypePointer Output %float -%_entryPointOutput = OpVariable %_ptr_Output_float Output - %main = OpFunction %void None %3 - %5 = OpLabel - %37 = OpFunctionCall %float %_main_ - OpStore %_entryPointOutput %37 - OpReturn - OpFunctionEnd - %_main_ = OpFunction %float None %7 - %9 = OpLabel - %13 = OpLoad %10 %pointLightShadowMap - %17 = OpLoad %14 %shadowSamplerPCF - %20 = OpSampledImage %19 %13 %17 - %26 = OpCompositeExtract %float %23 0 - %27 = OpCompositeExtract %float %23 1 - %28 = OpCompositeExtract %float %23 2 - %29 = OpCompositeConstruct %v4float %26 %27 %28 %float_0_5 - %31 = OpCompositeExtract %float %29 3 - %32 = OpImageSampleDrefExplicitLod %float %20 %29 %31 Lod %float_0 - OpReturnValue %32 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/hlsl-sample-cmp-level-zero.asm.frag b/third_party/spirv-cross/shaders/asm/frag/hlsl-sample-cmp-level-zero.asm.frag deleted file mode 100644 index bb0a1ea313..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/hlsl-sample-cmp-level-zero.asm.frag +++ /dev/null @@ -1,115 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 70 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %texCoords_1 %cascadeIndex_1 %fragDepth_1 %_entryPointOutput - OpExecutionMode %main OriginUpperLeft - OpSource HLSL 500 - OpName %main "main" - OpName %_main_vf2_f1_f1_ "@main(vf2;f1;f1;" - OpName %texCoords "texCoords" - OpName %cascadeIndex "cascadeIndex" - OpName %fragDepth "fragDepth" - OpName %c "c" - OpName %ShadowMap "ShadowMap" - OpName %ShadowSamplerPCF "ShadowSamplerPCF" - OpName %texCoords_0 "texCoords" - OpName %texCoords_1 "texCoords" - OpName %cascadeIndex_0 "cascadeIndex" - OpName %cascadeIndex_1 "cascadeIndex" - OpName %fragDepth_0 "fragDepth" - OpName %fragDepth_1 "fragDepth" - OpName %_entryPointOutput "@entryPointOutput" - OpName %param "param" - OpName %param_0 "param" - OpName %param_1 "param" - OpDecorate %ShadowMap DescriptorSet 0 - OpDecorate %ShadowSamplerPCF DescriptorSet 0 - OpDecorate %ShadowMap Binding 0 - OpDecorate %ShadowSamplerPCF Binding 1 - OpDecorate %texCoords_1 Location 0 - OpDecorate %cascadeIndex_1 Location 1 - OpDecorate %fragDepth_1 Location 2 - OpDecorate %_entryPointOutput Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v2float = OpTypeVector %float 2 -%_ptr_Function_v2float = OpTypePointer Function %v2float -%_ptr_Function_float = OpTypePointer Function %float - %v4float = OpTypeVector %float 4 - %11 = OpTypeFunction %v4float %_ptr_Function_v2float %_ptr_Function_float %_ptr_Function_float - %18 = OpTypeImage %float 2D 0 1 0 1 Unknown -%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18 - %ShadowMap = OpVariable %_ptr_UniformConstant_18 UniformConstant - %22 = OpTypeSampler -%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22 -%ShadowSamplerPCF = OpVariable %_ptr_UniformConstant_22 UniformConstant - %26 = OpTypeImage %float 2D 1 1 0 1 Unknown - %27 = OpTypeSampledImage %26 - %v3float = OpTypeVector %float 3 - %float_0 = OpConstant %float 0 -%_ptr_Input_v2float = OpTypePointer Input %v2float -%texCoords_1 = OpVariable %_ptr_Input_v2float Input -%_ptr_Input_float = OpTypePointer Input %float -%cascadeIndex_1 = OpVariable %_ptr_Input_float Input -%fragDepth_1 = OpVariable %_ptr_Input_float Input -%_ptr_Output_v4float = OpTypePointer Output %v4float -%_entryPointOutput = OpVariable %_ptr_Output_v4float Output - %main = OpFunction %void None %3 - %5 = OpLabel -%texCoords_0 = OpVariable %_ptr_Function_v2float Function -%cascadeIndex_0 = OpVariable %_ptr_Function_float Function -%fragDepth_0 = OpVariable %_ptr_Function_float Function - %param = OpVariable %_ptr_Function_v2float Function - %param_0 = OpVariable %_ptr_Function_float Function - %param_1 = OpVariable %_ptr_Function_float Function - %53 = OpLoad %v2float %texCoords_1 - OpStore %texCoords_0 %53 - %57 = OpLoad %float %cascadeIndex_1 - OpStore %cascadeIndex_0 %57 - %60 = OpLoad %float %fragDepth_1 - OpStore %fragDepth_0 %60 - %64 = OpLoad %v2float %texCoords_0 - OpStore %param %64 - %66 = OpLoad %float %cascadeIndex_0 - OpStore %param_0 %66 - %68 = OpLoad %float %fragDepth_0 - OpStore %param_1 %68 - %69 = OpFunctionCall %v4float %_main_vf2_f1_f1_ %param %param_0 %param_1 - OpStore %_entryPointOutput %69 - OpReturn - OpFunctionEnd -%_main_vf2_f1_f1_ = OpFunction %v4float None %11 - %texCoords = OpFunctionParameter %_ptr_Function_v2float -%cascadeIndex = OpFunctionParameter %_ptr_Function_float - %fragDepth = OpFunctionParameter %_ptr_Function_float - %16 = OpLabel - %c = OpVariable %_ptr_Function_float Function - %21 = OpLoad %18 %ShadowMap - %25 = OpLoad %22 %ShadowSamplerPCF - %28 = OpSampledImage %27 %21 %25 - %29 = OpLoad %v2float %texCoords - %30 = OpLoad %float %cascadeIndex - %32 = OpCompositeExtract %float %29 0 - %33 = OpCompositeExtract %float %29 1 - %34 = OpCompositeConstruct %v3float %32 %33 %30 - %35 = OpLoad %float %fragDepth - %36 = OpCompositeExtract %float %34 0 - %37 = OpCompositeExtract %float %34 1 - %38 = OpCompositeExtract %float %34 2 - %39 = OpCompositeConstruct %v4float %36 %37 %38 %35 - %41 = OpCompositeExtract %float %39 3 - %42 = OpImageSampleDrefExplicitLod %float %28 %39 %41 Lod %float_0 - OpStore %c %42 - %43 = OpLoad %float %c - %44 = OpLoad %float %c - %45 = OpLoad %float %c - %46 = OpLoad %float %c - %47 = OpCompositeConstruct %v4float %43 %44 %45 %46 - OpReturnValue %47 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/image-extract-reuse.asm.frag b/third_party/spirv-cross/shaders/asm/frag/image-extract-reuse.asm.frag deleted file mode 100644 index 63c8ab57a5..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/image-extract-reuse.asm.frag +++ /dev/null @@ -1,41 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 19 -; Schema: 0 - OpCapability Shader - OpCapability ImageQuery - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %Size - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %Size "Size" - OpName %uTexture "uTexture" - OpDecorate %Size Location 0 - OpDecorate %uTexture DescriptorSet 0 - OpDecorate %uTexture Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %v2int = OpTypeVector %int 2 -%_ptr_Output_v2int = OpTypePointer Output %v2int - %Size = OpVariable %_ptr_Output_v2int Output - %float = OpTypeFloat 32 - %11 = OpTypeImage %float 2D 0 0 0 1 Unknown - %12 = OpTypeSampledImage %11 -%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12 - %uTexture = OpVariable %_ptr_UniformConstant_12 UniformConstant - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 - %main = OpFunction %void None %3 - %5 = OpLabel - %15 = OpLoad %12 %uTexture - %17 = OpImage %11 %15 - %18 = OpImageQuerySizeLod %v2int %17 %int_0 - %19 = OpImageQuerySizeLod %v2int %17 %int_1 - %20 = OpIAdd %v2int %18 %19 - OpStore %Size %20 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/image-fetch-no-sampler.asm.vk.frag b/third_party/spirv-cross/shaders/asm/frag/image-fetch-no-sampler.asm.vk.frag deleted file mode 100644 index a3d64c09d7..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/image-fetch-no-sampler.asm.vk.frag +++ /dev/null @@ -1,163 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 2 -; Bound: 113 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %xIn_1 %_entryPointOutput - OpExecutionMode %main OriginUpperLeft - OpSource HLSL 500 - OpName %main "main" - OpName %sample_fetch_t21_vi3_ "sample_fetch(t21;vi3;" - OpName %tex "tex" - OpName %UV "UV" - OpName %sample_sampler_t21_vf2_ "sample_sampler(t21;vf2;" - OpName %tex_0 "tex" - OpName %UV_0 "UV" - OpName %_main_vf4_ "@main(vf4;" - OpName %xIn "xIn" - OpName %Sampler "Sampler" - OpName %coord "coord" - OpName %value "value" - OpName %SampledImage "SampledImage" - OpName %param "param" - OpName %param_0 "param" - OpName %param_1 "param" - OpName %param_2 "param" - OpName %xIn_0 "xIn" - OpName %xIn_1 "xIn" - OpName %_entryPointOutput "@entryPointOutput" - OpName %param_3 "param" - OpDecorate %Sampler DescriptorSet 0 - OpDecorate %Sampler Binding 0 - OpDecorate %SampledImage DescriptorSet 0 - OpDecorate %SampledImage Binding 0 - OpDecorate %xIn_1 BuiltIn FragCoord - OpDecorate %_entryPointOutput Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %7 = OpTypeImage %float 2D 0 0 0 1 Unknown -%_ptr_Function_7 = OpTypePointer Function %7 - %int = OpTypeInt 32 1 - %v3int = OpTypeVector %int 3 -%_ptr_Function_v3int = OpTypePointer Function %v3int - %v4float = OpTypeVector %float 4 - %13 = OpTypeFunction %v4float %_ptr_Function_7 %_ptr_Function_v3int - %v2float = OpTypeVector %float 2 -%_ptr_Function_v2float = OpTypePointer Function %v2float - %20 = OpTypeFunction %v4float %_ptr_Function_7 %_ptr_Function_v2float -%_ptr_Function_v4float = OpTypePointer Function %v4float - %26 = OpTypeFunction %v4float %_ptr_Function_v4float - %v2int = OpTypeVector %int 2 - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 -%_ptr_Function_int = OpTypePointer Function %int - %43 = OpTypeSampler -%_ptr_UniformConstant_43 = OpTypePointer UniformConstant %43 - %Sampler = OpVariable %_ptr_UniformConstant_43 UniformConstant - %47 = OpTypeSampledImage %7 - %uint_0 = OpConstant %uint 0 -%_ptr_Function_float = OpTypePointer Function %float - %float_1280 = OpConstant %float 1280 - %uint_1 = OpConstant %uint 1 - %float_720 = OpConstant %float 720 - %int_0 = OpConstant %int 0 -%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7 -%SampledImage = OpVariable %_ptr_UniformConstant_7 UniformConstant -%_ptr_Input_v4float = OpTypePointer Input %v4float - %xIn_1 = OpVariable %_ptr_Input_v4float Input -%_ptr_Output_v4float = OpTypePointer Output %v4float -%_entryPointOutput = OpVariable %_ptr_Output_v4float Output - %main = OpFunction %void None %3 - %5 = OpLabel - %xIn_0 = OpVariable %_ptr_Function_v4float Function - %param_3 = OpVariable %_ptr_Function_v4float Function - %107 = OpLoad %v4float %xIn_1 - OpStore %xIn_0 %107 - %111 = OpLoad %v4float %xIn_0 - OpStore %param_3 %111 - %112 = OpFunctionCall %v4float %_main_vf4_ %param_3 - OpStore %_entryPointOutput %112 - OpReturn - OpFunctionEnd -%sample_fetch_t21_vi3_ = OpFunction %v4float None %13 - %tex = OpFunctionParameter %_ptr_Function_7 - %UV = OpFunctionParameter %_ptr_Function_v3int - %17 = OpLabel - %30 = OpLoad %7 %tex - %32 = OpLoad %v3int %UV - %33 = OpVectorShuffle %v2int %32 %32 0 1 - %37 = OpAccessChain %_ptr_Function_int %UV %uint_2 - %38 = OpLoad %int %37 - %39 = OpImageFetch %v4float %30 %33 Lod %38 - OpReturnValue %39 - OpFunctionEnd -%sample_sampler_t21_vf2_ = OpFunction %v4float None %20 - %tex_0 = OpFunctionParameter %_ptr_Function_7 - %UV_0 = OpFunctionParameter %_ptr_Function_v2float - %24 = OpLabel - %42 = OpLoad %7 %tex_0 - %46 = OpLoad %43 %Sampler - %48 = OpSampledImage %47 %42 %46 - %49 = OpLoad %v2float %UV_0 - %50 = OpImageSampleImplicitLod %v4float %48 %49 - OpReturnValue %50 - OpFunctionEnd - %_main_vf4_ = OpFunction %v4float None %26 - %xIn = OpFunctionParameter %_ptr_Function_v4float - %29 = OpLabel - %coord = OpVariable %_ptr_Function_v3int Function - %value = OpVariable %_ptr_Function_v4float Function - %param = OpVariable %_ptr_Function_7 Function - %param_0 = OpVariable %_ptr_Function_v3int Function - %param_1 = OpVariable %_ptr_Function_7 Function - %param_2 = OpVariable %_ptr_Function_v2float Function - %56 = OpAccessChain %_ptr_Function_float %xIn %uint_0 - %57 = OpLoad %float %56 - %59 = OpFMul %float %57 %float_1280 - %60 = OpConvertFToS %int %59 - %62 = OpAccessChain %_ptr_Function_float %xIn %uint_1 - %63 = OpLoad %float %62 - %65 = OpFMul %float %63 %float_720 - %66 = OpConvertFToS %int %65 - %68 = OpCompositeConstruct %v3int %60 %66 %int_0 - OpStore %coord %68 - %73 = OpLoad %7 %SampledImage - OpStore %param %73 - %75 = OpLoad %v3int %coord - OpStore %param_0 %75 - %76 = OpFunctionCall %v4float %sample_fetch_t21_vi3_ %param %param_0 - OpStore %value %76 - %77 = OpLoad %7 %SampledImage - %78 = OpLoad %v3int %coord - %79 = OpVectorShuffle %v2int %78 %78 0 1 - %80 = OpAccessChain %_ptr_Function_int %coord %uint_2 - %81 = OpLoad %int %80 - %82 = OpImageFetch %v4float %77 %79 Lod %81 - %83 = OpLoad %v4float %value - %84 = OpFAdd %v4float %83 %82 - OpStore %value %84 - %86 = OpLoad %7 %SampledImage - OpStore %param_1 %86 - %88 = OpLoad %v4float %xIn - %89 = OpVectorShuffle %v2float %88 %88 0 1 - OpStore %param_2 %89 - %90 = OpFunctionCall %v4float %sample_sampler_t21_vf2_ %param_1 %param_2 - %91 = OpLoad %v4float %value - %92 = OpFAdd %v4float %91 %90 - OpStore %value %92 - %93 = OpLoad %7 %SampledImage - %94 = OpLoad %43 %Sampler - %95 = OpSampledImage %47 %93 %94 - %96 = OpLoad %v4float %xIn - %97 = OpVectorShuffle %v2float %96 %96 0 1 - %98 = OpImageSampleImplicitLod %v4float %95 %97 - %99 = OpLoad %v4float %value - %100 = OpFAdd %v4float %99 %98 - OpStore %value %100 - %101 = OpLoad %v4float %value - OpReturnValue %101 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/image-fetch-no-sampler.no-samplerless.asm.vk.frag b/third_party/spirv-cross/shaders/asm/frag/image-fetch-no-sampler.no-samplerless.asm.vk.frag deleted file mode 100644 index a3d64c09d7..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/image-fetch-no-sampler.no-samplerless.asm.vk.frag +++ /dev/null @@ -1,163 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 2 -; Bound: 113 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %xIn_1 %_entryPointOutput - OpExecutionMode %main OriginUpperLeft - OpSource HLSL 500 - OpName %main "main" - OpName %sample_fetch_t21_vi3_ "sample_fetch(t21;vi3;" - OpName %tex "tex" - OpName %UV "UV" - OpName %sample_sampler_t21_vf2_ "sample_sampler(t21;vf2;" - OpName %tex_0 "tex" - OpName %UV_0 "UV" - OpName %_main_vf4_ "@main(vf4;" - OpName %xIn "xIn" - OpName %Sampler "Sampler" - OpName %coord "coord" - OpName %value "value" - OpName %SampledImage "SampledImage" - OpName %param "param" - OpName %param_0 "param" - OpName %param_1 "param" - OpName %param_2 "param" - OpName %xIn_0 "xIn" - OpName %xIn_1 "xIn" - OpName %_entryPointOutput "@entryPointOutput" - OpName %param_3 "param" - OpDecorate %Sampler DescriptorSet 0 - OpDecorate %Sampler Binding 0 - OpDecorate %SampledImage DescriptorSet 0 - OpDecorate %SampledImage Binding 0 - OpDecorate %xIn_1 BuiltIn FragCoord - OpDecorate %_entryPointOutput Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %7 = OpTypeImage %float 2D 0 0 0 1 Unknown -%_ptr_Function_7 = OpTypePointer Function %7 - %int = OpTypeInt 32 1 - %v3int = OpTypeVector %int 3 -%_ptr_Function_v3int = OpTypePointer Function %v3int - %v4float = OpTypeVector %float 4 - %13 = OpTypeFunction %v4float %_ptr_Function_7 %_ptr_Function_v3int - %v2float = OpTypeVector %float 2 -%_ptr_Function_v2float = OpTypePointer Function %v2float - %20 = OpTypeFunction %v4float %_ptr_Function_7 %_ptr_Function_v2float -%_ptr_Function_v4float = OpTypePointer Function %v4float - %26 = OpTypeFunction %v4float %_ptr_Function_v4float - %v2int = OpTypeVector %int 2 - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 -%_ptr_Function_int = OpTypePointer Function %int - %43 = OpTypeSampler -%_ptr_UniformConstant_43 = OpTypePointer UniformConstant %43 - %Sampler = OpVariable %_ptr_UniformConstant_43 UniformConstant - %47 = OpTypeSampledImage %7 - %uint_0 = OpConstant %uint 0 -%_ptr_Function_float = OpTypePointer Function %float - %float_1280 = OpConstant %float 1280 - %uint_1 = OpConstant %uint 1 - %float_720 = OpConstant %float 720 - %int_0 = OpConstant %int 0 -%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7 -%SampledImage = OpVariable %_ptr_UniformConstant_7 UniformConstant -%_ptr_Input_v4float = OpTypePointer Input %v4float - %xIn_1 = OpVariable %_ptr_Input_v4float Input -%_ptr_Output_v4float = OpTypePointer Output %v4float -%_entryPointOutput = OpVariable %_ptr_Output_v4float Output - %main = OpFunction %void None %3 - %5 = OpLabel - %xIn_0 = OpVariable %_ptr_Function_v4float Function - %param_3 = OpVariable %_ptr_Function_v4float Function - %107 = OpLoad %v4float %xIn_1 - OpStore %xIn_0 %107 - %111 = OpLoad %v4float %xIn_0 - OpStore %param_3 %111 - %112 = OpFunctionCall %v4float %_main_vf4_ %param_3 - OpStore %_entryPointOutput %112 - OpReturn - OpFunctionEnd -%sample_fetch_t21_vi3_ = OpFunction %v4float None %13 - %tex = OpFunctionParameter %_ptr_Function_7 - %UV = OpFunctionParameter %_ptr_Function_v3int - %17 = OpLabel - %30 = OpLoad %7 %tex - %32 = OpLoad %v3int %UV - %33 = OpVectorShuffle %v2int %32 %32 0 1 - %37 = OpAccessChain %_ptr_Function_int %UV %uint_2 - %38 = OpLoad %int %37 - %39 = OpImageFetch %v4float %30 %33 Lod %38 - OpReturnValue %39 - OpFunctionEnd -%sample_sampler_t21_vf2_ = OpFunction %v4float None %20 - %tex_0 = OpFunctionParameter %_ptr_Function_7 - %UV_0 = OpFunctionParameter %_ptr_Function_v2float - %24 = OpLabel - %42 = OpLoad %7 %tex_0 - %46 = OpLoad %43 %Sampler - %48 = OpSampledImage %47 %42 %46 - %49 = OpLoad %v2float %UV_0 - %50 = OpImageSampleImplicitLod %v4float %48 %49 - OpReturnValue %50 - OpFunctionEnd - %_main_vf4_ = OpFunction %v4float None %26 - %xIn = OpFunctionParameter %_ptr_Function_v4float - %29 = OpLabel - %coord = OpVariable %_ptr_Function_v3int Function - %value = OpVariable %_ptr_Function_v4float Function - %param = OpVariable %_ptr_Function_7 Function - %param_0 = OpVariable %_ptr_Function_v3int Function - %param_1 = OpVariable %_ptr_Function_7 Function - %param_2 = OpVariable %_ptr_Function_v2float Function - %56 = OpAccessChain %_ptr_Function_float %xIn %uint_0 - %57 = OpLoad %float %56 - %59 = OpFMul %float %57 %float_1280 - %60 = OpConvertFToS %int %59 - %62 = OpAccessChain %_ptr_Function_float %xIn %uint_1 - %63 = OpLoad %float %62 - %65 = OpFMul %float %63 %float_720 - %66 = OpConvertFToS %int %65 - %68 = OpCompositeConstruct %v3int %60 %66 %int_0 - OpStore %coord %68 - %73 = OpLoad %7 %SampledImage - OpStore %param %73 - %75 = OpLoad %v3int %coord - OpStore %param_0 %75 - %76 = OpFunctionCall %v4float %sample_fetch_t21_vi3_ %param %param_0 - OpStore %value %76 - %77 = OpLoad %7 %SampledImage - %78 = OpLoad %v3int %coord - %79 = OpVectorShuffle %v2int %78 %78 0 1 - %80 = OpAccessChain %_ptr_Function_int %coord %uint_2 - %81 = OpLoad %int %80 - %82 = OpImageFetch %v4float %77 %79 Lod %81 - %83 = OpLoad %v4float %value - %84 = OpFAdd %v4float %83 %82 - OpStore %value %84 - %86 = OpLoad %7 %SampledImage - OpStore %param_1 %86 - %88 = OpLoad %v4float %xIn - %89 = OpVectorShuffle %v2float %88 %88 0 1 - OpStore %param_2 %89 - %90 = OpFunctionCall %v4float %sample_sampler_t21_vf2_ %param_1 %param_2 - %91 = OpLoad %v4float %value - %92 = OpFAdd %v4float %91 %90 - OpStore %value %92 - %93 = OpLoad %7 %SampledImage - %94 = OpLoad %43 %Sampler - %95 = OpSampledImage %47 %93 %94 - %96 = OpLoad %v4float %xIn - %97 = OpVectorShuffle %v2float %96 %96 0 1 - %98 = OpImageSampleImplicitLod %v4float %95 %97 - %99 = OpLoad %v4float %value - %100 = OpFAdd %v4float %99 %98 - OpStore %value %100 - %101 = OpLoad %v4float %value - OpReturnValue %101 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/image-query-no-sampler.no-samplerless.vk.asm.frag b/third_party/spirv-cross/shaders/asm/frag/image-query-no-sampler.no-samplerless.vk.asm.frag deleted file mode 100644 index a232bd4898..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/image-query-no-sampler.no-samplerless.vk.asm.frag +++ /dev/null @@ -1,57 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 36 -; Schema: 0 - OpCapability Shader - OpCapability ImageQuery - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %b "b" - OpName %uSampler2D "uSampler2D" - OpName %c "c" - OpName %uSampler2DMS "uSampler2DMS" - OpName %l1 "l1" - OpName %s0 "s0" - OpDecorate %uSampler2D DescriptorSet 0 - OpDecorate %uSampler2D Binding 0 - OpDecorate %uSampler2DMS DescriptorSet 0 - OpDecorate %uSampler2DMS Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %v2int = OpTypeVector %int 2 -%_ptr_Function_v2int = OpTypePointer Function %v2int - %float = OpTypeFloat 32 - %11 = OpTypeImage %float 2D 0 0 0 1 Unknown -%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %11 - %uSampler2D = OpVariable %_ptr_UniformConstant_12 UniformConstant - %int_0 = OpConstant %int 0 - %20 = OpTypeImage %float 2D 0 0 1 1 Unknown -%_ptr_UniformConstant_21 = OpTypePointer UniformConstant %20 -%uSampler2DMS = OpVariable %_ptr_UniformConstant_21 UniformConstant -%_ptr_Function_int = OpTypePointer Function %int - %main = OpFunction %void None %3 - %5 = OpLabel - %b = OpVariable %_ptr_Function_v2int Function - %c = OpVariable %_ptr_Function_v2int Function - %l1 = OpVariable %_ptr_Function_int Function - %s0 = OpVariable %_ptr_Function_int Function - %15 = OpLoad %11 %uSampler2D - %18 = OpImageQuerySizeLod %v2int %15 %int_0 - OpStore %b %18 - %24 = OpLoad %20 %uSampler2DMS - %26 = OpImageQuerySize %v2int %24 - OpStore %c %26 - %29 = OpLoad %11 %uSampler2D - %31 = OpImageQueryLevels %int %29 - OpStore %l1 %31 - %33 = OpLoad %20 %uSampler2DMS - %35 = OpImageQuerySamples %int %33 - OpStore %s0 %35 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/image-query-no-sampler.vk.asm.frag b/third_party/spirv-cross/shaders/asm/frag/image-query-no-sampler.vk.asm.frag deleted file mode 100644 index a232bd4898..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/image-query-no-sampler.vk.asm.frag +++ /dev/null @@ -1,57 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 36 -; Schema: 0 - OpCapability Shader - OpCapability ImageQuery - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %b "b" - OpName %uSampler2D "uSampler2D" - OpName %c "c" - OpName %uSampler2DMS "uSampler2DMS" - OpName %l1 "l1" - OpName %s0 "s0" - OpDecorate %uSampler2D DescriptorSet 0 - OpDecorate %uSampler2D Binding 0 - OpDecorate %uSampler2DMS DescriptorSet 0 - OpDecorate %uSampler2DMS Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %v2int = OpTypeVector %int 2 -%_ptr_Function_v2int = OpTypePointer Function %v2int - %float = OpTypeFloat 32 - %11 = OpTypeImage %float 2D 0 0 0 1 Unknown -%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %11 - %uSampler2D = OpVariable %_ptr_UniformConstant_12 UniformConstant - %int_0 = OpConstant %int 0 - %20 = OpTypeImage %float 2D 0 0 1 1 Unknown -%_ptr_UniformConstant_21 = OpTypePointer UniformConstant %20 -%uSampler2DMS = OpVariable %_ptr_UniformConstant_21 UniformConstant -%_ptr_Function_int = OpTypePointer Function %int - %main = OpFunction %void None %3 - %5 = OpLabel - %b = OpVariable %_ptr_Function_v2int Function - %c = OpVariable %_ptr_Function_v2int Function - %l1 = OpVariable %_ptr_Function_int Function - %s0 = OpVariable %_ptr_Function_int Function - %15 = OpLoad %11 %uSampler2D - %18 = OpImageQuerySizeLod %v2int %15 %int_0 - OpStore %b %18 - %24 = OpLoad %20 %uSampler2DMS - %26 = OpImageQuerySize %v2int %24 - OpStore %c %26 - %29 = OpLoad %11 %uSampler2D - %31 = OpImageQueryLevels %int %29 - OpStore %l1 %31 - %33 = OpLoad %20 %uSampler2DMS - %35 = OpImageQuerySamples %int %33 - OpStore %s0 %35 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/implicit-read-dep-phi.asm.frag b/third_party/spirv-cross/shaders/asm/frag/implicit-read-dep-phi.asm.frag deleted file mode 100644 index ccdfeef58d..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/implicit-read-dep-phi.asm.frag +++ /dev/null @@ -1,81 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 3 -; Bound: 60 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %v0 %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %phi "phi" - OpName %i "i" - OpName %v0 "v0" - OpName %FragColor "FragColor" - OpName %uImage "uImage" - OpDecorate %v0 Location 0 - OpDecorate %FragColor Location 0 - OpDecorate %uImage DescriptorSet 0 - OpDecorate %uImage Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 -%_ptr_Function_float = OpTypePointer Function %float - %float_1 = OpConstant %float 1 - %int = OpTypeInt 32 1 -%_ptr_Function_int = OpTypePointer Function %int - %int_0 = OpConstant %int 0 - %int_4 = OpConstant %int 4 - %bool = OpTypeBool - %v4float = OpTypeVector %float 4 -%_ptr_Input_v4float = OpTypePointer Input %v4float - %v0 = OpVariable %_ptr_Input_v4float Input -%_ptr_Input_float = OpTypePointer Input %float - %float_0 = OpConstant %float 0 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %36 = OpTypeImage %float 2D 0 0 0 1 Unknown - %37 = OpTypeSampledImage %36 -%_ptr_UniformConstant_37 = OpTypePointer UniformConstant %37 - %uImage = OpVariable %_ptr_UniformConstant_37 UniformConstant - %v2float = OpTypeVector %float 2 - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 - %float_2 = OpConstant %float 2 - %int_1 = OpConstant %int 1 - %float_1_vec = OpConstantComposite %v4float %float_1 %float_2 %float_1 %float_2 - %main = OpFunction %void None %3 - %5 = OpLabel - %i = OpVariable %_ptr_Function_int Function - OpStore %i %int_0 - OpBranch %loop_header - %loop_header = OpLabel - %phi = OpPhi %float %float_1 %5 %phi_plus_2 %continue_block - %tex_phi = OpPhi %v4float %float_1_vec %5 %texture_load_result %continue_block - OpLoopMerge %merge_block %continue_block None - OpBranch %loop_body - %loop_body = OpLabel - OpStore %FragColor %tex_phi - %19 = OpLoad %int %i - %22 = OpSLessThan %bool %19 %int_4 - OpBranchConditional %22 %15 %merge_block - %15 = OpLabel - %26 = OpLoad %int %i - %28 = OpAccessChain %_ptr_Input_float %v0 %26 - %29 = OpLoad %float %28 - %31 = OpFOrdGreaterThan %bool %29 %float_0 - OpBranchConditional %31 %continue_block %merge_block - %continue_block = OpLabel - %40 = OpLoad %37 %uImage - %43 = OpCompositeConstruct %v2float %phi %phi - %texture_load_result = OpImageSampleExplicitLod %v4float %40 %43 Lod %float_0 - %phi_plus_2 = OpFAdd %float %phi %float_2 - %54 = OpLoad %int %i - %56 = OpIAdd %int %54 %int_1 - OpStore %i %56 - OpBranch %loop_header - %merge_block = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/inf-nan-constant-double.asm.frag b/third_party/spirv-cross/shaders/asm/frag/inf-nan-constant-double.asm.frag deleted file mode 100644 index 2d0c18a9d3..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/inf-nan-constant-double.asm.frag +++ /dev/null @@ -1,41 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 22 -; Schema: 0 - OpCapability Shader - OpCapability Float64 - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %vTmp - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %FragColor "FragColor" - OpName %vTmp "vTmp" - OpDecorate %FragColor Location 0 - OpDecorate %vTmp Flat - OpDecorate %vTmp Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v3float = OpTypeVector %float 3 -%_ptr_Output_v3float = OpTypePointer Output %v3float - %FragColor = OpVariable %_ptr_Output_v3float Output - %double = OpTypeFloat 64 - %v3double = OpTypeVector %double 3 -%double_0x1p_1024 = OpConstant %double 0x1p+1024 -%double_n0x1p_1024 = OpConstant %double -0x1p+1024 -%double_0x1_8p_1024 = OpConstant %double 0x1.8p+1024 - %15 = OpConstantComposite %v3double %double_0x1p_1024 %double_n0x1p_1024 %double_0x1_8p_1024 -%_ptr_Input_double = OpTypePointer Input %double - %vTmp = OpVariable %_ptr_Input_double Input - %main = OpFunction %void None %3 - %5 = OpLabel - %18 = OpLoad %double %vTmp - %19 = OpCompositeConstruct %v3double %18 %18 %18 - %20 = OpFAdd %v3double %15 %19 - %21 = OpFConvert %v3float %20 - OpStore %FragColor %21 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/inf-nan-constant.asm.frag b/third_party/spirv-cross/shaders/asm/frag/inf-nan-constant.asm.frag deleted file mode 100644 index 40e5d3a89c..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/inf-nan-constant.asm.frag +++ /dev/null @@ -1,29 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 14 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource ESSL 310 - OpName %main "main" - OpName %FragColor "FragColor" - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v3float = OpTypeVector %float 3 -%_ptr_Output_v3float = OpTypePointer Output %v3float - %FragColor = OpVariable %_ptr_Output_v3float Output -%float_0x1p_128 = OpConstant %float 0x1p+128 -%float_n0x1p_128 = OpConstant %float -0x1p+128 -%float_0x1_8p_128 = OpConstant %float 0x1.8p+128 - %13 = OpConstantComposite %v3float %float_0x1p_128 %float_n0x1p_128 %float_0x1_8p_128 - %main = OpFunction %void None %3 - %5 = OpLabel - OpStore %FragColor %13 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/invalidation.asm.frag b/third_party/spirv-cross/shaders/asm/frag/invalidation.asm.frag deleted file mode 100644 index 8e753d50fe..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/invalidation.asm.frag +++ /dev/null @@ -1,46 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 28 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %4 "main" %v0 %v1 %FragColor - OpExecutionMode %4 OriginUpperLeft - OpSource GLSL 450 - OpName %4 "main" - OpName %a "a" - OpName %v0 "v0" - OpName %b "b" - OpName %v1 "v1" - OpName %FragColor "FragColor" - OpDecorate %v0 Location 0 - OpDecorate %v1 Location 1 - OpDecorate %FragColor Location 0 - %2 = OpTypeVoid - %3 = OpTypeFunction %2 - %float = OpTypeFloat 32 - %pfloat = OpTypePointer Function %float - %9 = OpTypePointer Input %float - %v0 = OpVariable %9 Input - %v1 = OpVariable %9 Input - %25 = OpTypePointer Output %float - %FragColor = OpVariable %25 Output - %4 = OpFunction %2 None %3 - %5 = OpLabel - %a = OpVariable %pfloat Function - %b = OpVariable %pfloat Function - %v0_tmp = OpLoad %float %v0 - %v1_tmp = OpLoad %float %v1 - OpStore %a %v0_tmp - OpStore %b %v1_tmp - - %a_tmp = OpLoad %float %a - %b_tmp = OpLoad %float %b - %res = OpFAdd %float %a_tmp %b_tmp - %res1 = OpFMul %float %res %b_tmp - OpStore %a %v1_tmp - OpStore %FragColor %res1 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/line-directive.line.asm.frag b/third_party/spirv-cross/shaders/asm/frag/line-directive.line.asm.frag deleted file mode 100644 index 9e08e9a891..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/line-directive.line.asm.frag +++ /dev/null @@ -1,221 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Shaderc over Glslang; 7 -; Bound: 83 -; Schema: 0 - OpCapability Shader - %2 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %vColor - OpExecutionMode %main OriginUpperLeft - %1 = OpString "test.frag" - OpSource GLSL 450 %1 "// OpModuleProcessed entry-point main -// OpModuleProcessed client vulkan100 -// OpModuleProcessed target-env vulkan1.0 -// OpModuleProcessed entry-point main -#line 1 -#version 450 - -layout(location = 0) in float vColor; -layout(location = 0) out float FragColor; - -void func() -{ - FragColor = 1.0; - FragColor = 2.0; - if (vColor < 0.0) - { - FragColor = 3.0; - } - else - { - FragColor = 4.0; - } - - for (int i = 0; i < 40 + vColor; i += int(vColor) + 5) - { - FragColor += 0.2; - FragColor += 0.3; - } - - switch (int(vColor)) - { - case 0: - FragColor += 0.2; - break; - - case 1: - FragColor += 0.4; - break; - - default: - FragColor += 0.8; - break; - } - - do - { - FragColor += 10.0 + vColor; - } while(FragColor < 100.0); -} - -void main() -{ - func(); -} -" - OpSourceExtension "GL_GOOGLE_cpp_style_line_directive" - OpSourceExtension "GL_GOOGLE_include_directive" - OpName %main "main" - OpName %func_ "func(" - OpName %FragColor "FragColor" - OpName %vColor "vColor" - OpName %i "i" - OpDecorate %FragColor Location 0 - OpDecorate %vColor Location 0 - %void = OpTypeVoid - %4 = OpTypeFunction %void - %float = OpTypeFloat 32 -%_ptr_Output_float = OpTypePointer Output %float - %FragColor = OpVariable %_ptr_Output_float Output - %float_1 = OpConstant %float 1 - %float_2 = OpConstant %float 2 -%_ptr_Input_float = OpTypePointer Input %float - %vColor = OpVariable %_ptr_Input_float Input - %float_0 = OpConstant %float 0 - %bool = OpTypeBool - %float_3 = OpConstant %float 3 - %float_4 = OpConstant %float 4 - %int = OpTypeInt 32 1 - - ; Should be ignored - OpLine %1 5 0 - -%_ptr_Function_int = OpTypePointer Function %int - %int_0 = OpConstant %int 0 - %float_40 = OpConstant %float 40 -%float_0_200000003 = OpConstant %float 0.200000003 -%float_0_300000012 = OpConstant %float 0.300000012 - %int_5 = OpConstant %int 5 - - ; Should be ignored - OpLine %1 5 0 - -%float_0_400000006 = OpConstant %float 0.400000006 -%float_0_800000012 = OpConstant %float 0.800000012 - %float_10 = OpConstant %float 10 - %float_100 = OpConstant %float 100 - %main = OpFunction %void None %4 - OpLine %1 46 0 - %6 = OpLabel - OpLine %1 48 0 - %82 = OpFunctionCall %void %func_ - OpReturn - OpFunctionEnd - - ; Should be ignored - OpLine %1 5 0 - - %func_ = OpFunction %void None %4 - OpLine %1 6 0 - %8 = OpLabel - %i = OpVariable %_ptr_Function_int Function - OpLine %1 8 0 - OpStore %FragColor %float_1 - OpLine %1 9 0 - OpStore %FragColor %float_2 - OpLine %1 10 0 - %16 = OpLoad %float %vColor - %19 = OpFOrdLessThan %bool %16 %float_0 - OpSelectionMerge %21 None - OpBranchConditional %19 %20 %23 - %20 = OpLabel - OpLine %1 12 0 - OpStore %FragColor %float_3 - OpBranch %21 - %23 = OpLabel - OpLine %1 16 0 - OpStore %FragColor %float_4 - OpBranch %21 - %21 = OpLabel - OpLine %1 19 0 - OpStore %i %int_0 - OpBranch %29 - %29 = OpLabel - OpLoopMerge %31 %32 None - OpBranch %33 - %33 = OpLabel - %34 = OpLoad %int %i - %35 = OpConvertSToF %float %34 - %37 = OpLoad %float %vColor - %38 = OpFAdd %float %float_40 %37 - %39 = OpFOrdLessThan %bool %35 %38 - OpBranchConditional %39 %30 %31 - %30 = OpLabel - OpLine %1 21 0 - %41 = OpLoad %float %FragColor - %42 = OpFAdd %float %41 %float_0_200000003 - OpStore %FragColor %42 - OpLine %1 22 0 - %44 = OpLoad %float %FragColor - %45 = OpFAdd %float %44 %float_0_300000012 - OpStore %FragColor %45 - OpBranch %32 - %32 = OpLabel - OpLine %1 19 0 - %46 = OpLoad %float %vColor - %47 = OpConvertFToS %int %46 - %49 = OpIAdd %int %47 %int_5 - %50 = OpLoad %int %i - %51 = OpIAdd %int %50 %49 - OpStore %i %51 - OpBranch %29 - %31 = OpLabel - OpLine %1 25 0 - %52 = OpLoad %float %vColor - %53 = OpConvertFToS %int %52 - OpSelectionMerge %57 None - OpSwitch %53 %56 0 %54 1 %55 - %56 = OpLabel - OpLine %1 36 0 - %66 = OpLoad %float %FragColor - %67 = OpFAdd %float %66 %float_0_800000012 - OpStore %FragColor %67 - OpLine %1 37 0 - OpBranch %57 - %54 = OpLabel - OpLine %1 28 0 - %58 = OpLoad %float %FragColor - %59 = OpFAdd %float %58 %float_0_200000003 - OpStore %FragColor %59 - OpLine %1 29 0 - OpBranch %57 - %55 = OpLabel - OpLine %1 32 0 - %62 = OpLoad %float %FragColor - %63 = OpFAdd %float %62 %float_0_400000006 - OpStore %FragColor %63 - OpLine %1 33 0 - OpBranch %57 - %57 = OpLabel - OpBranch %70 - OpLine %1 43 0 - %70 = OpLabel - OpLoopMerge %72 %73 None - OpBranch %71 - %71 = OpLabel - OpLine %1 42 0 - %75 = OpLoad %float %vColor - %76 = OpFAdd %float %float_10 %75 - %77 = OpLoad %float %FragColor - %78 = OpFAdd %float %77 %76 - OpStore %FragColor %78 - OpBranch %73 - %73 = OpLabel - OpLine %1 43 0 - %79 = OpLoad %float %FragColor - %81 = OpFOrdLessThan %bool %79 %float_100 - OpBranchConditional %81 %70 %72 - %72 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/locations-components.asm.frag b/third_party/spirv-cross/shaders/asm/frag/locations-components.asm.frag deleted file mode 100644 index 16bfc525bc..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/locations-components.asm.frag +++ /dev/null @@ -1,103 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Wine VKD3D Shader Compiler; 0 -; Bound: 67 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %8 %16 %22 %28 %33 %o0 - OpExecutionMode %main OriginUpperLeft - OpName %main "main" - OpName %v1 "v1" - OpName %v2 "v2" - OpName %o0 "o0" - OpName %r0 "r0" - OpDecorate %8 Location 1 - OpDecorate %16 Location 1 - OpDecorate %16 Component 2 - OpDecorate %22 Location 2 - OpDecorate %22 Flat - OpDecorate %28 Location 2 - OpDecorate %28 Component 1 - OpDecorate %28 Flat - OpDecorate %33 Location 2 - OpDecorate %33 Component 2 - OpDecorate %33 Flat - OpDecorate %o0 Location 0 - %void = OpTypeVoid - %2 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v2float = OpTypeVector %float 2 -%_ptr_Input_v2float = OpTypePointer Input %v2float - %8 = OpVariable %_ptr_Input_v2float Input - %v4float = OpTypeVector %float 4 -%_ptr_Private_v4float = OpTypePointer Private %v4float - %v1 = OpVariable %_ptr_Private_v4float Private -%_ptr_Input_float = OpTypePointer Input %float - %16 = OpVariable %_ptr_Input_float Input -%_ptr_Private_float = OpTypePointer Private %float - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 - %22 = OpVariable %_ptr_Input_float Input - %v2 = OpVariable %_ptr_Private_v4float Private - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint - %28 = OpVariable %_ptr_Input_uint Input - %uint_1 = OpConstant %uint 1 - %33 = OpVariable %_ptr_Input_uint Input -%_ptr_Output_v4float = OpTypePointer Output %v4float - %o0 = OpVariable %_ptr_Output_v4float Output -%_ptr_Function_v4float = OpTypePointer Function %v4float - %int = OpTypeInt 32 1 -%_ptr_Function_float = OpTypePointer Function %float -%_ptr_Output_float = OpTypePointer Output %float - %main = OpFunction %void None %2 - %4 = OpLabel - %r0 = OpVariable %_ptr_Function_v4float Function - %12 = OpLoad %v2float %8 - %13 = OpLoad %v4float %v1 - %14 = OpVectorShuffle %v4float %13 %12 4 5 2 3 - OpStore %v1 %14 - %17 = OpLoad %float %16 - %21 = OpInBoundsAccessChain %_ptr_Private_float %v1 %uint_2 - OpStore %21 %17 - %24 = OpLoad %float %22 - %26 = OpInBoundsAccessChain %_ptr_Private_float %v2 %uint_0 - OpStore %26 %24 - %29 = OpLoad %uint %28 - %30 = OpBitcast %float %29 - %32 = OpInBoundsAccessChain %_ptr_Private_float %v2 %uint_1 - OpStore %32 %30 - %34 = OpLoad %uint %33 - %35 = OpBitcast %float %34 - %36 = OpInBoundsAccessChain %_ptr_Private_float %v2 %uint_2 - OpStore %36 %35 - %42 = OpInBoundsAccessChain %_ptr_Private_float %v2 %uint_1 - %43 = OpLoad %float %42 - %44 = OpBitcast %int %43 - %45 = OpInBoundsAccessChain %_ptr_Private_float %v2 %uint_2 - %46 = OpLoad %float %45 - %47 = OpBitcast %int %46 - %48 = OpIAdd %int %44 %47 - %49 = OpBitcast %float %48 - %51 = OpInBoundsAccessChain %_ptr_Function_float %r0 %uint_0 - OpStore %51 %49 - %52 = OpInBoundsAccessChain %_ptr_Function_float %r0 %uint_0 - %53 = OpLoad %float %52 - %54 = OpBitcast %uint %53 - %55 = OpConvertUToF %float %54 - %57 = OpInBoundsAccessChain %_ptr_Output_float %o0 %uint_1 - OpStore %57 %55 - %58 = OpInBoundsAccessChain %_ptr_Private_float %v1 %uint_1 - %59 = OpLoad %float %58 - %60 = OpInBoundsAccessChain %_ptr_Private_float %v2 %uint_0 - %61 = OpLoad %float %60 - %62 = OpFAdd %float %59 %61 - %63 = OpInBoundsAccessChain %_ptr_Output_float %o0 %uint_0 - OpStore %63 %62 - %64 = OpLoad %v4float %v1 - %65 = OpLoad %v4float %o0 - %66 = OpVectorShuffle %v4float %65 %64 0 1 6 4 - OpStore %o0 %66 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/loop-body-dominator-continue-access.asm.frag b/third_party/spirv-cross/shaders/asm/frag/loop-body-dominator-continue-access.asm.frag deleted file mode 100644 index fa53940b14..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/loop-body-dominator-continue-access.asm.frag +++ /dev/null @@ -1,190 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 2 -; Bound: 131 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %fragWorld_1 %_entryPointOutput - OpExecutionMode %main OriginUpperLeft - OpSource HLSL 500 - OpName %main "main" - OpName %GetClip2TexMatrix_ "GetClip2TexMatrix(" - OpName %GetCascade_vf3_ "GetCascade(vf3;" - OpName %fragWorldPosition "fragWorldPosition" - OpName %_main_vf3_ "@main(vf3;" - OpName %fragWorld "fragWorld" - OpName %Foo "Foo" - OpMemberName %Foo 0 "lightVP" - OpMemberName %Foo 1 "shadowCascadesNum" - OpMemberName %Foo 2 "test" - OpName %_ "" - OpName %cascadeIndex "cascadeIndex" - OpName %worldToShadowMap "worldToShadowMap" - OpName %fragShadowMapPos "fragShadowMapPos" - OpName %param "param" - OpName %fragWorld_0 "fragWorld" - OpName %fragWorld_1 "fragWorld" - OpName %_entryPointOutput "@entryPointOutput" - OpName %param_0 "param" - OpDecorate %_arr_mat4v4float_uint_64 ArrayStride 64 - OpMemberDecorate %Foo 0 RowMajor - OpMemberDecorate %Foo 0 Offset 0 - OpMemberDecorate %Foo 0 MatrixStride 16 - OpMemberDecorate %Foo 1 Offset 4096 - OpMemberDecorate %Foo 2 Offset 4100 - OpDecorate %Foo Block - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - OpDecorate %fragWorld_1 Location 0 - OpDecorate %_entryPointOutput Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%mat4v4float = OpTypeMatrix %v4float 4 - %9 = OpTypeFunction %mat4v4float - %v3float = OpTypeVector %float 3 -%_ptr_Function_v3float = OpTypePointer Function %v3float - %int = OpTypeInt 32 1 - %15 = OpTypeFunction %int %_ptr_Function_v3float - %uint = OpTypeInt 32 0 - %uint_64 = OpConstant %uint 64 -%_arr_mat4v4float_uint_64 = OpTypeArray %mat4v4float %uint_64 - %Foo = OpTypeStruct %_arr_mat4v4float_uint_64 %uint %int -%_ptr_Uniform_Foo = OpTypePointer Uniform %Foo - %_ = OpVariable %_ptr_Uniform_Foo Uniform - %int_2 = OpConstant %int 2 -%_ptr_Uniform_int = OpTypePointer Uniform %int - %int_0 = OpConstant %int 0 - %bool = OpTypeBool - %float_0_5 = OpConstant %float 0.5 - %float_0 = OpConstant %float 0 - %39 = OpConstantComposite %v4float %float_0_5 %float_0 %float_0 %float_0 - %40 = OpConstantComposite %v4float %float_0 %float_0_5 %float_0 %float_0 - %41 = OpConstantComposite %v4float %float_0 %float_0 %float_0_5 %float_0 - %float_1 = OpConstant %float 1 - %43 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1 - %44 = OpConstantComposite %mat4v4float %39 %40 %41 %43 - %46 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_0 - %47 = OpConstantComposite %v4float %float_0 %float_1 %float_0 %float_0 - %48 = OpConstantComposite %v4float %float_0 %float_0 %float_1 %float_0 - %49 = OpConstantComposite %mat4v4float %46 %47 %48 %43 -%_ptr_Function_uint = OpTypePointer Function %uint - %uint_0 = OpConstant %uint 0 - %int_1 = OpConstant %int 1 -%_ptr_Uniform_uint = OpTypePointer Uniform %uint -%_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float -%_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float -%_ptr_Function_v4float = OpTypePointer Function %v4float - %uint_2 = OpConstant %uint 2 -%_ptr_Function_float = OpTypePointer Function %float - %uint_1 = OpConstant %uint 1 - %int_n1 = OpConstant %int -1 -%_ptr_Input_v3float = OpTypePointer Input %v3float -%fragWorld_1 = OpVariable %_ptr_Input_v3float Input -%_ptr_Output_int = OpTypePointer Output %int -%_entryPointOutput = OpVariable %_ptr_Output_int Output - %main = OpFunction %void None %3 - %5 = OpLabel -%fragWorld_0 = OpVariable %_ptr_Function_v3float Function - %param_0 = OpVariable %_ptr_Function_v3float Function - %125 = OpLoad %v3float %fragWorld_1 - OpStore %fragWorld_0 %125 - %129 = OpLoad %v3float %fragWorld_0 - OpStore %param_0 %129 - %130 = OpFunctionCall %int %_main_vf3_ %param_0 - OpStore %_entryPointOutput %130 - OpReturn - OpFunctionEnd -%GetClip2TexMatrix_ = OpFunction %mat4v4float None %9 - %11 = OpLabel - %30 = OpAccessChain %_ptr_Uniform_int %_ %int_2 - %31 = OpLoad %int %30 - %34 = OpIEqual %bool %31 %int_0 - OpSelectionMerge %36 None - OpBranchConditional %34 %35 %36 - %35 = OpLabel - OpReturnValue %44 - %36 = OpLabel - OpReturnValue %49 - OpFunctionEnd -%GetCascade_vf3_ = OpFunction %int None %15 -%fragWorldPosition = OpFunctionParameter %_ptr_Function_v3float - %18 = OpLabel -%cascadeIndex = OpVariable %_ptr_Function_uint Function -%worldToShadowMap = OpVariable %_ptr_Function_mat4v4float Function -%fragShadowMapPos = OpVariable %_ptr_Function_v4float Function - OpStore %cascadeIndex %uint_0 - OpBranch %55 - %55 = OpLabel - OpLoopMerge %57 %58 Unroll - OpBranch %59 - %59 = OpLabel - %60 = OpLoad %uint %cascadeIndex - %63 = OpAccessChain %_ptr_Uniform_uint %_ %int_1 - %64 = OpLoad %uint %63 - %65 = OpULessThan %bool %60 %64 - OpBranchConditional %65 %56 %57 - %56 = OpLabel - %68 = OpFunctionCall %mat4v4float %GetClip2TexMatrix_ - %69 = OpLoad %uint %cascadeIndex - %71 = OpAccessChain %_ptr_Uniform_mat4v4float %_ %int_0 %69 - %72 = OpLoad %mat4v4float %71 - %73 = OpMatrixTimesMatrix %mat4v4float %68 %72 - OpStore %worldToShadowMap %73 - %76 = OpLoad %mat4v4float %worldToShadowMap - %77 = OpLoad %v3float %fragWorldPosition - %78 = OpCompositeExtract %float %77 0 - %79 = OpCompositeExtract %float %77 1 - %80 = OpCompositeExtract %float %77 2 - %81 = OpCompositeConstruct %v4float %78 %79 %80 %float_1 - %82 = OpMatrixTimesVector %v4float %76 %81 - OpStore %fragShadowMapPos %82 - %85 = OpAccessChain %_ptr_Function_float %fragShadowMapPos %uint_2 - %86 = OpLoad %float %85 - %87 = OpFOrdGreaterThanEqual %bool %86 %float_0 - %88 = OpAccessChain %_ptr_Function_float %fragShadowMapPos %uint_2 - %89 = OpLoad %float %88 - %90 = OpFOrdLessThanEqual %bool %89 %float_1 - %91 = OpLogicalAnd %bool %87 %90 - %92 = OpAccessChain %_ptr_Function_float %fragShadowMapPos %uint_0 - %93 = OpLoad %float %92 - %95 = OpAccessChain %_ptr_Function_float %fragShadowMapPos %uint_1 - %96 = OpLoad %float %95 - %97 = OpExtInst %float %1 FMax %93 %96 - %98 = OpFOrdLessThanEqual %bool %97 %float_1 - %99 = OpLogicalAnd %bool %91 %98 - %100 = OpAccessChain %_ptr_Function_float %fragShadowMapPos %uint_0 - %101 = OpLoad %float %100 - %102 = OpAccessChain %_ptr_Function_float %fragShadowMapPos %uint_1 - %103 = OpLoad %float %102 - %104 = OpExtInst %float %1 FMin %101 %103 - %105 = OpFOrdGreaterThanEqual %bool %104 %float_0 - %106 = OpLogicalAnd %bool %99 %105 - OpSelectionMerge %108 None - OpBranchConditional %106 %107 %108 - %107 = OpLabel - %109 = OpLoad %uint %cascadeIndex - %110 = OpBitcast %int %109 - OpReturnValue %110 - %108 = OpLabel - OpBranch %58 - %58 = OpLabel - %112 = OpLoad %uint %cascadeIndex - %113 = OpIAdd %uint %112 %int_1 - OpStore %cascadeIndex %113 - OpBranch %55 - %57 = OpLabel - OpReturnValue %int_n1 - OpFunctionEnd - %_main_vf3_ = OpFunction %int None %15 - %fragWorld = OpFunctionParameter %_ptr_Function_v3float - %21 = OpLabel - %param = OpVariable %_ptr_Function_v3float Function - %118 = OpLoad %v3float %fragWorld - OpStore %param %118 - %119 = OpFunctionCall %int %GetCascade_vf3_ %param - OpReturnValue %119 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/loop-header-to-continue.asm.frag b/third_party/spirv-cross/shaders/asm/frag/loop-header-to-continue.asm.frag deleted file mode 100644 index 54807d911c..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/loop-header-to-continue.asm.frag +++ /dev/null @@ -1,132 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 3 -; Bound: 279 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %IN_p %IN_uv %_entryPointOutput - OpExecutionMode %main OriginUpperLeft - OpSource HLSL 500 - OpName %main "main" - OpName %Params "Params" - OpMemberName %Params 0 "TextureSize" - OpMemberName %Params 1 "Params1" - OpMemberName %Params 2 "Params2" - OpMemberName %Params 3 "Params3" - OpMemberName %Params 4 "Params4" - OpMemberName %Params 5 "Bloom" - OpName %CB1 "CB1" - OpMemberName %CB1 0 "CB1" - OpName %_ "" - OpName %mapSampler "mapSampler" - OpName %mapTexture "mapTexture" - OpName %IN_p "IN.p" - OpName %IN_uv "IN.uv" - OpName %_entryPointOutput "@entryPointOutput" - OpMemberDecorate %Params 0 Offset 0 - OpMemberDecorate %Params 1 Offset 16 - OpMemberDecorate %Params 2 Offset 32 - OpMemberDecorate %Params 3 Offset 48 - OpMemberDecorate %Params 4 Offset 64 - OpMemberDecorate %Params 5 Offset 80 - OpMemberDecorate %CB1 0 Offset 0 - OpDecorate %CB1 Block - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 1 - OpDecorate %mapSampler DescriptorSet 1 - OpDecorate %mapSampler Binding 2 - OpDecorate %mapTexture DescriptorSet 1 - OpDecorate %mapTexture Binding 2 - OpDecorate %IN_p BuiltIn FragCoord - OpDecorate %IN_uv Location 0 - OpDecorate %_entryPointOutput Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v2float = OpTypeVector %float 2 - %9 = OpTypeSampler - %11 = OpTypeImage %float 2D 0 0 0 1 Unknown - %v4float = OpTypeVector %float 4 -%float_0_222222 = OpConstant %float 0.222222 - %33 = OpTypeSampledImage %11 - %uint = OpTypeInt 32 0 - %float_80 = OpConstant %float 80 -%float_0_0008 = OpConstant %float 0.0008 -%float_8en05 = OpConstant %float 8e-05 -%float_0_008 = OpConstant %float 0.008 - %float_0 = OpConstant %float 0 - %int = OpTypeInt 32 1 - %int_n3 = OpConstant %int -3 - %int_3 = OpConstant %int 3 - %bool = OpTypeBool - %float_1 = OpConstant %float 1 - %int_1 = OpConstant %int 1 - %Params = OpTypeStruct %v4float %v4float %v4float %v4float %v4float %v4float - %CB1 = OpTypeStruct %Params -%_ptr_Uniform_CB1 = OpTypePointer Uniform %CB1 - %_ = OpVariable %_ptr_Uniform_CB1 Uniform - %int_0 = OpConstant %int 0 - %uint_3 = OpConstant %uint 3 -%_ptr_Uniform_float = OpTypePointer Uniform %float -%_ptr_UniformConstant_9 = OpTypePointer UniformConstant %9 - %mapSampler = OpVariable %_ptr_UniformConstant_9 UniformConstant -%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11 - %mapTexture = OpVariable %_ptr_UniformConstant_11 UniformConstant -%_ptr_Input_v4float = OpTypePointer Input %v4float - %IN_p = OpVariable %_ptr_Input_v4float Input -%_ptr_Input_v2float = OpTypePointer Input %v2float - %IN_uv = OpVariable %_ptr_Input_v2float Input -%_ptr_Output_v4float = OpTypePointer Output %v4float -%_entryPointOutput = OpVariable %_ptr_Output_v4float Output - %main = OpFunction %void None %3 - %5 = OpLabel - %158 = OpLoad %v2float %IN_uv - %178 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0 %uint_3 - %179 = OpLoad %float %178 - %180 = OpCompositeConstruct %v2float %float_0 %179 - %184 = OpLoad %9 %mapSampler - %185 = OpLoad %11 %mapTexture - %204 = OpSampledImage %33 %185 %184 - %206 = OpImageSampleImplicitLod %v4float %204 %158 - %207 = OpCompositeExtract %float %206 1 - %209 = OpFMul %float %207 %float_80 - %210 = OpFMul %float %209 %float_0_0008 - %211 = OpExtInst %float %1 FClamp %210 %float_8en05 %float_0_008 - OpBranch %212 - %212 = OpLabel - %276 = OpPhi %float %float_0 %5 %252 %218 - %277 = OpPhi %float %float_0 %5 %255 %218 - %278 = OpPhi %int %int_n3 %5 %257 %218 - %217 = OpSLessThanEqual %bool %278 %int_3 - OpLoopMerge %213 %218 None - OpBranchConditional %217 %218 %213 - %218 = OpLabel - %220 = OpConvertSToF %float %278 - %222 = OpFNegate %float %220 - %224 = OpFMul %float %222 %220 - %226 = OpFMul %float %224 %float_0_222222 - %227 = OpExtInst %float %1 Exp %226 - %230 = OpSampledImage %33 %185 %184 - %234 = OpVectorTimesScalar %v2float %180 %220 - %235 = OpFAdd %v2float %158 %234 - %236 = OpImageSampleImplicitLod %v4float %230 %235 - %273 = OpCompositeExtract %float %236 1 - %241 = OpFSub %float %273 %207 - %242 = OpExtInst %float %1 FAbs %241 - %244 = OpFOrdLessThan %bool %242 %211 - %245 = OpSelect %float %244 %float_1 %float_0 - %246 = OpFMul %float %227 %245 - %275 = OpCompositeExtract %float %236 0 - %250 = OpFMul %float %275 %246 - %252 = OpFAdd %float %276 %250 - %255 = OpFAdd %float %277 %246 - %257 = OpIAdd %int %278 %int_1 - OpBranch %212 - %213 = OpLabel - %260 = OpFDiv %float %276 %277 - %190 = OpCompositeConstruct %v4float %260 %207 %float_0 %float_1 - OpStore %_entryPointOutput %190 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/lut-promotion-initializer.asm.frag b/third_party/spirv-cross/shaders/asm/frag/lut-promotion-initializer.asm.frag deleted file mode 100644 index 320e5ebfbd..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/lut-promotion-initializer.asm.frag +++ /dev/null @@ -1,195 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 111 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %index - OpExecutionMode %main OriginUpperLeft - OpSource ESSL 310 - OpName %main "main" - OpName %FragColor "FragColor" - OpName %index "index" - OpName %indexable "indexable" - OpName %indexable_0 "indexable" - OpName %indexable_1 "indexable" - OpName %foo "foo" - OpName %foobar "foobar" - OpName %baz "baz" - OpDecorate %FragColor RelaxedPrecision - OpDecorate %FragColor Location 0 - OpDecorate %index RelaxedPrecision - OpDecorate %index Flat - OpDecorate %index Location 0 - OpDecorate %20 RelaxedPrecision - OpDecorate %25 RelaxedPrecision - OpDecorate %26 RelaxedPrecision - OpDecorate %32 RelaxedPrecision - OpDecorate %34 RelaxedPrecision - OpDecorate %37 RelaxedPrecision - OpDecorate %38 RelaxedPrecision - OpDecorate %39 RelaxedPrecision - OpDecorate %41 RelaxedPrecision - OpDecorate %42 RelaxedPrecision - OpDecorate %45 RelaxedPrecision - OpDecorate %46 RelaxedPrecision - OpDecorate %47 RelaxedPrecision - OpDecorate %foo RelaxedPrecision - OpDecorate %61 RelaxedPrecision - OpDecorate %66 RelaxedPrecision - OpDecorate %68 RelaxedPrecision - OpDecorate %71 RelaxedPrecision - OpDecorate %72 RelaxedPrecision - OpDecorate %73 RelaxedPrecision - OpDecorate %75 RelaxedPrecision - OpDecorate %76 RelaxedPrecision - OpDecorate %79 RelaxedPrecision - OpDecorate %80 RelaxedPrecision - OpDecorate %81 RelaxedPrecision - OpDecorate %foobar RelaxedPrecision - OpDecorate %83 RelaxedPrecision - OpDecorate %90 RelaxedPrecision - OpDecorate %91 RelaxedPrecision - OpDecorate %93 RelaxedPrecision - OpDecorate %94 RelaxedPrecision - OpDecorate %95 RelaxedPrecision - OpDecorate %baz RelaxedPrecision - OpDecorate %105 RelaxedPrecision - OpDecorate %106 RelaxedPrecision - OpDecorate %108 RelaxedPrecision - OpDecorate %109 RelaxedPrecision - OpDecorate %110 RelaxedPrecision - OpDecorate %16 RelaxedPrecision - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 -%_ptr_Output_float = OpTypePointer Output %float - %FragColor = OpVariable %_ptr_Output_float Output - %uint = OpTypeInt 32 0 - %uint_16 = OpConstant %uint 16 -%_arr_float_uint_16 = OpTypeArray %float %uint_16 - %float_1 = OpConstant %float 1 - %float_2 = OpConstant %float 2 - %float_3 = OpConstant %float 3 - %float_4 = OpConstant %float 4 - %16 = OpConstantComposite %_arr_float_uint_16 %float_1 %float_2 %float_3 %float_4 %float_1 %float_2 %float_3 %float_4 %float_1 %float_2 %float_3 %float_4 %float_1 %float_2 %float_3 %float_4 - %int = OpTypeInt 32 1 -%_ptr_Input_int = OpTypePointer Input %int - %index = OpVariable %_ptr_Input_int Input -%_ptr_Function__arr_float_uint_16 = OpTypePointer Function %_arr_float_uint_16 -%_ptr_Function_float = OpTypePointer Function %float - %int_10 = OpConstant %int 10 - %bool = OpTypeBool - %int_1 = OpConstant %int 1 - %v4float = OpTypeVector %float 4 - %uint_4 = OpConstant %uint 4 -%_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4 -%_ptr_Function__arr_v4float_uint_4 = OpTypePointer Function %_arr_v4float_uint_4 - %float_0 = OpConstant %float 0 - %54 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 - %55 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 - %float_8 = OpConstant %float 8 - %57 = OpConstantComposite %v4float %float_8 %float_8 %float_8 %float_8 - %float_5 = OpConstant %float 5 - %59 = OpConstantComposite %v4float %float_5 %float_5 %float_5 %float_5 - %60 = OpConstantComposite %_arr_v4float_uint_4 %54 %55 %57 %59 - %int_30 = OpConstant %int 30 - %int_3 = OpConstant %int 3 - %uint_1 = OpConstant %uint 1 - %uint_0 = OpConstant %uint 0 - %float_20 = OpConstant %float 20 - %uint_2 = OpConstant %uint 2 - %97 = OpConstantComposite %v4float %float_20 %float_20 %float_20 %float_20 - %float_30 = OpConstant %float 30 - %99 = OpConstantComposite %v4float %float_30 %float_30 %float_30 %float_30 - %float_50 = OpConstant %float 50 - %101 = OpConstantComposite %v4float %float_50 %float_50 %float_50 %float_50 - %float_60 = OpConstant %float 60 - %103 = OpConstantComposite %v4float %float_60 %float_60 %float_60 %float_60 - %104 = OpConstantComposite %_arr_v4float_uint_4 %97 %99 %101 %103 - %main = OpFunction %void None %3 - %5 = OpLabel - %indexable = OpVariable %_ptr_Function__arr_float_uint_16 Function %16 -%indexable_0 = OpVariable %_ptr_Function__arr_float_uint_16 Function %16 -%indexable_1 = OpVariable %_ptr_Function__arr_float_uint_16 Function %16 - %foo = OpVariable %_ptr_Function__arr_v4float_uint_4 Function %60 - %foobar = OpVariable %_ptr_Function__arr_v4float_uint_4 Function %60 - %baz = OpVariable %_ptr_Function__arr_v4float_uint_4 Function %60 - %20 = OpLoad %int %index - %24 = OpAccessChain %_ptr_Function_float %indexable %20 - %25 = OpLoad %float %24 - OpStore %FragColor %25 - %26 = OpLoad %int %index - %29 = OpSLessThan %bool %26 %int_10 - OpSelectionMerge %31 None - OpBranchConditional %29 %30 %40 - %30 = OpLabel - %32 = OpLoad %int %index - %34 = OpBitwiseXor %int %32 %int_1 - %36 = OpAccessChain %_ptr_Function_float %indexable_0 %34 - %37 = OpLoad %float %36 - %38 = OpLoad %float %FragColor - %39 = OpFAdd %float %38 %37 - OpStore %FragColor %39 - OpBranch %31 - %40 = OpLabel - %41 = OpLoad %int %index - %42 = OpBitwiseAnd %int %41 %int_1 - %44 = OpAccessChain %_ptr_Function_float %indexable_1 %42 - %45 = OpLoad %float %44 - %46 = OpLoad %float %FragColor - %47 = OpFAdd %float %46 %45 - OpStore %FragColor %47 - OpBranch %31 - %31 = OpLabel - %61 = OpLoad %int %index - %63 = OpSGreaterThan %bool %61 %int_30 - OpSelectionMerge %65 None - OpBranchConditional %63 %64 %74 - %64 = OpLabel - %66 = OpLoad %int %index - %68 = OpBitwiseAnd %int %66 %int_3 - %70 = OpAccessChain %_ptr_Function_float %foo %68 %uint_1 - %71 = OpLoad %float %70 - %72 = OpLoad %float %FragColor - %73 = OpFAdd %float %72 %71 - OpStore %FragColor %73 - OpBranch %65 - %74 = OpLabel - %75 = OpLoad %int %index - %76 = OpBitwiseAnd %int %75 %int_1 - %78 = OpAccessChain %_ptr_Function_float %foo %76 %uint_0 - %79 = OpLoad %float %78 - %80 = OpLoad %float %FragColor - %81 = OpFAdd %float %80 %79 - OpStore %FragColor %81 - OpBranch %65 - %65 = OpLabel - %83 = OpLoad %int %index - %84 = OpSGreaterThan %bool %83 %int_30 - OpSelectionMerge %86 None - OpBranchConditional %84 %85 %86 - %85 = OpLabel - %89 = OpAccessChain %_ptr_Function_float %foobar %int_1 %uint_2 - OpStore %89 %float_20 - OpBranch %86 - %86 = OpLabel - %90 = OpLoad %int %index - %91 = OpBitwiseAnd %int %90 %int_3 - %92 = OpAccessChain %_ptr_Function_float %foobar %91 %uint_2 - %93 = OpLoad %float %92 - %94 = OpLoad %float %FragColor - %95 = OpFAdd %float %94 %93 - OpStore %FragColor %95 - OpStore %baz %104 - %105 = OpLoad %int %index - %106 = OpBitwiseAnd %int %105 %int_3 - %107 = OpAccessChain %_ptr_Function_float %baz %106 %uint_2 - %108 = OpLoad %float %107 - %109 = OpLoad %float %FragColor - %110 = OpFAdd %float %109 %108 - OpStore %FragColor %110 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/multi-for-loop-init.asm.frag b/third_party/spirv-cross/shaders/asm/frag/multi-for-loop-init.asm.frag deleted file mode 100644 index d74f7ce568..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/multi-for-loop-init.asm.frag +++ /dev/null @@ -1,111 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 3 -; Bound: 52 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %counter %ucounter - OpExecutionMode %main OriginUpperLeft - OpSource ESSL 310 - OpName %main "main" - OpName %FragColor "FragColor" - OpName %i "i" - OpName %j "j" - OpName %counter "counter" - OpName %ucounter "ucounter" - OpDecorate %FragColor RelaxedPrecision - OpDecorate %FragColor Location 0 - OpDecorate %i RelaxedPrecision - OpDecorate %j RelaxedPrecision - OpDecorate %23 RelaxedPrecision - OpDecorate %27 RelaxedPrecision - OpDecorate %31 RelaxedPrecision - OpDecorate %32 RelaxedPrecision - OpDecorate %33 RelaxedPrecision - OpDecorate %34 RelaxedPrecision - OpDecorate %35 RelaxedPrecision - OpDecorate %36 RelaxedPrecision - OpDecorate %37 RelaxedPrecision - OpDecorate %38 RelaxedPrecision - OpDecorate %39 RelaxedPrecision - OpDecorate %40 RelaxedPrecision - OpDecorate %counter RelaxedPrecision - OpDecorate %counter Flat - OpDecorate %counter Location 0 - OpDecorate %43 RelaxedPrecision - OpDecorate %44 RelaxedPrecision - OpDecorate %45 RelaxedPrecision - OpDecorate %46 RelaxedPrecision - OpDecorate %47 RelaxedPrecision - OpDecorate %48 RelaxedPrecision - OpDecorate %ucounter RelaxedPrecision - OpDecorate %ucounter Flat - OpDecorate %ucounter Location 1 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %float_0 = OpConstant %float 0 - %11 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 - %int = OpTypeInt 32 1 -%_ptr_Function_int = OpTypePointer Function %int - %uint = OpTypeInt 32 0 -%_ptr_Function_uint = OpTypePointer Function %uint - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %uint 1 - %int_10 = OpConstant %int 10 - %bool = OpTypeBool - %int_20 = OpConstant %uint 20 -%_ptr_Input_int = OpTypePointer Input %int - %counter = OpVariable %_ptr_Input_int Input -%_ptr_Input_uint = OpTypePointer Input %uint - %ucounter = OpVariable %_ptr_Input_uint Input - %main = OpFunction %void None %3 - %5 = OpLabel - %i = OpVariable %_ptr_Function_int Function - %j = OpVariable %_ptr_Function_uint Function - OpStore %FragColor %11 - OpStore %i %int_0 - OpStore %j %int_1 - OpBranch %18 - %18 = OpLabel - OpLoopMerge %20 %21 None - OpBranch %22 - %22 = OpLabel - %23 = OpLoad %int %i - %26 = OpSLessThan %bool %23 %int_10 - %27 = OpLoad %uint %j - %29 = OpSLessThan %bool %27 %int_20 - %30 = OpLogicalAnd %bool %26 %29 - OpBranchConditional %30 %19 %20 - %19 = OpLabel - %31 = OpLoad %int %i - %32 = OpConvertSToF %float %31 - %33 = OpCompositeConstruct %v4float %32 %32 %32 %32 - %34 = OpLoad %v4float %FragColor - %35 = OpFAdd %v4float %34 %33 - OpStore %FragColor %35 - %36 = OpLoad %uint %j - %37 = OpConvertUToF %float %36 - %38 = OpCompositeConstruct %v4float %37 %37 %37 %37 - %39 = OpLoad %v4float %FragColor - %40 = OpFAdd %v4float %39 %38 - OpStore %FragColor %40 - OpBranch %21 - %21 = OpLabel - %43 = OpLoad %int %counter - %44 = OpLoad %int %i - %45 = OpIAdd %int %44 %43 - OpStore %i %45 - %46 = OpLoad %int %counter - %47 = OpLoad %uint %j - %48 = OpIAdd %uint %47 %46 - OpStore %j %48 - OpBranch %18 - %20 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/op-constant-null.asm.frag b/third_party/spirv-cross/shaders/asm/frag/op-constant-null.asm.frag deleted file mode 100644 index 61d2e579c8..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/op-constant-null.asm.frag +++ /dev/null @@ -1,85 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 45 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource ESSL 310 - OpName %main "main" - OpName %a "a" - OpName %b "b" - OpName %c "c" - OpName %D "D" - OpMemberName %D 0 "a" - OpMemberName %D 1 "b" - OpName %d "d" - OpName %e "e" - OpName %FragColor "FragColor" - OpDecorate %a RelaxedPrecision - OpDecorate %b RelaxedPrecision - OpDecorate %c RelaxedPrecision - OpMemberDecorate %D 0 RelaxedPrecision - OpMemberDecorate %D 1 RelaxedPrecision - OpDecorate %e RelaxedPrecision - OpDecorate %FragColor RelaxedPrecision - OpDecorate %FragColor Location 0 - OpDecorate %44 RelaxedPrecision - OpDecorate %float_1 RelaxedPrecision - OpDecorate %14 RelaxedPrecision - OpDecorate %23 RelaxedPrecision - OpDecorate %41 RelaxedPrecision - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 -%_ptr_Function_float = OpTypePointer Function %float - %float_1 = OpConstantNull %float - %v4float = OpTypeVector %float 4 -%_ptr_Function_v4float = OpTypePointer Function %v4float - %float_2 = OpConstantNull %float - %14 = OpConstantNull %v4float - %v3float = OpTypeVector %float 3 -%mat2v3float = OpTypeMatrix %v3float 2 -%_ptr_Function_mat2v3float = OpTypePointer Function %mat2v3float - %float_4 = OpConstantNull %float - %20 = OpConstantNull %v3float - %float_5 = OpConstantNull %float - %22 = OpConstantNull %v3float - %23 = OpConstantNull %mat2v3float - %D = OpTypeStruct %v4float %float -%_ptr_Function_D = OpTypePointer Function %D - %27 = OpConstantNull %D - %uint = OpTypeInt 32 0 - %uint_4 = OpConstant %uint 4 -%_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4 -%_ptr_Function__arr_v4float_uint_4 = OpTypePointer Function %_arr_v4float_uint_4 - %float_10 = OpConstantNull %float - %34 = OpConstantNull %v4float - %float_11 = OpConstantNull %float - %36 = OpConstantNull %v4float - %float_12 = OpConstantNull %float - %38 = OpConstantNull %v4float - %float_13 = OpConstantNull %float - %40 = OpConstantNull %v4float - %41 = OpConstantNull %_arr_v4float_uint_4 -%_ptr_Output_float = OpTypePointer Output %float - %FragColor = OpVariable %_ptr_Output_float Output - %main = OpFunction %void None %3 - %5 = OpLabel - %a = OpVariable %_ptr_Function_float Function - %b = OpVariable %_ptr_Function_v4float Function - %c = OpVariable %_ptr_Function_mat2v3float Function - %d = OpVariable %_ptr_Function_D Function - %e = OpVariable %_ptr_Function__arr_v4float_uint_4 Function - OpStore %a %float_1 - OpStore %b %14 - OpStore %c %23 - OpStore %d %27 - OpStore %e %41 - %44 = OpLoad %float %a - OpStore %FragColor %44 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/op-phi-swap-continue-block.asm.frag b/third_party/spirv-cross/shaders/asm/frag/op-phi-swap-continue-block.asm.frag deleted file mode 100644 index afae32519c..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/op-phi-swap-continue-block.asm.frag +++ /dev/null @@ -1,69 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 55 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %UBO "UBO" - OpMemberName %UBO 0 "uCount" - OpMemberName %UBO 1 "uJ" - OpMemberName %UBO 2 "uK" - OpName %_ "" - OpName %FragColor "FragColor" - OpMemberDecorate %UBO 0 Offset 0 - OpMemberDecorate %UBO 1 Offset 4 - OpMemberDecorate %UBO 2 Offset 8 - OpDecorate %UBO Block - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %UBO = OpTypeStruct %int %int %int -%_ptr_Uniform_UBO = OpTypePointer Uniform %UBO - %_ = OpVariable %_ptr_Uniform_UBO Uniform - %int_1 = OpConstant %int 1 -%_ptr_Uniform_int = OpTypePointer Uniform %int - %int_2 = OpConstant %int 2 - %int_0 = OpConstant %int 0 - %bool = OpTypeBool - %float = OpTypeFloat 32 -%_ptr_Output_float = OpTypePointer Output %float - %FragColor = OpVariable %_ptr_Output_float Output - %main = OpFunction %void None %3 - %5 = OpLabel - %14 = OpAccessChain %_ptr_Uniform_int %_ %int_1 - %15 = OpLoad %int %14 - %18 = OpAccessChain %_ptr_Uniform_int %_ %int_2 - %19 = OpLoad %int %18 - OpBranch %22 - %22 = OpLabel - %54 = OpPhi %int %19 %5 %53 %23 - %53 = OpPhi %int %15 %5 %54 %23 - %52 = OpPhi %int %int_0 %5 %37 %23 - %28 = OpAccessChain %_ptr_Uniform_int %_ %int_0 - %29 = OpLoad %int %28 - %31 = OpSLessThan %bool %52 %29 - OpLoopMerge %24 %23 None - OpBranchConditional %31 %inbetween %24 - %inbetween = OpLabel - OpBranch %23 - %23 = OpLabel - %37 = OpIAdd %int %52 %int_1 - OpBranch %22 - %24 = OpLabel - %43 = OpISub %int %53 %54 - %44 = OpConvertSToF %float %43 - %49 = OpIMul %int %15 %19 - %50 = OpConvertSToF %float %49 - %51 = OpFMul %float %44 %50 - OpStore %FragColor %51 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/pack-and-unpack-uint2.asm.frag b/third_party/spirv-cross/shaders/asm/frag/pack-and-unpack-uint2.asm.frag deleted file mode 100644 index 43d0970e8d..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/pack-and-unpack-uint2.asm.frag +++ /dev/null @@ -1,55 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 34 -; Schema: 0 - OpCapability Shader - OpCapability Int64 - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpSourceExtension "GL_ARB_gpu_shader_int64" - OpName %main "main" - OpName %packed "packed" - OpName %unpacked "unpacked" - OpName %FragColor "FragColor" - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %ulong = OpTypeInt 64 0 -%_ptr_Function_ulong = OpTypePointer Function %ulong - %uint = OpTypeInt 32 0 - %v2uint = OpTypeVector %uint 2 - %uint_18 = OpConstant %uint 18 - %uint_52 = OpConstant %uint 52 - %13 = OpConstantComposite %v2uint %uint_18 %uint_52 -%_ptr_Function_v2uint = OpTypePointer Function %v2uint - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %uint_0 = OpConstant %uint 0 -%_ptr_Function_uint = OpTypePointer Function %uint - %uint_1 = OpConstant %uint 1 - %float_1 = OpConstant %float 1 - %main = OpFunction %void None %3 - %5 = OpLabel - %packed = OpVariable %_ptr_Function_ulong Function - %unpacked = OpVariable %_ptr_Function_v2uint Function - %14 = OpBitcast %ulong %13 - OpStore %packed %14 - %17 = OpLoad %ulong %packed - %18 = OpBitcast %v2uint %17 - OpStore %unpacked %18 - %25 = OpAccessChain %_ptr_Function_uint %unpacked %uint_0 - %26 = OpLoad %uint %25 - %27 = OpConvertUToF %float %26 - %29 = OpAccessChain %_ptr_Function_uint %unpacked %uint_1 - %30 = OpLoad %uint %29 - %31 = OpConvertUToF %float %30 - %33 = OpCompositeConstruct %v4float %27 %31 %float_1 %float_1 - OpStore %FragColor %33 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/pass-by-value.asm.frag b/third_party/spirv-cross/shaders/asm/frag/pass-by-value.asm.frag deleted file mode 100644 index 083c85d9b0..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/pass-by-value.asm.frag +++ /dev/null @@ -1,51 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 32 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %add_value_f1_f1_ "add_value(f1;f1;" - OpName %v "v" - OpName %w "w" - OpName %FragColor "FragColor" - OpName %Registers "Registers" - OpMemberName %Registers 0 "foo" - OpName %registers "registers" - OpDecorate %FragColor Location 0 - OpMemberDecorate %Registers 0 Offset 0 - OpDecorate %Registers Block - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 -%_ptr_Function_float = OpTypePointer Function %float - %8 = OpTypeFunction %float %float %float -%_ptr_Output_float = OpTypePointer Output %float - %FragColor = OpVariable %_ptr_Output_float Output - %float_10 = OpConstant %float 10 - %Registers = OpTypeStruct %float -%_ptr_PushConstant_Registers = OpTypePointer PushConstant %Registers - %registers = OpVariable %_ptr_PushConstant_Registers PushConstant - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_PushConstant_float = OpTypePointer PushConstant %float - %main = OpFunction %void None %3 - %5 = OpLabel - %29 = OpAccessChain %_ptr_PushConstant_float %registers %int_0 - %30 = OpLoad %float %29 - %31 = OpFunctionCall %float %add_value_f1_f1_ %float_10 %30 - OpStore %FragColor %31 - OpReturn - OpFunctionEnd -%add_value_f1_f1_ = OpFunction %float None %8 - %v = OpFunctionParameter %float - %w = OpFunctionParameter %float - %12 = OpLabel - %15 = OpFAdd %float %v %w - OpReturnValue %15 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/phi-loop-variable.asm.frag b/third_party/spirv-cross/shaders/asm/frag/phi-loop-variable.asm.frag deleted file mode 100644 index 74c46b4af8..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/phi-loop-variable.asm.frag +++ /dev/null @@ -1,71 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 59 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %4 "main" - OpExecutionMode %4 OriginUpperLeft - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v2float = OpTypeVector %float 2 -%mat2v2float = OpTypeMatrix %v2float 2 -%_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float - %v3float = OpTypeVector %float 3 - %11 = OpTypeFunction %v3float %_ptr_Function_mat2v2float -%_ptr_Function_v3float = OpTypePointer Function %v3float - %float_1 = OpConstant %float 1 - %18 = OpConstantComposite %v3float %float_1 %float_1 %float_1 - %int = OpTypeInt 32 1 -%_ptr_Function_int = OpTypePointer Function %int - %int_35 = OpConstant %int 35 - %int_0 = OpConstant %int 0 - %bool = OpTypeBool - %int_1 = OpConstant %int 1 - %4 = OpFunction %void None %3 - %5 = OpLabel - OpBranch %48 - %48 = OpLabel - %58 = OpPhi %int %int_35 %5 %56 %50 - OpLoopMerge %49 %50 None - OpBranch %51 - %51 = OpLabel - %53 = OpSGreaterThanEqual %bool %58 %int_0 - OpBranchConditional %53 %54 %49 - %54 = OpLabel - OpBranch %50 - %50 = OpLabel - %56 = OpISub %int %58 %int_1 - OpBranch %48 - %49 = OpLabel - OpReturn - OpFunctionEnd - %13 = OpFunction %v3float None %11 - %12 = OpFunctionParameter %_ptr_Function_mat2v2float - %14 = OpLabel - %16 = OpVariable %_ptr_Function_v3float Function - %21 = OpVariable %_ptr_Function_int Function - OpStore %16 %18 - OpStore %21 %int_35 - OpBranch %23 - %23 = OpLabel - OpLoopMerge %25 %26 None - OpBranch %27 - %27 = OpLabel - %28 = OpLoad %int %21 - %31 = OpSGreaterThanEqual %bool %28 %int_0 - OpBranchConditional %31 %24 %25 - %24 = OpLabel - OpBranch %26 - %26 = OpLabel - %32 = OpLoad %int %21 - %34 = OpISub %int %32 %int_1 - OpStore %21 %34 - OpBranch %23 - %25 = OpLabel - %35 = OpLoad %v3float %16 - OpReturnValue %35 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/sample-and-compare.asm.frag b/third_party/spirv-cross/shaders/asm/frag/sample-and-compare.asm.frag deleted file mode 100644 index 16dcd0d6e0..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/sample-and-compare.asm.frag +++ /dev/null @@ -1,61 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google spiregg; 0 -; Bound: 32 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %in_var_TEXCOORD0 %out_var_SV_Target - OpExecutionMode %main OriginUpperLeft - OpSource HLSL 600 - OpName %type_2d_image "type.2d.image" - OpName %g_Texture "g_Texture" - OpName %type_sampler "type.sampler" - OpName %g_Sampler "g_Sampler" - OpName %g_CompareSampler "g_CompareSampler" - OpName %in_var_TEXCOORD0 "in.var.TEXCOORD0" - OpName %out_var_SV_Target "out.var.SV_Target" - OpName %main "main" - OpName %type_sampled_image "type.sampled.image" - OpDecorate %in_var_TEXCOORD0 Location 0 - OpDecorate %out_var_SV_Target Location 0 - OpDecorate %g_Texture DescriptorSet 0 - OpDecorate %g_Texture Binding 0 - OpDecorate %g_Sampler DescriptorSet 0 - OpDecorate %g_Sampler Binding 0 - OpDecorate %g_CompareSampler DescriptorSet 0 - OpDecorate %g_CompareSampler Binding 1 - %float = OpTypeFloat 32 - %float_0_5 = OpConstant %float 0.5 - %float_0 = OpConstant %float 0 -%type_2d_image = OpTypeImage %float 2D 2 0 0 1 Unknown -%_ptr_UniformConstant_type_2d_image = OpTypePointer UniformConstant %type_2d_image -%type_sampler = OpTypeSampler -%_ptr_UniformConstant_type_sampler = OpTypePointer UniformConstant %type_sampler - %v2float = OpTypeVector %float 2 -%_ptr_Input_v2float = OpTypePointer Input %v2float -%_ptr_Output_float = OpTypePointer Output %float - %void = OpTypeVoid - %19 = OpTypeFunction %void -%type_sampled_image = OpTypeSampledImage %type_2d_image - %v4float = OpTypeVector %float 4 - %g_Texture = OpVariable %_ptr_UniformConstant_type_2d_image UniformConstant - %g_Sampler = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant -%g_CompareSampler = OpVariable %_ptr_UniformConstant_type_sampler UniformConstant -%in_var_TEXCOORD0 = OpVariable %_ptr_Input_v2float Input -%out_var_SV_Target = OpVariable %_ptr_Output_float Output - %main = OpFunction %void None %19 - %21 = OpLabel - %22 = OpLoad %v2float %in_var_TEXCOORD0 - %23 = OpLoad %type_2d_image %g_Texture - %24 = OpLoad %type_sampler %g_Sampler - %25 = OpSampledImage %type_sampled_image %23 %24 - %26 = OpImageSampleImplicitLod %v4float %25 %22 None - %27 = OpCompositeExtract %float %26 0 - %28 = OpLoad %type_sampler %g_CompareSampler - %29 = OpSampledImage %type_sampled_image %23 %28 - %30 = OpImageSampleDrefExplicitLod %float %29 %22 %float_0_5 Lod %float_0 - %31 = OpFAdd %float %27 %30 - OpStore %out_var_SV_Target %31 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/sampler-buffer-array-without-sampler.asm.frag b/third_party/spirv-cross/shaders/asm/frag/sampler-buffer-array-without-sampler.asm.frag deleted file mode 100644 index 0c3833e7ec..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/sampler-buffer-array-without-sampler.asm.frag +++ /dev/null @@ -1,86 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 63 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %sample_from_func_s21_4__ "sample_from_func(s21[4];" - OpName %uSampler "uSampler" - OpName %sample_one_from_func_s21_ "sample_one_from_func(s21;" - OpName %uSampler_0 "uSampler" - OpName %Registers "Registers" - OpMemberName %Registers 0 "index" - OpName %registers "registers" - OpName %FragColor "FragColor" - OpName %uSampler_1 "uSampler" - OpMemberDecorate %Registers 0 Offset 0 - OpDecorate %Registers Block - OpDecorate %FragColor Location 0 - OpDecorate %uSampler_1 DescriptorSet 0 - OpDecorate %uSampler_1 Binding 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %7 = OpTypeImage %float 2D 0 0 0 1 Unknown - %uint = OpTypeInt 32 0 - %uint_4 = OpConstant %uint 4 -%_arr_8_uint_4 = OpTypeArray %7 %uint_4 -%_ptr_UniformConstant__arr_8_uint_4 = OpTypePointer UniformConstant %_arr_8_uint_4 - %v4float = OpTypeVector %float 4 - %14 = OpTypeFunction %v4float %_ptr_UniformConstant__arr_8_uint_4 -%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %7 - %19 = OpTypeFunction %v4float %_ptr_UniformConstant_8 - %int = OpTypeInt 32 1 - %Registers = OpTypeStruct %int -%_ptr_PushConstant_Registers = OpTypePointer PushConstant %Registers - %registers = OpVariable %_ptr_PushConstant_Registers PushConstant - %int_0 = OpConstant %int 0 -%_ptr_PushConstant_int = OpTypePointer PushConstant %int - %v2int = OpTypeVector %int 2 - %int_4 = OpConstant %int 4 - %35 = OpConstantComposite %v2int %int_4 %int_4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %uSampler_1 = OpVariable %_ptr_UniformConstant__arr_8_uint_4 UniformConstant - %int_10 = OpConstant %int 10 - %53 = OpConstantComposite %v2int %int_10 %int_10 - %main = OpFunction %void None %3 - %5 = OpLabel - %48 = OpAccessChain %_ptr_PushConstant_int %registers %int_0 - %49 = OpLoad %int %48 - %50 = OpAccessChain %_ptr_UniformConstant_8 %uSampler_1 %49 - %51 = OpLoad %7 %50 - %55 = OpImageFetch %v4float %51 %53 Lod %int_0 - %56 = OpFunctionCall %v4float %sample_from_func_s21_4__ %uSampler_1 - %57 = OpFAdd %v4float %55 %56 - %58 = OpAccessChain %_ptr_PushConstant_int %registers %int_0 - %59 = OpLoad %int %58 - %60 = OpAccessChain %_ptr_UniformConstant_8 %uSampler_1 %59 - %61 = OpFunctionCall %v4float %sample_one_from_func_s21_ %60 - %62 = OpFAdd %v4float %57 %61 - OpStore %FragColor %62 - OpReturn - OpFunctionEnd -%sample_from_func_s21_4__ = OpFunction %v4float None %14 - %uSampler = OpFunctionParameter %_ptr_UniformConstant__arr_8_uint_4 - %17 = OpLabel - %29 = OpAccessChain %_ptr_PushConstant_int %registers %int_0 - %30 = OpLoad %int %29 - %31 = OpAccessChain %_ptr_UniformConstant_8 %uSampler %30 - %32 = OpLoad %7 %31 - %37 = OpImageFetch %v4float %32 %35 Lod %int_0 - OpReturnValue %37 - OpFunctionEnd -%sample_one_from_func_s21_ = OpFunction %v4float None %19 - %uSampler_0 = OpFunctionParameter %_ptr_UniformConstant_8 - %22 = OpLabel - %40 = OpLoad %7 %uSampler_0 - %42 = OpImageFetch %v4float %40 %35 Lod %int_0 - OpReturnValue %42 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/sampler-buffer-without-sampler.asm.frag b/third_party/spirv-cross/shaders/asm/frag/sampler-buffer-without-sampler.asm.frag deleted file mode 100644 index e6776eaf5e..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/sampler-buffer-without-sampler.asm.frag +++ /dev/null @@ -1,62 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 36 -; Schema: 0 - OpCapability Shader - OpCapability SampledBuffer - OpCapability ImageBuffer - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %_entryPointOutput - OpExecutionMode %main OriginUpperLeft - OpName %main "main" - OpName %_main_ "@main(" - OpName %storeTemp "storeTemp" - OpName %RWTex "RWTex" - OpName %Tex "Tex" - OpName %_entryPointOutput "@entryPointOutput" - OpDecorate %RWTex DescriptorSet 0 - OpDecorate %Tex DescriptorSet 0 - OpDecorate %RWTex Binding 0 - OpDecorate %Tex Binding 1 - OpDecorate %_entryPointOutput Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %8 = OpTypeFunction %v4float -%_ptr_Function_v4float = OpTypePointer Function %v4float - %13 = OpConstant %float 1 - %14 = OpConstant %float 2 - %15 = OpConstant %float 3 - %16 = OpConstant %float 4 - %17 = OpConstantComposite %v4float %13 %14 %15 %16 - %18 = OpTypeImage %float Buffer 0 0 0 2 Rgba32f -%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18 - %RWTex = OpVariable %_ptr_UniformConstant_18 UniformConstant - %int = OpTypeInt 32 1 - %23 = OpConstant %int 20 - %25 = OpTypeImage %float Buffer 0 0 0 1 Rgba32f -%_ptr_UniformConstant_25 = OpTypePointer UniformConstant %25 - %Tex = OpVariable %_ptr_UniformConstant_25 UniformConstant - %29 = OpConstant %int 10 -%_ptr_Output_v4float = OpTypePointer Output %v4float -%_entryPointOutput = OpVariable %_ptr_Output_v4float Output - %main = OpFunction %void None %3 - %5 = OpLabel - %35 = OpFunctionCall %v4float %_main_ - OpStore %_entryPointOutput %35 - OpReturn - OpFunctionEnd - %_main_ = OpFunction %v4float None %8 - %10 = OpLabel - %storeTemp = OpVariable %_ptr_Function_v4float Function - OpStore %storeTemp %17 - %21 = OpLoad %18 %RWTex - %24 = OpLoad %v4float %storeTemp - OpImageWrite %21 %23 %24 - %28 = OpLoad %25 %Tex - %30 = OpImageFetch %v4float %28 %29 - OpReturnValue %30 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/single-function-private-lut.asm.frag b/third_party/spirv-cross/shaders/asm/frag/single-function-private-lut.asm.frag deleted file mode 100644 index 0d5b29c638..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/single-function-private-lut.asm.frag +++ /dev/null @@ -1,86 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Khronos SPIR-V Tools Assembler; 0 -; Bound: 54 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %gl_FragCoord %o_color - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 460 - OpName %main "main" - OpName %myType "myType" - OpMemberName %myType 0 "data" - OpName %myData "myData" - OpName %uv "uv" - OpName %gl_FragCoord "gl_FragCoord" - OpName %index "index" - OpName %elt "elt" - OpName %o_color "o_color" - OpDecorate %gl_FragCoord BuiltIn FragCoord - OpDecorate %o_color Location 0 - %void = OpTypeVoid - %11 = OpTypeFunction %void - %float = OpTypeFloat 32 - %myType = OpTypeStruct %float - %uint = OpTypeInt 32 0 - %uint_5 = OpConstant %uint 5 -%_arr_myType_uint_5 = OpTypeArray %myType %uint_5 -%_ptr_Private__arr_myType_uint_5 = OpTypePointer Private %_arr_myType_uint_5 - %myData = OpVariable %_ptr_Private__arr_myType_uint_5 Private - %float_0 = OpConstant %float 0 - %18 = OpConstantComposite %myType %float_0 - %float_1 = OpConstant %float 1 - %20 = OpConstantComposite %myType %float_1 - %21 = OpConstantComposite %_arr_myType_uint_5 %18 %20 %18 %20 %18 - %v2float = OpTypeVector %float 2 -%_ptr_Function_v2float = OpTypePointer Function %v2float - %v4float = OpTypeVector %float 4 -%_ptr_Input_v4float = OpTypePointer Input %v4float -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input - %int = OpTypeInt 32 1 -%_ptr_Function_int = OpTypePointer Function %int - %uint_0 = OpConstant %uint 0 -%_ptr_Function_float = OpTypePointer Function %float - %float_4 = OpConstant %float 4 -%_ptr_Function_myType = OpTypePointer Function %myType -%_ptr_Private_myType = OpTypePointer Private %myType - %int_0 = OpConstant %int 0 - %bool = OpTypeBool -%_ptr_Output_v4float = OpTypePointer Output %v4float - %o_color = OpVariable %_ptr_Output_v4float Output - %36 = OpConstantComposite %v4float %float_0 %float_1 %float_0 %float_1 - %37 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 - %main = OpFunction %void None %11 - %38 = OpLabel - %uv = OpVariable %_ptr_Function_v2float Function - %index = OpVariable %_ptr_Function_int Function - %elt = OpVariable %_ptr_Function_myType Function - OpStore %myData %21 - %39 = OpLoad %v4float %gl_FragCoord - %40 = OpVectorShuffle %v2float %39 %39 0 1 - OpStore %uv %40 - %41 = OpAccessChain %_ptr_Function_float %uv %uint_0 - %42 = OpLoad %float %41 - %43 = OpFMod %float %42 %float_4 - %44 = OpConvertFToS %int %43 - OpStore %index %44 - %45 = OpLoad %int %index - %46 = OpAccessChain %_ptr_Private_myType %myData %45 - %47 = OpLoad %myType %46 - OpStore %elt %47 - %48 = OpAccessChain %_ptr_Function_float %elt %int_0 - %49 = OpLoad %float %48 - %50 = OpFOrdGreaterThan %bool %49 %float_0 - OpSelectionMerge %51 None - OpBranchConditional %50 %52 %53 - %52 = OpLabel - OpStore %o_color %36 - OpBranch %51 - %53 = OpLabel - OpStore %o_color %37 - OpBranch %51 - %51 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/srem.asm.frag b/third_party/spirv-cross/shaders/asm/frag/srem.asm.frag deleted file mode 100644 index c6f8e27cbd..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/srem.asm.frag +++ /dev/null @@ -1,43 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 2 -; Bound: 23 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %vA %vB - OpExecutionMode %main OriginUpperLeft - OpSource ESSL 310 - OpName %main "main" - OpName %FragColor "FragColor" - OpName %vA "vA" - OpName %vB "vB" - OpDecorate %FragColor RelaxedPrecision - OpDecorate %FragColor Location 0 - OpDecorate %vA Flat - OpDecorate %vA Location 0 - OpDecorate %vB Flat - OpDecorate %vB Location 1 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %int = OpTypeInt 32 1 - %v4int = OpTypeVector %int 4 -%_ptr_Input_v4int = OpTypePointer Input %v4int - %vA = OpVariable %_ptr_Input_v4int Input - %vB = OpVariable %_ptr_Input_v4int Input - %main = OpFunction %void None %3 - %5 = OpLabel - %14 = OpLoad %v4int %vA - %16 = OpLoad %v4int %vB - %17 = OpLoad %v4int %vA - %18 = OpLoad %v4int %vB - %19 = OpSRem %v4int %17 %18 - %20 = OpConvertSToF %v4float %19 - OpStore %FragColor %20 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/storage-class-output-initializer.asm.frag b/third_party/spirv-cross/shaders/asm/frag/storage-class-output-initializer.asm.frag deleted file mode 100644 index 7763b7c17c..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/storage-class-output-initializer.asm.frag +++ /dev/null @@ -1,41 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 25 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColors %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %FragColors "FragColors" - OpName %FragColor "FragColor" - OpDecorate %FragColors Location 0 - OpDecorate %FragColor Location 2 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %uint = OpTypeInt 32 0 - %uint_2 = OpConstant %uint 2 -%_arr_v4float_uint_2 = OpTypeArray %v4float %uint_2 -%_ptr_Output__arr_v4float_uint_2 = OpTypePointer Output %_arr_v4float_uint_2 - %float_1 = OpConstant %float 1 - %float_2 = OpConstant %float 2 - %float_3 = OpConstant %float 3 - %float_4 = OpConstant %float 4 - %17 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4 - %float_10 = OpConstant %float 10 - %19 = OpConstantComposite %v4float %float_10 %float_10 %float_10 %float_10 - %20 = OpConstantComposite %_arr_v4float_uint_2 %17 %19 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %float_5 = OpConstant %float 5 - %24 = OpConstantComposite %v4float %float_5 %float_5 %float_5 %float_5 - %FragColors = OpVariable %_ptr_Output__arr_v4float_uint_2 Output %20 - %FragColor = OpVariable %_ptr_Output_v4float Output %24 - %main = OpFunction %void None %3 - %5 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/struct-composite-extract-swizzle.asm.frag b/third_party/spirv-cross/shaders/asm/frag/struct-composite-extract-swizzle.asm.frag deleted file mode 100644 index 33bd1c9163..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/struct-composite-extract-swizzle.asm.frag +++ /dev/null @@ -1,55 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 34 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource ESSL 310 - OpName %main "main" - OpName %FragColor "FragColor" - OpName %uSampler "uSampler" - OpName %Foo "Foo" - OpMemberName %Foo 0 "var1" - OpMemberName %Foo 1 "var2" - OpName %foo "foo" - OpDecorate %FragColor RelaxedPrecision - OpDecorate %FragColor Location 0 - OpDecorate %uSampler RelaxedPrecision - OpDecorate %uSampler DescriptorSet 0 - OpDecorate %uSampler Binding 0 - OpDecorate %14 RelaxedPrecision - OpMemberDecorate %Foo 0 RelaxedPrecision - OpMemberDecorate %Foo 1 RelaxedPrecision - OpDecorate %27 RelaxedPrecision - OpDecorate %28 RelaxedPrecision - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %10 = OpTypeImage %float 2D 0 0 0 1 Unknown - %11 = OpTypeSampledImage %10 -%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11 - %uSampler = OpVariable %_ptr_UniformConstant_11 UniformConstant - %Foo = OpTypeStruct %float %float -%_ptr_Function_Foo = OpTypePointer Function %Foo - %int = OpTypeInt 32 1 -%_ptr_Function_float = OpTypePointer Function %float - %v2float = OpTypeVector %float 2 - %33 = OpUndef %Foo - %main = OpFunction %void None %3 - %5 = OpLabel - %foo = OpVariable %_ptr_Function_Foo Function - %14 = OpLoad %11 %uSampler - %30 = OpCompositeExtract %float %33 0 - %32 = OpCompositeExtract %float %33 1 - %27 = OpCompositeConstruct %v2float %30 %32 - %28 = OpImageSampleImplicitLod %v4float %14 %27 - OpStore %FragColor %28 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/switch-label-shared-block.asm.frag b/third_party/spirv-cross/shaders/asm/frag/switch-label-shared-block.asm.frag deleted file mode 100644 index 8f55bcf536..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/switch-label-shared-block.asm.frag +++ /dev/null @@ -1,45 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 28 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %vIndex %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource ESSL 310 - OpName %main "main" - OpName %vIndex "vIndex" - OpName %FragColor "FragColor" - OpDecorate %vIndex RelaxedPrecision - OpDecorate %vIndex Flat - OpDecorate %vIndex Location 0 - OpDecorate %13 RelaxedPrecision - OpDecorate %FragColor RelaxedPrecision - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %float_8 = OpConstant %float 8 - %int = OpTypeInt 32 1 -%_ptr_Input_int = OpTypePointer Input %int - %vIndex = OpVariable %_ptr_Input_int Input - %float_1 = OpConstant %float 1 - %float_3 = OpConstant %float 3 -%_ptr_Output_float = OpTypePointer Output %float - %FragColor = OpVariable %_ptr_Output_float Output - %main = OpFunction %void None %3 - %5 = OpLabel - %13 = OpLoad %int %vIndex - OpSelectionMerge %17 None - OpSwitch %13 %15 0 %14 2 %14 1 %15 8 %17 - %15 = OpLabel - OpBranch %17 - %14 = OpLabel - OpBranch %17 - %17 = OpLabel - %27 = OpPhi %float %float_3 %15 %float_1 %14 %float_8 %5 - OpStore %FragColor %27 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/temporary-name-alias.asm.frag b/third_party/spirv-cross/shaders/asm/frag/temporary-name-alias.asm.frag deleted file mode 100644 index 6ea359b24c..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/temporary-name-alias.asm.frag +++ /dev/null @@ -1,47 +0,0 @@ -; SPIR-V -; Version: 1.2 -; Generator: Khronos; 0 -; Bound: 51 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %EntryPoint_Main "main" - OpExecutionMode %EntryPoint_Main OriginUpperLeft - OpSource Unknown 100 - OpName %mat3 "mat3" - OpName %constituent "constituent" - OpName %constituent_0 "constituent" - OpName %constituent_1 "constituent" - OpName %constituent_2 "constituent" - OpName %constituent_3 "constituent" - OpName %constituent_4 "constituent" - OpName %constituent_5 "constituent" - OpName %constituent_6 "constituent" - OpName %EntryPoint_Main "EntryPoint_Main" - %void = OpTypeVoid -%_ptr_Function_void = OpTypePointer Function %void - %float = OpTypeFloat 32 - %int = OpTypeInt 32 1 - %v3float = OpTypeVector %float 3 -%mat3v3float = OpTypeMatrix %v3float 3 -%_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float - %14 = OpTypeFunction %void - %int_0 = OpConstant %int 0 - %int_1 = OpConstant %int 1 -%EntryPoint_Main = OpFunction %void None %14 - %45 = OpLabel - %mat3 = OpVariable %_ptr_Function_mat3v3float Function -%constituent = OpConvertSToF %float %int_0 -%constituent_0 = OpCompositeConstruct %v3float %constituent %constituent %constituent -%constituent_1 = OpCompositeConstruct %v3float %constituent %constituent %constituent -%constituent_2 = OpCompositeConstruct %v3float %constituent %constituent %constituent - %25 = OpCompositeConstruct %mat3v3float %constituent_0 %constituent_1 %constituent_2 - OpStore %mat3 %25 -%constituent_3 = OpConvertSToF %float %int_1 -%constituent_4 = OpCompositeConstruct %v3float %constituent_3 %constituent_3 %constituent_3 -%constituent_5 = OpCompositeConstruct %v3float %constituent_3 %constituent_3 %constituent_3 -%constituent_6 = OpCompositeConstruct %v3float %constituent_3 %constituent_3 %constituent_3 - %30 = OpCompositeConstruct %mat3v3float %constituent_4 %constituent_5 %constituent_6 - OpStore %mat3 %30 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/temporary-phi-hoisting.asm.frag b/third_party/spirv-cross/shaders/asm/frag/temporary-phi-hoisting.asm.frag deleted file mode 100644 index 977c20ac37..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/temporary-phi-hoisting.asm.frag +++ /dev/null @@ -1,76 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 87 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %_entryPointOutput - OpExecutionMode %main OriginUpperLeft - OpSource HLSL 500 - OpName %main "main" - OpName %MyStruct "MyStruct" - OpMemberName %MyStruct 0 "color" - OpName %MyStruct_CB "MyStruct_CB" - OpMemberName %MyStruct_CB 0 "g_MyStruct" - OpName %_ "" - OpName %_entryPointOutput "@entryPointOutput" - OpMemberDecorate %MyStruct 0 Offset 0 - OpDecorate %_arr_MyStruct_uint_4 ArrayStride 16 - OpMemberDecorate %MyStruct_CB 0 Offset 0 - OpDecorate %MyStruct_CB Block - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - OpDecorate %_entryPointOutput Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %v3float = OpTypeVector %float 3 - %float_0 = OpConstant %float 0 - %15 = OpConstantComposite %v3float %float_0 %float_0 %float_0 - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %int_4 = OpConstant %int 4 - %bool = OpTypeBool - %MyStruct = OpTypeStruct %v4float - %uint = OpTypeInt 32 0 - %uint_4 = OpConstant %uint 4 -%_arr_MyStruct_uint_4 = OpTypeArray %MyStruct %uint_4 -%MyStruct_CB = OpTypeStruct %_arr_MyStruct_uint_4 -%_ptr_Uniform_MyStruct_CB = OpTypePointer Uniform %MyStruct_CB - %_ = OpVariable %_ptr_Uniform_MyStruct_CB Uniform -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float - %int_1 = OpConstant %int 1 - %float_1 = OpConstant %float 1 -%_ptr_Output_v4float = OpTypePointer Output %v4float -%_entryPointOutput = OpVariable %_ptr_Output_v4float Output - %main = OpFunction %void None %3 - %5 = OpLabel - OpBranch %64 - %64 = OpLabel - %85 = OpPhi %v3float %15 %5 %77 %66 - %86 = OpPhi %int %int_0 %5 %79 %66 - OpLoopMerge %65 %66 None - OpBranch %67 - %67 = OpLabel - %69 = OpSLessThan %bool %86 %int_4 - OpBranchConditional %69 %70 %65 - %70 = OpLabel - %72 = OpAccessChain %_ptr_Uniform_v4float %_ %int_0 %86 %int_0 - %73 = OpLoad %v4float %72 - %74 = OpVectorShuffle %v3float %73 %73 0 1 2 - %77 = OpFAdd %v3float %85 %74 - OpBranch %66 - %66 = OpLabel - %79 = OpIAdd %int %86 %int_1 - OpBranch %64 - %65 = OpLabel - %81 = OpCompositeExtract %float %85 0 - %82 = OpCompositeExtract %float %85 1 - %83 = OpCompositeExtract %float %85 2 - %84 = OpCompositeConstruct %v4float %81 %82 %83 %float_1 - OpStore %_entryPointOutput %84 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/texel-fetch-no-lod.asm.frag b/third_party/spirv-cross/shaders/asm/frag/texel-fetch-no-lod.asm.frag deleted file mode 100644 index 53dc63809c..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/texel-fetch-no-lod.asm.frag +++ /dev/null @@ -1,46 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 26 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %gl_FragCoord - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %FragColor "FragColor" - OpName %uTexture "uTexture" - OpName %gl_FragCoord "gl_FragCoord" - OpDecorate %FragColor Location 0 - OpDecorate %uTexture DescriptorSet 0 - OpDecorate %uTexture Binding 0 - OpDecorate %gl_FragCoord BuiltIn FragCoord - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %10 = OpTypeImage %float 2D 0 0 0 1 Unknown - %11 = OpTypeSampledImage %10 -%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11 - %uTexture = OpVariable %_ptr_UniformConstant_11 UniformConstant -%_ptr_Input_v4float = OpTypePointer Input %v4float -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input - %v2float = OpTypeVector %float 2 - %int = OpTypeInt 32 1 - %v2int = OpTypeVector %int 2 - %int_0 = OpConstant %int 0 - %main = OpFunction %void None %3 - %5 = OpLabel - %14 = OpLoad %11 %uTexture - %18 = OpLoad %v4float %gl_FragCoord - %19 = OpVectorShuffle %v2float %18 %18 0 1 - %22 = OpConvertFToS %v2int %19 - %24 = OpImage %10 %14 - %25 = OpImageFetch %v4float %24 %22 - OpStore %FragColor %25 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/texture-sampling-fp16.asm.vk.frag b/third_party/spirv-cross/shaders/asm/frag/texture-sampling-fp16.asm.vk.frag deleted file mode 100644 index e7e6f37ea2..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/texture-sampling-fp16.asm.vk.frag +++ /dev/null @@ -1,47 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 25 -; Schema: 0 - OpCapability Shader - OpCapability StorageInputOutput16 - OpCapability Float16 - OpExtension "SPV_KHR_16bit_storage" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor %UV - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpSourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16" - OpName %main "main" - OpName %FragColor "FragColor" - OpName %uTexture "uTexture" - OpName %UV "UV" - OpDecorate %FragColor Location 0 - OpDecorate %uTexture DescriptorSet 0 - OpDecorate %uTexture Binding 0 - OpDecorate %UV Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %half = OpTypeFloat 16 - %float = OpTypeFloat 32 - %v4half = OpTypeVector %half 4 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4half = OpTypePointer Output %v4half - %FragColor = OpVariable %_ptr_Output_v4half Output - %11 = OpTypeImage %float 2D 0 0 0 1 Unknown - %12 = OpTypeSampledImage %11 -%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12 - %uTexture = OpVariable %_ptr_UniformConstant_12 UniformConstant - %v2half = OpTypeVector %half 2 -%_ptr_Input_v2half = OpTypePointer Input %v2half - %UV = OpVariable %_ptr_Input_v2half Input - %main = OpFunction %void None %3 - %5 = OpLabel - %15 = OpLoad %12 %uTexture - %19 = OpLoad %v2half %UV - %23 = OpImageSampleImplicitLod %v4float %15 %19 - %24 = OpFConvert %v4half %23 - OpStore %FragColor %24 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/undef-variable-store.asm.frag b/third_party/spirv-cross/shaders/asm/frag/undef-variable-store.asm.frag deleted file mode 100644 index 966c2d9d5a..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/undef-variable-store.asm.frag +++ /dev/null @@ -1,85 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 50 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %fragmentProgram "main" %_entryPointOutput - OpExecutionMode %fragmentProgram OriginUpperLeft - OpSource HLSL 500 - OpName %fragmentProgram "fragmentProgram" - OpName %_fragmentProgram_ "@fragmentProgram(" - OpName %uv "uv" - OpName %_entryPointOutput "@entryPointOutput" - OpDecorate %_entryPointOutput Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %8 = OpTypeFunction %v4float - %v2float = OpTypeVector %float 2 -%_ptr_Function_v2float = OpTypePointer Function %v2float - %float_0 = OpConstant %float 0 - %15 = OpConstantComposite %v2float %float_0 %float_0 - %uint = OpTypeInt 32 0 - %uint_0 = OpConstant %uint 0 -%_ptr_Function_float = OpTypePointer Function %float - %bool = OpTypeBool - %float_1 = OpConstant %float 1 - %26 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 - %29 = OpConstantComposite %v4float %float_1 %float_1 %float_0 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float -%_entryPointOutput = OpVariable %_ptr_Output_v4float Output -%_ptr_Function_v4float = OpTypePointer Function %v4float - %false = OpConstantFalse %bool -%fragmentProgram = OpFunction %void None %3 - %5 = OpLabel - %35 = OpVariable %_ptr_Function_v2float Function - %37 = OpVariable %_ptr_Function_v4float Function - OpBranch %38 - %38 = OpLabel - OpLoopMerge %39 %40 None - OpBranch %41 - %41 = OpLabel - OpStore %35 %15 - %42 = OpAccessChain %_ptr_Function_float %35 %uint_0 - %43 = OpLoad %float %42 - %44 = OpFOrdNotEqual %bool %43 %float_0 - OpSelectionMerge %45 None - OpBranchConditional %44 %46 %47 - %46 = OpLabel - OpStore %37 %26 - OpBranch %39 - %47 = OpLabel - OpStore %37 %29 - OpBranch %39 - %45 = OpLabel - %48 = OpUndef %v4float - OpStore %37 %48 - OpBranch %39 - %40 = OpLabel - OpBranchConditional %false %38 %39 - %39 = OpLabel - %34 = OpLoad %v4float %37 - OpStore %_entryPointOutput %34 - OpReturn - OpFunctionEnd -%_fragmentProgram_ = OpFunction %v4float None %8 - %10 = OpLabel - %uv = OpVariable %_ptr_Function_v2float Function - OpStore %uv %15 - %19 = OpAccessChain %_ptr_Function_float %uv %uint_0 - %20 = OpLoad %float %19 - %22 = OpFOrdNotEqual %bool %20 %float_0 - OpSelectionMerge %24 None - OpBranchConditional %22 %23 %28 - %23 = OpLabel - OpReturnValue %26 - %28 = OpLabel - OpReturnValue %29 - %24 = OpLabel - %31 = OpUndef %v4float - OpReturnValue %31 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/unknown-depth-state.asm.vk.frag b/third_party/spirv-cross/shaders/asm/frag/unknown-depth-state.asm.vk.frag deleted file mode 100644 index 89036f0eb2..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/unknown-depth-state.asm.vk.frag +++ /dev/null @@ -1,71 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 44 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %vUV %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %sample_combined_ "sample_combined(" - OpName %sample_separate_ "sample_separate(" - OpName %uShadow "uShadow" - OpName %vUV "vUV" - OpName %uTexture "uTexture" - OpName %uSampler "uSampler" - OpName %FragColor "FragColor" - OpDecorate %uShadow DescriptorSet 0 - OpDecorate %uShadow Binding 0 - OpDecorate %vUV Location 0 - OpDecorate %uTexture DescriptorSet 0 - OpDecorate %uTexture Binding 1 - OpDecorate %uSampler DescriptorSet 0 - OpDecorate %uSampler Binding 2 - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %7 = OpTypeFunction %float - %12 = OpTypeImage %float 2D 2 0 0 1 Unknown - %13 = OpTypeSampledImage %12 -%_ptr_UniformConstant_13 = OpTypePointer UniformConstant %13 - %uShadow = OpVariable %_ptr_UniformConstant_13 UniformConstant - %v3float = OpTypeVector %float 3 -%_ptr_Input_v3float = OpTypePointer Input %v3float - %vUV = OpVariable %_ptr_Input_v3float Input -%_ptr_UniformConstant_25 = OpTypePointer UniformConstant %12 - %uTexture = OpVariable %_ptr_UniformConstant_25 UniformConstant - %29 = OpTypeSampler -%_ptr_UniformConstant_29 = OpTypePointer UniformConstant %29 - %uSampler = OpVariable %_ptr_UniformConstant_29 UniformConstant -%_ptr_Output_float = OpTypePointer Output %float - %FragColor = OpVariable %_ptr_Output_float Output - %main = OpFunction %void None %3 - %5 = OpLabel - %41 = OpFunctionCall %float %sample_combined_ - %42 = OpFunctionCall %float %sample_separate_ - %43 = OpFAdd %float %41 %42 - OpStore %FragColor %43 - OpReturn - OpFunctionEnd -%sample_combined_ = OpFunction %float None %7 - %9 = OpLabel - %16 = OpLoad %13 %uShadow - %20 = OpLoad %v3float %vUV - %21 = OpCompositeExtract %float %20 2 - %22 = OpImageSampleDrefImplicitLod %float %16 %20 %21 - OpReturnValue %22 - OpFunctionEnd -%sample_separate_ = OpFunction %float None %7 - %11 = OpLabel - %28 = OpLoad %12 %uTexture - %32 = OpLoad %29 %uSampler - %33 = OpSampledImage %13 %28 %32 - %34 = OpLoad %v3float %vUV - %35 = OpCompositeExtract %float %34 2 - %36 = OpImageSampleDrefImplicitLod %float %33 %34 %35 - OpReturnValue %36 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/unreachable.asm.frag b/third_party/spirv-cross/shaders/asm/frag/unreachable.asm.frag deleted file mode 100644 index e2ce2eb56a..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/unreachable.asm.frag +++ /dev/null @@ -1,61 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 3 -; Bound: 47 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %counter %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpName %main "main" - OpName %counter "counter" - OpName %FragColor "FragColor" - OpDecorate %counter Flat - OpDecorate %counter Location 0 - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %8 = OpTypeFunction %v4float - %int = OpTypeInt 32 1 -%_ptr_Input_int = OpTypePointer Input %int - %counter = OpVariable %_ptr_Input_int Input - %int_10 = OpConstant %int 10 - %bool = OpTypeBool - %float_10 = OpConstant %float 10 - %21 = OpConstantComposite %v4float %float_10 %float_10 %float_10 %float_10 - %float_30 = OpConstant %float 30 - %25 = OpConstantComposite %v4float %float_30 %float_30 %float_30 %float_30 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output -%_ptr_Function_v4float = OpTypePointer Function %v4float - %false = OpConstantFalse %bool - %44 = OpUndef %v4float - %main = OpFunction %void None %3 - %5 = OpLabel - OpBranch %33 - %33 = OpLabel - %45 = OpPhi %v4float %44 %5 %44 %35 - OpLoopMerge %34 %35 None - OpBranch %36 - %36 = OpLabel - %37 = OpLoad %int %counter - %38 = OpIEqual %bool %37 %int_10 - OpSelectionMerge %39 None - OpBranchConditional %38 %40 %41 - %40 = OpLabel - OpBranch %34 - %41 = OpLabel - OpBranch %34 - %39 = OpLabel - OpUnreachable - %35 = OpLabel - OpBranchConditional %false %33 %34 - %34 = OpLabel - %46 = OpPhi %v4float %21 %40 %25 %41 %44 %35 - OpStore %FragColor %46 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/frag/vector-shuffle-oom.asm.frag b/third_party/spirv-cross/shaders/asm/frag/vector-shuffle-oom.asm.frag deleted file mode 100644 index d60c6f52d4..0000000000 --- a/third_party/spirv-cross/shaders/asm/frag/vector-shuffle-oom.asm.frag +++ /dev/null @@ -1,886 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 2 -; Bound: 25007 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %5663 "main" %5800 %gl_FragCoord %4317 - OpExecutionMode %5663 OriginUpperLeft - OpMemberDecorate %_struct_1116 0 Offset 0 - OpMemberDecorate %_struct_1116 1 Offset 16 - OpMemberDecorate %_struct_1116 2 Offset 32 - OpDecorate %_struct_1116 Block - OpDecorate %22044 DescriptorSet 0 - OpDecorate %22044 Binding 0 - OpDecorate %5785 DescriptorSet 0 - OpDecorate %5785 Binding 140 - OpDecorate %5688 DescriptorSet 0 - OpDecorate %5688 Binding 60 - OpMemberDecorate %_struct_994 0 Offset 0 - OpMemberDecorate %_struct_994 1 Offset 16 - OpMemberDecorate %_struct_994 2 Offset 28 - OpMemberDecorate %_struct_994 3 Offset 32 - OpMemberDecorate %_struct_994 4 Offset 44 - OpMemberDecorate %_struct_994 5 Offset 48 - OpMemberDecorate %_struct_994 6 Offset 60 - OpMemberDecorate %_struct_994 7 Offset 64 - OpMemberDecorate %_struct_994 8 Offset 76 - OpMemberDecorate %_struct_994 9 Offset 80 - OpMemberDecorate %_struct_994 10 Offset 92 - OpMemberDecorate %_struct_994 11 Offset 96 - OpMemberDecorate %_struct_994 12 Offset 108 - OpMemberDecorate %_struct_994 13 Offset 112 - OpMemberDecorate %_struct_994 14 Offset 120 - OpMemberDecorate %_struct_994 15 Offset 128 - OpMemberDecorate %_struct_994 16 Offset 140 - OpMemberDecorate %_struct_994 17 Offset 144 - OpMemberDecorate %_struct_994 18 Offset 148 - OpMemberDecorate %_struct_994 19 Offset 152 - OpMemberDecorate %_struct_994 20 Offset 156 - OpMemberDecorate %_struct_994 21 Offset 160 - OpMemberDecorate %_struct_994 22 Offset 176 - OpMemberDecorate %_struct_994 23 RowMajor - OpMemberDecorate %_struct_994 23 Offset 192 - OpMemberDecorate %_struct_994 23 MatrixStride 16 - OpMemberDecorate %_struct_994 24 Offset 256 - OpDecorate %_struct_994 Block - OpDecorate %12348 DescriptorSet 0 - OpDecorate %12348 Binding 2 - OpDecorate %3312 DescriptorSet 0 - OpDecorate %3312 Binding 142 - OpDecorate %4646 DescriptorSet 0 - OpDecorate %4646 Binding 62 - OpDecorate %4862 DescriptorSet 0 - OpDecorate %4862 Binding 141 - OpDecorate %3594 DescriptorSet 0 - OpDecorate %3594 Binding 61 - OpDecorate %_arr_mat4v4float_uint_2 ArrayStride 64 - OpDecorate %_arr_v4float_uint_2 ArrayStride 16 - OpMemberDecorate %_struct_408 0 RowMajor - OpMemberDecorate %_struct_408 0 Offset 0 - OpMemberDecorate %_struct_408 0 MatrixStride 16 - OpMemberDecorate %_struct_408 1 RowMajor - OpMemberDecorate %_struct_408 1 Offset 64 - OpMemberDecorate %_struct_408 1 MatrixStride 16 - OpMemberDecorate %_struct_408 2 RowMajor - OpMemberDecorate %_struct_408 2 Offset 128 - OpMemberDecorate %_struct_408 2 MatrixStride 16 - OpMemberDecorate %_struct_408 3 RowMajor - OpMemberDecorate %_struct_408 3 Offset 192 - OpMemberDecorate %_struct_408 3 MatrixStride 16 - OpMemberDecorate %_struct_408 4 Offset 256 - OpMemberDecorate %_struct_408 5 Offset 272 - OpMemberDecorate %_struct_408 6 Offset 288 - OpMemberDecorate %_struct_408 7 Offset 292 - OpMemberDecorate %_struct_408 8 Offset 296 - OpMemberDecorate %_struct_408 9 Offset 300 - OpMemberDecorate %_struct_408 10 Offset 304 - OpMemberDecorate %_struct_408 11 Offset 316 - OpMemberDecorate %_struct_408 12 Offset 320 - OpMemberDecorate %_struct_408 13 Offset 332 - OpMemberDecorate %_struct_408 14 Offset 336 - OpMemberDecorate %_struct_408 15 Offset 348 - OpMemberDecorate %_struct_408 16 Offset 352 - OpMemberDecorate %_struct_408 17 Offset 364 - OpMemberDecorate %_struct_408 18 Offset 368 - OpMemberDecorate %_struct_408 19 Offset 372 - OpMemberDecorate %_struct_408 20 Offset 376 - OpMemberDecorate %_struct_408 21 Offset 384 - OpMemberDecorate %_struct_408 22 Offset 392 - OpMemberDecorate %_struct_408 23 Offset 400 - OpMemberDecorate %_struct_408 24 Offset 416 - OpMemberDecorate %_struct_408 25 Offset 424 - OpMemberDecorate %_struct_408 26 Offset 432 - OpMemberDecorate %_struct_408 27 Offset 448 - OpMemberDecorate %_struct_408 28 Offset 460 - OpMemberDecorate %_struct_408 29 Offset 464 - OpMemberDecorate %_struct_408 30 Offset 468 - OpMemberDecorate %_struct_408 31 Offset 472 - OpMemberDecorate %_struct_408 32 Offset 476 - OpMemberDecorate %_struct_408 33 Offset 480 - OpMemberDecorate %_struct_408 34 Offset 488 - OpMemberDecorate %_struct_408 35 Offset 492 - OpMemberDecorate %_struct_408 36 Offset 496 - OpMemberDecorate %_struct_408 37 RowMajor - OpMemberDecorate %_struct_408 37 Offset 512 - OpMemberDecorate %_struct_408 37 MatrixStride 16 - OpMemberDecorate %_struct_408 38 Offset 640 - OpDecorate %_struct_408 Block - OpDecorate %15259 DescriptorSet 0 - OpDecorate %15259 Binding 1 - OpDecorate %5800 Location 0 - OpDecorate %gl_FragCoord BuiltIn FragCoord - OpDecorate %4317 Location 0 - OpMemberDecorate %_struct_1395 0 Offset 0 - OpMemberDecorate %_struct_1395 1 Offset 16 - OpMemberDecorate %_struct_1395 2 Offset 32 - OpMemberDecorate %_struct_1395 3 Offset 40 - OpMemberDecorate %_struct_1395 4 Offset 48 - OpMemberDecorate %_struct_1395 5 Offset 60 - OpMemberDecorate %_struct_1395 6 Offset 64 - OpMemberDecorate %_struct_1395 7 Offset 76 - OpMemberDecorate %_struct_1395 8 Offset 80 - OpMemberDecorate %_struct_1395 9 Offset 96 - OpMemberDecorate %_struct_1395 10 Offset 112 - OpMemberDecorate %_struct_1395 11 Offset 128 - OpMemberDecorate %_struct_1395 12 Offset 140 - OpMemberDecorate %_struct_1395 13 Offset 144 - OpMemberDecorate %_struct_1395 14 Offset 156 - OpMemberDecorate %_struct_1395 15 Offset 160 - OpMemberDecorate %_struct_1395 16 Offset 176 - OpMemberDecorate %_struct_1395 17 Offset 192 - OpMemberDecorate %_struct_1395 18 Offset 204 - OpMemberDecorate %_struct_1395 19 Offset 208 - OpMemberDecorate %_struct_1395 20 Offset 224 - OpDecorate %_struct_1395 Block - OpMemberDecorate %_struct_1018 0 Offset 0 - OpDecorate %_struct_1018 Block - %void = OpTypeVoid - %1282 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v2float = OpTypeVector %float 2 - %v4float = OpTypeVector %float 4 - %v3float = OpTypeVector %float 3 -%_struct_1017 = OpTypeStruct %v4float -%_struct_1116 = OpTypeStruct %v4float %float %v4float -%_ptr_Uniform__struct_1116 = OpTypePointer Uniform %_struct_1116 - %22044 = OpVariable %_ptr_Uniform__struct_1116 Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float - %150 = OpTypeImage %float 2D 0 0 0 1 Unknown -%_ptr_UniformConstant_150 = OpTypePointer UniformConstant %150 - %5785 = OpVariable %_ptr_UniformConstant_150 UniformConstant - %508 = OpTypeSampler -%_ptr_UniformConstant_508 = OpTypePointer UniformConstant %508 - %5688 = OpVariable %_ptr_UniformConstant_508 UniformConstant - %510 = OpTypeSampledImage %150 - %float_0 = OpConstant %float 0 - %uint = OpTypeInt 32 0 - %int_1 = OpConstant %int 1 -%_ptr_Uniform_float = OpTypePointer Uniform %float - %float_1 = OpConstant %float 1 -%mat4v4float = OpTypeMatrix %v4float 4 -%_struct_994 = OpTypeStruct %v3float %v3float %float %v3float %float %v3float %float %v3float %float %v3float %float %v3float %float %v2float %v2float %v3float %float %float %float %float %float %v4float %v4float %mat4v4float %v4float -%_ptr_Uniform__struct_994 = OpTypePointer Uniform %_struct_994 - %12348 = OpVariable %_ptr_Uniform__struct_994 Uniform - %int_5 = OpConstant %int 5 -%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float - %3312 = OpVariable %_ptr_UniformConstant_150 UniformConstant - %4646 = OpVariable %_ptr_UniformConstant_508 UniformConstant - %bool = OpTypeBool - %4862 = OpVariable %_ptr_UniformConstant_150 UniformConstant - %3594 = OpVariable %_ptr_UniformConstant_508 UniformConstant - %uint_2 = OpConstant %uint 2 - %2938 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 -%_arr_mat4v4float_uint_2 = OpTypeArray %mat4v4float %uint_2 -%_arr_v4float_uint_2 = OpTypeArray %v4float %uint_2 -%_struct_408 = OpTypeStruct %mat4v4float %mat4v4float %mat4v4float %mat4v4float %v4float %v4float %float %float %float %float %v3float %float %v3float %float %v3float %float %v3float %float %float %float %v2float %v2float %v2float %v4float %v2float %v2float %v2float %v3float %float %float %float %float %float %v2float %float %float %v3float %_arr_mat4v4float_uint_2 %_arr_v4float_uint_2 -%_ptr_Uniform__struct_408 = OpTypePointer Uniform %_struct_408 - %15259 = OpVariable %_ptr_Uniform__struct_408 Uniform - %int_23 = OpConstant %int 23 - %int_2 = OpConstant %int 2 - %float_n2 = OpConstant %float -2 - %float_0_5 = OpConstant %float 0.5 - %1196 = OpConstantComposite %v3float %float_0 %float_n2 %float_0_5 - %float_n1 = OpConstant %float -1 - %836 = OpConstantComposite %v3float %float_n1 %float_n1 %float_0_5 - %float_0_75 = OpConstant %float 0.75 - %1367 = OpConstantComposite %v3float %float_0 %float_n1 %float_0_75 - %141 = OpConstantComposite %v3float %float_1 %float_n1 %float_0_5 - %38 = OpConstantComposite %v3float %float_n2 %float_0 %float_0_5 - %95 = OpConstantComposite %v3float %float_n1 %float_0 %float_0_75 - %626 = OpConstantComposite %v3float %float_0 %float_0 %float_1 - %2411 = OpConstantComposite %v3float %float_1 %float_0 %float_0_75 - %float_2 = OpConstant %float 2 - %2354 = OpConstantComposite %v3float %float_2 %float_0 %float_0_5 - %837 = OpConstantComposite %v3float %float_n1 %float_1 %float_0_5 - %1368 = OpConstantComposite %v3float %float_0 %float_1 %float_0_75 - %142 = OpConstantComposite %v3float %float_1 %float_1 %float_0_5 - %1197 = OpConstantComposite %v3float %float_0 %float_2 %float_0_5 -%_ptr_Input_v2float = OpTypePointer Input %v2float - %5800 = OpVariable %_ptr_Input_v2float Input -%_ptr_Input_v4float = OpTypePointer Input %v4float -%gl_FragCoord = OpVariable %_ptr_Input_v4float Input -%_ptr_Output_v4float = OpTypePointer Output %v4float - %4317 = OpVariable %_ptr_Output_v4float Output -%_struct_1395 = OpTypeStruct %v4float %v4float %v2float %v2float %v3float %float %v3float %float %v4float %v4float %v4float %v3float %float %v3float %float %v3float %v4float %v3float %float %v3float %v2float -%_struct_1018 = OpTypeStruct %v4float - %10264 = OpUndef %_struct_1017 - %5663 = OpFunction %void None %1282 - %25006 = OpLabel - %17463 = OpLoad %v4float %gl_FragCoord - %13863 = OpCompositeInsert %_struct_1017 %2938 %10264 0 - %22969 = OpVectorShuffle %v2float %17463 %17463 0 1 - %13206 = OpAccessChain %_ptr_Uniform_v4float %15259 %int_23 - %10343 = OpLoad %v4float %13206 - %7422 = OpVectorShuffle %v2float %10343 %10343 0 1 - %19927 = OpFMul %v2float %22969 %7422 - %18174 = OpAccessChain %_ptr_Uniform_v4float %22044 %int_2 - %16206 = OpLoad %v4float %18174 - %20420 = OpAccessChain %_ptr_Uniform_v4float %22044 %int_0 - %21354 = OpLoad %v4float %20420 - %7688 = OpVectorShuffle %v4float %21354 %21354 0 1 0 1 - %17581 = OpFMul %v4float %16206 %7688 - %10673 = OpVectorShuffle %v2float %1196 %1196 0 1 - %18824 = OpAccessChain %_ptr_Uniform_v4float %22044 %int_0 - %10344 = OpLoad %v4float %18824 - %8638 = OpVectorShuffle %v2float %10344 %10344 0 1 - %9197 = OpFMul %v2float %10673 %8638 - %18505 = OpFAdd %v2float %19927 %9197 - %7011 = OpVectorShuffle %v2float %17581 %17581 0 1 - %21058 = OpVectorShuffle %v2float %17581 %17581 2 3 - %13149 = OpExtInst %v2float %1 FClamp %18505 %7011 %21058 - %23584 = OpLoad %150 %5785 - %10339 = OpLoad %508 %5688 - %12147 = OpSampledImage %510 %23584 %10339 - %15371 = OpImageSampleExplicitLod %v4float %12147 %13149 Lod %float_0 - %15266 = OpCompositeExtract %float %15371 3 - %12116 = OpAccessChain %_ptr_Uniform_float %22044 %int_1 - %12972 = OpLoad %float %12116 - %15710 = OpFMul %float %15266 %12972 - %15279 = OpExtInst %float %1 FClamp %15710 %float_0 %float_1 - %22213 = OpAccessChain %_ptr_Uniform_v3float %12348 %int_5 - %11756 = OpLoad %v3float %22213 - %12103 = OpVectorTimesScalar %v3float %11756 %15279 - %15516 = OpLoad %150 %3312 - %24569 = OpLoad %508 %4646 - %12148 = OpSampledImage %510 %15516 %24569 - %17670 = OpImageSampleExplicitLod %v4float %12148 %13149 Lod %float_0 - %16938 = OpCompositeExtract %float %17670 1 - %14185 = OpFOrdGreaterThan %bool %16938 %float_0 - OpSelectionMerge %22307 DontFlatten - OpBranchConditional %14185 %12821 %22307 - %12821 = OpLabel - %13239 = OpLoad %150 %4862 - %19960 = OpLoad %508 %3594 - %12149 = OpSampledImage %510 %13239 %19960 - %15675 = OpImageSampleExplicitLod %v4float %12149 %13149 Lod %float_0 - %13866 = OpCompositeExtract %float %17670 1 - %12427 = OpCompositeExtract %float %17670 2 - %23300 = OpFMul %float %13866 %12427 - %17612 = OpExtInst %float %1 FClamp %23300 %float_0 %float_1 - %20291 = OpVectorShuffle %v3float %15675 %15675 0 1 2 - %11186 = OpVectorTimesScalar %v3float %20291 %17612 - %15293 = OpFAdd %v3float %12103 %11186 - OpBranch %22307 - %22307 = OpLabel - %7719 = OpPhi %v3float %12103 %25006 %15293 %12821 - %23399 = OpVectorTimesScalar %v3float %7719 %float_0_5 - %9339 = OpFAdd %float %float_0 %float_0_5 - %16235 = OpVectorShuffle %v3float %2938 %2938 0 1 2 - %22177 = OpFAdd %v3float %16235 %23399 - %15527 = OpVectorShuffle %v4float %2938 %22177 4 5 6 3 - %6434 = OpCompositeInsert %_struct_1017 %15527 %13863 0 - %24572 = OpVectorShuffle %v2float %836 %836 0 1 - %13207 = OpAccessChain %_ptr_Uniform_v4float %22044 %int_0 - %10345 = OpLoad %v4float %13207 - %8639 = OpVectorShuffle %v2float %10345 %10345 0 1 - %9198 = OpFMul %v2float %24572 %8639 - %18506 = OpFAdd %v2float %19927 %9198 - %7012 = OpVectorShuffle %v2float %17581 %17581 0 1 - %21059 = OpVectorShuffle %v2float %17581 %17581 2 3 - %13150 = OpExtInst %v2float %1 FClamp %18506 %7012 %21059 - %23585 = OpLoad %150 %5785 - %10340 = OpLoad %508 %5688 - %12150 = OpSampledImage %510 %23585 %10340 - %15372 = OpImageSampleExplicitLod %v4float %12150 %13150 Lod %float_0 - %15267 = OpCompositeExtract %float %15372 3 - %12117 = OpAccessChain %_ptr_Uniform_float %22044 %int_1 - %12973 = OpLoad %float %12117 - %15711 = OpFMul %float %15267 %12973 - %15280 = OpExtInst %float %1 FClamp %15711 %float_0 %float_1 - %22214 = OpAccessChain %_ptr_Uniform_v3float %12348 %int_5 - %11757 = OpLoad %v3float %22214 - %12104 = OpVectorTimesScalar %v3float %11757 %15280 - %15517 = OpLoad %150 %3312 - %24570 = OpLoad %508 %4646 - %12151 = OpSampledImage %510 %15517 %24570 - %17671 = OpImageSampleExplicitLod %v4float %12151 %13150 Lod %float_0 - %16939 = OpCompositeExtract %float %17671 1 - %14186 = OpFOrdGreaterThan %bool %16939 %float_0 - OpSelectionMerge %22308 DontFlatten - OpBranchConditional %14186 %12822 %22308 - %12822 = OpLabel - %13240 = OpLoad %150 %4862 - %19961 = OpLoad %508 %3594 - %12152 = OpSampledImage %510 %13240 %19961 - %15676 = OpImageSampleExplicitLod %v4float %12152 %13150 Lod %float_0 - %13867 = OpCompositeExtract %float %17671 1 - %12428 = OpCompositeExtract %float %17671 2 - %23301 = OpFMul %float %13867 %12428 - %17613 = OpExtInst %float %1 FClamp %23301 %float_0 %float_1 - %20292 = OpVectorShuffle %v3float %15676 %15676 0 1 2 - %11187 = OpVectorTimesScalar %v3float %20292 %17613 - %15294 = OpFAdd %v3float %12104 %11187 - OpBranch %22308 - %22308 = OpLabel - %7720 = OpPhi %v3float %12104 %22307 %15294 %12822 - %23400 = OpVectorTimesScalar %v3float %7720 %float_0_5 - %9340 = OpFAdd %float %9339 %float_0_5 - %16236 = OpVectorShuffle %v3float %15527 %15527 0 1 2 - %22178 = OpFAdd %v3float %16236 %23400 - %15528 = OpVectorShuffle %v4float %15527 %22178 4 5 6 3 - %6435 = OpCompositeInsert %_struct_1017 %15528 %6434 0 - %24573 = OpVectorShuffle %v2float %1367 %1367 0 1 - %13208 = OpAccessChain %_ptr_Uniform_v4float %22044 %int_0 - %10346 = OpLoad %v4float %13208 - %8640 = OpVectorShuffle %v2float %10346 %10346 0 1 - %9199 = OpFMul %v2float %24573 %8640 - %18507 = OpFAdd %v2float %19927 %9199 - %7013 = OpVectorShuffle %v2float %17581 %17581 0 1 - %21060 = OpVectorShuffle %v2float %17581 %17581 2 3 - %13151 = OpExtInst %v2float %1 FClamp %18507 %7013 %21060 - %23586 = OpLoad %150 %5785 - %10341 = OpLoad %508 %5688 - %12153 = OpSampledImage %510 %23586 %10341 - %15373 = OpImageSampleExplicitLod %v4float %12153 %13151 Lod %float_0 - %15268 = OpCompositeExtract %float %15373 3 - %12118 = OpAccessChain %_ptr_Uniform_float %22044 %int_1 - %12974 = OpLoad %float %12118 - %15712 = OpFMul %float %15268 %12974 - %15281 = OpExtInst %float %1 FClamp %15712 %float_0 %float_1 - %22215 = OpAccessChain %_ptr_Uniform_v3float %12348 %int_5 - %11758 = OpLoad %v3float %22215 - %12105 = OpVectorTimesScalar %v3float %11758 %15281 - %15518 = OpLoad %150 %3312 - %24571 = OpLoad %508 %4646 - %12154 = OpSampledImage %510 %15518 %24571 - %17672 = OpImageSampleExplicitLod %v4float %12154 %13151 Lod %float_0 - %16940 = OpCompositeExtract %float %17672 1 - %14187 = OpFOrdGreaterThan %bool %16940 %float_0 - OpSelectionMerge %22309 DontFlatten - OpBranchConditional %14187 %12823 %22309 - %12823 = OpLabel - %13241 = OpLoad %150 %4862 - %19962 = OpLoad %508 %3594 - %12155 = OpSampledImage %510 %13241 %19962 - %15677 = OpImageSampleExplicitLod %v4float %12155 %13151 Lod %float_0 - %13868 = OpCompositeExtract %float %17672 1 - %12429 = OpCompositeExtract %float %17672 2 - %23302 = OpFMul %float %13868 %12429 - %17614 = OpExtInst %float %1 FClamp %23302 %float_0 %float_1 - %20293 = OpVectorShuffle %v3float %15677 %15677 0 1 2 - %11188 = OpVectorTimesScalar %v3float %20293 %17614 - %15295 = OpFAdd %v3float %12105 %11188 - OpBranch %22309 - %22309 = OpLabel - %7721 = OpPhi %v3float %12105 %22308 %15295 %12823 - %23401 = OpVectorTimesScalar %v3float %7721 %float_0_75 - %9341 = OpFAdd %float %9340 %float_0_75 - %16237 = OpVectorShuffle %v3float %15528 %15528 0 1 2 - %22179 = OpFAdd %v3float %16237 %23401 - %15529 = OpVectorShuffle %v4float %15528 %22179 4 5 6 3 - %6436 = OpCompositeInsert %_struct_1017 %15529 %6435 0 - %24574 = OpVectorShuffle %v2float %141 %141 0 1 - %13209 = OpAccessChain %_ptr_Uniform_v4float %22044 %int_0 - %10347 = OpLoad %v4float %13209 - %8641 = OpVectorShuffle %v2float %10347 %10347 0 1 - %9200 = OpFMul %v2float %24574 %8641 - %18508 = OpFAdd %v2float %19927 %9200 - %7014 = OpVectorShuffle %v2float %17581 %17581 0 1 - %21061 = OpVectorShuffle %v2float %17581 %17581 2 3 - %13152 = OpExtInst %v2float %1 FClamp %18508 %7014 %21061 - %23587 = OpLoad %150 %5785 - %10342 = OpLoad %508 %5688 - %12156 = OpSampledImage %510 %23587 %10342 - %15374 = OpImageSampleExplicitLod %v4float %12156 %13152 Lod %float_0 - %15269 = OpCompositeExtract %float %15374 3 - %12119 = OpAccessChain %_ptr_Uniform_float %22044 %int_1 - %12975 = OpLoad %float %12119 - %15713 = OpFMul %float %15269 %12975 - %15282 = OpExtInst %float %1 FClamp %15713 %float_0 %float_1 - %22216 = OpAccessChain %_ptr_Uniform_v3float %12348 %int_5 - %11759 = OpLoad %v3float %22216 - %12106 = OpVectorTimesScalar %v3float %11759 %15282 - %15519 = OpLoad %150 %3312 - %24575 = OpLoad %508 %4646 - %12157 = OpSampledImage %510 %15519 %24575 - %17673 = OpImageSampleExplicitLod %v4float %12157 %13152 Lod %float_0 - %16941 = OpCompositeExtract %float %17673 1 - %14188 = OpFOrdGreaterThan %bool %16941 %float_0 - OpSelectionMerge %22310 DontFlatten - OpBranchConditional %14188 %12824 %22310 - %12824 = OpLabel - %13242 = OpLoad %150 %4862 - %19963 = OpLoad %508 %3594 - %12158 = OpSampledImage %510 %13242 %19963 - %15678 = OpImageSampleExplicitLod %v4float %12158 %13152 Lod %float_0 - %13869 = OpCompositeExtract %float %17673 1 - %12430 = OpCompositeExtract %float %17673 2 - %23303 = OpFMul %float %13869 %12430 - %17615 = OpExtInst %float %1 FClamp %23303 %float_0 %float_1 - %20294 = OpVectorShuffle %v3float %15678 %15678 0 1 2 - %11189 = OpVectorTimesScalar %v3float %20294 %17615 - %15296 = OpFAdd %v3float %12106 %11189 - OpBranch %22310 - %22310 = OpLabel - %7722 = OpPhi %v3float %12106 %22309 %15296 %12824 - %23402 = OpVectorTimesScalar %v3float %7722 %float_0_5 - %9342 = OpFAdd %float %9341 %float_0_5 - %16238 = OpVectorShuffle %v3float %15529 %15529 0 1 2 - %22180 = OpFAdd %v3float %16238 %23402 - %15530 = OpVectorShuffle %v4float %15529 %22180 4 5 6 3 - %6437 = OpCompositeInsert %_struct_1017 %15530 %6436 0 - %24576 = OpVectorShuffle %v2float %38 %38 0 1 - %13210 = OpAccessChain %_ptr_Uniform_v4float %22044 %int_0 - %10348 = OpLoad %v4float %13210 - %8642 = OpVectorShuffle %v2float %10348 %10348 0 1 - %9201 = OpFMul %v2float %24576 %8642 - %18509 = OpFAdd %v2float %19927 %9201 - %7015 = OpVectorShuffle %v2float %17581 %17581 0 1 - %21062 = OpVectorShuffle %v2float %17581 %17581 2 3 - %13153 = OpExtInst %v2float %1 FClamp %18509 %7015 %21062 - %23588 = OpLoad %150 %5785 - %10349 = OpLoad %508 %5688 - %12159 = OpSampledImage %510 %23588 %10349 - %15375 = OpImageSampleExplicitLod %v4float %12159 %13153 Lod %float_0 - %15270 = OpCompositeExtract %float %15375 3 - %12120 = OpAccessChain %_ptr_Uniform_float %22044 %int_1 - %12976 = OpLoad %float %12120 - %15714 = OpFMul %float %15270 %12976 - %15283 = OpExtInst %float %1 FClamp %15714 %float_0 %float_1 - %22217 = OpAccessChain %_ptr_Uniform_v3float %12348 %int_5 - %11760 = OpLoad %v3float %22217 - %12107 = OpVectorTimesScalar %v3float %11760 %15283 - %15520 = OpLoad %150 %3312 - %24577 = OpLoad %508 %4646 - %12160 = OpSampledImage %510 %15520 %24577 - %17674 = OpImageSampleExplicitLod %v4float %12160 %13153 Lod %float_0 - %16942 = OpCompositeExtract %float %17674 1 - %14189 = OpFOrdGreaterThan %bool %16942 %float_0 - OpSelectionMerge %22311 DontFlatten - OpBranchConditional %14189 %12825 %22311 - %12825 = OpLabel - %13243 = OpLoad %150 %4862 - %19964 = OpLoad %508 %3594 - %12161 = OpSampledImage %510 %13243 %19964 - %15679 = OpImageSampleExplicitLod %v4float %12161 %13153 Lod %float_0 - %13870 = OpCompositeExtract %float %17674 1 - %12431 = OpCompositeExtract %float %17674 2 - %23304 = OpFMul %float %13870 %12431 - %17616 = OpExtInst %float %1 FClamp %23304 %float_0 %float_1 - %20295 = OpVectorShuffle %v3float %15679 %15679 0 1 2 - %11190 = OpVectorTimesScalar %v3float %20295 %17616 - %15297 = OpFAdd %v3float %12107 %11190 - OpBranch %22311 - %22311 = OpLabel - %7723 = OpPhi %v3float %12107 %22310 %15297 %12825 - %23403 = OpVectorTimesScalar %v3float %7723 %float_0_5 - %9343 = OpFAdd %float %9342 %float_0_5 - %16239 = OpVectorShuffle %v3float %15530 %15530 0 1 2 - %22181 = OpFAdd %v3float %16239 %23403 - %15531 = OpVectorShuffle %v4float %15530 %22181 4 5 6 3 - %6438 = OpCompositeInsert %_struct_1017 %15531 %6437 0 - %24578 = OpVectorShuffle %v2float %95 %95 0 1 - %13211 = OpAccessChain %_ptr_Uniform_v4float %22044 %int_0 - %10350 = OpLoad %v4float %13211 - %8643 = OpVectorShuffle %v2float %10350 %10350 0 1 - %9202 = OpFMul %v2float %24578 %8643 - %18510 = OpFAdd %v2float %19927 %9202 - %7016 = OpVectorShuffle %v2float %17581 %17581 0 1 - %21063 = OpVectorShuffle %v2float %17581 %17581 2 3 - %13154 = OpExtInst %v2float %1 FClamp %18510 %7016 %21063 - %23589 = OpLoad %150 %5785 - %10351 = OpLoad %508 %5688 - %12162 = OpSampledImage %510 %23589 %10351 - %15376 = OpImageSampleExplicitLod %v4float %12162 %13154 Lod %float_0 - %15271 = OpCompositeExtract %float %15376 3 - %12121 = OpAccessChain %_ptr_Uniform_float %22044 %int_1 - %12977 = OpLoad %float %12121 - %15715 = OpFMul %float %15271 %12977 - %15284 = OpExtInst %float %1 FClamp %15715 %float_0 %float_1 - %22218 = OpAccessChain %_ptr_Uniform_v3float %12348 %int_5 - %11761 = OpLoad %v3float %22218 - %12108 = OpVectorTimesScalar %v3float %11761 %15284 - %15521 = OpLoad %150 %3312 - %24579 = OpLoad %508 %4646 - %12163 = OpSampledImage %510 %15521 %24579 - %17675 = OpImageSampleExplicitLod %v4float %12163 %13154 Lod %float_0 - %16943 = OpCompositeExtract %float %17675 1 - %14190 = OpFOrdGreaterThan %bool %16943 %float_0 - OpSelectionMerge %22312 DontFlatten - OpBranchConditional %14190 %12826 %22312 - %12826 = OpLabel - %13244 = OpLoad %150 %4862 - %19965 = OpLoad %508 %3594 - %12164 = OpSampledImage %510 %13244 %19965 - %15680 = OpImageSampleExplicitLod %v4float %12164 %13154 Lod %float_0 - %13871 = OpCompositeExtract %float %17675 1 - %12432 = OpCompositeExtract %float %17675 2 - %23305 = OpFMul %float %13871 %12432 - %17617 = OpExtInst %float %1 FClamp %23305 %float_0 %float_1 - %20296 = OpVectorShuffle %v3float %15680 %15680 0 1 2 - %11191 = OpVectorTimesScalar %v3float %20296 %17617 - %15298 = OpFAdd %v3float %12108 %11191 - OpBranch %22312 - %22312 = OpLabel - %7724 = OpPhi %v3float %12108 %22311 %15298 %12826 - %23404 = OpVectorTimesScalar %v3float %7724 %float_0_75 - %9344 = OpFAdd %float %9343 %float_0_75 - %16240 = OpVectorShuffle %v3float %15531 %15531 0 1 2 - %22182 = OpFAdd %v3float %16240 %23404 - %15532 = OpVectorShuffle %v4float %15531 %22182 4 5 6 3 - %6439 = OpCompositeInsert %_struct_1017 %15532 %6438 0 - %24580 = OpVectorShuffle %v2float %626 %626 0 1 - %13212 = OpAccessChain %_ptr_Uniform_v4float %22044 %int_0 - %10352 = OpLoad %v4float %13212 - %8644 = OpVectorShuffle %v2float %10352 %10352 0 1 - %9203 = OpFMul %v2float %24580 %8644 - %18511 = OpFAdd %v2float %19927 %9203 - %7017 = OpVectorShuffle %v2float %17581 %17581 0 1 - %21064 = OpVectorShuffle %v2float %17581 %17581 2 3 - %13155 = OpExtInst %v2float %1 FClamp %18511 %7017 %21064 - %23590 = OpLoad %150 %5785 - %10353 = OpLoad %508 %5688 - %12165 = OpSampledImage %510 %23590 %10353 - %15377 = OpImageSampleExplicitLod %v4float %12165 %13155 Lod %float_0 - %15272 = OpCompositeExtract %float %15377 3 - %12122 = OpAccessChain %_ptr_Uniform_float %22044 %int_1 - %12978 = OpLoad %float %12122 - %15716 = OpFMul %float %15272 %12978 - %15285 = OpExtInst %float %1 FClamp %15716 %float_0 %float_1 - %22219 = OpAccessChain %_ptr_Uniform_v3float %12348 %int_5 - %11762 = OpLoad %v3float %22219 - %12109 = OpVectorTimesScalar %v3float %11762 %15285 - %15522 = OpLoad %150 %3312 - %24581 = OpLoad %508 %4646 - %12166 = OpSampledImage %510 %15522 %24581 - %17676 = OpImageSampleExplicitLod %v4float %12166 %13155 Lod %float_0 - %16944 = OpCompositeExtract %float %17676 1 - %14191 = OpFOrdGreaterThan %bool %16944 %float_0 - OpSelectionMerge %22313 DontFlatten - OpBranchConditional %14191 %12827 %22313 - %12827 = OpLabel - %13245 = OpLoad %150 %4862 - %19966 = OpLoad %508 %3594 - %12167 = OpSampledImage %510 %13245 %19966 - %15681 = OpImageSampleExplicitLod %v4float %12167 %13155 Lod %float_0 - %13872 = OpCompositeExtract %float %17676 1 - %12433 = OpCompositeExtract %float %17676 2 - %23306 = OpFMul %float %13872 %12433 - %17618 = OpExtInst %float %1 FClamp %23306 %float_0 %float_1 - %20297 = OpVectorShuffle %v3float %15681 %15681 0 1 2 - %11192 = OpVectorTimesScalar %v3float %20297 %17618 - %15299 = OpFAdd %v3float %12109 %11192 - OpBranch %22313 - %22313 = OpLabel - %7725 = OpPhi %v3float %12109 %22312 %15299 %12827 - %23405 = OpVectorTimesScalar %v3float %7725 %float_1 - %9345 = OpFAdd %float %9344 %float_1 - %16241 = OpVectorShuffle %v3float %15532 %15532 0 1 2 - %22183 = OpFAdd %v3float %16241 %23405 - %15533 = OpVectorShuffle %v4float %15532 %22183 4 5 6 3 - %6440 = OpCompositeInsert %_struct_1017 %15533 %6439 0 - %24582 = OpVectorShuffle %v2float %2411 %2411 0 1 - %13213 = OpAccessChain %_ptr_Uniform_v4float %22044 %int_0 - %10354 = OpLoad %v4float %13213 - %8645 = OpVectorShuffle %v2float %10354 %10354 0 1 - %9204 = OpFMul %v2float %24582 %8645 - %18512 = OpFAdd %v2float %19927 %9204 - %7018 = OpVectorShuffle %v2float %17581 %17581 0 1 - %21065 = OpVectorShuffle %v2float %17581 %17581 2 3 - %13156 = OpExtInst %v2float %1 FClamp %18512 %7018 %21065 - %23591 = OpLoad %150 %5785 - %10355 = OpLoad %508 %5688 - %12168 = OpSampledImage %510 %23591 %10355 - %15378 = OpImageSampleExplicitLod %v4float %12168 %13156 Lod %float_0 - %15273 = OpCompositeExtract %float %15378 3 - %12123 = OpAccessChain %_ptr_Uniform_float %22044 %int_1 - %12979 = OpLoad %float %12123 - %15717 = OpFMul %float %15273 %12979 - %15286 = OpExtInst %float %1 FClamp %15717 %float_0 %float_1 - %22220 = OpAccessChain %_ptr_Uniform_v3float %12348 %int_5 - %11763 = OpLoad %v3float %22220 - %12110 = OpVectorTimesScalar %v3float %11763 %15286 - %15523 = OpLoad %150 %3312 - %24583 = OpLoad %508 %4646 - %12169 = OpSampledImage %510 %15523 %24583 - %17677 = OpImageSampleExplicitLod %v4float %12169 %13156 Lod %float_0 - %16945 = OpCompositeExtract %float %17677 1 - %14192 = OpFOrdGreaterThan %bool %16945 %float_0 - OpSelectionMerge %22314 DontFlatten - OpBranchConditional %14192 %12828 %22314 - %12828 = OpLabel - %13246 = OpLoad %150 %4862 - %19967 = OpLoad %508 %3594 - %12170 = OpSampledImage %510 %13246 %19967 - %15682 = OpImageSampleExplicitLod %v4float %12170 %13156 Lod %float_0 - %13873 = OpCompositeExtract %float %17677 1 - %12434 = OpCompositeExtract %float %17677 2 - %23307 = OpFMul %float %13873 %12434 - %17619 = OpExtInst %float %1 FClamp %23307 %float_0 %float_1 - %20298 = OpVectorShuffle %v3float %15682 %15682 0 1 2 - %11193 = OpVectorTimesScalar %v3float %20298 %17619 - %15300 = OpFAdd %v3float %12110 %11193 - OpBranch %22314 - %22314 = OpLabel - %7726 = OpPhi %v3float %12110 %22313 %15300 %12828 - %23406 = OpVectorTimesScalar %v3float %7726 %float_0_75 - %9346 = OpFAdd %float %9345 %float_0_75 - %16242 = OpVectorShuffle %v3float %15533 %15533 0 1 2 - %22184 = OpFAdd %v3float %16242 %23406 - %15534 = OpVectorShuffle %v4float %15533 %22184 4 5 6 3 - %6441 = OpCompositeInsert %_struct_1017 %15534 %6440 0 - %24584 = OpVectorShuffle %v2float %2354 %2354 0 1 - %13214 = OpAccessChain %_ptr_Uniform_v4float %22044 %int_0 - %10356 = OpLoad %v4float %13214 - %8646 = OpVectorShuffle %v2float %10356 %10356 0 1 - %9205 = OpFMul %v2float %24584 %8646 - %18513 = OpFAdd %v2float %19927 %9205 - %7019 = OpVectorShuffle %v2float %17581 %17581 0 1 - %21066 = OpVectorShuffle %v2float %17581 %17581 2 3 - %13157 = OpExtInst %v2float %1 FClamp %18513 %7019 %21066 - %23592 = OpLoad %150 %5785 - %10357 = OpLoad %508 %5688 - %12171 = OpSampledImage %510 %23592 %10357 - %15379 = OpImageSampleExplicitLod %v4float %12171 %13157 Lod %float_0 - %15274 = OpCompositeExtract %float %15379 3 - %12124 = OpAccessChain %_ptr_Uniform_float %22044 %int_1 - %12980 = OpLoad %float %12124 - %15718 = OpFMul %float %15274 %12980 - %15287 = OpExtInst %float %1 FClamp %15718 %float_0 %float_1 - %22221 = OpAccessChain %_ptr_Uniform_v3float %12348 %int_5 - %11764 = OpLoad %v3float %22221 - %12111 = OpVectorTimesScalar %v3float %11764 %15287 - %15524 = OpLoad %150 %3312 - %24585 = OpLoad %508 %4646 - %12172 = OpSampledImage %510 %15524 %24585 - %17678 = OpImageSampleExplicitLod %v4float %12172 %13157 Lod %float_0 - %16946 = OpCompositeExtract %float %17678 1 - %14193 = OpFOrdGreaterThan %bool %16946 %float_0 - OpSelectionMerge %22315 DontFlatten - OpBranchConditional %14193 %12829 %22315 - %12829 = OpLabel - %13247 = OpLoad %150 %4862 - %19968 = OpLoad %508 %3594 - %12173 = OpSampledImage %510 %13247 %19968 - %15683 = OpImageSampleExplicitLod %v4float %12173 %13157 Lod %float_0 - %13874 = OpCompositeExtract %float %17678 1 - %12435 = OpCompositeExtract %float %17678 2 - %23308 = OpFMul %float %13874 %12435 - %17620 = OpExtInst %float %1 FClamp %23308 %float_0 %float_1 - %20299 = OpVectorShuffle %v3float %15683 %15683 0 1 2 - %11194 = OpVectorTimesScalar %v3float %20299 %17620 - %15301 = OpFAdd %v3float %12111 %11194 - OpBranch %22315 - %22315 = OpLabel - %7727 = OpPhi %v3float %12111 %22314 %15301 %12829 - %23407 = OpVectorTimesScalar %v3float %7727 %float_0_5 - %9347 = OpFAdd %float %9346 %float_0_5 - %16243 = OpVectorShuffle %v3float %15534 %15534 0 1 2 - %22185 = OpFAdd %v3float %16243 %23407 - %15535 = OpVectorShuffle %v4float %15534 %22185 4 5 6 3 - %6442 = OpCompositeInsert %_struct_1017 %15535 %6441 0 - %24586 = OpVectorShuffle %v2float %837 %837 0 1 - %13215 = OpAccessChain %_ptr_Uniform_v4float %22044 %int_0 - %10358 = OpLoad %v4float %13215 - %8647 = OpVectorShuffle %v2float %10358 %10358 0 1 - %9206 = OpFMul %v2float %24586 %8647 - %18514 = OpFAdd %v2float %19927 %9206 - %7020 = OpVectorShuffle %v2float %17581 %17581 0 1 - %21067 = OpVectorShuffle %v2float %17581 %17581 2 3 - %13158 = OpExtInst %v2float %1 FClamp %18514 %7020 %21067 - %23593 = OpLoad %150 %5785 - %10359 = OpLoad %508 %5688 - %12174 = OpSampledImage %510 %23593 %10359 - %15380 = OpImageSampleExplicitLod %v4float %12174 %13158 Lod %float_0 - %15275 = OpCompositeExtract %float %15380 3 - %12125 = OpAccessChain %_ptr_Uniform_float %22044 %int_1 - %12981 = OpLoad %float %12125 - %15719 = OpFMul %float %15275 %12981 - %15288 = OpExtInst %float %1 FClamp %15719 %float_0 %float_1 - %22222 = OpAccessChain %_ptr_Uniform_v3float %12348 %int_5 - %11765 = OpLoad %v3float %22222 - %12112 = OpVectorTimesScalar %v3float %11765 %15288 - %15525 = OpLoad %150 %3312 - %24587 = OpLoad %508 %4646 - %12175 = OpSampledImage %510 %15525 %24587 - %17679 = OpImageSampleExplicitLod %v4float %12175 %13158 Lod %float_0 - %16947 = OpCompositeExtract %float %17679 1 - %14194 = OpFOrdGreaterThan %bool %16947 %float_0 - OpSelectionMerge %22316 DontFlatten - OpBranchConditional %14194 %12830 %22316 - %12830 = OpLabel - %13248 = OpLoad %150 %4862 - %19969 = OpLoad %508 %3594 - %12176 = OpSampledImage %510 %13248 %19969 - %15684 = OpImageSampleExplicitLod %v4float %12176 %13158 Lod %float_0 - %13875 = OpCompositeExtract %float %17679 1 - %12436 = OpCompositeExtract %float %17679 2 - %23309 = OpFMul %float %13875 %12436 - %17621 = OpExtInst %float %1 FClamp %23309 %float_0 %float_1 - %20300 = OpVectorShuffle %v3float %15684 %15684 0 1 2 - %11195 = OpVectorTimesScalar %v3float %20300 %17621 - %15302 = OpFAdd %v3float %12112 %11195 - OpBranch %22316 - %22316 = OpLabel - %7728 = OpPhi %v3float %12112 %22315 %15302 %12830 - %23408 = OpVectorTimesScalar %v3float %7728 %float_0_5 - %9348 = OpFAdd %float %9347 %float_0_5 - %16244 = OpVectorShuffle %v3float %15535 %15535 0 1 2 - %22186 = OpFAdd %v3float %16244 %23408 - %15536 = OpVectorShuffle %v4float %15535 %22186 4 5 6 3 - %6443 = OpCompositeInsert %_struct_1017 %15536 %6442 0 - %24588 = OpVectorShuffle %v2float %1368 %1368 0 1 - %13216 = OpAccessChain %_ptr_Uniform_v4float %22044 %int_0 - %10360 = OpLoad %v4float %13216 - %8648 = OpVectorShuffle %v2float %10360 %10360 0 1 - %9207 = OpFMul %v2float %24588 %8648 - %18515 = OpFAdd %v2float %19927 %9207 - %7021 = OpVectorShuffle %v2float %17581 %17581 0 1 - %21068 = OpVectorShuffle %v2float %17581 %17581 2 3 - %13159 = OpExtInst %v2float %1 FClamp %18515 %7021 %21068 - %23594 = OpLoad %150 %5785 - %10361 = OpLoad %508 %5688 - %12177 = OpSampledImage %510 %23594 %10361 - %15381 = OpImageSampleExplicitLod %v4float %12177 %13159 Lod %float_0 - %15276 = OpCompositeExtract %float %15381 3 - %12126 = OpAccessChain %_ptr_Uniform_float %22044 %int_1 - %12982 = OpLoad %float %12126 - %15720 = OpFMul %float %15276 %12982 - %15289 = OpExtInst %float %1 FClamp %15720 %float_0 %float_1 - %22223 = OpAccessChain %_ptr_Uniform_v3float %12348 %int_5 - %11766 = OpLoad %v3float %22223 - %12113 = OpVectorTimesScalar %v3float %11766 %15289 - %15526 = OpLoad %150 %3312 - %24589 = OpLoad %508 %4646 - %12178 = OpSampledImage %510 %15526 %24589 - %17680 = OpImageSampleExplicitLod %v4float %12178 %13159 Lod %float_0 - %16948 = OpCompositeExtract %float %17680 1 - %14195 = OpFOrdGreaterThan %bool %16948 %float_0 - OpSelectionMerge %22317 DontFlatten - OpBranchConditional %14195 %12831 %22317 - %12831 = OpLabel - %13249 = OpLoad %150 %4862 - %19970 = OpLoad %508 %3594 - %12179 = OpSampledImage %510 %13249 %19970 - %15685 = OpImageSampleExplicitLod %v4float %12179 %13159 Lod %float_0 - %13876 = OpCompositeExtract %float %17680 1 - %12437 = OpCompositeExtract %float %17680 2 - %23310 = OpFMul %float %13876 %12437 - %17622 = OpExtInst %float %1 FClamp %23310 %float_0 %float_1 - %20301 = OpVectorShuffle %v3float %15685 %15685 0 1 2 - %11196 = OpVectorTimesScalar %v3float %20301 %17622 - %15303 = OpFAdd %v3float %12113 %11196 - OpBranch %22317 - %22317 = OpLabel - %7729 = OpPhi %v3float %12113 %22316 %15303 %12831 - %23409 = OpVectorTimesScalar %v3float %7729 %float_0_75 - %9349 = OpFAdd %float %9348 %float_0_75 - %16245 = OpVectorShuffle %v3float %15536 %15536 0 1 2 - %22187 = OpFAdd %v3float %16245 %23409 - %15537 = OpVectorShuffle %v4float %15536 %22187 4 5 6 3 - %6444 = OpCompositeInsert %_struct_1017 %15537 %6443 0 - %24590 = OpVectorShuffle %v2float %142 %142 0 1 - %13217 = OpAccessChain %_ptr_Uniform_v4float %22044 %int_0 - %10362 = OpLoad %v4float %13217 - %8649 = OpVectorShuffle %v2float %10362 %10362 0 1 - %9208 = OpFMul %v2float %24590 %8649 - %18516 = OpFAdd %v2float %19927 %9208 - %7022 = OpVectorShuffle %v2float %17581 %17581 0 1 - %21069 = OpVectorShuffle %v2float %17581 %17581 2 3 - %13160 = OpExtInst %v2float %1 FClamp %18516 %7022 %21069 - %23595 = OpLoad %150 %5785 - %10363 = OpLoad %508 %5688 - %12180 = OpSampledImage %510 %23595 %10363 - %15382 = OpImageSampleExplicitLod %v4float %12180 %13160 Lod %float_0 - %15277 = OpCompositeExtract %float %15382 3 - %12127 = OpAccessChain %_ptr_Uniform_float %22044 %int_1 - %12983 = OpLoad %float %12127 - %15721 = OpFMul %float %15277 %12983 - %15290 = OpExtInst %float %1 FClamp %15721 %float_0 %float_1 - %22224 = OpAccessChain %_ptr_Uniform_v3float %12348 %int_5 - %11767 = OpLoad %v3float %22224 - %12114 = OpVectorTimesScalar %v3float %11767 %15290 - %15538 = OpLoad %150 %3312 - %24591 = OpLoad %508 %4646 - %12181 = OpSampledImage %510 %15538 %24591 - %17681 = OpImageSampleExplicitLod %v4float %12181 %13160 Lod %float_0 - %16949 = OpCompositeExtract %float %17681 1 - %14196 = OpFOrdGreaterThan %bool %16949 %float_0 - OpSelectionMerge %22318 DontFlatten - OpBranchConditional %14196 %12832 %22318 - %12832 = OpLabel - %13250 = OpLoad %150 %4862 - %19971 = OpLoad %508 %3594 - %12182 = OpSampledImage %510 %13250 %19971 - %15686 = OpImageSampleExplicitLod %v4float %12182 %13160 Lod %float_0 - %13877 = OpCompositeExtract %float %17681 1 - %12438 = OpCompositeExtract %float %17681 2 - %23311 = OpFMul %float %13877 %12438 - %17623 = OpExtInst %float %1 FClamp %23311 %float_0 %float_1 - %20302 = OpVectorShuffle %v3float %15686 %15686 0 1 2 - %11197 = OpVectorTimesScalar %v3float %20302 %17623 - %15304 = OpFAdd %v3float %12114 %11197 - OpBranch %22318 - %22318 = OpLabel - %7730 = OpPhi %v3float %12114 %22317 %15304 %12832 - %23410 = OpVectorTimesScalar %v3float %7730 %float_0_5 - %9350 = OpFAdd %float %9349 %float_0_5 - %16246 = OpVectorShuffle %v3float %15537 %15537 0 1 2 - %22188 = OpFAdd %v3float %16246 %23410 - %15539 = OpVectorShuffle %v4float %15537 %22188 4 5 6 3 - %6445 = OpCompositeInsert %_struct_1017 %15539 %6444 0 - %24592 = OpVectorShuffle %v2float %1197 %1197 0 1 - %13218 = OpAccessChain %_ptr_Uniform_v4float %22044 %int_0 - %10364 = OpLoad %v4float %13218 - %8650 = OpVectorShuffle %v2float %10364 %10364 0 1 - %9209 = OpFMul %v2float %24592 %8650 - %18517 = OpFAdd %v2float %19927 %9209 - %7023 = OpVectorShuffle %v2float %17581 %17581 0 1 - %21070 = OpVectorShuffle %v2float %17581 %17581 2 3 - %13161 = OpExtInst %v2float %1 FClamp %18517 %7023 %21070 - %23596 = OpLoad %150 %5785 - %10365 = OpLoad %508 %5688 - %12183 = OpSampledImage %510 %23596 %10365 - %15383 = OpImageSampleExplicitLod %v4float %12183 %13161 Lod %float_0 - %15278 = OpCompositeExtract %float %15383 3 - %12128 = OpAccessChain %_ptr_Uniform_float %22044 %int_1 - %12984 = OpLoad %float %12128 - %15722 = OpFMul %float %15278 %12984 - %15291 = OpExtInst %float %1 FClamp %15722 %float_0 %float_1 - %22225 = OpAccessChain %_ptr_Uniform_v3float %12348 %int_5 - %11768 = OpLoad %v3float %22225 - %12115 = OpVectorTimesScalar %v3float %11768 %15291 - %15540 = OpLoad %150 %3312 - %24593 = OpLoad %508 %4646 - %12184 = OpSampledImage %510 %15540 %24593 - %17682 = OpImageSampleExplicitLod %v4float %12184 %13161 Lod %float_0 - %16950 = OpCompositeExtract %float %17682 1 - %14197 = OpFOrdGreaterThan %bool %16950 %float_0 - OpSelectionMerge %22319 DontFlatten - OpBranchConditional %14197 %12833 %22319 - %12833 = OpLabel - %13251 = OpLoad %150 %4862 - %19972 = OpLoad %508 %3594 - %12185 = OpSampledImage %510 %13251 %19972 - %15687 = OpImageSampleExplicitLod %v4float %12185 %13161 Lod %float_0 - %13878 = OpCompositeExtract %float %17682 1 - %12439 = OpCompositeExtract %float %17682 2 - %23312 = OpFMul %float %13878 %12439 - %17624 = OpExtInst %float %1 FClamp %23312 %float_0 %float_1 - %20303 = OpVectorShuffle %v3float %15687 %15687 0 1 2 - %11198 = OpVectorTimesScalar %v3float %20303 %17624 - %15305 = OpFAdd %v3float %12115 %11198 - OpBranch %22319 - %22319 = OpLabel - %7731 = OpPhi %v3float %12115 %22318 %15305 %12833 - %23411 = OpVectorTimesScalar %v3float %7731 %float_0_5 - %9351 = OpFAdd %float %9350 %float_0_5 - %16247 = OpVectorShuffle %v3float %15539 %15539 0 1 2 - %22189 = OpFAdd %v3float %16247 %23411 - %15541 = OpVectorShuffle %v4float %15539 %22189 4 5 6 3 - %6719 = OpCompositeInsert %_struct_1017 %15541 %6445 0 - %23412 = OpVectorShuffle %v3float %15541 %15541 0 1 2 - %10833 = OpCompositeConstruct %v3float %9351 %9351 %9351 - %13750 = OpFDiv %v3float %23412 %10833 - %24033 = OpVectorShuffle %v4float %15541 %13750 4 5 6 3 - %8636 = OpCompositeInsert %_struct_1017 %24033 %6719 0 - %16315 = OpCompositeInsert %_struct_1017 %float_1 %8636 0 3 - %11544 = OpCompositeExtract %v4float %16315 0 - OpStore %4317 %11544 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/geom/block-name-namespace.asm.geom b/third_party/spirv-cross/shaders/asm/geom/block-name-namespace.asm.geom deleted file mode 100644 index b3744a3032..0000000000 --- a/third_party/spirv-cross/shaders/asm/geom/block-name-namespace.asm.geom +++ /dev/null @@ -1,103 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 48 -; Schema: 0 - OpCapability Geometry - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Geometry %main "main" %_ %VertexOutput %vin - OpExecutionMode %main Triangles - OpExecutionMode %main Invocations 1 - OpExecutionMode %main OutputTriangleStrip - OpExecutionMode %main OutputVertices 4 - OpSource GLSL 450 - OpName %main "main" - OpName %VertexInput3 "VertexInput" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %_ "" - OpName %VertexInput "VertexInput" - OpMemberName %VertexInput 0 "a" - OpName %VertexInput4 "VertexInput" - OpName %VertexInput_0 "VertexInput" - OpMemberName %VertexInput_0 0 "b" - OpName %VertexInput2 "VertexInput" - OpName %VertexInput_1 "VertexInput" - OpMemberName %VertexInput_1 0 "vColor" - OpName %VertexOutput "VertexInput" - OpName %VertexInput_2 "VertexInput" - OpMemberName %VertexInput_2 0 "vColor" - OpName %vin "vin" - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - OpMemberDecorate %VertexInput 0 Offset 0 - OpDecorate %VertexInput Block - OpDecorate %VertexInput4 DescriptorSet 0 - OpDecorate %VertexInput4 Binding 0 - OpMemberDecorate %VertexInput_0 0 Offset 0 - OpDecorate %VertexInput_0 BufferBlock - OpDecorate %VertexInput2 DescriptorSet 0 - OpDecorate %VertexInput2 Binding 0 - OpDecorate %VertexInput_1 Block - OpDecorate %VertexOutput Location 0 - OpDecorate %VertexInput_2 Block - OpDecorate %vin Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Function_v4float = OpTypePointer Function %v4float - %float_1 = OpConstant %float 1 - %11 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 - %uint = OpTypeInt 32 0 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 -%_ptr_Output_gl_PerVertex = OpTypePointer Output %gl_PerVertex - %_ = OpVariable %_ptr_Output_gl_PerVertex Output - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%VertexInput = OpTypeStruct %v4float -%_ptr_Uniform_VertexInput = OpTypePointer Uniform %VertexInput -%VertexInput4 = OpVariable %_ptr_Uniform_VertexInput Uniform -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float -%VertexInput_0 = OpTypeStruct %v4float -%_ptr_Uniform_VertexInput_0 = OpTypePointer Uniform %VertexInput_0 -%VertexInput2 = OpVariable %_ptr_Uniform_VertexInput_0 Uniform -%_ptr_Output_v4float = OpTypePointer Output %v4float -%VertexInput_1 = OpTypeStruct %v4float -%_ptr_Output_VertexInput_1 = OpTypePointer Output %VertexInput_1 -%VertexOutput = OpVariable %_ptr_Output_VertexInput_1 Output -%VertexInput_2 = OpTypeStruct %v4float - %uint_3 = OpConstant %uint 3 -%_arr_VertexInput_2_uint_3 = OpTypeArray %VertexInput_2 %uint_3 -%_ptr_Input__arr_VertexInput_2_uint_3 = OpTypePointer Input %_arr_VertexInput_2_uint_3 - %vin = OpVariable %_ptr_Input__arr_VertexInput_2_uint_3 Input -%_ptr_Input_v4float = OpTypePointer Input %v4float - %main = OpFunction %void None %3 - %5 = OpLabel -%VertexInput3 = OpVariable %_ptr_Function_v4float Function - OpStore %VertexInput3 %11 - %20 = OpLoad %v4float %VertexInput3 - %25 = OpAccessChain %_ptr_Uniform_v4float %VertexInput4 %int_0 - %26 = OpLoad %v4float %25 - %27 = OpFAdd %v4float %20 %26 - %31 = OpAccessChain %_ptr_Uniform_v4float %VertexInput2 %int_0 - %32 = OpLoad %v4float %31 - %33 = OpFAdd %v4float %27 %32 - %35 = OpAccessChain %_ptr_Output_v4float %_ %int_0 - OpStore %35 %33 - %45 = OpAccessChain %_ptr_Input_v4float %vin %int_0 %int_0 - %46 = OpLoad %v4float %45 - %47 = OpAccessChain %_ptr_Output_v4float %VertexOutput %int_0 - OpStore %47 %46 - OpEmitVertex - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/geom/inout-split-access-chain-handle.asm.geom b/third_party/spirv-cross/shaders/asm/geom/inout-split-access-chain-handle.asm.geom deleted file mode 100644 index d011cc6967..0000000000 --- a/third_party/spirv-cross/shaders/asm/geom/inout-split-access-chain-handle.asm.geom +++ /dev/null @@ -1,90 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 3 -; Bound: 42 -; Schema: 0 - OpCapability Geometry - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Geometry %main "main" %gl_in %_ - OpExecutionMode %main Triangles - OpExecutionMode %main Invocations 1 - OpExecutionMode %main OutputTriangleStrip - OpExecutionMode %main OutputVertices 5 - OpSource GLSL 440 - OpName %main "main" - OpName %Data "Data" - OpMemberName %Data 0 "ApiPerspectivePosition" - OpName %Copy_struct_Data_vf41_3__ "Copy(struct-Data-vf41[3];" - OpName %inputStream "inputStream" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpName %gl_in "gl_in" - OpName %inputStream_0 "inputStream" - OpName %param "param" - OpName %gl_PerVertex_0 "gl_PerVertex" - OpMemberName %gl_PerVertex_0 0 "gl_Position" - OpMemberName %gl_PerVertex_0 1 "gl_PointSize" - OpMemberName %gl_PerVertex_0 2 "gl_ClipDistance" - OpName %_ "" - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpDecorate %gl_PerVertex Block - OpMemberDecorate %gl_PerVertex_0 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex_0 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex_0 2 BuiltIn ClipDistance - OpDecorate %gl_PerVertex_0 Block - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %Data = OpTypeStruct %v4float - %uint = OpTypeInt 32 0 - %uint_3 = OpConstant %uint 3 -%_arr_Data_uint_3 = OpTypeArray %Data %uint_3 -%_ptr_Function__Data = OpTypePointer Function %Data -%_ptr_Function__arr_Data_uint_3 = OpTypePointer Function %_arr_Data_uint_3 - %13 = OpTypeFunction %void %_ptr_Function__arr_Data_uint_3 - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 -%_arr_gl_PerVertex_uint_3 = OpTypeArray %gl_PerVertex %uint_3 -%_ptr_Input__arr_gl_PerVertex_uint_3 = OpTypePointer Input %_arr_gl_PerVertex_uint_3 - %gl_in = OpVariable %_ptr_Input__arr_gl_PerVertex_uint_3 Input -%_ptr_Input_v4float = OpTypePointer Input %v4float -%_ptr_Function_v4float = OpTypePointer Function %v4float -%gl_PerVertex_0 = OpTypeStruct %v4float %float %_arr_float_uint_1 -%_ptr_Output_gl_PerVertex_0 = OpTypePointer Output %gl_PerVertex_0 - %_ = OpVariable %_ptr_Output_gl_PerVertex_0 Output -%_ptr_Output_v4float = OpTypePointer Output %v4float - %main = OpFunction %void None %3 - %5 = OpLabel -%inputStream_0 = OpVariable %_ptr_Function__arr_Data_uint_3 Function - %param = OpVariable %_ptr_Function__arr_Data_uint_3 Function - %32 = OpLoad %_arr_Data_uint_3 %inputStream_0 - OpStore %param %32 - %33 = OpFunctionCall %void %Copy_struct_Data_vf41_3__ %param - %34 = OpLoad %_arr_Data_uint_3 %param - OpStore %inputStream_0 %34 - %59 = OpAccessChain %_ptr_Function__Data %inputStream_0 %int_0 - %38 = OpAccessChain %_ptr_Function_v4float %59 %int_0 - %39 = OpLoad %v4float %38 - %41 = OpAccessChain %_ptr_Output_v4float %_ %int_0 - OpStore %41 %39 - OpReturn - OpFunctionEnd -%Copy_struct_Data_vf41_3__ = OpFunction %void None %13 -%inputStream = OpFunctionParameter %_ptr_Function__arr_Data_uint_3 - %16 = OpLabel - %26 = OpAccessChain %_ptr_Input_v4float %gl_in %int_0 %int_0 - %27 = OpLoad %v4float %26 - %28 = OpAccessChain %_ptr_Function__Data %inputStream %int_0 - %29 = OpAccessChain %_ptr_Function_v4float %28 %int_0 - OpStore %29 %27 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/geom/split-access-chain-input.asm.geom b/third_party/spirv-cross/shaders/asm/geom/split-access-chain-input.asm.geom deleted file mode 100644 index 5e477fa33a..0000000000 --- a/third_party/spirv-cross/shaders/asm/geom/split-access-chain-input.asm.geom +++ /dev/null @@ -1,52 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 3 -; Bound: 23 -; Schema: 0 - OpCapability Geometry - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Geometry %main "main" %gl_in %position - OpExecutionMode %main Triangles - OpExecutionMode %main Invocations 1 - OpExecutionMode %main OutputTriangleStrip - OpExecutionMode %main OutputVertices 3 - OpSource GLSL 440 - OpName %main "main" - OpName %position "position" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpName %gl_in "gl_in" - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpDecorate %gl_PerVertex Block - OpDecorate %position BuiltIn Position - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Function_v4float = OpTypePointer Output %v4float - %uint = OpTypeInt 32 0 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 - %uint_3 = OpConstant %uint 3 -%_arr_gl_PerVertex_uint_3 = OpTypeArray %gl_PerVertex %uint_3 -%ptr_Input_gl_PerVertex = OpTypePointer Input %gl_PerVertex -%_ptr_Input__arr_gl_PerVertex_uint_3 = OpTypePointer Input %_arr_gl_PerVertex_uint_3 - %gl_in = OpVariable %_ptr_Input__arr_gl_PerVertex_uint_3 Input - %position = OpVariable %_ptr_Function_v4float Output - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_Input_v4float = OpTypePointer Input %v4float - %main = OpFunction %void None %3 - %5 = OpLabel - %21 = OpAccessChain %ptr_Input_gl_PerVertex %gl_in %int_0 - %22 = OpAccessChain %_ptr_Input_v4float %21 %int_0 - %23 = OpLoad %v4float %22 - OpStore %position %23 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/geom/unroll-glposition-load.asm.geom b/third_party/spirv-cross/shaders/asm/geom/unroll-glposition-load.asm.geom deleted file mode 100644 index 8c10de397b..0000000000 --- a/third_party/spirv-cross/shaders/asm/geom/unroll-glposition-load.asm.geom +++ /dev/null @@ -1,102 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 55 -; Schema: 0 - OpCapability Geometry - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Geometry %main "main" %OUT_pos %positions_1 - OpExecutionMode %main Triangles - OpExecutionMode %main Invocations 1 - OpExecutionMode %main OutputTriangleStrip - OpExecutionMode %main OutputVertices 3 - OpSource HLSL 500 - OpName %main "main" - OpName %SceneOut "SceneOut" - OpMemberName %SceneOut 0 "pos" - OpName %_main_vf4_3__struct_SceneOut_vf41_ "@main(vf4[3];struct-SceneOut-vf41;" - OpName %positions "positions" - OpName %OUT "OUT" - OpName %i "i" - OpName %o "o" - OpName %OUT_pos "OUT.pos" - OpName %positions_0 "positions" - OpName %positions_1 "positions" - OpName %OUT_0 "OUT" - OpName %param "param" - OpName %param_0 "param" - OpDecorate %OUT_pos BuiltIn Position - OpDecorate %positions_1 BuiltIn Position - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %uint = OpTypeInt 32 0 - %uint_3 = OpConstant %uint 3 -%_arr_v4float_uint_3 = OpTypeArray %v4float %uint_3 -%_ptr_Function__arr_v4float_uint_3 = OpTypePointer Function %_arr_v4float_uint_3 - %SceneOut = OpTypeStruct %v4float -%_ptr_Function_SceneOut = OpTypePointer Function %SceneOut - %14 = OpTypeFunction %void %_ptr_Function__arr_v4float_uint_3 %_ptr_Function_SceneOut - %int = OpTypeInt 32 1 -%_ptr_Function_int = OpTypePointer Function %int - %int_0 = OpConstant %int 0 - %int_3 = OpConstant %int 3 - %bool = OpTypeBool -%_ptr_Function_v4float = OpTypePointer Function %v4float -%_ptr_Output_v4float = OpTypePointer Output %v4float - %OUT_pos = OpVariable %_ptr_Output_v4float Output - %int_1 = OpConstant %int 1 -%_ptr_Input__arr_v4float_uint_3 = OpTypePointer Input %_arr_v4float_uint_3 -%positions_1 = OpVariable %_ptr_Input__arr_v4float_uint_3 Input - %main = OpFunction %void None %3 - %5 = OpLabel -%positions_0 = OpVariable %_ptr_Function__arr_v4float_uint_3 Function - %OUT_0 = OpVariable %_ptr_Function_SceneOut Function - %param = OpVariable %_ptr_Function__arr_v4float_uint_3 Function - %param_0 = OpVariable %_ptr_Function_SceneOut Function - %48 = OpLoad %_arr_v4float_uint_3 %positions_1 - OpStore %positions_0 %48 - %51 = OpLoad %_arr_v4float_uint_3 %positions_0 - OpStore %param %51 - %53 = OpFunctionCall %void %_main_vf4_3__struct_SceneOut_vf41_ %param %param_0 - %54 = OpLoad %SceneOut %param_0 - OpStore %OUT_0 %54 - OpReturn - OpFunctionEnd -%_main_vf4_3__struct_SceneOut_vf41_ = OpFunction %void None %14 - %positions = OpFunctionParameter %_ptr_Function__arr_v4float_uint_3 - %OUT = OpFunctionParameter %_ptr_Function_SceneOut - %18 = OpLabel - %i = OpVariable %_ptr_Function_int Function - %o = OpVariable %_ptr_Function_SceneOut Function - OpStore %i %int_0 - OpBranch %23 - %23 = OpLabel - OpLoopMerge %25 %26 None - OpBranch %27 - %27 = OpLabel - %28 = OpLoad %int %i - %31 = OpSLessThan %bool %28 %int_3 - OpBranchConditional %31 %24 %25 - %24 = OpLabel - %33 = OpLoad %int %i - %35 = OpAccessChain %_ptr_Function_v4float %positions %33 - %36 = OpLoad %v4float %35 - %37 = OpAccessChain %_ptr_Function_v4float %o %int_0 - OpStore %37 %36 - %40 = OpAccessChain %_ptr_Function_v4float %o %int_0 - %41 = OpLoad %v4float %40 - OpStore %OUT_pos %41 - OpEmitVertex - OpBranch %26 - %26 = OpLabel - %42 = OpLoad %int %i - %44 = OpIAdd %int %42 %int_1 - OpStore %i %44 - OpBranch %23 - %25 = OpLabel - OpEndPrimitive - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/tese/unroll-input-array-load.asm.tese b/third_party/spirv-cross/shaders/asm/tese/unroll-input-array-load.asm.tese deleted file mode 100644 index 960b8fa2de..0000000000 --- a/third_party/spirv-cross/shaders/asm/tese/unroll-input-array-load.asm.tese +++ /dev/null @@ -1,131 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 79 -; Schema: 0 - OpCapability Tessellation - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint TessellationEvaluation %main "main" %input_foo %input_bar %uv_1 %CPData_1 %_entryPointOutput_pos - OpExecutionMode %main Quads - OpSource HLSL 500 - OpName %main "main" - OpName %HS_INPUT "HS_INPUT" - OpMemberName %HS_INPUT 0 "foo" - OpMemberName %HS_INPUT 1 "bar" - OpName %ControlPoint "ControlPoint" - OpMemberName %ControlPoint 0 "baz" - OpName %DS_OUTPUT "DS_OUTPUT" - OpMemberName %DS_OUTPUT 0 "pos" - OpName %_main_struct_HS_INPUT_vf4_vf41_vf2_struct_ControlPoint_vf41_4__ "@main(struct-HS_INPUT-vf4-vf41;vf2;struct-ControlPoint-vf41[4];" - OpName %input "input" - OpName %uv "uv" - OpName %CPData "CPData" - OpName %o "o" - OpName %input_0 "input" - OpName %input_foo "input.foo" - OpName %input_bar "input.bar" - OpName %uv_0 "uv" - OpName %uv_1 "uv" - OpName %CPData_0 "CPData" - OpName %CPData_1 "CPData" - OpName %_entryPointOutput_pos "@entryPointOutput.pos" - OpName %param "param" - OpName %param_0 "param" - OpName %param_1 "param" - OpDecorate %input_foo Patch - OpDecorate %input_foo Location 0 - OpDecorate %input_bar Patch - OpDecorate %input_bar Location 1 - OpDecorate %uv_1 Patch - OpDecorate %uv_1 BuiltIn TessCoord - OpDecorate %CPData_1 Location 2 - OpDecorate %_entryPointOutput_pos BuiltIn Position - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %HS_INPUT = OpTypeStruct %v4float %v4float -%_ptr_Function_HS_INPUT = OpTypePointer Function %HS_INPUT - %v2float = OpTypeVector %float 2 -%_ptr_Function_v2float = OpTypePointer Function %v2float -%ControlPoint = OpTypeStruct %v4float - %uint = OpTypeInt 32 0 - %uint_4 = OpConstant %uint 4 -%_arr_ControlPoint_uint_4 = OpTypeArray %ControlPoint %uint_4 -%_ptr_Function__arr_ControlPoint_uint_4 = OpTypePointer Function %_arr_ControlPoint_uint_4 - %DS_OUTPUT = OpTypeStruct %v4float - %18 = OpTypeFunction %DS_OUTPUT %_ptr_Function_HS_INPUT %_ptr_Function_v2float %_ptr_Function__arr_ControlPoint_uint_4 -%_ptr_Function_DS_OUTPUT = OpTypePointer Function %DS_OUTPUT - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_Function_v4float = OpTypePointer Function %v4float - %int_1 = OpConstant %int 1 - %int_3 = OpConstant %int 3 -%_ptr_Input_v4float = OpTypePointer Input %v4float - %input_foo = OpVariable %_ptr_Input_v4float Input - %input_bar = OpVariable %_ptr_Input_v4float Input - %v3float = OpTypeVector %float 3 -%_ptr_Input_v3float = OpTypePointer Input %v3float - %uv_1 = OpVariable %_ptr_Input_v3float Input -%_ptr_Input__arr_ControlPoint_uint_4 = OpTypePointer Input %_arr_ControlPoint_uint_4 - %CPData_1 = OpVariable %_ptr_Input__arr_ControlPoint_uint_4 Input -%_ptr_Output_v4float = OpTypePointer Output %v4float -%_entryPointOutput_pos = OpVariable %_ptr_Output_v4float Output - %main = OpFunction %void None %3 - %5 = OpLabel - %input_0 = OpVariable %_ptr_Function_HS_INPUT Function - %uv_0 = OpVariable %_ptr_Function_v2float Function - %CPData_0 = OpVariable %_ptr_Function__arr_ControlPoint_uint_4 Function - %param = OpVariable %_ptr_Function_HS_INPUT Function - %param_0 = OpVariable %_ptr_Function_v2float Function - %param_1 = OpVariable %_ptr_Function__arr_ControlPoint_uint_4 Function - %52 = OpLoad %v4float %input_foo - %53 = OpAccessChain %_ptr_Function_v4float %input_0 %int_0 - OpStore %53 %52 - %55 = OpLoad %v4float %input_bar - %56 = OpAccessChain %_ptr_Function_v4float %input_0 %int_1 - OpStore %56 %55 - %61 = OpLoad %v3float %uv_1 - %62 = OpCompositeExtract %float %61 0 - %63 = OpCompositeExtract %float %61 1 - %64 = OpCompositeConstruct %v2float %62 %63 - OpStore %uv_0 %64 - %68 = OpLoad %_arr_ControlPoint_uint_4 %CPData_1 - OpStore %CPData_0 %68 - %72 = OpLoad %HS_INPUT %input_0 - OpStore %param %72 - %74 = OpLoad %v2float %uv_0 - OpStore %param_0 %74 - %76 = OpLoad %_arr_ControlPoint_uint_4 %CPData_0 - OpStore %param_1 %76 - %77 = OpFunctionCall %DS_OUTPUT %_main_struct_HS_INPUT_vf4_vf41_vf2_struct_ControlPoint_vf41_4__ %param %param_0 %param_1 - %78 = OpCompositeExtract %v4float %77 0 - OpStore %_entryPointOutput_pos %78 - OpReturn - OpFunctionEnd -%_main_struct_HS_INPUT_vf4_vf41_vf2_struct_ControlPoint_vf41_4__ = OpFunction %DS_OUTPUT None %18 - %input = OpFunctionParameter %_ptr_Function_HS_INPUT - %uv = OpFunctionParameter %_ptr_Function_v2float - %CPData = OpFunctionParameter %_ptr_Function__arr_ControlPoint_uint_4 - %23 = OpLabel - %o = OpVariable %_ptr_Function_DS_OUTPUT Function - %29 = OpAccessChain %_ptr_Function_v4float %input %int_0 - %30 = OpLoad %v4float %29 - %32 = OpAccessChain %_ptr_Function_v4float %input %int_1 - %33 = OpLoad %v4float %32 - %34 = OpFAdd %v4float %30 %33 - %35 = OpLoad %v2float %uv - %36 = OpVectorShuffle %v4float %35 %35 0 1 0 1 - %37 = OpFAdd %v4float %34 %36 - %38 = OpAccessChain %_ptr_Function_v4float %CPData %int_0 %int_0 - %39 = OpLoad %v4float %38 - %40 = OpFAdd %v4float %37 %39 - %42 = OpAccessChain %_ptr_Function_v4float %CPData %int_3 %int_0 - %43 = OpLoad %v4float %42 - %44 = OpFAdd %v4float %40 %43 - %45 = OpAccessChain %_ptr_Function_v4float %o %int_0 - OpStore %45 %44 - %46 = OpLoad %DS_OUTPUT %o - OpReturnValue %46 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/vert/empty-io.asm.vert b/third_party/spirv-cross/shaders/asm/vert/empty-io.asm.vert deleted file mode 100644 index 0ba6cb7963..0000000000 --- a/third_party/spirv-cross/shaders/asm/vert/empty-io.asm.vert +++ /dev/null @@ -1,70 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 40 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %main "main" %position %_entryPointOutput_position %_entryPointOutput - OpName %main "main" - OpName %VSInput "VSInput" - OpMemberName %VSInput 0 "position" - OpName %VSOutput "VSOutput" - OpMemberName %VSOutput 0 "position" - OpName %_main_struct_VSInput_vf41_ "@main(struct-VSInput-vf41;" - OpName %_input "_input" - OpName %_out "_out" - OpName %_input_0 "_input" - OpName %position "position" - OpName %_entryPointOutput_position "@entryPointOutput_position" - OpName %param "param" - OpName %VSOutput_0 "VSOutput" - OpName %_entryPointOutput "@entryPointOutput" - OpDecorate %position Location 0 - OpDecorate %_entryPointOutput_position BuiltIn Position - OpDecorate %_entryPointOutput Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %VSInput = OpTypeStruct %v4float -%_ptr_Function_VSInput = OpTypePointer Function %VSInput - %VSOutput = OpTypeStruct %v4float - %11 = OpTypeFunction %VSOutput %_ptr_Function_VSInput -%_ptr_Function_VSOutput = OpTypePointer Function %VSOutput - %int = OpTypeInt 32 1 - %18 = OpConstant %int 0 -%_ptr_Function_v4float = OpTypePointer Function %v4float -%_ptr_Input_v4float = OpTypePointer Input %v4float - %position = OpVariable %_ptr_Input_v4float Input -%_ptr_Output_v4float = OpTypePointer Output %v4float -%_entryPointOutput_position = OpVariable %_ptr_Output_v4float Output - %VSOutput_0 = OpTypeStruct -%_ptr_Output_VSOutput_0 = OpTypePointer Output %VSOutput_0 -%_entryPointOutput = OpVariable %_ptr_Output_VSOutput_0 Output - %main = OpFunction %void None %3 - %5 = OpLabel - %_input_0 = OpVariable %_ptr_Function_VSInput Function - %param = OpVariable %_ptr_Function_VSInput Function - %29 = OpLoad %v4float %position - %30 = OpAccessChain %_ptr_Function_v4float %_input_0 %18 - OpStore %30 %29 - %34 = OpLoad %VSInput %_input_0 - OpStore %param %34 - %35 = OpFunctionCall %VSOutput %_main_struct_VSInput_vf41_ %param - %36 = OpCompositeExtract %v4float %35 0 - OpStore %_entryPointOutput_position %36 - OpReturn - OpFunctionEnd -%_main_struct_VSInput_vf41_ = OpFunction %VSOutput None %11 - %_input = OpFunctionParameter %_ptr_Function_VSInput - %14 = OpLabel - %_out = OpVariable %_ptr_Function_VSOutput Function - %20 = OpAccessChain %_ptr_Function_v4float %_input %18 - %21 = OpLoad %v4float %20 - %22 = OpAccessChain %_ptr_Function_v4float %_out %18 - OpStore %22 %21 - %23 = OpLoad %VSOutput %_out - OpReturnValue %23 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/vert/extract-transposed-matrix-from-struct.asm.vert b/third_party/spirv-cross/shaders/asm/vert/extract-transposed-matrix-from-struct.asm.vert deleted file mode 100644 index 89edeaa731..0000000000 --- a/third_party/spirv-cross/shaders/asm/vert/extract-transposed-matrix-from-struct.asm.vert +++ /dev/null @@ -1,141 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 79 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %VS "main" %PosL_1 %instanceID_1 %_entryPointOutput_Position %_entryPointOutput_Color - OpSource HLSL 500 - OpName %VS "VS" - OpName %V2F "V2F" - OpMemberName %V2F 0 "Position" - OpMemberName %V2F 1 "Color" - OpName %_VS_vf3_u1_ "@VS(vf3;u1;" - OpName %PosL "PosL" - OpName %instanceID "instanceID" - OpName %InstanceData "InstanceData" - OpMemberName %InstanceData 0 "MATRIX_MVP" - OpMemberName %InstanceData 1 "Color" - OpName %instData "instData" - OpName %InstanceData_0 "InstanceData" - OpMemberName %InstanceData_0 0 "MATRIX_MVP" - OpMemberName %InstanceData_0 1 "Color" - OpName %gInstanceData "gInstanceData" - OpMemberName %gInstanceData 0 "@data" - OpName %gInstanceData_0 "gInstanceData" - OpName %v2f "v2f" - OpName %PosL_0 "PosL" - OpName %PosL_1 "PosL" - OpName %instanceID_0 "instanceID" - OpName %instanceID_1 "instanceID" - OpName %flattenTemp "flattenTemp" - OpName %param "param" - OpName %param_0 "param" - OpName %_entryPointOutput_Position "@entryPointOutput.Position" - OpName %_entryPointOutput_Color "@entryPointOutput.Color" - OpMemberDecorate %InstanceData_0 0 RowMajor - OpMemberDecorate %InstanceData_0 0 Offset 0 - OpMemberDecorate %InstanceData_0 0 MatrixStride 16 - OpMemberDecorate %InstanceData_0 1 Offset 64 - OpDecorate %_runtimearr_InstanceData_0 ArrayStride 80 - OpMemberDecorate %gInstanceData 0 NonWritable - OpMemberDecorate %gInstanceData 0 Offset 0 - OpDecorate %gInstanceData BufferBlock - OpDecorate %gInstanceData_0 DescriptorSet 1 - OpDecorate %gInstanceData_0 Binding 0 - OpDecorate %PosL_1 Location 0 - OpDecorate %instanceID_1 BuiltIn InstanceIndex - OpDecorate %_entryPointOutput_Position BuiltIn Position - OpDecorate %_entryPointOutput_Color Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v3float = OpTypeVector %float 3 -%_ptr_Function_v3float = OpTypePointer Function %v3float - %uint = OpTypeInt 32 0 -%_ptr_Function_uint = OpTypePointer Function %uint - %v4float = OpTypeVector %float 4 - %V2F = OpTypeStruct %v4float %v4float - %13 = OpTypeFunction %V2F %_ptr_Function_v3float %_ptr_Function_uint -%mat4v4float = OpTypeMatrix %v4float 4 -%InstanceData = OpTypeStruct %mat4v4float %v4float -%_ptr_Function_InstanceData = OpTypePointer Function %InstanceData -%InstanceData_0 = OpTypeStruct %mat4v4float %v4float -%_runtimearr_InstanceData_0 = OpTypeRuntimeArray %InstanceData_0 -%gInstanceData = OpTypeStruct %_runtimearr_InstanceData_0 -%_ptr_Uniform_gInstanceData = OpTypePointer Uniform %gInstanceData -%gInstanceData_0 = OpVariable %_ptr_Uniform_gInstanceData Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_Uniform_InstanceData_0 = OpTypePointer Uniform %InstanceData_0 -%_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float - %int_1 = OpConstant %int 1 -%_ptr_Function_v4float = OpTypePointer Function %v4float -%_ptr_Function_V2F = OpTypePointer Function %V2F - %float_1 = OpConstant %float 1 -%_ptr_Input_v3float = OpTypePointer Input %v3float - %PosL_1 = OpVariable %_ptr_Input_v3float Input -%_ptr_Input_uint = OpTypePointer Input %uint -%instanceID_1 = OpVariable %_ptr_Input_uint Input -%_ptr_Output_v4float = OpTypePointer Output %v4float -%_entryPointOutput_Position = OpVariable %_ptr_Output_v4float Output -%_entryPointOutput_Color = OpVariable %_ptr_Output_v4float Output - %VS = OpFunction %void None %3 - %5 = OpLabel - %PosL_0 = OpVariable %_ptr_Function_v3float Function -%instanceID_0 = OpVariable %_ptr_Function_uint Function -%flattenTemp = OpVariable %_ptr_Function_V2F Function - %param = OpVariable %_ptr_Function_v3float Function - %param_0 = OpVariable %_ptr_Function_uint Function - %61 = OpLoad %v3float %PosL_1 - OpStore %PosL_0 %61 - %65 = OpLoad %uint %instanceID_1 - OpStore %instanceID_0 %65 - %68 = OpLoad %v3float %PosL_0 - OpStore %param %68 - %70 = OpLoad %uint %instanceID_0 - OpStore %param_0 %70 - %71 = OpFunctionCall %V2F %_VS_vf3_u1_ %param %param_0 - OpStore %flattenTemp %71 - %74 = OpAccessChain %_ptr_Function_v4float %flattenTemp %int_0 - %75 = OpLoad %v4float %74 - OpStore %_entryPointOutput_Position %75 - %77 = OpAccessChain %_ptr_Function_v4float %flattenTemp %int_1 - %78 = OpLoad %v4float %77 - OpStore %_entryPointOutput_Color %78 - OpReturn - OpFunctionEnd -%_VS_vf3_u1_ = OpFunction %V2F None %13 - %PosL = OpFunctionParameter %_ptr_Function_v3float - %instanceID = OpFunctionParameter %_ptr_Function_uint - %17 = OpLabel - %instData = OpVariable %_ptr_Function_InstanceData Function - %v2f = OpVariable %_ptr_Function_V2F Function - %29 = OpLoad %uint %instanceID - %31 = OpAccessChain %_ptr_Uniform_InstanceData_0 %gInstanceData_0 %int_0 %29 - %32 = OpLoad %InstanceData_0 %31 - %33 = OpCompositeExtract %mat4v4float %32 0 - %35 = OpAccessChain %_ptr_Function_mat4v4float %instData %int_0 - OpStore %35 %33 - %36 = OpCompositeExtract %v4float %32 1 - %39 = OpAccessChain %_ptr_Function_v4float %instData %int_1 - OpStore %39 %36 - %42 = OpAccessChain %_ptr_Function_mat4v4float %instData %int_0 - %43 = OpLoad %mat4v4float %42 - %44 = OpLoad %v3float %PosL - %46 = OpCompositeExtract %float %44 0 - %47 = OpCompositeExtract %float %44 1 - %48 = OpCompositeExtract %float %44 2 - %49 = OpCompositeConstruct %v4float %46 %47 %48 %float_1 - %50 = OpMatrixTimesVector %v4float %43 %49 - %51 = OpAccessChain %_ptr_Function_v4float %v2f %int_0 - OpStore %51 %50 - %52 = OpAccessChain %_ptr_Function_v4float %instData %int_1 - %53 = OpLoad %v4float %52 - %54 = OpAccessChain %_ptr_Function_v4float %v2f %int_1 - OpStore %54 %53 - %55 = OpLoad %V2F %v2f - OpReturnValue %55 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/vert/global-builtin.sso.asm.vert b/third_party/spirv-cross/shaders/asm/vert/global-builtin.sso.asm.vert deleted file mode 100644 index d7306deb24..0000000000 --- a/third_party/spirv-cross/shaders/asm/vert/global-builtin.sso.asm.vert +++ /dev/null @@ -1,68 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 40 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %main "main" %_entryPointOutput %_entryPointOutput_pos - OpSource HLSL 500 - OpName %main "main" - OpName %VSOut "VSOut" - OpMemberName %VSOut 0 "a" - OpMemberName %VSOut 1 "pos" - OpName %_main_ "@main(" - OpName %vout "vout" - OpName %flattenTemp "flattenTemp" - OpName %VSOut_0 "VSOut" - OpMemberName %VSOut_0 0 "a" - OpName %_entryPointOutput "@entryPointOutput" - OpName %_entryPointOutput_pos "@entryPointOutput_pos" - OpDecorate %_entryPointOutput Location 0 - OpDecorate %_entryPointOutput_pos BuiltIn Position - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %VSOut = OpTypeStruct %float %v4float - %9 = OpTypeFunction %VSOut -%_ptr_Function_VSOut = OpTypePointer Function %VSOut - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %float_40 = OpConstant %float 40 -%_ptr_Function_float = OpTypePointer Function %float - %int_1 = OpConstant %int 1 - %float_1 = OpConstant %float 1 - %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Function_v4float = OpTypePointer Function %v4float - %VSOut_0 = OpTypeStruct %float -%_ptr_Output_VSOut_0 = OpTypePointer Output %VSOut_0 -%_entryPointOutput = OpVariable %_ptr_Output_VSOut_0 Output -%_ptr_Output_float = OpTypePointer Output %float -%_ptr_Output_v4float = OpTypePointer Output %v4float -%_entryPointOutput_pos = OpVariable %_ptr_Output_v4float Output - %main = OpFunction %void None %3 - %5 = OpLabel -%flattenTemp = OpVariable %_ptr_Function_VSOut Function - %28 = OpFunctionCall %VSOut %_main_ - OpStore %flattenTemp %28 - %32 = OpAccessChain %_ptr_Function_float %flattenTemp %int_0 - %33 = OpLoad %float %32 - %35 = OpAccessChain %_ptr_Output_float %_entryPointOutput %int_0 - OpStore %35 %33 - %38 = OpAccessChain %_ptr_Function_v4float %flattenTemp %int_1 - %39 = OpLoad %v4float %38 - OpStore %_entryPointOutput_pos %39 - OpReturn - OpFunctionEnd - %_main_ = OpFunction %VSOut None %9 - %11 = OpLabel - %vout = OpVariable %_ptr_Function_VSOut Function - %18 = OpAccessChain %_ptr_Function_float %vout %int_0 - OpStore %18 %float_40 - %23 = OpAccessChain %_ptr_Function_v4float %vout %int_1 - OpStore %23 %21 - %24 = OpLoad %VSOut %vout - OpReturnValue %24 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/vert/invariant-block.asm.vert b/third_party/spirv-cross/shaders/asm/vert/invariant-block.asm.vert deleted file mode 100644 index 5984935c7b..0000000000 --- a/third_party/spirv-cross/shaders/asm/vert/invariant-block.asm.vert +++ /dev/null @@ -1,44 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 3 -; Bound: 20 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %main "main" %_ - OpSource GLSL 450 - OpName %main "main" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %_ "" - OpMemberDecorate %gl_PerVertex 0 Invariant - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %uint = OpTypeInt 32 0 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 -%_ptr_Output_gl_PerVertex = OpTypePointer Output %gl_PerVertex - %_ = OpVariable %_ptr_Output_gl_PerVertex Output - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %float_1 = OpConstant %float 1 - %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %main = OpFunction %void None %3 - %5 = OpLabel - %19 = OpAccessChain %_ptr_Output_v4float %_ %int_0 - OpStore %19 %17 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/vert/invariant-block.sso.asm.vert b/third_party/spirv-cross/shaders/asm/vert/invariant-block.sso.asm.vert deleted file mode 100644 index 5984935c7b..0000000000 --- a/third_party/spirv-cross/shaders/asm/vert/invariant-block.sso.asm.vert +++ /dev/null @@ -1,44 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 3 -; Bound: 20 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %main "main" %_ - OpSource GLSL 450 - OpName %main "main" - OpName %gl_PerVertex "gl_PerVertex" - OpMemberName %gl_PerVertex 0 "gl_Position" - OpMemberName %gl_PerVertex 1 "gl_PointSize" - OpMemberName %gl_PerVertex 2 "gl_ClipDistance" - OpMemberName %gl_PerVertex 3 "gl_CullDistance" - OpName %_ "" - OpMemberDecorate %gl_PerVertex 0 Invariant - OpMemberDecorate %gl_PerVertex 0 BuiltIn Position - OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize - OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance - OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance - OpDecorate %gl_PerVertex Block - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %uint = OpTypeInt 32 0 - %uint_1 = OpConstant %uint 1 -%_arr_float_uint_1 = OpTypeArray %float %uint_1 -%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 -%_ptr_Output_gl_PerVertex = OpTypePointer Output %gl_PerVertex - %_ = OpVariable %_ptr_Output_gl_PerVertex Output - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %float_1 = OpConstant %float 1 - %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %main = OpFunction %void None %3 - %5 = OpLabel - %19 = OpAccessChain %_ptr_Output_v4float %_ %int_0 - OpStore %19 %17 - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/vert/invariant.asm.vert b/third_party/spirv-cross/shaders/asm/vert/invariant.asm.vert deleted file mode 100644 index c0d381ee23..0000000000 --- a/third_party/spirv-cross/shaders/asm/vert/invariant.asm.vert +++ /dev/null @@ -1,34 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 3 -; Bound: 18 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %main "main" %_entryPointOutput - OpSource HLSL 500 - OpName %main "main" - OpName %_main_ "@main(" - OpName %_entryPointOutput "@entryPointOutput" - OpDecorate %_entryPointOutput Invariant - OpDecorate %_entryPointOutput BuiltIn Position - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %8 = OpTypeFunction %v4float - %float_1 = OpConstant %float 1 - %12 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float -%_entryPointOutput = OpVariable %_ptr_Output_v4float Output - %main = OpFunction %void None %3 - %5 = OpLabel - %17 = OpFunctionCall %v4float %_main_ - OpStore %_entryPointOutput %17 - OpReturn - OpFunctionEnd - %_main_ = OpFunction %v4float None %8 - %10 = OpLabel - OpReturnValue %12 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/vert/invariant.sso.asm.vert b/third_party/spirv-cross/shaders/asm/vert/invariant.sso.asm.vert deleted file mode 100644 index c0d381ee23..0000000000 --- a/third_party/spirv-cross/shaders/asm/vert/invariant.sso.asm.vert +++ /dev/null @@ -1,34 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 3 -; Bound: 18 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %main "main" %_entryPointOutput - OpSource HLSL 500 - OpName %main "main" - OpName %_main_ "@main(" - OpName %_entryPointOutput "@entryPointOutput" - OpDecorate %_entryPointOutput Invariant - OpDecorate %_entryPointOutput BuiltIn Position - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %8 = OpTypeFunction %v4float - %float_1 = OpConstant %float 1 - %12 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 -%_ptr_Output_v4float = OpTypePointer Output %v4float -%_entryPointOutput = OpVariable %_ptr_Output_v4float Output - %main = OpFunction %void None %3 - %5 = OpLabel - %17 = OpFunctionCall %v4float %_main_ - OpStore %_entryPointOutput %17 - OpReturn - OpFunctionEnd - %_main_ = OpFunction %v4float None %8 - %10 = OpLabel - OpReturnValue %12 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/vert/spec-constant-op-composite.asm.vk.vert b/third_party/spirv-cross/shaders/asm/vert/spec-constant-op-composite.asm.vk.vert deleted file mode 100644 index b566a3d1a0..0000000000 --- a/third_party/spirv-cross/shaders/asm/vert/spec-constant-op-composite.asm.vk.vert +++ /dev/null @@ -1,98 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 1 -; Bound: 58 -; Schema: 0 - OpCapability Shader - OpCapability ClipDistance - OpCapability CullDistance - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %4 "main" %52 %output - OpSource GLSL 450 - OpName %4 "main" - OpName %9 "pos" - OpName %50 "gl_PerVertex" - OpMemberName %50 0 "gl_Position" - OpMemberName %50 1 "gl_PointSize" - OpMemberName %50 2 "gl_ClipDistance" - OpMemberName %50 3 "gl_CullDistance" - OpName %52 "" - OpDecorate %13 SpecId 201 - OpDecorate %24 SpecId 202 - OpMemberDecorate %50 0 BuiltIn Position - OpMemberDecorate %50 1 BuiltIn PointSize - OpMemberDecorate %50 2 BuiltIn ClipDistance - OpMemberDecorate %50 3 BuiltIn CullDistance - OpDecorate %50 Block - OpDecorate %57 SpecId 200 - OpDecorate %output Flat - OpDecorate %output Location 0 - %2 = OpTypeVoid - %3 = OpTypeFunction %2 - %6 = OpTypeFloat 32 - %7 = OpTypeVector %6 4 - %8 = OpTypePointer Function %7 - %10 = OpConstant %6 0 - %11 = OpConstantComposite %7 %10 %10 %10 %10 - %12 = OpTypeInt 32 1 - %int_ptr = OpTypePointer Output %12 - %13 = OpSpecConstant %12 -10 - %14 = OpConstant %12 2 - %15 = OpSpecConstantOp %12 IAdd %13 %14 - %17 = OpTypeInt 32 0 - %18 = OpConstant %17 1 - %19 = OpTypePointer Function %6 - %24 = OpSpecConstant %17 100 - %25 = OpConstant %17 5 - %26 = OpSpecConstantOp %17 UMod %24 %25 - %28 = OpConstant %17 2 - %33 = OpConstant %12 20 - %34 = OpConstant %12 30 - %35 = OpTypeVector %12 4 - %36 = OpSpecConstantComposite %35 %33 %34 %15 %15 - %40 = OpTypeVector %12 2 - %41 = OpSpecConstantOp %40 VectorShuffle %36 %36 1 0 - %foo = OpSpecConstantOp %12 CompositeExtract %36 1 - %42 = OpTypeVector %6 2 - %49 = OpTypeArray %6 %18 - %50 = OpTypeStruct %7 %6 %49 %49 - %51 = OpTypePointer Output %50 - %52 = OpVariable %51 Output - %output = OpVariable %int_ptr Output - %53 = OpConstant %12 0 - %55 = OpTypePointer Output %7 - %57 = OpSpecConstant %6 3.14159 - %4 = OpFunction %2 None %3 - %5 = OpLabel - %9 = OpVariable %8 Function - OpStore %9 %11 - %16 = OpConvertSToF %6 %15 - %20 = OpAccessChain %19 %9 %18 - %21 = OpLoad %6 %20 - %22 = OpFAdd %6 %21 %16 - %23 = OpAccessChain %19 %9 %18 - OpStore %23 %22 - %27 = OpConvertUToF %6 %26 - %29 = OpAccessChain %19 %9 %28 - %30 = OpLoad %6 %29 - %31 = OpFAdd %6 %30 %27 - %32 = OpAccessChain %19 %9 %28 - OpStore %32 %31 - %37 = OpConvertSToF %7 %36 - %38 = OpLoad %7 %9 - %39 = OpFAdd %7 %38 %37 - OpStore %9 %39 - %43 = OpConvertSToF %42 %41 - %44 = OpLoad %7 %9 - %45 = OpVectorShuffle %42 %44 %44 0 1 - %46 = OpFAdd %42 %45 %43 - %47 = OpLoad %7 %9 - %48 = OpVectorShuffle %7 %47 %46 4 5 2 3 - OpStore %9 %48 - %54 = OpLoad %7 %9 - %56 = OpAccessChain %55 %52 %53 - OpStore %56 %54 - OpStore %output %foo - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/asm/vert/uint-vertex-id-instance-id.asm.vert b/third_party/spirv-cross/shaders/asm/vert/uint-vertex-id-instance-id.asm.vert deleted file mode 100644 index 29b0076a1e..0000000000 --- a/third_party/spirv-cross/shaders/asm/vert/uint-vertex-id-instance-id.asm.vert +++ /dev/null @@ -1,65 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 6 -; Bound: 36 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %main "main" %vid_1 %iid_1 %_entryPointOutput - OpSource HLSL 500 - OpName %main "main" - OpName %_main_u1_u1_ "@main(u1;u1;" - OpName %vid "vid" - OpName %iid "iid" - OpName %vid_0 "vid" - OpName %vid_1 "vid" - OpName %iid_0 "iid" - OpName %iid_1 "iid" - OpName %_entryPointOutput "@entryPointOutput" - OpName %param "param" - OpName %param_0 "param" - OpDecorate %vid_1 BuiltIn VertexIndex - OpDecorate %iid_1 BuiltIn InstanceIndex - OpDecorate %_entryPointOutput BuiltIn Position - %void = OpTypeVoid - %3 = OpTypeFunction %void - %uint = OpTypeInt 32 0 -%_ptr_Function_uint = OpTypePointer Function %uint - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %10 = OpTypeFunction %v4float %_ptr_Function_uint %_ptr_Function_uint -%_ptr_Input_uint = OpTypePointer Input %uint - %vid_1 = OpVariable %_ptr_Input_uint Input - %iid_1 = OpVariable %_ptr_Input_uint Input -%_ptr_Output_v4float = OpTypePointer Output %v4float -%_entryPointOutput = OpVariable %_ptr_Output_v4float Output - %main = OpFunction %void None %3 - %5 = OpLabel - %vid_0 = OpVariable %_ptr_Function_uint Function - %iid_0 = OpVariable %_ptr_Function_uint Function - %param = OpVariable %_ptr_Function_uint Function - %param_0 = OpVariable %_ptr_Function_uint Function - %25 = OpLoad %uint %vid_1 - OpStore %vid_0 %25 - %28 = OpLoad %uint %iid_1 - OpStore %iid_0 %28 - %32 = OpLoad %uint %vid_0 - OpStore %param %32 - %34 = OpLoad %uint %iid_0 - OpStore %param_0 %34 - %35 = OpFunctionCall %v4float %_main_u1_u1_ %param %param_0 - OpStore %_entryPointOutput %35 - OpReturn - OpFunctionEnd -%_main_u1_u1_ = OpFunction %v4float None %10 - %vid = OpFunctionParameter %_ptr_Function_uint - %iid = OpFunctionParameter %_ptr_Function_uint - %14 = OpLabel - %15 = OpLoad %uint %vid - %16 = OpLoad %uint %iid - %17 = OpIAdd %uint %15 %16 - %18 = OpConvertUToF %float %17 - %19 = OpCompositeConstruct %v4float %18 %18 %18 %18 - OpReturnValue %19 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/comp/atomic.comp b/third_party/spirv-cross/shaders/comp/atomic.comp deleted file mode 100644 index 703256d879..0000000000 --- a/third_party/spirv-cross/shaders/comp/atomic.comp +++ /dev/null @@ -1,56 +0,0 @@ -#version 310 es -#extension GL_OES_shader_image_atomic : require -layout(local_size_x = 1) in; - -layout(r32ui, binding = 0) uniform highp uimage2D uImage; -layout(r32i, binding = 1) uniform highp iimage2D iImage; -layout(binding = 2, std430) buffer SSBO -{ - uint u32; - int i32; -} ssbo; - -void main() -{ - imageAtomicAdd(uImage, ivec2(1, 5), 1u); - - // Test that we do not invalidate OpImage variables which are loaded from UniformConstant - // address space. - imageStore(iImage, ivec2(1, 6), ivec4(imageAtomicAdd(uImage, ivec2(1, 5), 1u))); - - imageAtomicOr(uImage, ivec2(1, 5), 1u); - imageAtomicXor(uImage, ivec2(1, 5), 1u); - imageAtomicAnd(uImage, ivec2(1, 5), 1u); - imageAtomicMin(uImage, ivec2(1, 5), 1u); - imageAtomicMax(uImage, ivec2(1, 5), 1u); - //imageAtomicExchange(uImage, ivec2(1, 5), 1u); - imageAtomicCompSwap(uImage, ivec2(1, 5), 10u, 2u); - - imageAtomicAdd(iImage, ivec2(1, 6), 1); - imageAtomicOr(iImage, ivec2(1, 6), 1); - imageAtomicXor(iImage, ivec2(1, 6), 1); - imageAtomicAnd(iImage, ivec2(1, 6), 1); - imageAtomicMin(iImage, ivec2(1, 6), 1); - imageAtomicMax(iImage, ivec2(1, 6), 1); - //imageAtomicExchange(iImage, ivec2(1, 5), 1u); - imageAtomicCompSwap(iImage, ivec2(1, 5), 10, 2); - - atomicAdd(ssbo.u32, 1u); - atomicOr(ssbo.u32, 1u); - atomicXor(ssbo.u32, 1u); - atomicAnd(ssbo.u32, 1u); - atomicMin(ssbo.u32, 1u); - atomicMax(ssbo.u32, 1u); - atomicExchange(ssbo.u32, 1u); - atomicCompSwap(ssbo.u32, 10u, 2u); - - atomicAdd(ssbo.i32, 1); - atomicOr(ssbo.i32, 1); - atomicXor(ssbo.i32, 1); - atomicAnd(ssbo.i32, 1); - atomicMin(ssbo.i32, 1); - atomicMax(ssbo.i32, 1); - atomicExchange(ssbo.i32, 1); - atomicCompSwap(ssbo.i32, 10, 2); -} - diff --git a/third_party/spirv-cross/shaders/comp/bake_gradient.comp b/third_party/spirv-cross/shaders/comp/bake_gradient.comp deleted file mode 100644 index 4885ff00bc..0000000000 --- a/third_party/spirv-cross/shaders/comp/bake_gradient.comp +++ /dev/null @@ -1,55 +0,0 @@ -#version 310 es - -layout(local_size_x = 8, local_size_y = 8) in; - -layout(binding = 0) uniform sampler2D uHeight; -layout(binding = 1) uniform sampler2D uDisplacement; -layout(rgba16f, binding = 2) uniform writeonly mediump image2D iHeightDisplacement; -layout(rgba16f, binding = 3) uniform writeonly mediump image2D iGradJacobian; - -layout(binding = 4) uniform UBO -{ - vec4 uInvSize; - vec4 uScale; -}; - -mediump float jacobian(mediump vec2 dDdx, mediump vec2 dDdy) -{ - return (1.0 + dDdx.x) * (1.0 + dDdy.y) - dDdx.y * dDdy.x; -} -#define LAMBDA 1.2 - -void main() -{ - vec4 uv = (vec2(gl_GlobalInvocationID.xy) * uInvSize.xy).xyxy + 0.5 * uInvSize; - - float h = textureLod(uHeight, uv.xy, 0.0).x; - - // Compute the heightmap gradient by simple differentiation. - float x0 = textureLodOffset(uHeight, uv.xy, 0.0, ivec2(-1, 0)).x; - float x1 = textureLodOffset(uHeight, uv.xy, 0.0, ivec2(+1, 0)).x; - float y0 = textureLodOffset(uHeight, uv.xy, 0.0, ivec2(0, -1)).x; - float y1 = textureLodOffset(uHeight, uv.xy, 0.0, ivec2(0, +1)).x; - vec2 grad = uScale.xy * 0.5 * vec2(x1 - x0, y1 - y0); - - // Displacement map must be sampled with a different offset since it's a smaller texture. - vec2 displacement = LAMBDA * textureLod(uDisplacement, uv.zw, 0.0).xy; - - // Compute jacobian. - vec2 dDdx = 0.5 * LAMBDA * ( - textureLodOffset(uDisplacement, uv.zw, 0.0, ivec2(+1, 0)).xy - - textureLodOffset(uDisplacement, uv.zw, 0.0, ivec2(-1, 0)).xy); - vec2 dDdy = 0.5 * LAMBDA * ( - textureLodOffset(uDisplacement, uv.zw, 0.0, ivec2(0, +1)).xy - - textureLodOffset(uDisplacement, uv.zw, 0.0, ivec2(0, -1)).xy); - float j = jacobian(dDdx * uScale.z, dDdy * uScale.z); - - displacement = vec2(0.0); - - // Read by vertex shader/tess shader. - imageStore(iHeightDisplacement, ivec2(gl_GlobalInvocationID.xy), vec4(h, displacement, 0.0)); - - // Read by fragment shader. - imageStore(iGradJacobian, ivec2(gl_GlobalInvocationID.xy), vec4(grad, j, 0.0)); -} - diff --git a/third_party/spirv-cross/shaders/comp/barriers.comp b/third_party/spirv-cross/shaders/comp/barriers.comp deleted file mode 100644 index 7e0ea42d4e..0000000000 --- a/third_party/spirv-cross/shaders/comp/barriers.comp +++ /dev/null @@ -1,79 +0,0 @@ -#version 310 es -layout(local_size_x = 4) in; - -void barrier_shared() -{ - memoryBarrierShared(); -} - -void full_barrier() -{ - memoryBarrier(); -} - -void image_barrier() -{ - memoryBarrierImage(); -} - -void buffer_barrier() -{ - memoryBarrierBuffer(); -} - -void group_barrier() -{ - groupMemoryBarrier(); -} - -void barrier_shared_exec() -{ - memoryBarrierShared(); - barrier(); -} - -void full_barrier_exec() -{ - memoryBarrier(); - barrier(); -} - -void image_barrier_exec() -{ - memoryBarrierImage(); - barrier(); -} - -void buffer_barrier_exec() -{ - memoryBarrierBuffer(); - barrier(); -} - -void group_barrier_exec() -{ - groupMemoryBarrier(); - barrier(); -} - -void exec_barrier() -{ - barrier(); -} - -void main() -{ - barrier_shared(); - full_barrier(); - image_barrier(); - buffer_barrier(); - group_barrier(); - - barrier_shared_exec(); - full_barrier_exec(); - image_barrier_exec(); - buffer_barrier_exec(); - group_barrier_exec(); - - exec_barrier(); -} diff --git a/third_party/spirv-cross/shaders/comp/basic.comp b/third_party/spirv-cross/shaders/comp/basic.comp deleted file mode 100644 index f9bf55670f..0000000000 --- a/third_party/spirv-cross/shaders/comp/basic.comp +++ /dev/null @@ -1,28 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(std430, binding = 0) readonly buffer SSBO -{ - vec4 in_data[]; -}; - -layout(std430, binding = 1) writeonly buffer SSBO2 -{ - vec4 out_data[]; -}; - -layout(std430, binding = 2) buffer SSBO3 -{ - uint counter; -}; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - vec4 idata = in_data[ident]; - if (dot(idata, vec4(1.0, 5.0, 6.0, 2.0)) > 8.2) - { - out_data[atomicAdd(counter, 1u)] = idata; - } -} - diff --git a/third_party/spirv-cross/shaders/comp/casts.comp b/third_party/spirv-cross/shaders/comp/casts.comp deleted file mode 100644 index 6be539d7be..0000000000 --- a/third_party/spirv-cross/shaders/comp/casts.comp +++ /dev/null @@ -1,18 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(binding = 0, std430) buffer SSBO0 -{ - ivec4 inputs[]; -}; - -layout(binding = 1, std430) buffer SSBO1 -{ - ivec4 outputs[]; -}; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - outputs[ident] = ivec4(bvec4(inputs[ident] & 0x3)); -} diff --git a/third_party/spirv-cross/shaders/comp/cfg-preserve-parameter.comp b/third_party/spirv-cross/shaders/comp/cfg-preserve-parameter.comp deleted file mode 100644 index 9ef9092005..0000000000 --- a/third_party/spirv-cross/shaders/comp/cfg-preserve-parameter.comp +++ /dev/null @@ -1,54 +0,0 @@ -#version 310 es - -// We write in all paths (and no reads), so should just be out. -void out_test_0(int cond, inout int i) -{ - if (cond == 0) - i = 40; - else - i = 60; -} - -// We write in all paths (and no reads), so should just be out. -void out_test_1(int cond, inout int i) -{ - switch (cond) - { - case 40: - i = 40; - break; - - default: - i = 70; - break; - } -} - -// We don't write in all paths, so should be inout. -void inout_test_0(int cond, inout int i) -{ - if (cond == 0) - i = 40; -} - -void inout_test_1(int cond, inout int i) -{ - switch (cond) - { - case 40: - i = 40; - break; - } -} - - -void main() -{ - int cond = 40; - int i = 50; - - out_test_0(cond, i); - out_test_1(cond, i); - inout_test_0(cond, i); - inout_test_1(cond, i); -} diff --git a/third_party/spirv-cross/shaders/comp/cfg.comp b/third_party/spirv-cross/shaders/comp/cfg.comp deleted file mode 100644 index 4f4e6c0ea8..0000000000 --- a/third_party/spirv-cross/shaders/comp/cfg.comp +++ /dev/null @@ -1,91 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(std430, binding = 0) buffer SSBO -{ - float data; -}; - -void test() -{ - // Test that variables local to a scope stay local. - if (data != 0.0) - { - float tmp = 10.0; - data = tmp; - } - else - { - float tmp = 15.0; - data = tmp; - } - - // Test that variable access propagates up to dominator - if (data != 0.0) - { - float e; - if (data != 5.0) - { - if (data != 6.0) - e = 10.0; - } - else - e = 20.0; - } - - // Test that variables local to a switch block stay local. - switch (int(data)) - { - case 0: - { - float tmp = 20.0; - data = tmp; - break; - } - - case 1: - { - float tmp = 30.0; - data = tmp; - break; - } - } - - // Check that multibranches propagate up to dominator. - float f; - switch (int(data)) - { - case 0: - { - f = 30.0; - break; - } - - case 1: - { - f = 40.0; - break; - } - } - - // Check that loops work. - // Interesting case here is propagating variable access from the continue block. - float h; - for (int i = 0; i < 20; i++, h += 10.0) - ; - data = h; - - // Do the same with do-while, gotta test all the hard cases. - float m; - do - { - } while (m != 20.0); - data = m; -} - -void main() -{ - // Test that we do the CFG analysis for all functions. - test(); -} - diff --git a/third_party/spirv-cross/shaders/comp/coherent-block.comp b/third_party/spirv-cross/shaders/comp/coherent-block.comp deleted file mode 100644 index 0a174e8ef0..0000000000 --- a/third_party/spirv-cross/shaders/comp/coherent-block.comp +++ /dev/null @@ -1,12 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(binding = 1) coherent restrict writeonly buffer SSBO -{ - vec4 value; -}; - -void main() -{ - value = vec4(20.0); -} diff --git a/third_party/spirv-cross/shaders/comp/coherent-image.comp b/third_party/spirv-cross/shaders/comp/coherent-image.comp deleted file mode 100644 index fd6e280182..0000000000 --- a/third_party/spirv-cross/shaders/comp/coherent-image.comp +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(binding = 1) coherent restrict writeonly buffer SSBO -{ - ivec4 value; -}; - -layout(r32i, binding = 3) coherent readonly restrict uniform mediump iimage2D uImage; - -void main() -{ - value = imageLoad(uImage, ivec2(10)); -} diff --git a/third_party/spirv-cross/shaders/comp/composite-array-initialization.comp b/third_party/spirv-cross/shaders/comp/composite-array-initialization.comp deleted file mode 100644 index fa9b611480..0000000000 --- a/third_party/spirv-cross/shaders/comp/composite-array-initialization.comp +++ /dev/null @@ -1,29 +0,0 @@ -#version 310 es -#extension GL_EXT_shader_non_constant_global_initializers : require -layout(local_size_x = 2) in; - -struct Data -{ - float a; - float b; -}; - -layout(std430, binding = 0) buffer SSBO -{ - Data outdata[]; -}; - -layout(constant_id = 0) const float X = 4.0; - -Data data[2] = Data[](Data(1.0, 2.0), Data(3.0, 4.0)); -Data data2[2] = Data[](Data(X, 2.0), Data(3.0, 5.0)); - -Data combine(Data a, Data b) -{ - return Data(a.a + b.a, a.b + b.b); -} - -void main() -{ - outdata[gl_WorkGroupID.x] = combine(data[gl_LocalInvocationID.x], data2[gl_LocalInvocationID.x]); -} diff --git a/third_party/spirv-cross/shaders/comp/composite-construct.comp b/third_party/spirv-cross/shaders/comp/composite-construct.comp deleted file mode 100644 index 859c56f51f..0000000000 --- a/third_party/spirv-cross/shaders/comp/composite-construct.comp +++ /dev/null @@ -1,40 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(std430, binding = 0) buffer SSBO0 -{ - vec4 as[]; -}; - -layout(std430, binding = 1) buffer SSBO1 -{ - vec4 bs[]; -}; - -vec4 summe(vec4 values[3][2]) -{ - return values[0][0] + values[2][1] + values[0][1] + values[1][0]; -} - -struct Composite -{ - vec4 a[2]; - vec4 b[2]; -}; - -void main() -{ - vec4 values[2] = vec4[](as[gl_GlobalInvocationID.x], bs[gl_GlobalInvocationID.x]); - vec4 const_values[2] = vec4[](vec4(10.0), vec4(30.0)); - vec4 copy_values[2]; - copy_values = const_values; - vec4 copy_values2[2] = values; - as[gl_GlobalInvocationID.x] = summe(vec4[][](values, copy_values, copy_values2)); - - Composite c = Composite(values, copy_values); - - float arrayofarray[2][3] = float[][](float[](1.0, 1.0, 1.0), float[](2.0, 2.0, 2.0)); - - float b = 10.0; - float values_scalar[4] = float[](b, b, b, b); -} diff --git a/third_party/spirv-cross/shaders/comp/culling.comp b/third_party/spirv-cross/shaders/comp/culling.comp deleted file mode 100644 index 9f8331b10b..0000000000 --- a/third_party/spirv-cross/shaders/comp/culling.comp +++ /dev/null @@ -1,26 +0,0 @@ -#version 310 es -layout(local_size_x = 4) in; - -layout(std430, binding = 0) readonly buffer SSBO -{ - float in_data[]; -}; - -layout(std430, binding = 1) writeonly buffer SSBO2 -{ - float out_data[]; -}; - -layout(std430, binding = 2) buffer SSBO3 -{ - uint count; -}; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - float idata = in_data[ident]; - if (idata > 12.0) - out_data[atomicAdd(count, 1u)] = idata; -} - diff --git a/third_party/spirv-cross/shaders/comp/defer-parens.comp b/third_party/spirv-cross/shaders/comp/defer-parens.comp deleted file mode 100644 index 4e8ea6b399..0000000000 --- a/third_party/spirv-cross/shaders/comp/defer-parens.comp +++ /dev/null @@ -1,30 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(binding = 0, std430) buffer SSBO -{ - vec4 data; - int index; -}; - -void main() -{ - // Tests defer-parens behavior where a binary expression is OpCompositeExtracted chained together - // with an OpCompositeConstruct optimization. - vec4 d = data; - data = vec4(d.x, d.yz + 10.0, d.w); - - // Verify binary ops. - data = d + d + d; - - // Verify swizzles. - data = (d.yz + 10.0).xxyy; - - // OpCompositeExtract - float t = (d.yz + 10.0).y; - data = vec4(t); - - // OpVectorExtractDynamic - t = (d.zw + 10.0)[index]; - data = vec4(t); -} diff --git a/third_party/spirv-cross/shaders/comp/dowhile.comp b/third_party/spirv-cross/shaders/comp/dowhile.comp deleted file mode 100644 index 709db75a17..0000000000 --- a/third_party/spirv-cross/shaders/comp/dowhile.comp +++ /dev/null @@ -1,31 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(std430, binding = 0) readonly buffer SSBO -{ - mat4 mvp; - vec4 in_data[]; -}; - -layout(std430, binding = 1) writeonly buffer SSBO2 -{ - vec4 out_data[]; -}; - -int i; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - - i = 0; - vec4 idat = in_data[ident]; - do - { - idat = mvp * idat; - i++; - } while(i < 16); - - out_data[ident] = idat; -} - diff --git a/third_party/spirv-cross/shaders/comp/generate_height.comp b/third_party/spirv-cross/shaders/comp/generate_height.comp deleted file mode 100644 index 16cef4de78..0000000000 --- a/third_party/spirv-cross/shaders/comp/generate_height.comp +++ /dev/null @@ -1,97 +0,0 @@ -#version 310 es - -layout(local_size_x = 64) in; - -layout(std430, binding = 0) readonly buffer Distribution -{ - vec2 distribution[]; -}; - -layout(std430, binding = 1) writeonly buffer HeightmapFFT -{ - uint heights[]; -}; - -layout(binding = 2, std140) uniform UBO -{ - vec4 uModTime; -}; - -vec2 alias(vec2 i, vec2 N) -{ - return mix(i, i - N, greaterThan(i, 0.5 * N)); -} - -vec4 cmul(vec4 a, vec4 b) -{ - vec4 r3 = a.yxwz; - vec4 r1 = b.xxzz; - vec4 R0 = a * r1; - vec4 r2 = b.yyww; - vec4 R1 = r2 * r3; - return R0 + vec4(-R1.x, R1.y, -R1.z, R1.w); -} - -vec2 cmul(vec2 a, vec2 b) -{ - vec2 r3 = a.yx; - vec2 r1 = b.xx; - vec2 R0 = a * r1; - vec2 r2 = b.yy; - vec2 R1 = r2 * r3; - return R0 + vec2(-R1.x, R1.y); -} - -uint pack2(vec2 v) -{ - return packHalf2x16(v); -} - -uvec2 pack4(vec4 v) -{ - return uvec2(packHalf2x16(v.xy), packHalf2x16(v.zw)); -} - -uvec2 workaround_mix(uvec2 a, uvec2 b, bvec2 sel) -{ - return uvec2(sel.x ? b.x : a.x, sel.y ? b.y : a.y); -} - -void generate_heightmap() -{ - uvec2 N = gl_WorkGroupSize.xy * gl_NumWorkGroups.xy; - uvec2 i = gl_GlobalInvocationID.xy; - // Pick out the negative frequency variant. - uvec2 wi = workaround_mix(N - i, uvec2(0u), equal(i, uvec2(0u))); - - // Pick out positive and negative travelling waves. - vec2 a = distribution[i.y * N.x + i.x]; - vec2 b = distribution[wi.y * N.x + wi.x]; - - vec2 k = uModTime.xy * alias(vec2(i), vec2(N)); - float k_len = length(k); - - const float G = 9.81; - - // If this sample runs for hours on end, the cosines of very large numbers will eventually become unstable. - // It is fairly easy to fix this by wrapping uTime, - // and quantizing w such that wrapping uTime does not change the result. - // See Tessendorf's paper for how to do it. - // The sqrt(G * k_len) factor represents how fast ocean waves at different frequencies propagate. - float w = sqrt(G * k_len) * uModTime.z; - float cw = cos(w); - float sw = sin(w); - - // Complex multiply to rotate our frequency samples. - a = cmul(a, vec2(cw, sw)); - b = cmul(b, vec2(cw, sw)); - b = vec2(b.x, -b.y); // Complex conjugate since we picked a frequency with the opposite direction. - vec2 res = a + b; // Sum up forward and backwards travelling waves. - heights[i.y * N.x + i.x] = pack2(res); -} - -void main() -{ - generate_heightmap(); -} - diff --git a/third_party/spirv-cross/shaders/comp/image.comp b/third_party/spirv-cross/shaders/comp/image.comp deleted file mode 100644 index e375534a51..0000000000 --- a/third_party/spirv-cross/shaders/comp/image.comp +++ /dev/null @@ -1,12 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(rgba8, binding = 0) uniform readonly mediump image2D uImageIn; -layout(rgba8, binding = 1) uniform writeonly mediump image2D uImageOut; - -void main() -{ - vec4 v = imageLoad(uImageIn, ivec2(gl_GlobalInvocationID.xy) + imageSize(uImageIn)); - imageStore(uImageOut, ivec2(gl_GlobalInvocationID.xy), v); -} - diff --git a/third_party/spirv-cross/shaders/comp/insert.comp b/third_party/spirv-cross/shaders/comp/insert.comp deleted file mode 100644 index 07c1f8d7aa..0000000000 --- a/third_party/spirv-cross/shaders/comp/insert.comp +++ /dev/null @@ -1,18 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(std430, binding = 0) writeonly buffer SSBO -{ - vec4 out_data[]; -}; - -void main() -{ - vec4 v; - v.x = 10.0; - v.y = 30.0; - v.z = 70.0; - v.w = 90.0; - out_data[gl_GlobalInvocationID.x] = v; - out_data[gl_GlobalInvocationID.x].y = 20.0; -} diff --git a/third_party/spirv-cross/shaders/comp/mat3.comp b/third_party/spirv-cross/shaders/comp/mat3.comp deleted file mode 100644 index 7c5bb1e4f5..0000000000 --- a/third_party/spirv-cross/shaders/comp/mat3.comp +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(std430, binding = 1) writeonly buffer SSBO2 -{ - mat3 out_data[]; -}; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - out_data[ident] = mat3(vec3(10.0), vec3(20.0), vec3(40.0)); -} - diff --git a/third_party/spirv-cross/shaders/comp/mod.comp b/third_party/spirv-cross/shaders/comp/mod.comp deleted file mode 100644 index 1631456e30..0000000000 --- a/third_party/spirv-cross/shaders/comp/mod.comp +++ /dev/null @@ -1,26 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(std430, binding = 0) readonly buffer SSBO -{ - vec4 in_data[]; -}; - -layout(std430, binding = 1) writeonly buffer SSBO2 -{ - vec4 out_data[]; -}; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - vec4 v = mod(in_data[ident], out_data[ident]); - out_data[ident] = v; - - uvec4 vu = floatBitsToUint(in_data[ident]) % floatBitsToUint(out_data[ident]); - out_data[ident] = uintBitsToFloat(vu); - - ivec4 vi = floatBitsToInt(in_data[ident]) % floatBitsToInt(out_data[ident]); - out_data[ident] = intBitsToFloat(vi); -} - diff --git a/third_party/spirv-cross/shaders/comp/modf.comp b/third_party/spirv-cross/shaders/comp/modf.comp deleted file mode 100644 index edadefcf05..0000000000 --- a/third_party/spirv-cross/shaders/comp/modf.comp +++ /dev/null @@ -1,23 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(std430, binding = 0) readonly buffer SSBO -{ - vec4 in_data[]; -}; - -layout(std430, binding = 1) writeonly buffer SSBO2 -{ - vec4 out_data[]; -}; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - vec4 i; - //vec4 v = frexp(in_data[ident], i); - //out_data[ident] = ldexp(v, i); - vec4 v = modf(in_data[ident], i); - out_data[ident] = v; -} - diff --git a/third_party/spirv-cross/shaders/comp/outer-product.comp b/third_party/spirv-cross/shaders/comp/outer-product.comp deleted file mode 100644 index 9aba2a54b7..0000000000 --- a/third_party/spirv-cross/shaders/comp/outer-product.comp +++ /dev/null @@ -1,37 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -layout(set = 0, binding = 0, std430) writeonly buffer SSBO -{ - mat2 m22; - mat2x3 m23; - mat2x4 m24; - mat3x2 m32; - mat3 m33; - mat3x4 m34; - mat4x2 m42; - mat4x3 m43; - mat4 m44; -}; - -layout(set = 0, binding = 1, std430) readonly buffer ReadSSBO -{ - vec2 v2; - vec3 v3; - vec4 v4; -}; - -void main() -{ - m22 = outerProduct(v2, v2); - m23 = outerProduct(v3, v2); - m24 = outerProduct(v4, v2); - - m32 = outerProduct(v2, v3); - m33 = outerProduct(v3, v3); - m34 = outerProduct(v4, v3); - - m42 = outerProduct(v2, v4); - m43 = outerProduct(v3, v4); - m44 = outerProduct(v4, v4); -} diff --git a/third_party/spirv-cross/shaders/comp/read-write-only.comp b/third_party/spirv-cross/shaders/comp/read-write-only.comp deleted file mode 100644 index b224b6f121..0000000000 --- a/third_party/spirv-cross/shaders/comp/read-write-only.comp +++ /dev/null @@ -1,26 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(binding = 0, std430) readonly buffer SSBO0 -{ - vec4 data0; - vec4 data1; -}; - -layout(binding = 1, std430) restrict buffer SSBO1 -{ - vec4 data2; - vec4 data3; -}; - -layout(binding = 2, std430) restrict writeonly buffer SSBO2 -{ - vec4 data4; - vec4 data5; -}; - -void main() -{ - data4 = data0 + data2; - data5 = data1 + data3; -} diff --git a/third_party/spirv-cross/shaders/comp/rmw-matrix.comp b/third_party/spirv-cross/shaders/comp/rmw-matrix.comp deleted file mode 100644 index c158ab4ddd..0000000000 --- a/third_party/spirv-cross/shaders/comp/rmw-matrix.comp +++ /dev/null @@ -1,20 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(std430, binding = 0) buffer SSBO -{ - float a; - vec4 b; - mat4 c; - - float a1; - vec4 b1; - mat4 c1; -}; - -void main() -{ - a *= a1; - b *= b1; - c *= c1; -} diff --git a/third_party/spirv-cross/shaders/comp/rmw-opt.comp b/third_party/spirv-cross/shaders/comp/rmw-opt.comp deleted file mode 100644 index a6e1e7fe75..0000000000 --- a/third_party/spirv-cross/shaders/comp/rmw-opt.comp +++ /dev/null @@ -1,27 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(std430, binding = 0) buffer SSBO -{ - int a; -}; - -void main() -{ - a += 10; - a -= 10; - a *= 10; - a /= 10; - a <<= 2; - a >>= 3; - a &= 40; - a ^= 10; - a %= 40; - a |= 1; - - bool c = false; - bool d = true; - c = c && d; - d = d || c; - a = c && d ? 1 : 0; -} diff --git a/third_party/spirv-cross/shaders/comp/scalar-std450-distance-length-normalize.comp b/third_party/spirv-cross/shaders/comp/scalar-std450-distance-length-normalize.comp deleted file mode 100644 index 37414737fd..0000000000 --- a/third_party/spirv-cross/shaders/comp/scalar-std450-distance-length-normalize.comp +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -layout(std430, set = 0, binding = 0) buffer SSBO -{ - float a; - float b; - float c; - float d; - float e; -}; - -void main() -{ - c = distance(a, b); - d = length(a); - e = normalize(a); -} diff --git a/third_party/spirv-cross/shaders/comp/shared.comp b/third_party/spirv-cross/shaders/comp/shared.comp deleted file mode 100644 index 4deff93597..0000000000 --- a/third_party/spirv-cross/shaders/comp/shared.comp +++ /dev/null @@ -1,27 +0,0 @@ -#version 310 es -layout(local_size_x = 4) in; - -shared float sShared[gl_WorkGroupSize.x]; - -layout(std430, binding = 0) readonly buffer SSBO -{ - float in_data[]; -}; - -layout(std430, binding = 1) writeonly buffer SSBO2 -{ - float out_data[]; -}; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - float idata = in_data[ident]; - - sShared[gl_LocalInvocationIndex] = idata; - memoryBarrierShared(); - barrier(); - - out_data[ident] = sShared[gl_WorkGroupSize.x - gl_LocalInvocationIndex - 1u]; -} - diff --git a/third_party/spirv-cross/shaders/comp/ssbo-array-length.comp b/third_party/spirv-cross/shaders/comp/ssbo-array-length.comp deleted file mode 100644 index 3ad4b95159..0000000000 --- a/third_party/spirv-cross/shaders/comp/ssbo-array-length.comp +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; -layout(set = 0, binding = 1, std140) buffer SSBO -{ - uint size; - float v[]; -}; - -void main() -{ - size = v.length(); -} diff --git a/third_party/spirv-cross/shaders/comp/ssbo-array.comp b/third_party/spirv-cross/shaders/comp/ssbo-array.comp deleted file mode 100644 index da0eae0889..0000000000 --- a/third_party/spirv-cross/shaders/comp/ssbo-array.comp +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(std430, binding = 0) buffer SSBO -{ - vec4 data[]; -} ssbos[2]; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - ssbos[1].data[ident] = ssbos[0].data[ident]; -} - diff --git a/third_party/spirv-cross/shaders/comp/struct-layout.comp b/third_party/spirv-cross/shaders/comp/struct-layout.comp deleted file mode 100644 index 5a2b7802df..0000000000 --- a/third_party/spirv-cross/shaders/comp/struct-layout.comp +++ /dev/null @@ -1,24 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -struct Foo -{ - mat4 m; -}; - -layout(std430, binding = 0) readonly buffer SSBO -{ - Foo in_data[]; -}; - -layout(std430, binding = 1) writeonly buffer SSBO2 -{ - Foo out_data[]; -}; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - out_data[ident].m = in_data[ident].m * in_data[ident].m; -} - diff --git a/third_party/spirv-cross/shaders/comp/struct-packing.comp b/third_party/spirv-cross/shaders/comp/struct-packing.comp deleted file mode 100644 index 7a1be0478d..0000000000 --- a/third_party/spirv-cross/shaders/comp/struct-packing.comp +++ /dev/null @@ -1,86 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -struct S0 -{ - vec2 a[1]; - float b; -}; - -struct S1 -{ - vec3 a; - float b; -}; - -struct S2 -{ - vec3 a[1]; - float b; -}; - -struct S3 -{ - vec2 a; - float b; -}; - -struct S4 -{ - vec2 c; -}; - -struct Content -{ - S0 m0s[1]; - S1 m1s[1]; - S2 m2s[1]; - S0 m0; - S1 m1; - S2 m2; - S3 m3; - float m4; - - S4 m3s[8]; -}; - -layout(binding = 1, std430) restrict buffer SSBO1 -{ - Content content; - Content content1[2]; - Content content2; - - layout(column_major) mat2 m0; - layout(column_major) mat2 m1; - layout(column_major) mat2x3 m2[4]; - layout(column_major) mat3x2 m3; - layout(row_major) mat2 m4; - layout(row_major) mat2 m5[9]; - layout(row_major) mat2x3 m6[4][2]; - layout(row_major) mat3x2 m7; - float array[]; -} ssbo_430; - -layout(binding = 0, std140) restrict buffer SSBO0 -{ - Content content; - Content content1[2]; - Content content2; - - layout(column_major) mat2 m0; - layout(column_major) mat2 m1; - layout(column_major) mat2x3 m2[4]; - layout(column_major) mat3x2 m3; - layout(row_major) mat2 m4; - layout(row_major) mat2 m5[9]; - layout(row_major) mat2x3 m6[4][2]; - layout(row_major) mat3x2 m7; - - float array[]; -} ssbo_140; - -void main() -{ - ssbo_430.content = ssbo_140.content; -} - diff --git a/third_party/spirv-cross/shaders/comp/torture-loop.comp b/third_party/spirv-cross/shaders/comp/torture-loop.comp deleted file mode 100644 index 54a1221a15..0000000000 --- a/third_party/spirv-cross/shaders/comp/torture-loop.comp +++ /dev/null @@ -1,40 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(std430, binding = 0) readonly buffer SSBO -{ - mat4 mvp; - vec4 in_data[]; -}; - -layout(std430, binding = 1) writeonly buffer SSBO2 -{ - vec4 out_data[]; -}; - -void main() -{ - uint ident = gl_GlobalInvocationID.x; - vec4 idat = in_data[ident]; - - int k = 0; - - // Continue with side effects. - while (++k < 10) - { - idat *= 2.0; - k++; - } - - // Again used here ... - for (uint i = 0u; i < 16u; i++, k++) - for (uint j = 0u; j < 30u; j++) - idat = mvp * idat; - - do - { - k++; - } while (k > 10); - out_data[ident] = idat; -} - diff --git a/third_party/spirv-cross/shaders/comp/type-alias.comp b/third_party/spirv-cross/shaders/comp/type-alias.comp deleted file mode 100644 index 343d350a2f..0000000000 --- a/third_party/spirv-cross/shaders/comp/type-alias.comp +++ /dev/null @@ -1,45 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -struct S0 -{ - vec4 a; -}; - -struct S1 -{ - vec4 a; -}; - -vec4 overload(S0 s0) -{ - return s0.a; -} - -vec4 overload(S1 s1) -{ - return s1.a; -} - -layout(std430, binding = 0) buffer SSBO0 -{ - S0 s0s[]; -}; - -layout(std430, binding = 1) buffer SSBO1 -{ - S1 s1s[]; -}; - -layout(std430, binding = 2) buffer SSBO2 -{ - vec4 outputs[]; -}; - - -void main() -{ - S0 s0 = s0s[gl_GlobalInvocationID.x]; - S1 s1 = s1s[gl_GlobalInvocationID.x]; - outputs[gl_GlobalInvocationID.x] = overload(s0) + overload(s1); -} diff --git a/third_party/spirv-cross/shaders/comp/udiv.comp b/third_party/spirv-cross/shaders/comp/udiv.comp deleted file mode 100644 index 33fe564f07..0000000000 --- a/third_party/spirv-cross/shaders/comp/udiv.comp +++ /dev/null @@ -1,17 +0,0 @@ -#version 310 es -layout(local_size_x = 1) in; - -layout(std430, binding = 0) buffer SSBO -{ - uint inputs[]; -}; - -layout(std430, binding = 0) buffer SSBO2 -{ - uint outputs[]; -}; - -void main() -{ - outputs[gl_GlobalInvocationID.x] = inputs[gl_GlobalInvocationID.x] / 29u; -} diff --git a/third_party/spirv-cross/shaders/desktop-only/comp/enhanced-layouts.comp b/third_party/spirv-cross/shaders/desktop-only/comp/enhanced-layouts.comp deleted file mode 100644 index 470b73e9bd..0000000000 --- a/third_party/spirv-cross/shaders/desktop-only/comp/enhanced-layouts.comp +++ /dev/null @@ -1,39 +0,0 @@ -#version 450 - -struct Foo -{ - int a; - int b; - int c; -}; - -layout(std140, binding = 0) uniform UBO -{ - layout(offset = 4) int a; - layout(offset = 8) int b; - layout(offset = 16) Foo foo; - layout(offset = 48) int c[8]; -} ubo; - -layout(std140, binding = 1) buffer SSBO1 -{ - layout(offset = 4) int a; - layout(offset = 8) int b; - layout(offset = 16) Foo foo; - layout(offset = 48) int c[8]; -} ssbo1; - -layout(std430, binding = 2) buffer SSBO2 -{ - layout(offset = 4) int a; - layout(offset = 8) int b; - layout(offset = 16) Foo foo; - layout(offset = 48) int c[8]; -} ssbo2; - -void main() -{ - ssbo1.a = ssbo2.a; - ssbo1.b = ubo.b; -} - diff --git a/third_party/spirv-cross/shaders/desktop-only/comp/extended-arithmetic.desktop.comp b/third_party/spirv-cross/shaders/desktop-only/comp/extended-arithmetic.desktop.comp deleted file mode 100644 index 9623751b61..0000000000 --- a/third_party/spirv-cross/shaders/desktop-only/comp/extended-arithmetic.desktop.comp +++ /dev/null @@ -1,41 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -layout(binding = 0, std430) buffer SSBOUint -{ - uint a, b, c, d; - uvec2 a2, b2, c2, d2; - uvec3 a3, b3, c3, d3; - uvec4 a4, b4, c4, d4; -} u; - -layout(binding = 1, std430) buffer SSBOInt -{ - int a, b, c, d; - ivec2 a2, b2, c2, d2; - ivec3 a3, b3, c3, d3; - ivec4 a4, b4, c4, d4; -} i; - -void main() -{ - u.c = uaddCarry(u.a, u.b, u.d); - u.c2 = uaddCarry(u.a2, u.b2, u.d2); - u.c3 = uaddCarry(u.a3, u.b3, u.d3); - u.c4 = uaddCarry(u.a4, u.b4, u.d4); - - u.c = usubBorrow(u.a, u.b, u.d); - u.c2 = usubBorrow(u.a2, u.b2, u.d2); - u.c3 = usubBorrow(u.a3, u.b3, u.d3); - u.c4 = usubBorrow(u.a4, u.b4, u.d4); - - umulExtended(u.a, u.b, u.c, u.d); - umulExtended(u.a2, u.b2, u.c2, u.d2); - umulExtended(u.a3, u.b3, u.c3, u.d3); - umulExtended(u.a4, u.b4, u.c4, u.d4); - - imulExtended(i.a, i.b, i.c, i.d); - imulExtended(i.a2, i.b2, i.c2, i.d2); - imulExtended(i.a3, i.b3, i.c3, i.d3); - imulExtended(i.a4, i.b4, i.c4, i.d4); -} diff --git a/third_party/spirv-cross/shaders/desktop-only/comp/fp64.desktop.comp b/third_party/spirv-cross/shaders/desktop-only/comp/fp64.desktop.comp deleted file mode 100644 index 2c2d5018d1..0000000000 --- a/third_party/spirv-cross/shaders/desktop-only/comp/fp64.desktop.comp +++ /dev/null @@ -1,91 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -struct M0 -{ - double v; - dvec2 b[2]; - dmat2x3 c; - dmat3x2 d; -}; - -// Test buffer layout handling. -layout(std430, binding = 0) buffer SSBO0 -{ - dvec4 a; - M0 m0; - dmat4 b; -} ssbo_0; - -layout(std430, binding = 1) buffer SSBO1 -{ - dmat4 a; - dvec4 b; - M0 m0; -} ssbo_1; - -layout(std430, binding = 2) buffer SSBO2 -{ - double a[4]; - dvec2 b[4]; -} ssbo_2; - -layout(std140, binding = 3) buffer SSBO3 -{ - double a[4]; - dvec2 b[4]; -} ssbo_3; - -void main() -{ - ssbo_0.a += dvec4(10, 20, 30, 40); - ssbo_0.a += 20; - - dvec4 a = ssbo_0.a; - dmat4 amat = ssbo_0.b; - - ssbo_0.a = abs(a); - ssbo_0.a = sign(a); - ssbo_0.a = floor(a); - ssbo_0.a = trunc(a); - ssbo_0.a = round(a); - ssbo_0.a = roundEven(a); - ssbo_0.a = ceil(a); - ssbo_0.a = fract(a); - ssbo_0.a = mod(a, 20.0); - ssbo_0.a = mod(a, a); - ssbo_0.a = min(a, a); - ssbo_0.a = max(a, a); - ssbo_0.a = clamp(a, a, a); - ssbo_0.a = mix(a, a, a); - ssbo_0.a = step(a, a); - ssbo_0.a = smoothstep(a, a, a); - bvec4 b = isnan(a); - bvec4 c = isinf(a); - - double f = packDouble2x32(uvec2(10, 40)); - uvec2 g = unpackDouble2x32(f); - - double d = length(a); - d = distance(a, a); - d = dot(a, a); - dvec3 e = cross(a.xyz, a.yzw); - a = faceforward(a, a, a); - a = reflect(a, a); - //a = refract(a, a, 1.45); - - dmat4 l = matrixCompMult(amat, amat); - l = outerProduct(a, a); - l = transpose(l); - double m = determinant(l); - l = inverse(l); - - bvec4 k = lessThan(a, a); - k = lessThanEqual(a, a); - k = greaterThan(a, a); - k = greaterThanEqual(a, a); - - ssbo_1.b.x += 1.0lf; - ssbo_2.b[0].x += 1.0lf; - ssbo_3.b[0].x += 1.0lf; -} diff --git a/third_party/spirv-cross/shaders/desktop-only/comp/image-formats.desktop.noeliminate.comp b/third_party/spirv-cross/shaders/desktop-only/comp/image-formats.desktop.noeliminate.comp deleted file mode 100644 index 5a70623c85..0000000000 --- a/third_party/spirv-cross/shaders/desktop-only/comp/image-formats.desktop.noeliminate.comp +++ /dev/null @@ -1,48 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -layout(rgba32f, binding = 0) uniform image2D uImg00; -layout(rgba16f, binding = 1) uniform image2D uImg01; -layout(rg32f, binding = 2) uniform image2D uImg02; -layout(rg16f, binding = 3) uniform image2D uImg03; -layout(r11f_g11f_b10f, binding = 4) uniform image2D uImg04; -layout(r32f, binding = 5) uniform image2D uImg05; -layout(r16f, binding = 6) uniform image2D uImg06; -layout(rgba16, binding = 7) uniform image2D uImg07; -layout(rgb10_a2, binding = 8) uniform image2D uImg08; -layout(rgba8, binding = 9) uniform image2D uImg09; -layout(rg16, binding = 10) uniform image2D uImg10; -layout(rg8, binding = 11) uniform image2D uImg11; -layout(r16, binding = 12) uniform image2D uImg12; -layout(r8, binding = 13) uniform image2D uImg13; -layout(rgba16_snorm, binding = 14) uniform image2D uImg14; -layout(rgba8_snorm, binding = 15) uniform image2D uImg15; -layout(rg16_snorm, binding = 16) uniform image2D uImg16; -layout(rg8_snorm, binding = 17) uniform image2D uImg17; -layout(r16_snorm, binding = 18) uniform image2D uImg18; -layout(r8_snorm, binding = 19) uniform image2D uImg19; - -layout(rgba32i, binding = 20) uniform iimage2D uImage20; -layout(rgba16i, binding = 21) uniform iimage2D uImage21; -layout(rgba8i, binding = 22) uniform iimage2D uImage22; -layout(rg32i, binding = 23) uniform iimage2D uImage23; -layout(rg16i, binding = 24) uniform iimage2D uImage24; -layout(rg8i, binding = 25) uniform iimage2D uImage25; -layout(r32i, binding = 26) uniform iimage2D uImage26; -layout(r16i, binding = 27) uniform iimage2D uImage27; -layout(r8i, binding = 28) uniform iimage2D uImage28; - -layout(rgba32ui, binding = 29) uniform uimage2D uImage29; -layout(rgba16ui, binding = 30) uniform uimage2D uImage30; -layout(rgb10_a2ui, binding = 31) uniform uimage2D uImage31; -layout(rgba8ui, binding = 32) uniform uimage2D uImage32; -layout(rg32ui, binding = 33) uniform uimage2D uImage33; -layout(rg16ui, binding = 34) uniform uimage2D uImage34; -layout(rg8ui, binding = 35) uniform uimage2D uImage35; -layout(r32ui, binding = 36) uniform uimage2D uImage36; -layout(r16ui, binding = 37) uniform uimage2D uImage37; -layout(r8ui, binding = 38) uniform uimage2D uImage38; - -void main() -{ -} diff --git a/third_party/spirv-cross/shaders/desktop-only/comp/int64.desktop.comp b/third_party/spirv-cross/shaders/desktop-only/comp/int64.desktop.comp deleted file mode 100644 index 81004d4ad6..0000000000 --- a/third_party/spirv-cross/shaders/desktop-only/comp/int64.desktop.comp +++ /dev/null @@ -1,55 +0,0 @@ -#version 450 -#extension GL_ARB_gpu_shader_int64 : require -layout(local_size_x = 1) in; - -struct M0 -{ - int64_t v; - i64vec2 b[2]; - uint64_t c; - uint64_t d[5]; -}; - -// Test buffer layout handling. -layout(std430, binding = 0) buffer SSBO0 -{ - i64vec4 a; - M0 m0; -} ssbo_0; - -layout(std430, binding = 1) buffer SSBO1 -{ - u64vec4 b; - M0 m0; -} ssbo_1; - -layout(std430, binding = 2) buffer SSBO2 -{ - int64_t a[4]; - i64vec2 b[4]; -} ssbo_2; - -layout(std140, binding = 3) buffer SSBO3 -{ - int64_t a[4]; - i64vec2 b[4]; -} ssbo_3; - -void main() -{ - ssbo_0.a += i64vec4(10, 20, 30, 40); - ssbo_1.b += u64vec4(999999999999999999ul, 8888888888888888ul, 77777777777777777ul, 6666666666666666ul); - ssbo_0.a += 20; - ssbo_0.a = abs(ssbo_0.a + i64vec4(ssbo_1.b)); - - ssbo_0.a++; - ssbo_1.b++; - ssbo_0.a--; - ssbo_1.b--; - - ssbo_1.b = doubleBitsToUint64(int64BitsToDouble(ssbo_0.a)); - ssbo_0.a = doubleBitsToInt64(uint64BitsToDouble(ssbo_1.b)); - - ssbo_2.a[0] += 1l; - ssbo_3.a[0] += 2l; -} diff --git a/third_party/spirv-cross/shaders/desktop-only/frag/clip-cull-distance.desktop.frag b/third_party/spirv-cross/shaders/desktop-only/frag/clip-cull-distance.desktop.frag deleted file mode 100644 index 5212fd6448..0000000000 --- a/third_party/spirv-cross/shaders/desktop-only/frag/clip-cull-distance.desktop.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -in float gl_ClipDistance[4]; -in float gl_CullDistance[3]; - -layout(location = 0) out float FragColor; - -void main() -{ - FragColor = gl_ClipDistance[0] + gl_CullDistance[0]; -} - diff --git a/third_party/spirv-cross/shaders/desktop-only/frag/control-dependent-in-branch.desktop.frag b/third_party/spirv-cross/shaders/desktop-only/frag/control-dependent-in-branch.desktop.frag deleted file mode 100644 index 7c75ffe1bd..0000000000 --- a/third_party/spirv-cross/shaders/desktop-only/frag/control-dependent-in-branch.desktop.frag +++ /dev/null @@ -1,36 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; -layout(binding = 0) uniform sampler2D uSampler; -layout(location = 0) in vec4 vInput; - -void main() -{ - FragColor = vInput; - vec4 t = texture(uSampler, vInput.xy); - vec4 d0 = dFdx(vInput); - vec4 d1 = dFdy(vInput); - vec4 d2 = fwidth(vInput); - vec4 d3 = dFdxCoarse(vInput); - vec4 d4 = dFdyCoarse(vInput); - vec4 d5 = fwidthCoarse(vInput); - vec4 d6 = dFdxFine(vInput); - vec4 d7 = dFdyFine(vInput); - vec4 d8 = fwidthFine(vInput); - vec2 lod = textureQueryLod(uSampler, vInput.zw); - if (vInput.y > 10.0) - { - FragColor += t; - FragColor += d0; - FragColor += d1; - FragColor += d2; - FragColor += d3; - FragColor += d4; - FragColor += d5; - FragColor += d6; - FragColor += d7; - FragColor += d8; - FragColor += lod.xyxy; - } -} - diff --git a/third_party/spirv-cross/shaders/desktop-only/frag/depth-greater-than.desktop.frag b/third_party/spirv-cross/shaders/desktop-only/frag/depth-greater-than.desktop.frag deleted file mode 100644 index 88f9a4214f..0000000000 --- a/third_party/spirv-cross/shaders/desktop-only/frag/depth-greater-than.desktop.frag +++ /dev/null @@ -1,8 +0,0 @@ -#version 450 -layout(early_fragment_tests) in; -layout(depth_greater) out float gl_FragDepth; - -void main() -{ - gl_FragDepth = 0.5; -} diff --git a/third_party/spirv-cross/shaders/desktop-only/frag/depth-less-than.desktop.frag b/third_party/spirv-cross/shaders/desktop-only/frag/depth-less-than.desktop.frag deleted file mode 100644 index 87fdd4620c..0000000000 --- a/third_party/spirv-cross/shaders/desktop-only/frag/depth-less-than.desktop.frag +++ /dev/null @@ -1,8 +0,0 @@ -#version 450 -layout(early_fragment_tests) in; -layout(depth_less) out float gl_FragDepth; - -void main() -{ - gl_FragDepth = 0.5; -} diff --git a/third_party/spirv-cross/shaders/desktop-only/frag/dual-source-blending.desktop.frag b/third_party/spirv-cross/shaders/desktop-only/frag/dual-source-blending.desktop.frag deleted file mode 100644 index f322cf4c38..0000000000 --- a/third_party/spirv-cross/shaders/desktop-only/frag/dual-source-blending.desktop.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 - -layout(location = 0, index = 0) out vec4 FragColor0; -layout(location = 0, index = 1) out vec4 FragColor1; - -void main() -{ - FragColor0 = vec4(1.0); - FragColor1 = vec4(2.0); -} diff --git a/third_party/spirv-cross/shaders/desktop-only/frag/hlsl-uav-block-alias.asm.frag b/third_party/spirv-cross/shaders/desktop-only/frag/hlsl-uav-block-alias.asm.frag deleted file mode 100644 index 1c6dd7b8b7..0000000000 --- a/third_party/spirv-cross/shaders/desktop-only/frag/hlsl-uav-block-alias.asm.frag +++ /dev/null @@ -1,56 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 2 -; Bound: 29 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %_entryPointOutput - OpExecutionMode %main OriginUpperLeft - OpSource HLSL 500 - OpName %main "main" - OpName %_main_ "@main(" - OpName %Foobar "Foobar" - OpMemberName %Foobar 0 "@data" - OpName %Foobar_0 "Foobar" - OpName %Foobaz "Foobaz" - OpName %_entryPointOutput "@entryPointOutput" - OpDecorate %_runtimearr_v4float ArrayStride 16 - OpMemberDecorate %Foobar 0 Offset 0 - OpDecorate %Foobar BufferBlock - OpDecorate %Foobar_0 DescriptorSet 0 - OpDecorate %Foobar_0 Binding 0 - OpDecorate %Foobaz DescriptorSet 0 - OpDecorate %Foobaz Binding 1 - OpDecorate %_entryPointOutput Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %8 = OpTypeFunction %v4float -%_runtimearr_v4float = OpTypeRuntimeArray %v4float - %Foobar = OpTypeStruct %_runtimearr_v4float -%_ptr_Uniform_Foobar = OpTypePointer Uniform %Foobar - %Foobar_0 = OpVariable %_ptr_Uniform_Foobar Uniform - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float - %Foobaz = OpVariable %_ptr_Uniform_Foobar Uniform -%_ptr_Output_v4float = OpTypePointer Output %v4float -%_entryPointOutput = OpVariable %_ptr_Output_v4float Output - %main = OpFunction %void None %3 - %5 = OpLabel - %28 = OpFunctionCall %v4float %_main_ - OpStore %_entryPointOutput %28 - OpReturn - OpFunctionEnd - %_main_ = OpFunction %v4float None %8 - %10 = OpLabel - %18 = OpAccessChain %_ptr_Uniform_v4float %Foobar_0 %int_0 %int_0 - %19 = OpLoad %v4float %18 - %21 = OpAccessChain %_ptr_Uniform_v4float %Foobaz %int_0 %int_0 - %22 = OpLoad %v4float %21 - %23 = OpFAdd %v4float %19 %22 - OpReturnValue %23 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/desktop-only/frag/image-ms.desktop.frag b/third_party/spirv-cross/shaders/desktop-only/frag/image-ms.desktop.frag deleted file mode 100644 index d3acc3081a..0000000000 --- a/third_party/spirv-cross/shaders/desktop-only/frag/image-ms.desktop.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 - -layout(rgba8, binding = 0) uniform image2DMS uImage; -layout(rgba8, binding = 1) uniform image2DMSArray uImageArray; - -void main() -{ - vec4 a = imageLoad(uImage, ivec2(1, 2), 2); - vec4 b = imageLoad(uImageArray, ivec3(1, 2, 4), 3); - imageStore(uImage, ivec2(2, 3), 1, a); - imageStore(uImageArray, ivec3(2, 3, 7), 1, b); -} diff --git a/third_party/spirv-cross/shaders/desktop-only/frag/image-query.desktop.frag b/third_party/spirv-cross/shaders/desktop-only/frag/image-query.desktop.frag deleted file mode 100644 index a5cbe011e2..0000000000 --- a/third_party/spirv-cross/shaders/desktop-only/frag/image-query.desktop.frag +++ /dev/null @@ -1,56 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler1D uSampler1D; -layout(binding = 1) uniform sampler2D uSampler2D; -layout(binding = 2) uniform sampler2DArray uSampler2DArray; -layout(binding = 3) uniform sampler3D uSampler3D; -layout(binding = 4) uniform samplerCube uSamplerCube; -layout(binding = 5) uniform samplerCubeArray uSamplerCubeArray; -layout(binding = 6) uniform samplerBuffer uSamplerBuffer; -layout(binding = 7) uniform sampler2DMS uSamplerMS; -layout(binding = 8) uniform sampler2DMSArray uSamplerMSArray; - -layout(r32f, binding = 9) uniform image1D uImage1D; -layout(r32f, binding = 10) uniform image2D uImage2D; -layout(r32f, binding = 11) uniform image2DArray uImage2DArray; -layout(r32f, binding = 12) uniform image3D uImage3D; -layout(r32f, binding = 13) uniform imageCube uImageCube; -layout(r32f, binding = 14) uniform imageCubeArray uImageCubeArray; -layout(r32f, binding = 15) uniform imageBuffer uImageBuffer; -layout(r32f, binding = 16) uniform image2DMS uImageMS; -layout(r32f, binding = 17) uniform image2DMSArray uImageMSArray; - -void main() -{ - int a = textureSize(uSampler1D, 0); - ivec2 b = textureSize(uSampler2D, 0); - ivec3 c = textureSize(uSampler2DArray, 0); - ivec3 d = textureSize(uSampler3D, 0); - ivec2 e = textureSize(uSamplerCube, 0); - ivec3 f = textureSize(uSamplerCubeArray, 0); - int g = textureSize(uSamplerBuffer); - ivec2 h = textureSize(uSamplerMS); - ivec3 i = textureSize(uSamplerMSArray); - - int l0 = textureQueryLevels(uSampler1D); - int l1 = textureQueryLevels(uSampler2D); - int l2 = textureQueryLevels(uSampler2DArray); - int l3 = textureQueryLevels(uSampler3D); - int l4 = textureQueryLevels(uSamplerCube); - int l5 = textureQueryLevels(uSamplerCubeArray); - - a = imageSize(uImage1D); - b = imageSize(uImage2D); - c = imageSize(uImage2DArray); - d = imageSize(uImage3D); - e = imageSize(uImageCube); - f = imageSize(uImageCubeArray); - g = imageSize(uImageBuffer); - h = imageSize(uImageMS); - i = imageSize(uImageMSArray); - - int s0 = textureSamples(uSamplerMS); - int s1 = textureSamples(uSamplerMSArray); - int s2 = imageSamples(uImageMS); - int s3 = imageSamples(uImageMSArray); -} diff --git a/third_party/spirv-cross/shaders/desktop-only/frag/image-size.frag b/third_party/spirv-cross/shaders/desktop-only/frag/image-size.frag deleted file mode 100644 index ffd0bfa20d..0000000000 --- a/third_party/spirv-cross/shaders/desktop-only/frag/image-size.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; -layout(r32f, set = 0, binding = 0) uniform image2D uImage1; -layout(r32f, set = 0, binding = 1) uniform image2D uImage2; - -void main() -{ - FragColor = vec4(imageSize(uImage1), imageSize(uImage2)); -} diff --git a/third_party/spirv-cross/shaders/desktop-only/frag/image-size.no-qualifier-deduction.frag b/third_party/spirv-cross/shaders/desktop-only/frag/image-size.no-qualifier-deduction.frag deleted file mode 100644 index ffd0bfa20d..0000000000 --- a/third_party/spirv-cross/shaders/desktop-only/frag/image-size.no-qualifier-deduction.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; -layout(r32f, set = 0, binding = 0) uniform image2D uImage1; -layout(r32f, set = 0, binding = 1) uniform image2D uImage2; - -void main() -{ - FragColor = vec4(imageSize(uImage1), imageSize(uImage2)); -} diff --git a/third_party/spirv-cross/shaders/desktop-only/frag/in-block-qualifiers.frag b/third_party/spirv-cross/shaders/desktop-only/frag/in-block-qualifiers.frag deleted file mode 100644 index f22096e6d1..0000000000 --- a/third_party/spirv-cross/shaders/desktop-only/frag/in-block-qualifiers.frag +++ /dev/null @@ -1,20 +0,0 @@ -#version 450 - -layout(location = 0) in VertexData { - flat float f; - centroid vec4 g; - flat int h; - float i; -} vin; - -layout(location = 4) in flat float f; -layout(location = 5) in centroid vec4 g; -layout(location = 6) in flat int h; -layout(location = 7) in sample float i; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vin.f + vin.g + float(vin.h) + vin.i + f + g + float(h) + i; -} diff --git a/third_party/spirv-cross/shaders/desktop-only/frag/layout-component.desktop.frag b/third_party/spirv-cross/shaders/desktop-only/frag/layout-component.desktop.frag deleted file mode 100644 index fade67ba69..0000000000 --- a/third_party/spirv-cross/shaders/desktop-only/frag/layout-component.desktop.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 -layout(location = 0, component = 0) in vec2 v0; -layout(location = 0, component = 2) in float v1; -layout(location = 0) out vec2 FragColor; - -in Vertex -{ - layout(location = 1, component = 2) in float v3; -}; - -void main() -{ - FragColor = v0 + v1 + v3; -} diff --git a/third_party/spirv-cross/shaders/desktop-only/frag/query-levels.desktop.frag b/third_party/spirv-cross/shaders/desktop-only/frag/query-levels.desktop.frag deleted file mode 100644 index 3a6977611b..0000000000 --- a/third_party/spirv-cross/shaders/desktop-only/frag/query-levels.desktop.frag +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler2D uSampler; -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(textureQueryLevels(uSampler)); -} diff --git a/third_party/spirv-cross/shaders/desktop-only/frag/query-lod.desktop.frag b/third_party/spirv-cross/shaders/desktop-only/frag/query-lod.desktop.frag deleted file mode 100644 index 0cb160402f..0000000000 --- a/third_party/spirv-cross/shaders/desktop-only/frag/query-lod.desktop.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 - -layout(location = 0) in vec2 vTexCoord; -layout(binding = 0) uniform sampler2D uSampler; -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = textureQueryLod(uSampler, vTexCoord).xyxy; -} diff --git a/third_party/spirv-cross/shaders/desktop-only/frag/sampler-ms-query.desktop.frag b/third_party/spirv-cross/shaders/desktop-only/frag/sampler-ms-query.desktop.frag deleted file mode 100644 index f707ed5c41..0000000000 --- a/third_party/spirv-cross/shaders/desktop-only/frag/sampler-ms-query.desktop.frag +++ /dev/null @@ -1,17 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; -layout(binding = 0) uniform sampler2DMS uSampler; -layout(binding = 1) uniform sampler2DMSArray uSamplerArray; -layout(rgba8, binding = 2) uniform image2DMS uImage; -layout(rgba8, binding = 3) uniform image2DMSArray uImageArray; - -void main() -{ - FragColor = - vec4( - textureSamples(uSampler) + - textureSamples(uSamplerArray) + - imageSamples(uImage) + - imageSamples(uImageArray)); -} diff --git a/third_party/spirv-cross/shaders/desktop-only/frag/stencil-export.desktop.frag b/third_party/spirv-cross/shaders/desktop-only/frag/stencil-export.desktop.frag deleted file mode 100644 index ebe753fb28..0000000000 --- a/third_party/spirv-cross/shaders/desktop-only/frag/stencil-export.desktop.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 -#extension GL_ARB_shader_stencil_export : require - -layout(location = 0) out vec4 MRT0; -layout(location = 1) out vec4 MRT1; -void main() -{ - MRT0 = vec4(1.0); - MRT1 = vec4(1.0, 0.0, 1.0, 1.0); - gl_FragStencilRefARB = 100; -} diff --git a/third_party/spirv-cross/shaders/desktop-only/frag/texture-proj-shadow.desktop.frag b/third_party/spirv-cross/shaders/desktop-only/frag/texture-proj-shadow.desktop.frag deleted file mode 100644 index 0c4cf8f5a8..0000000000 --- a/third_party/spirv-cross/shaders/desktop-only/frag/texture-proj-shadow.desktop.frag +++ /dev/null @@ -1,21 +0,0 @@ -#version 450 - -layout(binding = 0) uniform sampler1DShadow uShadow1D; -layout(binding = 1) uniform sampler2DShadow uShadow2D; -layout(binding = 2) uniform sampler1D uSampler1D; -layout(binding = 3) uniform sampler2D uSampler2D; -layout(binding = 4) uniform sampler3D uSampler3D; - -layout(location = 0) out float FragColor; -layout(location = 0) in vec3 vClip3; -layout(location = 1) in vec4 vClip4; -layout(location = 2) in vec2 vClip2; - -void main() -{ - FragColor = textureProj(uShadow1D, vClip4); - FragColor = textureProj(uShadow2D, vClip4); - FragColor = textureProj(uSampler1D, vClip2).x; - FragColor = textureProj(uSampler2D, vClip3).x; - FragColor = textureProj(uSampler3D, vClip4).x; -} diff --git a/third_party/spirv-cross/shaders/desktop-only/geom/basic.desktop.sso.geom b/third_party/spirv-cross/shaders/desktop-only/geom/basic.desktop.sso.geom deleted file mode 100644 index f3d331dd15..0000000000 --- a/third_party/spirv-cross/shaders/desktop-only/geom/basic.desktop.sso.geom +++ /dev/null @@ -1,37 +0,0 @@ -#version 450 - -layout(triangles, invocations = 4) in; -layout(triangle_strip, max_vertices = 3) out; - -in gl_PerVertex -{ - vec4 gl_Position; -} gl_in[]; - -out gl_PerVertex -{ - vec4 gl_Position; -}; - -layout(location = 0) in VertexData { - vec3 normal; -} vin[]; - -layout(location = 0) out vec3 vNormal; - -void main() -{ - gl_Position = gl_in[0].gl_Position; - vNormal = vin[0].normal + float(gl_InvocationID); - EmitVertex(); - - gl_Position = gl_in[1].gl_Position; - vNormal = vin[1].normal + 4.0 * float(gl_InvocationID); - EmitVertex(); - - gl_Position = gl_in[2].gl_Position; - vNormal = vin[2].normal + 2.0 * float(gl_InvocationID); - EmitVertex(); - - EndPrimitive(); -} diff --git a/third_party/spirv-cross/shaders/desktop-only/geom/viewport-index.desktop.geom b/third_party/spirv-cross/shaders/desktop-only/geom/viewport-index.desktop.geom deleted file mode 100644 index e02e81daf6..0000000000 --- a/third_party/spirv-cross/shaders/desktop-only/geom/viewport-index.desktop.geom +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 - -layout(triangles) in; -layout(triangle_strip) out; -layout(max_vertices = 4) out; - -void main() -{ - gl_ViewportIndex = 1; -} - diff --git a/third_party/spirv-cross/shaders/desktop-only/tesc/basic.desktop.sso.tesc b/third_party/spirv-cross/shaders/desktop-only/tesc/basic.desktop.sso.tesc deleted file mode 100644 index 8ff739b0af..0000000000 --- a/third_party/spirv-cross/shaders/desktop-only/tesc/basic.desktop.sso.tesc +++ /dev/null @@ -1,28 +0,0 @@ -#version 450 -layout(vertices = 1) out; - -in gl_PerVertex -{ - vec4 gl_Position; -} gl_in[gl_MaxPatchVertices]; - -out gl_PerVertex -{ - vec4 gl_Position; -} gl_out[1]; - -layout(location = 0) patch out vec3 vFoo; - - -void main() -{ - gl_TessLevelInner[0] = 8.9; - gl_TessLevelInner[1] = 6.9; - gl_TessLevelOuter[0] = 8.9; - gl_TessLevelOuter[1] = 6.9; - gl_TessLevelOuter[2] = 3.9; - gl_TessLevelOuter[3] = 4.9; - vFoo = vec3(1.0); - - gl_out[gl_InvocationID].gl_Position = gl_in[0].gl_Position + gl_in[1].gl_Position; -} diff --git a/third_party/spirv-cross/shaders/desktop-only/tese/triangle.desktop.sso.tese b/third_party/spirv-cross/shaders/desktop-only/tese/triangle.desktop.sso.tese deleted file mode 100644 index c964fbe263..0000000000 --- a/third_party/spirv-cross/shaders/desktop-only/tese/triangle.desktop.sso.tese +++ /dev/null @@ -1,22 +0,0 @@ -#version 450 - -layout(cw, triangles, fractional_even_spacing) in; - -in gl_PerVertex -{ - vec4 gl_Position; -} gl_in[gl_MaxPatchVertices]; - -out gl_PerVertex -{ - vec4 gl_Position; -}; - -void main() -{ - gl_Position = - gl_in[0].gl_Position * gl_TessCoord.x + - gl_in[1].gl_Position * gl_TessCoord.y + - gl_in[2].gl_Position * gl_TessCoord.z; -} - diff --git a/third_party/spirv-cross/shaders/desktop-only/vert/basic.desktop.sso.vert b/third_party/spirv-cross/shaders/desktop-only/vert/basic.desktop.sso.vert deleted file mode 100644 index 9ddab08cda..0000000000 --- a/third_party/spirv-cross/shaders/desktop-only/vert/basic.desktop.sso.vert +++ /dev/null @@ -1,20 +0,0 @@ -#version 450 - -out gl_PerVertex -{ - vec4 gl_Position; -}; - -layout(std140) uniform UBO -{ - mat4 uMVP; -}; -layout(location = 0) in vec4 aVertex; -layout(location = 1) in vec3 aNormal; -layout(location = 0) out vec3 vNormal; - -void main() -{ - gl_Position = uMVP * aVertex; - vNormal = aNormal; -} diff --git a/third_party/spirv-cross/shaders/desktop-only/vert/clip-cull-distance.desktop.sso.vert b/third_party/spirv-cross/shaders/desktop-only/vert/clip-cull-distance.desktop.sso.vert deleted file mode 100644 index 1489cc7a15..0000000000 --- a/third_party/spirv-cross/shaders/desktop-only/vert/clip-cull-distance.desktop.sso.vert +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 -out float gl_ClipDistance[4]; -out float gl_CullDistance[3]; - -void main() -{ - gl_Position = vec4(1.0); - gl_ClipDistance[0] = 0.0; - gl_ClipDistance[1] = 0.0; - gl_ClipDistance[2] = 0.0; - gl_ClipDistance[3] = 0.0; - gl_CullDistance[1] = 4.0; -} diff --git a/third_party/spirv-cross/shaders/desktop-only/vert/clip-cull-distance.desktop.vert b/third_party/spirv-cross/shaders/desktop-only/vert/clip-cull-distance.desktop.vert deleted file mode 100644 index 1489cc7a15..0000000000 --- a/third_party/spirv-cross/shaders/desktop-only/vert/clip-cull-distance.desktop.vert +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 -out float gl_ClipDistance[4]; -out float gl_CullDistance[3]; - -void main() -{ - gl_Position = vec4(1.0); - gl_ClipDistance[0] = 0.0; - gl_ClipDistance[1] = 0.0; - gl_ClipDistance[2] = 0.0; - gl_ClipDistance[3] = 0.0; - gl_CullDistance[1] = 4.0; -} diff --git a/third_party/spirv-cross/shaders/desktop-only/vert/out-block-qualifiers.vert b/third_party/spirv-cross/shaders/desktop-only/vert/out-block-qualifiers.vert deleted file mode 100644 index c1e409fb4c..0000000000 --- a/third_party/spirv-cross/shaders/desktop-only/vert/out-block-qualifiers.vert +++ /dev/null @@ -1,26 +0,0 @@ -#version 450 - -layout(location = 0) out VertexData { - flat float f; - centroid vec4 g; - flat int h; - float i; -} vout; - -layout(location = 4) out flat float f; -layout(location = 5) out centroid vec4 g; -layout(location = 6) out flat int h; -layout(location = 7) out float i; - -void main() -{ - vout.f = 10.0; - vout.g = vec4(20.0); - vout.h = 20; - vout.i = 30.0; - - f = 10.0; - g = vec4(20.0); - h = 20; - i = 30.0; -} diff --git a/third_party/spirv-cross/shaders/desktop-only/vert/shader-draw-parameters-450.desktop.vk.vert b/third_party/spirv-cross/shaders/desktop-only/vert/shader-draw-parameters-450.desktop.vk.vert deleted file mode 100644 index b5cde02705..0000000000 --- a/third_party/spirv-cross/shaders/desktop-only/vert/shader-draw-parameters-450.desktop.vk.vert +++ /dev/null @@ -1,12 +0,0 @@ -#version 450 -#extension GL_ARB_shader_draw_parameters : enable - -out gl_PerVertex -{ - vec4 gl_Position; -}; - -void main() -{ - gl_Position = vec4(gl_BaseVertexARB, gl_BaseInstanceARB, gl_DrawIDARB, 1); -} diff --git a/third_party/spirv-cross/shaders/desktop-only/vert/shader-draw-parameters.desktop.vk.vert b/third_party/spirv-cross/shaders/desktop-only/vert/shader-draw-parameters.desktop.vk.vert deleted file mode 100644 index 997804eceb..0000000000 --- a/third_party/spirv-cross/shaders/desktop-only/vert/shader-draw-parameters.desktop.vk.vert +++ /dev/null @@ -1,11 +0,0 @@ -#version 460 - -out gl_PerVertex -{ - vec4 gl_Position; -}; - -void main() -{ - gl_Position = vec4(gl_BaseVertex, gl_BaseInstance, gl_DrawID, 1); -} diff --git a/third_party/spirv-cross/shaders/flatten/array.flatten.vert b/third_party/spirv-cross/shaders/flatten/array.flatten.vert deleted file mode 100644 index fa6da076c9..0000000000 --- a/third_party/spirv-cross/shaders/flatten/array.flatten.vert +++ /dev/null @@ -1,19 +0,0 @@ -#version 310 es - -layout(std140) uniform UBO -{ - vec4 A4[5][4][2]; - mat4 uMVP; - vec4 A1[2]; - vec4 A2[2][3]; - float A3[3]; - vec4 Offset; -}; -layout(location = 0) in vec4 aVertex; - -void main() -{ - vec4 a4 = A4[2][3][1]; // 2 * (4 * 2) + 3 * 2 + 1 = 16 + 6 + 1 = 23. - vec4 offset = A2[1][1] + A1[1] + A3[2]; - gl_Position = uMVP * aVertex + Offset + offset; -} diff --git a/third_party/spirv-cross/shaders/flatten/basic.flatten.vert b/third_party/spirv-cross/shaders/flatten/basic.flatten.vert deleted file mode 100644 index e60a9067b1..0000000000 --- a/third_party/spirv-cross/shaders/flatten/basic.flatten.vert +++ /dev/null @@ -1,16 +0,0 @@ -#version 310 es - -layout(std140) uniform UBO -{ - mat4 uMVP; -}; - -layout(location = 0) in vec4 aVertex; -layout(location = 1) in vec3 aNormal; -layout(location = 0) out vec3 vNormal; - -void main() -{ - gl_Position = uMVP * aVertex; - vNormal = aNormal; -} diff --git a/third_party/spirv-cross/shaders/flatten/copy.flatten.vert b/third_party/spirv-cross/shaders/flatten/copy.flatten.vert deleted file mode 100644 index 4f1b8805e7..0000000000 --- a/third_party/spirv-cross/shaders/flatten/copy.flatten.vert +++ /dev/null @@ -1,34 +0,0 @@ -#version 310 es - -struct Light -{ - vec3 Position; - float Radius; - - vec4 Color; -}; - -layout(std140) uniform UBO -{ - mat4 uMVP; - - Light lights[4]; -}; - -layout(location = 0) in vec4 aVertex; -layout(location = 1) in vec3 aNormal; -layout(location = 0) out vec4 vColor; - -void main() -{ - gl_Position = uMVP * aVertex; - - vColor = vec4(0.0); - - for (int i = 0; i < 4; ++i) - { - Light light = lights[i]; - vec3 L = aVertex.xyz - light.Position; - vColor += dot(aNormal, normalize(L)) * (clamp(1.0 - length(L) / light.Radius, 0.0, 1.0) * lights[i].Color); - } -} diff --git a/third_party/spirv-cross/shaders/flatten/dynamic.flatten.vert b/third_party/spirv-cross/shaders/flatten/dynamic.flatten.vert deleted file mode 100644 index a341d45288..0000000000 --- a/third_party/spirv-cross/shaders/flatten/dynamic.flatten.vert +++ /dev/null @@ -1,33 +0,0 @@ -#version 310 es - -struct Light -{ - vec3 Position; - float Radius; - - vec4 Color; -}; - -layout(std140) uniform UBO -{ - mat4 uMVP; - - Light lights[4]; -}; - -layout(location = 0) in vec4 aVertex; -layout(location = 1) in vec3 aNormal; -layout(location = 0) out vec4 vColor; - -void main() -{ - gl_Position = uMVP * aVertex; - - vColor = vec4(0.0); - - for (int i = 0; i < 4; ++i) - { - vec3 L = aVertex.xyz - lights[i].Position; - vColor += dot(aNormal, normalize(L)) * (clamp(1.0 - length(L) / lights[i].Radius, 0.0, 1.0) * lights[i].Color); - } -} diff --git a/third_party/spirv-cross/shaders/flatten/matrix-conversion.flatten.frag b/third_party/spirv-cross/shaders/flatten/matrix-conversion.flatten.frag deleted file mode 100644 index 427825c340..0000000000 --- a/third_party/spirv-cross/shaders/flatten/matrix-conversion.flatten.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es -precision mediump float; -layout(location = 0) out vec3 FragColor; -layout(location = 0) flat in vec3 vNormal; - -layout(binding = 0, std140) uniform UBO -{ - mat4 m; -}; - -void main() -{ - FragColor = mat3(m) * vNormal; -} diff --git a/third_party/spirv-cross/shaders/flatten/matrixindex.flatten.vert b/third_party/spirv-cross/shaders/flatten/matrixindex.flatten.vert deleted file mode 100644 index 0ee7838432..0000000000 --- a/third_party/spirv-cross/shaders/flatten/matrixindex.flatten.vert +++ /dev/null @@ -1,25 +0,0 @@ -#version 310 es - -layout(std140) uniform UBO -{ - layout(column_major) mat4 M1C; - layout(row_major) mat4 M1R; - layout(column_major) mat2x4 M2C; - layout(row_major) mat2x4 M2R; -}; - -layout(location = 0) out vec4 oA; -layout(location = 1) out vec4 oB; -layout(location = 2) out vec4 oC; -layout(location = 3) out vec4 oD; -layout(location = 4) out vec4 oE; - -void main() -{ - gl_Position = vec4(0.0); - oA = M1C[1]; - oB = M1R[1]; - oC = M2C[1]; - oD = M2R[0]; - oE = vec4(M1C[1][2], M1R[1][2], M2C[1][2], M2R[1][2]); -} diff --git a/third_party/spirv-cross/shaders/flatten/multiindex.flatten.vert b/third_party/spirv-cross/shaders/flatten/multiindex.flatten.vert deleted file mode 100644 index 0b471d86e0..0000000000 --- a/third_party/spirv-cross/shaders/flatten/multiindex.flatten.vert +++ /dev/null @@ -1,13 +0,0 @@ -#version 310 es - -layout(std140) uniform UBO -{ - vec4 Data[3][5]; -}; - -layout(location = 0) in ivec2 aIndex; - -void main() -{ - gl_Position = Data[aIndex.x][aIndex.y]; -} diff --git a/third_party/spirv-cross/shaders/flatten/push-constant.flatten.vert b/third_party/spirv-cross/shaders/flatten/push-constant.flatten.vert deleted file mode 100644 index c7b1b42e1b..0000000000 --- a/third_party/spirv-cross/shaders/flatten/push-constant.flatten.vert +++ /dev/null @@ -1,17 +0,0 @@ -#version 310 es - -layout(push_constant, std430) uniform PushMe -{ - mat4 MVP; - mat2 Rot; // The MatrixStride will be 8 here. - float Arr[4]; -} registers; - -layout(location = 0) in vec2 Rot; -layout(location = 1) in vec4 Pos; -layout(location = 0) out vec2 vRot; -void main() -{ - gl_Position = registers.MVP * Pos; - vRot = registers.Rot * Rot + registers.Arr[2]; // Constant access should work even if array stride is just 4 here. -} diff --git a/third_party/spirv-cross/shaders/flatten/rowmajor.flatten.vert b/third_party/spirv-cross/shaders/flatten/rowmajor.flatten.vert deleted file mode 100644 index 88c468c8f2..0000000000 --- a/third_party/spirv-cross/shaders/flatten/rowmajor.flatten.vert +++ /dev/null @@ -1,16 +0,0 @@ -#version 310 es - -layout(std140) uniform UBO -{ - layout(column_major) mat4 uMVPR; - layout(row_major) mat4 uMVPC; - layout(row_major) mat2x4 uMVP; -}; - -layout(location = 0) in vec4 aVertex; - -void main() -{ - vec2 v = aVertex * uMVP; - gl_Position = uMVPR * aVertex + uMVPC * aVertex; -} diff --git a/third_party/spirv-cross/shaders/flatten/struct.flatten.vert b/third_party/spirv-cross/shaders/flatten/struct.flatten.vert deleted file mode 100644 index 936bb41b85..0000000000 --- a/third_party/spirv-cross/shaders/flatten/struct.flatten.vert +++ /dev/null @@ -1,30 +0,0 @@ -#version 310 es - -struct Light -{ - vec3 Position; - float Radius; - - vec4 Color; -}; - -layout(std140) uniform UBO -{ - mat4 uMVP; - - Light light; -}; - -layout(location = 0) in vec4 aVertex; -layout(location = 1) in vec3 aNormal; -layout(location = 0) out vec4 vColor; - -void main() -{ - gl_Position = uMVP * aVertex; - - vColor = vec4(0.0); - - vec3 L = aVertex.xyz - light.Position; - vColor += dot(aNormal, normalize(L)) * (clamp(1.0 - length(L) / light.Radius, 0.0, 1.0) * light.Color); -} diff --git a/third_party/spirv-cross/shaders/flatten/struct.rowmajor.flatten.vert b/third_party/spirv-cross/shaders/flatten/struct.rowmajor.flatten.vert deleted file mode 100644 index 231389b8f4..0000000000 --- a/third_party/spirv-cross/shaders/flatten/struct.rowmajor.flatten.vert +++ /dev/null @@ -1,26 +0,0 @@ -#version 310 es - -struct Foo -{ - mat3x4 MVP0; - mat3x4 MVP1; -}; - -layout(std140, binding = 0) uniform UBO -{ - layout(row_major) Foo foo; -}; - -layout(location = 0) in vec4 v0; -layout(location = 1) in vec4 v1; -layout(location = 0) out vec3 V0; -layout(location = 1) out vec3 V1; - -void main() -{ - Foo f = foo; - vec3 a = v0 * f.MVP0; - vec3 b = v1 * f.MVP1; - V0 = a; - V1 = b; -} diff --git a/third_party/spirv-cross/shaders/flatten/swizzle.flatten.vert b/third_party/spirv-cross/shaders/flatten/swizzle.flatten.vert deleted file mode 100644 index fafff7734e..0000000000 --- a/third_party/spirv-cross/shaders/flatten/swizzle.flatten.vert +++ /dev/null @@ -1,47 +0,0 @@ -#version 310 es - -// comments note the 16b alignment boundaries (see GL spec 7.6.2.2 Standard Uniform Block Layout) -layout(std140, binding = 0) uniform UBO -{ - // 16b boundary - vec4 A; - // 16b boundary - vec2 B0; - vec2 B1; - // 16b boundary - float C0; - // 16b boundary (vec3 is aligned to 16b) - vec3 C1; - // 16b boundary - vec3 D0; - float D1; - // 16b boundary - float E0; - float E1; - float E2; - float E3; - // 16b boundary - float F0; - vec2 F1; - // 16b boundary (vec2 before us is aligned to 8b) - float F2; -}; - -layout(location = 0) out vec4 oA; -layout(location = 1) out vec4 oB; -layout(location = 2) out vec4 oC; -layout(location = 3) out vec4 oD; -layout(location = 4) out vec4 oE; -layout(location = 5) out vec4 oF; - -void main() -{ - gl_Position = vec4(0.0); - - oA = A; - oB = vec4(B0, B1); - oC = vec4(C0, C1); - oD = vec4(D0, D1); - oE = vec4(E0, E1, E2, E3); - oF = vec4(F0, F1, F2); -} diff --git a/third_party/spirv-cross/shaders/flatten/types.flatten.frag b/third_party/spirv-cross/shaders/flatten/types.flatten.frag deleted file mode 100644 index faab5b7e05..0000000000 --- a/third_party/spirv-cross/shaders/flatten/types.flatten.frag +++ /dev/null @@ -1,27 +0,0 @@ -#version 310 es -precision mediump float; - -layout(std140, binding = 0) uniform UBO0 -{ - vec4 a; - vec4 b; -}; - -layout(std140, binding = 0) uniform UBO1 -{ - ivec4 c; - ivec4 d; -}; - -layout(std140, binding = 0) uniform UBO2 -{ - uvec4 e; - uvec4 f; -}; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(c) + vec4(d) + vec4(e) + vec4(f) + a + b; -} diff --git a/third_party/spirv-cross/shaders/frag/array-lut-no-loop-variable.frag b/third_party/spirv-cross/shaders/frag/array-lut-no-loop-variable.frag deleted file mode 100644 index 3493e0cccc..0000000000 --- a/third_party/spirv-cross/shaders/frag/array-lut-no-loop-variable.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 v0; - -void main() -{ - float lut[5] = float[](1.0, 2.0, 3.0, 4.0, 5.0); - for (int i = 0; i < 4; i++, FragColor += lut[i]) - { - } -} diff --git a/third_party/spirv-cross/shaders/frag/avoid-expression-lowering-to-loop.frag b/third_party/spirv-cross/shaders/frag/avoid-expression-lowering-to-loop.frag deleted file mode 100644 index 3473875a40..0000000000 --- a/third_party/spirv-cross/shaders/frag/avoid-expression-lowering-to-loop.frag +++ /dev/null @@ -1,23 +0,0 @@ -#version 310 es -precision mediump float; -precision mediump int; - -layout(binding = 0) uniform mediump sampler2D tex; -layout(binding = 1) uniform Count -{ - float count; -}; - -layout(location = 0) in highp vec4 vertex; -layout(location = 0) out vec4 fragColor; - -void main() { - - highp float size = 1.0 / float(textureSize(tex, 0).x); - float r = 0.0; - float d = dFdx(vertex.x); - for (float i = 0.0; i < count ; i += 1.0) - r += size * d; - - fragColor = vec4(r); -} diff --git a/third_party/spirv-cross/shaders/frag/barycentric-nv.frag b/third_party/spirv-cross/shaders/frag/barycentric-nv.frag deleted file mode 100644 index 340408370b..0000000000 --- a/third_party/spirv-cross/shaders/frag/barycentric-nv.frag +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 -#extension GL_NV_fragment_shader_barycentric : require - -layout(location = 0) out vec2 value; - -layout(set = 0, binding = 0) readonly buffer Vertices -{ - vec2 uvs[]; -}; - -void main () { - int prim = gl_PrimitiveID; - vec2 uv0 = uvs[3 * prim + 0]; - vec2 uv1 = uvs[3 * prim + 1]; - vec2 uv2 = uvs[3 * prim + 2]; - value = gl_BaryCoordNV.x * uv0 + gl_BaryCoordNV.y * uv1 + gl_BaryCoordNV.z * uv2; - value += gl_BaryCoordNoPerspNV.x * uv0 + gl_BaryCoordNoPerspNV.y * uv1 + gl_BaryCoordNoPerspNV.z * uv2; -} diff --git a/third_party/spirv-cross/shaders/frag/basic.frag b/third_party/spirv-cross/shaders/frag/basic.frag deleted file mode 100644 index dd9a8f8507..0000000000 --- a/third_party/spirv-cross/shaders/frag/basic.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) in vec4 vColor; -layout(location = 1) in vec2 vTex; -layout(binding = 0) uniform sampler2D uTex; -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vColor * texture(uTex, vTex); -} - diff --git a/third_party/spirv-cross/shaders/frag/complex-expression-in-access-chain.frag b/third_party/spirv-cross/shaders/frag/complex-expression-in-access-chain.frag deleted file mode 100644 index 47f93931ce..0000000000 --- a/third_party/spirv-cross/shaders/frag/complex-expression-in-access-chain.frag +++ /dev/null @@ -1,29 +0,0 @@ -#version 310 es -precision mediump float; - -struct Foo -{ - vec4 a; - vec4 b; -}; - -layout(binding = 0) buffer UBO -{ - vec4 results[1024]; -}; - -layout(binding = 1) uniform highp isampler2D Buf; -layout(location = 0) flat in int vIn; -layout(location = 1) flat in int vIn2; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - ivec4 coords = texelFetch(Buf, ivec2(gl_FragCoord.xy), 0); - vec4 foo = results[coords.x % 16]; - - int c = vIn * vIn; - int d = vIn2 * vIn2; - FragColor = foo + foo + results[c + d]; -} diff --git a/third_party/spirv-cross/shaders/frag/composite-extract-forced-temporary.frag b/third_party/spirv-cross/shaders/frag/composite-extract-forced-temporary.frag deleted file mode 100644 index 35fdbe8624..0000000000 --- a/third_party/spirv-cross/shaders/frag/composite-extract-forced-temporary.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 310 es -precision mediump float; -layout(binding = 0) uniform sampler2D Texture; -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec2 vTexCoord; - -void main() -{ - float f = texture(Texture, vTexCoord).x; - FragColor = vec4(f * f); -} diff --git a/third_party/spirv-cross/shaders/frag/constant-array.frag b/third_party/spirv-cross/shaders/frag/constant-array.frag deleted file mode 100644 index b862cb1dbf..0000000000 --- a/third_party/spirv-cross/shaders/frag/constant-array.frag +++ /dev/null @@ -1,21 +0,0 @@ -#version 310 es -precision mediump float; -layout(location = 0) out vec4 FragColor; - -layout(location = 0) flat in int index; - -struct Foobar { float a; float b; }; - -vec4 resolve(Foobar f) -{ - return vec4(f.a + f.b); -} - -void main() -{ - const vec4 foo[3] = vec4[](vec4(1.0), vec4(2.0), vec4(3.0)); - const vec4 foobars[2][2] = vec4[][](vec4[](vec4(1.0), vec4(2.0)), vec4[](vec4(8.0), vec4(10.0))); - const Foobar foos[2] = Foobar[](Foobar(10.0, 40.0), Foobar(90.0, 70.0)); - - FragColor = foo[index] + foobars[index][index + 1] + resolve(Foobar(10.0, 20.0)) + resolve(foos[index]); -} diff --git a/third_party/spirv-cross/shaders/frag/constant-composites.frag b/third_party/spirv-cross/shaders/frag/constant-composites.frag deleted file mode 100644 index a12e22ff4f..0000000000 --- a/third_party/spirv-cross/shaders/frag/constant-composites.frag +++ /dev/null @@ -1,20 +0,0 @@ -#version 310 es -precision mediump float; - -float lut[4] = float[](1.0, 4.0, 3.0, 2.0); - -struct Foo -{ - float a; - float b; -}; -Foo foos[2] = Foo[](Foo(10.0, 20.0), Foo(30.0, 40.0)); - -layout(location = 0) out vec4 FragColor; -layout(location = 0) flat in int line; - -void main() -{ - FragColor = vec4(lut[line]); - FragColor += foos[line].a * foos[1 - line].a; -} diff --git a/third_party/spirv-cross/shaders/frag/false-loop-init.frag b/third_party/spirv-cross/shaders/frag/false-loop-init.frag deleted file mode 100644 index 7ce5b52bd7..0000000000 --- a/third_party/spirv-cross/shaders/frag/false-loop-init.frag +++ /dev/null @@ -1,19 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) in vec4 accum; -layout(location = 0) out vec4 result; - -void main() -{ - result = vec4(0.0); - uint j; - for (int i = 0; i < 4; i += int(j)) - { - if (accum.y > 10.0) - j = 40u; - else - j = 30u; - result += accum; - } -} diff --git a/third_party/spirv-cross/shaders/frag/flush_params.frag b/third_party/spirv-cross/shaders/frag/flush_params.frag deleted file mode 100644 index 8a26ad3a28..0000000000 --- a/third_party/spirv-cross/shaders/frag/flush_params.frag +++ /dev/null @@ -1,27 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) out vec4 FragColor; - -struct Structy -{ - vec4 c; -}; - -void foo2(out Structy f) -{ - f.c = vec4(10.0); -} - -Structy foo() -{ - Structy f; - foo2(f); - return f; -} - -void main() -{ - Structy s = foo(); - FragColor = s.c; -} diff --git a/third_party/spirv-cross/shaders/frag/for-loop-continue-control-flow.frag b/third_party/spirv-cross/shaders/frag/for-loop-continue-control-flow.frag deleted file mode 100644 index 1f91cca2a4..0000000000 --- a/third_party/spirv-cross/shaders/frag/for-loop-continue-control-flow.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 -layout(location = 0) out vec4 FragColor; -void main() -{ - FragColor = vec4(0.0); - for (int i = 0; i < 3; (0 > 1) ? 1 : i ++) - { - int a = i; - FragColor[a] += float(i); - } -} diff --git a/third_party/spirv-cross/shaders/frag/for-loop-init.frag b/third_party/spirv-cross/shaders/frag/for-loop-init.frag deleted file mode 100644 index 0cde26765e..0000000000 --- a/third_party/spirv-cross/shaders/frag/for-loop-init.frag +++ /dev/null @@ -1,52 +0,0 @@ -#version 310 es -precision mediump float; -layout(location = 0) out int FragColor; - -void main() -{ - FragColor = 16; - - // Basic loop variable. - for (int i = 0; i < 25; i++) - FragColor += 10; - - // Multiple loop variables. - for (int i = 1, j = 4; i < 30; i++, j += 4) - FragColor += 11; - - // A potential loop variables, but we access it outside the loop, - // so cannot be one. - int k = 0; - for (; k < 20; k++) - FragColor += 12; - k += 3; - FragColor += k; - - // Potential loop variables, but the dominator is not trivial. - int l; - if (k == 40) - { - for (l = 0; l < 40; l++) - FragColor += 13; - return; - } - else - { - l = k; - FragColor += l; - } - - // Vectors cannot be loop variables - for (ivec2 i = ivec2(0); i.x < 10; i.x += 4) - { - FragColor += i.y; - } - - // Check that static expressions can be used before the loop header. - int m = 0; - m = k; - int o = m; - for (; m < 40; m++) - FragColor += m; - FragColor += o; -} diff --git a/third_party/spirv-cross/shaders/frag/frexp-modf.frag b/third_party/spirv-cross/shaders/frag/frexp-modf.frag deleted file mode 100644 index 6a26a4175f..0000000000 --- a/third_party/spirv-cross/shaders/frag/frexp-modf.frag +++ /dev/null @@ -1,24 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) out float FragColor; -layout(location = 0) in float v0; -layout(location = 1) in vec2 v1; - -void main() -{ - int e0; - float f0 = frexp(v0, e0); - f0 = frexp(v0 + 1.0, e0); - - ivec2 e1; - vec2 f1 = frexp(v1, e1); - - float r0; - float m0 = modf(v0, r0); - vec2 r1; - vec2 m1 = modf(v1, r1); - - FragColor = f0 + f1.x + f1.y + m0 + m1.x + m1.y; -} - diff --git a/third_party/spirv-cross/shaders/frag/front-facing.frag b/third_party/spirv-cross/shaders/frag/front-facing.frag deleted file mode 100644 index 90ca1abf4e..0000000000 --- a/third_party/spirv-cross/shaders/frag/front-facing.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 vA; -layout(location = 1) in vec4 vB; - -void main() -{ - if (gl_FrontFacing) - FragColor = vA; - else - FragColor = vB; -} diff --git a/third_party/spirv-cross/shaders/frag/gather-dref.frag b/third_party/spirv-cross/shaders/frag/gather-dref.frag deleted file mode 100644 index a8aac56cb5..0000000000 --- a/third_party/spirv-cross/shaders/frag/gather-dref.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 310 es -precision mediump float; - -layout(binding = 0) uniform mediump sampler2DShadow uT; -layout(location = 0) in vec3 vUV; -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = textureGather(uT, vUV.xy, vUV.z); -} diff --git a/third_party/spirv-cross/shaders/frag/ground.frag b/third_party/spirv-cross/shaders/frag/ground.frag deleted file mode 100755 index d1fcfd4907..0000000000 --- a/third_party/spirv-cross/shaders/frag/ground.frag +++ /dev/null @@ -1,162 +0,0 @@ -#version 310 es -precision mediump float; - -#define DEBUG_NONE 0 -#define DEBUG_DIFFUSE 1 -#define DEBUG_SPECULAR 2 -#define DEBUG_LIGHTING 3 -#define DEBUG_FOG 4 -#define DEBUG DEBUG_NONE - -#define FORWARD 0 -#define DEFERRED 1 -#define DEFERRED_VTEX 2 - -float saturate(float x) { return clamp(x, 0.0, 1.0); } - -layout(std140, binding = 4) uniform GlobalPSData -{ - vec4 g_CamPos; - vec4 g_SunDir; - vec4 g_SunColor; - vec4 g_ResolutionParams; - vec4 g_TimeParams; - vec4 g_FogColor_Distance; -}; - -vec4 ComputeFogFactor(vec3 WorldPos) -{ - vec4 FogData; - vec3 vEye = WorldPos - g_CamPos.xyz; - vec3 nEye = normalize(vEye); - FogData.w = exp(-dot(vEye, vEye) * g_FogColor_Distance.w * 0.75); - - float fog_sun_factor = pow(saturate(dot(nEye, g_SunDir.xyz)), 8.0); - FogData.xyz = mix(vec3(1.0, 1.0, 1.0), vec3(0.6, 0.6, 0.9), nEye.y * 0.5 + 0.5); - FogData.xyz = mix(FogData.xyz, vec3(0.95, 0.87, 0.78), fog_sun_factor); - return FogData; -} - -void ApplyFog(inout vec3 Color, vec4 FogData) -{ - Color = mix(FogData.xyz, Color, FogData.w); -} - -void ApplyLighting(inout mediump vec3 Color, mediump float DiffuseFactor) -{ - mediump vec3 DiffuseLight = g_SunColor.xyz * DiffuseFactor; - mediump vec3 AmbientLight = vec3(0.2, 0.35, 0.55) * 0.5; - mediump vec3 Lighting = DiffuseLight + AmbientLight; -#if DEBUG == DEBUG_LIGHTING - Color = Lighting; -#else - Color *= Lighting; -#endif -} - -#define SPECULAR 0 -#define GLOSSMAP 0 - -void ApplySpecular(inout mediump vec3 Color, mediump vec3 EyeVec, mediump vec3 Normal, mediump vec3 SpecularColor, mediump float Shininess, mediump float FresnelAmount) -{ - mediump vec3 HalfAngle = normalize(-EyeVec + g_SunDir.xyz); - - mediump float v_dot_h = saturate(dot(HalfAngle, -EyeVec)); - mediump float n_dot_l = saturate(dot(Normal, g_SunDir.xyz)); - mediump float n_dot_h = saturate(dot(Normal, HalfAngle)); - mediump float n_dot_v = saturate(dot(-EyeVec, Normal)); - mediump float h_dot_l = saturate(dot(g_SunDir.xyz, HalfAngle)); - - const mediump float roughness_value = 0.25; - - mediump float r_sq = roughness_value * roughness_value; - mediump float n_dot_h_sq = n_dot_h * n_dot_h; - mediump float roughness_a = 1.0 / (4.0 * r_sq * n_dot_h_sq * n_dot_h_sq); - mediump float roughness_b = n_dot_h_sq - 1.0; - mediump float roughness_c = r_sq * n_dot_h_sq; - mediump float roughness = saturate(roughness_a * exp(roughness_b / roughness_c)); - - FresnelAmount = 0.5; - mediump float fresnel_term = pow(1.0 - n_dot_v, 5.0) * (1.0 - FresnelAmount) + FresnelAmount; - - mediump float geo_numerator = 2.0 * n_dot_h; - mediump float geo_denominator = 1.0 / v_dot_h; - mediump float geo_term = min(1.0, min(n_dot_v, n_dot_l) * geo_numerator * geo_denominator); - -#if SPECULAR || GLOSSMAP - Color += SpecularColor * g_SunColor.xyz * fresnel_term * roughness * n_dot_l * geo_term / (n_dot_v * n_dot_l + 0.0001); -#endif - - //Color = vec3(0.025 * 1.0 / (n_dot_v * n_dot_l)); -} -layout(location = 0) in vec2 TexCoord; -layout(location = 1) in vec3 EyeVec; - -layout(binding = 2) uniform sampler2D TexNormalmap; -//layout(binding = 3) uniform sampler2D TexScatteringLUT; - -#define DIFFUSE_ONLY 0 -#define GLOBAL_RENDERER DEFERRED -#define OUTPUT_FEEDBACK_TEXTURE 0 - -#if DIFFUSE_ONLY -layout(location = 0) out vec4 ColorOut; -layout(location = 1) out vec4 NormalOut; -#else -layout(location = 0) out vec4 AlbedoOut; -layout(location = 1) out vec4 SpecularOut; -layout(location = 2) out vec4 NormalOut; -layout(location = 3) out vec4 LightingOut; -#endif - -void Resolve(vec3 Albedo, vec3 Normal, float Roughness, float Metallic) -{ -#if (GLOBAL_RENDERER == FORWARD) || OUTPUT_FEEDBACK_TEXTURE - float Lighting = saturate(dot(Normal, normalize(vec3(1.0, 0.5, 1.0)))); - ColorOut.xyz = Albedo * Lighting; - ColorOut.w = 1.0; -#elif DIFFUSE_ONLY - ColorOut = vec4(Albedo, 0.0); - NormalOut.xyz = Normal * 0.5 + 0.5; - NormalOut.w = 1.0; - - // linearize and map to 0..255 range - ColorOut.w = -0.003921569 / (gl_FragCoord.z - 1.003921569); - ColorOut.w = log2(1.0 + saturate(length(EyeVec.xyz) / 200.0)); - ColorOut.w -= 1.0 / 255.0; -#else - LightingOut = vec4(0.0); - NormalOut = vec4(Normal * 0.5 + 0.5, 0.0); - SpecularOut = vec4(Roughness, Metallic, 0.0, 0.0); - AlbedoOut = vec4(Albedo, 1.0); -#endif -} - -void main() -{ - vec3 Normal = texture(TexNormalmap, TexCoord).xyz * 2.0 - 1.0; - Normal = normalize(Normal); - - vec2 scatter_uv; - scatter_uv.x = saturate(length(EyeVec) / 1000.0); - - vec3 nEye = normalize(EyeVec); - scatter_uv.y = 0.0; //nEye.x * 0.5 + 0.5; - - vec3 Color = vec3(0.1, 0.3, 0.1); - vec3 grass = vec3(0.1, 0.3, 0.1); - vec3 dirt = vec3(0.1, 0.1, 0.1); - vec3 snow = vec3(0.8, 0.8, 0.8); - - float grass_snow = smoothstep(0.0, 0.15, (g_CamPos.y + EyeVec.y) / 200.0); - vec3 base = mix(grass, snow, grass_snow); - - float edge = smoothstep(0.7, 0.75, Normal.y); - Color = mix(dirt, base, edge); - Color *= Color; - - float Roughness = 1.0 - edge * grass_snow; - - Resolve(Color, Normal, Roughness, 0.0); -} - diff --git a/third_party/spirv-cross/shaders/frag/helper-invocation.frag b/third_party/spirv-cross/shaders/frag/helper-invocation.frag deleted file mode 100644 index 1da8c57631..0000000000 --- a/third_party/spirv-cross/shaders/frag/helper-invocation.frag +++ /dev/null @@ -1,21 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec2 vUV; -layout(binding = 0) uniform sampler2D uSampler; - -vec4 foo() -{ - vec4 color; - if (!gl_HelperInvocation) - color = textureLod(uSampler, vUV, 0.0); - else - color = vec4(1.0); - return color; -} - -void main() -{ - FragColor = foo(); -} diff --git a/third_party/spirv-cross/shaders/frag/hoisted-temporary-use-continue-block-as-value.frag b/third_party/spirv-cross/shaders/frag/hoisted-temporary-use-continue-block-as-value.frag deleted file mode 100644 index cc8a648358..0000000000 --- a/third_party/spirv-cross/shaders/frag/hoisted-temporary-use-continue-block-as-value.frag +++ /dev/null @@ -1,24 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) flat in int vA; -layout(location = 1) flat in int vB; - -void main() -{ - FragColor = vec4(0.0); - - int k = 0; - int j; - for (int i = 0; i < vA; i += j) - { - if ((vA + i) == 20) - k = 50; - else if ((vB + i) == 40) - k = 60; - - j = k + 10; - FragColor += 1.0; - } -} diff --git a/third_party/spirv-cross/shaders/frag/image-load-store-uint-coord.asm.frag b/third_party/spirv-cross/shaders/frag/image-load-store-uint-coord.asm.frag deleted file mode 100644 index a9bf1a7497..0000000000 --- a/third_party/spirv-cross/shaders/frag/image-load-store-uint-coord.asm.frag +++ /dev/null @@ -1,103 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos Glslang Reference Front End; 2 -; Bound: 63 -; Schema: 0 - OpCapability Shader - OpCapability SampledBuffer - OpCapability ImageBuffer - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %_entryPointOutput - OpExecutionMode %main OriginUpperLeft - OpSource HLSL 500 - OpName %main "main" - OpName %_main_ "@main(" - OpName %storeTemp "storeTemp" - OpName %RWIm "RWIm" - OpName %v "v" - OpName %RWBuf "RWBuf" - OpName %ROIm "ROIm" - OpName %ROBuf "ROBuf" - OpName %_entryPointOutput "@entryPointOutput" - OpDecorate %RWIm DescriptorSet 0 - OpDecorate %RWIm Binding 1 - OpDecorate %RWBuf DescriptorSet 0 - OpDecorate %RWBuf Binding 0 - OpDecorate %ROIm DescriptorSet 0 - OpDecorate %ROIm Binding 1 - OpDecorate %ROBuf DescriptorSet 0 - OpDecorate %ROBuf Binding 0 - OpDecorate %_entryPointOutput Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 - %8 = OpTypeFunction %v4float -%_ptr_Function_v4float = OpTypePointer Function %v4float - %float_10 = OpConstant %float 10 - %float_0_5 = OpConstant %float 0.5 - %float_8 = OpConstant %float 8 - %float_2 = OpConstant %float 2 - %17 = OpConstantComposite %v4float %float_10 %float_0_5 %float_8 %float_2 - %18 = OpTypeImage %float 2D 0 0 0 2 Rgba32f -%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18 - %RWIm = OpVariable %_ptr_UniformConstant_18 UniformConstant - %uint = OpTypeInt 32 0 - %v2uint = OpTypeVector %uint 2 - %uint_10 = OpConstant %uint 10 - %25 = OpConstantComposite %v2uint %uint_10 %uint_10 - %uint_30 = OpConstant %uint 30 - %30 = OpConstantComposite %v2uint %uint_30 %uint_30 - %32 = OpTypeImage %float Buffer 0 0 0 2 Rgba32f -%_ptr_UniformConstant_32 = OpTypePointer UniformConstant %32 - %RWBuf = OpVariable %_ptr_UniformConstant_32 UniformConstant - %uint_80 = OpConstant %uint 80 - %38 = OpTypeImage %float 2D 0 0 0 1 Unknown - %SampledImage = OpTypeSampledImage %38 -%_ptr_UniformConstant_38 = OpTypePointer UniformConstant %SampledImage - %ROIm = OpVariable %_ptr_UniformConstant_38 UniformConstant - %uint_50 = OpConstant %uint 50 - %uint_60 = OpConstant %uint 60 - %44 = OpConstantComposite %v2uint %uint_50 %uint_60 - %int = OpTypeInt 32 1 - %int_0 = OpConstant %int 0 - %50 = OpTypeImage %float Buffer 0 0 0 1 Rgba32f -%_ptr_UniformConstant_50 = OpTypePointer UniformConstant %50 - %ROBuf = OpVariable %_ptr_UniformConstant_50 UniformConstant -%_ptr_Output_v4float = OpTypePointer Output %v4float -%_entryPointOutput = OpVariable %_ptr_Output_v4float Output - %main = OpFunction %void None %3 - %5 = OpLabel - %62 = OpFunctionCall %v4float %_main_ - OpStore %_entryPointOutput %62 - OpReturn - OpFunctionEnd - %_main_ = OpFunction %v4float None %8 - %10 = OpLabel - %storeTemp = OpVariable %_ptr_Function_v4float Function - %v = OpVariable %_ptr_Function_v4float Function - OpStore %storeTemp %17 - %21 = OpLoad %18 %RWIm - %26 = OpLoad %v4float %storeTemp - OpImageWrite %21 %25 %26 - %28 = OpLoad %18 %RWIm - %31 = OpImageRead %v4float %28 %30 - OpStore %v %31 - %35 = OpLoad %32 %RWBuf - %37 = OpLoad %v4float %v - OpImageWrite %35 %uint_80 %37 - %41 = OpLoad %SampledImage %ROIm - %ROImage = OpImage %38 %41 - %47 = OpImageFetch %v4float %ROImage %44 Lod %int_0 - %48 = OpLoad %v4float %v - %49 = OpFAdd %v4float %48 %47 - OpStore %v %49 - %53 = OpLoad %50 %ROBuf - %54 = OpImageFetch %v4float %53 %uint_80 - %55 = OpLoad %v4float %v - %56 = OpFAdd %v4float %55 %54 - OpStore %v %56 - %57 = OpLoad %v4float %v - OpReturnValue %57 - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/frag/inside-loop-dominated-variable-preservation.frag b/third_party/spirv-cross/shaders/frag/inside-loop-dominated-variable-preservation.frag deleted file mode 100644 index 695bcaea81..0000000000 --- a/third_party/spirv-cross/shaders/frag/inside-loop-dominated-variable-preservation.frag +++ /dev/null @@ -1,24 +0,0 @@ -#version 310 es -precision mediump float; -layout(location = 0) out vec4 FragColor; - -void main() -{ - float v; - bool written = false; - for (int j = 0; j < 10; j++) - { - for (int i = 0; i < 4; i++) - { - float w = 0.0; - if (written) - w += v; - else - v = 20.0; - - v += float(i); - written = true; - } - } - FragColor = vec4(1.0); -} diff --git a/third_party/spirv-cross/shaders/frag/loop-dominator-and-switch-default.frag b/third_party/spirv-cross/shaders/frag/loop-dominator-and-switch-default.frag deleted file mode 100644 index 344d895bf6..0000000000 --- a/third_party/spirv-cross/shaders/frag/loop-dominator-and-switch-default.frag +++ /dev/null @@ -1,34 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) out vec4 fragColor; - -void main() -{ - vec4 f4; - int c = int(f4.x); - - for (int j = 0; j < c; j++) - { - switch (c) - { - case 0: - f4.y = 0.0; - break; - case 1: - f4.y = 1.0; - break; - default: - { - int i = 0; - while (i++ < c) { - f4.y += 0.5; - } - continue; - } - } - f4.y += 0.5; - } - - fragColor = f4; -} diff --git a/third_party/spirv-cross/shaders/frag/lut-promotion.frag b/third_party/spirv-cross/shaders/frag/lut-promotion.frag deleted file mode 100644 index 0cdc8148f9..0000000000 --- a/third_party/spirv-cross/shaders/frag/lut-promotion.frag +++ /dev/null @@ -1,44 +0,0 @@ -#version 310 es -precision mediump float; -layout(location = 0) out float FragColor; -layout(location = 0) flat in int index; - -const float LUT[16] = float[]( - 1.0, 2.0, 3.0, 4.0, - 1.0, 2.0, 3.0, 4.0, - 1.0, 2.0, 3.0, 4.0, - 1.0, 2.0, 3.0, 4.0); - -void main() -{ - // Try reading LUTs, both in branches and not branch. - FragColor = LUT[index]; - if (index < 10) - FragColor += LUT[index ^ 1]; - else - FragColor += LUT[index & 1]; - - // Not declared as a LUT, but can be promoted to one. - vec4 foo[4] = vec4[](vec4(0.0), vec4(1.0), vec4(8.0), vec4(5.0)); - if (index > 30) - { - FragColor += foo[index & 3].y; - } - else - { - FragColor += foo[index & 1].x; - } - - // Not declared as a LUT, but this cannot be promoted, because we have a partial write. - vec4 foobar[4] = vec4[](vec4(0.0), vec4(1.0), vec4(8.0), vec4(5.0)); - if (index > 30) - { - foobar[1].z = 20.0; - } - FragColor += foobar[index & 3].z; - - // Not declared as a LUT, but this cannot be promoted, because we have two complete writes. - vec4 baz[4] = vec4[](vec4(0.0), vec4(1.0), vec4(8.0), vec4(5.0)); - baz = vec4[](vec4(20.0), vec4(30.0), vec4(50.0), vec4(60.0)); - FragColor += baz[index & 3].z; -} diff --git a/third_party/spirv-cross/shaders/frag/mix.frag b/third_party/spirv-cross/shaders/frag/mix.frag deleted file mode 100644 index a5d589dd08..0000000000 --- a/third_party/spirv-cross/shaders/frag/mix.frag +++ /dev/null @@ -1,20 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) in vec4 vIn0; -layout(location = 1) in vec4 vIn1; -layout(location = 2) in float vIn2; -layout(location = 3) in float vIn3; -layout(location = 0) out vec4 FragColor; - -void main() -{ - bvec4 l = bvec4(false, true, false, false); - FragColor = mix(vIn0, vIn1, l); - - bool f = true; - FragColor = vec4(mix(vIn2, vIn3, f)); - - FragColor = f ? vIn0 : vIn1; - FragColor = vec4(f ? vIn2 : vIn3); -} diff --git a/third_party/spirv-cross/shaders/frag/partial-write-preserve.frag b/third_party/spirv-cross/shaders/frag/partial-write-preserve.frag deleted file mode 100644 index 227df95086..0000000000 --- a/third_party/spirv-cross/shaders/frag/partial-write-preserve.frag +++ /dev/null @@ -1,95 +0,0 @@ -#version 310 es -precision mediump float; - -layout(std140, binding = 0) uniform UBO -{ - int some_value; -}; - -struct B -{ - float a; - float b; -}; - -void partial_inout(inout vec4 x) -{ - x.x = 10.0; -} - -void partial_inout(inout B b) -{ - b.b = 40.0; -} - -// Make a complete write, but only conditionally ... -void branchy_inout(inout vec4 v) -{ - v.y = 20.0; - if (some_value == 20) - { - v = vec4(50.0); - } -} - -void branchy_inout(inout B b) -{ - b.b = 20.0; - if (some_value == 20) - { - b = B(10.0, 40.0); - } -} - -void branchy_inout_2(out vec4 v) -{ - if (some_value == 20) - { - v = vec4(50.0); - } - else - { - v = vec4(70.0); - } - v.y = 20.0; -} - -void branchy_inout_2(out B b) -{ - if (some_value == 20) - { - b = B(10.0, 40.0); - } - else - { - b = B(70.0, 70.0); - } - b.b = 20.0; -} - - -void complete_inout(out vec4 x) -{ - x = vec4(50.0); -} - -void complete_inout(out B b) -{ - b = B(100.0, 200.0); -} - -void main() -{ - vec4 a = vec4(10.0); - partial_inout(a); - complete_inout(a); - branchy_inout(a); - branchy_inout_2(a); - - B b = B(10.0, 20.0); - partial_inout(b); - complete_inout(b); - branchy_inout(b); - branchy_inout_2(b); -} - diff --git a/third_party/spirv-cross/shaders/frag/pixel-interlock-ordered.frag b/third_party/spirv-cross/shaders/frag/pixel-interlock-ordered.frag deleted file mode 100644 index 4439f0672b..0000000000 --- a/third_party/spirv-cross/shaders/frag/pixel-interlock-ordered.frag +++ /dev/null @@ -1,22 +0,0 @@ -#version 450 -#extension GL_ARB_fragment_shader_interlock : require - -layout(pixel_interlock_ordered) in; - -layout(binding = 0, rgba8) uniform writeonly image2D img; -layout(binding = 1, r32ui) uniform uimage2D img2; -layout(binding = 2) coherent buffer Buffer -{ - int foo; - uint bar; -}; - -void main() -{ - beginInvocationInterlockARB(); - imageStore(img, ivec2(0, 0), vec4(1.0, 0.0, 0.0, 1.0)); - imageAtomicAdd(img2, ivec2(0, 0), 1u); - foo += 42; - atomicAnd(bar, 0xff); - endInvocationInterlockARB(); -} diff --git a/third_party/spirv-cross/shaders/frag/pixel-interlock-unordered.frag b/third_party/spirv-cross/shaders/frag/pixel-interlock-unordered.frag deleted file mode 100644 index f8fd468c1b..0000000000 --- a/third_party/spirv-cross/shaders/frag/pixel-interlock-unordered.frag +++ /dev/null @@ -1,22 +0,0 @@ -#version 450 -#extension GL_ARB_fragment_shader_interlock : require - -layout(pixel_interlock_unordered) in; - -layout(binding = 0, rgba8) uniform writeonly image2D img; -layout(binding = 1, r32ui) uniform uimage2D img2; -layout(binding = 2) coherent buffer Buffer -{ - int foo; - uint bar; -}; - -void main() -{ - beginInvocationInterlockARB(); - imageStore(img, ivec2(0, 0), vec4(1.0, 0.0, 0.0, 1.0)); - imageAtomicAdd(img2, ivec2(0, 0), 1u); - foo += 42; - atomicAnd(bar, 0xff); - endInvocationInterlockARB(); -} diff --git a/third_party/spirv-cross/shaders/frag/pls.frag b/third_party/spirv-cross/shaders/frag/pls.frag deleted file mode 100644 index e3863e4e0e..0000000000 --- a/third_party/spirv-cross/shaders/frag/pls.frag +++ /dev/null @@ -1,20 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) in vec4 PLSIn0; -layout(location = 1) in vec4 PLSIn1; -layout(location = 2) in vec4 PLSIn2; -layout(location = 3) in vec4 PLSIn3; - -layout(location = 0) out vec4 PLSOut0; -layout(location = 1) out vec4 PLSOut1; -layout(location = 2) out vec4 PLSOut2; -layout(location = 3) out vec4 PLSOut3; - -void main() -{ - PLSOut0 = 2.0 * PLSIn0; - PLSOut1 = 6.0 * PLSIn1; - PLSOut2 = 7.0 * PLSIn2; - PLSOut3 = 4.0 * PLSIn3; -} diff --git a/third_party/spirv-cross/shaders/frag/post-depth-coverage-es.frag b/third_party/spirv-cross/shaders/frag/post-depth-coverage-es.frag deleted file mode 100644 index ecc57e4a8f..0000000000 --- a/third_party/spirv-cross/shaders/frag/post-depth-coverage-es.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 310 es -#extension GL_EXT_post_depth_coverage : require -#extension GL_OES_sample_variables : require -precision mediump float; - -layout(early_fragment_tests, post_depth_coverage) in; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(gl_SampleMaskIn[0]); -} diff --git a/third_party/spirv-cross/shaders/frag/post-depth-coverage.frag b/third_party/spirv-cross/shaders/frag/post-depth-coverage.frag deleted file mode 100644 index 4f134b4f3b..0000000000 --- a/third_party/spirv-cross/shaders/frag/post-depth-coverage.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 -#extension GL_ARB_post_depth_coverage : require - -layout(post_depth_coverage) in; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vec4(gl_SampleMaskIn[0]); -} diff --git a/third_party/spirv-cross/shaders/frag/round-even.frag b/third_party/spirv-cross/shaders/frag/round-even.frag deleted file mode 100644 index 594ac16293..0000000000 --- a/third_party/spirv-cross/shaders/frag/round-even.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 - -layout(location = 0) in vec4 vA; -layout(location = 1) in float vB; -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = roundEven(vA); - FragColor *= roundEven(vB); -} diff --git a/third_party/spirv-cross/shaders/frag/round.frag b/third_party/spirv-cross/shaders/frag/round.frag deleted file mode 100644 index c87b0abbff..0000000000 --- a/third_party/spirv-cross/shaders/frag/round.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 - -layout(location = 0) in vec4 vA; -layout(location = 1) in float vB; -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = round(vA); - FragColor *= round(vB); -} diff --git a/third_party/spirv-cross/shaders/frag/sample-interlock-ordered.frag b/third_party/spirv-cross/shaders/frag/sample-interlock-ordered.frag deleted file mode 100644 index fa80dc9f82..0000000000 --- a/third_party/spirv-cross/shaders/frag/sample-interlock-ordered.frag +++ /dev/null @@ -1,22 +0,0 @@ -#version 450 -#extension GL_ARB_fragment_shader_interlock : require - -layout(sample_interlock_ordered) in; - -layout(binding = 0, rgba8) uniform writeonly image2D img; -layout(binding = 1, r32ui) uniform uimage2D img2; -layout(binding = 2) coherent buffer Buffer -{ - int foo; - uint bar; -}; - -void main() -{ - beginInvocationInterlockARB(); - imageStore(img, ivec2(0, 0), vec4(1.0, 0.0, 0.0, 1.0)); - imageAtomicAdd(img2, ivec2(0, 0), 1u); - foo += 42; - atomicAnd(bar, gl_SampleMaskIn[0]); - endInvocationInterlockARB(); -} diff --git a/third_party/spirv-cross/shaders/frag/sample-interlock-unordered.frag b/third_party/spirv-cross/shaders/frag/sample-interlock-unordered.frag deleted file mode 100644 index 6fe5437f3a..0000000000 --- a/third_party/spirv-cross/shaders/frag/sample-interlock-unordered.frag +++ /dev/null @@ -1,22 +0,0 @@ -#version 450 -#extension GL_ARB_fragment_shader_interlock : require - -layout(sample_interlock_unordered) in; - -layout(binding = 0, rgba8) uniform writeonly image2D img; -layout(binding = 1, r32ui) uniform uimage2D img2; -layout(binding = 2) coherent buffer Buffer -{ - int foo; - uint bar; -}; - -void main() -{ - beginInvocationInterlockARB(); - imageStore(img, ivec2(0, 0), vec4(1.0, 0.0, 0.0, 1.0)); - imageAtomicAdd(img2, ivec2(0, 0), 1u); - foo += 42; - atomicAnd(bar, 0xff); - endInvocationInterlockARB(); -} diff --git a/third_party/spirv-cross/shaders/frag/sample-parameter.frag b/third_party/spirv-cross/shaders/frag/sample-parameter.frag deleted file mode 100644 index 8470bfd672..0000000000 --- a/third_party/spirv-cross/shaders/frag/sample-parameter.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 310 es -#extension GL_OES_sample_variables : require -precision mediump float; - -layout(location = 0) out vec2 FragColor; - -void main() -{ - FragColor = gl_SamplePosition + vec2(gl_SampleMaskIn[0]) + float(gl_SampleID); - gl_SampleMask[0] = 1; -} diff --git a/third_party/spirv-cross/shaders/frag/sampler-ms.frag b/third_party/spirv-cross/shaders/frag/sampler-ms.frag deleted file mode 100644 index 6593928271..0000000000 --- a/third_party/spirv-cross/shaders/frag/sampler-ms.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 310 es -precision mediump float; -precision highp int; - -layout(binding = 0) uniform mediump sampler2DMS uSampler; -layout(location = 0) out vec4 FragColor; - -void main() -{ - ivec2 coord = ivec2(gl_FragCoord.xy); - FragColor = - texelFetch(uSampler, coord, 0) + - texelFetch(uSampler, coord, 1) + - texelFetch(uSampler, coord, 2) + - texelFetch(uSampler, coord, 3); -} diff --git a/third_party/spirv-cross/shaders/frag/sampler-proj.frag b/third_party/spirv-cross/shaders/frag/sampler-proj.frag deleted file mode 100644 index 21fa5c0260..0000000000 --- a/third_party/spirv-cross/shaders/frag/sampler-proj.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) in vec4 vTex; -layout(binding = 0) uniform sampler2D uTex; -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = textureProj(uTex, vTex); -} - diff --git a/third_party/spirv-cross/shaders/frag/sampler.frag b/third_party/spirv-cross/shaders/frag/sampler.frag deleted file mode 100644 index e38f76886a..0000000000 --- a/third_party/spirv-cross/shaders/frag/sampler.frag +++ /dev/null @@ -1,18 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) in vec4 vColor; -layout(location = 1) in vec2 vTex; -layout(binding = 0) uniform sampler2D uTex; -layout(location = 0) out vec4 FragColor; - -vec4 sample_texture(sampler2D tex, vec2 uv) -{ - return texture(tex, uv); -} - -void main() -{ - FragColor = vColor * sample_texture(uTex, vTex); -} - diff --git a/third_party/spirv-cross/shaders/frag/scalar-refract-reflect.frag b/third_party/spirv-cross/shaders/frag/scalar-refract-reflect.frag deleted file mode 100644 index 486ed90bd5..0000000000 --- a/third_party/spirv-cross/shaders/frag/scalar-refract-reflect.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 -layout(location = 0) out float FragColor; -layout(location = 0) in vec3 vRefract; - -void main() -{ - FragColor = refract(vRefract.x, vRefract.y, vRefract.z); - FragColor += reflect(vRefract.x, vRefract.y); - FragColor += refract(vRefract.xy, vRefract.yz, vRefract.z).y; - FragColor += reflect(vRefract.xy, vRefract.zy).y; -} diff --git a/third_party/spirv-cross/shaders/frag/selection-block-dominator.frag b/third_party/spirv-cross/shaders/frag/selection-block-dominator.frag deleted file mode 100644 index 257f4e6934..0000000000 --- a/third_party/spirv-cross/shaders/frag/selection-block-dominator.frag +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 -layout(location = 0) out vec4 FragColor; -layout(location = 0) flat in int vIndex; - -void main() -{ - int v; - if (vIndex != 1) - { - FragColor = vec4(1.0); - return; - } - else - { - v = 10; - } - FragColor = vec4(v); -} diff --git a/third_party/spirv-cross/shaders/frag/struct-type-unrelated-alias.frag b/third_party/spirv-cross/shaders/frag/struct-type-unrelated-alias.frag deleted file mode 100644 index d1c7905225..0000000000 --- a/third_party/spirv-cross/shaders/frag/struct-type-unrelated-alias.frag +++ /dev/null @@ -1,19 +0,0 @@ -#version 450 - -layout(location = 0) out float FragColor; - -struct T -{ - float a; -}; - -void main() -{ - T foo; - struct T { float b; }; - T bar; - - foo.a = 10.0; - bar.b = 20.0; - FragColor = foo.a + bar.b; -} diff --git a/third_party/spirv-cross/shaders/frag/switch-unsigned-case.frag b/third_party/spirv-cross/shaders/frag/switch-unsigned-case.frag deleted file mode 100644 index d8aee43a6c..0000000000 --- a/third_party/spirv-cross/shaders/frag/switch-unsigned-case.frag +++ /dev/null @@ -1,26 +0,0 @@ -#version 310 es -precision mediump float; - -#define ENUM_0 0u -#define ENUM_1 1u - -layout(set = 0, binding = 0) uniform Buff -{ - uint TestVal; -}; - -layout(location = 0) out vec4 fsout_Color; - -void main() -{ - fsout_Color = vec4(1.0); - switch (TestVal) - { - case ENUM_0: - fsout_Color = vec4(0.1); - break; - case ENUM_1: - fsout_Color = vec4(0.2); - break; - } -} diff --git a/third_party/spirv-cross/shaders/frag/swizzle.frag b/third_party/spirv-cross/shaders/frag/swizzle.frag deleted file mode 100644 index af22dd655d..0000000000 --- a/third_party/spirv-cross/shaders/frag/swizzle.frag +++ /dev/null @@ -1,17 +0,0 @@ -#version 310 es -precision mediump float; - -layout(binding = 0) uniform sampler2D samp; -layout(location = 0) out vec4 FragColor; -layout(location = 1) in vec3 vNormal; -layout(location = 2) in vec2 vUV; - -void main() -{ - FragColor = vec4(texture(samp, vUV).xyz, 1.0); - FragColor = vec4(texture(samp, vUV).xz, 1.0, 4.0); - FragColor = vec4(texture(samp, vUV).xx, texture(samp, vUV + vec2(0.1)).yy); - FragColor = vec4(vNormal, 1.0); - FragColor = vec4(vNormal + 1.8, 1.0); - FragColor = vec4(vUV, vUV + 1.8); -} diff --git a/third_party/spirv-cross/shaders/frag/texel-fetch-offset.frag b/third_party/spirv-cross/shaders/frag/texel-fetch-offset.frag deleted file mode 100644 index e98748b8bc..0000000000 --- a/third_party/spirv-cross/shaders/frag/texel-fetch-offset.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 310 es -precision mediump float; -layout(location = 0) out vec4 FragColor; -layout(binding = 0) uniform sampler2D uTexture; - -void main() -{ - FragColor = texelFetchOffset(uTexture, ivec2(gl_FragCoord.xy), 0, ivec2(1, 1)); - FragColor += texelFetchOffset(uTexture, ivec2(gl_FragCoord.xy), 0, ivec2(-1, 1)); -} diff --git a/third_party/spirv-cross/shaders/frag/ubo-load-row-major-workaround.frag b/third_party/spirv-cross/shaders/frag/ubo-load-row-major-workaround.frag deleted file mode 100644 index 03205ee827..0000000000 --- a/third_party/spirv-cross/shaders/frag/ubo-load-row-major-workaround.frag +++ /dev/null @@ -1,44 +0,0 @@ -#version 450 - -struct RowMajor -{ - mat4 B; -}; - -struct NestedRowMajor -{ - RowMajor rm; -}; - -layout(set = 0, binding = 0, row_major) uniform UBO -{ - mat4 A; - layout(column_major) mat4 C; // This should also be worked around. -}; - - -layout(set = 0, binding = 1, row_major) uniform UBO2 -{ - RowMajor rm; -}; - -layout(set = 0, binding = 2, row_major) uniform UBO3 -{ - NestedRowMajor rm2; -}; - -layout(set = 0, binding = 3) uniform UBONoWorkaround -{ - mat4 D; -}; - -layout(location = 0) in vec4 Clip; -layout(location = 0) out vec4 FragColor; - -void main() -{ - NestedRowMajor rm2_loaded = rm2; - FragColor = rm2_loaded.rm.B * rm.B * A * C * Clip; - FragColor += D * Clip; - FragColor += A[1] * Clip; -} diff --git a/third_party/spirv-cross/shaders/frag/ubo_layout.frag b/third_party/spirv-cross/shaders/frag/ubo_layout.frag deleted file mode 100644 index 80f9f16d3d..0000000000 --- a/third_party/spirv-cross/shaders/frag/ubo_layout.frag +++ /dev/null @@ -1,24 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) out vec4 FragColor; - -struct Str -{ - mat4 foo; -}; - -layout(binding = 0, std140) uniform UBO1 -{ - layout(row_major) Str foo; -} ubo1; - -layout(binding = 1, std140) uniform UBO2 -{ - layout(column_major) Str foo; -} ubo0; - -void main() -{ - FragColor = ubo1.foo.foo[0] + ubo0.foo.foo[0]; -} diff --git a/third_party/spirv-cross/shaders/frag/unary-enclose.frag b/third_party/spirv-cross/shaders/frag/unary-enclose.frag deleted file mode 100644 index ea502e1de8..0000000000 --- a/third_party/spirv-cross/shaders/frag/unary-enclose.frag +++ /dev/null @@ -1,15 +0,0 @@ -#version 310 es -precision mediump float; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec4 vIn; -layout(location = 1) flat in ivec4 vIn1; - -void main() -{ - FragColor = +(-(-vIn)); - ivec4 a = ~(~vIn1); - - bool b = false; - b = !!b; -} diff --git a/third_party/spirv-cross/shaders/geom/basic.geom b/third_party/spirv-cross/shaders/geom/basic.geom deleted file mode 100644 index 80b977d114..0000000000 --- a/third_party/spirv-cross/shaders/geom/basic.geom +++ /dev/null @@ -1,28 +0,0 @@ -#version 310 es -#extension GL_EXT_geometry_shader : require - -layout(triangles, invocations = 4) in; -layout(triangle_strip, max_vertices = 3) out; - -layout(location = 0) in VertexData { - vec3 normal; -} vin[]; - -layout(location = 0) out vec3 vNormal; - -void main() -{ - gl_Position = gl_in[0].gl_Position; - vNormal = vin[0].normal + float(gl_InvocationID); - EmitVertex(); - - gl_Position = gl_in[1].gl_Position; - vNormal = vin[1].normal + 4.0 * float(gl_InvocationID); - EmitVertex(); - - gl_Position = gl_in[2].gl_Position; - vNormal = vin[2].normal + 2.0 * float(gl_InvocationID); - EmitVertex(); - - EndPrimitive(); -} diff --git a/third_party/spirv-cross/shaders/geom/geometry-passthrough.geom b/third_party/spirv-cross/shaders/geom/geometry-passthrough.geom deleted file mode 100644 index 7f1997c76a..0000000000 --- a/third_party/spirv-cross/shaders/geom/geometry-passthrough.geom +++ /dev/null @@ -1,28 +0,0 @@ -#version 450 -#extension GL_NV_geometry_shader_passthrough : require - -layout(triangles) in; - -layout(passthrough) in gl_PerVertex -{ - vec4 gl_Position; -} gl_in[]; - -layout(passthrough, location = 0) in VertexBlock -{ - int a; - int b; -} v1[]; - -layout(location = 2) in VertexBlock2 -{ - int a; - layout(passthrough) int b; -} v2[]; - -layout(passthrough, location = 4) in vec4 vPoint[]; - -void main() -{ - gl_Layer = gl_InvocationID + v1[0].a + v2[1].b; -} diff --git a/third_party/spirv-cross/shaders/geom/lines-adjacency.geom b/third_party/spirv-cross/shaders/geom/lines-adjacency.geom deleted file mode 100644 index 4c34440737..0000000000 --- a/third_party/spirv-cross/shaders/geom/lines-adjacency.geom +++ /dev/null @@ -1,28 +0,0 @@ -#version 310 es -#extension GL_EXT_geometry_shader : require - -layout(lines_adjacency) in; -layout(line_strip, max_vertices = 3) out; - -layout(location = 0) in VertexData { - vec3 normal; -} vin[]; - -layout(location = 0) out vec3 vNormal; - -void main() -{ - gl_Position = gl_in[0].gl_Position; - vNormal = vin[0].normal; - EmitVertex(); - - gl_Position = gl_in[1].gl_Position; - vNormal = vin[1].normal; - EmitVertex(); - - gl_Position = gl_in[2].gl_Position; - vNormal = vin[2].normal; - EmitVertex(); - - EndPrimitive(); -} diff --git a/third_party/spirv-cross/shaders/geom/lines.geom b/third_party/spirv-cross/shaders/geom/lines.geom deleted file mode 100644 index c751d5cda4..0000000000 --- a/third_party/spirv-cross/shaders/geom/lines.geom +++ /dev/null @@ -1,24 +0,0 @@ -#version 310 es -#extension GL_EXT_geometry_shader : require - -layout(lines) in; -layout(line_strip, max_vertices = 2) out; - -layout(location = 0) in VertexData { - vec3 normal; -} vin[]; - -layout(location = 0) out vec3 vNormal; - -void main() -{ - gl_Position = gl_in[0].gl_Position; - vNormal = vin[0].normal; - EmitVertex(); - - gl_Position = gl_in[1].gl_Position; - vNormal = vin[1].normal; - EmitVertex(); - - EndPrimitive(); -} diff --git a/third_party/spirv-cross/shaders/geom/multi-stream.geom b/third_party/spirv-cross/shaders/geom/multi-stream.geom deleted file mode 100644 index 19b3bbb9c2..0000000000 --- a/third_party/spirv-cross/shaders/geom/multi-stream.geom +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 - -layout(triangles) in; -layout(points, max_vertices = 2) out; - -void main() -{ - gl_Position = gl_in[0].gl_Position; - EmitStreamVertex(0); - EndStreamPrimitive(0); - gl_Position = gl_in[0].gl_Position + 2; - EmitStreamVertex(1); - EndStreamPrimitive(1); -} - diff --git a/third_party/spirv-cross/shaders/geom/points.geom b/third_party/spirv-cross/shaders/geom/points.geom deleted file mode 100644 index f7dce10d7f..0000000000 --- a/third_party/spirv-cross/shaders/geom/points.geom +++ /dev/null @@ -1,28 +0,0 @@ -#version 310 es -#extension GL_EXT_geometry_shader : require - -layout(points) in; -layout(points, max_vertices = 3) out; - -layout(location = 0) in VertexData { - vec3 normal; -} vin[]; - -layout(location = 0) out vec3 vNormal; - -void main() -{ - gl_Position = gl_in[0].gl_Position; - vNormal = vin[0].normal; - EmitVertex(); - - gl_Position = gl_in[0].gl_Position; - vNormal = vin[0].normal; - EmitVertex(); - - gl_Position = gl_in[0].gl_Position; - vNormal = vin[0].normal; - EmitVertex(); - - EndPrimitive(); -} diff --git a/third_party/spirv-cross/shaders/geom/single-invocation.geom b/third_party/spirv-cross/shaders/geom/single-invocation.geom deleted file mode 100644 index c3c8d1526f..0000000000 --- a/third_party/spirv-cross/shaders/geom/single-invocation.geom +++ /dev/null @@ -1,28 +0,0 @@ -#version 310 es -#extension GL_EXT_geometry_shader : require - -layout(triangles) in; -layout(triangle_strip, max_vertices = 3) out; - -layout(location = 0) in VertexData { - vec3 normal; -} vin[]; - -layout(location = 0) out vec3 vNormal; - -void main() -{ - gl_Position = gl_in[0].gl_Position; - vNormal = vin[0].normal; - EmitVertex(); - - gl_Position = gl_in[1].gl_Position; - vNormal = vin[1].normal; - EmitVertex(); - - gl_Position = gl_in[2].gl_Position; - vNormal = vin[2].normal; - EmitVertex(); - - EndPrimitive(); -} diff --git a/third_party/spirv-cross/shaders/geom/transform-feedback-streams.geom b/third_party/spirv-cross/shaders/geom/transform-feedback-streams.geom deleted file mode 100644 index 1e62890756..0000000000 --- a/third_party/spirv-cross/shaders/geom/transform-feedback-streams.geom +++ /dev/null @@ -1,24 +0,0 @@ -#version 450 -layout(max_vertices = 2, points) out; -layout(points) in; -layout(stream = 1, xfb_stride = 32, xfb_offset = 16, xfb_buffer = 2, location = 0) out vec4 vFoo; - -layout(stream = 1, xfb_buffer = 1, xfb_stride = 20) out gl_PerVertex -{ - layout(xfb_offset = 4) vec4 gl_Position; - float gl_PointSize; -}; - -layout(stream = 2, xfb_buffer = 3) out VertOut -{ - layout(xfb_stride = 16, xfb_offset = 0, location = 1) vec4 vBar; -}; - -void main() -{ - gl_Position = vec4(1.0); - vFoo = vec4(3.0); - EmitStreamVertex(1); - vBar = vec4(5.0); - EmitStreamVertex(2); -} diff --git a/third_party/spirv-cross/shaders/geom/triangles-adjacency.geom b/third_party/spirv-cross/shaders/geom/triangles-adjacency.geom deleted file mode 100644 index 017cef7b52..0000000000 --- a/third_party/spirv-cross/shaders/geom/triangles-adjacency.geom +++ /dev/null @@ -1,28 +0,0 @@ -#version 310 es -#extension GL_EXT_geometry_shader : require - -layout(triangles_adjacency) in; -layout(triangle_strip, max_vertices = 3) out; - -layout(location = 0) in VertexData { - vec3 normal; -} vin[]; - -layout(location = 0) out vec3 vNormal; - -void main() -{ - gl_Position = gl_in[0].gl_Position; - vNormal = vin[0].normal; - EmitVertex(); - - gl_Position = gl_in[1].gl_Position; - vNormal = vin[1].normal; - EmitVertex(); - - gl_Position = gl_in[2].gl_Position; - vNormal = vin[2].normal; - EmitVertex(); - - EndPrimitive(); -} diff --git a/third_party/spirv-cross/shaders/geom/triangles.geom b/third_party/spirv-cross/shaders/geom/triangles.geom deleted file mode 100644 index c3c8d1526f..0000000000 --- a/third_party/spirv-cross/shaders/geom/triangles.geom +++ /dev/null @@ -1,28 +0,0 @@ -#version 310 es -#extension GL_EXT_geometry_shader : require - -layout(triangles) in; -layout(triangle_strip, max_vertices = 3) out; - -layout(location = 0) in VertexData { - vec3 normal; -} vin[]; - -layout(location = 0) out vec3 vNormal; - -void main() -{ - gl_Position = gl_in[0].gl_Position; - vNormal = vin[0].normal; - EmitVertex(); - - gl_Position = gl_in[1].gl_Position; - vNormal = vin[1].normal; - EmitVertex(); - - gl_Position = gl_in[2].gl_Position; - vNormal = vin[2].normal; - EmitVertex(); - - EndPrimitive(); -} diff --git a/third_party/spirv-cross/shaders/legacy/fragment/explicit-lod.legacy.frag b/third_party/spirv-cross/shaders/legacy/fragment/explicit-lod.legacy.frag deleted file mode 100644 index abe1ef2c30..0000000000 --- a/third_party/spirv-cross/shaders/legacy/fragment/explicit-lod.legacy.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 310 es - -precision mediump float; - -layout(binding = 0) uniform sampler2D tex; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = textureLod(tex, vec2(0.4, 0.6), 0.0); -} diff --git a/third_party/spirv-cross/shaders/legacy/fragment/explicit-lod.legacy.vert b/third_party/spirv-cross/shaders/legacy/fragment/explicit-lod.legacy.vert deleted file mode 100644 index d2cbd5a4f9..0000000000 --- a/third_party/spirv-cross/shaders/legacy/fragment/explicit-lod.legacy.vert +++ /dev/null @@ -1,12 +0,0 @@ -#version 310 es - -precision mediump float; - -layout(binding = 0) uniform sampler2D tex; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = textureLod(tex, vec2(0.4, 0.6), 3.0); -} diff --git a/third_party/spirv-cross/shaders/legacy/fragment/fma.legacy.frag b/third_party/spirv-cross/shaders/legacy/fragment/fma.legacy.frag deleted file mode 100644 index 33ceec6a38..0000000000 --- a/third_party/spirv-cross/shaders/legacy/fragment/fma.legacy.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 - -layout(location = 0) in vec4 vA; -layout(location = 1) in vec4 vB; -layout(location = 2) in vec4 vC; -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = fma(vA, vB, vC); -} diff --git a/third_party/spirv-cross/shaders/legacy/fragment/io-blocks.legacy.frag b/third_party/spirv-cross/shaders/legacy/fragment/io-blocks.legacy.frag deleted file mode 100644 index 0a151dc2d6..0000000000 --- a/third_party/spirv-cross/shaders/legacy/fragment/io-blocks.legacy.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 310 es -#extension GL_EXT_shader_io_blocks : require -precision mediump float; - -layout(location = 1) in VertexOut -{ - vec4 color; - highp vec3 normal; -} vin; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vin.color + vin.normal.xyzz; -} diff --git a/third_party/spirv-cross/shaders/legacy/fragment/multiple-struct-flattening.legacy.frag b/third_party/spirv-cross/shaders/legacy/fragment/multiple-struct-flattening.legacy.frag deleted file mode 100644 index b1e7d1b4f3..0000000000 --- a/third_party/spirv-cross/shaders/legacy/fragment/multiple-struct-flattening.legacy.frag +++ /dev/null @@ -1,37 +0,0 @@ -#version 450 - -struct Foo -{ - vec4 a; - vec4 b; -}; - -struct Bar -{ - vec4 a; - vec4 b; -}; - -struct Baz -{ - Foo foo; - Bar bar; -}; - -layout(location = 0) in VertexIn -{ - Foo a; - Bar b; -}; - -layout(location = 4) in Baz baz; - -layout(location = 0) out vec4 FragColor; - -void main() -{ - Baz bazzy = baz; - Foo bazzy_foo = baz.foo; - Bar bazzy_bar = baz.bar; - FragColor = a.a + b.b + bazzy.foo.b + bazzy_foo.a + bazzy_bar.b; -} diff --git a/third_party/spirv-cross/shaders/legacy/fragment/round.legacy.frag b/third_party/spirv-cross/shaders/legacy/fragment/round.legacy.frag deleted file mode 100644 index c87b0abbff..0000000000 --- a/third_party/spirv-cross/shaders/legacy/fragment/round.legacy.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 - -layout(location = 0) in vec4 vA; -layout(location = 1) in float vB; -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = round(vA); - FragColor *= round(vB); -} diff --git a/third_party/spirv-cross/shaders/legacy/fragment/struct-varying.legacy.frag b/third_party/spirv-cross/shaders/legacy/fragment/struct-varying.legacy.frag deleted file mode 100644 index 5df5c87704..0000000000 --- a/third_party/spirv-cross/shaders/legacy/fragment/struct-varying.legacy.frag +++ /dev/null @@ -1,25 +0,0 @@ -#version 310 es -precision highp float; - -struct Inputs -{ - vec4 a; - vec2 b; -}; - -layout(location = 0) in Inputs vin; -layout(location = 0) out vec4 FragColor; - -void main() -{ - // Read struct once. - Inputs v0 = vin; - // Read struct again. - Inputs v1 = vin; - - // Read members individually. - vec4 a = vin.a; - vec4 b = vin.b.xxyy; - - FragColor = v0.a + v0.b.xxyy + v1.a + v1.b.yyxx + a + b; -} diff --git a/third_party/spirv-cross/shaders/legacy/fragment/switch.legacy.frag b/third_party/spirv-cross/shaders/legacy/fragment/switch.legacy.frag deleted file mode 100644 index d511798173..0000000000 --- a/third_party/spirv-cross/shaders/legacy/fragment/switch.legacy.frag +++ /dev/null @@ -1,43 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in float vIndexF; - -void main() -{ - int vIndex = int(vIndexF); - vec4 v = vec4(0.0); - switch (vIndex) - { - case 2: - v = vec4(0, 2, 3, 4); - break; - case 4: - case 5: - v = vec4(1, 2, 3, 4); - break; - case 8: - case 9: - v = vec4(40, 20, 30, 40); - break; - case 10: - v = vec4(10.0); - case 11: - v += 1.0; - case 12: - v += 2.0; - break; - default: - v = vec4(10, 20, 30, 40); - break; - } - - vec4 w = vec4(20.0); - switch (vIndex) - { - case 10: - case 20: - w = vec4(40.0); - } - FragColor = v + w; -} diff --git a/third_party/spirv-cross/shaders/legacy/vert/implicit-lod.legacy.vert b/third_party/spirv-cross/shaders/legacy/vert/implicit-lod.legacy.vert deleted file mode 100644 index 6065694274..0000000000 --- a/third_party/spirv-cross/shaders/legacy/vert/implicit-lod.legacy.vert +++ /dev/null @@ -1,8 +0,0 @@ -#version 310 es - -layout(binding = 0) uniform sampler2D tex; - -void main() -{ - gl_Position = texture(tex, vec2(0.4, 0.6)); -} diff --git a/third_party/spirv-cross/shaders/legacy/vert/io-block.legacy.vert b/third_party/spirv-cross/shaders/legacy/vert/io-block.legacy.vert deleted file mode 100644 index 4fbc9347cf..0000000000 --- a/third_party/spirv-cross/shaders/legacy/vert/io-block.legacy.vert +++ /dev/null @@ -1,17 +0,0 @@ -#version 310 es -#extension GL_EXT_shader_io_blocks : require - -layout(location = 0) out VertexOut -{ - vec4 color; - vec3 normal; -} vout; - -layout(location = 0) in vec4 Position; - -void main() -{ - gl_Position = Position; - vout.color = vec4(1.0); - vout.normal = vec3(0.5); -} diff --git a/third_party/spirv-cross/shaders/legacy/vert/struct-flatten-inner-array.legacy.vert b/third_party/spirv-cross/shaders/legacy/vert/struct-flatten-inner-array.legacy.vert deleted file mode 100644 index f6ad932eea..0000000000 --- a/third_party/spirv-cross/shaders/legacy/vert/struct-flatten-inner-array.legacy.vert +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 - -struct Foo -{ - float a[4]; -}; - -layout(location = 0) out Foo foo; - -void main() -{ - gl_Position = vec4(1.0); - for (int i = 0; i < 4; i++) - foo.a[i] = float(i + 2); -} diff --git a/third_party/spirv-cross/shaders/legacy/vert/struct-flatten-stores-multi-dimension.legacy.vert b/third_party/spirv-cross/shaders/legacy/vert/struct-flatten-stores-multi-dimension.legacy.vert deleted file mode 100644 index 57e914c1fe..0000000000 --- a/third_party/spirv-cross/shaders/legacy/vert/struct-flatten-stores-multi-dimension.legacy.vert +++ /dev/null @@ -1,40 +0,0 @@ -#version 450 - -struct Foo -{ - vec4 a; - vec4 b; -}; - -struct Bar -{ - vec4 a; - vec4 b; -}; - -struct Baz -{ - Foo foo; - Bar bar; -}; - -layout(location = 0) out VertexIn -{ - Foo a; - Bar b; -}; - -layout(location = 4) out Baz baz; - -void main() -{ - a.a = vec4(10.0); - a.b = vec4(20.0); - b.a = vec4(30.0); - b.b = vec4(40.0); - a = Foo(vec4(50.0), vec4(60.0)); - b = Bar(vec4(50.0), vec4(60.0)); - baz.foo = Foo(vec4(100.0), vec4(200.0)); - baz.bar = Bar(vec4(300.0), vec4(400.0)); - baz = Baz(Foo(vec4(1000.0), vec4(2000.0)), Bar(vec4(3000.0), vec4(4000.0))); -} diff --git a/third_party/spirv-cross/shaders/legacy/vert/struct-varying.legacy.vert b/third_party/spirv-cross/shaders/legacy/vert/struct-varying.legacy.vert deleted file mode 100644 index 3f491be831..0000000000 --- a/third_party/spirv-cross/shaders/legacy/vert/struct-varying.legacy.vert +++ /dev/null @@ -1,33 +0,0 @@ -#version 310 es - -struct Output -{ - vec4 a; - vec2 b; -}; - -layout(location = 0) out Output vout; - -void main() -{ - Output s = Output(vec4(0.5), vec2(0.25)); - - // Write whole struct. - vout = s; - // Write whole struct again, checks for scoping. - vout = s; - - // Read it back. - Output tmp = vout; - - // Write elements individually. - vout.a = tmp.a; - vout.b = tmp.b; - - // Write individual elements. - vout.a.x = 1.0; - vout.b.y = 1.0; - - // Read individual elements. - float c = vout.a.x; -} diff --git a/third_party/spirv-cross/shaders/legacy/vert/switch-nested.legacy.vert b/third_party/spirv-cross/shaders/legacy/vert/switch-nested.legacy.vert deleted file mode 100644 index 6726c1c693..0000000000 --- a/third_party/spirv-cross/shaders/legacy/vert/switch-nested.legacy.vert +++ /dev/null @@ -1,28 +0,0 @@ -#version 450 - -layout(set = 0, binding = 0) uniform UBO -{ - int func_arg; - int inner_func_arg; -}; - -vec4 test_inner_func(bool b) -{ - if (b) - return vec4(1.0); - else - return vec4(0.0); -} - -vec4 test_func(bool b) -{ - if (b) - return test_inner_func(inner_func_arg != 0); - else - return vec4(0.0); -} - -void main() -{ - gl_Position = test_func(func_arg != 0); -} diff --git a/third_party/spirv-cross/shaders/legacy/vert/transpose.legacy.vert b/third_party/spirv-cross/shaders/legacy/vert/transpose.legacy.vert deleted file mode 100644 index 588c28d53d..0000000000 --- a/third_party/spirv-cross/shaders/legacy/vert/transpose.legacy.vert +++ /dev/null @@ -1,32 +0,0 @@ -#version 310 es - -uniform Buffer -{ - layout(row_major) mat4 MVPRowMajor; - layout(column_major) mat4 MVPColMajor; - mat4 M; -}; - -layout(location = 0) in vec4 Position; - -void main() -{ - vec4 c0 = M * (MVPRowMajor * Position); - vec4 c1 = M * (MVPColMajor * Position); - vec4 c2 = M * (Position * MVPRowMajor); - vec4 c3 = M * (Position * MVPColMajor); - - vec4 c4 = transpose(MVPRowMajor) * Position; - vec4 c5 = transpose(MVPColMajor) * Position; - vec4 c6 = Position * transpose(MVPRowMajor); - vec4 c7 = Position * transpose(MVPColMajor); - - // Multiplying by scalar forces resolution of the transposition - vec4 c8 = (MVPRowMajor * 2.0) * Position; - vec4 c9 = (transpose(MVPColMajor) * 2.0) * Position; - vec4 c10 = Position * (MVPRowMajor * 2.0); - vec4 c11 = Position * (transpose(MVPColMajor) * 2.0); - - gl_Position = c0 + c1 + c2 + c3 + c4 + c5 + c6 + c7 + c8 + c9 + c10 + c11; -} - diff --git a/third_party/spirv-cross/shaders/tesc/basic.tesc b/third_party/spirv-cross/shaders/tesc/basic.tesc deleted file mode 100644 index 0a41f98c83..0000000000 --- a/third_party/spirv-cross/shaders/tesc/basic.tesc +++ /dev/null @@ -1,17 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require - -layout(location = 0) patch out vec3 vFoo; - -layout(vertices = 1) out; - -void main() -{ - gl_TessLevelInner[0] = 8.9; - gl_TessLevelInner[1] = 6.9; - gl_TessLevelOuter[0] = 8.9; - gl_TessLevelOuter[1] = 6.9; - gl_TessLevelOuter[2] = 3.9; - gl_TessLevelOuter[3] = 4.9; - vFoo = vec3(1.0); -} diff --git a/third_party/spirv-cross/shaders/tesc/water_tess.tesc b/third_party/spirv-cross/shaders/tesc/water_tess.tesc deleted file mode 100644 index 3ecdc3d1a9..0000000000 --- a/third_party/spirv-cross/shaders/tesc/water_tess.tesc +++ /dev/null @@ -1,115 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require - -layout(vertices = 1) out; -layout(location = 0) in vec2 vPatchPosBase[]; - -layout(std140) uniform UBO -{ - vec4 uScale; - highp vec3 uCamPos; - vec2 uPatchSize; - vec2 uMaxTessLevel; - float uDistanceMod; - vec4 uFrustum[6]; -}; - -layout(location = 1) patch out vec2 vOutPatchPosBase; -layout(location = 2) patch out vec4 vPatchLods; - -float lod_factor(vec2 pos_) -{ - vec2 pos = pos_ * uScale.xy; - vec3 dist_to_cam = uCamPos - vec3(pos.x, 0.0, pos.y); - float level = log2((length(dist_to_cam) + 0.0001) * uDistanceMod); - return clamp(level, 0.0, uMaxTessLevel.x); -} - -float tess_level(float lod) -{ - return uMaxTessLevel.y * exp2(-lod); -} - -vec4 tess_level(vec4 lod) -{ - return uMaxTessLevel.y * exp2(-lod); -} - -// Guard band for vertex displacement. -#define GUARD_BAND 10.0 -bool frustum_cull(vec2 p0) -{ - vec2 min_xz = (p0 - GUARD_BAND) * uScale.xy; - vec2 max_xz = (p0 + uPatchSize + GUARD_BAND) * uScale.xy; - - vec3 bb_min = vec3(min_xz.x, -GUARD_BAND, min_xz.y); - vec3 bb_max = vec3(max_xz.x, +GUARD_BAND, max_xz.y); - vec3 center = 0.5 * (bb_min + bb_max); - float radius = 0.5 * length(bb_max - bb_min); - - vec3 f0 = vec3( - dot(uFrustum[0], vec4(center, 1.0)), - dot(uFrustum[1], vec4(center, 1.0)), - dot(uFrustum[2], vec4(center, 1.0))); - - vec3 f1 = vec3( - dot(uFrustum[3], vec4(center, 1.0)), - dot(uFrustum[4], vec4(center, 1.0)), - dot(uFrustum[5], vec4(center, 1.0))); - - return !(any(lessThanEqual(f0, vec3(-radius))) || any(lessThanEqual(f1, vec3(-radius)))); -} - -void compute_tess_levels(vec2 p0) -{ - vOutPatchPosBase = p0; - - float l00 = lod_factor(p0 + vec2(-0.5, -0.5) * uPatchSize); - float l10 = lod_factor(p0 + vec2(+0.5, -0.5) * uPatchSize); - float l20 = lod_factor(p0 + vec2(+1.5, -0.5) * uPatchSize); - float l01 = lod_factor(p0 + vec2(-0.5, +0.5) * uPatchSize); - float l11 = lod_factor(p0 + vec2(+0.5, +0.5) * uPatchSize); - float l21 = lod_factor(p0 + vec2(+1.5, +0.5) * uPatchSize); - float l02 = lod_factor(p0 + vec2(-0.5, +1.5) * uPatchSize); - float l12 = lod_factor(p0 + vec2(+0.5, +1.5) * uPatchSize); - float l22 = lod_factor(p0 + vec2(+1.5, +1.5) * uPatchSize); - - vec4 lods = vec4( - dot(vec4(l01, l11, l02, l12), vec4(0.25)), - dot(vec4(l00, l10, l01, l11), vec4(0.25)), - dot(vec4(l10, l20, l11, l21), vec4(0.25)), - dot(vec4(l11, l21, l12, l22), vec4(0.25))); - - vPatchLods = lods; - - vec4 outer_lods = min(lods.xyzw, lods.yzwx); - vec4 levels = tess_level(outer_lods); - gl_TessLevelOuter[0] = levels.x; - gl_TessLevelOuter[1] = levels.y; - gl_TessLevelOuter[2] = levels.z; - gl_TessLevelOuter[3] = levels.w; - - float min_lod = min(min(lods.x, lods.y), min(lods.z, lods.w)); - float inner = tess_level(min(min_lod, l11)); - gl_TessLevelInner[0] = inner; - gl_TessLevelInner[1] = inner; -} - -void main() -{ - vec2 p0 = vPatchPosBase[0]; - if (!frustum_cull(p0)) - { - gl_TessLevelOuter[0] = -1.0; - gl_TessLevelOuter[1] = -1.0; - gl_TessLevelOuter[2] = -1.0; - gl_TessLevelOuter[3] = -1.0; - gl_TessLevelInner[0] = -1.0; - gl_TessLevelInner[1] = -1.0; - } - else - { - compute_tess_levels(p0); - } -} - diff --git a/third_party/spirv-cross/shaders/tese/ccw.tese b/third_party/spirv-cross/shaders/tese/ccw.tese deleted file mode 100644 index 26e9cc698d..0000000000 --- a/third_party/spirv-cross/shaders/tese/ccw.tese +++ /dev/null @@ -1,10 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require - -layout(ccw, triangles, fractional_even_spacing) in; - -void main() -{ - gl_Position = vec4(1.0); -} - diff --git a/third_party/spirv-cross/shaders/tese/cw.tese b/third_party/spirv-cross/shaders/tese/cw.tese deleted file mode 100644 index 6ce7c2d6d9..0000000000 --- a/third_party/spirv-cross/shaders/tese/cw.tese +++ /dev/null @@ -1,10 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require - -layout(cw, triangles, fractional_even_spacing) in; - -void main() -{ - gl_Position = vec4(1.0); -} - diff --git a/third_party/spirv-cross/shaders/tese/equal.tese b/third_party/spirv-cross/shaders/tese/equal.tese deleted file mode 100644 index 08ab36ec23..0000000000 --- a/third_party/spirv-cross/shaders/tese/equal.tese +++ /dev/null @@ -1,10 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require - -layout(cw, triangles, equal_spacing) in; - -void main() -{ - gl_Position = vec4(1.0); -} - diff --git a/third_party/spirv-cross/shaders/tese/fractional_even.tese b/third_party/spirv-cross/shaders/tese/fractional_even.tese deleted file mode 100644 index 6ce7c2d6d9..0000000000 --- a/third_party/spirv-cross/shaders/tese/fractional_even.tese +++ /dev/null @@ -1,10 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require - -layout(cw, triangles, fractional_even_spacing) in; - -void main() -{ - gl_Position = vec4(1.0); -} - diff --git a/third_party/spirv-cross/shaders/tese/fractional_odd.tese b/third_party/spirv-cross/shaders/tese/fractional_odd.tese deleted file mode 100644 index a15a32926b..0000000000 --- a/third_party/spirv-cross/shaders/tese/fractional_odd.tese +++ /dev/null @@ -1,10 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require - -layout(cw, triangles, fractional_odd_spacing) in; - -void main() -{ - gl_Position = vec4(1.0); -} - diff --git a/third_party/spirv-cross/shaders/tese/input-array.tese b/third_party/spirv-cross/shaders/tese/input-array.tese deleted file mode 100644 index f1014ca5cc..0000000000 --- a/third_party/spirv-cross/shaders/tese/input-array.tese +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 - -layout(ccw, quads, fractional_odd_spacing) in; -layout(location = 0) in vec4 Floats[]; -layout(location = 2) in vec4 Floats2[gl_MaxPatchVertices]; - -void main() -{ - gl_Position = Floats[0] * gl_TessCoord.x + Floats2[1] * gl_TessCoord.y; -} diff --git a/third_party/spirv-cross/shaders/tese/line.tese b/third_party/spirv-cross/shaders/tese/line.tese deleted file mode 100644 index b4237ef559..0000000000 --- a/third_party/spirv-cross/shaders/tese/line.tese +++ /dev/null @@ -1,10 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require - -layout(isolines, point_mode, fractional_even_spacing) in; - -void main() -{ - gl_Position = vec4(1.0); -} - diff --git a/third_party/spirv-cross/shaders/tese/load-array-of-array.tese b/third_party/spirv-cross/shaders/tese/load-array-of-array.tese deleted file mode 100644 index 7383f7086e..0000000000 --- a/third_party/spirv-cross/shaders/tese/load-array-of-array.tese +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 -layout(ccw, quads) in; - -layout(location = 0) in vec4 vTexCoord[][1]; - -void main() -{ - vec4 tmp[gl_MaxPatchVertices][1] = vTexCoord; - gl_Position = tmp[0][0] + tmp[2][0] + tmp[3][0]; -} diff --git a/third_party/spirv-cross/shaders/tese/patch-input-array.tese b/third_party/spirv-cross/shaders/tese/patch-input-array.tese deleted file mode 100644 index 741b2c3b9b..0000000000 --- a/third_party/spirv-cross/shaders/tese/patch-input-array.tese +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 - -layout(quads) in; -layout(location = 0) patch in float P[4]; - -void main() -{ - gl_Position = vec4(P[0], P[1], P[2], P[3]); -} diff --git a/third_party/spirv-cross/shaders/tese/triangle.tese b/third_party/spirv-cross/shaders/tese/triangle.tese deleted file mode 100644 index 6ce7c2d6d9..0000000000 --- a/third_party/spirv-cross/shaders/tese/triangle.tese +++ /dev/null @@ -1,10 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require - -layout(cw, triangles, fractional_even_spacing) in; - -void main() -{ - gl_Position = vec4(1.0); -} - diff --git a/third_party/spirv-cross/shaders/tese/water_tess.tese b/third_party/spirv-cross/shaders/tese/water_tess.tese deleted file mode 100644 index 32d6bc9391..0000000000 --- a/third_party/spirv-cross/shaders/tese/water_tess.tese +++ /dev/null @@ -1,65 +0,0 @@ -#version 310 es -#extension GL_EXT_tessellation_shader : require -precision highp int; - -layout(cw, quads, fractional_even_spacing) in; - -layout(location = 0) patch in vec2 vOutPatchPosBase; -layout(location = 1) patch in vec4 vPatchLods; - -layout(binding = 1, std140) uniform UBO -{ - mat4 uMVP; - vec4 uScale; - vec2 uInvScale; - vec3 uCamPos; - vec2 uPatchSize; - vec2 uInvHeightmapSize; -}; -layout(binding = 0) uniform mediump sampler2D uHeightmapDisplacement; - -layout(location = 0) highp out vec3 vWorld; -layout(location = 1) highp out vec4 vGradNormalTex; - -vec2 lerp_vertex(vec2 tess_coord) -{ - return vOutPatchPosBase + tess_coord * uPatchSize; -} - -mediump vec2 lod_factor(vec2 tess_coord) -{ - mediump vec2 x = mix(vPatchLods.yx, vPatchLods.zw, tess_coord.x); - mediump float level = mix(x.x, x.y, tess_coord.y); - mediump float floor_level = floor(level); - mediump float fract_level = level - floor_level; - return vec2(floor_level, fract_level); -} - -mediump vec3 sample_height_displacement(vec2 uv, vec2 off, mediump vec2 lod) -{ - return mix( - textureLod(uHeightmapDisplacement, uv + 0.5 * off, lod.x).xyz, - textureLod(uHeightmapDisplacement, uv + 1.0 * off, lod.x + 1.0).xyz, - lod.y); -} - -void main() -{ - vec2 tess_coord = gl_TessCoord.xy; - vec2 pos = lerp_vertex(tess_coord); - mediump vec2 lod = lod_factor(tess_coord); - - vec2 tex = pos * uInvHeightmapSize.xy; - pos *= uScale.xy; - - mediump float delta_mod = exp2(lod.x); - vec2 off = uInvHeightmapSize.xy * delta_mod; - - vGradNormalTex = vec4(tex + 0.5 * uInvHeightmapSize.xy, tex * uScale.zw); - vec3 height_displacement = sample_height_displacement(tex, off, lod); - - pos += height_displacement.yz; - vWorld = vec3(pos.x, height_displacement.x, pos.y); - gl_Position = uMVP * vec4(vWorld, 1.0); -} - diff --git a/third_party/spirv-cross/shaders/vert/basic.vert b/third_party/spirv-cross/shaders/vert/basic.vert deleted file mode 100644 index 2c75d44a43..0000000000 --- a/third_party/spirv-cross/shaders/vert/basic.vert +++ /dev/null @@ -1,16 +0,0 @@ -#version 310 es - -layout(std140) uniform UBO -{ - uniform mat4 uMVP; -}; - -layout(location = 0) in vec4 aVertex; -layout(location = 1) in vec3 aNormal; -layout(location = 0) out vec3 vNormal; - -void main() -{ - gl_Position = uMVP * aVertex; - vNormal = aNormal; -} diff --git a/third_party/spirv-cross/shaders/vert/ground.vert b/third_party/spirv-cross/shaders/vert/ground.vert deleted file mode 100755 index 2deeb5a94b..0000000000 --- a/third_party/spirv-cross/shaders/vert/ground.vert +++ /dev/null @@ -1,202 +0,0 @@ -#version 310 es - -#define YFLIP 0 -#define SPECULAR 0 -#define GLOSSMAP 0 - -#define DEBUG_NONE 0 -#define DEBUG_DIFFUSE 1 -#define DEBUG_SPECULAR 2 -#define DEBUG_LIGHTING 3 -#define DEBUG_FOG 4 -#define DEBUG DEBUG_NONE - -#define FORWARD 0 -#define DEFERRED 1 -#define DEFERRED_VTEX 2 - -float saturate(float x) { return clamp(x, 0.0, 1.0); } - -layout(std140, binding = 0) uniform GlobalVSData -{ - vec4 g_ViewProj_Row0; - vec4 g_ViewProj_Row1; - vec4 g_ViewProj_Row2; - vec4 g_ViewProj_Row3; - vec4 g_CamPos; - vec4 g_CamRight; - vec4 g_CamUp; - vec4 g_CamFront; - vec4 g_SunDir; - vec4 g_SunColor; - vec4 g_TimeParams; - vec4 g_ResolutionParams; - vec4 g_CamAxisRight; - vec4 g_FogColor_Distance; - vec4 g_ShadowVP_Row0; - vec4 g_ShadowVP_Row1; - vec4 g_ShadowVP_Row2; - vec4 g_ShadowVP_Row3; -}; - -vec4 ComputeFogFactor(vec3 WorldPos) -{ - vec4 FogData; - vec3 vEye = WorldPos - g_CamPos.xyz; - vec3 nEye = normalize(vEye); - FogData.w = exp(-dot(vEye, vEye) * g_FogColor_Distance.w * 0.75); - - float fog_sun_factor = pow(saturate(dot(nEye, g_SunDir.xyz)), 8.0); - FogData.xyz = mix(vec3(1.0, 1.0, 1.0), vec3(0.6, 0.6, 0.9), nEye.y * 0.5 + 0.5); - FogData.xyz = mix(FogData.xyz, vec3(0.95, 0.87, 0.78), fog_sun_factor); - return FogData; -} - -void ApplyFog(inout vec3 Color, vec4 FogData) -{ - Color = mix(FogData.xyz, Color, FogData.w); -} - -void ApplyLighting(inout mediump vec3 Color, mediump float DiffuseFactor) -{ - mediump vec3 DiffuseLight = g_SunColor.xyz * DiffuseFactor; - mediump vec3 AmbientLight = vec3(0.2, 0.35, 0.55) * 0.5; - mediump vec3 Lighting = DiffuseLight + AmbientLight; -#if DEBUG == DEBUG_LIGHTING - Color = Lighting; -#else - Color *= Lighting; -#endif -} - -#pragma VARIANT SPECULAR -#pragma VARIANT GLOSSMAP - -void ApplySpecular(inout mediump vec3 Color, mediump vec3 EyeVec, mediump vec3 Normal, mediump vec3 SpecularColor, mediump float Shininess, mediump float FresnelAmount) -{ - mediump vec3 HalfAngle = normalize(-EyeVec + g_SunDir.xyz); - - mediump float v_dot_h = saturate(dot(HalfAngle, -EyeVec)); - mediump float n_dot_l = saturate(dot(Normal, g_SunDir.xyz)); - mediump float n_dot_h = saturate(dot(Normal, HalfAngle)); - mediump float n_dot_v = saturate(dot(-EyeVec, Normal)); - mediump float h_dot_l = saturate(dot(g_SunDir.xyz, HalfAngle)); - - const mediump float roughness_value = 0.25; - - mediump float r_sq = roughness_value * roughness_value; - mediump float n_dot_h_sq = n_dot_h * n_dot_h; - mediump float roughness_a = 1.0 / (4.0 * r_sq * n_dot_h_sq * n_dot_h_sq); - mediump float roughness_b = n_dot_h_sq - 1.0; - mediump float roughness_c = r_sq * n_dot_h_sq; - mediump float roughness = saturate(roughness_a * exp(roughness_b / roughness_c)); - - FresnelAmount = 0.5; - mediump float fresnel_term = pow(1.0 - n_dot_v, 5.0) * (1.0 - FresnelAmount) + FresnelAmount; - - mediump float geo_numerator = 2.0 * n_dot_h; - mediump float geo_denominator = 1.0 / v_dot_h; - mediump float geo_term = min(1.0, min(n_dot_v, n_dot_l) * geo_numerator * geo_denominator); - -#if SPECULAR || GLOSSMAP - Color += SpecularColor * g_SunColor.xyz * fresnel_term * roughness * n_dot_l * geo_term / (n_dot_v * n_dot_l + 0.0001); -#endif - - //Color = vec3(0.025 * 1.0 / (n_dot_v * n_dot_l)); -} - -layout(location = 0) in vec2 Position; -layout(location = 1) in vec4 LODWeights; - -layout(location = 0) out vec2 TexCoord; -layout(location = 1) out vec3 EyeVec; - -layout(std140, binding = 2) uniform GlobalGround -{ - vec4 GroundScale; - vec4 GroundPosition; - vec4 InvGroundSize_PatchScale; -}; - -struct PatchData -{ - vec4 Position; - vec4 LODs; -}; - -layout(std140, binding = 0) uniform PerPatch -{ - PatchData Patches[256]; -}; - -layout(binding = 0) uniform sampler2D TexHeightmap; -layout(binding = 1) uniform sampler2D TexLOD; - -vec2 lod_factor(vec2 uv) -{ - float level = textureLod(TexLOD, uv, 0.0).x * (255.0 / 32.0); - float floor_level = floor(level); - float fract_level = level - floor_level; - return vec2(floor_level, fract_level); -} - -#ifdef VULKAN -#define INSTANCE_ID gl_InstanceIndex -#else -#define INSTANCE_ID gl_InstanceID -#endif - -vec2 warp_position() -{ - float vlod = dot(LODWeights, Patches[INSTANCE_ID].LODs); - vlod = mix(vlod, Patches[INSTANCE_ID].Position.w, all(equal(LODWeights, vec4(0.0)))); - -#ifdef DEBUG_LOD_HEIGHT - LODFactor = vec4(vlod); -#endif - - float floor_lod = floor(vlod); - float fract_lod = vlod - floor_lod; - uint ufloor_lod = uint(floor_lod); - -#ifdef DEBUG_LOD_HEIGHT - LODFactor = vec4(fract_lod); -#endif - - uvec2 uPosition = uvec2(Position); - uvec2 mask = (uvec2(1u) << uvec2(ufloor_lod, ufloor_lod + 1u)) - 1u; - //uvec2 rounding = mix(uvec2(0u), mask, lessThan(uPosition, uvec2(32u))); - - uvec2 rounding = uvec2( - uPosition.x < 32u ? mask.x : 0u, - uPosition.y < 32u ? mask.y : 0u); - - vec4 lower_upper_snapped = vec4((uPosition + rounding).xyxy & (~mask).xxyy); - return mix(lower_upper_snapped.xy, lower_upper_snapped.zw, fract_lod); -} - -void main() -{ - vec2 PatchPos = Patches[INSTANCE_ID].Position.xz * InvGroundSize_PatchScale.zw; - vec2 WarpedPos = warp_position(); - vec2 VertexPos = PatchPos + WarpedPos; - vec2 NormalizedPos = VertexPos * InvGroundSize_PatchScale.xy; - vec2 lod = lod_factor(NormalizedPos); - - vec2 Offset = exp2(lod.x) * InvGroundSize_PatchScale.xy; - - float Elevation = - mix(textureLod(TexHeightmap, NormalizedPos + 0.5 * Offset, lod.x).x, - textureLod(TexHeightmap, NormalizedPos + 1.0 * Offset, lod.x + 1.0).x, - lod.y); - - vec3 WorldPos = vec3(NormalizedPos.x, Elevation, NormalizedPos.y); - WorldPos *= GroundScale.xyz; - WorldPos += GroundPosition.xyz; - - EyeVec = WorldPos - g_CamPos.xyz; - TexCoord = NormalizedPos + 0.5 * InvGroundSize_PatchScale.xy; - - gl_Position = WorldPos.x * g_ViewProj_Row0 + WorldPos.y * g_ViewProj_Row1 + WorldPos.z * g_ViewProj_Row2 + g_ViewProj_Row3; -} - diff --git a/third_party/spirv-cross/shaders/vert/invariant.vert b/third_party/spirv-cross/shaders/vert/invariant.vert deleted file mode 100644 index 239b985da1..0000000000 --- a/third_party/spirv-cross/shaders/vert/invariant.vert +++ /dev/null @@ -1,13 +0,0 @@ -#version 310 es - -invariant gl_Position; -layout(location = 0) invariant out vec4 vColor; -layout(location = 0) in vec4 vInput0; -layout(location = 1) in vec4 vInput1; -layout(location = 2) in vec4 vInput2; - -void main() -{ - gl_Position = vInput0 + vInput1 * vInput2; - vColor = (vInput0 - vInput1) * vInput2; -} diff --git a/third_party/spirv-cross/shaders/vert/no-contraction.vert b/third_party/spirv-cross/shaders/vert/no-contraction.vert deleted file mode 100644 index 206fbf0de8..0000000000 --- a/third_party/spirv-cross/shaders/vert/no-contraction.vert +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 - -layout(location = 0) in vec4 vA; -layout(location = 1) in vec4 vB; -layout(location = 2) in vec4 vC; - -void main() -{ - precise vec4 mul = vA * vB; - precise vec4 add = vA + vB; - precise vec4 sub = vA - vB; - precise vec4 mad = vA * vB + vC; - precise vec4 summed = mul + add + sub + mad; - gl_Position = summed; -} diff --git a/third_party/spirv-cross/shaders/vert/ocean.vert b/third_party/spirv-cross/shaders/vert/ocean.vert deleted file mode 100644 index 8a5677fa12..0000000000 --- a/third_party/spirv-cross/shaders/vert/ocean.vert +++ /dev/null @@ -1,200 +0,0 @@ -#version 310 es - -#define YFLIP 0 -#define SPECULAR 0 -#define GLOSSMAP 0 - -#define DEBUG_NONE 0 -#define DEBUG_DIFFUSE 1 -#define DEBUG_SPECULAR 2 -#define DEBUG_LIGHTING 3 -#define DEBUG_FOG 4 -#define DEBUG DEBUG_NONE - -#define FORWARD 0 -#define DEFERRED 1 -#define DEFERRED_VTEX 2 - -float saturate(float x) { return clamp(x, 0.0, 1.0); } - -layout(std140, binding = 0) uniform GlobalVSData -{ - vec4 g_ViewProj_Row0; - vec4 g_ViewProj_Row1; - vec4 g_ViewProj_Row2; - vec4 g_ViewProj_Row3; - vec4 g_CamPos; - vec4 g_CamRight; - vec4 g_CamUp; - vec4 g_CamFront; - vec4 g_SunDir; - vec4 g_SunColor; - vec4 g_TimeParams; - vec4 g_ResolutionParams; - vec4 g_CamAxisRight; - vec4 g_FogColor_Distance; - vec4 g_ShadowVP_Row0; - vec4 g_ShadowVP_Row1; - vec4 g_ShadowVP_Row2; - vec4 g_ShadowVP_Row3; -}; - -vec4 ComputeFogFactor(vec3 WorldPos) -{ - vec4 FogData; - vec3 vEye = WorldPos - g_CamPos.xyz; - vec3 nEye = normalize(vEye); - FogData.w = exp(-dot(vEye, vEye) * g_FogColor_Distance.w * 0.75); - - float fog_sun_factor = pow(saturate(dot(nEye, g_SunDir.xyz)), 8.0); - FogData.xyz = mix(vec3(1.0, 1.0, 1.0), vec3(0.6, 0.6, 0.9), nEye.y * 0.5 + 0.5); - FogData.xyz = mix(FogData.xyz, vec3(0.95, 0.87, 0.78), fog_sun_factor); - return FogData; -} - -void ApplyFog(inout vec3 Color, vec4 FogData) -{ - Color = mix(FogData.xyz, Color, FogData.w); -} - -void ApplyLighting(inout mediump vec3 Color, mediump float DiffuseFactor) -{ - mediump vec3 DiffuseLight = g_SunColor.xyz * DiffuseFactor; - mediump vec3 AmbientLight = vec3(0.2, 0.35, 0.55) * 0.5; - mediump vec3 Lighting = DiffuseLight + AmbientLight; -#if DEBUG == DEBUG_LIGHTING - Color = Lighting; -#else - Color *= Lighting; -#endif -} - -void ApplySpecular(inout mediump vec3 Color, mediump vec3 EyeVec, mediump vec3 Normal, mediump vec3 SpecularColor, mediump float Shininess, mediump float FresnelAmount) -{ - mediump vec3 HalfAngle = normalize(-EyeVec + g_SunDir.xyz); - - mediump float v_dot_h = saturate(dot(HalfAngle, -EyeVec)); - mediump float n_dot_l = saturate(dot(Normal, g_SunDir.xyz)); - mediump float n_dot_h = saturate(dot(Normal, HalfAngle)); - mediump float n_dot_v = saturate(dot(-EyeVec, Normal)); - mediump float h_dot_l = saturate(dot(g_SunDir.xyz, HalfAngle)); - - const mediump float roughness_value = 0.25; - - mediump float r_sq = roughness_value * roughness_value; - mediump float n_dot_h_sq = n_dot_h * n_dot_h; - mediump float roughness_a = 1.0 / (4.0 * r_sq * n_dot_h_sq * n_dot_h_sq); - mediump float roughness_b = n_dot_h_sq - 1.0; - mediump float roughness_c = r_sq * n_dot_h_sq; - mediump float roughness = saturate(roughness_a * exp(roughness_b / roughness_c)); - - FresnelAmount = 0.5; - mediump float fresnel_term = pow(1.0 - n_dot_v, 5.0) * (1.0 - FresnelAmount) + FresnelAmount; - - mediump float geo_numerator = 2.0 * n_dot_h; - mediump float geo_denominator = 1.0 / v_dot_h; - mediump float geo_term = min(1.0, min(n_dot_v, n_dot_l) * geo_numerator * geo_denominator); - -#if SPECULAR || GLOSSMAP - Color += SpecularColor * g_SunColor.xyz * fresnel_term * roughness * n_dot_l * geo_term / (n_dot_v * n_dot_l + 0.0001); -#endif - - //Color = vec3(0.025 * 1.0 / (n_dot_v * n_dot_l)); -} - - -precision highp int; - -layout(binding = 0) uniform mediump sampler2D TexDisplacement; -layout(binding = 1) uniform mediump sampler2D TexLOD; - -layout(location = 0) in vec4 Position; -layout(location = 1) in vec4 LODWeights; - -layout(location = 0) out highp vec3 EyeVec; -layout(location = 1) out highp vec4 TexCoord; - -layout(std140, binding = 4) uniform GlobalOcean -{ - vec4 OceanScale; - vec4 OceanPosition; - vec4 InvOceanSize_PatchScale; - vec4 NormalTexCoordScale; -}; - -struct PatchData -{ - vec4 Position; - vec4 LODs; -}; - -layout(std140, binding = 0) uniform Offsets -{ - PatchData Patches[256]; -}; - -vec2 lod_factor(vec2 uv) -{ - float level = textureLod(TexLOD, uv, 0.0).x * (255.0 / 32.0); - float floor_level = floor(level); - float fract_level = level - floor_level; - return vec2(floor_level, fract_level); -} - -#ifdef VULKAN -#define INSTANCE_ID gl_InstanceIndex -#else -#define INSTANCE_ID gl_InstanceID -#endif - -vec2 warp_position() -{ - float vlod = dot(LODWeights, Patches[INSTANCE_ID].LODs); - vlod = mix(vlod, Patches[INSTANCE_ID].Position.w, all(equal(LODWeights, vec4(0.0)))); - - float floor_lod = floor(vlod); - float fract_lod = vlod - floor_lod; - uint ufloor_lod = uint(floor_lod); - - uvec4 uPosition = uvec4(Position); - uvec2 mask = (uvec2(1u) << uvec2(ufloor_lod, ufloor_lod + 1u)) - 1u; - - uvec4 rounding; - rounding.x = uPosition.x < 32u ? mask.x : 0u; - rounding.y = uPosition.y < 32u ? mask.x : 0u; - rounding.z = uPosition.x < 32u ? mask.y : 0u; - rounding.w = uPosition.y < 32u ? mask.y : 0u; - - //rounding = uPosition.xyxy * mask.xxyy; - vec4 lower_upper_snapped = vec4((uPosition.xyxy + rounding) & (~mask).xxyy); - return mix(lower_upper_snapped.xy, lower_upper_snapped.zw, fract_lod); -} - -void main() -{ - vec2 PatchPos = Patches[INSTANCE_ID].Position.xz * InvOceanSize_PatchScale.zw; - vec2 WarpedPos = warp_position(); - vec2 VertexPos = PatchPos + WarpedPos; - vec2 NormalizedPos = VertexPos * InvOceanSize_PatchScale.xy; - vec2 NormalizedTex = NormalizedPos * NormalTexCoordScale.zw; - vec2 lod = lod_factor(NormalizedPos); - vec2 Offset = exp2(lod.x) * InvOceanSize_PatchScale.xy * NormalTexCoordScale.zw; - - vec3 Displacement = - mix(textureLod(TexDisplacement, NormalizedTex + 0.5 * Offset, lod.x).yxz, - textureLod(TexDisplacement, NormalizedTex + 1.0 * Offset, lod.x + 1.0).yxz, - lod.y); - - vec3 WorldPos = vec3(NormalizedPos.x, 0.0, NormalizedPos.y) + Displacement; - WorldPos *= OceanScale.xyz; - WorldPos += OceanPosition.xyz; - - EyeVec = WorldPos - g_CamPos.xyz; - TexCoord = vec4(NormalizedTex, NormalizedTex * NormalTexCoordScale.xy) + 0.5 * InvOceanSize_PatchScale.xyxy * NormalTexCoordScale.zwzw; - - gl_Position = WorldPos.x * g_ViewProj_Row0 + WorldPos.y * g_ViewProj_Row1 + WorldPos.z * g_ViewProj_Row2 + g_ViewProj_Row3; -#if YFLIP - gl_Position *= vec4(1.0, -1.0, 1.0, 1.0); -#endif -} - diff --git a/third_party/spirv-cross/shaders/vert/read-from-row-major-array.vert b/third_party/spirv-cross/shaders/vert/read-from-row-major-array.vert deleted file mode 100644 index 792fb8e36c..0000000000 --- a/third_party/spirv-cross/shaders/vert/read-from-row-major-array.vert +++ /dev/null @@ -1,20 +0,0 @@ -#version 310 es -layout(location = 0) in highp vec4 a_position; -layout(location = 0) out mediump float v_vtxResult; - -layout(set = 0, binding = 0, std140, row_major) uniform Block -{ - highp mat2x3 var[3][4]; -}; - -mediump float compare_float (highp float a, highp float b) { return abs(a - b) < 0.05 ? 1.0 : 0.0; } -mediump float compare_vec3 (highp vec3 a, highp vec3 b) { return compare_float(a.x, b.x)*compare_float(a.y, b.y)*compare_float(a.z, b.z); } -mediump float compare_mat2x3 (highp mat2x3 a, highp mat2x3 b){ return compare_vec3(a[0], b[0])*compare_vec3(a[1], b[1]); } - -void main (void) -{ - gl_Position = a_position; - mediump float result = 1.0; - result *= compare_mat2x3(var[0][0], mat2x3(2.0, 6.0, -6.0, 0.0, 5.0, 5.0)); - v_vtxResult = result; -} diff --git a/third_party/spirv-cross/shaders/vert/return-array.vert b/third_party/spirv-cross/shaders/vert/return-array.vert deleted file mode 100644 index 708460114e..0000000000 --- a/third_party/spirv-cross/shaders/vert/return-array.vert +++ /dev/null @@ -1,22 +0,0 @@ -#version 310 es - -layout(location = 0) in vec4 vInput0; -layout(location = 1) in vec4 vInput1; - -vec4[2] test() -{ - return vec4[](vec4(10.0), vec4(20.0)); -} - -vec4[2] test2() -{ - vec4 foobar[2]; - foobar[0] = vInput0; - foobar[1] = vInput1; - return foobar; -} - -void main() -{ - gl_Position = test()[0] + test2()[1]; -} diff --git a/third_party/spirv-cross/shaders/vert/texture_buffer.vert b/third_party/spirv-cross/shaders/vert/texture_buffer.vert deleted file mode 100644 index 6bc7ddfae2..0000000000 --- a/third_party/spirv-cross/shaders/vert/texture_buffer.vert +++ /dev/null @@ -1,10 +0,0 @@ -#version 310 es -#extension GL_OES_texture_buffer : require - -layout(binding = 4) uniform highp samplerBuffer uSamp; -layout(rgba32f, binding = 5) uniform readonly highp imageBuffer uSampo; - -void main() -{ - gl_Position = texelFetch(uSamp, 10) + imageLoad(uSampo, 100); -} diff --git a/third_party/spirv-cross/shaders/vert/transform-feedback-decorations.vert b/third_party/spirv-cross/shaders/vert/transform-feedback-decorations.vert deleted file mode 100644 index b825dd112d..0000000000 --- a/third_party/spirv-cross/shaders/vert/transform-feedback-decorations.vert +++ /dev/null @@ -1,20 +0,0 @@ -#version 450 -layout(xfb_stride = 32, xfb_offset = 16, xfb_buffer = 2, location = 0) out vec4 vFoo; - -layout(xfb_buffer = 1, xfb_stride = 20) out gl_PerVertex -{ - layout(xfb_offset = 4) vec4 gl_Position; - float gl_PointSize; -}; - -layout(xfb_buffer = 3) out VertOut -{ - layout(xfb_stride = 16, xfb_offset = 0, location = 1) vec4 vBar; -}; - -void main() -{ - gl_Position = vec4(1.0); - vFoo = vec4(3.0); - vBar = vec4(5.0); -} diff --git a/third_party/spirv-cross/shaders/vert/ubo.vert b/third_party/spirv-cross/shaders/vert/ubo.vert deleted file mode 100644 index 82e4626e12..0000000000 --- a/third_party/spirv-cross/shaders/vert/ubo.vert +++ /dev/null @@ -1,16 +0,0 @@ -#version 310 es - -layout(binding = 0, std140) uniform UBO -{ - mat4 mvp; -}; - -layout(location = 0) in vec4 aVertex; -layout(location = 1) in vec3 aNormal; -layout(location = 0) out vec3 vNormal; - -void main() -{ - gl_Position = mvp * aVertex; - vNormal = aNormal; -} diff --git a/third_party/spirv-cross/shaders/vulkan/comp/array-of-buffer-reference.nocompat.vk.comp b/third_party/spirv-cross/shaders/vulkan/comp/array-of-buffer-reference.nocompat.vk.comp deleted file mode 100644 index a1da941fdb..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/comp/array-of-buffer-reference.nocompat.vk.comp +++ /dev/null @@ -1,23 +0,0 @@ -#version 450 -#extension GL_EXT_buffer_reference : require -layout(local_size_x = 1) in; - -layout(buffer_reference) buffer Block -{ - float v; -}; - -layout(std140, set = 0, binding = 0) uniform UBO -{ - Block blocks[4]; -} ubo; - -void main() -{ - Block blocks[4]; - blocks[0] = ubo.blocks[0]; - blocks[1] = ubo.blocks[1]; - blocks[2] = ubo.blocks[2]; - blocks[3] = ubo.blocks[3]; - blocks[gl_WorkGroupID.x].v = 20.0; -} diff --git a/third_party/spirv-cross/shaders/vulkan/comp/buffer-reference-bitcast.nocompat.vk.comp b/third_party/spirv-cross/shaders/vulkan/comp/buffer-reference-bitcast.nocompat.vk.comp deleted file mode 100644 index eda904ee34..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/comp/buffer-reference-bitcast.nocompat.vk.comp +++ /dev/null @@ -1,22 +0,0 @@ -#version 450 -#extension GL_EXT_buffer_reference: require - -layout(buffer_reference) buffer PtrUint -{ - uint value; -}; - -layout(buffer_reference) buffer PtrInt -{ - int value; -}; - -layout(set = 0, binding = 0) buffer Buf -{ - PtrUint ptr; -}; - -void main() -{ - PtrInt(ptr).value = 10; -} diff --git a/third_party/spirv-cross/shaders/vulkan/comp/buffer-reference-decorations.nocompat.vk.comp b/third_party/spirv-cross/shaders/vulkan/comp/buffer-reference-decorations.nocompat.vk.comp deleted file mode 100644 index c65463168a..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/comp/buffer-reference-decorations.nocompat.vk.comp +++ /dev/null @@ -1,31 +0,0 @@ -#version 450 -#extension GL_EXT_buffer_reference : require -layout(local_size_x = 64) in; - -layout(std430, buffer_reference) readonly buffer RO -{ - vec4 v[]; -}; - -layout(std430, buffer_reference) restrict buffer RW -{ - vec4 v[]; -}; - -layout(std430, buffer_reference) coherent writeonly buffer WO -{ - vec4 v[]; -}; - -layout(push_constant, std430) uniform Registers -{ - RO ro; - RW rw; - WO wo; -} registers; - -void main() -{ - registers.rw.v[gl_GlobalInvocationID.x] = registers.ro.v[gl_GlobalInvocationID.x]; - registers.wo.v[gl_GlobalInvocationID.x] = registers.ro.v[gl_GlobalInvocationID.x]; -} diff --git a/third_party/spirv-cross/shaders/vulkan/comp/buffer-reference.nocompat.vk.comp b/third_party/spirv-cross/shaders/vulkan/comp/buffer-reference.nocompat.vk.comp deleted file mode 100644 index f08e111398..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/comp/buffer-reference.nocompat.vk.comp +++ /dev/null @@ -1,40 +0,0 @@ -#version 450 -#extension GL_EXT_buffer_reference : require -#extension GL_ARB_gpu_shader_int64 : require - -layout(buffer_reference) buffer Node; -layout(buffer_reference) buffer Node -{ - int value; - layout(offset = 16) Node next; - layout(offset = 32) Node prev; -}; - -layout(std430, set = 0, binding = 0) buffer LinkedList -{ - restrict Node head1; - restrict Node head2; -}; - -void copy_node(restrict Node dst, restrict Node a, restrict Node b) -{ - dst.value = a.value + b.value; -} - -void overwrite_node(out restrict Node dst, restrict Node src) -{ - dst = src; -} - -void main() -{ - restrict Node n = gl_WorkGroupID.x < 4u ? head1 : head2; - copy_node(n.next, head1, head2); - overwrite_node(n, head1); - int v = head2.value; - n.value = 20; - n.value = v * 10; - - uint64_t uptr = uint64_t(head2.next); - Node unode = Node(uptr); -} diff --git a/third_party/spirv-cross/shaders/vulkan/comp/spec-constant-op-member-array.vk.comp b/third_party/spirv-cross/shaders/vulkan/comp/spec-constant-op-member-array.vk.comp deleted file mode 100644 index 0b428eb0cf..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/comp/spec-constant-op-member-array.vk.comp +++ /dev/null @@ -1,33 +0,0 @@ -#version 450 -layout(local_size_x = 1) in; - -layout(constant_id = 0) const int a = 100; -layout(constant_id = 1) const int b = 200; -layout(constant_id = 2) const int c = 300; -const int d = c + 50; -layout(constant_id = 3) const int e = 400; - -struct A -{ - int member0[a]; - int member1[b]; -}; - -struct B -{ - int member0[b]; - int member1[a]; -}; - -layout(set = 1, binding = 0) buffer SSBO -{ - A member_a; - B member_b; - int v[a]; - int w[d]; -}; - -void main() -{ - w[gl_GlobalInvocationID.x] += v[gl_GlobalInvocationID.x] + e; -} diff --git a/third_party/spirv-cross/shaders/vulkan/comp/spec-constant-work-group-size.vk.comp b/third_party/spirv-cross/shaders/vulkan/comp/spec-constant-work-group-size.vk.comp deleted file mode 100644 index 09b65dc99f..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/comp/spec-constant-work-group-size.vk.comp +++ /dev/null @@ -1,17 +0,0 @@ -#version 450 -layout(local_size_x_id = 10, local_size_y = 20) in; - -layout(constant_id = 0) const int a = 1; -layout(constant_id = 1) const int b = 2; - -layout(set = 1, binding = 0) writeonly buffer SSBO -{ - int v[]; -}; - -void main() -{ - int spec_const_array_size[b]; - spec_const_array_size[a] = a; - v[a + gl_WorkGroupSize.x + gl_WorkGroupSize.y] = b + spec_const_array_size[1 - a]; -} diff --git a/third_party/spirv-cross/shaders/vulkan/frag/combined-texture-sampler-shadow.vk.frag b/third_party/spirv-cross/shaders/vulkan/frag/combined-texture-sampler-shadow.vk.frag deleted file mode 100644 index 2fabb5ea8a..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/frag/combined-texture-sampler-shadow.vk.frag +++ /dev/null @@ -1,29 +0,0 @@ -#version 310 es -precision mediump float; - -layout(set = 0, binding = 0) uniform mediump samplerShadow uSampler; -layout(set = 0, binding = 1) uniform mediump sampler uSampler1; -layout(set = 0, binding = 2) uniform texture2D uDepth; -layout(location = 0) out float FragColor; - -float samp2(texture2D t, mediump samplerShadow s) -{ - return texture(sampler2DShadow(t, s), vec3(1.0)); -} - -float samp3(texture2D t, mediump sampler s) -{ - return texture(sampler2D(t, s), vec2(1.0)).x; -} - -float samp(texture2D t, mediump samplerShadow s, mediump sampler s1) -{ - float r0 = samp2(t, s); - float r1 = samp3(t, s1); - return r0 + r1; -} - -void main() -{ - FragColor = samp(uDepth, uSampler, uSampler1); -} diff --git a/third_party/spirv-cross/shaders/vulkan/frag/combined-texture-sampler.vk.frag b/third_party/spirv-cross/shaders/vulkan/frag/combined-texture-sampler.vk.frag deleted file mode 100644 index b7de8d47e9..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/frag/combined-texture-sampler.vk.frag +++ /dev/null @@ -1,47 +0,0 @@ -#version 310 es -precision mediump float; - -layout(set = 0, binding = 0) uniform mediump sampler uSampler0; -layout(set = 0, binding = 1) uniform mediump sampler uSampler1; -layout(set = 0, binding = 2) uniform mediump texture2D uTexture0; -layout(set = 0, binding = 3) uniform mediump texture2D uTexture1; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec2 vTex; - -vec4 sample_dual(mediump sampler samp, mediump texture2D tex) -{ - return texture(sampler2D(tex, samp), vTex); -} - -vec4 sample_global_tex(mediump sampler samp) -{ - vec4 a = texture(sampler2D(uTexture0, samp), vTex); - vec4 b = sample_dual(samp, uTexture1); - return a + b; -} - -vec4 sample_global_sampler(mediump texture2D tex) -{ - vec4 a = texture(sampler2D(tex, uSampler0), vTex); - vec4 b = sample_dual(uSampler1, tex); - return a + b; -} - -vec4 sample_duals() -{ - vec4 a = sample_dual(uSampler0, uTexture0); - vec4 b = sample_dual(uSampler1, uTexture1); - return a + b; -} - -void main() -{ - vec4 c0 = sample_duals(); - vec4 c1 = sample_global_tex(uSampler0); - vec4 c2 = sample_global_tex(uSampler1); - vec4 c3 = sample_global_sampler(uTexture0); - vec4 c4 = sample_global_sampler(uTexture1); - - FragColor = c0 + c1 + c2 + c3 + c4; -} diff --git a/third_party/spirv-cross/shaders/vulkan/frag/demote-to-helper-forwarding.asm.vk.nocompat.frag b/third_party/spirv-cross/shaders/vulkan/frag/demote-to-helper-forwarding.asm.vk.nocompat.frag deleted file mode 100644 index ba57b8c5af..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/frag/demote-to-helper-forwarding.asm.vk.nocompat.frag +++ /dev/null @@ -1,41 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Khronos Glslang Reference Front End; 7 -; Bound: 19 -; Schema: 0 - OpCapability Shader - OpCapability DemoteToHelperInvocationEXT - OpExtension "SPV_EXT_demote_to_helper_invocation" - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %main "main" %FragColor - OpExecutionMode %main OriginUpperLeft - OpSource GLSL 450 - OpSourceExtension "GL_EXT_demote_to_helper_invocation" - OpName %main "main" - OpName %FragColor "FragColor" - OpDecorate %FragColor Location 0 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %bool = OpTypeBool -%_ptr_Function_bool = OpTypePointer Function %bool - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %FragColor = OpVariable %_ptr_Output_v4float Output - %float_1 = OpConstant %float 1 - %float_0 = OpConstant %float 0 - %19 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 - %main = OpFunction %void None %3 - %5 = OpLabel - %9 = OpIsHelperInvocationEXT %bool - OpDemoteToHelperInvocationEXT - %10 = OpLogicalNot %bool %9 - OpSelectionMerge %12 None - OpBranchConditional %10 %11 %12 - %11 = OpLabel - OpStore %FragColor %19 - OpBranch %12 - %12 = OpLabel - OpReturn - OpFunctionEnd diff --git a/third_party/spirv-cross/shaders/vulkan/frag/demote-to-helper.vk.nocompat.frag b/third_party/spirv-cross/shaders/vulkan/frag/demote-to-helper.vk.nocompat.frag deleted file mode 100644 index 8b8bb61ff7..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/frag/demote-to-helper.vk.nocompat.frag +++ /dev/null @@ -1,8 +0,0 @@ -#version 450 -#extension GL_EXT_demote_to_helper_invocation : require - -void main() -{ - demote; - bool helper = helperInvocationEXT(); -} diff --git a/third_party/spirv-cross/shaders/vulkan/frag/desktop-mediump.vk.frag b/third_party/spirv-cross/shaders/vulkan/frag/desktop-mediump.vk.frag deleted file mode 100644 index 23fe3d3da0..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/frag/desktop-mediump.vk.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 450 - -layout(location = 0) in mediump vec4 F; -layout(location = 1) flat in mediump ivec4 I; -layout(location = 2) flat in mediump uvec4 U; -layout(location = 0) out mediump vec4 FragColor; - -void main() -{ - FragColor = F + vec4(I) + vec4(U); -} diff --git a/third_party/spirv-cross/shaders/vulkan/frag/input-attachment-ms.vk.frag b/third_party/spirv-cross/shaders/vulkan/frag/input-attachment-ms.vk.frag deleted file mode 100644 index e060738846..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/frag/input-attachment-ms.vk.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 450 - -layout(input_attachment_index = 0, set = 0, binding = 0) uniform subpassInputMS uSubpass0; -layout(input_attachment_index = 1, set = 0, binding = 1) uniform subpassInputMS uSubpass1; -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = subpassLoad(uSubpass0, 1) + subpassLoad(uSubpass1, 2) + subpassLoad(uSubpass0, gl_SampleID); -} diff --git a/third_party/spirv-cross/shaders/vulkan/frag/input-attachment.vk.frag b/third_party/spirv-cross/shaders/vulkan/frag/input-attachment.vk.frag deleted file mode 100644 index f082d15b2a..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/frag/input-attachment.vk.frag +++ /dev/null @@ -1,11 +0,0 @@ -#version 310 es -precision mediump float; - -layout(input_attachment_index = 0, set = 0, binding = 0) uniform mediump subpassInput uSubpass0; -layout(input_attachment_index = 1, set = 0, binding = 1) uniform mediump subpassInput uSubpass1; -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = subpassLoad(uSubpass0) + subpassLoad(uSubpass1); -} diff --git a/third_party/spirv-cross/shaders/vulkan/frag/nonuniform-qualifier.vk.nocompat.frag b/third_party/spirv-cross/shaders/vulkan/frag/nonuniform-qualifier.vk.nocompat.frag deleted file mode 100644 index 136133eb30..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/frag/nonuniform-qualifier.vk.nocompat.frag +++ /dev/null @@ -1,52 +0,0 @@ -#version 450 -#extension GL_EXT_nonuniform_qualifier : require -#extension GL_EXT_samplerless_texture_functions : require - -layout(binding = 0) uniform texture2D uSamplers[]; -layout(binding = 0) uniform texture2DMS uSamplersMS[]; -layout(binding = 4) uniform sampler2D uCombinedSamplers[]; -layout(binding = 1) uniform sampler uSamps[]; -layout(location = 0) flat in int vIndex; -layout(location = 1) in vec2 vUV; -layout(location = 0) out vec4 FragColor; - -layout(r32f, binding = 5) uniform image2D uImages[]; -layout(r32ui, binding = 5) uniform uimage2D uImagesU32[]; - -layout(set = 0, binding = 2) uniform UBO -{ - vec4 v[64]; -} ubos[]; - -layout(set = 0, binding = 3) buffer SSBO -{ - uint counter; - vec4 v[]; -} ssbos[]; - -void main() -{ - int i = vIndex; - FragColor = texture(nonuniformEXT(sampler2D(uSamplers[i + 10], uSamps[i + 40])), vUV); - FragColor = texture(uCombinedSamplers[nonuniformEXT(i + 10)], vUV); - FragColor += ubos[nonuniformEXT(i + 20)].v[nonuniformEXT(i + 40)]; - FragColor += ssbos[nonuniformEXT(i + 50)].v[nonuniformEXT(i + 60)]; - ssbos[nonuniformEXT(i + 60)].v[nonuniformEXT(i + 70)] = vec4(20.0); - - FragColor = texelFetch(uSamplers[nonuniformEXT(i + 10)], ivec2(vUV), 0); - atomicAdd(ssbos[nonuniformEXT(i + 100)].counter, 100u); - - vec2 queried = textureQueryLod(nonuniformEXT(sampler2D(uSamplers[i + 10], uSamps[i + 40])), vUV); - queried += textureQueryLod(uCombinedSamplers[nonuniformEXT(i + 10)], vUV); - FragColor.xy += queried; - - FragColor.x += float(textureQueryLevels(uSamplers[nonuniformEXT(i + 20)])); - FragColor.y += float(textureSamples(uSamplersMS[nonuniformEXT(i + 20)])); - FragColor.xy += vec2(textureSize(uSamplers[nonuniformEXT(i + 20)], 0)); - - FragColor += imageLoad(uImages[nonuniformEXT(i + 50)], ivec2(vUV)); - FragColor.xy += vec2(imageSize(uImages[nonuniformEXT(i + 20)])); - imageStore(uImages[nonuniformEXT(i + 60)], ivec2(vUV), vec4(50.0)); - - imageAtomicAdd(uImagesU32[nonuniformEXT(i + 70)], ivec2(vUV), 40u); -} diff --git a/third_party/spirv-cross/shaders/vulkan/frag/push-constant-as-ubo.push-ubo.vk.frag b/third_party/spirv-cross/shaders/vulkan/frag/push-constant-as-ubo.push-ubo.vk.frag deleted file mode 100644 index b843e266e1..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/frag/push-constant-as-ubo.push-ubo.vk.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 - -layout(push_constant, std140) uniform UBO -{ - float ubo[4]; -}; - -layout(location = 0) out float FragColor; - -void main() -{ - FragColor = ubo[1]; -} diff --git a/third_party/spirv-cross/shaders/vulkan/frag/push-constant.vk.frag b/third_party/spirv-cross/shaders/vulkan/frag/push-constant.vk.frag deleted file mode 100644 index 6180faba31..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/frag/push-constant.vk.frag +++ /dev/null @@ -1,16 +0,0 @@ -#version 310 es -precision mediump float; - -layout(push_constant, std430) uniform PushConstants -{ - vec4 value0; - vec4 value1; -} push; - -layout(location = 0) in vec4 vColor; -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = vColor + push.value0 + push.value1; -} diff --git a/third_party/spirv-cross/shaders/vulkan/frag/separate-combined-fake-overload.vk.frag b/third_party/spirv-cross/shaders/vulkan/frag/separate-combined-fake-overload.vk.frag deleted file mode 100644 index 22d18a26a4..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/frag/separate-combined-fake-overload.vk.frag +++ /dev/null @@ -1,21 +0,0 @@ -#version 450 - -layout(location = 0) out vec4 FragColor; -layout(binding = 0) uniform sampler2D uSamp; -layout(binding = 1) uniform texture2D uT; -layout(binding = 2) uniform sampler uS; - -vec4 samp(sampler2D uSamp) -{ - return texture(uSamp, vec2(0.5)); -} - -vec4 samp(texture2D T, sampler S) -{ - return texture(sampler2D(T, S), vec2(0.5)); -} - -void main() -{ - FragColor = samp(uSamp) + samp(uT, uS); -} diff --git a/third_party/spirv-cross/shaders/vulkan/frag/separate-sampler-texture-array.vk.frag b/third_party/spirv-cross/shaders/vulkan/frag/separate-sampler-texture-array.vk.frag deleted file mode 100644 index b3501c1d8d..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/frag/separate-sampler-texture-array.vk.frag +++ /dev/null @@ -1,42 +0,0 @@ -#version 310 es -precision mediump float; - -layout(set = 0, binding = 0) uniform mediump sampler uSampler; -layout(set = 0, binding = 1) uniform mediump texture2D uTexture[4]; -layout(set = 0, binding = 2) uniform mediump texture3D uTexture3D[4]; -layout(set = 0, binding = 3) uniform mediump textureCube uTextureCube[4]; -layout(set = 0, binding = 4) uniform mediump texture2DArray uTextureArray[4]; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec2 vTex; -layout(location = 1) in vec3 vTex3; - -vec4 sample_func(mediump sampler samp, vec2 uv) -{ - return texture(sampler2D(uTexture[2], samp), uv); -} - -vec4 sample_func_dual(mediump sampler samp, mediump texture2D tex, vec2 uv) -{ - return texture(sampler2D(tex, samp), uv); -} - -vec4 sample_func_dual_array(mediump sampler samp, mediump texture2D tex[4], vec2 uv) -{ - return texture(sampler2D(tex[1], samp), uv); -} - -void main() -{ - vec2 off = 1.0 / vec2(textureSize(sampler2D(uTexture[1], uSampler), 0)); - vec2 off2 = 1.0 / vec2(textureSize(sampler2D(uTexture[2], uSampler), 1)); - - vec4 c0 = sample_func(uSampler, vTex + off + off2); - vec4 c1 = sample_func_dual(uSampler, uTexture[1], vTex + off + off2); - vec4 c2 = sample_func_dual_array(uSampler, uTexture, vTex + off + off2); - vec4 c3 = texture(sampler2DArray(uTextureArray[3], uSampler), vTex3); - vec4 c4 = texture(samplerCube(uTextureCube[1], uSampler), vTex3); - vec4 c5 = texture(sampler3D(uTexture3D[2], uSampler), vTex3); - - FragColor = c0 + c1 + c2 + c3 + c4 + c5; -} diff --git a/third_party/spirv-cross/shaders/vulkan/frag/separate-sampler-texture.vk.frag b/third_party/spirv-cross/shaders/vulkan/frag/separate-sampler-texture.vk.frag deleted file mode 100644 index cedf114ef8..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/frag/separate-sampler-texture.vk.frag +++ /dev/null @@ -1,36 +0,0 @@ -#version 310 es -precision mediump float; - -layout(set = 0, binding = 0) uniform mediump sampler uSampler; -layout(set = 0, binding = 1) uniform mediump texture2D uTexture; -layout(set = 0, binding = 2) uniform mediump texture3D uTexture3D; -layout(set = 0, binding = 3) uniform mediump textureCube uTextureCube; -layout(set = 0, binding = 4) uniform mediump texture2DArray uTextureArray; - -layout(location = 0) out vec4 FragColor; -layout(location = 0) in vec2 vTex; -layout(location = 1) in vec3 vTex3; - -vec4 sample_func(mediump sampler samp, vec2 uv) -{ - return texture(sampler2D(uTexture, samp), uv); -} - -vec4 sample_func_dual(mediump sampler samp, mediump texture2D tex, vec2 uv) -{ - return texture(sampler2D(tex, samp), uv); -} - -void main() -{ - vec2 off = 1.0 / vec2(textureSize(sampler2D(uTexture, uSampler), 0)); - vec2 off2 = 1.0 / vec2(textureSize(sampler2D(uTexture, uSampler), 1)); - - vec4 c0 = sample_func(uSampler, vTex + off + off2); - vec4 c1 = sample_func_dual(uSampler, uTexture, vTex + off + off2); - vec4 c2 = texture(sampler2DArray(uTextureArray, uSampler), vTex3); - vec4 c3 = texture(samplerCube(uTextureCube, uSampler), vTex3); - vec4 c4 = texture(sampler3D(uTexture3D, uSampler), vTex3); - - FragColor = c0 + c1 + c2 + c3 + c4; -} diff --git a/third_party/spirv-cross/shaders/vulkan/frag/shader-arithmetic-8bit.nocompat.vk.frag b/third_party/spirv-cross/shaders/vulkan/frag/shader-arithmetic-8bit.nocompat.vk.frag deleted file mode 100644 index d70b0dad90..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/frag/shader-arithmetic-8bit.nocompat.vk.frag +++ /dev/null @@ -1,88 +0,0 @@ -#version 450 -#extension GL_EXT_shader_explicit_arithmetic_types_int8 : require -#extension GL_EXT_shader_explicit_arithmetic_types_int16 : require - -layout(location = 0) flat in ivec4 vColor; -layout(location = 0) out ivec4 FragColorInt; -layout(location = 1) out uvec4 FragColorUint; - -layout(push_constant, std140) uniform Push -{ - int8_t i8; - uint8_t u8; -} registers; - -layout(binding = 0, std140) uniform UBO -{ - int8_t i8; - uint8_t u8; -} ubo; - -layout(binding = 1, std430) buffer SSBO -{ - int8_t i8[16]; - uint8_t u8[16]; -} ssbo; - -void packing_int8() -{ - int16_t i16 = 10s; - int i32 = 20; - - i8vec2 i8_2 = unpack8(i16); - i8vec4 i8_4 = unpack8(i32); - i16 = pack16(i8_2); - i32 = pack32(i8_4); - ssbo.i8[0] = i8_4.x; - ssbo.i8[1] = i8_4.y; - ssbo.i8[2] = i8_4.z; - ssbo.i8[3] = i8_4.w; -} - -void packing_uint8() -{ - uint16_t u16 = 10us; - uint u32 = 20u; - - u8vec2 u8_2 = unpack8(u16); - u8vec4 u8_4 = unpack8(u32); - u16 = pack16(u8_2); - u32 = pack32(u8_4); - - ssbo.u8[0] = u8_4.x; - ssbo.u8[1] = u8_4.y; - ssbo.u8[2] = u8_4.z; - ssbo.u8[3] = u8_4.w; -} - -void compute_int8() -{ - i8vec4 tmp = i8vec4(vColor); - tmp += registers.i8; - tmp += int8_t(-40); - tmp += i8vec4(-50); - tmp += i8vec4(10, 20, 30, 40); - tmp += ssbo.i8[4]; - tmp += ubo.i8; - FragColorInt = ivec4(tmp); -} - -void compute_uint8() -{ - u8vec4 tmp = u8vec4(vColor); - tmp += registers.u8; - tmp += uint8_t(-40); - tmp += u8vec4(-50); - tmp += u8vec4(10, 20, 30, 40); - tmp += ssbo.u8[4]; - tmp += ubo.u8; - FragColorUint = uvec4(tmp); -} - -void main() -{ - packing_int8(); - packing_uint8(); - compute_int8(); - compute_uint8(); -} diff --git a/third_party/spirv-cross/shaders/vulkan/frag/spec-constant-block-size.vk.frag b/third_party/spirv-cross/shaders/vulkan/frag/spec-constant-block-size.vk.frag deleted file mode 100644 index 8d2b1f326f..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/frag/spec-constant-block-size.vk.frag +++ /dev/null @@ -1,17 +0,0 @@ -#version 310 es -precision mediump float; - -layout(constant_id = 10) const int Value = 2; -layout(binding = 0) uniform SpecConstArray -{ - vec4 samples[Value]; -}; - -layout(location = 0) flat in int Index; -layout(location = 0) out vec4 FragColor; - -void main() -{ - FragColor = samples[Index]; -} - diff --git a/third_party/spirv-cross/shaders/vulkan/frag/spec-constant-ternary.vk.frag b/third_party/spirv-cross/shaders/vulkan/frag/spec-constant-ternary.vk.frag deleted file mode 100644 index 78dccbf044..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/frag/spec-constant-ternary.vk.frag +++ /dev/null @@ -1,9 +0,0 @@ -#version 450 -layout(location = 0) out float FragColor; -layout(constant_id = 0) const uint s = 10u; -const uint f = s > 20u ? 30u : 50u; - -void main() -{ - FragColor = float(f); -} diff --git a/third_party/spirv-cross/shaders/vulkan/rahit/terminators.khr.spv14.nocompat.vk.rahit b/third_party/spirv-cross/shaders/vulkan/rahit/terminators.khr.spv14.nocompat.vk.rahit deleted file mode 100644 index dab437780d..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rahit/terminators.khr.spv14.nocompat.vk.rahit +++ /dev/null @@ -1,17 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -rayPayloadInEXT float payload; - -void in_func() -{ - if (payload > 0.0) - ignoreIntersectionEXT; - else - terminateRayEXT; -} - -void main() -{ - in_func(); -} diff --git a/third_party/spirv-cross/shaders/vulkan/rahit/terminators.nocompat.vk.rahit b/third_party/spirv-cross/shaders/vulkan/rahit/terminators.nocompat.vk.rahit deleted file mode 100644 index 943be33c57..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rahit/terminators.nocompat.vk.rahit +++ /dev/null @@ -1,17 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -rayPayloadInNV float payload; - -void in_func() -{ - if (payload > 0.0) - ignoreIntersectionNV(); - else - terminateRayNV(); -} - -void main() -{ - in_func(); -} diff --git a/third_party/spirv-cross/shaders/vulkan/rcall/incoming-callable.khr.spv14.nocompat.vk.rcall b/third_party/spirv-cross/shaders/vulkan/rcall/incoming-callable.khr.spv14.nocompat.vk.rcall deleted file mode 100644 index 53c594b6a1..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rcall/incoming-callable.khr.spv14.nocompat.vk.rcall +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 4) callableDataInEXT float c; - -void main() -{ - executeCallableEXT(10, 4); -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/hit_attribute_block.khr.spv14.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/hit_attribute_block.khr.spv14.nocompat.vk.rchit deleted file mode 100644 index fd82f5bf93..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/hit_attribute_block.khr.spv14.nocompat.vk.rchit +++ /dev/null @@ -1,11 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT Foo { float a; float b; } payload; -hitAttributeEXT Foo2 { float a; float b; } hit; - -void main() -{ - payload.a = hit.a; - payload.b = hit.b; -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/hit_attribute_block.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/hit_attribute_block.nocompat.vk.rchit deleted file mode 100644 index 8d367e3b87..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/hit_attribute_block.nocompat.vk.rchit +++ /dev/null @@ -1,11 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV Foo { float a; float b; } payload; -hitAttributeNV Foo2 { float a; float b; } hit; - -void main() -{ - payload.a = hit.a; - payload.b = hit.b; -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/hit_attribute_block_in_function.khr.spv14.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/hit_attribute_block_in_function.khr.spv14.nocompat.vk.rchit deleted file mode 100644 index 7b8d53dd8b..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/hit_attribute_block_in_function.khr.spv14.nocompat.vk.rchit +++ /dev/null @@ -1,16 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT Foo { float a; float b; } payload; -hitAttributeEXT Foo2 { float a; float b; } hit; - -void in_function() -{ - payload.a = hit.a; - payload.b = hit.b; -} - -void main() -{ - in_function(); -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/hit_attribute_block_in_function.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/hit_attribute_block_in_function.nocompat.vk.rchit deleted file mode 100644 index 23a5c6519d..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/hit_attribute_block_in_function.nocompat.vk.rchit +++ /dev/null @@ -1,16 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV Foo { float a; float b; } payload; -hitAttributeNV Foo2 { float a; float b; } hit; - -void in_function() -{ - payload.a = hit.a; - payload.b = hit.b; -} - -void main() -{ - in_function(); -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/hit_attribute_plain.khr.spv14.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/hit_attribute_plain.khr.spv14.nocompat.vk.rchit deleted file mode 100644 index 145687739f..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/hit_attribute_plain.khr.spv14.nocompat.vk.rchit +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT vec2 payload; -hitAttributeEXT vec2 hit; - -void main() -{ - payload = hit; -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/hit_attribute_plain.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/hit_attribute_plain.nocompat.vk.rchit deleted file mode 100644 index cdbda9cb8a..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/hit_attribute_plain.nocompat.vk.rchit +++ /dev/null @@ -1,10 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV vec2 payload; -hitAttributeNV vec2 hit; - -void main() -{ - payload = hit; -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/hit_attribute_struct.khr.spv14.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/hit_attribute_struct.khr.spv14.nocompat.vk.rchit deleted file mode 100644 index f391f1ebfc..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/hit_attribute_struct.khr.spv14.nocompat.vk.rchit +++ /dev/null @@ -1,12 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -struct Foo { float a; float b; }; - -layout(location = 0) rayPayloadInEXT Foo payload; -hitAttributeEXT Foo hit; - -void main() -{ - payload = hit; -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/hit_attribute_struct.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/hit_attribute_struct.nocompat.vk.rchit deleted file mode 100644 index 625e125bc9..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/hit_attribute_struct.nocompat.vk.rchit +++ /dev/null @@ -1,12 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -struct Foo { float a; float b; }; - -layout(location = 0) rayPayloadInNV Foo payload; -hitAttributeNV Foo hit; - -void main() -{ - payload = hit; -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/hit_kind.khr.spv14.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/hit_kind.khr.spv14.nocompat.vk.rchit deleted file mode 100644 index 1bf150000a..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/hit_kind.khr.spv14.nocompat.vk.rchit +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT uint payload; - -void main() -{ - payload = gl_HitKindEXT; -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/hit_kind.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/hit_kind.nocompat.vk.rchit deleted file mode 100644 index 39a088f46a..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/hit_kind.nocompat.vk.rchit +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV uint payload; - -void main() -{ - payload = gl_HitKindNV; -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/hit_t.khr.spv14.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/hit_t.khr.spv14.nocompat.vk.rchit deleted file mode 100644 index 5b4fc4dd50..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/hit_t.khr.spv14.nocompat.vk.rchit +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT float payload; - -void main() -{ - payload = gl_HitTEXT; -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/hit_t.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/hit_t.nocompat.vk.rchit deleted file mode 100644 index 16d6f06ea9..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/hit_t.nocompat.vk.rchit +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV float payload; - -void main() -{ - payload = gl_HitTNV; -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/incoming_ray_flags.khr.spv14.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/incoming_ray_flags.khr.spv14.nocompat.vk.rchit deleted file mode 100644 index 2c28646554..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/incoming_ray_flags.khr.spv14.nocompat.vk.rchit +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT uint payload; - -void main() -{ - payload = gl_IncomingRayFlagsEXT; -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/incoming_ray_flags.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/incoming_ray_flags.nocompat.vk.rchit deleted file mode 100644 index a1726d0ef4..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/incoming_ray_flags.nocompat.vk.rchit +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV uint payload; - -void main() -{ - payload = gl_IncomingRayFlagsNV; -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/instance_custom_id.khr.spv14.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/instance_custom_id.khr.spv14.nocompat.vk.rchit deleted file mode 100644 index 330dfcebb5..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/instance_custom_id.khr.spv14.nocompat.vk.rchit +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT uint payload; - -void main() -{ - payload = gl_InstanceCustomIndexEXT; -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/instance_custom_id.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/instance_custom_id.nocompat.vk.rchit deleted file mode 100644 index 02ae343092..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/instance_custom_id.nocompat.vk.rchit +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV uint payload; - -void main() -{ - payload = gl_InstanceCustomIndexNV; -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/instance_id.khr.spv14.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/instance_id.khr.spv14.nocompat.vk.rchit deleted file mode 100644 index 23d1e02c75..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/instance_id.khr.spv14.nocompat.vk.rchit +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT uint payload; - -void main() -{ - payload = gl_InstanceID; -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/instance_id.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/instance_id.nocompat.vk.rchit deleted file mode 100644 index d6f9966811..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/instance_id.nocompat.vk.rchit +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV uint payload; - -void main() -{ - payload = gl_InstanceID; -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/object_ray_direction.khr.spv14.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/object_ray_direction.khr.spv14.nocompat.vk.rchit deleted file mode 100644 index 4d45134cb9..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/object_ray_direction.khr.spv14.nocompat.vk.rchit +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT vec3 payload; - -void main() -{ - payload = gl_ObjectRayDirectionEXT; -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/object_ray_direction.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/object_ray_direction.nocompat.vk.rchit deleted file mode 100644 index 257175b510..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/object_ray_direction.nocompat.vk.rchit +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV vec3 payload; - -void main() -{ - payload = gl_ObjectRayDirectionNV; -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/object_ray_origin.khr.spv14.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/object_ray_origin.khr.spv14.nocompat.vk.rchit deleted file mode 100644 index 0964b7b566..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/object_ray_origin.khr.spv14.nocompat.vk.rchit +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT vec3 payload; - -void main() -{ - payload = gl_ObjectRayOriginEXT; -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/object_ray_origin.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/object_ray_origin.nocompat.vk.rchit deleted file mode 100644 index 8b71e7d9c4..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/object_ray_origin.nocompat.vk.rchit +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV vec3 payload; - -void main() -{ - payload = gl_ObjectRayOriginNV; -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/object_to_world.khr.spv14.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/object_to_world.khr.spv14.nocompat.vk.rchit deleted file mode 100644 index 4377443c2b..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/object_to_world.khr.spv14.nocompat.vk.rchit +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT vec3 payload; - -void main() -{ - payload = gl_ObjectToWorldEXT * vec4(payload, 1.0); -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/object_to_world.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/object_to_world.nocompat.vk.rchit deleted file mode 100644 index 53b1406fe7..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/object_to_world.nocompat.vk.rchit +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV vec3 payload; - -void main() -{ - payload = gl_ObjectToWorldNV * vec4(payload, 1.0); -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/payloads.khr.spv14.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/payloads.khr.spv14.nocompat.vk.rchit deleted file mode 100644 index 12ed5a7d62..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/payloads.khr.spv14.nocompat.vk.rchit +++ /dev/null @@ -1,19 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -struct Payload -{ - vec4 a; -}; - -layout(location = 0) rayPayloadInEXT Payload payload; - -void write_incoming_payload_in_function() -{ - payload.a = vec4(10.0); -} - -void main() -{ - write_incoming_payload_in_function(); -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/payloads.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/payloads.nocompat.vk.rchit deleted file mode 100644 index 61a86663b4..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/payloads.nocompat.vk.rchit +++ /dev/null @@ -1,19 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -struct Payload -{ - vec4 a; -}; - -layout(location = 0) rayPayloadInNV Payload payload; - -void write_incoming_payload_in_function() -{ - payload.a = vec4(10.0); -} - -void main() -{ - write_incoming_payload_in_function(); -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/primitive_id.khr.spv14.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/primitive_id.khr.spv14.nocompat.vk.rchit deleted file mode 100644 index f3798c1f42..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/primitive_id.khr.spv14.nocompat.vk.rchit +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT uint payload; - -void main() -{ - payload = gl_PrimitiveID; -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/primitive_id.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/primitive_id.nocompat.vk.rchit deleted file mode 100644 index fdfa1ffa32..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/primitive_id.nocompat.vk.rchit +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV uint payload; - -void main() -{ - payload = gl_PrimitiveID; -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/ray_tmax.khr.spv14.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/ray_tmax.khr.spv14.nocompat.vk.rchit deleted file mode 100644 index 2f688baf9e..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/ray_tmax.khr.spv14.nocompat.vk.rchit +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT float payload; - -void main() -{ - payload = gl_RayTmaxEXT; -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/ray_tmax.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/ray_tmax.nocompat.vk.rchit deleted file mode 100644 index c0e1387b3c..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/ray_tmax.nocompat.vk.rchit +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV float payload; - -void main() -{ - payload = gl_RayTmaxNV; -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/ray_tmin.khr.spv14.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/ray_tmin.khr.spv14.nocompat.vk.rchit deleted file mode 100644 index 3f8ddf05f6..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/ray_tmin.khr.spv14.nocompat.vk.rchit +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT float payload; - -void main() -{ - payload = gl_RayTminEXT; -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/ray_tmin.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/ray_tmin.nocompat.vk.rchit deleted file mode 100644 index 896f4ffb4f..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/ray_tmin.nocompat.vk.rchit +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV float payload; - -void main() -{ - payload = gl_RayTminNV; -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/ray_tracing.khr.spv14.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/ray_tracing.khr.spv14.nocompat.vk.rchit deleted file mode 100644 index d48995b821..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/ray_tracing.khr.spv14.nocompat.vk.rchit +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT float payload; - -void main() -{ - payload = 1.0 + float(gl_InstanceID); -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/ray_tracing.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/ray_tracing.nocompat.vk.rchit deleted file mode 100644 index 44c814d708..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/ray_tracing.nocompat.vk.rchit +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV float payload; - -void main() -{ - payload = 1.0 + float(gl_InstanceID); -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/world_ray_direction.khr.spv14.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/world_ray_direction.khr.spv14.nocompat.vk.rchit deleted file mode 100644 index 191905a312..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/world_ray_direction.khr.spv14.nocompat.vk.rchit +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT vec3 payload; - -void main() -{ - payload = gl_WorldRayDirectionEXT; -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/world_ray_direction.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/world_ray_direction.nocompat.vk.rchit deleted file mode 100644 index 43d14f2825..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/world_ray_direction.nocompat.vk.rchit +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV vec3 payload; - -void main() -{ - payload = gl_WorldRayDirectionNV; -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/world_ray_origin.khr.spv14.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/world_ray_origin.khr.spv14.nocompat.vk.rchit deleted file mode 100644 index 2c86a7234c..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/world_ray_origin.khr.spv14.nocompat.vk.rchit +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT vec3 payload; - -void main() -{ - payload = gl_WorldRayOriginEXT; -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/world_ray_origin.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/world_ray_origin.nocompat.vk.rchit deleted file mode 100644 index 8b03e7dedf..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/world_ray_origin.nocompat.vk.rchit +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV vec3 payload; - -void main() -{ - payload = gl_WorldRayOriginNV; -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/world_to_object.khr.spv14.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/world_to_object.khr.spv14.nocompat.vk.rchit deleted file mode 100644 index eb64bd0b41..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/world_to_object.khr.spv14.nocompat.vk.rchit +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT vec3 payload; - -void main() -{ - payload = gl_WorldToObjectEXT * vec4(payload, 1.0); -} diff --git a/third_party/spirv-cross/shaders/vulkan/rchit/world_to_object.nocompat.vk.rchit b/third_party/spirv-cross/shaders/vulkan/rchit/world_to_object.nocompat.vk.rchit deleted file mode 100644 index dc67c4a90f..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rchit/world_to_object.nocompat.vk.rchit +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV vec3 payload; - -void main() -{ - payload = gl_WorldToObjectNV * vec4(payload, 1.0); -} diff --git a/third_party/spirv-cross/shaders/vulkan/rgen/convert-u-to-as.spv14.vk.nocompat.rgen b/third_party/spirv-cross/shaders/vulkan/rgen/convert-u-to-as.spv14.vk.nocompat.rgen deleted file mode 100644 index 8d6f1f4a93..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rgen/convert-u-to-as.spv14.vk.nocompat.rgen +++ /dev/null @@ -1,16 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 3) rayPayloadEXT vec4 payload; - -layout(push_constant) uniform Registers -{ - uvec2 ptr; -}; - -void main() -{ - vec3 origin = vec3(0.0); - vec3 direction = vec3(0.0, 0.0, -1.0); - traceRayEXT(accelerationStructureEXT(ptr), gl_RayFlagsOpaqueEXT, 0xFF, 0u, 0u, 0u, origin, 0.0, direction, 100.0f, 3); -} diff --git a/third_party/spirv-cross/shaders/vulkan/rgen/execute_callable.nocompat.khr.spv14.vk.rgen b/third_party/spirv-cross/shaders/vulkan/rgen/execute_callable.nocompat.khr.spv14.vk.rgen deleted file mode 100644 index 9a4380e0a6..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rgen/execute_callable.nocompat.khr.spv14.vk.rgen +++ /dev/null @@ -1,16 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(set = 0, binding = 0) uniform accelerationStructureEXT as; -layout(set = 0, binding = 1, rgba32f) uniform writeonly image2D image; -layout(location = 3) rayPayloadEXT vec4 payload; -layout(location = 4) callableDataEXT float blend; - -void main() -{ - vec3 origin = vec3(0.0); - vec3 direction = vec3(0.0, 0.0, -1.0); - traceRayEXT(as, gl_RayFlagsOpaqueEXT, 0xFF, 0u, 0u, 0u, origin, 0.0, direction, 100.0f, 3); - executeCallableEXT(0u, 4); - imageStore(image, ivec2(gl_LaunchIDEXT.xy), payload + vec4(blend)); -} diff --git a/third_party/spirv-cross/shaders/vulkan/rgen/execute_callable.nocompat.vk.rgen b/third_party/spirv-cross/shaders/vulkan/rgen/execute_callable.nocompat.vk.rgen deleted file mode 100644 index 0cb8e95779..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rgen/execute_callable.nocompat.vk.rgen +++ /dev/null @@ -1,16 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(set = 0, binding = 0) uniform accelerationStructureNV as; -layout(set = 0, binding = 1, rgba32f) uniform writeonly image2D image; -layout(location = 0) rayPayloadNV vec4 payload; -layout(location = 0) callableDataNV float blend; - -void main() -{ - vec3 origin = vec3(0.0); - vec3 direction = vec3(0.0, 0.0, -1.0); - traceNV(as, gl_RayFlagsOpaqueNV, 0xFF, 0u, 0u, 0u, origin, 0.0, direction, 100.0f, 0); - executeCallableNV(0u, 0); - imageStore(image, ivec2(gl_LaunchIDNV.xy), payload + vec4(blend)); -} diff --git a/third_party/spirv-cross/shaders/vulkan/rgen/launch_id.khr.spv14.nocompat.vk.rgen b/third_party/spirv-cross/shaders/vulkan/rgen/launch_id.khr.spv14.nocompat.vk.rgen deleted file mode 100644 index 6f9983e97f..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rgen/launch_id.khr.spv14.nocompat.vk.rgen +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(set = 0, binding = 0) uniform writeonly image2D uImage; - -void main() -{ - imageStore(uImage, ivec2(gl_LaunchIDEXT.xy), vec4(1.0)); -} diff --git a/third_party/spirv-cross/shaders/vulkan/rgen/launch_id.nocompat.vk.rgen b/third_party/spirv-cross/shaders/vulkan/rgen/launch_id.nocompat.vk.rgen deleted file mode 100644 index b89792e362..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rgen/launch_id.nocompat.vk.rgen +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(set = 0, binding = 0) uniform writeonly image2D uImage; - -void main() -{ - imageStore(uImage, ivec2(gl_LaunchIDNV.xy), vec4(1.0)); -} diff --git a/third_party/spirv-cross/shaders/vulkan/rgen/launch_size.khr.spv14.nocompat.vk.rgen b/third_party/spirv-cross/shaders/vulkan/rgen/launch_size.khr.spv14.nocompat.vk.rgen deleted file mode 100644 index 955f57dc40..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rgen/launch_size.khr.spv14.nocompat.vk.rgen +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(set = 0, binding = 0) uniform writeonly image2D uImage; - -void main() -{ - imageStore(uImage, ivec2(gl_LaunchSizeEXT.xy) - 1, vec4(1.0)); -} diff --git a/third_party/spirv-cross/shaders/vulkan/rgen/launch_size.nocompat.vk.rgen b/third_party/spirv-cross/shaders/vulkan/rgen/launch_size.nocompat.vk.rgen deleted file mode 100644 index 1e1ff55937..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rgen/launch_size.nocompat.vk.rgen +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(set = 0, binding = 0) uniform writeonly image2D uImage; - -void main() -{ - imageStore(uImage, ivec2(gl_LaunchSizeNV.xy) - 1, vec4(1.0)); -} diff --git a/third_party/spirv-cross/shaders/vulkan/rgen/payloads.khr.spv14.nocompat.vk.rgen b/third_party/spirv-cross/shaders/vulkan/rgen/payloads.khr.spv14.nocompat.vk.rgen deleted file mode 100644 index b73a2463de..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rgen/payloads.khr.spv14.nocompat.vk.rgen +++ /dev/null @@ -1,49 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(set = 0, binding = 0, rgba8) uniform image2D image; -layout(set = 0, binding = 1) uniform accelerationStructureEXT as; - -struct Payload -{ - float a, b; -}; - -// Plain payload -layout(location = 0) rayPayloadEXT float payload1; -// Struct payload -layout(location = 1) rayPayloadEXT Payload payload2; - -// This is syntactic sugar with the struct formulation (pretty sure), spec is kinda vague. -layout(location = 2) rayPayloadEXT Block -{ - float a, b; - Payload c, d; -}; - -vec4 trace_in_function() -{ - vec4 result = vec4(0.0); - // Test that we can write to a payload in a function. - vec3 origin = vec3(1.0, 0.0, 0.0); - vec3 direction = vec3(0.0, 1.0, 0.0); - traceRayEXT(as, 0u, 255u, 0u, 1u, 0u, origin, 0.0, direction, 1000.0, 1); - result += payload2.a; - result += payload2.b; - return result; -} - -void main() -{ - vec3 origin = vec3(1.0, 0.0, 0.0); - vec3 direction = vec3(0.0, 1.0, 0.0); - traceRayEXT(as, 0u, 255u, 0u, 1u, 0u, origin, 0.0, direction, 1000.0, 0); - vec4 result = vec4(payload1); - - result += trace_in_function(); - - traceRayEXT(as, 0u, 255u, 0u, 1u, 0u, origin, 0.0, direction, 1000.0, 2); - result += a + b + c.a + c.b + d.a + d.b; - - imageStore(image, ivec2(gl_LaunchIDEXT.xy), result); -} diff --git a/third_party/spirv-cross/shaders/vulkan/rgen/payloads.nocompat.vk.rgen b/third_party/spirv-cross/shaders/vulkan/rgen/payloads.nocompat.vk.rgen deleted file mode 100644 index 11c12d44f6..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rgen/payloads.nocompat.vk.rgen +++ /dev/null @@ -1,49 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(set = 0, binding = 0, rgba8) uniform image2D image; -layout(set = 0, binding = 1) uniform accelerationStructureNV as; - -struct Payload -{ - float a, b; -}; - -// Plain payload -layout(location = 0) rayPayloadNV float payload1; -// Struct payload -layout(location = 1) rayPayloadNV Payload payload2; - -// This is syntactic sugar with the struct formulation (pretty sure), spec is kinda vague. -layout(location = 2) rayPayloadNV Block -{ - float a, b; - Payload c, d; -}; - -vec4 trace_in_function() -{ - vec4 result = vec4(0.0); - // Test that we can write to a payload in a function. - vec3 origin = vec3(1.0, 0.0, 0.0); - vec3 direction = vec3(0.0, 1.0, 0.0); - traceNV(as, 0u, 255u, 0u, 1u, 0u, origin, 0.0, direction, 1000.0, 1); - result += payload2.a; - result += payload2.b; - return result; -} - -void main() -{ - vec3 origin = vec3(1.0, 0.0, 0.0); - vec3 direction = vec3(0.0, 1.0, 0.0); - traceNV(as, 0u, 255u, 0u, 1u, 0u, origin, 0.0, direction, 1000.0, 0); - vec4 result = vec4(payload1); - - result += trace_in_function(); - - traceNV(as, 0u, 255u, 0u, 1u, 0u, origin, 0.0, direction, 1000.0, 2); - result += a + b + c.a + c.b + d.a + d.b; - - imageStore(image, ivec2(gl_LaunchIDNV.xy), result); -} diff --git a/third_party/spirv-cross/shaders/vulkan/rgen/pure_call.khr.spv14.nocompat.vk.rgen b/third_party/spirv-cross/shaders/vulkan/rgen/pure_call.khr.spv14.nocompat.vk.rgen deleted file mode 100644 index 6763f55365..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rgen/pure_call.khr.spv14.nocompat.vk.rgen +++ /dev/null @@ -1,18 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(set = 0, binding = 1) uniform accelerationStructureEXT as; -layout(location = 0) rayPayloadEXT float payload; - -float pure_call(vec2 launchID, vec2 launchSize) -{ - vec3 origin = vec3(launchID.x / launchSize.x, launchID.y / launchSize.y, 1.0); - vec3 direction = vec3(0.0, 0.0, -1.0); - traceRayEXT(as, 0u, 255u, 0u, 1u, 0u, origin, 0.0, direction, 1000.0, 0); - return 0.0; -} - -void main() -{ - pure_call(vec2(gl_LaunchIDEXT.xy), vec2(gl_LaunchSizeEXT.xy)); -} diff --git a/third_party/spirv-cross/shaders/vulkan/rgen/pure_call.nocompat.vk.rgen b/third_party/spirv-cross/shaders/vulkan/rgen/pure_call.nocompat.vk.rgen deleted file mode 100644 index 3e362ed08e..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rgen/pure_call.nocompat.vk.rgen +++ /dev/null @@ -1,18 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(set = 0, binding = 1) uniform accelerationStructureNV as; -layout(location = 0) rayPayloadNV float payload; - -float pure_call(vec2 launchID, vec2 launchSize) -{ - vec3 origin = vec3(launchID.x / launchSize.x, launchID.y / launchSize.y, 1.0); - vec3 direction = vec3(0.0, 0.0, -1.0); - traceNV(as, 0u, 255u, 0u, 1u, 0u, origin, 0.0, direction, 1000.0, 0); - return 0.0; -} - -void main() -{ - pure_call(vec2(gl_LaunchIDNV.xy), vec2(gl_LaunchSizeNV.xy)); -} diff --git a/third_party/spirv-cross/shaders/vulkan/rgen/ray_tracing.khr.spv14.nocompat.vk.rgen b/third_party/spirv-cross/shaders/vulkan/rgen/ray_tracing.khr.spv14.nocompat.vk.rgen deleted file mode 100644 index 40f1648901..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rgen/ray_tracing.khr.spv14.nocompat.vk.rgen +++ /dev/null @@ -1,16 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(set = 0, binding = 0, rgba8) uniform image2D image; -layout(set = 0, binding = 1) uniform accelerationStructureEXT as; -layout(location = 0) rayPayloadEXT float payload; - -void main() -{ - vec4 col = vec4(0.0, 0.0, 0.0, 1.0); - vec3 origin = vec3(float(gl_LaunchIDEXT.x) / float(gl_LaunchSizeEXT.x), float(gl_LaunchIDEXT.y) / float(gl_LaunchSizeEXT.y), 1.0); - vec3 direction = vec3(0.0, 0.0, -1.0); - traceRayEXT(as, 0u, 255u, 0u, 1u, 0u, origin, 0.0, direction, 1000.0, 0); - col.y = payload; - imageStore(image, ivec2(gl_LaunchIDEXT.xy), col); -} diff --git a/third_party/spirv-cross/shaders/vulkan/rgen/ray_tracing.nocompat.vk.rgen b/third_party/spirv-cross/shaders/vulkan/rgen/ray_tracing.nocompat.vk.rgen deleted file mode 100644 index e3f7c1ace1..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rgen/ray_tracing.nocompat.vk.rgen +++ /dev/null @@ -1,16 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(set = 0, binding = 0, rgba8) uniform image2D image; -layout(set = 0, binding = 1) uniform accelerationStructureNV as; -layout(location = 0) rayPayloadNV float payload; - -void main() -{ - vec4 col = vec4(0.0, 0.0, 0.0, 1.0); - vec3 origin = vec3(float(gl_LaunchIDNV.x) / float(gl_LaunchSizeNV.x), float(gl_LaunchIDNV.y) / float(gl_LaunchSizeNV.y), 1.0); - vec3 direction = vec3(0.0, 0.0, -1.0); - traceNV(as, 0u, 255u, 0u, 1u, 0u, origin, 0.0, direction, 1000.0, 0); - col.y = payload; - imageStore(image, ivec2(gl_LaunchIDNV.xy), col); -} diff --git a/third_party/spirv-cross/shaders/vulkan/rgen/shader_record_buffer.khr.spv14.nocompat.vk.rgen b/third_party/spirv-cross/shaders/vulkan/rgen/shader_record_buffer.khr.spv14.nocompat.vk.rgen deleted file mode 100644 index 39c9bf2786..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rgen/shader_record_buffer.khr.spv14.nocompat.vk.rgen +++ /dev/null @@ -1,16 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(shaderRecordEXT, std430) buffer sbt -{ - vec3 direction; - float tmax; -}; - -layout(set = 0, binding = 0) uniform accelerationStructureEXT as; -layout(location = 0) rayPayloadEXT float payload; - -void main() -{ - traceRayEXT(as, 0u, 255u, 0u, 1u, 0u, vec3(0.0), 0.0, direction, tmax, 0); -} diff --git a/third_party/spirv-cross/shaders/vulkan/rgen/shader_record_buffer.nocompat.vk.rgen b/third_party/spirv-cross/shaders/vulkan/rgen/shader_record_buffer.nocompat.vk.rgen deleted file mode 100644 index 9cca9a168d..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rgen/shader_record_buffer.nocompat.vk.rgen +++ /dev/null @@ -1,16 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(shaderRecordNV, std430) buffer sbt -{ - vec3 direction; - float tmax; -}; - -layout(set = 0, binding = 0) uniform accelerationStructureNV as; -layout(location = 0) rayPayloadNV float payload; - -void main() -{ - traceNV(as, 0u, 255u, 0u, 1u, 0u, vec3(0.0), 0.0, direction, tmax, 0); -} diff --git a/third_party/spirv-cross/shaders/vulkan/rint/report-intersection.khr.spv14.nocompat.vk.rint b/third_party/spirv-cross/shaders/vulkan/rint/report-intersection.khr.spv14.nocompat.vk.rint deleted file mode 100644 index b930e5c69f..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rint/report-intersection.khr.spv14.nocompat.vk.rint +++ /dev/null @@ -1,12 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -void in_func() -{ - reportIntersectionEXT(0.5, 10); -} - -void main() -{ - in_func(); -} diff --git a/third_party/spirv-cross/shaders/vulkan/rint/report-intersection.nocompat.vk.rint b/third_party/spirv-cross/shaders/vulkan/rint/report-intersection.nocompat.vk.rint deleted file mode 100644 index ee384fc8da..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rint/report-intersection.nocompat.vk.rint +++ /dev/null @@ -1,12 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -void in_func() -{ - reportIntersectionNV(0.5, 10); -} - -void main() -{ - in_func(); -} diff --git a/third_party/spirv-cross/shaders/vulkan/rmiss/ray_tracing.khr.spv14.nocompat.vk.rmiss b/third_party/spirv-cross/shaders/vulkan/rmiss/ray_tracing.khr.spv14.nocompat.vk.rmiss deleted file mode 100644 index ee873cb96e..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rmiss/ray_tracing.khr.spv14.nocompat.vk.rmiss +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(location = 0) rayPayloadInEXT float payload; - -void main() -{ - payload = 0.0; -} diff --git a/third_party/spirv-cross/shaders/vulkan/rmiss/ray_tracing.nocompat.vk.rmiss b/third_party/spirv-cross/shaders/vulkan/rmiss/ray_tracing.nocompat.vk.rmiss deleted file mode 100644 index ff438ce7b7..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rmiss/ray_tracing.nocompat.vk.rmiss +++ /dev/null @@ -1,9 +0,0 @@ -#version 460 -#extension GL_NV_ray_tracing : require - -layout(location = 0) rayPayloadInNV float payload; - -void main() -{ - payload = 0.0; -} diff --git a/third_party/spirv-cross/shaders/vulkan/rmiss/ray_tracing_trace_incoming.khr.spv14.nocompat.vk.rmiss b/third_party/spirv-cross/shaders/vulkan/rmiss/ray_tracing_trace_incoming.khr.spv14.nocompat.vk.rmiss deleted file mode 100644 index 265a8f8b21..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/rmiss/ray_tracing_trace_incoming.khr.spv14.nocompat.vk.rmiss +++ /dev/null @@ -1,12 +0,0 @@ -#version 460 -#extension GL_EXT_ray_tracing : require - -layout(set = 0, binding = 0) uniform accelerationStructureEXT as; -layout(location = 3) rayPayloadInEXT float p; - -void main() -{ - vec3 origin = vec3(float(gl_LaunchIDEXT.x) / float(gl_LaunchSizeEXT.x), float(gl_LaunchIDEXT.y) / float(gl_LaunchSizeEXT.y), 1.0); - vec3 direction = vec3(0.0, 0.0, -1.0); - traceRayEXT(as, 0u, 255u, 0u, 1u, 0u, origin, 0.0, direction, 1000.0, 3); -} diff --git a/third_party/spirv-cross/shaders/vulkan/vert/device-group.nocompat.vk.vert b/third_party/spirv-cross/shaders/vulkan/vert/device-group.nocompat.vk.vert deleted file mode 100644 index 16ed51b15e..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/vert/device-group.nocompat.vk.vert +++ /dev/null @@ -1,7 +0,0 @@ -#version 450 core -#extension GL_EXT_device_group : require - -void main() -{ - gl_Position = vec4(gl_DeviceIndex); -} diff --git a/third_party/spirv-cross/shaders/vulkan/vert/multiview.nocompat.vk.vert b/third_party/spirv-cross/shaders/vulkan/vert/multiview.nocompat.vk.vert deleted file mode 100644 index eb1bc766f2..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/vert/multiview.nocompat.vk.vert +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es -#extension GL_EXT_multiview : require - -layout(std140, binding = 0) uniform MVPs -{ - mat4 MVP[2]; -}; - -layout(location = 0) in vec4 Position; - -void main() -{ - gl_Position = MVP[gl_ViewIndex] * Position; -} diff --git a/third_party/spirv-cross/shaders/vulkan/vert/small-storage.vk.vert b/third_party/spirv-cross/shaders/vulkan/vert/small-storage.vk.vert deleted file mode 100644 index 195f3d5563..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/vert/small-storage.vk.vert +++ /dev/null @@ -1,46 +0,0 @@ -#version 450 core - -// GL_EXT_shader_16bit_storage doesn't support input/output. -#extension GL_EXT_shader_8bit_storage : require -#extension GL_AMD_gpu_shader_int16 : require -#extension GL_AMD_gpu_shader_half_float : require - -layout(location = 0, component = 0) in int16_t foo; -layout(location = 0, component = 1) in uint16_t bar; -layout(location = 1) in float16_t baz; - -layout(binding = 0) uniform block { - i16vec2 a; - u16vec2 b; - i8vec2 c; - u8vec2 d; - f16vec2 e; -}; - -layout(binding = 1) readonly buffer storage { - i16vec3 f; - u16vec3 g; - i8vec3 h; - u8vec3 i; - f16vec3 j; -}; - -layout(push_constant) uniform pushconst { - i16vec4 k; - u16vec4 l; - i8vec4 m; - u8vec4 n; - f16vec4 o; -}; - -layout(location = 0) out i16vec4 p; -layout(location = 1) out u16vec4 q; -layout(location = 2) out f16vec4 r; - -void main() { - p = i16vec4(int(foo) + ivec4(ivec2(a), ivec2(c)) - ivec4(ivec3(f) / ivec3(h), 1) + ivec4(k) + ivec4(m)); - q = u16vec4(uint(bar) + uvec4(uvec2(b), uvec2(d)) - uvec4(uvec3(g) / uvec3(i), 1) + uvec4(l) + uvec4(n)); - r = f16vec4(float(baz) + vec4(vec2(e), 0, 1) - vec4(vec3(j), 1) + vec4(o)); - gl_Position = vec4(0, 0, 0, 1); -} - diff --git a/third_party/spirv-cross/shaders/vulkan/vert/vulkan-vertex.vk.vert b/third_party/spirv-cross/shaders/vulkan/vert/vulkan-vertex.vk.vert deleted file mode 100644 index 4d0438ace6..0000000000 --- a/third_party/spirv-cross/shaders/vulkan/vert/vulkan-vertex.vk.vert +++ /dev/null @@ -1,6 +0,0 @@ -#version 310 es - -void main() -{ - gl_Position = float(gl_VertexIndex + gl_InstanceIndex) * vec4(1.0, 2.0, 3.0, 4.0); -} diff --git a/third_party/spirv-cross/spirv.h b/third_party/spirv-cross/spirv.h index 949f1980e7..5b6e8aaf47 100644 --- a/third_party/spirv-cross/spirv.h +++ b/third_party/spirv-cross/spirv.h @@ -31,7 +31,7 @@ /* ** Enumeration tokens for SPIR-V, in various styles: -** C, C++, C++11, JSON, Lua, Python, C#, D +** C, C++, C++11, JSON, Lua, Python, C#, D, Beef ** ** - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL ** - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL @@ -41,6 +41,8 @@ ** - C# will use enum classes in the Specification class located in the "Spv" namespace, ** e.g.: Spv.Specification.SourceLanguage.GLSL ** - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL +** - Beef will use enum classes in the Specification class located in the "Spv" namespace, +** e.g.: Spv.Specification.SourceLanguage.GLSL ** ** Some tokens act like mask values, which can be OR'd together, ** while others are mutually exclusive. The mask-like ones have @@ -53,12 +55,12 @@ typedef unsigned int SpvId; -#define SPV_VERSION 0x10500 -#define SPV_REVISION 4 +#define SPV_VERSION 0x10600 +#define SPV_REVISION 1 static const unsigned int SpvMagicNumber = 0x07230203; -static const unsigned int SpvVersion = 0x00010500; -static const unsigned int SpvRevision = 4; +static const unsigned int SpvVersion = 0x00010600; +static const unsigned int SpvRevision = 1; static const unsigned int SpvOpCodeMask = 0xffff; static const unsigned int SpvWordCountShift = 16; @@ -69,6 +71,8 @@ typedef enum SpvSourceLanguage_ { SpvSourceLanguageOpenCL_C = 3, SpvSourceLanguageOpenCL_CPP = 4, SpvSourceLanguageHLSL = 5, + SpvSourceLanguageCPP_for_OpenCL = 6, + SpvSourceLanguageSYCL = 7, SpvSourceLanguageMax = 0x7fffffff, } SpvSourceLanguage; @@ -94,6 +98,8 @@ typedef enum SpvExecutionModel_ { SpvExecutionModelMissNV = 5317, SpvExecutionModelCallableKHR = 5318, SpvExecutionModelCallableNV = 5318, + SpvExecutionModelTaskEXT = 5364, + SpvExecutionModelMeshEXT = 5365, SpvExecutionModelMax = 0x7fffffff, } SpvExecutionModel; @@ -154,17 +160,28 @@ typedef enum SpvExecutionMode_ { SpvExecutionModeSubgroupsPerWorkgroupId = 37, SpvExecutionModeLocalSizeId = 38, SpvExecutionModeLocalSizeHintId = 39, + SpvExecutionModeSubgroupUniformControlFlowKHR = 4421, SpvExecutionModePostDepthCoverage = 4446, SpvExecutionModeDenormPreserve = 4459, SpvExecutionModeDenormFlushToZero = 4460, SpvExecutionModeSignedZeroInfNanPreserve = 4461, SpvExecutionModeRoundingModeRTE = 4462, SpvExecutionModeRoundingModeRTZ = 4463, + SpvExecutionModeEarlyAndLateFragmentTestsAMD = 5017, SpvExecutionModeStencilRefReplacingEXT = 5027, + SpvExecutionModeStencilRefUnchangedFrontAMD = 5079, + SpvExecutionModeStencilRefGreaterFrontAMD = 5080, + SpvExecutionModeStencilRefLessFrontAMD = 5081, + SpvExecutionModeStencilRefUnchangedBackAMD = 5082, + SpvExecutionModeStencilRefGreaterBackAMD = 5083, + SpvExecutionModeStencilRefLessBackAMD = 5084, + SpvExecutionModeOutputLinesEXT = 5269, SpvExecutionModeOutputLinesNV = 5269, + SpvExecutionModeOutputPrimitivesEXT = 5270, SpvExecutionModeOutputPrimitivesNV = 5270, SpvExecutionModeDerivativeGroupQuadsNV = 5289, SpvExecutionModeDerivativeGroupLinearNV = 5290, + SpvExecutionModeOutputTrianglesEXT = 5298, SpvExecutionModeOutputTrianglesNV = 5298, SpvExecutionModePixelInterlockOrderedEXT = 5366, SpvExecutionModePixelInterlockUnorderedEXT = 5367, @@ -172,10 +189,17 @@ typedef enum SpvExecutionMode_ { SpvExecutionModeSampleInterlockUnorderedEXT = 5369, SpvExecutionModeShadingRateInterlockOrderedEXT = 5370, SpvExecutionModeShadingRateInterlockUnorderedEXT = 5371, + SpvExecutionModeSharedLocalMemorySizeINTEL = 5618, + SpvExecutionModeRoundingModeRTPINTEL = 5620, + SpvExecutionModeRoundingModeRTNINTEL = 5621, + SpvExecutionModeFloatingPointModeALTINTEL = 5622, + SpvExecutionModeFloatingPointModeIEEEINTEL = 5623, SpvExecutionModeMaxWorkgroupSizeINTEL = 5893, SpvExecutionModeMaxWorkDimINTEL = 5894, SpvExecutionModeNoGlobalOffsetINTEL = 5895, SpvExecutionModeNumSIMDWorkitemsINTEL = 5896, + SpvExecutionModeSchedulerTargetFmaxMhzINTEL = 5903, + SpvExecutionModeNamedBarrierCountINTEL = 6417, SpvExecutionModeMax = 0x7fffffff, } SpvExecutionMode; @@ -207,7 +231,10 @@ typedef enum SpvStorageClass_ { SpvStorageClassShaderRecordBufferNV = 5343, SpvStorageClassPhysicalStorageBuffer = 5349, SpvStorageClassPhysicalStorageBufferEXT = 5349, + SpvStorageClassTaskPayloadWorkgroupEXT = 5402, SpvStorageClassCodeSectionINTEL = 5605, + SpvStorageClassDeviceOnlyINTEL = 5936, + SpvStorageClassHostOnlyINTEL = 5937, SpvStorageClassMax = 0x7fffffff, } SpvStorageClass; @@ -347,6 +374,8 @@ typedef enum SpvImageOperandsShift_ { SpvImageOperandsVolatileTexelKHRShift = 11, SpvImageOperandsSignExtendShift = 12, SpvImageOperandsZeroExtendShift = 13, + SpvImageOperandsNontemporalShift = 14, + SpvImageOperandsOffsetsShift = 16, SpvImageOperandsMax = 0x7fffffff, } SpvImageOperandsShift; @@ -370,6 +399,8 @@ typedef enum SpvImageOperandsMask_ { SpvImageOperandsVolatileTexelKHRMask = 0x00000800, SpvImageOperandsSignExtendMask = 0x00001000, SpvImageOperandsZeroExtendMask = 0x00002000, + SpvImageOperandsNontemporalMask = 0x00004000, + SpvImageOperandsOffsetsMask = 0x00010000, } SpvImageOperandsMask; typedef enum SpvFPFastMathModeShift_ { @@ -378,6 +409,8 @@ typedef enum SpvFPFastMathModeShift_ { SpvFPFastMathModeNSZShift = 2, SpvFPFastMathModeAllowRecipShift = 3, SpvFPFastMathModeFastShift = 4, + SpvFPFastMathModeAllowContractFastINTELShift = 16, + SpvFPFastMathModeAllowReassocINTELShift = 17, SpvFPFastMathModeMax = 0x7fffffff, } SpvFPFastMathModeShift; @@ -388,6 +421,8 @@ typedef enum SpvFPFastMathModeMask_ { SpvFPFastMathModeNSZMask = 0x00000004, SpvFPFastMathModeAllowRecipMask = 0x00000008, SpvFPFastMathModeFastMask = 0x00000010, + SpvFPFastMathModeAllowContractFastINTELMask = 0x00010000, + SpvFPFastMathModeAllowReassocINTELMask = 0x00020000, } SpvFPFastMathModeMask; typedef enum SpvFPRoundingMode_ { @@ -401,6 +436,7 @@ typedef enum SpvFPRoundingMode_ { typedef enum SpvLinkageType_ { SpvLinkageTypeExport = 0, SpvLinkageTypeImport = 1, + SpvLinkageTypeLinkOnceODR = 2, SpvLinkageTypeMax = 0x7fffffff, } SpvLinkageType; @@ -478,9 +514,11 @@ typedef enum SpvDecoration_ { SpvDecorationPassthroughNV = 5250, SpvDecorationViewportRelativeNV = 5252, SpvDecorationSecondaryViewportRelativeNV = 5256, + SpvDecorationPerPrimitiveEXT = 5271, SpvDecorationPerPrimitiveNV = 5271, SpvDecorationPerViewNV = 5272, SpvDecorationPerTaskNV = 5273, + SpvDecorationPerVertexKHR = 5285, SpvDecorationPerVertexNV = 5285, SpvDecorationNonUniform = 5300, SpvDecorationNonUniformEXT = 5300, @@ -488,12 +526,26 @@ typedef enum SpvDecoration_ { SpvDecorationRestrictPointerEXT = 5355, SpvDecorationAliasedPointer = 5356, SpvDecorationAliasedPointerEXT = 5356, + SpvDecorationBindlessSamplerNV = 5398, + SpvDecorationBindlessImageNV = 5399, + SpvDecorationBoundSamplerNV = 5400, + SpvDecorationBoundImageNV = 5401, + SpvDecorationSIMTCallINTEL = 5599, SpvDecorationReferencedIndirectlyINTEL = 5602, + SpvDecorationClobberINTEL = 5607, + SpvDecorationSideEffectsINTEL = 5608, + SpvDecorationVectorComputeVariableINTEL = 5624, + SpvDecorationFuncParamIOKindINTEL = 5625, + SpvDecorationVectorComputeFunctionINTEL = 5626, + SpvDecorationStackCallINTEL = 5627, + SpvDecorationGlobalVariableOffsetINTEL = 5628, SpvDecorationCounterBuffer = 5634, SpvDecorationHlslCounterBufferGOOGLE = 5634, SpvDecorationHlslSemanticGOOGLE = 5635, SpvDecorationUserSemantic = 5635, SpvDecorationUserTypeGOOGLE = 5636, + SpvDecorationFunctionRoundingModeINTEL = 5822, + SpvDecorationFunctionDenormModeINTEL = 5823, SpvDecorationRegisterINTEL = 5825, SpvDecorationMemoryINTEL = 5826, SpvDecorationNumbanksINTEL = 5827, @@ -506,6 +558,20 @@ typedef enum SpvDecoration_ { SpvDecorationMergeINTEL = 5834, SpvDecorationBankBitsINTEL = 5835, SpvDecorationForcePow2DepthINTEL = 5836, + SpvDecorationBurstCoalesceINTEL = 5899, + SpvDecorationCacheSizeINTEL = 5900, + SpvDecorationDontStaticallyCoalesceINTEL = 5901, + SpvDecorationPrefetchINTEL = 5902, + SpvDecorationStallEnableINTEL = 5905, + SpvDecorationFuseLoopsInFunctionINTEL = 5907, + SpvDecorationAliasScopeINTEL = 5914, + SpvDecorationNoAliasINTEL = 5915, + SpvDecorationBufferLocationINTEL = 5921, + SpvDecorationIOPipeStorageINTEL = 5944, + SpvDecorationFunctionFloatingPointModeINTEL = 6080, + SpvDecorationSingleElementVectorINTEL = 6085, + SpvDecorationVectorComputeCallableFunctionINTEL = 6087, + SpvDecorationMediaBlockIOINTEL = 6140, SpvDecorationMax = 0x7fffffff, } SpvDecoration; @@ -590,12 +656,18 @@ typedef enum SpvBuiltIn_ { SpvBuiltInLayerPerViewNV = 5279, SpvBuiltInMeshViewCountNV = 5280, SpvBuiltInMeshViewIndicesNV = 5281, + SpvBuiltInBaryCoordKHR = 5286, SpvBuiltInBaryCoordNV = 5286, + SpvBuiltInBaryCoordNoPerspKHR = 5287, SpvBuiltInBaryCoordNoPerspNV = 5287, SpvBuiltInFragSizeEXT = 5292, SpvBuiltInFragmentSizeNV = 5292, SpvBuiltInFragInvocationCountEXT = 5293, SpvBuiltInInvocationsPerPixelNV = 5293, + SpvBuiltInPrimitivePointIndicesEXT = 5294, + SpvBuiltInPrimitiveLineIndicesEXT = 5295, + SpvBuiltInPrimitiveTriangleIndicesEXT = 5296, + SpvBuiltInCullPrimitiveEXT = 5299, SpvBuiltInLaunchIdKHR = 5319, SpvBuiltInLaunchIdNV = 5319, SpvBuiltInLaunchSizeKHR = 5320, @@ -621,6 +693,7 @@ typedef enum SpvBuiltIn_ { SpvBuiltInHitTNV = 5332, SpvBuiltInHitKindKHR = 5333, SpvBuiltInHitKindNV = 5333, + SpvBuiltInCurrentRayTimeNV = 5334, SpvBuiltInIncomingRayFlagsKHR = 5351, SpvBuiltInIncomingRayFlagsNV = 5351, SpvBuiltInRayGeometryIndexKHR = 5352, @@ -628,6 +701,7 @@ typedef enum SpvBuiltIn_ { SpvBuiltInSMCountNV = 5375, SpvBuiltInWarpIDNV = 5376, SpvBuiltInSMIDNV = 5377, + SpvBuiltInCullMaskKHR = 6021, SpvBuiltInMax = 0x7fffffff, } SpvBuiltIn; @@ -660,6 +734,7 @@ typedef enum SpvLoopControlShift_ { SpvLoopControlLoopCoalesceINTELShift = 20, SpvLoopControlMaxInterleavingINTELShift = 21, SpvLoopControlSpeculatedIterationsINTELShift = 22, + SpvLoopControlNoFusionINTELShift = 23, SpvLoopControlMax = 0x7fffffff, } SpvLoopControlShift; @@ -681,6 +756,7 @@ typedef enum SpvLoopControlMask_ { SpvLoopControlLoopCoalesceINTELMask = 0x00100000, SpvLoopControlMaxInterleavingINTELMask = 0x00200000, SpvLoopControlSpeculatedIterationsINTELMask = 0x00400000, + SpvLoopControlNoFusionINTELMask = 0x00800000, } SpvLoopControlMask; typedef enum SpvFunctionControlShift_ { @@ -688,6 +764,7 @@ typedef enum SpvFunctionControlShift_ { SpvFunctionControlDontInlineShift = 1, SpvFunctionControlPureShift = 2, SpvFunctionControlConstShift = 3, + SpvFunctionControlOptNoneINTELShift = 16, SpvFunctionControlMax = 0x7fffffff, } SpvFunctionControlShift; @@ -697,6 +774,7 @@ typedef enum SpvFunctionControlMask_ { SpvFunctionControlDontInlineMask = 0x00000002, SpvFunctionControlPureMask = 0x00000004, SpvFunctionControlConstMask = 0x00000008, + SpvFunctionControlOptNoneINTELMask = 0x00010000, } SpvFunctionControlMask; typedef enum SpvMemorySemanticsShift_ { @@ -751,6 +829,8 @@ typedef enum SpvMemoryAccessShift_ { SpvMemoryAccessMakePointerVisibleKHRShift = 4, SpvMemoryAccessNonPrivatePointerShift = 5, SpvMemoryAccessNonPrivatePointerKHRShift = 5, + SpvMemoryAccessAliasScopeINTELMaskShift = 16, + SpvMemoryAccessNoAliasINTELMaskShift = 17, SpvMemoryAccessMax = 0x7fffffff, } SpvMemoryAccessShift; @@ -765,6 +845,8 @@ typedef enum SpvMemoryAccessMask_ { SpvMemoryAccessMakePointerVisibleKHRMask = 0x00000010, SpvMemoryAccessNonPrivatePointerMask = 0x00000020, SpvMemoryAccessNonPrivatePointerKHRMask = 0x00000020, + SpvMemoryAccessAliasScopeINTELMaskMask = 0x00010000, + SpvMemoryAccessNoAliasINTELMaskMask = 0x00020000, } SpvMemoryAccessMask; typedef enum SpvScope_ { @@ -877,9 +959,13 @@ typedef enum SpvCapability_ { SpvCapabilityGroupNonUniformQuad = 68, SpvCapabilityShaderLayer = 69, SpvCapabilityShaderViewportIndex = 70, + SpvCapabilityUniformDecoration = 71, SpvCapabilityFragmentShadingRateKHR = 4422, SpvCapabilitySubgroupBallotKHR = 4423, SpvCapabilityDrawParameters = 4427, + SpvCapabilityWorkgroupMemoryExplicitLayoutKHR = 4428, + SpvCapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR = 4429, + SpvCapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR = 4430, SpvCapabilitySubgroupVoteKHR = 4431, SpvCapabilityStorageBuffer16BitAccess = 4433, SpvCapabilityStorageUniformBufferBlock16 = 4433, @@ -922,6 +1008,8 @@ typedef enum SpvCapability_ { SpvCapabilityFragmentFullyCoveredEXT = 5265, SpvCapabilityMeshShadingNV = 5266, SpvCapabilityImageFootprintNV = 5282, + SpvCapabilityMeshShadingEXT = 5283, + SpvCapabilityFragmentBarycentricKHR = 5284, SpvCapabilityFragmentBarycentricNV = 5284, SpvCapabilityComputeDerivativeGroupQuadsNV = 5288, SpvCapabilityFragmentDensityEXT = 5291, @@ -952,6 +1040,7 @@ typedef enum SpvCapability_ { SpvCapabilityStorageTexelBufferArrayNonUniformIndexing = 5312, SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312, SpvCapabilityRayTracingNV = 5340, + SpvCapabilityRayTracingMotionBlurNV = 5341, SpvCapabilityVulkanMemoryModel = 5345, SpvCapabilityVulkanMemoryModelKHR = 5345, SpvCapabilityVulkanMemoryModelDeviceScope = 5346, @@ -965,26 +1054,67 @@ typedef enum SpvCapability_ { SpvCapabilityFragmentShaderShadingRateInterlockEXT = 5372, SpvCapabilityShaderSMBuiltinsNV = 5373, SpvCapabilityFragmentShaderPixelInterlockEXT = 5378, + SpvCapabilityDemoteToHelperInvocation = 5379, SpvCapabilityDemoteToHelperInvocationEXT = 5379, + SpvCapabilityBindlessTextureNV = 5390, SpvCapabilitySubgroupShuffleINTEL = 5568, SpvCapabilitySubgroupBufferBlockIOINTEL = 5569, SpvCapabilitySubgroupImageBlockIOINTEL = 5570, SpvCapabilitySubgroupImageMediaBlockIOINTEL = 5579, + SpvCapabilityRoundToInfinityINTEL = 5582, + SpvCapabilityFloatingPointModeINTEL = 5583, SpvCapabilityIntegerFunctions2INTEL = 5584, SpvCapabilityFunctionPointersINTEL = 5603, SpvCapabilityIndirectReferencesINTEL = 5604, + SpvCapabilityAsmINTEL = 5606, + SpvCapabilityAtomicFloat32MinMaxEXT = 5612, + SpvCapabilityAtomicFloat64MinMaxEXT = 5613, + SpvCapabilityAtomicFloat16MinMaxEXT = 5616, + SpvCapabilityVectorComputeINTEL = 5617, + SpvCapabilityVectorAnyINTEL = 5619, + SpvCapabilityExpectAssumeKHR = 5629, SpvCapabilitySubgroupAvcMotionEstimationINTEL = 5696, SpvCapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697, SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698, + SpvCapabilityVariableLengthArrayINTEL = 5817, + SpvCapabilityFunctionFloatControlINTEL = 5821, SpvCapabilityFPGAMemoryAttributesINTEL = 5824, + SpvCapabilityFPFastMathModeINTEL = 5837, + SpvCapabilityArbitraryPrecisionIntegersINTEL = 5844, + SpvCapabilityArbitraryPrecisionFloatingPointINTEL = 5845, SpvCapabilityUnstructuredLoopControlsINTEL = 5886, SpvCapabilityFPGALoopControlsINTEL = 5888, SpvCapabilityKernelAttributesINTEL = 5892, SpvCapabilityFPGAKernelAttributesINTEL = 5897, + SpvCapabilityFPGAMemoryAccessesINTEL = 5898, + SpvCapabilityFPGAClusterAttributesINTEL = 5904, + SpvCapabilityLoopFuseINTEL = 5906, + SpvCapabilityMemoryAccessAliasingINTEL = 5910, + SpvCapabilityFPGABufferLocationINTEL = 5920, + SpvCapabilityArbitraryPrecisionFixedPointINTEL = 5922, + SpvCapabilityUSMStorageClassesINTEL = 5935, + SpvCapabilityIOPipesINTEL = 5943, SpvCapabilityBlockingPipesINTEL = 5945, SpvCapabilityFPGARegINTEL = 5948, + SpvCapabilityDotProductInputAll = 6016, + SpvCapabilityDotProductInputAllKHR = 6016, + SpvCapabilityDotProductInput4x8Bit = 6017, + SpvCapabilityDotProductInput4x8BitKHR = 6017, + SpvCapabilityDotProductInput4x8BitPacked = 6018, + SpvCapabilityDotProductInput4x8BitPackedKHR = 6018, + SpvCapabilityDotProduct = 6019, + SpvCapabilityDotProductKHR = 6019, + SpvCapabilityRayCullMaskKHR = 6020, + SpvCapabilityBitInstructions = 6025, + SpvCapabilityGroupNonUniformRotateKHR = 6026, SpvCapabilityAtomicFloat32AddEXT = 6033, SpvCapabilityAtomicFloat64AddEXT = 6034, + SpvCapabilityLongConstantCompositeINTEL = 6089, + SpvCapabilityOptNoneINTEL = 6094, + SpvCapabilityAtomicFloat16AddEXT = 6095, + SpvCapabilityDebugInfoModuleINTEL = 6114, + SpvCapabilitySplitBarrierINTEL = 6141, + SpvCapabilityGroupUniformArithmeticKHR = 6400, SpvCapabilityMax = 0x7fffffff, } SpvCapability; @@ -1051,6 +1181,44 @@ typedef enum SpvFragmentShadingRateMask_ { SpvFragmentShadingRateHorizontal4PixelsMask = 0x00000008, } SpvFragmentShadingRateMask; +typedef enum SpvFPDenormMode_ { + SpvFPDenormModePreserve = 0, + SpvFPDenormModeFlushToZero = 1, + SpvFPDenormModeMax = 0x7fffffff, +} SpvFPDenormMode; + +typedef enum SpvFPOperationMode_ { + SpvFPOperationModeIEEE = 0, + SpvFPOperationModeALT = 1, + SpvFPOperationModeMax = 0x7fffffff, +} SpvFPOperationMode; + +typedef enum SpvQuantizationModes_ { + SpvQuantizationModesTRN = 0, + SpvQuantizationModesTRN_ZERO = 1, + SpvQuantizationModesRND = 2, + SpvQuantizationModesRND_ZERO = 3, + SpvQuantizationModesRND_INF = 4, + SpvQuantizationModesRND_MIN_INF = 5, + SpvQuantizationModesRND_CONV = 6, + SpvQuantizationModesRND_CONV_ODD = 7, + SpvQuantizationModesMax = 0x7fffffff, +} SpvQuantizationModes; + +typedef enum SpvOverflowModes_ { + SpvOverflowModesWRAP = 0, + SpvOverflowModesSAT = 1, + SpvOverflowModesSAT_ZERO = 2, + SpvOverflowModesSAT_SYM = 3, + SpvOverflowModesMax = 0x7fffffff, +} SpvOverflowModes; + +typedef enum SpvPackedVectorFormat_ { + SpvPackedVectorFormatPackedVectorFormat4x8Bit = 0, + SpvPackedVectorFormatPackedVectorFormat4x8BitKHR = 0, + SpvPackedVectorFormatMax = 0x7fffffff, +} SpvPackedVectorFormat; + typedef enum SpvOp_ { SpvOpNop = 0, SpvOpUndef = 1, @@ -1402,12 +1570,25 @@ typedef enum SpvOp_ { SpvOpSubgroupAllKHR = 4428, SpvOpSubgroupAnyKHR = 4429, SpvOpSubgroupAllEqualKHR = 4430, + SpvOpGroupNonUniformRotateKHR = 4431, SpvOpSubgroupReadInvocationKHR = 4432, SpvOpTraceRayKHR = 4445, SpvOpExecuteCallableKHR = 4446, SpvOpConvertUToAccelerationStructureKHR = 4447, SpvOpIgnoreIntersectionKHR = 4448, SpvOpTerminateRayKHR = 4449, + SpvOpSDot = 4450, + SpvOpSDotKHR = 4450, + SpvOpUDot = 4451, + SpvOpUDotKHR = 4451, + SpvOpSUDot = 4452, + SpvOpSUDotKHR = 4452, + SpvOpSDotAccSat = 4453, + SpvOpSDotAccSatKHR = 4453, + SpvOpUDotAccSat = 4454, + SpvOpUDotAccSatKHR = 4454, + SpvOpSUDotAccSat = 4455, + SpvOpSUDotAccSatKHR = 4455, SpvOpTypeRayQueryKHR = 4472, SpvOpRayQueryInitializeKHR = 4473, SpvOpRayQueryTerminateKHR = 4474, @@ -1427,6 +1608,8 @@ typedef enum SpvOp_ { SpvOpFragmentFetchAMD = 5012, SpvOpReadClockKHR = 5056, SpvOpImageSampleFootprintNV = 5283, + SpvOpEmitMeshTasksEXT = 5294, + SpvOpSetMeshOutputsEXT = 5295, SpvOpGroupNonUniformPartitionNV = 5296, SpvOpWritePackedPrimitiveIndices4x8NV = 5299, SpvOpReportIntersectionKHR = 5334, @@ -1434,6 +1617,8 @@ typedef enum SpvOp_ { SpvOpIgnoreIntersectionNV = 5335, SpvOpTerminateRayNV = 5336, SpvOpTraceNV = 5337, + SpvOpTraceMotionNV = 5338, + SpvOpTraceRayMotionNV = 5339, SpvOpTypeAccelerationStructureKHR = 5341, SpvOpTypeAccelerationStructureNV = 5341, SpvOpExecuteCallableNV = 5344, @@ -1444,8 +1629,16 @@ typedef enum SpvOp_ { SpvOpCooperativeMatrixLengthNV = 5362, SpvOpBeginInvocationInterlockEXT = 5364, SpvOpEndInvocationInterlockEXT = 5365, + SpvOpDemoteToHelperInvocation = 5380, SpvOpDemoteToHelperInvocationEXT = 5380, SpvOpIsHelperInvocationEXT = 5381, + SpvOpConvertUToImageNV = 5391, + SpvOpConvertUToSamplerNV = 5392, + SpvOpConvertImageToUNV = 5393, + SpvOpConvertSamplerToUNV = 5394, + SpvOpConvertUToSampledImageNV = 5395, + SpvOpConvertSampledImageToUNV = 5396, + SpvOpSamplerImageAddressingModeNV = 5397, SpvOpSubgroupShuffleINTEL = 5571, SpvOpSubgroupShuffleDownINTEL = 5572, SpvOpSubgroupShuffleUpINTEL = 5573, @@ -1470,8 +1663,15 @@ typedef enum SpvOp_ { SpvOpUSubSatINTEL = 5596, SpvOpIMul32x16INTEL = 5597, SpvOpUMul32x16INTEL = 5598, - SpvOpFunctionPointerINTEL = 5600, + SpvOpConstantFunctionPointerINTEL = 5600, SpvOpFunctionPointerCallINTEL = 5601, + SpvOpAsmTargetINTEL = 5609, + SpvOpAsmINTEL = 5610, + SpvOpAsmCallINTEL = 5611, + SpvOpAtomicFMinEXT = 5614, + SpvOpAtomicFMaxEXT = 5615, + SpvOpAssumeTrueKHR = 5630, + SpvOpExpectKHR = 5631, SpvOpDecorateString = 5632, SpvOpDecorateStringGOOGLE = 5632, SpvOpMemberDecorateString = 5633, @@ -1594,7 +1794,67 @@ typedef enum SpvOp_ { SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814, SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815, SpvOpSubgroupAvcSicGetInterRawSadsINTEL = 5816, + SpvOpVariableLengthArrayINTEL = 5818, + SpvOpSaveMemoryINTEL = 5819, + SpvOpRestoreMemoryINTEL = 5820, + SpvOpArbitraryFloatSinCosPiINTEL = 5840, + SpvOpArbitraryFloatCastINTEL = 5841, + SpvOpArbitraryFloatCastFromIntINTEL = 5842, + SpvOpArbitraryFloatCastToIntINTEL = 5843, + SpvOpArbitraryFloatAddINTEL = 5846, + SpvOpArbitraryFloatSubINTEL = 5847, + SpvOpArbitraryFloatMulINTEL = 5848, + SpvOpArbitraryFloatDivINTEL = 5849, + SpvOpArbitraryFloatGTINTEL = 5850, + SpvOpArbitraryFloatGEINTEL = 5851, + SpvOpArbitraryFloatLTINTEL = 5852, + SpvOpArbitraryFloatLEINTEL = 5853, + SpvOpArbitraryFloatEQINTEL = 5854, + SpvOpArbitraryFloatRecipINTEL = 5855, + SpvOpArbitraryFloatRSqrtINTEL = 5856, + SpvOpArbitraryFloatCbrtINTEL = 5857, + SpvOpArbitraryFloatHypotINTEL = 5858, + SpvOpArbitraryFloatSqrtINTEL = 5859, + SpvOpArbitraryFloatLogINTEL = 5860, + SpvOpArbitraryFloatLog2INTEL = 5861, + SpvOpArbitraryFloatLog10INTEL = 5862, + SpvOpArbitraryFloatLog1pINTEL = 5863, + SpvOpArbitraryFloatExpINTEL = 5864, + SpvOpArbitraryFloatExp2INTEL = 5865, + SpvOpArbitraryFloatExp10INTEL = 5866, + SpvOpArbitraryFloatExpm1INTEL = 5867, + SpvOpArbitraryFloatSinINTEL = 5868, + SpvOpArbitraryFloatCosINTEL = 5869, + SpvOpArbitraryFloatSinCosINTEL = 5870, + SpvOpArbitraryFloatSinPiINTEL = 5871, + SpvOpArbitraryFloatCosPiINTEL = 5872, + SpvOpArbitraryFloatASinINTEL = 5873, + SpvOpArbitraryFloatASinPiINTEL = 5874, + SpvOpArbitraryFloatACosINTEL = 5875, + SpvOpArbitraryFloatACosPiINTEL = 5876, + SpvOpArbitraryFloatATanINTEL = 5877, + SpvOpArbitraryFloatATanPiINTEL = 5878, + SpvOpArbitraryFloatATan2INTEL = 5879, + SpvOpArbitraryFloatPowINTEL = 5880, + SpvOpArbitraryFloatPowRINTEL = 5881, + SpvOpArbitraryFloatPowNINTEL = 5882, SpvOpLoopControlINTEL = 5887, + SpvOpAliasDomainDeclINTEL = 5911, + SpvOpAliasScopeDeclINTEL = 5912, + SpvOpAliasScopeListDeclINTEL = 5913, + SpvOpFixedSqrtINTEL = 5923, + SpvOpFixedRecipINTEL = 5924, + SpvOpFixedRsqrtINTEL = 5925, + SpvOpFixedSinINTEL = 5926, + SpvOpFixedCosINTEL = 5927, + SpvOpFixedSinCosINTEL = 5928, + SpvOpFixedSinPiINTEL = 5929, + SpvOpFixedCosPiINTEL = 5930, + SpvOpFixedSinCosPiINTEL = 5931, + SpvOpFixedLogINTEL = 5932, + SpvOpFixedExpINTEL = 5933, + SpvOpPtrCastToCrossWorkgroupINTEL = 5934, + SpvOpCrossWorkgroupCastToPtrINTEL = 5938, SpvOpReadPipeBlockingINTEL = 5946, SpvOpWritePipeBlockingINTEL = 5947, SpvOpFPGARegINTEL = 5949, @@ -1616,10 +1876,27 @@ typedef enum SpvOp_ { SpvOpRayQueryGetIntersectionObjectToWorldKHR = 6031, SpvOpRayQueryGetIntersectionWorldToObjectKHR = 6032, SpvOpAtomicFAddEXT = 6035, + SpvOpTypeBufferSurfaceINTEL = 6086, + SpvOpTypeStructContinuedINTEL = 6090, + SpvOpConstantCompositeContinuedINTEL = 6091, + SpvOpSpecConstantCompositeContinuedINTEL = 6092, + SpvOpControlBarrierArriveINTEL = 6142, + SpvOpControlBarrierWaitINTEL = 6143, + SpvOpGroupIMulKHR = 6401, + SpvOpGroupFMulKHR = 6402, + SpvOpGroupBitwiseAndKHR = 6403, + SpvOpGroupBitwiseOrKHR = 6404, + SpvOpGroupBitwiseXorKHR = 6405, + SpvOpGroupLogicalAndKHR = 6406, + SpvOpGroupLogicalOrKHR = 6407, + SpvOpGroupLogicalXorKHR = 6408, SpvOpMax = 0x7fffffff, } SpvOp; #ifdef SPV_ENABLE_UTILITY_CODE +#ifndef __cplusplus +#include +#endif inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultType) { *hasResult = *hasResultType = false; switch (opcode) { @@ -1974,12 +2251,19 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy case SpvOpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break; + case SpvOpGroupNonUniformRotateKHR: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break; case SpvOpTraceRayKHR: *hasResult = false; *hasResultType = false; break; case SpvOpExecuteCallableKHR: *hasResult = false; *hasResultType = false; break; case SpvOpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break; case SpvOpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break; case SpvOpTerminateRayKHR: *hasResult = false; *hasResultType = false; break; + case SpvOpSDot: *hasResult = true; *hasResultType = true; break; + case SpvOpUDot: *hasResult = true; *hasResultType = true; break; + case SpvOpSUDot: *hasResult = true; *hasResultType = true; break; + case SpvOpSDotAccSat: *hasResult = true; *hasResultType = true; break; + case SpvOpUDotAccSat: *hasResult = true; *hasResultType = true; break; + case SpvOpSUDotAccSat: *hasResult = true; *hasResultType = true; break; case SpvOpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break; case SpvOpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break; case SpvOpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break; @@ -1999,12 +2283,16 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy case SpvOpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break; case SpvOpReadClockKHR: *hasResult = true; *hasResultType = true; break; case SpvOpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break; + case SpvOpEmitMeshTasksEXT: *hasResult = false; *hasResultType = false; break; + case SpvOpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break; case SpvOpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break; case SpvOpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break; case SpvOpReportIntersectionNV: *hasResult = true; *hasResultType = true; break; case SpvOpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break; case SpvOpTerminateRayNV: *hasResult = false; *hasResultType = false; break; case SpvOpTraceNV: *hasResult = false; *hasResultType = false; break; + case SpvOpTraceMotionNV: *hasResult = false; *hasResultType = false; break; + case SpvOpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break; case SpvOpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break; case SpvOpExecuteCallableNV: *hasResult = false; *hasResultType = false; break; case SpvOpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break; @@ -2014,8 +2302,15 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy case SpvOpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break; case SpvOpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break; case SpvOpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break; - case SpvOpDemoteToHelperInvocationEXT: *hasResult = false; *hasResultType = false; break; + case SpvOpDemoteToHelperInvocation: *hasResult = false; *hasResultType = false; break; case SpvOpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break; + case SpvOpConvertUToImageNV: *hasResult = true; *hasResultType = true; break; + case SpvOpConvertUToSamplerNV: *hasResult = true; *hasResultType = true; break; + case SpvOpConvertImageToUNV: *hasResult = true; *hasResultType = true; break; + case SpvOpConvertSamplerToUNV: *hasResult = true; *hasResultType = true; break; + case SpvOpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break; + case SpvOpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break; + case SpvOpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break; case SpvOpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break; @@ -2040,8 +2335,15 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy case SpvOpUSubSatINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break; case SpvOpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpConstantFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpAsmINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpAsmCallINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break; + case SpvOpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break; + case SpvOpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break; + case SpvOpExpectKHR: *hasResult = true; *hasResultType = true; break; case SpvOpDecorateString: *hasResult = false; *hasResultType = false; break; case SpvOpMemberDecorateString: *hasResult = false; *hasResultType = false; break; case SpvOpVmeImageINTEL: *hasResult = true; *hasResultType = true; break; @@ -2162,7 +2464,67 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy case SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break; + case SpvOpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpLoopControlINTEL: *hasResult = false; *hasResultType = false; break; + case SpvOpAliasDomainDeclINTEL: *hasResult = true; *hasResultType = false; break; + case SpvOpAliasScopeDeclINTEL: *hasResult = true; *hasResultType = false; break; + case SpvOpAliasScopeListDeclINTEL: *hasResult = true; *hasResultType = false; break; + case SpvOpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpFixedSinINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpFixedCosINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpFixedLogINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpFixedExpINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpFPGARegINTEL: *hasResult = true; *hasResultType = true; break; @@ -2184,6 +2546,20 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy case SpvOpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break; case SpvOpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break; case SpvOpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break; + case SpvOpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break; + case SpvOpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break; + case SpvOpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break; + case SpvOpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break; + case SpvOpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break; + case SpvOpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break; + case SpvOpGroupIMulKHR: *hasResult = true; *hasResultType = true; break; + case SpvOpGroupFMulKHR: *hasResult = true; *hasResultType = true; break; + case SpvOpGroupBitwiseAndKHR: *hasResult = true; *hasResultType = true; break; + case SpvOpGroupBitwiseOrKHR: *hasResult = true; *hasResultType = true; break; + case SpvOpGroupBitwiseXorKHR: *hasResult = true; *hasResultType = true; break; + case SpvOpGroupLogicalAndKHR: *hasResult = true; *hasResultType = true; break; + case SpvOpGroupLogicalOrKHR: *hasResult = true; *hasResultType = true; break; + case SpvOpGroupLogicalXorKHR: *hasResult = true; *hasResultType = true; break; } } #endif /* SPV_ENABLE_UTILITY_CODE */ diff --git a/third_party/spirv-cross/spirv.hpp b/third_party/spirv-cross/spirv.hpp index 43dd2aaeec..e25264af28 100644 --- a/third_party/spirv-cross/spirv.hpp +++ b/third_party/spirv-cross/spirv.hpp @@ -26,7 +26,7 @@ // the Binary Section of the SPIR-V specification. // Enumeration tokens for SPIR-V, in various styles: -// C, C++, C++11, JSON, Lua, Python, C#, D +// C, C++, C++11, JSON, Lua, Python, C#, D, Beef // // - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL // - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL @@ -36,6 +36,8 @@ // - C# will use enum classes in the Specification class located in the "Spv" namespace, // e.g.: Spv.Specification.SourceLanguage.GLSL // - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL +// - Beef will use enum classes in the Specification class located in the "Spv" namespace, +// e.g.: Spv.Specification.SourceLanguage.GLSL // // Some tokens act like mask values, which can be OR'd together, // while others are mutually exclusive. The mask-like ones have @@ -49,12 +51,12 @@ namespace spv { typedef unsigned int Id; -#define SPV_VERSION 0x10500 -#define SPV_REVISION 4 +#define SPV_VERSION 0x10600 +#define SPV_REVISION 1 static const unsigned int MagicNumber = 0x07230203; -static const unsigned int Version = 0x00010500; -static const unsigned int Revision = 4; +static const unsigned int Version = 0x00010600; +static const unsigned int Revision = 1; static const unsigned int OpCodeMask = 0xffff; static const unsigned int WordCountShift = 16; @@ -65,6 +67,8 @@ enum SourceLanguage { SourceLanguageOpenCL_C = 3, SourceLanguageOpenCL_CPP = 4, SourceLanguageHLSL = 5, + SourceLanguageCPP_for_OpenCL = 6, + SourceLanguageSYCL = 7, SourceLanguageMax = 0x7fffffff, }; @@ -90,6 +94,8 @@ enum ExecutionModel { ExecutionModelMissNV = 5317, ExecutionModelCallableKHR = 5318, ExecutionModelCallableNV = 5318, + ExecutionModelTaskEXT = 5364, + ExecutionModelMeshEXT = 5365, ExecutionModelMax = 0x7fffffff, }; @@ -150,17 +156,28 @@ enum ExecutionMode { ExecutionModeSubgroupsPerWorkgroupId = 37, ExecutionModeLocalSizeId = 38, ExecutionModeLocalSizeHintId = 39, + ExecutionModeSubgroupUniformControlFlowKHR = 4421, ExecutionModePostDepthCoverage = 4446, ExecutionModeDenormPreserve = 4459, ExecutionModeDenormFlushToZero = 4460, ExecutionModeSignedZeroInfNanPreserve = 4461, ExecutionModeRoundingModeRTE = 4462, ExecutionModeRoundingModeRTZ = 4463, + ExecutionModeEarlyAndLateFragmentTestsAMD = 5017, ExecutionModeStencilRefReplacingEXT = 5027, + ExecutionModeStencilRefUnchangedFrontAMD = 5079, + ExecutionModeStencilRefGreaterFrontAMD = 5080, + ExecutionModeStencilRefLessFrontAMD = 5081, + ExecutionModeStencilRefUnchangedBackAMD = 5082, + ExecutionModeStencilRefGreaterBackAMD = 5083, + ExecutionModeStencilRefLessBackAMD = 5084, + ExecutionModeOutputLinesEXT = 5269, ExecutionModeOutputLinesNV = 5269, + ExecutionModeOutputPrimitivesEXT = 5270, ExecutionModeOutputPrimitivesNV = 5270, ExecutionModeDerivativeGroupQuadsNV = 5289, ExecutionModeDerivativeGroupLinearNV = 5290, + ExecutionModeOutputTrianglesEXT = 5298, ExecutionModeOutputTrianglesNV = 5298, ExecutionModePixelInterlockOrderedEXT = 5366, ExecutionModePixelInterlockUnorderedEXT = 5367, @@ -168,10 +185,17 @@ enum ExecutionMode { ExecutionModeSampleInterlockUnorderedEXT = 5369, ExecutionModeShadingRateInterlockOrderedEXT = 5370, ExecutionModeShadingRateInterlockUnorderedEXT = 5371, + ExecutionModeSharedLocalMemorySizeINTEL = 5618, + ExecutionModeRoundingModeRTPINTEL = 5620, + ExecutionModeRoundingModeRTNINTEL = 5621, + ExecutionModeFloatingPointModeALTINTEL = 5622, + ExecutionModeFloatingPointModeIEEEINTEL = 5623, ExecutionModeMaxWorkgroupSizeINTEL = 5893, ExecutionModeMaxWorkDimINTEL = 5894, ExecutionModeNoGlobalOffsetINTEL = 5895, ExecutionModeNumSIMDWorkitemsINTEL = 5896, + ExecutionModeSchedulerTargetFmaxMhzINTEL = 5903, + ExecutionModeNamedBarrierCountINTEL = 6417, ExecutionModeMax = 0x7fffffff, }; @@ -203,7 +227,10 @@ enum StorageClass { StorageClassShaderRecordBufferNV = 5343, StorageClassPhysicalStorageBuffer = 5349, StorageClassPhysicalStorageBufferEXT = 5349, + StorageClassTaskPayloadWorkgroupEXT = 5402, StorageClassCodeSectionINTEL = 5605, + StorageClassDeviceOnlyINTEL = 5936, + StorageClassHostOnlyINTEL = 5937, StorageClassMax = 0x7fffffff, }; @@ -343,6 +370,8 @@ enum ImageOperandsShift { ImageOperandsVolatileTexelKHRShift = 11, ImageOperandsSignExtendShift = 12, ImageOperandsZeroExtendShift = 13, + ImageOperandsNontemporalShift = 14, + ImageOperandsOffsetsShift = 16, ImageOperandsMax = 0x7fffffff, }; @@ -366,6 +395,8 @@ enum ImageOperandsMask { ImageOperandsVolatileTexelKHRMask = 0x00000800, ImageOperandsSignExtendMask = 0x00001000, ImageOperandsZeroExtendMask = 0x00002000, + ImageOperandsNontemporalMask = 0x00004000, + ImageOperandsOffsetsMask = 0x00010000, }; enum FPFastMathModeShift { @@ -374,6 +405,8 @@ enum FPFastMathModeShift { FPFastMathModeNSZShift = 2, FPFastMathModeAllowRecipShift = 3, FPFastMathModeFastShift = 4, + FPFastMathModeAllowContractFastINTELShift = 16, + FPFastMathModeAllowReassocINTELShift = 17, FPFastMathModeMax = 0x7fffffff, }; @@ -384,6 +417,8 @@ enum FPFastMathModeMask { FPFastMathModeNSZMask = 0x00000004, FPFastMathModeAllowRecipMask = 0x00000008, FPFastMathModeFastMask = 0x00000010, + FPFastMathModeAllowContractFastINTELMask = 0x00010000, + FPFastMathModeAllowReassocINTELMask = 0x00020000, }; enum FPRoundingMode { @@ -397,6 +432,7 @@ enum FPRoundingMode { enum LinkageType { LinkageTypeExport = 0, LinkageTypeImport = 1, + LinkageTypeLinkOnceODR = 2, LinkageTypeMax = 0x7fffffff, }; @@ -474,9 +510,11 @@ enum Decoration { DecorationPassthroughNV = 5250, DecorationViewportRelativeNV = 5252, DecorationSecondaryViewportRelativeNV = 5256, + DecorationPerPrimitiveEXT = 5271, DecorationPerPrimitiveNV = 5271, DecorationPerViewNV = 5272, DecorationPerTaskNV = 5273, + DecorationPerVertexKHR = 5285, DecorationPerVertexNV = 5285, DecorationNonUniform = 5300, DecorationNonUniformEXT = 5300, @@ -484,12 +522,26 @@ enum Decoration { DecorationRestrictPointerEXT = 5355, DecorationAliasedPointer = 5356, DecorationAliasedPointerEXT = 5356, + DecorationBindlessSamplerNV = 5398, + DecorationBindlessImageNV = 5399, + DecorationBoundSamplerNV = 5400, + DecorationBoundImageNV = 5401, + DecorationSIMTCallINTEL = 5599, DecorationReferencedIndirectlyINTEL = 5602, + DecorationClobberINTEL = 5607, + DecorationSideEffectsINTEL = 5608, + DecorationVectorComputeVariableINTEL = 5624, + DecorationFuncParamIOKindINTEL = 5625, + DecorationVectorComputeFunctionINTEL = 5626, + DecorationStackCallINTEL = 5627, + DecorationGlobalVariableOffsetINTEL = 5628, DecorationCounterBuffer = 5634, DecorationHlslCounterBufferGOOGLE = 5634, DecorationHlslSemanticGOOGLE = 5635, DecorationUserSemantic = 5635, DecorationUserTypeGOOGLE = 5636, + DecorationFunctionRoundingModeINTEL = 5822, + DecorationFunctionDenormModeINTEL = 5823, DecorationRegisterINTEL = 5825, DecorationMemoryINTEL = 5826, DecorationNumbanksINTEL = 5827, @@ -502,6 +554,20 @@ enum Decoration { DecorationMergeINTEL = 5834, DecorationBankBitsINTEL = 5835, DecorationForcePow2DepthINTEL = 5836, + DecorationBurstCoalesceINTEL = 5899, + DecorationCacheSizeINTEL = 5900, + DecorationDontStaticallyCoalesceINTEL = 5901, + DecorationPrefetchINTEL = 5902, + DecorationStallEnableINTEL = 5905, + DecorationFuseLoopsInFunctionINTEL = 5907, + DecorationAliasScopeINTEL = 5914, + DecorationNoAliasINTEL = 5915, + DecorationBufferLocationINTEL = 5921, + DecorationIOPipeStorageINTEL = 5944, + DecorationFunctionFloatingPointModeINTEL = 6080, + DecorationSingleElementVectorINTEL = 6085, + DecorationVectorComputeCallableFunctionINTEL = 6087, + DecorationMediaBlockIOINTEL = 6140, DecorationMax = 0x7fffffff, }; @@ -586,12 +652,18 @@ enum BuiltIn { BuiltInLayerPerViewNV = 5279, BuiltInMeshViewCountNV = 5280, BuiltInMeshViewIndicesNV = 5281, + BuiltInBaryCoordKHR = 5286, BuiltInBaryCoordNV = 5286, + BuiltInBaryCoordNoPerspKHR = 5287, BuiltInBaryCoordNoPerspNV = 5287, BuiltInFragSizeEXT = 5292, BuiltInFragmentSizeNV = 5292, BuiltInFragInvocationCountEXT = 5293, BuiltInInvocationsPerPixelNV = 5293, + BuiltInPrimitivePointIndicesEXT = 5294, + BuiltInPrimitiveLineIndicesEXT = 5295, + BuiltInPrimitiveTriangleIndicesEXT = 5296, + BuiltInCullPrimitiveEXT = 5299, BuiltInLaunchIdKHR = 5319, BuiltInLaunchIdNV = 5319, BuiltInLaunchSizeKHR = 5320, @@ -617,6 +689,7 @@ enum BuiltIn { BuiltInHitTNV = 5332, BuiltInHitKindKHR = 5333, BuiltInHitKindNV = 5333, + BuiltInCurrentRayTimeNV = 5334, BuiltInIncomingRayFlagsKHR = 5351, BuiltInIncomingRayFlagsNV = 5351, BuiltInRayGeometryIndexKHR = 5352, @@ -624,6 +697,7 @@ enum BuiltIn { BuiltInSMCountNV = 5375, BuiltInWarpIDNV = 5376, BuiltInSMIDNV = 5377, + BuiltInCullMaskKHR = 6021, BuiltInMax = 0x7fffffff, }; @@ -656,6 +730,7 @@ enum LoopControlShift { LoopControlLoopCoalesceINTELShift = 20, LoopControlMaxInterleavingINTELShift = 21, LoopControlSpeculatedIterationsINTELShift = 22, + LoopControlNoFusionINTELShift = 23, LoopControlMax = 0x7fffffff, }; @@ -677,6 +752,7 @@ enum LoopControlMask { LoopControlLoopCoalesceINTELMask = 0x00100000, LoopControlMaxInterleavingINTELMask = 0x00200000, LoopControlSpeculatedIterationsINTELMask = 0x00400000, + LoopControlNoFusionINTELMask = 0x00800000, }; enum FunctionControlShift { @@ -684,6 +760,7 @@ enum FunctionControlShift { FunctionControlDontInlineShift = 1, FunctionControlPureShift = 2, FunctionControlConstShift = 3, + FunctionControlOptNoneINTELShift = 16, FunctionControlMax = 0x7fffffff, }; @@ -693,6 +770,7 @@ enum FunctionControlMask { FunctionControlDontInlineMask = 0x00000002, FunctionControlPureMask = 0x00000004, FunctionControlConstMask = 0x00000008, + FunctionControlOptNoneINTELMask = 0x00010000, }; enum MemorySemanticsShift { @@ -747,6 +825,8 @@ enum MemoryAccessShift { MemoryAccessMakePointerVisibleKHRShift = 4, MemoryAccessNonPrivatePointerShift = 5, MemoryAccessNonPrivatePointerKHRShift = 5, + MemoryAccessAliasScopeINTELMaskShift = 16, + MemoryAccessNoAliasINTELMaskShift = 17, MemoryAccessMax = 0x7fffffff, }; @@ -761,6 +841,8 @@ enum MemoryAccessMask { MemoryAccessMakePointerVisibleKHRMask = 0x00000010, MemoryAccessNonPrivatePointerMask = 0x00000020, MemoryAccessNonPrivatePointerKHRMask = 0x00000020, + MemoryAccessAliasScopeINTELMaskMask = 0x00010000, + MemoryAccessNoAliasINTELMaskMask = 0x00020000, }; enum Scope { @@ -873,9 +955,13 @@ enum Capability { CapabilityGroupNonUniformQuad = 68, CapabilityShaderLayer = 69, CapabilityShaderViewportIndex = 70, + CapabilityUniformDecoration = 71, CapabilityFragmentShadingRateKHR = 4422, CapabilitySubgroupBallotKHR = 4423, CapabilityDrawParameters = 4427, + CapabilityWorkgroupMemoryExplicitLayoutKHR = 4428, + CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR = 4429, + CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR = 4430, CapabilitySubgroupVoteKHR = 4431, CapabilityStorageBuffer16BitAccess = 4433, CapabilityStorageUniformBufferBlock16 = 4433, @@ -918,6 +1004,8 @@ enum Capability { CapabilityFragmentFullyCoveredEXT = 5265, CapabilityMeshShadingNV = 5266, CapabilityImageFootprintNV = 5282, + CapabilityMeshShadingEXT = 5283, + CapabilityFragmentBarycentricKHR = 5284, CapabilityFragmentBarycentricNV = 5284, CapabilityComputeDerivativeGroupQuadsNV = 5288, CapabilityFragmentDensityEXT = 5291, @@ -948,6 +1036,7 @@ enum Capability { CapabilityStorageTexelBufferArrayNonUniformIndexing = 5312, CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312, CapabilityRayTracingNV = 5340, + CapabilityRayTracingMotionBlurNV = 5341, CapabilityVulkanMemoryModel = 5345, CapabilityVulkanMemoryModelKHR = 5345, CapabilityVulkanMemoryModelDeviceScope = 5346, @@ -961,26 +1050,67 @@ enum Capability { CapabilityFragmentShaderShadingRateInterlockEXT = 5372, CapabilityShaderSMBuiltinsNV = 5373, CapabilityFragmentShaderPixelInterlockEXT = 5378, + CapabilityDemoteToHelperInvocation = 5379, CapabilityDemoteToHelperInvocationEXT = 5379, + CapabilityBindlessTextureNV = 5390, CapabilitySubgroupShuffleINTEL = 5568, CapabilitySubgroupBufferBlockIOINTEL = 5569, CapabilitySubgroupImageBlockIOINTEL = 5570, CapabilitySubgroupImageMediaBlockIOINTEL = 5579, + CapabilityRoundToInfinityINTEL = 5582, + CapabilityFloatingPointModeINTEL = 5583, CapabilityIntegerFunctions2INTEL = 5584, CapabilityFunctionPointersINTEL = 5603, CapabilityIndirectReferencesINTEL = 5604, + CapabilityAsmINTEL = 5606, + CapabilityAtomicFloat32MinMaxEXT = 5612, + CapabilityAtomicFloat64MinMaxEXT = 5613, + CapabilityAtomicFloat16MinMaxEXT = 5616, + CapabilityVectorComputeINTEL = 5617, + CapabilityVectorAnyINTEL = 5619, + CapabilityExpectAssumeKHR = 5629, CapabilitySubgroupAvcMotionEstimationINTEL = 5696, CapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697, CapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698, + CapabilityVariableLengthArrayINTEL = 5817, + CapabilityFunctionFloatControlINTEL = 5821, CapabilityFPGAMemoryAttributesINTEL = 5824, + CapabilityFPFastMathModeINTEL = 5837, + CapabilityArbitraryPrecisionIntegersINTEL = 5844, + CapabilityArbitraryPrecisionFloatingPointINTEL = 5845, CapabilityUnstructuredLoopControlsINTEL = 5886, CapabilityFPGALoopControlsINTEL = 5888, CapabilityKernelAttributesINTEL = 5892, CapabilityFPGAKernelAttributesINTEL = 5897, + CapabilityFPGAMemoryAccessesINTEL = 5898, + CapabilityFPGAClusterAttributesINTEL = 5904, + CapabilityLoopFuseINTEL = 5906, + CapabilityMemoryAccessAliasingINTEL = 5910, + CapabilityFPGABufferLocationINTEL = 5920, + CapabilityArbitraryPrecisionFixedPointINTEL = 5922, + CapabilityUSMStorageClassesINTEL = 5935, + CapabilityIOPipesINTEL = 5943, CapabilityBlockingPipesINTEL = 5945, CapabilityFPGARegINTEL = 5948, + CapabilityDotProductInputAll = 6016, + CapabilityDotProductInputAllKHR = 6016, + CapabilityDotProductInput4x8Bit = 6017, + CapabilityDotProductInput4x8BitKHR = 6017, + CapabilityDotProductInput4x8BitPacked = 6018, + CapabilityDotProductInput4x8BitPackedKHR = 6018, + CapabilityDotProduct = 6019, + CapabilityDotProductKHR = 6019, + CapabilityRayCullMaskKHR = 6020, + CapabilityBitInstructions = 6025, + CapabilityGroupNonUniformRotateKHR = 6026, CapabilityAtomicFloat32AddEXT = 6033, CapabilityAtomicFloat64AddEXT = 6034, + CapabilityLongConstantCompositeINTEL = 6089, + CapabilityOptNoneINTEL = 6094, + CapabilityAtomicFloat16AddEXT = 6095, + CapabilityDebugInfoModuleINTEL = 6114, + CapabilitySplitBarrierINTEL = 6141, + CapabilityGroupUniformArithmeticKHR = 6400, CapabilityMax = 0x7fffffff, }; @@ -1047,6 +1177,44 @@ enum FragmentShadingRateMask { FragmentShadingRateHorizontal4PixelsMask = 0x00000008, }; +enum FPDenormMode { + FPDenormModePreserve = 0, + FPDenormModeFlushToZero = 1, + FPDenormModeMax = 0x7fffffff, +}; + +enum FPOperationMode { + FPOperationModeIEEE = 0, + FPOperationModeALT = 1, + FPOperationModeMax = 0x7fffffff, +}; + +enum QuantizationModes { + QuantizationModesTRN = 0, + QuantizationModesTRN_ZERO = 1, + QuantizationModesRND = 2, + QuantizationModesRND_ZERO = 3, + QuantizationModesRND_INF = 4, + QuantizationModesRND_MIN_INF = 5, + QuantizationModesRND_CONV = 6, + QuantizationModesRND_CONV_ODD = 7, + QuantizationModesMax = 0x7fffffff, +}; + +enum OverflowModes { + OverflowModesWRAP = 0, + OverflowModesSAT = 1, + OverflowModesSAT_ZERO = 2, + OverflowModesSAT_SYM = 3, + OverflowModesMax = 0x7fffffff, +}; + +enum PackedVectorFormat { + PackedVectorFormatPackedVectorFormat4x8Bit = 0, + PackedVectorFormatPackedVectorFormat4x8BitKHR = 0, + PackedVectorFormatMax = 0x7fffffff, +}; + enum Op { OpNop = 0, OpUndef = 1, @@ -1398,12 +1566,25 @@ enum Op { OpSubgroupAllKHR = 4428, OpSubgroupAnyKHR = 4429, OpSubgroupAllEqualKHR = 4430, + OpGroupNonUniformRotateKHR = 4431, OpSubgroupReadInvocationKHR = 4432, OpTraceRayKHR = 4445, OpExecuteCallableKHR = 4446, OpConvertUToAccelerationStructureKHR = 4447, OpIgnoreIntersectionKHR = 4448, OpTerminateRayKHR = 4449, + OpSDot = 4450, + OpSDotKHR = 4450, + OpUDot = 4451, + OpUDotKHR = 4451, + OpSUDot = 4452, + OpSUDotKHR = 4452, + OpSDotAccSat = 4453, + OpSDotAccSatKHR = 4453, + OpUDotAccSat = 4454, + OpUDotAccSatKHR = 4454, + OpSUDotAccSat = 4455, + OpSUDotAccSatKHR = 4455, OpTypeRayQueryKHR = 4472, OpRayQueryInitializeKHR = 4473, OpRayQueryTerminateKHR = 4474, @@ -1423,6 +1604,8 @@ enum Op { OpFragmentFetchAMD = 5012, OpReadClockKHR = 5056, OpImageSampleFootprintNV = 5283, + OpEmitMeshTasksEXT = 5294, + OpSetMeshOutputsEXT = 5295, OpGroupNonUniformPartitionNV = 5296, OpWritePackedPrimitiveIndices4x8NV = 5299, OpReportIntersectionKHR = 5334, @@ -1430,6 +1613,8 @@ enum Op { OpIgnoreIntersectionNV = 5335, OpTerminateRayNV = 5336, OpTraceNV = 5337, + OpTraceMotionNV = 5338, + OpTraceRayMotionNV = 5339, OpTypeAccelerationStructureKHR = 5341, OpTypeAccelerationStructureNV = 5341, OpExecuteCallableNV = 5344, @@ -1440,8 +1625,16 @@ enum Op { OpCooperativeMatrixLengthNV = 5362, OpBeginInvocationInterlockEXT = 5364, OpEndInvocationInterlockEXT = 5365, + OpDemoteToHelperInvocation = 5380, OpDemoteToHelperInvocationEXT = 5380, OpIsHelperInvocationEXT = 5381, + OpConvertUToImageNV = 5391, + OpConvertUToSamplerNV = 5392, + OpConvertImageToUNV = 5393, + OpConvertSamplerToUNV = 5394, + OpConvertUToSampledImageNV = 5395, + OpConvertSampledImageToUNV = 5396, + OpSamplerImageAddressingModeNV = 5397, OpSubgroupShuffleINTEL = 5571, OpSubgroupShuffleDownINTEL = 5572, OpSubgroupShuffleUpINTEL = 5573, @@ -1466,8 +1659,15 @@ enum Op { OpUSubSatINTEL = 5596, OpIMul32x16INTEL = 5597, OpUMul32x16INTEL = 5598, - OpFunctionPointerINTEL = 5600, + OpConstantFunctionPointerINTEL = 5600, OpFunctionPointerCallINTEL = 5601, + OpAsmTargetINTEL = 5609, + OpAsmINTEL = 5610, + OpAsmCallINTEL = 5611, + OpAtomicFMinEXT = 5614, + OpAtomicFMaxEXT = 5615, + OpAssumeTrueKHR = 5630, + OpExpectKHR = 5631, OpDecorateString = 5632, OpDecorateStringGOOGLE = 5632, OpMemberDecorateString = 5633, @@ -1590,7 +1790,67 @@ enum Op { OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814, OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815, OpSubgroupAvcSicGetInterRawSadsINTEL = 5816, + OpVariableLengthArrayINTEL = 5818, + OpSaveMemoryINTEL = 5819, + OpRestoreMemoryINTEL = 5820, + OpArbitraryFloatSinCosPiINTEL = 5840, + OpArbitraryFloatCastINTEL = 5841, + OpArbitraryFloatCastFromIntINTEL = 5842, + OpArbitraryFloatCastToIntINTEL = 5843, + OpArbitraryFloatAddINTEL = 5846, + OpArbitraryFloatSubINTEL = 5847, + OpArbitraryFloatMulINTEL = 5848, + OpArbitraryFloatDivINTEL = 5849, + OpArbitraryFloatGTINTEL = 5850, + OpArbitraryFloatGEINTEL = 5851, + OpArbitraryFloatLTINTEL = 5852, + OpArbitraryFloatLEINTEL = 5853, + OpArbitraryFloatEQINTEL = 5854, + OpArbitraryFloatRecipINTEL = 5855, + OpArbitraryFloatRSqrtINTEL = 5856, + OpArbitraryFloatCbrtINTEL = 5857, + OpArbitraryFloatHypotINTEL = 5858, + OpArbitraryFloatSqrtINTEL = 5859, + OpArbitraryFloatLogINTEL = 5860, + OpArbitraryFloatLog2INTEL = 5861, + OpArbitraryFloatLog10INTEL = 5862, + OpArbitraryFloatLog1pINTEL = 5863, + OpArbitraryFloatExpINTEL = 5864, + OpArbitraryFloatExp2INTEL = 5865, + OpArbitraryFloatExp10INTEL = 5866, + OpArbitraryFloatExpm1INTEL = 5867, + OpArbitraryFloatSinINTEL = 5868, + OpArbitraryFloatCosINTEL = 5869, + OpArbitraryFloatSinCosINTEL = 5870, + OpArbitraryFloatSinPiINTEL = 5871, + OpArbitraryFloatCosPiINTEL = 5872, + OpArbitraryFloatASinINTEL = 5873, + OpArbitraryFloatASinPiINTEL = 5874, + OpArbitraryFloatACosINTEL = 5875, + OpArbitraryFloatACosPiINTEL = 5876, + OpArbitraryFloatATanINTEL = 5877, + OpArbitraryFloatATanPiINTEL = 5878, + OpArbitraryFloatATan2INTEL = 5879, + OpArbitraryFloatPowINTEL = 5880, + OpArbitraryFloatPowRINTEL = 5881, + OpArbitraryFloatPowNINTEL = 5882, OpLoopControlINTEL = 5887, + OpAliasDomainDeclINTEL = 5911, + OpAliasScopeDeclINTEL = 5912, + OpAliasScopeListDeclINTEL = 5913, + OpFixedSqrtINTEL = 5923, + OpFixedRecipINTEL = 5924, + OpFixedRsqrtINTEL = 5925, + OpFixedSinINTEL = 5926, + OpFixedCosINTEL = 5927, + OpFixedSinCosINTEL = 5928, + OpFixedSinPiINTEL = 5929, + OpFixedCosPiINTEL = 5930, + OpFixedSinCosPiINTEL = 5931, + OpFixedLogINTEL = 5932, + OpFixedExpINTEL = 5933, + OpPtrCastToCrossWorkgroupINTEL = 5934, + OpCrossWorkgroupCastToPtrINTEL = 5938, OpReadPipeBlockingINTEL = 5946, OpWritePipeBlockingINTEL = 5947, OpFPGARegINTEL = 5949, @@ -1612,10 +1872,27 @@ enum Op { OpRayQueryGetIntersectionObjectToWorldKHR = 6031, OpRayQueryGetIntersectionWorldToObjectKHR = 6032, OpAtomicFAddEXT = 6035, + OpTypeBufferSurfaceINTEL = 6086, + OpTypeStructContinuedINTEL = 6090, + OpConstantCompositeContinuedINTEL = 6091, + OpSpecConstantCompositeContinuedINTEL = 6092, + OpControlBarrierArriveINTEL = 6142, + OpControlBarrierWaitINTEL = 6143, + OpGroupIMulKHR = 6401, + OpGroupFMulKHR = 6402, + OpGroupBitwiseAndKHR = 6403, + OpGroupBitwiseOrKHR = 6404, + OpGroupBitwiseXorKHR = 6405, + OpGroupLogicalAndKHR = 6406, + OpGroupLogicalOrKHR = 6407, + OpGroupLogicalXorKHR = 6408, OpMax = 0x7fffffff, }; #ifdef SPV_ENABLE_UTILITY_CODE +#ifndef __cplusplus +#include +#endif inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) { *hasResult = *hasResultType = false; switch (opcode) { @@ -1970,12 +2247,19 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) { case OpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break; case OpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break; case OpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break; + case OpGroupNonUniformRotateKHR: *hasResult = true; *hasResultType = true; break; case OpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break; case OpTraceRayKHR: *hasResult = false; *hasResultType = false; break; case OpExecuteCallableKHR: *hasResult = false; *hasResultType = false; break; case OpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break; case OpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break; case OpTerminateRayKHR: *hasResult = false; *hasResultType = false; break; + case OpSDot: *hasResult = true; *hasResultType = true; break; + case OpUDot: *hasResult = true; *hasResultType = true; break; + case OpSUDot: *hasResult = true; *hasResultType = true; break; + case OpSDotAccSat: *hasResult = true; *hasResultType = true; break; + case OpUDotAccSat: *hasResult = true; *hasResultType = true; break; + case OpSUDotAccSat: *hasResult = true; *hasResultType = true; break; case OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break; case OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break; case OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break; @@ -1995,12 +2279,16 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) { case OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break; case OpReadClockKHR: *hasResult = true; *hasResultType = true; break; case OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break; + case OpEmitMeshTasksEXT: *hasResult = false; *hasResultType = false; break; + case OpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break; case OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break; case OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break; case OpReportIntersectionNV: *hasResult = true; *hasResultType = true; break; case OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break; case OpTerminateRayNV: *hasResult = false; *hasResultType = false; break; case OpTraceNV: *hasResult = false; *hasResultType = false; break; + case OpTraceMotionNV: *hasResult = false; *hasResultType = false; break; + case OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break; case OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break; case OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break; case OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break; @@ -2010,8 +2298,15 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) { case OpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break; case OpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break; case OpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break; - case OpDemoteToHelperInvocationEXT: *hasResult = false; *hasResultType = false; break; + case OpDemoteToHelperInvocation: *hasResult = false; *hasResultType = false; break; case OpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break; + case OpConvertUToImageNV: *hasResult = true; *hasResultType = true; break; + case OpConvertUToSamplerNV: *hasResult = true; *hasResultType = true; break; + case OpConvertImageToUNV: *hasResult = true; *hasResultType = true; break; + case OpConvertSamplerToUNV: *hasResult = true; *hasResultType = true; break; + case OpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break; + case OpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break; + case OpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break; case OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break; @@ -2036,8 +2331,15 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) { case OpUSubSatINTEL: *hasResult = true; *hasResultType = true; break; case OpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break; case OpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break; - case OpFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break; + case OpConstantFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break; case OpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break; + case OpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break; + case OpAsmINTEL: *hasResult = true; *hasResultType = true; break; + case OpAsmCallINTEL: *hasResult = true; *hasResultType = true; break; + case OpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break; + case OpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break; + case OpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break; + case OpExpectKHR: *hasResult = true; *hasResultType = true; break; case OpDecorateString: *hasResult = false; *hasResultType = false; break; case OpMemberDecorateString: *hasResult = false; *hasResultType = false; break; case OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break; @@ -2158,7 +2460,67 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) { case OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break; case OpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break; + case OpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break; + case OpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break; + case OpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break; + case OpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break; + case OpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break; case OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break; + case OpAliasDomainDeclINTEL: *hasResult = true; *hasResultType = false; break; + case OpAliasScopeDeclINTEL: *hasResult = true; *hasResultType = false; break; + case OpAliasScopeListDeclINTEL: *hasResult = true; *hasResultType = false; break; + case OpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break; + case OpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break; + case OpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break; + case OpFixedSinINTEL: *hasResult = true; *hasResultType = true; break; + case OpFixedCosINTEL: *hasResult = true; *hasResultType = true; break; + case OpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break; + case OpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break; + case OpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break; + case OpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break; + case OpFixedLogINTEL: *hasResult = true; *hasResultType = true; break; + case OpFixedExpINTEL: *hasResult = true; *hasResultType = true; break; + case OpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break; + case OpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break; case OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break; case OpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break; case OpFPGARegINTEL: *hasResult = true; *hasResultType = true; break; @@ -2180,6 +2542,20 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) { case OpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break; case OpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break; case OpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break; + case OpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break; + case OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break; + case OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break; + case OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break; + case OpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break; + case OpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break; + case OpGroupIMulKHR: *hasResult = true; *hasResultType = true; break; + case OpGroupFMulKHR: *hasResult = true; *hasResultType = true; break; + case OpGroupBitwiseAndKHR: *hasResult = true; *hasResultType = true; break; + case OpGroupBitwiseOrKHR: *hasResult = true; *hasResultType = true; break; + case OpGroupBitwiseXorKHR: *hasResult = true; *hasResultType = true; break; + case OpGroupLogicalAndKHR: *hasResult = true; *hasResultType = true; break; + case OpGroupLogicalOrKHR: *hasResult = true; *hasResultType = true; break; + case OpGroupLogicalXorKHR: *hasResult = true; *hasResultType = true; break; } } #endif /* SPV_ENABLE_UTILITY_CODE */ diff --git a/third_party/spirv-cross/spirv_cfg.cpp b/third_party/spirv-cross/spirv_cfg.cpp index 0a66d60bd2..9329947981 100644 --- a/third_party/spirv-cross/spirv_cfg.cpp +++ b/third_party/spirv-cross/spirv_cfg.cpp @@ -1,5 +1,6 @@ /* * Copyright 2016-2021 Arm Limited + * SPDX-License-Identifier: Apache-2.0 OR MIT * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +19,6 @@ * At your option, you may choose to accept this material under either: * 1. The Apache License, Version 2.0, found at , or * 2. The MIT License, found at . - * SPDX-License-Identifier: Apache-2.0 OR MIT. */ #include "spirv_cfg.hpp" @@ -135,7 +135,9 @@ bool CFG::post_order_visit(uint32_t block_id) break; case SPIRBlock::MultiSelect: - for (auto &target : block.cases) + { + const auto &cases = compiler.get_case_list(block); + for (const auto &target : cases) { if (post_order_visit(target.block)) add_branch(block_id, target.block); @@ -143,7 +145,7 @@ bool CFG::post_order_visit(uint32_t block_id) if (block.default_block && post_order_visit(block.default_block)) add_branch(block_id, block.default_block); break; - + } default: break; } @@ -304,15 +306,36 @@ bool CFG::node_terminates_control_flow_in_sub_graph(BlockID from, BlockID to) co bool true_path_ignore = false; bool false_path_ignore = false; - if (ignore_block_id && dom.terminator == SPIRBlock::Select) + + bool merges_to_nothing = dom.merge == SPIRBlock::MergeNone || + (dom.merge == SPIRBlock::MergeSelection && dom.next_block && + compiler.get(dom.next_block).terminator == SPIRBlock::Unreachable) || + (dom.merge == SPIRBlock::MergeLoop && dom.merge_block && + compiler.get(dom.merge_block).terminator == SPIRBlock::Unreachable); + + if (dom.self == from || merges_to_nothing) { - auto &true_block = compiler.get(dom.true_block); - auto &false_block = compiler.get(dom.false_block); - auto &ignore_block = compiler.get(ignore_block_id); - true_path_ignore = compiler.execution_is_branchless(true_block, ignore_block); - false_path_ignore = compiler.execution_is_branchless(false_block, ignore_block); + // We can only ignore inner branchy paths if there is no merge, + // i.e. no code is generated afterwards. E.g. this allows us to elide continue: + // for (;;) { if (cond) { continue; } else { break; } }. + // Codegen here in SPIR-V will be something like either no merge if one path directly breaks, or + // we merge to Unreachable. + if (ignore_block_id && dom.terminator == SPIRBlock::Select) + { + auto &true_block = compiler.get(dom.true_block); + auto &false_block = compiler.get(dom.false_block); + auto &ignore_block = compiler.get(ignore_block_id); + true_path_ignore = compiler.execution_is_branchless(true_block, ignore_block); + false_path_ignore = compiler.execution_is_branchless(false_block, ignore_block); + } } + // Cases where we allow traversal. This serves as a proxy for post-dominance in a loop body. + // TODO: Might want to do full post-dominance analysis, but it's a lot of churn for something like this ... + // - We're the merge block of a selection construct. Jump to header. + // - We're the merge block of a loop. Jump to header. + // - Direct branch. Trivial. + // - Allow cases inside a branch if the header cannot merge execution before loop exit. if ((dom.merge == SPIRBlock::MergeSelection && dom.next_block == to) || (dom.merge == SPIRBlock::MergeLoop && dom.merge_block == to) || (dom.terminator == SPIRBlock::Direct && dom.next_block == to) || @@ -385,7 +408,9 @@ void DominatorBuilder::lift_continue_block_dominator() break; case SPIRBlock::MultiSelect: - for (auto &target : block.cases) + { + auto &cases = cfg.get_compiler().get_case_list(block); + for (auto &target : cases) { if (cfg.get_visit_order(target.block) > post_order) back_edge_dominator = true; @@ -393,6 +418,7 @@ void DominatorBuilder::lift_continue_block_dominator() if (block.default_block && cfg.get_visit_order(block.default_block) > post_order) back_edge_dominator = true; break; + } default: break; diff --git a/third_party/spirv-cross/spirv_cfg.hpp b/third_party/spirv-cross/spirv_cfg.hpp index 041526d65f..1d85fe0a97 100644 --- a/third_party/spirv-cross/spirv_cfg.hpp +++ b/third_party/spirv-cross/spirv_cfg.hpp @@ -1,5 +1,6 @@ /* * Copyright 2016-2021 Arm Limited + * SPDX-License-Identifier: Apache-2.0 OR MIT * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +19,6 @@ * At your option, you may choose to accept this material under either: * 1. The Apache License, Version 2.0, found at , or * 2. The MIT License, found at . - * SPDX-License-Identifier: Apache-2.0 OR MIT. */ #ifndef SPIRV_CROSS_CFG_HPP @@ -59,6 +59,11 @@ public: return 0; } + bool is_reachable(uint32_t block) const + { + return visit_order.count(block) != 0; + } + uint32_t get_visit_order(uint32_t block) const { auto itr = visit_order.find(block); diff --git a/third_party/spirv-cross/spirv_common.hpp b/third_party/spirv-cross/spirv_common.hpp index 909543a240..4d86e9b727 100644 --- a/third_party/spirv-cross/spirv_common.hpp +++ b/third_party/spirv-cross/spirv_common.hpp @@ -1,5 +1,6 @@ /* * Copyright 2015-2021 Arm Limited + * SPDX-License-Identifier: Apache-2.0 OR MIT * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,13 +19,16 @@ * At your option, you may choose to accept this material under either: * 1. The Apache License, Version 2.0, found at , or * 2. The MIT License, found at . - * SPDX-License-Identifier: Apache-2.0 OR MIT. */ #ifndef SPIRV_CROSS_COMMON_HPP #define SPIRV_CROSS_COMMON_HPP +#ifndef SPV_ENABLE_UTILITY_CODE +#define SPV_ENABLE_UTILITY_CODE +#endif #include "spirv.hpp" + #include "spirv_cross_containers.hpp" #include "spirv_cross_error_handling.hpp" #include @@ -211,6 +215,28 @@ inline std::string convert_to_string(const T &t) return std::to_string(t); } +static inline std::string convert_to_string(int32_t value) +{ + // INT_MIN is ... special on some backends. If we use a decimal literal, and negate it, we + // could accidentally promote the literal to long first, then negate. + // To workaround it, emit int(0x80000000) instead. + if (value == std::numeric_limits::min()) + return "int(0x80000000)"; + else + return std::to_string(value); +} + +static inline std::string convert_to_string(int64_t value, const std::string &int64_type, bool long_long_literal_suffix) +{ + // INT64_MIN is ... special on some backends. + // If we use a decimal literal, and negate it, we might overflow the representable numbers. + // To workaround it, emit int(0x80000000) instead. + if (value == std::numeric_limits::min()) + return join(int64_type, "(0x8000000000000000u", (long_long_literal_suffix ? "ll" : "l"), ")"); + else + return std::to_string(value) + (long_long_literal_suffix ? "ll" : "l"); +} + // Allow implementations to set a convenient standard precision #ifndef SPIRV_CROSS_FLT_FMT #define SPIRV_CROSS_FLT_FMT "%.32g" @@ -438,6 +464,11 @@ struct IVariant virtual ~IVariant() = default; virtual IVariant *clone(ObjectPoolBase *pool) = 0; ID self = 0; + +protected: + IVariant() = default; + IVariant(const IVariant&) = default; + IVariant &operator=(const IVariant&) = default; }; #define SPIRV_CROSS_DECLARE_CLONE(T) \ @@ -632,7 +663,10 @@ struct SPIRExtension : IVariant SPV_AMD_shader_ballot, SPV_AMD_shader_explicit_vertex_parameter, SPV_AMD_shader_trinary_minmax, - SPV_AMD_gcn_shader + SPV_AMD_gcn_shader, + NonSemanticDebugPrintf, + NonSemanticShaderDebugInfo, + NonSemanticGeneric }; explicit SPIRExtension(Extension ext_) @@ -666,10 +700,12 @@ struct SPIREntryPoint struct WorkgroupSize { uint32_t x = 0, y = 0, z = 0; + uint32_t id_x = 0, id_y = 0, id_z = 0; uint32_t constant = 0; // Workgroup size can be expressed as a constant/spec-constant instead. } workgroup_size; uint32_t invocations = 0; uint32_t output_vertices = 0; + uint32_t output_primitives = 0; spv::ExecutionModel model = spv::ExecutionModelMax; bool geometry_passthrough = false; }; @@ -683,7 +719,7 @@ struct SPIRExpression : IVariant // Only created by the backend target to avoid creating tons of temporaries. SPIRExpression(std::string expr, TypeID expression_type_, bool immutable_) - : expression(move(expr)) + : expression(std::move(expr)) , expression_type(expression_type_) , immutable(immutable_) { @@ -764,7 +800,8 @@ struct SPIRBlock : IVariant Unreachable, // Noop Kill, // Discard IgnoreIntersection, // Ray Tracing - TerminateRay // Ray Tracing + TerminateRay, // Ray Tracing + EmitMeshTasks // Mesh shaders }; enum Merge @@ -826,6 +863,13 @@ struct SPIRBlock : IVariant BlockID false_block = 0; BlockID default_block = 0; + // If terminator is EmitMeshTasksEXT. + struct + { + ID groups[3]; + ID payload; + } mesh = {}; + SmallVector ops; struct Phi @@ -848,10 +892,11 @@ struct SPIRBlock : IVariant struct Case { - uint32_t value; + uint64_t value; BlockID block; }; - SmallVector cases; + SmallVector cases_32bit; + SmallVector cases_64bit; // If we have tried to optimize code for this block but failed, // keep track of this. @@ -1064,7 +1109,6 @@ struct SPIRVariable : IVariant // Temporaries which can remain forwarded as long as this variable is not modified. SmallVector dependees; - bool forwardable = true; bool deferred_declaration = false; bool phi_variable = false; @@ -1393,7 +1437,7 @@ public: ~Variant() { if (holder) - group->pools[type]->free_opaque(holder); + group->pools[type]->deallocate_opaque(holder); } // Marking custom move constructor as noexcept is important. @@ -1412,7 +1456,7 @@ public: if (this != &other) { if (holder) - group->pools[type]->free_opaque(holder); + group->pools[type]->deallocate_opaque(holder); holder = other.holder; group = other.group; type = other.type; @@ -1436,7 +1480,7 @@ public: if (this != &other) { if (holder) - group->pools[type]->free_opaque(holder); + group->pools[type]->deallocate_opaque(holder); if (other.holder) holder = other.holder->clone(group->pools[other.type].get()); @@ -1452,13 +1496,13 @@ public: void set(IVariant *val, Types new_type) { if (holder) - group->pools[type]->free_opaque(holder); + group->pools[type]->deallocate_opaque(holder); holder = nullptr; if (!allow_type_rewrite && type != TypeNone && type != new_type) { if (val) - group->pools[new_type]->free_opaque(val); + group->pools[new_type]->deallocate_opaque(val); SPIRV_CROSS_THROW("Overwriting a variant with new type."); } @@ -1513,7 +1557,7 @@ public: void reset() { if (holder) - group->pools[type]->free_opaque(holder); + group->pools[type]->deallocate_opaque(holder); holder = nullptr; type = TypeNone; } @@ -1556,6 +1600,7 @@ struct AccessChainMeta bool storage_is_packed = false; bool storage_is_invariant = false; bool flattened_struct = false; + bool relaxed_precision = false; }; enum ExtendedDecorations @@ -1623,6 +1668,12 @@ enum ExtendedDecorations // results of interpolation can. SPIRVCrossDecorationInterpolantComponentExpr, + // Apply to any struct type that is used in the Workgroup storage class. + // This causes matrices in MSL prior to Metal 3.0 to be emitted using a special + // class that is convertible to the standard matrix type, to work around the + // lack of constructors in the 'threadgroup' address space. + SPIRVCrossDecorationWorkgroupStruct, + SPIRVCrossDecorationCount }; @@ -1768,6 +1819,33 @@ static inline bool opcode_is_sign_invariant(spv::Op opcode) } } +static inline bool opcode_can_promote_integer_implicitly(spv::Op opcode) +{ + switch (opcode) + { + case spv::OpSNegate: + case spv::OpNot: + case spv::OpBitwiseAnd: + case spv::OpBitwiseOr: + case spv::OpBitwiseXor: + case spv::OpShiftLeftLogical: + case spv::OpShiftRightLogical: + case spv::OpShiftRightArithmetic: + case spv::OpIAdd: + case spv::OpISub: + case spv::OpIMul: + case spv::OpSDiv: + case spv::OpUDiv: + case spv::OpSRem: + case spv::OpUMod: + case spv::OpSMod: + return true; + + default: + return false; + } +} + struct SetBindingPair { uint32_t desc_set; diff --git a/third_party/spirv-cross/spirv_common.hpp.orig b/third_party/spirv-cross/spirv_common.hpp.orig new file mode 100644 index 0000000000..ba420e1dbe --- /dev/null +++ b/third_party/spirv-cross/spirv_common.hpp.orig @@ -0,0 +1,1921 @@ +/* + * Copyright 2015-2021 Arm Limited + * SPDX-License-Identifier: Apache-2.0 OR MIT + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * At your option, you may choose to accept this material under either: + * 1. The Apache License, Version 2.0, found at , or + * 2. The MIT License, found at . + */ + +#ifndef SPIRV_CROSS_COMMON_HPP +#define SPIRV_CROSS_COMMON_HPP + +#ifndef SPV_ENABLE_UTILITY_CODE +#define SPV_ENABLE_UTILITY_CODE +#endif +#include "spirv.hpp" + +#include "spirv_cross_containers.hpp" +#include "spirv_cross_error_handling.hpp" +#include + +// A bit crude, but allows projects which embed SPIRV-Cross statically to +// effectively hide all the symbols from other projects. +// There is a case where we have: +// - Project A links against SPIRV-Cross statically. +// - Project A links against Project B statically. +// - Project B links against SPIRV-Cross statically (might be a different version). +// This leads to a conflict with extremely bizarre results. +// By overriding the namespace in one of the project builds, we can work around this. +// If SPIRV-Cross is embedded in dynamic libraries, +// prefer using -fvisibility=hidden on GCC/Clang instead. +#ifdef SPIRV_CROSS_NAMESPACE_OVERRIDE +#define SPIRV_CROSS_NAMESPACE SPIRV_CROSS_NAMESPACE_OVERRIDE +#else +#define SPIRV_CROSS_NAMESPACE spirv_cross +#endif + +namespace SPIRV_CROSS_NAMESPACE +{ +namespace inner +{ +template +void join_helper(StringStream<> &stream, T &&t) +{ + stream << std::forward(t); +} + +template +void join_helper(StringStream<> &stream, T &&t, Ts &&... ts) +{ + stream << std::forward(t); + join_helper(stream, std::forward(ts)...); +} +} // namespace inner + +class Bitset +{ +public: + Bitset() = default; + explicit inline Bitset(uint64_t lower_) + : lower(lower_) + { + } + + inline bool get(uint32_t bit) const + { + if (bit < 64) + return (lower & (1ull << bit)) != 0; + else + return higher.count(bit) != 0; + } + + inline void set(uint32_t bit) + { + if (bit < 64) + lower |= 1ull << bit; + else + higher.insert(bit); + } + + inline void clear(uint32_t bit) + { + if (bit < 64) + lower &= ~(1ull << bit); + else + higher.erase(bit); + } + + inline uint64_t get_lower() const + { + return lower; + } + + inline void reset() + { + lower = 0; + higher.clear(); + } + + inline void merge_and(const Bitset &other) + { + lower &= other.lower; + std::unordered_set tmp_set; + for (auto &v : higher) + if (other.higher.count(v) != 0) + tmp_set.insert(v); + higher = std::move(tmp_set); + } + + inline void merge_or(const Bitset &other) + { + lower |= other.lower; + for (auto &v : other.higher) + higher.insert(v); + } + + inline bool operator==(const Bitset &other) const + { + if (lower != other.lower) + return false; + + if (higher.size() != other.higher.size()) + return false; + + for (auto &v : higher) + if (other.higher.count(v) == 0) + return false; + + return true; + } + + inline bool operator!=(const Bitset &other) const + { + return !(*this == other); + } + + template + void for_each_bit(const Op &op) const + { + // TODO: Add ctz-based iteration. + for (uint32_t i = 0; i < 64; i++) + { + if (lower & (1ull << i)) + op(i); + } + + if (higher.empty()) + return; + + // Need to enforce an order here for reproducible results, + // but hitting this path should happen extremely rarely, so having this slow path is fine. + SmallVector bits; + bits.reserve(higher.size()); + for (auto &v : higher) + bits.push_back(v); + std::sort(std::begin(bits), std::end(bits)); + + for (auto &v : bits) + op(v); + } + + inline bool empty() const + { + return lower == 0 && higher.empty(); + } + +private: + // The most common bits to set are all lower than 64, + // so optimize for this case. Bits spilling outside 64 go into a slower data structure. + // In almost all cases, higher data structure will not be used. + uint64_t lower = 0; + std::unordered_set higher; +}; + +// Helper template to avoid lots of nasty string temporary munging. +template +std::string join(Ts &&... ts) +{ + StringStream<> stream; + inner::join_helper(stream, std::forward(ts)...); + return stream.str(); +} + +inline std::string merge(const SmallVector &list, const char *between = ", ") +{ + StringStream<> stream; + for (auto &elem : list) + { + stream << elem; + if (&elem != &list.back()) + stream << between; + } + return stream.str(); +} + +// Make sure we don't accidentally call this with float or doubles with SFINAE. +// Have to use the radix-aware overload. +template ::value, int>::type = 0> +inline std::string convert_to_string(const T &t) +{ + return std::to_string(t); +} + +static inline std::string convert_to_string(int32_t value) +{ + // INT_MIN is ... special on some backends. If we use a decimal literal, and negate it, we + // could accidentally promote the literal to long first, then negate. + // To workaround it, emit int(0x80000000) instead. + if (value == std::numeric_limits::min()) + return "int(0x80000000)"; + else + return std::to_string(value); +} + +static inline std::string convert_to_string(int64_t value, const std::string &int64_type, bool long_long_literal_suffix) +{ + // INT64_MIN is ... special on some backends. + // If we use a decimal literal, and negate it, we might overflow the representable numbers. + // To workaround it, emit int(0x80000000) instead. + if (value == std::numeric_limits::min()) + return join(int64_type, "(0x8000000000000000u", (long_long_literal_suffix ? "ll" : "l"), ")"); + else + return std::to_string(value) + (long_long_literal_suffix ? "ll" : "l"); +} + +// Allow implementations to set a convenient standard precision +#ifndef SPIRV_CROSS_FLT_FMT +#define SPIRV_CROSS_FLT_FMT "%.32g" +#endif + +// Disable sprintf and strcat warnings. +// We cannot rely on snprintf and family existing because, ..., MSVC. +#if defined(__clang__) || defined(__GNUC__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#elif defined(_MSC_VER) +#pragma warning(push) +#pragma warning(disable : 4996) +#endif + +static inline void fixup_radix_point(char *str, char radix_point) +{ + // Setting locales is a very risky business in multi-threaded program, + // so just fixup locales instead. We only need to care about the radix point. + if (radix_point != '.') + { + while (*str != '\0') + { + if (*str == radix_point) + *str = '.'; + str++; + } + } +} + +inline std::string convert_to_string(float t, char locale_radix_point) +{ + // std::to_string for floating point values is broken. + // Fallback to something more sane. + char buf[64]; + sprintf(buf, SPIRV_CROSS_FLT_FMT, t); + fixup_radix_point(buf, locale_radix_point); + + // Ensure that the literal is float. + if (!strchr(buf, '.') && !strchr(buf, 'e')) + strcat(buf, ".0"); + return buf; +} + +inline std::string convert_to_string(double t, char locale_radix_point) +{ + // std::to_string for floating point values is broken. + // Fallback to something more sane. + char buf[64]; + sprintf(buf, SPIRV_CROSS_FLT_FMT, t); + fixup_radix_point(buf, locale_radix_point); + + // Ensure that the literal is float. + if (!strchr(buf, '.') && !strchr(buf, 'e')) + strcat(buf, ".0"); + return buf; +} + +template +struct ValueSaver +{ + explicit ValueSaver(T ¤t_) + : current(current_) + , saved(current_) + { + } + + void release() + { + current = saved; + } + + ~ValueSaver() + { + release(); + } + + T ¤t; + T saved; +}; + +#if defined(__clang__) || defined(__GNUC__) +#pragma GCC diagnostic pop +#elif defined(_MSC_VER) +#pragma warning(pop) +#endif + +struct Instruction +{ + uint16_t op = 0; + uint16_t count = 0; + // If offset is 0 (not a valid offset into the instruction stream), + // we have an instruction stream which is embedded in the object. + uint32_t offset = 0; + uint32_t length = 0; + + inline bool is_embedded() const + { + return offset == 0; + } +}; + +struct EmbeddedInstruction : Instruction +{ + SmallVector ops; +}; + +enum Types +{ + TypeNone, + TypeType, + TypeVariable, + TypeConstant, + TypeFunction, + TypeFunctionPrototype, + TypeBlock, + TypeExtension, + TypeExpression, + TypeConstantOp, + TypeCombinedImageSampler, + TypeAccessChain, + TypeUndef, + TypeString, + TypeCount +}; + +template +class TypedID; + +template <> +class TypedID +{ +public: + TypedID() = default; + TypedID(uint32_t id_) + : id(id_) + { + } + + template + TypedID(const TypedID &other) + { + *this = other; + } + + template + TypedID &operator=(const TypedID &other) + { + id = uint32_t(other); + return *this; + } + + // Implicit conversion to u32 is desired here. + // As long as we block implicit conversion between TypedID and TypedID we're good. + operator uint32_t() const + { + return id; + } + + template + operator TypedID() const + { + return TypedID(*this); + } + +private: + uint32_t id = 0; +}; + +template +class TypedID +{ +public: + TypedID() = default; + TypedID(uint32_t id_) + : id(id_) + { + } + + explicit TypedID(const TypedID &other) + : id(uint32_t(other)) + { + } + + operator uint32_t() const + { + return id; + } + +private: + uint32_t id = 0; +}; + +using VariableID = TypedID; +using TypeID = TypedID; +using ConstantID = TypedID; +using FunctionID = TypedID; +using BlockID = TypedID; +using ID = TypedID; + +// Helper for Variant interface. +struct IVariant +{ + virtual ~IVariant() = default; + virtual IVariant *clone(ObjectPoolBase *pool) = 0; + ID self = 0; + +protected: + IVariant() = default; + IVariant(const IVariant&) = default; + IVariant &operator=(const IVariant&) = default; +}; + +#define SPIRV_CROSS_DECLARE_CLONE(T) \ + IVariant *clone(ObjectPoolBase *pool) override \ + { \ + return static_cast *>(pool)->allocate(*this); \ + } + +struct SPIRUndef : IVariant +{ + enum + { + type = TypeUndef + }; + + explicit SPIRUndef(TypeID basetype_) + : basetype(basetype_) + { + } + TypeID basetype; + + SPIRV_CROSS_DECLARE_CLONE(SPIRUndef) +}; + +struct SPIRString : IVariant +{ + enum + { + type = TypeString + }; + + explicit SPIRString(std::string str_) + : str(std::move(str_)) + { + } + + std::string str; + + SPIRV_CROSS_DECLARE_CLONE(SPIRString) +}; + +// This type is only used by backends which need to access the combined image and sampler IDs separately after +// the OpSampledImage opcode. +struct SPIRCombinedImageSampler : IVariant +{ + enum + { + type = TypeCombinedImageSampler + }; + SPIRCombinedImageSampler(TypeID type_, VariableID image_, VariableID sampler_) + : combined_type(type_) + , image(image_) + , sampler(sampler_) + { + } + TypeID combined_type; + VariableID image; + VariableID sampler; + + SPIRV_CROSS_DECLARE_CLONE(SPIRCombinedImageSampler) +}; + +struct SPIRConstantOp : IVariant +{ + enum + { + type = TypeConstantOp + }; + + SPIRConstantOp(TypeID result_type, spv::Op op, const uint32_t *args, uint32_t length) + : opcode(op) + , basetype(result_type) + { + arguments.reserve(length); + for (uint32_t i = 0; i < length; i++) + arguments.push_back(args[i]); + } + + spv::Op opcode; + SmallVector arguments; + TypeID basetype; + + SPIRV_CROSS_DECLARE_CLONE(SPIRConstantOp) +}; + +struct SPIRType : IVariant +{ + enum + { + type = TypeType + }; + + enum BaseType + { + Unknown, + Void, + Boolean, + SByte, + UByte, + Short, + UShort, + Int, + UInt, + Int64, + UInt64, + AtomicCounter, + Half, + Float, + Double, + Struct, + Image, + SampledImage, + Sampler, + AccelerationStructure, + RayQuery, + + // Keep internal types at the end. + ControlPointArray, + Interpolant, + Char + }; + + // Scalar/vector/matrix support. + BaseType basetype = Unknown; + uint32_t width = 0; + uint32_t vecsize = 1; + uint32_t columns = 1; + + // Arrays, support array of arrays by having a vector of array sizes. + SmallVector array; + + // Array elements can be either specialization constants or specialization ops. + // This array determines how to interpret the array size. + // If an element is true, the element is a literal, + // otherwise, it's an expression, which must be resolved on demand. + // The actual size is not really known until runtime. + SmallVector array_size_literal; + + // Pointers + // Keep track of how many pointer layers we have. + uint32_t pointer_depth = 0; + bool pointer = false; + bool forward_pointer = false; + + spv::StorageClass storage = spv::StorageClassGeneric; + + SmallVector member_types; + + // If member order has been rewritten to handle certain scenarios with Offset, + // allow codegen to rewrite the index. + SmallVector member_type_index_redirection; + + struct ImageType + { + TypeID type; + spv::Dim dim; + bool depth; + bool arrayed; + bool ms; + uint32_t sampled; + spv::ImageFormat format; + spv::AccessQualifier access; + } image; + + // Structs can be declared multiple times if they are used as part of interface blocks. + // We want to detect this so that we only emit the struct definition once. + // Since we cannot rely on OpName to be equal, we need to figure out aliases. + TypeID type_alias = 0; + + // Denotes the type which this type is based on. + // Allows the backend to traverse how a complex type is built up during access chains. + TypeID parent_type = 0; + + // Used in backends to avoid emitting members with conflicting names. + std::unordered_set member_name_cache; + + SPIRV_CROSS_DECLARE_CLONE(SPIRType) +}; + +struct SPIRExtension : IVariant +{ + enum + { + type = TypeExtension + }; + + enum Extension + { + Unsupported, + GLSL, + SPV_debug_info, + SPV_AMD_shader_ballot, + SPV_AMD_shader_explicit_vertex_parameter, + SPV_AMD_shader_trinary_minmax, + SPV_AMD_gcn_shader, + NonSemanticDebugPrintf, + NonSemanticShaderDebugInfo, + NonSemanticGeneric + }; + + explicit SPIRExtension(Extension ext_) + : ext(ext_) + { + } + + Extension ext; + SPIRV_CROSS_DECLARE_CLONE(SPIRExtension) +}; + +// SPIREntryPoint is not a variant since its IDs are used to decorate OpFunction, +// so in order to avoid conflicts, we can't stick them in the ids array. +struct SPIREntryPoint +{ + SPIREntryPoint(FunctionID self_, spv::ExecutionModel execution_model, const std::string &entry_name) + : self(self_) + , name(entry_name) + , orig_name(entry_name) + , model(execution_model) + { + } + SPIREntryPoint() = default; + + FunctionID self = 0; + std::string name; + std::string orig_name; + SmallVector interface_variables; + + Bitset flags; + struct WorkgroupSize + { + uint32_t x = 0, y = 0, z = 0; + uint32_t id_x = 0, id_y = 0, id_z = 0; + uint32_t constant = 0; // Workgroup size can be expressed as a constant/spec-constant instead. + } workgroup_size; + uint32_t invocations = 0; + uint32_t output_vertices = 0; + uint32_t output_primitives = 0; + spv::ExecutionModel model = spv::ExecutionModelMax; + bool geometry_passthrough = false; +}; + +struct SPIRExpression : IVariant +{ + enum + { + type = TypeExpression + }; + + // Only created by the backend target to avoid creating tons of temporaries. + SPIRExpression(std::string expr, TypeID expression_type_, bool immutable_) + : expression(std::move(expr)) + , expression_type(expression_type_) + , immutable(immutable_) + { + } + + // If non-zero, prepend expression with to_expression(base_expression). + // Used in amortizing multiple calls to to_expression() + // where in certain cases that would quickly force a temporary when not needed. + ID base_expression = 0; + + std::string expression; + TypeID expression_type = 0; + + // If this expression is a forwarded load, + // allow us to reference the original variable. + ID loaded_from = 0; + + // If this expression will never change, we can avoid lots of temporaries + // in high level source. + // An expression being immutable can be speculative, + // it is assumed that this is true almost always. + bool immutable = false; + + // Before use, this expression must be transposed. + // This is needed for targets which don't support row_major layouts. + bool need_transpose = false; + + // Whether or not this is an access chain expression. + bool access_chain = false; + + // A list of expressions which this expression depends on. + SmallVector expression_dependencies; + + // By reading this expression, we implicitly read these expressions as well. + // Used by access chain Store and Load since we read multiple expressions in this case. + SmallVector implied_read_expressions; + + // The expression was emitted at a certain scope. Lets us track when an expression read means multiple reads. + uint32_t emitted_loop_level = 0; + + SPIRV_CROSS_DECLARE_CLONE(SPIRExpression) +}; + +struct SPIRFunctionPrototype : IVariant +{ + enum + { + type = TypeFunctionPrototype + }; + + explicit SPIRFunctionPrototype(TypeID return_type_) + : return_type(return_type_) + { + } + + TypeID return_type; + SmallVector parameter_types; + + SPIRV_CROSS_DECLARE_CLONE(SPIRFunctionPrototype) +}; + +struct SPIRBlock : IVariant +{ + enum + { + type = TypeBlock + }; + + enum Terminator + { + Unknown, + Direct, // Emit next block directly without a particular condition. + + Select, // Block ends with an if/else block. + MultiSelect, // Block ends with switch statement. + + Return, // Block ends with return. + Unreachable, // Noop + Kill, // Discard + IgnoreIntersection, // Ray Tracing + TerminateRay, // Ray Tracing + EmitMeshTasks // Mesh shaders + }; + + enum Merge + { + MergeNone, + MergeLoop, + MergeSelection + }; + + enum Hints + { + HintNone, + HintUnroll, + HintDontUnroll, + HintFlatten, + HintDontFlatten + }; + + enum Method + { + MergeToSelectForLoop, + MergeToDirectForLoop, + MergeToSelectContinueForLoop + }; + + enum ContinueBlockType + { + ContinueNone, + + // Continue block is branchless and has at least one instruction. + ForLoop, + + // Noop continue block. + WhileLoop, + + // Continue block is conditional. + DoWhileLoop, + + // Highly unlikely that anything will use this, + // since it is really awkward/impossible to express in GLSL. + ComplexLoop + }; + + enum : uint32_t + { + NoDominator = 0xffffffffu + }; + + Terminator terminator = Unknown; + Merge merge = MergeNone; + Hints hint = HintNone; + BlockID next_block = 0; + BlockID merge_block = 0; + BlockID continue_block = 0; + + ID return_value = 0; // If 0, return nothing (void). + ID condition = 0; + BlockID true_block = 0; + BlockID false_block = 0; + BlockID default_block = 0; + + // If terminator is EmitMeshTasksEXT. + struct + { + ID groups[3]; + ID payload; + } mesh = {}; + + SmallVector ops; + + struct Phi + { + ID local_variable; // flush local variable ... + BlockID parent; // If we're in from_block and want to branch into this block ... + VariableID function_variable; // to this function-global "phi" variable first. + }; + + // Before entering this block flush out local variables to magical "phi" variables. + SmallVector phi_variables; + + // Declare these temporaries before beginning the block. + // Used for handling complex continue blocks which have side effects. + SmallVector> declare_temporary; + + // Declare these temporaries, but only conditionally if this block turns out to be + // a complex loop header. + SmallVector> potential_declare_temporary; + + struct Case + { + uint64_t value; + BlockID block; + }; + SmallVector cases_32bit; + SmallVector cases_64bit; + + // If we have tried to optimize code for this block but failed, + // keep track of this. + bool disable_block_optimization = false; + + // If the continue block is complex, fallback to "dumb" for loops. + bool complex_continue = false; + + // Do we need a ladder variable to defer breaking out of a loop construct after a switch block? + bool need_ladder_break = false; + + // If marked, we have explicitly handled Phi from this block, so skip any flushes related to that on a branch. + // Used to handle an edge case with switch and case-label fallthrough where fall-through writes to Phi. + BlockID ignore_phi_from_block = 0; + + // The dominating block which this block might be within. + // Used in continue; blocks to determine if we really need to write continue. + BlockID loop_dominator = 0; + + // All access to these variables are dominated by this block, + // so before branching anywhere we need to make sure that we declare these variables. + SmallVector dominated_variables; + + // These are variables which should be declared in a for loop header, if we + // fail to use a classic for-loop, + // we remove these variables, and fall back to regular variables outside the loop. + SmallVector loop_variables; + + // Some expressions are control-flow dependent, i.e. any instruction which relies on derivatives or + // sub-group-like operations. + // Make sure that we only use these expressions in the original block. + SmallVector invalidate_expressions; + + SPIRV_CROSS_DECLARE_CLONE(SPIRBlock) +}; + +struct SPIRFunction : IVariant +{ + enum + { + type = TypeFunction + }; + + SPIRFunction(TypeID return_type_, TypeID function_type_) + : return_type(return_type_) + , function_type(function_type_) + { + } + + struct Parameter + { + TypeID type; + ID id; + uint32_t read_count; + uint32_t write_count; + + // Set to true if this parameter aliases a global variable, + // used mostly in Metal where global variables + // have to be passed down to functions as regular arguments. + // However, for this kind of variable, we should not care about + // read and write counts as access to the function arguments + // is not local to the function in question. + bool alias_global_variable; + }; + + // When calling a function, and we're remapping separate image samplers, + // resolve these arguments into combined image samplers and pass them + // as additional arguments in this order. + // It gets more complicated as functions can pull in their own globals + // and combine them with parameters, + // so we need to distinguish if something is local parameter index + // or a global ID. + struct CombinedImageSamplerParameter + { + VariableID id; + VariableID image_id; + VariableID sampler_id; + bool global_image; + bool global_sampler; + bool depth; + }; + + TypeID return_type; + TypeID function_type; + SmallVector arguments; + + // Can be used by backends to add magic arguments. + // Currently used by combined image/sampler implementation. + + SmallVector shadow_arguments; + SmallVector local_variables; + BlockID entry_block = 0; + SmallVector blocks; + SmallVector combined_parameters; + + struct EntryLine + { + uint32_t file_id = 0; + uint32_t line_literal = 0; + }; + EntryLine entry_line; + + void add_local_variable(VariableID id) + { + local_variables.push_back(id); + } + + void add_parameter(TypeID parameter_type, ID id, bool alias_global_variable = false) + { + // Arguments are read-only until proven otherwise. + arguments.push_back({ parameter_type, id, 0u, 0u, alias_global_variable }); + } + + // Hooks to be run when the function returns. + // Mostly used for lowering internal data structures onto flattened structures. + // Need to defer this, because they might rely on things which change during compilation. + // Intentionally not a small vector, this one is rare, and std::function can be large. + Vector> fixup_hooks_out; + + // Hooks to be run when the function begins. + // Mostly used for populating internal data structures from flattened structures. + // Need to defer this, because they might rely on things which change during compilation. + // Intentionally not a small vector, this one is rare, and std::function can be large. + Vector> fixup_hooks_in; + + // On function entry, make sure to copy a constant array into thread addr space to work around + // the case where we are passing a constant array by value to a function on backends which do not + // consider arrays value types. + SmallVector constant_arrays_needed_on_stack; + + bool active = false; + bool flush_undeclared = true; + bool do_combined_parameters = true; + + SPIRV_CROSS_DECLARE_CLONE(SPIRFunction) +}; + +struct SPIRAccessChain : IVariant +{ + enum + { + type = TypeAccessChain + }; + + SPIRAccessChain(TypeID basetype_, spv::StorageClass storage_, std::string base_, std::string dynamic_index_, + int32_t static_index_) + : basetype(basetype_) + , storage(storage_) + , base(std::move(base_)) + , dynamic_index(std::move(dynamic_index_)) + , static_index(static_index_) + { + } + + // The access chain represents an offset into a buffer. + // Some backends need more complicated handling of access chains to be able to use buffers, like HLSL + // which has no usable buffer type ala GLSL SSBOs. + // StructuredBuffer is too limited, so our only option is to deal with ByteAddressBuffer which works with raw addresses. + + TypeID basetype; + spv::StorageClass storage; + std::string base; + std::string dynamic_index; + int32_t static_index; + + VariableID loaded_from = 0; + uint32_t matrix_stride = 0; + uint32_t array_stride = 0; + bool row_major_matrix = false; + bool immutable = false; + + // By reading this expression, we implicitly read these expressions as well. + // Used by access chain Store and Load since we read multiple expressions in this case. + SmallVector implied_read_expressions; + + SPIRV_CROSS_DECLARE_CLONE(SPIRAccessChain) +}; + +struct SPIRVariable : IVariant +{ + enum + { + type = TypeVariable + }; + + SPIRVariable() = default; + SPIRVariable(TypeID basetype_, spv::StorageClass storage_, ID initializer_ = 0, VariableID basevariable_ = 0) + : basetype(basetype_) + , storage(storage_) + , initializer(initializer_) + , basevariable(basevariable_) + { + } + + TypeID basetype = 0; + spv::StorageClass storage = spv::StorageClassGeneric; + uint32_t decoration = 0; + ID initializer = 0; + VariableID basevariable = 0; + + SmallVector dereference_chain; + bool compat_builtin = false; + + // If a variable is shadowed, we only statically assign to it + // and never actually emit a statement for it. + // When we read the variable as an expression, just forward + // shadowed_id as the expression. + bool statically_assigned = false; + ID static_expression = 0; + + // Temporaries which can remain forwarded as long as this variable is not modified. + SmallVector dependees; + + bool deferred_declaration = false; + bool phi_variable = false; + + // Used to deal with Phi variable flushes. See flush_phi(). + bool allocate_temporary_copy = false; + + bool remapped_variable = false; + uint32_t remapped_components = 0; + + // The block which dominates all access to this variable. + BlockID dominator = 0; + // If true, this variable is a loop variable, when accessing the variable + // outside a loop, + // we should statically forward it. + bool loop_variable = false; + // Set to true while we're inside the for loop. + bool loop_variable_enable = false; + + SPIRFunction::Parameter *parameter = nullptr; + + SPIRV_CROSS_DECLARE_CLONE(SPIRVariable) +}; + +struct SPIRConstant : IVariant +{ + enum + { + type = TypeConstant + }; + + union Constant + { + uint32_t u32; + int32_t i32; + float f32; + + uint64_t u64; + int64_t i64; + double f64; + }; + + struct ConstantVector + { + Constant r[4]; + // If != 0, this element is a specialization constant, and we should keep track of it as such. + ID id[4]; + uint32_t vecsize = 1; + + ConstantVector() + { + memset(r, 0, sizeof(r)); + } + }; + + struct ConstantMatrix + { + ConstantVector c[4]; + // If != 0, this column is a specialization constant, and we should keep track of it as such. + ID id[4]; + uint32_t columns = 1; + }; + + static inline float f16_to_f32(uint16_t u16_value) + { + // Based on the GLM implementation. + int s = (u16_value >> 15) & 0x1; + int e = (u16_value >> 10) & 0x1f; + int m = (u16_value >> 0) & 0x3ff; + + union + { + float f32; + uint32_t u32; + } u; + + if (e == 0) + { + if (m == 0) + { + u.u32 = uint32_t(s) << 31; + return u.f32; + } + else + { + while ((m & 0x400) == 0) + { + m <<= 1; + e--; + } + + e++; + m &= ~0x400; + } + } + else if (e == 31) + { + if (m == 0) + { + u.u32 = (uint32_t(s) << 31) | 0x7f800000u; + return u.f32; + } + else + { + u.u32 = (uint32_t(s) << 31) | 0x7f800000u | (m << 13); + return u.f32; + } + } + + e += 127 - 15; + m <<= 13; + u.u32 = (uint32_t(s) << 31) | (e << 23) | m; + return u.f32; + } + + inline uint32_t specialization_constant_id(uint32_t col, uint32_t row) const + { + return m.c[col].id[row]; + } + + inline uint32_t specialization_constant_id(uint32_t col) const + { + return m.id[col]; + } + + inline uint32_t scalar(uint32_t col = 0, uint32_t row = 0) const + { + return m.c[col].r[row].u32; + } + + inline int16_t scalar_i16(uint32_t col = 0, uint32_t row = 0) const + { + return int16_t(m.c[col].r[row].u32 & 0xffffu); + } + + inline uint16_t scalar_u16(uint32_t col = 0, uint32_t row = 0) const + { + return uint16_t(m.c[col].r[row].u32 & 0xffffu); + } + + inline int8_t scalar_i8(uint32_t col = 0, uint32_t row = 0) const + { + return int8_t(m.c[col].r[row].u32 & 0xffu); + } + + inline uint8_t scalar_u8(uint32_t col = 0, uint32_t row = 0) const + { + return uint8_t(m.c[col].r[row].u32 & 0xffu); + } + + inline float scalar_f16(uint32_t col = 0, uint32_t row = 0) const + { + return f16_to_f32(scalar_u16(col, row)); + } + + inline float scalar_f32(uint32_t col = 0, uint32_t row = 0) const + { + return m.c[col].r[row].f32; + } + + inline int32_t scalar_i32(uint32_t col = 0, uint32_t row = 0) const + { + return m.c[col].r[row].i32; + } + + inline double scalar_f64(uint32_t col = 0, uint32_t row = 0) const + { + return m.c[col].r[row].f64; + } + + inline int64_t scalar_i64(uint32_t col = 0, uint32_t row = 0) const + { + return m.c[col].r[row].i64; + } + + inline uint64_t scalar_u64(uint32_t col = 0, uint32_t row = 0) const + { + return m.c[col].r[row].u64; + } + + inline const ConstantVector &vector() const + { + return m.c[0]; + } + + inline uint32_t vector_size() const + { + return m.c[0].vecsize; + } + + inline uint32_t columns() const + { + return m.columns; + } + + inline void make_null(const SPIRType &constant_type_) + { + m = {}; + m.columns = constant_type_.columns; + for (auto &c : m.c) + c.vecsize = constant_type_.vecsize; + } + + inline bool constant_is_null() const + { + if (specialization) + return false; + if (!subconstants.empty()) + return false; + + for (uint32_t col = 0; col < columns(); col++) + for (uint32_t row = 0; row < vector_size(); row++) + if (scalar_u64(col, row) != 0) + return false; + + return true; + } + + explicit SPIRConstant(uint32_t constant_type_) + : constant_type(constant_type_) + { + } + + SPIRConstant() = default; + + SPIRConstant(TypeID constant_type_, const uint32_t *elements, uint32_t num_elements, bool specialized) + : constant_type(constant_type_) + , specialization(specialized) + { + subconstants.reserve(num_elements); + for (uint32_t i = 0; i < num_elements; i++) + subconstants.push_back(elements[i]); + specialization = specialized; + } + + // Construct scalar (32-bit). + SPIRConstant(TypeID constant_type_, uint32_t v0, bool specialized) + : constant_type(constant_type_) + , specialization(specialized) + { + m.c[0].r[0].u32 = v0; + m.c[0].vecsize = 1; + m.columns = 1; + } + + // Construct scalar (64-bit). + SPIRConstant(TypeID constant_type_, uint64_t v0, bool specialized) + : constant_type(constant_type_) + , specialization(specialized) + { + m.c[0].r[0].u64 = v0; + m.c[0].vecsize = 1; + m.columns = 1; + } + + // Construct vectors and matrices. + SPIRConstant(TypeID constant_type_, const SPIRConstant *const *vector_elements, uint32_t num_elements, + bool specialized) + : constant_type(constant_type_) + , specialization(specialized) + { + bool matrix = vector_elements[0]->m.c[0].vecsize > 1; + + if (matrix) + { + m.columns = num_elements; + + for (uint32_t i = 0; i < num_elements; i++) + { + m.c[i] = vector_elements[i]->m.c[0]; + if (vector_elements[i]->specialization) + m.id[i] = vector_elements[i]->self; + } + } + else + { + m.c[0].vecsize = num_elements; + m.columns = 1; + + for (uint32_t i = 0; i < num_elements; i++) + { + m.c[0].r[i] = vector_elements[i]->m.c[0].r[0]; + if (vector_elements[i]->specialization) + m.c[0].id[i] = vector_elements[i]->self; + } + } + } + + TypeID constant_type = 0; + ConstantMatrix m; + + // If this constant is a specialization constant (i.e. created with OpSpecConstant*). + bool specialization = false; + // If this constant is used as an array length which creates specialization restrictions on some backends. + bool is_used_as_array_length = false; + + // If true, this is a LUT, and should always be declared in the outer scope. + bool is_used_as_lut = false; + + // For composites which are constant arrays, etc. + SmallVector subconstants; + + // Non-Vulkan GLSL, HLSL and sometimes MSL emits defines for each specialization constant, + // and uses them to initialize the constant. This allows the user + // to still be able to specialize the value by supplying corresponding + // preprocessor directives before compiling the shader. + std::string specialization_constant_macro_name; + + SPIRV_CROSS_DECLARE_CLONE(SPIRConstant) +}; + +// Variants have a very specific allocation scheme. +struct ObjectPoolGroup +{ + std::unique_ptr pools[TypeCount]; +}; + +class Variant +{ +public: + explicit Variant(ObjectPoolGroup *group_) + : group(group_) + { + } + + ~Variant() + { + if (holder) + group->pools[type]->deallocate_opaque(holder); + } + + // Marking custom move constructor as noexcept is important. + Variant(Variant &&other) SPIRV_CROSS_NOEXCEPT + { + *this = std::move(other); + } + + // We cannot copy from other variant without our own pool group. + // Have to explicitly copy. + Variant(const Variant &variant) = delete; + + // Marking custom move constructor as noexcept is important. + Variant &operator=(Variant &&other) SPIRV_CROSS_NOEXCEPT + { + if (this != &other) + { + if (holder) + group->pools[type]->deallocate_opaque(holder); + holder = other.holder; + group = other.group; + type = other.type; + allow_type_rewrite = other.allow_type_rewrite; + + other.holder = nullptr; + other.type = TypeNone; + } + return *this; + } + + // This copy/clone should only be called in the Compiler constructor. + // If this is called inside ::compile(), we invalidate any references we took higher in the stack. + // This should never happen. + Variant &operator=(const Variant &other) + { +//#define SPIRV_CROSS_COPY_CONSTRUCTOR_SANITIZE +#ifdef SPIRV_CROSS_COPY_CONSTRUCTOR_SANITIZE + abort(); +#endif + if (this != &other) + { + if (holder) + group->pools[type]->deallocate_opaque(holder); + + if (other.holder) + holder = other.holder->clone(group->pools[other.type].get()); + else + holder = nullptr; + + type = other.type; + allow_type_rewrite = other.allow_type_rewrite; + } + return *this; + } + + void set(IVariant *val, Types new_type) + { + if (holder) + group->pools[type]->deallocate_opaque(holder); + holder = nullptr; + + if (!allow_type_rewrite && type != TypeNone && type != new_type) + { + if (val) + group->pools[new_type]->deallocate_opaque(val); + SPIRV_CROSS_THROW("Overwriting a variant with new type."); + } + + holder = val; + type = new_type; + allow_type_rewrite = false; + } + + template + T *allocate_and_set(Types new_type, Ts &&... ts) + { + T *val = static_cast &>(*group->pools[new_type]).allocate(std::forward(ts)...); + set(val, new_type); + return val; + } + + template + T &get() + { + if (!holder) + SPIRV_CROSS_THROW("nullptr"); + if (static_cast(T::type) != type) + SPIRV_CROSS_THROW("Bad cast"); + return *static_cast(holder); + } + + template + const T &get() const + { + if (!holder) + SPIRV_CROSS_THROW("nullptr"); + if (static_cast(T::type) != type) + SPIRV_CROSS_THROW("Bad cast"); + return *static_cast(holder); + } + + Types get_type() const + { + return type; + } + + ID get_id() const + { + return holder ? holder->self : ID(0); + } + + bool empty() const + { + return !holder; + } + + void reset() + { + if (holder) + group->pools[type]->deallocate_opaque(holder); + holder = nullptr; + type = TypeNone; + } + + void set_allow_type_rewrite() + { + allow_type_rewrite = true; + } + +private: + ObjectPoolGroup *group = nullptr; + IVariant *holder = nullptr; + Types type = TypeNone; + bool allow_type_rewrite = false; +}; + +template +T &variant_get(Variant &var) +{ + return var.get(); +} + +template +const T &variant_get(const Variant &var) +{ + return var.get(); +} + +template +T &variant_set(Variant &var, P &&... args) +{ + auto *ptr = var.allocate_and_set(static_cast(T::type), std::forward

(args)...); + return *ptr; +} + +struct AccessChainMeta +{ + uint32_t storage_physical_type = 0; + bool need_transpose = false; + bool storage_is_packed = false; + bool storage_is_invariant = false; + bool flattened_struct = false; + bool relaxed_precision = false; +}; + +enum ExtendedDecorations +{ + // Marks if a buffer block is re-packed, i.e. member declaration might be subject to PhysicalTypeID remapping and padding. + SPIRVCrossDecorationBufferBlockRepacked = 0, + + // A type in a buffer block might be declared with a different physical type than the logical type. + // If this is not set, PhysicalTypeID == the SPIR-V type as declared. + SPIRVCrossDecorationPhysicalTypeID, + + // Marks if the physical type is to be declared with tight packing rules, i.e. packed_floatN on MSL and friends. + // If this is set, PhysicalTypeID might also be set. It can be set to same as logical type if all we're doing + // is converting float3 to packed_float3 for example. + // If this is marked on a struct, it means the struct itself must use only Packed types for all its members. + SPIRVCrossDecorationPhysicalTypePacked, + + // The padding in bytes before declaring this struct member. + // If used on a struct type, marks the target size of a struct. + SPIRVCrossDecorationPaddingTarget, + + SPIRVCrossDecorationInterfaceMemberIndex, + SPIRVCrossDecorationInterfaceOrigID, + SPIRVCrossDecorationResourceIndexPrimary, + // Used for decorations like resource indices for samplers when part of combined image samplers. + // A variable might need to hold two resource indices in this case. + SPIRVCrossDecorationResourceIndexSecondary, + // Used for resource indices for multiplanar images when part of combined image samplers. + SPIRVCrossDecorationResourceIndexTertiary, + SPIRVCrossDecorationResourceIndexQuaternary, + + // Marks a buffer block for using explicit offsets (GLSL/HLSL). + SPIRVCrossDecorationExplicitOffset, + + // Apply to a variable in the Input storage class; marks it as holding the base group passed to vkCmdDispatchBase(), + // or the base vertex and instance indices passed to vkCmdDrawIndexed(). + // In MSL, this is used to adjust the WorkgroupId and GlobalInvocationId variables in compute shaders, + // and to hold the BaseVertex and BaseInstance variables in vertex shaders. + SPIRVCrossDecorationBuiltInDispatchBase, + + // Apply to a variable that is a function parameter; marks it as being a "dynamic" + // combined image-sampler. In MSL, this is used when a function parameter might hold + // either a regular combined image-sampler or one that has an attached sampler + // Y'CbCr conversion. + SPIRVCrossDecorationDynamicImageSampler, + + // Apply to a variable in the Input storage class; marks it as holding the size of the stage + // input grid. + // In MSL, this is used to hold the vertex and instance counts in a tessellation pipeline + // vertex shader. + SPIRVCrossDecorationBuiltInStageInputSize, + + // Apply to any access chain of a tessellation I/O variable; stores the type of the sub-object + // that was chained to, as recorded in the input variable itself. This is used in case the pointer + // is itself used as the base of an access chain, to calculate the original type of the sub-object + // chained to, in case a swizzle needs to be applied. This should not happen normally with valid + // SPIR-V, but the MSL backend can change the type of input variables, necessitating the + // addition of swizzles to keep the generated code compiling. + SPIRVCrossDecorationTessIOOriginalInputTypeID, + + // Apply to any access chain of an interface variable used with pull-model interpolation, where the variable is a + // vector but the resulting pointer is a scalar; stores the component index that is to be accessed by the chain. + // This is used when emitting calls to interpolation functions on the chain in MSL: in this case, the component + // must be applied to the result, since pull-model interpolants in MSL cannot be swizzled directly, but the + // results of interpolation can. + SPIRVCrossDecorationInterpolantComponentExpr, + + // Apply to any struct type that is used in the Workgroup storage class. + // This causes matrices in MSL prior to Metal 3.0 to be emitted using a special + // class that is convertible to the standard matrix type, to work around the + // lack of constructors in the 'threadgroup' address space. + SPIRVCrossDecorationWorkgroupStruct, + + SPIRVCrossDecorationCount +}; + +struct Meta +{ + struct Decoration + { + std::string alias; + std::string qualified_alias; + std::string hlsl_semantic; + Bitset decoration_flags; + spv::BuiltIn builtin_type = spv::BuiltInMax; + uint32_t location = 0; + uint32_t component = 0; + uint32_t set = 0; + uint32_t binding = 0; + uint32_t offset = 0; + uint32_t xfb_buffer = 0; + uint32_t xfb_stride = 0; + uint32_t stream = 0; + uint32_t array_stride = 0; + uint32_t matrix_stride = 0; + uint32_t input_attachment = 0; + uint32_t spec_id = 0; + uint32_t index = 0; + spv::FPRoundingMode fp_rounding_mode = spv::FPRoundingModeMax; + bool builtin = false; + + struct Extended + { + Extended() + { + // MSVC 2013 workaround to init like this. + for (auto &v : values) + v = 0; + } + + Bitset flags; + uint32_t values[SPIRVCrossDecorationCount]; + } extended; + }; + + Decoration decoration; + + // Intentionally not a SmallVector. Decoration is large and somewhat rare. + Vector members; + + std::unordered_map decoration_word_offset; + + // For SPV_GOOGLE_hlsl_functionality1. + bool hlsl_is_magic_counter_buffer = false; + // ID for the sibling counter buffer. + uint32_t hlsl_magic_counter_buffer = 0; +}; + +// A user callback that remaps the type of any variable. +// var_name is the declared name of the variable. +// name_of_type is the textual name of the type which will be used in the code unless written to by the callback. +using VariableTypeRemapCallback = + std::function; + +class Hasher +{ +public: + inline void u32(uint32_t value) + { + h = (h * 0x100000001b3ull) ^ value; + } + + inline uint64_t get() const + { + return h; + } + +private: + uint64_t h = 0xcbf29ce484222325ull; +}; + +static inline bool type_is_floating_point(const SPIRType &type) +{ + return type.basetype == SPIRType::Half || type.basetype == SPIRType::Float || type.basetype == SPIRType::Double; +} + +static inline bool type_is_integral(const SPIRType &type) +{ + return type.basetype == SPIRType::SByte || type.basetype == SPIRType::UByte || type.basetype == SPIRType::Short || + type.basetype == SPIRType::UShort || type.basetype == SPIRType::Int || type.basetype == SPIRType::UInt || + type.basetype == SPIRType::Int64 || type.basetype == SPIRType::UInt64; +} + +static inline SPIRType::BaseType to_signed_basetype(uint32_t width) +{ + switch (width) + { + case 8: + return SPIRType::SByte; + case 16: + return SPIRType::Short; + case 32: + return SPIRType::Int; + case 64: + return SPIRType::Int64; + default: + SPIRV_CROSS_THROW("Invalid bit width."); + } +} + +static inline SPIRType::BaseType to_unsigned_basetype(uint32_t width) +{ + switch (width) + { + case 8: + return SPIRType::UByte; + case 16: + return SPIRType::UShort; + case 32: + return SPIRType::UInt; + case 64: + return SPIRType::UInt64; + default: + SPIRV_CROSS_THROW("Invalid bit width."); + } +} + +// Returns true if an arithmetic operation does not change behavior depending on signedness. +static inline bool opcode_is_sign_invariant(spv::Op opcode) +{ + switch (opcode) + { + case spv::OpIEqual: + case spv::OpINotEqual: + case spv::OpISub: + case spv::OpIAdd: + case spv::OpIMul: + case spv::OpShiftLeftLogical: + case spv::OpBitwiseOr: + case spv::OpBitwiseXor: + case spv::OpBitwiseAnd: + return true; + + default: + return false; + } +} + +static inline bool opcode_can_promote_integer_implicitly(spv::Op opcode) +{ + switch (opcode) + { + case spv::OpSNegate: + case spv::OpNot: + case spv::OpBitwiseAnd: + case spv::OpBitwiseOr: + case spv::OpBitwiseXor: + case spv::OpShiftLeftLogical: + case spv::OpShiftRightLogical: + case spv::OpShiftRightArithmetic: + case spv::OpIAdd: + case spv::OpISub: + case spv::OpIMul: + case spv::OpSDiv: + case spv::OpUDiv: + case spv::OpSRem: + case spv::OpUMod: + case spv::OpSMod: + return true; + + default: + return false; + } +} + +struct SetBindingPair +{ + uint32_t desc_set; + uint32_t binding; + + inline bool operator==(const SetBindingPair &other) const + { + return desc_set == other.desc_set && binding == other.binding; + } + + inline bool operator<(const SetBindingPair &other) const + { + return desc_set < other.desc_set || (desc_set == other.desc_set && binding < other.binding); + } +}; + +struct LocationComponentPair +{ + uint32_t location; + uint32_t component; + + inline bool operator==(const LocationComponentPair &other) const + { + return location == other.location && component == other.component; + } + + inline bool operator<(const LocationComponentPair &other) const + { + return location < other.location || (location == other.location && component < other.component); + } +}; + +struct StageSetBinding +{ + spv::ExecutionModel model; + uint32_t desc_set; + uint32_t binding; + + inline bool operator==(const StageSetBinding &other) const + { + return model == other.model && desc_set == other.desc_set && binding == other.binding; + } +}; + +struct InternalHasher +{ + inline size_t operator()(const SetBindingPair &value) const + { + // Quality of hash doesn't really matter here. + auto hash_set = std::hash()(value.desc_set); + auto hash_binding = std::hash()(value.binding); + return (hash_set * 0x10001b31) ^ hash_binding; + } + + inline size_t operator()(const LocationComponentPair &value) const + { + // Quality of hash doesn't really matter here. + auto hash_set = std::hash()(value.location); + auto hash_binding = std::hash()(value.component); + return (hash_set * 0x10001b31) ^ hash_binding; + } + + inline size_t operator()(const StageSetBinding &value) const + { + // Quality of hash doesn't really matter here. + auto hash_model = std::hash()(value.model); + auto hash_set = std::hash()(value.desc_set); + auto tmp_hash = (hash_model * 0x10001b31) ^ hash_set; + return (tmp_hash * 0x10001b31) ^ value.binding; + } +}; + +// Special constant used in a {MSL,HLSL}ResourceBinding desc_set +// element to indicate the bindings for the push constants. +static const uint32_t ResourceBindingPushConstantDescriptorSet = ~(0u); + +// Special constant used in a {MSL,HLSL}ResourceBinding binding +// element to indicate the bindings for the push constants. +static const uint32_t ResourceBindingPushConstantBinding = 0; +} // namespace SPIRV_CROSS_NAMESPACE + +namespace std +{ +template +struct hash> +{ + size_t operator()(const SPIRV_CROSS_NAMESPACE::TypedID &value) const + { + return std::hash()(value); + } +}; +} // namespace std + +#endif diff --git a/third_party/spirv-cross/spirv_cpp.cpp b/third_party/spirv-cross/spirv_cpp.cpp index e95fe00ee1..dd0a84c831 100644 --- a/third_party/spirv-cross/spirv_cpp.cpp +++ b/third_party/spirv-cross/spirv_cpp.cpp @@ -1,5 +1,6 @@ /* * Copyright 2015-2021 Arm Limited + * SPDX-License-Identifier: Apache-2.0 OR MIT * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +19,6 @@ * At your option, you may choose to accept this material under either: * 1. The Apache License, Version 2.0, found at , or * 2. The MIT License, found at . - * SPDX-License-Identifier: Apache-2.0 OR MIT. */ #include "spirv_cpp.hpp" @@ -274,8 +274,6 @@ void CompilerCPP::emit_resources() if (emitted) statement(""); - declare_undefined_values(); - statement("inline void init(spirv_cross_shader& s)"); begin_scope(); statement(resource_type, "::init(s);"); @@ -338,11 +336,8 @@ string CompilerCPP::compile() uint32_t pass_count = 0; do { - if (pass_count >= 3) - SPIRV_CROSS_THROW("Over 3 compilation loops detected. Must be a bug!"); - resource_registrations.clear(); - reset(); + reset(pass_count); // Move constructor for this type is broken on GCC 4.9 ... buffer.reset(); diff --git a/third_party/spirv-cross/spirv_cpp.hpp b/third_party/spirv-cross/spirv_cpp.hpp index a3bf0edb38..c76629cdcb 100644 --- a/third_party/spirv-cross/spirv_cpp.hpp +++ b/third_party/spirv-cross/spirv_cpp.hpp @@ -1,5 +1,6 @@ /* * Copyright 2015-2021 Arm Limited + * SPDX-License-Identifier: Apache-2.0 OR MIT * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +19,6 @@ * At your option, you may choose to accept this material under either: * 1. The Apache License, Version 2.0, found at , or * 2. The MIT License, found at . - * SPDX-License-Identifier: Apache-2.0 OR MIT. */ #ifndef SPIRV_CROSS_CPP_HPP diff --git a/third_party/spirv-cross/spirv_cross.cpp b/third_party/spirv-cross/spirv_cross.cpp index e948820d25..edc98f81e1 100644 --- a/third_party/spirv-cross/spirv_cross.cpp +++ b/third_party/spirv-cross/spirv_cross.cpp @@ -1,5 +1,6 @@ /* * Copyright 2015-2021 Arm Limited + * SPDX-License-Identifier: Apache-2.0 OR MIT * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +19,6 @@ * At your option, you may choose to accept this material under either: * 1. The Apache License, Version 2.0, found at , or * 2. The MIT License, found at . - * SPDX-License-Identifier: Apache-2.0 OR MIT. */ #include "spirv_cross.hpp" @@ -36,16 +36,16 @@ using namespace SPIRV_CROSS_NAMESPACE; Compiler::Compiler(vector ir_) { - Parser parser(move(ir_)); + Parser parser(std::move(ir_)); parser.parse(); - set_ir(move(parser.get_parsed_ir())); + set_ir(std::move(parser.get_parsed_ir())); } Compiler::Compiler(const uint32_t *ir_, size_t word_count) { Parser parser(ir_, word_count); parser.parse(); - set_ir(move(parser.get_parsed_ir())); + set_ir(std::move(parser.get_parsed_ir())); } Compiler::Compiler(const ParsedIR &ir_) @@ -55,12 +55,12 @@ Compiler::Compiler(const ParsedIR &ir_) Compiler::Compiler(ParsedIR &&ir_) { - set_ir(move(ir_)); + set_ir(std::move(ir_)); } void Compiler::set_ir(ParsedIR &&ir_) { - ir = move(ir_); + ir = std::move(ir_); parse_fixup(); } @@ -98,7 +98,8 @@ bool Compiler::block_is_pure(const SPIRBlock &block) // This is a global side effect of the function. if (block.terminator == SPIRBlock::Kill || block.terminator == SPIRBlock::TerminateRay || - block.terminator == SPIRBlock::IgnoreIntersection) + block.terminator == SPIRBlock::IgnoreIntersection || + block.terminator == SPIRBlock::EmitMeshTasks) return false; for (auto &i : block.ops) @@ -154,6 +155,11 @@ bool Compiler::block_is_pure(const SPIRBlock &block) case OpEmitVertex: return false; + // Mesh shader functions modify global state. + // (EmitMeshTasks is a terminator). + case OpSetMeshOutputsEXT: + return false; + // Barriers disallow any reordering, so we should treat blocks with barrier as writing. case OpControlBarrier: case OpMemoryBarrier: @@ -167,6 +173,12 @@ bool Compiler::block_is_pure(const SPIRBlock &block) case OpTraceRayKHR: case OpExecuteCallableNV: case OpExecuteCallableKHR: + case OpRayQueryInitializeKHR: + case OpRayQueryTerminateKHR: + case OpRayQueryGenerateIntersectionKHR: + case OpRayQueryConfirmIntersectionKHR: + case OpRayQueryProceedKHR: + // There are various getters in ray query, but they are considered pure. return false; // OpExtInst is potentially impure depending on extension, but GLSL builtins are at least pure. @@ -175,6 +187,30 @@ bool Compiler::block_is_pure(const SPIRBlock &block) // This is a global side effect of the function. return false; + case OpExtInst: + { + uint32_t extension_set = ops[2]; + if (get(extension_set).ext == SPIRExtension::GLSL) + { + auto op_450 = static_cast(ops[3]); + switch (op_450) + { + case GLSLstd450Modf: + case GLSLstd450Frexp: + { + auto &type = expression_type(ops[5]); + if (type.storage != StorageClassFunction) + return false; + break; + } + + default: + break; + } + } + break; + } + default: break; } @@ -689,7 +725,7 @@ bool Compiler::InterfaceVariableAccessHandler::handle(Op opcode, const uint32_t case OpExtInst: { - if (length < 5) + if (length < 3) return false; auto &extension_set = compiler.get(args[2]); switch (extension_set.ext) @@ -710,6 +746,15 @@ bool Compiler::InterfaceVariableAccessHandler::handle(Op opcode, const uint32_t break; } + case GLSLstd450Modf: + case GLSLstd450Fract: + { + auto *var = compiler.maybe_get(args[5]); + if (var && storage_class_is_interface(var->storage)) + variables.insert(args[5]); + break; + } + default: break; } @@ -813,7 +858,7 @@ unordered_set Compiler::get_active_interface_variables() const void Compiler::set_enabled_interface_variables(std::unordered_set active_variables) { - active_interface_variables = move(active_variables); + active_interface_variables = std::move(active_variables); check_active_interface_variables = true; } @@ -946,6 +991,10 @@ ShaderResources Compiler::get_shader_resources(const unordered_set * // in the future. res.push_constant_buffers.push_back({ var.self, var.basetype, type.self, get_name(var.self) }); } + else if (type.storage == StorageClassShaderRecordBufferKHR) + { + res.shader_record_buffers.push_back({ var.self, var.basetype, type.self, get_remapped_declared_block_name(var.self, ssbo_instance_name) }); + } // Images else if (type.storage == StorageClassUniformConstant && type.basetype == SPIRType::Image && type.image.sampled == 2) @@ -1011,10 +1060,12 @@ void Compiler::parse_fixup() if (id.get_type() == TypeConstant) { auto &c = id.get(); - if (ir.meta[c.self].decoration.builtin && ir.meta[c.self].decoration.builtin_type == BuiltInWorkgroupSize) + if (has_decoration(c.self, DecorationBuiltIn) && + BuiltIn(get_decoration(c.self, DecorationBuiltIn)) == BuiltInWorkgroupSize) { // In current SPIR-V, there can be just one constant like this. // All entry points will receive the constant value. + // WorkgroupSize take precedence over LocalSizeId. for (auto &entry : ir.entry_points) { entry.second.workgroup_size.constant = c.self; @@ -1028,8 +1079,11 @@ void Compiler::parse_fixup() { auto &var = id.get(); if (var.storage == StorageClassPrivate || var.storage == StorageClassWorkgroup || + var.storage == StorageClassTaskPayloadWorkgroupEXT || var.storage == StorageClassOutput) + { global_variables.push_back(var.self); + } if (variable_storage_is_aliased(var)) aliased_variables.push_back(var.self); } @@ -1414,6 +1468,58 @@ bool Compiler::get_binary_offset_for_decoration(VariableID id, spv::Decoration d return true; } +bool Compiler::block_is_noop(const SPIRBlock &block) const +{ + if (block.terminator != SPIRBlock::Direct) + return false; + + auto &child = get(block.next_block); + + // If this block participates in PHI, the block isn't really noop. + for (auto &phi : block.phi_variables) + if (phi.parent == block.self || phi.parent == child.self) + return false; + + for (auto &phi : child.phi_variables) + if (phi.parent == block.self) + return false; + + // Verify all instructions have no semantic impact. + for (auto &i : block.ops) + { + auto op = static_cast(i.op); + + switch (op) + { + // Non-Semantic instructions. + case OpLine: + case OpNoLine: + break; + + case OpExtInst: + { + auto *ops = stream(i); + auto ext = get(ops[2]).ext; + + bool ext_is_nonsemantic_only = + ext == SPIRExtension::NonSemanticShaderDebugInfo || + ext == SPIRExtension::SPV_debug_info || + ext == SPIRExtension::NonSemanticGeneric; + + if (!ext_is_nonsemantic_only) + return false; + + break; + } + + default: + return false; + } + } + + return true; +} + bool Compiler::block_is_loop_candidate(const SPIRBlock &block, SPIRBlock::Method method) const { // Tried and failed. @@ -1471,7 +1577,7 @@ bool Compiler::block_is_loop_candidate(const SPIRBlock &block, SPIRBlock::Method { // Empty loop header that just sets up merge target // and branches to loop body. - bool ret = block.terminator == SPIRBlock::Direct && block.merge == SPIRBlock::MergeLoop && block.ops.empty(); + bool ret = block.terminator == SPIRBlock::Direct && block.merge == SPIRBlock::MergeLoop && block_is_noop(block); if (!ret) return false; @@ -1497,19 +1603,8 @@ bool Compiler::block_is_loop_candidate(const SPIRBlock &block, SPIRBlock::Method ret = child.terminator == SPIRBlock::Select && child.merge == SPIRBlock::MergeNone && (positive_candidate || negative_candidate); - // If we have OpPhi which depends on branches which came from our own block, - // we need to flush phi variables in else block instead of a trivial break, - // so we cannot assume this is a for loop candidate. if (ret) { - for (auto &phi : block.phi_variables) - if (phi.parent == block.self || phi.parent == child.self) - return false; - - for (auto &phi : child.phi_variables) - if (phi.parent == block.self) - return false; - auto *merge = maybe_get(block.merge_block); if (merge) for (auto &phi : merge->phi_variables) @@ -1534,15 +1629,10 @@ bool Compiler::execution_is_noop(const SPIRBlock &from, const SPIRBlock &to) con if (start->self == to.self) return true; - if (!start->ops.empty()) + if (!block_is_noop(*start)) return false; auto &next = get(start->next_block); - // Flushing phi variables does not count as noop. - for (auto &phi : next.phi_variables) - if (phi.parent == start->self) - return false; - start = &next; } } @@ -1620,6 +1710,44 @@ SPIRBlock::ContinueBlockType Compiler::continue_block_type(const SPIRBlock &bloc } } +const SmallVector &Compiler::get_case_list(const SPIRBlock &block) const +{ + uint32_t width = 0; + + // First we check if we can get the type directly from the block.condition + // since it can be a SPIRConstant or a SPIRVariable. + if (const auto *constant = maybe_get(block.condition)) + { + const auto &type = get(constant->constant_type); + width = type.width; + } + else if (const auto *var = maybe_get(block.condition)) + { + const auto &type = get(var->basetype); + width = type.width; + } + else if (const auto *undef = maybe_get(block.condition)) + { + const auto &type = get(undef->basetype); + width = type.width; + } + else + { + auto search = ir.load_type_width.find(block.condition); + if (search == ir.load_type_width.end()) + { + SPIRV_CROSS_THROW("Use of undeclared variable on a switch statement."); + } + + width = search->second; + } + + if (width > 32) + return block.cases_64bit; + + return block.cases_32bit; +} + bool Compiler::traverse_all_reachable_opcodes(const SPIRBlock &block, OpcodeHandler &handler) const { handler.set_current_block(block); @@ -1653,6 +1781,9 @@ bool Compiler::traverse_all_reachable_opcodes(const SPIRBlock &block, OpcodeHand } } + if (!handler.handle_terminator(block)) + return false; + return true; } @@ -1720,10 +1851,22 @@ size_t Compiler::get_declared_struct_size(const SPIRType &type) const if (type.member_types.empty()) SPIRV_CROSS_THROW("Declared struct in block cannot be empty."); - uint32_t last = uint32_t(type.member_types.size() - 1); - size_t offset = type_struct_member_offset(type, last); - size_t size = get_declared_struct_member_size(type, last); - return offset + size; + // Offsets can be declared out of order, so we need to deduce the actual size + // based on last member instead. + uint32_t member_index = 0; + size_t highest_offset = 0; + for (uint32_t i = 0; i < uint32_t(type.member_types.size()); i++) + { + size_t offset = type_struct_member_offset(type, i); + if (offset > highest_offset) + { + highest_offset = offset; + member_index = i; + } + } + + size_t size = get_declared_struct_member_size(type, member_index); + return highest_offset + size; } size_t Compiler::get_declared_struct_size_runtime_array(const SPIRType &type, size_t array_size) const @@ -2069,6 +2212,12 @@ void Compiler::set_execution_mode(ExecutionMode mode, uint32_t arg0, uint32_t ar execution.workgroup_size.z = arg2; break; + case ExecutionModeLocalSizeId: + execution.workgroup_size.id_x = arg0; + execution.workgroup_size.id_y = arg1; + execution.workgroup_size.id_z = arg2; + break; + case ExecutionModeInvocations: execution.invocations = arg0; break; @@ -2077,6 +2226,10 @@ void Compiler::set_execution_mode(ExecutionMode mode, uint32_t arg0, uint32_t ar execution.output_vertices = arg0; break; + case ExecutionModeOutputPrimitivesEXT: + execution.output_primitives = arg0; + break; + default: break; } @@ -2096,6 +2249,7 @@ uint32_t Compiler::get_work_group_size_specialization_constants(SpecializationCo y = { 0, 0 }; z = { 0, 0 }; + // WorkgroupSize builtin takes precedence over LocalSize / LocalSizeId. if (execution.workgroup_size.constant != 0) { auto &c = get(execution.workgroup_size.constant); @@ -2118,6 +2272,29 @@ uint32_t Compiler::get_work_group_size_specialization_constants(SpecializationCo z.constant_id = get_decoration(c.m.c[0].id[2], DecorationSpecId); } } + else if (execution.flags.get(ExecutionModeLocalSizeId)) + { + auto &cx = get(execution.workgroup_size.id_x); + if (cx.specialization) + { + x.id = execution.workgroup_size.id_x; + x.constant_id = get_decoration(execution.workgroup_size.id_x, DecorationSpecId); + } + + auto &cy = get(execution.workgroup_size.id_y); + if (cy.specialization) + { + y.id = execution.workgroup_size.id_y; + y.constant_id = get_decoration(execution.workgroup_size.id_y, DecorationSpecId); + } + + auto &cz = get(execution.workgroup_size.id_z); + if (cz.specialization) + { + z.id = execution.workgroup_size.id_z; + z.constant_id = get_decoration(execution.workgroup_size.id_z, DecorationSpecId); + } + } return execution.workgroup_size.constant; } @@ -2127,15 +2304,42 @@ uint32_t Compiler::get_execution_mode_argument(spv::ExecutionMode mode, uint32_t auto &execution = get_entry_point(); switch (mode) { + case ExecutionModeLocalSizeId: + if (execution.flags.get(ExecutionModeLocalSizeId)) + { + switch (index) + { + case 0: + return execution.workgroup_size.id_x; + case 1: + return execution.workgroup_size.id_y; + case 2: + return execution.workgroup_size.id_z; + default: + return 0; + } + } + else + return 0; + case ExecutionModeLocalSize: switch (index) { case 0: - return execution.workgroup_size.x; + if (execution.flags.get(ExecutionModeLocalSizeId) && execution.workgroup_size.id_x != 0) + return get(execution.workgroup_size.id_x).scalar(); + else + return execution.workgroup_size.x; case 1: - return execution.workgroup_size.y; + if (execution.flags.get(ExecutionModeLocalSizeId) && execution.workgroup_size.id_y != 0) + return get(execution.workgroup_size.id_y).scalar(); + else + return execution.workgroup_size.y; case 2: - return execution.workgroup_size.z; + if (execution.flags.get(ExecutionModeLocalSizeId) && execution.workgroup_size.id_z != 0) + return get(execution.workgroup_size.id_z).scalar(); + else + return execution.workgroup_size.z; default: return 0; } @@ -2146,6 +2350,9 @@ uint32_t Compiler::get_execution_mode_argument(spv::ExecutionMode mode, uint32_t case ExecutionModeOutputVertices: return execution.output_vertices; + case ExecutionModeOutputPrimitivesEXT: + return execution.output_primitives; + default: return 0; } @@ -2174,6 +2381,11 @@ bool Compiler::is_tessellation_shader() const return is_tessellation_shader(get_execution_model()); } +bool Compiler::is_tessellating_triangles() const +{ + return get_execution_mode_bitset().get(ExecutionModeTriangles); +} + void Compiler::set_remapped_variable_state(VariableID id, bool remap_enable) { get(id).remapped_variable = remap_enable; @@ -2208,6 +2420,19 @@ void Compiler::add_implied_read_expression(SPIRAccessChain &e, uint32_t source) e.implied_read_expressions.push_back(source); } +void Compiler::add_active_interface_variable(uint32_t var_id) +{ + active_interface_variables.insert(var_id); + + // In SPIR-V 1.4 and up we must also track the interface variable in the entry point. + if (ir.get_spirv_version() >= 0x10400) + { + auto &vars = get_entry_point().interface_variables; + if (find(begin(vars), end(vars), VariableID(var_id)) == end(vars)) + vars.push_back(var_id); + } +} + void Compiler::inherit_expression_dependencies(uint32_t dst, uint32_t source_expression) { // Don't inherit any expression dependencies if the expression in dst @@ -2362,7 +2587,7 @@ void Compiler::CombinedImageSamplerHandler::push_remap_parameters(const SPIRFunc unordered_map remapping; for (uint32_t i = 0; i < length; i++) remapping[func.arguments[i].id] = remap_parameter(args[i]); - parameter_remapping.push(move(remapping)); + parameter_remapping.push(std::move(remapping)); } void Compiler::CombinedImageSamplerHandler::pop_remap_parameters() @@ -3003,12 +3228,15 @@ void Compiler::AnalyzeVariableScopeAccessHandler::set_current_block(const SPIRBl break; case SPIRBlock::MultiSelect: + { notify_variable_access(block.condition, block.self); - for (auto &target : block.cases) + auto &cases = compiler.get_case_list(block); + for (auto &target : cases) test_phi(target.block); if (block.default_block) test_phi(block.default_block); break; + } default: break; @@ -3021,8 +3249,8 @@ void Compiler::AnalyzeVariableScopeAccessHandler::notify_variable_access(uint32_ return; // Access chains used in multiple blocks mean hoisting all the variables used to construct the access chain as not all backends can use pointers. - auto itr = access_chain_children.find(id); - if (itr != end(access_chain_children)) + auto itr = rvalue_forward_children.find(id); + if (itr != end(rvalue_forward_children)) for (auto child_id : itr->second) notify_variable_access(child_id, block); @@ -3049,12 +3277,46 @@ bool Compiler::AnalyzeVariableScopeAccessHandler::id_is_potential_temporary(uint return compiler.ir.ids[id].empty() || (compiler.ir.ids[id].get_type() == TypeExpression); } +bool Compiler::AnalyzeVariableScopeAccessHandler::handle_terminator(const SPIRBlock &block) +{ + switch (block.terminator) + { + case SPIRBlock::Return: + if (block.return_value) + notify_variable_access(block.return_value, block.self); + break; + + case SPIRBlock::Select: + case SPIRBlock::MultiSelect: + notify_variable_access(block.condition, block.self); + break; + + default: + break; + } + + return true; +} + bool Compiler::AnalyzeVariableScopeAccessHandler::handle(spv::Op op, const uint32_t *args, uint32_t length) { // Keep track of the types of temporaries, so we can hoist them out as necessary. uint32_t result_type, result_id; if (compiler.instruction_to_result_type(result_type, result_id, op, args, length)) + { + // For some opcodes, we will need to override the result id. + // If we need to hoist the temporary, the temporary type is the input, not the result. + // FIXME: This will likely break with OpCopyObject + hoisting, but we'll have to + // solve it if we ever get there ... + if (op == OpConvertUToAccelerationStructureKHR) + { + auto itr = result_id_to_type.find(args[2]); + if (itr != result_id_to_type.end()) + result_type = itr->second; + } + result_id_to_type[result_id] = result_type; + } switch (op) { @@ -3096,14 +3358,14 @@ bool Compiler::AnalyzeVariableScopeAccessHandler::handle(spv::Op op, const uint3 if (var) { accessed_variables_to_block[var->self].insert(current_block->self); - access_chain_children[args[1]].insert(var->self); + rvalue_forward_children[args[1]].insert(var->self); } // args[2] might be another access chain we have to track use of. for (uint32_t i = 2; i < length; i++) { notify_variable_access(args[i], current_block->self); - access_chain_children[args[1]].insert(args[i]); + rvalue_forward_children[args[1]].insert(args[i]); } // Also keep track of the access chain pointer itself. @@ -3185,6 +3447,12 @@ bool Compiler::AnalyzeVariableScopeAccessHandler::handle(spv::Op op, const uint3 // Might be an access chain we have to track use of. notify_variable_access(args[2], current_block->self); + + // If we're loading an opaque type we cannot lower it to a temporary, + // we must defer access of args[2] until it's used. + auto &type = compiler.get(args[0]); + if (compiler.type_is_opaque_value(type)) + rvalue_forward_children[args[1]].insert(args[2]); break; } @@ -3248,10 +3516,41 @@ bool Compiler::AnalyzeVariableScopeAccessHandler::handle(spv::Op op, const uint3 for (uint32_t i = 4; i < length; i++) notify_variable_access(args[i], current_block->self); notify_variable_access(args[1], current_block->self); + + uint32_t extension_set = args[2]; + if (compiler.get(extension_set).ext == SPIRExtension::GLSL) + { + auto op_450 = static_cast(args[3]); + switch (op_450) + { + case GLSLstd450Modf: + case GLSLstd450Frexp: + { + uint32_t ptr = args[5]; + auto *var = compiler.maybe_get_backing_variable(ptr); + if (var) + { + accessed_variables_to_block[var->self].insert(current_block->self); + if (var->self == ptr) + complete_write_variables_to_block[var->self].insert(current_block->self); + else + partial_write_variables_to_block[var->self].insert(current_block->self); + } + break; + } + + default: + break; + } + } break; } case OpArrayLength: + // Only result is a temporary. + notify_variable_access(args[1], current_block->self); + break; + case OpLine: case OpNoLine: // Uses literals, but cannot be a phi variable or temporary, so ignore. @@ -3525,6 +3824,7 @@ void Compiler::analyze_variable_scope(SPIRFunction &entry, AnalyzeVariableScopeA DominatorBuilder builder(cfg); auto &blocks = var.second; auto &type = expression_type(var.first); + BlockID potential_continue_block = 0; // Figure out which block is dominating all accesses of those variables. for (auto &block : blocks) @@ -3546,14 +3846,13 @@ void Compiler::analyze_variable_scope(SPIRFunction &entry, AnalyzeVariableScopeA { // The variable is used in multiple continue blocks, this is not a loop // candidate, signal that by setting block to -1u. - auto &potential = potential_loop_variables[var.first]; - - if (potential == 0) - potential = block; + if (potential_continue_block == 0) + potential_continue_block = block; else - potential = ~(0u); + potential_continue_block = ~(0u); } } + builder.add_block(block); } @@ -3562,6 +3861,34 @@ void Compiler::analyze_variable_scope(SPIRFunction &entry, AnalyzeVariableScopeA // Add it to a per-block list of variables. BlockID dominating_block = builder.get_dominator(); + if (dominating_block && potential_continue_block != 0 && potential_continue_block != ~0u) + { + auto &inner_block = get(dominating_block); + + BlockID merge_candidate = 0; + + // Analyze the dominator. If it lives in a different loop scope than the candidate continue + // block, reject the loop variable candidate. + if (inner_block.merge == SPIRBlock::MergeLoop) + merge_candidate = inner_block.merge_block; + else if (inner_block.loop_dominator != SPIRBlock::NoDominator) + merge_candidate = get(inner_block.loop_dominator).merge_block; + + if (merge_candidate != 0 && cfg.is_reachable(merge_candidate)) + { + // If the merge block has a higher post-visit order, we know that continue candidate + // cannot reach the merge block, and we have two separate scopes. + if (!cfg.is_reachable(potential_continue_block) || + cfg.get_visit_order(merge_candidate) > cfg.get_visit_order(potential_continue_block)) + { + potential_continue_block = 0; + } + } + } + + if (potential_continue_block != 0 && potential_continue_block != ~0u) + potential_loop_variables[var.first] = potential_continue_block; + // For variables whose dominating block is inside a loop, there is a risk that these variables // actually need to be preserved across loop iterations. We can express this by adding // a "read" access to the loop header. @@ -4161,8 +4488,9 @@ void Compiler::analyze_image_and_sampler_usage() handler.dependency_hierarchy.clear(); traverse_all_reachable_opcodes(get(ir.default_entry_point), handler); - comparison_ids = move(handler.comparison_ids); + comparison_ids = std::move(handler.comparison_ids); need_subpass_input = handler.need_subpass_input; + need_subpass_input_ms = handler.need_subpass_input_ms; // Forward information from separate images and samplers into combined image samplers. for (auto &combined : combined_image_samplers) @@ -4214,7 +4542,7 @@ void Compiler::build_function_control_flow_graphs_and_analyze() CFGBuilder handler(*this); handler.function_cfgs[ir.default_entry_point].reset(new CFG(*this, get(ir.default_entry_point))); traverse_all_reachable_opcodes(get(ir.default_entry_point), handler); - function_cfgs = move(handler.function_cfgs); + function_cfgs = std::move(handler.function_cfgs); bool single_function = function_cfgs.size() <= 1; for (auto &f : function_cfgs) @@ -4329,7 +4657,11 @@ bool Compiler::CombinedImageSamplerUsageHandler::handle(Op opcode, const uint32_ // If we load an image, we're going to use it and there is little harm in declaring an unused gl_FragCoord. auto &type = compiler.get(args[0]); if (type.image.dim == DimSubpassData) + { need_subpass_input = true; + if (type.image.ms) + need_subpass_input_ms = true; + } // If we load a SampledImage and it will be used with Dref, propagate the state up. if (dref_combined_samplers.count(args[1]) != 0) @@ -4342,16 +4674,13 @@ bool Compiler::CombinedImageSamplerUsageHandler::handle(Op opcode, const uint32_ if (length < 4) return false; - uint32_t result_type = args[0]; - uint32_t result_id = args[1]; - auto &type = compiler.get(result_type); - // If the underlying resource has been used for comparison then duplicate loads of that resource must be too. // This image must be a depth image. + uint32_t result_id = args[1]; uint32_t image = args[2]; uint32_t sampler = args[3]; - if (type.image.depth || dref_combined_samplers.count(result_id) != 0) + if (dref_combined_samplers.count(result_id) != 0) { add_hierarchy_to_comparison_ids(image); @@ -4507,46 +4836,22 @@ bool Compiler::reflection_ssbo_instance_name_is_significant() const return aliased_ssbo_types; } -bool Compiler::instruction_to_result_type(uint32_t &result_type, uint32_t &result_id, spv::Op op, const uint32_t *args, - uint32_t length) +bool Compiler::instruction_to_result_type(uint32_t &result_type, uint32_t &result_id, spv::Op op, + const uint32_t *args, uint32_t length) { - // Most instructions follow the pattern of . - // There are some exceptions. - switch (op) - { - case OpStore: - case OpCopyMemory: - case OpCopyMemorySized: - case OpImageWrite: - case OpAtomicStore: - case OpAtomicFlagClear: - case OpEmitStreamVertex: - case OpEndStreamPrimitive: - case OpControlBarrier: - case OpMemoryBarrier: - case OpGroupWaitEvents: - case OpRetainEvent: - case OpReleaseEvent: - case OpSetUserEventStatus: - case OpCaptureEventProfilingInfo: - case OpCommitReadPipe: - case OpCommitWritePipe: - case OpGroupCommitReadPipe: - case OpGroupCommitWritePipe: - case OpLine: - case OpNoLine: + if (length < 2) return false; - default: - if (length > 1 && maybe_get(args[0]) != nullptr) - { - result_type = args[0]; - result_id = args[1]; - return true; - } - else - return false; + bool has_result_id = false, has_result_type = false; + HasResultAndType(op, &has_result_id, &has_result_type); + if (has_result_id && has_result_type) + { + result_type = args[0]; + result_id = args[1]; + return true; } + else + return false; } Bitset Compiler::combined_decoration_for_member(const SPIRType &type, uint32_t index) const @@ -4611,9 +4916,11 @@ bool Compiler::is_desktop_only_format(spv::ImageFormat format) return false; } -bool Compiler::image_is_comparison(const SPIRType &type, uint32_t id) const +// An image is determined to be a depth image if it is marked as a depth image and is not also +// explicitly marked with a color format, or if there are any sample/gather compare operations on it. +bool Compiler::is_depth_image(const SPIRType &type, uint32_t id) const { - return type.image.depth || (comparison_ids.count(id) != 0); + return (type.image.depth && type.image.format == ImageFormatUnknown) || comparison_ids.count(id); } bool Compiler::type_is_opaque_value(const SPIRType &type) const @@ -4628,6 +4935,12 @@ void Compiler::force_recompile() is_force_recompile = true; } +void Compiler::force_recompile_guarantee_forward_progress() +{ + force_recompile(); + is_force_recompile_forward_progress = true; +} + bool Compiler::is_forcing_recompilation() const { return is_force_recompile; @@ -4636,6 +4949,7 @@ bool Compiler::is_forcing_recompilation() const void Compiler::clear_force_recompile() { is_force_recompile = false; + is_force_recompile_forward_progress = false; } Compiler::PhysicalStorageBufferPointerHandler::PhysicalStorageBufferPointerHandler(Compiler &compiler_) @@ -4643,31 +4957,181 @@ Compiler::PhysicalStorageBufferPointerHandler::PhysicalStorageBufferPointerHandl { } -bool Compiler::PhysicalStorageBufferPointerHandler::handle(Op op, const uint32_t *args, uint32_t) +Compiler::PhysicalBlockMeta *Compiler::PhysicalStorageBufferPointerHandler::find_block_meta(uint32_t id) const { - if (op == OpConvertUToPtr || op == OpBitcast) + auto chain_itr = access_chain_to_physical_block.find(id); + if (chain_itr != access_chain_to_physical_block.end()) + return chain_itr->second; + else + return nullptr; +} + +void Compiler::PhysicalStorageBufferPointerHandler::mark_aligned_access(uint32_t id, const uint32_t *args, uint32_t length) +{ + uint32_t mask = *args; + args++; + length--; + if (length && (mask & MemoryAccessVolatileMask) != 0) { - auto &type = compiler.get(args[0]); - if (type.storage == StorageClassPhysicalStorageBufferEXT && type.pointer && type.pointer_depth == 1) + args++; + length--; + } + + if (length && (mask & MemoryAccessAlignedMask) != 0) + { + uint32_t alignment = *args; + auto *meta = find_block_meta(id); + + // This makes the assumption that the application does not rely on insane edge cases like: + // Bind buffer with ADDR = 8, use block offset of 8 bytes, load/store with 16 byte alignment. + // If we emit the buffer with alignment = 16 here, the first element at offset = 0 should + // actually have alignment of 8 bytes, but this is too theoretical and awkward to support. + // We could potentially keep track of any offset in the access chain, but it's + // practically impossible for high level compilers to emit code like that, + // so deducing overall alignment requirement based on maximum observed Alignment value is probably fine. + if (meta && alignment > meta->alignment) + meta->alignment = alignment; + } +} + +bool Compiler::PhysicalStorageBufferPointerHandler::type_is_bda_block_entry(uint32_t type_id) const +{ + auto &type = compiler.get(type_id); + return type.storage == StorageClassPhysicalStorageBufferEXT && type.pointer && + type.pointer_depth == 1 && !compiler.type_is_array_of_pointers(type); +} + +uint32_t Compiler::PhysicalStorageBufferPointerHandler::get_minimum_scalar_alignment(const SPIRType &type) const +{ + if (type.storage == spv::StorageClassPhysicalStorageBufferEXT) + return 8; + else if (type.basetype == SPIRType::Struct) + { + uint32_t alignment = 0; + for (auto &member_type : type.member_types) { - // If we need to cast to a pointer type which is not a block, we might need to synthesize ourselves - // a block type which wraps this POD type. - if (type.basetype != SPIRType::Struct) - types.insert(args[0]); + uint32_t member_align = get_minimum_scalar_alignment(compiler.get(member_type)); + if (member_align > alignment) + alignment = member_align; } + return alignment; + } + else + return type.width / 8; +} + +void Compiler::PhysicalStorageBufferPointerHandler::setup_meta_chain(uint32_t type_id, uint32_t var_id) +{ + if (type_is_bda_block_entry(type_id)) + { + auto &meta = physical_block_type_meta[type_id]; + access_chain_to_physical_block[var_id] = &meta; + + auto &type = compiler.get(type_id); + if (type.basetype != SPIRType::Struct) + non_block_types.insert(type_id); + + if (meta.alignment == 0) + meta.alignment = get_minimum_scalar_alignment(compiler.get_pointee_type(type)); + } +} + +bool Compiler::PhysicalStorageBufferPointerHandler::handle(Op op, const uint32_t *args, uint32_t length) +{ + // When a BDA pointer comes to life, we need to keep a mapping of SSA ID -> type ID for the pointer type. + // For every load and store, we'll need to be able to look up the type ID being accessed and mark any alignment + // requirements. + switch (op) + { + case OpConvertUToPtr: + case OpBitcast: + case OpCompositeExtract: + // Extract can begin a new chain if we had a struct or array of pointers as input. + // We don't begin chains before we have a pure scalar pointer. + setup_meta_chain(args[0], args[1]); + break; + + case OpAccessChain: + case OpInBoundsAccessChain: + case OpPtrAccessChain: + case OpCopyObject: + { + auto itr = access_chain_to_physical_block.find(args[2]); + if (itr != access_chain_to_physical_block.end()) + access_chain_to_physical_block[args[1]] = itr->second; + break; + } + + case OpLoad: + { + setup_meta_chain(args[0], args[1]); + if (length >= 4) + mark_aligned_access(args[2], args + 3, length - 3); + break; + } + + case OpStore: + { + if (length >= 3) + mark_aligned_access(args[0], args + 2, length - 2); + break; + } + + default: + break; } return true; } +uint32_t Compiler::PhysicalStorageBufferPointerHandler::get_base_non_block_type_id(uint32_t type_id) const +{ + auto *type = &compiler.get(type_id); + while (type->pointer && + type->storage == StorageClassPhysicalStorageBufferEXT && + !type_is_bda_block_entry(type_id)) + { + type_id = type->parent_type; + type = &compiler.get(type_id); + } + + assert(type_is_bda_block_entry(type_id)); + return type_id; +} + +void Compiler::PhysicalStorageBufferPointerHandler::analyze_non_block_types_from_block(const SPIRType &type) +{ + for (auto &member : type.member_types) + { + auto &subtype = compiler.get(member); + if (subtype.basetype != SPIRType::Struct && subtype.pointer && + subtype.storage == spv::StorageClassPhysicalStorageBufferEXT) + { + non_block_types.insert(get_base_non_block_type_id(member)); + } + else if (subtype.basetype == SPIRType::Struct && !subtype.pointer) + analyze_non_block_types_from_block(subtype); + } +} + void Compiler::analyze_non_block_pointer_types() { PhysicalStorageBufferPointerHandler handler(*this); traverse_all_reachable_opcodes(get(ir.default_entry_point), handler); - physical_storage_non_block_pointer_types.reserve(handler.types.size()); - for (auto type : handler.types) + + // Analyze any block declaration we have to make. It might contain + // physical pointers to POD types which we never used, and thus never added to the list. + // We'll need to add those pointer types to the set of types we declare. + ir.for_each_typed_id([&](uint32_t, SPIRType &type) { + if (has_decoration(type.self, DecorationBlock) || has_decoration(type.self, DecorationBufferBlock)) + handler.analyze_non_block_types_from_block(type); + }); + + physical_storage_non_block_pointer_types.reserve(handler.non_block_types.size()); + for (auto type : handler.non_block_types) physical_storage_non_block_pointer_types.push_back(type); sort(begin(physical_storage_non_block_pointer_types), end(physical_storage_non_block_pointer_types)); + physical_storage_type_to_alignment = std::move(handler.physical_block_type_meta); } bool Compiler::InterlockedResourceAccessPrepassHandler::handle(Op op, const uint32_t *, uint32_t) diff --git a/third_party/spirv-cross/spirv_cross.hpp b/third_party/spirv-cross/spirv_cross.hpp index 764c6c47b7..ea98ee60d3 100644 --- a/third_party/spirv-cross/spirv_cross.hpp +++ b/third_party/spirv-cross/spirv_cross.hpp @@ -1,5 +1,6 @@ /* * Copyright 2015-2021 Arm Limited + * SPDX-License-Identifier: Apache-2.0 OR MIT * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,12 +19,14 @@ * At your option, you may choose to accept this material under either: * 1. The Apache License, Version 2.0, found at , or * 2. The MIT License, found at . - * SPDX-License-Identifier: Apache-2.0 OR MIT. */ #ifndef SPIRV_CROSS_HPP #define SPIRV_CROSS_HPP +#ifndef SPV_ENABLE_UTILITY_CODE +#define SPV_ENABLE_UTILITY_CODE +#endif #include "spirv.hpp" #include "spirv_cfg.hpp" #include "spirv_cross_parsed_ir.hpp" @@ -96,6 +99,8 @@ struct ShaderResources // but keep the vector in case this restriction is lifted in the future. SmallVector push_constant_buffers; + SmallVector shader_record_buffers; + // For Vulkan GLSL and HLSL source, // these correspond to separate texture2D and samplers respectively. SmallVector separate_images; @@ -357,12 +362,16 @@ public: void set_execution_mode(spv::ExecutionMode mode, uint32_t arg0 = 0, uint32_t arg1 = 0, uint32_t arg2 = 0); // Gets argument for an execution mode (LocalSize, Invocations, OutputVertices). - // For LocalSize, the index argument is used to select the dimension (X = 0, Y = 1, Z = 2). + // For LocalSize or LocalSizeId, the index argument is used to select the dimension (X = 0, Y = 1, Z = 2). // For execution modes which do not have arguments, 0 is returned. + // LocalSizeId query returns an ID. If LocalSizeId execution mode is not used, it returns 0. + // LocalSize always returns a literal. If execution mode is LocalSizeId, + // the literal (spec constant or not) is still returned. uint32_t get_execution_mode_argument(spv::ExecutionMode mode, uint32_t index = 0) const; spv::ExecutionModel get_execution_model() const; bool is_tessellation_shader() const; + bool is_tessellating_triangles() const; // In SPIR-V, the compute work group size can be represented by a constant vector, in which case // the LocalSize execution mode is ignored. @@ -380,6 +389,8 @@ public: // If the component is not a specialization constant, a zeroed out struct will be written. // The return value is the constant ID of the builtin WorkGroupSize, but this is not expected to be useful // for most use cases. + // If LocalSizeId is used, there is no uvec3 value representing the workgroup size, so the return value is 0, + // but x, y and z are written as normal if the components are specialization constants. uint32_t get_work_group_size_specialization_constants(SpecializationConstant &x, SpecializationConstant &y, SpecializationConstant &z) const; @@ -551,6 +562,11 @@ protected: } } + uint32_t *stream_mutable(const Instruction &instr) const + { + return const_cast(stream(instr)); + } + ParsedIR ir; // Marks variables which have global scope and variables which can alias with other variables // (SSBO, image load store, etc) @@ -730,16 +746,20 @@ protected: SPIRBlock::ContinueBlockType continue_block_type(const SPIRBlock &continue_block) const; void force_recompile(); + void force_recompile_guarantee_forward_progress(); void clear_force_recompile(); bool is_forcing_recompilation() const; bool is_force_recompile = false; + bool is_force_recompile_forward_progress = false; + bool block_is_noop(const SPIRBlock &block) const; bool block_is_loop_candidate(const SPIRBlock &block, SPIRBlock::Method method) const; bool types_are_logically_equivalent(const SPIRType &a, const SPIRType &b) const; void inherit_expression_dependencies(uint32_t dst, uint32_t source); void add_implied_read_expression(SPIRExpression &e, uint32_t source); void add_implied_read_expression(SPIRAccessChain &e, uint32_t source); + void add_active_interface_variable(uint32_t var_id); // For proper multiple entry point support, allow querying if an Input or Output // variable is part of that entry points interface. @@ -765,6 +785,10 @@ protected: // Return true if traversal should continue. // If false, traversal will end immediately. virtual bool handle(spv::Op opcode, const uint32_t *args, uint32_t length) = 0; + virtual bool handle_terminator(const SPIRBlock &) + { + return true; + } virtual bool follow_function_call(const SPIRFunction &) { @@ -911,6 +935,7 @@ protected: // Similar is implemented for images, as well as if subpass inputs are needed. std::unordered_set comparison_ids; bool need_subpass_input = false; + bool need_subpass_input_ms = false; // In certain backends, we will need to use a dummy sampler to be able to emit code. // GLSL does not support texelFetch on texture2D objects, but SPIR-V does, @@ -950,6 +975,7 @@ protected: void add_hierarchy_to_comparison_ids(uint32_t ids); bool need_subpass_input = false; + bool need_subpass_input_ms = false; void add_dependency(uint32_t dst, uint32_t src); }; @@ -979,6 +1005,7 @@ protected: bool id_is_phi_variable(uint32_t id) const; bool id_is_potential_temporary(uint32_t id) const; bool handle(spv::Op op, const uint32_t *args, uint32_t length) override; + bool handle_terminator(const SPIRBlock &block) override; Compiler &compiler; SPIRFunction &entry; @@ -989,7 +1016,8 @@ protected: std::unordered_map> partial_write_variables_to_block; std::unordered_set access_chain_expressions; // Access chains used in multiple blocks mean hoisting all the variables used to construct the access chain as not all backends can use pointers. - std::unordered_map> access_chain_children; + // This is also relevant when forwarding opaque objects since we cannot lower these to temporaries. + std::unordered_map> rvalue_forward_children; const SPIRBlock *current_block = nullptr; }; @@ -1005,15 +1033,32 @@ protected: uint32_t write_count = 0; }; + struct PhysicalBlockMeta + { + uint32_t alignment = 0; + }; + struct PhysicalStorageBufferPointerHandler : OpcodeHandler { explicit PhysicalStorageBufferPointerHandler(Compiler &compiler_); bool handle(spv::Op op, const uint32_t *args, uint32_t length) override; Compiler &compiler; - std::unordered_set types; + + std::unordered_set non_block_types; + std::unordered_map physical_block_type_meta; + std::unordered_map access_chain_to_physical_block; + + void mark_aligned_access(uint32_t id, const uint32_t *args, uint32_t length); + PhysicalBlockMeta *find_block_meta(uint32_t id) const; + bool type_is_bda_block_entry(uint32_t type_id) const; + void setup_meta_chain(uint32_t type_id, uint32_t var_id); + uint32_t get_minimum_scalar_alignment(const SPIRType &type) const; + void analyze_non_block_types_from_block(const SPIRType &type); + uint32_t get_base_non_block_type_id(uint32_t type_id) const; }; void analyze_non_block_pointer_types(); SmallVector physical_storage_non_block_pointer_types; + std::unordered_map physical_storage_type_to_alignment; void analyze_variable_scope(SPIRFunction &function, AnalyzeVariableScopeAccessHandler &handler); void find_function_local_luts(SPIRFunction &function, const AnalyzeVariableScopeAccessHandler &handler, @@ -1085,7 +1130,7 @@ protected: Bitset combined_decoration_for_member(const SPIRType &type, uint32_t index) const; static bool is_desktop_only_format(spv::ImageFormat format); - bool image_is_comparison(const SPIRType &type, uint32_t id) const; + bool is_depth_image(const SPIRType &type, uint32_t id) const; void set_extended_decoration(uint32_t id, ExtendedDecorations decoration, uint32_t value = 0); uint32_t get_extended_decoration(uint32_t id, ExtendedDecorations decoration) const; @@ -1113,6 +1158,11 @@ protected: bool is_vertex_like_shader() const; + // Get the correct case list for the OpSwitch, since it can be either a + // 32 bit wide condition or a 64 bit, but the type is not embedded in the + // instruction itself. + const SmallVector &get_case_list(const SPIRBlock &block) const; + private: // Used only to implement the old deprecated get_entry_point() interface. const SPIREntryPoint &get_first_entry_point(const std::string &name) const; diff --git a/third_party/spirv-cross/spirv_cross_c.cpp b/third_party/spirv-cross/spirv_cross_c.cpp index 866c25d109..f76c14c0d8 100644 --- a/third_party/spirv-cross/spirv_cross_c.cpp +++ b/third_party/spirv-cross/spirv_cross_c.cpp @@ -1,5 +1,6 @@ /* * Copyright 2019-2021 Hans-Kristian Arntzen + * SPDX-License-Identifier: Apache-2.0 OR MIT * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +19,6 @@ * At your option, you may choose to accept this material under either: * 1. The Apache License, Version 2.0, found at , or * 2. The MIT License, found at . - * SPDX-License-Identifier: Apache-2.0 OR MIT. */ #include "spirv_cross_c.h" @@ -194,6 +194,7 @@ struct spvc_resources_s : ScratchMemoryAllocation SmallVector sampled_images; SmallVector atomic_counters; SmallVector push_constant_buffers; + SmallVector shader_record_buffers; SmallVector separate_images; SmallVector separate_samplers; SmallVector acceleration_structures; @@ -251,7 +252,7 @@ spvc_result spvc_context_parse_spirv(spvc_context context, const SpvId *spirv, s pir->context = context; Parser parser(spirv, word_count); parser.parse(); - pir->parsed = move(parser.get_parsed_ir()); + pir->parsed = std::move(parser.get_parsed_ir()); *parsed_ir = pir.get(); context->allocations.push_back(std::move(pir)); } @@ -283,7 +284,7 @@ spvc_result spvc_context_create_compiler(spvc_context context, spvc_backend back { case SPVC_BACKEND_NONE: if (mode == SPVC_CAPTURE_MODE_TAKE_OWNERSHIP) - comp->compiler.reset(new Compiler(move(parsed_ir->parsed))); + comp->compiler.reset(new Compiler(std::move(parsed_ir->parsed))); else if (mode == SPVC_CAPTURE_MODE_COPY) comp->compiler.reset(new Compiler(parsed_ir->parsed)); break; @@ -291,7 +292,7 @@ spvc_result spvc_context_create_compiler(spvc_context context, spvc_backend back #if SPIRV_CROSS_C_API_GLSL case SPVC_BACKEND_GLSL: if (mode == SPVC_CAPTURE_MODE_TAKE_OWNERSHIP) - comp->compiler.reset(new CompilerGLSL(move(parsed_ir->parsed))); + comp->compiler.reset(new CompilerGLSL(std::move(parsed_ir->parsed))); else if (mode == SPVC_CAPTURE_MODE_COPY) comp->compiler.reset(new CompilerGLSL(parsed_ir->parsed)); break; @@ -300,7 +301,7 @@ spvc_result spvc_context_create_compiler(spvc_context context, spvc_backend back #if SPIRV_CROSS_C_API_HLSL case SPVC_BACKEND_HLSL: if (mode == SPVC_CAPTURE_MODE_TAKE_OWNERSHIP) - comp->compiler.reset(new CompilerHLSL(move(parsed_ir->parsed))); + comp->compiler.reset(new CompilerHLSL(std::move(parsed_ir->parsed))); else if (mode == SPVC_CAPTURE_MODE_COPY) comp->compiler.reset(new CompilerHLSL(parsed_ir->parsed)); break; @@ -309,7 +310,7 @@ spvc_result spvc_context_create_compiler(spvc_context context, spvc_backend back #if SPIRV_CROSS_C_API_MSL case SPVC_BACKEND_MSL: if (mode == SPVC_CAPTURE_MODE_TAKE_OWNERSHIP) - comp->compiler.reset(new CompilerMSL(move(parsed_ir->parsed))); + comp->compiler.reset(new CompilerMSL(std::move(parsed_ir->parsed))); else if (mode == SPVC_CAPTURE_MODE_COPY) comp->compiler.reset(new CompilerMSL(parsed_ir->parsed)); break; @@ -318,7 +319,7 @@ spvc_result spvc_context_create_compiler(spvc_context context, spvc_backend back #if SPIRV_CROSS_C_API_CPP case SPVC_BACKEND_CPP: if (mode == SPVC_CAPTURE_MODE_TAKE_OWNERSHIP) - comp->compiler.reset(new CompilerCPP(move(parsed_ir->parsed))); + comp->compiler.reset(new CompilerCPP(std::move(parsed_ir->parsed))); else if (mode == SPVC_CAPTURE_MODE_COPY) comp->compiler.reset(new CompilerCPP(parsed_ir->parsed)); break; @@ -327,7 +328,7 @@ spvc_result spvc_context_create_compiler(spvc_context context, spvc_backend back #if SPIRV_CROSS_C_API_REFLECT case SPVC_BACKEND_JSON: if (mode == SPVC_CAPTURE_MODE_TAKE_OWNERSHIP) - comp->compiler.reset(new CompilerReflection(move(parsed_ir->parsed))); + comp->compiler.reset(new CompilerReflection(std::move(parsed_ir->parsed))); else if (mode == SPVC_CAPTURE_MODE_COPY) comp->compiler.reset(new CompilerReflection(parsed_ir->parsed)); break; @@ -472,6 +473,15 @@ spvc_result spvc_compiler_options_set_uint(spvc_compiler_options options, spvc_c case SPVC_COMPILER_OPTION_GLSL_FORCE_FLATTENED_IO_BLOCKS: options->glsl.force_flattened_io_blocks = value != 0; break; + case SPVC_COMPILER_OPTION_GLSL_OVR_MULTIVIEW_VIEW_COUNT: + options->glsl.ovr_multiview_view_count = value; + break; + case SPVC_COMPILER_OPTION_RELAX_NAN_CHECKS: + options->glsl.relax_nan_checks = value != 0; + break; + case SPVC_COMPILER_OPTION_GLSL_ENABLE_ROW_MAJOR_LOAD_WORKAROUND: + options->glsl.enable_row_major_load_workaround = value != 0; + break; #endif #if SPIRV_CROSS_C_API_HLSL @@ -708,6 +718,30 @@ spvc_result spvc_compiler_options_set_uint(spvc_compiler_options options, spvc_c case SPVC_COMPILER_OPTION_MSL_IOS_SUPPORT_BASE_VERTEX_INSTANCE: options->msl.ios_support_base_vertex_instance = value != 0; break; + + case SPVC_COMPILER_OPTION_MSL_RAW_BUFFER_TESE_INPUT: + options->msl.raw_buffer_tese_input = value != 0; + break; + + case SPVC_COMPILER_OPTION_MSL_SHADER_PATCH_INPUT_BUFFER_INDEX: + options->msl.shader_patch_input_buffer_index = value; + break; + + case SPVC_COMPILER_OPTION_MSL_MANUAL_HELPER_INVOCATION_UPDATES: + options->msl.manual_helper_invocation_updates = value != 0; + break; + + case SPVC_COMPILER_OPTION_MSL_CHECK_DISCARDED_FRAG_STORES: + options->msl.check_discarded_frag_stores = value != 0; + break; + + case SPVC_COMPILER_OPTION_MSL_ARGUMENT_BUFFERS_TIER: + options->msl.argument_buffers_tier = static_cast(value); + break; + + case SPVC_COMPILER_OPTION_MSL_SAMPLE_DREF_LOD_ARRAY_AS_GRAD: + options->msl.sample_dref_lod_array_as_grad = value != 0; + break; #endif default: @@ -1130,9 +1164,9 @@ spvc_result spvc_compiler_msl_add_vertex_attribute(spvc_compiler compiler, const } auto &msl = *static_cast(compiler->compiler.get()); - MSLShaderInput attr; + MSLShaderInterfaceVariable attr; attr.location = va->location; - attr.format = static_cast(va->format); + attr.format = static_cast(va->format); attr.builtin = static_cast(va->builtin); msl.add_msl_shader_input(attr); return SPVC_SUCCESS; @@ -1143,7 +1177,7 @@ spvc_result spvc_compiler_msl_add_vertex_attribute(spvc_compiler compiler, const #endif } -spvc_result spvc_compiler_msl_add_shader_input(spvc_compiler compiler, const spvc_msl_shader_input *si) +spvc_result spvc_compiler_msl_add_shader_input(spvc_compiler compiler, const spvc_msl_shader_interface_var *si) { #if SPIRV_CROSS_C_API_MSL if (compiler->backend != SPVC_BACKEND_MSL) @@ -1153,9 +1187,9 @@ spvc_result spvc_compiler_msl_add_shader_input(spvc_compiler compiler, const spv } auto &msl = *static_cast(compiler->compiler.get()); - MSLShaderInput input; + MSLShaderInterfaceVariable input; input.location = si->location; - input.format = static_cast(si->format); + input.format = static_cast(si->format); input.builtin = static_cast(si->builtin); input.vecsize = si->vecsize; msl.add_msl_shader_input(input); @@ -1167,6 +1201,80 @@ spvc_result spvc_compiler_msl_add_shader_input(spvc_compiler compiler, const spv #endif } +spvc_result spvc_compiler_msl_add_shader_input_2(spvc_compiler compiler, const spvc_msl_shader_interface_var_2 *si) +{ +#if SPIRV_CROSS_C_API_MSL + if (compiler->backend != SPVC_BACKEND_MSL) + { + compiler->context->report_error("MSL function used on a non-MSL backend."); + return SPVC_ERROR_INVALID_ARGUMENT; + } + + auto &msl = *static_cast(compiler->compiler.get()); + MSLShaderInterfaceVariable input; + input.location = si->location; + input.format = static_cast(si->format); + input.builtin = static_cast(si->builtin); + input.vecsize = si->vecsize; + input.rate = static_cast(si->rate); + msl.add_msl_shader_input(input); + return SPVC_SUCCESS; +#else + (void)si; + compiler->context->report_error("MSL function used on a non-MSL backend."); + return SPVC_ERROR_INVALID_ARGUMENT; +#endif +} + +spvc_result spvc_compiler_msl_add_shader_output(spvc_compiler compiler, const spvc_msl_shader_interface_var *so) +{ +#if SPIRV_CROSS_C_API_MSL + if (compiler->backend != SPVC_BACKEND_MSL) + { + compiler->context->report_error("MSL function used on a non-MSL backend."); + return SPVC_ERROR_INVALID_ARGUMENT; + } + + auto &msl = *static_cast(compiler->compiler.get()); + MSLShaderInterfaceVariable output; + output.location = so->location; + output.format = static_cast(so->format); + output.builtin = static_cast(so->builtin); + output.vecsize = so->vecsize; + msl.add_msl_shader_output(output); + return SPVC_SUCCESS; +#else + (void)so; + compiler->context->report_error("MSL function used on a non-MSL backend."); + return SPVC_ERROR_INVALID_ARGUMENT; +#endif +} + +spvc_result spvc_compiler_msl_add_shader_output_2(spvc_compiler compiler, const spvc_msl_shader_interface_var_2 *so) +{ +#if SPIRV_CROSS_C_API_MSL + if (compiler->backend != SPVC_BACKEND_MSL) + { + compiler->context->report_error("MSL function used on a non-MSL backend."); + return SPVC_ERROR_INVALID_ARGUMENT; + } + + auto &msl = *static_cast(compiler->compiler.get()); + MSLShaderInterfaceVariable output; + output.location = so->location; + output.format = static_cast(so->format); + output.builtin = static_cast(so->builtin); + output.vecsize = so->vecsize; + output.rate = static_cast(so->rate); + msl.add_msl_shader_output(output); + return SPVC_SUCCESS; +#else + (void)so; + compiler->context->report_error("MSL function used on a non-MSL backend."); + return SPVC_ERROR_INVALID_ARGUMENT; +#endif +} + spvc_result spvc_compiler_msl_add_resource_binding(spvc_compiler compiler, const spvc_msl_resource_binding *binding) { @@ -1292,6 +1400,24 @@ spvc_bool spvc_compiler_msl_is_shader_input_used(spvc_compiler compiler, unsigne #endif } +spvc_bool spvc_compiler_msl_is_shader_output_used(spvc_compiler compiler, unsigned location) +{ +#if SPIRV_CROSS_C_API_MSL + if (compiler->backend != SPVC_BACKEND_MSL) + { + compiler->context->report_error("MSL function used on a non-MSL backend."); + return SPVC_FALSE; + } + + auto &msl = *static_cast(compiler->compiler.get()); + return msl.is_msl_shader_output_used(location) ? SPVC_TRUE : SPVC_FALSE; +#else + (void)location; + compiler->context->report_error("MSL function used on a non-MSL backend."); + return SPVC_FALSE; +#endif +} + spvc_bool spvc_compiler_msl_is_vertex_attribute_used(spvc_compiler compiler, unsigned location) { return spvc_compiler_msl_is_shader_input_used(compiler, location); @@ -1636,6 +1762,8 @@ bool spvc_resources_s::copy_resources(const ShaderResources &resources) return false; if (!copy_resources(push_constant_buffers, resources.push_constant_buffers)) return false; + if (!copy_resources(shader_record_buffers, resources.shader_record_buffers)) + return false; if (!copy_resources(separate_images, resources.separate_images)) return false; if (!copy_resources(separate_samplers, resources.separate_samplers)) @@ -1789,6 +1917,10 @@ spvc_result spvc_resources_get_resource_list_for_type(spvc_resources resources, list = &resources->acceleration_structures; break; + case SPVC_RESOURCE_TYPE_SHADER_RECORD_BUFFER: + list = &resources->shader_record_buffers; + break; + default: break; } @@ -2403,6 +2535,51 @@ spvc_type_id spvc_constant_get_type(spvc_constant constant) return constant->constant_type; } +void spvc_constant_set_scalar_fp16(spvc_constant constant, unsigned column, unsigned row, unsigned short value) +{ + constant->m.c[column].r[row].u32 = value; +} + +void spvc_constant_set_scalar_fp32(spvc_constant constant, unsigned column, unsigned row, float value) +{ + constant->m.c[column].r[row].f32 = value; +} + +void spvc_constant_set_scalar_fp64(spvc_constant constant, unsigned column, unsigned row, double value) +{ + constant->m.c[column].r[row].f64 = value; +} + +void spvc_constant_set_scalar_u32(spvc_constant constant, unsigned column, unsigned row, unsigned value) +{ + constant->m.c[column].r[row].u32 = value; +} + +void spvc_constant_set_scalar_i32(spvc_constant constant, unsigned column, unsigned row, int value) +{ + constant->m.c[column].r[row].i32 = value; +} + +void spvc_constant_set_scalar_u16(spvc_constant constant, unsigned column, unsigned row, unsigned short value) +{ + constant->m.c[column].r[row].u32 = uint32_t(value); +} + +void spvc_constant_set_scalar_i16(spvc_constant constant, unsigned column, unsigned row, signed short value) +{ + constant->m.c[column].r[row].u32 = uint32_t(value); +} + +void spvc_constant_set_scalar_u8(spvc_constant constant, unsigned column, unsigned row, unsigned char value) +{ + constant->m.c[column].r[row].u32 = uint32_t(value); +} + +void spvc_constant_set_scalar_i8(spvc_constant constant, unsigned column, unsigned row, signed char value) +{ + constant->m.c[column].r[row].u32 = uint32_t(value); +} + spvc_bool spvc_compiler_get_binary_offset_for_decoration(spvc_compiler compiler, spvc_variable_id id, SpvDecoration decoration, unsigned *word_offset) @@ -2505,7 +2682,7 @@ void spvc_msl_vertex_attribute_init(spvc_msl_vertex_attribute *attr) { #if SPIRV_CROSS_C_API_MSL // Crude, but works. - MSLShaderInput attr_default; + MSLShaderInterfaceVariable attr_default; attr->location = attr_default.location; attr->format = static_cast(attr_default.format); attr->builtin = static_cast(attr_default.builtin); @@ -2514,16 +2691,35 @@ void spvc_msl_vertex_attribute_init(spvc_msl_vertex_attribute *attr) #endif } -void spvc_msl_shader_input_init(spvc_msl_shader_input *input) +void spvc_msl_shader_interface_var_init(spvc_msl_shader_interface_var *var) { #if SPIRV_CROSS_C_API_MSL - MSLShaderInput input_default; - input->location = input_default.location; - input->format = static_cast(input_default.format); - input->builtin = static_cast(input_default.builtin); - input->vecsize = input_default.vecsize; + MSLShaderInterfaceVariable var_default; + var->location = var_default.location; + var->format = static_cast(var_default.format); + var->builtin = static_cast(var_default.builtin); + var->vecsize = var_default.vecsize; #else - memset(input, 0, sizeof(*input)); + memset(var, 0, sizeof(*var)); +#endif +} + +void spvc_msl_shader_input_init(spvc_msl_shader_input *input) +{ + spvc_msl_shader_interface_var_init(input); +} + +void spvc_msl_shader_interface_var_init_2(spvc_msl_shader_interface_var_2 *var) +{ +#if SPIRV_CROSS_C_API_MSL + MSLShaderInterfaceVariable var_default; + var->location = var_default.location; + var->format = static_cast(var_default.format); + var->builtin = static_cast(var_default.builtin); + var->vecsize = var_default.vecsize; + var->rate = static_cast(var_default.rate); +#else + memset(var, 0, sizeof(*var)); #endif } diff --git a/third_party/spirv-cross/spirv_cross_c.h b/third_party/spirv-cross/spirv_cross_c.h index 1495a7eac5..7f8c6fad26 100644 --- a/third_party/spirv-cross/spirv_cross_c.h +++ b/third_party/spirv-cross/spirv_cross_c.h @@ -1,5 +1,6 @@ /* * Copyright 2019-2021 Hans-Kristian Arntzen + * SPDX-License-Identifier: Apache-2.0 OR MIT * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +19,6 @@ * At your option, you may choose to accept this material under either: * 1. The Apache License, Version 2.0, found at , or * 2. The MIT License, found at . - * SPDX-License-Identifier: Apache-2.0 OR MIT. */ #ifndef SPIRV_CROSS_C_API_H @@ -40,7 +40,7 @@ extern "C" { /* Bumped if ABI or API breaks backwards compatibility. */ #define SPVC_C_API_VERSION_MAJOR 0 /* Bumped if APIs or enumerations are added in a backwards compatible way. */ -#define SPVC_C_API_VERSION_MINOR 47 +#define SPVC_C_API_VERSION_MINOR 56 /* Bumped if internal implementation details change. */ #define SPVC_C_API_VERSION_PATCH 0 @@ -225,6 +225,7 @@ typedef enum spvc_resource_type SPVC_RESOURCE_TYPE_SEPARATE_SAMPLERS = 11, SPVC_RESOURCE_TYPE_ACCELERATION_STRUCTURE = 12, SPVC_RESOURCE_TYPE_RAY_QUERY = 13, + SPVC_RESOURCE_TYPE_SHADER_RECORD_BUFFER = 14, SPVC_RESOURCE_TYPE_INT_MAX = 0x7fffffff } spvc_resource_type; @@ -290,23 +291,29 @@ typedef enum spvc_msl_index_type } spvc_msl_index_type; /* Maps to C++ API. */ -typedef enum spvc_msl_shader_input_format +typedef enum spvc_msl_shader_variable_format { - SPVC_MSL_SHADER_INPUT_FORMAT_OTHER = 0, - SPVC_MSL_SHADER_INPUT_FORMAT_UINT8 = 1, - SPVC_MSL_SHADER_INPUT_FORMAT_UINT16 = 2, - SPVC_MSL_SHADER_INPUT_FORMAT_ANY16 = 3, - SPVC_MSL_SHADER_INPUT_FORMAT_ANY32 = 4, + SPVC_MSL_SHADER_VARIABLE_FORMAT_OTHER = 0, + SPVC_MSL_SHADER_VARIABLE_FORMAT_UINT8 = 1, + SPVC_MSL_SHADER_VARIABLE_FORMAT_UINT16 = 2, + SPVC_MSL_SHADER_VARIABLE_FORMAT_ANY16 = 3, + SPVC_MSL_SHADER_VARIABLE_FORMAT_ANY32 = 4, /* Deprecated names. */ - SPVC_MSL_VERTEX_FORMAT_OTHER = SPVC_MSL_SHADER_INPUT_FORMAT_OTHER, - SPVC_MSL_VERTEX_FORMAT_UINT8 = SPVC_MSL_SHADER_INPUT_FORMAT_UINT8, - SPVC_MSL_VERTEX_FORMAT_UINT16 = SPVC_MSL_SHADER_INPUT_FORMAT_UINT16, + SPVC_MSL_VERTEX_FORMAT_OTHER = SPVC_MSL_SHADER_VARIABLE_FORMAT_OTHER, + SPVC_MSL_VERTEX_FORMAT_UINT8 = SPVC_MSL_SHADER_VARIABLE_FORMAT_UINT8, + SPVC_MSL_VERTEX_FORMAT_UINT16 = SPVC_MSL_SHADER_VARIABLE_FORMAT_UINT16, + SPVC_MSL_SHADER_INPUT_FORMAT_OTHER = SPVC_MSL_SHADER_VARIABLE_FORMAT_OTHER, + SPVC_MSL_SHADER_INPUT_FORMAT_UINT8 = SPVC_MSL_SHADER_VARIABLE_FORMAT_UINT8, + SPVC_MSL_SHADER_INPUT_FORMAT_UINT16 = SPVC_MSL_SHADER_VARIABLE_FORMAT_UINT16, + SPVC_MSL_SHADER_INPUT_FORMAT_ANY16 = SPVC_MSL_SHADER_VARIABLE_FORMAT_ANY16, + SPVC_MSL_SHADER_INPUT_FORMAT_ANY32 = SPVC_MSL_SHADER_VARIABLE_FORMAT_ANY32, + SPVC_MSL_SHADER_INPUT_FORMAT_INT_MAX = 0x7fffffff -} spvc_msl_shader_input_format, spvc_msl_vertex_format; +} spvc_msl_shader_variable_format, spvc_msl_shader_input_format, spvc_msl_vertex_format; -/* Maps to C++ API. Deprecated; use spvc_msl_shader_input. */ +/* Maps to C++ API. Deprecated; use spvc_msl_shader_interface_var. */ typedef struct spvc_msl_vertex_attribute { unsigned location; @@ -329,20 +336,50 @@ typedef struct spvc_msl_vertex_attribute */ SPVC_PUBLIC_API void spvc_msl_vertex_attribute_init(spvc_msl_vertex_attribute *attr); -/* Maps to C++ API. */ -typedef struct spvc_msl_shader_input +/* Maps to C++ API. Deprecated; use spvc_msl_shader_interface_var_2. */ +typedef struct spvc_msl_shader_interface_var { unsigned location; spvc_msl_vertex_format format; SpvBuiltIn builtin; unsigned vecsize; -} spvc_msl_shader_input; +} spvc_msl_shader_interface_var, spvc_msl_shader_input; /* * Initializes the shader input struct. + * Deprecated. Use spvc_msl_shader_interface_var_init_2(). + */ +SPVC_PUBLIC_API void spvc_msl_shader_interface_var_init(spvc_msl_shader_interface_var *var); +/* + * Deprecated. Use spvc_msl_shader_interface_var_init_2(). */ SPVC_PUBLIC_API void spvc_msl_shader_input_init(spvc_msl_shader_input *input); +/* Maps to C++ API. */ +typedef enum spvc_msl_shader_variable_rate +{ + SPVC_MSL_SHADER_VARIABLE_RATE_PER_VERTEX = 0, + SPVC_MSL_SHADER_VARIABLE_RATE_PER_PRIMITIVE = 1, + SPVC_MSL_SHADER_VARIABLE_RATE_PER_PATCH = 2, + + SPVC_MSL_SHADER_VARIABLE_RATE_INT_MAX = 0x7fffffff, +} spvc_msl_shader_variable_rate; + +/* Maps to C++ API. */ +typedef struct spvc_msl_shader_interface_var_2 +{ + unsigned location; + spvc_msl_shader_variable_format format; + SpvBuiltIn builtin; + unsigned vecsize; + spvc_msl_shader_variable_rate rate; +} spvc_msl_shader_interface_var_2; + +/* + * Initializes the shader interface variable struct. + */ +SPVC_PUBLIC_API void spvc_msl_shader_interface_var_init_2(spvc_msl_shader_interface_var_2 *var); + /* Maps to C++ API. */ typedef struct spvc_msl_resource_binding { @@ -675,6 +712,20 @@ typedef enum spvc_compiler_option SPVC_COMPILER_OPTION_MSL_FORCE_SAMPLE_RATE_SHADING = 75 | SPVC_COMPILER_OPTION_MSL_BIT, SPVC_COMPILER_OPTION_MSL_IOS_SUPPORT_BASE_VERTEX_INSTANCE = 76 | SPVC_COMPILER_OPTION_MSL_BIT, + SPVC_COMPILER_OPTION_GLSL_OVR_MULTIVIEW_VIEW_COUNT = 77 | SPVC_COMPILER_OPTION_GLSL_BIT, + + SPVC_COMPILER_OPTION_RELAX_NAN_CHECKS = 78 | SPVC_COMPILER_OPTION_COMMON_BIT, + + SPVC_COMPILER_OPTION_MSL_RAW_BUFFER_TESE_INPUT = 79 | SPVC_COMPILER_OPTION_MSL_BIT, + SPVC_COMPILER_OPTION_MSL_SHADER_PATCH_INPUT_BUFFER_INDEX = 80 | SPVC_COMPILER_OPTION_MSL_BIT, + SPVC_COMPILER_OPTION_MSL_MANUAL_HELPER_INVOCATION_UPDATES = 81 | SPVC_COMPILER_OPTION_MSL_BIT, + SPVC_COMPILER_OPTION_MSL_CHECK_DISCARDED_FRAG_STORES = 82 | SPVC_COMPILER_OPTION_MSL_BIT, + + SPVC_COMPILER_OPTION_GLSL_ENABLE_ROW_MAJOR_LOAD_WORKAROUND = 83 | SPVC_COMPILER_OPTION_GLSL_BIT, + + SPVC_COMPILER_OPTION_MSL_ARGUMENT_BUFFERS_TIER = 84 | SPVC_COMPILER_OPTION_MSL_BIT, + SPVC_COMPILER_OPTION_MSL_SAMPLE_DREF_LOD_ARRAY_AS_GRAD = 85 | SPVC_COMPILER_OPTION_MSL_BIT, + SPVC_COMPILER_OPTION_INT_MAX = 0x7fffffff } spvc_compiler_option; @@ -781,14 +832,23 @@ SPVC_PUBLIC_API spvc_result spvc_compiler_msl_add_vertex_attribute(spvc_compiler const spvc_msl_vertex_attribute *attrs); SPVC_PUBLIC_API spvc_result spvc_compiler_msl_add_resource_binding(spvc_compiler compiler, const spvc_msl_resource_binding *binding); +/* Deprecated; use spvc_compiler_msl_add_shader_input_2(). */ SPVC_PUBLIC_API spvc_result spvc_compiler_msl_add_shader_input(spvc_compiler compiler, - const spvc_msl_shader_input *input); + const spvc_msl_shader_interface_var *input); +SPVC_PUBLIC_API spvc_result spvc_compiler_msl_add_shader_input_2(spvc_compiler compiler, + const spvc_msl_shader_interface_var_2 *input); +/* Deprecated; use spvc_compiler_msl_add_shader_output_2(). */ +SPVC_PUBLIC_API spvc_result spvc_compiler_msl_add_shader_output(spvc_compiler compiler, + const spvc_msl_shader_interface_var *output); +SPVC_PUBLIC_API spvc_result spvc_compiler_msl_add_shader_output_2(spvc_compiler compiler, + const spvc_msl_shader_interface_var_2 *output); SPVC_PUBLIC_API spvc_result spvc_compiler_msl_add_discrete_descriptor_set(spvc_compiler compiler, unsigned desc_set); SPVC_PUBLIC_API spvc_result spvc_compiler_msl_set_argument_buffer_device_address_space(spvc_compiler compiler, unsigned desc_set, spvc_bool device_address); /* Obsolete, use is_shader_input_used. */ SPVC_PUBLIC_API spvc_bool spvc_compiler_msl_is_vertex_attribute_used(spvc_compiler compiler, unsigned location); SPVC_PUBLIC_API spvc_bool spvc_compiler_msl_is_shader_input_used(spvc_compiler compiler, unsigned location); +SPVC_PUBLIC_API spvc_bool spvc_compiler_msl_is_shader_output_used(spvc_compiler compiler, unsigned location); SPVC_PUBLIC_API spvc_bool spvc_compiler_msl_is_resource_used(spvc_compiler compiler, SpvExecutionModel model, @@ -989,6 +1049,19 @@ SPVC_PUBLIC_API int spvc_constant_get_scalar_i8(spvc_constant constant, unsigned SPVC_PUBLIC_API void spvc_constant_get_subconstants(spvc_constant constant, const spvc_constant_id **constituents, size_t *count); SPVC_PUBLIC_API spvc_type_id spvc_constant_get_type(spvc_constant constant); +/* + * C implementation of the C++ api. + */ +SPVC_PUBLIC_API void spvc_constant_set_scalar_fp16(spvc_constant constant, unsigned column, unsigned row, unsigned short value); +SPVC_PUBLIC_API void spvc_constant_set_scalar_fp32(spvc_constant constant, unsigned column, unsigned row, float value); +SPVC_PUBLIC_API void spvc_constant_set_scalar_fp64(spvc_constant constant, unsigned column, unsigned row, double value); +SPVC_PUBLIC_API void spvc_constant_set_scalar_u32(spvc_constant constant, unsigned column, unsigned row, unsigned value); +SPVC_PUBLIC_API void spvc_constant_set_scalar_i32(spvc_constant constant, unsigned column, unsigned row, int value); +SPVC_PUBLIC_API void spvc_constant_set_scalar_u16(spvc_constant constant, unsigned column, unsigned row, unsigned short value); +SPVC_PUBLIC_API void spvc_constant_set_scalar_i16(spvc_constant constant, unsigned column, unsigned row, signed short value); +SPVC_PUBLIC_API void spvc_constant_set_scalar_u8(spvc_constant constant, unsigned column, unsigned row, unsigned char value); +SPVC_PUBLIC_API void spvc_constant_set_scalar_i8(spvc_constant constant, unsigned column, unsigned row, signed char value); + /* * Misc reflection * Maps to C++ API. diff --git a/third_party/spirv-cross/spirv_cross_containers.hpp b/third_party/spirv-cross/spirv_cross_containers.hpp index b9c3737c9d..e79b32093c 100644 --- a/third_party/spirv-cross/spirv_cross_containers.hpp +++ b/third_party/spirv-cross/spirv_cross_containers.hpp @@ -1,5 +1,6 @@ /* * Copyright 2019-2021 Hans-Kristian Arntzen + * SPDX-License-Identifier: Apache-2.0 OR MIT * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +19,6 @@ * At your option, you may choose to accept this material under either: * 1. The Apache License, Version 2.0, found at , or * 2. The MIT License, found at . - * SPDX-License-Identifier: Apache-2.0 OR MIT. */ #ifndef SPIRV_CROSS_CONTAINERS_HPP @@ -26,6 +26,7 @@ #include "spirv_cross_error_handling.hpp" #include +#include #include #include #include @@ -210,7 +211,8 @@ public: buffer_capacity = N; } - SmallVector(const T *arg_list_begin, const T *arg_list_end) SPIRV_CROSS_NOEXCEPT : SmallVector() + template + SmallVector(const U *arg_list_begin, const U *arg_list_end) SPIRV_CROSS_NOEXCEPT : SmallVector() { auto count = size_t(arg_list_end - arg_list_begin); reserve(count); @@ -219,7 +221,13 @@ public: this->buffer_size = count; } - SmallVector(std::initializer_list init) SPIRV_CROSS_NOEXCEPT : SmallVector(init.begin(), init.end()) + template + SmallVector(std::initializer_list init) SPIRV_CROSS_NOEXCEPT : SmallVector(init.begin(), init.end()) + { + } + + template + explicit SmallVector(const U (&init)[M]) SPIRV_CROSS_NOEXCEPT : SmallVector(init, init + M) { } @@ -327,8 +335,8 @@ public: void reserve(size_t count) SPIRV_CROSS_NOEXCEPT { - if ((count > std::numeric_limits::max() / sizeof(T)) || - (count > std::numeric_limits::max() / 2)) + if ((count > (std::numeric_limits::max)() / sizeof(T)) || + (count > (std::numeric_limits::max)() / 2)) { // Only way this should ever happen is with garbage input, terminate. std::terminate(); @@ -546,7 +554,7 @@ class ObjectPoolBase { public: virtual ~ObjectPoolBase() = default; - virtual void free_opaque(void *ptr) = 0; + virtual void deallocate_opaque(void *ptr) = 0; }; template @@ -580,15 +588,15 @@ public: return ptr; } - void free(T *ptr) + void deallocate(T *ptr) { ptr->~T(); vacants.push_back(ptr); } - void free_opaque(void *ptr) override + void deallocate_opaque(void *ptr) override { - free(static_cast(ptr)); + deallocate(static_cast(ptr)); } void clear() diff --git a/third_party/spirv-cross/spirv_cross_error_handling.hpp b/third_party/spirv-cross/spirv_cross_error_handling.hpp index 32af107eb1..e96ebb9a79 100644 --- a/third_party/spirv-cross/spirv_cross_error_handling.hpp +++ b/third_party/spirv-cross/spirv_cross_error_handling.hpp @@ -1,5 +1,6 @@ /* * Copyright 2015-2021 Arm Limited + * SPDX-License-Identifier: Apache-2.0 OR MIT * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +19,6 @@ * At your option, you may choose to accept this material under either: * 1. The Apache License, Version 2.0, found at , or * 2. The MIT License, found at . - * SPDX-License-Identifier: Apache-2.0 OR MIT. */ #ifndef SPIRV_CROSS_ERROR_HANDLING diff --git a/third_party/spirv-cross/spirv_cross_parsed_ir.cpp b/third_party/spirv-cross/spirv_cross_parsed_ir.cpp index e1a13c5e03..8d1acf69f9 100644 --- a/third_party/spirv-cross/spirv_cross_parsed_ir.cpp +++ b/third_party/spirv-cross/spirv_cross_parsed_ir.cpp @@ -1,5 +1,6 @@ /* * Copyright 2018-2021 Arm Limited + * SPDX-License-Identifier: Apache-2.0 OR MIT * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +19,6 @@ * At your option, you may choose to accept this material under either: * 1. The Apache License, Version 2.0, found at , or * 2. The MIT License, found at . - * SPDX-License-Identifier: Apache-2.0 OR MIT. */ #include "spirv_cross_parsed_ir.hpp" @@ -54,26 +54,26 @@ ParsedIR::ParsedIR() // Should have been default-implemented, but need this on MSVC 2013. ParsedIR::ParsedIR(ParsedIR &&other) SPIRV_CROSS_NOEXCEPT { - *this = move(other); + *this = std::move(other); } ParsedIR &ParsedIR::operator=(ParsedIR &&other) SPIRV_CROSS_NOEXCEPT { if (this != &other) { - pool_group = move(other.pool_group); - spirv = move(other.spirv); - meta = move(other.meta); + pool_group = std::move(other.pool_group); + spirv = std::move(other.spirv); + meta = std::move(other.meta); for (int i = 0; i < TypeCount; i++) - ids_for_type[i] = move(other.ids_for_type[i]); - ids_for_constant_or_type = move(other.ids_for_constant_or_type); - ids_for_constant_or_variable = move(other.ids_for_constant_or_variable); - declared_capabilities = move(other.declared_capabilities); - declared_extensions = move(other.declared_extensions); - block_meta = move(other.block_meta); - continue_block_to_loop_header = move(other.continue_block_to_loop_header); - entry_points = move(other.entry_points); - ids = move(other.ids); + ids_for_type[i] = std::move(other.ids_for_type[i]); + ids_for_constant_undef_or_type = std::move(other.ids_for_constant_undef_or_type); + ids_for_constant_or_variable = std::move(other.ids_for_constant_or_variable); + declared_capabilities = std::move(other.declared_capabilities); + declared_extensions = std::move(other.declared_extensions); + block_meta = std::move(other.block_meta); + continue_block_to_loop_header = std::move(other.continue_block_to_loop_header); + entry_points = std::move(other.entry_points); + ids = std::move(other.ids); addressing_model = other.addressing_model; memory_model = other.memory_model; @@ -83,6 +83,7 @@ ParsedIR &ParsedIR::operator=(ParsedIR &&other) SPIRV_CROSS_NOEXCEPT loop_iteration_depth_soft = other.loop_iteration_depth_soft; meta_needing_name_fixup = std::move(other.meta_needing_name_fixup); + load_type_width = std::move(other.load_type_width); } return *this; } @@ -101,7 +102,7 @@ ParsedIR &ParsedIR::operator=(const ParsedIR &other) meta = other.meta; for (int i = 0; i < TypeCount; i++) ids_for_type[i] = other.ids_for_type[i]; - ids_for_constant_or_type = other.ids_for_constant_or_type; + ids_for_constant_undef_or_type = other.ids_for_constant_undef_or_type; ids_for_constant_or_variable = other.ids_for_constant_or_variable; declared_capabilities = other.declared_capabilities; declared_extensions = other.declared_extensions; @@ -115,7 +116,9 @@ ParsedIR &ParsedIR::operator=(const ParsedIR &other) addressing_model = other.addressing_model; memory_model = other.memory_model; + meta_needing_name_fixup = other.meta_needing_name_fixup; + load_type_width = other.load_type_width; // Very deliberate copying of IDs. There is no default copy constructor, nor a simple default constructor. // Construct object first so we have the correct allocator set-up, then we can copy object into our new pool group. @@ -327,6 +330,10 @@ void ParsedIR::fixup_reserved_names() { for (uint32_t id : meta_needing_name_fixup) { + // Don't rename remapped variables like 'gl_LastFragDepthARM'. + if (ids[id].get_type() == TypeVariable && get(id).remapped_variable) + continue; + auto &m = meta[id]; sanitize_identifier(m.decoration.alias, false, false); for (auto &memb : m.members) @@ -346,7 +353,7 @@ void ParsedIR::set_name(ID id, const string &name) void ParsedIR::set_member_name(TypeID id, uint32_t index, const string &name) { auto &m = meta[id]; - m.members.resize(max(meta[id].members.size(), size_t(index) + 1)); + m.members.resize(max(m.members.size(), size_t(index) + 1)); m.members[index].alias = name; if (!is_valid_identifier(name) || is_reserved_identifier(name, true, false)) meta_needing_name_fixup.insert(id); @@ -448,8 +455,9 @@ void ParsedIR::set_decoration(ID id, Decoration decoration, uint32_t argument) void ParsedIR::set_member_decoration(TypeID id, uint32_t index, Decoration decoration, uint32_t argument) { - meta[id].members.resize(max(meta[id].members.size(), size_t(index) + 1)); - auto &dec = meta[id].members[index]; + auto &m = meta[id]; + m.members.resize(max(m.members.size(), size_t(index) + 1)); + auto &dec = m.members[index]; dec.decoration_flags.set(decoration); switch (decoration) @@ -789,7 +797,8 @@ const Bitset &ParsedIR::get_decoration_bitset(ID id) const void ParsedIR::set_member_decoration_string(TypeID id, uint32_t index, Decoration decoration, const string &argument) { - meta[id].members.resize(max(meta[id].members.size(), size_t(index) + 1)); + auto &m = meta[id]; + m.members.resize(max(m.members.size(), size_t(index) + 1)); auto &dec = meta[id].members[index]; dec.decoration_flags.set(decoration); @@ -925,7 +934,7 @@ void ParsedIR::add_typed_id(Types type, ID id) { case TypeConstant: ids_for_constant_or_variable.push_back(id); - ids_for_constant_or_type.push_back(id); + ids_for_constant_undef_or_type.push_back(id); break; case TypeVariable: @@ -934,7 +943,8 @@ void ParsedIR::add_typed_id(Types type, ID id) case TypeType: case TypeConstantOp: - ids_for_constant_or_type.push_back(id); + case TypeUndef: + ids_for_constant_undef_or_type.push_back(id); break; default: @@ -996,7 +1006,7 @@ ParsedIR::LoopLock::LoopLock(uint32_t *lock_) ParsedIR::LoopLock::LoopLock(LoopLock &&other) SPIRV_CROSS_NOEXCEPT { - *this = move(other); + *this = std::move(other); } ParsedIR::LoopLock &ParsedIR::LoopLock::operator=(LoopLock &&other) SPIRV_CROSS_NOEXCEPT diff --git a/third_party/spirv-cross/spirv_cross_parsed_ir.hpp b/third_party/spirv-cross/spirv_cross_parsed_ir.hpp index 88a0691964..7f35c3815c 100644 --- a/third_party/spirv-cross/spirv_cross_parsed_ir.hpp +++ b/third_party/spirv-cross/spirv_cross_parsed_ir.hpp @@ -1,5 +1,6 @@ /* * Copyright 2018-2021 Arm Limited + * SPDX-License-Identifier: Apache-2.0 OR MIT * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +19,6 @@ * At your option, you may choose to accept this material under either: * 1. The Apache License, Version 2.0, found at , or * 2. The MIT License, found at . - * SPDX-License-Identifier: Apache-2.0 OR MIT. */ #ifndef SPIRV_CROSS_PARSED_IR_HPP @@ -74,10 +74,17 @@ public: // Special purpose lists which contain a union of types. // This is needed so we can declare specialization constants and structs in an interleaved fashion, // among other things. - // Constants can be of struct type, and struct array sizes can use specialization constants. - SmallVector ids_for_constant_or_type; + // Constants can be undef or of struct type, and struct array sizes can use specialization constants. + SmallVector ids_for_constant_undef_or_type; SmallVector ids_for_constant_or_variable; + // We need to keep track of the width the Ops that contains a type for the + // OpSwitch instruction, since this one doesn't contains the type in the + // instruction itself. And in some case we need to cast the condition to + // wider types. We only need the width to do the branch fixup since the + // type check itself can be done at runtime + std::unordered_map load_type_width; + // Declared capabilities and extensions in the SPIR-V module. // Not really used except for reflection at the moment. SmallVector declared_capabilities; diff --git a/third_party/spirv-cross/spirv_cross_util.cpp b/third_party/spirv-cross/spirv_cross_util.cpp index 9ce6d4fb7a..7cff010d1c 100644 --- a/third_party/spirv-cross/spirv_cross_util.cpp +++ b/third_party/spirv-cross/spirv_cross_util.cpp @@ -1,5 +1,6 @@ /* * Copyright 2015-2021 Arm Limited + * SPDX-License-Identifier: Apache-2.0 OR MIT * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +19,6 @@ * At your option, you may choose to accept this material under either: * 1. The Apache License, Version 2.0, found at , or * 2. The MIT License, found at . - * SPDX-License-Identifier: Apache-2.0 OR MIT. */ #include "spirv_cross_util.hpp" diff --git a/third_party/spirv-cross/spirv_cross_util.hpp b/third_party/spirv-cross/spirv_cross_util.hpp index daa4a7900e..e6e3fcdb63 100644 --- a/third_party/spirv-cross/spirv_cross_util.hpp +++ b/third_party/spirv-cross/spirv_cross_util.hpp @@ -1,5 +1,6 @@ /* * Copyright 2015-2021 Arm Limited + * SPDX-License-Identifier: Apache-2.0 OR MIT * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +19,6 @@ * At your option, you may choose to accept this material under either: * 1. The Apache License, Version 2.0, found at , or * 2. The MIT License, found at . - * SPDX-License-Identifier: Apache-2.0 OR MIT. */ #ifndef SPIRV_CROSS_UTIL_HPP diff --git a/third_party/spirv-cross/spirv_glsl.cpp b/third_party/spirv-cross/spirv_glsl.cpp index 38d7f5ef5f..88a82c9aaa 100644 --- a/third_party/spirv-cross/spirv_glsl.cpp +++ b/third_party/spirv-cross/spirv_glsl.cpp @@ -1,5 +1,6 @@ /* * Copyright 2015-2021 Arm Limited + * SPDX-License-Identifier: Apache-2.0 OR MIT * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +19,6 @@ * At your option, you may choose to accept this material under either: * 1. The Apache License, Version 2.0, found at , or * 2. The MIT License, found at . - * SPDX-License-Identifier: Apache-2.0 OR MIT. */ #include "spirv_glsl.hpp" @@ -308,8 +308,19 @@ const char *CompilerGLSL::vector_swizzle(int vecsize, int index) return swizzle[vecsize - 1][index]; } -void CompilerGLSL::reset() +void CompilerGLSL::reset(uint32_t iteration_count) { + // Sanity check the iteration count to be robust against a certain class of bugs where + // we keep forcing recompilations without making clear forward progress. + // In buggy situations we will loop forever, or loop for an unbounded number of iterations. + // Certain types of recompilations are considered to make forward progress, + // but in almost all situations, we'll never see more than 3 iterations. + // It is highly context-sensitive when we need to force recompilation, + // and it is not practical with the current architecture + // to resolve everything up front. + if (iteration_count >= options.force_recompile_max_debug_iterations && !is_force_recompile_forward_progress) + SPIRV_CROSS_THROW("Maximum compilation loops detected and no forward progress was made. Must be a SPIRV-Cross bug!"); + // We do some speculative optimizations which should pretty much always work out, // but just in case the SPIR-V is rather weird, recompile until it's happy. // This typically only means one extra pass. @@ -317,6 +328,7 @@ void CompilerGLSL::reset() // Clear invalid expression tracking. invalid_expressions.clear(); + composite_insert_overwritten.clear(); current_function = nullptr; // Clear temporary usage tracking. @@ -327,6 +339,8 @@ void CompilerGLSL::reset() // Ensure that we declare phi-variable copies even if the original declaration isn't deferred flushed_phi_variables.clear(); + current_emitting_switch_stack.clear(); + reset_name_caches(); ir.for_each_typed_id([&](uint32_t, SPIRFunction &func) { @@ -405,10 +419,9 @@ void CompilerGLSL::find_static_extensions() } else if (type.basetype == SPIRType::Int64 || type.basetype == SPIRType::UInt64) { - if (options.es) - SPIRV_CROSS_THROW("64-bit integers not supported in ES profile."); - if (!options.es) - require_extension_internal("GL_ARB_gpu_shader_int64"); + if (options.es && options.version < 310) // GL_NV_gpu_shader5 fallback requires 310. + SPIRV_CROSS_THROW("64-bit integers not supported in ES profile before version 310."); + require_extension_internal("GL_ARB_gpu_shader_int64"); } else if (type.basetype == SPIRType::Half) { @@ -477,7 +490,8 @@ void CompilerGLSL::find_static_extensions() // Need to figure out if we should target KHR or NV extension based on capabilities. for (auto &cap : ir.declared_capabilities) { - if (cap == CapabilityRayTracingKHR || cap == CapabilityRayQueryKHR) + if (cap == CapabilityRayTracingKHR || cap == CapabilityRayQueryKHR || + cap == CapabilityRayTraversalPrimitiveCullingKHR) { ray_tracing_is_khr = true; break; @@ -495,6 +509,15 @@ void CompilerGLSL::find_static_extensions() require_extension_internal("GL_NV_ray_tracing"); break; + case ExecutionModelMeshEXT: + case ExecutionModelTaskEXT: + if (options.es || options.version < 450) + SPIRV_CROSS_THROW("Mesh shaders require GLSL 450 or above."); + if (!options.vulkan_semantics) + SPIRV_CROSS_THROW("Mesh shaders require Vulkan semantics."); + require_extension_internal("GL_EXT_mesh_shader"); + break; + default: break; } @@ -578,10 +601,62 @@ void CompilerGLSL::find_static_extensions() case CapabilityVariablePointersStorageBuffer: SPIRV_CROSS_THROW("VariablePointers capability is not supported in GLSL."); + case CapabilityMultiView: + if (options.vulkan_semantics) + require_extension_internal("GL_EXT_multiview"); + else + { + require_extension_internal("GL_OVR_multiview2"); + if (options.ovr_multiview_view_count == 0) + SPIRV_CROSS_THROW("ovr_multiview_view_count must be non-zero when using GL_OVR_multiview2."); + if (get_execution_model() != ExecutionModelVertex) + SPIRV_CROSS_THROW("OVR_multiview2 can only be used with Vertex shaders."); + } + break; + + case CapabilityRayQueryKHR: + if (options.es || options.version < 460 || !options.vulkan_semantics) + SPIRV_CROSS_THROW("RayQuery requires Vulkan GLSL 460."); + require_extension_internal("GL_EXT_ray_query"); + ray_tracing_is_khr = true; + break; + + case CapabilityRayTraversalPrimitiveCullingKHR: + if (options.es || options.version < 460 || !options.vulkan_semantics) + SPIRV_CROSS_THROW("RayQuery requires Vulkan GLSL 460."); + require_extension_internal("GL_EXT_ray_flags_primitive_culling"); + ray_tracing_is_khr = true; + break; + default: break; } } + + if (options.ovr_multiview_view_count) + { + if (options.vulkan_semantics) + SPIRV_CROSS_THROW("OVR_multiview2 cannot be used with Vulkan semantics."); + if (get_execution_model() != ExecutionModelVertex) + SPIRV_CROSS_THROW("OVR_multiview2 can only be used with Vertex shaders."); + require_extension_internal("GL_OVR_multiview2"); + } + + // KHR one is likely to get promoted at some point, so if we don't see an explicit SPIR-V extension, assume KHR. + for (auto &ext : ir.declared_extensions) + if (ext == "SPV_NV_fragment_shader_barycentric") + barycentric_is_nv = true; +} + +void CompilerGLSL::require_polyfill(Polyfill polyfill, bool relaxed) +{ + uint32_t &polyfills = (relaxed && options.es) ? required_polyfills_relaxed : required_polyfills; + + if ((polyfills & polyfill) == 0) + { + polyfills |= polyfill; + force_recompile(); + } } void CompilerGLSL::ray_tracing_khr_fixup_locations() @@ -606,19 +681,22 @@ string CompilerGLSL::compile() { // only NV_gpu_shader5 supports divergent indexing on OpenGL, and it does so without extra qualifiers backend.nonuniform_qualifier = ""; - backend.needs_row_major_load_workaround = true; + backend.needs_row_major_load_workaround = options.enable_row_major_load_workaround; } backend.allow_precision_qualifiers = options.vulkan_semantics || options.es; backend.force_gl_in_out_block = true; backend.supports_extensions = true; backend.use_array_constructor = true; - - backend.support_precise_qualifier = (!options.es && options.version >= 400) || (options.es && options.version >= 320); + backend.workgroup_size_is_hidden = true; + backend.requires_relaxed_precision_analysis = options.es || options.vulkan_semantics; + backend.support_precise_qualifier = + (!options.es && options.version >= 400) || (options.es && options.version >= 320); if (is_legacy_es()) backend.support_case_fallthrough = false; // Scan the SPIR-V to find trivial uses of extensions. + fixup_anonymous_struct_names(); fixup_type_alias(); reorder_type_alias(); build_function_control_flow_graphs_and_analyze(); @@ -638,10 +716,7 @@ string CompilerGLSL::compile() uint32_t pass_count = 0; do { - if (pass_count >= 3) - SPIRV_CROSS_THROW("Over 3 compilation loops detected. Must be a bug!"); - - reset(); + reset(pass_count); buffer.reset(); @@ -649,6 +724,11 @@ string CompilerGLSL::compile() emit_resources(); emit_extension_workarounds(get_execution_model()); + if (required_polyfills != 0) + emit_polyfills(required_polyfills, false); + if (options.es && required_polyfills_relaxed != 0) + emit_polyfills(required_polyfills_relaxed, true); + emit_function(get(ir.default_entry_point), Bitset()); pass_count++; @@ -661,15 +741,9 @@ string CompilerGLSL::compile() statement("void main()"); begin_scope(); statement("// Interlocks were used in a way not compatible with GLSL, this is very slow."); - if (options.es) - statement("beginInvocationInterlockNV();"); - else - statement("beginInvocationInterlockARB();"); + statement("SPIRV_Cross_beginInvocationInterlock();"); statement("spvMainInterlockedBody();"); - if (options.es) - statement("endInvocationInterlockNV();"); - else - statement("endInvocationInterlockARB();"); + statement("SPIRV_Cross_endInvocationInterlock();"); end_scope(); } @@ -688,6 +762,8 @@ void CompilerGLSL::build_workgroup_size(SmallVector &arguments, const Sp const SpecializationConstant &wg_y, const SpecializationConstant &wg_z) { auto &execution = get_entry_point(); + bool builtin_workgroup = execution.workgroup_size.constant != 0; + bool use_local_size_id = !builtin_workgroup && execution.flags.get(ExecutionModeLocalSizeId); if (wg_x.id) { @@ -696,6 +772,8 @@ void CompilerGLSL::build_workgroup_size(SmallVector &arguments, const Sp else arguments.push_back(join("local_size_x = ", get(wg_x.id).specialization_constant_macro_name)); } + else if (use_local_size_id && execution.workgroup_size.id_x) + arguments.push_back(join("local_size_x = ", get(execution.workgroup_size.id_x).scalar())); else arguments.push_back(join("local_size_x = ", execution.workgroup_size.x)); @@ -706,6 +784,8 @@ void CompilerGLSL::build_workgroup_size(SmallVector &arguments, const Sp else arguments.push_back(join("local_size_y = ", get(wg_y.id).specialization_constant_macro_name)); } + else if (use_local_size_id && execution.workgroup_size.id_y) + arguments.push_back(join("local_size_y = ", get(execution.workgroup_size.id_y).scalar())); else arguments.push_back(join("local_size_y = ", execution.workgroup_size.y)); @@ -716,6 +796,8 @@ void CompilerGLSL::build_workgroup_size(SmallVector &arguments, const Sp else arguments.push_back(join("local_size_z = ", get(wg_z.id).specialization_constant_macro_name)); } + else if (use_local_size_id && execution.workgroup_size.id_z) + arguments.push_back(join("local_size_z = ", get(execution.workgroup_size.id_z).scalar())); else arguments.push_back(join("local_size_z = ", execution.workgroup_size.z)); } @@ -759,10 +841,12 @@ void CompilerGLSL::emit_header() require_extension_internal("GL_ARB_post_depth_coverage"); // Needed for: layout({pixel,sample}_interlock_[un]ordered) in; - if (execution.flags.get(ExecutionModePixelInterlockOrderedEXT) || - execution.flags.get(ExecutionModePixelInterlockUnorderedEXT) || - execution.flags.get(ExecutionModeSampleInterlockOrderedEXT) || - execution.flags.get(ExecutionModeSampleInterlockUnorderedEXT)) + bool interlock_used = execution.flags.get(ExecutionModePixelInterlockOrderedEXT) || + execution.flags.get(ExecutionModePixelInterlockUnorderedEXT) || + execution.flags.get(ExecutionModeSampleInterlockOrderedEXT) || + execution.flags.get(ExecutionModeSampleInterlockUnorderedEXT); + + if (interlock_used) { if (options.es) { @@ -780,7 +864,20 @@ void CompilerGLSL::emit_header() for (auto &ext : forced_extensions) { - if (ext == "GL_EXT_shader_explicit_arithmetic_types_float16") + if (ext == "GL_ARB_gpu_shader_int64") + { + statement("#if defined(GL_ARB_gpu_shader_int64)"); + statement("#extension GL_ARB_gpu_shader_int64 : require"); + if (!options.vulkan_semantics || options.es) + { + statement("#elif defined(GL_NV_gpu_shader5)"); + statement("#extension GL_NV_gpu_shader5 : require"); + } + statement("#else"); + statement("#error No extension available for 64-bit integers."); + statement("#endif"); + } + else if (ext == "GL_EXT_shader_explicit_arithmetic_types_float16") { // Special case, this extension has a potential fallback to another vendor extension in normal GLSL. // GL_AMD_gpu_shader_half_float is a superset, so try that first. @@ -800,13 +897,30 @@ void CompilerGLSL::emit_header() statement("#error No extension available for FP16."); statement("#endif"); } + else if (ext == "GL_EXT_shader_explicit_arithmetic_types_int8") + { + if (options.vulkan_semantics) + statement("#extension GL_EXT_shader_explicit_arithmetic_types_int8 : require"); + else + { + statement("#if defined(GL_EXT_shader_explicit_arithmetic_types_int8)"); + statement("#extension GL_EXT_shader_explicit_arithmetic_types_int8 : require"); + statement("#elif defined(GL_NV_gpu_shader5)"); + statement("#extension GL_NV_gpu_shader5 : require"); + statement("#else"); + statement("#error No extension available for Int8."); + statement("#endif"); + } + } else if (ext == "GL_EXT_shader_explicit_arithmetic_types_int16") { if (options.vulkan_semantics) statement("#extension GL_EXT_shader_explicit_arithmetic_types_int16 : require"); else { - statement("#if defined(GL_AMD_gpu_shader_int16)"); + statement("#if defined(GL_EXT_shader_explicit_arithmetic_types_int16)"); + statement("#extension GL_EXT_shader_explicit_arithmetic_types_int16 : require"); + statement("#elif defined(GL_AMD_gpu_shader_int16)"); statement("#extension GL_AMD_gpu_shader_int16 : require"); statement("#elif defined(GL_NV_gpu_shader5)"); statement("#extension GL_NV_gpu_shader5 : require"); @@ -835,6 +949,40 @@ void CompilerGLSL::emit_header() statement("#extension ", ext, " : enable"); statement("#endif"); } + else if (ext == "GL_EXT_control_flow_attributes") + { + // These are just hints so we can conditionally enable and fallback in the shader. + statement("#if defined(GL_EXT_control_flow_attributes)"); + statement("#extension GL_EXT_control_flow_attributes : require"); + statement("#define SPIRV_CROSS_FLATTEN [[flatten]]"); + statement("#define SPIRV_CROSS_BRANCH [[dont_flatten]]"); + statement("#define SPIRV_CROSS_UNROLL [[unroll]]"); + statement("#define SPIRV_CROSS_LOOP [[dont_unroll]]"); + statement("#else"); + statement("#define SPIRV_CROSS_FLATTEN"); + statement("#define SPIRV_CROSS_BRANCH"); + statement("#define SPIRV_CROSS_UNROLL"); + statement("#define SPIRV_CROSS_LOOP"); + statement("#endif"); + } + else if (ext == "GL_NV_fragment_shader_interlock") + { + statement("#extension GL_NV_fragment_shader_interlock : require"); + statement("#define SPIRV_Cross_beginInvocationInterlock() beginInvocationInterlockNV()"); + statement("#define SPIRV_Cross_endInvocationInterlock() endInvocationInterlockNV()"); + } + else if (ext == "GL_ARB_fragment_shader_interlock") + { + statement("#ifdef GL_ARB_fragment_shader_interlock"); + statement("#extension GL_ARB_fragment_shader_interlock : enable"); + statement("#define SPIRV_Cross_beginInvocationInterlock() beginInvocationInterlockARB()"); + statement("#define SPIRV_Cross_endInvocationInterlock() endInvocationInterlockARB()"); + statement("#elif defined(GL_INTEL_fragment_shader_ordering)"); + statement("#extension GL_INTEL_fragment_shader_ordering : enable"); + statement("#define SPIRV_Cross_beginInvocationInterlock() beginFragmentShaderOrderingINTEL()"); + statement("#define SPIRV_Cross_endInvocationInterlock()"); + statement("#endif"); + } else statement("#extension ", ext, " : require"); } @@ -886,6 +1034,10 @@ void CompilerGLSL::emit_header() switch (execution.model) { + case ExecutionModelVertex: + if (options.ovr_multiview_view_count) + inputs.push_back(join("num_views = ", options.ovr_multiview_view_count)); + break; case ExecutionModelGeometry: if ((execution.flags.get(ExecutionModeInvocations)) && execution.invocations != 1) inputs.push_back(join("invocations = ", execution.invocations)); @@ -945,8 +1097,10 @@ void CompilerGLSL::emit_header() break; case ExecutionModelGLCompute: + case ExecutionModelTaskEXT: + case ExecutionModelMeshEXT: { - if (execution.workgroup_size.constant != 0) + if (execution.workgroup_size.constant != 0 || execution.flags.get(ExecutionModeLocalSizeId)) { SpecializationConstant wg_x, wg_y, wg_z; get_work_group_size_specialization_constants(wg_x, wg_y, wg_z); @@ -963,6 +1117,18 @@ void CompilerGLSL::emit_header() inputs.push_back(join("local_size_y = ", execution.workgroup_size.y)); inputs.push_back(join("local_size_z = ", execution.workgroup_size.z)); } + + if (execution.model == ExecutionModelMeshEXT) + { + outputs.push_back(join("max_vertices = ", execution.output_vertices)); + outputs.push_back(join("max_primitives = ", execution.output_primitives)); + if (execution.flags.get(ExecutionModeOutputTrianglesEXT)) + outputs.push_back("triangles"); + else if (execution.flags.get(ExecutionModeOutputLinesEXT)) + outputs.push_back("lines"); + else if (execution.flags.get(ExecutionModeOutputPoints)) + outputs.push_back("points"); + } break; } @@ -1011,14 +1177,24 @@ void CompilerGLSL::emit_header() if (execution.flags.get(ExecutionModePostDepthCoverage)) inputs.push_back("post_depth_coverage"); + if (interlock_used) + statement("#if defined(GL_ARB_fragment_shader_interlock)"); + if (execution.flags.get(ExecutionModePixelInterlockOrderedEXT)) - inputs.push_back("pixel_interlock_ordered"); + statement("layout(pixel_interlock_ordered) in;"); else if (execution.flags.get(ExecutionModePixelInterlockUnorderedEXT)) - inputs.push_back("pixel_interlock_unordered"); + statement("layout(pixel_interlock_unordered) in;"); else if (execution.flags.get(ExecutionModeSampleInterlockOrderedEXT)) - inputs.push_back("sample_interlock_ordered"); + statement("layout(sample_interlock_ordered) in;"); else if (execution.flags.get(ExecutionModeSampleInterlockUnorderedEXT)) - inputs.push_back("sample_interlock_unordered"); + statement("layout(sample_interlock_unordered) in;"); + + if (interlock_used) + { + statement("#elif !defined(GL_INTEL_fragment_shader_ordering)"); + statement("#error Fragment Shader Interlock/Ordering extension missing!"); + statement("#endif"); + } if (!options.es && execution.flags.get(ExecutionModeDepthGreater)) statement("layout(depth_greater) out float gl_FragDepth;"); @@ -1031,6 +1207,10 @@ void CompilerGLSL::emit_header() break; } + for (auto &cap : ir.declared_capabilities) + if (cap == CapabilityRayTraversalPrimitiveCullingKHR) + statement("layout(primitive_culling);"); + if (!inputs.empty()) statement("layout(", merge(inputs), ") in;"); if (!outputs.empty()) @@ -1097,17 +1277,61 @@ string CompilerGLSL::to_interpolation_qualifiers(const Bitset &flags) if (flags.get(DecorationFlat)) res += "flat "; if (flags.get(DecorationNoPerspective)) + { + if (options.es) + { + if (options.version < 300) + SPIRV_CROSS_THROW("noperspective requires ESSL 300."); + require_extension_internal("GL_NV_shader_noperspective_interpolation"); + } + else if (is_legacy_desktop()) + require_extension_internal("GL_EXT_gpu_shader4"); res += "noperspective "; + } if (flags.get(DecorationCentroid)) res += "centroid "; if (flags.get(DecorationPatch)) res += "patch "; if (flags.get(DecorationSample)) + { + if (options.es) + { + if (options.version < 300) + SPIRV_CROSS_THROW("sample requires ESSL 300."); + else if (options.version < 320) + require_extension_internal("GL_OES_shader_multisample_interpolation"); + } res += "sample "; - if (flags.get(DecorationInvariant)) + } + if (flags.get(DecorationInvariant) && (options.es || options.version >= 120)) res += "invariant "; + if (flags.get(DecorationPerPrimitiveEXT)) + res += "perprimitiveEXT "; + if (flags.get(DecorationExplicitInterpAMD)) + { + require_extension_internal("GL_AMD_shader_explicit_vertex_parameter"); res += "__explicitInterpAMD "; + } + + if (flags.get(DecorationPerVertexKHR)) + { + if (options.es && options.version < 320) + SPIRV_CROSS_THROW("pervertexEXT requires ESSL 320."); + else if (!options.es && options.version < 450) + SPIRV_CROSS_THROW("pervertexEXT requires GLSL 450."); + + if (barycentric_is_nv) + { + require_extension_internal("GL_NV_fragment_shader_barycentric"); + res += "pervertexNV "; + } + else + { + require_extension_internal("GL_EXT_fragment_shader_barycentric"); + res += "pervertexEXT "; + } + } return res; } @@ -1117,8 +1341,7 @@ string CompilerGLSL::layout_for_member(const SPIRType &type, uint32_t index) if (is_legacy()) return ""; - bool is_block = ir.meta[type.self].decoration.decoration_flags.get(DecorationBlock) || - ir.meta[type.self].decoration.decoration_flags.get(DecorationBufferBlock); + bool is_block = has_decoration(type.self, DecorationBlock) || has_decoration(type.self, DecorationBufferBlock); if (!is_block) return ""; @@ -1353,7 +1576,7 @@ uint32_t CompilerGLSL::type_to_packed_alignment(const SPIRType &type, const Bits // In std140, struct alignment is rounded up to 16. if (packing_is_vec4_padded(packing)) - alignment = max(alignment, 16u); + alignment = max(alignment, 16u); return alignment; } @@ -1581,7 +1804,7 @@ bool CompilerGLSL::buffer_is_packing_standard(const SPIRType &type, BufferPackin uint32_t begin_word = offset / 16; uint32_t end_word = (offset + packed_size - 1) / 16; if (begin_word != end_word) - packed_alignment = max(packed_alignment, 16u); + packed_alignment = max(packed_alignment, 16u); } uint32_t actual_offset = type_struct_member_offset(type, i); @@ -2026,9 +2249,8 @@ void CompilerGLSL::emit_push_constant_block_glsl(const SPIRVariable &var) // OpenGL has no concept of push constant blocks, implement it as a uniform struct. auto &type = get(var.basetype); - auto &flags = ir.meta[var.self].decoration.decoration_flags; - flags.clear(DecorationBinding); - flags.clear(DecorationDescriptorSet); + unset_decoration(var.self, DecorationBinding); + unset_decoration(var.self, DecorationDescriptorSet); #if 0 if (flags & ((1ull << DecorationBinding) | (1ull << DecorationDescriptorSet))) @@ -2038,14 +2260,13 @@ void CompilerGLSL::emit_push_constant_block_glsl(const SPIRVariable &var) // We're emitting the push constant block as a regular struct, so disable the block qualifier temporarily. // Otherwise, we will end up emitting layout() qualifiers on naked structs which is not allowed. - auto &block_flags = ir.meta[type.self].decoration.decoration_flags; - bool block_flag = block_flags.get(DecorationBlock); - block_flags.clear(DecorationBlock); + bool block_flag = has_decoration(type.self, DecorationBlock); + unset_decoration(type.self, DecorationBlock); emit_struct(type); if (block_flag) - block_flags.set(DecorationBlock); + set_decoration(type.self, DecorationBlock); emit_uniform(var); statement(""); @@ -2085,8 +2306,9 @@ void CompilerGLSL::emit_buffer_block_legacy(const SPIRVariable &var) statement(""); } -void CompilerGLSL::emit_buffer_reference_block(SPIRType &type, bool forward_declaration) +void CompilerGLSL::emit_buffer_reference_block(uint32_t type_id, bool forward_declaration) { + auto &type = get(type_id); string buffer_name; if (forward_declaration) @@ -2129,8 +2351,19 @@ void CompilerGLSL::emit_buffer_reference_block(SPIRType &type, bool forward_decl if (!forward_declaration) { + auto itr = physical_storage_type_to_alignment.find(type_id); + uint32_t alignment = 0; + if (itr != physical_storage_type_to_alignment.end()) + alignment = itr->second.alignment; + if (type.basetype == SPIRType::Struct) { + SmallVector attributes; + attributes.push_back("buffer_reference"); + if (alignment) + attributes.push_back(join("buffer_reference_align = ", alignment)); + attributes.push_back(buffer_to_packing_standard(type, true)); + auto flags = ir.get_buffer_block_type_flags(type); string decorations; if (flags.get(DecorationRestrict)) @@ -2141,9 +2374,11 @@ void CompilerGLSL::emit_buffer_reference_block(SPIRType &type, bool forward_decl decorations += " writeonly"; if (flags.get(DecorationNonWritable)) decorations += " readonly"; - statement("layout(buffer_reference, ", buffer_to_packing_standard(type, true), - ")", decorations, " buffer ", buffer_name); + + statement("layout(", merge(attributes), ")", decorations, " buffer ", buffer_name); } + else if (alignment) + statement("layout(buffer_reference, buffer_reference_align = ", alignment, ") buffer ", buffer_name); else statement("layout(buffer_reference) buffer ", buffer_name); @@ -2461,7 +2696,7 @@ void CompilerGLSL::emit_interface_block(const SPIRVariable &var) } // Workaround to make sure we can emit "patch in/out" correctly. - fixup_io_block_patch_qualifiers(var); + fixup_io_block_patch_primitive_qualifiers(var); // Block names should never alias. auto block_name = to_name(type.self, false); @@ -2484,8 +2719,15 @@ void CompilerGLSL::emit_interface_block(const SPIRVariable &var) // Instance names cannot alias block names. resource_names.insert(block_name); - bool is_patch = has_decoration(var.self, DecorationPatch); - statement(layout_for_variable(var), (is_patch ? "patch " : ""), qual, block_name); + const char *block_qualifier; + if (has_decoration(var.self, DecorationPatch)) + block_qualifier = "patch "; + else if (has_decoration(var.self, DecorationPerPrimitiveEXT)) + block_qualifier = "perprimitiveEXT "; + else + block_qualifier = ""; + + statement(layout_for_variable(var), block_qualifier, qual, block_name); begin_scope(); type.member_name_cache.clear(); @@ -2518,30 +2760,26 @@ void CompilerGLSL::emit_interface_block(const SPIRVariable &var) { add_resource_name(var.self); - // Tessellation control and evaluation shaders must have either gl_MaxPatchVertices or unsized arrays for input arrays. + // Legacy GLSL did not support int attributes, we automatically + // declare them as float and cast them on load/store + SPIRType newtype = type; + if (is_legacy() && var.storage == StorageClassInput && type.basetype == SPIRType::Int) + newtype.basetype = SPIRType::Float; + + // Tessellation control and evaluation shaders must have either + // gl_MaxPatchVertices or unsized arrays for input arrays. // Opt for unsized as it's the more "correct" variant to use. - bool control_point_input_array = type.storage == StorageClassInput && !type.array.empty() && - !has_decoration(var.self, DecorationPatch) && - (get_entry_point().model == ExecutionModelTessellationControl || - get_entry_point().model == ExecutionModelTessellationEvaluation); - - uint32_t old_array_size = 0; - bool old_array_size_literal = true; - - if (control_point_input_array) + if (type.storage == StorageClassInput && !type.array.empty() && + !has_decoration(var.self, DecorationPatch) && + (get_entry_point().model == ExecutionModelTessellationControl || + get_entry_point().model == ExecutionModelTessellationEvaluation)) { - swap(type.array.back(), old_array_size); - swap(type.array_size_literal.back(), old_array_size_literal); + newtype.array.back() = 0; + newtype.array_size_literal.back() = true; } statement(layout_for_variable(var), to_qualifiers_glsl(var.self), - variable_decl(type, to_name(var.self), var.self), ";"); - - if (control_point_input_array) - { - swap(type.array.back(), old_array_size); - swap(type.array_size_literal.back(), old_array_size_literal); - } + variable_decl(newtype, to_name(var.self), var.self), ";"); } } } @@ -2569,14 +2807,34 @@ string CompilerGLSL::constant_value_macro_name(uint32_t id) void CompilerGLSL::emit_specialization_constant_op(const SPIRConstantOp &constant) { auto &type = get(constant.basetype); + add_resource_name(constant.self); auto name = to_name(constant.self); statement("const ", variable_decl(type, name), " = ", constant_op_expression(constant), ";"); } +int CompilerGLSL::get_constant_mapping_to_workgroup_component(const SPIRConstant &c) const +{ + auto &entry_point = get_entry_point(); + int index = -1; + + // Need to redirect specialization constants which are used as WorkGroupSize to the builtin, + // since the spec constant declarations are never explicitly declared. + if (entry_point.workgroup_size.constant == 0 && entry_point.flags.get(ExecutionModeLocalSizeId)) + { + if (c.self == entry_point.workgroup_size.id_x) + index = 0; + else if (c.self == entry_point.workgroup_size.id_y) + index = 1; + else if (c.self == entry_point.workgroup_size.id_z) + index = 2; + } + + return index; +} + void CompilerGLSL::emit_constant(const SPIRConstant &constant) { auto &type = get(constant.constant_type); - auto name = to_name(constant.self); SpecializationConstant wg_x, wg_y, wg_z; ID workgroup_size_id = get_work_group_size_specialization_constants(wg_x, wg_y, wg_z); @@ -2603,6 +2861,9 @@ void CompilerGLSL::emit_constant(const SPIRConstant &constant) return; } + add_resource_name(constant.self); + auto name = to_name(constant.self); + // Only scalars have constant IDs. if (has_decoration(constant.self, DecorationSpecId)) { @@ -2845,11 +3106,10 @@ void CompilerGLSL::fixup_image_load_store_access() // Solve this by making the image access as restricted as possible and loosen up if we need to. // If any no-read/no-write flags are actually set, assume that the compiler knows what it's doing. - auto &flags = ir.meta[var].decoration.decoration_flags; - if (!flags.get(DecorationNonWritable) && !flags.get(DecorationNonReadable)) + if (!has_decoration(var, DecorationNonWritable) && !has_decoration(var, DecorationNonReadable)) { - flags.set(DecorationNonWritable); - flags.set(DecorationNonReadable); + set_decoration(var, DecorationNonWritable); + set_decoration(var, DecorationNonReadable); } } }); @@ -2899,7 +3159,8 @@ bool CompilerGLSL::should_force_emit_builtin_block(StorageClass storage) }); // If we're declaring clip/cull planes with control points we need to force block declaration. - if (get_execution_model() == ExecutionModelTessellationControl && + if ((get_execution_model() == ExecutionModelTessellationControl || + get_execution_model() == ExecutionModelMeshEXT) && (clip_distance_count || cull_distance_count)) { should_force = true; @@ -2908,7 +3169,7 @@ bool CompilerGLSL::should_force_emit_builtin_block(StorageClass storage) return should_force; } -void CompilerGLSL::fixup_implicit_builtin_block_names() +void CompilerGLSL::fixup_implicit_builtin_block_names(ExecutionModel model) { ir.for_each_typed_id([&](uint32_t, SPIRVariable &var) { auto &type = this->get(var.basetype); @@ -2916,11 +3177,43 @@ void CompilerGLSL::fixup_implicit_builtin_block_names() if ((var.storage == StorageClassOutput || var.storage == StorageClassInput) && block && is_builtin_variable(var)) { - // Make sure the array has a supported name in the code. - if (var.storage == StorageClassOutput) - set_name(var.self, "gl_out"); - else if (var.storage == StorageClassInput) - set_name(var.self, "gl_in"); + if (model != ExecutionModelMeshEXT) + { + // Make sure the array has a supported name in the code. + if (var.storage == StorageClassOutput) + set_name(var.self, "gl_out"); + else if (var.storage == StorageClassInput) + set_name(var.self, "gl_in"); + } + else + { + auto flags = get_buffer_block_flags(var.self); + if (flags.get(DecorationPerPrimitiveEXT)) + { + set_name(var.self, "gl_MeshPrimitivesEXT"); + set_name(type.self, "gl_MeshPerPrimitiveEXT"); + } + else + { + set_name(var.self, "gl_MeshVerticesEXT"); + set_name(type.self, "gl_MeshPerVertexEXT"); + } + } + } + + if (model == ExecutionModelMeshEXT && var.storage == StorageClassOutput && !block) + { + auto *m = ir.find_meta(var.self); + if (m && m->decoration.builtin) + { + auto builtin_type = m->decoration.builtin_type; + if (builtin_type == BuiltInPrimitivePointIndicesEXT) + set_name(var.self, "gl_PrimitivePointIndicesEXT"); + else if (builtin_type == BuiltInPrimitiveLineIndicesEXT) + set_name(var.self, "gl_PrimitiveLineIndicesEXT"); + else if (builtin_type == BuiltInPrimitiveTriangleIndicesEXT) + set_name(var.self, "gl_PrimitiveTriangleIndicesEXT"); + } } }); } @@ -2931,7 +3224,6 @@ void CompilerGLSL::emit_declared_builtin_block(StorageClass storage, ExecutionMo Bitset global_builtins; const SPIRVariable *block_var = nullptr; bool emitted_block = false; - bool builtin_array = false; // Need to use declared size in the type. // These variables might have been declared, but not statically used, so we haven't deduced their size yet. @@ -2944,6 +3236,11 @@ void CompilerGLSL::emit_declared_builtin_block(StorageClass storage, ExecutionMo uint32_t xfb_stride = 0, xfb_buffer = 0, geom_stream = 0; std::unordered_map builtin_xfb_offsets; + const auto builtin_is_per_vertex_set = [](BuiltIn builtin) -> bool { + return builtin == BuiltInPosition || builtin == BuiltInPointSize || + builtin == BuiltInClipDistance || builtin == BuiltInCullDistance; + }; + ir.for_each_typed_id([&](uint32_t, SPIRVariable &var) { auto &type = this->get(var.basetype); bool block = has_decoration(type.self, DecorationBlock); @@ -2954,7 +3251,7 @@ void CompilerGLSL::emit_declared_builtin_block(StorageClass storage, ExecutionMo uint32_t index = 0; for (auto &m : ir.meta[type.self].members) { - if (m.builtin) + if (m.builtin && builtin_is_per_vertex_set(m.builtin_type)) { builtins.set(m.builtin_type); if (m.builtin_type == BuiltInCullDistance) @@ -3007,7 +3304,7 @@ void CompilerGLSL::emit_declared_builtin_block(StorageClass storage, ExecutionMo { // While we're at it, collect all declared global builtins (HLSL mostly ...). auto &m = ir.meta[var.self].decoration; - if (m.builtin) + if (m.builtin && builtin_is_per_vertex_set(m.builtin_type)) { global_builtins.set(m.builtin_type); if (m.builtin_type == BuiltInCullDistance) @@ -3050,7 +3347,6 @@ void CompilerGLSL::emit_declared_builtin_block(StorageClass storage, ExecutionMo emitted_builtins = builtins; emitted_block = true; - builtin_array = !type.array.empty(); block_var = &var; }); @@ -3096,7 +3392,9 @@ void CompilerGLSL::emit_declared_builtin_block(StorageClass storage, ExecutionMo attr.push_back(join("stream = ", geom_stream)); } - if (!attr.empty()) + if (model == ExecutionModelMeshEXT) + statement("out gl_MeshPerVertexEXT"); + else if (!attr.empty()) statement("layout(", merge(attr), ") out gl_PerVertex"); else statement("out gl_PerVertex"); @@ -3147,39 +3445,29 @@ void CompilerGLSL::emit_declared_builtin_block(StorageClass storage, ExecutionMo statement("float gl_CullDistance[", cull_distance_size, "];"); } + bool builtin_array = model == ExecutionModelTessellationControl || + (model == ExecutionModelMeshEXT && storage == StorageClassOutput) || + (model == ExecutionModelGeometry && storage == StorageClassInput) || + (model == ExecutionModelTessellationEvaluation && storage == StorageClassInput); + if (builtin_array) { - if (model == ExecutionModelTessellationControl && storage == StorageClassOutput) - end_scope_decl(join(to_name(block_var->self), "[", get_entry_point().output_vertices, "]")); + const char *instance_name; + if (model == ExecutionModelMeshEXT) + instance_name = "gl_MeshVerticesEXT"; // Per primitive is never synthesized. else - end_scope_decl(join(to_name(block_var->self), "[]")); + instance_name = storage == StorageClassInput ? "gl_in" : "gl_out"; + + if (model == ExecutionModelTessellationControl && storage == StorageClassOutput) + end_scope_decl(join(instance_name, "[", get_entry_point().output_vertices, "]")); + else + end_scope_decl(join(instance_name, "[]")); } else end_scope_decl(); statement(""); } -void CompilerGLSL::declare_undefined_values() -{ - bool emitted = false; - ir.for_each_typed_id([&](uint32_t, const SPIRUndef &undef) { - auto &type = this->get(undef.basetype); - // OpUndef can be void for some reason ... - if (type.basetype == SPIRType::Void) - return; - - string initializer; - if (options.force_zero_initialized_variables && type_can_zero_initialize(type)) - initializer = join(" = ", to_zero_initialized_expression(undef.basetype)); - - statement(variable_decl(type, to_name(undef.self), undef.self), initializer, ";"); - emitted = true; - }); - - if (emitted) - statement(""); -} - bool CompilerGLSL::variable_is_lut(const SPIRVariable &var) const { bool statically_assigned = var.statically_assigned && var.static_expression != ID(0) && var.remapped_variable; @@ -3214,7 +3502,8 @@ void CompilerGLSL::emit_resources() case ExecutionModelGeometry: case ExecutionModelTessellationControl: case ExecutionModelTessellationEvaluation: - fixup_implicit_builtin_block_names(); + case ExecutionModelMeshEXT: + fixup_implicit_builtin_block_names(execution.model); break; default: @@ -3234,6 +3523,7 @@ void CompilerGLSL::emit_resources() break; case ExecutionModelVertex: + case ExecutionModelMeshEXT: emit_declared_builtin_block(StorageClassOutput, execution.model); break; @@ -3264,7 +3554,7 @@ void CompilerGLSL::emit_resources() statement(""); } - if (position_invariant) + if (position_invariant && (options.es || options.version >= 120)) { statement("invariant gl_Position;"); statement(""); @@ -3278,7 +3568,7 @@ void CompilerGLSL::emit_resources() // { auto loop_lock = ir.create_loop_hard_lock(); - for (auto &id_ : ir.ids_for_constant_or_type) + for (auto &id_ : ir.ids_for_constant_undef_or_type) { auto &id = ir.ids[id_]; @@ -3331,6 +3621,22 @@ void CompilerGLSL::emit_resources() emit_struct(*type); } } + else if (id.get_type() == TypeUndef) + { + auto &undef = id.get(); + auto &type = this->get(undef.basetype); + // OpUndef can be void for some reason ... + if (type.basetype == SPIRType::Void) + return; + + string initializer; + if (options.force_zero_initialized_variables && type_can_zero_initialize(type)) + initializer = join(" = ", to_zero_initialized_expression(undef.basetype)); + + // FIXME: If used in a constant, we must declare it as one. + statement(variable_decl(type, to_name(undef.self), undef.self), initializer, ";"); + emitted = true; + } } } @@ -3341,7 +3647,7 @@ void CompilerGLSL::emit_resources() // If the work group size depends on a specialization constant, we need to declare the layout() block // after constants (and their macros) have been declared. if (execution.model == ExecutionModelGLCompute && !options.vulkan_semantics && - execution.workgroup_size.constant != 0) + (execution.workgroup_size.constant != 0 || execution.flags.get(ExecutionModeLocalSizeId))) { SpecializationConstant wg_x, wg_y, wg_z; get_work_group_size_specialization_constants(wg_x, wg_y, wg_z); @@ -3361,28 +3667,28 @@ void CompilerGLSL::emit_resources() { for (auto type : physical_storage_non_block_pointer_types) { - emit_buffer_reference_block(get(type), false); + emit_buffer_reference_block(type, false); } // Output buffer reference blocks. // Do this in two stages, one with forward declaration, // and one without. Buffer reference blocks can reference themselves // to support things like linked lists. - ir.for_each_typed_id([&](uint32_t, SPIRType &type) { - bool has_block_flags = has_decoration(type.self, DecorationBlock); - if (has_block_flags && type.pointer && type.pointer_depth == 1 && !type_is_array_of_pointers(type) && + ir.for_each_typed_id([&](uint32_t self, SPIRType &type) { + if (type.basetype == SPIRType::Struct && type.pointer && + type.pointer_depth == 1 && !type_is_array_of_pointers(type) && type.storage == StorageClassPhysicalStorageBufferEXT) { - emit_buffer_reference_block(type, true); + emit_buffer_reference_block(self, true); } }); - ir.for_each_typed_id([&](uint32_t, SPIRType &type) { - bool has_block_flags = has_decoration(type.self, DecorationBlock); - if (has_block_flags && type.pointer && type.pointer_depth == 1 && !type_is_array_of_pointers(type) && + ir.for_each_typed_id([&](uint32_t self, SPIRType &type) { + if (type.basetype == SPIRType::Struct && + type.pointer && type.pointer_depth == 1 && !type_is_array_of_pointers(type) && type.storage == StorageClassPhysicalStorageBufferEXT) { - emit_buffer_reference_block(type, false); + emit_buffer_reference_block(self, false); } }); } @@ -3465,6 +3771,11 @@ void CompilerGLSL::emit_resources() (var.storage == StorageClassInput || var.storage == StorageClassOutput) && interface_variable_exists_in_entry_point(var.self) && !is_hidden) { + if (options.es && get_execution_model() == ExecutionModelVertex && var.storage == StorageClassInput && + type.array.size() == 1) + { + SPIRV_CROSS_THROW("OpenGL ES doesn't support array input variables in vertex shader."); + } emit_interface_block(var); emitted = true; } @@ -3542,8 +3853,6 @@ void CompilerGLSL::emit_resources() if (emitted) statement(""); - - declare_undefined_values(); } void CompilerGLSL::emit_output_variable_initializer(const SPIRVariable &var) @@ -4105,39 +4414,150 @@ void CompilerGLSL::emit_extension_workarounds(spv::ExecutionModel model) for (auto &type_id : workaround_ubo_load_overload_types) { auto &type = get(type_id); - statement(type_to_glsl(type), " spvWorkaroundRowMajor(", type_to_glsl(type), - " wrap) { return wrap; }"); + + if (options.es && is_matrix(type)) + { + // Need both variants. + // GLSL cannot overload on precision, so need to dispatch appropriately. + statement("highp ", type_to_glsl(type), " spvWorkaroundRowMajor(highp ", type_to_glsl(type), " wrap) { return wrap; }"); + statement("mediump ", type_to_glsl(type), " spvWorkaroundRowMajorMP(mediump ", type_to_glsl(type), " wrap) { return wrap; }"); + } + else + { + statement(type_to_glsl(type), " spvWorkaroundRowMajor(", type_to_glsl(type), " wrap) { return wrap; }"); + } } statement(""); } +} - if (requires_transpose_2x2) +void CompilerGLSL::emit_polyfills(uint32_t polyfills, bool relaxed) +{ + const char *qual = ""; + const char *suffix = (options.es && relaxed) ? "MP" : ""; + if (options.es) + qual = relaxed ? "mediump " : "highp "; + + if (polyfills & PolyfillTranspose2x2) { - statement("mat2 spvTranspose(mat2 m)"); + statement(qual, "mat2 spvTranspose", suffix, "(", qual, "mat2 m)"); begin_scope(); statement("return mat2(m[0][0], m[1][0], m[0][1], m[1][1]);"); end_scope(); statement(""); } - if (requires_transpose_3x3) + if (polyfills & PolyfillTranspose3x3) { - statement("mat3 spvTranspose(mat3 m)"); + statement(qual, "mat3 spvTranspose", suffix, "(", qual, "mat3 m)"); begin_scope(); statement("return mat3(m[0][0], m[1][0], m[2][0], m[0][1], m[1][1], m[2][1], m[0][2], m[1][2], m[2][2]);"); end_scope(); statement(""); } - if (requires_transpose_4x4) + if (polyfills & PolyfillTranspose4x4) { - statement("mat4 spvTranspose(mat4 m)"); + statement(qual, "mat4 spvTranspose", suffix, "(", qual, "mat4 m)"); begin_scope(); statement("return mat4(m[0][0], m[1][0], m[2][0], m[3][0], m[0][1], m[1][1], m[2][1], m[3][1], m[0][2], " "m[1][2], m[2][2], m[3][2], m[0][3], m[1][3], m[2][3], m[3][3]);"); end_scope(); statement(""); } + + if (polyfills & PolyfillDeterminant2x2) + { + statement(qual, "float spvDeterminant", suffix, "(", qual, "mat2 m)"); + begin_scope(); + statement("return m[0][0] * m[1][1] - m[0][1] * m[1][0];"); + end_scope(); + statement(""); + } + + if (polyfills & PolyfillDeterminant3x3) + { + statement(qual, "float spvDeterminant", suffix, "(", qual, "mat3 m)"); + begin_scope(); + statement("return dot(m[0], vec3(m[1][1] * m[2][2] - m[1][2] * m[2][1], " + "m[1][2] * m[2][0] - m[1][0] * m[2][2], " + "m[1][0] * m[2][1] - m[1][1] * m[2][0]));"); + end_scope(); + statement(""); + } + + if (polyfills & PolyfillDeterminant4x4) + { + statement(qual, "float spvDeterminant", suffix, "(", qual, "mat4 m)"); + begin_scope(); + statement("return dot(m[0], vec4(" + "m[2][1] * m[3][2] * m[1][3] - m[3][1] * m[2][2] * m[1][3] + m[3][1] * m[1][2] * m[2][3] - m[1][1] * m[3][2] * m[2][3] - m[2][1] * m[1][2] * m[3][3] + m[1][1] * m[2][2] * m[3][3], " + "m[3][0] * m[2][2] * m[1][3] - m[2][0] * m[3][2] * m[1][3] - m[3][0] * m[1][2] * m[2][3] + m[1][0] * m[3][2] * m[2][3] + m[2][0] * m[1][2] * m[3][3] - m[1][0] * m[2][2] * m[3][3], " + "m[2][0] * m[3][1] * m[1][3] - m[3][0] * m[2][1] * m[1][3] + m[3][0] * m[1][1] * m[2][3] - m[1][0] * m[3][1] * m[2][3] - m[2][0] * m[1][1] * m[3][3] + m[1][0] * m[2][1] * m[3][3], " + "m[3][0] * m[2][1] * m[1][2] - m[2][0] * m[3][1] * m[1][2] - m[3][0] * m[1][1] * m[2][2] + m[1][0] * m[3][1] * m[2][2] + m[2][0] * m[1][1] * m[3][2] - m[1][0] * m[2][1] * m[3][2]));"); + end_scope(); + statement(""); + } + + if (polyfills & PolyfillMatrixInverse2x2) + { + statement(qual, "mat2 spvInverse", suffix, "(", qual, "mat2 m)"); + begin_scope(); + statement("return mat2(m[1][1], -m[0][1], -m[1][0], m[0][0]) " + "* (1.0 / (m[0][0] * m[1][1] - m[1][0] * m[0][1]));"); + end_scope(); + statement(""); + } + + if (polyfills & PolyfillMatrixInverse3x3) + { + statement(qual, "mat3 spvInverse", suffix, "(", qual, "mat3 m)"); + begin_scope(); + statement(qual, "vec3 t = vec3(m[1][1] * m[2][2] - m[1][2] * m[2][1], m[1][2] * m[2][0] - m[1][0] * m[2][2], m[1][0] * m[2][1] - m[1][1] * m[2][0]);"); + statement("return mat3(t[0], " + "m[0][2] * m[2][1] - m[0][1] * m[2][2], " + "m[0][1] * m[1][2] - m[0][2] * m[1][1], " + "t[1], " + "m[0][0] * m[2][2] - m[0][2] * m[2][0], " + "m[0][2] * m[1][0] - m[0][0] * m[1][2], " + "t[2], " + "m[0][1] * m[2][0] - m[0][0] * m[2][1], " + "m[0][0] * m[1][1] - m[0][1] * m[1][0]) " + "* (1.0 / dot(m[0], t));"); + end_scope(); + statement(""); + } + + if (polyfills & PolyfillMatrixInverse4x4) + { + statement(qual, "mat4 spvInverse", suffix, "(", qual, "mat4 m)"); + begin_scope(); + statement(qual, "vec4 t = vec4(" + "m[2][1] * m[3][2] * m[1][3] - m[3][1] * m[2][2] * m[1][3] + m[3][1] * m[1][2] * m[2][3] - m[1][1] * m[3][2] * m[2][3] - m[2][1] * m[1][2] * m[3][3] + m[1][1] * m[2][2] * m[3][3], " + "m[3][0] * m[2][2] * m[1][3] - m[2][0] * m[3][2] * m[1][3] - m[3][0] * m[1][2] * m[2][3] + m[1][0] * m[3][2] * m[2][3] + m[2][0] * m[1][2] * m[3][3] - m[1][0] * m[2][2] * m[3][3], " + "m[2][0] * m[3][1] * m[1][3] - m[3][0] * m[2][1] * m[1][3] + m[3][0] * m[1][1] * m[2][3] - m[1][0] * m[3][1] * m[2][3] - m[2][0] * m[1][1] * m[3][3] + m[1][0] * m[2][1] * m[3][3], " + "m[3][0] * m[2][1] * m[1][2] - m[2][0] * m[3][1] * m[1][2] - m[3][0] * m[1][1] * m[2][2] + m[1][0] * m[3][1] * m[2][2] + m[2][0] * m[1][1] * m[3][2] - m[1][0] * m[2][1] * m[3][2]);"); + statement("return mat4(" + "t[0], " + "m[3][1] * m[2][2] * m[0][3] - m[2][1] * m[3][2] * m[0][3] - m[3][1] * m[0][2] * m[2][3] + m[0][1] * m[3][2] * m[2][3] + m[2][1] * m[0][2] * m[3][3] - m[0][1] * m[2][2] * m[3][3], " + "m[1][1] * m[3][2] * m[0][3] - m[3][1] * m[1][2] * m[0][3] + m[3][1] * m[0][2] * m[1][3] - m[0][1] * m[3][2] * m[1][3] - m[1][1] * m[0][2] * m[3][3] + m[0][1] * m[1][2] * m[3][3], " + "m[2][1] * m[1][2] * m[0][3] - m[1][1] * m[2][2] * m[0][3] - m[2][1] * m[0][2] * m[1][3] + m[0][1] * m[2][2] * m[1][3] + m[1][1] * m[0][2] * m[2][3] - m[0][1] * m[1][2] * m[2][3], " + "t[1], " + "m[2][0] * m[3][2] * m[0][3] - m[3][0] * m[2][2] * m[0][3] + m[3][0] * m[0][2] * m[2][3] - m[0][0] * m[3][2] * m[2][3] - m[2][0] * m[0][2] * m[3][3] + m[0][0] * m[2][2] * m[3][3], " + "m[3][0] * m[1][2] * m[0][3] - m[1][0] * m[3][2] * m[0][3] - m[3][0] * m[0][2] * m[1][3] + m[0][0] * m[3][2] * m[1][3] + m[1][0] * m[0][2] * m[3][3] - m[0][0] * m[1][2] * m[3][3], " + "m[1][0] * m[2][2] * m[0][3] - m[2][0] * m[1][2] * m[0][3] + m[2][0] * m[0][2] * m[1][3] - m[0][0] * m[2][2] * m[1][3] - m[1][0] * m[0][2] * m[2][3] + m[0][0] * m[1][2] * m[2][3], " + "t[2], " + "m[3][0] * m[2][1] * m[0][3] - m[2][0] * m[3][1] * m[0][3] - m[3][0] * m[0][1] * m[2][3] + m[0][0] * m[3][1] * m[2][3] + m[2][0] * m[0][1] * m[3][3] - m[0][0] * m[2][1] * m[3][3], " + "m[1][0] * m[3][1] * m[0][3] - m[3][0] * m[1][1] * m[0][3] + m[3][0] * m[0][1] * m[1][3] - m[0][0] * m[3][1] * m[1][3] - m[1][0] * m[0][1] * m[3][3] + m[0][0] * m[1][1] * m[3][3], " + "m[2][0] * m[1][1] * m[0][3] - m[1][0] * m[2][1] * m[0][3] - m[2][0] * m[0][1] * m[1][3] + m[0][0] * m[2][1] * m[1][3] + m[1][0] * m[0][1] * m[2][3] - m[0][0] * m[1][1] * m[2][3], " + "t[3], " + "m[2][0] * m[3][1] * m[0][2] - m[3][0] * m[2][1] * m[0][2] + m[3][0] * m[0][1] * m[2][2] - m[0][0] * m[3][1] * m[2][2] - m[2][0] * m[0][1] * m[3][2] + m[0][0] * m[2][1] * m[3][2], " + "m[3][0] * m[1][1] * m[0][2] - m[1][0] * m[3][1] * m[0][2] - m[3][0] * m[0][1] * m[1][2] + m[0][0] * m[3][1] * m[1][2] + m[1][0] * m[0][1] * m[3][2] - m[0][0] * m[1][1] * m[3][2], " + "m[1][0] * m[2][1] * m[0][2] - m[2][0] * m[1][1] * m[0][2] + m[2][0] * m[0][1] * m[1][2] - m[0][0] * m[2][1] * m[1][2] - m[1][0] * m[0][1] * m[2][2] + m[0][0] * m[1][1] * m[2][2]) " + "* (1.0 / dot(m[0], t));"); + end_scope(); + statement(""); + } } // Returns a string representation of the ID, usable as a function arg. @@ -4153,12 +4573,96 @@ string CompilerGLSL::to_func_call_arg(const SPIRFunction::Parameter &, uint32_t return to_expression(name_id); } +void CompilerGLSL::force_temporary_and_recompile(uint32_t id) +{ + auto res = forced_temporaries.insert(id); + + // Forcing new temporaries guarantees forward progress. + if (res.second) + force_recompile_guarantee_forward_progress(); + else + force_recompile(); +} + +uint32_t CompilerGLSL::consume_temporary_in_precision_context(uint32_t type_id, uint32_t id, Options::Precision precision) +{ + // Constants do not have innate precision. + auto handle_type = ir.ids[id].get_type(); + if (handle_type == TypeConstant || handle_type == TypeConstantOp || handle_type == TypeUndef) + return id; + + // Ignore anything that isn't 32-bit values. + auto &type = get(type_id); + if (type.pointer) + return id; + if (type.basetype != SPIRType::Float && type.basetype != SPIRType::UInt && type.basetype != SPIRType::Int) + return id; + + if (precision == Options::DontCare) + { + // If precision is consumed as don't care (operations only consisting of constants), + // we need to bind the expression to a temporary, + // otherwise we have no way of controlling the precision later. + auto itr = forced_temporaries.insert(id); + if (itr.second) + force_recompile_guarantee_forward_progress(); + return id; + } + + auto current_precision = has_decoration(id, DecorationRelaxedPrecision) ? Options::Mediump : Options::Highp; + if (current_precision == precision) + return id; + + auto itr = temporary_to_mirror_precision_alias.find(id); + if (itr == temporary_to_mirror_precision_alias.end()) + { + uint32_t alias_id = ir.increase_bound_by(1); + auto &m = ir.meta[alias_id]; + if (auto *input_m = ir.find_meta(id)) + m = *input_m; + + const char *prefix; + if (precision == Options::Mediump) + { + set_decoration(alias_id, DecorationRelaxedPrecision); + prefix = "mp_copy_"; + } + else + { + unset_decoration(alias_id, DecorationRelaxedPrecision); + prefix = "hp_copy_"; + } + + auto alias_name = join(prefix, to_name(id)); + ParsedIR::sanitize_underscores(alias_name); + set_name(alias_id, alias_name); + + emit_op(type_id, alias_id, to_expression(id), true); + temporary_to_mirror_precision_alias[id] = alias_id; + forced_temporaries.insert(id); + forced_temporaries.insert(alias_id); + force_recompile_guarantee_forward_progress(); + id = alias_id; + } + else + { + id = itr->second; + } + + return id; +} + void CompilerGLSL::handle_invalid_expression(uint32_t id) { // We tried to read an invalidated expression. - // This means we need another pass at compilation, but next time, force temporary variables so that they cannot be invalidated. - forced_temporaries.insert(id); - force_recompile(); + // This means we need another pass at compilation, but next time, + // force temporary variables so that they cannot be invalidated. + force_temporary_and_recompile(id); + + // If the invalid expression happened as a result of a CompositeInsert + // overwrite, we must block this from happening next iteration. + if (composite_insert_overwritten.count(id)) + block_composite_insert_overwrite.insert(id); } // Converts the format of the current expression from packed to unpacked, @@ -4196,7 +4700,7 @@ void CompilerGLSL::strip_enclosed_expression(string &expr) expr.erase(begin(expr)); } -string CompilerGLSL::enclose_expression(const string &expr) +bool CompilerGLSL::needs_enclose_expression(const std::string &expr) { bool need_parens = false; @@ -4230,10 +4734,15 @@ string CompilerGLSL::enclose_expression(const string &expr) assert(paren_count == 0); } + return need_parens; +} + +string CompilerGLSL::enclose_expression(const string &expr) +{ // If this expression contains any spaces which are not enclosed by parentheses, // we need to enclose it so we can treat the whole string as an expression. // This happens when two expressions have been part of a binary op earlier. - if (need_parens) + if (needs_enclose_expression(expr)) return join('(', expr, ')'); else return expr; @@ -4313,19 +4822,7 @@ string CompilerGLSL::to_unpacked_expression(uint32_t id, bool register_expressio string CompilerGLSL::to_enclosed_unpacked_expression(uint32_t id, bool register_expression_read) { - // If we need to transpose, it will also take care of unpacking rules. - auto *e = maybe_get(id); - bool need_transpose = e && e->need_transpose; - bool is_remapped = has_extended_decoration(id, SPIRVCrossDecorationPhysicalTypeID); - bool is_packed = has_extended_decoration(id, SPIRVCrossDecorationPhysicalTypePacked); - if (!need_transpose && (is_remapped || is_packed)) - { - return unpack_expression_type(to_expression(id, register_expression_read), expression_type(id), - get_extended_decoration(id, SPIRVCrossDecorationPhysicalTypeID), - has_extended_decoration(id, SPIRVCrossDecorationPhysicalTypePacked), false); - } - else - return to_enclosed_expression(id, register_expression_read); + return enclose_expression(to_unpacked_expression(id, register_expression_read)); } string CompilerGLSL::to_dereferenced_expression(uint32_t id, bool register_expression_read) @@ -4424,12 +4921,13 @@ string CompilerGLSL::to_rerolled_array_expression(const string &base_expr, const return expr; } -string CompilerGLSL::to_composite_constructor_expression(uint32_t id, bool uses_buffer_offset) +string CompilerGLSL::to_composite_constructor_expression(uint32_t id, bool block_like_type) { auto &type = expression_type(id); - bool reroll_array = !type.array.empty() && (!backend.array_is_value_type || - (uses_buffer_offset && !backend.buffer_offset_array_is_value_type)); + bool reroll_array = !type.array.empty() && + (!backend.array_is_value_type || + (block_like_type && !backend.array_is_value_type_in_buffer_blocks)); if (reroll_array) { @@ -4500,8 +4998,9 @@ string CompilerGLSL::to_expression(uint32_t id, bool register_expression_read) // when consuming an access chain expression. uint32_t physical_type_id = get_extended_decoration(id, SPIRVCrossDecorationPhysicalTypeID); bool is_packed = has_extended_decoration(id, SPIRVCrossDecorationPhysicalTypePacked); + bool relaxed = has_decoration(id, DecorationRelaxedPrecision); return convert_row_major_matrix(e.expression, get(e.expression_type), physical_type_id, - is_packed); + is_packed, relaxed); } else if (flattened_structs.count(id)) { @@ -4527,11 +5026,27 @@ string CompilerGLSL::to_expression(uint32_t id, bool register_expression_read) auto &type = get(c.constant_type); // WorkGroupSize may be a constant. - auto &dec = ir.meta[c.self].decoration; - if (dec.builtin) - return builtin_to_glsl(dec.builtin_type, StorageClassGeneric); + if (has_decoration(c.self, DecorationBuiltIn)) + return builtin_to_glsl(BuiltIn(get_decoration(c.self, DecorationBuiltIn)), StorageClassGeneric); else if (c.specialization) + { + if (backend.workgroup_size_is_hidden) + { + int wg_index = get_constant_mapping_to_workgroup_component(c); + if (wg_index >= 0) + { + auto wg_size = join(builtin_to_glsl(BuiltInWorkgroupSize, StorageClassInput), vector_swizzle(1, wg_index)); + if (type.basetype != SPIRType::UInt) + wg_size = bitcast_expression(type, SPIRType::UInt, wg_size); + return wg_size; + } + } + + if (expression_is_forwarded(id)) + return constant_expression(c); + return to_name(id); + } else if (c.is_used_as_lut) return to_name(id); else if (type.basetype == SPIRType::Struct && !backend.can_declare_struct_inline) @@ -4551,7 +5066,20 @@ string CompilerGLSL::to_expression(uint32_t id, bool register_expression_read) // If we try to use a loop variable before the loop header, we have to redirect it to the static expression, // the variable has not been declared yet. if (var.statically_assigned || (var.loop_variable && !var.loop_variable_enable)) - return to_expression(var.static_expression); + { + // We might try to load from a loop variable before it has been initialized. + // Prefer static expression and fallback to initializer. + if (var.static_expression) + return to_expression(var.static_expression); + else if (var.initializer) + return to_expression(var.initializer); + else + { + // We cannot declare the variable yet, so have to fake it. + uint32_t undef_id = ir.increase_bound_by(1); + return emit_uninitialized_temporary_expression(get_variable_data_type_id(var), undef_id).expression; + } + } else if (var.deferred_declaration) { var.deferred_declaration = false; @@ -4588,6 +5116,80 @@ string CompilerGLSL::to_expression(uint32_t id, bool register_expression_read) } } +SmallVector CompilerGLSL::get_composite_constant_ids(ConstantID const_id) +{ + if (auto *constant = maybe_get(const_id)) + { + const auto &type = get(constant->constant_type); + if (is_array(type) || type.basetype == SPIRType::Struct) + return constant->subconstants; + if (is_matrix(type)) + return SmallVector(constant->m.id); + if (is_vector(type)) + return SmallVector(constant->m.c[0].id); + SPIRV_CROSS_THROW("Unexpected scalar constant!"); + } + if (!const_composite_insert_ids.count(const_id)) + SPIRV_CROSS_THROW("Unimplemented for this OpSpecConstantOp!"); + return const_composite_insert_ids[const_id]; +} + +void CompilerGLSL::fill_composite_constant(SPIRConstant &constant, TypeID type_id, + const SmallVector &initializers) +{ + auto &type = get(type_id); + constant.specialization = true; + if (is_array(type) || type.basetype == SPIRType::Struct) + { + constant.subconstants = initializers; + } + else if (is_matrix(type)) + { + constant.m.columns = type.columns; + for (uint32_t i = 0; i < type.columns; ++i) + { + constant.m.id[i] = initializers[i]; + constant.m.c[i].vecsize = type.vecsize; + } + } + else if (is_vector(type)) + { + constant.m.c[0].vecsize = type.vecsize; + for (uint32_t i = 0; i < type.vecsize; ++i) + constant.m.c[0].id[i] = initializers[i]; + } + else + SPIRV_CROSS_THROW("Unexpected scalar in SpecConstantOp CompositeInsert!"); +} + +void CompilerGLSL::set_composite_constant(ConstantID const_id, TypeID type_id, + const SmallVector &initializers) +{ + if (maybe_get(const_id)) + { + const_composite_insert_ids[const_id] = initializers; + return; + } + + auto &constant = set(const_id, type_id); + fill_composite_constant(constant, type_id, initializers); + forwarded_temporaries.insert(const_id); +} + +TypeID CompilerGLSL::get_composite_member_type(TypeID type_id, uint32_t member_idx) +{ + auto &type = get(type_id); + if (is_array(type)) + return type.parent_type; + if (type.basetype == SPIRType::Struct) + return type.member_types[member_idx]; + if (is_matrix(type)) + return type.parent_type; + if (is_vector(type)) + return type.parent_type; + SPIRV_CROSS_THROW("Shouldn't reach lower than vector handling OpSpecConstantOp CompositeInsert!"); +} + string CompilerGLSL::constant_op_expression(const SPIRConstantOp &cop) { auto &type = get(cop.basetype); @@ -4650,6 +5252,14 @@ string CompilerGLSL::constant_op_expression(const SPIRConstantOp &cop) GLSL_BOP(UGreaterThanEqual, ">="); GLSL_BOP(SGreaterThanEqual, ">="); + case OpSRem: + { + uint32_t op0 = cop.arguments[0]; + uint32_t op1 = cop.arguments[1]; + return join(to_enclosed_expression(op0), " - ", to_enclosed_expression(op1), " * ", "(", + to_enclosed_expression(op0), " / ", to_enclosed_expression(op1), ")"); + } + case OpSelect: { if (cop.arguments.size() < 3) @@ -4684,10 +5294,21 @@ string CompilerGLSL::constant_op_expression(const SPIRConstantOp &cop) for (uint32_t i = 2; i < uint32_t(cop.arguments.size()); i++) { uint32_t index = cop.arguments[i]; - if (index >= left_components) + if (index == 0xFFFFFFFF) + { + SPIRConstant c; + c.constant_type = type.parent_type; + assert(type.parent_type != ID(0)); + expr += constant_expression(c); + } + else if (index >= left_components) + { expr += right_arg + "." + "xyzw"[index - left_components]; + } else + { expr += left_arg + "." + "xyzw"[index]; + } if (i + 1 < uint32_t(cop.arguments.size())) expr += ", "; @@ -4705,7 +5326,30 @@ string CompilerGLSL::constant_op_expression(const SPIRConstantOp &cop) } case OpCompositeInsert: - SPIRV_CROSS_THROW("OpCompositeInsert spec constant op is not supported."); + { + SmallVector new_init = get_composite_constant_ids(cop.arguments[1]); + uint32_t idx; + uint32_t target_id = cop.self; + uint32_t target_type_id = cop.basetype; + // We have to drill down to the part we want to modify, and create new + // constants for each containing part. + for (idx = 2; idx < cop.arguments.size() - 1; ++idx) + { + uint32_t new_const = ir.increase_bound_by(1); + uint32_t old_const = new_init[cop.arguments[idx]]; + new_init[cop.arguments[idx]] = new_const; + set_composite_constant(target_id, target_type_id, new_init); + new_init = get_composite_constant_ids(old_const); + target_id = new_const; + target_type_id = get_composite_member_type(target_type_id, cop.arguments[idx]); + } + // Now replace the initializer with the one from this instruction. + new_init[cop.arguments[idx]] = cop.arguments[0]; + set_composite_constant(target_id, target_type_id, new_init); + SPIRConstant tmp_const(cop.basetype); + fill_composite_constant(tmp_const, cop.basetype, const_composite_insert_ids[cop.self]); + return constant_expression(tmp_const); + } default: // Some opcodes are unimplemented here, these are currently not possible to test from glslang. @@ -4810,7 +5454,7 @@ string CompilerGLSL::constant_op_expression(const SPIRConstantOp &cop) } } -string CompilerGLSL::constant_expression(const SPIRConstant &c) +string CompilerGLSL::constant_expression(const SPIRConstant &c, bool inside_block_like_struct_scope) { auto &type = get(c.constant_type); @@ -4823,6 +5467,14 @@ string CompilerGLSL::constant_expression(const SPIRConstant &c) // Handles Arrays and structures. string res; + // Only consider the decay if we are inside a struct scope where we are emitting a member with Offset decoration. + // Outside a block-like struct declaration, we can always bind to a constant array with templated type. + // Should look at ArrayStride here as well, but it's possible to declare a constant struct + // with Offset = 0, using no ArrayStride on the enclosed array type. + // A particular CTS test hits this scenario. + bool array_type_decays = inside_block_like_struct_scope && + !type.array.empty() && !backend.array_is_value_type_in_buffer_blocks; + // Allow Metal to use the array template to make arrays a value type bool needs_trailing_tracket = false; if (backend.use_initializer_list && backend.use_typed_initializer_list && type.basetype == SPIRType::Struct && @@ -4831,7 +5483,7 @@ string CompilerGLSL::constant_expression(const SPIRConstant &c) res = type_to_glsl_constructor(type) + "{ "; } else if (backend.use_initializer_list && backend.use_typed_initializer_list && backend.array_is_value_type && - !type.array.empty()) + !type.array.empty() && !array_type_decays) { res = type_to_glsl_constructor(type) + "({ "; needs_trailing_tracket = true; @@ -4845,16 +5497,40 @@ string CompilerGLSL::constant_expression(const SPIRConstant &c) res = type_to_glsl_constructor(type) + "("; } + uint32_t subconstant_index = 0; for (auto &elem : c.subconstants) { - auto &subc = get(elem); - if (subc.specialization) + if (auto *op = maybe_get(elem)) + { + res += constant_op_expression(*op); + } + else if (maybe_get(elem) != nullptr) + { res += to_name(elem); + } else - res += constant_expression(subc); + { + auto &subc = get(elem); + if (subc.specialization && !expression_is_forwarded(elem)) + res += to_name(elem); + else + { + if (type.array.empty() && type.basetype == SPIRType::Struct) + { + // When we get down to emitting struct members, override the block-like information. + // For constants, we can freely mix and match block-like state. + inside_block_like_struct_scope = + has_member_decoration(type.self, subconstant_index, DecorationOffset); + } + + res += constant_expression(subc, inside_block_like_struct_scope); + } + } if (&elem != &c.subconstants.back()) res += ", "; + + subconstant_index++; } res += backend.use_initializer_list ? " }" : ")"; @@ -4898,8 +5574,8 @@ string CompilerGLSL::constant_expression(const SPIRConstant &c) } #ifdef _MSC_VER -// sprintf warning. -// We cannot rely on snprintf existing because, ..., MSVC. +// snprintf does not exist or is buggy on older MSVC versions, some of them +// being used by MinGW. Use sprintf instead and disable corresponding warning. #pragma warning(push) #pragma warning(disable : 4996) #endif @@ -4959,8 +5635,18 @@ string CompilerGLSL::convert_float_to_string(const SPIRConstant &c, uint32_t col in_type.width = 32; char print_buffer[32]; +#ifdef _WIN32 sprintf(print_buffer, "0x%xu", c.scalar(col, row)); - res = join(bitcast_glsl_op(out_type, in_type), "(", print_buffer, ")"); +#else + snprintf(print_buffer, sizeof(print_buffer), "0x%xu", c.scalar(col, row)); +#endif + + const char *comment = "inf"; + if (float_value == -numeric_limits::infinity()) + comment = "-inf"; + else if (std::isnan(float_value)) + comment = "nan"; + res = join(bitcast_glsl_op(out_type, in_type), "(", print_buffer, " /* ", comment, " */)"); } else { @@ -5020,14 +5706,25 @@ std::string CompilerGLSL::convert_double_to_string(const SPIRConstant &c, uint32 uint64_t u64_value = c.scalar_u64(col, row); - if (options.es) - SPIRV_CROSS_THROW("64-bit integers/float not supported in ES profile."); + if (options.es && options.version < 310) // GL_NV_gpu_shader5 fallback requires 310. + SPIRV_CROSS_THROW("64-bit integers not supported in ES profile before version 310."); require_extension_internal("GL_ARB_gpu_shader_int64"); char print_buffer[64]; +#ifdef _WIN32 sprintf(print_buffer, "0x%llx%s", static_cast(u64_value), backend.long_long_literal_suffix ? "ull" : "ul"); - res = join(bitcast_glsl_op(out_type, in_type), "(", print_buffer, ")"); +#else + snprintf(print_buffer, sizeof(print_buffer), "0x%llx%s", static_cast(u64_value), + backend.long_long_literal_suffix ? "ull" : "ul"); +#endif + + const char *comment = "inf"; + if (double_value == -numeric_limits::infinity()) + comment = "-inf"; + else if (std::isnan(double_value)) + comment = "nan"; + res = join(bitcast_glsl_op(out_type, in_type), "(", print_buffer, " /* ", comment, " */)"); } else { @@ -5153,7 +5850,7 @@ string CompilerGLSL::constant_expression_vector(const SPIRConstant &c, uint32_t for (uint32_t i = 0; i < c.vector_size(); i++) { if (c.vector_size() > 1 && c.specialization_constant_id(vector, i) != 0) - res += to_name(c.specialization_constant_id(vector, i)); + res += to_expression(c.specialization_constant_id(vector, i)); else res += convert_half_to_string(c, vector, i); @@ -5175,7 +5872,7 @@ string CompilerGLSL::constant_expression_vector(const SPIRConstant &c, uint32_t for (uint32_t i = 0; i < c.vector_size(); i++) { if (c.vector_size() > 1 && c.specialization_constant_id(vector, i) != 0) - res += to_name(c.specialization_constant_id(vector, i)); + res += to_expression(c.specialization_constant_id(vector, i)); else res += convert_float_to_string(c, vector, i); @@ -5197,7 +5894,7 @@ string CompilerGLSL::constant_expression_vector(const SPIRConstant &c, uint32_t for (uint32_t i = 0; i < c.vector_size(); i++) { if (c.vector_size() > 1 && c.specialization_constant_id(vector, i) != 0) - res += to_name(c.specialization_constant_id(vector, i)); + res += to_expression(c.specialization_constant_id(vector, i)); else res += convert_double_to_string(c, vector, i); @@ -5208,34 +5905,31 @@ string CompilerGLSL::constant_expression_vector(const SPIRConstant &c, uint32_t break; case SPIRType::Int64: + { + auto tmp = type; + tmp.vecsize = 1; + tmp.columns = 1; + auto int64_type = type_to_glsl(tmp); + if (splat) { - res += convert_to_string(c.scalar_i64(vector, 0)); - if (backend.long_long_literal_suffix) - res += "ll"; - else - res += "l"; + res += convert_to_string(c.scalar_i64(vector, 0), int64_type, backend.long_long_literal_suffix); } else { for (uint32_t i = 0; i < c.vector_size(); i++) { if (c.vector_size() > 1 && c.specialization_constant_id(vector, i) != 0) - res += to_name(c.specialization_constant_id(vector, i)); + res += to_expression(c.specialization_constant_id(vector, i)); else - { - res += convert_to_string(c.scalar_i64(vector, i)); - if (backend.long_long_literal_suffix) - res += "ll"; - else - res += "l"; - } + res += convert_to_string(c.scalar_i64(vector, i), int64_type, backend.long_long_literal_suffix); if (i + 1 < c.vector_size()) res += ", "; } } break; + } case SPIRType::UInt64: if (splat) @@ -5251,7 +5945,7 @@ string CompilerGLSL::constant_expression_vector(const SPIRConstant &c, uint32_t for (uint32_t i = 0; i < c.vector_size(); i++) { if (c.vector_size() > 1 && c.specialization_constant_id(vector, i) != 0) - res += to_name(c.specialization_constant_id(vector, i)); + res += to_expression(c.specialization_constant_id(vector, i)); else { res += convert_to_string(c.scalar_u64(vector, i)); @@ -5286,7 +5980,7 @@ string CompilerGLSL::constant_expression_vector(const SPIRConstant &c, uint32_t for (uint32_t i = 0; i < c.vector_size(); i++) { if (c.vector_size() > 1 && c.specialization_constant_id(vector, i) != 0) - res += to_name(c.specialization_constant_id(vector, i)); + res += to_expression(c.specialization_constant_id(vector, i)); else { res += convert_to_string(c.scalar(vector, i)); @@ -5316,7 +6010,7 @@ string CompilerGLSL::constant_expression_vector(const SPIRConstant &c, uint32_t for (uint32_t i = 0; i < c.vector_size(); i++) { if (c.vector_size() > 1 && c.specialization_constant_id(vector, i) != 0) - res += to_name(c.specialization_constant_id(vector, i)); + res += to_expression(c.specialization_constant_id(vector, i)); else res += convert_to_string(c.scalar_i32(vector, i)); if (i + 1 < c.vector_size()) @@ -5335,7 +6029,7 @@ string CompilerGLSL::constant_expression_vector(const SPIRConstant &c, uint32_t for (uint32_t i = 0; i < c.vector_size(); i++) { if (c.vector_size() > 1 && c.specialization_constant_id(vector, i) != 0) - res += to_name(c.specialization_constant_id(vector, i)); + res += to_expression(c.specialization_constant_id(vector, i)); else { if (*backend.uint16_t_literal_suffix) @@ -5369,7 +6063,7 @@ string CompilerGLSL::constant_expression_vector(const SPIRConstant &c, uint32_t for (uint32_t i = 0; i < c.vector_size(); i++) { if (c.vector_size() > 1 && c.specialization_constant_id(vector, i) != 0) - res += to_name(c.specialization_constant_id(vector, i)); + res += to_expression(c.specialization_constant_id(vector, i)); else { if (*backend.int16_t_literal_suffix) @@ -5403,7 +6097,7 @@ string CompilerGLSL::constant_expression_vector(const SPIRConstant &c, uint32_t for (uint32_t i = 0; i < c.vector_size(); i++) { if (c.vector_size() > 1 && c.specialization_constant_id(vector, i) != 0) - res += to_name(c.specialization_constant_id(vector, i)); + res += to_expression(c.specialization_constant_id(vector, i)); else { res += type_to_glsl(scalar_type); @@ -5428,7 +6122,7 @@ string CompilerGLSL::constant_expression_vector(const SPIRConstant &c, uint32_t for (uint32_t i = 0; i < c.vector_size(); i++) { if (c.vector_size() > 1 && c.specialization_constant_id(vector, i) != 0) - res += to_name(c.specialization_constant_id(vector, i)); + res += to_expression(c.specialization_constant_id(vector, i)); else { res += type_to_glsl(scalar_type); @@ -5451,7 +6145,7 @@ string CompilerGLSL::constant_expression_vector(const SPIRConstant &c, uint32_t for (uint32_t i = 0; i < c.vector_size(); i++) { if (c.vector_size() > 1 && c.specialization_constant_id(vector, i) != 0) - res += to_name(c.specialization_constant_id(vector, i)); + res += to_expression(c.specialization_constant_id(vector, i)); else res += c.scalar(vector, i) ? "true" : "false"; @@ -5482,7 +6176,7 @@ void CompilerGLSL::emit_uninitialized_temporary(uint32_t result_type, uint32_t r { // If we're declaring temporaries inside continue blocks, // we must declare the temporary in the loop header so that the continue block can avoid declaring new variables. - if (current_continue_block && !hoisted_temporaries.count(result_id)) + if (!block_temporary_hoisting && current_continue_block && !hoisted_temporaries.count(result_id)) { auto &header = get(current_continue_block->loop_dominator); if (find_if(begin(header.declare_temporary), end(header.declare_temporary), @@ -5498,7 +6192,7 @@ void CompilerGLSL::emit_uninitialized_temporary(uint32_t result_type, uint32_t r else if (hoisted_temporaries.count(result_id) == 0) { auto &type = get(result_type); - auto &flags = ir.meta[result_id].decoration.decoration_flags; + auto &flags = get_decoration_bitset(result_id); // The result_id has not been made into an expression yet, so use flags interface. add_local_variable_name(result_id); @@ -5514,11 +6208,10 @@ void CompilerGLSL::emit_uninitialized_temporary(uint32_t result_type, uint32_t r string CompilerGLSL::declare_temporary(uint32_t result_type, uint32_t result_id) { auto &type = get(result_type); - auto &flags = ir.meta[result_id].decoration.decoration_flags; // If we're declaring temporaries inside continue blocks, // we must declare the temporary in the loop header so that the continue block can avoid declaring new variables. - if (current_continue_block && !hoisted_temporaries.count(result_id)) + if (!block_temporary_hoisting && current_continue_block && !hoisted_temporaries.count(result_id)) { auto &header = get(current_continue_block->loop_dominator); if (find_if(begin(header.declare_temporary), end(header.declare_temporary), @@ -5528,7 +6221,7 @@ string CompilerGLSL::declare_temporary(uint32_t result_type, uint32_t result_id) { header.declare_temporary.emplace_back(result_type, result_id); hoisted_temporaries.insert(result_id); - force_recompile(); + force_recompile_guarantee_forward_progress(); } return join(to_name(result_id), " = "); @@ -5542,6 +6235,7 @@ string CompilerGLSL::declare_temporary(uint32_t result_type, uint32_t result_id) { // The result_id has not been made into an expression yet, so use flags interface. add_local_variable_name(result_id); + auto &flags = get_decoration_bitset(result_id); return join(flags_to_qualifiers_glsl(type, flags), variable_decl(type, to_name(result_id)), " = "); } } @@ -5595,6 +6289,22 @@ void CompilerGLSL::emit_unary_op(uint32_t result_type, uint32_t result_id, uint3 inherit_expression_dependencies(result_id, op0); } +void CompilerGLSL::emit_unary_op_cast(uint32_t result_type, uint32_t result_id, uint32_t op0, const char *op) +{ + auto &type = get(result_type); + bool forward = should_forward(op0); + emit_op(result_type, result_id, join(type_to_glsl(type), "(", op, to_enclosed_unpacked_expression(op0), ")"), forward); + inherit_expression_dependencies(result_id, op0); +} + +void CompilerGLSL::emit_mesh_tasks(SPIRBlock &block) +{ + statement("EmitMeshTasksEXT(", + to_unpacked_expression(block.mesh.groups[0]), ", ", + to_unpacked_expression(block.mesh.groups[1]), ", ", + to_unpacked_expression(block.mesh.groups[2]), ");"); +} + void CompilerGLSL::emit_binary_op(uint32_t result_type, uint32_t result_id, uint32_t op0, uint32_t op1, const char *op) { // Various FP arithmetic opcodes such as add, sub, mul will hit this. @@ -5738,7 +6448,9 @@ bool CompilerGLSL::emit_complex_bitcast(uint32_t result_type, uint32_t id, uint3 } void CompilerGLSL::emit_binary_op_cast(uint32_t result_type, uint32_t result_id, uint32_t op0, uint32_t op1, - const char *op, SPIRType::BaseType input_type, bool skip_cast_if_equal_type) + const char *op, SPIRType::BaseType input_type, + bool skip_cast_if_equal_type, + bool implicit_integer_promotion) { string cast_op0, cast_op1; auto expected_type = binary_op_bitcast_helper(cast_op0, cast_op1, input_type, op0, op1, skip_cast_if_equal_type); @@ -5747,17 +6459,23 @@ void CompilerGLSL::emit_binary_op_cast(uint32_t result_type, uint32_t result_id, // We might have casted away from the result type, so bitcast again. // For example, arithmetic right shift with uint inputs. // Special case boolean outputs since relational opcodes output booleans instead of int/uint. + auto bitop = join(cast_op0, " ", op, " ", cast_op1); string expr; - if (out_type.basetype != input_type && out_type.basetype != SPIRType::Boolean) + + if (implicit_integer_promotion) + { + // Simple value cast. + expr = join(type_to_glsl(out_type), '(', bitop, ')'); + } + else if (out_type.basetype != input_type && out_type.basetype != SPIRType::Boolean) { expected_type.basetype = input_type; - expr = bitcast_glsl_op(out_type, expected_type); - expr += '('; - expr += join(cast_op0, " ", op, " ", cast_op1); - expr += ')'; + expr = join(bitcast_glsl_op(out_type, expected_type), '(', bitop, ')'); } else - expr += join(cast_op0, " ", op, " ", cast_op1); + { + expr = std::move(bitop); + } emit_op(result_type, result_id, expr, should_forward(op0) && should_forward(op1)); inherit_expression_dependencies(result_id, op0); @@ -5774,7 +6492,10 @@ void CompilerGLSL::emit_unary_func_op(uint32_t result_type, uint32_t result_id, void CompilerGLSL::emit_binary_func_op(uint32_t result_type, uint32_t result_id, uint32_t op0, uint32_t op1, const char *op) { - bool forward = should_forward(op0) && should_forward(op1); + // Opaque types (e.g. OpTypeSampledImage) must always be forwarded in GLSL + const auto &type = get_type(result_type); + bool must_forward = type_is_opaque_value(type); + bool forward = must_forward || (should_forward(op0) && should_forward(op1)); emit_op(result_type, result_id, join(op, "(", to_unpacked_expression(op0), ", ", to_unpacked_expression(op1), ")"), forward); inherit_expression_dependencies(result_id, op0); @@ -5784,6 +6505,16 @@ void CompilerGLSL::emit_binary_func_op(uint32_t result_type, uint32_t result_id, void CompilerGLSL::emit_atomic_func_op(uint32_t result_type, uint32_t result_id, uint32_t op0, uint32_t op1, const char *op) { + auto &type = get(result_type); + if (type_is_floating_point(type)) + { + if (!options.vulkan_semantics) + SPIRV_CROSS_THROW("Floating point atomics requires Vulkan semantics."); + if (options.es) + SPIRV_CROSS_THROW("Floating point atomics requires desktop GLSL."); + require_extension_internal("GL_EXT_shader_atomic_float"); + } + forced_temporaries.insert(result_id); emit_op(result_type, result_id, join(op, "(", to_non_uniform_aware_expression(op0), ", ", @@ -6058,7 +6789,11 @@ string CompilerGLSL::legacy_tex_op(const std::string &op, const SPIRType &imgtyp switch (imgtype.image.dim) { case spv::Dim1D: - type = (imgtype.image.arrayed && !options.es) ? "1DArray" : "1D"; + // Force 2D path for ES. + if (options.es) + type = (imgtype.image.arrayed && !options.es) ? "2DArray" : "2D"; + else + type = (imgtype.image.arrayed && !options.es) ? "1DArray" : "1D"; break; case spv::Dim2D: type = (imgtype.image.arrayed && !options.es) ? "2DArray" : "2D"; @@ -6110,13 +6845,16 @@ string CompilerGLSL::legacy_tex_op(const std::string &op, const SPIRType &imgtyp // GLES has very limited support for shadow samplers. // Basically shadow2D and shadow2DProj work through EXT_shadow_samplers, // everything else can just throw - bool is_comparison = image_is_comparison(imgtype, tex); + bool is_comparison = is_depth_image(imgtype, tex); if (is_comparison && is_legacy_es()) { if (op == "texture" || op == "textureProj") require_extension_internal("GL_EXT_shadow_samplers"); else SPIRV_CROSS_THROW(join(op, " not allowed on depth samplers in legacy ES")); + + if (imgtype.image.dim == spv::DimCube) + return "shadowCubeNV"; } if (op == "textureSize") @@ -6175,44 +6913,58 @@ bool CompilerGLSL::to_trivial_mix_op(const SPIRType &type, string &op, uint32_t if (cleft->specialization || cright->specialization) return false; - // We can only use trivial construction if we have a scalar - // (should be possible to do it for vectors as well, but that is overkill for now). - if (lerptype.basetype != SPIRType::Boolean || lerptype.vecsize > 1) + auto &value_type = get(cleft->constant_type); + + if (lerptype.basetype != SPIRType::Boolean) + return false; + if (value_type.basetype == SPIRType::Struct || is_array(value_type)) + return false; + if (!backend.use_constructor_splatting && value_type.vecsize != lerptype.vecsize) + return false; + + // Only valid way in SPIR-V 1.4 to use matrices in select is a scalar select. + // matrix(scalar) constructor fills in diagnonals, so gets messy very quickly. + // Just avoid this case. + if (value_type.columns > 1) return false; // If our bool selects between 0 and 1, we can cast from bool instead, making our trivial constructor. - bool ret = false; - switch (type.basetype) + bool ret = true; + for (uint32_t row = 0; ret && row < value_type.vecsize; row++) { - case SPIRType::Short: - case SPIRType::UShort: - ret = cleft->scalar_u16() == 0 && cright->scalar_u16() == 1; - break; + switch (type.basetype) + { + case SPIRType::Short: + case SPIRType::UShort: + ret = cleft->scalar_u16(0, row) == 0 && cright->scalar_u16(0, row) == 1; + break; - case SPIRType::Int: - case SPIRType::UInt: - ret = cleft->scalar() == 0 && cright->scalar() == 1; - break; + case SPIRType::Int: + case SPIRType::UInt: + ret = cleft->scalar(0, row) == 0 && cright->scalar(0, row) == 1; + break; - case SPIRType::Half: - ret = cleft->scalar_f16() == 0.0f && cright->scalar_f16() == 1.0f; - break; + case SPIRType::Half: + ret = cleft->scalar_f16(0, row) == 0.0f && cright->scalar_f16(0, row) == 1.0f; + break; - case SPIRType::Float: - ret = cleft->scalar_f32() == 0.0f && cright->scalar_f32() == 1.0f; - break; + case SPIRType::Float: + ret = cleft->scalar_f32(0, row) == 0.0f && cright->scalar_f32(0, row) == 1.0f; + break; - case SPIRType::Double: - ret = cleft->scalar_f64() == 0.0 && cright->scalar_f64() == 1.0; - break; + case SPIRType::Double: + ret = cleft->scalar_f64(0, row) == 0.0 && cright->scalar_f64(0, row) == 1.0; + break; - case SPIRType::Int64: - case SPIRType::UInt64: - ret = cleft->scalar_u64() == 0 && cright->scalar_u64() == 1; - break; + case SPIRType::Int64: + case SPIRType::UInt64: + ret = cleft->scalar_u64(0, row) == 0 && cright->scalar_u64(0, row) == 1; + break; - default: - break; + default: + ret = false; + break; + } } if (ret) @@ -6711,8 +7463,14 @@ std::string CompilerGLSL::to_texture_op(const Instruction &i, bool sparse, bool args.grad_x = grad_x; args.grad_y = grad_y; args.lod = lod; - args.coffset = coffset; - args.offset = offset; + + if (coffsets) + args.offset = coffsets; + else if (coffset) + args.offset = coffset; + else + args.offset = offset; + args.bias = bias; args.component = comp; args.sample = sample; @@ -6722,8 +7480,8 @@ std::string CompilerGLSL::to_texture_op(const Instruction &i, bool sparse, bool expr += to_function_args(args, forward); expr += ")"; - // texture(samplerXShadow) returns float. shadowX() returns vec4. Swizzle here. - if (is_legacy() && image_is_comparison(imgtype, img)) + // texture(samplerXShadow) returns float. shadowX() returns vec4, but only in desktop GLSL. Swizzle here. + if (is_legacy() && !options.es && is_depth_image(imgtype, img)) expr += ".r"; // Sampling from a texture which was deduced to be a depth image, might actually return 1 component here. @@ -6734,16 +7492,16 @@ std::string CompilerGLSL::to_texture_op(const Instruction &i, bool sparse, bool const auto *combined = maybe_get(img); VariableID image_id = combined ? combined->image : img; - if (combined && image_is_comparison(imgtype, combined->image)) + if (combined && is_depth_image(imgtype, combined->image)) image_is_depth = true; - else if (image_is_comparison(imgtype, img)) + else if (is_depth_image(imgtype, img)) image_is_depth = true; // We must also check the backing variable for the image. // We might have loaded an OpImage, and used that handle for two different purposes. // Once with comparison, once without. auto *image_variable = maybe_get_backing_variable(image_id); - if (image_variable && image_is_comparison(get(image_variable->basetype), image_variable->self)) + if (image_variable && is_depth_image(get(image_variable->basetype), image_variable->self)) image_is_depth = true; if (image_is_depth) @@ -6786,7 +7544,7 @@ bool CompilerGLSL::expression_is_non_value_type_array(uint32_t ptr) return false; auto &backed_type = get(var->basetype); - return !backend.buffer_offset_array_is_value_type && backed_type.basetype == SPIRType::Struct && + return !backend.array_is_value_type_in_buffer_blocks && backed_type.basetype == SPIRType::Struct && has_member_decoration(backed_type.self, 0, DecorationOffset); } @@ -6811,7 +7569,7 @@ string CompilerGLSL::to_function_name(const TextureFunctionNameArguments &args) // This happens for HLSL SampleCmpLevelZero on Texture2DArray and TextureCube. bool workaround_lod_array_shadow_as_grad = false; if (((imgtype.image.arrayed && imgtype.image.dim == Dim2D) || imgtype.image.dim == DimCube) && - image_is_comparison(imgtype, tex) && args.lod) + is_depth_image(imgtype, tex) && args.lod && !args.base.is_fetch) { if (!expression_is_constant_null(args.lod)) { @@ -6955,7 +7713,7 @@ string CompilerGLSL::to_function_args(const TextureFunctionArguments &args, bool // This happens for HLSL SampleCmpLevelZero on Texture2DArray and TextureCube. bool workaround_lod_array_shadow_as_grad = ((imgtype.image.arrayed && imgtype.image.dim == Dim2D) || imgtype.image.dim == DimCube) && - image_is_comparison(imgtype, img) && args.lod != 0; + is_depth_image(imgtype, img) && args.lod != 0 && !args.base.is_fetch; if (args.dref) { @@ -7004,10 +7762,29 @@ string CompilerGLSL::to_function_args(const TextureFunctionArguments &args, bool // Create a composite which merges coord/dref into a single vector. auto type = expression_type(args.coord); type.vecsize = args.coord_components + 1; + if (imgtype.image.dim == Dim1D && options.es) + type.vecsize++; farg_str += ", "; farg_str += type_to_glsl_constructor(type); farg_str += "("; - farg_str += coord_expr; + + if (imgtype.image.dim == Dim1D && options.es) + { + if (imgtype.image.arrayed) + { + farg_str += enclose_expression(coord_expr) + ".x"; + farg_str += ", 0.0, "; + farg_str += enclose_expression(coord_expr) + ".y"; + } + else + { + farg_str += coord_expr; + farg_str += ", 0.0"; + } + } + else + farg_str += coord_expr; + farg_str += ", "; farg_str += to_expression(args.dref); farg_str += ")"; @@ -7015,6 +7792,33 @@ string CompilerGLSL::to_function_args(const TextureFunctionArguments &args, bool } else { + if (imgtype.image.dim == Dim1D && options.es) + { + // Have to fake a second coordinate. + if (type_is_floating_point(coord_type)) + { + // Cannot mix proj and array. + if (imgtype.image.arrayed || args.base.is_proj) + { + coord_expr = join("vec3(", enclose_expression(coord_expr), ".x, 0.0, ", + enclose_expression(coord_expr), ".y)"); + } + else + coord_expr = join("vec2(", coord_expr, ", 0.0)"); + } + else + { + if (imgtype.image.arrayed) + { + coord_expr = join("ivec3(", enclose_expression(coord_expr), + ".x, 0, ", + enclose_expression(coord_expr), ".y)"); + } + else + coord_expr = join("ivec2(", coord_expr, ", 0)"); + } + } + farg_str += ", "; farg_str += coord_expr; } @@ -7045,18 +7849,11 @@ string CompilerGLSL::to_function_args(const TextureFunctionArguments &args, bool forward = forward && should_forward(args.lod); farg_str += ", "; - auto &lod_expr_type = expression_type(args.lod); - // Lod expression for TexelFetch in GLSL must be int, and only int. - if (args.base.is_fetch && imgtype.image.dim != DimBuffer && !imgtype.image.ms && - lod_expr_type.basetype != SPIRType::Int) - { - farg_str += join("int(", to_expression(args.lod), ")"); - } + if (args.base.is_fetch && imgtype.image.dim != DimBuffer && !imgtype.image.ms) + farg_str += bitcast_expression(SPIRType::Int, args.lod); else - { farg_str += to_expression(args.lod); - } } } else if (args.base.is_fetch && imgtype.image.dim != DimBuffer && !imgtype.image.ms) @@ -7065,23 +7862,17 @@ string CompilerGLSL::to_function_args(const TextureFunctionArguments &args, bool farg_str += ", 0"; } - if (args.coffset) - { - forward = forward && should_forward(args.coffset); - farg_str += ", "; - farg_str += to_expression(args.coffset); - } - else if (args.offset) + if (args.offset) { forward = forward && should_forward(args.offset); farg_str += ", "; - farg_str += to_expression(args.offset); + farg_str += bitcast_expression(SPIRType::Int, args.offset); } if (args.sample) { farg_str += ", "; - farg_str += to_expression(args.sample); + farg_str += bitcast_expression(SPIRType::Int, args.sample); } if (args.min_lod) @@ -7108,7 +7899,7 @@ string CompilerGLSL::to_function_args(const TextureFunctionArguments &args, bool { forward = forward && should_forward(args.component); farg_str += ", "; - farg_str += to_expression(args.component); + farg_str += bitcast_expression(SPIRType::Int, args.component); } *p_forward = forward; @@ -7116,6 +7907,63 @@ string CompilerGLSL::to_function_args(const TextureFunctionArguments &args, bool return farg_str; } +Op CompilerGLSL::get_remapped_spirv_op(Op op) const +{ + if (options.relax_nan_checks) + { + switch (op) + { + case OpFUnordLessThan: + op = OpFOrdLessThan; + break; + case OpFUnordLessThanEqual: + op = OpFOrdLessThanEqual; + break; + case OpFUnordGreaterThan: + op = OpFOrdGreaterThan; + break; + case OpFUnordGreaterThanEqual: + op = OpFOrdGreaterThanEqual; + break; + case OpFUnordEqual: + op = OpFOrdEqual; + break; + case OpFOrdNotEqual: + op = OpFUnordNotEqual; + break; + + default: + break; + } + } + + return op; +} + +GLSLstd450 CompilerGLSL::get_remapped_glsl_op(GLSLstd450 std450_op) const +{ + // Relax to non-NaN aware opcodes. + if (options.relax_nan_checks) + { + switch (std450_op) + { + case GLSLstd450NClamp: + std450_op = GLSLstd450FClamp; + break; + case GLSLstd450NMin: + std450_op = GLSLstd450FMin; + break; + case GLSLstd450NMax: + std450_op = GLSLstd450FMax; + break; + default: + break; + } + } + + return std450_op; +} + void CompilerGLSL::emit_glsl_op(uint32_t result_type, uint32_t id, uint32_t eop, const uint32_t *args, uint32_t length) { auto op = static_cast(eop); @@ -7128,6 +7976,8 @@ void CompilerGLSL::emit_glsl_op(uint32_t result_type, uint32_t id, uint32_t eop, auto int_type = to_signed_basetype(integer_width); auto uint_type = to_unsigned_basetype(integer_width); + op = get_remapped_glsl_op(op); + switch (op) { // FP fiddling @@ -7159,8 +8009,22 @@ void CompilerGLSL::emit_glsl_op(uint32_t result_type, uint32_t id, uint32_t eop, break; case GLSLstd450Trunc: - emit_unary_func_op(result_type, id, args[0], "trunc"); + if (!is_legacy()) + emit_unary_func_op(result_type, id, args[0], "trunc"); + else + { + // Implement by value-casting to int and back. + bool forward = should_forward(args[0]); + auto op0 = to_unpacked_expression(args[0]); + auto &op0_type = expression_type(args[0]); + auto via_type = op0_type; + via_type.basetype = SPIRType::Int; + auto expr = join(type_to_glsl(op0_type), "(", type_to_glsl(via_type), "(", op0, "))"); + emit_op(result_type, id, expr, forward); + inherit_expression_dependencies(id, args[0]); + } break; + case GLSLstd450SAbs: emit_unary_func_op_cast(result_type, id, args[0], "abs", int_type, int_type); break; @@ -7202,18 +8066,47 @@ void CompilerGLSL::emit_glsl_op(uint32_t result_type, uint32_t id, uint32_t eop, else emit_trinary_func_op(result_type, id, args[0], args[1], args[2], "fma"); break; + case GLSLstd450Modf: register_call_out_argument(args[1]); - forced_temporaries.insert(id); - emit_binary_func_op(result_type, id, args[0], args[1], "modf"); + if (!is_legacy()) + { + forced_temporaries.insert(id); + emit_binary_func_op(result_type, id, args[0], args[1], "modf"); + } + else + { + //NB. legacy GLSL doesn't have trunc() either, so we do a value cast + auto &op1_type = expression_type(args[1]); + auto via_type = op1_type; + via_type.basetype = SPIRType::Int; + statement(to_expression(args[1]), " = ", + type_to_glsl(op1_type), "(", type_to_glsl(via_type), + "(", to_expression(args[0]), "));"); + emit_binary_op(result_type, id, args[0], args[1], "-"); + } break; case GLSLstd450ModfStruct: { auto &type = get(result_type); emit_uninitialized_temporary_expression(result_type, id); - statement(to_expression(id), ".", to_member_name(type, 0), " = ", "modf(", to_expression(args[0]), ", ", - to_expression(id), ".", to_member_name(type, 1), ");"); + if (!is_legacy()) + { + statement(to_expression(id), ".", to_member_name(type, 0), " = ", "modf(", to_expression(args[0]), ", ", + to_expression(id), ".", to_member_name(type, 1), ");"); + } + else + { + //NB. legacy GLSL doesn't have trunc() either, so we do a value cast + auto &op0_type = expression_type(args[0]); + auto via_type = op0_type; + via_type.basetype = SPIRType::Int; + statement(to_expression(id), ".", to_member_name(type, 1), " = ", type_to_glsl(op0_type), + "(", type_to_glsl(via_type), "(", to_expression(args[0]), "));"); + statement(to_expression(id), ".", to_member_name(type, 0), " = ", to_enclosed_expression(args[0]), " - ", + to_expression(id), ".", to_member_name(type, 1), ";"); + } break; } @@ -7274,22 +8167,77 @@ void CompilerGLSL::emit_glsl_op(uint32_t result_type, uint32_t id, uint32_t eop, emit_unary_func_op(result_type, id, args[0], "atan"); break; case GLSLstd450Sinh: - emit_unary_func_op(result_type, id, args[0], "sinh"); + if (!is_legacy()) + emit_unary_func_op(result_type, id, args[0], "sinh"); + else + { + bool forward = should_forward(args[0]); + auto expr = join("(exp(", to_expression(args[0]), ") - exp(-", to_enclosed_expression(args[0]), ")) * 0.5"); + emit_op(result_type, id, expr, forward); + inherit_expression_dependencies(id, args[0]); + } break; case GLSLstd450Cosh: - emit_unary_func_op(result_type, id, args[0], "cosh"); + if (!is_legacy()) + emit_unary_func_op(result_type, id, args[0], "cosh"); + else + { + bool forward = should_forward(args[0]); + auto expr = join("(exp(", to_expression(args[0]), ") + exp(-", to_enclosed_expression(args[0]), ")) * 0.5"); + emit_op(result_type, id, expr, forward); + inherit_expression_dependencies(id, args[0]); + } break; case GLSLstd450Tanh: - emit_unary_func_op(result_type, id, args[0], "tanh"); + if (!is_legacy()) + emit_unary_func_op(result_type, id, args[0], "tanh"); + else + { + // Create temporaries to store the result of exp(arg) and exp(-arg). + uint32_t &ids = extra_sub_expressions[id]; + if (!ids) + { + ids = ir.increase_bound_by(2); + + // Inherit precision qualifier (legacy has no NoContraction). + if (has_decoration(id, DecorationRelaxedPrecision)) + { + set_decoration(ids, DecorationRelaxedPrecision); + set_decoration(ids + 1, DecorationRelaxedPrecision); + } + } + uint32_t epos_id = ids; + uint32_t eneg_id = ids + 1; + + emit_op(result_type, epos_id, join("exp(", to_expression(args[0]), ")"), false); + emit_op(result_type, eneg_id, join("exp(-", to_enclosed_expression(args[0]), ")"), false); + inherit_expression_dependencies(epos_id, args[0]); + inherit_expression_dependencies(eneg_id, args[0]); + + auto expr = join("(", to_enclosed_expression(epos_id), " - ", to_enclosed_expression(eneg_id), ") / " + "(", to_enclosed_expression(epos_id), " + ", to_enclosed_expression(eneg_id), ")"); + emit_op(result_type, id, expr, true); + inherit_expression_dependencies(id, epos_id); + inherit_expression_dependencies(id, eneg_id); + } break; case GLSLstd450Asinh: - emit_unary_func_op(result_type, id, args[0], "asinh"); + if (!is_legacy()) + emit_unary_func_op(result_type, id, args[0], "asinh"); + else + emit_emulated_ahyper_op(result_type, id, args[0], GLSLstd450Asinh); break; case GLSLstd450Acosh: - emit_unary_func_op(result_type, id, args[0], "acosh"); + if (!is_legacy()) + emit_unary_func_op(result_type, id, args[0], "acosh"); + else + emit_emulated_ahyper_op(result_type, id, args[0], GLSLstd450Acosh); break; case GLSLstd450Atanh: - emit_unary_func_op(result_type, id, args[0], "atanh"); + if (!is_legacy()) + emit_unary_func_op(result_type, id, args[0], "atanh"); + else + emit_emulated_ahyper_op(result_type, id, args[0], GLSLstd450Atanh); break; case GLSLstd450Atan2: emit_binary_func_op(result_type, id, args[0], args[1], "atan"); @@ -7320,11 +8268,74 @@ void CompilerGLSL::emit_glsl_op(uint32_t result_type, uint32_t id, uint32_t eop, // Matrix math case GLSLstd450Determinant: - emit_unary_func_op(result_type, id, args[0], "determinant"); + { + // No need to transpose - it doesn't affect the determinant + auto *e = maybe_get(args[0]); + bool old_transpose = e && e->need_transpose; + if (old_transpose) + e->need_transpose = false; + + if (options.version < 150) // also matches ES 100 + { + auto &type = expression_type(args[0]); + assert(type.vecsize >= 2 && type.vecsize <= 4); + assert(type.vecsize == type.columns); + + // ARB_gpu_shader_fp64 needs GLSL 150, other types are not valid + if (type.basetype != SPIRType::Float) + SPIRV_CROSS_THROW("Unsupported type for matrix determinant"); + + bool relaxed = has_decoration(id, DecorationRelaxedPrecision); + require_polyfill(static_cast(PolyfillDeterminant2x2 << (type.vecsize - 2)), + relaxed); + emit_unary_func_op(result_type, id, args[0], + (options.es && relaxed) ? "spvDeterminantMP" : "spvDeterminant"); + } + else + emit_unary_func_op(result_type, id, args[0], "determinant"); + + if (old_transpose) + e->need_transpose = true; break; + } + case GLSLstd450MatrixInverse: - emit_unary_func_op(result_type, id, args[0], "inverse"); + { + // The inverse of the transpose is the same as the transpose of + // the inverse, so we can just flip need_transpose of the result. + auto *a = maybe_get(args[0]); + bool old_transpose = a && a->need_transpose; + if (old_transpose) + a->need_transpose = false; + + const char *func = "inverse"; + if (options.version < 140) // also matches ES 100 + { + auto &type = get(result_type); + assert(type.vecsize >= 2 && type.vecsize <= 4); + assert(type.vecsize == type.columns); + + // ARB_gpu_shader_fp64 needs GLSL 150, other types are invalid + if (type.basetype != SPIRType::Float) + SPIRV_CROSS_THROW("Unsupported type for matrix inverse"); + + bool relaxed = has_decoration(id, DecorationRelaxedPrecision); + require_polyfill(static_cast(PolyfillMatrixInverse2x2 << (type.vecsize - 2)), + relaxed); + func = (options.es && relaxed) ? "spvInverseMP" : "spvInverse"; + } + + bool forward = should_forward(args[0]); + auto &e = emit_op(result_type, id, join(func, "(", to_unpacked_expression(args[0]), ")"), forward); + inherit_expression_dependencies(id, args[0]); + + if (old_transpose) + { + e.need_transpose = true; + a->need_transpose = true; + } break; + } // Lerping case GLSLstd450FMix: @@ -7517,13 +8528,60 @@ void CompilerGLSL::emit_nminmax_op(uint32_t result_type, uint32_t id, uint32_t o ir.meta[tmp_id] = ir.meta[id]; ir.meta[mixed_first_id] = ir.meta[id]; - emit_unary_func_op(btype_id, left_nan_id, op0, "isnan"); - emit_unary_func_op(btype_id, right_nan_id, op1, "isnan"); + if (!is_legacy()) + { + emit_unary_func_op(btype_id, left_nan_id, op0, "isnan"); + emit_unary_func_op(btype_id, right_nan_id, op1, "isnan"); + } + else if (expression_type(op0).vecsize > 1) + { + // If the number doesn't equal itself, it must be NaN + emit_binary_func_op(btype_id, left_nan_id, op0, op0, "notEqual"); + emit_binary_func_op(btype_id, right_nan_id, op1, op1, "notEqual"); + } + else + { + emit_binary_op(btype_id, left_nan_id, op0, op0, "!="); + emit_binary_op(btype_id, right_nan_id, op1, op1, "!="); + } emit_binary_func_op(result_type, tmp_id, op0, op1, op == GLSLstd450NMin ? "min" : "max"); emit_mix_op(result_type, mixed_first_id, tmp_id, op1, left_nan_id); emit_mix_op(result_type, id, mixed_first_id, op0, right_nan_id); } +void CompilerGLSL::emit_emulated_ahyper_op(uint32_t result_type, uint32_t id, uint32_t op0, GLSLstd450 op) +{ + const char *one = backend.float_literal_suffix ? "1.0f" : "1.0"; + std::string expr; + bool forward = should_forward(op0); + + switch (op) + { + case GLSLstd450Asinh: + expr = join("log(", to_enclosed_expression(op0), " + sqrt(", + to_enclosed_expression(op0), " * ", to_enclosed_expression(op0), " + ", one, "))"); + emit_op(result_type, id, expr, forward); + break; + + case GLSLstd450Acosh: + expr = join("log(", to_enclosed_expression(op0), " + sqrt(", + to_enclosed_expression(op0), " * ", to_enclosed_expression(op0), " - ", one, "))"); + break; + + case GLSLstd450Atanh: + expr = join("log((", one, " + ", to_enclosed_expression(op0), ") / " + "(", one, " - ", to_enclosed_expression(op0), ")) * 0.5", + backend.float_literal_suffix ? "f" : ""); + break; + + default: + SPIRV_CROSS_THROW("Invalid op."); + } + + emit_op(result_type, id, expr, forward); + inherit_expression_dependencies(id, op0); +} + void CompilerGLSL::emit_spv_amd_shader_ballot_op(uint32_t result_type, uint32_t id, uint32_t eop, const uint32_t *args, uint32_t) { @@ -7956,7 +9014,11 @@ string CompilerGLSL::bitcast_glsl_op(const SPIRType &out_type, const SPIRType &i { // OpBitcast can deal with pointers. if (out_type.pointer || in_type.pointer) + { + if (out_type.vecsize == 2 || in_type.vecsize == 2) + require_extension_internal("GL_EXT_buffer_reference_uvec2"); return type_to_glsl(out_type); + } if (out_type.basetype == in_type.basetype) return ""; @@ -8103,9 +9165,17 @@ string CompilerGLSL::builtin_to_glsl(BuiltIn builtin, StorageClass storage) case BuiltInPointSize: return "gl_PointSize"; case BuiltInClipDistance: + { + if (options.es) + require_extension_internal("GL_EXT_clip_cull_distance"); return "gl_ClipDistance"; + } case BuiltInCullDistance: + { + if (options.es) + require_extension_internal("GL_EXT_clip_cull_distance"); return "gl_CullDistance"; + } case BuiltInVertexId: if (options.vulkan_semantics) SPIRV_CROSS_THROW("Cannot implement gl_VertexID in Vulkan GLSL. This shader was created " @@ -8211,13 +9281,9 @@ string CompilerGLSL::builtin_to_glsl(BuiltIn builtin, StorageClass storage) } return "gl_BaseVertex"; } - else - { - // On regular GL, this is soft-enabled and we emit ifdefs in code. - require_extension_internal("GL_ARB_shader_draw_parameters"); - return "SPIRV_Cross_BaseVertex"; - } - break; + // On regular GL, this is soft-enabled and we emit ifdefs in code. + require_extension_internal("GL_ARB_shader_draw_parameters"); + return "SPIRV_Cross_BaseVertex"; case BuiltInBaseInstance: if (options.es) @@ -8232,13 +9298,9 @@ string CompilerGLSL::builtin_to_glsl(BuiltIn builtin, StorageClass storage) } return "gl_BaseInstance"; } - else - { - // On regular GL, this is soft-enabled and we emit ifdefs in code. - require_extension_internal("GL_ARB_shader_draw_parameters"); - return "SPIRV_Cross_BaseInstance"; - } - break; + // On regular GL, this is soft-enabled and we emit ifdefs in code. + require_extension_internal("GL_ARB_shader_draw_parameters"); + return "SPIRV_Cross_BaseInstance"; case BuiltInDrawIndex: if (options.es) @@ -8253,26 +9315,26 @@ string CompilerGLSL::builtin_to_glsl(BuiltIn builtin, StorageClass storage) } return "gl_DrawID"; } - else - { - // On regular GL, this is soft-enabled and we emit ifdefs in code. - require_extension_internal("GL_ARB_shader_draw_parameters"); - return "gl_DrawIDARB"; - } - break; + // On regular GL, this is soft-enabled and we emit ifdefs in code. + require_extension_internal("GL_ARB_shader_draw_parameters"); + return "gl_DrawIDARB"; case BuiltInSampleId: - if (options.es && options.version < 320) + if (is_legacy()) + SPIRV_CROSS_THROW("Sample variables not supported in legacy GLSL."); + else if (options.es && options.version < 320) require_extension_internal("GL_OES_sample_variables"); - if (!options.es && options.version < 400) - SPIRV_CROSS_THROW("gl_SampleID not supported before GLSL 400."); + else if (!options.es && options.version < 400) + require_extension_internal("GL_ARB_sample_shading"); return "gl_SampleID"; case BuiltInSampleMask: - if (options.es && options.version < 320) + if (is_legacy()) + SPIRV_CROSS_THROW("Sample variables not supported in legacy GLSL."); + else if (options.es && options.version < 320) require_extension_internal("GL_OES_sample_variables"); - if (!options.es && options.version < 400) - SPIRV_CROSS_THROW("gl_SampleMask/gl_SampleMaskIn not supported before GLSL 400."); + else if (!options.es && options.version < 400) + require_extension_internal("GL_ARB_sample_shading"); if (storage == StorageClassInput) return "gl_SampleMaskIn"; @@ -8280,23 +9342,19 @@ string CompilerGLSL::builtin_to_glsl(BuiltIn builtin, StorageClass storage) return "gl_SampleMask"; case BuiltInSamplePosition: - if (options.es && options.version < 320) + if (is_legacy()) + SPIRV_CROSS_THROW("Sample variables not supported in legacy GLSL."); + else if (options.es && options.version < 320) require_extension_internal("GL_OES_sample_variables"); - if (!options.es && options.version < 400) - SPIRV_CROSS_THROW("gl_SamplePosition not supported before GLSL 400."); + else if (!options.es && options.version < 400) + require_extension_internal("GL_ARB_sample_shading"); return "gl_SamplePosition"; case BuiltInViewIndex: if (options.vulkan_semantics) - { - require_extension_internal("GL_EXT_multiview"); return "gl_ViewIndex"; - } else - { - require_extension_internal("GL_OVR_multiview2"); return "gl_ViewID_OVR"; - } case BuiltInNumSubgroups: request_subgroup_feature(ShaderSubgroupSupportHelper::NumSubgroups); @@ -8364,24 +9422,42 @@ string CompilerGLSL::builtin_to_glsl(BuiltIn builtin, StorageClass storage) case BuiltInIncomingRayFlagsKHR: return ray_tracing_is_khr ? "gl_IncomingRayFlagsEXT" : "gl_IncomingRayFlagsNV"; - case BuiltInBaryCoordNV: + case BuiltInBaryCoordKHR: { if (options.es && options.version < 320) - SPIRV_CROSS_THROW("gl_BaryCoordNV requires ESSL 320."); + SPIRV_CROSS_THROW("gl_BaryCoordEXT requires ESSL 320."); else if (!options.es && options.version < 450) - SPIRV_CROSS_THROW("gl_BaryCoordNV requires GLSL 450."); - require_extension_internal("GL_NV_fragment_shader_barycentric"); - return "gl_BaryCoordNV"; + SPIRV_CROSS_THROW("gl_BaryCoordEXT requires GLSL 450."); + + if (barycentric_is_nv) + { + require_extension_internal("GL_NV_fragment_shader_barycentric"); + return "gl_BaryCoordNV"; + } + else + { + require_extension_internal("GL_EXT_fragment_shader_barycentric"); + return "gl_BaryCoordEXT"; + } } case BuiltInBaryCoordNoPerspNV: { if (options.es && options.version < 320) - SPIRV_CROSS_THROW("gl_BaryCoordNoPerspNV requires ESSL 320."); + SPIRV_CROSS_THROW("gl_BaryCoordNoPerspEXT requires ESSL 320."); else if (!options.es && options.version < 450) - SPIRV_CROSS_THROW("gl_BaryCoordNoPerspNV requires GLSL 450."); - require_extension_internal("GL_NV_fragment_shader_barycentric"); - return "gl_BaryCoordNoPerspNV"; + SPIRV_CROSS_THROW("gl_BaryCoordNoPerspEXT requires GLSL 450."); + + if (barycentric_is_nv) + { + require_extension_internal("GL_NV_fragment_shader_barycentric"); + return "gl_BaryCoordNoPerspNV"; + } + else + { + require_extension_internal("GL_EXT_fragment_shader_barycentric"); + return "gl_BaryCoordNoPerspEXT"; + } } case BuiltInFragStencilRefEXT: @@ -8424,6 +9500,15 @@ string CompilerGLSL::builtin_to_glsl(BuiltIn builtin, StorageClass storage) SPIRV_CROSS_THROW("Need desktop GL to use GL_NV_conservative_raster_underestimation."); return "gl_FragFullyCoveredNV"; + case BuiltInPrimitiveTriangleIndicesEXT: + return "gl_PrimitiveTriangleIndicesEXT"; + case BuiltInPrimitiveLineIndicesEXT: + return "gl_PrimitiveLineIndicesEXT"; + case BuiltInPrimitivePointIndicesEXT: + return "gl_PrimitivePointIndicesEXT"; + case BuiltInCullPrimitiveEXT: + return "gl_CullPrimitiveEXT"; + default: return join("gl_BuiltIn_", convert_to_string(builtin)); } @@ -8442,25 +9527,36 @@ const char *CompilerGLSL::index_to_swizzle(uint32_t index) case 3: return "w"; default: - SPIRV_CROSS_THROW("Swizzle index out of range"); + return "x"; // Don't crash, but engage the "undefined behavior" described for out-of-bounds logical addressing in spec. } } void CompilerGLSL::access_chain_internal_append_index(std::string &expr, uint32_t /*base*/, const SPIRType * /*type*/, - AccessChainFlags flags, bool & /*access_chain_is_arrayed*/, + AccessChainFlags flags, bool &access_chain_is_arrayed, uint32_t index) { bool index_is_literal = (flags & ACCESS_CHAIN_INDEX_IS_LITERAL_BIT) != 0; + bool ptr_chain = (flags & ACCESS_CHAIN_PTR_CHAIN_BIT) != 0; bool register_expression_read = (flags & ACCESS_CHAIN_SKIP_REGISTER_EXPRESSION_READ_BIT) == 0; - expr += "["; + string idx_expr = index_is_literal ? convert_to_string(index) : to_unpacked_expression(index, register_expression_read); - if (index_is_literal) - expr += convert_to_string(index); + // For the case where the base of an OpPtrAccessChain already ends in [n], + // we need to use the index as an offset to the existing index, otherwise, + // we can just use the index directly. + if (ptr_chain && access_chain_is_arrayed) + { + size_t split_pos = expr.find_last_of(']'); + string expr_front = expr.substr(0, split_pos); + string expr_back = expr.substr(split_pos); + expr = expr_front + " + " + enclose_expression(idx_expr) + expr_back; + } else - expr += to_expression(index, register_expression_read); - - expr += "]"; + { + expr += "["; + expr += idx_expr; + expr += "]"; + } } bool CompilerGLSL::access_chain_needs_stage_io_builtin_translation(uint32_t) @@ -8517,14 +9613,18 @@ string CompilerGLSL::access_chain_internal(uint32_t base, const uint32_t *indice bool is_packed = has_extended_decoration(base, SPIRVCrossDecorationPhysicalTypePacked); uint32_t physical_type = get_extended_decoration(base, SPIRVCrossDecorationPhysicalTypeID); bool is_invariant = has_decoration(base, DecorationInvariant); + bool relaxed_precision = has_decoration(base, DecorationRelaxedPrecision); bool pending_array_enclose = false; bool dimension_flatten = false; - const auto append_index = [&](uint32_t index, bool is_literal) { + const auto append_index = [&](uint32_t index, bool is_literal, bool is_ptr_chain = false) { AccessChainFlags mod_flags = flags; if (!is_literal) mod_flags &= ~ACCESS_CHAIN_INDEX_IS_LITERAL_BIT; + if (!is_ptr_chain) + mod_flags &= ~ACCESS_CHAIN_PTR_CHAIN_BIT; access_chain_internal_append_index(expr, base, type, mod_flags, access_chain_is_arrayed, index); + check_physical_type_cast(expr, type, physical_type); }; for (uint32_t i = 0; i < count; i++) @@ -8575,7 +9675,7 @@ string CompilerGLSL::access_chain_internal(uint32_t base, const uint32_t *indice } else { - append_index(index, is_literal); + append_index(index, is_literal, true); } if (type->basetype == SPIRType::ControlPointArray) @@ -8610,14 +9710,19 @@ string CompilerGLSL::access_chain_internal(uint32_t base, const uint32_t *indice // but HLSL seems to just emit straight arrays here. // We must pretend this access goes through gl_in/gl_out arrays // to be able to access certain builtins as arrays. + // Similar concerns apply for mesh shaders where we have to redirect to gl_MeshVerticesEXT or MeshPrimitivesEXT. auto builtin = ir.meta[base].decoration.builtin_type; + bool mesh_shader = get_execution_model() == ExecutionModelMeshEXT; + switch (builtin) { // case BuiltInCullDistance: // These are already arrays, need to figure out rules for these in tess/geom. // case BuiltInClipDistance: case BuiltInPosition: case BuiltInPointSize: - if (var->storage == StorageClassInput) + if (mesh_shader) + expr = join("gl_MeshVerticesEXT[", to_expression(index, register_expression_read), "].", expr); + else if (var->storage == StorageClassInput) expr = join("gl_in[", to_expression(index, register_expression_read), "].", expr); else if (var->storage == StorageClassOutput) expr = join("gl_out[", to_expression(index, register_expression_read), "].", expr); @@ -8625,11 +9730,30 @@ string CompilerGLSL::access_chain_internal(uint32_t base, const uint32_t *indice append_index(index, is_literal); break; + case BuiltInPrimitiveId: + case BuiltInLayer: + case BuiltInViewportIndex: + case BuiltInCullPrimitiveEXT: + case BuiltInPrimitiveShadingRateKHR: + if (mesh_shader) + expr = join("gl_MeshPrimitivesEXT[", to_expression(index, register_expression_read), "].", expr); + else + append_index(index, is_literal); + break; + default: append_index(index, is_literal); break; } } + else if (backend.force_merged_mesh_block && i == 0 && var && + !is_builtin_variable(*var) && var->storage == StorageClassOutput) + { + if (is_per_primitive_variable(*var)) + expr = join("gl_MeshPrimitivesEXT[", to_expression(index, register_expression_read), "].", expr); + else + expr = join("gl_MeshVerticesEXT[", to_expression(index, register_expression_read), "].", expr); + } else if (options.flatten_multidimensional_arrays && dimension_flatten) { // If we are flattening multidimensional arrays, do manual stride computation. @@ -8666,17 +9790,20 @@ string CompilerGLSL::access_chain_internal(uint32_t base, const uint32_t *indice access_chain_is_arrayed = true; } - // For structs, the index refers to a constant, which indexes into the members. + // For structs, the index refers to a constant, which indexes into the members, possibly through a redirection mapping. // We also check if this member is a builtin, since we then replace the entire expression with the builtin one. else if (type->basetype == SPIRType::Struct) { if (!is_literal) index = evaluate_constant_u32(index); + if (index < uint32_t(type->member_type_index_redirection.size())) + index = type->member_type_index_redirection[index]; + if (index >= type->member_types.size()) SPIRV_CROSS_THROW("Member index is out of bounds!"); - BuiltIn builtin; + BuiltIn builtin = BuiltInMax; if (is_member_builtin(*type, index, &builtin) && access_chain_needs_stage_io_builtin_translation(base)) { if (access_chain_is_arrayed) @@ -8696,11 +9823,19 @@ string CompilerGLSL::access_chain_internal(uint32_t base, const uint32_t *indice else if (flatten_member_reference) expr += join("_", to_member_name(*type, index)); else - expr += to_member_reference(base, *type, index, ptr_chain); + { + // Any pointer de-refences for values are handled in the first access chain. + // For pointer chains, the pointer-ness is resolved through an array access. + // The only time this is not true is when accessing array of SSBO/UBO. + // This case is explicitly handled. + expr += to_member_reference(base, *type, index, ptr_chain || i != 0); + } } if (has_member_decoration(type->self, index, DecorationInvariant)) is_invariant = true; + if (has_member_decoration(type->self, index, DecorationRelaxedPrecision)) + relaxed_precision = true; is_packed = member_is_packed_physical_type(*type, index); if (member_is_remapped_physical_type(*type, index)) @@ -8722,7 +9857,7 @@ string CompilerGLSL::access_chain_internal(uint32_t base, const uint32_t *indice if (is_literal) expr += convert_to_string(index); else - expr += to_expression(index, register_expression_read); + expr += to_unpacked_expression(index, register_expression_read); expr += "]"; type_id = type->parent_type; @@ -8777,34 +9912,41 @@ string CompilerGLSL::access_chain_internal(uint32_t base, const uint32_t *indice is_packed); } - if (is_literal && !is_packed && !row_major_matrix_needs_conversion) + if (is_literal) { - expr += "."; - expr += index_to_swizzle(index); + bool out_of_bounds = (index >= type->vecsize); + + if (!is_packed && !row_major_matrix_needs_conversion) + { + expr += "."; + expr += index_to_swizzle(out_of_bounds ? 0 : index); + } + else + { + // For packed vectors, we can only access them as an array, not by swizzle. + expr += join("[", out_of_bounds ? 0 : index, "]"); + } } else if (ir.ids[index].get_type() == TypeConstant && !is_packed && !row_major_matrix_needs_conversion) { auto &c = get(index); + bool out_of_bounds = (c.scalar() >= type->vecsize); + if (c.specialization) { // If the index is a spec constant, we cannot turn extract into a swizzle. - expr += join("[", to_expression(index), "]"); + expr += join("[", out_of_bounds ? "0" : to_expression(index), "]"); } else { expr += "."; - expr += index_to_swizzle(c.scalar()); + expr += index_to_swizzle(out_of_bounds ? 0 : c.scalar()); } } - else if (is_literal) - { - // For packed vectors, we can only access them as an array, not by swizzle. - expr += join("[", index, "]"); - } else { expr += "["; - expr += to_expression(index, register_expression_read); + expr += to_unpacked_expression(index, register_expression_read); expr += "]"; } @@ -8839,11 +9981,16 @@ string CompilerGLSL::access_chain_internal(uint32_t base, const uint32_t *indice meta->storage_is_packed = is_packed; meta->storage_is_invariant = is_invariant; meta->storage_physical_type = physical_type; + meta->relaxed_precision = relaxed_precision; } return expr; } +void CompilerGLSL::check_physical_type_cast(std::string &, const SPIRType *, uint32_t) +{ +} + void CompilerGLSL::prepare_access_chain_for_scalar_access(std::string &, const SPIRType &, spv::StorageClass, bool &) { } @@ -8997,8 +10144,13 @@ std::string CompilerGLSL::flattened_access_chain_struct(uint32_t base, const uin { std::string expr; - expr += type_to_glsl_constructor(target_type); - expr += "("; + if (backend.can_declare_struct_inline) + { + expr += type_to_glsl_constructor(target_type); + expr += "("; + } + else + expr += "{"; for (uint32_t i = 0; i < uint32_t(target_type.member_types.size()); ++i) { @@ -9011,10 +10163,13 @@ std::string CompilerGLSL::flattened_access_chain_struct(uint32_t base, const uin // The access chain terminates at the struct, so we need to find matrix strides and row-major information // ahead of time. bool need_transpose = false; + bool relaxed = false; uint32_t matrix_stride = 0; if (member_type.columns > 1) { - need_transpose = combined_decoration_for_member(target_type, i).get(DecorationRowMajor); + auto decorations = combined_decoration_for_member(target_type, i); + need_transpose = decorations.get(DecorationRowMajor); + relaxed = decorations.get(DecorationRelaxedPrecision); matrix_stride = type_struct_member_matrix_stride(target_type, i); } @@ -9023,12 +10178,12 @@ std::string CompilerGLSL::flattened_access_chain_struct(uint32_t base, const uin // Cannot forward transpositions, so resolve them here. if (need_transpose) - expr += convert_row_major_matrix(tmp, member_type, 0, false); + expr += convert_row_major_matrix(tmp, member_type, 0, false, relaxed); else expr += tmp; } - expr += ")"; + expr += backend.can_declare_struct_inline ? ")" : "}"; return expr; } @@ -9320,9 +10475,32 @@ bool CompilerGLSL::should_dereference(uint32_t id) if (auto *var = maybe_get(id)) return var->phi_variable; - // If id is an access chain, we should not dereference it. if (auto *expr = maybe_get(id)) - return !expr->access_chain; + { + // If id is an access chain, we should not dereference it. + if (expr->access_chain) + return false; + + // If id is a forwarded copy of a variable pointer, we should not dereference it. + SPIRVariable *var = nullptr; + while (expr->loaded_from && expression_is_forwarded(expr->self)) + { + auto &src_type = expression_type(expr->loaded_from); + // To be a copy, the pointer and its source expression must be the + // same type. Can't check type.self, because for some reason that's + // usually the base type with pointers stripped off. This check is + // complex enough that I've hoisted it out of the while condition. + if (src_type.pointer != type.pointer || src_type.pointer_depth != type.pointer_depth || + src_type.parent_type != type.parent_type) + break; + if ((var = maybe_get(expr->loaded_from))) + break; + if (!(expr = maybe_get(expr->loaded_from))) + break; + } + + return !var || var->phi_variable; + } // Otherwise, we should dereference this pointer expression. return true; @@ -9332,14 +10510,33 @@ bool CompilerGLSL::should_forward(uint32_t id) const { // If id is a variable we will try to forward it regardless of force_temporary check below // This is important because otherwise we'll get local sampler copies (highp sampler2D foo = bar) that are invalid in OpenGL GLSL + auto *var = maybe_get(id); - if (var && var->forwardable) - return true; + if (var) + { + // Never forward volatile builtin variables, e.g. SPIR-V 1.6 HelperInvocation. + return !(has_decoration(id, DecorationBuiltIn) && has_decoration(id, DecorationVolatile)); + } // For debugging emit temporary variables for all expressions if (options.force_temporary) return false; + // If an expression carries enough dependencies we need to stop forwarding at some point, + // or we explode compilers. There are usually limits to how much we can nest expressions. + auto *expr = maybe_get(id); + const uint32_t max_expression_dependencies = 64; + if (expr && expr->expression_dependencies.size() >= max_expression_dependencies) + return false; + + if (expr && expr->loaded_from + && has_decoration(expr->loaded_from, DecorationBuiltIn) + && has_decoration(expr->loaded_from, DecorationVolatile)) + { + // Never forward volatile builtin variables, e.g. SPIR-V 1.6 HelperInvocation. + return false; + } + // Immutable expression can always be forwarded. if (is_immutable(id)) return true; @@ -9396,9 +10593,8 @@ void CompilerGLSL::track_expression_read(uint32_t id) //if (v == 2) // fprintf(stderr, "ID %u was forced to temporary due to more than 1 expression use!\n", id); - forced_temporaries.insert(id); // Force a recompile after this pass to avoid forwarding this variable. - force_recompile(); + force_temporary_and_recompile(id); } } } @@ -9718,6 +10914,12 @@ bool CompilerGLSL::optimize_read_modify_write(const SPIRType &type, const string char bop = rhs[op]; auto expr = rhs.substr(lhs.size() + 3); + + // Avoids false positives where we get a = a * b + c. + // Normally, these expressions are always enclosed, but unexpected code paths may end up hitting this. + if (needs_enclose_expression(expr)) + return false; + // Try to find increments and decrements. Makes it look neater as += 1, -= 1 is fairly rare to see in real code. // Find some common patterns which are equivalent. if ((bop == '+' || bop == '-') && (expr == "1" || expr == "uint(1)" || expr == "1u" || expr == "int(1u)")) @@ -9739,8 +10941,51 @@ void CompilerGLSL::register_control_dependent_expression(uint32_t expr) void CompilerGLSL::emit_block_instructions(SPIRBlock &block) { current_emitting_block = █ + + if (backend.requires_relaxed_precision_analysis) + { + // If PHI variables are consumed in unexpected precision contexts, copy them here. + for (auto &phi : block.phi_variables) + { + auto itr = temporary_to_mirror_precision_alias.find(phi.function_variable); + if (itr != temporary_to_mirror_precision_alias.end()) + { + // Explicitly, we don't want to inherit RelaxedPrecision state in this CopyObject, + // so it helps to have handle_instruction_precision() on the outside of emit_instruction(). + EmbeddedInstruction inst; + inst.op = OpCopyObject; + inst.length = 3; + inst.ops.push_back(expression_type_id(itr->first)); + inst.ops.push_back(itr->second); + inst.ops.push_back(itr->first); + emit_instruction(inst); + } + } + } + for (auto &op : block.ops) + { + auto temporary_copy = handle_instruction_precision(op); emit_instruction(op); + if (temporary_copy.dst_id) + { + // Explicitly, we don't want to inherit RelaxedPrecision state in this CopyObject, + // so it helps to have handle_instruction_precision() on the outside of emit_instruction(). + EmbeddedInstruction inst; + inst.op = OpCopyObject; + inst.length = 3; + inst.ops.push_back(expression_type_id(temporary_copy.src_id)); + inst.ops.push_back(temporary_copy.dst_id); + inst.ops.push_back(temporary_copy.src_id); + + // Never attempt to hoist mirrored temporaries. + // They are hoisted in lock-step with their parents. + block_temporary_hoisting = true; + emit_instruction(inst); + block_temporary_hoisting = false; + } + } + current_emitting_block = nullptr; } @@ -9752,9 +10997,8 @@ void CompilerGLSL::disallow_forwarding_in_expression_chain(const SPIRExpression if (expression_is_forwarded(expr.self) && !expression_suppresses_usage_tracking(expr.self) && forced_invariant_temporaries.count(expr.self) == 0) { - forced_temporaries.insert(expr.self); + force_temporary_and_recompile(expr.self); forced_invariant_temporaries.insert(expr.self); - force_recompile(); for (auto &dependent : expr.expression_dependencies) disallow_forwarding_in_expression_chain(get(dependent)); @@ -9796,7 +11040,7 @@ void CompilerGLSL::emit_store_statement(uint32_t lhs_expression, uint32_t rhs_ex convert_non_uniform_expression(lhs, lhs_expression); // We might need to cast in order to store to a builtin. - cast_to_builtin_store(lhs_expression, rhs, expression_type(rhs_expression)); + cast_to_variable_store(lhs_expression, rhs, expression_type(rhs_expression)); // Tries to optimize assignments like " = op expr". // While this is purely cosmetic, this is important for legacy ESSL where loop @@ -9873,6 +11117,235 @@ uint32_t CompilerGLSL::get_integer_width_for_glsl_instruction(GLSLstd450 op, con } } +void CompilerGLSL::forward_relaxed_precision(uint32_t dst_id, const uint32_t *args, uint32_t length) +{ + // Only GLSL supports RelaxedPrecision directly. + // We cannot implement this in HLSL or MSL because it is tied to the type system. + // In SPIR-V, everything must masquerade as 32-bit. + if (!backend.requires_relaxed_precision_analysis) + return; + + auto input_precision = analyze_expression_precision(args, length); + + // For expressions which are loaded or directly forwarded, we inherit mediump implicitly. + // For dst_id to be analyzed properly, it must inherit any relaxed precision decoration from src_id. + if (input_precision == Options::Mediump) + set_decoration(dst_id, DecorationRelaxedPrecision); +} + +CompilerGLSL::Options::Precision CompilerGLSL::analyze_expression_precision(const uint32_t *args, uint32_t length) const +{ + // Now, analyze the precision at which the arguments would run. + // GLSL rules are such that the precision used to evaluate an expression is equal to the highest precision + // for the inputs. Constants do not have inherent precision and do not contribute to this decision. + // If all inputs are constants, they inherit precision from outer expressions, including an l-value. + // In this case, we'll have to force a temporary for dst_id so that we can bind the constant expression with + // correct precision. + bool expression_has_highp = false; + bool expression_has_mediump = false; + + for (uint32_t i = 0; i < length; i++) + { + uint32_t arg = args[i]; + + auto handle_type = ir.ids[arg].get_type(); + if (handle_type == TypeConstant || handle_type == TypeConstantOp || handle_type == TypeUndef) + continue; + + if (has_decoration(arg, DecorationRelaxedPrecision)) + expression_has_mediump = true; + else + expression_has_highp = true; + } + + if (expression_has_highp) + return Options::Highp; + else if (expression_has_mediump) + return Options::Mediump; + else + return Options::DontCare; +} + +void CompilerGLSL::analyze_precision_requirements(uint32_t type_id, uint32_t dst_id, uint32_t *args, uint32_t length) +{ + if (!backend.requires_relaxed_precision_analysis) + return; + + auto &type = get(type_id); + + // RelaxedPrecision only applies to 32-bit values. + if (type.basetype != SPIRType::Float && type.basetype != SPIRType::Int && type.basetype != SPIRType::UInt) + return; + + bool operation_is_highp = !has_decoration(dst_id, DecorationRelaxedPrecision); + + auto input_precision = analyze_expression_precision(args, length); + if (input_precision == Options::DontCare) + { + consume_temporary_in_precision_context(type_id, dst_id, input_precision); + return; + } + + // In SPIR-V and GLSL, the semantics are flipped for how relaxed precision is determined. + // In SPIR-V, the operation itself marks RelaxedPrecision, meaning that inputs can be truncated to 16-bit. + // However, if the expression is not, inputs must be expanded to 32-bit first, + // since the operation must run at high precision. + // This is the awkward part, because if we have mediump inputs, or expressions which derived from mediump, + // we might have to forcefully bind the source IDs to highp temporaries. This is done by clearing decorations + // and forcing temporaries. Similarly for mediump operations. We bind highp expressions to mediump variables. + if ((operation_is_highp && input_precision == Options::Mediump) || + (!operation_is_highp && input_precision == Options::Highp)) + { + auto precision = operation_is_highp ? Options::Highp : Options::Mediump; + for (uint32_t i = 0; i < length; i++) + { + // Rewrites the opcode so that we consume an ID in correct precision context. + // This is pretty hacky, but it's the most straight forward way of implementing this without adding + // lots of extra passes to rewrite all code blocks. + args[i] = consume_temporary_in_precision_context(expression_type_id(args[i]), args[i], precision); + } + } +} + +// This is probably not exhaustive ... +static bool opcode_is_precision_sensitive_operation(Op op) +{ + switch (op) + { + case OpFAdd: + case OpFSub: + case OpFMul: + case OpFNegate: + case OpIAdd: + case OpISub: + case OpIMul: + case OpSNegate: + case OpFMod: + case OpFDiv: + case OpFRem: + case OpSMod: + case OpSDiv: + case OpSRem: + case OpUMod: + case OpUDiv: + case OpVectorTimesMatrix: + case OpMatrixTimesVector: + case OpMatrixTimesMatrix: + case OpDPdx: + case OpDPdy: + case OpDPdxCoarse: + case OpDPdyCoarse: + case OpDPdxFine: + case OpDPdyFine: + case OpFwidth: + case OpFwidthCoarse: + case OpFwidthFine: + case OpVectorTimesScalar: + case OpMatrixTimesScalar: + case OpOuterProduct: + case OpFConvert: + case OpSConvert: + case OpUConvert: + case OpConvertSToF: + case OpConvertUToF: + case OpConvertFToU: + case OpConvertFToS: + return true; + + default: + return false; + } +} + +// Instructions which just load data but don't do any arithmetic operation should just inherit the decoration. +// SPIR-V doesn't require this, but it's somewhat implied it has to work this way, relaxed precision is only +// relevant when operating on the IDs, not when shuffling things around. +static bool opcode_is_precision_forwarding_instruction(Op op, uint32_t &arg_count) +{ + switch (op) + { + case OpLoad: + case OpAccessChain: + case OpInBoundsAccessChain: + case OpCompositeExtract: + case OpVectorExtractDynamic: + case OpSampledImage: + case OpImage: + case OpCopyObject: + + case OpImageRead: + case OpImageFetch: + case OpImageSampleImplicitLod: + case OpImageSampleProjImplicitLod: + case OpImageSampleDrefImplicitLod: + case OpImageSampleProjDrefImplicitLod: + case OpImageSampleExplicitLod: + case OpImageSampleProjExplicitLod: + case OpImageSampleDrefExplicitLod: + case OpImageSampleProjDrefExplicitLod: + case OpImageGather: + case OpImageDrefGather: + case OpImageSparseRead: + case OpImageSparseFetch: + case OpImageSparseSampleImplicitLod: + case OpImageSparseSampleProjImplicitLod: + case OpImageSparseSampleDrefImplicitLod: + case OpImageSparseSampleProjDrefImplicitLod: + case OpImageSparseSampleExplicitLod: + case OpImageSparseSampleProjExplicitLod: + case OpImageSparseSampleDrefExplicitLod: + case OpImageSparseSampleProjDrefExplicitLod: + case OpImageSparseGather: + case OpImageSparseDrefGather: + arg_count = 1; + return true; + + case OpVectorShuffle: + arg_count = 2; + return true; + + case OpCompositeConstruct: + return true; + + default: + break; + } + + return false; +} + +CompilerGLSL::TemporaryCopy CompilerGLSL::handle_instruction_precision(const Instruction &instruction) +{ + auto ops = stream_mutable(instruction); + auto opcode = static_cast(instruction.op); + uint32_t length = instruction.length; + + if (backend.requires_relaxed_precision_analysis) + { + if (length > 2) + { + uint32_t forwarding_length = length - 2; + + if (opcode_is_precision_sensitive_operation(opcode)) + analyze_precision_requirements(ops[0], ops[1], &ops[2], forwarding_length); + else if (opcode == OpExtInst && length >= 5 && get(ops[2]).ext == SPIRExtension::GLSL) + analyze_precision_requirements(ops[0], ops[1], &ops[4], forwarding_length - 2); + else if (opcode_is_precision_forwarding_instruction(opcode, forwarding_length)) + forward_relaxed_precision(ops[1], &ops[2], forwarding_length); + } + + uint32_t result_type = 0, result_id = 0; + if (instruction_to_result_type(result_type, result_id, opcode, ops, length)) + { + auto itr = temporary_to_mirror_precision_alias.find(ops[1]); + if (itr != temporary_to_mirror_precision_alias.end()) + return { itr->second, itr->first }; + } + } + + return {}; +} + void CompilerGLSL::emit_instruction(const Instruction &instruction) { auto ops = stream(instruction); @@ -9881,8 +11354,10 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) #define GLSL_BOP(op) emit_binary_op(ops[0], ops[1], ops[2], ops[3], #op) #define GLSL_BOP_CAST(op, type) \ - emit_binary_op_cast(ops[0], ops[1], ops[2], ops[3], #op, type, opcode_is_sign_invariant(opcode)) + emit_binary_op_cast(ops[0], ops[1], ops[2], ops[3], #op, type, \ + opcode_is_sign_invariant(opcode), implicit_integer_promotion) #define GLSL_UOP(op) emit_unary_op(ops[0], ops[1], ops[2], #op) +#define GLSL_UOP_CAST(op) emit_unary_op_cast(ops[0], ops[1], ops[2], #op) #define GLSL_QFOP(op) emit_quaternary_func_op(ops[0], ops[1], ops[2], ops[3], ops[4], ops[5], #op) #define GLSL_TFOP(op) emit_trinary_func_op(ops[0], ops[1], ops[2], ops[3], ops[4], #op) #define GLSL_BFOP(op) emit_binary_func_op(ops[0], ops[1], ops[2], ops[3], #op) @@ -9896,6 +11371,15 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) auto int_type = to_signed_basetype(integer_width); auto uint_type = to_unsigned_basetype(integer_width); + // Handle C implicit integer promotion rules. + // If we get implicit promotion to int, need to make sure we cast by value to intended return type, + // otherwise, future sign-dependent operations and bitcasts will break. + bool implicit_integer_promotion = integer_width < 32 && backend.implicit_c_integer_promotion_rules && + opcode_can_promote_integer_implicitly(opcode) && + get(ops[0]).vecsize == 1; + + opcode = get_remapped_spirv_op(opcode); + switch (opcode) { // Dealing with memory @@ -9960,8 +11444,14 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) if (expr_type.vecsize > type.vecsize) expr = enclose_expression(expr + vector_swizzle(type.vecsize, 0)); + if (forward && ptr_expression) + ptr_expression->need_transpose = old_need_transpose; + // We might need to cast in order to load from a builtin. - cast_from_builtin_load(ptr, expr, type); + cast_from_variable_load(ptr, expr, type); + + if (forward && ptr_expression) + ptr_expression->need_transpose = false; // We might be trying to load a gl_Position[N], where we should be // doing float4[](gl_in[i].gl_Position, ...) instead. @@ -10039,9 +11529,19 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) // If an expression is mutable and forwardable, we speculate that it is immutable. AccessChainMeta meta; bool ptr_chain = opcode == OpPtrAccessChain; - auto e = access_chain(ops[2], &ops[3], length - 3, get(ops[0]), &meta, ptr_chain); + auto &target_type = get(ops[0]); + auto e = access_chain(ops[2], &ops[3], length - 3, target_type, &meta, ptr_chain); - auto &expr = set(ops[1], move(e), ops[0], should_forward(ops[2])); + // If the base is flattened UBO of struct type, the expression has to be a composite. + // In that case, backends which do not support inline syntax need it to be bound to a temporary. + // Otherwise, invalid expressions like ({UBO[0].xyz, UBO[0].w, UBO[1]}).member are emitted. + bool requires_temporary = false; + if (flattened_buffer_blocks.count(ops[2]) && target_type.basetype == SPIRType::Struct) + requires_temporary = !backend.can_declare_struct_inline; + + auto &expr = requires_temporary ? + emit_op(ops[0], ops[1], std::move(e), false) : + set(ops[1], std::move(e), ops[0], should_forward(ops[2])); auto *backing_variable = maybe_get_backing_variable(ops[2]); expr.loaded_from = backing_variable ? backing_variable->self : ID(ops[2]); @@ -10057,6 +11557,8 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) set_decoration(ops[1], DecorationInvariant); if (meta.flattened_struct) flattened_structs[ops[1]] = true; + if (meta.relaxed_precision && backend.requires_relaxed_precision_analysis) + set_decoration(ops[1], DecorationRelaxedPrecision); // If we have some expression dependencies in our access chain, this access chain is technically a forwarded // temporary which could be subject to invalidation. @@ -10421,6 +11923,9 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) e = &emit_op(result_type, id, expr, true, should_suppress_usage_tracking(ops[2])); inherit_expression_dependencies(id, ops[2]); e->base_expression = ops[2]; + + if (meta.relaxed_precision && backend.requires_relaxed_precision_analysis) + set_decoration(ops[1], DecorationRelaxedPrecision); } else { @@ -10455,11 +11960,66 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) flush_variable_declaration(composite); - // Make a copy, then use access chain to store the variable. - statement(declare_temporary(result_type, id), to_expression(composite), ";"); - set(id, to_name(id), result_type, true); - auto chain = access_chain_internal(id, elems, length, ACCESS_CHAIN_INDEX_IS_LITERAL_BIT, nullptr); - statement(chain, " = ", to_unpacked_expression(obj), ";"); + // CompositeInsert requires a copy + modification, but this is very awkward code in HLL. + // Speculate that the input composite is no longer used, and we can modify it in-place. + // There are various scenarios where this is not possible to satisfy. + bool can_modify_in_place = true; + forced_temporaries.insert(id); + + // Cannot safely RMW PHI variables since they have no way to be invalidated, + // forcing temporaries is not going to help. + // This is similar for Constant and Undef inputs. + // The only safe thing to RMW is SPIRExpression. + // If the expression has already been used (i.e. used in a continue block), we have to keep using + // that loop variable, since we won't be able to override the expression after the fact. + // If the composite is hoisted, we might never be able to properly invalidate any usage + // of that composite in a subsequent loop iteration. + if (invalid_expressions.count(composite) || + block_composite_insert_overwrite.count(composite) || + hoisted_temporaries.count(id) || hoisted_temporaries.count(composite) || + maybe_get(composite) == nullptr) + { + can_modify_in_place = false; + } + else if (backend.requires_relaxed_precision_analysis && + has_decoration(composite, DecorationRelaxedPrecision) != + has_decoration(id, DecorationRelaxedPrecision) && + get(result_type).basetype != SPIRType::Struct) + { + // Similarly, if precision does not match for input and output, + // we cannot alias them. If we write a composite into a relaxed precision + // ID, we might get a false truncation. + can_modify_in_place = false; + } + + if (can_modify_in_place) + { + // Have to make sure the modified SSA value is bound to a temporary so we can modify it in-place. + if (!forced_temporaries.count(composite)) + force_temporary_and_recompile(composite); + + auto chain = access_chain_internal(composite, elems, length, ACCESS_CHAIN_INDEX_IS_LITERAL_BIT, nullptr); + statement(chain, " = ", to_unpacked_expression(obj), ";"); + set(id, to_expression(composite), result_type, true); + invalid_expressions.insert(composite); + composite_insert_overwritten.insert(composite); + } + else + { + if (maybe_get(composite) != nullptr) + { + emit_uninitialized_temporary_expression(result_type, id); + } + else + { + // Make a copy, then use access chain to store the variable. + statement(declare_temporary(result_type, id), to_expression(composite), ";"); + set(id, to_name(id), result_type, true); + } + + auto chain = access_chain_internal(id, elems, length, ACCESS_CHAIN_INDEX_IS_LITERAL_BIT, nullptr); + statement(chain, " = ", to_unpacked_expression(obj), ";"); + } break; } @@ -10536,15 +12096,14 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) { // Need a copy. // For pointer types, we copy the pointer itself. - statement(declare_temporary(result_type, id), to_unpacked_expression(rhs), ";"); - set(id, to_name(id), result_type, true); + emit_op(result_type, id, to_unpacked_expression(rhs), false); } else { // RHS expression is immutable, so just forward it. // Copying these things really make no sense, but // seems to be allowed anyways. - auto &e = set(id, to_expression(rhs), result_type, true); + auto &e = emit_op(result_type, id, to_expression(rhs), true, true); if (pointer) { auto *var = maybe_get_backing_variable(rhs); @@ -10645,14 +12204,66 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) // ALU case OpIsNan: - GLSL_UFOP(isnan); + if (!is_legacy()) + GLSL_UFOP(isnan); + else + { + // Check if the number doesn't equal itself + auto &type = get(ops[0]); + if (type.vecsize > 1) + emit_binary_func_op(ops[0], ops[1], ops[2], ops[2], "notEqual"); + else + emit_binary_op(ops[0], ops[1], ops[2], ops[2], "!="); + } break; case OpIsInf: - GLSL_UFOP(isinf); + if (!is_legacy()) + GLSL_UFOP(isinf); + else + { + // inf * 2 == inf by IEEE 754 rules, note this also applies to 0.0 + // This is more reliable than checking if product with zero is NaN + uint32_t result_type = ops[0]; + uint32_t result_id = ops[1]; + uint32_t operand = ops[2]; + + auto &type = get(result_type); + std::string expr; + if (type.vecsize > 1) + { + expr = type_to_glsl_constructor(type); + expr += '('; + for (uint32_t i = 0; i < type.vecsize; i++) + { + auto comp = to_extract_component_expression(operand, i); + expr += join(comp, " != 0.0 && 2.0 * ", comp, " == ", comp); + + if (i + 1 < type.vecsize) + expr += ", "; + } + expr += ')'; + } + else + { + // Register an extra read to force writing out a temporary + auto oper = to_enclosed_expression(operand); + track_expression_read(operand); + expr += join(oper, " != 0.0 && 2.0 * ", oper, " == ", oper); + } + emit_op(result_type, result_id, expr, should_forward(operand)); + + inherit_expression_dependencies(result_id, operand); + } break; case OpSNegate: + if (implicit_integer_promotion || expression_type_id(ops[2]) != ops[0]) + GLSL_UOP_CAST(-); + else + GLSL_UOP(-); + break; + case OpFNegate: GLSL_UOP(-); break; @@ -10742,14 +12353,59 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) break; } - case OpFMul: case OpMatrixTimesScalar: + { + auto *a = maybe_get(ops[2]); + + // If the matrix need transpose, just mark the result as needing so. + if (a && a->need_transpose) + { + a->need_transpose = false; + auto expr = join(enclose_expression(to_unpacked_row_major_matrix_expression(ops[2])), " * ", + to_enclosed_unpacked_expression(ops[3])); + bool forward = should_forward(ops[2]) && should_forward(ops[3]); + auto &e = emit_op(ops[0], ops[1], expr, forward); + e.need_transpose = true; + a->need_transpose = true; + inherit_expression_dependencies(ops[1], ops[2]); + inherit_expression_dependencies(ops[1], ops[3]); + } + else + GLSL_BOP(*); + break; + } + + case OpFMul: case OpVectorTimesScalar: GLSL_BOP(*); break; case OpOuterProduct: - GLSL_BFOP(outerProduct); + if (options.version < 120) // Matches GLSL 1.10 / ESSL 1.00 + { + uint32_t result_type = ops[0]; + uint32_t id = ops[1]; + uint32_t a = ops[2]; + uint32_t b = ops[3]; + + auto &type = get(result_type); + string expr = type_to_glsl_constructor(type); + expr += "("; + for (uint32_t col = 0; col < type.columns; col++) + { + expr += to_enclosed_expression(a); + expr += " * "; + expr += to_extract_component_expression(b, col); + if (col + 1 < type.columns) + expr += ", "; + } + expr += ")"; + emit_op(result_type, id, expr, should_forward(a) && should_forward(b)); + inherit_expression_dependencies(id, a); + inherit_expression_dependencies(id, b); + } + else + GLSL_BFOP(outerProduct); break; case OpDot: @@ -10797,6 +12453,9 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) auto expr = join(to_enclosed_expression(op0), " - ", to_enclosed_expression(op1), " * ", "(", to_enclosed_expression(op0), " / ", to_enclosed_expression(op1), ")"); + if (implicit_integer_promotion) + expr = join(type_to_glsl(get(result_type)), '(', expr, ')'); + emit_op(result_type, result_id, expr, forward); inherit_expression_dependencies(result_id, op0); inherit_expression_dependencies(result_id, op1); @@ -10894,7 +12553,10 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) } case OpNot: - GLSL_UOP(~); + if (implicit_integer_promotion || expression_type_id(ops[2]) != ops[0]) + GLSL_UOP_CAST(~); + else + GLSL_UOP(~); break; case OpUMod: @@ -10911,10 +12573,6 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) case OpFRem: { - if (is_legacy()) - SPIRV_CROSS_THROW("OpFRem requires trunc() and is only supported on non-legacy targets. A workaround is " - "needed for legacy."); - uint32_t result_type = ops[0]; uint32_t result_id = ops[1]; uint32_t op0 = ops[2]; @@ -10922,8 +12580,22 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) // Needs special handling. bool forward = should_forward(op0) && should_forward(op1); - auto expr = join(to_enclosed_expression(op0), " - ", to_enclosed_expression(op1), " * ", "trunc(", - to_enclosed_expression(op0), " / ", to_enclosed_expression(op1), ")"); + std::string expr; + if (!is_legacy()) + { + expr = join(to_enclosed_expression(op0), " - ", to_enclosed_expression(op1), " * ", "trunc(", + to_enclosed_expression(op0), " / ", to_enclosed_expression(op1), ")"); + } + else + { + // Legacy GLSL has no trunc, emulate by casting to int and back + auto &op0_type = expression_type(op0); + auto via_type = op0_type; + via_type.basetype = SPIRType::Int; + expr = join(to_enclosed_expression(op0), " - ", to_enclosed_expression(op1), " * ", + type_to_glsl(op0_type), "(", type_to_glsl(via_type), "(", + to_enclosed_expression(op0), " / ", to_enclosed_expression(op1), "))"); + } emit_op(result_type, result_id, expr, forward); inherit_expression_dependencies(result_id, op0); @@ -11012,7 +12684,11 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) case OpLogicalNotEqual: case OpFOrdNotEqual: + case OpFUnordNotEqual: { + // GLSL is fuzzy on what to do with ordered vs unordered not equal. + // glslang started emitting UnorderedNotEqual some time ago to harmonize with IEEE, + // but this means we have no easy way of implementing ordered not equal. if (expression_type(ops[2]).vecsize > 1) GLSL_BFOP(notEqual); else @@ -11420,6 +13096,7 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) } case OpAtomicIAdd: + case OpAtomicFAddEXT: { const char *op = check_atomic_image(ops[2]) ? "imageAtomicAdd" : "atomicAdd"; emit_atomic_func_op(ops[0], ops[1], ops[2], ops[5], op); @@ -11572,7 +13249,12 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) op = "textureQueryLOD"; } else if (options.es) - SPIRV_CROSS_THROW("textureQueryLod not supported in ES profile."); + { + if (options.version < 300) + SPIRV_CROSS_THROW("textureQueryLod not supported in legacy ES"); + require_extension_internal("GL_EXT_texture_query_lod"); + op = "textureQueryLOD"; + } else op = "textureQueryLod"; @@ -11618,6 +13300,11 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) uint32_t result_type = ops[0]; uint32_t id = ops[1]; + if (options.es) + SPIRV_CROSS_THROW("textureSamples and imageSamples not supported in ES profile."); + else if (options.version < 450) + require_extension_internal("GL_ARB_texture_query_samples"); + string expr; if (type.image.sampled == 2) expr = join("imageSamples(", to_non_uniform_aware_expression(ops[2]), ")"); @@ -11645,12 +13332,12 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) uint32_t result_type = ops[0]; uint32_t id = ops[1]; uint32_t img = ops[2]; + auto &type = expression_type(img); + auto &imgtype = get(type.self); std::string fname = "textureSize"; if (is_legacy_desktop()) { - auto &type = expression_type(img); - auto &imgtype = get(type.self); fname = legacy_tex_op(fname, imgtype, img); } else if (is_legacy_es()) @@ -11658,6 +13345,11 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) auto expr = join(fname, "(", convert_separate_image_to_expression(img), ", ", bitcast_expression(SPIRType::Int, ops[3]), ")"); + + // ES needs to emulate 1D images as 2D. + if (type.image.dim == Dim1D && options.es) + expr = join(expr, ".x"); + auto &restype = get(ops[0]); expr = bitcast_expression(restype, SPIRType::Int, expr); emit_op(result_type, id, expr, true); @@ -11674,10 +13366,10 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) auto *var = maybe_get_backing_variable(ops[2]); if (var) { - auto &flags = ir.meta[var->self].decoration.decoration_flags; + auto &flags = get_decoration_bitset(var->self); if (flags.get(DecorationNonReadable)) { - flags.clear(DecorationNonReadable); + unset_decoration(var->self, DecorationNonReadable); force_recompile(); } } @@ -11772,6 +13464,10 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) target_coord_type.basetype = SPIRType::Int; coord_expr = bitcast_expression(target_coord_type, expression_type(ops[3]).basetype, coord_expr); + // ES needs to emulate 1D images as 2D. + if (type.image.dim == Dim1D && options.es) + coord_expr = join("ivec2(", coord_expr, ", 0)"); + // Plain image load/store. if (sparse) { @@ -11816,7 +13512,7 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) pure = false; } - if (var && var->forwardable) + if (var) { bool forward = forced_temporaries.find(id) == end(forced_temporaries); auto &e = emit_op(result_type, id, imgexpr, forward); @@ -11866,10 +13562,9 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) auto *var = maybe_get_backing_variable(ops[0]); if (var) { - auto &flags = ir.meta[var->self].decoration.decoration_flags; - if (flags.get(DecorationNonWritable)) + if (has_decoration(var->self, DecorationNonWritable)) { - flags.clear(DecorationNonWritable); + unset_decoration(var->self, DecorationNonWritable); force_recompile(); } } @@ -11885,6 +13580,10 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) target_coord_type.basetype = SPIRType::Int; coord_expr = bitcast_expression(target_coord_type, expression_type(ops[1]).basetype, coord_expr); + // ES needs to emulate 1D images as 2D. + if (type.image.dim == Dim1D && options.es) + coord_expr = join("ivec2(", coord_expr, ", 0)"); + if (type.image.ms) { uint32_t operands = ops[3]; @@ -12113,31 +13812,52 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) case OpExtInst: { uint32_t extension_set = ops[2]; + auto ext = get(extension_set).ext; - if (get(extension_set).ext == SPIRExtension::GLSL) + if (ext == SPIRExtension::GLSL) { emit_glsl_op(ops[0], ops[1], ops[3], &ops[4], length - 4); } - else if (get(extension_set).ext == SPIRExtension::SPV_AMD_shader_ballot) + else if (ext == SPIRExtension::SPV_AMD_shader_ballot) { emit_spv_amd_shader_ballot_op(ops[0], ops[1], ops[3], &ops[4], length - 4); } - else if (get(extension_set).ext == SPIRExtension::SPV_AMD_shader_explicit_vertex_parameter) + else if (ext == SPIRExtension::SPV_AMD_shader_explicit_vertex_parameter) { emit_spv_amd_shader_explicit_vertex_parameter_op(ops[0], ops[1], ops[3], &ops[4], length - 4); } - else if (get(extension_set).ext == SPIRExtension::SPV_AMD_shader_trinary_minmax) + else if (ext == SPIRExtension::SPV_AMD_shader_trinary_minmax) { emit_spv_amd_shader_trinary_minmax_op(ops[0], ops[1], ops[3], &ops[4], length - 4); } - else if (get(extension_set).ext == SPIRExtension::SPV_AMD_gcn_shader) + else if (ext == SPIRExtension::SPV_AMD_gcn_shader) { emit_spv_amd_gcn_shader_op(ops[0], ops[1], ops[3], &ops[4], length - 4); } - else if (get(extension_set).ext == SPIRExtension::SPV_debug_info) + else if (ext == SPIRExtension::SPV_debug_info || + ext == SPIRExtension::NonSemanticShaderDebugInfo || + ext == SPIRExtension::NonSemanticGeneric) { break; // Ignore SPIR-V debug information extended instructions. } + else if (ext == SPIRExtension::NonSemanticDebugPrintf) + { + // Operation 1 is printf. + if (ops[3] == 1) + { + if (!options.vulkan_semantics) + SPIRV_CROSS_THROW("Debug printf is only supported in Vulkan GLSL.\n"); + require_extension_internal("GL_EXT_debug_printf"); + auto &format_string = get(ops[4]).str; + string expr = join("debugPrintfEXT(\"", format_string, "\""); + for (uint32_t i = 5; i < length; i++) + { + expr += ", "; + expr += to_expression(ops[i]); + } + statement(expr, ");"); + } + } else { statement("// unimplemented ext op ", instruction.op); @@ -12332,7 +14052,6 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) break; case OpFUnordEqual: - case OpFUnordNotEqual: case OpFUnordLessThan: case OpFUnordGreaterThan: case OpFUnordLessThanEqual: @@ -12355,10 +14074,6 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) comp_op = "notEqual"; break; - case OpFUnordNotEqual: - comp_op = "equal"; - break; - case OpFUnordLessThan: comp_op = "greaterThanEqual"; break; @@ -12391,10 +14106,6 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) comp_op = " != "; break; - case OpFUnordNotEqual: - comp_op = " == "; - break; - case OpFUnordLessThan: comp_op = " >= "; break; @@ -12471,9 +14182,87 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) flush_control_dependent_expressions(current_emitting_block->self); break; - case OpConvertUToAccelerationStructureKHR: - GLSL_UFOP(accelerationStructureEXT); + // Don't bother forwarding temporaries. Avoids having to test expression invalidation with ray query objects. + case OpRayQueryInitializeKHR: + flush_variable_declaration(ops[0]); + statement("rayQueryInitializeEXT(", + to_expression(ops[0]), ", ", to_expression(ops[1]), ", ", + to_expression(ops[2]), ", ", to_expression(ops[3]), ", ", + to_expression(ops[4]), ", ", to_expression(ops[5]), ", ", + to_expression(ops[6]), ", ", to_expression(ops[7]), ");"); break; + case OpRayQueryProceedKHR: + flush_variable_declaration(ops[0]); + emit_op(ops[0], ops[1], join("rayQueryProceedEXT(", to_expression(ops[2]), ")"), false); + break; + case OpRayQueryTerminateKHR: + flush_variable_declaration(ops[0]); + statement("rayQueryTerminateEXT(", to_expression(ops[0]), ");"); + break; + case OpRayQueryGenerateIntersectionKHR: + flush_variable_declaration(ops[0]); + statement("rayQueryGenerateIntersectionEXT(", to_expression(ops[0]), ", ", to_expression(ops[1]), ");"); + break; + case OpRayQueryConfirmIntersectionKHR: + flush_variable_declaration(ops[0]); + statement("rayQueryConfirmIntersectionEXT(", to_expression(ops[0]), ");"); + break; +#define GLSL_RAY_QUERY_GET_OP(op) \ + case OpRayQueryGet##op##KHR: \ + flush_variable_declaration(ops[2]); \ + emit_op(ops[0], ops[1], join("rayQueryGet" #op "EXT(", to_expression(ops[2]), ")"), false); \ + break +#define GLSL_RAY_QUERY_GET_OP2(op) \ + case OpRayQueryGet##op##KHR: \ + flush_variable_declaration(ops[2]); \ + emit_op(ops[0], ops[1], join("rayQueryGet" #op "EXT(", to_expression(ops[2]), ", ", "bool(", to_expression(ops[3]), "))"), false); \ + break + GLSL_RAY_QUERY_GET_OP(RayTMin); + GLSL_RAY_QUERY_GET_OP(RayFlags); + GLSL_RAY_QUERY_GET_OP(WorldRayOrigin); + GLSL_RAY_QUERY_GET_OP(WorldRayDirection); + GLSL_RAY_QUERY_GET_OP(IntersectionCandidateAABBOpaque); + GLSL_RAY_QUERY_GET_OP2(IntersectionType); + GLSL_RAY_QUERY_GET_OP2(IntersectionT); + GLSL_RAY_QUERY_GET_OP2(IntersectionInstanceCustomIndex); + GLSL_RAY_QUERY_GET_OP2(IntersectionInstanceId); + GLSL_RAY_QUERY_GET_OP2(IntersectionInstanceShaderBindingTableRecordOffset); + GLSL_RAY_QUERY_GET_OP2(IntersectionGeometryIndex); + GLSL_RAY_QUERY_GET_OP2(IntersectionPrimitiveIndex); + GLSL_RAY_QUERY_GET_OP2(IntersectionBarycentrics); + GLSL_RAY_QUERY_GET_OP2(IntersectionFrontFace); + GLSL_RAY_QUERY_GET_OP2(IntersectionObjectRayDirection); + GLSL_RAY_QUERY_GET_OP2(IntersectionObjectRayOrigin); + GLSL_RAY_QUERY_GET_OP2(IntersectionObjectToWorld); + GLSL_RAY_QUERY_GET_OP2(IntersectionWorldToObject); +#undef GLSL_RAY_QUERY_GET_OP +#undef GLSL_RAY_QUERY_GET_OP2 + + case OpConvertUToAccelerationStructureKHR: + { + require_extension_internal("GL_EXT_ray_tracing"); + + bool elide_temporary = should_forward(ops[2]) && forced_temporaries.count(ops[1]) == 0 && + !hoisted_temporaries.count(ops[1]); + + if (elide_temporary) + { + GLSL_UFOP(accelerationStructureEXT); + } + else + { + // Force this path in subsequent iterations. + forced_temporaries.insert(ops[1]); + + // We cannot declare a temporary acceleration structure in GLSL. + // If we get to this point, we'll have to emit a temporary uvec2, + // and cast to RTAS on demand. + statement(declare_temporary(expression_type_id(ops[2]), ops[1]), to_unpacked_expression(ops[2]), ";"); + // Use raw SPIRExpression interface to block all usage tracking. + set(ops[1], join("accelerationStructureEXT(", to_name(ops[1]), ")"), ops[0], true); + } + break; + } case OpConvertUToPtr: { @@ -12481,6 +14270,10 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) if (type.storage != StorageClassPhysicalStorageBufferEXT) SPIRV_CROSS_THROW("Only StorageClassPhysicalStorageBufferEXT is supported by OpConvertUToPtr."); + auto &in_type = expression_type(ops[2]); + if (in_type.vecsize == 2) + require_extension_internal("GL_EXT_buffer_reference_uvec2"); + auto op = type_to_glsl(type); emit_unary_func_op(ops[0], ops[1], ops[2], op.c_str()); break; @@ -12493,6 +14286,9 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) if (ptr_type.storage != StorageClassPhysicalStorageBufferEXT) SPIRV_CROSS_THROW("Only StorageClassPhysicalStorageBufferEXT is supported by OpConvertPtrToU."); + if (type.vecsize == 2) + require_extension_internal("GL_EXT_buffer_reference_uvec2"); + auto op = type_to_glsl(type); emit_unary_func_op(ops[0], ops[1], ops[2], op.c_str()); break; @@ -12522,6 +14318,8 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) if (!options.vulkan_semantics) SPIRV_CROSS_THROW("GL_EXT_demote_to_helper_invocation is only supported in Vulkan GLSL."); require_extension_internal("GL_EXT_demote_to_helper_invocation"); + // Helper lane state with demote is volatile by nature. + // Do not forward this. emit_op(ops[0], ops[1], "helperInvocationEXT()", false); break; @@ -12529,11 +14327,7 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) // If the interlock is complex, we emit this elsewhere. if (!interlocked_is_complex) { - if (options.es) - statement("beginInvocationInterlockNV();"); - else - statement("beginInvocationInterlockARB();"); - + statement("SPIRV_Cross_beginInvocationInterlock();"); flush_all_active_variables(); // Make sure forwarding doesn't propagate outside interlock region. } @@ -12543,16 +14337,52 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) // If the interlock is complex, we emit this elsewhere. if (!interlocked_is_complex) { - if (options.es) - statement("endInvocationInterlockNV();"); - else - statement("endInvocationInterlockARB();"); - + statement("SPIRV_Cross_endInvocationInterlock();"); flush_all_active_variables(); // Make sure forwarding doesn't propagate outside interlock region. } break; + case OpSetMeshOutputsEXT: + statement("SetMeshOutputsEXT(", to_unpacked_expression(ops[0]), ", ", to_unpacked_expression(ops[1]), ");"); + break; + + case OpReadClockKHR: + { + auto &type = get(ops[0]); + auto scope = static_cast(evaluate_constant_u32(ops[2])); + const char *op = nullptr; + // Forwarding clock statements leads to a scenario where an SSA value can take on different + // values every time it's evaluated. Block any forwarding attempt. + // We also might want to invalidate all expressions to function as a sort of optimization + // barrier, but might be overkill for now. + if (scope == ScopeDevice) + { + require_extension_internal("GL_EXT_shader_realtime_clock"); + if (type.basetype == SPIRType::BaseType::UInt64) + op = "clockRealtimeEXT()"; + else if (type.basetype == SPIRType::BaseType::UInt && type.vecsize == 2) + op = "clockRealtime2x32EXT()"; + else + SPIRV_CROSS_THROW("Unsupported result type for OpReadClockKHR opcode."); + } + else if (scope == ScopeSubgroup) + { + require_extension_internal("GL_ARB_shader_clock"); + if (type.basetype == SPIRType::BaseType::UInt64) + op = "clockARB()"; + else if (type.basetype == SPIRType::BaseType::UInt && type.vecsize == 2) + op = "clock2x32ARB()"; + else + SPIRV_CROSS_THROW("Unsupported result type for OpReadClockKHR opcode."); + } + else + SPIRV_CROSS_THROW("Unsupported scope for OpReadClockKHR opcode."); + + emit_op(ops[0], ops[1], op, false); + break; + } + default: statement("// unimplemented op ", instruction.op); break; @@ -12685,7 +14515,7 @@ bool CompilerGLSL::member_is_packed_physical_type(const SPIRType &type, uint32_t // Base implementation uses the standard library transpose() function. // Subclasses may override to use a different function. string CompilerGLSL::convert_row_major_matrix(string exp_str, const SPIRType &exp_type, uint32_t /* physical_type_id */, - bool /*is_packed*/) + bool /*is_packed*/, bool relaxed) { strip_enclosed_expression(exp_str); if (!is_matrix(exp_type)) @@ -12715,32 +14545,14 @@ string CompilerGLSL::convert_row_major_matrix(string exp_str, const SPIRType &ex // GLSL 110, ES 100 do not have transpose(), so emulate it. Note that // these GLSL versions do not support non-square matrices. if (exp_type.vecsize == 2 && exp_type.columns == 2) - { - if (!requires_transpose_2x2) - { - requires_transpose_2x2 = true; - force_recompile(); - } - } + require_polyfill(PolyfillTranspose2x2, relaxed); else if (exp_type.vecsize == 3 && exp_type.columns == 3) - { - if (!requires_transpose_3x3) - { - requires_transpose_3x3 = true; - force_recompile(); - } - } + require_polyfill(PolyfillTranspose3x3, relaxed); else if (exp_type.vecsize == 4 && exp_type.columns == 4) - { - if (!requires_transpose_4x4) - { - requires_transpose_4x4 = true; - force_recompile(); - } - } + require_polyfill(PolyfillTranspose4x4, relaxed); else SPIRV_CROSS_THROW("Non-square matrices are not supported in legacy GLSL, cannot transpose."); - return join("spvTranspose(", exp_str, ")"); + return join("spvTranspose", (options.es && relaxed) ? "MP" : "", "(", exp_str, ")"); } else return join("transpose(", exp_str, ")"); @@ -12791,17 +14603,20 @@ string CompilerGLSL::flags_to_qualifiers_glsl(const SPIRType &type, const Bitset if (flags.get(DecorationRestrictPointerEXT)) return "restrict "; - // Structs do not have precision qualifiers, neither do doubles (desktop only anyways, so no mediump/highp). - if (type.basetype != SPIRType::Float && type.basetype != SPIRType::Int && type.basetype != SPIRType::UInt && - type.basetype != SPIRType::Image && type.basetype != SPIRType::SampledImage && - type.basetype != SPIRType::Sampler) - return ""; - string qual; - if (flags.get(DecorationNoContraction) && backend.support_precise_qualifier) + if (type_is_floating_point(type) && flags.get(DecorationNoContraction) && backend.support_precise_qualifier) qual = "precise "; + // Structs do not have precision qualifiers, neither do doubles (desktop only anyways, so no mediump/highp). + bool type_supports_precision = + type.basetype == SPIRType::Float || type.basetype == SPIRType::Int || type.basetype == SPIRType::UInt || + type.basetype == SPIRType::Image || type.basetype == SPIRType::SampledImage || + type.basetype == SPIRType::Sampler; + + if (!type_supports_precision) + return qual; + if (options.es) { auto &execution = get_entry_point(); @@ -12858,40 +14673,55 @@ string CompilerGLSL::to_precision_qualifiers_glsl(uint32_t id) return flags_to_qualifiers_glsl(type, ir.meta[id].decoration.decoration_flags); } -void CompilerGLSL::fixup_io_block_patch_qualifiers(const SPIRVariable &var) +void CompilerGLSL::fixup_io_block_patch_primitive_qualifiers(const SPIRVariable &var) { // Works around weird behavior in glslangValidator where // a patch out block is translated to just block members getting the decoration. // To make glslang not complain when we compile again, we have to transform this back to a case where // the variable itself has Patch decoration, and not members. + // Same for perprimitiveEXT. auto &type = get(var.basetype); if (has_decoration(type.self, DecorationBlock)) { uint32_t member_count = uint32_t(type.member_types.size()); + Decoration promoted_decoration = {}; + bool do_promote_decoration = false; for (uint32_t i = 0; i < member_count; i++) { if (has_member_decoration(type.self, i, DecorationPatch)) { - set_decoration(var.self, DecorationPatch); + promoted_decoration = DecorationPatch; + do_promote_decoration = true; + break; + } + else if (has_member_decoration(type.self, i, DecorationPerPrimitiveEXT)) + { + promoted_decoration = DecorationPerPrimitiveEXT; + do_promote_decoration = true; break; } } - if (has_decoration(var.self, DecorationPatch)) + if (do_promote_decoration) + { + set_decoration(var.self, promoted_decoration); for (uint32_t i = 0; i < member_count; i++) - unset_member_decoration(type.self, i, DecorationPatch); + unset_member_decoration(type.self, i, promoted_decoration); + } } } string CompilerGLSL::to_qualifiers_glsl(uint32_t id) { - auto &flags = ir.meta[id].decoration.decoration_flags; + auto &flags = get_decoration_bitset(id); string res; auto *var = maybe_get(id); if (var && var->storage == StorageClassWorkgroup && !backend.shared_is_implied) res += "shared "; + else if (var && var->storage == StorageClassTaskPayloadWorkgroupEXT && !backend.shared_is_implied) + res += "taskPayloadSharedEXT "; res += to_interpolation_qualifiers(flags); if (var) @@ -12948,7 +14778,7 @@ string CompilerGLSL::argument_decl(const SPIRFunction::Parameter &arg) string CompilerGLSL::to_initializer_expression(const SPIRVariable &var) { - return to_expression(var.initializer); + return to_unpacked_expression(var.initializer); } string CompilerGLSL::to_zero_initialized_expression(uint32_t type_id) @@ -12996,7 +14826,7 @@ string CompilerGLSL::variable_decl(const SPIRVariable &variable) { uint32_t expr = variable.static_expression; if (ir.ids[expr].get_type() != TypeUndef) - res += join(" = ", to_expression(variable.static_expression)); + res += join(" = ", to_unpacked_expression(variable.static_expression)); else if (options.force_zero_initialized_variables && type_can_zero_initialize(type)) res += join(" = ", to_zero_initialized_expression(get_variable_data_type_id(variable))); } @@ -13014,7 +14844,7 @@ string CompilerGLSL::variable_decl(const SPIRVariable &variable) const char *CompilerGLSL::to_pls_qualifiers_glsl(const SPIRVariable &variable) { - auto &flags = ir.meta[variable.self].decoration.decoration_flags; + auto &flags = get_decoration_bitset(variable.self); if (flags.get(DecorationRelaxedPrecision)) return "mediump "; else @@ -13174,7 +15004,8 @@ string CompilerGLSL::image_type_glsl(const SPIRType &type, uint32_t id) switch (type.image.dim) { case Dim1D: - res += "1D"; + // ES doesn't support 1D. Fake it with 2D. + res += options.es ? "2D" : "1D"; break; case Dim2D: res += "2D"; @@ -13197,7 +15028,7 @@ string CompilerGLSL::image_type_glsl(const SPIRType &type, uint32_t id) case DimBuffer: if (options.es && options.version < 320) - require_extension_internal("GL_OES_texture_buffer"); + require_extension_internal("GL_EXT_texture_buffer"); else if (!options.es && options.version < 300) require_extension_internal("GL_EXT_texture_buffer_object"); res += "Buffer"; @@ -13221,9 +15052,20 @@ string CompilerGLSL::image_type_glsl(const SPIRType &type, uint32_t id) // "Shadow" state in GLSL only exists for samplers and combined image samplers. if (((type.basetype == SPIRType::SampledImage) || (type.basetype == SPIRType::Sampler)) && - image_is_comparison(type, id)) + is_depth_image(type, id)) { res += "Shadow"; + + if (type.image.dim == DimCube && is_legacy()) + { + if (!options.es) + require_extension_internal("GL_EXT_gpu_shader4"); + else + { + require_extension_internal("GL_NV_shadow_samplers_cube"); + res += "NV"; + } + } } return res; @@ -13292,6 +15134,9 @@ string CompilerGLSL::type_to_glsl(const SPIRType &type, uint32_t id) case SPIRType::AccelerationStructure: return ray_tracing_is_khr ? "accelerationStructureEXT" : "accelerationStructureNV"; + case SPIRType::RayQuery: + return "rayQueryEXT"; + case SPIRType::Void: return "void"; @@ -13300,7 +15145,20 @@ string CompilerGLSL::type_to_glsl(const SPIRType &type, uint32_t id) } if (type.basetype == SPIRType::UInt && is_legacy()) - SPIRV_CROSS_THROW("Unsigned integers are not supported on legacy targets."); + { + if (options.es) + SPIRV_CROSS_THROW("Unsigned integers are not supported on legacy ESSL."); + else + require_extension_internal("GL_EXT_gpu_shader4"); + } + + if (type.basetype == SPIRType::AtomicCounter) + { + if (options.es && options.version < 310) + SPIRV_CROSS_THROW("At least ESSL 3.10 required for atomic counters."); + else if (!options.es && options.version < 420) + require_extension_internal("GL_ARB_shader_atomic_counters"); + } if (type.vecsize == 1 && type.columns == 1) // Scalar builtin { @@ -13469,7 +15327,7 @@ void CompilerGLSL::flatten_buffer_block(VariableID id) auto &var = get(id); auto &type = get(var.basetype); auto name = to_name(type.self, false); - auto &flags = ir.meta[type.self].decoration.decoration_flags; + auto &flags = get_decoration_bitset(type.self); if (!type.array.empty()) SPIRV_CROSS_THROW(name + " is an array of UBOs."); @@ -13499,11 +15357,10 @@ bool CompilerGLSL::check_atomic_image(uint32_t id) auto *var = maybe_get_backing_variable(id); if (var) { - auto &flags = ir.meta[var->self].decoration.decoration_flags; - if (flags.get(DecorationNonWritable) || flags.get(DecorationNonReadable)) + if (has_decoration(var->self, DecorationNonWritable) || has_decoration(var->self, DecorationNonReadable)) { - flags.clear(DecorationNonWritable); - flags.clear(DecorationNonReadable); + unset_decoration(var->self, DecorationNonWritable); + unset_decoration(var->self, DecorationNonReadable); force_recompile(); } } @@ -13756,7 +15613,11 @@ void CompilerGLSL::emit_function(SPIRFunction &func, const Bitset &return_flags) // Loop variables are never declared outside their for-loop, so block any implicit declaration. if (var.loop_variable) + { var.deferred_declaration = false; + // Need to reset the static expression so we can fallback to initializer if need be. + var.static_expression = 0; + } } // Enforce declaration order for regression testing purposes. @@ -13941,21 +15802,32 @@ void CompilerGLSL::branch(BlockID from, BlockID to) // - Break merge target all at once ... // Very dirty workaround. - // Switch constructs are able to break, but they cannot break out of a loop at the same time. + // Switch constructs are able to break, but they cannot break out of a loop at the same time, + // yet SPIR-V allows it. // Only sensible solution is to make a ladder variable, which we declare at the top of the switch block, // write to the ladder here, and defer the break. // The loop we're breaking out of must dominate the switch block, or there is no ladder breaking case. - if (current_emitting_switch && is_loop_break(to) && - current_emitting_switch->loop_dominator != BlockID(SPIRBlock::NoDominator) && - get(current_emitting_switch->loop_dominator).merge_block == to) + if (is_loop_break(to)) { - if (!current_emitting_switch->need_ladder_break) + for (size_t n = current_emitting_switch_stack.size(); n; n--) { - force_recompile(); - current_emitting_switch->need_ladder_break = true; - } + auto *current_emitting_switch = current_emitting_switch_stack[n - 1]; - statement("_", current_emitting_switch->self, "_ladder_break = true;"); + if (current_emitting_switch && + current_emitting_switch->loop_dominator != BlockID(SPIRBlock::NoDominator) && + get(current_emitting_switch->loop_dominator).merge_block == to) + { + if (!current_emitting_switch->need_ladder_break) + { + force_recompile(); + current_emitting_switch->need_ladder_break = true; + } + + statement("_", current_emitting_switch->self, "_ladder_break = true;"); + } + else + break; + } } statement("break;"); } @@ -14000,7 +15872,10 @@ void CompilerGLSL::branch(BlockID from, uint32_t cond, BlockID true_block, Block if (!true_block_needs_code && !false_block_needs_code) return; - emit_block_hints(get(from)); + // We might have a loop merge here. Only consider selection flattening constructs. + // Loop hints are handled explicitly elsewhere. + if (from_block.hint == SPIRBlock::HintFlatten || from_block.hint == SPIRBlock::HintDontFlatten) + emit_block_hints(from_block); if (true_block_needs_code) { @@ -14372,10 +16247,17 @@ void CompilerGLSL::emit_hoisted_temporaries(SmallVector> &tempo for (auto &tmp : temporaries) { - add_local_variable_name(tmp.second); - auto &flags = ir.meta[tmp.second].decoration.decoration_flags; auto &type = get(tmp.first); + // There are some rare scenarios where we are asked to declare pointer types as hoisted temporaries. + // This should be ignored unless we're doing actual variable pointers and backend supports it. + // Access chains cannot normally be lowered to temporaries in GLSL and HLSL. + if (type.pointer && !backend.native_pointers) + continue; + + add_local_variable_name(tmp.second); + auto &flags = get_decoration_bitset(tmp.second); + // Not all targets support pointer literals, so don't bother with that case. string initializer; if (options.force_zero_initialized_variables && type_can_zero_initialize(type)) @@ -14388,6 +16270,21 @@ void CompilerGLSL::emit_hoisted_temporaries(SmallVector> &tempo // The temporary might be read from before it's assigned, set up the expression now. set(tmp.second, to_name(tmp.second), tmp.first, true); + + // If we have hoisted temporaries in multi-precision contexts, emit that here too ... + // We will not be able to analyze hoisted-ness for dependent temporaries that we hallucinate here. + auto mirrored_precision_itr = temporary_to_mirror_precision_alias.find(tmp.second); + if (mirrored_precision_itr != temporary_to_mirror_precision_alias.end()) + { + uint32_t mirror_id = mirrored_precision_itr->second; + auto &mirror_flags = get_decoration_bitset(mirror_id); + statement(flags_to_qualifiers_glsl(type, mirror_flags), + variable_decl(type, to_name(mirror_id)), + initializer, ";"); + // The temporary might be read from before it's assigned, set up the expression now. + set(mirror_id, to_name(mirror_id), tmp.first, true); + hoisted_temporaries.insert(mirror_id); + } } } @@ -14506,6 +16403,7 @@ void CompilerGLSL::emit_block_chain(SPIRBlock &block) // for (;;) { create-temporary; break; } consume-temporary; // so force-declare temporaries here. emit_hoisted_temporaries(block.potential_declare_temporary); + emit_block_hints(block); statement("for (;;)"); begin_scope(); @@ -14520,7 +16418,7 @@ void CompilerGLSL::emit_block_chain(SPIRBlock &block) // as writes to said loop variables might have been masked out, we need a recompile. if (!emitted_loop_header_variables && !block.loop_variables.empty()) { - force_recompile(); + force_recompile_guarantee_forward_progress(); for (auto var : block.loop_variables) get(var).loop_variable = false; block.loop_variables.clear(); @@ -14590,13 +16488,13 @@ void CompilerGLSL::emit_block_chain(SPIRBlock &block) case SPIRBlock::MultiSelect: { auto &type = expression_type(block.condition); - bool unsigned_case = - type.basetype == SPIRType::UInt || type.basetype == SPIRType::UShort || type.basetype == SPIRType::UByte; + bool unsigned_case = type.basetype == SPIRType::UInt || type.basetype == SPIRType::UShort || + type.basetype == SPIRType::UByte || type.basetype == SPIRType::UInt64; if (block.merge == SPIRBlock::MergeNone) SPIRV_CROSS_THROW("Switch statement is not structured"); - if (type.basetype == SPIRType::UInt64 || type.basetype == SPIRType::Int64) + if (!backend.support_64bit_switch && (type.basetype == SPIRType::UInt64 || type.basetype == SPIRType::Int64)) { // SPIR-V spec suggests this is allowed, but we cannot support it in higher level languages. SPIRV_CROSS_THROW("Cannot use 64-bit switch selectors."); @@ -14605,27 +16503,31 @@ void CompilerGLSL::emit_block_chain(SPIRBlock &block) const char *label_suffix = ""; if (type.basetype == SPIRType::UInt && backend.uint32_t_literal_suffix) label_suffix = "u"; + else if (type.basetype == SPIRType::Int64 && backend.support_64bit_switch) + label_suffix = "l"; + else if (type.basetype == SPIRType::UInt64 && backend.support_64bit_switch) + label_suffix = "ul"; else if (type.basetype == SPIRType::UShort) label_suffix = backend.uint16_t_literal_suffix; else if (type.basetype == SPIRType::Short) label_suffix = backend.int16_t_literal_suffix; - SPIRBlock *old_emitting_switch = current_emitting_switch; - current_emitting_switch = █ + current_emitting_switch_stack.push_back(&block); if (block.need_ladder_break) statement("bool _", block.self, "_ladder_break = false;"); // Find all unique case constructs. - unordered_map> case_constructs; + unordered_map> case_constructs; SmallVector block_declaration_order; - SmallVector literals_to_merge; + SmallVector literals_to_merge; // If a switch case branches to the default block for some reason, we can just remove that literal from consideration // and let the default: block handle it. // 2.11 in SPIR-V spec states that for fall-through cases, there is a very strict declaration order which we can take advantage of here. // We only need to consider possible fallthrough if order[i] branches to order[i + 1]. - for (auto &c : block.cases) + auto &cases = get_case_list(block); + for (auto &c : cases) { if (c.block != block.next_block && c.block != block.default_block) { @@ -14682,11 +16584,22 @@ void CompilerGLSL::emit_block_chain(SPIRBlock &block) size_t num_blocks = block_declaration_order.size(); - const auto to_case_label = [](uint32_t literal, bool is_unsigned_case) -> string { - return is_unsigned_case ? convert_to_string(literal) : convert_to_string(int32_t(literal)); + const auto to_case_label = [](uint64_t literal, uint32_t width, bool is_unsigned_case) -> string + { + if (is_unsigned_case) + return convert_to_string(literal); + + // For smaller cases, the literals are compiled as 32 bit wide + // literals so we don't need to care for all sizes specifically. + if (width <= 32) + { + return convert_to_string(int64_t(int32_t(literal))); + } + + return convert_to_string(int64_t(literal)); }; - const auto to_legacy_case_label = [&](uint32_t condition, const SmallVector &labels, + const auto to_legacy_case_label = [&](uint32_t condition, const SmallVector &labels, const char *suffix) -> string { string ret; size_t count = labels.size(); @@ -14728,7 +16641,7 @@ void CompilerGLSL::emit_block_chain(SPIRBlock &block) auto &negative_literals = case_constructs[block_declaration_order[j]]; for (auto &case_label : negative_literals) conditions.push_back(join(to_enclosed_expression(block.condition), - " != ", to_case_label(case_label, unsigned_case))); + " != ", to_case_label(case_label, type.width, unsigned_case))); } statement("if (", merge(conditions, " && "), ")"); @@ -14742,7 +16655,7 @@ void CompilerGLSL::emit_block_chain(SPIRBlock &block) conditions.reserve(literals.size()); for (auto &case_label : literals) conditions.push_back(join(to_enclosed_expression(block.condition), - " == ", to_case_label(case_label, unsigned_case))); + " == ", to_case_label(case_label, type.width, unsigned_case))); statement("if (", merge(conditions, " || "), ")"); begin_scope(); flush_phi(block.self, target_block); @@ -14757,26 +16670,32 @@ void CompilerGLSL::emit_block_chain(SPIRBlock &block) // If there is only one default block, and no cases, this is a case where SPIRV-opt decided to emulate // non-structured exits with the help of a switch block. // This is buggy on FXC, so just emit the logical equivalent of a do { } while(false), which is more idiomatic. - bool degenerate_switch = block.default_block != block.merge_block && block.cases.empty(); + bool block_like_switch = cases.empty(); - if (degenerate_switch || is_legacy_es()) + // If this is true, the switch is completely meaningless, and we should just avoid it. + bool collapsed_switch = block_like_switch && block.default_block == block.next_block; + + if (!collapsed_switch) { - // ESSL 1.0 is not guaranteed to support do/while. - if (is_legacy_es()) + if (block_like_switch || is_legacy_es()) { - uint32_t counter = statement_count; - statement("for (int spvDummy", counter, " = 0; spvDummy", counter, - " < 1; spvDummy", counter, "++)"); + // ESSL 1.0 is not guaranteed to support do/while. + if (is_legacy_es()) + { + uint32_t counter = statement_count; + statement("for (int spvDummy", counter, " = 0; spvDummy", counter, " < 1; spvDummy", counter, + "++)"); + } + else + statement("do"); } else - statement("do"); + { + emit_block_hints(block); + statement("switch (", to_unpacked_expression(block.condition), ")"); + } + begin_scope(); } - else - { - emit_block_hints(block); - statement("switch (", to_expression(block.condition), ")"); - } - begin_scope(); for (size_t i = 0; i < num_blocks; i++) { @@ -14786,7 +16705,7 @@ void CompilerGLSL::emit_block_chain(SPIRBlock &block) if (literals.empty()) { // Default case. - if (!degenerate_switch) + if (!block_like_switch) { if (is_legacy_es()) statement("else"); @@ -14806,7 +16725,7 @@ void CompilerGLSL::emit_block_chain(SPIRBlock &block) for (auto &case_literal : literals) { // The case label value must be sign-extended properly in SPIR-V, so we can assume 32-bit values here. - statement("case ", to_case_label(case_literal, unsigned_case), label_suffix, ":"); + statement("case ", to_case_label(case_literal, type.width, unsigned_case), label_suffix, ":"); } } } @@ -14824,42 +16743,51 @@ void CompilerGLSL::emit_block_chain(SPIRBlock &block) else current_emitting_switch_fallthrough = false; - if (!degenerate_switch) + if (!block_like_switch) begin_scope(); branch(block.self, target_block); - if (!degenerate_switch) + if (!block_like_switch) end_scope(); current_emitting_switch_fallthrough = false; } // Might still have to flush phi variables if we branch from loop header directly to merge target. - if (flush_phi_required(block.self, block.next_block)) + // This is supposed to emit all cases where we branch from header to merge block directly. + // There are two main scenarios where cannot rely on default fallthrough. + // - There is an explicit default: label already. + // In this case, literals_to_merge need to form their own "default" case, so that we avoid executing that block. + // - Header -> Merge requires flushing PHI. In this case, we need to collect all cases and flush PHI there. + bool header_merge_requires_phi = flush_phi_required(block.self, block.next_block); + bool need_fallthrough_block = block.default_block == block.next_block || !literals_to_merge.empty(); + if (!collapsed_switch && ((header_merge_requires_phi && need_fallthrough_block) || !literals_to_merge.empty())) { - if (block.default_block == block.next_block || !literals_to_merge.empty()) + for (auto &case_literal : literals_to_merge) + statement("case ", to_case_label(case_literal, type.width, unsigned_case), label_suffix, ":"); + + if (block.default_block == block.next_block) { - for (auto &case_literal : literals_to_merge) - statement("case ", to_case_label(case_literal, unsigned_case), label_suffix, ":"); - - if (block.default_block == block.next_block) - { - if (is_legacy_es()) - statement("else"); - else - statement("default:"); - } - - begin_scope(); - flush_phi(block.self, block.next_block); - statement("break;"); - end_scope(); + if (is_legacy_es()) + statement("else"); + else + statement("default:"); } + + begin_scope(); + flush_phi(block.self, block.next_block); + statement("break;"); + end_scope(); } - if (degenerate_switch && !is_legacy_es()) - end_scope_decl("while(false)"); + if (!collapsed_switch) + { + if (block_like_switch && !is_legacy_es()) + end_scope_decl("while(false)"); + else + end_scope(); + } else - end_scope(); + flush_phi(block.self, block.next_block); if (block.need_ladder_break) { @@ -14869,7 +16797,7 @@ void CompilerGLSL::emit_block_chain(SPIRBlock &block) end_scope(); } - current_emitting_switch = old_emitting_switch; + current_emitting_switch_stack.pop_back(); break; } @@ -14906,7 +16834,7 @@ void CompilerGLSL::emit_block_chain(SPIRBlock &block) { // OpReturnValue can return Undef, so don't emit anything for this case. if (ir.ids[block.return_value].get_type() != TypeUndef) - statement("return ", to_expression(block.return_value), ";"); + statement("return ", to_unpacked_expression(block.return_value), ";"); } } else if (!cfg.node_terminates_control_flow_in_sub_graph(current_function->entry_block, block.self) || @@ -14921,13 +16849,51 @@ void CompilerGLSL::emit_block_chain(SPIRBlock &block) break; } + // If the Kill is terminating a block with a (probably synthetic) return value, emit a return value statement. case SPIRBlock::Kill: statement(backend.discard_literal, ";"); + if (block.return_value) + statement("return ", to_unpacked_expression(block.return_value), ";"); break; case SPIRBlock::Unreachable: + { + // Avoid emitting false fallthrough, which can happen for + // if (cond) break; else discard; inside a case label. + // Discard is not always implementable as a terminator. + + auto &cfg = get_cfg_for_current_function(); + bool inner_dominator_is_switch = false; + ID id = block.self; + + while (id) + { + auto &iter_block = get(id); + if (iter_block.terminator == SPIRBlock::MultiSelect || + iter_block.merge == SPIRBlock::MergeLoop) + { + ID next_block = iter_block.merge == SPIRBlock::MergeLoop ? + iter_block.merge_block : iter_block.next_block; + bool outside_construct = next_block && cfg.find_common_dominator(next_block, block.self) == next_block; + if (!outside_construct) + { + inner_dominator_is_switch = iter_block.terminator == SPIRBlock::MultiSelect; + break; + } + } + + if (cfg.get_preceding_edges(id).empty()) + break; + + id = cfg.get_immediate_dominator(id); + } + + if (inner_dominator_is_switch) + statement("break; // unreachable workaround"); + emit_next_block = false; break; + } case SPIRBlock::IgnoreIntersection: statement("ignoreIntersectionEXT;"); @@ -14937,6 +16903,10 @@ void CompilerGLSL::emit_block_chain(SPIRBlock &block) statement("terminateRayEXT;"); break; + case SPIRBlock::EmitMeshTasks: + emit_mesh_tasks(block); + break; + default: SPIRV_CROSS_THROW("Unimplemented block terminator."); } @@ -15213,11 +17183,11 @@ void CompilerGLSL::unroll_array_from_complex_load(uint32_t target_id, uint32_t s statement(new_expr, "[i] = ", expr, "[i];"); end_scope(); - expr = move(new_expr); + expr = std::move(new_expr); } } -void CompilerGLSL::cast_from_builtin_load(uint32_t source_id, std::string &expr, const SPIRType &expr_type) +void CompilerGLSL::cast_from_variable_load(uint32_t source_id, std::string &expr, const SPIRType &expr_type) { // We will handle array cases elsewhere. if (!expr_type.array.empty()) @@ -15229,7 +17199,12 @@ void CompilerGLSL::cast_from_builtin_load(uint32_t source_id, std::string &expr, // Only interested in standalone builtin variables. if (!has_decoration(source_id, DecorationBuiltIn)) + { + // Except for int attributes in legacy GLSL, which are cast from float. + if (is_legacy() && expr_type.basetype == SPIRType::Int && var && var->storage == StorageClassInput) + expr = join(type_to_glsl(expr_type), "(", expr, ")"); return; + } auto builtin = static_cast(get_decoration(source_id, DecorationBuiltIn)); auto expected_type = expr_type.basetype; @@ -15265,6 +17240,9 @@ void CompilerGLSL::cast_from_builtin_load(uint32_t source_id, std::string &expr, case BuiltInIncomingRayFlagsNV: case BuiltInLaunchIdNV: case BuiltInLaunchSizeNV: + case BuiltInPrimitiveTriangleIndicesEXT: + case BuiltInPrimitiveLineIndicesEXT: + case BuiltInPrimitivePointIndicesEXT: expected_type = SPIRType::UInt; break; @@ -15276,7 +17254,7 @@ void CompilerGLSL::cast_from_builtin_load(uint32_t source_id, std::string &expr, expr = bitcast_expression(expr_type, expected_type, expr); } -void CompilerGLSL::cast_to_builtin_store(uint32_t target_id, std::string &expr, const SPIRType &expr_type) +void CompilerGLSL::cast_to_variable_store(uint32_t target_id, std::string &expr, const SPIRType &expr_type) { auto *var = maybe_get_backing_variable(target_id); if (var) @@ -15372,8 +17350,32 @@ void CompilerGLSL::convert_non_uniform_expression(string &expr, uint32_t ptr_id) expr.substr(end_array_index, string::npos)); } -void CompilerGLSL::emit_block_hints(const SPIRBlock &) +void CompilerGLSL::emit_block_hints(const SPIRBlock &block) { + if ((options.es && options.version < 310) || (!options.es && options.version < 140)) + return; + + switch (block.hint) + { + case SPIRBlock::HintFlatten: + require_extension_internal("GL_EXT_control_flow_attributes"); + statement("SPIRV_CROSS_FLATTEN"); + break; + case SPIRBlock::HintDontFlatten: + require_extension_internal("GL_EXT_control_flow_attributes"); + statement("SPIRV_CROSS_BRANCH"); + break; + case SPIRBlock::HintUnroll: + require_extension_internal("GL_EXT_control_flow_attributes"); + statement("SPIRV_CROSS_UNROLL"); + break; + case SPIRBlock::HintDontUnroll: + require_extension_internal("GL_EXT_control_flow_attributes"); + statement("SPIRV_CROSS_LOOP"); + break; + default: + break; + } } void CompilerGLSL::preserve_alias_on_reset(uint32_t id) @@ -15396,6 +17398,52 @@ void CompilerGLSL::reset_name_caches() function_overloads.clear(); } +void CompilerGLSL::fixup_anonymous_struct_names(std::unordered_set &visited, const SPIRType &type) +{ + if (visited.count(type.self)) + return; + visited.insert(type.self); + + for (uint32_t i = 0; i < uint32_t(type.member_types.size()); i++) + { + auto &mbr_type = get(type.member_types[i]); + + if (mbr_type.basetype == SPIRType::Struct) + { + // If there are multiple aliases, the output might be somewhat unpredictable, + // but the only real alternative in that case is to do nothing, which isn't any better. + // This check should be fine in practice. + if (get_name(mbr_type.self).empty() && !get_member_name(type.self, i).empty()) + { + auto anon_name = join("anon_", get_member_name(type.self, i)); + ParsedIR::sanitize_underscores(anon_name); + set_name(mbr_type.self, anon_name); + } + + fixup_anonymous_struct_names(visited, mbr_type); + } + } +} + +void CompilerGLSL::fixup_anonymous_struct_names() +{ + // HLSL codegen can often end up emitting anonymous structs inside blocks, which + // breaks GL linking since all names must match ... + // Try to emit sensible code, so attempt to find such structs and emit anon_$member. + + // Breaks exponential explosion with weird type trees. + std::unordered_set visited; + + ir.for_each_typed_id([&](uint32_t, SPIRType &type) { + if (type.basetype == SPIRType::Struct && + (has_decoration(type.self, DecorationBlock) || + has_decoration(type.self, DecorationBufferBlock))) + { + fixup_anonymous_struct_names(visited, type); + } + }); +} + void CompilerGLSL::fixup_type_alias() { // Due to how some backends work, the "master" type of type_alias must be a block-like type if it exists. @@ -15448,7 +17496,7 @@ void CompilerGLSL::reorder_type_alias() if (alias_itr < master_itr) { // Must also swap the type order for the constant-type joined array. - auto &joined_types = ir.ids_for_constant_or_type; + auto &joined_types = ir.ids_for_constant_undef_or_type; auto alt_alias_itr = find(begin(joined_types), end(joined_types), *alias_itr); auto alt_master_itr = find(begin(joined_types), end(joined_types), *master_itr); assert(alt_alias_itr != end(joined_types)); @@ -15524,7 +17572,7 @@ void CompilerGLSL::emit_copy_logical_type(uint32_t lhs_id, uint32_t lhs_type_id, rhs_id = id + 1; { - auto &lhs_expr = set(lhs_id, move(lhs), lhs_type_id, true); + auto &lhs_expr = set(lhs_id, std::move(lhs), lhs_type_id, true); lhs_expr.need_transpose = lhs_meta.need_transpose; if (lhs_meta.storage_is_packed) @@ -15537,7 +17585,7 @@ void CompilerGLSL::emit_copy_logical_type(uint32_t lhs_id, uint32_t lhs_type_id, } { - auto &rhs_expr = set(rhs_id, move(rhs), rhs_type_id, true); + auto &rhs_expr = set(rhs_id, std::move(rhs), rhs_type_id, true); rhs_expr.need_transpose = rhs_meta.need_transpose; if (rhs_meta.storage_is_packed) @@ -15622,7 +17670,7 @@ void CompilerGLSL::emit_inout_fragment_outputs_copy_to_subpass_inputs() bool CompilerGLSL::variable_is_depth_or_compare(VariableID id) const { - return image_is_comparison(get(get(id).basetype), id); + return is_depth_image(get(get(id).basetype), id); } const char *CompilerGLSL::ShaderSubgroupSupportHelper::get_extension_name(Candidate c) @@ -15857,6 +17905,7 @@ void CompilerGLSL::rewrite_load_for_wrapped_row_major(std::string &expr, TypeID auto *type = &get(loaded_type); bool rewrite = false; + bool relaxed = options.es; if (is_matrix(*type)) { @@ -15867,24 +17916,31 @@ void CompilerGLSL::rewrite_load_for_wrapped_row_major(std::string &expr, TypeID // If an access chain occurred, the workaround is not required, so loading vectors or scalars don't need workaround. type = &backing_type; } + else + { + // If we're loading a composite, we don't have overloads like these. + relaxed = false; + } if (type->basetype == SPIRType::Struct) { // If we're loading a struct where any member is a row-major matrix, apply the workaround. for (uint32_t i = 0; i < uint32_t(type->member_types.size()); i++) { - if (combined_decoration_for_member(*type, i).get(DecorationRowMajor)) - { + auto decorations = combined_decoration_for_member(*type, i); + if (decorations.get(DecorationRowMajor)) rewrite = true; - break; - } + + // Since we decide on a per-struct basis, only use mediump wrapper if all candidates are mediump. + if (!decorations.get(DecorationRelaxedPrecision)) + relaxed = false; } } if (rewrite) { request_workaround_wrapper_overload(loaded_type); - expr = join("spvWorkaroundRowMajor(", expr, ")"); + expr = join("spvWorkaroundRowMajor", (relaxed ? "MP" : ""), "(", expr, ")"); } } @@ -15943,6 +17999,22 @@ bool CompilerGLSL::is_stage_output_block_member_masked(const SPIRVariable &var, } } +bool CompilerGLSL::is_per_primitive_variable(const SPIRVariable &var) const +{ + if (has_decoration(var.self, DecorationPerPrimitiveEXT)) + return true; + + auto &type = get(var.basetype); + if (!has_decoration(type.self, DecorationBlock)) + return false; + + for (uint32_t i = 0, n = uint32_t(type.member_types.size()); i < n; i++) + if (!has_member_decoration(type.self, i, DecorationPerPrimitiveEXT)) + return false; + + return true; +} + bool CompilerGLSL::is_stage_output_location_masked(uint32_t location, uint32_t component) const { return masked_output_locations.count({ location, component }) != 0; diff --git a/third_party/spirv-cross/spirv_glsl.hpp b/third_party/spirv-cross/spirv_glsl.hpp index 20b949351f..0b40ed801e 100644 --- a/third_party/spirv-cross/spirv_glsl.hpp +++ b/third_party/spirv-cross/spirv_glsl.hpp @@ -1,5 +1,6 @@ /* * Copyright 2015-2021 Arm Limited + * SPDX-License-Identifier: Apache-2.0 OR MIT * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +19,6 @@ * At your option, you may choose to accept this material under either: * 1. The Apache License, Version 2.0, found at , or * 2. The MIT License, found at . - * SPDX-License-Identifier: Apache-2.0 OR MIT. */ #ifndef SPIRV_CROSS_GLSL_HPP @@ -83,6 +83,11 @@ public: // Debug option to always emit temporary variables for all expressions. bool force_temporary = false; + // Debug option, can be increased in an attempt to workaround SPIRV-Cross bugs temporarily. + // If this limit has to be increased, it points to an implementation bug. + // In certain scenarios, the maximum number of debug iterations may increase beyond this limit + // as long as we can prove we're making certain kinds of forward progress. + uint32_t force_recompile_max_debug_iterations = 3; // If true, Vulkan GLSL features are used instead of GL-compatible features. // Mostly useful for debugging SPIR-V files. @@ -133,6 +138,22 @@ public: // what happens on legacy GLSL targets for blocks and structs. bool force_flattened_io_blocks = false; + // For opcodes where we have to perform explicit additional nan checks, very ugly code is generated. + // If we opt-in, ignore these requirements. + // In opcodes like NClamp/NMin/NMax and FP compare, ignore NaN behavior. + // Use FClamp/FMin/FMax semantics for clamps and lets implementation choose ordered or unordered + // compares. + bool relax_nan_checks = false; + + // Loading row-major matrices from UBOs on older AMD Windows OpenGL drivers is problematic. + // To load these types correctly, we must generate a wrapper. them in a dummy function which only purpose is to + // ensure row_major decoration is actually respected. + // This workaround may cause significant performance degeneration on some Android devices. + bool enable_row_major_load_workaround = true; + + // If non-zero, controls layout(num_views = N) in; in GL_OVR_multiview2. + uint32_t ovr_multiview_view_count = 0; + enum Precision { DontCare, @@ -339,7 +360,7 @@ protected: // TODO remove this function when all subgroup ops are supported (or make it always return true) static bool is_supported_subgroup_op_in_opengl(spv::Op op); - void reset(); + void reset(uint32_t iteration_count); void emit_function(SPIRFunction &func, const Bitset &return_flags); bool has_extension(const std::string &ext) const; @@ -349,11 +370,22 @@ protected: virtual void emit_function_prototype(SPIRFunction &func, const Bitset &return_flags); SPIRBlock *current_emitting_block = nullptr; - SPIRBlock *current_emitting_switch = nullptr; + SmallVector current_emitting_switch_stack; bool current_emitting_switch_fallthrough = false; virtual void emit_instruction(const Instruction &instr); + struct TemporaryCopy + { + uint32_t dst_id; + uint32_t src_id; + }; + TemporaryCopy handle_instruction_precision(const Instruction &instr); void emit_block_instructions(SPIRBlock &block); + + // For relax_nan_checks. + GLSLstd450 get_remapped_glsl_op(GLSLstd450 std450_op) const; + spv::Op get_remapped_spirv_op(spv::Op op) const; + virtual void emit_glsl_op(uint32_t result_type, uint32_t result_id, uint32_t op, const uint32_t *args, uint32_t count); virtual void emit_spv_amd_shader_ballot_op(uint32_t result_type, uint32_t result_id, uint32_t op, @@ -382,8 +414,8 @@ protected: const std::string &qualifier = "", uint32_t base_offset = 0); virtual void emit_struct_padding_target(const SPIRType &type); virtual std::string image_type_glsl(const SPIRType &type, uint32_t id = 0); - std::string constant_expression(const SPIRConstant &c); - std::string constant_op_expression(const SPIRConstantOp &cop); + std::string constant_expression(const SPIRConstant &c, bool inside_block_like_struct_scope = false); + virtual std::string constant_op_expression(const SPIRConstantOp &cop); virtual std::string constant_expression_vector(const SPIRConstant &c, uint32_t vector); virtual void emit_fixup(); virtual std::string variable_decl(const SPIRType &type, const std::string &name, uint32_t id = 0); @@ -416,7 +448,7 @@ protected: TextureFunctionArguments() = default; TextureFunctionBaseArguments base; uint32_t coord = 0, coord_components = 0, dref = 0; - uint32_t grad_x = 0, grad_y = 0, lod = 0, coffset = 0, offset = 0; + uint32_t grad_x = 0, grad_y = 0, lod = 0, offset = 0; uint32_t bias = 0, component = 0, sample = 0, sparse_texel = 0, min_lod = 0; bool nonuniform_expression = false; }; @@ -492,6 +524,7 @@ protected: // on a single line separated by comma. SmallVector *redirect_statement = nullptr; const SPIRBlock *current_continue_block = nullptr; + bool block_temporary_hoisting = false; void begin_scope(); void end_scope(); @@ -519,7 +552,8 @@ protected: bool member_is_remapped_physical_type(const SPIRType &type, uint32_t index) const; bool member_is_packed_physical_type(const SPIRType &type, uint32_t index) const; virtual std::string convert_row_major_matrix(std::string exp_str, const SPIRType &exp_type, - uint32_t physical_type_id, bool is_packed); + uint32_t physical_type_id, bool is_packed, + bool relaxed = false); std::unordered_set local_variable_names; std::unordered_set resource_names; @@ -569,12 +603,13 @@ protected: bool allow_precision_qualifiers = false; bool can_swizzle_scalar = false; bool force_gl_in_out_block = false; + bool force_merged_mesh_block = false; bool can_return_array = true; bool allow_truncated_access_chain = false; bool supports_extensions = false; bool supports_empty_struct = false; bool array_is_value_type = true; - bool buffer_offset_array_is_value_type = true; + bool array_is_value_type_in_buffer_blocks = true; bool comparison_image_samples_scalar = false; bool native_pointers = false; bool support_small_type_sampling_result = false; @@ -583,16 +618,21 @@ protected: bool needs_row_major_load_workaround = false; bool support_pointer_to_pointer = false; bool support_precise_qualifier = false; + bool support_64bit_switch = false; + bool workgroup_size_is_hidden = false; + bool requires_relaxed_precision_analysis = false; + bool implicit_c_integer_promotion_rules = false; } backend; void emit_struct(SPIRType &type); void emit_resources(); void emit_extension_workarounds(spv::ExecutionModel model); + void emit_polyfills(uint32_t polyfills, bool relaxed); void emit_buffer_block_native(const SPIRVariable &var); - void emit_buffer_reference_block(SPIRType &type, bool forward_declaration); + void emit_buffer_reference_block(uint32_t type_id, bool forward_declaration); void emit_buffer_block_legacy(const SPIRVariable &var); void emit_buffer_block_flattened(const SPIRVariable &type); - void fixup_implicit_builtin_block_names(); + void fixup_implicit_builtin_block_names(spv::ExecutionModel model); void emit_declared_builtin_block(spv::StorageClass storage, spv::ExecutionModel model); bool should_force_emit_builtin_block(spv::StorageClass storage); void emit_push_constant_block_vulkan(const SPIRVariable &var); @@ -606,6 +646,7 @@ protected: void emit_block_chain(SPIRBlock &block); void emit_hoisted_temporaries(SmallVector> &temporaries); std::string constant_value_macro_name(uint32_t id); + int get_constant_mapping_to_workgroup_component(const SPIRConstant &constant) const; void emit_constant(const SPIRConstant &constant); void emit_specialization_constant_op(const SPIRConstantOp &constant); std::string emit_continue_block(uint32_t continue_block, bool follow_true_block, bool follow_false_block); @@ -624,6 +665,7 @@ protected: bool should_suppress_usage_tracking(uint32_t id) const; void emit_mix_op(uint32_t result_type, uint32_t id, uint32_t left, uint32_t right, uint32_t lerp); void emit_nminmax_op(uint32_t result_type, uint32_t id, uint32_t op0, uint32_t op1, GLSLstd450 op); + void emit_emulated_ahyper_op(uint32_t result_type, uint32_t result_id, uint32_t op0, GLSLstd450 op); bool to_trivial_mix_op(const SPIRType &type, std::string &op, uint32_t left, uint32_t right, uint32_t lerp); void emit_quaternary_func_op(uint32_t result_type, uint32_t result_id, uint32_t op0, uint32_t op1, uint32_t op2, uint32_t op3, const char *op); @@ -654,7 +696,7 @@ protected: void emit_unrolled_binary_op(uint32_t result_type, uint32_t result_id, uint32_t op0, uint32_t op1, const char *op, bool negate, SPIRType::BaseType expected_type); void emit_binary_op_cast(uint32_t result_type, uint32_t result_id, uint32_t op0, uint32_t op1, const char *op, - SPIRType::BaseType input_type, bool skip_cast_if_equal_type); + SPIRType::BaseType input_type, bool skip_cast_if_equal_type, bool implicit_integer_promotion); SPIRType binary_op_bitcast_helper(std::string &cast_op0, std::string &cast_op1, SPIRType::BaseType &input_type, uint32_t op0, uint32_t op1, bool skip_cast_if_equal_type); @@ -665,6 +707,8 @@ protected: uint32_t false_value); void emit_unary_op(uint32_t result_type, uint32_t result_id, uint32_t op0, const char *op); + void emit_unary_op_cast(uint32_t result_type, uint32_t result_id, uint32_t op0, const char *op); + virtual void emit_mesh_tasks(SPIRBlock &block); bool expression_is_forwarded(uint32_t id) const; bool expression_suppresses_usage_tracking(uint32_t id) const; bool expression_read_implies_multiple_reads(uint32_t id) const; @@ -680,6 +724,7 @@ protected: spv::StorageClass get_expression_effective_storage_class(uint32_t ptr); virtual bool access_chain_needs_stage_io_builtin_translation(uint32_t base); + virtual void check_physical_type_cast(std::string &expr, const SPIRType *type, uint32_t physical_type); virtual void prepare_access_chain_for_scalar_access(std::string &expr, const SPIRType &type, spv::StorageClass storage, bool &is_packed); @@ -712,7 +757,7 @@ protected: void append_global_func_args(const SPIRFunction &func, uint32_t index, SmallVector &arglist); std::string to_non_uniform_aware_expression(uint32_t id); std::string to_expression(uint32_t id, bool register_expression_read = true); - std::string to_composite_constructor_expression(uint32_t id, bool uses_buffer_offset); + std::string to_composite_constructor_expression(uint32_t id, bool block_like_type); std::string to_rerolled_array_expression(const std::string &expr, const SPIRType &type); std::string to_enclosed_expression(uint32_t id, bool register_expression_read = true); std::string to_unpacked_expression(uint32_t id, bool register_expression_read = true); @@ -724,17 +769,18 @@ protected: std::string to_extract_component_expression(uint32_t id, uint32_t index); std::string to_extract_constant_composite_expression(uint32_t result_type, const SPIRConstant &c, const uint32_t *chain, uint32_t length); + static bool needs_enclose_expression(const std::string &expr); std::string enclose_expression(const std::string &expr); std::string dereference_expression(const SPIRType &expression_type, const std::string &expr); std::string address_of_expression(const std::string &expr); void strip_enclosed_expression(std::string &expr); std::string to_member_name(const SPIRType &type, uint32_t index); - virtual std::string to_member_reference(uint32_t base, const SPIRType &type, uint32_t index, bool ptr_chain); + virtual std::string to_member_reference(uint32_t base, const SPIRType &type, uint32_t index, bool ptr_chain_is_resolved); std::string to_multi_member_reference(const SPIRType &type, const SmallVector &indices); std::string type_to_glsl_constructor(const SPIRType &type); std::string argument_decl(const SPIRFunction::Parameter &arg); virtual std::string to_qualifiers_glsl(uint32_t id); - void fixup_io_block_patch_qualifiers(const SPIRVariable &var); + void fixup_io_block_patch_primitive_qualifiers(const SPIRVariable &var); void emit_output_variable_initializer(const SPIRVariable &var); std::string to_precision_qualifiers_glsl(uint32_t id); virtual const char *to_storage_qualifiers_glsl(const SPIRVariable &var); @@ -785,6 +831,10 @@ protected: void replace_fragment_outputs(); std::string legacy_tex_op(const std::string &op, const SPIRType &imgtype, uint32_t id); + void forward_relaxed_precision(uint32_t dst_id, const uint32_t *args, uint32_t length); + void analyze_precision_requirements(uint32_t type_id, uint32_t dst_id, uint32_t *args, uint32_t length); + Options::Precision analyze_expression_precision(const uint32_t *args, uint32_t length) const; + uint32_t indent = 0; std::unordered_set emitted_functions; @@ -838,10 +888,25 @@ protected: return !options.es && options.version < 130; } - bool requires_transpose_2x2 = false; - bool requires_transpose_3x3 = false; - bool requires_transpose_4x4 = false; + enum Polyfill : uint32_t + { + PolyfillTranspose2x2 = 1 << 0, + PolyfillTranspose3x3 = 1 << 1, + PolyfillTranspose4x4 = 1 << 2, + PolyfillDeterminant2x2 = 1 << 3, + PolyfillDeterminant3x3 = 1 << 4, + PolyfillDeterminant4x4 = 1 << 5, + PolyfillMatrixInverse2x2 = 1 << 6, + PolyfillMatrixInverse3x3 = 1 << 7, + PolyfillMatrixInverse4x4 = 1 << 8, + }; + + uint32_t required_polyfills = 0; + uint32_t required_polyfills_relaxed = 0; + void require_polyfill(Polyfill polyfill, bool relaxed); + bool ray_tracing_is_khr = false; + bool barycentric_is_nv = false; void ray_tracing_khr_fixup_locations(); bool args_will_forward(uint32_t id, const uint32_t *args, uint32_t num_args, bool pure); @@ -875,8 +940,14 @@ protected: void check_function_call_constraints(const uint32_t *args, uint32_t length); void handle_invalid_expression(uint32_t id); + void force_temporary_and_recompile(uint32_t id); void find_static_extensions(); + uint32_t consume_temporary_in_precision_context(uint32_t type_id, uint32_t id, Options::Precision precision); + std::unordered_map temporary_to_mirror_precision_alias; + std::unordered_set composite_insert_overwritten; + std::unordered_set block_composite_insert_overwrite; + std::string emit_for_loop_initializers(const SPIRBlock &block); void emit_while_loop_initializers(const SPIRBlock &block); bool for_loop_initializers_are_same_type(const SPIRBlock &block); @@ -885,8 +956,6 @@ protected: bool type_is_empty(const SPIRType &type); - virtual void declare_undefined_values(); - bool can_use_io_location(spv::StorageClass storage, bool block); const Instruction *get_next_instruction_in_block(const Instruction &instr); static uint32_t mask_relevant_memory_semantics(uint32_t semantics); @@ -900,8 +969,8 @@ protected: // Builtins in GLSL are always specific signedness, but the SPIR-V can declare them // as either unsigned or signed. // Sometimes we will need to automatically perform casts on load and store to make this work. - virtual void cast_to_builtin_store(uint32_t target_id, std::string &expr, const SPIRType &expr_type); - virtual void cast_from_builtin_load(uint32_t source_id, std::string &expr, const SPIRType &expr_type); + virtual void cast_to_variable_store(uint32_t target_id, std::string &expr, const SPIRType &expr_type); + virtual void cast_from_variable_load(uint32_t source_id, std::string &expr, const SPIRType &expr_type); void unroll_array_from_complex_load(uint32_t target_id, uint32_t source_id, std::string &expr); bool unroll_array_to_complex_store(uint32_t target_id, uint32_t source_id); void convert_non_uniform_expression(std::string &expr, uint32_t ptr_id); @@ -922,6 +991,8 @@ protected: void fixup_type_alias(); void reorder_type_alias(); + void fixup_anonymous_struct_names(); + void fixup_anonymous_struct_names(std::unordered_set &visited, const SPIRType &type); static const char *vector_swizzle(int vecsize, int index); @@ -929,6 +1000,7 @@ protected: bool is_stage_output_builtin_masked(spv::BuiltIn builtin) const; bool is_stage_output_variable_masked(const SPIRVariable &var) const; bool is_stage_output_block_member_masked(const SPIRVariable &var, uint32_t index, bool strip_array) const; + bool is_per_primitive_variable(const SPIRVariable &var) const; uint32_t get_accumulated_member_location(const SPIRVariable &var, uint32_t mbr_idx, bool strip_array) const; uint32_t get_declared_member_location(const SPIRVariable &var, uint32_t mbr_idx, bool strip_array) const; std::unordered_set masked_output_locations; @@ -936,6 +1008,12 @@ protected: private: void init(); + + SmallVector get_composite_constant_ids(ConstantID const_id); + void fill_composite_constant(SPIRConstant &constant, TypeID type_id, const SmallVector &initializers); + void set_composite_constant(ConstantID const_id, TypeID type_id, const SmallVector &initializers); + TypeID get_composite_member_type(TypeID type_id, uint32_t member_idx); + std::unordered_map> const_composite_insert_ids; }; } // namespace SPIRV_CROSS_NAMESPACE diff --git a/third_party/spirv-cross/spirv_hlsl.cpp b/third_party/spirv-cross/spirv_hlsl.cpp index 9435c4e063..5763b5ffac 100644 --- a/third_party/spirv-cross/spirv_hlsl.cpp +++ b/third_party/spirv-cross/spirv_hlsl.cpp @@ -1,5 +1,6 @@ /* * Copyright 2016-2021 Robert Konrad + * SPDX-License-Identifier: Apache-2.0 OR MIT * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,7 +20,6 @@ * At your option, you may choose to accept this material under either: * 1. The Apache License, Version 2.0, found at , or * 2. The MIT License, found at . - * SPDX-License-Identifier: Apache-2.0 OR MIT. */ #include "spirv_hlsl.hpp" @@ -462,6 +462,10 @@ string CompilerHLSL::type_to_glsl(const SPIRType &type, uint32_t id) if (hlsl_options.shader_model < 60) SPIRV_CROSS_THROW("64-bit integers only supported in SM 6.0."); return "uint64_t"; + case SPIRType::AccelerationStructure: + return "RaytracingAccelerationStructure"; + case SPIRType::RayQuery: + return "RayQuery"; default: return "???"; } @@ -599,48 +603,157 @@ void CompilerHLSL::emit_builtin_outputs_in_struct() break; case BuiltInClipDistance: + { + static const char *types[] = { "float", "float2", "float3", "float4" }; + // HLSL is a bit weird here, use SV_ClipDistance0, SV_ClipDistance1 and so on with vectors. - for (uint32_t clip = 0; clip < clip_distance_count; clip += 4) + if (execution.model == ExecutionModelMeshEXT) { - uint32_t to_declare = clip_distance_count - clip; - if (to_declare > 4) - to_declare = 4; + if (clip_distance_count > 4) + SPIRV_CROSS_THROW("Clip distance count > 4 not supported for mesh shaders."); - uint32_t semantic_index = clip / 4; + if (clip_distance_count == 1) + { + // Avoids having to hack up access_chain code. Makes it trivially indexable. + statement("float gl_ClipDistance[1] : SV_ClipDistance;"); + } + else + { + // Replace array with vector directly, avoids any weird fixup path. + statement(types[clip_distance_count - 1], " gl_ClipDistance : SV_ClipDistance;"); + } + } + else + { + for (uint32_t clip = 0; clip < clip_distance_count; clip += 4) + { + uint32_t to_declare = clip_distance_count - clip; + if (to_declare > 4) + to_declare = 4; - static const char *types[] = { "float", "float2", "float3", "float4" }; - statement(types[to_declare - 1], " ", builtin_to_glsl(builtin, StorageClassOutput), semantic_index, - " : SV_ClipDistance", semantic_index, ";"); + uint32_t semantic_index = clip / 4; + + statement(types[to_declare - 1], " ", builtin_to_glsl(builtin, StorageClassOutput), semantic_index, + " : SV_ClipDistance", semantic_index, ";"); + } } break; + } case BuiltInCullDistance: + { + static const char *types[] = { "float", "float2", "float3", "float4" }; + // HLSL is a bit weird here, use SV_CullDistance0, SV_CullDistance1 and so on with vectors. - for (uint32_t cull = 0; cull < cull_distance_count; cull += 4) + if (execution.model == ExecutionModelMeshEXT) { - uint32_t to_declare = cull_distance_count - cull; - if (to_declare > 4) - to_declare = 4; + if (cull_distance_count > 4) + SPIRV_CROSS_THROW("Cull distance count > 4 not supported for mesh shaders."); - uint32_t semantic_index = cull / 4; + if (cull_distance_count == 1) + { + // Avoids having to hack up access_chain code. Makes it trivially indexable. + statement("float gl_CullDistance[1] : SV_CullDistance;"); + } + else + { + // Replace array with vector directly, avoids any weird fixup path. + statement(types[cull_distance_count - 1], " gl_CullDistance : SV_CullDistance;"); + } + } + else + { + for (uint32_t cull = 0; cull < cull_distance_count; cull += 4) + { + uint32_t to_declare = cull_distance_count - cull; + if (to_declare > 4) + to_declare = 4; - static const char *types[] = { "float", "float2", "float3", "float4" }; - statement(types[to_declare - 1], " ", builtin_to_glsl(builtin, StorageClassOutput), semantic_index, - " : SV_CullDistance", semantic_index, ";"); + uint32_t semantic_index = cull / 4; + + statement(types[to_declare - 1], " ", builtin_to_glsl(builtin, StorageClassOutput), semantic_index, + " : SV_CullDistance", semantic_index, ";"); + } } break; + } case BuiltInPointSize: // If point_size_compat is enabled, just ignore PointSize. // PointSize does not exist in HLSL, but some code bases might want to be able to use these shaders, // even if it means working around the missing feature. - if (hlsl_options.point_size_compat) - break; - else + if (legacy) + { + type = "float"; + semantic = "PSIZE"; + } + else if (!hlsl_options.point_size_compat) SPIRV_CROSS_THROW("Unsupported builtin in HLSL."); + break; + + case BuiltInLayer: + case BuiltInPrimitiveId: + case BuiltInViewportIndex: + case BuiltInPrimitiveShadingRateKHR: + case BuiltInCullPrimitiveEXT: + // per-primitive attributes handled separatly + break; + + case BuiltInPrimitivePointIndicesEXT: + case BuiltInPrimitiveLineIndicesEXT: + case BuiltInPrimitiveTriangleIndicesEXT: + // meshlet local-index buffer handled separatly + break; default: SPIRV_CROSS_THROW("Unsupported builtin in HLSL."); + } + + if (type && semantic) + statement(type, " ", builtin_to_glsl(builtin, StorageClassOutput), " : ", semantic, ";"); + }); +} + +void CompilerHLSL::emit_builtin_primitive_outputs_in_struct() +{ + active_output_builtins.for_each_bit([&](uint32_t i) { + const char *type = nullptr; + const char *semantic = nullptr; + auto builtin = static_cast(i); + switch (builtin) + { + case BuiltInLayer: + { + const ExecutionModel model = get_entry_point().model; + if (hlsl_options.shader_model < 50 || + (model != ExecutionModelGeometry && model != ExecutionModelMeshEXT)) + SPIRV_CROSS_THROW("Render target array index output is only supported in GS/MS 5.0 or higher."); + type = "uint"; + semantic = "SV_RenderTargetArrayIndex"; + break; + } + + case BuiltInPrimitiveId: + type = "uint"; + semantic = "SV_PrimitiveID"; + break; + + case BuiltInViewportIndex: + type = "uint"; + semantic = "SV_ViewportArrayIndex"; + break; + + case BuiltInPrimitiveShadingRateKHR: + type = "uint"; + semantic = "SV_ShadingRate"; + break; + + case BuiltInCullPrimitiveEXT: + type = "bool"; + semantic = "SV_CullPrimitive"; + break; + + default: break; } @@ -671,6 +784,11 @@ void CompilerHLSL::emit_builtin_inputs_in_struct() semantic = "SV_VertexID"; break; + case BuiltInPrimitiveId: + type = "uint"; + semantic = "SV_PrimitiveID"; + break; + case BuiltInInstanceId: case BuiltInInstanceIndex: if (legacy) @@ -718,6 +836,13 @@ void CompilerHLSL::emit_builtin_inputs_in_struct() semantic = "SV_IsFrontFace"; break; + case BuiltInViewIndex: + if (hlsl_options.shader_model < 61 || (get_entry_point().model != ExecutionModelVertex && get_entry_point().model != ExecutionModelFragment)) + SPIRV_CROSS_THROW("View Index input is only supported in VS and PS 6.1 or higher."); + type = "uint"; + semantic = "SV_ViewID"; + break; + case BuiltInNumWorkgroups: case BuiltInSubgroupSize: case BuiltInSubgroupLocalInvocationId: @@ -726,9 +851,16 @@ void CompilerHLSL::emit_builtin_inputs_in_struct() case BuiltInSubgroupLeMask: case BuiltInSubgroupGtMask: case BuiltInSubgroupGeMask: + case BuiltInBaseVertex: + case BuiltInBaseInstance: // Handled specially. break; + case BuiltInHelperInvocation: + if (hlsl_options.shader_model < 50 || get_entry_point().model != ExecutionModelFragment) + SPIRV_CROSS_THROW("Helper Invocation input is only supported in PS 5.0 or higher."); + break; + case BuiltInClipDistance: // HLSL is a bit weird here, use SV_ClipDistance0, SV_ClipDistance1 and so on with vectors. for (uint32_t clip = 0; clip < clip_distance_count; clip += 4) @@ -768,9 +900,15 @@ void CompilerHLSL::emit_builtin_inputs_in_struct() else SPIRV_CROSS_THROW("Unsupported builtin in HLSL."); + case BuiltInLayer: + if (hlsl_options.shader_model < 50 || get_entry_point().model != ExecutionModelFragment) + SPIRV_CROSS_THROW("Render target array index input is only supported in PS 5.0 or higher."); + type = "uint"; + semantic = "SV_RenderTargetArrayIndex"; + break; + default: SPIRV_CROSS_THROW("Unsupported builtin in HLSL."); - break; } if (type && semantic) @@ -854,34 +992,25 @@ std::string CompilerHLSL::to_initializer_expression(const SPIRVariable &var) return CompilerGLSL::to_initializer_expression(var); } -void CompilerHLSL::emit_io_block(const SPIRVariable &var) +void CompilerHLSL::emit_interface_block_member_in_struct(const SPIRVariable &var, uint32_t member_index, + uint32_t location, + std::unordered_set &active_locations) { auto &execution = get_entry_point(); + auto type = get(var.basetype); + auto semantic = to_semantic(location, execution.model, var.storage); + auto mbr_name = join(to_name(type.self), "_", to_member_name(type, member_index)); + auto &mbr_type = get(type.member_types[member_index]); - auto &type = get(var.basetype); - add_resource_name(type.self); + statement(to_interpolation_qualifiers(get_member_decoration_bitset(type.self, member_index)), + type_to_glsl(mbr_type), + " ", mbr_name, type_to_array_glsl(mbr_type), + " : ", semantic, ";"); - statement("struct ", to_name(type.self)); - begin_scope(); - type.member_name_cache.clear(); - - for (uint32_t i = 0; i < uint32_t(type.member_types.size()); i++) - { - uint32_t location = get_accumulated_member_location(var, i, false); - string semantic = join(" : ", to_semantic(location, execution.model, var.storage)); - - add_member_name(type, i); - - auto &membertype = get(type.member_types[i]); - statement(to_interpolation_qualifiers(get_member_decoration_bitset(type.self, i)), - variable_decl(membertype, to_member_name(type, i)), semantic, ";"); - } - - end_scope_decl(); - statement(""); - - statement("static ", variable_decl(var), ";"); - statement(""); + // Structs and arrays should consume more locations. + uint32_t consumed_locations = type_to_consumed_locations(mbr_type); + for (uint32_t i = 0; i < consumed_locations; i++) + active_locations.insert(location + i); } void CompilerHLSL::emit_interface_block_in_struct(const SPIRVariable &var, unordered_set &active_locations) @@ -891,6 +1020,7 @@ void CompilerHLSL::emit_interface_block_in_struct(const SPIRVariable &var, unord string binding; bool use_location_number = true; + bool need_matrix_unroll = false; bool legacy = hlsl_options.shader_model <= 30; if (execution.model == ExecutionModelFragment && var.storage == StorageClassOutput) { @@ -906,6 +1036,12 @@ void CompilerHLSL::emit_interface_block_in_struct(const SPIRVariable &var, unord if (legacy) // COLOR must be a four-component vector on legacy shader model targets (HLSL ERR_COLOR_4COMP) type.vecsize = 4; } + else if (var.storage == StorageClassInput && execution.model == ExecutionModelVertex) + { + need_matrix_unroll = true; + if (legacy) // Inputs must be floating-point in legacy targets. + type.basetype = SPIRType::Float; + } const auto get_vacant_location = [&]() -> uint32_t { for (uint32_t i = 0; i < 64; i++) @@ -914,9 +1050,6 @@ void CompilerHLSL::emit_interface_block_in_struct(const SPIRVariable &var, unord SPIRV_CROSS_THROW("All locations from 0 to 63 are exhausted."); }; - bool need_matrix_unroll = var.storage == StorageClassInput && execution.model == ExecutionModelVertex; - - auto &m = ir.meta[var.self].decoration; auto name = to_name(var.self); if (use_location_number) { @@ -924,8 +1057,8 @@ void CompilerHLSL::emit_interface_block_in_struct(const SPIRVariable &var, unord // If an explicit location exists, use it with TEXCOORD[N] semantic. // Otherwise, pick a vacant location. - if (m.decoration_flags.get(DecorationLocation)) - location_number = m.location; + if (has_decoration(var.self, DecorationLocation)) + location_number = get_decoration(var.self, DecorationLocation); else location_number = get_vacant_location(); @@ -956,17 +1089,25 @@ void CompilerHLSL::emit_interface_block_in_struct(const SPIRVariable &var, unord } else { - statement(to_interpolation_qualifiers(get_decoration_bitset(var.self)), variable_decl(type, name), " : ", + auto decl_type = type; + if (execution.model == ExecutionModelMeshEXT) + { + decl_type.array.erase(decl_type.array.begin()); + decl_type.array_size_literal.erase(decl_type.array_size_literal.begin()); + } + statement(to_interpolation_qualifiers(get_decoration_bitset(var.self)), variable_decl(decl_type, name), " : ", semantic, ";"); // Structs and arrays should consume more locations. - uint32_t consumed_locations = type_to_consumed_locations(type); + uint32_t consumed_locations = type_to_consumed_locations(decl_type); for (uint32_t i = 0; i < consumed_locations; i++) active_locations.insert(location_number + i); } } else + { statement(variable_decl(type, name), " : ", binding, ";"); + } } std::string CompilerHLSL::builtin_to_glsl(spv::BuiltIn builtin, spv::StorageClass storage) @@ -996,6 +1137,8 @@ std::string CompilerHLSL::builtin_to_glsl(spv::BuiltIn builtin, spv::StorageClas return "WaveGetLaneIndex()"; case BuiltInSubgroupSize: return "WaveGetLaneCount()"; + case BuiltInHelperInvocation: + return "IsHelperLane()"; default: return CompilerGLSL::builtin_to_glsl(builtin, storage); @@ -1007,8 +1150,6 @@ void CompilerHLSL::emit_builtin_variables() Bitset builtins = active_input_builtins; builtins.merge_or(active_output_builtins); - bool need_base_vertex_info = false; - std::unordered_map builtin_to_initializer; ir.for_each_typed_id([&](uint32_t, SPIRVariable &var) { if (!is_builtin_variable(var) || var.storage != StorageClassOutput || !var.initializer) @@ -1046,6 +1187,18 @@ void CompilerHLSL::emit_builtin_variables() if (init_itr != builtin_to_initializer.end()) init_expr = join(" = ", to_expression(init_itr->second)); + if (get_execution_model() == ExecutionModelMeshEXT) + { + if (builtin == BuiltInPosition || builtin == BuiltInPointSize || builtin == BuiltInClipDistance || + builtin == BuiltInCullDistance || builtin == BuiltInLayer || builtin == BuiltInPrimitiveId || + builtin == BuiltInViewportIndex || builtin == BuiltInCullPrimitiveEXT || + builtin == BuiltInPrimitiveShadingRateKHR || builtin == BuiltInPrimitivePointIndicesEXT || + builtin == BuiltInPrimitiveLineIndicesEXT || builtin == BuiltInPrimitiveTriangleIndicesEXT) + { + return; + } + } + switch (builtin) { case BuiltInFragCoord: @@ -1062,7 +1215,13 @@ void CompilerHLSL::emit_builtin_variables() case BuiltInInstanceIndex: type = "int"; if (hlsl_options.support_nonzero_base_vertex_base_instance) - need_base_vertex_info = true; + base_vertex_info.used = true; + break; + + case BuiltInBaseVertex: + case BuiltInBaseInstance: + type = "int"; + base_vertex_info.used = true; break; case BuiltInInstanceId: @@ -1071,7 +1230,7 @@ void CompilerHLSL::emit_builtin_variables() break; case BuiltInPointSize: - if (hlsl_options.point_size_compat) + if (hlsl_options.point_size_compat || hlsl_options.shader_model <= 30) { // Just emit the global variable, it will be ignored. type = "float"; @@ -1115,6 +1274,11 @@ void CompilerHLSL::emit_builtin_variables() type = "uint4"; break; + case BuiltInHelperInvocation: + if (hlsl_options.shader_model < 50) + SPIRV_CROSS_THROW("Need SM 5.0 for Helper Invocation."); + break; + case BuiltInClipDistance: array_size = clip_distance_count; type = "float"; @@ -1129,6 +1293,19 @@ void CompilerHLSL::emit_builtin_variables() type = "int"; break; + case BuiltInPrimitiveId: + case BuiltInViewIndex: + case BuiltInLayer: + type = "uint"; + break; + + case BuiltInViewportIndex: + case BuiltInPrimitiveShadingRateKHR: + case BuiltInPrimitiveLineIndicesEXT: + case BuiltInCullPrimitiveEXT: + type = "uint"; + break; + default: SPIRV_CROSS_THROW(join("Unsupported builtin in HLSL: ", unsigned(builtin))); } @@ -1151,9 +1328,17 @@ void CompilerHLSL::emit_builtin_variables() } }); - if (need_base_vertex_info) + if (base_vertex_info.used) { - statement("cbuffer SPIRV_Cross_VertexInfo"); + string binding_info; + if (base_vertex_info.explicit_binding) + { + binding_info = join(" : register(b", base_vertex_info.register_index); + if (base_vertex_info.register_space) + binding_info += join(", space", base_vertex_info.register_space); + binding_info += ")"; + } + statement("cbuffer SPIRV_Cross_VertexInfo", binding_info); begin_scope(); statement("int SPIRV_Cross_BaseVertex;"); statement("int SPIRV_Cross_BaseInstance;"); @@ -1162,6 +1347,30 @@ void CompilerHLSL::emit_builtin_variables() } } +void CompilerHLSL::set_hlsl_aux_buffer_binding(HLSLAuxBinding binding, uint32_t register_index, uint32_t register_space) +{ + if (binding == HLSL_AUX_BINDING_BASE_VERTEX_INSTANCE) + { + base_vertex_info.explicit_binding = true; + base_vertex_info.register_space = register_space; + base_vertex_info.register_index = register_index; + } +} + +void CompilerHLSL::unset_hlsl_aux_buffer_binding(HLSLAuxBinding binding) +{ + if (binding == HLSL_AUX_BINDING_BASE_VERTEX_INSTANCE) + base_vertex_info.explicit_binding = false; +} + +bool CompilerHLSL::is_hlsl_aux_buffer_binding_used(HLSLAuxBinding binding) const +{ + if (binding == HLSL_AUX_BINDING_BASE_VERTEX_INSTANCE) + return base_vertex_info.used; + else + return false; +} + void CompilerHLSL::emit_composite_constants() { // HLSL cannot declare structs or arrays inline, so we must move them out to @@ -1174,11 +1383,12 @@ void CompilerHLSL::emit_composite_constants() auto &type = this->get(c.constant_type); - // Cannot declare block type constants here. - // We do not have the struct type yet. - bool is_block = has_decoration(type.self, DecorationBlock); - if (!is_block && (type.basetype == SPIRType::Struct || !type.array.empty())) + if (type.basetype == SPIRType::Struct && is_builtin_type(type)) + return; + + if (type.basetype == SPIRType::Struct || !type.array.empty()) { + add_resource_name(c.self); auto name = to_name(c.self); statement("static const ", variable_decl(type, name), " = ", constant_expression(c), ";"); emitted = true; @@ -1195,8 +1405,20 @@ void CompilerHLSL::emit_specialization_constants_and_structs() SpecializationConstant wg_x, wg_y, wg_z; ID workgroup_size_id = get_work_group_size_specialization_constants(wg_x, wg_y, wg_z); + std::unordered_set io_block_types; + ir.for_each_typed_id([&](uint32_t, const SPIRVariable &var) { + auto &type = this->get(var.basetype); + if ((var.storage == StorageClassInput || var.storage == StorageClassOutput) && + !var.remapped_variable && type.pointer && !is_builtin_variable(var) && + interface_variable_exists_in_entry_point(var.self) && + has_decoration(type.self, DecorationBlock)) + { + io_block_types.insert(type.self); + } + }); + auto loop_lock = ir.create_loop_hard_lock(); - for (auto &id_ : ir.ids_for_constant_or_type) + for (auto &id_ : ir.ids_for_constant_undef_or_type) { auto &id = ir.ids[id_]; @@ -1213,16 +1435,23 @@ void CompilerHLSL::emit_specialization_constants_and_structs() else if (c.specialization) { auto &type = get(c.constant_type); + add_resource_name(c.self); auto name = to_name(c.self); - // HLSL does not support specialization constants, so fallback to macros. - c.specialization_constant_macro_name = - constant_value_macro_name(get_decoration(c.self, DecorationSpecId)); + if (has_decoration(c.self, DecorationSpecId)) + { + // HLSL does not support specialization constants, so fallback to macros. + c.specialization_constant_macro_name = + constant_value_macro_name(get_decoration(c.self, DecorationSpecId)); + + statement("#ifndef ", c.specialization_constant_macro_name); + statement("#define ", c.specialization_constant_macro_name, " ", constant_expression(c)); + statement("#endif"); + statement("static const ", variable_decl(type, name), " = ", c.specialization_constant_macro_name, ";"); + } + else + statement("static const ", variable_decl(type, name), " = ", constant_expression(c), ";"); - statement("#ifndef ", c.specialization_constant_macro_name); - statement("#define ", c.specialization_constant_macro_name, " ", constant_expression(c)); - statement("#endif"); - statement("static const ", variable_decl(type, name), " = ", c.specialization_constant_macro_name, ";"); emitted = true; } } @@ -1230,6 +1459,7 @@ void CompilerHLSL::emit_specialization_constants_and_structs() { auto &c = id.get(); auto &type = get(c.basetype); + add_resource_name(c.self); auto name = to_name(c.self); statement("static const ", variable_decl(type, name), " = ", constant_op_expression(c), ";"); emitted = true; @@ -1237,9 +1467,11 @@ void CompilerHLSL::emit_specialization_constants_and_structs() else if (id.get_type() == TypeType) { auto &type = id.get(); - if (type.basetype == SPIRType::Struct && type.array.empty() && !type.pointer && - (!ir.meta[type.self].decoration.decoration_flags.get(DecorationBlock) && - !ir.meta[type.self].decoration.decoration_flags.get(DecorationBufferBlock))) + bool is_non_io_block = has_decoration(type.self, DecorationBlock) && + io_block_types.count(type.self) == 0; + bool is_buffer_block = has_decoration(type.self, DecorationBufferBlock); + if (type.basetype == SPIRType::Struct && type.array.empty() && + !type.pointer && !is_non_io_block && !is_buffer_block) { if (emitted) statement(""); @@ -1248,6 +1480,21 @@ void CompilerHLSL::emit_specialization_constants_and_structs() emit_struct(type); } } + else if (id.get_type() == TypeUndef) + { + auto &undef = id.get(); + auto &type = this->get(undef.basetype); + // OpUndef can be void for some reason ... + if (type.basetype == SPIRType::Void) + return; + + string initializer; + if (options.force_zero_initialized_variables && type_can_zero_initialize(type)) + initializer = join(" = ", to_zero_initialized_expression(undef.basetype)); + + statement("static ", variable_decl(type, to_name(undef.self), undef.self), initializer, ";"); + emitted = true; + } } if (emitted) @@ -1258,40 +1505,58 @@ void CompilerHLSL::replace_illegal_names() { static const unordered_set keywords = { // Additional HLSL specific keywords. - "line", "linear", "matrix", "point", "row_major", "sampler", "vector" + // From https://docs.microsoft.com/en-US/windows/win32/direct3dhlsl/dx-graphics-hlsl-appendix-keywords + "AppendStructuredBuffer", "asm", "asm_fragment", + "BlendState", "bool", "break", "Buffer", "ByteAddressBuffer", + "case", "cbuffer", "centroid", "class", "column_major", "compile", + "compile_fragment", "CompileShader", "const", "continue", "ComputeShader", + "ConsumeStructuredBuffer", + "default", "DepthStencilState", "DepthStencilView", "discard", "do", + "double", "DomainShader", "dword", + "else", "export", "false", "float", "for", "fxgroup", + "GeometryShader", "groupshared", "half", "HullShader", + "indices", "if", "in", "inline", "inout", "InputPatch", "int", "interface", + "line", "lineadj", "linear", "LineStream", + "matrix", "min16float", "min10float", "min16int", "min16uint", + "namespace", "nointerpolation", "noperspective", "NULL", + "out", "OutputPatch", + "payload", "packoffset", "pass", "pixelfragment", "PixelShader", "point", + "PointStream", "precise", "RasterizerState", "RenderTargetView", + "return", "register", "row_major", "RWBuffer", "RWByteAddressBuffer", + "RWStructuredBuffer", "RWTexture1D", "RWTexture1DArray", "RWTexture2D", + "RWTexture2DArray", "RWTexture3D", "sample", "sampler", "SamplerState", + "SamplerComparisonState", "shared", "snorm", "stateblock", "stateblock_state", + "static", "string", "struct", "switch", "StructuredBuffer", "tbuffer", + "technique", "technique10", "technique11", "texture", "Texture1D", + "Texture1DArray", "Texture2D", "Texture2DArray", "Texture2DMS", "Texture2DMSArray", + "Texture3D", "TextureCube", "TextureCubeArray", "true", "typedef", "triangle", + "triangleadj", "TriangleStream", "uint", "uniform", "unorm", "unsigned", + "vector", "vertexfragment", "VertexShader", "vertices", "void", "volatile", "while", }; CompilerGLSL::replace_illegal_names(keywords); CompilerGLSL::replace_illegal_names(); } -void CompilerHLSL::declare_undefined_values() -{ - bool emitted = false; - ir.for_each_typed_id([&](uint32_t, const SPIRUndef &undef) { - auto &type = this->get(undef.basetype); - // OpUndef can be void for some reason ... - if (type.basetype == SPIRType::Void) - return; - - string initializer; - if (options.force_zero_initialized_variables && type_can_zero_initialize(type)) - initializer = join(" = ", to_zero_initialized_expression(undef.basetype)); - - statement("static ", variable_decl(type, to_name(undef.self), undef.self), initializer, ";"); - emitted = true; - }); - - if (emitted) - statement(""); -} - void CompilerHLSL::emit_resources() { auto &execution = get_entry_point(); replace_illegal_names(); + switch (execution.model) + { + case ExecutionModelGeometry: + case ExecutionModelTessellationControl: + case ExecutionModelTessellationEvaluation: + case ExecutionModelMeshEXT: + fixup_implicit_builtin_block_names(execution.model); + break; + + default: + break; + } + emit_specialization_constants_and_structs(); emit_composite_constants(); @@ -1324,7 +1589,8 @@ void CompilerHLSL::emit_resources() } }); - if (execution.model == ExecutionModelVertex && hlsl_options.shader_model <= 30) + if (execution.model == ExecutionModelVertex && hlsl_options.shader_model <= 30 && + active_output_builtins.get(BuiltInPosition)) { statement("uniform float4 gl_HalfPixel;"); emitted = true; @@ -1363,22 +1629,21 @@ void CompilerHLSL::emit_resources() // Emit builtin input and output variables here. emit_builtin_variables(); - ir.for_each_typed_id([&](uint32_t, SPIRVariable &var) { - auto &type = this->get(var.basetype); - bool block = ir.meta[type.self].decoration.decoration_flags.get(DecorationBlock); + if (execution.model != ExecutionModelMeshEXT) + { + ir.for_each_typed_id([&](uint32_t, SPIRVariable &var) { + auto &type = this->get(var.basetype); - // Do not emit I/O blocks here. - // I/O blocks can be arrayed, so we must deal with them separately to support geometry shaders - // and tessellation down the line. - if (!block && var.storage != StorageClassFunction && !var.remapped_variable && type.pointer && - (var.storage == StorageClassInput || var.storage == StorageClassOutput) && !is_builtin_variable(var) && - interface_variable_exists_in_entry_point(var.self)) - { - // Only emit non-builtins which are not blocks here. Builtin variables are handled separately. - emit_interface_block_globally(var); - emitted = true; - } - }); + if (var.storage != StorageClassFunction && !var.remapped_variable && type.pointer && + (var.storage == StorageClassInput || var.storage == StorageClassOutput) && !is_builtin_variable(var) && + interface_variable_exists_in_entry_point(var.self)) + { + // Builtin variables are handled separately. + emit_interface_block_globally(var); + emitted = true; + } + }); + } if (emitted) statement(""); @@ -1388,69 +1653,72 @@ void CompilerHLSL::emit_resources() require_output = false; unordered_set active_inputs; unordered_set active_outputs; - SmallVector input_variables; - SmallVector output_variables; + + struct IOVariable + { + const SPIRVariable *var; + uint32_t location; + uint32_t block_member_index; + bool block; + }; + + SmallVector input_variables; + SmallVector output_variables; + ir.for_each_typed_id([&](uint32_t, SPIRVariable &var) { auto &type = this->get(var.basetype); - bool block = ir.meta[type.self].decoration.decoration_flags.get(DecorationBlock); + bool block = has_decoration(type.self, DecorationBlock); if (var.storage != StorageClassInput && var.storage != StorageClassOutput) return; - // Do not emit I/O blocks here. - // I/O blocks can be arrayed, so we must deal with them separately to support geometry shaders - // and tessellation down the line. - if (!block && !var.remapped_variable && type.pointer && !is_builtin_variable(var) && + if (!var.remapped_variable && type.pointer && !is_builtin_variable(var) && interface_variable_exists_in_entry_point(var.self)) { - if (var.storage == StorageClassInput) - input_variables.push_back(&var); - else - output_variables.push_back(&var); - } - - // Reserve input and output locations for block variables as necessary. - if (block && !is_builtin_variable(var) && interface_variable_exists_in_entry_point(var.self)) - { - auto &active = var.storage == StorageClassInput ? active_inputs : active_outputs; - for (uint32_t i = 0; i < uint32_t(type.member_types.size()); i++) + if (block) { - if (has_member_decoration(type.self, i, DecorationLocation)) + for (uint32_t i = 0; i < uint32_t(type.member_types.size()); i++) { - uint32_t location = get_member_decoration(type.self, i, DecorationLocation); - active.insert(location); + uint32_t location = get_declared_member_location(var, i, false); + if (var.storage == StorageClassInput) + input_variables.push_back({ &var, location, i, true }); + else + output_variables.push_back({ &var, location, i, true }); } } - - // Emit the block struct and a global variable here. - emit_io_block(var); + else + { + uint32_t location = get_decoration(var.self, DecorationLocation); + if (var.storage == StorageClassInput) + input_variables.push_back({ &var, location, 0, false }); + else + output_variables.push_back({ &var, location, 0, false }); + } } }); - const auto variable_compare = [&](const SPIRVariable *a, const SPIRVariable *b) -> bool { + const auto variable_compare = [&](const IOVariable &a, const IOVariable &b) -> bool { // Sort input and output variables based on, from more robust to less robust: // - Location // - Variable has a location // - Name comparison // - Variable has a name // - Fallback: ID - bool has_location_a = has_decoration(a->self, DecorationLocation); - bool has_location_b = has_decoration(b->self, DecorationLocation); + bool has_location_a = a.block || has_decoration(a.var->self, DecorationLocation); + bool has_location_b = b.block || has_decoration(b.var->self, DecorationLocation); if (has_location_a && has_location_b) - { - return get_decoration(a->self, DecorationLocation) < get_decoration(b->self, DecorationLocation); - } + return a.location < b.location; else if (has_location_a && !has_location_b) return true; else if (!has_location_a && has_location_b) return false; - const auto &name1 = to_name(a->self); - const auto &name2 = to_name(b->self); + const auto &name1 = to_name(a.var->self); + const auto &name2 = to_name(b.var->self); if (name1.empty() && name2.empty()) - return a->self < b->self; + return a.var->self < b.var->self; else if (name1.empty()) return true; else if (name2.empty()) @@ -1477,26 +1745,60 @@ void CompilerHLSL::emit_resources() begin_scope(); sort(input_variables.begin(), input_variables.end(), variable_compare); - for (auto var : input_variables) - emit_interface_block_in_struct(*var, active_inputs); + for (auto &var : input_variables) + { + if (var.block) + emit_interface_block_member_in_struct(*var.var, var.block_member_index, var.location, active_inputs); + else + emit_interface_block_in_struct(*var.var, active_inputs); + } emit_builtin_inputs_in_struct(); end_scope_decl(); statement(""); } + const bool is_mesh_shader = execution.model == ExecutionModelMeshEXT; if (!output_variables.empty() || !active_output_builtins.empty()) { - require_output = true; - statement("struct SPIRV_Cross_Output"); - - begin_scope(); - // FIXME: Use locations properly if they exist. sort(output_variables.begin(), output_variables.end(), variable_compare); - for (auto var : output_variables) - emit_interface_block_in_struct(*var, active_outputs); + require_output = !is_mesh_shader; + + statement(is_mesh_shader ? "struct gl_MeshPerVertexEXT" : "struct SPIRV_Cross_Output"); + begin_scope(); + for (auto &var : output_variables) + { + if (is_per_primitive_variable(*var.var)) + continue; + if (var.block && is_mesh_shader && var.block_member_index != 0) + continue; + if (var.block && !is_mesh_shader) + emit_interface_block_member_in_struct(*var.var, var.block_member_index, var.location, active_outputs); + else + emit_interface_block_in_struct(*var.var, active_outputs); + } emit_builtin_outputs_in_struct(); + if (!is_mesh_shader) + emit_builtin_primitive_outputs_in_struct(); end_scope_decl(); statement(""); + + if (is_mesh_shader) + { + statement("struct gl_MeshPerPrimitiveEXT"); + begin_scope(); + for (auto &var : output_variables) + { + if (!is_per_primitive_variable(*var.var)) + continue; + if (var.block && var.block_member_index != 0) + continue; + + emit_interface_block_in_struct(*var.var, active_outputs); + } + emit_builtin_primitive_outputs_in_struct(); + end_scope_decl(); + statement(""); + } } // Global variables. @@ -1506,6 +1808,9 @@ void CompilerHLSL::emit_resources() if (is_hidden_variable(var, true)) continue; + if (var.storage == StorageClassTaskPayloadWorkgroupEXT && is_mesh_shader) + continue; + if (var.storage != StorageClassOutput) { if (!variable_is_lut(var)) @@ -1516,6 +1821,7 @@ void CompilerHLSL::emit_resources() switch (var.storage) { case StorageClassWorkgroup: + case StorageClassTaskPayloadWorkgroupEXT: storage = "groupshared"; break; @@ -1540,8 +1846,6 @@ void CompilerHLSL::emit_resources() if (emitted) statement(""); - declare_undefined_values(); - if (requires_op_fmod) { static const char *types[] = { @@ -1930,6 +2234,28 @@ void CompilerHLSL::emit_resources() end_scope(); statement(""); } + + for (TypeID type_id : composite_selection_workaround_types) + { + // Need out variable since HLSL does not support returning arrays. + auto &type = get(type_id); + auto type_str = type_to_glsl(type); + auto type_arr_str = type_to_array_glsl(type); + statement("void spvSelectComposite(out ", type_str, " out_value", type_arr_str, ", bool cond, ", + type_str, " true_val", type_arr_str, ", ", + type_str, " false_val", type_arr_str, ")"); + begin_scope(); + statement("if (cond)"); + begin_scope(); + statement("out_value = true_val;"); + end_scope(); + statement("else"); + begin_scope(); + statement("out_value = false_val;"); + end_scope(); + end_scope(); + statement(""); + } } void CompilerHLSL::emit_texture_size_variants(uint64_t variant_mask, const char *vecsize_qualifier, bool uav, @@ -2010,6 +2336,194 @@ void CompilerHLSL::emit_texture_size_variants(uint64_t variant_mask, const char } } +void CompilerHLSL::analyze_meshlet_writes() +{ + uint32_t id_per_vertex = 0; + uint32_t id_per_primitive = 0; + bool need_per_primitive = false; + bool need_per_vertex = false; + + ir.for_each_typed_id([&](uint32_t, SPIRVariable &var) { + auto &type = this->get(var.basetype); + bool block = has_decoration(type.self, DecorationBlock); + if (var.storage == StorageClassOutput && block && is_builtin_variable(var)) + { + auto flags = get_buffer_block_flags(var.self); + if (flags.get(DecorationPerPrimitiveEXT)) + id_per_primitive = var.self; + else + id_per_vertex = var.self; + } + else if (var.storage == StorageClassOutput) + { + Bitset flags; + if (block) + flags = get_buffer_block_flags(var.self); + else + flags = get_decoration_bitset(var.self); + + if (flags.get(DecorationPerPrimitiveEXT)) + need_per_primitive = true; + else + need_per_vertex = true; + } + }); + + // If we have per-primitive outputs, and no per-primitive builtins, + // empty version of gl_MeshPerPrimitiveEXT will be emitted. + // If we don't use block IO for vertex output, we'll also need to synthesize the PerVertex block. + + const auto generate_block = [&](const char *block_name, const char *instance_name, bool per_primitive) -> uint32_t { + auto &execution = get_entry_point(); + + uint32_t op_type = ir.increase_bound_by(4); + uint32_t op_arr = op_type + 1; + uint32_t op_ptr = op_type + 2; + uint32_t op_var = op_type + 3; + + auto &type = set(op_type); + type.basetype = SPIRType::Struct; + set_name(op_type, block_name); + set_decoration(op_type, DecorationBlock); + if (per_primitive) + set_decoration(op_type, DecorationPerPrimitiveEXT); + + auto &arr = set(op_arr, type); + arr.parent_type = type.self; + arr.array.push_back(per_primitive ? execution.output_primitives : execution.output_vertices); + arr.array_size_literal.push_back(true); + + auto &ptr = set(op_ptr, arr); + ptr.parent_type = arr.self; + ptr.pointer = true; + ptr.pointer_depth++; + ptr.storage = StorageClassOutput; + set_decoration(op_ptr, DecorationBlock); + set_name(op_ptr, block_name); + + auto &var = set(op_var, op_ptr, StorageClassOutput); + if (per_primitive) + set_decoration(op_var, DecorationPerPrimitiveEXT); + set_name(op_var, instance_name); + execution.interface_variables.push_back(var.self); + + return op_var; + }; + + if (id_per_vertex == 0 && need_per_vertex) + id_per_vertex = generate_block("gl_MeshPerVertexEXT", "gl_MeshVerticesEXT", false); + if (id_per_primitive == 0 && need_per_primitive) + id_per_primitive = generate_block("gl_MeshPerPrimitiveEXT", "gl_MeshPrimitivesEXT", true); + + unordered_set processed_func_ids; + analyze_meshlet_writes(ir.default_entry_point, id_per_vertex, id_per_primitive, processed_func_ids); +} + +void CompilerHLSL::analyze_meshlet_writes(uint32_t func_id, uint32_t id_per_vertex, uint32_t id_per_primitive, + std::unordered_set &processed_func_ids) +{ + // Avoid processing a function more than once + if (processed_func_ids.find(func_id) != processed_func_ids.end()) + return; + processed_func_ids.insert(func_id); + + auto &func = get(func_id); + // Recursively establish global args added to functions on which we depend. + for (auto& block : func.blocks) + { + auto &b = get(block); + for (auto &i : b.ops) + { + auto ops = stream(i); + auto op = static_cast(i.op); + + switch (op) + { + case OpFunctionCall: + { + // Then recurse into the function itself to extract globals used internally in the function + uint32_t inner_func_id = ops[2]; + analyze_meshlet_writes(inner_func_id, id_per_vertex, id_per_primitive, processed_func_ids); + auto &inner_func = get(inner_func_id); + for (auto &iarg : inner_func.arguments) + { + if (!iarg.alias_global_variable) + continue; + + bool already_declared = false; + for (auto &arg : func.arguments) + { + if (arg.id == iarg.id) + { + already_declared = true; + break; + } + } + + if (!already_declared) + { + // basetype is effectively ignored here since we declare the argument + // with explicit types. Just pass down a valid type. + func.arguments.push_back({ expression_type_id(iarg.id), iarg.id, + iarg.read_count, iarg.write_count, true }); + } + } + break; + } + + case OpStore: + case OpLoad: + case OpInBoundsAccessChain: + case OpAccessChain: + case OpPtrAccessChain: + case OpInBoundsPtrAccessChain: + case OpArrayLength: + { + auto *var = maybe_get(ops[op == OpStore ? 0 : 2]); + if (var && (var->storage == StorageClassOutput || var->storage == StorageClassTaskPayloadWorkgroupEXT)) + { + bool already_declared = false; + auto builtin_type = BuiltIn(get_decoration(var->self, DecorationBuiltIn)); + + uint32_t var_id = var->self; + if (var->storage != StorageClassTaskPayloadWorkgroupEXT && + builtin_type != BuiltInPrimitivePointIndicesEXT && + builtin_type != BuiltInPrimitiveLineIndicesEXT && + builtin_type != BuiltInPrimitiveTriangleIndicesEXT) + { + var_id = is_per_primitive_variable(*var) ? id_per_primitive : id_per_vertex; + } + + for (auto &arg : func.arguments) + { + if (arg.id == var_id) + { + already_declared = true; + break; + } + } + + if (!already_declared) + { + // basetype is effectively ignored here since we declare the argument + // with explicit types. Just pass down a valid type. + uint32_t type_id = expression_type_id(var_id); + if (var->storage == StorageClassTaskPayloadWorkgroupEXT) + func.arguments.push_back({ type_id, var_id, 1u, 0u, true }); + else + func.arguments.push_back({ type_id, var_id, 1u, 1u, true }); + } + } + break; + } + + default: + break; + } + } + } +} + string CompilerHLSL::layout_for_member(const SPIRType &type, uint32_t index) { auto &flags = get_member_decoration_bitset(type.self, index); @@ -2037,13 +2551,6 @@ void CompilerHLSL::emit_struct_member(const SPIRType &type, uint32_t member_type if (index < memb.size()) memberflags = memb[index].decoration_flags; - string qualifiers; - bool is_block = ir.meta[type.self].decoration.decoration_flags.get(DecorationBlock) || - ir.meta[type.self].decoration.decoration_flags.get(DecorationBufferBlock); - - if (is_block) - qualifiers = to_interpolation_qualifiers(memberflags); - string packing_offset; bool is_push_constant = type.storage == StorageClassPushConstant; @@ -2058,17 +2565,41 @@ void CompilerHLSL::emit_struct_member(const SPIRType &type, uint32_t member_type packing_offset = join(" : packoffset(c", offset / 16, packing_swizzle[(offset & 15) >> 2], ")"); } - statement(layout_for_member(type, index), qualifiers, qualifier, + statement(layout_for_member(type, index), qualifier, variable_decl(membertype, to_member_name(type, index)), packing_offset, ";"); } +void CompilerHLSL::emit_rayquery_function(const char *commited, const char *candidate, const uint32_t *ops) +{ + flush_variable_declaration(ops[0]); + uint32_t is_commited = evaluate_constant_u32(ops[3]); + emit_op(ops[0], ops[1], join(to_expression(ops[2]), is_commited ? commited : candidate), false); +} + +void CompilerHLSL::emit_mesh_tasks(SPIRBlock &block) +{ + if (block.mesh.payload != 0) + { + statement("DispatchMesh(", to_unpacked_expression(block.mesh.groups[0]), ", ", to_unpacked_expression(block.mesh.groups[1]), ", ", + to_unpacked_expression(block.mesh.groups[2]), ", ", to_unpacked_expression(block.mesh.payload), ");"); + } + else + { + SPIRV_CROSS_THROW("Amplification shader in HLSL must have payload"); + } +} + void CompilerHLSL::emit_buffer_block(const SPIRVariable &var) { auto &type = get(var.basetype); bool is_uav = var.storage == StorageClassStorageBuffer || has_decoration(type.self, DecorationBufferBlock); - if (is_uav) + if (flattened_buffer_blocks.count(var.self)) + { + emit_buffer_block_flattened(var); + } + else if (is_uav) { Bitset flags = ir.get_buffer_block_flags(var); bool is_readonly = flags.get(DecorationNonWritable) && !is_hlsl_force_storage_buffer_as_uav(var.self); @@ -2173,7 +2704,11 @@ void CompilerHLSL::emit_buffer_block(const SPIRVariable &var) void CompilerHLSL::emit_push_constant_block(const SPIRVariable &var) { - if (root_constants_layout.empty()) + if (flattened_buffer_blocks.count(var.self)) + { + emit_buffer_block_flattened(var); + } + else if (root_constants_layout.empty()) { emit_buffer_block(var); } @@ -2280,12 +2815,36 @@ string CompilerHLSL::to_func_call_arg(const SPIRFunction::Parameter &arg, uint32 return arg_str; } +string CompilerHLSL::get_inner_entry_point_name() const +{ + auto &execution = get_entry_point(); + + if (hlsl_options.use_entry_point_name) + { + auto name = join(execution.name, "_inner"); + ParsedIR::sanitize_underscores(name); + return name; + } + + if (execution.model == ExecutionModelVertex) + return "vert_main"; + else if (execution.model == ExecutionModelFragment) + return "frag_main"; + else if (execution.model == ExecutionModelGLCompute) + return "comp_main"; + else if (execution.model == ExecutionModelMeshEXT) + return "mesh_main"; + else if (execution.model == ExecutionModelTaskEXT) + return "task_main"; + else + SPIRV_CROSS_THROW("Unsupported execution model."); +} + void CompilerHLSL::emit_function_prototype(SPIRFunction &func, const Bitset &return_flags) { if (func.self != ir.default_entry_point) add_function_overload(func); - auto &execution = get_entry_point(); // Avoid shadow declarations. local_variable_names = resource_names; @@ -2306,14 +2865,7 @@ void CompilerHLSL::emit_function_prototype(SPIRFunction &func, const Bitset &ret if (func.self == ir.default_entry_point) { - if (execution.model == ExecutionModelVertex) - decl += "vert_main"; - else if (execution.model == ExecutionModelFragment) - decl += "frag_main"; - else if (execution.model == ExecutionModelGLCompute) - decl += "comp_main"; - else - SPIRV_CROSS_THROW("Unsupported execution model."); + decl += get_inner_entry_point_name(); processing_entry_point = true; } else @@ -2331,7 +2883,7 @@ void CompilerHLSL::emit_function_prototype(SPIRFunction &func, const Bitset &ret out_argument += " "; out_argument += "spvReturnValue"; out_argument += type_to_array_glsl(type); - arglist.push_back(move(out_argument)); + arglist.push_back(std::move(out_argument)); } for (auto &arg : func.arguments) @@ -2355,7 +2907,7 @@ void CompilerHLSL::emit_function_prototype(SPIRFunction &func, const Bitset &ret arg_type.image.dim != DimBuffer) { // Manufacture automatic sampler arg for SampledImage texture - arglist.push_back(join(image_is_comparison(arg_type, arg.id) ? "SamplerComparisonState " : "SamplerState ", + arglist.push_back(join(is_depth_image(arg_type, arg.id) ? "SamplerComparisonState " : "SamplerState ", to_sampler_expression(arg.id), type_to_array_glsl(arg_type))); } @@ -2393,33 +2945,62 @@ void CompilerHLSL::emit_hlsl_entry_point() if (require_input) arguments.push_back("SPIRV_Cross_Input stage_input"); - // Add I/O blocks as separate arguments with appropriate storage qualifier. - ir.for_each_typed_id([&](uint32_t, SPIRVariable &var) { - auto &type = this->get(var.basetype); - bool block = ir.meta[type.self].decoration.decoration_flags.get(DecorationBlock); - - if (var.storage != StorageClassInput && var.storage != StorageClassOutput) - return; - - if (block && !is_builtin_variable(var) && interface_variable_exists_in_entry_point(var.self)) - { - if (var.storage == StorageClassInput) - { - arguments.push_back(join("in ", variable_decl(type, join("stage_input", to_name(var.self))))); - } - else if (var.storage == StorageClassOutput) - { - arguments.push_back(join("out ", variable_decl(type, join("stage_output", to_name(var.self))))); - } - } - }); - auto &execution = get_entry_point(); switch (execution.model) { + case ExecutionModelTaskEXT: + case ExecutionModelMeshEXT: case ExecutionModelGLCompute: { + if (execution.model == ExecutionModelMeshEXT) + { + if (execution.flags.get(ExecutionModeOutputTrianglesEXT)) + statement("[outputtopology(\"triangle\")]"); + else if (execution.flags.get(ExecutionModeOutputLinesEXT)) + statement("[outputtopology(\"line\")]"); + else if (execution.flags.get(ExecutionModeOutputPoints)) + SPIRV_CROSS_THROW("Topology mode \"points\" is not supported in DirectX"); + + auto &func = get(ir.default_entry_point); + for (auto &arg : func.arguments) + { + auto &var = get(arg.id); + auto &base_type = get(var.basetype); + bool block = has_decoration(base_type.self, DecorationBlock); + if (var.storage == StorageClassTaskPayloadWorkgroupEXT) + { + arguments.push_back("in payload " + variable_decl(var)); + } + else if (block) + { + auto flags = get_buffer_block_flags(var.self); + if (flags.get(DecorationPerPrimitiveEXT) || has_decoration(arg.id, DecorationPerPrimitiveEXT)) + { + arguments.push_back("out primitives gl_MeshPerPrimitiveEXT gl_MeshPrimitivesEXT[" + + std::to_string(execution.output_primitives) + "]"); + } + else + { + arguments.push_back("out vertices gl_MeshPerVertexEXT gl_MeshVerticesEXT[" + + std::to_string(execution.output_vertices) + "]"); + } + } + else + { + if (execution.flags.get(ExecutionModeOutputTrianglesEXT)) + { + arguments.push_back("out indices uint3 gl_PrimitiveTriangleIndicesEXT[" + + std::to_string(execution.output_primitives) + "]"); + } + else + { + arguments.push_back("out indices uint2 gl_PrimitiveLineIndicesEXT[" + + std::to_string(execution.output_primitives) + "]"); + } + } + } + } SpecializationConstant wg_x, wg_y, wg_z; get_work_group_size_specialization_constants(wg_x, wg_y, wg_z); @@ -2427,6 +3008,16 @@ void CompilerHLSL::emit_hlsl_entry_point() uint32_t y = execution.workgroup_size.y; uint32_t z = execution.workgroup_size.z; + if (!execution.workgroup_size.constant && execution.flags.get(ExecutionModeLocalSizeId)) + { + if (execution.workgroup_size.id_x) + x = get(execution.workgroup_size.id_x).scalar(); + if (execution.workgroup_size.id_y) + y = get(execution.workgroup_size.id_y).scalar(); + if (execution.workgroup_size.id_z) + z = get(execution.workgroup_size.id_z).scalar(); + } + auto x_expr = wg_x.id ? get(wg_x.id).specialization_constant_macro_name : to_string(x); auto y_expr = wg_y.id ? get(wg_y.id).specialization_constant_macro_name : to_string(y); auto z_expr = wg_z.id ? get(wg_z.id).specialization_constant_macro_name : to_string(z); @@ -2442,7 +3033,13 @@ void CompilerHLSL::emit_hlsl_entry_point() break; } - statement(require_output ? "SPIRV_Cross_Output " : "void ", "main(", merge(arguments), ")"); + const char *entry_point_name; + if (hlsl_options.use_entry_point_name) + entry_point_name = get_entry_point().name.c_str(); + else + entry_point_name = "main"; + + statement(require_output ? "SPIRV_Cross_Output " : "void ", entry_point_name, "(", merge(arguments), ")"); begin_scope(); bool legacy = hlsl_options.shader_model <= 30; @@ -2480,6 +3077,14 @@ void CompilerHLSL::emit_hlsl_entry_point() statement(builtin, " = int(stage_input.", builtin, ");"); break; + case BuiltInBaseVertex: + statement(builtin, " = SPIRV_Cross_BaseVertex;"); + break; + + case BuiltInBaseInstance: + statement(builtin, " = SPIRV_Cross_BaseInstance;"); + break; + case BuiltInInstanceId: // D3D semantics are uint, but shader wants int. statement(builtin, " = int(stage_input.", builtin, ");"); @@ -2489,6 +3094,7 @@ void CompilerHLSL::emit_hlsl_entry_point() case BuiltInPointCoord: case BuiltInSubgroupSize: case BuiltInSubgroupLocalInvocationId: + case BuiltInHelperInvocation: break; case BuiltInSubgroupEqMask: @@ -2574,64 +3180,65 @@ void CompilerHLSL::emit_hlsl_entry_point() // Copy from stage input struct to globals. ir.for_each_typed_id([&](uint32_t, SPIRVariable &var) { auto &type = this->get(var.basetype); - bool block = ir.meta[type.self].decoration.decoration_flags.get(DecorationBlock); + bool block = has_decoration(type.self, DecorationBlock); if (var.storage != StorageClassInput) return; bool need_matrix_unroll = var.storage == StorageClassInput && execution.model == ExecutionModelVertex; - if (!block && !var.remapped_variable && type.pointer && !is_builtin_variable(var) && + if (!var.remapped_variable && type.pointer && !is_builtin_variable(var) && interface_variable_exists_in_entry_point(var.self)) { - auto name = to_name(var.self); - auto &mtype = this->get(var.basetype); - if (need_matrix_unroll && mtype.columns > 1) + if (block) { - // Unroll matrices. - for (uint32_t col = 0; col < mtype.columns; col++) - statement(name, "[", col, "] = stage_input.", name, "_", col, ";"); + auto type_name = to_name(type.self); + auto var_name = to_name(var.self); + for (uint32_t mbr_idx = 0; mbr_idx < uint32_t(type.member_types.size()); mbr_idx++) + { + auto mbr_name = to_member_name(type, mbr_idx); + auto flat_name = join(type_name, "_", mbr_name); + statement(var_name, ".", mbr_name, " = stage_input.", flat_name, ";"); + } } else { - statement(name, " = stage_input.", name, ";"); + auto name = to_name(var.self); + auto &mtype = this->get(var.basetype); + if (need_matrix_unroll && mtype.columns > 1) + { + // Unroll matrices. + for (uint32_t col = 0; col < mtype.columns; col++) + statement(name, "[", col, "] = stage_input.", name, "_", col, ";"); + } + else + { + statement(name, " = stage_input.", name, ";"); + } } } - - // I/O blocks don't use the common stage input/output struct, but separate outputs. - if (block && !is_builtin_variable(var) && interface_variable_exists_in_entry_point(var.self)) - { - auto name = to_name(var.self); - statement(name, " = stage_input", name, ";"); - } }); // Run the shader. - if (execution.model == ExecutionModelVertex) - statement("vert_main();"); - else if (execution.model == ExecutionModelFragment) - statement("frag_main();"); - else if (execution.model == ExecutionModelGLCompute) - statement("comp_main();"); + if (execution.model == ExecutionModelVertex || + execution.model == ExecutionModelFragment || + execution.model == ExecutionModelGLCompute || + execution.model == ExecutionModelMeshEXT || + execution.model == ExecutionModelTaskEXT) + { + // For mesh shaders, we receive special arguments that we must pass down as function arguments. + // HLSL does not support proper reference types for passing these IO blocks, + // but DXC post-inlining seems to magically fix it up anyways *shrug*. + SmallVector arglist; + auto &func = get(ir.default_entry_point); + // The arguments are marked out, avoid detecting reads and emitting inout. + for (auto &arg : func.arguments) + arglist.push_back(to_expression(arg.id, false)); + statement(get_inner_entry_point_name(), "(", merge(arglist), ");"); + } else SPIRV_CROSS_THROW("Unsupported shader stage."); - // Copy block outputs. - ir.for_each_typed_id([&](uint32_t, SPIRVariable &var) { - auto &type = this->get(var.basetype); - bool block = ir.meta[type.self].decoration.decoration_flags.get(DecorationBlock); - - if (var.storage != StorageClassOutput) - return; - - // I/O blocks don't use the common stage input/output struct, but separate outputs. - if (block && !is_builtin_variable(var) && interface_variable_exists_in_entry_point(var.self)) - { - auto name = to_name(var.self); - statement("stage_output", name, " = ", name, ";"); - } - }); - // Copy stage outputs. if (require_output) { @@ -2639,8 +3246,8 @@ void CompilerHLSL::emit_hlsl_entry_point() // Copy builtins from globals to return struct. active_output_builtins.for_each_bit([&](uint32_t i) { - // PointSize doesn't exist in HLSL. - if (i == BuiltInPointSize) + // PointSize doesn't exist in HLSL SM 4+. + if (i == BuiltInPointSize && !legacy) return; switch (static_cast(i)) @@ -2668,27 +3275,43 @@ void CompilerHLSL::emit_hlsl_entry_point() ir.for_each_typed_id([&](uint32_t, SPIRVariable &var) { auto &type = this->get(var.basetype); - bool block = ir.meta[type.self].decoration.decoration_flags.get(DecorationBlock); + bool block = has_decoration(type.self, DecorationBlock); if (var.storage != StorageClassOutput) return; - if (!block && var.storage != StorageClassFunction && !var.remapped_variable && type.pointer && - !is_builtin_variable(var) && interface_variable_exists_in_entry_point(var.self)) + if (!var.remapped_variable && type.pointer && + !is_builtin_variable(var) && + interface_variable_exists_in_entry_point(var.self)) { - auto name = to_name(var.self); - - if (legacy && execution.model == ExecutionModelFragment) + if (block) { - string output_filler; - for (uint32_t size = type.vecsize; size < 4; ++size) - output_filler += ", 0.0"; - - statement("stage_output.", name, " = float4(", name, output_filler, ");"); + // I/O blocks need to flatten output. + auto type_name = to_name(type.self); + auto var_name = to_name(var.self); + for (uint32_t mbr_idx = 0; mbr_idx < uint32_t(type.member_types.size()); mbr_idx++) + { + auto mbr_name = to_member_name(type, mbr_idx); + auto flat_name = join(type_name, "_", mbr_name); + statement("stage_output.", flat_name, " = ", var_name, ".", mbr_name, ";"); + } } else { - statement("stage_output.", name, " = ", name, ";"); + auto name = to_name(var.self); + + if (legacy && execution.model == ExecutionModelFragment) + { + string output_filler; + for (uint32_t size = type.vecsize; size < 4; ++size) + output_filler += ", 0.0"; + + statement("stage_output.", name, " = float4(", name, output_filler, ");"); + } + else + { + statement("stage_output.", name, " = ", name, ";"); + } } } }); @@ -2701,7 +3324,7 @@ void CompilerHLSL::emit_hlsl_entry_point() void CompilerHLSL::emit_fixup() { - if (is_vertex_like_shader()) + if (is_vertex_like_shader() && active_output_builtins.get(BuiltInPosition)) { // Do various mangling on the gl_Position. if (hlsl_options.shader_model <= 30) @@ -2890,16 +3513,16 @@ void CompilerHLSL::emit_texture_op(const Instruction &i, bool sparse) else { auto &imgformat = get(imgtype.image.type); - if (imgformat.basetype != SPIRType::Float) + if (hlsl_options.shader_model < 67 && imgformat.basetype != SPIRType::Float) { - SPIRV_CROSS_THROW("Sampling non-float textures is not supported in HLSL."); + SPIRV_CROSS_THROW("Sampling non-float textures is not supported in HLSL SM < 6.7."); } if (hlsl_options.shader_model >= 40) { texop += img_expr; - if (image_is_comparison(imgtype, img)) + if (is_depth_image(imgtype, img)) { if (gather) { @@ -3237,6 +3860,11 @@ string CompilerHLSL::to_resource_binding(const SPIRVariable &var) resource_flags = HLSL_BINDING_AUTO_SAMPLER_BIT; break; + case SPIRType::AccelerationStructure: + space = 't'; // SRV + resource_flags = HLSL_BINDING_AUTO_SRV_BIT; + break; + case SPIRType::Struct: { auto storage = type.storage; @@ -3375,7 +4003,7 @@ void CompilerHLSL::emit_modern_uniform(const SPIRVariable &var) if (type.basetype == SPIRType::SampledImage && type.image.dim != DimBuffer) { // For combined image samplers, also emit a combined image sampler. - if (image_is_comparison(type, var.self)) + if (is_depth_image(type, var.self)) statement("SamplerComparisonState ", to_sampler_expression(var.self), type_to_array_glsl(type), to_resource_binding_sampler(var), ";"); else @@ -3472,6 +4100,18 @@ string CompilerHLSL::bitcast_glsl_op(const SPIRType &out_type, const SPIRType &i } return "spvPackFloat2x16"; } + else if (out_type.basetype == SPIRType::UShort && in_type.basetype == SPIRType::Half) + { + if (hlsl_options.shader_model < 40) + SPIRV_CROSS_THROW("Half to UShort requires Shader Model 4."); + return "(" + type_to_glsl(out_type) + ")f32tof16"; + } + else if (out_type.basetype == SPIRType::Half && in_type.basetype == SPIRType::UShort) + { + if (hlsl_options.shader_model < 40) + SPIRV_CROSS_THROW("UShort to Half requires Shader Model 4."); + return "(" + type_to_glsl(out_type) + ")f16tof32"; + } else return ""; } @@ -3485,6 +4125,8 @@ void CompilerHLSL::emit_glsl_op(uint32_t result_type, uint32_t id, uint32_t eop, auto int_type = to_signed_basetype(integer_width); auto uint_type = to_unsigned_basetype(integer_width); + op = get_remapped_glsl_op(op); + switch (op) { case GLSLstd450InverseSqrt: @@ -3501,10 +4143,16 @@ void CompilerHLSL::emit_glsl_op(uint32_t result_type, uint32_t id, uint32_t eop, emit_unary_func_op(result_type, id, args[0], "round"); break; + case GLSLstd450Trunc: + emit_unary_func_op(result_type, id, args[0], "trunc"); + break; + case GLSLstd450Acosh: case GLSLstd450Asinh: case GLSLstd450Atanh: - SPIRV_CROSS_THROW("Inverse hyperbolics are not supported on HLSL."); + // These are not supported in HLSL, always emulate them. + emit_emulated_ahyper_op(result_type, id, args[0], op); + break; case GLSLstd450FMix: case GLSLstd450IMix: @@ -3957,7 +4605,7 @@ void CompilerHLSL::read_access_chain(string *expr, const string &lhs, const SPIR if (lhs.empty()) { assert(expr); - *expr = move(load_expr); + *expr = std::move(load_expr); } else statement(lhs, " = ", load_expr, ";"); @@ -4575,26 +5223,22 @@ void CompilerHLSL::emit_subgroup_op(const Instruction &i) case OpGroupNonUniformInverseBallot: SPIRV_CROSS_THROW("Cannot trivially implement InverseBallot in HLSL."); - break; case OpGroupNonUniformBallotBitExtract: SPIRV_CROSS_THROW("Cannot trivially implement BallotBitExtract in HLSL."); - break; case OpGroupNonUniformBallotFindLSB: SPIRV_CROSS_THROW("Cannot trivially implement BallotFindLSB in HLSL."); - break; case OpGroupNonUniformBallotFindMSB: SPIRV_CROSS_THROW("Cannot trivially implement BallotFindMSB in HLSL."); - break; case OpGroupNonUniformBallotBitCount: { auto operation = static_cast(ops[3]); + bool forward = should_forward(ops[4]); if (operation == GroupOperationReduce) { - bool forward = should_forward(ops[4]); auto left = join("countbits(", to_enclosed_expression(ops[4]), ".x) + countbits(", to_enclosed_expression(ops[4]), ".y)"); auto right = join("countbits(", to_enclosed_expression(ops[4]), ".z) + countbits(", @@ -4603,9 +5247,31 @@ void CompilerHLSL::emit_subgroup_op(const Instruction &i) inherit_expression_dependencies(id, ops[4]); } else if (operation == GroupOperationInclusiveScan) - SPIRV_CROSS_THROW("Cannot trivially implement BallotBitCount Inclusive Scan in HLSL."); + { + auto left = join("countbits(", to_enclosed_expression(ops[4]), ".x & gl_SubgroupLeMask.x) + countbits(", + to_enclosed_expression(ops[4]), ".y & gl_SubgroupLeMask.y)"); + auto right = join("countbits(", to_enclosed_expression(ops[4]), ".z & gl_SubgroupLeMask.z) + countbits(", + to_enclosed_expression(ops[4]), ".w & gl_SubgroupLeMask.w)"); + emit_op(result_type, id, join(left, " + ", right), forward); + if (!active_input_builtins.get(BuiltInSubgroupLeMask)) + { + active_input_builtins.set(BuiltInSubgroupLeMask); + force_recompile_guarantee_forward_progress(); + } + } else if (operation == GroupOperationExclusiveScan) - SPIRV_CROSS_THROW("Cannot trivially implement BallotBitCount Exclusive Scan in HLSL."); + { + auto left = join("countbits(", to_enclosed_expression(ops[4]), ".x & gl_SubgroupLtMask.x) + countbits(", + to_enclosed_expression(ops[4]), ".y & gl_SubgroupLtMask.y)"); + auto right = join("countbits(", to_enclosed_expression(ops[4]), ".z & gl_SubgroupLtMask.z) + countbits(", + to_enclosed_expression(ops[4]), ".w & gl_SubgroupLtMask.w)"); + emit_op(result_type, id, join(left, " + ", right), forward); + if (!active_input_builtins.get(BuiltInSubgroupLtMask)) + { + active_input_builtins.set(BuiltInSubgroupLtMask); + force_recompile_guarantee_forward_progress(); + } + } else SPIRV_CROSS_THROW("Invalid BitCount operation."); break; @@ -4742,7 +5408,7 @@ void CompilerHLSL::emit_instruction(const Instruction &instruction) #define HLSL_BOP(op) emit_binary_op(ops[0], ops[1], ops[2], ops[3], #op) #define HLSL_BOP_CAST(op, type) \ - emit_binary_op_cast(ops[0], ops[1], ops[2], ops[3], #op, type, opcode_is_sign_invariant(opcode)) + emit_binary_op_cast(ops[0], ops[1], ops[2], ops[3], #op, type, opcode_is_sign_invariant(opcode), false) #define HLSL_UOP(op) emit_unary_op(ops[0], ops[1], ops[2], #op) #define HLSL_QFOP(op) emit_quaternary_func_op(ops[0], ops[1], ops[2], ops[3], ops[4], ops[5], #op) #define HLSL_TFOP(op) emit_trinary_func_op(ops[0], ops[1], ops[2], ops[3], ops[4], #op) @@ -4757,6 +5423,8 @@ void CompilerHLSL::emit_instruction(const Instruction &instruction) auto int_type = to_signed_basetype(integer_width); auto uint_type = to_unsigned_basetype(integer_width); + opcode = get_remapped_spirv_op(opcode); + switch (opcode) { case OpAccessChain: @@ -4787,6 +5455,34 @@ void CompilerHLSL::emit_instruction(const Instruction &instruction) break; } + case OpSelect: + { + auto &value_type = expression_type(ops[3]); + if (value_type.basetype == SPIRType::Struct || is_array(value_type)) + { + // HLSL does not support ternary expressions on composites. + // Cannot use branches, since we might be in a continue block + // where explicit control flow is prohibited. + // Emit a helper function where we can use control flow. + TypeID value_type_id = expression_type_id(ops[3]); + auto itr = std::find(composite_selection_workaround_types.begin(), + composite_selection_workaround_types.end(), + value_type_id); + if (itr == composite_selection_workaround_types.end()) + { + composite_selection_workaround_types.push_back(value_type_id); + force_recompile(); + } + emit_uninitialized_temporary_expression(ops[0], ops[1]); + statement("spvSelectComposite(", + to_expression(ops[1]), ", ", to_expression(ops[2]), ", ", + to_expression(ops[3]), ", ", to_expression(ops[4]), ");"); + } + else + CompilerGLSL::emit_instruction(instruction); + break; + } + case OpStore: { emit_store(instruction); @@ -5279,7 +5975,7 @@ void CompilerHLSL::emit_instruction(const Instruction &instruction) image_format_to_components(get(var->basetype).image.format), imgexpr); } - if (var && var->forwardable) + if (var) { bool forward = forced_temporaries.find(id) == end(forced_temporaries); auto &e = emit_op(result_type, id, imgexpr, forward); @@ -5523,7 +6219,12 @@ void CompilerHLSL::emit_instruction(const Instruction &instruction) } case OpIsHelperInvocationEXT: - SPIRV_CROSS_THROW("helperInvocationEXT() is not supported in HLSL."); + if (hlsl_options.shader_model < 50 || get_entry_point().model != ExecutionModelFragment) + SPIRV_CROSS_THROW("Helper Invocation input is only supported in PS 5.0 or higher."); + // Helper lane state with demote is volatile by nature. + // Do not forward this. + emit_op(ops[0], ops[1], "IsHelperLane()", false); + break; case OpBeginInvocationInterlockEXT: case OpEndInvocationInterlockEXT: @@ -5531,6 +6232,148 @@ void CompilerHLSL::emit_instruction(const Instruction &instruction) SPIRV_CROSS_THROW("Rasterizer order views require Shader Model 5.1."); break; // Nothing to do in the body + case OpRayQueryInitializeKHR: + { + flush_variable_declaration(ops[0]); + + std::string ray_desc_name = get_unique_identifier(); + statement("RayDesc ", ray_desc_name, " = {", to_expression(ops[4]), ", ", to_expression(ops[5]), ", ", + to_expression(ops[6]), ", ", to_expression(ops[7]), "};"); + + statement(to_expression(ops[0]), ".TraceRayInline(", + to_expression(ops[1]), ", ", // acc structure + to_expression(ops[2]), ", ", // ray flags + to_expression(ops[3]), ", ", // mask + ray_desc_name, ");"); // ray + break; + } + case OpRayQueryProceedKHR: + { + flush_variable_declaration(ops[0]); + emit_op(ops[0], ops[1], join(to_expression(ops[2]), ".Proceed()"), false); + break; + } + case OpRayQueryTerminateKHR: + { + flush_variable_declaration(ops[0]); + statement(to_expression(ops[0]), ".Abort();"); + break; + } + case OpRayQueryGenerateIntersectionKHR: + { + flush_variable_declaration(ops[0]); + statement(to_expression(ops[0]), ".CommitProceduralPrimitiveHit(", to_expression(ops[1]), ");"); + break; + } + case OpRayQueryConfirmIntersectionKHR: + { + flush_variable_declaration(ops[0]); + statement(to_expression(ops[0]), ".CommitNonOpaqueTriangleHit();"); + break; + } + case OpRayQueryGetIntersectionTypeKHR: + { + emit_rayquery_function(".CommittedStatus()", ".CandidateType()", ops); + break; + } + case OpRayQueryGetIntersectionTKHR: + { + emit_rayquery_function(".CommittedRayT()", ".CandidateTriangleRayT()", ops); + break; + } + case OpRayQueryGetIntersectionInstanceCustomIndexKHR: + { + emit_rayquery_function(".CommittedInstanceID()", ".CandidateInstanceID()", ops); + break; + } + case OpRayQueryGetIntersectionInstanceIdKHR: + { + emit_rayquery_function(".CommittedInstanceIndex()", ".CandidateInstanceIndex()", ops); + break; + } + case OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: + { + emit_rayquery_function(".CommittedInstanceContributionToHitGroupIndex()", + ".CandidateInstanceContributionToHitGroupIndex()", ops); + break; + } + case OpRayQueryGetIntersectionGeometryIndexKHR: + { + emit_rayquery_function(".CommittedGeometryIndex()", + ".CandidateGeometryIndex()", ops); + break; + } + case OpRayQueryGetIntersectionPrimitiveIndexKHR: + { + emit_rayquery_function(".CommittedPrimitiveIndex()", ".CandidatePrimitiveIndex()", ops); + break; + } + case OpRayQueryGetIntersectionBarycentricsKHR: + { + emit_rayquery_function(".CommittedTriangleBarycentrics()", ".CandidateTriangleBarycentrics()", ops); + break; + } + case OpRayQueryGetIntersectionFrontFaceKHR: + { + emit_rayquery_function(".CommittedTriangleFrontFace()", ".CandidateTriangleFrontFace()", ops); + break; + } + case OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: + { + flush_variable_declaration(ops[0]); + emit_op(ops[0], ops[1], join(to_expression(ops[2]), ".CandidateProceduralPrimitiveNonOpaque()"), false); + break; + } + case OpRayQueryGetIntersectionObjectRayDirectionKHR: + { + emit_rayquery_function(".CommittedObjectRayDirection()", ".CandidateObjectRayDirection()", ops); + break; + } + case OpRayQueryGetIntersectionObjectRayOriginKHR: + { + flush_variable_declaration(ops[0]); + emit_rayquery_function(".CommittedObjectRayOrigin()", ".CandidateObjectRayOrigin()", ops); + break; + } + case OpRayQueryGetIntersectionObjectToWorldKHR: + { + emit_rayquery_function(".CommittedObjectToWorld4x3()", ".CandidateObjectToWorld4x3()", ops); + break; + } + case OpRayQueryGetIntersectionWorldToObjectKHR: + { + emit_rayquery_function(".CommittedWorldToObject4x3()", ".CandidateWorldToObject4x3()", ops); + break; + } + case OpRayQueryGetRayFlagsKHR: + { + flush_variable_declaration(ops[0]); + emit_op(ops[0], ops[1], join(to_expression(ops[2]), ".RayFlags()"), false); + break; + } + case OpRayQueryGetRayTMinKHR: + { + flush_variable_declaration(ops[0]); + emit_op(ops[0], ops[1], join(to_expression(ops[2]), ".RayTMin()"), false); + break; + } + case OpRayQueryGetWorldRayOriginKHR: + { + flush_variable_declaration(ops[0]); + emit_op(ops[0], ops[1], join(to_expression(ops[2]), ".WorldRayOrigin()"), false); + break; + } + case OpRayQueryGetWorldRayDirectionKHR: + { + flush_variable_declaration(ops[0]); + emit_op(ops[0], ops[1], join(to_expression(ops[2]), ".WorldRayDirection()"), false); + break; + } + case OpSetMeshOutputsEXT: + { + statement("SetMeshOutputCounts(", to_unpacked_expression(ops[0]), ", ", to_unpacked_expression(ops[1]), ");"); + break; + } default: CompilerGLSL::emit_instruction(instruction); break; @@ -5610,7 +6453,7 @@ void CompilerHLSL::require_texture_query_variant(uint32_t var_id) void CompilerHLSL::set_root_constant_layouts(std::vector layout) { - root_constants_layout = move(layout); + root_constants_layout = std::move(layout); } void CompilerHLSL::add_vertex_attribute_remap(const HLSLVertexAttributeRemap &vertex_attributes) @@ -5661,6 +6504,7 @@ VariableID CompilerHLSL::remap_num_workgroups_builtin() ir.meta[variable_id].decoration.alias = "SPIRV_Cross_NumWorkgroups"; num_workgroups_builtin = variable_id; + get_entry_point().interface_variables.push_back(num_workgroups_builtin); return variable_id; } @@ -5730,10 +6574,13 @@ string CompilerHLSL::compile() backend.can_return_array = false; backend.nonuniform_qualifier = "NonUniformResourceIndex"; backend.support_case_fallthrough = false; + backend.force_merged_mesh_block = get_execution_model() == ExecutionModelMeshEXT; + backend.force_gl_in_out_block = backend.force_merged_mesh_block; // SM 4.1 does not support precise for some reason. backend.support_precise_qualifier = hlsl_options.shader_model >= 50 || hlsl_options.shader_model == 40; + fixup_anonymous_struct_names(); fixup_type_alias(); reorder_type_alias(); build_function_control_flow_graphs_and_analyze(); @@ -5741,6 +6588,8 @@ string CompilerHLSL::compile() update_active_builtins(); analyze_image_and_sampler_usage(); analyze_interlocked_resource_usage(); + if (get_execution_model() == ExecutionModelMeshEXT) + analyze_meshlet_writes(); // Subpass input needs SV_Position. if (need_subpass_input) @@ -5749,10 +6598,7 @@ string CompilerHLSL::compile() uint32_t pass_count = 0; do { - if (pass_count >= 3) - SPIRV_CROSS_THROW("Over 3 compilation loops detected. Must be a bug!"); - - reset(); + reset(pass_count); // Move constructor for this type is broken on GCC 4.9 ... buffer.reset(); diff --git a/third_party/spirv-cross/spirv_hlsl.hpp b/third_party/spirv-cross/spirv_hlsl.hpp index f46b1868a4..51af5bf07d 100644 --- a/third_party/spirv-cross/spirv_hlsl.hpp +++ b/third_party/spirv-cross/spirv_hlsl.hpp @@ -1,5 +1,6 @@ /* * Copyright 2016-2021 Robert Konrad + * SPDX-License-Identifier: Apache-2.0 OR MIT * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +19,6 @@ * At your option, you may choose to accept this material under either: * 1. The Apache License, Version 2.0, found at , or * 2. The MIT License, found at . - * SPDX-License-Identifier: Apache-2.0 OR MIT. */ #ifndef SPIRV_HLSL_HPP @@ -98,6 +98,11 @@ struct HLSLResourceBinding } cbv, uav, srv, sampler; }; +enum HLSLAuxBinding +{ + HLSL_AUX_BINDING_BASE_VERTEX_INSTANCE = 0 +}; + class CompilerHLSL : public CompilerGLSL { public: @@ -105,7 +110,7 @@ public: { uint32_t shader_model = 30; // TODO: map ps_4_0_level_9_0,... somehow - // Allows the PointSize builtin, and ignores it, as PointSize is not supported in HLSL. + // Allows the PointSize builtin in SM 4.0+, and ignores it, as PointSize is not supported in SM 4+. bool point_size_compat = false; // Allows the PointCoord builtin, returns float2(0.5, 0.5), as PointCoord is not supported in HLSL. @@ -137,6 +142,9 @@ public: // If add_vertex_attribute_remap is used and this feature is used, // the semantic name will be queried once per active location. bool flatten_matrix_vertex_input_semantics = false; + + // Rather than emitting main() for the entry point, use the name in SPIR-V. + bool use_entry_point_name = false; }; explicit CompilerHLSL(std::vector spirv_) @@ -208,6 +216,11 @@ public: // Controls which storage buffer bindings will be forced to be declared as UAVs. void set_hlsl_force_storage_buffer_as_uav(uint32_t desc_set, uint32_t binding); + // By default, these magic buffers are not assigned a specific binding. + void set_hlsl_aux_buffer_binding(HLSLAuxBinding binding, uint32_t register_index, uint32_t register_space); + void unset_hlsl_aux_buffer_binding(HLSLAuxBinding binding); + bool is_hlsl_aux_buffer_binding_used(HLSLAuxBinding binding) const; + private: std::string type_to_glsl(const SPIRType &type, uint32_t id = 0) override; std::string image_type_hlsl(const SPIRType &type, uint32_t id); @@ -217,11 +230,13 @@ private: void emit_hlsl_entry_point(); void emit_header() override; void emit_resources(); - void declare_undefined_values() override; void emit_interface_block_globally(const SPIRVariable &type); - void emit_interface_block_in_struct(const SPIRVariable &type, std::unordered_set &active_locations); + void emit_interface_block_in_struct(const SPIRVariable &var, std::unordered_set &active_locations); + void emit_interface_block_member_in_struct(const SPIRVariable &var, uint32_t member_index, uint32_t location, + std::unordered_set &active_locations); void emit_builtin_inputs_in_struct(); void emit_builtin_outputs_in_struct(); + void emit_builtin_primitive_outputs_in_struct(); void emit_texture_op(const Instruction &i, bool sparse) override; void emit_instruction(const Instruction &instruction) override; void emit_glsl_op(uint32_t result_type, uint32_t result_id, uint32_t op, const uint32_t *args, @@ -264,6 +279,8 @@ private: void emit_struct_member(const SPIRType &type, uint32_t member_type_id, uint32_t index, const std::string &qualifier, uint32_t base_offset = 0) override; + void emit_rayquery_function(const char *commited, const char *candidate, const uint32_t *ops); + void emit_mesh_tasks(SPIRBlock &block) override; const char *to_storage_qualifiers_glsl(const SPIRVariable &var) override; void replace_illegal_names() override; @@ -338,6 +355,10 @@ private: TypeUnpackUint64 }; + void analyze_meshlet_writes(); + void analyze_meshlet_writes(uint32_t func_id, uint32_t id_per_vertex, uint32_t id_per_primitive, + std::unordered_set &processed_func_ids); + BitcastType get_bitcast_type(uint32_t result_type, uint32_t op0); void emit_builtin_variables(); @@ -347,7 +368,6 @@ private: uint32_t type_to_consumed_locations(const SPIRType &type) const; - void emit_io_block(const SPIRVariable &var); std::string to_semantic(uint32_t location, spv::ExecutionModel em, spv::StorageClass sc); uint32_t num_workgroups_builtin = 0; @@ -367,8 +387,20 @@ private: std::unordered_set force_uav_buffer_bindings; + struct + { + uint32_t register_index = 0; + uint32_t register_space = 0; + bool explicit_binding = false; + bool used = false; + } base_vertex_info; + // Returns true for BuiltInSampleMask because gl_SampleMask[] is an array in SPIR-V, but SV_Coverage is a scalar in HLSL. bool builtin_translates_to_nonarray(spv::BuiltIn builtin) const override; + + std::vector composite_selection_workaround_types; + + std::string get_inner_entry_point_name() const; }; } // namespace SPIRV_CROSS_NAMESPACE diff --git a/third_party/spirv-cross/spirv_msl.cpp b/third_party/spirv-cross/spirv_msl.cpp index aee52f7dcd..1d1ae0a193 100644 --- a/third_party/spirv-cross/spirv_msl.cpp +++ b/third_party/spirv-cross/spirv_msl.cpp @@ -1,5 +1,6 @@ /* * Copyright 2016-2021 The Brenwill Workshop Ltd. + * SPDX-License-Identifier: Apache-2.0 OR MIT * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +19,6 @@ * At your option, you may choose to accept this material under either: * 1. The Apache License, Version 2.0, found at , or * 2. The MIT License, found at . - * SPDX-License-Identifier: Apache-2.0 OR MIT. */ #include "spirv_msl.hpp" @@ -37,7 +37,7 @@ static const uint32_t k_unknown_component = ~0u; static const char *force_inline = "static inline __attribute__((always_inline))"; CompilerMSL::CompilerMSL(std::vector spirv_) - : CompilerGLSL(move(spirv_)) + : CompilerGLSL(std::move(spirv_)) { } @@ -56,13 +56,20 @@ CompilerMSL::CompilerMSL(ParsedIR &&ir_) { } -void CompilerMSL::add_msl_shader_input(const MSLShaderInput &si) +void CompilerMSL::add_msl_shader_input(const MSLShaderInterfaceVariable &si) { - inputs_by_location[si.location] = si; + inputs_by_location[{si.location, si.component}] = si; if (si.builtin != BuiltInMax && !inputs_by_builtin.count(si.builtin)) inputs_by_builtin[si.builtin] = si; } +void CompilerMSL::add_msl_shader_output(const MSLShaderInterfaceVariable &so) +{ + outputs_by_location[{so.location, so.component}] = so; + if (so.builtin != BuiltInMax && !outputs_by_builtin.count(so.builtin)) + outputs_by_builtin[so.builtin] = so; +} + void CompilerMSL::add_msl_resource_binding(const MSLResourceBinding &binding) { StageSetBinding tuple = { binding.stage, binding.desc_set, binding.binding }; @@ -109,7 +116,6 @@ void CompilerMSL::add_msl_resource_binding(const MSLResourceBinding &binding) default: SPIRV_CROSS_THROW("Unexpected argument buffer resource base type. When padding argument buffer elements, " "all descriptor set resources must be supplied with a base type by the app."); - break; } #undef ADD_ARG_IDX_TO_BINDING_NUM_LOOKUP } @@ -151,6 +157,13 @@ bool CompilerMSL::is_msl_shader_input_used(uint32_t location) location_inputs_in_use_fallback.count(location) == 0; } +bool CompilerMSL::is_msl_shader_output_used(uint32_t location) +{ + // Don't report internal location allocations to app. + return location_outputs_in_use.count(location) != 0 && + location_outputs_in_use_fallback.count(location) == 0; +} + uint32_t CompilerMSL::get_automatic_builtin_input_location(spv::BuiltIn builtin) const { auto itr = builtin_to_automatic_input_location.find(builtin); @@ -160,6 +173,15 @@ uint32_t CompilerMSL::get_automatic_builtin_input_location(spv::BuiltIn builtin) return itr->second; } +uint32_t CompilerMSL::get_automatic_builtin_output_location(spv::BuiltIn builtin) const +{ + auto itr = builtin_to_automatic_output_location.find(builtin); + if (itr == builtin_to_automatic_output_location.end()) + return k_unknown_location; + else + return itr->second; +} + bool CompilerMSL::is_msl_resource_binding_used(ExecutionModel model, uint32_t desc_set, uint32_t binding) const { StageSetBinding tuple = { model, desc_set, binding }; @@ -212,7 +234,8 @@ void CompilerMSL::build_implicit_builtins() bool need_sample_pos = active_input_builtins.get(BuiltInSamplePosition); bool need_vertex_params = capture_output_to_buffer && get_execution_model() == ExecutionModelVertex && !msl_options.vertex_for_tessellation; - bool need_tesc_params = get_execution_model() == ExecutionModelTessellationControl; + bool need_tesc_params = is_tesc_shader(); + bool need_tese_params = is_tese_shader() && msl_options.raw_buffer_tese_input; bool need_subgroup_mask = active_input_builtins.get(BuiltInSubgroupEqMask) || active_input_builtins.get(BuiltInSubgroupGeMask) || active_input_builtins.get(BuiltInSubgroupGtMask) || active_input_builtins.get(BuiltInSubgroupLeMask) || @@ -231,14 +254,13 @@ void CompilerMSL::build_implicit_builtins() (active_input_builtins.get(BuiltInVertexId) || active_input_builtins.get(BuiltInVertexIndex) || active_input_builtins.get(BuiltInBaseVertex) || active_input_builtins.get(BuiltInInstanceId) || active_input_builtins.get(BuiltInInstanceIndex) || active_input_builtins.get(BuiltInBaseInstance)); - bool need_sample_mask = msl_options.additional_fixed_sample_mask != 0xffffffff; bool need_local_invocation_index = msl_options.emulate_subgroups && active_input_builtins.get(BuiltInSubgroupId); bool need_workgroup_size = msl_options.emulate_subgroups && active_input_builtins.get(BuiltInNumSubgroups); if (need_subpass_input || need_sample_pos || need_subgroup_mask || need_vertex_params || need_tesc_params || - need_multiview || need_dispatch_base || need_vertex_base_params || need_grid_params || needs_sample_id || - needs_subgroup_invocation_id || needs_subgroup_size || need_sample_mask || need_local_invocation_index || - need_workgroup_size) + need_tese_params || need_multiview || need_dispatch_base || need_vertex_base_params || need_grid_params || + needs_sample_id || needs_subgroup_invocation_id || needs_subgroup_size || needs_helper_invocation || + has_additional_fixed_sample_mask() || need_local_invocation_index || need_workgroup_size) { bool has_frag_coord = false; bool has_sample_id = false; @@ -252,6 +274,7 @@ void CompilerMSL::build_implicit_builtins() bool has_subgroup_size = false; bool has_view_idx = false; bool has_layer = false; + bool has_helper_invocation = false; bool has_local_invocation_index = false; bool has_workgroup_size = false; uint32_t workgroup_id_type = 0; @@ -268,7 +291,7 @@ void CompilerMSL::build_implicit_builtins() if (var.storage == StorageClassOutput) { - if (need_sample_mask && builtin == BuiltInSampleMask) + if (has_additional_fixed_sample_mask() && builtin == BuiltInSampleMask) { builtin_sample_mask_id = var.self; mark_implicit_builtin(StorageClassOutput, BuiltInSampleMask, var.self); @@ -344,23 +367,28 @@ void CompilerMSL::build_implicit_builtins() } } - if (need_tesc_params) + if (need_tesc_params && builtin == BuiltInInvocationId) { - switch (builtin) - { - case BuiltInInvocationId: - builtin_invocation_id_id = var.self; - mark_implicit_builtin(StorageClassInput, BuiltInInvocationId, var.self); - has_invocation_id = true; - break; - case BuiltInPrimitiveId: - builtin_primitive_id_id = var.self; - mark_implicit_builtin(StorageClassInput, BuiltInPrimitiveId, var.self); - has_primitive_id = true; - break; - default: - break; - } + builtin_invocation_id_id = var.self; + mark_implicit_builtin(StorageClassInput, BuiltInInvocationId, var.self); + has_invocation_id = true; + } + + if ((need_tesc_params || need_tese_params) && builtin == BuiltInPrimitiveId) + { + builtin_primitive_id_id = var.self; + mark_implicit_builtin(StorageClassInput, BuiltInPrimitiveId, var.self); + has_primitive_id = true; + } + + if (need_tese_params && builtin == BuiltInTessLevelOuter) + { + tess_level_outer_var_id = var.self; + } + + if (need_tese_params && builtin == BuiltInTessLevelInner) + { + tess_level_inner_var_id = var.self; } if ((need_subgroup_mask || needs_subgroup_invocation_id) && builtin == BuiltInSubgroupLocalInvocationId) @@ -403,6 +431,13 @@ void CompilerMSL::build_implicit_builtins() } } + if (needs_helper_invocation && builtin == BuiltInHelperInvocation) + { + builtin_helper_invocation_id = var.self; + mark_implicit_builtin(StorageClassInput, BuiltInHelperInvocation, var.self); + has_helper_invocation = true; + } + if (need_local_invocation_index && builtin == BuiltInLocalInvocationIndex) { builtin_local_invocation_index_id = var.self; @@ -619,7 +654,7 @@ void CompilerMSL::build_implicit_builtins() } if ((need_tesc_params && (msl_options.multi_patch_workgroup || !has_invocation_id || !has_primitive_id)) || - need_grid_params) + (need_tese_params && !has_primitive_id) || need_grid_params) { uint32_t type_ptr_id = ir.increase_bound_by(1); @@ -632,7 +667,7 @@ void CompilerMSL::build_implicit_builtins() auto &ptr_type = set(type_ptr_id, uint_type_ptr); ptr_type.self = get_uint_type_id(); - if (msl_options.multi_patch_workgroup || need_grid_params) + if ((need_tesc_params && msl_options.multi_patch_workgroup) || need_grid_params) { uint32_t var_id = ir.increase_bound_by(1); @@ -653,7 +688,7 @@ void CompilerMSL::build_implicit_builtins() mark_implicit_builtin(StorageClassInput, BuiltInInvocationId, var_id); } - if (need_tesc_params && !has_primitive_id) + if ((need_tesc_params || need_tese_params) && !has_primitive_id) { uint32_t var_id = ir.increase_bound_by(1); @@ -758,7 +793,7 @@ void CompilerMSL::build_implicit_builtins() builtin_dispatch_base_id = var_id; } - if (need_sample_mask && !does_shader_write_sample_mask) + if (has_additional_fixed_sample_mask() && !does_shader_write_sample_mask) { uint32_t offset = ir.increase_bound_by(2); uint32_t var_id = offset + 1; @@ -779,6 +814,35 @@ void CompilerMSL::build_implicit_builtins() mark_implicit_builtin(StorageClassOutput, BuiltInSampleMask, var_id); } + if (!has_helper_invocation && needs_helper_invocation) + { + uint32_t offset = ir.increase_bound_by(3); + uint32_t type_id = offset; + uint32_t type_ptr_id = offset + 1; + uint32_t var_id = offset + 2; + + // Create gl_HelperInvocation. + SPIRType bool_type; + bool_type.basetype = SPIRType::Boolean; + bool_type.width = 8; + bool_type.vecsize = 1; + set(type_id, bool_type); + + SPIRType bool_type_ptr_in; + bool_type_ptr_in = bool_type; + bool_type_ptr_in.pointer = true; + bool_type_ptr_in.pointer_depth++; + bool_type_ptr_in.parent_type = type_id; + bool_type_ptr_in.storage = StorageClassInput; + + auto &ptr_in_type = set(type_ptr_id, bool_type_ptr_in); + ptr_in_type.self = type_id; + set(var_id, type_ptr_id, StorageClassInput); + set_decoration(var_id, DecorationBuiltIn, BuiltInHelperInvocation); + builtin_helper_invocation_id = var_id; + mark_implicit_builtin(StorageClassInput, BuiltInHelperInvocation, var_id); + } + if (need_local_invocation_index && !has_local_invocation_index) { uint32_t offset = ir.increase_bound_by(2); @@ -835,7 +899,7 @@ void CompilerMSL::build_implicit_builtins() swizzle_buffer_id = var_id; } - if (!buffers_requiring_array_length.empty()) + if (needs_buffer_size_buffer()) { uint32_t var_id = build_constant_uint_array_pointer(); set_name(var_id, "spvBufferSizeConstants"); @@ -870,21 +934,43 @@ void CompilerMSL::build_implicit_builtins() } // If we're returning a struct from a vertex-like entry point, we must return a position attribute. - bool need_position = - (get_execution_model() == ExecutionModelVertex || - get_execution_model() == ExecutionModelTessellationEvaluation) && - !capture_output_to_buffer && !get_is_rasterization_disabled() && - !active_output_builtins.get(BuiltInPosition); + bool need_position = (get_execution_model() == ExecutionModelVertex || is_tese_shader()) && + !capture_output_to_buffer && !get_is_rasterization_disabled() && + !active_output_builtins.get(BuiltInPosition); if (need_position) { // If we can get away with returning void from entry point, we don't need to care. - // If there is at least one other stage output, we need to return [[position]]. - need_position = false; + // If there is at least one other stage output, we need to return [[position]], + // so we need to create one if it doesn't appear in the SPIR-V. Before adding the + // implicit variable, check if it actually exists already, but just has not been used + // or initialized, and if so, mark it as active, and do not create the implicit variable. + bool has_output = false; ir.for_each_typed_id([&](uint32_t, SPIRVariable &var) { if (var.storage == StorageClassOutput && interface_variable_exists_in_entry_point(var.self)) - need_position = true; + { + has_output = true; + + // Check if the var is the Position builtin + if (has_decoration(var.self, DecorationBuiltIn) && get_decoration(var.self, DecorationBuiltIn) == BuiltInPosition) + active_output_builtins.set(BuiltInPosition); + + // If the var is a struct, check if any members is the Position builtin + auto &var_type = get_variable_element_type(var); + if (var_type.basetype == SPIRType::Struct) + { + auto mbr_cnt = var_type.member_types.size(); + for (uint32_t mbr_idx = 0; mbr_idx < mbr_cnt; mbr_idx++) + { + auto builtin = BuiltInMax; + bool is_builtin = is_member_builtin(var_type, mbr_idx, &builtin); + if (is_builtin && builtin == BuiltInPosition) + active_output_builtins.set(BuiltInPosition); + } + } + } }); + need_position = has_output && !active_output_builtins.get(BuiltInPosition); } if (need_position) @@ -1040,7 +1126,7 @@ SPIRType &CompilerMSL::get_patch_stage_out_struct_type() std::string CompilerMSL::get_tess_factor_struct_name() { - if (get_entry_point().flags.get(ExecutionModeTriangles)) + if (is_tessellating_triangles()) return "MTLTriangleTessellationFactorsHalf"; return "MTLQuadTessellationFactorsHalf"; } @@ -1226,7 +1312,7 @@ void CompilerMSL::emit_entry_point_declarations() else { is_using_builtin_array = true; - statement(get_argument_address_space(var), " ", type_to_glsl(type), "* ", to_restrict(var_id), name, + statement(get_argument_address_space(var), " ", type_to_glsl(type), "* ", to_restrict(var_id, true), name, type_to_array_glsl(type), " ="); uint32_t dim = uint32_t(type.array.size()); @@ -1261,7 +1347,7 @@ void CompilerMSL::emit_entry_point_declarations() } else { - statement(get_argument_address_space(var), " auto& ", to_restrict(var_id), name, " = *(", + statement(get_argument_address_space(var), " auto& ", to_restrict(var_id, true), name, " = *(", get_argument_address_space(var), " ", type_to_glsl(type), "* ", to_restrict(var_id, false), ")((", get_argument_address_space(var), " char* ", to_restrict(var_id, false), ")", to_name(arg_id), ".", ensure_valid_name(name, "m"), " + ", to_name(dynamic_offsets_buffer_id), "[", base_index, "]);"); @@ -1269,13 +1355,13 @@ void CompilerMSL::emit_entry_point_declarations() } // Emit buffer arrays here. - for (uint32_t array_id : buffer_arrays) + for (uint32_t array_id : buffer_arrays_discrete) { const auto &var = get(array_id); const auto &type = get_variable_data_type(var); const auto &buffer_type = get_variable_element_type(var); string name = to_name(array_id); - statement(get_argument_address_space(var), " ", type_to_glsl(buffer_type), "* ", to_restrict(array_id), name, + statement(get_argument_address_space(var), " ", type_to_glsl(buffer_type), "* ", to_restrict(array_id, true), name, "[] ="); begin_scope(); for (uint32_t i = 0; i < to_array_size_literal(type); ++i) @@ -1283,8 +1369,57 @@ void CompilerMSL::emit_entry_point_declarations() end_scope_decl(); statement_no_indent(""); } - // For some reason, without this, we end up emitting the arrays twice. - buffer_arrays.clear(); + // Discrete descriptors are processed in entry point emission every compiler iteration. + buffer_arrays_discrete.clear(); + + // Emit buffer aliases here. + for (auto &var_id : buffer_aliases_discrete) + { + const auto &var = get(var_id); + const auto &type = get_variable_data_type(var); + auto addr_space = get_argument_address_space(var); + auto name = to_name(var_id); + + uint32_t desc_set = get_decoration(var_id, DecorationDescriptorSet); + uint32_t desc_binding = get_decoration(var_id, DecorationBinding); + auto alias_name = join("spvBufferAliasSet", desc_set, "Binding", desc_binding); + + statement(addr_space, " auto& ", to_restrict(var_id, true), + name, + " = *(", addr_space, " ", type_to_glsl(type), "*)", alias_name, ";"); + } + // Discrete descriptors are processed in entry point emission every compiler iteration. + buffer_aliases_discrete.clear(); + + for (auto &var_pair : buffer_aliases_argument) + { + uint32_t var_id = var_pair.first; + uint32_t alias_id = var_pair.second; + + const auto &var = get(var_id); + const auto &type = get_variable_data_type(var); + auto addr_space = get_argument_address_space(var); + + if (type.array.empty()) + { + statement(addr_space, " auto& ", to_restrict(var_id, true), to_name(var_id), " = (", addr_space, " ", + type_to_glsl(type), "&)", ir.meta[alias_id].decoration.qualified_alias, ";"); + } + else + { + const char *desc_addr_space = descriptor_address_space(var_id, var.storage, "thread"); + + // Esoteric type cast. Reference to array of pointers. + // Auto here defers to UBO or SSBO. The address space of the reference needs to refer to the + // address space of the argument buffer itself, which is usually constant, but can be const device for + // large argument buffers. + is_using_builtin_array = true; + statement(desc_addr_space, " auto& ", to_restrict(var_id, true), to_name(var_id), " = (", addr_space, " ", + type_to_glsl(type), "* ", desc_addr_space, " (&)", + type_to_array_glsl(type), ")", ir.meta[alias_id].decoration.qualified_alias, ";"); + is_using_builtin_array = false; + } + } // Emit disabled fragment outputs. std::sort(disabled_frag_outputs.begin(), disabled_frag_outputs.end()); @@ -1317,8 +1452,6 @@ string CompilerMSL::compile() backend.basic_uint8_type = "uchar"; backend.basic_int16_type = "short"; backend.basic_uint16_type = "ushort"; - backend.discard_literal = "discard_fragment()"; - backend.demote_literal = "discard_fragment()"; backend.boolean_mix_function = "select"; backend.swizzle_is_function = false; backend.shared_is_implied = false; @@ -1333,13 +1466,15 @@ string CompilerMSL::compile() backend.nonuniform_qualifier = ""; backend.support_small_type_sampling_result = true; backend.supports_empty_struct = true; + backend.support_64bit_switch = true; // Allow Metal to use the array template unless we force it off. backend.can_return_array = !msl_options.force_native_arrays; backend.array_is_value_type = !msl_options.force_native_arrays; - // Arrays which are part of buffer objects are never considered to be native arrays. - backend.buffer_offset_array_is_value_type = false; + // Arrays which are part of buffer objects are never considered to be value types (just plain C-style). + backend.array_is_value_type_in_buffer_blocks = false; backend.support_pointer_to_pointer = true; + backend.implicit_c_integer_promotion_rules = true; capture_output_to_buffer = msl_options.capture_output_to_buffer; is_rasterization_disabled = msl_options.disable_rasterization || capture_output_to_buffer; @@ -1348,6 +1483,7 @@ string CompilerMSL::compile() for (auto &id : next_metal_resource_ids) id = 0; + fixup_anonymous_struct_names(); fixup_type_alias(); replace_illegal_names(); sync_entry_point_aliases_and_names(); @@ -1360,6 +1496,20 @@ string CompilerMSL::compile() preprocess_op_codes(); build_implicit_builtins(); + if (needs_manual_helper_invocation_updates() && + (active_input_builtins.get(BuiltInHelperInvocation) || needs_helper_invocation)) + { + string discard_expr = + join(builtin_to_glsl(BuiltInHelperInvocation, StorageClassInput), " = true, discard_fragment()"); + backend.discard_literal = discard_expr; + backend.demote_literal = discard_expr; + } + else + { + backend.discard_literal = "discard_fragment()"; + backend.demote_literal = "discard_fragment()"; + } + fixup_image_load_store_access(); set_enabled_interface_variables(get_active_interface_variables()); @@ -1367,19 +1517,19 @@ string CompilerMSL::compile() activate_argument_buffer_resources(); if (swizzle_buffer_id) - active_interface_variables.insert(swizzle_buffer_id); + add_active_interface_variable(swizzle_buffer_id); if (buffer_size_buffer_id) - active_interface_variables.insert(buffer_size_buffer_id); + add_active_interface_variable(buffer_size_buffer_id); if (view_mask_buffer_id) - active_interface_variables.insert(view_mask_buffer_id); + add_active_interface_variable(view_mask_buffer_id); if (dynamic_offsets_buffer_id) - active_interface_variables.insert(dynamic_offsets_buffer_id); + add_active_interface_variable(dynamic_offsets_buffer_id); if (builtin_layer_id) - active_interface_variables.insert(builtin_layer_id); + add_active_interface_variable(builtin_layer_id); if (builtin_dispatch_base_id && !msl_options.supports_msl_version(1, 2)) - active_interface_variables.insert(builtin_dispatch_base_id); + add_active_interface_variable(builtin_dispatch_base_id); if (builtin_sample_mask_id) - active_interface_variables.insert(builtin_sample_mask_id); + add_active_interface_variable(builtin_sample_mask_id); // Create structs to hold input, output and uniform variables. // Do output first to ensure out. is declared at top of entry function. @@ -1387,10 +1537,10 @@ string CompilerMSL::compile() stage_out_var_id = add_interface_block(StorageClassOutput); patch_stage_out_var_id = add_interface_block(StorageClassOutput, true); stage_in_var_id = add_interface_block(StorageClassInput); - if (get_execution_model() == ExecutionModelTessellationEvaluation) + if (is_tese_shader()) patch_stage_in_var_id = add_interface_block(StorageClassInput, true); - if (get_execution_model() == ExecutionModelTessellationControl) + if (is_tesc_shader()) stage_out_ptr_var_id = add_interface_block_pointer(stage_out_var_id, StorageClassOutput); if (is_tessellation_shader()) stage_in_ptr_var_id = add_interface_block_pointer(stage_in_var_id, StorageClassInput); @@ -1423,10 +1573,7 @@ string CompilerMSL::compile() uint32_t pass_count = 0; do { - if (pass_count >= 3) - SPIRV_CROSS_THROW("Over 3 compilation loops detected. Must be a bug!"); - - reset(); + reset(pass_count); // Start bindings at zero. next_metal_resource_index_buffer = 0; @@ -1440,9 +1587,9 @@ string CompilerMSL::compile() emit_header(); emit_custom_templates(); + emit_custom_functions(); emit_specialization_constants_and_structs(); emit_resources(); - emit_custom_functions(); emit_function(get(ir.default_entry_point), Bitset()); pass_count++; @@ -1467,13 +1614,13 @@ void CompilerMSL::preprocess_op_codes() // Before MSL 2.1 (2.2 for textures), Metal vertex functions that write to // resources must disable rasterization and return void. - if (preproc.uses_resource_write) + if ((preproc.uses_buffer_write && !msl_options.supports_msl_version(2, 1)) || + (preproc.uses_image_write && !msl_options.supports_msl_version(2, 2))) is_rasterization_disabled = true; // Tessellation control shaders are run as compute functions in Metal, and so // must capture their output to a buffer. - if (get_execution_model() == ExecutionModelTessellationControl || - (get_execution_model() == ExecutionModelVertex && msl_options.vertex_for_tessellation)) + if (is_tesc_shader() || (get_execution_model() == ExecutionModelVertex && msl_options.vertex_for_tessellation)) { is_rasterization_disabled = true; capture_output_to_buffer = true; @@ -1488,8 +1635,37 @@ void CompilerMSL::preprocess_op_codes() // that function would add gl_FragCoord. if (preproc.needs_sample_id || msl_options.force_sample_rate_shading || (is_sample_rate() && (active_input_builtins.get(BuiltInFragCoord) || - (need_subpass_input && !msl_options.use_framebuffer_fetch_subpasses)))) + (need_subpass_input_ms && !msl_options.use_framebuffer_fetch_subpasses)))) needs_sample_id = true; + if (preproc.needs_helper_invocation) + needs_helper_invocation = true; + + // OpKill is removed by the parser, so we need to identify those by inspecting + // blocks. + ir.for_each_typed_id([&preproc](uint32_t, SPIRBlock &block) { + if (block.terminator == SPIRBlock::Kill) + preproc.uses_discard = true; + }); + + // Fragment shaders that both write to storage resources and discard fragments + // need checks on the writes, to work around Metal allowing these writes despite + // the fragment being dead. + if (msl_options.check_discarded_frag_stores && preproc.uses_discard && + (preproc.uses_buffer_write || preproc.uses_image_write)) + { + frag_shader_needs_discard_checks = true; + needs_helper_invocation = true; + // Fragment discard store checks imply manual HelperInvocation updates. + msl_options.manual_helper_invocation_updates = true; + } + + if (is_intersection_query()) + { + add_header_line("#if __METAL_VERSION__ >= 230"); + add_header_line("#include "); + add_header_line("using namespace metal::raytracing;"); + add_header_line("#endif"); + } } // Move the Private and Workgroup global variables to the entry function. @@ -1520,6 +1696,30 @@ void CompilerMSL::extract_global_variables_from_functions() // Uniforms unordered_set global_var_ids; ir.for_each_typed_id([&](uint32_t, SPIRVariable &var) { + // Some builtins resolve directly to a function call which does not need any declared variables. + // Skip these. + if (var.storage == StorageClassInput && has_decoration(var.self, DecorationBuiltIn)) + { + auto bi_type = BuiltIn(get_decoration(var.self, DecorationBuiltIn)); + if (bi_type == BuiltInHelperInvocation && !needs_manual_helper_invocation_updates()) + return; + if (bi_type == BuiltInHelperInvocation && needs_manual_helper_invocation_updates()) + { + if (msl_options.is_ios() && !msl_options.supports_msl_version(2, 3)) + SPIRV_CROSS_THROW("simd_is_helper_thread() requires version 2.3 on iOS."); + else if (msl_options.is_macos() && !msl_options.supports_msl_version(2, 1)) + SPIRV_CROSS_THROW("simd_is_helper_thread() requires version 2.1 on macOS."); + // Make sure this is declared and initialized. + // Force this to have the proper name. + set_name(var.self, builtin_to_glsl(BuiltInHelperInvocation, StorageClassInput)); + auto &entry_func = this->get(ir.default_entry_point); + entry_func.add_local_variable(var.self); + vars_needing_early_declaration.push_back(var.self); + entry_func.fixup_hooks_in.push_back([this, &var]() + { statement(to_name(var.self), " = simd_is_helper_thread();"); }); + } + } + if (var.storage == StorageClassInput || var.storage == StorageClassOutput || var.storage == StorageClassUniform || var.storage == StorageClassUniformConstant || var.storage == StorageClassPushConstant || var.storage == StorageClassStorageBuffer) @@ -1633,6 +1833,9 @@ void CompilerMSL::extract_global_variables_from_function(uint32_t func_id, std:: if (global_var_ids.find(rvalue_id) != global_var_ids.end()) added_arg_ids.insert(rvalue_id); + if (needs_frag_discard_checks()) + added_arg_ids.insert(builtin_helper_invocation_id); + break; } @@ -1647,6 +1850,26 @@ void CompilerMSL::extract_global_variables_from_function(uint32_t func_id, std:: break; } + case OpAtomicExchange: + case OpAtomicCompareExchange: + case OpAtomicStore: + case OpAtomicIIncrement: + case OpAtomicIDecrement: + case OpAtomicIAdd: + case OpAtomicFAddEXT: + case OpAtomicISub: + case OpAtomicSMin: + case OpAtomicUMin: + case OpAtomicSMax: + case OpAtomicUMax: + case OpAtomicAnd: + case OpAtomicOr: + case OpAtomicXor: + case OpImageWrite: + if (needs_frag_discard_checks()) + added_arg_ids.insert(builtin_helper_invocation_id); + break; + // Emulate texture2D atomic operations case OpImageTexelPointer: { @@ -1680,6 +1903,16 @@ void CompilerMSL::extract_global_variables_from_function(uint32_t func_id, std:: added_arg_ids.insert(stage_in_var_id); break; } + + case GLSLstd450Modf: + case GLSLstd450Frexp: + { + uint32_t base_id = ops[5]; + if (global_var_ids.find(base_id) != global_var_ids.end()) + added_arg_ids.insert(base_id); + break; + } + default: break; } @@ -1718,10 +1951,64 @@ void CompilerMSL::extract_global_variables_from_function(uint32_t func_id, std:: break; } + case OpDemoteToHelperInvocation: + if (needs_manual_helper_invocation_updates() && + (active_input_builtins.get(BuiltInHelperInvocation) || needs_helper_invocation)) + added_arg_ids.insert(builtin_helper_invocation_id); + break; + + case OpIsHelperInvocationEXT: + if (needs_manual_helper_invocation_updates()) + added_arg_ids.insert(builtin_helper_invocation_id); + break; + + case OpRayQueryInitializeKHR: + case OpRayQueryProceedKHR: + case OpRayQueryTerminateKHR: + case OpRayQueryGenerateIntersectionKHR: + case OpRayQueryConfirmIntersectionKHR: + { + // Ray query accesses memory directly, need check pass down object if using Private storage class. + uint32_t base_id = ops[0]; + if (global_var_ids.find(base_id) != global_var_ids.end()) + added_arg_ids.insert(base_id); + break; + } + + case OpRayQueryGetRayTMinKHR: + case OpRayQueryGetRayFlagsKHR: + case OpRayQueryGetWorldRayOriginKHR: + case OpRayQueryGetWorldRayDirectionKHR: + case OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: + case OpRayQueryGetIntersectionTypeKHR: + case OpRayQueryGetIntersectionTKHR: + case OpRayQueryGetIntersectionInstanceCustomIndexKHR: + case OpRayQueryGetIntersectionInstanceIdKHR: + case OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: + case OpRayQueryGetIntersectionGeometryIndexKHR: + case OpRayQueryGetIntersectionPrimitiveIndexKHR: + case OpRayQueryGetIntersectionBarycentricsKHR: + case OpRayQueryGetIntersectionFrontFaceKHR: + case OpRayQueryGetIntersectionObjectRayDirectionKHR: + case OpRayQueryGetIntersectionObjectRayOriginKHR: + case OpRayQueryGetIntersectionObjectToWorldKHR: + case OpRayQueryGetIntersectionWorldToObjectKHR: + { + // Ray query accesses memory directly, need check pass down object if using Private storage class. + uint32_t base_id = ops[2]; + if (global_var_ids.find(base_id) != global_var_ids.end()) + added_arg_ids.insert(base_id); + break; + } + default: break; } + if (needs_manual_helper_invocation_updates() && b.terminator == SPIRBlock::Kill && + (active_input_builtins.get(BuiltInHelperInvocation) || needs_helper_invocation)) + added_arg_ids.insert(builtin_helper_invocation_id); + // TODO: Add all other operations which can affect memory. // We should consider a more unified system here to reduce boiler-plate. // This kind of analysis is done in several places ... @@ -1748,9 +2035,8 @@ void CompilerMSL::extract_global_variables_from_function(uint32_t func_id, std:: bool is_patch = has_decoration(arg_id, DecorationPatch) || is_patch_block(*p_type); bool is_block = has_decoration(p_type->self, DecorationBlock); bool is_control_point_storage = - !is_patch && - ((is_tessellation_shader() && var.storage == StorageClassInput) || - (get_execution_model() == ExecutionModelTessellationControl && var.storage == StorageClassOutput)); + !is_patch && ((is_tessellation_shader() && var.storage == StorageClassInput) || + (is_tesc_shader() && var.storage == StorageClassOutput)); bool is_patch_block_storage = is_patch && is_block && var.storage == StorageClassOutput; bool is_builtin = is_builtin_variable(var); bool variable_is_stage_io = @@ -1766,8 +2052,8 @@ void CompilerMSL::extract_global_variables_from_function(uint32_t func_id, std:: if (is_redirected_to_global_stage_io) { - // Tessellation control shaders see inputs and per-vertex outputs as arrays. - // Similarly, tessellation evaluation shaders see per-vertex inputs as arrays. + // Tessellation control shaders see inputs and per-point outputs as arrays. + // Similarly, tessellation evaluation shaders see per-point inputs as arrays. // We collected them into a structure; we must pass the array of this // structure to the function. std::string name; @@ -1790,10 +2076,6 @@ void CompilerMSL::extract_global_variables_from_function(uint32_t func_id, std:: } } - // Tessellation control shaders see inputs and per-vertex outputs as arrays. - // Similarly, tessellation evaluation shaders see per-vertex inputs as arrays. - // We collected them into a structure; we must pass the array of this - // structure to the function. if (var.storage == StorageClassInput) { auto &added_in = is_patch ? patch_added_in : control_point_added_in; @@ -1817,6 +2099,8 @@ void CompilerMSL::extract_global_variables_from_function(uint32_t func_id, std:: set(next_id, type_id, StorageClassFunction, 0, arg_id); set_name(next_id, name); + if (is_tese_shader() && msl_options.raw_buffer_tese_input && var.storage == StorageClassInput) + set_decoration(next_id, DecorationNonWritable); } else if (is_builtin && has_decoration(p_type->self, DecorationBlock)) { @@ -1880,6 +2164,20 @@ void CompilerMSL::mark_packable_structs() (has_decoration(type.self, DecorationBlock) || has_decoration(type.self, DecorationBufferBlock))) mark_as_packable(type); } + + if (var.storage == StorageClassWorkgroup) + { + auto *type = &this->get(var.basetype); + if (type->basetype == SPIRType::Struct) + mark_as_workgroup_struct(*type); + } + }); + + // Physical storage buffer pointers can appear outside of the context of a variable, if the address + // is calculated from a ulong or uvec2 and cast to a pointer, so check if they need to be packed too. + ir.for_each_typed_id([&](uint32_t, SPIRType &type) { + if (type.basetype == SPIRType::Struct && type.pointer && type.storage == StorageClassPhysicalStorageBuffer) + mark_as_packable(type); }); } @@ -1894,7 +2192,8 @@ void CompilerMSL::mark_as_packable(SPIRType &type) return; } - if (type.basetype == SPIRType::Struct) + // Handle possible recursion when a struct contains a pointer to its own type nested somewhere. + if (type.basetype == SPIRType::Struct && !has_extended_decoration(type.self, SPIRVCrossDecorationBufferBlockRepacked)) { set_extended_decoration(type.self, SPIRVCrossDecorationBufferBlockRepacked); @@ -1914,19 +2213,63 @@ void CompilerMSL::mark_as_packable(SPIRType &type) } } +// If the specified type is a struct, it and any nested structs +// are marked as used with workgroup storage using the SPIRVCrossDecorationWorkgroupStruct decoration. +void CompilerMSL::mark_as_workgroup_struct(SPIRType &type) +{ + // If this is not the base type (eg. it's a pointer or array), tunnel down + if (type.parent_type) + { + mark_as_workgroup_struct(get(type.parent_type)); + return; + } + + // Handle possible recursion when a struct contains a pointer to its own type nested somewhere. + if (type.basetype == SPIRType::Struct && !has_extended_decoration(type.self, SPIRVCrossDecorationWorkgroupStruct)) + { + set_extended_decoration(type.self, SPIRVCrossDecorationWorkgroupStruct); + + // Recurse + uint32_t mbr_cnt = uint32_t(type.member_types.size()); + for (uint32_t mbr_idx = 0; mbr_idx < mbr_cnt; mbr_idx++) + { + uint32_t mbr_type_id = type.member_types[mbr_idx]; + auto &mbr_type = get(mbr_type_id); + mark_as_workgroup_struct(mbr_type); + if (mbr_type.type_alias) + { + auto &mbr_type_alias = get(mbr_type.type_alias); + mark_as_workgroup_struct(mbr_type_alias); + } + } + } +} + // If a shader input exists at the location, it is marked as being used by this shader void CompilerMSL::mark_location_as_used_by_shader(uint32_t location, const SPIRType &type, StorageClass storage, bool fallback) { - if (storage != StorageClassInput) - return; - uint32_t count = type_to_location_count(type); - for (uint32_t i = 0; i < count; i++) + switch (storage) { - location_inputs_in_use.insert(location + i); - if (fallback) - location_inputs_in_use_fallback.insert(location + i); + case StorageClassInput: + for (uint32_t i = 0; i < count; i++) + { + location_inputs_in_use.insert(location + i); + if (fallback) + location_inputs_in_use_fallback.insert(location + i); + } + break; + case StorageClassOutput: + for (uint32_t i = 0; i < count; i++) + { + location_outputs_in_use.insert(location + i); + if (fallback) + location_outputs_in_use_fallback.insert(location + i); + } + break; + default: + return; } } @@ -2022,7 +2365,7 @@ bool CompilerMSL::add_component_variable_to_interface_block(spv::StorageClass st if (pad_fragment_output) { uint32_t locn = get_decoration(var.self, DecorationLocation); - num_components = std::max(num_components, get_target_components_for_fragment_location(locn)); + num_components = max(num_components, get_target_components_for_fragment_location(locn)); } // We have already declared an IO block member as m_location_N. @@ -2202,9 +2545,10 @@ void CompilerMSL::add_plain_variable_to_interface_block(StorageClass storage, co if (get_decoration_bitset(var.self).get(DecorationLocation)) { uint32_t locn = get_decoration(var.self, DecorationLocation); + uint32_t comp = get_decoration(var.self, DecorationComponent); if (storage == StorageClassInput) { - type_id = ensure_correct_input_type(var.basetype, locn, 0, meta.strip_array); + type_id = ensure_correct_input_type(var.basetype, locn, comp, 0, meta.strip_array); var.basetype = type_id; type_id = get_pointee_type_id(type_id); @@ -2216,14 +2560,22 @@ void CompilerMSL::add_plain_variable_to_interface_block(StorageClass storage, co ib_type.member_types[ib_mbr_idx] = type_id; } set_member_decoration(ib_type.self, ib_mbr_idx, DecorationLocation, locn); + if (comp) + set_member_decoration(ib_type.self, ib_mbr_idx, DecorationComponent, comp); mark_location_as_used_by_shader(locn, get(type_id), storage); } - else if (is_builtin && is_tessellation_shader() && inputs_by_builtin.count(builtin)) + else if (is_builtin && is_tessellation_shader() && storage == StorageClassInput && inputs_by_builtin.count(builtin)) { uint32_t locn = inputs_by_builtin[builtin].location; set_member_decoration(ib_type.self, ib_mbr_idx, DecorationLocation, locn); mark_location_as_used_by_shader(locn, type, storage); } + else if (is_builtin && capture_output_to_buffer && storage == StorageClassOutput && outputs_by_builtin.count(builtin)) + { + uint32_t locn = outputs_by_builtin[builtin].location; + set_member_decoration(ib_type.self, ib_mbr_idx, DecorationLocation, locn); + mark_location_as_used_by_shader(locn, type, storage); + } if (get_decoration_bitset(var.self).get(DecorationComponent)) { @@ -2371,8 +2723,8 @@ void CompilerMSL::add_composite_variable_to_interface_block(StorageClass storage uint32_t comp = get_decoration(var.self, DecorationComponent); if (storage == StorageClassInput) { - var.basetype = ensure_correct_input_type(var.basetype, locn, 0, meta.strip_array); - uint32_t mbr_type_id = ensure_correct_input_type(usable_type->self, locn, 0, meta.strip_array); + var.basetype = ensure_correct_input_type(var.basetype, locn, comp, 0, meta.strip_array); + uint32_t mbr_type_id = ensure_correct_input_type(usable_type->self, locn, comp, 0, meta.strip_array); if (storage == StorageClassInput && pull_model_inputs.count(var.self)) ib_type.member_types[ib_mbr_idx] = build_msl_interpolant_type(mbr_type_id, is_noperspective); else @@ -2383,12 +2735,18 @@ void CompilerMSL::add_composite_variable_to_interface_block(StorageClass storage set_member_decoration(ib_type.self, ib_mbr_idx, DecorationComponent, comp); mark_location_as_used_by_shader(locn, *usable_type, storage); } - else if (is_builtin && is_tessellation_shader() && inputs_by_builtin.count(builtin)) + else if (is_builtin && is_tessellation_shader() && storage == StorageClassInput && inputs_by_builtin.count(builtin)) { uint32_t locn = inputs_by_builtin[builtin].location + i; set_member_decoration(ib_type.self, ib_mbr_idx, DecorationLocation, locn); mark_location_as_used_by_shader(locn, *usable_type, storage); } + else if (is_builtin && capture_output_to_buffer && storage == StorageClassOutput && outputs_by_builtin.count(builtin)) + { + uint32_t locn = outputs_by_builtin[builtin].location + i; + set_member_decoration(ib_type.self, ib_mbr_idx, DecorationLocation, locn); + mark_location_as_used_by_shader(locn, *usable_type, storage); + } else if (is_builtin && (builtin == BuiltInClipDistance || builtin == BuiltInCullDistance)) { // Declare the Clip/CullDistance as [[user(clip/cullN)]]. @@ -2467,12 +2825,15 @@ void CompilerMSL::add_composite_variable_to_interface_block(StorageClass storage } } -void CompilerMSL::add_composite_member_variable_to_interface_block(StorageClass storage, const string &ib_var_ref, - SPIRType &ib_type, SPIRVariable &var, - uint32_t mbr_idx, InterfaceBlockMeta &meta) +void CompilerMSL::add_composite_member_variable_to_interface_block(StorageClass storage, + const string &ib_var_ref, SPIRType &ib_type, + SPIRVariable &var, SPIRType &var_type, + uint32_t mbr_idx, InterfaceBlockMeta &meta, + const string &mbr_name_qual, + const string &var_chain_qual, + uint32_t &location, uint32_t &var_mbr_idx) { auto &entry_func = get(ir.default_entry_point); - auto &var_type = meta.strip_array ? get_variable_element_type(var) : get_variable_data_type(var); BuiltIn builtin = BuiltInMax; bool is_builtin = is_member_builtin(var_type, mbr_idx, &builtin); @@ -2487,13 +2848,15 @@ void CompilerMSL::add_composite_member_variable_to_interface_block(StorageClass uint32_t mbr_type_id = var_type.member_types[mbr_idx]; auto &mbr_type = get(mbr_type_id); - uint32_t elem_cnt = 0; + bool mbr_is_indexable = false; + uint32_t elem_cnt = 1; if (is_matrix(mbr_type)) { if (is_array(mbr_type)) SPIRV_CROSS_THROW("MSL cannot emit arrays-of-matrices in input and output variables."); + mbr_is_indexable = true; elem_cnt = mbr_type.columns; } else if (is_array(mbr_type)) @@ -2501,6 +2864,7 @@ void CompilerMSL::add_composite_member_variable_to_interface_block(StorageClass if (mbr_type.array.size() != 1) SPIRV_CROSS_THROW("MSL cannot emit arrays-of-arrays in input and output variables."); + mbr_is_indexable = true; elem_cnt = to_array_size_literal(mbr_type); } @@ -2531,6 +2895,27 @@ void CompilerMSL::add_composite_member_variable_to_interface_block(StorageClass return; } + // Recursively handle nested structures. + if (mbr_type.basetype == SPIRType::Struct) + { + for (uint32_t i = 0; i < elem_cnt; i++) + { + string mbr_name = append_member_name(mbr_name_qual, var_type, mbr_idx) + (mbr_is_indexable ? join("_", i) : ""); + string var_chain = join(var_chain_qual, ".", to_member_name(var_type, mbr_idx), (mbr_is_indexable ? join("[", i, "]") : "")); + uint32_t sub_mbr_cnt = uint32_t(mbr_type.member_types.size()); + for (uint32_t sub_mbr_idx = 0; sub_mbr_idx < sub_mbr_cnt; sub_mbr_idx++) + { + add_composite_member_variable_to_interface_block(storage, ib_var_ref, ib_type, + var, mbr_type, sub_mbr_idx, + meta, mbr_name, var_chain, + location, var_mbr_idx); + // FIXME: Recursive structs and tessellation breaks here. + var_mbr_idx++; + } + } + return; + } + for (uint32_t i = 0; i < elem_cnt; i++) { // Add a reference to the variable type to the interface struct. @@ -2541,26 +2926,47 @@ void CompilerMSL::add_composite_member_variable_to_interface_block(StorageClass ib_type.member_types.push_back(usable_type->self); // Give the member a name - string mbr_name = ensure_valid_name(join(to_qualified_member_name(var_type, mbr_idx), "_", i), "m"); + string mbr_name = ensure_valid_name(append_member_name(mbr_name_qual, var_type, mbr_idx) + (mbr_is_indexable ? join("_", i) : ""), "m"); set_member_name(ib_type.self, ib_mbr_idx, mbr_name); - if (has_member_decoration(var_type.self, mbr_idx, DecorationLocation)) + // Once we determine the location of the first member within nested structures, + // from a var of the topmost structure, the remaining flattened members of + // the nested structures will have consecutive location values. At this point, + // we've recursively tunnelled into structs, arrays, and matrices, and are + // down to a single location for each member now. + if (!is_builtin && location != UINT32_MAX) { - uint32_t locn = get_member_decoration(var_type.self, mbr_idx, DecorationLocation) + i; - set_member_decoration(ib_type.self, ib_mbr_idx, DecorationLocation, locn); - mark_location_as_used_by_shader(locn, *usable_type, storage); + set_member_decoration(ib_type.self, ib_mbr_idx, DecorationLocation, location); + mark_location_as_used_by_shader(location, *usable_type, storage); + location++; + } + else if (has_member_decoration(var_type.self, mbr_idx, DecorationLocation)) + { + location = get_member_decoration(var_type.self, mbr_idx, DecorationLocation) + i; + set_member_decoration(ib_type.self, ib_mbr_idx, DecorationLocation, location); + mark_location_as_used_by_shader(location, *usable_type, storage); + location++; } else if (has_decoration(var.self, DecorationLocation)) { - uint32_t locn = get_accumulated_member_location(var, mbr_idx, meta.strip_array) + i; - set_member_decoration(ib_type.self, ib_mbr_idx, DecorationLocation, locn); - mark_location_as_used_by_shader(locn, *usable_type, storage); + location = get_accumulated_member_location(var, mbr_idx, meta.strip_array) + i; + set_member_decoration(ib_type.self, ib_mbr_idx, DecorationLocation, location); + mark_location_as_used_by_shader(location, *usable_type, storage); + location++; } - else if (is_builtin && is_tessellation_shader() && inputs_by_builtin.count(builtin)) + else if (is_builtin && is_tessellation_shader() && storage == StorageClassInput && inputs_by_builtin.count(builtin)) { - uint32_t locn = inputs_by_builtin[builtin].location + i; - set_member_decoration(ib_type.self, ib_mbr_idx, DecorationLocation, locn); - mark_location_as_used_by_shader(locn, *usable_type, storage); + location = inputs_by_builtin[builtin].location + i; + set_member_decoration(ib_type.self, ib_mbr_idx, DecorationLocation, location); + mark_location_as_used_by_shader(location, *usable_type, storage); + location++; + } + else if (is_builtin && capture_output_to_buffer && storage == StorageClassOutput && outputs_by_builtin.count(builtin)) + { + location = outputs_by_builtin[builtin].location + i; + set_member_decoration(ib_type.self, ib_mbr_idx, DecorationLocation, location); + mark_location_as_used_by_shader(location, *usable_type, storage); + location++; } else if (is_builtin && (builtin == BuiltInClipDistance || builtin == BuiltInCullDistance)) { @@ -2570,7 +2976,7 @@ void CompilerMSL::add_composite_member_variable_to_interface_block(StorageClass } if (has_member_decoration(var_type.self, mbr_idx, DecorationComponent)) - SPIRV_CROSS_THROW("DecorationComponent on matrices and arrays make little sense."); + SPIRV_CROSS_THROW("DecorationComponent on matrices and arrays is not supported."); if (storage != StorageClassInput || !pull_model_inputs.count(var.self)) { @@ -2586,47 +2992,36 @@ void CompilerMSL::add_composite_member_variable_to_interface_block(StorageClass } set_extended_member_decoration(ib_type.self, ib_mbr_idx, SPIRVCrossDecorationInterfaceOrigID, var.self); - set_extended_member_decoration(ib_type.self, ib_mbr_idx, SPIRVCrossDecorationInterfaceMemberIndex, mbr_idx); + set_extended_member_decoration(ib_type.self, ib_mbr_idx, SPIRVCrossDecorationInterfaceMemberIndex, var_mbr_idx); // Unflatten or flatten from [[stage_in]] or [[stage_out]] as appropriate. if (!meta.strip_array && meta.allow_local_declaration) { + string var_chain = join(var_chain_qual, ".", to_member_name(var_type, mbr_idx), (mbr_is_indexable ? join("[", i, "]") : "")); switch (storage) { case StorageClassInput: - entry_func.fixup_hooks_in.push_back([=, &var, &var_type]() { + entry_func.fixup_hooks_in.push_back([=, &var]() { + string lerp_call; if (pull_model_inputs.count(var.self)) { - string lerp_call; if (is_centroid) lerp_call = ".interpolate_at_centroid()"; else if (is_sample) lerp_call = join(".interpolate_at_sample(", to_expression(builtin_sample_id_id), ")"); else lerp_call = ".interpolate_at_center()"; - statement(to_name(var.self), ".", to_member_name(var_type, mbr_idx), "[", i, "] = ", ib_var_ref, - ".", mbr_name, lerp_call, ";"); - } - else - { - statement(to_name(var.self), ".", to_member_name(var_type, mbr_idx), "[", i, "] = ", ib_var_ref, - ".", mbr_name, ";"); } + statement(var_chain, " = ", ib_var_ref, ".", mbr_name, lerp_call, ";"); }); break; case StorageClassOutput: - entry_func.fixup_hooks_out.push_back([=, &var, &var_type]() { + entry_func.fixup_hooks_out.push_back([=]() { if (flatten_from_ib_var) - { - statement(ib_var_ref, ".", mbr_name, " = ", ib_var_ref, ".", flatten_from_ib_mbr_name, "[", i, - "];"); - } + statement(ib_var_ref, ".", mbr_name, " = ", ib_var_ref, ".", flatten_from_ib_mbr_name, "[", i, "];"); else - { - statement(ib_var_ref, ".", mbr_name, " = ", to_name(var.self), ".", - to_member_name(var_type, mbr_idx), "[", i, "];"); - } + statement(ib_var_ref, ".", mbr_name, " = ", var_chain, ";"); }); break; @@ -2637,11 +3032,14 @@ void CompilerMSL::add_composite_member_variable_to_interface_block(StorageClass } } -void CompilerMSL::add_plain_member_variable_to_interface_block(StorageClass storage, const string &ib_var_ref, - SPIRType &ib_type, SPIRVariable &var, uint32_t mbr_idx, - InterfaceBlockMeta &meta) +void CompilerMSL::add_plain_member_variable_to_interface_block(StorageClass storage, + const string &ib_var_ref, SPIRType &ib_type, + SPIRVariable &var, SPIRType &var_type, + uint32_t mbr_idx, InterfaceBlockMeta &meta, + const string &mbr_name_qual, + const string &var_chain_qual, + uint32_t &location, uint32_t &var_mbr_idx) { - auto &var_type = meta.strip_array ? get_variable_element_type(var) : get_variable_data_type(var); auto &entry_func = get(ir.default_entry_point); BuiltIn builtin = BuiltInMax; @@ -2666,7 +3064,7 @@ void CompilerMSL::add_plain_member_variable_to_interface_block(StorageClass stor ib_type.member_types.push_back(mbr_type_id); // Give the member a name - string mbr_name = ensure_valid_name(to_qualified_member_name(var_type, mbr_idx), "m"); + string mbr_name = ensure_valid_name(append_member_name(mbr_name_qual, var_type, mbr_idx), "m"); set_member_name(ib_type.self, ib_mbr_idx, mbr_name); // Update the original variable reference to include the structure reference @@ -2683,7 +3081,7 @@ void CompilerMSL::add_plain_member_variable_to_interface_block(StorageClass stor } bool flatten_stage_out = false; - + string var_chain = var_chain_qual + "." + to_member_name(var_type, mbr_idx); if (is_builtin && !meta.strip_array) { // For the builtin gl_PerVertex, we cannot treat it as a block anyways, @@ -2696,15 +3094,15 @@ void CompilerMSL::add_plain_member_variable_to_interface_block(StorageClass stor switch (storage) { case StorageClassInput: - entry_func.fixup_hooks_in.push_back([=, &var, &var_type]() { - statement(to_name(var.self), ".", to_member_name(var_type, mbr_idx), " = ", qual_var_name, ";"); + entry_func.fixup_hooks_in.push_back([=]() { + statement(var_chain, " = ", qual_var_name, ";"); }); break; case StorageClassOutput: flatten_stage_out = true; - entry_func.fixup_hooks_out.push_back([=, &var, &var_type]() { - statement(qual_var_name, " = ", to_name(var.self), ".", to_member_name(var_type, mbr_idx), ";"); + entry_func.fixup_hooks_out.push_back([=]() { + statement(qual_var_name, " = ", var_chain, ";"); }); break; @@ -2713,47 +3111,63 @@ void CompilerMSL::add_plain_member_variable_to_interface_block(StorageClass stor } } - // Copy the variable location from the original variable to the member - if (has_member_decoration(var_type.self, mbr_idx, DecorationLocation)) + // Once we determine the location of the first member within nested structures, + // from a var of the topmost structure, the remaining flattened members of + // the nested structures will have consecutive location values. At this point, + // we've recursively tunnelled into structs, arrays, and matrices, and are + // down to a single location for each member now. + if (!is_builtin && location != UINT32_MAX) { - uint32_t locn = get_member_decoration(var_type.self, mbr_idx, DecorationLocation); + set_member_decoration(ib_type.self, ib_mbr_idx, DecorationLocation, location); + mark_location_as_used_by_shader(location, get(mbr_type_id), storage); + location += type_to_location_count(get(mbr_type_id)); + } + else if (has_member_decoration(var_type.self, mbr_idx, DecorationLocation)) + { + location = get_member_decoration(var_type.self, mbr_idx, DecorationLocation); + uint32_t comp = get_member_decoration(var_type.self, mbr_idx, DecorationComponent); if (storage == StorageClassInput) { - mbr_type_id = ensure_correct_input_type(mbr_type_id, locn, 0, meta.strip_array); + mbr_type_id = ensure_correct_input_type(mbr_type_id, location, comp, 0, meta.strip_array); var_type.member_types[mbr_idx] = mbr_type_id; if (storage == StorageClassInput && pull_model_inputs.count(var.self)) ib_type.member_types[ib_mbr_idx] = build_msl_interpolant_type(mbr_type_id, is_noperspective); else ib_type.member_types[ib_mbr_idx] = mbr_type_id; } - set_member_decoration(ib_type.self, ib_mbr_idx, DecorationLocation, locn); - mark_location_as_used_by_shader(locn, get(mbr_type_id), storage); + set_member_decoration(ib_type.self, ib_mbr_idx, DecorationLocation, location); + mark_location_as_used_by_shader(location, get(mbr_type_id), storage); + location += type_to_location_count(get(mbr_type_id)); } else if (has_decoration(var.self, DecorationLocation)) { - // The block itself might have a location and in this case, all members of the block - // receive incrementing locations. - uint32_t locn = get_accumulated_member_location(var, mbr_idx, meta.strip_array); + location = get_accumulated_member_location(var, mbr_idx, meta.strip_array); if (storage == StorageClassInput) { - mbr_type_id = ensure_correct_input_type(mbr_type_id, locn, 0, meta.strip_array); + mbr_type_id = ensure_correct_input_type(mbr_type_id, location, 0, 0, meta.strip_array); var_type.member_types[mbr_idx] = mbr_type_id; if (storage == StorageClassInput && pull_model_inputs.count(var.self)) ib_type.member_types[ib_mbr_idx] = build_msl_interpolant_type(mbr_type_id, is_noperspective); else ib_type.member_types[ib_mbr_idx] = mbr_type_id; } - set_member_decoration(ib_type.self, ib_mbr_idx, DecorationLocation, locn); - mark_location_as_used_by_shader(locn, get(mbr_type_id), storage); + set_member_decoration(ib_type.self, ib_mbr_idx, DecorationLocation, location); + mark_location_as_used_by_shader(location, get(mbr_type_id), storage); + location += type_to_location_count(get(mbr_type_id)); } - else if (is_builtin && is_tessellation_shader() && inputs_by_builtin.count(builtin)) + else if (is_builtin && is_tessellation_shader() && storage == StorageClassInput && inputs_by_builtin.count(builtin)) { - uint32_t locn = 0; - auto builtin_itr = inputs_by_builtin.find(builtin); - if (builtin_itr != end(inputs_by_builtin)) - locn = builtin_itr->second.location; - set_member_decoration(ib_type.self, ib_mbr_idx, DecorationLocation, locn); - mark_location_as_used_by_shader(locn, get(mbr_type_id), storage); + location = inputs_by_builtin[builtin].location; + set_member_decoration(ib_type.self, ib_mbr_idx, DecorationLocation, location); + mark_location_as_used_by_shader(location, get(mbr_type_id), storage); + location += type_to_location_count(get(mbr_type_id)); + } + else if (is_builtin && capture_output_to_buffer && storage == StorageClassOutput && outputs_by_builtin.count(builtin)) + { + location = outputs_by_builtin[builtin].location; + set_member_decoration(ib_type.self, ib_mbr_idx, DecorationLocation, location); + mark_location_as_used_by_shader(location, get(mbr_type_id), storage); + location += type_to_location_count(get(mbr_type_id)); } // Copy the component location, if present. @@ -2812,7 +3226,7 @@ void CompilerMSL::add_plain_member_variable_to_interface_block(StorageClass stor } set_extended_member_decoration(ib_type.self, ib_mbr_idx, SPIRVCrossDecorationInterfaceOrigID, var.self); - set_extended_member_decoration(ib_type.self, ib_mbr_idx, SPIRVCrossDecorationInterfaceMemberIndex, mbr_idx); + set_extended_member_decoration(ib_type.self, ib_mbr_idx, SPIRVCrossDecorationInterfaceMemberIndex, var_mbr_idx); } // In Metal, the tessellation levels are stored as tightly packed half-precision floating point values. @@ -2823,19 +3237,10 @@ void CompilerMSL::add_plain_member_variable_to_interface_block(StorageClass stor void CompilerMSL::add_tess_level_input_to_interface_block(const std::string &ib_var_ref, SPIRType &ib_type, SPIRVariable &var) { - auto &entry_func = get(ir.default_entry_point); auto &var_type = get_variable_element_type(var); BuiltIn builtin = BuiltIn(get_decoration(var.self, DecorationBuiltIn)); - - // Force the variable to have the proper name. - string var_name = builtin_to_glsl(builtin, StorageClassFunction); - set_name(var.self, var_name); - - // We need to declare the variable early and at entry-point scope. - entry_func.add_local_variable(var.self); - vars_needing_early_declaration.push_back(var.self); - bool triangles = get_execution_mode_bitset().get(ExecutionModeTriangles); + bool triangles = is_tessellating_triangles(); string mbr_name; // Add a reference to the variable type to the interface struct. @@ -2881,7 +3286,7 @@ void CompilerMSL::add_tess_level_input_to_interface_block(const std::string &ib_ } else { - mbr_name = var_name; + mbr_name = builtin_to_glsl(builtin, StorageClassFunction); uint32_t type_id = build_extended_vector_type(var_type.self, builtin == BuiltInTessLevelOuter ? 4 : 2); @@ -2901,27 +3306,49 @@ void CompilerMSL::add_tess_level_input_to_interface_block(const std::string &ib_ mark_locations(new_var_type); } + add_tess_level_input(ib_var_ref, mbr_name, var); +} + +void CompilerMSL::add_tess_level_input(const std::string &base_ref, const std::string &mbr_name, SPIRVariable &var) +{ + auto &entry_func = get(ir.default_entry_point); + BuiltIn builtin = BuiltIn(get_decoration(var.self, DecorationBuiltIn)); + + // Force the variable to have the proper name. + string var_name = builtin_to_glsl(builtin, StorageClassFunction); + set_name(var.self, var_name); + + // We need to declare the variable early and at entry-point scope. + entry_func.add_local_variable(var.self); + vars_needing_early_declaration.push_back(var.self); + bool triangles = is_tessellating_triangles(); + if (builtin == BuiltInTessLevelOuter) { - entry_func.fixup_hooks_in.push_back([=]() { - statement(var_name, "[0] = ", ib_var_ref, ".", mbr_name, ".x;"); - statement(var_name, "[1] = ", ib_var_ref, ".", mbr_name, ".y;"); - statement(var_name, "[2] = ", ib_var_ref, ".", mbr_name, ".z;"); - if (!triangles) - statement(var_name, "[3] = ", ib_var_ref, ".", mbr_name, ".w;"); - }); + entry_func.fixup_hooks_in.push_back( + [=]() + { + statement(var_name, "[0] = ", base_ref, ".", mbr_name, "[0];"); + statement(var_name, "[1] = ", base_ref, ".", mbr_name, "[1];"); + statement(var_name, "[2] = ", base_ref, ".", mbr_name, "[2];"); + if (!triangles) + statement(var_name, "[3] = ", base_ref, ".", mbr_name, "[3];"); + }); } else { entry_func.fixup_hooks_in.push_back([=]() { if (triangles) { - statement(var_name, "[0] = ", ib_var_ref, ".", mbr_name, ".w;"); + if (msl_options.raw_buffer_tese_input) + statement(var_name, "[0] = ", base_ref, ".", mbr_name, ";"); + else + statement(var_name, "[0] = ", base_ref, ".", mbr_name, "[3];"); } else { - statement(var_name, "[0] = ", ib_var_ref, ".", mbr_name, ".x;"); - statement(var_name, "[1] = ", ib_var_ref, ".", mbr_name, ".y;"); + statement(var_name, "[0] = ", base_ref, ".", mbr_name, "[0];"); + statement(var_name, "[1] = ", base_ref, ".", mbr_name, "[1];"); } }); } @@ -2932,7 +3359,8 @@ bool CompilerMSL::variable_storage_requires_stage_io(spv::StorageClass storage) if (storage == StorageClassOutput) return !capture_output_to_buffer; else if (storage == StorageClassInput) - return !(get_execution_model() == ExecutionModelTessellationControl && msl_options.multi_patch_workgroup); + return !(is_tesc_shader() && msl_options.multi_patch_workgroup) && + !(is_tese_shader() && msl_options.raw_buffer_tese_input); else return false; } @@ -3044,9 +3472,21 @@ void CompilerMSL::add_variable_to_interface_block(StorageClass storage, const st return; } + if (storage == StorageClassInput && has_decoration(var.self, DecorationPerVertexKHR)) + SPIRV_CROSS_THROW("PerVertexKHR decoration is not supported in MSL."); + + // If variable names alias, they will end up with wrong names in the interface struct, because + // there might be aliases in the member name cache and there would be a mismatch in fixup_in code. + // Make sure to register the variables as unique resource names ahead of time. + // This would normally conflict with the name cache when emitting local variables, + // but this happens in the setup stage, before we hit compilation loops. + // The name cache is cleared before we actually emit code, so this is safe. + add_resource_name(var.self); + if (var_type.basetype == SPIRType::Struct) { - bool block_requires_flattening = variable_storage_requires_stage_io(storage) || is_block; + bool block_requires_flattening = + variable_storage_requires_stage_io(storage) || (is_block && var_type.array.empty()); bool needs_local_declaration = !is_builtin && block_requires_flattening && meta.allow_local_declaration; if (needs_local_declaration) @@ -3072,74 +3512,110 @@ void CompilerMSL::add_variable_to_interface_block(StorageClass storage, const st else { bool masked_block = false; - - // Flatten the struct members into the interface struct - for (uint32_t mbr_idx = 0; mbr_idx < uint32_t(var_type.member_types.size()); mbr_idx++) + uint32_t location = UINT32_MAX; + uint32_t var_mbr_idx = 0; + uint32_t elem_cnt = 1; + if (is_matrix(var_type)) { - builtin = BuiltInMax; - is_builtin = is_member_builtin(var_type, mbr_idx, &builtin); - auto &mbr_type = get(var_type.member_types[mbr_idx]); + if (is_array(var_type)) + SPIRV_CROSS_THROW("MSL cannot emit arrays-of-matrices in input and output variables."); - if (storage == StorageClassOutput && is_stage_output_block_member_masked(var, mbr_idx, meta.strip_array)) + elem_cnt = var_type.columns; + } + else if (is_array(var_type)) + { + if (var_type.array.size() != 1) + SPIRV_CROSS_THROW("MSL cannot emit arrays-of-arrays in input and output variables."); + + elem_cnt = to_array_size_literal(var_type); + } + + for (uint32_t elem_idx = 0; elem_idx < elem_cnt; elem_idx++) + { + // Flatten the struct members into the interface struct + for (uint32_t mbr_idx = 0; mbr_idx < uint32_t(var_type.member_types.size()); mbr_idx++) { - if (is_block) - masked_block = true; + builtin = BuiltInMax; + is_builtin = is_member_builtin(var_type, mbr_idx, &builtin); + auto &mbr_type = get(var_type.member_types[mbr_idx]); - // Non-builtin block output variables are just ignored, since they will still access - // the block variable as-is. They're just not flattened. - if (is_builtin && !meta.strip_array) + if (storage == StorageClassOutput && is_stage_output_block_member_masked(var, mbr_idx, meta.strip_array)) { - // Emit a fake variable instead. - uint32_t ids = ir.increase_bound_by(2); - uint32_t ptr_type_id = ids + 0; - uint32_t var_id = ids + 1; + location = UINT32_MAX; // Skip this member and resolve location again on next var member - auto ptr_type = mbr_type; - ptr_type.pointer = true; - ptr_type.pointer_depth++; - ptr_type.parent_type = var_type.member_types[mbr_idx]; - ptr_type.storage = StorageClassOutput; + if (is_block) + masked_block = true; - uint32_t initializer = 0; - if (var.initializer) - if (auto *c = maybe_get(var.initializer)) - initializer = c->subconstants[mbr_idx]; + // Non-builtin block output variables are just ignored, since they will still access + // the block variable as-is. They're just not flattened. + if (is_builtin && !meta.strip_array) + { + // Emit a fake variable instead. + uint32_t ids = ir.increase_bound_by(2); + uint32_t ptr_type_id = ids + 0; + uint32_t var_id = ids + 1; - set(ptr_type_id, ptr_type); - set(var_id, ptr_type_id, StorageClassOutput, initializer); - entry_func.add_local_variable(var_id); - vars_needing_early_declaration.push_back(var_id); - set_name(var_id, builtin_to_glsl(builtin, StorageClassOutput)); - set_decoration(var_id, DecorationBuiltIn, builtin); + auto ptr_type = mbr_type; + ptr_type.pointer = true; + ptr_type.pointer_depth++; + ptr_type.parent_type = var_type.member_types[mbr_idx]; + ptr_type.storage = StorageClassOutput; + + uint32_t initializer = 0; + if (var.initializer) + if (auto *c = maybe_get(var.initializer)) + initializer = c->subconstants[mbr_idx]; + + set(ptr_type_id, ptr_type); + set(var_id, ptr_type_id, StorageClassOutput, initializer); + entry_func.add_local_variable(var_id); + vars_needing_early_declaration.push_back(var_id); + set_name(var_id, builtin_to_glsl(builtin, StorageClassOutput)); + set_decoration(var_id, DecorationBuiltIn, builtin); + } } - } - else if (!is_builtin || has_active_builtin(builtin, storage)) - { - bool is_composite_type = is_matrix(mbr_type) || is_array(mbr_type); - bool attribute_load_store = - storage == StorageClassInput && get_execution_model() != ExecutionModelFragment; - bool storage_is_stage_io = variable_storage_requires_stage_io(storage); - - // Clip/CullDistance always need to be declared as user attributes. - if (builtin == BuiltInClipDistance || builtin == BuiltInCullDistance) - is_builtin = false; - - if ((!is_builtin || attribute_load_store) && storage_is_stage_io && is_composite_type) + else if (!is_builtin || has_active_builtin(builtin, storage)) { - add_composite_member_variable_to_interface_block(storage, ib_var_ref, ib_type, var, mbr_idx, - meta); - } - else - { - add_plain_member_variable_to_interface_block(storage, ib_var_ref, ib_type, var, mbr_idx, meta); + bool is_composite_type = is_matrix(mbr_type) || is_array(mbr_type) || mbr_type.basetype == SPIRType::Struct; + bool attribute_load_store = + storage == StorageClassInput && get_execution_model() != ExecutionModelFragment; + bool storage_is_stage_io = variable_storage_requires_stage_io(storage); + + // Clip/CullDistance always need to be declared as user attributes. + if (builtin == BuiltInClipDistance || builtin == BuiltInCullDistance) + is_builtin = false; + + const string var_name = to_name(var.self); + string mbr_name_qual = var_name; + string var_chain_qual = var_name; + if (elem_cnt > 1) + { + mbr_name_qual += join("_", elem_idx); + var_chain_qual += join("[", elem_idx, "]"); + } + + if ((!is_builtin || attribute_load_store) && storage_is_stage_io && is_composite_type) + { + add_composite_member_variable_to_interface_block(storage, ib_var_ref, ib_type, + var, var_type, mbr_idx, meta, + mbr_name_qual, var_chain_qual, + location, var_mbr_idx); + } + else + { + add_plain_member_variable_to_interface_block(storage, ib_var_ref, ib_type, + var, var_type, mbr_idx, meta, + mbr_name_qual, var_chain_qual, + location, var_mbr_idx); + } } + var_mbr_idx++; } } // If we're redirecting a block, we might still need to access the original block // variable if we're masking some members. - if (masked_block && !needs_local_declaration && - (!is_builtin_variable(var) || get_execution_model() == ExecutionModelTessellationControl)) + if (masked_block && !needs_local_declaration && (!is_builtin_variable(var) || is_tesc_shader())) { if (is_builtin_variable(var)) { @@ -3160,8 +3636,8 @@ void CompilerMSL::add_variable_to_interface_block(StorageClass storage, const st } } } - else if (get_execution_model() == ExecutionModelTessellationEvaluation && storage == StorageClassInput && - !meta.strip_array && is_builtin && (builtin == BuiltInTessLevelOuter || builtin == BuiltInTessLevelInner)) + else if (is_tese_shader() && storage == StorageClassInput && !meta.strip_array && is_builtin && + (builtin == BuiltInTessLevelOuter || builtin == BuiltInTessLevelInner)) { add_tess_level_input_to_interface_block(ib_var_ref, ib_type, var); } @@ -3198,8 +3674,7 @@ void CompilerMSL::fix_up_interface_member_indices(StorageClass storage, uint32_t // Only needed for tessellation shaders and pull-model interpolants. // Need to redirect interface indices back to variables themselves. // For structs, each member of the struct need a separate instance. - if (get_execution_model() != ExecutionModelTessellationControl && - !(get_execution_model() == ExecutionModelTessellationEvaluation && storage == StorageClassInput) && + if (!is_tesc_shader() && !(is_tese_shader() && storage == StorageClassInput) && !(get_execution_model() == ExecutionModelFragment && storage == StorageClassInput && !pull_model_inputs.empty())) return; @@ -3282,15 +3757,14 @@ uint32_t CompilerMSL::add_interface_block(StorageClass storage, bool patch) bool builtin_is_stage_in_out = builtin_is_gl_in_out || bi_type == BuiltInLayer || bi_type == BuiltInViewportIndex || - bi_type == BuiltInBaryCoordNV || bi_type == BuiltInBaryCoordNoPerspNV || + bi_type == BuiltInBaryCoordKHR || bi_type == BuiltInBaryCoordNoPerspKHR || bi_type == BuiltInFragDepth || bi_type == BuiltInFragStencilRefEXT || bi_type == BuiltInSampleMask; // These builtins are part of the stage in/out structs. bool is_interface_block_builtin = - builtin_is_stage_in_out || - (get_execution_model() == ExecutionModelTessellationEvaluation && - (bi_type == BuiltInTessLevelOuter || bi_type == BuiltInTessLevelInner)); + builtin_is_stage_in_out || (is_tese_shader() && !msl_options.raw_buffer_tese_input && + (bi_type == BuiltInTessLevelOuter || bi_type == BuiltInTessLevelInner)); bool is_active = interface_variable_exists_in_entry_point(var.self); if (is_builtin && is_active) @@ -3320,20 +3794,26 @@ uint32_t CompilerMSL::add_interface_block(StorageClass storage, bool patch) // It's not enough to simply avoid marking fragment outputs if the pipeline won't // accept them. We can't put them in the struct at all, or otherwise the compiler // complains that the outputs weren't explicitly marked. + // Frag depth and stencil outputs are incompatible with explicit early fragment tests. + // In GLSL, depth and stencil outputs are just ignored when explicit early fragment tests are required. + // In Metal, it's a compilation error, so we need to exclude them from the output struct. if (get_execution_model() == ExecutionModelFragment && storage == StorageClassOutput && !patch && - ((is_builtin && ((bi_type == BuiltInFragDepth && !msl_options.enable_frag_depth_builtin) || - (bi_type == BuiltInFragStencilRefEXT && !msl_options.enable_frag_stencil_ref_builtin))) || + ((is_builtin && ((bi_type == BuiltInFragDepth && (!msl_options.enable_frag_depth_builtin || uses_explicit_early_fragment_test())) || + (bi_type == BuiltInFragStencilRefEXT && (!msl_options.enable_frag_stencil_ref_builtin || uses_explicit_early_fragment_test())))) || (!is_builtin && !(msl_options.enable_frag_output_mask & (1 << location))))) { hidden = true; disabled_frag_outputs.push_back(var_id); - // If a builtin, force it to have the proper name. + // If a builtin, force it to have the proper name, and mark it as not part of the output struct. if (is_builtin) + { set_name(var_id, builtin_to_glsl(bi_type, StorageClassFunction)); + mask_stage_output_by_builtin(bi_type); + } } // Barycentric inputs must be emitted in stage-in, because they can have interpolation arguments. - if (is_active && (bi_type == BuiltInBaryCoordNV || bi_type == BuiltInBaryCoordNoPerspNV)) + if (is_active && (bi_type == BuiltInBaryCoordKHR || bi_type == BuiltInBaryCoordNoPerspKHR)) { if (has_seen_barycentric) SPIRV_CROSS_THROW("Cannot declare both BaryCoordNV and BaryCoordNoPerspNV in same shader in MSL."); @@ -3367,7 +3847,7 @@ uint32_t CompilerMSL::add_interface_block(StorageClass storage, bool patch) for (uint32_t location_offset = 0; location_offset < array_size; location_offset++) { auto &location_meta = meta.location_meta[location + location_offset]; - location_meta.num_components = std::max(location_meta.num_components, component + type.vecsize); + location_meta.num_components = max(location_meta.num_components, component + type.vecsize); // For variables sharing location, decorations and base type must match. location_meta.base_type_id = type.self; @@ -3380,12 +3860,29 @@ uint32_t CompilerMSL::add_interface_block(StorageClass storage, bool patch) } } } + + if (is_tese_shader() && msl_options.raw_buffer_tese_input && patch && storage == StorageClassInput && + (bi_type == BuiltInTessLevelOuter || bi_type == BuiltInTessLevelInner)) + { + // In this case, we won't add the builtin to the interface struct, + // but we still need the hook to run to populate the arrays. + string base_ref = join(tess_factor_buffer_var_name, "[", to_expression(builtin_primitive_id_id), "]"); + const char *mbr_name = + bi_type == BuiltInTessLevelOuter ? "edgeTessellationFactor" : "insideTessellationFactor"; + add_tess_level_input(base_ref, mbr_name, var); + if (inputs_by_builtin.count(bi_type)) + { + uint32_t locn = inputs_by_builtin[bi_type].location; + mark_location_as_used_by_shader(locn, type, StorageClassInput); + } + } }); // If no variables qualify, leave. // For patch input in a tessellation evaluation shader, the per-vertex stage inputs // are included in a special patch control point array. - if (vars.empty() && !(storage == StorageClassInput && patch && stage_in_var_id)) + if (vars.empty() && + !(!msl_options.raw_buffer_tese_input && storage == StorageClassInput && patch && stage_in_var_id)) return 0; // Add a new typed variable for this interface structure. @@ -3408,8 +3905,9 @@ uint32_t CompilerMSL::add_interface_block(StorageClass storage, bool patch) { case StorageClassInput: ib_var_ref = patch ? patch_stage_in_var_name : stage_in_var_name; - if (get_execution_model() == ExecutionModelTessellationControl) + switch (get_execution_model()) { + case ExecutionModelTessellationControl: // Add a hook to populate the shared workgroup memory containing the gl_in array. entry_func.fixup_hooks_in.push_back([=]() { // Can't use PatchVertices, PrimitiveId, or InvocationId yet; the hooks for those may not have run yet. @@ -3435,6 +3933,33 @@ uint32_t CompilerMSL::add_interface_block(StorageClass storage, bool patch) statement(" return;"); } }); + break; + case ExecutionModelTessellationEvaluation: + if (!msl_options.raw_buffer_tese_input) + break; + if (patch) + { + entry_func.fixup_hooks_in.push_back( + [=]() + { + statement("const device ", to_name(ir.default_entry_point), "_", ib_var_ref, "& ", ib_var_ref, + " = ", patch_input_buffer_var_name, "[", to_expression(builtin_primitive_id_id), + "];"); + }); + } + else + { + entry_func.fixup_hooks_in.push_back( + [=]() + { + statement("const device ", to_name(ir.default_entry_point), "_", ib_var_ref, "* gl_in = &", + input_buffer_var_name, "[", to_expression(builtin_primitive_id_id), " * ", + get_entry_point().output_vertices, "];"); + }); + } + break; + default: + break; } break; @@ -3445,6 +3970,9 @@ uint32_t CompilerMSL::add_interface_block(StorageClass storage, bool patch) // Add the output interface struct as a local variable to the entry function. // If the entry point should return the output struct, set the entry function // to return the output interface struct, otherwise to return nothing. + // Watch out for the rare case where the terminator of the last entry point block is a + // Kill, instead of a Return. Based on SPIR-V's block-domination rules, we assume that + // any block that has a Kill will also have a terminating Return, except the last block. // Indicate the output var requires early initialization. bool ep_should_return_output = !get_is_rasterization_disabled(); uint32_t rtn_id = ep_should_return_output ? ib_var_id : 0; @@ -3454,7 +3982,7 @@ uint32_t CompilerMSL::add_interface_block(StorageClass storage, bool patch) for (auto &blk_id : entry_func.blocks) { auto &blk = get(blk_id); - if (blk.terminator == SPIRBlock::Return) + if (blk.terminator == SPIRBlock::Return || (blk.terminator == SPIRBlock::Kill && blk_id == entry_func.blocks.back())) blk.return_value = rtn_id; } vars_needing_early_declaration.push_back(ib_var_id); @@ -3557,27 +4085,31 @@ uint32_t CompilerMSL::add_interface_block(StorageClass storage, bool patch) for (auto *p_var : vars) { - bool strip_array = - (get_execution_model() == ExecutionModelTessellationControl || - (get_execution_model() == ExecutionModelTessellationEvaluation && storage == StorageClassInput)) && - !patch; + bool strip_array = (is_tesc_shader() || (is_tese_shader() && storage == StorageClassInput)) && !patch; // Fixing up flattened stores in TESC is impossible since the memory is group shared either via // device (not masked) or threadgroup (masked) storage classes and it's race condition city. meta.strip_array = strip_array; - meta.allow_local_declaration = !strip_array && !(get_execution_model() == ExecutionModelTessellationControl && - storage == StorageClassOutput); + meta.allow_local_declaration = !strip_array && !(is_tesc_shader() && storage == StorageClassOutput); add_variable_to_interface_block(storage, ib_var_ref, ib_type, *p_var, meta); } - if (get_execution_model() == ExecutionModelTessellationControl && msl_options.multi_patch_workgroup && + if (((is_tesc_shader() && msl_options.multi_patch_workgroup) || + (is_tese_shader() && msl_options.raw_buffer_tese_input)) && storage == StorageClassInput) { - // For tessellation control inputs, add all outputs from the vertex shader to ensure + // For tessellation inputs, add all outputs from the previous stage to ensure // the struct containing them is the correct size and layout. for (auto &input : inputs_by_location) { - if (location_inputs_in_use.count(input.first) != 0) + if (location_inputs_in_use.count(input.first.location) != 0) + continue; + + if (patch != (input.second.rate == MSL_SHADER_VARIABLE_RATE_PER_PATCH)) + continue; + + // Tessellation levels have their own struct, so there's no need to add them here. + if (input.second.builtin == BuiltInTessLevelOuter || input.second.builtin == BuiltInTessLevelInner) continue; // Create a fake variable to put at the location. @@ -3590,12 +4122,12 @@ uint32_t CompilerMSL::add_interface_block(StorageClass storage, bool patch) SPIRType type; switch (input.second.format) { - case MSL_SHADER_INPUT_FORMAT_UINT16: - case MSL_SHADER_INPUT_FORMAT_ANY16: + case MSL_SHADER_VARIABLE_FORMAT_UINT16: + case MSL_SHADER_VARIABLE_FORMAT_ANY16: type.basetype = SPIRType::UShort; type.width = 16; break; - case MSL_SHADER_INPUT_FORMAT_ANY32: + case MSL_SHADER_VARIABLE_FORMAT_ANY32: default: type.basetype = SPIRType::UInt; type.width = 32; @@ -3617,7 +4149,71 @@ uint32_t CompilerMSL::add_interface_block(StorageClass storage, bool patch) ptr_type.self = array_type_id; auto &fake_var = set(var_id, ptr_type_id, storage); - set_decoration(var_id, DecorationLocation, input.first); + set_decoration(var_id, DecorationLocation, input.first.location); + if (input.first.component) + set_decoration(var_id, DecorationComponent, input.first.component); + + meta.strip_array = true; + meta.allow_local_declaration = false; + add_variable_to_interface_block(storage, ib_var_ref, ib_type, fake_var, meta); + } + } + + if (capture_output_to_buffer && storage == StorageClassOutput) + { + // For captured output, add all inputs from the next stage to ensure + // the struct containing them is the correct size and layout. This is + // necessary for certain implicit builtins that may nonetheless be read, + // even when they aren't written. + for (auto &output : outputs_by_location) + { + if (location_outputs_in_use.count(output.first.location) != 0) + continue; + + // Create a fake variable to put at the location. + uint32_t offset = ir.increase_bound_by(4); + uint32_t type_id = offset; + uint32_t array_type_id = offset + 1; + uint32_t ptr_type_id = offset + 2; + uint32_t var_id = offset + 3; + + SPIRType type; + switch (output.second.format) + { + case MSL_SHADER_VARIABLE_FORMAT_UINT16: + case MSL_SHADER_VARIABLE_FORMAT_ANY16: + type.basetype = SPIRType::UShort; + type.width = 16; + break; + case MSL_SHADER_VARIABLE_FORMAT_ANY32: + default: + type.basetype = SPIRType::UInt; + type.width = 32; + break; + } + type.vecsize = output.second.vecsize; + set(type_id, type); + + if (is_tesc_shader()) + { + type.array.push_back(0); + type.array_size_literal.push_back(true); + type.parent_type = type_id; + set(array_type_id, type); + } + + type.pointer = true; + type.pointer_depth++; + type.parent_type = is_tesc_shader() ? array_type_id : type_id; + type.storage = storage; + auto &ptr_type = set(ptr_type_id, type); + ptr_type.self = type.parent_type; + + auto &fake_var = set(var_id, ptr_type_id, storage); + set_decoration(var_id, DecorationLocation, output.first.location); + if (output.first.component) + set_decoration(var_id, DecorationComponent, output.first.component); + meta.strip_array = true; meta.allow_local_declaration = false; add_variable_to_interface_block(storage, ib_var_ref, ib_type, fake_var, meta); @@ -3658,7 +4254,7 @@ uint32_t CompilerMSL::add_interface_block(StorageClass storage, bool patch) fix_up_interface_member_indices(storage, ib_type_id); // For patch inputs, add one more member, holding the array of control point data. - if (get_execution_model() == ExecutionModelTessellationEvaluation && storage == StorageClassInput && patch && + if (is_tese_shader() && !msl_options.raw_buffer_tese_input && storage == StorageClassInput && patch && stage_in_var_id) { uint32_t pcp_type_id = ir.increase_bound_by(1); @@ -3672,6 +4268,9 @@ uint32_t CompilerMSL::add_interface_block(StorageClass storage, bool patch) set_member_name(ib_type.self, mbr_idx, "gl_in"); } + if (storage == StorageClassInput) + set_decoration(ib_var_id, DecorationNonWritable); + return ib_var_id; } @@ -3683,7 +4282,7 @@ uint32_t CompilerMSL::add_interface_block_pointer(uint32_t ib_var_id, StorageCla uint32_t ib_ptr_var_id; uint32_t next_id = ir.increase_bound_by(3); auto &ib_type = expression_type(ib_var_id); - if (get_execution_model() == ExecutionModelTessellationControl) + if (is_tesc_shader() || (is_tese_shader() && msl_options.raw_buffer_tese_input)) { // Tessellation control per-vertex I/O is presented as an array, so we must // do the same with our struct here. @@ -3692,10 +4291,12 @@ uint32_t CompilerMSL::add_interface_block_pointer(uint32_t ib_var_id, StorageCla ib_ptr_type.parent_type = ib_ptr_type.type_alias = ib_type.self; ib_ptr_type.pointer = true; ib_ptr_type.pointer_depth++; - ib_ptr_type.storage = - storage == StorageClassInput ? - (msl_options.multi_patch_workgroup ? StorageClassStorageBuffer : StorageClassWorkgroup) : - StorageClassStorageBuffer; + ib_ptr_type.storage = storage == StorageClassInput ? + ((is_tesc_shader() && msl_options.multi_patch_workgroup) || + (is_tese_shader() && msl_options.raw_buffer_tese_input) ? + StorageClassStorageBuffer : + StorageClassWorkgroup) : + StorageClassStorageBuffer; ir.meta[ib_ptr_type_id] = ir.meta[ib_type.self]; // To ensure that get_variable_data_type() doesn't strip off the pointer, // which we need, use another pointer. @@ -3709,6 +4310,8 @@ uint32_t CompilerMSL::add_interface_block_pointer(uint32_t ib_var_id, StorageCla ib_ptr_var_id = next_id; set(ib_ptr_var_id, ib_ptr_ptr_type_id, StorageClassFunction, 0); set_name(ib_ptr_var_id, storage == StorageClassInput ? "gl_in" : "gl_out"); + if (storage == StorageClassInput) + set_decoration(ib_ptr_var_id, DecorationNonWritable); } else { @@ -3769,7 +4372,7 @@ uint32_t CompilerMSL::ensure_correct_builtin_type(uint32_t type_id, BuiltIn buil // Ensure that the type is compatible with the shader input. // If it is, simply return the given type ID. // Otherwise, create a new type, and return its ID. -uint32_t CompilerMSL::ensure_correct_input_type(uint32_t type_id, uint32_t location, uint32_t num_components, bool strip_array) +uint32_t CompilerMSL::ensure_correct_input_type(uint32_t type_id, uint32_t location, uint32_t component, uint32_t num_components, bool strip_array) { auto &type = get(type_id); @@ -3779,7 +4382,7 @@ uint32_t CompilerMSL::ensure_correct_input_type(uint32_t type_id, uint32_t locat if (type.basetype == SPIRType::Struct || type.array.size() > max_array_dimensions) return type_id; - auto p_va = inputs_by_location.find(location); + auto p_va = inputs_by_location.find({location, component}); if (p_va == end(inputs_by_location)) { if (num_components > type.vecsize) @@ -3793,7 +4396,7 @@ uint32_t CompilerMSL::ensure_correct_input_type(uint32_t type_id, uint32_t locat switch (p_va->second.format) { - case MSL_SHADER_INPUT_FORMAT_UINT8: + case MSL_SHADER_VARIABLE_FORMAT_UINT8: { switch (type.basetype) { @@ -3817,7 +4420,7 @@ uint32_t CompilerMSL::ensure_correct_input_type(uint32_t type_id, uint32_t locat } } - case MSL_SHADER_INPUT_FORMAT_UINT16: + case MSL_SHADER_VARIABLE_FORMAT_UINT16: { switch (type.basetype) { @@ -3848,6 +4451,10 @@ uint32_t CompilerMSL::ensure_correct_input_type(uint32_t type_id, uint32_t locat void CompilerMSL::mark_struct_members_packed(const SPIRType &type) { + // Handle possible recursion when a struct contains a pointer to its own type nested somewhere. + if (has_extended_decoration(type.self, SPIRVCrossDecorationPhysicalTypePacked)) + return; + set_extended_decoration(type.self, SPIRVCrossDecorationPhysicalTypePacked); // Problem case! Struct needs to be placed at an awkward alignment. @@ -3874,8 +4481,9 @@ void CompilerMSL::mark_scalar_layout_structs(const SPIRType &type) uint32_t mbr_cnt = uint32_t(type.member_types.size()); for (uint32_t i = 0; i < mbr_cnt; i++) { + // Handle possible recursion when a struct contains a pointer to its own type nested somewhere. auto &mbr_type = get(type.member_types[i]); - if (mbr_type.basetype == SPIRType::Struct) + if (mbr_type.basetype == SPIRType::Struct && !(mbr_type.pointer && mbr_type.storage == StorageClassPhysicalStorageBuffer)) { auto *struct_type = &mbr_type; while (!struct_type->array.empty()) @@ -3908,7 +4516,7 @@ void CompilerMSL::mark_scalar_layout_structs(const SPIRType &type) for (uint32_t dim = 0; dim < dimensions; dim++) { uint32_t array_size = to_array_size_literal(mbr_type, dim); - array_stride /= max(array_size, 1u); + array_stride /= max(array_size, 1u); } // Set expected struct size based on ArrayStride. @@ -4087,8 +4695,10 @@ void CompilerMSL::ensure_member_packing_rules_msl(SPIRType &ib_type, uint32_t in // This case will be nightmare-ish to deal with. This could possibly happen if struct alignment does not quite // match up with what we want. Scalar block layout comes to mind here where we might have to work around the rule // that struct alignment == max alignment of all members and struct size depends on this alignment. + // Can't repack structs, but can repack pointers to structs. auto &mbr_type = get(ib_type.member_types[index]); - if (mbr_type.basetype == SPIRType::Struct) + bool is_buff_ptr = mbr_type.pointer && mbr_type.storage == StorageClassPhysicalStorageBuffer; + if (mbr_type.basetype == SPIRType::Struct && !is_buff_ptr) SPIRV_CROSS_THROW("Cannot perform any repacking for structs when it is used as a member of another struct."); // Perform remapping here. @@ -4113,9 +4723,11 @@ void CompilerMSL::ensure_member_packing_rules_msl(SPIRType &ib_type, uint32_t in // Hack off array-of-arrays until we find the array stride per element we must have to make it work. uint32_t dimensions = uint32_t(mbr_type.array.size() - 1); for (uint32_t dim = 0; dim < dimensions; dim++) - array_stride /= max(to_array_size_literal(mbr_type, dim), 1u); + array_stride /= max(to_array_size_literal(mbr_type, dim), 1u); - uint32_t elems_per_stride = array_stride / (mbr_type.width / 8); + // Pointers are 8 bytes + uint32_t mbr_width_in_bytes = is_buff_ptr ? 8 : (mbr_type.width / 8); + uint32_t elems_per_stride = array_stride / mbr_width_in_bytes; if (elems_per_stride == 3) SPIRV_CROSS_THROW("Cannot use ArrayStride of 3 elements in remapping scenarios."); @@ -4125,17 +4737,24 @@ void CompilerMSL::ensure_member_packing_rules_msl(SPIRType &ib_type, uint32_t in auto physical_type = mbr_type; physical_type.vecsize = elems_per_stride; physical_type.parent_type = 0; + + // If this is a physical buffer pointer, replace type with a ulongn vector. + if (is_buff_ptr) + { + physical_type.width = 64; + physical_type.basetype = to_unsigned_basetype(physical_type.width); + physical_type.pointer = false; + physical_type.pointer_depth = false; + physical_type.forward_pointer = false; + } + uint32_t type_id = ir.increase_bound_by(1); set(type_id, physical_type); set_extended_member_decoration(ib_type.self, index, SPIRVCrossDecorationPhysicalTypeID, type_id); set_decoration(type_id, DecorationArrayStride, array_stride); // Remove packed_ for vectors of size 1, 2 and 4. - if (has_extended_decoration(ib_type.self, SPIRVCrossDecorationPhysicalTypePacked)) - SPIRV_CROSS_THROW("Unable to remove packed decoration as entire struct must be fully packed. Do not mix " - "scalar and std140 layout rules."); - else - unset_extended_member_decoration(ib_type.self, index, SPIRVCrossDecorationPhysicalTypePacked); + unset_extended_member_decoration(ib_type.self, index, SPIRVCrossDecorationPhysicalTypePacked); } else if (is_matrix(mbr_type)) { @@ -4162,11 +4781,7 @@ void CompilerMSL::ensure_member_packing_rules_msl(SPIRType &ib_type, uint32_t in set_extended_member_decoration(ib_type.self, index, SPIRVCrossDecorationPhysicalTypeID, type_id); // Remove packed_ for vectors of size 1, 2 and 4. - if (has_extended_decoration(ib_type.self, SPIRVCrossDecorationPhysicalTypePacked)) - SPIRV_CROSS_THROW("Unable to remove packed decoration as entire struct must be fully packed. Do not mix " - "scalar and std140 layout rules."); - else - unset_extended_member_decoration(ib_type.self, index, SPIRVCrossDecorationPhysicalTypePacked); + unset_extended_member_decoration(ib_type.self, index, SPIRVCrossDecorationPhysicalTypePacked); } else SPIRV_CROSS_THROW("Found a buffer packing case which we cannot represent in MSL."); @@ -4264,9 +4879,6 @@ void CompilerMSL::emit_store_statement(uint32_t lhs_expression, uint32_t rhs_exp // In this case, we just flip transpose states, and emit the store, a transpose must be in the RHS expression, if any. if (is_matrix(type) && lhs_e && lhs_e->need_transpose) { - if (!rhs_e) - SPIRV_CROSS_THROW("Need to transpose right-side expression of a store to row-major matrix, but it is " - "not a SPIRExpression."); lhs_e->need_transpose = false; if (rhs_e && rhs_e->need_transpose) @@ -4322,6 +4934,11 @@ void CompilerMSL::emit_store_statement(uint32_t lhs_expression, uint32_t rhs_exp auto &physical_type = get(physical_type_id); + string cast_addr_space = "thread"; + auto *p_var_lhs = maybe_get_backing_variable(lhs_expression); + if (p_var_lhs) + cast_addr_space = get_type_address_space(get(p_var_lhs->basetype), lhs_expression); + if (is_matrix(type)) { const char *packed_pfx = lhs_packed_type ? "packed_" : ""; @@ -4349,7 +4966,7 @@ void CompilerMSL::emit_store_statement(uint32_t lhs_expression, uint32_t rhs_exp write_type.columns = 1; if (physical_type.columns != type.columns) - cast_expr = join("(device ", packed_pfx, type_to_glsl(write_type), "&)"); + cast_expr = join("(", cast_addr_space, " ", packed_pfx, type_to_glsl(write_type), "&)"); if (rhs_transpose) { @@ -4391,7 +5008,7 @@ void CompilerMSL::emit_store_statement(uint32_t lhs_expression, uint32_t rhs_exp write_type.columns = 1; if (physical_type.vecsize != type.vecsize) - cast_expr = join("(device ", packed_pfx, type_to_glsl(write_type), "&)"); + cast_expr = join("(", cast_addr_space, " ", packed_pfx, type_to_glsl(write_type), "&)"); if (rhs_transpose) { @@ -4446,7 +5063,7 @@ void CompilerMSL::emit_store_statement(uint32_t lhs_expression, uint32_t rhs_exp auto column_index = lhs_expr.find_last_of('['); if (column_index != string::npos) { - statement("((device ", type_to_glsl(write_type), "*)&", + statement("((", cast_addr_space, " ", type_to_glsl(write_type), "*)&", lhs_expr.insert(column_index, join('[', c, ']', ")")), " = ", to_extract_component_expression(rhs_expression, c), ";"); } @@ -4469,7 +5086,7 @@ void CompilerMSL::emit_store_statement(uint32_t lhs_expression, uint32_t rhs_exp // Unpack the expression so we can store to it with a float or float2. // It's still an l-value, so it's fine. Most other unpacking of expressions turn them into r-values instead. - lhs = join("(device ", type_to_glsl(type), "&)", enclose_expression(lhs)); + lhs = join("(", cast_addr_space, " ", type_to_glsl(type), "&)", enclose_expression(lhs)); if (!optimize_read_modify_write(expression_type(rhs_expression), lhs, rhs)) statement(lhs, " = ", rhs, ";"); } @@ -4620,6 +5237,10 @@ void CompilerMSL::add_typedef_line(const string &line) // Template struct like spvUnsafeArray<> need to be declared *before* any resources are declared void CompilerMSL::emit_custom_templates() { + static const char * const address_spaces[] = { + "thread", "constant", "device", "threadgroup", "threadgroup_imageblock", "ray_data", "object_data" + }; + for (const auto &spv_func : spv_function_implementations) { switch (spv_func) @@ -4665,6 +5286,122 @@ void CompilerMSL::emit_custom_templates() statement(""); break; + case SPVFuncImplStorageMatrix: + statement("template"); + statement("struct spvStorageMatrix"); + begin_scope(); + statement("vec columns[Cols];"); + statement(""); + for (size_t method_idx = 0; method_idx < sizeof(address_spaces) / sizeof(address_spaces[0]); ++method_idx) + { + // Some address spaces require particular features. + if (method_idx == 4) // threadgroup_imageblock + statement("#ifdef __HAVE_IMAGEBLOCKS__"); + else if (method_idx == 5) // ray_data + statement("#ifdef __HAVE_RAYTRACING__"); + else if (method_idx == 6) // object_data + statement("#ifdef __HAVE_MESH__"); + const string &method_as = address_spaces[method_idx]; + statement("spvStorageMatrix() ", method_as, " = default;"); + if (method_idx != 1) // constant + { + statement(method_as, " spvStorageMatrix& operator=(initializer_list> cols) ", + method_as); + begin_scope(); + statement("size_t i;"); + statement("thread vec* col;"); + statement("for (i = 0, col = cols.begin(); i < Cols; ++i, ++col)"); + statement(" columns[i] = *col;"); + statement("return *this;"); + end_scope(); + } + statement(""); + for (size_t param_idx = 0; param_idx < sizeof(address_spaces) / sizeof(address_spaces[0]); ++param_idx) + { + if (param_idx != method_idx) + { + if (param_idx == 4) // threadgroup_imageblock + statement("#ifdef __HAVE_IMAGEBLOCKS__"); + else if (param_idx == 5) // ray_data + statement("#ifdef __HAVE_RAYTRACING__"); + else if (param_idx == 6) // object_data + statement("#ifdef __HAVE_MESH__"); + } + const string ¶m_as = address_spaces[param_idx]; + statement("spvStorageMatrix(const ", param_as, " matrix& m) ", method_as); + begin_scope(); + statement("for (size_t i = 0; i < Cols; ++i)"); + statement(" columns[i] = m.columns[i];"); + end_scope(); + statement("spvStorageMatrix(const ", param_as, " spvStorageMatrix& m) ", method_as, " = default;"); + if (method_idx != 1) // constant + { + statement(method_as, " spvStorageMatrix& operator=(const ", param_as, + " matrix& m) ", method_as); + begin_scope(); + statement("for (size_t i = 0; i < Cols; ++i)"); + statement(" columns[i] = m.columns[i];"); + statement("return *this;"); + end_scope(); + statement(method_as, " spvStorageMatrix& operator=(const ", param_as, " spvStorageMatrix& m) ", + method_as, " = default;"); + } + if (param_idx != method_idx && param_idx >= 4) + statement("#endif"); + statement(""); + } + statement("operator matrix() const ", method_as); + begin_scope(); + statement("matrix m;"); + statement("for (int i = 0; i < Cols; ++i)"); + statement(" m.columns[i] = columns[i];"); + statement("return m;"); + end_scope(); + statement(""); + statement("vec operator[](size_t idx) const ", method_as); + begin_scope(); + statement("return columns[idx];"); + end_scope(); + if (method_idx != 1) // constant + { + statement(method_as, " vec& operator[](size_t idx) ", method_as); + begin_scope(); + statement("return columns[idx];"); + end_scope(); + } + if (method_idx >= 4) + statement("#endif"); + statement(""); + } + end_scope_decl(); + statement(""); + statement("template"); + statement("matrix transpose(spvStorageMatrix m)"); + begin_scope(); + statement("return transpose(matrix(m));"); + end_scope(); + statement(""); + statement("typedef spvStorageMatrix spvStorage_half2x2;"); + statement("typedef spvStorageMatrix spvStorage_half2x3;"); + statement("typedef spvStorageMatrix spvStorage_half2x4;"); + statement("typedef spvStorageMatrix spvStorage_half3x2;"); + statement("typedef spvStorageMatrix spvStorage_half3x3;"); + statement("typedef spvStorageMatrix spvStorage_half3x4;"); + statement("typedef spvStorageMatrix spvStorage_half4x2;"); + statement("typedef spvStorageMatrix spvStorage_half4x3;"); + statement("typedef spvStorageMatrix spvStorage_half4x4;"); + statement("typedef spvStorageMatrix spvStorage_float2x2;"); + statement("typedef spvStorageMatrix spvStorage_float2x3;"); + statement("typedef spvStorageMatrix spvStorage_float2x4;"); + statement("typedef spvStorageMatrix spvStorage_float3x2;"); + statement("typedef spvStorageMatrix spvStorage_float3x3;"); + statement("typedef spvStorageMatrix spvStorage_float3x4;"); + statement("typedef spvStorageMatrix spvStorage_float4x2;"); + statement("typedef spvStorageMatrix spvStorage_float4x3;"); + statement("typedef spvStorageMatrix spvStorage_float4x4;"); + statement(""); + break; + default: break; } @@ -4816,7 +5553,7 @@ void CompilerMSL::emit_custom_functions() for (uint32_t variant = 0; variant < 12; variant++) { - uint32_t dimensions = spv_func - SPVFuncImplArrayCopyMultidimBase; + uint8_t dimensions = spv_func - SPVFuncImplArrayCopyMultidimBase; string tmp = "template"); - statement("T spvFAdd(T l, T r)"); + statement("[[clang::optnone]] T spvFAdd(T l, T r)"); begin_scope(); statement("return fma(T(1), l, r);"); end_scope(); @@ -4916,7 +5653,7 @@ void CompilerMSL::emit_custom_functions() // "fsub" intrinsic support case SPVFuncImplFSub: statement("template"); - statement("T spvFSub(T l, T r)"); + statement("[[clang::optnone]] T spvFSub(T l, T r)"); begin_scope(); statement("return fma(T(-1), r, l);"); end_scope(); @@ -4926,14 +5663,14 @@ void CompilerMSL::emit_custom_functions() // "fmul' intrinsic support case SPVFuncImplFMul: statement("template"); - statement("T spvFMul(T l, T r)"); + statement("[[clang::optnone]] T spvFMul(T l, T r)"); begin_scope(); statement("return fma(l, r, T(0));"); end_scope(); statement(""); statement("template"); - statement("vec spvFMulVectorMatrix(vec v, matrix m)"); + statement("[[clang::optnone]] vec spvFMulVectorMatrix(vec v, matrix m)"); begin_scope(); statement("vec res = vec(0);"); statement("for (uint i = Rows; i > 0; --i)"); @@ -4950,7 +5687,7 @@ void CompilerMSL::emit_custom_functions() statement(""); statement("template"); - statement("vec spvFMulMatrixVector(matrix m, vec v)"); + statement("[[clang::optnone]] vec spvFMulMatrixVector(matrix m, vec v)"); begin_scope(); statement("vec res = vec(0);"); statement("for (uint i = Cols; i > 0; --i)"); @@ -4962,8 +5699,7 @@ void CompilerMSL::emit_custom_functions() statement(""); statement("template"); - statement( - "matrix spvFMulMatrixMatrix(matrix l, matrix r)"); + statement("[[clang::optnone]] matrix spvFMulMatrixMatrix(matrix l, matrix r)"); begin_scope(); statement("matrix res;"); statement("for (uint i = 0; i < RCols; i++)"); @@ -4980,6 +5716,24 @@ void CompilerMSL::emit_custom_functions() statement(""); break; + case SPVFuncImplQuantizeToF16: + // Ensure fast-math is disabled to match Vulkan results. + // SpvHalfTypeSelector is used to match the half* template type to the float* template type. + // Depending on GPU, MSL does not always flush converted subnormal halfs to zero, + // as required by OpQuantizeToF16, so check for subnormals and flush them to zero. + statement("template struct SpvHalfTypeSelector;"); + statement("template <> struct SpvHalfTypeSelector { public: using H = half; };"); + statement("template struct SpvHalfTypeSelector> { using H = vec; };"); + statement("template::H>"); + statement("[[clang::optnone]] F spvQuantizeToF16(F fval)"); + begin_scope(); + statement("H hval = H(fval);"); + statement("hval = select(copysign(H(0), hval), hval, isnormal(hval) || isinf(hval) || isnan(hval));"); + statement("return F(hval);"); + end_scope(); + statement(""); + break; + // Emulate texturecube_array with texture2d_array for iOS where this type is not available case SPVFuncImplCubemapTo2DArrayFace: statement(force_inline); @@ -5310,7 +6064,7 @@ void CompilerMSL::emit_custom_functions() statement("template"); statement("inline T spvSubgroupBroadcast(T value, ushort lane)"); begin_scope(); - if (msl_options.is_ios() && !msl_options.ios_use_simdgroup_functions) + if (msl_options.use_quadgroup_operation()) statement("return quad_broadcast(value, lane);"); else statement("return simd_broadcast(value, lane);"); @@ -5319,7 +6073,7 @@ void CompilerMSL::emit_custom_functions() statement("template<>"); statement("inline bool spvSubgroupBroadcast(bool value, ushort lane)"); begin_scope(); - if (msl_options.is_ios() && !msl_options.ios_use_simdgroup_functions) + if (msl_options.use_quadgroup_operation()) statement("return !!quad_broadcast((ushort)value, lane);"); else statement("return !!simd_broadcast((ushort)value, lane);"); @@ -5328,7 +6082,7 @@ void CompilerMSL::emit_custom_functions() statement("template"); statement("inline vec spvSubgroupBroadcast(vec value, ushort lane)"); begin_scope(); - if (msl_options.is_ios() && !msl_options.ios_use_simdgroup_functions) + if (msl_options.use_quadgroup_operation()) statement("return (vec)quad_broadcast((vec)value, lane);"); else statement("return (vec)simd_broadcast((vec)value, lane);"); @@ -5340,7 +6094,7 @@ void CompilerMSL::emit_custom_functions() statement("template"); statement("inline T spvSubgroupBroadcastFirst(T value)"); begin_scope(); - if (msl_options.is_ios() && !msl_options.ios_use_simdgroup_functions) + if (msl_options.use_quadgroup_operation()) statement("return quad_broadcast_first(value);"); else statement("return simd_broadcast_first(value);"); @@ -5349,7 +6103,7 @@ void CompilerMSL::emit_custom_functions() statement("template<>"); statement("inline bool spvSubgroupBroadcastFirst(bool value)"); begin_scope(); - if (msl_options.is_ios() && !msl_options.ios_use_simdgroup_functions) + if (msl_options.use_quadgroup_operation()) statement("return !!quad_broadcast_first((ushort)value);"); else statement("return !!simd_broadcast_first((ushort)value);"); @@ -5358,7 +6112,7 @@ void CompilerMSL::emit_custom_functions() statement("template"); statement("inline vec spvSubgroupBroadcastFirst(vec value)"); begin_scope(); - if (msl_options.is_ios() && !msl_options.ios_use_simdgroup_functions) + if (msl_options.use_quadgroup_operation()) statement("return (vec)quad_broadcast_first((vec)value);"); else statement("return (vec)simd_broadcast_first((vec)value);"); @@ -5369,7 +6123,7 @@ void CompilerMSL::emit_custom_functions() case SPVFuncImplSubgroupBallot: statement("inline uint4 spvSubgroupBallot(bool value)"); begin_scope(); - if (msl_options.is_ios() && !msl_options.ios_use_simdgroup_functions) + if (msl_options.use_quadgroup_operation()) { statement("return uint4((quad_vote::vote_t)quad_ballot(value), 0, 0, 0);"); } @@ -5385,9 +6139,7 @@ void CompilerMSL::emit_custom_functions() statement("// SPIR-V callers expect a uint4. We must convert."); statement("// FIXME: This won't include higher bits if Apple ever supports"); statement("// 128 lanes in an SIMD-group."); - statement( - "return uint4((uint)((simd_vote::vote_t)vote & 0xFFFFFFFF), (uint)(((simd_vote::vote_t)vote >> " - "32) & 0xFFFFFFFF), 0, 0);"); + statement("return uint4(as_type((simd_vote::vote_t)vote), 0, 0);"); } end_scope(); statement(""); @@ -5499,7 +6251,7 @@ void CompilerMSL::emit_custom_functions() statement("template"); statement("inline bool spvSubgroupAllEqual(T value)"); begin_scope(); - if (msl_options.is_ios() && !msl_options.ios_use_simdgroup_functions) + if (msl_options.use_quadgroup_operation()) statement("return quad_all(all(value == quad_broadcast_first(value)));"); else statement("return simd_all(all(value == simd_broadcast_first(value)));"); @@ -5508,7 +6260,7 @@ void CompilerMSL::emit_custom_functions() statement("template<>"); statement("inline bool spvSubgroupAllEqual(bool value)"); begin_scope(); - if (msl_options.is_ios() && !msl_options.ios_use_simdgroup_functions) + if (msl_options.use_quadgroup_operation()) statement("return quad_all(value) || !quad_any(value);"); else statement("return simd_all(value) || !simd_any(value);"); @@ -5517,7 +6269,7 @@ void CompilerMSL::emit_custom_functions() statement("template"); statement("inline bool spvSubgroupAllEqual(vec value)"); begin_scope(); - if (msl_options.is_ios() && !msl_options.ios_use_simdgroup_functions) + if (msl_options.use_quadgroup_operation()) statement("return quad_all(all(value == (vec)quad_broadcast_first((vec)value)));"); else statement("return simd_all(all(value == (vec)simd_broadcast_first((vec)value)));"); @@ -5529,7 +6281,7 @@ void CompilerMSL::emit_custom_functions() statement("template"); statement("inline T spvSubgroupShuffle(T value, ushort lane)"); begin_scope(); - if (msl_options.is_ios() && !msl_options.ios_use_simdgroup_functions) + if (msl_options.use_quadgroup_operation()) statement("return quad_shuffle(value, lane);"); else statement("return simd_shuffle(value, lane);"); @@ -5538,7 +6290,7 @@ void CompilerMSL::emit_custom_functions() statement("template<>"); statement("inline bool spvSubgroupShuffle(bool value, ushort lane)"); begin_scope(); - if (msl_options.is_ios() && !msl_options.ios_use_simdgroup_functions) + if (msl_options.use_quadgroup_operation()) statement("return !!quad_shuffle((ushort)value, lane);"); else statement("return !!simd_shuffle((ushort)value, lane);"); @@ -5547,7 +6299,7 @@ void CompilerMSL::emit_custom_functions() statement("template"); statement("inline vec spvSubgroupShuffle(vec value, ushort lane)"); begin_scope(); - if (msl_options.is_ios() && !msl_options.ios_use_simdgroup_functions) + if (msl_options.use_quadgroup_operation()) statement("return (vec)quad_shuffle((vec)value, lane);"); else statement("return (vec)simd_shuffle((vec)value, lane);"); @@ -5559,7 +6311,7 @@ void CompilerMSL::emit_custom_functions() statement("template"); statement("inline T spvSubgroupShuffleXor(T value, ushort mask)"); begin_scope(); - if (msl_options.is_ios() && !msl_options.ios_use_simdgroup_functions) + if (msl_options.use_quadgroup_operation()) statement("return quad_shuffle_xor(value, mask);"); else statement("return simd_shuffle_xor(value, mask);"); @@ -5568,7 +6320,7 @@ void CompilerMSL::emit_custom_functions() statement("template<>"); statement("inline bool spvSubgroupShuffleXor(bool value, ushort mask)"); begin_scope(); - if (msl_options.is_ios() && !msl_options.ios_use_simdgroup_functions) + if (msl_options.use_quadgroup_operation()) statement("return !!quad_shuffle_xor((ushort)value, mask);"); else statement("return !!simd_shuffle_xor((ushort)value, mask);"); @@ -5577,7 +6329,7 @@ void CompilerMSL::emit_custom_functions() statement("template"); statement("inline vec spvSubgroupShuffleXor(vec value, ushort mask)"); begin_scope(); - if (msl_options.is_ios() && !msl_options.ios_use_simdgroup_functions) + if (msl_options.use_quadgroup_operation()) statement("return (vec)quad_shuffle_xor((vec)value, mask);"); else statement("return (vec)simd_shuffle_xor((vec)value, mask);"); @@ -5589,7 +6341,7 @@ void CompilerMSL::emit_custom_functions() statement("template"); statement("inline T spvSubgroupShuffleUp(T value, ushort delta)"); begin_scope(); - if (msl_options.is_ios() && !msl_options.ios_use_simdgroup_functions) + if (msl_options.use_quadgroup_operation()) statement("return quad_shuffle_up(value, delta);"); else statement("return simd_shuffle_up(value, delta);"); @@ -5598,7 +6350,7 @@ void CompilerMSL::emit_custom_functions() statement("template<>"); statement("inline bool spvSubgroupShuffleUp(bool value, ushort delta)"); begin_scope(); - if (msl_options.is_ios() && !msl_options.ios_use_simdgroup_functions) + if (msl_options.use_quadgroup_operation()) statement("return !!quad_shuffle_up((ushort)value, delta);"); else statement("return !!simd_shuffle_up((ushort)value, delta);"); @@ -5607,7 +6359,7 @@ void CompilerMSL::emit_custom_functions() statement("template"); statement("inline vec spvSubgroupShuffleUp(vec value, ushort delta)"); begin_scope(); - if (msl_options.is_ios() && !msl_options.ios_use_simdgroup_functions) + if (msl_options.use_quadgroup_operation()) statement("return (vec)quad_shuffle_up((vec)value, delta);"); else statement("return (vec)simd_shuffle_up((vec)value, delta);"); @@ -5619,7 +6371,7 @@ void CompilerMSL::emit_custom_functions() statement("template"); statement("inline T spvSubgroupShuffleDown(T value, ushort delta)"); begin_scope(); - if (msl_options.is_ios() && !msl_options.ios_use_simdgroup_functions) + if (msl_options.use_quadgroup_operation()) statement("return quad_shuffle_down(value, delta);"); else statement("return simd_shuffle_down(value, delta);"); @@ -5628,7 +6380,7 @@ void CompilerMSL::emit_custom_functions() statement("template<>"); statement("inline bool spvSubgroupShuffleDown(bool value, ushort delta)"); begin_scope(); - if (msl_options.is_ios() && !msl_options.ios_use_simdgroup_functions) + if (msl_options.use_quadgroup_operation()) statement("return !!quad_shuffle_down((ushort)value, delta);"); else statement("return !!simd_shuffle_down((ushort)value, delta);"); @@ -5637,7 +6389,7 @@ void CompilerMSL::emit_custom_functions() statement("template"); statement("inline vec spvSubgroupShuffleDown(vec value, ushort delta)"); begin_scope(); - if (msl_options.is_ios() && !msl_options.ios_use_simdgroup_functions) + if (msl_options.use_quadgroup_operation()) statement("return (vec)quad_shuffle_down((vec)value, delta);"); else statement("return (vec)simd_shuffle_down((vec)value, delta);"); @@ -5699,8 +6451,9 @@ void CompilerMSL::emit_custom_functions() case SPVFuncImplReflectScalar: // Metal does not support scalar versions of these functions. + // Ensure fast-math is disabled to match Vulkan results. statement("template"); - statement("inline T spvReflect(T i, T n)"); + statement("[[clang::optnone]] T spvReflect(T i, T n)"); begin_scope(); statement("return i - T(2) * i * n * n;"); end_scope(); @@ -6454,7 +7207,7 @@ static string inject_top_level_storage_qualifier(const string &expr, const strin else if (last_pointer == string::npos) last_significant = last_reference; else - last_significant = std::max(last_reference, last_pointer); + last_significant = max(last_reference, last_pointer); if (last_significant == string::npos) return join(qualifier, " ", expr); @@ -6465,28 +7218,6 @@ static string inject_top_level_storage_qualifier(const string &expr, const strin } } -// Undefined global memory is not allowed in MSL. -// Declare constant and init to zeros. Use {}, as global constructors can break Metal. -void CompilerMSL::declare_undefined_values() -{ - bool emitted = false; - ir.for_each_typed_id([&](uint32_t, SPIRUndef &undef) { - auto &type = this->get(undef.basetype); - // OpUndef can be void for some reason ... - if (type.basetype == SPIRType::Void) - return; - - statement(inject_top_level_storage_qualifier( - variable_decl(type, to_name(undef.self), undef.self), - "constant"), - " = {};"); - emitted = true; - }); - - if (emitted) - statement(""); -} - void CompilerMSL::declare_constant_arrays() { bool fully_inlined = ir.ids_for_type[TypeFunction].size() == 1; @@ -6506,6 +7237,7 @@ void CompilerMSL::declare_constant_arrays() // link into Metal libraries. This is hacky. if (!type.array.empty() && (!fully_inlined || is_scalar(type) || is_vector(type))) { + add_resource_name(c.self); auto name = to_name(c.self); statement(inject_top_level_storage_qualifier(variable_decl(type, name), "constant"), " = ", constant_expression(c), ";"); @@ -6537,6 +7269,7 @@ void CompilerMSL::declare_complex_constant_arrays() auto &type = this->get(c.constant_type); if (!type.array.empty() && !(is_scalar(type) || is_vector(type))) { + add_resource_name(c.self); auto name = to_name(c.self); statement("", variable_decl(type, name), " = ", constant_expression(c), ";"); emitted = true; @@ -6550,7 +7283,6 @@ void CompilerMSL::declare_complex_constant_arrays() void CompilerMSL::emit_resources() { declare_constant_arrays(); - declare_undefined_values(); // Emit the special [[stage_in]] and [[stage_out]] interface blocks which we created. emit_interface_block(stage_out_var_id); @@ -6594,7 +7326,35 @@ void CompilerMSL::emit_specialization_constants_and_structs() // these types for purpose of iterating over them in ir.ids_for_type and friends. auto loop_lock = ir.create_loop_soft_lock(); - for (auto &id_ : ir.ids_for_constant_or_type) + // Physical storage buffer pointers can have cyclical references, + // so emit forward declarations of them before other structs. + // Ignore type_id because we want the underlying struct type from the pointer. + ir.for_each_typed_id([&](uint32_t /* type_id */, const SPIRType &type) { + if (type.basetype == SPIRType::Struct && + type.pointer && type.storage == StorageClassPhysicalStorageBuffer && + declared_structs.count(type.self) == 0) + { + statement("struct ", to_name(type.self), ";"); + declared_structs.insert(type.self); + emitted = true; + } + }); + if (emitted) + statement(""); + + emitted = false; + declared_structs.clear(); + + // It is possible to have multiple spec constants that use the same spec constant ID. + // The most common cause of this is defining spec constants in GLSL while also declaring + // the workgroup size to use those spec constants. But, Metal forbids declaring more than + // one variable with the same function constant ID. + // In this case, we must only declare one variable with the [[function_constant(id)]] + // attribute, and use its initializer to initialize all the spec constants with + // that ID. + std::unordered_map unique_func_constants; + + for (auto &id_ : ir.ids_for_constant_undef_or_type) { auto &id = ir.ids[id_]; @@ -6615,8 +7375,13 @@ void CompilerMSL::emit_specialization_constants_and_structs() { auto &type = get(c.constant_type); string sc_type_name = type_to_glsl(type); + add_resource_name(c.self); string sc_name = to_name(c.self); - string sc_tmp_name = sc_name + "_tmp"; + uint32_t constant_id = get_decoration(c.self, DecorationSpecId); + if (!unique_func_constants.count(constant_id)) + unique_func_constants.insert(make_pair(constant_id, c.self)); + SPIRType::BaseType sc_tmp_type = expression_type(unique_func_constants[constant_id]).basetype; + string sc_tmp_name = to_name(unique_func_constants[constant_id]) + "_tmp"; // Function constants are only supported in MSL 1.2 and later. // If we don't support it just declare the "default" directly. @@ -6626,12 +7391,13 @@ void CompilerMSL::emit_specialization_constants_and_structs() if (msl_options.supports_msl_version(1, 2) && has_decoration(c.self, DecorationSpecId) && !c.is_used_as_array_length) { - uint32_t constant_id = get_decoration(c.self, DecorationSpecId); // Only scalar, non-composite values can be function constants. - statement("constant ", sc_type_name, " ", sc_tmp_name, " [[function_constant(", constant_id, - ")]];"); + if (unique_func_constants[constant_id] == c.self) + statement("constant ", sc_type_name, " ", sc_tmp_name, " [[function_constant(", constant_id, + ")]];"); statement("constant ", sc_type_name, " ", sc_name, " = is_function_constant_defined(", sc_tmp_name, - ") ? ", sc_tmp_name, " : ", constant_expression(c), ";"); + ") ? ", bitcast_expression(type, sc_tmp_type, sc_tmp_name), " : ", constant_expression(c), + ";"); } else if (has_decoration(c.self, DecorationSpecId)) { @@ -6657,6 +7423,7 @@ void CompilerMSL::emit_specialization_constants_and_structs() { auto &c = id.get(); auto &type = get(c.basetype); + add_resource_name(c.self); auto name = to_name(c.self); statement("constant ", variable_decl(type, name), " = ", constant_op_expression(c), ";"); emitted = true; @@ -6705,12 +7472,44 @@ void CompilerMSL::emit_specialization_constants_and_structs() emit_struct(get(type_id)); } } + else if (id.get_type() == TypeUndef) + { + auto &undef = id.get(); + auto &type = get(undef.basetype); + // OpUndef can be void for some reason ... + if (type.basetype == SPIRType::Void) + return; + + // Undefined global memory is not allowed in MSL. + // Declare constant and init to zeros. Use {}, as global constructors can break Metal. + statement( + inject_top_level_storage_qualifier(variable_decl(type, to_name(undef.self), undef.self), "constant"), + " = {};"); + emitted = true; + } } if (emitted) statement(""); } +void CompilerMSL::emit_binary_ptr_op(uint32_t result_type, uint32_t result_id, uint32_t op0, uint32_t op1, const char *op) +{ + bool forward = should_forward(op0) && should_forward(op1); + emit_op(result_type, result_id, join(to_ptr_expression(op0), " ", op, " ", to_ptr_expression(op1)), forward); + inherit_expression_dependencies(result_id, op0); + inherit_expression_dependencies(result_id, op1); +} + +string CompilerMSL::to_ptr_expression(uint32_t id, bool register_expression_read) +{ + auto *e = maybe_get(id); + auto expr = enclose_expression(e && e->need_transpose ? e->expression : to_expression(id, register_expression_read)); + if (!should_dereference(id)) + expr = address_of_expression(expr); + return expr; +} + void CompilerMSL::emit_binary_unord_op(uint32_t result_type, uint32_t result_id, uint32_t op0, uint32_t op1, const char *op) { @@ -6731,7 +7530,7 @@ bool CompilerMSL::emit_tessellation_io_load(uint32_t result_type_id, uint32_t id auto &result_type = get(result_type_id); if (ptr_type.storage != StorageClassInput && ptr_type.storage != StorageClassOutput) return false; - if (ptr_type.storage == StorageClassOutput && get_execution_model() == ExecutionModelTessellationEvaluation) + if (ptr_type.storage == StorageClassOutput && is_tese_shader()) return false; if (has_decoration(ptr, DecorationPatch)) @@ -7053,21 +7852,22 @@ bool CompilerMSL::emit_tessellation_access_chain(const uint32_t *ops, uint32_t l bool flatten_composites = false; bool is_block = false; - - if (var) - is_block = has_decoration(get_variable_data_type(*var).self, DecorationBlock); + bool is_arrayed = false; if (var) { + auto &type = get_variable_data_type(*var); + is_block = has_decoration(type.self, DecorationBlock); + is_arrayed = !type.array.empty(); + flatten_composites = variable_storage_requires_stage_io(var->storage); - patch = has_decoration(ops[2], DecorationPatch) || is_patch_block(get_variable_data_type(*var)); + patch = has_decoration(ops[2], DecorationPatch) || is_patch_block(type); // Should match strip_array in add_interface_block. - flat_data = var->storage == StorageClassInput || - (var->storage == StorageClassOutput && get_execution_model() == ExecutionModelTessellationControl); + flat_data = var->storage == StorageClassInput || (var->storage == StorageClassOutput && is_tesc_shader()); // Patch inputs are treated as normal block IO variables, so they don't deal with this path at all. - if (patch && (!is_block || var->storage == StorageClassInput)) + if (patch && (!is_block || is_arrayed || var->storage == StorageClassInput)) flat_data = false; // We might have a chained access chain, where @@ -7305,7 +8105,7 @@ bool CompilerMSL::emit_tessellation_access_chain(const uint32_t *ops, uint32_t l expr_type->vecsize > result_ptr_type.vecsize) e += vector_swizzle(result_ptr_type.vecsize, 0); - auto &expr = set(ops[1], move(e), ops[0], should_forward(ops[2])); + auto &expr = set(ops[1], std::move(e), ops[0], should_forward(ops[2])); expr.loaded_from = var->self; expr.need_transpose = meta.need_transpose; expr.access_chain = true; @@ -7348,8 +8148,8 @@ bool CompilerMSL::emit_tessellation_access_chain(const uint32_t *ops, uint32_t l // Don't do this if the index is a constant 1, though. We need to drop stores // to that one. auto *m = ir.find_meta(var ? var->self : ID(0)); - if (get_execution_model() == ExecutionModelTessellationControl && var && m && - m->decoration.builtin_type == BuiltInTessLevelInner && get_entry_point().flags.get(ExecutionModeTriangles)) + if (is_tesc_shader() && var && m && m->decoration.builtin_type == BuiltInTessLevelInner && + is_tessellating_triangles()) { auto *c = maybe_get(ops[3]); if (c && c->scalar() == 1) @@ -7366,7 +8166,7 @@ bool CompilerMSL::emit_tessellation_access_chain(const uint32_t *ops, uint32_t l bool CompilerMSL::is_out_of_bounds_tessellation_level(uint32_t id_lhs) { - if (!get_entry_point().flags.get(ExecutionModeTriangles)) + if (!is_tessellating_triangles()) return false; // In SPIR-V, TessLevelInner always has two elements and TessLevelOuter always has @@ -7376,7 +8176,7 @@ bool CompilerMSL::is_out_of_bounds_tessellation_level(uint32_t id_lhs) // In Metal, however, only the first element of TessLevelInner and the first three // of TessLevelOuter are accessible. This stems from how in Metal, the tessellation // levels must be stored to a dedicated buffer in a particular format that depends - // on the patch type. Therefore, in Triangles mode, any access to the second + // on the patch type. Therefore, in Triangles mode, any store to the second // inner level or the fourth outer level must be dropped. const auto *e = maybe_get(id_lhs); if (!e || !e->access_chain) @@ -7418,8 +8218,7 @@ bool CompilerMSL::access_chain_needs_stage_io_builtin_translation(uint32_t base) // Avoid overriding it back to just gl_ClipDistance. // This can only happen in scenarios where we cannot flatten/unflatten access chains, so, the only case // where this triggers is evaluation shader inputs. - bool redirect_builtin = get_execution_model() == ExecutionModelTessellationEvaluation ? - var->storage == StorageClassOutput : false; + bool redirect_builtin = is_tese_shader() ? var->storage == StorageClassOutput : false; return redirect_builtin; } @@ -7450,7 +8249,7 @@ void CompilerMSL::fix_up_interpolant_access_chain(const uint32_t *ops, uint32_t // for that getting the base index. for (uint32_t i = 3; i < length; ++i) { - if (is_vector(*type) && is_scalar(result_type)) + if (is_vector(*type) && !is_array(*type) && is_scalar(result_type)) { // We don't want to combine the next index. Actually, we need to save it // so we know to apply a swizzle to the result of the interpolation. @@ -7478,12 +8277,31 @@ void CompilerMSL::fix_up_interpolant_access_chain(const uint32_t *ops, uint32_t set_extended_decoration(ops[1], SPIRVCrossDecorationInterfaceMemberIndex, interface_index); } + +// If the physical type of a physical buffer pointer has been changed +// to a ulong or ulongn vector, add a cast back to the pointer type. +void CompilerMSL::check_physical_type_cast(std::string &expr, const SPIRType *type, uint32_t physical_type) +{ + auto *p_physical_type = maybe_get(physical_type); + if (p_physical_type && + p_physical_type->storage == StorageClassPhysicalStorageBuffer && + p_physical_type->basetype == to_unsigned_basetype(64)) + { + if (p_physical_type->vecsize > 1) + expr += ".x"; + + expr = join("((", type_to_glsl(*type), ")", expr, ")"); + } +} + // Override for MSL-specific syntax instructions void CompilerMSL::emit_instruction(const Instruction &instruction) { #define MSL_BOP(op) emit_binary_op(ops[0], ops[1], ops[2], ops[3], #op) +#define MSL_PTR_BOP(op) emit_binary_ptr_op(ops[0], ops[1], ops[2], ops[3], #op) + // MSL does care about implicit integer promotion, but those cases are all handled in common code. #define MSL_BOP_CAST(op, type) \ - emit_binary_op_cast(ops[0], ops[1], ops[2], ops[3], #op, type, opcode_is_sign_invariant(opcode)) + emit_binary_op_cast(ops[0], ops[1], ops[2], ops[3], #op, type, opcode_is_sign_invariant(opcode), false) #define MSL_UOP(op) emit_unary_op(ops[0], ops[1], ops[2], #op) #define MSL_QFOP(op) emit_quaternary_func_op(ops[0], ops[1], ops[2], ops[3], ops[4], ops[5], #op) #define MSL_TFOP(op) emit_trinary_func_op(ops[0], ops[1], ops[2], ops[3], ops[4], #op) @@ -7496,6 +8314,8 @@ void CompilerMSL::emit_instruction(const Instruction &instruction) auto ops = stream(instruction); auto opcode = static_cast(instruction.op); + opcode = get_remapped_spirv_op(opcode); + // If we need to do implicit bitcasts, make sure we do it with the correct type. uint32_t integer_width = get_integer_width_for_instruction(instruction); auto int_type = to_signed_basetype(integer_width); @@ -7538,6 +8358,10 @@ void CompilerMSL::emit_instruction(const Instruction &instruction) case OpLogicalNotEqual: case OpFOrdNotEqual: + // TODO: Should probably negate the == result here. + // Typically OrdNotEqual comes from GLSL which itself does not really specify what + // happens with NaN. + // Consider fixing this if we run into real issues. MSL_BOP(!=); break; @@ -7594,7 +8418,9 @@ void CompilerMSL::emit_instruction(const Instruction &instruction) break; case OpFUnordNotEqual: - MSL_UNORD_BOP(!=); + // not equal in MSL generates une opcodes to begin with. + // Since unordered not equal is how it works in C, just inherit that behavior. + MSL_BOP(!=); break; case OpFUnordGreaterThan: @@ -7613,6 +8439,19 @@ void CompilerMSL::emit_instruction(const Instruction &instruction) MSL_UNORD_BOP(<=); break; + // Pointer math + case OpPtrEqual: + MSL_PTR_BOP(==); + break; + + case OpPtrNotEqual: + MSL_PTR_BOP(!=); + break; + + case OpPtrDiff: + MSL_PTR_BOP(-); + break; + // Derivatives case OpDPdx: case OpDPdxFine: @@ -7701,7 +8540,7 @@ void CompilerMSL::emit_instruction(const Instruction &instruction) uint32_t ptr = ops[2]; uint32_t mem_sem = ops[4]; uint32_t val = ops[5]; - emit_atomic_func_op(result_type, id, "atomic_exchange_explicit", mem_sem, mem_sem, false, ptr, val); + emit_atomic_func_op(result_type, id, "atomic_exchange_explicit", opcode, mem_sem, mem_sem, false, ptr, val); break; } @@ -7714,7 +8553,8 @@ void CompilerMSL::emit_instruction(const Instruction &instruction) uint32_t mem_sem_fail = ops[5]; uint32_t val = ops[6]; uint32_t comp = ops[7]; - emit_atomic_func_op(result_type, id, "atomic_compare_exchange_weak_explicit", mem_sem_pass, mem_sem_fail, true, + emit_atomic_func_op(result_type, id, "atomic_compare_exchange_weak_explicit", opcode, + mem_sem_pass, mem_sem_fail, true, ptr, comp, true, false, val); break; } @@ -7728,7 +8568,7 @@ void CompilerMSL::emit_instruction(const Instruction &instruction) uint32_t id = ops[1]; uint32_t ptr = ops[2]; uint32_t mem_sem = ops[4]; - emit_atomic_func_op(result_type, id, "atomic_load_explicit", mem_sem, mem_sem, false, ptr, 0); + emit_atomic_func_op(result_type, id, "atomic_load_explicit", opcode, mem_sem, mem_sem, false, ptr, 0); break; } @@ -7739,7 +8579,7 @@ void CompilerMSL::emit_instruction(const Instruction &instruction) uint32_t ptr = ops[0]; uint32_t mem_sem = ops[2]; uint32_t val = ops[3]; - emit_atomic_func_op(result_type, id, "atomic_store_explicit", mem_sem, mem_sem, false, ptr, val); + emit_atomic_func_op(result_type, id, "atomic_store_explicit", opcode, mem_sem, mem_sem, false, ptr, val); break; } @@ -7751,7 +8591,8 @@ void CompilerMSL::emit_instruction(const Instruction &instruction) uint32_t ptr = ops[2]; \ uint32_t mem_sem = ops[4]; \ uint32_t val = valsrc; \ - emit_atomic_func_op(result_type, id, "atomic_fetch_" #op "_explicit", mem_sem, mem_sem, false, ptr, val, \ + emit_atomic_func_op(result_type, id, "atomic_fetch_" #op "_explicit", opcode, \ + mem_sem, mem_sem, false, ptr, val, \ false, valconst); \ } while (false) @@ -7767,6 +8608,7 @@ void CompilerMSL::emit_instruction(const Instruction &instruction) break; case OpAtomicIAdd: + case OpAtomicFAddEXT: MSL_AFMO(add); break; @@ -7906,9 +8748,16 @@ void CompilerMSL::emit_instruction(const Instruction &instruction) args.base.is_fetch = true; args.coord = coord_id; args.lod = lod; - statement(join(to_expression(img_id), ".write(", - remap_swizzle(store_type, texel_type.vecsize, to_expression(texel_id)), ", ", - CompilerMSL::to_function_args(args, &forward), ");")); + + string expr; + if (needs_frag_discard_checks()) + expr = join("(", builtin_to_glsl(BuiltInHelperInvocation, StorageClassInput), " ? ((void)0) : "); + expr += join(to_expression(img_id), ".write(", + remap_swizzle(store_type, texel_type.vecsize, to_expression(texel_id)), ", ", + CompilerMSL::to_function_args(args, &forward), ")"); + if (needs_frag_discard_checks()) + expr += ")"; + statement(expr, ";"); if (p_var && variable_storage_is_aliased(*p_var)) flush_all_aliased_variables(); @@ -8044,28 +8893,7 @@ void CompilerMSL::emit_instruction(const Instruction &instruction) uint32_t result_type = ops[0]; uint32_t id = ops[1]; uint32_t arg = ops[2]; - - string exp; - auto &type = get(result_type); - - switch (type.vecsize) - { - case 1: - exp = join("float(half(", to_expression(arg), "))"); - break; - case 2: - exp = join("float2(half2(", to_expression(arg), "))"); - break; - case 3: - exp = join("float3(half3(", to_expression(arg), "))"); - break; - case 4: - exp = join("float4(half4(", to_expression(arg), "))"); - break; - default: - SPIRV_CROSS_THROW("Illegal argument to OpQuantizeToF16."); - } - + string exp = join("spvQuantizeToF16(", to_expression(arg), ")"); emit_op(result_type, id, exp, should_forward(arg)); break; } @@ -8084,14 +8912,34 @@ void CompilerMSL::emit_instruction(const Instruction &instruction) break; case OpStore: + { + const auto &type = expression_type(ops[0]); + if (is_out_of_bounds_tessellation_level(ops[0])) break; - if (maybe_emit_array_assignment(ops[0], ops[1])) - break; - - CompilerGLSL::emit_instruction(instruction); + if (needs_frag_discard_checks() && + (type.storage == StorageClassStorageBuffer || type.storage == StorageClassUniform)) + { + // If we're in a continue block, this kludge will make the block too complex + // to emit normally. + assert(current_emitting_block); + auto cont_type = continue_block_type(*current_emitting_block); + if (cont_type != SPIRBlock::ContinueNone && cont_type != SPIRBlock::ComplexLoop) + { + current_emitting_block->complex_continue = true; + force_recompile(); + } + statement("if (!", builtin_to_glsl(BuiltInHelperInvocation, StorageClassInput), ")"); + begin_scope(); + } + if (!maybe_emit_array_assignment(ops[0], ops[1])) + CompilerGLSL::emit_instruction(instruction); + if (needs_frag_discard_checks() && + (type.storage == StorageClassStorageBuffer || type.storage == StorageClassUniform)) + end_scope(); break; + } // Compute barriers case OpMemoryBarrier: @@ -8118,7 +8966,7 @@ void CompilerMSL::emit_instruction(const Instruction &instruction) expr += "("; for (uint32_t col = 0; col < type.columns; col++) { - expr += to_enclosed_expression(a); + expr += to_enclosed_unpacked_expression(a); expr += " * "; expr += to_extract_component_expression(b, col); if (col + 1 < type.columns) @@ -8223,19 +9071,19 @@ void CompilerMSL::emit_instruction(const Instruction &instruction) auto &res_type = get(type.member_types[1]); if (opcode == OpIAddCarry) { - statement(to_expression(result_id), ".", to_member_name(type, 0), " = ", to_enclosed_expression(op0), " + ", - to_enclosed_expression(op1), ";"); + statement(to_expression(result_id), ".", to_member_name(type, 0), " = ", + to_enclosed_unpacked_expression(op0), " + ", to_enclosed_unpacked_expression(op1), ";"); statement(to_expression(result_id), ".", to_member_name(type, 1), " = select(", type_to_glsl(res_type), - "(1), ", type_to_glsl(res_type), "(0), ", to_expression(result_id), ".", to_member_name(type, 0), - " >= max(", to_expression(op0), ", ", to_expression(op1), "));"); + "(1), ", type_to_glsl(res_type), "(0), ", to_unpacked_expression(result_id), ".", to_member_name(type, 0), + " >= max(", to_unpacked_expression(op0), ", ", to_unpacked_expression(op1), "));"); } else { - statement(to_expression(result_id), ".", to_member_name(type, 0), " = ", to_enclosed_expression(op0), " - ", - to_enclosed_expression(op1), ";"); + statement(to_expression(result_id), ".", to_member_name(type, 0), " = ", to_enclosed_unpacked_expression(op0), " - ", + to_enclosed_unpacked_expression(op1), ";"); statement(to_expression(result_id), ".", to_member_name(type, 1), " = select(", type_to_glsl(res_type), - "(1), ", type_to_glsl(res_type), "(0), ", to_enclosed_expression(op0), - " >= ", to_enclosed_expression(op1), ");"); + "(1), ", type_to_glsl(res_type), "(0), ", to_enclosed_unpacked_expression(op0), + " >= ", to_enclosed_unpacked_expression(op1), ");"); } break; } @@ -8248,12 +9096,33 @@ void CompilerMSL::emit_instruction(const Instruction &instruction) uint32_t op0 = ops[2]; uint32_t op1 = ops[3]; auto &type = get(result_type); + auto input_type = opcode == OpSMulExtended ? int_type : uint_type; + auto &output_type = get_type(result_type); + string cast_op0, cast_op1; + + auto expected_type = binary_op_bitcast_helper(cast_op0, cast_op1, input_type, op0, op1, false); + emit_uninitialized_temporary_expression(result_type, result_id); - statement(to_expression(result_id), ".", to_member_name(type, 0), " = ", to_enclosed_expression(op0), " * ", - to_enclosed_expression(op1), ";"); - statement(to_expression(result_id), ".", to_member_name(type, 1), " = mulhi(", to_expression(op0), ", ", - to_expression(op1), ");"); + string mullo_expr, mulhi_expr; + mullo_expr = join(cast_op0, " * ", cast_op1); + mulhi_expr = join("mulhi(", cast_op0, ", ", cast_op1, ")"); + + auto &low_type = get_type(output_type.member_types[0]); + auto &high_type = get_type(output_type.member_types[1]); + if (low_type.basetype != input_type) + { + expected_type.basetype = input_type; + mullo_expr = join(bitcast_glsl_op(low_type, expected_type), "(", mullo_expr, ")"); + } + if (high_type.basetype != input_type) + { + expected_type.basetype = input_type; + mulhi_expr = join(bitcast_glsl_op(high_type, expected_type), "(", mulhi_expr, ")"); + } + + statement(to_expression(result_id), ".", to_member_name(type, 0), " = ", mullo_expr, ";"); + statement(to_expression(result_id), ".", to_member_name(type, 1), " = ", mulhi_expr, ";"); break; } @@ -8308,8 +9177,7 @@ void CompilerMSL::emit_instruction(const Instruction &instruction) uint32_t id = ops[1]; uint32_t a = ops[2], b = ops[3]; bool forward = should_forward(a) && should_forward(b); - emit_op(result_type, id, join("int(short(", to_expression(a), ")) * int(short(", to_expression(b), "))"), - forward); + emit_op(result_type, id, join("int(short(", to_unpacked_expression(a), ")) * int(short(", to_unpacked_expression(b), "))"), forward); inherit_expression_dependencies(id, a); inherit_expression_dependencies(id, b); break; @@ -8321,8 +9189,7 @@ void CompilerMSL::emit_instruction(const Instruction &instruction) uint32_t id = ops[1]; uint32_t a = ops[2], b = ops[3]; bool forward = should_forward(a) && should_forward(b); - emit_op(result_type, id, join("uint(ushort(", to_expression(a), ")) * uint(ushort(", to_expression(b), "))"), - forward); + emit_op(result_type, id, join("uint(ushort(", to_unpacked_expression(a), ")) * uint(ushort(", to_unpacked_expression(b), "))"), forward); inherit_expression_dependencies(id, a); inherit_expression_dependencies(id, b); break; @@ -8340,7 +9207,10 @@ void CompilerMSL::emit_instruction(const Instruction &instruction) SPIRV_CROSS_THROW("simd_is_helper_thread() requires MSL 2.3 on iOS."); else if (msl_options.is_macos() && !msl_options.supports_msl_version(2, 1)) SPIRV_CROSS_THROW("simd_is_helper_thread() requires MSL 2.1 on macOS."); - emit_op(ops[0], ops[1], "simd_is_helper_thread()", false); + emit_op(ops[0], ops[1], + needs_manual_helper_invocation_updates() ? builtin_to_glsl(BuiltInHelperInvocation, StorageClassInput) : + "simd_is_helper_thread()", + false); break; case OpBeginInvocationInterlockEXT: @@ -8349,6 +9219,126 @@ void CompilerMSL::emit_instruction(const Instruction &instruction) SPIRV_CROSS_THROW("Raster order groups require MSL 2.0."); break; // Nothing to do in the body + case OpConvertUToAccelerationStructureKHR: + SPIRV_CROSS_THROW("ConvertUToAccelerationStructure is not supported in MSL."); + case OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: + SPIRV_CROSS_THROW("BindingTableRecordOffset is not supported in MSL."); + + case OpRayQueryInitializeKHR: + { + flush_variable_declaration(ops[0]); + + statement(to_expression(ops[0]), ".reset(", "ray(", to_expression(ops[4]), ", ", to_expression(ops[6]), ", ", + to_expression(ops[5]), ", ", to_expression(ops[7]), "), ", to_expression(ops[1]), + ", intersection_params());"); + break; + } + case OpRayQueryProceedKHR: + { + flush_variable_declaration(ops[0]); + emit_op(ops[0], ops[1], join(to_expression(ops[2]), ".next()"), false); + break; + } +#define MSL_RAY_QUERY_IS_CANDIDATE get(ops[3]).scalar_i32() == 0 + +#define MSL_RAY_QUERY_GET_OP(op, msl_op) \ + case OpRayQueryGet##op##KHR: \ + flush_variable_declaration(ops[2]); \ + emit_op(ops[0], ops[1], join(to_expression(ops[2]), ".get_" #msl_op "()"), false); \ + break + +#define MSL_RAY_QUERY_OP_INNER2(op, msl_prefix, msl_op) \ + case OpRayQueryGet##op##KHR: \ + flush_variable_declaration(ops[2]); \ + if (MSL_RAY_QUERY_IS_CANDIDATE) \ + emit_op(ops[0], ops[1], join(to_expression(ops[2]), #msl_prefix "_candidate_" #msl_op "()"), false); \ + else \ + emit_op(ops[0], ops[1], join(to_expression(ops[2]), #msl_prefix "_committed_" #msl_op "()"), false); \ + break + +#define MSL_RAY_QUERY_GET_OP2(op, msl_op) MSL_RAY_QUERY_OP_INNER2(op, .get, msl_op) +#define MSL_RAY_QUERY_IS_OP2(op, msl_op) MSL_RAY_QUERY_OP_INNER2(op, .is, msl_op) + + MSL_RAY_QUERY_GET_OP(RayTMin, ray_min_distance); + MSL_RAY_QUERY_GET_OP(WorldRayOrigin, world_space_ray_origin); + MSL_RAY_QUERY_GET_OP(WorldRayDirection, world_space_ray_direction); + MSL_RAY_QUERY_GET_OP2(IntersectionInstanceId, instance_id); + MSL_RAY_QUERY_GET_OP2(IntersectionInstanceCustomIndex, user_instance_id); + MSL_RAY_QUERY_GET_OP2(IntersectionBarycentrics, triangle_barycentric_coord); + MSL_RAY_QUERY_GET_OP2(IntersectionPrimitiveIndex, primitive_id); + MSL_RAY_QUERY_GET_OP2(IntersectionGeometryIndex, geometry_id); + MSL_RAY_QUERY_GET_OP2(IntersectionObjectRayOrigin, ray_origin); + MSL_RAY_QUERY_GET_OP2(IntersectionObjectRayDirection, ray_direction); + MSL_RAY_QUERY_GET_OP2(IntersectionObjectToWorld, object_to_world_transform); + MSL_RAY_QUERY_GET_OP2(IntersectionWorldToObject, world_to_object_transform); + MSL_RAY_QUERY_IS_OP2(IntersectionFrontFace, triangle_front_facing); + + case OpRayQueryGetIntersectionTypeKHR: + flush_variable_declaration(ops[2]); + if (MSL_RAY_QUERY_IS_CANDIDATE) + emit_op(ops[0], ops[1], join("uint(", to_expression(ops[2]), ".get_candidate_intersection_type()) - 1"), + false); + else + emit_op(ops[0], ops[1], join("uint(", to_expression(ops[2]), ".get_committed_intersection_type())"), false); + break; + case OpRayQueryGetIntersectionTKHR: + flush_variable_declaration(ops[2]); + if (MSL_RAY_QUERY_IS_CANDIDATE) + emit_op(ops[0], ops[1], join(to_expression(ops[2]), ".get_candidate_triangle_distance()"), false); + else + emit_op(ops[0], ops[1], join(to_expression(ops[2]), ".get_committed_distance()"), false); + break; + case OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: + { + flush_variable_declaration(ops[0]); + emit_op(ops[0], ops[1], join(to_expression(ops[2]), ".is_candidate_non_opaque_bounding_box()"), false); + break; + } + case OpRayQueryConfirmIntersectionKHR: + flush_variable_declaration(ops[0]); + statement(to_expression(ops[0]), ".commit_triangle_intersection();"); + break; + case OpRayQueryGenerateIntersectionKHR: + flush_variable_declaration(ops[0]); + statement(to_expression(ops[0]), ".commit_bounding_box_intersection(", to_expression(ops[1]), ");"); + break; + case OpRayQueryTerminateKHR: + flush_variable_declaration(ops[0]); + statement(to_expression(ops[0]), ".abort();"); + break; +#undef MSL_RAY_QUERY_GET_OP +#undef MSL_RAY_QUERY_IS_CANDIDATE +#undef MSL_RAY_QUERY_IS_OP2 +#undef MSL_RAY_QUERY_GET_OP2 +#undef MSL_RAY_QUERY_OP_INNER2 + + case OpConvertPtrToU: + case OpConvertUToPtr: + case OpBitcast: + { + auto &type = get(ops[0]); + auto &input_type = expression_type(ops[2]); + + if (opcode != OpBitcast || type.pointer || input_type.pointer) + { + string op; + + if (type.vecsize == 1 && input_type.vecsize == 1) + op = join("reinterpret_cast<", type_to_glsl(type), ">(", to_unpacked_expression(ops[2]), ")"); + else if (input_type.vecsize == 2) + op = join("reinterpret_cast<", type_to_glsl(type), ">(as_type(", to_unpacked_expression(ops[2]), "))"); + else + op = join("as_type<", type_to_glsl(type), ">(reinterpret_cast(", to_unpacked_expression(ops[2]), "))"); + + emit_op(ops[0], ops[1], op, should_forward(ops[2])); + inherit_expression_dependencies(ops[1], ops[2]); + } + else + CompilerGLSL::emit_instruction(instruction); + + break; + } + default: CompilerGLSL::emit_instruction(instruction); break; @@ -8390,7 +9380,7 @@ void CompilerMSL::emit_texture_op(const Instruction &i, bool sparse) void CompilerMSL::emit_barrier(uint32_t id_exe_scope, uint32_t id_mem_scope, uint32_t id_mem_sem) { - if (get_execution_model() != ExecutionModelGLCompute && get_execution_model() != ExecutionModelTessellationControl) + if (get_execution_model() != ExecutionModelGLCompute && !is_tesc_shader()) return; uint32_t exe_scope = id_exe_scope ? evaluate_constant_u32(id_exe_scope) : uint32_t(ScopeInvocation); @@ -8417,13 +9407,12 @@ void CompilerMSL::emit_barrier(uint32_t id_exe_scope, uint32_t id_mem_scope, uin string mem_flags = ""; // For tesc shaders, this also affects objects in the Output storage class. // Since in Metal, these are placed in a device buffer, we have to sync device memory here. - if (get_execution_model() == ExecutionModelTessellationControl || + if (is_tesc_shader() || (mem_sem & (MemorySemanticsUniformMemoryMask | MemorySemanticsCrossWorkgroupMemoryMask))) mem_flags += "mem_flags::mem_device"; // Fix tessellation patch function processing - if (get_execution_model() == ExecutionModelTessellationControl || - (mem_sem & (MemorySemanticsSubgroupMemoryMask | MemorySemanticsWorkgroupMemoryMask))) + if (is_tesc_shader() || (mem_sem & (MemorySemanticsSubgroupMemoryMask | MemorySemanticsWorkgroupMemoryMask))) { if (!mem_flags.empty()) mem_flags += " | "; @@ -8494,13 +9483,27 @@ void CompilerMSL::emit_array_copy(const string &lhs, uint32_t lhs_id, uint32_t r // Special considerations for stage IO variables. // If the variable is actually backed by non-user visible device storage, we use array templates for those. + // + // Another special consideration is given to thread local variables which happen to have Offset decorations + // applied to them. Block-like types do not use array templates, so we need to force POD path if we detect + // these scenarios. This check isn't perfect since it would be technically possible to mix and match these things, + // and for a fully correct solution we might have to track array template state through access chains as well, + // but for all reasonable use cases, this should suffice. + // This special case should also only apply to Function/Private storage classes. + // We should not check backing variable for temporaries. auto *lhs_var = maybe_get_backing_variable(lhs_id); if (lhs_var && lhs_storage == StorageClassStorageBuffer && storage_class_array_is_thread(lhs_var->storage)) lhs_is_array_template = true; + else if (lhs_var && (lhs_storage == StorageClassFunction || lhs_storage == StorageClassPrivate) && + type_is_block_like(get(lhs_var->basetype))) + lhs_is_array_template = false; auto *rhs_var = maybe_get_backing_variable(rhs_id); if (rhs_var && rhs_storage == StorageClassStorageBuffer && storage_class_array_is_thread(rhs_var->storage)) rhs_is_array_template = true; + else if (rhs_var && (rhs_storage == StorageClassFunction || rhs_storage == StorageClassPrivate) && + type_is_block_like(get(rhs_var->basetype))) + rhs_is_array_template = false; // If threadgroup storage qualifiers are *not* used: // Avoid spvCopy* wrapper functions; Otherwise, spvUnsafeArray<> template cannot be used with that storage qualifier. @@ -8526,7 +9529,7 @@ void CompilerMSL::emit_array_copy(const string &lhs, uint32_t lhs_id, uint32_t r { is_constant = true; } - else if (rhs_storage == StorageClassUniform) + else if (rhs_storage == StorageClassUniform || rhs_storage == StorageClassUniformConstant) { is_constant = true; } @@ -8587,7 +9590,7 @@ void CompilerMSL::emit_array_copy(const string &lhs, uint32_t lhs_id, uint32_t r uint32_t CompilerMSL::get_physical_tess_level_array_size(spv::BuiltIn builtin) const { - if (get_execution_mode_bitset().get(ExecutionModeTriangles)) + if (is_tessellating_triangles()) return builtin == BuiltInTessLevelInner ? 1 : 3; else return builtin == BuiltInTessLevelInner ? 2 : 4; @@ -8621,8 +9624,7 @@ bool CompilerMSL::maybe_emit_array_assignment(uint32_t id_lhs, uint32_t id_rhs) return true; } - if (get_execution_model() == ExecutionModelTessellationControl && - has_decoration(id_lhs, DecorationBuiltIn)) + if (is_tesc_shader() && has_decoration(id_lhs, DecorationBuiltIn)) { auto builtin = BuiltIn(get_decoration(id_lhs, DecorationBuiltIn)); // Need to manually unroll the array store. @@ -8654,20 +9656,52 @@ bool CompilerMSL::maybe_emit_array_assignment(uint32_t id_lhs, uint32_t id_rhs) } // Emits one of the atomic functions. In MSL, the atomic functions operate on pointers -void CompilerMSL::emit_atomic_func_op(uint32_t result_type, uint32_t result_id, const char *op, uint32_t mem_order_1, - uint32_t mem_order_2, bool has_mem_order_2, uint32_t obj, uint32_t op1, +void CompilerMSL::emit_atomic_func_op(uint32_t result_type, uint32_t result_id, const char *op, Op opcode, + uint32_t mem_order_1, uint32_t mem_order_2, bool has_mem_order_2, uint32_t obj, uint32_t op1, bool op1_is_pointer, bool op1_is_literal, uint32_t op2) { - string exp = string(op) + "("; + string exp; auto &type = get_pointee_type(expression_type(obj)); - exp += "("; + auto expected_type = type.basetype; + if (opcode == OpAtomicUMax || opcode == OpAtomicUMin) + expected_type = to_unsigned_basetype(type.width); + else if (opcode == OpAtomicSMax || opcode == OpAtomicSMin) + expected_type = to_signed_basetype(type.width); + + if (type.width == 64) + SPIRV_CROSS_THROW("MSL currently does not support 64-bit atomics."); + + auto remapped_type = type; + remapped_type.basetype = expected_type; + auto *var = maybe_get_backing_variable(obj); if (!var) SPIRV_CROSS_THROW("No backing variable for atomic operation."); - - // Emulate texture2D atomic operations const auto &res_type = get(var->basetype); + + bool is_atomic_compare_exchange_strong = op1_is_pointer && op1; + + bool check_discard = opcode != OpAtomicLoad && needs_frag_discard_checks() && + ((res_type.storage == StorageClassUniformConstant && res_type.basetype == SPIRType::Image) || + var->storage == StorageClassStorageBuffer || var->storage == StorageClassUniform); + + if (check_discard) + { + if (is_atomic_compare_exchange_strong) + { + // We're already emitting a CAS loop here; a conditional won't hurt. + emit_uninitialized_temporary_expression(result_type, result_id); + statement("if (!", builtin_to_glsl(BuiltInHelperInvocation, StorageClassInput), ")"); + begin_scope(); + } + else + exp = join("(!", builtin_to_glsl(BuiltInHelperInvocation, StorageClassInput), " ? "); + } + + exp += string(op) + "("; + exp += "("; + // Emulate texture2D atomic operations if (res_type.storage == StorageClassUniformConstant && res_type.basetype == SPIRType::Image) { exp += "device"; @@ -8678,14 +9712,14 @@ void CompilerMSL::emit_atomic_func_op(uint32_t result_type, uint32_t result_id, } exp += " atomic_"; - exp += type_to_glsl(type); + // For signed and unsigned min/max, we can signal this through the pointer type. + // There is no other way, since C++ does not have explicit signage for atomics. + exp += type_to_glsl(remapped_type); exp += "*)"; exp += "&"; exp += to_enclosed_expression(obj); - bool is_atomic_compare_exchange_strong = op1_is_pointer && op1; - if (is_atomic_compare_exchange_strong) { assert(strcmp(op, "atomic_compare_exchange_weak_explicit") == 0); @@ -8707,11 +9741,42 @@ void CompilerMSL::emit_atomic_func_op(uint32_t result_type, uint32_t result_id, // the CAS loop, otherwise it will loop infinitely, with the comparison test always failing. // The function updates the comparitor value from the memory value, so the additional // comparison test evaluates the memory value against the expected value. - emit_uninitialized_temporary_expression(result_type, result_id); + if (!check_discard) + emit_uninitialized_temporary_expression(result_type, result_id); statement("do"); begin_scope(); statement(to_name(result_id), " = ", to_expression(op1), ";"); end_scope_decl(join("while (!", exp, " && ", to_name(result_id), " == ", to_enclosed_expression(op1), ")")); + if (check_discard) + { + end_scope(); + statement("else"); + begin_scope(); + exp = "atomic_load_explicit("; + exp += "("; + // Emulate texture2D atomic operations + if (res_type.storage == StorageClassUniformConstant && res_type.basetype == SPIRType::Image) + exp += "device"; + else + exp += get_argument_address_space(*var); + + exp += " atomic_"; + exp += type_to_glsl(remapped_type); + exp += "*)"; + + exp += "&"; + exp += to_enclosed_expression(obj); + + if (has_mem_order_2) + exp += string(", ") + get_memory_order(mem_order_2); + else + exp += string(", ") + get_memory_order(mem_order_1); + + exp += ")"; + + statement(to_name(result_id), " = ", exp, ";"); + end_scope(); + } } else { @@ -8721,7 +9786,7 @@ void CompilerMSL::emit_atomic_func_op(uint32_t result_type, uint32_t result_id, if (op1_is_literal) exp += join(", ", op1); else - exp += ", " + to_expression(op1); + exp += ", " + bitcast_expression(expected_type, op1); } if (op2) exp += ", " + to_expression(op2); @@ -8732,6 +9797,41 @@ void CompilerMSL::emit_atomic_func_op(uint32_t result_type, uint32_t result_id, exp += ")"; + if (check_discard) + { + exp += " : "; + if (strcmp(op, "atomic_store_explicit") != 0) + { + exp += "atomic_load_explicit("; + exp += "("; + // Emulate texture2D atomic operations + if (res_type.storage == StorageClassUniformConstant && res_type.basetype == SPIRType::Image) + exp += "device"; + else + exp += get_argument_address_space(*var); + + exp += " atomic_"; + exp += type_to_glsl(remapped_type); + exp += "*)"; + + exp += "&"; + exp += to_enclosed_expression(obj); + + if (has_mem_order_2) + exp += string(", ") + get_memory_order(mem_order_2); + else + exp += string(", ") + get_memory_order(mem_order_1); + + exp += ")"; + } + else + exp += "((void)0)"; + exp += ")"; + } + + if (expected_type != type.basetype) + exp = bitcast_expression(type, expected_type, exp); + if (strcmp(op, "atomic_store_explicit") != 0) emit_op(result_type, result_id, exp, false); else @@ -8747,7 +9847,8 @@ const char *CompilerMSL::get_memory_order(uint32_t) return "memory_order_relaxed"; } -// Override for MSL-specific extension syntax instructions +// Override for MSL-specific extension syntax instructions. +// In some cases, deliberately select either the fast or precise versions of the MSL functions to match Vulkan math precision results. void CompilerMSL::emit_glsl_op(uint32_t result_type, uint32_t id, uint32_t eop, const uint32_t *args, uint32_t count) { auto op = static_cast(eop); @@ -8757,10 +9858,21 @@ void CompilerMSL::emit_glsl_op(uint32_t result_type, uint32_t id, uint32_t eop, auto int_type = to_signed_basetype(integer_width); auto uint_type = to_unsigned_basetype(integer_width); + op = get_remapped_glsl_op(op); + switch (op) { + case GLSLstd450Sinh: + emit_unary_func_op(result_type, id, args[0], "fast::sinh"); + break; + case GLSLstd450Cosh: + emit_unary_func_op(result_type, id, args[0], "fast::cosh"); + break; + case GLSLstd450Tanh: + emit_unary_func_op(result_type, id, args[0], "precise::tanh"); + break; case GLSLstd450Atan2: - emit_binary_func_op(result_type, id, args[0], args[1], "atan2"); + emit_binary_func_op(result_type, id, args[0], args[1], "precise::atan2"); break; case GLSLstd450InverseSqrt: emit_unary_func_op(result_type, id, args[0], "rsqrt"); @@ -8984,27 +10096,27 @@ void CompilerMSL::emit_glsl_op(uint32_t result_type, uint32_t id, uint32_t eop, break; case GLSLstd450Length: - // MSL does not support scalar versions here. + // MSL does not support scalar versions, so use abs(). if (expression_type(args[0]).vecsize == 1) - { - // Equivalent to abs(). emit_unary_func_op(result_type, id, args[0], "abs"); - } else CompilerGLSL::emit_glsl_op(result_type, id, eop, args, count); break; case GLSLstd450Normalize: + { + auto &exp_type = expression_type(args[0]); // MSL does not support scalar versions here. - if (expression_type(args[0]).vecsize == 1) - { - // Returns -1 or 1 for valid input, sign() does the job. + // MSL has no implementation for normalize in the fast:: namespace for half2 and half3 + // Returns -1 or 1 for valid input, sign() does the job. + if (exp_type.vecsize == 1) emit_unary_func_op(result_type, id, args[0], "sign"); - } + else if (exp_type.vecsize <= 3 && exp_type.basetype == SPIRType::Half) + emit_unary_func_op(result_type, id, args[0], "normalize"); else - CompilerGLSL::emit_glsl_op(result_type, id, eop, args, count); + emit_unary_func_op(result_type, id, args[0], "fast::normalize"); break; - + } case GLSLstd450Reflect: if (get(result_type).vecsize == 1) emit_binary_func_op(result_type, id, args[0], args[1], "spvReflect"); @@ -9030,8 +10142,16 @@ void CompilerMSL::emit_glsl_op(uint32_t result_type, uint32_t id, uint32_t eop, case GLSLstd450Frexp: { // Special case. If the variable is a scalar access chain, we cannot use it directly. We have to emit a temporary. + // Another special case is if the variable is in a storage class which is not thread. auto *ptr = maybe_get(args[1]); - if (ptr && ptr->access_chain && is_scalar(expression_type(args[1]))) + auto &type = expression_type(args[1]); + + bool is_thread_storage = storage_class_array_is_thread(type.storage); + if (type.storage == StorageClassOutput && capture_output_to_buffer) + is_thread_storage = false; + + if (!is_thread_storage || + (ptr && ptr->access_chain && is_scalar(expression_type(args[1])))) { register_call_out_argument(args[1]); forced_temporaries.insert(id); @@ -9042,7 +10162,7 @@ void CompilerMSL::emit_glsl_op(uint32_t result_type, uint32_t id, uint32_t eop, if (!tmp_id) tmp_id = ir.increase_bound_by(1); - uint32_t tmp_type_id = get_pointee_type_id(ptr->expression_type); + uint32_t tmp_type_id = get_pointee_type_id(expression_type_id(args[1])); emit_uninitialized_temporary_expression(tmp_type_id, tmp_id); emit_binary_func_op(result_type, id, args[0], tmp_id, eop == GLSLstd450Modf ? "modf" : "frexp"); statement(to_expression(args[1]), " = ", to_expression(tmp_id), ";"); @@ -9155,6 +10275,9 @@ void CompilerMSL::emit_function_prototype(SPIRFunction &func, const Bitset &) else decl += entry_point_args_classic(!func.arguments.empty()); + // append entry point args to avoid conflicts in local variable names. + local_variable_names.insert(resource_names.begin(), resource_names.end()); + // If entry point function has variables that require early declaration, // ensure they each have an empty initializer, creating one if needed. // This is done at this late stage because the initialization expression @@ -9206,7 +10329,20 @@ void CompilerMSL::emit_function_prototype(SPIRFunction &func, const Bitset &) // Manufacture automatic sampler arg for SampledImage texture if (arg_type.image.dim != DimBuffer) - decl += join(", thread const ", sampler_type(arg_type, arg.id), " ", to_sampler_expression(arg.id)); + { + if (arg_type.array.empty()) + { + decl += join(", ", sampler_type(arg_type, arg.id), " ", to_sampler_expression(arg.id)); + } + else + { + const char *sampler_address_space = + descriptor_address_space(name_id, + StorageClassUniformConstant, + "thread const"); + decl += join(", ", sampler_address_space, " ", sampler_type(arg_type, arg.id), "& ", to_sampler_expression(arg.id)); + } + } } // Manufacture automatic swizzle arg. @@ -9217,7 +10353,7 @@ void CompilerMSL::emit_function_prototype(SPIRFunction &func, const Bitset &) decl += join(", constant uint", arg_is_array ? "* " : "& ", to_swizzle_expression(arg.id)); } - if (buffers_requiring_array_length.count(name_id)) + if (buffer_requires_array_length(name_id)) { bool arg_is_array = !arg_type.array.empty(); decl += join(", constant uint", arg_is_array ? "* " : "& ", to_buffer_size_expression(name_id)); @@ -9242,8 +10378,6 @@ static bool needs_chroma_reconstruction(const MSLConstexprSampler *constexpr_sam string CompilerMSL::to_function_name(const TextureFunctionNameArguments &args) { VariableID img = args.base.img; - auto &imgtype = *args.base.imgtype; - const MSLConstexprSampler *constexpr_sampler = nullptr; bool is_dynamic_img_sampler = false; if (auto *var = maybe_get_backing_variable(img)) @@ -9257,8 +10391,9 @@ string CompilerMSL::to_function_name(const TextureFunctionNameArguments &args) if (msl_options.swizzle_texture_samples && args.base.is_gather && !is_dynamic_img_sampler && (!constexpr_sampler || !constexpr_sampler->ycbcr_conversion_enable)) { - add_spv_func_and_recompile(imgtype.image.depth ? SPVFuncImplGatherCompareSwizzle : SPVFuncImplGatherSwizzle); - return imgtype.image.depth ? "spvGatherCompareSwizzle" : "spvGatherSwizzle"; + bool is_compare = comparison_ids.count(img); + add_spv_func_and_recompile(is_compare ? SPVFuncImplGatherCompareSwizzle : SPVFuncImplGatherSwizzle); + return is_compare ? "spvGatherCompareSwizzle" : "spvGatherSwizzle"; } auto *combined = maybe_get(img); @@ -9582,25 +10717,24 @@ string CompilerMSL::to_function_args(const TextureFunctionArguments &args, bool break; } - if (args.base.is_fetch && (args.offset || args.coffset)) + if (args.base.is_fetch && args.offset) { - uint32_t offset_expr = args.offset ? args.offset : args.coffset; // Fetch offsets must be applied directly to the coordinate. - forward = forward && should_forward(offset_expr); - auto &type = expression_type(offset_expr); + forward = forward && should_forward(args.offset); + auto &type = expression_type(args.offset); if (imgtype.image.dim == Dim1D && msl_options.texture_1D_as_2D) { if (type.basetype != SPIRType::UInt) - tex_coords += join(" + uint2(", bitcast_expression(SPIRType::UInt, offset_expr), ", 0)"); + tex_coords += join(" + uint2(", bitcast_expression(SPIRType::UInt, args.offset), ", 0)"); else - tex_coords += join(" + uint2(", to_enclosed_expression(offset_expr), ", 0)"); + tex_coords += join(" + uint2(", to_enclosed_expression(args.offset), ", 0)"); } else { if (type.basetype != SPIRType::UInt) - tex_coords += " + " + bitcast_expression(SPIRType::UInt, offset_expr); + tex_coords += " + " + bitcast_expression(SPIRType::UInt, args.offset); else - tex_coords += " + " + to_enclosed_expression(offset_expr); + tex_coords += " + " + to_enclosed_expression(args.offset); } } @@ -9705,7 +10839,8 @@ string CompilerMSL::to_function_args(const TextureFunctionArguments &args, bool // We will detect a compile-time constant 0 value for gradient and promote that to level(0) on MSL. bool constant_zero_x = !grad_x || expression_is_constant_null(grad_x); bool constant_zero_y = !grad_y || expression_is_constant_null(grad_y); - if (constant_zero_x && constant_zero_y) + if (constant_zero_x && constant_zero_y && + (!imgtype.image.arrayed || !msl_options.sample_dref_lod_array_as_grad)) { lod = 0; grad_x = 0; @@ -9751,6 +10886,52 @@ string CompilerMSL::to_function_args(const TextureFunctionArguments &args, bool { farg_str += ", " + to_expression(lod); } + else if (msl_options.sample_dref_lod_array_as_grad && args.dref && imgtype.image.arrayed) + { + if (msl_options.is_macos() && !msl_options.supports_msl_version(2, 3)) + SPIRV_CROSS_THROW("Using non-constant 0.0 gradient() qualifier for sample_compare. This is not " + "supported on macOS prior to MSL 2.3."); + // Some Metal devices have a bug where the LoD is erroneously biased upward + // when using a level() argument. Since this doesn't happen as much with gradient2d(), + // if we perform the LoD calculation in reverse, we can pass a gradient + // instead. + // lod = log2(rhoMax/eta) -> exp2(lod) = rhoMax/eta + // If we make all of the scale factors the same, eta will be 1 and + // exp2(lod) = rho. + // rhoX = dP/dx * extent; rhoY = dP/dy * extent + // Therefore, dP/dx = dP/dy = exp2(lod)/extent. + // (Subtracting 0.5 before exponentiation gives better results.) + string grad_opt, extent; + switch (imgtype.image.dim) + { + case Dim1D: + grad_opt = "2d"; + extent = join("float2(", to_expression(img), ".get_width(), 1.0)"); + break; + case Dim2D: + grad_opt = "2d"; + extent = join("float2(", to_expression(img), ".get_width(), ", to_expression(img), ".get_height())"); + break; + case DimCube: + if (imgtype.image.arrayed && msl_options.emulate_cube_array) + { + grad_opt = "2d"; + extent = join("float2(", to_expression(img), ".get_width())"); + } + else + { + grad_opt = "cube"; + extent = join("float3(", to_expression(img), ".get_width())"); + } + break; + default: + grad_opt = "unsupported_gradient_dimension"; + extent = "float3(1.0)"; + break; + } + farg_str += join(", gradient", grad_opt, "(exp2(", to_expression(lod), " - 0.5) / ", extent, ", exp2(", + to_expression(lod), " - 0.5) / ", extent, ")"); + } else { farg_str += ", level(" + to_expression(lod) + ")"; @@ -9804,13 +10985,7 @@ string CompilerMSL::to_function_args(const TextureFunctionArguments &args, bool // Add offsets string offset_expr; const SPIRType *offset_type = nullptr; - if (args.coffset && !args.base.is_fetch) - { - forward = forward && should_forward(args.coffset); - offset_expr = to_expression(args.coffset); - offset_type = &expression_type(args.coffset); - } - else if (args.offset && !args.base.is_fetch) + if (args.offset && !args.base.is_fetch) { forward = forward && should_forward(args.offset); offset_expr = to_expression(args.offset); @@ -9870,7 +11045,7 @@ string CompilerMSL::to_function_args(const TextureFunctionArguments &args, bool image_var = var->self; } - if (image_var == 0 || !image_is_comparison(expression_type(image_var), image_var)) + if (image_var == 0 || !is_depth_image(expression_type(image_var), image_var)) farg_str += ", " + to_component_argument(args.component); } } @@ -9890,7 +11065,7 @@ string CompilerMSL::to_function_args(const TextureFunctionArguments &args, bool // If the texture coordinates are floating point, invokes MSL round() function to round them. string CompilerMSL::round_fp_tex_coords(string tex_coords, bool coord_is_fp) { - return coord_is_fp ? ("round(" + tex_coords + ")") : tex_coords; + return coord_is_fp ? ("rint(" + tex_coords + ")") : tex_coords; } // Returns a string to use in an image sampling function argument. @@ -9912,7 +11087,6 @@ string CompilerMSL::to_component_argument(uint32_t id) default: SPIRV_CROSS_THROW("The value (" + to_string(component_index) + ") of OpConstant ID " + to_string(id) + " is not a valid Component index, which must be one of 0, 1, 2, or 3."); - return "component::x"; } } @@ -10120,7 +11294,6 @@ static string create_swizzle(MSLComponentSwizzle swizzle) return "spvSwizzle::alpha"; default: SPIRV_CROSS_THROW("Invalid component swizzle."); - return ""; } } @@ -10158,6 +11331,10 @@ string CompilerMSL::to_func_call_arg(const SPIRFunction::Parameter &arg, uint32_ constants.push_back(id); } } + // Dereference pointer variables where needed. + // FIXME: This dereference is actually backwards. We should really just support passing pointer variables between functions. + else if (should_dereference(id)) + arg_str += dereference_expression(type, CompilerGLSL::to_func_call_arg(arg, id)); else arg_str += CompilerGLSL::to_func_call_arg(arg, id); @@ -10253,7 +11430,7 @@ string CompilerMSL::to_func_call_arg(const SPIRFunction::Parameter &arg, uint32_ else if (msl_options.swizzle_texture_samples && has_sampled_images && is_sampled_image_type(type)) arg_str += ", " + to_swizzle_expression(var_id ? var_id : id); - if (buffers_requiring_array_length.count(var_id)) + if (buffer_requires_array_length(var_id)) arg_str += ", " + to_buffer_size_expression(var_id ? var_id : id); if (is_dynamic_img_sampler) @@ -10373,11 +11550,11 @@ bool CompilerMSL::member_is_non_native_row_major_matrix(const SPIRType &type, ui } string CompilerMSL::convert_row_major_matrix(string exp_str, const SPIRType &exp_type, uint32_t physical_type_id, - bool is_packed) + bool is_packed, bool relaxed) { if (!is_matrix(exp_type)) { - return CompilerGLSL::convert_row_major_matrix(move(exp_str), exp_type, physical_type_id, is_packed); + return CompilerGLSL::convert_row_major_matrix(std::move(exp_str), exp_type, physical_type_id, is_packed, relaxed); } else { @@ -10468,19 +11645,33 @@ string CompilerMSL::to_struct_member(const SPIRType &type, uint32_t member_type_ else if (!is_scalar(physical_type)) // scalar type is already packed. pack_pfx = "packed_"; } - else if (row_major) + else if (is_matrix(physical_type)) { - // Need to declare type with flipped vecsize/columns. - row_major_physical_type = physical_type; - swap(row_major_physical_type.vecsize, row_major_physical_type.columns); - declared_type = &row_major_physical_type; + if (!msl_options.supports_msl_version(3, 0) && + has_extended_decoration(type.self, SPIRVCrossDecorationWorkgroupStruct)) + { + pack_pfx = "spvStorage_"; + add_spv_func_and_recompile(SPVFuncImplStorageMatrix); + // The pack prefix causes problems with array wrappers. + is_using_builtin_array = true; + } + if (row_major) + { + // Need to declare type with flipped vecsize/columns. + row_major_physical_type = physical_type; + swap(row_major_physical_type.vecsize, row_major_physical_type.columns); + declared_type = &row_major_physical_type; + } } - // Very specifically, image load-store in argument buffers are disallowed on MSL on iOS. - if (msl_options.is_ios() && physical_type.basetype == SPIRType::Image && physical_type.image.sampled == 2) + // iOS Tier 1 argument buffers do not support writable images. + if (physical_type.basetype == SPIRType::Image && + physical_type.image.sampled == 2 && + msl_options.is_ios() && + msl_options.argument_buffers_tier <= Options::ArgumentBuffersTier::Tier1 && + !has_decoration(orig_id, DecorationNonWritable)) { - if (!has_decoration(orig_id, DecorationNonWritable)) - SPIRV_CROSS_THROW("Writable images are not allowed in argument buffers on iOS."); + SPIRV_CROSS_THROW("Writable images are not allowed on Tier1 argument buffers on iOS."); } // Array information is baked into these types. @@ -10503,8 +11694,8 @@ string CompilerMSL::to_struct_member(const SPIRType &type, uint32_t member_type_ array_type = type_to_array_glsl(physical_type); } - auto result = join(pack_pfx, type_to_glsl(*declared_type, orig_id), " ", qualifier, to_member_name(type, index), - member_attribute_qualifier(type, index), array_type, ";"); + auto result = join(pack_pfx, type_to_glsl(*declared_type, orig_id, true), " ", qualifier, + to_member_name(type, index), member_attribute_qualifier(type, index), array_type, ";"); is_using_builtin_array = false; return result; @@ -10595,8 +11786,7 @@ string CompilerMSL::member_attribute_qualifier(const SPIRType &type, uint32_t in } // Vertex and tessellation evaluation function outputs - if (((execution.model == ExecutionModelVertex && !msl_options.vertex_for_tessellation) || - execution.model == ExecutionModelTessellationEvaluation) && + if (((execution.model == ExecutionModelVertex && !msl_options.vertex_for_tessellation) || is_tese_shader()) && type.storage == StorageClassOutput) { if (is_builtin) @@ -10634,19 +11824,23 @@ string CompilerMSL::member_attribute_qualifier(const SPIRType &type, uint32_t in return ""; } } - uint32_t comp; - uint32_t locn = get_member_location(type.self, index, &comp); - if (locn != k_unknown_location) - { - if (comp != k_unknown_component) - return string(" [[user(locn") + convert_to_string(locn) + "_" + convert_to_string(comp) + ")]]"; - else - return string(" [[user(locn") + convert_to_string(locn) + ")]]"; - } + string loc_qual = member_location_attribute_qualifier(type, index); + if (!loc_qual.empty()) + return join(" [[", loc_qual, "]]"); + } + + if (execution.model == ExecutionModelVertex && msl_options.vertex_for_tessellation && type.storage == StorageClassOutput) + { + // For this type of shader, we always arrange for it to capture its + // output to a buffer. For this reason, qualifiers are irrelevant here. + if (is_builtin) + // We still have to assign a location so the output struct will sort correctly. + get_or_allocate_builtin_output_member_location(builtin, type.self, index); + return ""; } // Tessellation control function inputs - if (execution.model == ExecutionModelTessellationControl && type.storage == StorageClassInput) + if (is_tesc_shader() && type.storage == StorageClassInput) { if (is_builtin) { @@ -10683,15 +11877,18 @@ string CompilerMSL::member_attribute_qualifier(const SPIRType &type, uint32_t in } // Tessellation control function outputs - if (execution.model == ExecutionModelTessellationControl && type.storage == StorageClassOutput) + if (is_tesc_shader() && type.storage == StorageClassOutput) { // For this type of shader, we always arrange for it to capture its // output to a buffer. For this reason, qualifiers are irrelevant here. + if (is_builtin) + // We still have to assign a location so the output struct will sort correctly. + get_or_allocate_builtin_output_member_location(builtin, type.self, index); return ""; } // Tessellation evaluation function inputs - if (execution.model == ExecutionModelTessellationEvaluation && type.storage == StorageClassInput) + if (is_tese_shader() && type.storage == StorageClassInput) { if (is_builtin) { @@ -10707,6 +11904,10 @@ string CompilerMSL::member_attribute_qualifier(const SPIRType &type, uint32_t in break; } } + + if (msl_options.raw_buffer_tese_input) + return ""; + // The special control point array must not be marked with an attribute. if (get_type(type.member_types[index]).basetype == SPIRType::ControlPointArray) return ""; @@ -10741,8 +11942,8 @@ string CompilerMSL::member_attribute_qualifier(const SPIRType &type, uint32_t in case BuiltInSampleId: case BuiltInSampleMask: case BuiltInLayer: - case BuiltInBaryCoordNV: - case BuiltInBaryCoordNoPerspNV: + case BuiltInBaryCoordKHR: + case BuiltInBaryCoordNoPerspKHR: quals = builtin_qualifier(builtin); break; @@ -10756,26 +11957,9 @@ string CompilerMSL::member_attribute_qualifier(const SPIRType &type, uint32_t in } } else - { - uint32_t comp; - uint32_t locn = get_member_location(type.self, index, &comp); - if (locn != k_unknown_location) - { - // For user-defined attributes, this is fine. From Vulkan spec: - // A user-defined output variable is considered to match an input variable in the subsequent stage if - // the two variables are declared with the same Location and Component decoration and match in type - // and decoration, except that interpolation decorations are not required to match. For the purposes - // of interface matching, variables declared without a Component decoration are considered to have a - // Component decoration of zero. + quals = member_location_attribute_qualifier(type, index); - if (comp != k_unknown_component && comp != 0) - quals = string("user(locn") + convert_to_string(locn) + "_" + convert_to_string(comp) + ")"; - else - quals = string("user(locn") + convert_to_string(locn) + ")"; - } - } - - if (builtin == BuiltInBaryCoordNV || builtin == BuiltInBaryCoordNoPerspNV) + if (builtin == BuiltInBaryCoordKHR || builtin == BuiltInBaryCoordNoPerspKHR) { if (has_member_decoration(type.self, index, DecorationFlat) || has_member_decoration(type.self, index, DecorationCentroid) || @@ -10905,6 +12089,30 @@ string CompilerMSL::member_attribute_qualifier(const SPIRType &type, uint32_t in return ""; } +// A user-defined output variable is considered to match an input variable in the subsequent +// stage if the two variables are declared with the same Location and Component decoration and +// match in type and decoration, except that interpolation decorations are not required to match. +// For the purposes of interface matching, variables declared without a Component decoration are +// considered to have a Component decoration of zero. +string CompilerMSL::member_location_attribute_qualifier(const SPIRType &type, uint32_t index) +{ + string quals; + uint32_t comp; + uint32_t locn = get_member_location(type.self, index, &comp); + if (locn != k_unknown_location) + { + quals += "user(locn"; + quals += convert_to_string(locn); + if (comp != k_unknown_component && comp != 0) + { + quals += "_"; + quals += convert_to_string(comp); + } + quals += ")"; + } + return quals; +} + // Returns the location decoration of the member with the specified index in the specified type. // If the location of the member has been explicitly set, that location is used. If not, this // function assumes the members are ordered in their location order, and simply returns the @@ -10957,7 +12165,7 @@ uint32_t CompilerMSL::get_or_allocate_builtin_input_member_location(spv::BuiltIn // Triangle tess level inputs are shared in one packed float4, // mark both builtins as sharing one location. - if (get_execution_mode_bitset().get(ExecutionModeTriangles) && + if (!msl_options.raw_buffer_tese_input && is_tessellating_triangles() && (builtin == BuiltInTessLevelInner || builtin == BuiltInTessLevelOuter)) { builtin_to_automatic_input_location[BuiltInTessLevelInner] = loc; @@ -10970,6 +12178,49 @@ uint32_t CompilerMSL::get_or_allocate_builtin_input_member_location(spv::BuiltIn return loc; } +uint32_t CompilerMSL::get_or_allocate_builtin_output_member_location(spv::BuiltIn builtin, + uint32_t type_id, uint32_t index, + uint32_t *comp) +{ + uint32_t loc = get_member_location(type_id, index, comp); + if (loc != k_unknown_location) + return loc; + loc = 0; + + if (comp) + *comp = k_unknown_component; + + // Late allocation. Find a location which is unused by the application. + // This can happen for built-in outputs in tessellation which are mixed and matched with user inputs. + auto &mbr_type = get(get(type_id).member_types[index]); + uint32_t count = type_to_location_count(mbr_type); + + const auto location_range_in_use = [this](uint32_t location, uint32_t location_count) -> bool { + for (uint32_t i = 0; i < location_count; i++) + if (location_outputs_in_use.count(location + i) != 0) + return true; + return false; + }; + + while (location_range_in_use(loc, count)) + loc++; + + set_member_decoration(type_id, index, DecorationLocation, loc); + + // Triangle tess level inputs are shared in one packed float4; + // mark both builtins as sharing one location. + if (is_tessellating_triangles() && (builtin == BuiltInTessLevelInner || builtin == BuiltInTessLevelOuter)) + { + builtin_to_automatic_output_location[BuiltInTessLevelInner] = loc; + builtin_to_automatic_output_location[BuiltInTessLevelOuter] = loc; + } + else + builtin_to_automatic_output_location[builtin] = loc; + + mark_location_as_used_by_shader(loc, mbr_type, StorageClassOutput, true); + return loc; +} + // Returns the type declaration for a function, including the // entry type if the current function is the entry point function string CompilerMSL::func_type_decl(SPIRType &type) @@ -11000,17 +12251,13 @@ string CompilerMSL::func_type_decl(SPIRType &type) if (execution.flags.get(ExecutionModeIsolines)) SPIRV_CROSS_THROW("Metal does not support isoline tessellation."); if (msl_options.is_ios()) - entry_type = - join("[[ patch(", execution.flags.get(ExecutionModeTriangles) ? "triangle" : "quad", ") ]] vertex"); + entry_type = join("[[ patch(", is_tessellating_triangles() ? "triangle" : "quad", ") ]] vertex"); else - entry_type = join("[[ patch(", execution.flags.get(ExecutionModeTriangles) ? "triangle" : "quad", ", ", + entry_type = join("[[ patch(", is_tessellating_triangles() ? "triangle" : "quad", ", ", execution.output_vertices, ") ]] vertex"); break; case ExecutionModelFragment: - entry_type = execution.flags.get(ExecutionModeEarlyFragmentTests) || - execution.flags.get(ExecutionModePostDepthCoverage) ? - "[[ early_fragment_tests ]] fragment" : - "fragment"; + entry_type = uses_explicit_early_fragment_test() ? "[[ early_fragment_tests ]] fragment" : "fragment"; break; case ExecutionModelTessellationControl: if (!msl_options.supports_msl_version(1, 2)) @@ -11030,6 +12277,22 @@ string CompilerMSL::func_type_decl(SPIRType &type) return entry_type + " " + return_type; } +bool CompilerMSL::is_tesc_shader() const +{ + return get_execution_model() == ExecutionModelTessellationControl; +} + +bool CompilerMSL::is_tese_shader() const +{ + return get_execution_model() == ExecutionModelTessellationEvaluation; +} + +bool CompilerMSL::uses_explicit_early_fragment_test() +{ + auto &ep_flags = get_entry_point().flags; + return ep_flags.get(ExecutionModeEarlyFragmentTests) || ep_flags.get(ExecutionModePostDepthCoverage); +} + // In MSL, address space qualifiers are required for all pointer or reference variables string CompilerMSL::get_argument_address_space(const SPIRVariable &argument) { @@ -11056,6 +12319,7 @@ string CompilerMSL::get_type_address_space(const SPIRType &type, uint32_t id, bo break; case StorageClassStorageBuffer: + case StorageClassPhysicalStorageBuffer: { // For arguments from variable pointers, we use the write count deduction, so // we should not assume any constness here. Only for global SSBOs. @@ -11094,9 +12358,20 @@ string CompilerMSL::get_type_address_space(const SPIRType &type, uint32_t id, bo break; case StorageClassInput: - if (get_execution_model() == ExecutionModelTessellationControl && var && - var->basevariable == stage_in_ptr_var_id) - addr_space = msl_options.multi_patch_workgroup ? "constant" : "threadgroup"; + if (is_tesc_shader() && var && var->basevariable == stage_in_ptr_var_id) + addr_space = msl_options.multi_patch_workgroup ? "const device" : "threadgroup"; + // Don't pass tessellation levels in the device AS; we load and convert them + // to float manually. + if (is_tese_shader() && msl_options.raw_buffer_tese_input && var) + { + bool is_stage_in = var->basevariable == stage_in_ptr_var_id; + bool is_patch_stage_in = has_decoration(var->self, DecorationPatch); + bool is_builtin = has_decoration(var->self, DecorationBuiltIn); + BuiltIn builtin = (BuiltIn)get_decoration(var->self, DecorationBuiltIn); + bool is_tess_level = is_builtin && (builtin == BuiltInTessLevelOuter || builtin == BuiltInTessLevelInner); + if (is_stage_in || (is_patch_stage_in && !is_tess_level)) + addr_space = "const device"; + } if (get_execution_model() == ExecutionModelFragment && var && var->basevariable == stage_in_var_id) addr_space = "thread"; break; @@ -11154,19 +12429,21 @@ const char *CompilerMSL::to_restrict(uint32_t id, bool space) else flags = get_decoration_bitset(id); - return flags.get(DecorationRestrict) ? (space ? "restrict " : "restrict") : ""; + return flags.get(DecorationRestrict) || flags.get(DecorationRestrictPointerEXT) ? + (space ? "__restrict " : "__restrict") : ""; } string CompilerMSL::entry_point_arg_stage_in() { string decl; - if (get_execution_model() == ExecutionModelTessellationControl && msl_options.multi_patch_workgroup) + if ((is_tesc_shader() && msl_options.multi_patch_workgroup) || + (is_tese_shader() && msl_options.raw_buffer_tese_input)) return decl; // Stage-in structure uint32_t stage_in_id; - if (get_execution_model() == ExecutionModelTessellationEvaluation) + if (is_tese_shader()) stage_in_id = patch_stage_in_var_id; else stage_in_id = stage_in_var_id; @@ -11206,7 +12483,7 @@ bool CompilerMSL::is_direct_input_builtin(BuiltIn bi_type) return false; case BuiltInInvocationId: case BuiltInPrimitiveId: - return get_execution_model() != ExecutionModelTessellationControl || !msl_options.multi_patch_workgroup; + return !is_tesc_shader() || !msl_options.multi_patch_workgroup; // Tess. evaluation function in case BuiltInTessLevelInner: case BuiltInTessLevelOuter: @@ -11214,8 +12491,8 @@ bool CompilerMSL::is_direct_input_builtin(BuiltIn bi_type) // Fragment function in case BuiltInSamplePosition: case BuiltInHelperInvocation: - case BuiltInBaryCoordNV: - case BuiltInBaryCoordNoPerspNV: + case BuiltInBaryCoordKHR: + case BuiltInBaryCoordNoPerspKHR: return false; case BuiltInViewIndex: return get_execution_model() == ExecutionModelFragment && msl_options.multiview && @@ -11250,7 +12527,13 @@ bool CompilerMSL::is_sample_rate() const return get_execution_model() == ExecutionModelFragment && (msl_options.force_sample_rate_shading || std::find(caps.begin(), caps.end(), CapabilitySampleRateShading) != caps.end() || - (msl_options.use_framebuffer_fetch_subpasses && need_subpass_input)); + (msl_options.use_framebuffer_fetch_subpasses && need_subpass_input_ms)); +} + +bool CompilerMSL::is_intersection_query() const +{ + auto &caps = get_declared_capabilities(); + return std::find(caps.begin(), caps.end(), CapabilityRayQueryKHR) != caps.end(); } void CompilerMSL::entry_point_args_builtin(string &ep_args) @@ -11284,7 +12567,13 @@ void CompilerMSL::entry_point_args_builtin(string &ep_args) // Handle HLSL-style 0-based vertex/instance index. builtin_declaration = true; - ep_args += builtin_type_decl(bi_type, var_id) + " " + to_expression(var_id); + + // Handle different MSL gl_TessCoord types. (float2, float3) + if (bi_type == BuiltInTessCoord && get_entry_point().flags.get(ExecutionModeQuads)) + ep_args += "float2 " + to_expression(var_id) + "In"; + else + ep_args += builtin_type_decl(bi_type, var_id) + " " + to_expression(var_id); + ep_args += " [[" + builtin_qualifier(bi_type); if (bi_type == BuiltInSampleMask && get_entry_point().flags.get(ExecutionModePostDepthCoverage)) { @@ -11349,7 +12638,7 @@ void CompilerMSL::entry_point_args_builtin(string &ep_args) " [[buffer(", msl_options.shader_output_buffer_index, ")]]"); } - if (get_execution_model() == ExecutionModelTessellationControl) + if (is_tesc_shader()) { if (!ep_args.empty()) ep_args += ", "; @@ -11391,7 +12680,7 @@ void CompilerMSL::entry_point_args_builtin(string &ep_args) // a buffer to hold the per-patch data, a buffer to hold the per-patch // tessellation levels, and a block of workgroup memory to hold the // input control point data. - if (get_execution_model() == ExecutionModelTessellationControl) + if (is_tesc_shader()) { if (patch_stage_out_var_id) { @@ -11425,20 +12714,22 @@ void CompilerMSL::entry_point_args_builtin(string &ep_args) if (outer_factor_initializer_id && (c = maybe_get(outer_factor_initializer_id))) { auto &entry_func = get(ir.default_entry_point); - entry_func.fixup_hooks_in.push_back([=]() { - uint32_t components = get_execution_mode_bitset().get(ExecutionModeTriangles) ? 3 : 4; - for (uint32_t i = 0; i < components; i++) - { - statement(builtin_to_glsl(BuiltInTessLevelOuter, StorageClassOutput), "[", i, "] = ", - "half(", to_expression(c->subconstants[i]), ");"); - } - }); + entry_func.fixup_hooks_in.push_back( + [=]() + { + uint32_t components = is_tessellating_triangles() ? 3 : 4; + for (uint32_t i = 0; i < components; i++) + { + statement(builtin_to_glsl(BuiltInTessLevelOuter, StorageClassOutput), "[", i, + "] = ", "half(", to_expression(c->subconstants[i]), ");"); + } + }); } if (inner_factor_initializer_id && (c = maybe_get(inner_factor_initializer_id))) { auto &entry_func = get(ir.default_entry_point); - if (get_execution_mode_bitset().get(ExecutionModeTriangles)) + if (is_tessellating_triangles()) { entry_func.fixup_hooks_in.push_back([=]() { statement(builtin_to_glsl(BuiltInTessLevelInner, StorageClassOutput), " = ", "half(", @@ -11474,6 +12765,36 @@ void CompilerMSL::entry_point_args_builtin(string &ep_args) } } } + // Tessellation evaluation shaders get three additional parameters: + // a buffer for the per-patch data, a buffer for the per-patch + // tessellation levels, and a buffer for the control point data. + if (is_tese_shader() && msl_options.raw_buffer_tese_input) + { + if (patch_stage_in_var_id) + { + if (!ep_args.empty()) + ep_args += ", "; + ep_args += + join("const device ", type_to_glsl(get_patch_stage_in_struct_type()), "* ", patch_input_buffer_var_name, + " [[buffer(", convert_to_string(msl_options.shader_patch_input_buffer_index), ")]]"); + } + + if (tess_level_inner_var_id || tess_level_outer_var_id) + { + if (!ep_args.empty()) + ep_args += ", "; + ep_args += join("const device ", get_tess_factor_struct_name(), "* ", tess_factor_buffer_var_name, + " [[buffer(", convert_to_string(msl_options.shader_tess_factor_buffer_index), ")]]"); + } + + if (stage_in_var_id) + { + if (!ep_args.empty()) + ep_args += ", "; + ep_args += join("const device ", type_to_glsl(get_stage_in_struct_type()), "* ", input_buffer_var_name, + " [[buffer(", convert_to_string(msl_options.shader_input_buffer_index), ")]]"); + } + } } string CompilerMSL::entry_point_args_argument_buffer(bool append_comma) @@ -11514,7 +12835,7 @@ string CompilerMSL::entry_point_args_argument_buffer(bool append_comma) claimed_bindings.set(buffer_binding); - ep_args += get_argument_address_space(var) + " " + type_to_glsl(type) + "& " + to_restrict(id) + to_name(id); + ep_args += get_argument_address_space(var) + " " + type_to_glsl(type) + "& " + to_restrict(id, true) + to_name(id); ep_args += " [[buffer(" + convert_to_string(buffer_binding) + ")]]"; next_metal_resource_index_buffer = max(next_metal_resource_index_buffer, buffer_binding + 1); @@ -11559,6 +12880,7 @@ void CompilerMSL::entry_point_args_discrete_descriptors(string &ep_args) struct Resource { SPIRVariable *var; + SPIRVariable *descriptor_alias; string name; SPIRType::BaseType basetype; uint32_t index; @@ -11582,6 +12904,37 @@ void CompilerMSL::entry_point_args_discrete_descriptors(string &ep_args) return; } + // Handle descriptor aliasing. We can handle aliasing of buffers by casting pointers, + // but not for typed resources. + SPIRVariable *descriptor_alias = nullptr; + if (var.storage == StorageClassUniform || var.storage == StorageClassStorageBuffer) + { + for (auto &resource : resources) + { + if (get_decoration(resource.var->self, DecorationDescriptorSet) == + get_decoration(var_id, DecorationDescriptorSet) && + get_decoration(resource.var->self, DecorationBinding) == + get_decoration(var_id, DecorationBinding) && + resource.basetype == SPIRType::Struct && type.basetype == SPIRType::Struct && + (resource.var->storage == StorageClassUniform || + resource.var->storage == StorageClassStorageBuffer)) + { + // Possible, but horrible to implement, ignore for now. + if (!type.array.empty()) + SPIRV_CROSS_THROW("Aliasing arrayed discrete descriptors is currently not supported."); + + descriptor_alias = resource.var; + // Self-reference marks that we should declare the resource, + // and it's being used as an alias (so we can emit void* instead). + resource.descriptor_alias = resource.var; + // Need to promote interlocked usage so that the primary declaration is correct. + if (interlocked_resources.count(var_id)) + interlocked_resources.insert(resource.var->self); + break; + } + } + } + const MSLConstexprSampler *constexpr_sampler = nullptr; if (type.basetype == SPIRType::SampledImage || type.basetype == SPIRType::Sampler) { @@ -11609,12 +12962,12 @@ void CompilerMSL::entry_point_args_discrete_descriptors(string &ep_args) plane_count = constexpr_sampler->planes; for (uint32_t i = 0; i < plane_count; i++) - resources.push_back({ &var, to_name(var_id), SPIRType::Image, + resources.push_back({ &var, descriptor_alias, to_name(var_id), SPIRType::Image, get_metal_resource_index(var, SPIRType::Image, i), i, secondary_index }); if (type.image.dim != DimBuffer && !constexpr_sampler) { - resources.push_back({ &var, to_sampler_expression(var_id), SPIRType::Sampler, + resources.push_back({ &var, descriptor_alias, to_sampler_expression(var_id), SPIRType::Sampler, get_metal_resource_index(var, SPIRType::Sampler), 0, 0 }); } } @@ -11622,13 +12975,19 @@ void CompilerMSL::entry_point_args_discrete_descriptors(string &ep_args) { // constexpr samplers are not declared as resources. add_resource_name(var_id); - resources.push_back({ &var, to_name(var_id), type.basetype, - get_metal_resource_index(var, type.basetype), 0, secondary_index }); + + // Don't allocate resource indices for aliases. + uint32_t resource_index = ~0u; + if (!descriptor_alias) + resource_index = get_metal_resource_index(var, type.basetype); + + resources.push_back({ &var, descriptor_alias, to_name(var_id), type.basetype, + resource_index, 0, secondary_index }); } } }); - sort(resources.begin(), resources.end(), [](const Resource &lhs, const Resource &rhs) { + stable_sort(resources.begin(), resources.end(), [](const Resource &lhs, const Resource &rhs) { return tie(lhs.basetype, lhs.index) < tie(rhs.basetype, rhs.index); }); @@ -11646,7 +13005,29 @@ void CompilerMSL::entry_point_args_discrete_descriptors(string &ep_args) auto &m = ir.meta[type.self]; if (m.members.size() == 0) break; - if (!type.array.empty()) + + if (r.descriptor_alias) + { + if (r.var == r.descriptor_alias) + { + auto primary_name = join("spvBufferAliasSet", + get_decoration(var_id, DecorationDescriptorSet), + "Binding", + get_decoration(var_id, DecorationBinding)); + + // Declare the primary alias as void* + if (!ep_args.empty()) + ep_args += ", "; + ep_args += get_argument_address_space(var) + " void* " + primary_name; + ep_args += " [[buffer(" + convert_to_string(r.index) + ")"; + if (interlocked_resources.count(var_id)) + ep_args += ", raster_order_group(0)"; + ep_args += "]]"; + } + + buffer_aliases_discrete.push_back(r.var->self); + } + else if (!type.array.empty()) { if (type.array.size() > 1) SPIRV_CROSS_THROW("Arrays of arrays of buffers are not supported."); @@ -11661,12 +13042,12 @@ void CompilerMSL::entry_point_args_discrete_descriptors(string &ep_args) // Allow Metal to use the array template to make arrays a value type is_using_builtin_array = true; - buffer_arrays.push_back(var_id); + buffer_arrays_discrete.push_back(var_id); for (uint32_t i = 0; i < array_size; ++i) { if (!ep_args.empty()) ep_args += ", "; - ep_args += get_argument_address_space(var) + " " + type_to_glsl(type) + "* " + to_restrict(var_id) + + ep_args += get_argument_address_space(var) + " " + type_to_glsl(type) + "* " + to_restrict(var_id, true) + r.name + "_" + convert_to_string(i); ep_args += " [[buffer(" + convert_to_string(r.index + i) + ")"; if (interlocked_resources.count(var_id)) @@ -11680,7 +13061,7 @@ void CompilerMSL::entry_point_args_discrete_descriptors(string &ep_args) if (!ep_args.empty()) ep_args += ", "; ep_args += - get_argument_address_space(var) + " " + type_to_glsl(type) + "& " + to_restrict(var_id) + r.name; + get_argument_address_space(var) + " " + type_to_glsl(type) + "& " + to_restrict(var_id, true) + r.name; ep_args += " [[buffer(" + convert_to_string(r.index) + ")"; if (interlocked_resources.count(var_id)) ep_args += ", raster_order_group(0)"; @@ -11731,6 +13112,10 @@ void CompilerMSL::entry_point_args_discrete_descriptors(string &ep_args) } break; } + case SPIRType::AccelerationStructure: + ep_args += ", " + type_to_glsl(type, var_id) + " " + r.name; + ep_args += " [[buffer(" + convert_to_string(r.index) + ")]]"; + break; default: if (!ep_args.empty()) ep_args += ", "; @@ -11813,7 +13198,7 @@ void CompilerMSL::fix_up_shader_inputs_outputs() else if ((var.storage == StorageClassStorageBuffer || (var.storage == StorageClassUniform && ssbo)) && !is_hidden_variable(var)) { - if (buffers_requiring_array_length.count(var.self)) + if (buffer_requires_array_length(var.self)) { entry_func.fixup_hooks_in.push_back([this, &type, &var, var_id]() { bool is_array_type = !type.array.empty(); @@ -11867,19 +13252,9 @@ void CompilerMSL::fix_up_shader_inputs_outputs() }); } break; - case BuiltInHelperInvocation: - if (msl_options.is_ios() && !msl_options.supports_msl_version(2, 3)) - SPIRV_CROSS_THROW("simd_is_helper_thread() requires version 2.3 on iOS."); - else if (msl_options.is_macos() && !msl_options.supports_msl_version(2, 1)) - SPIRV_CROSS_THROW("simd_is_helper_thread() requires version 2.1 on macOS."); - - entry_func.fixup_hooks_in.push_back([=]() { - statement(builtin_type_decl(bi_type), " ", to_expression(var_id), " = simd_is_helper_thread();"); - }); - break; case BuiltInInvocationId: // This is direct-mapped without multi-patch workgroups. - if (get_execution_model() != ExecutionModelTessellationControl || !msl_options.multi_patch_workgroup) + if (!is_tesc_shader() || !msl_options.multi_patch_workgroup) break; entry_func.fixup_hooks_in.push_back([=]() { @@ -11891,7 +13266,7 @@ void CompilerMSL::fix_up_shader_inputs_outputs() case BuiltInPrimitiveId: // This is natively supported by fragment and tessellation evaluation shaders. // In tessellation control shaders, this is direct-mapped without multi-patch workgroups. - if (get_execution_model() != ExecutionModelTessellationControl || !msl_options.multi_patch_workgroup) + if (!is_tesc_shader() || !msl_options.multi_patch_workgroup) break; entry_func.fixup_hooks_in.push_back([=]() { @@ -11901,7 +13276,7 @@ void CompilerMSL::fix_up_shader_inputs_outputs() }); break; case BuiltInPatchVertices: - if (get_execution_model() == ExecutionModelTessellationEvaluation) + if (is_tese_shader()) entry_func.fixup_hooks_in.push_back([=]() { statement(builtin_type_decl(bi_type), " ", to_expression(var_id), " = ", to_expression(patch_stage_in_var_id), ".gl_in.size();"); @@ -11912,9 +13287,19 @@ void CompilerMSL::fix_up_shader_inputs_outputs() }); break; case BuiltInTessCoord: + if (get_entry_point().flags.get(ExecutionModeQuads)) + { + // The entry point will only have a float2 TessCoord variable. + // Pad to float3. + entry_func.fixup_hooks_in.push_back([=]() { + auto name = builtin_to_glsl(BuiltInTessCoord, StorageClassInput); + statement("float3 " + name + " = float3(" + name + "In.x, " + name + "In.y, 0.0);"); + }); + } + // Emit a fixup to account for the shifted domain. Don't do this for triangles; // MoltenVK will just reverse the winding order instead. - if (msl_options.tess_domain_origin_lower_left && !get_entry_point().flags.get(ExecutionModeTriangles)) + if (msl_options.tess_domain_origin_lower_left && !is_tessellating_triangles()) { string tc = to_expression(var_id); entry_func.fixup_hooks_in.push_back([=]() { statement(tc, ".y = 1.0 - ", tc, ".y;"); }); @@ -12314,29 +13699,17 @@ void CompilerMSL::fix_up_shader_inputs_outputs() break; } } - else if (var.storage == StorageClassOutput && is_builtin_variable(var) && active_output_builtins.get(bi_type)) + else if (var.storage == StorageClassOutput && get_execution_model() == ExecutionModelFragment && + is_builtin_variable(var) && active_output_builtins.get(bi_type) && + bi_type == BuiltInSampleMask && has_additional_fixed_sample_mask()) { - if (bi_type == BuiltInSampleMask && get_execution_model() == ExecutionModelFragment && - msl_options.additional_fixed_sample_mask != 0xffffffff) - { - // If the additional fixed sample mask was set, we need to adjust the sample_mask - // output to reflect that. If the shader outputs the sample_mask itself too, we need - // to AND the two masks to get the final one. - if (does_shader_write_sample_mask) - { - entry_func.fixup_hooks_out.push_back([=]() { - statement(to_expression(builtin_sample_mask_id), - " &= ", msl_options.additional_fixed_sample_mask, ";"); - }); - } - else - { - entry_func.fixup_hooks_out.push_back([=]() { - statement(to_expression(builtin_sample_mask_id), " = ", - msl_options.additional_fixed_sample_mask, ";"); - }); - } - } + // If the additional fixed sample mask was set, we need to adjust the sample_mask + // output to reflect that. If the shader outputs the sample_mask itself too, we need + // to AND the two masks to get the final one. + string op_str = does_shader_write_sample_mask ? " &= " : " = "; + entry_func.fixup_hooks_out.push_back([=]() { + statement(to_expression(builtin_sample_mask_id), op_str, additional_fixed_sample_mask_str(), ";"); + }); } }); } @@ -12479,6 +13852,39 @@ bool CompilerMSL::type_is_pointer_to_pointer(const SPIRType &type) const return type.pointer_depth > parent_type.pointer_depth && type_is_pointer(parent_type); } +const char *CompilerMSL::descriptor_address_space(uint32_t id, StorageClass storage, const char *plain_address_space) const +{ + if (msl_options.argument_buffers) + { + bool storage_class_is_descriptor = storage == StorageClassUniform || + storage == StorageClassStorageBuffer || + storage == StorageClassUniformConstant; + + uint32_t desc_set = get_decoration(id, DecorationDescriptorSet); + if (storage_class_is_descriptor && descriptor_set_is_argument_buffer(desc_set)) + { + // An awkward case where we need to emit *more* address space declarations (yay!). + // An example is where we pass down an array of buffer pointers to leaf functions. + // It's a constant array containing pointers to constants. + // The pointer array is always constant however. E.g. + // device SSBO * constant (&array)[N]. + // const device SSBO * constant (&array)[N]. + // constant SSBO * constant (&array)[N]. + // However, this only matters for argument buffers, since for MSL 1.0 style codegen, + // we emit the buffer array on stack instead, and that seems to work just fine apparently. + + // If the argument was marked as being in device address space, any pointer to member would + // be const device, not constant. + if (argument_buffer_device_storage_mask & (1u << desc_set)) + return "const device"; + else + return "constant"; + } + } + + return plain_address_space; +} + string CompilerMSL::argument_decl(const SPIRFunction::Parameter &arg) { auto &var = get(arg.id); @@ -12497,15 +13903,14 @@ string CompilerMSL::argument_decl(const SPIRFunction::Parameter &arg) // Framebuffer fetch is plain value, const looks out of place, but it is not wrong. if (type_is_msl_framebuffer_fetch(type)) constref = false; + else if (type_storage == StorageClassUniformConstant) + constref = true; bool type_is_image = type.basetype == SPIRType::Image || type.basetype == SPIRType::SampledImage || type.basetype == SPIRType::Sampler; - // Arrays of images/samplers in MSL are always const. - if (!type.array.empty() && type_is_image) - constref = true; - - const char *cv_qualifier = constref ? "const " : ""; + // For opaque types we handle const later due to descriptor address spaces. + const char *cv_qualifier = (constref && !type_is_image) ? "const " : ""; string decl; // If this is a combined image-sampler for a 2D image with floating-point type, @@ -12577,9 +13982,7 @@ string CompilerMSL::argument_decl(const SPIRFunction::Parameter &arg) decl = join(cv_qualifier, type_to_glsl(type, arg.id)); } - bool opaque_handle = type_storage == StorageClassUniformConstant; - - if (!builtin && !opaque_handle && !is_pointer && + if (!builtin && !is_pointer && (type_storage == StorageClassFunction || type_storage == StorageClassGeneric)) { // If the argument is a pure value and not an opaque type, we will pass by value. @@ -12594,7 +13997,7 @@ string CompilerMSL::argument_decl(const SPIRFunction::Parameter &arg) // non-constant arrays, but we can create thread const from constant. decl = string("thread const ") + decl; decl += " (&"; - const char *restrict_kw = to_restrict(name_id); + const char *restrict_kw = to_restrict(name_id, true); if (*restrict_kw) { decl += " "; @@ -12614,37 +14017,19 @@ string CompilerMSL::argument_decl(const SPIRFunction::Parameter &arg) } else if (is_array(type) && !type_is_image) { - // Arrays of images and samplers are special cased. + // Arrays of opaque types are special cased. if (!address_space.empty()) decl = join(address_space, " ", decl); - if (msl_options.argument_buffers) + const char *argument_buffer_space = descriptor_address_space(name_id, type_storage, nullptr); + if (argument_buffer_space) { - uint32_t desc_set = get_decoration(name_id, DecorationDescriptorSet); - if ((type_storage == StorageClassUniform || type_storage == StorageClassStorageBuffer) && - descriptor_set_is_argument_buffer(desc_set)) - { - // An awkward case where we need to emit *more* address space declarations (yay!). - // An example is where we pass down an array of buffer pointers to leaf functions. - // It's a constant array containing pointers to constants. - // The pointer array is always constant however. E.g. - // device SSBO * constant (&array)[N]. - // const device SSBO * constant (&array)[N]. - // constant SSBO * constant (&array)[N]. - // However, this only matters for argument buffers, since for MSL 1.0 style codegen, - // we emit the buffer array on stack instead, and that seems to work just fine apparently. - - // If the argument was marked as being in device address space, any pointer to member would - // be const device, not constant. - if (argument_buffer_device_storage_mask & (1u << desc_set)) - decl += " const device"; - else - decl += " constant"; - } + decl += " "; + decl += argument_buffer_space; } // Special case, need to override the array size here if we're using tess level as an argument. - if (get_execution_model() == ExecutionModelTessellationControl && builtin && + if (is_tesc_shader() && builtin && (builtin_type == BuiltInTessLevelInner || builtin_type == BuiltInTessLevelOuter)) { uint32_t array_size = get_physical_tess_level_array_size(builtin_type); @@ -12669,7 +14054,7 @@ string CompilerMSL::argument_decl(const SPIRFunction::Parameter &arg) else decl += " (&"; - const char *restrict_kw = to_restrict(name_id); + const char *restrict_kw = to_restrict(name_id, true); if (*restrict_kw) { decl += " "; @@ -12684,7 +14069,7 @@ string CompilerMSL::argument_decl(const SPIRFunction::Parameter &arg) } } } - else if (!opaque_handle && (!pull_model_inputs.count(var.basevariable) || type.basetype == SPIRType::Struct)) + else if (!type_is_image && (!pull_model_inputs.count(var.basevariable) || type.basetype == SPIRType::Struct)) { // If this is going to be a reference to a variable pointer, the address space // for the reference has to go before the '&', but after the '*'. @@ -12701,9 +14086,30 @@ string CompilerMSL::argument_decl(const SPIRFunction::Parameter &arg) } decl += "&"; decl += " "; - decl += to_restrict(name_id); + decl += to_restrict(name_id, true); decl += to_expression(name_id); } + else if (type_is_image) + { + if (type.array.empty()) + { + // For non-arrayed types we can just pass opaque descriptors by value. + // This fixes problems if descriptors are passed by value from argument buffers and plain descriptors + // in same shader. + // There is no address space we can actually use, but value will work. + // This will break if applications attempt to pass down descriptor arrays as arguments, but + // fortunately that is extremely unlikely ... + decl += " "; + decl += to_expression(name_id); + } + else + { + const char *img_address_space = descriptor_address_space(name_id, type_storage, "thread const"); + decl = join(img_address_space, " ", decl); + decl += "& "; + decl += to_expression(name_id); + } + } else { if (!address_space.empty()) @@ -12738,8 +14144,8 @@ string CompilerMSL::to_name(uint32_t id, bool allow_alias) const return Compiler::to_name(id, allow_alias); } -// Returns a name that combines the name of the struct with the name of the member, except for Builtins -string CompilerMSL::to_qualified_member_name(const SPIRType &type, uint32_t index) +// Appends the name of the member to the variable qualifier string, except for Builtins. +string CompilerMSL::append_member_name(const string &qualifier, const SPIRType &type, uint32_t index) { // Don't qualify Builtin names because they are unique and are treated as such when building expressions BuiltIn builtin = BuiltInMax; @@ -12750,7 +14156,7 @@ string CompilerMSL::to_qualified_member_name(const SPIRType &type, uint32_t inde string mbr_name = to_member_name(type, index); size_t startPos = mbr_name.find_first_not_of("_"); mbr_name = (startPos != string::npos) ? mbr_name.substr(startPos) : ""; - return join(to_name(type.self), "_", mbr_name); + return join(qualifier, "_", mbr_name); } // Ensures that the specified name is permanently usable by prepending a prefix @@ -12767,6 +14173,8 @@ const std::unordered_set &CompilerMSL::get_reserved_keyword_set() "vertex", "fragment", "compute", + "constant", + "device", "bias", "level", "gradient2d", @@ -12893,6 +14301,8 @@ const std::unordered_set &CompilerMSL::get_reserved_keyword_set() "M_SQRT2", "M_SQRT1_2", "quad_broadcast", + "thread", + "threadgroup", }; return keywords; @@ -13094,12 +14504,9 @@ void CompilerMSL::sync_entry_point_aliases_and_names() entry.second.name = ir.meta[entry.first].decoration.alias; } -string CompilerMSL::to_member_reference(uint32_t base, const SPIRType &type, uint32_t index, bool ptr_chain) +string CompilerMSL::to_member_reference(uint32_t base, const SPIRType &type, uint32_t index, bool ptr_chain_is_resolved) { - if (index < uint32_t(type.member_type_index_redirection.size())) - index = type.member_type_index_redirection[index]; - - auto *var = maybe_get(base); + auto *var = maybe_get_backing_variable(base); // If this is a buffer array, we have to dereference the buffer pointers. // Otherwise, if this is a pointer expression, dereference it. @@ -13116,7 +14523,7 @@ string CompilerMSL::to_member_reference(uint32_t base, const SPIRType &type, uin declared_as_pointer = is_buffer_variable && is_array(get(var->basetype)); } - if (declared_as_pointer || (!ptr_chain && should_dereference(base))) + if (declared_as_pointer || (!ptr_chain_is_resolved && should_dereference(base))) return join("->", to_member_name(type, index)); else return join(".", to_member_name(type, index)); @@ -13138,7 +14545,7 @@ string CompilerMSL::to_qualifiers_glsl(uint32_t id) // The optional id parameter indicates the object whose type we are trying // to find the description for. It is optional. Most type descriptions do not // depend on a specific object's use of that type. -string CompilerMSL::type_to_glsl(const SPIRType &type, uint32_t id) +string CompilerMSL::type_to_glsl(const SPIRType &type, uint32_t id, bool member) { string type_name; @@ -13150,7 +14557,7 @@ string CompilerMSL::type_to_glsl(const SPIRType &type, uint32_t id) const char *restrict_kw; auto type_address_space = get_type_address_space(type, id); - auto type_decl = type_to_glsl(get(type.parent_type), id); + const auto *p_parent_type = &get(type.parent_type); // Work around C pointer qualifier rules. If glsl_type is a pointer type as well // we'll need to emit the address space to the right. @@ -13158,9 +14565,16 @@ string CompilerMSL::type_to_glsl(const SPIRType &type, uint32_t id) // Prefer emitting thread T *foo over T thread* foo since it's more readable, // but we'll have to emit thread T * thread * T constant bar; for example. if (type_is_pointer_to_pointer(type)) - type_name = join(type_decl, " ", type_address_space, " "); + type_name = join(type_to_glsl(*p_parent_type, id), " ", type_address_space, " "); else - type_name = join(type_address_space, " ", type_decl); + { + // Since this is not a pointer-to-pointer, ensure we've dug down to the base type. + // Some situations chain pointers even though they are not formally pointers-of-pointers. + while (type_is_pointer(*p_parent_type)) + p_parent_type = &get(p_parent_type->parent_type); + + type_name = join(type_address_space, " ", type_to_glsl(*p_parent_type, id)); + } switch (type.basetype) { @@ -13172,7 +14586,7 @@ string CompilerMSL::type_to_glsl(const SPIRType &type, uint32_t id) default: // Anything else can be a raw pointer. type_name += "*"; - restrict_kw = to_restrict(id); + restrict_kw = to_restrict(id, false); if (*restrict_kw) { type_name += " "; @@ -13213,8 +14627,21 @@ string CompilerMSL::type_to_glsl(const SPIRType &type, uint32_t id) // Scalars case SPIRType::Boolean: - type_name = "bool"; + { + auto *var = maybe_get_backing_variable(id); + if (var && var->basevariable) + var = &get(var->basevariable); + + // Need to special-case threadgroup booleans. They are supposed to be logical + // storage, but MSL compilers will sometimes crash if you use threadgroup bool. + // Workaround this by using 16-bit types instead and fixup on load-store to this data. + if ((var && var->storage == StorageClassWorkgroup) || type.storage == StorageClassWorkgroup || member) + type_name = "short"; + else + type_name = "bool"; break; + } + case SPIRType::Char: case SPIRType::SByte: type_name = "char"; @@ -13253,6 +14680,16 @@ string CompilerMSL::type_to_glsl(const SPIRType &type, uint32_t id) case SPIRType::Double: type_name = "double"; // Currently unsupported break; + case SPIRType::AccelerationStructure: + if (msl_options.supports_msl_version(2, 4)) + type_name = "raytracing::acceleration_structure"; + else if (msl_options.supports_msl_version(2, 3)) + type_name = "raytracing::instance_acceleration_structure"; + else + SPIRV_CROSS_THROW("Acceleration Structure Type is supported in MSL 2.3 and above."); + break; + case SPIRType::RayQuery: + return "raytracing::intersection_query"; default: return "unknown_type"; @@ -13260,7 +14697,24 @@ string CompilerMSL::type_to_glsl(const SPIRType &type, uint32_t id) // Matrix? if (type.columns > 1) + { + auto *var = maybe_get_backing_variable(id); + if (var && var->basevariable) + var = &get(var->basevariable); + + // Need to special-case threadgroup matrices. Due to an oversight, Metal's + // matrix struct prior to Metal 3 lacks constructors in the threadgroup AS, + // preventing us from default-constructing or initializing matrices in threadgroup storage. + // Work around this by using our own type as storage. + if (((var && var->storage == StorageClassWorkgroup) || type.storage == StorageClassWorkgroup) && + !msl_options.supports_msl_version(3, 0)) + { + add_spv_func_and_recompile(SPVFuncImplStorageMatrix); + type_name = "spvStorage_" + type_name; + } + type_name += to_string(type.columns) + "x"; + } // Vector or Matrix? if (type.vecsize > 1) @@ -13290,6 +14744,11 @@ string CompilerMSL::type_to_glsl(const SPIRType &type, uint32_t id) } } +string CompilerMSL::type_to_glsl(const SPIRType &type, uint32_t id) +{ + return type_to_glsl(type, id, false); +} + string CompilerMSL::type_to_array_glsl(const SPIRType &type) { // Allow Metal to use the array template to make arrays a value type @@ -13297,16 +14756,26 @@ string CompilerMSL::type_to_array_glsl(const SPIRType &type) { case SPIRType::AtomicCounter: case SPIRType::ControlPointArray: - { + case SPIRType::RayQuery: return CompilerGLSL::type_to_array_glsl(type); - } + default: - { - if (using_builtin_array()) + if (type_is_array_of_pointers(type) || using_builtin_array()) return CompilerGLSL::type_to_array_glsl(type); else return ""; } +} + +string CompilerMSL::constant_op_expression(const SPIRConstantOp &cop) +{ + switch (cop.opcode) + { + case OpQuantizeToF16: + add_spv_func_and_recompile(SPVFuncImplQuantizeToF16); + return join("spvQuantizeToF16(", to_expression(cop.arguments[0]), ")"); + default: + return CompilerGLSL::constant_op_expression(cop); } } @@ -13317,23 +14786,25 @@ bool CompilerMSL::variable_decl_is_remapped_storage(const SPIRVariable &variable if (storage == StorageClassWorkgroup) { - auto model = get_execution_model(); - // Specially masked IO block variable. // Normally, we will never access IO blocks directly here. // The only scenario which that should occur is with a masked IO block. - if (model == ExecutionModelTessellationControl && variable.storage == StorageClassOutput && + if (is_tesc_shader() && variable.storage == StorageClassOutput && has_decoration(get(variable.basetype).self, DecorationBlock)) { return true; } - return variable.storage == StorageClassOutput && - model == ExecutionModelTessellationControl && - is_stage_output_variable_masked(variable); + return variable.storage == StorageClassOutput && is_tesc_shader() && is_stage_output_variable_masked(variable); } else if (storage == StorageClassStorageBuffer) { + // These builtins are passed directly; we don't want to use remapping + // for them. + auto builtin = (BuiltIn)get_decoration(variable.self, DecorationBuiltIn); + if (is_tese_shader() && is_builtin_variable(variable) && (builtin == BuiltInTessCoord || builtin == BuiltInPrimitiveId)) + return false; + // We won't be able to catch writes to control point outputs here since variable // refers to a function local pointer. // This is fine, as there cannot be concurrent writers to that memory anyways, @@ -13357,7 +14828,7 @@ std::string CompilerMSL::variable_decl(const SPIRVariable &variable) if (variable_decl_is_remapped_storage(variable, StorageClassWorkgroup)) is_using_builtin_array = true; - std::string expr = CompilerGLSL::variable_decl(variable); + auto expr = CompilerGLSL::variable_decl(variable); is_using_builtin_array = old_is_using_builtin_array; return expr; } @@ -13448,7 +14919,7 @@ string CompilerMSL::image_type_glsl(const SPIRType &type, uint32_t id) // Bypass pointers because we need the real image struct auto &img_type = get(type.self).image; - if (image_is_comparison(type, id)) + if (is_depth_image(type, id)) { switch (img_type.dim) { @@ -13693,7 +15164,7 @@ void CompilerMSL::emit_subgroup_op(const Instruction &i) switch (op) { case OpGroupNonUniformElect: - if (msl_options.is_ios() && !msl_options.ios_use_simdgroup_functions) + if (msl_options.use_quadgroup_operation()) emit_op(result_type, id, "quad_is_first()", false); else emit_op(result_type, id, "simd_is_first()", false); @@ -13745,7 +15216,6 @@ void CompilerMSL::emit_subgroup_op(const Instruction &i) break; default: SPIRV_CROSS_THROW("Invalid BitCount operation."); - break; } break; } @@ -13767,14 +15237,14 @@ void CompilerMSL::emit_subgroup_op(const Instruction &i) break; case OpGroupNonUniformAll: - if (msl_options.is_ios() && !msl_options.ios_use_simdgroup_functions) + if (msl_options.use_quadgroup_operation()) emit_unary_func_op(result_type, id, ops[3], "quad_all"); else emit_unary_func_op(result_type, id, ops[3], "simd_all"); break; case OpGroupNonUniformAny: - if (msl_options.is_ios() && !msl_options.ios_use_simdgroup_functions) + if (msl_options.use_quadgroup_operation()) emit_unary_func_op(result_type, id, ops[3], "quad_any"); else emit_unary_func_op(result_type, id, ops[3], "simd_any"); @@ -13899,23 +15369,23 @@ string CompilerMSL::bitcast_glsl_op(const SPIRType &out_type, const SPIRType &in assert(out_type.basetype != SPIRType::Boolean); assert(in_type.basetype != SPIRType::Boolean); - bool integral_cast = type_is_integral(out_type) && type_is_integral(in_type); - bool same_size_cast = out_type.width == in_type.width; + bool integral_cast = type_is_integral(out_type) && type_is_integral(in_type) && (out_type.vecsize == in_type.vecsize); + bool same_size_cast = (out_type.width * out_type.vecsize) == (in_type.width * in_type.vecsize); - if (integral_cast && same_size_cast) - { - // Trivial bitcast case, casts between integers. - return type_to_glsl(out_type); - } - else - { - // Fall back to the catch-all bitcast in MSL. + // Bitcasting can only be used between types of the same overall size. + // And always formally cast between integers, because it's trivial, and also + // because Metal can internally cast the results of some integer ops to a larger + // size (eg. short shift right becomes int), which means chaining integer ops + // together may introduce size variations that SPIR-V doesn't know about. + if (same_size_cast && !integral_cast) return "as_type<" + type_to_glsl(out_type) + ">"; - } + else + return type_to_glsl(out_type); } bool CompilerMSL::emit_complex_bitcast(uint32_t, uint32_t, uint32_t) { + // This is handled from the outside where we deal with PtrToU/UToPtr and friends. return false; } @@ -14054,23 +15524,40 @@ string CompilerMSL::builtin_to_glsl(BuiltIn builtin, StorageClass storage) case BuiltInClipDistance: case BuiltInCullDistance: case BuiltInLayer: - case BuiltInSampleMask: - if (get_execution_model() == ExecutionModelTessellationControl) + if (is_tesc_shader()) break; if (storage != StorageClassInput && current_function && (current_function->self == ir.default_entry_point) && !is_stage_output_builtin_masked(builtin)) return stage_out_var_name + "." + CompilerGLSL::builtin_to_glsl(builtin, storage); break; - case BuiltInBaryCoordNV: - case BuiltInBaryCoordNoPerspNV: + case BuiltInSampleMask: + if (storage == StorageClassInput && current_function && (current_function->self == ir.default_entry_point) && + (has_additional_fixed_sample_mask() || needs_sample_id)) + { + string samp_mask_in; + samp_mask_in += "(" + CompilerGLSL::builtin_to_glsl(builtin, storage); + if (has_additional_fixed_sample_mask()) + samp_mask_in += " & " + additional_fixed_sample_mask_str(); + if (needs_sample_id) + samp_mask_in += " & (1 << gl_SampleID)"; + samp_mask_in += ")"; + return samp_mask_in; + } + if (storage != StorageClassInput && current_function && (current_function->self == ir.default_entry_point) && + !is_stage_output_builtin_masked(builtin)) + return stage_out_var_name + "." + CompilerGLSL::builtin_to_glsl(builtin, storage); + break; + + case BuiltInBaryCoordKHR: + case BuiltInBaryCoordNoPerspKHR: if (storage == StorageClassInput && current_function && (current_function->self == ir.default_entry_point)) return stage_in_var_name + "." + CompilerGLSL::builtin_to_glsl(builtin, storage); break; case BuiltInTessLevelOuter: - if (get_execution_model() == ExecutionModelTessellationControl && - storage != StorageClassInput && current_function && (current_function->self == ir.default_entry_point)) + if (is_tesc_shader() && storage != StorageClassInput && current_function && + (current_function->self == ir.default_entry_point)) { return join(tess_factor_buffer_var_name, "[", to_expression(builtin_primitive_id_id), "].edgeTessellationFactor"); @@ -14078,14 +15565,24 @@ string CompilerMSL::builtin_to_glsl(BuiltIn builtin, StorageClass storage) break; case BuiltInTessLevelInner: - if (get_execution_model() == ExecutionModelTessellationControl && - storage != StorageClassInput && current_function && (current_function->self == ir.default_entry_point)) + if (is_tesc_shader() && storage != StorageClassInput && current_function && + (current_function->self == ir.default_entry_point)) { return join(tess_factor_buffer_var_name, "[", to_expression(builtin_primitive_id_id), "].insideTessellationFactor"); } break; + case BuiltInHelperInvocation: + if (needs_manual_helper_invocation_updates()) + break; + if (msl_options.is_ios() && !msl_options.supports_msl_version(2, 3)) + SPIRV_CROSS_THROW("simd_is_helper_thread() requires version 2.3 on iOS."); + else if (msl_options.is_macos() && !msl_options.supports_msl_version(2, 1)) + SPIRV_CROSS_THROW("simd_is_helper_thread() requires version 2.1 on macOS."); + // In SPIR-V 1.6 with Volatile HelperInvocation, we cannot emit a fixup early. + return "simd_is_helper_thread()"; + default: break; } @@ -14252,7 +15749,7 @@ string CompilerMSL::builtin_qualifier(BuiltIn builtin) SPIRV_CROSS_THROW("NumSubgroups is handled specially with emulation."); if (!msl_options.supports_msl_version(2)) SPIRV_CROSS_THROW("Subgroup builtins require Metal 2.0."); - return msl_options.is_ios() ? "quadgroups_per_threadgroup" : "simdgroups_per_threadgroup"; + return msl_options.use_quadgroup_operation() ? "quadgroups_per_threadgroup" : "simdgroups_per_threadgroup"; case BuiltInSubgroupId: if (msl_options.emulate_subgroups) @@ -14260,7 +15757,7 @@ string CompilerMSL::builtin_qualifier(BuiltIn builtin) SPIRV_CROSS_THROW("SubgroupId is handled specially with emulation."); if (!msl_options.supports_msl_version(2)) SPIRV_CROSS_THROW("Subgroup builtins require Metal 2.0."); - return msl_options.is_ios() ? "quadgroup_index_in_threadgroup" : "simdgroup_index_in_threadgroup"; + return msl_options.use_quadgroup_operation() ? "quadgroup_index_in_threadgroup" : "simdgroup_index_in_threadgroup"; case BuiltInSubgroupLocalInvocationId: if (msl_options.emulate_subgroups) @@ -14279,7 +15776,7 @@ string CompilerMSL::builtin_qualifier(BuiltIn builtin) // We are generating a Metal kernel function. if (!msl_options.supports_msl_version(2)) SPIRV_CROSS_THROW("Subgroup builtins in kernel functions require Metal 2.0."); - return msl_options.is_ios() ? "thread_index_in_quadgroup" : "thread_index_in_simdgroup"; + return msl_options.use_quadgroup_operation() ? "thread_index_in_quadgroup" : "thread_index_in_simdgroup"; } else SPIRV_CROSS_THROW("Subgroup builtins are not available in this type of function."); @@ -14292,16 +15789,14 @@ string CompilerMSL::builtin_qualifier(BuiltIn builtin) // Shouldn't be reached. SPIRV_CROSS_THROW("Subgroup ballot masks are handled specially in MSL."); - case BuiltInBaryCoordNV: - // TODO: AMD barycentrics as well? Seem to have different swizzle and 2 components rather than 3. + case BuiltInBaryCoordKHR: if (msl_options.is_ios() && !msl_options.supports_msl_version(2, 3)) SPIRV_CROSS_THROW("Barycentrics are only supported in MSL 2.3 and above on iOS."); else if (!msl_options.supports_msl_version(2, 2)) SPIRV_CROSS_THROW("Barycentrics are only supported in MSL 2.2 and above on macOS."); return "barycentric_coord, center_perspective"; - case BuiltInBaryCoordNoPerspNV: - // TODO: AMD barycentrics as well? Seem to have different swizzle and 2 components rather than 3. + case BuiltInBaryCoordNoPerspKHR: if (msl_options.is_ios() && !msl_options.supports_msl_version(2, 3)) SPIRV_CROSS_THROW("Barycentrics are only supported in MSL 2.3 and above on iOS."); else if (!msl_options.supports_msl_version(2, 2)) @@ -14316,7 +15811,6 @@ string CompilerMSL::builtin_qualifier(BuiltIn builtin) // Returns an MSL string type declaration for a SPIR-V builtin string CompilerMSL::builtin_type_decl(BuiltIn builtin, uint32_t id) { - const SPIREntryPoint &execution = get_entry_point(); switch (builtin) { // Vertex function in @@ -14360,17 +15854,17 @@ string CompilerMSL::builtin_type_decl(BuiltIn builtin, uint32_t id) // Tess. control function out case BuiltInTessLevelInner: - if (execution.model == ExecutionModelTessellationEvaluation) - return !execution.flags.get(ExecutionModeTriangles) ? "float2" : "float"; + if (is_tese_shader()) + return (msl_options.raw_buffer_tese_input || is_tessellating_triangles()) ? "float" : "float2"; return "half"; case BuiltInTessLevelOuter: - if (execution.model == ExecutionModelTessellationEvaluation) - return !execution.flags.get(ExecutionModeTriangles) ? "float4" : "float"; + if (is_tese_shader()) + return (msl_options.raw_buffer_tese_input || is_tessellating_triangles()) ? "float" : "float4"; return "half"; // Tess. evaluation function in case BuiltInTessCoord: - return execution.flags.get(ExecutionModeTriangles) ? "float3" : "float2"; + return "float3"; // Fragment function in case BuiltInFrontFacing: @@ -14391,8 +15885,8 @@ string CompilerMSL::builtin_type_decl(BuiltIn builtin, uint32_t id) case BuiltInHelperInvocation: return "bool"; - case BuiltInBaryCoordNV: - case BuiltInBaryCoordNoPerspNV: + case BuiltInBaryCoordKHR: + case BuiltInBaryCoordNoPerspKHR: // Use the type as declared, can be 1, 2 or 3 components. return type_to_glsl(get_variable_data_type(get(id))); @@ -14459,11 +15953,11 @@ SPIRType CompilerMSL::get_presumed_input_type(const SPIRType &ib_type, uint32_t { SPIRType type = get_physical_member_type(ib_type, index); uint32_t loc = get_member_decoration(ib_type.self, index, DecorationLocation); - if (inputs_by_location.count(loc)) - { - if (inputs_by_location.at(loc).vecsize > type.vecsize) - type.vecsize = inputs_by_location.at(loc).vecsize; - } + uint32_t cmp = get_member_decoration(ib_type.self, index, DecorationComponent); + auto p_va = inputs_by_location.find({loc, cmp}); + if (p_va != end(inputs_by_location) && p_va->second.vecsize > type.vecsize) + type.vecsize = p_va->second.vecsize; + return type; } @@ -14489,7 +15983,7 @@ uint32_t CompilerMSL::get_declared_type_array_stride_msl(const SPIRType &type, b for (uint32_t dim = 0; dim < dimensions; dim++) { uint32_t array_size = to_array_size_literal(type, dim); - value_size *= max(array_size, 1u); + value_size *= max(array_size, 1u); } return value_size; @@ -14566,6 +16060,25 @@ uint32_t CompilerMSL::get_declared_struct_size_msl(const SPIRType &struct_type, // Returns the byte size of a struct member. uint32_t CompilerMSL::get_declared_type_size_msl(const SPIRType &type, bool is_packed, bool row_major) const { + // Pointers take 8 bytes each + if (type.pointer && type.storage == StorageClassPhysicalStorageBuffer) + { + uint32_t type_size = 8 * (type.vecsize == 3 ? 4 : type.vecsize); + + // Work our way through potentially layered arrays, + // stopping when we hit a pointer that is not also an array. + int32_t dim_idx = (int32_t)type.array.size() - 1; + auto *p_type = &type; + while (!type_is_pointer(*p_type) && dim_idx >= 0) + { + type_size *= to_array_size_literal(*p_type, dim_idx); + p_type = &get(p_type->parent_type); + dim_idx--; + } + + return type_size; + } + switch (type.basetype) { case SPIRType::Unknown: @@ -14581,7 +16094,7 @@ uint32_t CompilerMSL::get_declared_type_size_msl(const SPIRType &type, bool is_p if (!type.array.empty()) { uint32_t array_size = to_array_size_literal(type); - return get_declared_type_array_stride_msl(type, is_packed, row_major) * max(array_size, 1u); + return get_declared_type_array_stride_msl(type, is_packed, row_major) * max(array_size, 1u); } if (type.basetype == SPIRType::Struct) @@ -14625,6 +16138,10 @@ uint32_t CompilerMSL::get_declared_input_size_msl(const SPIRType &type, uint32_t // Returns the byte alignment of a type. uint32_t CompilerMSL::get_declared_type_alignment_msl(const SPIRType &type, bool is_packed, bool row_major) const { + // Pointers aligns on multiples of 8 bytes + if (type.pointer && type.storage == StorageClassPhysicalStorageBuffer) + return 8 * (type.vecsize == 3 ? 4 : type.vecsize); + switch (type.basetype) { case SPIRType::Unknown: @@ -14772,6 +16289,10 @@ bool CompilerMSL::OpCodePreprocessor::handle(Op opcode, const uint32_t *args, ui suppress_missing_prototypes = true; break; + case OpDemoteToHelperInvocationEXT: + uses_discard = true; + break; + // Emulate texture2D atomic operations case OpImageTexelPointer: { @@ -14781,8 +16302,7 @@ bool CompilerMSL::OpCodePreprocessor::handle(Op opcode, const uint32_t *args, ui } case OpImageWrite: - if (!compiler.msl_options.supports_msl_version(2, 2)) - uses_resource_write = true; + uses_image_write = true; break; case OpStore: @@ -14796,6 +16316,7 @@ bool CompilerMSL::OpCodePreprocessor::handle(Op opcode, const uint32_t *args, ui case OpAtomicIIncrement: case OpAtomicIDecrement: case OpAtomicIAdd: + case OpAtomicFAddEXT: case OpAtomicISub: case OpAtomicSMin: case OpAtomicUMin: @@ -14809,9 +16330,11 @@ bool CompilerMSL::OpCodePreprocessor::handle(Op opcode, const uint32_t *args, ui auto it = image_pointers.find(args[2]); if (it != image_pointers.end()) { + uses_image_write = true; compiler.atomic_image_vars.insert(it->second); } - check_resource_write(args[2]); + else + check_resource_write(args[2]); break; } @@ -14822,8 +16345,10 @@ bool CompilerMSL::OpCodePreprocessor::handle(Op opcode, const uint32_t *args, ui if (it != image_pointers.end()) { compiler.atomic_image_vars.insert(it->second); + uses_image_write = true; } - check_resource_write(args[0]); + else + check_resource_write(args[0]); break; } @@ -14926,6 +16451,11 @@ bool CompilerMSL::OpCodePreprocessor::handle(Op opcode, const uint32_t *args, ui break; } + case OpIsHelperInvocationEXT: + if (compiler.needs_manual_helper_invocation_updates()) + needs_helper_invocation = true; + break; + default: break; } @@ -14943,9 +16473,8 @@ void CompilerMSL::OpCodePreprocessor::check_resource_write(uint32_t var_id) { auto *p_var = compiler.maybe_get_backing_variable(var_id); StorageClass sc = p_var ? p_var->storage : StorageClassMax; - if (!compiler.msl_options.supports_msl_version(2, 1) && - (sc == StorageClassUniform || sc == StorageClassStorageBuffer)) - uses_resource_write = true; + if (sc == StorageClassUniform || sc == StorageClassStorageBuffer) + uses_buffer_write = true; } // Returns an enumeration of a SPIR-V function that needs to be output for certain Op codes. @@ -14977,6 +16506,9 @@ CompilerMSL::SPVFuncImpl CompilerMSL::OpCodePreprocessor::get_spv_func_impl(Op o } break; + case OpQuantizeToF16: + return SPVFuncImplQuantizeToF16; + case OpTypeArray: { // Allow Metal to use the array template to make arrays a value type @@ -14990,6 +16522,7 @@ CompilerMSL::SPVFuncImpl CompilerMSL::OpCodePreprocessor::get_spv_func_impl(Op o case OpAtomicIIncrement: case OpAtomicIDecrement: case OpAtomicIAdd: + case OpAtomicFAddEXT: case OpAtomicISub: case OpAtomicSMin: case OpAtomicUMin: @@ -15176,11 +16709,13 @@ void CompilerMSL::MemberSorter::sort() meta.members[mbr_idx] = mbr_meta_cpy[mbr_idxs[mbr_idx]]; } + // If we're sorting by Offset, this might affect user code which accesses a buffer block. + // We will need to redirect member indices from defined index to sorted index using reverse lookup. if (sort_aspect == SortAspect::Offset) { - // If we're sorting by Offset, this might affect user code which accesses a buffer block. - // We will need to redirect member indices from one index to sorted index. - type.member_type_index_redirection = std::move(mbr_idxs); + type.member_type_index_redirection.resize(mbr_cnt); + for (uint32_t map_idx = 0; map_idx < mbr_cnt; map_idx++) + type.member_type_index_redirection[mbr_idxs[map_idx]] = map_idx; } } @@ -15230,15 +16765,56 @@ void CompilerMSL::remap_constexpr_sampler_by_binding(uint32_t desc_set, uint32_t constexpr_samplers_by_binding[{ desc_set, binding }] = sampler; } -void CompilerMSL::cast_from_builtin_load(uint32_t source_id, std::string &expr, const SPIRType &expr_type) +void CompilerMSL::cast_from_variable_load(uint32_t source_id, std::string &expr, const SPIRType &expr_type) { + bool is_packed = has_extended_decoration(source_id, SPIRVCrossDecorationPhysicalTypePacked); + auto *source_expr = maybe_get(source_id); auto *var = maybe_get_backing_variable(source_id); + const SPIRType *var_type = nullptr, *phys_type = nullptr; + if (uint32_t phys_id = get_extended_decoration(source_id, SPIRVCrossDecorationPhysicalTypeID)) + phys_type = &get(phys_id); + else + phys_type = &expr_type; if (var) + { source_id = var->self; + var_type = &get_variable_data_type(*var); + } - // Only interested in standalone builtin variables. + // Type fixups for workgroup variables if they are booleans. + if (var && (var->storage == StorageClassWorkgroup || var_type->basetype == SPIRType::Struct) && + expr_type.basetype == SPIRType::Boolean) + expr = join(type_to_glsl(expr_type), "(", expr, ")"); + // Type fixups for workgroup variables if they are matrices. + // Don't do fixup for packed types; those are handled specially. + // FIXME: Maybe use a type like spvStorageMatrix for packed matrices? + if (!msl_options.supports_msl_version(3, 0) && var && + (var->storage == StorageClassWorkgroup || + (var_type->basetype == SPIRType::Struct && + has_extended_decoration(var_type->self, SPIRVCrossDecorationWorkgroupStruct) && !is_packed)) && + expr_type.columns > 1) + { + SPIRType matrix_type = *phys_type; + if (source_expr && source_expr->need_transpose) + swap(matrix_type.vecsize, matrix_type.columns); + matrix_type.array.clear(); + matrix_type.array_size_literal.clear(); + expr = join(type_to_glsl(matrix_type), "(", expr, ")"); + } + + // Only interested in standalone builtin variables in the switch below. if (!has_decoration(source_id, DecorationBuiltIn)) + { + // If the backing variable does not match our expected sign, we can fix it up here. + // See ensure_correct_input_type(). + if (var && var->storage == StorageClassInput) + { + auto &base_type = get(var->basetype); + if (base_type.basetype != SPIRType::Struct && expr_type.basetype != base_type.basetype) + expr = join(type_to_glsl(expr_type), "(", expr, ")"); + } return; + } auto builtin = static_cast(get_decoration(source_id, DecorationBuiltIn)); auto expected_type = expr_type.basetype; @@ -15268,7 +16844,7 @@ void CompilerMSL::cast_from_builtin_load(uint32_t source_id, std::string &expr, case BuiltInTessLevelInner: case BuiltInTessLevelOuter: - if (get_execution_model() == ExecutionModelTessellationControl) + if (is_tesc_shader()) { expected_type = SPIRType::Half; expected_width = 16; @@ -15298,7 +16874,7 @@ void CompilerMSL::cast_from_builtin_load(uint32_t source_id, std::string &expr, wrap_expr += ", "; } - if (get_execution_mode_bitset().get(ExecutionModeTriangles)) + if (is_tessellating_triangles()) wrap_expr += ", 0.0"; wrap_expr += " })"; @@ -15313,20 +16889,46 @@ void CompilerMSL::cast_from_builtin_load(uint32_t source_id, std::string &expr, expr = bitcast_expression(expr_type, expected_type, expr); } } - - if (builtin == BuiltInTessCoord && get_entry_point().flags.get(ExecutionModeQuads) && expr_type.vecsize == 3) - { - // In SPIR-V, this is always a vec3, even for quads. In Metal, though, it's a float2 for quads. - // The code is expecting a float3, so we need to widen this. - expr = join("float3(", expr, ", 0)"); - } } -void CompilerMSL::cast_to_builtin_store(uint32_t target_id, std::string &expr, const SPIRType &expr_type) +void CompilerMSL::cast_to_variable_store(uint32_t target_id, std::string &expr, const SPIRType &expr_type) { + bool is_packed = has_extended_decoration(target_id, SPIRVCrossDecorationPhysicalTypePacked); + auto *target_expr = maybe_get(target_id); auto *var = maybe_get_backing_variable(target_id); + const SPIRType *var_type = nullptr, *phys_type = nullptr; + if (uint32_t phys_id = get_extended_decoration(target_id, SPIRVCrossDecorationPhysicalTypeID)) + phys_type = &get(phys_id); + else + phys_type = &expr_type; if (var) + { target_id = var->self; + var_type = &get_variable_data_type(*var); + } + + // Type fixups for workgroup variables if they are booleans. + if (var && (var->storage == StorageClassWorkgroup || var_type->basetype == SPIRType::Struct) && + expr_type.basetype == SPIRType::Boolean) + { + auto short_type = expr_type; + short_type.basetype = SPIRType::Short; + expr = join(type_to_glsl(short_type), "(", expr, ")"); + } + // Type fixups for workgroup variables if they are matrices. + // Don't do fixup for packed types; those are handled specially. + // FIXME: Maybe use a type like spvStorageMatrix for packed matrices? + if (!msl_options.supports_msl_version(3, 0) && var && + (var->storage == StorageClassWorkgroup || + (var_type->basetype == SPIRType::Struct && + has_extended_decoration(var_type->self, SPIRVCrossDecorationWorkgroupStruct) && !is_packed)) && + expr_type.columns > 1) + { + SPIRType matrix_type = *phys_type; + if (target_expr && target_expr->need_transpose) + swap(matrix_type.vecsize, matrix_type.columns); + expr = join("spvStorage_", type_to_glsl(matrix_type), "(", expr, ")"); + } // Only interested in standalone builtin variables. if (!has_decoration(target_id, DecorationBuiltIn)) @@ -15412,13 +17014,14 @@ bool CompilerMSL::descriptor_set_is_argument_buffer(uint32_t desc_set) const bool CompilerMSL::is_supported_argument_buffer_type(const SPIRType &type) const { - // Very specifically, image load-store in argument buffers are disallowed on MSL on iOS. - // But we won't know when the argument buffer is encoded whether this image will have - // a NonWritable decoration. So just use discrete arguments for all storage images - // on iOS. - bool is_storage_image = type.basetype == SPIRType::Image && type.image.sampled == 2; - bool is_supported_type = !msl_options.is_ios() || !is_storage_image; - return !type_is_msl_framebuffer_fetch(type) && is_supported_type; + // iOS Tier 1 argument buffers do not support writable images. + // When the argument buffer is encoded, we don't know whether this image will have a + // NonWritable decoration, so just use discrete arguments for all storage images on iOS. + bool is_supported_type = !(type.basetype == SPIRType::Image && + type.image.sampled == 2 && + msl_options.is_ios() && + msl_options.argument_buffers_tier <= Options::ArgumentBuffersTier::Tier1); + return is_supported_type && !type_is_msl_framebuffer_fetch(type); } void CompilerMSL::analyze_argument_buffers() @@ -15437,6 +17040,7 @@ void CompilerMSL::analyze_argument_buffers() struct Resource { SPIRVariable *var; + SPIRVariable *descriptor_alias; string name; SPIRType::BaseType basetype; uint32_t index; @@ -15476,6 +17080,32 @@ void CompilerMSL::analyze_argument_buffers() } } + // Handle descriptor aliasing as well as we can. + // We can handle aliasing of buffers by casting pointers, but not for typed resources. + // Inline UBOs cannot be handled since it's not a pointer, but inline data. + SPIRVariable *descriptor_alias = nullptr; + if (var.storage == StorageClassUniform || var.storage == StorageClassStorageBuffer) + { + for (auto &resource : resources_in_set[desc_set]) + { + if (get_decoration(resource.var->self, DecorationBinding) == + get_decoration(var_id, DecorationBinding) && + resource.basetype == SPIRType::Struct && type.basetype == SPIRType::Struct && + (resource.var->storage == StorageClassUniform || + resource.var->storage == StorageClassStorageBuffer)) + { + descriptor_alias = resource.var; + // Self-reference marks that we should declare the resource, + // and it's being used as an alias (so we can emit void* instead). + resource.descriptor_alias = resource.var; + // Need to promote interlocked usage so that the primary declaration is correct. + if (interlocked_resources.count(var_id)) + interlocked_resources.insert(resource.var->self); + break; + } + } + } + uint32_t binding = get_decoration(var_id, DecorationBinding); if (type.basetype == SPIRType::SampledImage) { @@ -15489,14 +17119,14 @@ void CompilerMSL::analyze_argument_buffers() { uint32_t image_resource_index = get_metal_resource_index(var, SPIRType::Image, i); resources_in_set[desc_set].push_back( - { &var, to_name(var_id), SPIRType::Image, image_resource_index, i }); + { &var, descriptor_alias, to_name(var_id), SPIRType::Image, image_resource_index, i }); } if (type.image.dim != DimBuffer && !constexpr_sampler) { uint32_t sampler_resource_index = get_metal_resource_index(var, SPIRType::Sampler); resources_in_set[desc_set].push_back( - { &var, to_sampler_expression(var_id), SPIRType::Sampler, sampler_resource_index, 0 }); + { &var, descriptor_alias, to_sampler_expression(var_id), SPIRType::Sampler, sampler_resource_index, 0 }); } } else if (inline_uniform_blocks.count(SetBindingPair{ desc_set, binding })) @@ -15508,22 +17138,27 @@ void CompilerMSL::analyze_argument_buffers() // constexpr samplers are not declared as resources. // Inline uniform blocks are always emitted at the end. add_resource_name(var_id); + + uint32_t resource_index = ~0u; + if (!descriptor_alias) + resource_index = get_metal_resource_index(var, type.basetype); + resources_in_set[desc_set].push_back( - { &var, to_name(var_id), type.basetype, get_metal_resource_index(var, type.basetype), 0 }); + { &var, descriptor_alias, to_name(var_id), type.basetype, resource_index, 0 }); // Emulate texture2D atomic operations if (atomic_image_vars.count(var.self)) { uint32_t buffer_resource_index = get_metal_resource_index(var, SPIRType::AtomicCounter, 0); resources_in_set[desc_set].push_back( - { &var, to_name(var_id) + "_atomic", SPIRType::Struct, buffer_resource_index, 0 }); + { &var, descriptor_alias, to_name(var_id) + "_atomic", SPIRType::Struct, buffer_resource_index, 0 }); } } // Check if this descriptor set needs a swizzle buffer. if (needs_swizzle_buffer_def && is_sampled_image_type(type)) set_needs_swizzle_buffer[desc_set] = true; - else if (buffers_requiring_array_length.count(var_id) != 0) + else if (buffer_requires_array_length(var_id)) { set_needs_buffer_sizes[desc_set] = true; needs_buffer_sizes = true; @@ -15563,7 +17198,7 @@ void CompilerMSL::analyze_argument_buffers() set_decoration(var_id, DecorationDescriptorSet, desc_set); set_decoration(var_id, DecorationBinding, kSwizzleBufferBinding); resources_in_set[desc_set].push_back( - { &var, to_name(var_id), SPIRType::UInt, get_metal_resource_index(var, SPIRType::UInt), 0 }); + { &var, nullptr, to_name(var_id), SPIRType::UInt, get_metal_resource_index(var, SPIRType::UInt), 0 }); } if (set_needs_buffer_sizes[desc_set]) @@ -15574,7 +17209,7 @@ void CompilerMSL::analyze_argument_buffers() set_decoration(var_id, DecorationDescriptorSet, desc_set); set_decoration(var_id, DecorationBinding, kBufferSizeBufferBinding); resources_in_set[desc_set].push_back( - { &var, to_name(var_id), SPIRType::UInt, get_metal_resource_index(var, SPIRType::UInt), 0 }); + { &var, nullptr, to_name(var_id), SPIRType::UInt, get_metal_resource_index(var, SPIRType::UInt), 0 }); } } } @@ -15586,7 +17221,7 @@ void CompilerMSL::analyze_argument_buffers() uint32_t desc_set = get_decoration(var_id, DecorationDescriptorSet); add_resource_name(var_id); resources_in_set[desc_set].push_back( - { &var, to_name(var_id), SPIRType::Struct, get_metal_resource_index(var, SPIRType::Struct), 0 }); + { &var, nullptr, to_name(var_id), SPIRType::Struct, get_metal_resource_index(var, SPIRType::Struct), 0 }); } for (uint32_t desc_set = 0; desc_set < kMaxArgumentBuffers; desc_set++) @@ -15630,7 +17265,7 @@ void CompilerMSL::analyze_argument_buffers() set_name(buffer_variable_id, join("spvDescriptorSet", desc_set)); // Ids must be emitted in ID order. - sort(begin(resources), end(resources), [&](const Resource &lhs, const Resource &rhs) -> bool { + stable_sort(begin(resources), end(resources), [&](const Resource &lhs, const Resource &rhs) -> bool { return tie(lhs.index, lhs.basetype) < tie(rhs.index, rhs.basetype); }); @@ -15645,41 +17280,44 @@ void CompilerMSL::analyze_argument_buffers() // member_index and next_arg_buff_index are incremented when padding members are added. if (msl_options.pad_argument_buffer_resources) { - while (resource.index > next_arg_buff_index) + if (!resource.descriptor_alias) { - auto &rez_bind = get_argument_buffer_resource(desc_set, next_arg_buff_index); - switch (rez_bind.basetype) + while (resource.index > next_arg_buff_index) { - case SPIRType::Void: - case SPIRType::Boolean: - case SPIRType::SByte: - case SPIRType::UByte: - case SPIRType::Short: - case SPIRType::UShort: - case SPIRType::Int: - case SPIRType::UInt: - case SPIRType::Int64: - case SPIRType::UInt64: - case SPIRType::AtomicCounter: - case SPIRType::Half: - case SPIRType::Float: - case SPIRType::Double: - add_argument_buffer_padding_buffer_type(buffer_type, member_index, next_arg_buff_index, rez_bind); - break; - case SPIRType::Image: - add_argument_buffer_padding_image_type(buffer_type, member_index, next_arg_buff_index, rez_bind); - break; - case SPIRType::Sampler: - add_argument_buffer_padding_sampler_type(buffer_type, member_index, next_arg_buff_index, rez_bind); - break; - case SPIRType::SampledImage: - if (next_arg_buff_index == rez_bind.msl_sampler) - add_argument_buffer_padding_sampler_type(buffer_type, member_index, next_arg_buff_index, rez_bind); - else + auto &rez_bind = get_argument_buffer_resource(desc_set, next_arg_buff_index); + switch (rez_bind.basetype) + { + case SPIRType::Void: + case SPIRType::Boolean: + case SPIRType::SByte: + case SPIRType::UByte: + case SPIRType::Short: + case SPIRType::UShort: + case SPIRType::Int: + case SPIRType::UInt: + case SPIRType::Int64: + case SPIRType::UInt64: + case SPIRType::AtomicCounter: + case SPIRType::Half: + case SPIRType::Float: + case SPIRType::Double: + add_argument_buffer_padding_buffer_type(buffer_type, member_index, next_arg_buff_index, rez_bind); + break; + case SPIRType::Image: add_argument_buffer_padding_image_type(buffer_type, member_index, next_arg_buff_index, rez_bind); - break; - default: - break; + break; + case SPIRType::Sampler: + add_argument_buffer_padding_sampler_type(buffer_type, member_index, next_arg_buff_index, rez_bind); + break; + case SPIRType::SampledImage: + if (next_arg_buff_index == rez_bind.msl_sampler) + add_argument_buffer_padding_sampler_type(buffer_type, member_index, next_arg_buff_index, rez_bind); + else + add_argument_buffer_padding_image_type(buffer_type, member_index, next_arg_buff_index, rez_bind); + break; + default: + break; + } } } @@ -15735,12 +17373,18 @@ void CompilerMSL::analyze_argument_buffers() } else if (buffers_requiring_dynamic_offset.count(pair)) { + if (resource.descriptor_alias) + SPIRV_CROSS_THROW("Descriptor aliasing is currently not supported with dynamic offsets."); + // Don't set the qualified name here; we'll define a variable holding the corrected buffer address later. buffer_type.member_types.push_back(var.basetype); buffers_requiring_dynamic_offset[pair].second = var.self; } else if (inline_uniform_blocks.count(pair)) { + if (resource.descriptor_alias) + SPIRV_CROSS_THROW("Descriptor aliasing is currently not supported with inline UBOs."); + // Put the buffer block itself into the argument buffer. buffer_type.member_types.push_back(get_variable_data_type_id(var)); set_qualified_name(var.self, join(to_name(buffer_variable_id), ".", mbr_name)); @@ -15772,9 +17416,12 @@ void CompilerMSL::analyze_argument_buffers() } else { - // Resources will be declared as pointers not references, so automatically dereference as appropriate. - buffer_type.member_types.push_back(var.basetype); - if (type.array.empty()) + if (!resource.descriptor_alias || resource.descriptor_alias == resource.var) + buffer_type.member_types.push_back(var.basetype); + + if (resource.descriptor_alias && resource.descriptor_alias != resource.var) + buffer_aliases_argument.push_back({ var.self, resource.descriptor_alias->self }); + else if (type.array.empty()) set_qualified_name(var.self, join("(*", to_name(buffer_variable_id), ".", mbr_name, ")")); else set_qualified_name(var.self, join(to_name(buffer_variable_id), ".", mbr_name)); @@ -15918,7 +17565,7 @@ void CompilerMSL::activate_argument_buffer_resources() uint32_t desc_set = get_decoration(self, DecorationDescriptorSet); if (descriptor_set_is_argument_buffer(desc_set)) - active_interface_variables.insert(self); + add_active_interface_variable(self); }); } @@ -15936,3 +17583,28 @@ const char *CompilerMSL::get_combined_sampler_suffix() const { return sampler_name_suffix.c_str(); } + +void CompilerMSL::emit_block_hints(const SPIRBlock &) +{ +} + +string CompilerMSL::additional_fixed_sample_mask_str() const +{ + char print_buffer[32]; +#ifdef _MSC_VER + // snprintf does not exist or is buggy on older MSVC versions, some of + // them being used by MinGW. Use sprintf instead and disable + // corresponding warning. +#pragma warning(push) +#pragma warning(disable : 4996) +#endif +#if _WIN32 + sprintf(print_buffer, "0x%x", msl_options.additional_fixed_sample_mask); +#else + snprintf(print_buffer, sizeof(print_buffer), "0x%x", msl_options.additional_fixed_sample_mask); +#endif +#ifdef _MSC_VER +#pragma warning(pop) +#endif + return print_buffer; +} diff --git a/third_party/spirv-cross/spirv_msl.hpp b/third_party/spirv-cross/spirv_msl.hpp index 61f54be1a5..2bc17b1227 100644 --- a/third_party/spirv-cross/spirv_msl.hpp +++ b/third_party/spirv-cross/spirv_msl.hpp @@ -1,5 +1,6 @@ /* * Copyright 2016-2021 The Brenwill Workshop Ltd. + * SPDX-License-Identifier: Apache-2.0 OR MIT * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +19,6 @@ * At your option, you may choose to accept this material under either: * 1. The Apache License, Version 2.0, found at , or * 2. The MIT License, found at . - * SPDX-License-Identifier: Apache-2.0 OR MIT. */ #ifndef SPIRV_CROSS_MSL_HPP @@ -34,35 +34,53 @@ namespace SPIRV_CROSS_NAMESPACE { -// Indicates the format of a shader input. Currently limited to specifying +// Indicates the format of a shader interface variable. Currently limited to specifying // if the input is an 8-bit unsigned integer, 16-bit unsigned integer, or // some other format. -enum MSLShaderInputFormat +enum MSLShaderVariableFormat { - MSL_SHADER_INPUT_FORMAT_OTHER = 0, - MSL_SHADER_INPUT_FORMAT_UINT8 = 1, - MSL_SHADER_INPUT_FORMAT_UINT16 = 2, - MSL_SHADER_INPUT_FORMAT_ANY16 = 3, - MSL_SHADER_INPUT_FORMAT_ANY32 = 4, + MSL_SHADER_VARIABLE_FORMAT_OTHER = 0, + MSL_SHADER_VARIABLE_FORMAT_UINT8 = 1, + MSL_SHADER_VARIABLE_FORMAT_UINT16 = 2, + MSL_SHADER_VARIABLE_FORMAT_ANY16 = 3, + MSL_SHADER_VARIABLE_FORMAT_ANY32 = 4, // Deprecated aliases. - MSL_VERTEX_FORMAT_OTHER = MSL_SHADER_INPUT_FORMAT_OTHER, - MSL_VERTEX_FORMAT_UINT8 = MSL_SHADER_INPUT_FORMAT_UINT8, - MSL_VERTEX_FORMAT_UINT16 = MSL_SHADER_INPUT_FORMAT_UINT16, + MSL_VERTEX_FORMAT_OTHER = MSL_SHADER_VARIABLE_FORMAT_OTHER, + MSL_VERTEX_FORMAT_UINT8 = MSL_SHADER_VARIABLE_FORMAT_UINT8, + MSL_VERTEX_FORMAT_UINT16 = MSL_SHADER_VARIABLE_FORMAT_UINT16, + MSL_SHADER_INPUT_FORMAT_OTHER = MSL_SHADER_VARIABLE_FORMAT_OTHER, + MSL_SHADER_INPUT_FORMAT_UINT8 = MSL_SHADER_VARIABLE_FORMAT_UINT8, + MSL_SHADER_INPUT_FORMAT_UINT16 = MSL_SHADER_VARIABLE_FORMAT_UINT16, + MSL_SHADER_INPUT_FORMAT_ANY16 = MSL_SHADER_VARIABLE_FORMAT_ANY16, + MSL_SHADER_INPUT_FORMAT_ANY32 = MSL_SHADER_VARIABLE_FORMAT_ANY32, - MSL_SHADER_INPUT_FORMAT_INT_MAX = 0x7fffffff + MSL_SHADER_VARIABLE_FORMAT_INT_MAX = 0x7fffffff }; -// Defines MSL characteristics of an input variable at a particular location. +// Indicates the rate at which a variable changes value, one of: per-vertex, +// per-primitive, or per-patch. +enum MSLShaderVariableRate +{ + MSL_SHADER_VARIABLE_RATE_PER_VERTEX = 0, + MSL_SHADER_VARIABLE_RATE_PER_PRIMITIVE = 1, + MSL_SHADER_VARIABLE_RATE_PER_PATCH = 2, + + MSL_SHADER_VARIABLE_RATE_INT_MAX = 0x7fffffff, +}; + +// Defines MSL characteristics of a shader interface variable at a particular location. // After compilation, it is possible to query whether or not this location was used. // If vecsize is nonzero, it must be greater than or equal to the vecsize declared in the shader, // or behavior is undefined. -struct MSLShaderInput +struct MSLShaderInterfaceVariable { uint32_t location = 0; - MSLShaderInputFormat format = MSL_SHADER_INPUT_FORMAT_OTHER; + uint32_t component = 0; + MSLShaderVariableFormat format = MSL_SHADER_VARIABLE_FORMAT_OTHER; spv::BuiltIn builtin = spv::BuiltInMax; uint32_t vecsize = 0; + MSLShaderVariableRate rate = MSL_SHADER_VARIABLE_RATE_PER_VERTEX; }; // Matches the binding index of a MSL resource for a binding within a descriptor set. @@ -300,6 +318,7 @@ public: uint32_t dynamic_offsets_buffer_index = 23; uint32_t shader_input_buffer_index = 22; uint32_t shader_index_buffer_index = 21; + uint32_t shader_patch_input_buffer_index = 20; uint32_t shader_input_wg_index = 0; uint32_t device_index = 0; uint32_t enable_frag_output_mask = 0xffffffff; @@ -320,10 +339,25 @@ public: bool dispatch_base = false; bool texture_1D_as_2D = false; - // Enable use of MSL 2.0 indirect argument buffers. + // Enable use of Metal argument buffers. // MSL 2.0 must also be enabled. bool argument_buffers = false; + // Defines Metal argument buffer tier levels. + // Uses same values as Metal MTLArgumentBuffersTier enumeration. + enum class ArgumentBuffersTier + { + Tier1 = 0, + Tier2 = 1, + }; + + // When using Metal argument buffers, indicates the Metal argument buffer tier level supported by the Metal platform. + // Ignored when Options::argument_buffers is disabled. + // - Tier1 supports writable images on macOS, but not on iOS. + // - Tier2 supports writable images on macOS and iOS, and higher resource count limits. + // Tier capabilities based on recommendations from Apple engineering. + ArgumentBuffersTier argument_buffers_tier = ArgumentBuffersTier::Tier1; + // Ensures vertex and instance indices start at zero. This reflects the behavior of HLSL with SV_VertexID and SV_InstanceID. bool enable_base_index_zero = false; @@ -381,6 +415,11 @@ public: // builtins are processed, but should result in more efficient usage of the GPU. bool multi_patch_workgroup = false; + // Use storage buffers instead of vertex-style attributes for tessellation evaluation + // input. This may require conversion of inputs in the generated post-tessellation + // vertex shader, but allows the use of nested arrays. + bool raw_buffer_tese_input = false; + // If set, a vertex shader will be compiled as part of a tessellation pipeline. // It will be translated as a compute kernel, so it can use the global invocation ID // to index the output buffer. @@ -392,7 +431,7 @@ public: // and will be addressed using the current ViewIndex. bool arrayed_subpass_input = false; - // Whether to use SIMD-group or quadgroup functions to implement group nnon-uniform + // Whether to use SIMD-group or quadgroup functions to implement group non-uniform // operations. Some GPUs on iOS do not support the SIMD-group functions, only the // quadgroup functions. bool ios_use_simdgroup_functions = false; @@ -434,6 +473,29 @@ public: // the extra threads away. bool force_sample_rate_shading = false; + // If set, gl_HelperInvocation will be set manually whenever a fragment is discarded. + // Some Metal devices have a bug where simd_is_helper_thread() does not return true + // after a fragment has been discarded. This is a workaround that is only expected to be needed + // until the bug is fixed in Metal; it is provided as an option to allow disabling it when that occurs. + bool manual_helper_invocation_updates = true; + + // If set, extra checks will be emitted in fragment shaders to prevent writes + // from discarded fragments. Some Metal devices have a bug where writes to storage resources + // from discarded fragment threads continue to occur, despite the fragment being + // discarded. This is a workaround that is only expected to be needed until the + // bug is fixed in Metal; it is provided as an option so it can be enabled + // only when the bug is present. + bool check_discarded_frag_stores = false; + + // If set, Lod operands to OpImageSample*DrefExplicitLod for 1D and 2D array images + // will be implemented using a gradient instead of passing the level operand directly. + // Some Metal devices have a bug where the level() argument to depth2d_array::sample_compare() + // in a fragment shader is biased by some unknown amount, possibly dependent on the + // partial derivatives of the texture coordinates. This is a workaround that is only + // expected to be needed until the bug is fixed in Metal; it is provided as an option + // so it can be enabled only when the bug is present. + bool sample_dref_lod_array_as_grad = false; + bool is_ios() const { return platform == iOS; @@ -444,6 +506,11 @@ public: return platform == macOS; } + bool use_quadgroup_operation() const + { + return is_ios() && !ios_use_simdgroup_functions; + } + void set_msl_version(uint32_t major, uint32_t minor = 0, uint32_t patch = 0) { msl_version = make_msl_version(major, minor, patch); @@ -493,6 +560,11 @@ public: return !buffers_requiring_array_length.empty(); } + bool buffer_requires_array_length(VariableID id) const + { + return buffers_requiring_array_length.count(id) != 0; + } + // Provide feedback to calling API to allow it to pass a buffer // containing the view mask for the current multiview subpass. bool needs_view_mask_buffer() const @@ -533,10 +605,15 @@ public: explicit CompilerMSL(const ParsedIR &ir); explicit CompilerMSL(ParsedIR &&ir); - // input is a shader input description used to fix up shader input variables. + // input is a shader interface variable description used to fix up shader input variables. // If shader inputs are provided, is_msl_shader_input_used() will return true after - // calling ::compile() if the location was used by the MSL code. - void add_msl_shader_input(const MSLShaderInput &input); + // calling ::compile() if the location were used by the MSL code. + void add_msl_shader_input(const MSLShaderInterfaceVariable &input); + + // output is a shader interface variable description used to fix up shader output variables. + // If shader outputs are provided, is_msl_shader_output_used() will return true after + // calling ::compile() if the location were used by the MSL code. + void add_msl_shader_output(const MSLShaderInterfaceVariable &output); // resource is a resource binding to indicate the MSL buffer, // texture or sampler index to use for a particular SPIR-V description set @@ -571,6 +648,9 @@ public: // Query after compilation is done. This allows you to check if an input location was used by the shader. bool is_msl_shader_input_used(uint32_t location); + // Query after compilation is done. This allows you to check if an output location were used by the shader. + bool is_msl_shader_output_used(uint32_t location); + // If not using add_msl_shader_input, it's possible // that certain builtin attributes need to be automatically assigned locations. // This is typical for tessellation builtin inputs such as tess levels, gl_Position, etc. @@ -578,6 +658,13 @@ public: // add_msl_shader_input or the builtin is not used, otherwise returns N in [[attribute(N)]]. uint32_t get_automatic_builtin_input_location(spv::BuiltIn builtin) const; + // If not using add_msl_shader_output, it's possible + // that certain builtin attributes need to be automatically assigned locations. + // This is typical for tessellation builtin outputs such as tess levels, gl_Position, etc. + // This returns k_unknown_location if the location were explicitly assigned with + // add_msl_shader_output or the builtin were not used, otherwise returns N in [[attribute(N)]]. + uint32_t get_automatic_builtin_output_location(spv::BuiltIn builtin) const; + // NOTE: Only resources which are remapped using add_msl_resource_binding will be reported here. // Constexpr samplers are always assumed to be emitted. // No specific MSLResourceBinding remapping is required for constexpr samplers as long as they are remapped @@ -632,7 +719,7 @@ public: protected: // An enum of SPIR-V functions that are implemented in additional // source code that is added to the shader if necessary. - enum SPVFuncImpl + enum SPVFuncImpl : uint8_t { SPVFuncImplNone, SPVFuncImplMod, @@ -656,8 +743,10 @@ protected: SPVFuncImplFMul, SPVFuncImplFAdd, SPVFuncImplFSub, + SPVFuncImplQuantizeToF16, SPVFuncImplCubemapTo2DArrayFace, SPVFuncImplUnsafeArray, // Allow Metal to use the array template to make arrays a value type + SPVFuncImplStorageMatrix, // Allow threadgroup construction of matrices SPVFuncImplInverse4x4, SPVFuncImplInverse3x3, SPVFuncImplInverse2x2, @@ -711,6 +800,8 @@ protected: // If the underlying resource has been used for comparison then duplicate loads of that resource must be too // Use Metal's native frame-buffer fetch API for subpass inputs. void emit_texture_op(const Instruction &i, bool sparse) override; + void emit_binary_ptr_op(uint32_t result_type, uint32_t result_id, uint32_t op0, uint32_t op1, const char *op); + std::string to_ptr_expression(uint32_t id, bool register_expression_read = true); void emit_binary_unord_op(uint32_t result_type, uint32_t result_id, uint32_t op0, uint32_t op1, const char *op); void emit_instruction(const Instruction &instr) override; void emit_glsl_op(uint32_t result_type, uint32_t result_id, uint32_t op, const uint32_t *args, @@ -729,10 +820,13 @@ protected: void emit_struct_member(const SPIRType &type, uint32_t member_type_id, uint32_t index, const std::string &qualifier = "", uint32_t base_offset = 0) override; void emit_struct_padding_target(const SPIRType &type) override; + std::string type_to_glsl(const SPIRType &type, uint32_t id, bool member); std::string type_to_glsl(const SPIRType &type, uint32_t id = 0) override; + void emit_block_hints(const SPIRBlock &block) override; // Allow Metal to use the array template to make arrays a value type std::string type_to_array_glsl(const SPIRType &type) override; + std::string constant_op_expression(const SPIRConstantOp &cop) override; // Threadgroup arrays can't have a wrapper type std::string variable_decl(const SPIRVariable &variable) override; @@ -761,10 +855,9 @@ protected: std::string bitcast_glsl_op(const SPIRType &result_type, const SPIRType &argument_type) override; bool emit_complex_bitcast(uint32_t result_id, uint32_t id, uint32_t op0) override; bool skip_argument(uint32_t id) const override; - std::string to_member_reference(uint32_t base, const SPIRType &type, uint32_t index, bool ptr_chain) override; + std::string to_member_reference(uint32_t base, const SPIRType &type, uint32_t index, bool ptr_chain_is_resolved) override; std::string to_qualifiers_glsl(uint32_t id) override; void replace_illegal_names() override; - void declare_undefined_values() override; void declare_constant_arrays(); void replace_illegal_entry_point_names(); @@ -780,13 +873,17 @@ protected: bool is_non_native_row_major_matrix(uint32_t id) override; bool member_is_non_native_row_major_matrix(const SPIRType &type, uint32_t index) override; std::string convert_row_major_matrix(std::string exp_str, const SPIRType &exp_type, uint32_t physical_type_id, - bool is_packed) override; + bool is_packed, bool relaxed) override; + + bool is_tesc_shader() const; + bool is_tese_shader() const; void preprocess_op_codes(); void localize_global_variables(); void extract_global_variables_from_functions(); void mark_packable_structs(); void mark_as_packable(SPIRType &type); + void mark_as_workgroup_struct(SPIRType &type); std::unordered_map> function_global_vars; void extract_global_variables_from_function(uint32_t func_id, std::set &added_arg_ids, @@ -822,20 +919,29 @@ protected: bool add_component_variable_to_interface_block(spv::StorageClass storage, const std::string &ib_var_ref, SPIRVariable &var, const SPIRType &type, InterfaceBlockMeta &meta); - void add_plain_member_variable_to_interface_block(spv::StorageClass storage, const std::string &ib_var_ref, - SPIRType &ib_type, SPIRVariable &var, uint32_t index, - InterfaceBlockMeta &meta); - void add_composite_member_variable_to_interface_block(spv::StorageClass storage, const std::string &ib_var_ref, - SPIRType &ib_type, SPIRVariable &var, uint32_t index, - InterfaceBlockMeta &meta); + void add_plain_member_variable_to_interface_block(spv::StorageClass storage, + const std::string &ib_var_ref, SPIRType &ib_type, + SPIRVariable &var, SPIRType &var_type, + uint32_t mbr_idx, InterfaceBlockMeta &meta, + const std::string &mbr_name_qual, + const std::string &var_chain_qual, + uint32_t &location, uint32_t &var_mbr_idx); + void add_composite_member_variable_to_interface_block(spv::StorageClass storage, + const std::string &ib_var_ref, SPIRType &ib_type, + SPIRVariable &var, SPIRType &var_type, + uint32_t mbr_idx, InterfaceBlockMeta &meta, + const std::string &mbr_name_qual, + const std::string &var_chain_qual, + uint32_t &location, uint32_t &var_mbr_idx); void add_tess_level_input_to_interface_block(const std::string &ib_var_ref, SPIRType &ib_type, SPIRVariable &var); + void add_tess_level_input(const std::string &base_ref, const std::string &mbr_name, SPIRVariable &var); void fix_up_interface_member_indices(spv::StorageClass storage, uint32_t ib_type_id); void mark_location_as_used_by_shader(uint32_t location, const SPIRType &type, spv::StorageClass storage, bool fallback = false); uint32_t ensure_correct_builtin_type(uint32_t type_id, spv::BuiltIn builtin); - uint32_t ensure_correct_input_type(uint32_t type_id, uint32_t location, + uint32_t ensure_correct_input_type(uint32_t type_id, uint32_t location, uint32_t component, uint32_t num_components, bool strip_array); void emit_custom_templates(); @@ -854,23 +960,28 @@ protected: std::string entry_point_arg_stage_in(); void entry_point_args_builtin(std::string &args); void entry_point_args_discrete_descriptors(std::string &args); - std::string to_qualified_member_name(const SPIRType &type, uint32_t index); + std::string append_member_name(const std::string &qualifier, const SPIRType &type, uint32_t index); std::string ensure_valid_name(std::string name, std::string pfx); std::string to_sampler_expression(uint32_t id); std::string to_swizzle_expression(uint32_t id); std::string to_buffer_size_expression(uint32_t id); bool is_sample_rate() const; + bool is_intersection_query() const; bool is_direct_input_builtin(spv::BuiltIn builtin); std::string builtin_qualifier(spv::BuiltIn builtin); std::string builtin_type_decl(spv::BuiltIn builtin, uint32_t id = 0); std::string built_in_func_arg(spv::BuiltIn builtin, bool prefix_comma); std::string member_attribute_qualifier(const SPIRType &type, uint32_t index); + std::string member_location_attribute_qualifier(const SPIRType &type, uint32_t index); std::string argument_decl(const SPIRFunction::Parameter &arg); + const char *descriptor_address_space(uint32_t id, spv::StorageClass storage, const char *plain_address_space) const; std::string round_fp_tex_coords(std::string tex_coords, bool coord_is_fp); uint32_t get_metal_resource_index(SPIRVariable &var, SPIRType::BaseType basetype, uint32_t plane = 0); uint32_t get_member_location(uint32_t type_id, uint32_t index, uint32_t *comp = nullptr) const; uint32_t get_or_allocate_builtin_input_member_location(spv::BuiltIn builtin, uint32_t type_id, uint32_t index, uint32_t *comp = nullptr); + uint32_t get_or_allocate_builtin_output_member_location(spv::BuiltIn builtin, + uint32_t type_id, uint32_t index, uint32_t *comp = nullptr); uint32_t get_physical_tess_level_array_size(spv::BuiltIn builtin) const; @@ -906,7 +1017,7 @@ protected: bool validate_member_packing_rules_msl(const SPIRType &type, uint32_t index) const; std::string get_argument_address_space(const SPIRVariable &argument); std::string get_type_address_space(const SPIRType &type, uint32_t id, bool argument = false); - const char *to_restrict(uint32_t id, bool space = true); + const char *to_restrict(uint32_t id, bool space); SPIRType &get_stage_in_struct_type(); SPIRType &get_stage_out_struct_type(); SPIRType &get_patch_stage_in_struct_type(); @@ -914,8 +1025,8 @@ protected: std::string get_tess_factor_struct_name(); SPIRType &get_uint_type(); uint32_t get_uint_type_id(); - void emit_atomic_func_op(uint32_t result_type, uint32_t result_id, const char *op, uint32_t mem_order_1, - uint32_t mem_order_2, bool has_mem_order_2, uint32_t op0, uint32_t op1 = 0, + void emit_atomic_func_op(uint32_t result_type, uint32_t result_id, const char *op, spv::Op opcode, + uint32_t mem_order_1, uint32_t mem_order_2, bool has_mem_order_2, uint32_t op0, uint32_t op1 = 0, bool op1_is_pointer = false, bool op1_is_literal = false, uint32_t op2 = 0); const char *get_memory_order(uint32_t spv_mem_sem); void add_pragma_line(const std::string &line); @@ -926,9 +1037,12 @@ protected: void build_implicit_builtins(); uint32_t build_constant_uint_array_pointer(); void emit_entry_point_declarations() override; + bool uses_explicit_early_fragment_test(); + uint32_t builtin_frag_coord_id = 0; uint32_t builtin_sample_id_id = 0; uint32_t builtin_sample_mask_id = 0; + uint32_t builtin_helper_invocation_id = 0; uint32_t builtin_vertex_idx_id = 0; uint32_t builtin_base_vertex_id = 0; uint32_t builtin_instance_idx_id = 0; @@ -953,9 +1067,10 @@ protected: uint32_t argument_buffer_padding_sampler_type_id = 0; bool does_shader_write_sample_mask = false; + bool frag_shader_needs_discard_checks = false; - void cast_to_builtin_store(uint32_t target_id, std::string &expr, const SPIRType &expr_type) override; - void cast_from_builtin_load(uint32_t source_id, std::string &expr, const SPIRType &expr_type) override; + void cast_to_variable_store(uint32_t target_id, std::string &expr, const SPIRType &expr_type) override; + void cast_from_variable_load(uint32_t source_id, std::string &expr, const SPIRType &expr_type) override; void emit_store_statement(uint32_t lhs_expression, uint32_t rhs_expression) override; void analyze_sampled_image_usage(); @@ -964,6 +1079,8 @@ protected: void prepare_access_chain_for_scalar_access(std::string &expr, const SPIRType &type, spv::StorageClass storage, bool &is_packed) override; void fix_up_interpolant_access_chain(const uint32_t *ops, uint32_t length); + void check_physical_type_cast(std::string &expr, const SPIRType *type, uint32_t physical_type) override; + bool emit_tessellation_access_chain(const uint32_t *ops, uint32_t length); bool emit_tessellation_io_load(uint32_t result_type, uint32_t id, uint32_t ptr); bool is_out_of_bounds_tessellation_level(uint32_t id_lhs); @@ -977,12 +1094,17 @@ protected: Options msl_options; std::set spv_function_implementations; // Must be ordered to ensure declarations are in a specific order. - std::map inputs_by_location; - std::unordered_map inputs_by_builtin; + std::map inputs_by_location; + std::unordered_map inputs_by_builtin; + std::map outputs_by_location; + std::unordered_map outputs_by_builtin; std::unordered_set location_inputs_in_use; std::unordered_set location_inputs_in_use_fallback; + std::unordered_set location_outputs_in_use; + std::unordered_set location_outputs_in_use_fallback; std::unordered_map fragment_output_components; std::unordered_map builtin_to_automatic_input_location; + std::unordered_map builtin_to_automatic_output_location; std::set pragma_lines; std::set typedef_lines; SmallVector vars_needing_early_declaration; @@ -1002,6 +1124,8 @@ protected: VariableID patch_stage_out_var_id = 0; VariableID stage_in_ptr_var_id = 0; VariableID stage_out_ptr_var_id = 0; + VariableID tess_level_inner_var_id = 0; + VariableID tess_level_outer_var_id = 0; VariableID stage_out_masked_builtin_type_id = 0; // Handle HLSL-style 0-based vertex/instance index. @@ -1028,6 +1152,7 @@ protected: bool needs_subgroup_invocation_id = false; bool needs_subgroup_size = false; bool needs_sample_id = false; + bool needs_helper_invocation = false; std::string qual_pos_var_name; std::string stage_in_var_name = "in"; std::string stage_out_var_name = "out"; @@ -1040,6 +1165,7 @@ protected: std::string input_wg_var_name = "gl_in"; std::string input_buffer_var_name = "spvIn"; std::string output_buffer_var_name = "spvOut"; + std::string patch_input_buffer_var_name = "spvPatchIn"; std::string patch_output_buffer_var_name = "spvPatchOut"; std::string tess_factor_buffer_var_name = "spvTessLevel"; std::string index_buffer_var_name = "spvIndices"; @@ -1051,7 +1177,9 @@ protected: const MSLConstexprSampler *find_constexpr_sampler(uint32_t id) const; std::unordered_set buffers_requiring_array_length; - SmallVector buffer_arrays; + SmallVector buffer_arrays_discrete; + SmallVector> buffer_aliases_argument; + SmallVector buffer_aliases_discrete; std::unordered_set atomic_image_vars; // Emulate texture2D atomic operations std::unordered_set pull_model_inputs; @@ -1092,6 +1220,19 @@ protected: bool variable_storage_requires_stage_io(spv::StorageClass storage) const; + bool needs_manual_helper_invocation_updates() const + { + return msl_options.manual_helper_invocation_updates && msl_options.supports_msl_version(2, 3); + } + bool needs_frag_discard_checks() const + { + return get_execution_model() == spv::ExecutionModelFragment && msl_options.supports_msl_version(2, 3) && + msl_options.check_discarded_frag_stores && frag_shader_needs_discard_checks; + } + + bool has_additional_fixed_sample_mask() const { return msl_options.additional_fixed_sample_mask != 0xffffffff; } + std::string additional_fixed_sample_mask_str() const; + // OpcodeHandler that handles several MSL preprocessing operations. struct OpCodePreprocessor : OpcodeHandler { @@ -1109,10 +1250,13 @@ protected: std::unordered_map image_pointers; // Emulate texture2D atomic operations bool suppress_missing_prototypes = false; bool uses_atomics = false; - bool uses_resource_write = false; + bool uses_image_write = false; + bool uses_buffer_write = false; + bool uses_discard = false; bool needs_subgroup_invocation_id = false; bool needs_subgroup_size = false; bool needs_sample_id = false; + bool needs_helper_invocation = false; }; // OpcodeHandler that scans for uses of sampled images diff --git a/third_party/spirv-cross/spirv_parser.cpp b/third_party/spirv-cross/spirv_parser.cpp index 86f7fd3500..01c2e38124 100644 --- a/third_party/spirv-cross/spirv_parser.cpp +++ b/third_party/spirv-cross/spirv_parser.cpp @@ -1,5 +1,6 @@ /* * Copyright 2018-2021 Arm Limited + * SPDX-License-Identifier: Apache-2.0 OR MIT * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +19,6 @@ * At your option, you may choose to accept this material under either: * 1. The Apache License, Version 2.0, found at , or * 2. The MIT License, found at . - * SPDX-License-Identifier: Apache-2.0 OR MIT. */ #include "spirv_parser.hpp" @@ -31,7 +31,7 @@ namespace SPIRV_CROSS_NAMESPACE { Parser::Parser(vector spirv) { - ir.spirv = move(spirv); + ir.spirv = std::move(spirv); } Parser::Parser(const uint32_t *spirv_data, size_t word_count) @@ -68,6 +68,7 @@ static bool is_valid_spirv_version(uint32_t version) case 0x10300: // SPIR-V 1.3 case 0x10400: // SPIR-V 1.4 case 0x10500: // SPIR-V 1.5 + case 0x10600: // SPIR-V 1.6 return true; default: @@ -182,6 +183,15 @@ void Parser::parse(const Instruction &instruction) auto op = static_cast(instruction.op); uint32_t length = instruction.length; + // HACK for glslang that might emit OpEmitMeshTasksEXT followed by return / branch. + // Instead of failing hard, just ignore it. + if (ignore_trailing_block_opcodes) + { + ignore_trailing_block_opcodes = false; + if (op == OpReturn || op == OpBranch || op == OpUnreachable) + return; + } + switch (op) { case OpSourceContinued: @@ -258,29 +268,37 @@ void Parser::parse(const Instruction &instruction) case OpExtension: { auto ext = extract_string(ir.spirv, instruction.offset); - ir.declared_extensions.push_back(move(ext)); + ir.declared_extensions.push_back(std::move(ext)); break; } case OpExtInstImport: { uint32_t id = ops[0]; + + SPIRExtension::Extension spirv_ext = SPIRExtension::Unsupported; + auto ext = extract_string(ir.spirv, instruction.offset + 1); if (ext == "GLSL.std.450") - set(id, SPIRExtension::GLSL); + spirv_ext = SPIRExtension::GLSL; else if (ext == "DebugInfo") - set(id, SPIRExtension::SPV_debug_info); + spirv_ext = SPIRExtension::SPV_debug_info; else if (ext == "SPV_AMD_shader_ballot") - set(id, SPIRExtension::SPV_AMD_shader_ballot); + spirv_ext = SPIRExtension::SPV_AMD_shader_ballot; else if (ext == "SPV_AMD_shader_explicit_vertex_parameter") - set(id, SPIRExtension::SPV_AMD_shader_explicit_vertex_parameter); + spirv_ext = SPIRExtension::SPV_AMD_shader_explicit_vertex_parameter; else if (ext == "SPV_AMD_shader_trinary_minmax") - set(id, SPIRExtension::SPV_AMD_shader_trinary_minmax); + spirv_ext = SPIRExtension::SPV_AMD_shader_trinary_minmax; else if (ext == "SPV_AMD_gcn_shader") - set(id, SPIRExtension::SPV_AMD_gcn_shader); - else - set(id, SPIRExtension::Unsupported); + spirv_ext = SPIRExtension::SPV_AMD_gcn_shader; + else if (ext == "NonSemantic.DebugPrintf") + spirv_ext = SPIRExtension::NonSemanticDebugPrintf; + else if (ext == "NonSemantic.Shader.DebugInfo.100") + spirv_ext = SPIRExtension::NonSemanticShaderDebugInfo; + else if (ext.find("NonSemantic.") == 0) + spirv_ext = SPIRExtension::NonSemanticGeneric; + set(id, spirv_ext); // Other SPIR-V extensions which have ExtInstrs are currently not supported. break; @@ -290,7 +308,15 @@ void Parser::parse(const Instruction &instruction) { // The SPIR-V debug information extended instructions might come at global scope. if (current_block) + { current_block->ops.push_back(instruction); + if (length >= 2) + { + const auto *type = maybe_get(ops[0]); + if (type) + ir.load_type_width.insert({ ops[1], type->width }); + } + } break; } @@ -338,12 +364,32 @@ void Parser::parse(const Instruction &instruction) execution.output_vertices = ops[2]; break; + case ExecutionModeOutputPrimitivesEXT: + execution.output_primitives = ops[2]; + break; + default: break; } break; } + case OpExecutionModeId: + { + auto &execution = ir.entry_points[ops[0]]; + auto mode = static_cast(ops[1]); + execution.flags.set(mode); + + if (mode == ExecutionModeLocalSizeId) + { + execution.workgroup_size.id_x = ops[2]; + execution.workgroup_size.id_y = ops[3]; + execution.workgroup_size.id_z = ops[4]; + } + + break; + } + case OpName: { uint32_t id = ops[0]; @@ -961,6 +1007,58 @@ void Parser::parse(const Instruction &instruction) current_block->false_block = ops[2]; current_block->terminator = SPIRBlock::Select; + + if (current_block->true_block == current_block->false_block) + { + // Bogus conditional, translate to a direct branch. + // Avoids some ugly edge cases later when analyzing CFGs. + + // There are some super jank cases where the merge block is different from the true/false, + // and later branches can "break" out of the selection construct this way. + // This is complete nonsense, but CTS hits this case. + // In this scenario, we should see the selection construct as more of a Switch with one default case. + // The problem here is that this breaks any attempt to break out of outer switch statements, + // but it's theoretically solvable if this ever comes up using the ladder breaking system ... + + if (current_block->true_block != current_block->next_block && + current_block->merge == SPIRBlock::MergeSelection) + { + uint32_t ids = ir.increase_bound_by(2); + + SPIRType type; + type.basetype = SPIRType::Int; + type.width = 32; + set(ids, type); + auto &c = set(ids + 1, ids); + + current_block->condition = c.self; + current_block->default_block = current_block->true_block; + current_block->terminator = SPIRBlock::MultiSelect; + ir.block_meta[current_block->next_block] &= ~ParsedIR::BLOCK_META_SELECTION_MERGE_BIT; + ir.block_meta[current_block->next_block] |= ParsedIR::BLOCK_META_MULTISELECT_MERGE_BIT; + } + else + { + // Collapse loops if we have to. + bool collapsed_loop = current_block->true_block == current_block->merge_block && + current_block->merge == SPIRBlock::MergeLoop; + + if (collapsed_loop) + { + ir.block_meta[current_block->merge_block] &= ~ParsedIR::BLOCK_META_LOOP_MERGE_BIT; + ir.block_meta[current_block->continue_block] &= ~ParsedIR::BLOCK_META_CONTINUE_BIT; + } + + current_block->next_block = current_block->true_block; + current_block->condition = 0; + current_block->true_block = 0; + current_block->false_block = 0; + current_block->merge_block = 0; + current_block->merge = SPIRBlock::MergeNone; + current_block->terminator = SPIRBlock::Direct; + } + } + current_block = nullptr; break; } @@ -975,8 +1073,21 @@ void Parser::parse(const Instruction &instruction) current_block->condition = ops[0]; current_block->default_block = ops[1]; - for (uint32_t i = 2; i + 2 <= length; i += 2) - current_block->cases.push_back({ ops[i], ops[i + 1] }); + uint32_t remaining_ops = length - 2; + if ((remaining_ops % 2) == 0) + { + for (uint32_t i = 2; i + 2 <= length; i += 2) + current_block->cases_32bit.push_back({ ops[i], ops[i + 1] }); + } + + if ((remaining_ops % 3) == 0) + { + for (uint32_t i = 2; i + 3 <= length; i += 3) + { + uint64_t value = (static_cast(ops[i + 1]) << 32) | ops[i]; + current_block->cases_64bit.push_back({ value, ops[i + 2] }); + } + } // If we jump to next block, make it break instead since we're inside a switch case block at that point. ir.block_meta[current_block->next_block] |= ParsedIR::BLOCK_META_MULTISELECT_MERGE_BIT; @@ -986,6 +1097,7 @@ void Parser::parse(const Instruction &instruction) } case OpKill: + case OpTerminateInvocation: { if (!current_block) SPIRV_CROSS_THROW("Trying to end a non-existing block."); @@ -1010,6 +1122,18 @@ void Parser::parse(const Instruction &instruction) current_block = nullptr; break; + case OpEmitMeshTasksEXT: + if (!current_block) + SPIRV_CROSS_THROW("Trying to end a non-existing block."); + current_block->terminator = SPIRBlock::EmitMeshTasks; + for (uint32_t i = 0; i < 3; i++) + current_block->mesh.groups[i] = ops[i]; + current_block->mesh.payload = length >= 4 ? ops[3] : 0; + current_block = nullptr; + // Currently glslang is bugged and does not treat EmitMeshTasksEXT as a terminator. + ignore_trailing_block_opcodes = true; + break; + case OpReturn: { if (!current_block) @@ -1134,6 +1258,13 @@ void Parser::parse(const Instruction &instruction) // Actual opcodes. default: { + if (length >= 2) + { + const auto *type = maybe_get(ops[0]); + if (type) + ir.load_type_width.insert({ ops[1], type->width }); + } + if (!current_block) SPIRV_CROSS_THROW("Currently no block to insert opcode."); diff --git a/third_party/spirv-cross/spirv_parser.hpp b/third_party/spirv-cross/spirv_parser.hpp index 7f4a7d856f..dabc0e2244 100644 --- a/third_party/spirv-cross/spirv_parser.hpp +++ b/third_party/spirv-cross/spirv_parser.hpp @@ -1,5 +1,6 @@ /* * Copyright 2018-2021 Arm Limited + * SPDX-License-Identifier: Apache-2.0 OR MIT * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +19,6 @@ * At your option, you may choose to accept this material under either: * 1. The Apache License, Version 2.0, found at , or * 2. The MIT License, found at . - * SPDX-License-Identifier: Apache-2.0 OR MIT. */ #ifndef SPIRV_CROSS_PARSER_HPP @@ -46,6 +46,8 @@ private: ParsedIR ir; SPIRFunction *current_function = nullptr; SPIRBlock *current_block = nullptr; + // For workarounds. + bool ignore_trailing_block_opcodes = false; void parse(const Instruction &instr); const uint32_t *stream(const Instruction &instr) const; diff --git a/third_party/spirv-cross/spirv_reflect.cpp b/third_party/spirv-cross/spirv_reflect.cpp index 447bff1c9e..0bd224e6c2 100644 --- a/third_party/spirv-cross/spirv_reflect.cpp +++ b/third_party/spirv-cross/spirv_reflect.cpp @@ -1,5 +1,6 @@ /* * Copyright 2018-2021 Bradley Austin Davis + * SPDX-License-Identifier: Apache-2.0 OR MIT * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +19,6 @@ * At your option, you may choose to accept this material under either: * 1. The Apache License, Version 2.0, found at , or * 2. The MIT License, found at . - * SPDX-License-Identifier: Apache-2.0 OR MIT. */ #include "spirv_reflect.hpp" @@ -587,18 +587,18 @@ void CompilerReflection::emit_resources(const char *tag, const SmallVectoremit_json_key_value("writeonly", true); - if (buffer_flags.get(DecorationNonWritable)) - json_stream->emit_json_key_value("readonly", true); - if (buffer_flags.get(DecorationRestrict)) - json_stream->emit_json_key_value("restrict", true); - if (buffer_flags.get(DecorationCoherent)) - json_stream->emit_json_key_value("coherent", true); - } + Bitset qualifier_mask = ssbo_block ? get_buffer_block_flags(res.id) : mask; + + if (qualifier_mask.get(DecorationNonReadable)) + json_stream->emit_json_key_value("writeonly", true); + if (qualifier_mask.get(DecorationNonWritable)) + json_stream->emit_json_key_value("readonly", true); + if (qualifier_mask.get(DecorationRestrict)) + json_stream->emit_json_key_value("restrict", true); + if (qualifier_mask.get(DecorationCoherent)) + json_stream->emit_json_key_value("coherent", true); + if (qualifier_mask.get(DecorationVolatile)) + json_stream->emit_json_key_value("volatile", true); } emit_type_array(type); diff --git a/third_party/spirv-cross/spirv_reflect.hpp b/third_party/spirv-cross/spirv_reflect.hpp index 8acbd2804d..a129ba54da 100644 --- a/third_party/spirv-cross/spirv_reflect.hpp +++ b/third_party/spirv-cross/spirv_reflect.hpp @@ -1,5 +1,6 @@ /* * Copyright 2018-2021 Bradley Austin Davis + * SPDX-License-Identifier: Apache-2.0 OR MIT * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +19,6 @@ * At your option, you may choose to accept this material under either: * 1. The Apache License, Version 2.0, found at , or * 2. The MIT License, found at . - * SPDX-License-Identifier: Apache-2.0 OR MIT. */ #ifndef SPIRV_CROSS_REFLECT_HPP diff --git a/third_party/spirv-cross/test_shaders.py b/third_party/spirv-cross/test_shaders.py index 9e3b8e4424..1e8af62abe 100755 --- a/third_party/spirv-cross/test_shaders.py +++ b/third_party/spirv-cross/test_shaders.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 # Copyright 2015-2021 Arm Limited +# SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -110,8 +111,8 @@ def print_msl_compiler_version(): def msl_compiler_supports_version(version): try: - subprocess.check_call(['xcrun', '--sdk', 'macosx', 'metal', '-x', 'metal', '-std=macos-metal' + version, '-'], - stdin = subprocess.DEVNULL, stdout = subprocess.DEVNULL, stderr = subprocess.DEVNULL) + subprocess.check_call(['xcrun', '--sdk', 'macosx', 'metal', '-x', 'metal', version, '-'], + stdin = subprocess.DEVNULL, stdout = subprocess.DEVNULL, stderr = subprocess.DEVNULL) print('Current SDK supports MSL {0}. Enabling validation for MSL {0} shaders.'.format(version)) return True except OSError as e: @@ -123,7 +124,9 @@ def msl_compiler_supports_version(version): def path_to_msl_standard(shader): if '.ios.' in shader: - if '.msl2.' in shader: + if '.msl3.' in shader: + return '-std=metal3.0' + elif '.msl2.' in shader: return '-std=ios-metal2.0' elif '.msl21.' in shader: return '-std=ios-metal2.1' @@ -131,6 +134,8 @@ def path_to_msl_standard(shader): return '-std=ios-metal2.2' elif '.msl23.' in shader: return '-std=ios-metal2.3' + elif '.msl24.' in shader: + return '-std=ios-metal2.4' elif '.msl11.' in shader: return '-std=ios-metal1.1' elif '.msl10.' in shader: @@ -138,7 +143,9 @@ def path_to_msl_standard(shader): else: return '-std=ios-metal1.2' else: - if '.msl2.' in shader: + if '.msl3.' in shader: + return '-std=metal3.0' + elif '.msl2.' in shader: return '-std=macos-metal2.0' elif '.msl21.' in shader: return '-std=macos-metal2.1' @@ -146,13 +153,17 @@ def path_to_msl_standard(shader): return '-std=macos-metal2.2' elif '.msl23.' in shader: return '-std=macos-metal2.3' + elif '.msl24.' in shader: + return '-std=macos-metal2.4' elif '.msl11.' in shader: return '-std=macos-metal1.1' else: return '-std=macos-metal1.2' def path_to_msl_standard_cli(shader): - if '.msl2.' in shader: + if '.msl3.' in shader: + return '30000' + elif '.msl2.' in shader: return '20000' elif '.msl21.' in shader: return '20100' @@ -160,6 +171,8 @@ def path_to_msl_standard_cli(shader): return '20200' elif '.msl23.' in shader: return '20300' + elif '.msl24.' in shader: + return '20400' elif '.msl11.' in shader: return '10100' else: @@ -185,7 +198,18 @@ def cross_compile_msl(shader, spirv, opt, iterations, paths): spirv_path = create_temporary() msl_path = create_temporary(os.path.basename(shader)) - spirv_env = 'vulkan1.1spv1.4' if ('.spv14.' in shader) else 'vulkan1.1' + spirv_16 = '.spv16.' in shader + spirv_14 = '.spv14.' in shader + + if spirv_16: + spirv_env = 'spv1.6' + glslang_env = 'spirv1.6' + elif spirv_14: + spirv_env = 'vulkan1.1spv1.4' + glslang_env = 'spirv1.4' + else: + spirv_env = 'vulkan1.1' + glslang_env = 'vulkan1.1' spirv_cmd = [paths.spirv_as, '--target-env', spirv_env, '-o', spirv_path, shader] if '.preserve.' in shader: @@ -194,7 +218,7 @@ def cross_compile_msl(shader, spirv, opt, iterations, paths): if spirv: subprocess.check_call(spirv_cmd) else: - subprocess.check_call([paths.glslang, '--amb' ,'--target-env', 'vulkan1.1', '-V', '-o', spirv_path, shader]) + subprocess.check_call([paths.glslang, '--amb' ,'--target-env', glslang_env, '-V', '-o', spirv_path, shader]) if opt and (not shader_is_invalid_spirv(shader)): if '.graphics-robust-access.' in shader: @@ -303,6 +327,8 @@ def cross_compile_msl(shader, spirv, opt, iterations, paths): msl_args.append('1') msl_args.append('any16') msl_args.append('2') + if '.raw-tess-in.' in shader: + msl_args.append('--msl-raw-buffer-tese-input') if '.for-tess.' in shader: msl_args.append('--msl-vertex-for-tessellation') if '.fixed-sample-mask.' in shader: @@ -322,6 +348,10 @@ def cross_compile_msl(shader, spirv, opt, iterations, paths): msl_args.append('32') if '.force-sample.' in shader: msl_args.append('--msl-force-sample-rate-shading') + if '.discard-checks.' in shader: + msl_args.append('--msl-check-discarded-frag-stores') + if '.lod-as-grad.' in shader: + msl_args.append('--msl-sample-dref-lod-array-as-grad') if '.decoration-binding.' in shader: msl_args.append('--msl-decoration-binding') if '.mask-location-0.' in shader: @@ -341,11 +371,13 @@ def cross_compile_msl(shader, spirv, opt, iterations, paths): if '.mask-clip-distance.' in shader: msl_args.append('--mask-stage-output-builtin') msl_args.append('ClipDistance') + if '.relax-nan.' in shader: + msl_args.append('--relax-nan-checks') subprocess.check_call(msl_args) if not shader_is_invalid_spirv(msl_path): - subprocess.check_call([paths.spirv_val, '--scalar-block-layout', '--target-env', spirv_env, spirv_path]) + subprocess.check_call([paths.spirv_val, '--allow-localsizeid', '--scalar-block-layout', '--target-env', spirv_env, spirv_path]) return (spirv_path, msl_path) @@ -362,6 +394,10 @@ def shader_model_hlsl(shader): return '-Tps_5_1' elif '.comp' in shader: return '-Tcs_5_1' + elif '.mesh' in shader: + return '-Tms_6_5' + elif '.task' in shader: + return '-Tas_6_5' else: return None @@ -386,6 +422,8 @@ def validate_shader_hlsl(shader, force_no_external_validation, paths): test_glslang = False if '.fxconly.' in shader: test_glslang = False + if '.task' in shader or '.mesh' in shader: + test_glslang = False hlsl_args = [paths.glslang, '--amb', '-e', 'main', '-D', '--target-env', 'vulkan1.1', '-V', shader] if '.sm30.' in shader: @@ -431,7 +469,19 @@ def cross_compile_hlsl(shader, spirv, opt, force_no_external_validation, iterati spirv_path = create_temporary() hlsl_path = create_temporary(os.path.basename(shader)) - spirv_env = 'vulkan1.1spv1.4' if '.spv14.' in shader else 'vulkan1.1' + spirv_16 = '.spv16.' in shader + spirv_14 = '.spv14.' in shader + + if spirv_16: + spirv_env = 'spv1.6' + glslang_env = 'spirv1.6' + elif spirv_14: + spirv_env = 'vulkan1.1spv1.4' + glslang_env = 'spirv1.4' + else: + spirv_env = 'vulkan1.1' + glslang_env = 'vulkan1.1' + spirv_cmd = [paths.spirv_as, '--target-env', spirv_env, '-o', spirv_path, shader] if '.preserve.' in shader: spirv_cmd.append('--preserve-numeric-ids') @@ -439,7 +489,7 @@ def cross_compile_hlsl(shader, spirv, opt, force_no_external_validation, iterati if spirv: subprocess.check_call(spirv_cmd) else: - subprocess.check_call([paths.glslang, '--amb', '--target-env', 'vulkan1.1', '-V', '-o', spirv_path, shader]) + subprocess.check_call([paths.glslang, '--amb', '--target-env', glslang_env, '-V', '-o', spirv_path, shader]) if opt and (not shader_is_invalid_spirv(hlsl_path)): subprocess.check_call([paths.spirv_opt, '--skip-validation', '-O', '-o', spirv_path, spirv_path]) @@ -451,6 +501,8 @@ def cross_compile_hlsl(shader, spirv, opt, force_no_external_validation, iterati hlsl_args = [spirv_cross_path, '--entry', 'main', '--output', hlsl_path, spirv_path, '--hlsl-enable-compat', '--hlsl', '--shader-model', sm, '--iterations', str(iterations)] if '.line.' in shader: hlsl_args.append('--emit-line-directives') + if '.flatten.' in shader: + hlsl_args.append('--flatten-ubo') if '.force-uav.' in shader: hlsl_args.append('--hlsl-force-storage-buffer-as-uav') if '.zero-initialize.' in shader: @@ -461,11 +513,13 @@ def cross_compile_hlsl(shader, spirv, opt, force_no_external_validation, iterati hlsl_args.append('--hlsl-enable-16bit-types') if '.flatten-matrix-vertex-input.' in shader: hlsl_args.append('--hlsl-flatten-matrix-vertex-input-semantics') + if '.relax-nan.' in shader: + hlsl_args.append('--relax-nan-checks') subprocess.check_call(hlsl_args) if not shader_is_invalid_spirv(hlsl_path): - subprocess.check_call([paths.spirv_val, '--scalar-block-layout', '--target-env', spirv_env, spirv_path]) + subprocess.check_call([paths.spirv_val, '--allow-localsizeid', '--scalar-block-layout', '--target-env', spirv_env, spirv_path]) validate_shader_hlsl(hlsl_path, force_no_external_validation, paths) @@ -501,12 +555,21 @@ def validate_shader(shader, vulkan, paths): else: subprocess.check_call([paths.glslang, shader]) -def cross_compile(shader, vulkan, spirv, invalid_spirv, eliminate, is_legacy, flatten_ubo, sso, flatten_dim, opt, push_ubo, iterations, paths): +def cross_compile(shader, vulkan, spirv, invalid_spirv, eliminate, is_legacy, force_es, flatten_ubo, sso, flatten_dim, opt, push_ubo, iterations, paths): spirv_path = create_temporary() glsl_path = create_temporary(os.path.basename(shader)) + spirv_16 = '.spv16.' in shader spirv_14 = '.spv14.' in shader - spirv_env = 'vulkan1.1spv1.4' if spirv_14 else 'vulkan1.1' + if spirv_16: + spirv_env = 'spv1.6' + glslang_env = 'spirv1.6' + elif spirv_14: + spirv_env = 'vulkan1.1spv1.4' + glslang_env = 'spirv1.4' + else: + spirv_env = 'vulkan1.1' + glslang_env = 'vulkan1.1' if vulkan or spirv: vulkan_glsl_path = create_temporary('vk' + os.path.basename(shader)) @@ -518,20 +581,26 @@ def cross_compile(shader, vulkan, spirv, invalid_spirv, eliminate, is_legacy, fl if spirv: subprocess.check_call(spirv_cmd) else: - glslang_env = 'spirv1.4' if spirv_14 else 'vulkan1.1' - subprocess.check_call([paths.glslang, '--amb', '--target-env', glslang_env, '-V', '-o', spirv_path, shader]) + glslang_cmd = [paths.glslang, '--amb', '--target-env', glslang_env, '-V', '-o', spirv_path, shader] + if '.g.' in shader: + glslang_cmd.append('-g') + if '.gV.' in shader: + glslang_cmd.append('-gV') + subprocess.check_call(glslang_cmd) if opt and (not invalid_spirv): subprocess.check_call([paths.spirv_opt, '--skip-validation', '-O', '-o', spirv_path, spirv_path]) if not invalid_spirv: - subprocess.check_call([paths.spirv_val, '--scalar-block-layout', '--target-env', spirv_env, spirv_path]) + subprocess.check_call([paths.spirv_val, '--allow-localsizeid', '--scalar-block-layout', '--target-env', spirv_env, spirv_path]) extra_args = ['--iterations', str(iterations)] if eliminate: extra_args += ['--remove-unused-variables'] if is_legacy: extra_args += ['--version', '100', '--es'] + if force_es: + extra_args += ['--version', '310', '--es'] if flatten_ubo: extra_args += ['--flatten-ubo'] if sso: @@ -557,6 +626,8 @@ def cross_compile(shader, vulkan, spirv, invalid_spirv, eliminate, is_legacy, fl extra_args += ['--force-zero-initialized-variables'] if '.force-flattened-io.' in shader: extra_args += ['--glsl-force-flattened-io-blocks'] + if '.relax-nan.' in shader: + extra_args.append('--relax-nan-checks') spirv_cross_path = paths.spirv_cross @@ -618,13 +689,22 @@ def regression_check_reflect(shader, json_file, args): shutil.move(json_file, reference) else: print('Generated reflection json in {} does not match reference {}!'.format(json_file, reference)) - with open(json_file, 'r') as f: - print('') - print('Generated:') - print('======================') - print(f.read()) - print('======================') - print('') + if args.diff: + diff_path = generate_diff_file(reference, glsl) + with open(diff_path, 'r') as f: + print('') + print('Diff:') + print(f.read()) + print('') + remove_file(diff_path) + else: + with open(json_file, 'r') as f: + print('') + print('Generated:') + print('======================') + print(f.read()) + print('======================') + print('') # Otherwise, fail the test. Keep the shader file around so we can inspect. if not args.keep: @@ -638,6 +718,19 @@ def regression_check_reflect(shader, json_file, args): make_reference_dir(reference) shutil.move(json_file, reference) +def generate_diff_file(origin, generated): + diff_destination = create_temporary() + with open(diff_destination, "w") as f: + try: + subprocess.check_call(["diff", origin, generated], stdout=f) + except subprocess.CalledProcessError as e: + # diff returns 1 when the files are different so we can safely + # ignore this case. + if e.returncode != 1: + raise e + + return diff_destination + def regression_check(shader, glsl, args): reference = reference_path(shader[0], shader[1], args.opt) joined_path = os.path.join(shader[0], shader[1]) @@ -654,13 +747,22 @@ def regression_check(shader, glsl, args): shutil.move(glsl, reference) else: print('Generated source code in {} does not match reference {}!'.format(glsl, reference)) - with open(glsl, 'r') as f: - print('') - print('Generated:') - print('======================') - print(f.read()) - print('======================') - print('') + if args.diff: + diff_path = generate_diff_file(reference, glsl) + with open(diff_path, 'r') as f: + print('') + print('Diff:') + print(f.read()) + print('') + remove_file(diff_path) + else: + with open(glsl, 'r') as f: + print('') + print('Generated:') + print('======================') + print(f.read()) + print('======================') + print('') # Otherwise, fail the test. Keep the shader file around so we can inspect. if not args.keep: @@ -691,6 +793,9 @@ def shader_is_invalid_spirv(shader): def shader_is_legacy(shader): return '.legacy.' in shader +def shader_is_force_es(shader): + return '.es.' in shader + def shader_is_flatten_ubo(shader): return '.flatten.' in shader @@ -714,6 +819,7 @@ def test_shader(stats, shader, args, paths): is_spirv = shader_is_spirv(shader[1]) invalid_spirv = shader_is_invalid_spirv(shader[1]) is_legacy = shader_is_legacy(shader[1]) + force_es = shader_is_force_es(shader[1]) flatten_ubo = shader_is_flatten_ubo(shader[1]) sso = shader_is_sso(shader[1]) flatten_dim = shader_is_flatten_dimensions(shader[1]) @@ -721,7 +827,7 @@ def test_shader(stats, shader, args, paths): push_ubo = shader_is_push_ubo(shader[1]) print('Testing shader:', joined_path) - spirv, glsl, vulkan_glsl = cross_compile(joined_path, vulkan, is_spirv, invalid_spirv, eliminate, is_legacy, flatten_ubo, sso, flatten_dim, args.opt and (not noopt), push_ubo, args.iterations, paths) + spirv, glsl, vulkan_glsl = cross_compile(joined_path, vulkan, is_spirv, invalid_spirv, eliminate, is_legacy, force_es, flatten_ubo, sso, flatten_dim, args.opt and (not noopt), push_ubo, args.iterations, paths) # Only test GLSL stats if we have a shader following GL semantics. if stats and (not vulkan) and (not is_spirv) and (not desktop): @@ -763,7 +869,8 @@ def test_shader_msl(stats, shader, args, paths): shader_is_msl22 = 'msl22' in joined_path shader_is_msl23 = 'msl23' in joined_path - skip_validation = (shader_is_msl22 and (not args.msl22)) or (shader_is_msl23 and (not args.msl23)) + shader_is_msl24 = 'msl24' in joined_path + skip_validation = (shader_is_msl22 and (not args.msl22)) or (shader_is_msl23 and (not args.msl23)) or (shader_is_msl24 and (not args.msl24)) if '.invalid.' in joined_path: skip_validation = True @@ -857,6 +964,9 @@ def main(): parser.add_argument('--keep', action = 'store_true', help = 'Leave failed GLSL shaders on disk if they fail regression. Useful for debugging.') + parser.add_argument('--diff', + action = 'store_true', + help = 'Displays a diff instead of the generated output on failure. Useful for debugging.') parser.add_argument('--malisc', action = 'store_true', help = 'Use malisc offline compiler to determine static cycle counts before and after spirv-cross.') @@ -912,10 +1022,14 @@ def main(): args.msl22 = False args.msl23 = False + args.msl24 = False + args.msl30 = False if args.msl: print_msl_compiler_version() - args.msl22 = msl_compiler_supports_version('2.2') - args.msl23 = msl_compiler_supports_version('2.3') + args.msl22 = msl_compiler_supports_version('-std=macos-metal2.2') + args.msl23 = msl_compiler_supports_version('-std=macos-metal2.3') + args.msl24 = msl_compiler_supports_version('-std=macos-metal2.4') + args.msl30 = msl_compiler_supports_version('-std=metal3.0') backend = 'glsl' if (args.msl or args.metal): diff --git a/third_party/spirv-cross/test_shaders.sh b/third_party/spirv-cross/test_shaders.sh index dccdf3420e..54bf700ca2 100755 --- a/third_party/spirv-cross/test_shaders.sh +++ b/third_party/spirv-cross/test_shaders.sh @@ -1,10 +1,12 @@ #!/bin/bash +# Copyright 2016-2021 The Khronos Group Inc. +# SPDX-License-Identifier: Apache-2.0 OPTS=$@ if [ -z "$SPIRV_CROSS_PATH" ]; then echo "Building spirv-cross" - make -j$(nproc) + make -j$(nproc) || exit 1 SPIRV_CROSS_PATH="./spirv-cross" fi diff --git a/third_party/spirv-cross/tests-other/c_api_test.c b/third_party/spirv-cross/tests-other/c_api_test.c deleted file mode 100644 index 413e2044a8..0000000000 --- a/third_party/spirv-cross/tests-other/c_api_test.c +++ /dev/null @@ -1,189 +0,0 @@ -/* Smoke test for the C API. */ - -#ifdef _MSC_VER -#define _CRT_SECURE_NO_WARNINGS -#endif - -#include -#include -#include - -#define SPVC_CHECKED_CALL(x) do { \ - if ((x) != SPVC_SUCCESS) { \ - fprintf(stderr, "Failed at line %d.\n", __LINE__); \ - exit(1); \ - } \ -} while(0) -#define SPVC_CHECKED_CALL_NEGATIVE(x) do { \ - g_fail_on_error = SPVC_FALSE; \ - if ((x) == SPVC_SUCCESS) { \ - fprintf(stderr, "Failed at line %d.\n", __LINE__); \ - exit(1); \ - } \ - g_fail_on_error = SPVC_TRUE; \ -} while(0) - -static int read_file(const char *path, SpvId **buffer, size_t *word_count) -{ - long len; - FILE *file = fopen(path, "rb"); - - if (!file) - return -1; - - fseek(file, 0, SEEK_END); - len = ftell(file); - rewind(file); - - *buffer = malloc(len); - if (fread(*buffer, 1, len, file) != (size_t)len) - { - fclose(file); - free(*buffer); - return -1; - } - - fclose(file); - *word_count = len / sizeof(SpvId); - return 0; -} - -static spvc_bool g_fail_on_error = SPVC_TRUE; - -static void error_callback(void *userdata, const char *error) -{ - (void)userdata; - if (g_fail_on_error) - { - fprintf(stderr, "Error: %s\n", error); - exit(1); - } - else - printf("Expected error hit: %s.\n", error); -} - -static void dump_resource_list(spvc_compiler compiler, spvc_resources resources, spvc_resource_type type, const char *tag) -{ - const spvc_reflected_resource *list = NULL; - size_t count = 0; - size_t i; - SPVC_CHECKED_CALL(spvc_resources_get_resource_list_for_type(resources, type, &list, &count)); - printf("%s\n", tag); - for (i = 0; i < count; i++) - { - printf("ID: %u, BaseTypeID: %u, TypeID: %u, Name: %s\n", list[i].id, list[i].base_type_id, list[i].type_id, - list[i].name); - printf(" Set: %u, Binding: %u\n", - spvc_compiler_get_decoration(compiler, list[i].id, SpvDecorationDescriptorSet), - spvc_compiler_get_decoration(compiler, list[i].id, SpvDecorationBinding)); - } -} - -static void dump_resources(spvc_compiler compiler, spvc_resources resources) -{ - dump_resource_list(compiler, resources, SPVC_RESOURCE_TYPE_UNIFORM_BUFFER, "UBO"); - dump_resource_list(compiler, resources, SPVC_RESOURCE_TYPE_STORAGE_BUFFER, "SSBO"); - dump_resource_list(compiler, resources, SPVC_RESOURCE_TYPE_PUSH_CONSTANT, "Push"); - dump_resource_list(compiler, resources, SPVC_RESOURCE_TYPE_SEPARATE_SAMPLERS, "Samplers"); - dump_resource_list(compiler, resources, SPVC_RESOURCE_TYPE_SEPARATE_IMAGE, "Image"); - dump_resource_list(compiler, resources, SPVC_RESOURCE_TYPE_SAMPLED_IMAGE, "Combined image samplers"); - dump_resource_list(compiler, resources, SPVC_RESOURCE_TYPE_STAGE_INPUT, "Stage input"); - dump_resource_list(compiler, resources, SPVC_RESOURCE_TYPE_STAGE_OUTPUT, "Stage output"); - dump_resource_list(compiler, resources, SPVC_RESOURCE_TYPE_STORAGE_IMAGE, "Storage image"); - dump_resource_list(compiler, resources, SPVC_RESOURCE_TYPE_SUBPASS_INPUT, "Subpass input"); -} - -static void compile(spvc_compiler compiler, const char *tag) -{ - const char *result = NULL; - SPVC_CHECKED_CALL(spvc_compiler_compile(compiler, &result)); - printf("\n%s\n=======\n", tag); - printf("%s\n=======\n", result); -} - -int main(int argc, char **argv) -{ - const char *rev = NULL; - - spvc_context context = NULL; - spvc_parsed_ir ir = NULL; - spvc_compiler compiler_glsl = NULL; - spvc_compiler compiler_hlsl = NULL; - spvc_compiler compiler_msl = NULL; - spvc_compiler compiler_cpp = NULL; - spvc_compiler compiler_json = NULL; - spvc_compiler compiler_none = NULL; - spvc_compiler_options options = NULL; - spvc_resources resources = NULL; - SpvId *buffer = NULL; - size_t word_count = 0; - - rev = spvc_get_commit_revision_and_timestamp(); - if (!rev || *rev == '\0') - return 1; - - printf("Revision: %s\n", rev); - - if (argc != 5) - return 1; - - if (read_file(argv[1], &buffer, &word_count) < 0) - return 1; - - unsigned abi_major, abi_minor, abi_patch; - spvc_get_version(&abi_major, &abi_minor, &abi_patch); - if (abi_major != strtoul(argv[2], NULL, 0)) - { - fprintf(stderr, "VERSION_MAJOR mismatch!\n"); - return 1; - } - - if (abi_minor != strtoul(argv[3], NULL, 0)) - { - fprintf(stderr, "VERSION_MINOR mismatch!\n"); - return 1; - } - - if (abi_patch != strtoul(argv[4], NULL, 0)) - { - fprintf(stderr, "VERSION_PATCH mismatch!\n"); - return 1; - } - - SPVC_CHECKED_CALL(spvc_context_create(&context)); - spvc_context_set_error_callback(context, error_callback, NULL); - SPVC_CHECKED_CALL(spvc_context_parse_spirv(context, buffer, word_count, &ir)); - SPVC_CHECKED_CALL(spvc_context_create_compiler(context, SPVC_BACKEND_GLSL, ir, SPVC_CAPTURE_MODE_COPY, &compiler_glsl)); - SPVC_CHECKED_CALL(spvc_context_create_compiler(context, SPVC_BACKEND_HLSL, ir, SPVC_CAPTURE_MODE_COPY, &compiler_hlsl)); - SPVC_CHECKED_CALL(spvc_context_create_compiler(context, SPVC_BACKEND_MSL, ir, SPVC_CAPTURE_MODE_COPY, &compiler_msl)); - SPVC_CHECKED_CALL(spvc_context_create_compiler(context, SPVC_BACKEND_CPP, ir, SPVC_CAPTURE_MODE_COPY, &compiler_cpp)); - SPVC_CHECKED_CALL(spvc_context_create_compiler(context, SPVC_BACKEND_JSON, ir, SPVC_CAPTURE_MODE_COPY, &compiler_json)); - SPVC_CHECKED_CALL(spvc_context_create_compiler(context, SPVC_BACKEND_NONE, ir, SPVC_CAPTURE_MODE_TAKE_OWNERSHIP, &compiler_none)); - - SPVC_CHECKED_CALL(spvc_compiler_create_compiler_options(compiler_none, &options)); - SPVC_CHECKED_CALL(spvc_compiler_install_compiler_options(compiler_none, options)); - SPVC_CHECKED_CALL(spvc_compiler_create_compiler_options(compiler_json, &options)); - SPVC_CHECKED_CALL(spvc_compiler_install_compiler_options(compiler_json, options)); - SPVC_CHECKED_CALL(spvc_compiler_create_compiler_options(compiler_cpp, &options)); - SPVC_CHECKED_CALL(spvc_compiler_install_compiler_options(compiler_cpp, options)); - SPVC_CHECKED_CALL(spvc_compiler_create_compiler_options(compiler_msl, &options)); - SPVC_CHECKED_CALL(spvc_compiler_install_compiler_options(compiler_msl, options)); - SPVC_CHECKED_CALL(spvc_compiler_create_compiler_options(compiler_hlsl, &options)); - SPVC_CHECKED_CALL(spvc_compiler_options_set_uint(options, SPVC_COMPILER_OPTION_HLSL_SHADER_MODEL, 50)); - SPVC_CHECKED_CALL_NEGATIVE(spvc_compiler_options_set_uint(options, SPVC_COMPILER_OPTION_MSL_PLATFORM, 1)); - SPVC_CHECKED_CALL(spvc_compiler_install_compiler_options(compiler_hlsl, options)); - SPVC_CHECKED_CALL(spvc_compiler_create_compiler_options(compiler_glsl, &options)); - SPVC_CHECKED_CALL(spvc_compiler_install_compiler_options(compiler_glsl, options)); - - SPVC_CHECKED_CALL(spvc_compiler_create_shader_resources(compiler_none, &resources)); - dump_resources(compiler_none, resources); - compile(compiler_glsl, "GLSL"); - compile(compiler_hlsl, "HLSL"); - compile(compiler_msl, "MSL"); - compile(compiler_json, "JSON"); - compile(compiler_cpp, "CPP"); - - spvc_context_destroy(context); - free(buffer); - return 0; -} diff --git a/third_party/spirv-cross/tests-other/c_api_test.spv b/third_party/spirv-cross/tests-other/c_api_test.spv deleted file mode 100644 index 488680046dab7db539dc5b1ded393bb9f49fa8f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1268 zcmZvcTT2{45QS@J95otmF&Zz48869;AU;G11OxiA3POa9KVX7`5nPp-UC66{Ex*c_ zfamLrw33pt>r|an(_P(co^6hqb!^PW?X!8CvrHMYNgH)*_q2Dq(+)0nzU=M7n6}&z z;mlZ}KeG{ezq-1iFe@E+P7Wt}E?p-4SBXN5R0GyVtk*mGp~ZCoW0joxE3Iw&>y})h zUaz&Di_X`GG0)AlN3)@*=-wzk8@9ix!v$lWTi9F0O?`RQ4(g^=%!xi|9saEU42Dgu z(Df% z*A;i<=;IkvJvn9ypEIX=FnSDqJa?)m7xkPu)q~N;dikObrtbHj8+cjHUg(qdB8JPI zQ)fPD9ZbED&+Chs!@L;({Y6Eiic9&LV&>-Yh+eMeko%_IVBQKn7KA6Xmhz5#JK#yh z7`>Qb>@}qr9XWb|nIpMUcqYW~(K5fNomb3v$)N@Fw#cDf2r>L+WmmKkv#-=5URD29 z72u(NA4ufr59W?A`mJgGUqAMa(c_~J9hV;9GUTYQhnR0t2X8#(GWT}jZG{|f2_Bd` z#P)TIe3QGzxWfl!xZ6YhXNI$K=E^-Bh{?YBy&w;VSuM($U&?tG^7rDPS(2k8AA9o# RnK`=e`Z^fiKTZ0p{1MZ#J$3*9 diff --git a/third_party/spirv-cross/tests-other/hlsl_resource_binding.spv b/third_party/spirv-cross/tests-other/hlsl_resource_binding.spv deleted file mode 100644 index c48dc49ea00c0d7753a027d29dcbc8f66247a7d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 796 zcmYk2%}PRH5Qe`r&9c;f%*qPQWe_bYf+&a}TeM25wUmgU6-Vn1y0NaRP0;fkk8noD znR(AUGw*!aOlu*8xlrJ@7pArvG9V!oLq3k}`_BE*c=CF5a(XPI6tXc5wmvJ0q#w+x=F51Ywwxy?^1hO;947P z?)JuY{*BG}>M6EKo(F5-HRkyy*3NJ6Um*Ib;ulG+MzL+wE)nIcFKx5B4ztJydCpr- zNMg>j_D0S9Wuo)cDZfH=mbiRtZx-8UwzsKGZk4DuF}c>hu~?P5Mr`2r9wzk`xn}=1 zQLgjOcuO_-4x0D=g5-#opz1H-YPVM38m_iySk73-<%nN{Ie!ONlY8xxSI5P_lfGSY Pd&RHVtR}HPl%M1OI}s?= diff --git a/third_party/spirv-cross/tests-other/hlsl_resource_bindings.cpp b/third_party/spirv-cross/tests-other/hlsl_resource_bindings.cpp deleted file mode 100644 index 1a938dac33..0000000000 --- a/third_party/spirv-cross/tests-other/hlsl_resource_bindings.cpp +++ /dev/null @@ -1,89 +0,0 @@ -// Testbench for HLSL resource binding APIs. -// It does not validate output at the moment, but it's useful for ad-hoc testing. - -#include -#include -#include -#include - -#define SPVC_CHECKED_CALL(x) do { \ - if ((x) != SPVC_SUCCESS) { \ - fprintf(stderr, "Failed at line %d.\n", __LINE__); \ - exit(1); \ - } \ -} while(0) - -static std::vector read_file(const char *path) -{ - long len; - FILE *file = fopen(path, "rb"); - - if (!file) - return {}; - - fseek(file, 0, SEEK_END); - len = ftell(file); - rewind(file); - - std::vector buffer(len / sizeof(SpvId)); - if (fread(buffer.data(), 1, len, file) != (size_t)len) - { - fclose(file); - return {}; - } - - fclose(file); - return buffer; -} - -int main(int argc, char **argv) -{ - if (argc != 2) - return EXIT_FAILURE; - - auto buffer = read_file(argv[1]); - if (buffer.empty()) - return EXIT_FAILURE; - - spvc_context ctx; - spvc_parsed_ir parsed_ir; - spvc_compiler compiler; - - SPVC_CHECKED_CALL(spvc_context_create(&ctx)); - SPVC_CHECKED_CALL(spvc_context_parse_spirv(ctx, buffer.data(), buffer.size(), &parsed_ir)); - SPVC_CHECKED_CALL(spvc_context_create_compiler(ctx, SPVC_BACKEND_HLSL, parsed_ir, SPVC_CAPTURE_MODE_TAKE_OWNERSHIP, &compiler)); - - spvc_compiler_options opts; - SPVC_CHECKED_CALL(spvc_compiler_create_compiler_options(compiler, &opts)); - SPVC_CHECKED_CALL(spvc_compiler_options_set_uint(opts, SPVC_COMPILER_OPTION_HLSL_SHADER_MODEL, 51)); - SPVC_CHECKED_CALL(spvc_compiler_install_compiler_options(compiler, opts)); - - spvc_hlsl_resource_binding binding; - spvc_hlsl_resource_binding_init(&binding); - binding.stage = SpvExecutionModelFragment; - binding.desc_set = 1; - binding.binding = 4; - binding.srv.register_space = 2; - binding.srv.register_binding = 3; - binding.sampler.register_space = 4; - binding.sampler.register_binding = 5; - SPVC_CHECKED_CALL(spvc_compiler_hlsl_add_resource_binding(compiler, &binding)); - - binding.desc_set = SPVC_HLSL_PUSH_CONSTANT_DESC_SET; - binding.binding = SPVC_HLSL_PUSH_CONSTANT_BINDING; - binding.cbv.register_space = 0; - binding.cbv.register_binding = 4; - SPVC_CHECKED_CALL(spvc_compiler_hlsl_add_resource_binding(compiler, &binding)); - - const char *str; - SPVC_CHECKED_CALL(spvc_compiler_compile(compiler, &str)); - - fprintf(stderr, "Output:\n%s\n", str); - - if (!spvc_compiler_hlsl_is_resource_used(compiler, SpvExecutionModelFragment, 1, 4)) - return EXIT_FAILURE; - - if (!spvc_compiler_hlsl_is_resource_used(compiler, SpvExecutionModelFragment, SPVC_HLSL_PUSH_CONSTANT_DESC_SET, SPVC_HLSL_PUSH_CONSTANT_BINDING)) - return EXIT_FAILURE; -} - diff --git a/third_party/spirv-cross/tests-other/hlsl_wave_mask.cpp b/third_party/spirv-cross/tests-other/hlsl_wave_mask.cpp deleted file mode 100644 index de11dd9fe0..0000000000 --- a/third_party/spirv-cross/tests-other/hlsl_wave_mask.cpp +++ /dev/null @@ -1,73 +0,0 @@ -// Ad-hoc test that the wave op masks work as expected. -#include -#include - -using namespace glm; - -static uvec4 gl_SubgroupEqMask; -static uvec4 gl_SubgroupGeMask; -static uvec4 gl_SubgroupGtMask; -static uvec4 gl_SubgroupLeMask; -static uvec4 gl_SubgroupLtMask; -using uint4 = uvec4; - -static void test_main(unsigned wave_index) -{ - const auto WaveGetLaneIndex = [&]() { return wave_index; }; - - gl_SubgroupEqMask = 1u << (WaveGetLaneIndex() - uint4(0, 32, 64, 96)); - if (WaveGetLaneIndex() >= 32) gl_SubgroupEqMask.x = 0; - if (WaveGetLaneIndex() >= 64 || WaveGetLaneIndex() < 32) gl_SubgroupEqMask.y = 0; - if (WaveGetLaneIndex() >= 96 || WaveGetLaneIndex() < 64) gl_SubgroupEqMask.z = 0; - if (WaveGetLaneIndex() < 96) gl_SubgroupEqMask.w = 0; - gl_SubgroupGeMask = ~((1u << (WaveGetLaneIndex() - uint4(0, 32, 64, 96))) - 1u); - if (WaveGetLaneIndex() >= 32) gl_SubgroupGeMask.x = 0u; - if (WaveGetLaneIndex() >= 64) gl_SubgroupGeMask.y = 0u; - if (WaveGetLaneIndex() >= 96) gl_SubgroupGeMask.z = 0u; - if (WaveGetLaneIndex() < 32) gl_SubgroupGeMask.y = ~0u; - if (WaveGetLaneIndex() < 64) gl_SubgroupGeMask.z = ~0u; - if (WaveGetLaneIndex() < 96) gl_SubgroupGeMask.w = ~0u; - uint gt_lane_index = WaveGetLaneIndex() + 1; - gl_SubgroupGtMask = ~((1u << (gt_lane_index - uint4(0, 32, 64, 96))) - 1u); - if (gt_lane_index >= 32) gl_SubgroupGtMask.x = 0u; - if (gt_lane_index >= 64) gl_SubgroupGtMask.y = 0u; - if (gt_lane_index >= 96) gl_SubgroupGtMask.z = 0u; - if (gt_lane_index >= 128) gl_SubgroupGtMask.w = 0u; - if (gt_lane_index < 32) gl_SubgroupGtMask.y = ~0u; - if (gt_lane_index < 64) gl_SubgroupGtMask.z = ~0u; - if (gt_lane_index < 96) gl_SubgroupGtMask.w = ~0u; - uint le_lane_index = WaveGetLaneIndex() + 1; - gl_SubgroupLeMask = (1u << (le_lane_index - uint4(0, 32, 64, 96))) - 1u; - if (le_lane_index >= 32) gl_SubgroupLeMask.x = ~0u; - if (le_lane_index >= 64) gl_SubgroupLeMask.y = ~0u; - if (le_lane_index >= 96) gl_SubgroupLeMask.z = ~0u; - if (le_lane_index >= 128) gl_SubgroupLeMask.w = ~0u; - if (le_lane_index < 32) gl_SubgroupLeMask.y = 0u; - if (le_lane_index < 64) gl_SubgroupLeMask.z = 0u; - if (le_lane_index < 96) gl_SubgroupLeMask.w = 0u; - gl_SubgroupLtMask = (1u << (WaveGetLaneIndex() - uint4(0, 32, 64, 96))) - 1u; - if (WaveGetLaneIndex() >= 32) gl_SubgroupLtMask.x = ~0u; - if (WaveGetLaneIndex() >= 64) gl_SubgroupLtMask.y = ~0u; - if (WaveGetLaneIndex() >= 96) gl_SubgroupLtMask.z = ~0u; - if (WaveGetLaneIndex() < 32) gl_SubgroupLtMask.y = 0u; - if (WaveGetLaneIndex() < 64) gl_SubgroupLtMask.z = 0u; - if (WaveGetLaneIndex() < 96) gl_SubgroupLtMask.w = 0u; -} - -int main() -{ - for (unsigned subgroup_id = 0; subgroup_id < 128; subgroup_id++) - { - test_main(subgroup_id); - - for (unsigned bit = 0; bit < 128; bit++) - { - assert(bool(gl_SubgroupEqMask[bit / 32] & (1u << (bit & 31))) == (bit == subgroup_id)); - assert(bool(gl_SubgroupGtMask[bit / 32] & (1u << (bit & 31))) == (bit > subgroup_id)); - assert(bool(gl_SubgroupGeMask[bit / 32] & (1u << (bit & 31))) == (bit >= subgroup_id)); - assert(bool(gl_SubgroupLtMask[bit / 32] & (1u << (bit & 31))) == (bit < subgroup_id)); - assert(bool(gl_SubgroupLeMask[bit / 32] & (1u << (bit & 31))) == (bit <= subgroup_id)); - } - } -} - diff --git a/third_party/spirv-cross/tests-other/msl_constexpr_test.cpp b/third_party/spirv-cross/tests-other/msl_constexpr_test.cpp deleted file mode 100644 index d0378eef55..0000000000 --- a/third_party/spirv-cross/tests-other/msl_constexpr_test.cpp +++ /dev/null @@ -1,133 +0,0 @@ -// Testbench for MSL constexpr samplers. -// It does not validate output, but it's useful for ad-hoc testing. - -#ifdef _MSC_VER -#define _CRT_SECURE_NO_WARNINGS -#endif - -#include -#include -#include -#include - -#define SPVC_CHECKED_CALL(x) do { \ - if ((x) != SPVC_SUCCESS) { \ - fprintf(stderr, "Failed at line %d.\n", __LINE__); \ - exit(1); \ - } \ -} while(0) -#define SPVC_CHECKED_CALL_NEGATIVE(x) do { \ - g_fail_on_error = SPVC_FALSE; \ - if ((x) == SPVC_SUCCESS) { \ - fprintf(stderr, "Failed at line %d.\n", __LINE__); \ - exit(1); \ - } \ - g_fail_on_error = SPVC_TRUE; \ -} while(0) - -static std::vector read_file(const char *path) -{ - long len; - FILE *file = fopen(path, "rb"); - - if (!file) - return {}; - - fseek(file, 0, SEEK_END); - len = ftell(file); - rewind(file); - - std::vector buffer(len / sizeof(SpvId)); - if (fread(buffer.data(), 1, len, file) != (size_t)len) - { - fclose(file); - return {}; - } - - fclose(file); - return buffer; -} - -int main(int argc, char **argv) -{ - if (argc != 2) - return EXIT_FAILURE; - - auto buffer = read_file(argv[1]); - if (buffer.empty()) - return EXIT_FAILURE; - - spvc_context ctx; - spvc_parsed_ir parsed_ir; - spvc_compiler compiler; - - SPVC_CHECKED_CALL(spvc_context_create(&ctx)); - SPVC_CHECKED_CALL(spvc_context_parse_spirv(ctx, buffer.data(), buffer.size(), &parsed_ir)); - SPVC_CHECKED_CALL(spvc_context_create_compiler(ctx, SPVC_BACKEND_MSL, parsed_ir, SPVC_CAPTURE_MODE_TAKE_OWNERSHIP, &compiler)); - - spvc_msl_resource_binding binding; - spvc_msl_resource_binding_init(&binding); - binding.desc_set = 1; - binding.binding = 2; - binding.stage = SpvExecutionModelFragment; - binding.msl_texture = 0; - binding.msl_sampler = 0; - SPVC_CHECKED_CALL(spvc_compiler_msl_add_resource_binding(compiler, &binding)); - - binding.binding = 3; - binding.msl_texture = 1; - binding.msl_sampler = 1000; // Will be remapped anyways, sanity check. - SPVC_CHECKED_CALL(spvc_compiler_msl_add_resource_binding(compiler, &binding)); - - binding.desc_set = 2; - binding.binding = 2; - binding.msl_texture = 2; - SPVC_CHECKED_CALL(spvc_compiler_msl_add_resource_binding(compiler, &binding)); - - binding.binding = 3; - binding.msl_texture = 3; - SPVC_CHECKED_CALL(spvc_compiler_msl_add_resource_binding(compiler, &binding)); - - spvc_msl_constexpr_sampler samp; - spvc_msl_constexpr_sampler_init(&samp); - samp.s_address = SPVC_MSL_SAMPLER_ADDRESS_REPEAT; - samp.t_address = SPVC_MSL_SAMPLER_ADDRESS_REPEAT; - samp.r_address = SPVC_MSL_SAMPLER_ADDRESS_REPEAT; - SPVC_CHECKED_CALL(spvc_compiler_msl_remap_constexpr_sampler_by_binding(compiler, 1, 3, &samp)); - - samp.s_address = SPVC_MSL_SAMPLER_ADDRESS_CLAMP_TO_EDGE; - samp.t_address = SPVC_MSL_SAMPLER_ADDRESS_CLAMP_TO_EDGE; - samp.r_address = SPVC_MSL_SAMPLER_ADDRESS_CLAMP_TO_EDGE; - SPVC_CHECKED_CALL(spvc_compiler_msl_remap_constexpr_sampler_by_binding(compiler, 2, 4, &samp)); - - samp.compare_enable = SPVC_TRUE; - samp.compare_func = SPVC_MSL_SAMPLER_COMPARE_FUNC_LESS; - samp.s_address = SPVC_MSL_SAMPLER_ADDRESS_CLAMP_TO_EDGE; - samp.t_address = SPVC_MSL_SAMPLER_ADDRESS_CLAMP_TO_EDGE; - samp.r_address = SPVC_MSL_SAMPLER_ADDRESS_CLAMP_TO_EDGE; - SPVC_CHECKED_CALL(spvc_compiler_msl_remap_constexpr_sampler_by_binding(compiler, 2, 5, &samp)); - - const char *str; - SPVC_CHECKED_CALL(spvc_compiler_compile(compiler, &str)); - - // Should not be marked as used. - if (spvc_compiler_msl_is_resource_used(compiler, SpvExecutionModelFragment, 2, 4)) - return EXIT_FAILURE; - - // Should not be marked as used. - if (spvc_compiler_msl_is_resource_used(compiler, SpvExecutionModelFragment, 2, 5)) - return EXIT_FAILURE; - - // Should be marked, as a sanity check. - if (!spvc_compiler_msl_is_resource_used(compiler, SpvExecutionModelFragment, 1, 2)) - return EXIT_FAILURE; - if (!spvc_compiler_msl_is_resource_used(compiler, SpvExecutionModelFragment, 1, 3)) - return EXIT_FAILURE; - if (!spvc_compiler_msl_is_resource_used(compiler, SpvExecutionModelFragment, 2, 2)) - return EXIT_FAILURE; - if (!spvc_compiler_msl_is_resource_used(compiler, SpvExecutionModelFragment, 2, 3)) - return EXIT_FAILURE; - - fprintf(stderr, "Output:\n%s\n", str); -} - diff --git a/third_party/spirv-cross/tests-other/msl_constexpr_test.spv b/third_party/spirv-cross/tests-other/msl_constexpr_test.spv deleted file mode 100644 index 5201d5106b38dc92f6a437201a791622b427f344..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1656 zcmYk6+fGzL5Jj80fudYQK)}n4ctO!o5fDW1!9-$0V$4L1j}t*O0mh7?&;FWU<%@}H zojGN?NTqx4+Fe~$r-y1~aX6)+G@M4#^E9x@RDnrpG&PEKcdxV8{`P&py}I^L#aOBq zLN()@tg-6H-7hBw&f>H91Uh*xU{@t;O20W&ht2ik2C+}4Cm)ws>-?GHWxsp)qIcBm z7hEl!XFYv&+&w&4DKwMfPWSlh(LsNu&{T_if4qH1ypeAF*LOa5_j^AFnnt>nor{Qf z+FaygTjY3>aRY5iyVPraR~2DmYrBryW8hYXtu>E}jXMYR&MVJn?YUm8-pQ-ChdeGe zUN7VJVtgpW#w#VZuRJb}{8OmZwTiDcI5We31g=?lEuCSt7P&3z5jzvPInXGpG4IbU zaFa9V%79vPh@GQ0PX*(w>Lv=tw>Hp;ou9VAjZ>`Vm_<9y>b=(C*%?;vl=lv?vzAkT ziB-M*iWf@kcbNuXVQu2ta*5+R*{3s%KFt{xduv!MNwwA>_Iqk#`|J zF?&=i_S66%;Fp;8=v<+esSXzu}RFKljj9g6bo#{UXAuXygc}HFrx0FKTRIK z*x@V2n;Mvo^WGT&%UUdVfL_7-~=>eV{)(5_@&POaE`2(9x7?UfV0)r#xPt?;*9 zrFI^EbGZVq^6qPFsPhchvq;W&i#Iaod~Z_Q&u>wGi)=4>^Tl4 z$ -#include -#include -#include - -#define SPVC_CHECKED_CALL(x) do { \ - if ((x) != SPVC_SUCCESS) { \ - fprintf(stderr, "Failed at line %d.\n", __LINE__); \ - exit(1); \ - } \ -} while(0) - -static std::vector read_file(const char *path) -{ - long len; - FILE *file = fopen(path, "rb"); - - if (!file) - return {}; - - fseek(file, 0, SEEK_END); - len = ftell(file); - rewind(file); - - std::vector buffer(len / sizeof(SpvId)); - if (fread(buffer.data(), 1, len, file) != (size_t)len) - { - fclose(file); - return {}; - } - - fclose(file); - return buffer; -} - -int main(int argc, char **argv) -{ - if (argc != 2) - return EXIT_FAILURE; - - auto buffer = read_file(argv[1]); - if (buffer.empty()) - return EXIT_FAILURE; - - spvc_context ctx; - spvc_parsed_ir parsed_ir; - spvc_compiler compiler; - - SPVC_CHECKED_CALL(spvc_context_create(&ctx)); - SPVC_CHECKED_CALL(spvc_context_parse_spirv(ctx, buffer.data(), buffer.size(), &parsed_ir)); - SPVC_CHECKED_CALL(spvc_context_create_compiler(ctx, SPVC_BACKEND_MSL, parsed_ir, SPVC_CAPTURE_MODE_TAKE_OWNERSHIP, &compiler)); - SPVC_CHECKED_CALL(spvc_compiler_msl_add_discrete_descriptor_set(compiler, 3)); - - spvc_compiler_options opts; - SPVC_CHECKED_CALL(spvc_compiler_create_compiler_options(compiler, &opts)); - SPVC_CHECKED_CALL(spvc_compiler_options_set_bool(opts, SPVC_COMPILER_OPTION_MSL_ARGUMENT_BUFFERS, SPVC_TRUE)); - SPVC_CHECKED_CALL(spvc_compiler_options_set_uint(opts, SPVC_COMPILER_OPTION_MSL_VERSION, 20000)); - SPVC_CHECKED_CALL(spvc_compiler_install_compiler_options(compiler, opts)); - - spvc_msl_resource_binding binding; - spvc_msl_resource_binding_init(&binding); - binding.binding = SPVC_MSL_ARGUMENT_BUFFER_BINDING; - binding.stage = SpvExecutionModelFragment; - binding.desc_set = 0; - binding.msl_buffer = 2; - SPVC_CHECKED_CALL(spvc_compiler_msl_add_resource_binding(compiler, &binding)); - - binding.desc_set = 1; - binding.msl_buffer = 3; - SPVC_CHECKED_CALL(spvc_compiler_msl_add_resource_binding(compiler, &binding)); - - const char *str; - SPVC_CHECKED_CALL(spvc_compiler_compile(compiler, &str)); - - fprintf(stderr, "Output:\n%s\n", str); - - if (!spvc_compiler_msl_is_resource_used(compiler, SpvExecutionModelFragment, 0, SPVC_MSL_ARGUMENT_BUFFER_BINDING)) - return EXIT_FAILURE; - - if (!spvc_compiler_msl_is_resource_used(compiler, SpvExecutionModelFragment, 1, SPVC_MSL_ARGUMENT_BUFFER_BINDING)) - return EXIT_FAILURE; -} - diff --git a/third_party/spirv-cross/tests-other/msl_ycbcr_conversion_test.cpp b/third_party/spirv-cross/tests-other/msl_ycbcr_conversion_test.cpp deleted file mode 100644 index deab27bec2..0000000000 --- a/third_party/spirv-cross/tests-other/msl_ycbcr_conversion_test.cpp +++ /dev/null @@ -1,103 +0,0 @@ -// Testbench for MSL constexpr samplers, with Y'CbCr conversion. -// It does not validate output, but it's useful for ad-hoc testing. - -#ifdef _MSC_VER -#define _CRT_SECURE_NO_WARNINGS -#endif - -#include -#include -#include -#include - -#define SPVC_CHECKED_CALL(x) do { \ - if ((x) != SPVC_SUCCESS) { \ - fprintf(stderr, "Failed at line %d.\n", __LINE__); \ - exit(1); \ - } \ -} while(0) -#define SPVC_CHECKED_CALL_NEGATIVE(x) do { \ - g_fail_on_error = SPVC_FALSE; \ - if ((x) == SPVC_SUCCESS) { \ - fprintf(stderr, "Failed at line %d.\n", __LINE__); \ - exit(1); \ - } \ - g_fail_on_error = SPVC_TRUE; \ -} while(0) - -static std::vector read_file(const char *path) -{ - long len; - FILE *file = fopen(path, "rb"); - - if (!file) - return {}; - - fseek(file, 0, SEEK_END); - len = ftell(file); - rewind(file); - - std::vector buffer(len / sizeof(SpvId)); - if (fread(buffer.data(), 1, len, file) != (size_t)len) - { - fclose(file); - return {}; - } - - fclose(file); - return buffer; -} - -int main(int argc, char **argv) -{ - if (argc != 2) - return EXIT_FAILURE; - - auto buffer = read_file(argv[1]); - if (buffer.empty()) - return EXIT_FAILURE; - - spvc_context ctx; - spvc_parsed_ir parsed_ir; - spvc_compiler compiler; - spvc_compiler_options options; - - SPVC_CHECKED_CALL(spvc_context_create(&ctx)); - SPVC_CHECKED_CALL(spvc_context_parse_spirv(ctx, buffer.data(), buffer.size(), &parsed_ir)); - SPVC_CHECKED_CALL(spvc_context_create_compiler(ctx, SPVC_BACKEND_MSL, parsed_ir, SPVC_CAPTURE_MODE_TAKE_OWNERSHIP, &compiler)); - SPVC_CHECKED_CALL(spvc_compiler_create_compiler_options(compiler, &options)); - SPVC_CHECKED_CALL(spvc_compiler_options_set_uint(options, SPVC_COMPILER_OPTION_MSL_VERSION, SPVC_MAKE_MSL_VERSION(2, 0, 0))); - SPVC_CHECKED_CALL(spvc_compiler_install_compiler_options(compiler, options)); - - spvc_msl_resource_binding binding; - spvc_msl_resource_binding_init(&binding); - binding.desc_set = 1; - binding.binding = 2; - binding.stage = SpvExecutionModelFragment; - binding.msl_texture = 0; - binding.msl_sampler = 0; - SPVC_CHECKED_CALL(spvc_compiler_msl_add_resource_binding(compiler, &binding)); - - spvc_msl_constexpr_sampler samp; - spvc_msl_sampler_ycbcr_conversion conv; - spvc_msl_constexpr_sampler_init(&samp); - spvc_msl_sampler_ycbcr_conversion_init(&conv); - conv.planes = 3; - conv.resolution = SPVC_MSL_FORMAT_RESOLUTION_422; - conv.chroma_filter = SPVC_MSL_SAMPLER_FILTER_LINEAR; - conv.x_chroma_offset = SPVC_MSL_CHROMA_LOCATION_MIDPOINT; - conv.ycbcr_model = SPVC_MSL_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_BT_2020; - conv.ycbcr_range = SPVC_MSL_SAMPLER_YCBCR_RANGE_ITU_NARROW; - conv.bpc = 8; - SPVC_CHECKED_CALL(spvc_compiler_msl_remap_constexpr_sampler_by_binding_ycbcr(compiler, 1, 2, &samp, &conv)); - - const char *str; - SPVC_CHECKED_CALL(spvc_compiler_compile(compiler, &str)); - - // Should be marked, as a sanity check. - if (!spvc_compiler_msl_is_resource_used(compiler, SpvExecutionModelFragment, 1, 2)) - return EXIT_FAILURE; - - fprintf(stderr, "Output:\n%s\n", str); -} - diff --git a/third_party/spirv-cross/tests-other/msl_ycbcr_conversion_test.spv b/third_party/spirv-cross/tests-other/msl_ycbcr_conversion_test.spv deleted file mode 100644 index 62372d5c652d451a87af8389c634f934b8acd3f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 728 zcmYk3%Syvw5QWF2Y1C>j)>_-Dq`DD=;zC6c-3WG55Gm?9c%#sZROLN^58?qCH{{Z2a4wN!GUt#7SrcL*+4&f+|J|oo7s3acbxBfem^|Acv0M97*9UN zuY|3yC^dTk378r3n3{blyAcO>rOZ;-mpQxYvMh_gC4WUWa$2xeS>AxVRDFiwT4GCS zjQ)Aaa9eMzDbP`uby@P8>Qk1bCw(H}iYztoyaQ$zIP$BqdCnm$L>2)c;s4_<92Y_O#hADApZaW diff --git a/third_party/spirv-cross/tests-other/msl_ycbcr_conversion_test_2.spv b/third_party/spirv-cross/tests-other/msl_ycbcr_conversion_test_2.spv deleted file mode 100644 index 10fa7690d0dbc416e42af9b2e65ace610c182950..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 840 zcmZ9KNlyYn5QPhdVQ~df5OD#$a3X5l2+@m)T(}YSJjNv^;22O3{ycw`7Zcyt%$SiP z#p`;tcaN9e%bAz5oaL=yQz=>6Qaa9C)?u$d=(i_t_wA$OeIl03bAiMxD>EZRN5S(8 zjx}jbT2vf-PU`8G7Jezo7n_Xt#VpA87>2FM;XzkNF`oLHP2Aa6AG5n){LjDi=g(Nl z`9E6%<@#=ht8wsj84km-<2*Oh$Muc#Z;5*!1f$pC18(bSBIe%4kYKYz(k5qD%HH^~ zn^N{F>mO{oO{ZK%=d8Gfv}Of&57^`7C4W(Pu6%Z^L_9V#ZAh8tR$bVsE+q#3LUq^;Znhua3X<%{w?e<7 euoLaFsWY?To2|hfNWABY&T$^!1U - -using namespace spirv_cross; - -// Test the tricky bits of the implementation. -// Running the entire test suite on this implementation should find all other potential issues. - -static int allocations = 0; -static int deallocations = 0; - -#define SPVC_ASSERT(x) do { \ - if (!(x)) SPIRV_CROSS_THROW("Assert: " #x " failed!"); \ -} while(0) - -struct RAIIInt -{ - RAIIInt(int v_) : v(v_) { allocations++; } - ~RAIIInt() { deallocations++; } - RAIIInt() { allocations++; } - RAIIInt(const RAIIInt &other) { v = other.v; allocations++; } - RAIIInt(RAIIInt &&other) SPIRV_CROSS_NOEXCEPT { v = other.v; allocations++; } - RAIIInt &operator=(RAIIInt &&) = default; - RAIIInt &operator=(const RAIIInt &) = default; - - int v = 0; -}; - -static void propagate_stack_to_heap() -{ - SmallVector ints; - ints.emplace_back(1); - ints.emplace_back(2); - auto *old_data = ints.data(); - SPVC_ASSERT(ints[0].v == 1); - SPVC_ASSERT(ints[1].v == 2); - ints.emplace_back(3); - SPVC_ASSERT(old_data != ints.data()); - SPVC_ASSERT(ints[0].v == 1); - SPVC_ASSERT(ints[1].v == 2); - SPVC_ASSERT(ints[2].v == 3); - SPVC_ASSERT(ints.size() == 3); -} - -static void insert_end() -{ - SmallVector ints; - ints.emplace_back(1); - ints.emplace_back(2); - - const RAIIInt new_ints[3] = { 10, 20, 30 }; - ints.insert(ints.end(), new_ints, new_ints + 3); - SPVC_ASSERT(ints.size() == 5); - - SPVC_ASSERT(ints[0].v == 1); - SPVC_ASSERT(ints[1].v == 2); - SPVC_ASSERT(ints[2].v == 10); - SPVC_ASSERT(ints[3].v == 20); - SPVC_ASSERT(ints[4].v == 30); -} - -static void insert_begin_realloc() -{ - SmallVector ints; - ints.emplace_back(1); - ints.emplace_back(2); - - const RAIIInt new_ints[3] = { 10, 20, 30 }; - ints.insert(ints.begin(), new_ints, new_ints + 3); - SPVC_ASSERT(ints.size() == 5); - - SPVC_ASSERT(ints[0].v == 10); - SPVC_ASSERT(ints[1].v == 20); - SPVC_ASSERT(ints[2].v == 30); - SPVC_ASSERT(ints[3].v == 1); - SPVC_ASSERT(ints[4].v == 2); -} - -static void insert_middle_realloc() -{ - SmallVector ints; - ints.emplace_back(1); - ints.emplace_back(2); - - const RAIIInt new_ints[3] = { 10, 20, 30 }; - ints.insert(ints.begin() + 1, new_ints, new_ints + 3); - SPVC_ASSERT(ints.size() == 5); - - SPVC_ASSERT(ints[0].v == 1); - SPVC_ASSERT(ints[1].v == 10); - SPVC_ASSERT(ints[2].v == 20); - SPVC_ASSERT(ints[3].v == 30); - SPVC_ASSERT(ints[4].v == 2); -} - -static void insert_begin_no_realloc() -{ - SmallVector ints; - ints.reserve(10); - ints.emplace_back(1); - ints.emplace_back(2); - - const RAIIInt new_ints[3] = { 10, 20, 30 }; - ints.insert(ints.begin(), new_ints, new_ints + 3); - SPVC_ASSERT(ints.size() == 5); - - SPVC_ASSERT(ints[0].v == 10); - SPVC_ASSERT(ints[1].v == 20); - SPVC_ASSERT(ints[2].v == 30); - SPVC_ASSERT(ints[3].v == 1); - SPVC_ASSERT(ints[4].v == 2); -} - -static void insert_middle_no_realloc() -{ - SmallVector ints; - ints.reserve(10); - ints.emplace_back(1); - ints.emplace_back(2); - - const RAIIInt new_ints[3] = { 10, 20, 30 }; - ints.insert(ints.begin() + 1, new_ints, new_ints + 3); - SPVC_ASSERT(ints.size() == 5); - - SPVC_ASSERT(ints[0].v == 1); - SPVC_ASSERT(ints[1].v == 10); - SPVC_ASSERT(ints[2].v == 20); - SPVC_ASSERT(ints[3].v == 30); - SPVC_ASSERT(ints[4].v == 2); -} - -static void erase_end() -{ - SmallVector ints; - ints.emplace_back(1); - ints.emplace_back(2); - ints.emplace_back(3); - ints.emplace_back(4); - ints.erase(ints.begin() + 1, ints.end()); - - SPVC_ASSERT(ints.size() == 1); - SPVC_ASSERT(ints[0].v == 1); -} - -static void erase_middle() -{ - SmallVector ints; - ints.emplace_back(1); - ints.emplace_back(2); - ints.emplace_back(3); - ints.emplace_back(4); - ints.erase(ints.begin() + 1, ints.end() - 1); - - SPVC_ASSERT(ints.size() == 2); - SPVC_ASSERT(ints[0].v == 1); - SPVC_ASSERT(ints[1].v == 4); -} - -static void erase_start() -{ - SmallVector ints; - ints.emplace_back(1); - ints.emplace_back(2); - ints.emplace_back(3); - ints.emplace_back(4); - ints.erase(ints.begin(), ints.end() - 2); - - SPVC_ASSERT(ints.size() == 2); - SPVC_ASSERT(ints[0].v == 3); - SPVC_ASSERT(ints[1].v == 4); -} - -static void convert_to_std_vector() -{ - SmallVector foo; - foo.push_back(1); - foo.push_back(2); - std::vector ints(foo); - SPVC_ASSERT(ints.size() == 2); - SPVC_ASSERT(foo.size() == 2); - SPVC_ASSERT(ints[0].v == 1); - SPVC_ASSERT(ints[1].v == 2); - - // This doesn't work on MSVC 2013. Ignore it. -#if !(defined(_MSC_VER) && _MSC_VER < 1900) - SmallVector> move_only_buffer; - move_only_buffer.emplace_back(new RAIIInt(40)); - std::vector> move_only_vector(std::move(move_only_buffer)); - SPVC_ASSERT(move_only_vector.size() == 1); - SPVC_ASSERT(move_only_vector[0]->v == 40); -#endif -} - -int main() -{ - propagate_stack_to_heap(); - insert_end(); - insert_begin_realloc(); - insert_begin_no_realloc(); - insert_middle_realloc(); - insert_middle_no_realloc(); - erase_end(); - erase_middle(); - erase_start(); - - convert_to_std_vector(); - - SPVC_ASSERT(allocations > 0 && deallocations > 0 && deallocations == allocations); -} - diff --git a/third_party/spirv-cross/tests-other/typed_id_test.cpp b/third_party/spirv-cross/tests-other/typed_id_test.cpp deleted file mode 100644 index e8ecb16cc6..0000000000 --- a/third_party/spirv-cross/tests-other/typed_id_test.cpp +++ /dev/null @@ -1,49 +0,0 @@ -#include "spirv_common.hpp" - -using namespace SPIRV_CROSS_NAMESPACE; - -int main() -{ - // Construct from uint32_t. - VariableID var_id = 10; - TypeID type_id = 20; - ConstantID constant_id = 30; - - // Assign from uint32_t. - var_id = 100; - type_id = 40; - constant_id = 60; - - // Construct generic ID. - ID generic_var_id = var_id; - ID generic_type_id = type_id; - ID generic_constant_id = constant_id; - - // Assign generic id. - generic_var_id = var_id; - generic_type_id = type_id; - generic_constant_id = constant_id; - - // Assign generic ID to typed ID - var_id = generic_var_id; - type_id = generic_type_id; - constant_id = generic_constant_id; - - // Implicit conversion to uint32_t. - uint32_t a; - a = var_id; - a = type_id; - a = constant_id; - a = generic_var_id; - a = generic_type_id; - a = generic_constant_id; - - // Copy assignment. - var_id = VariableID(10); - type_id = TypeID(10); - constant_id = ConstantID(10); - - // These operations are blocked, assign or construction from mismatched types. - //var_id = type_id; - //var_id = TypeID(100); -} \ No newline at end of file diff --git a/third_party/spirv-cross/tnt/0002-localeconv-api-level-check.patch b/third_party/spirv-cross/tnt/0002-localeconv-api-level-check.patch new file mode 100644 index 0000000000..8adb84bdc3 --- /dev/null +++ b/third_party/spirv-cross/tnt/0002-localeconv-api-level-check.patch @@ -0,0 +1,33 @@ +diff --git a/third_party/spirv-cross/spirv_glsl.cpp b/third_party/spirv-cross/spirv_glsl.cpp +index 2ccc1a472..88a82c9aa 100644 +--- a/third_party/spirv-cross/spirv_glsl.cpp ++++ b/third_party/spirv-cross/spirv_glsl.cpp +@@ -176,11 +176,23 @@ void CompilerGLSL::init() + const struct lconv *conv = localeconv(); + if (conv && conv->decimal_point) + current_locale_radix_character = *conv->decimal_point; +-#elif defined(__ANDROID__) && __ANDROID_API__ < 26 +- // nl_langinfo is not supported on this platform, fall back to the worse alternative. +- const struct lconv *conv = localeconv(); +- if (conv && conv->decimal_point) +- current_locale_radix_character = *conv->decimal_point; ++#elif defined(__ANDROID__) ++ #if __ANDROID_API__ >= 26 ++ // nl_langinfo is not even defined if __ANDROID_API__ is not at least 26! ++ if (__builtin_available(android 26, *)) { ++ // localeconv, the portable function is not MT safe ... ++ const char *decimal_point = nl_langinfo(RADIXCHAR); ++ if (decimal_point && *decimal_point != '\0') ++ current_locale_radix_character = *decimal_point; ++ } else ++ #endif ++ if (__builtin_available(android 21, *)) { ++ const struct lconv *conv = localeconv(); ++ if (conv && conv->decimal_point) ++ current_locale_radix_character = *conv->decimal_point; ++ } else { ++ // we do nothing ++ } + #else + // localeconv, the portable function is not MT safe ... + const char *decimal_point = nl_langinfo(RADIXCHAR); diff --git a/third_party/spirv-cross/tnt/README.md b/third_party/spirv-cross/tnt/README.md index 477420882a..954fa0ba3d 100644 --- a/third_party/spirv-cross/tnt/README.md +++ b/third_party/spirv-cross/tnt/README.md @@ -4,12 +4,13 @@ To update to the spirv-cross that's currently on GitHub master, do the following ``` cd third_party -curl -L https://github.com/KhronosGroup/SPIRV-Cross/archive/master.zip > master.zip -unzip master.zip -rsync -r SPIRV-Cross-master/ spirv-cross/ --delete -git checkout spirv-cross/tnt/* +curl -L https://github.com/KhronosGroup/SPIRV-Cross/archive/main.zip > main.zip +unzip main.zip +rsync -r SPIRV-Cross-main/ spirv-cross/ --delete +git restore spirv-cross/tnt patch -p2 < spirv-cross/tnt/0001-convert-floats-to-their-smallest-string-representati.patch -rm -rf SPIRV-Cross-master master.zip +patch -p2 < spirv-cross/tnt/0002-localeconv-api-level-check.patch +rm -rf SPIRV-Cross-main main.zip git add spirv-cross ``` diff --git a/third_party/spirv-cross/update_test_shaders.sh b/third_party/spirv-cross/update_test_shaders.sh index c622eefc3d..85f9f0b7a1 100755 --- a/third_party/spirv-cross/update_test_shaders.sh +++ b/third_party/spirv-cross/update_test_shaders.sh @@ -1,4 +1,6 @@ #!/bin/bash +# Copyright 2016-2021 The Khronos Group Inc. +# SPDX-License-Identifier: Apache-2.0 ./test_shaders.sh --update