From 123d29701bee905b102a530dc75342f87d7ac371 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Fri, 15 Apr 2022 17:20:51 -0400 Subject: [PATCH] Fix half-precision operand types in writeBinaryExpression. Previously, we would determine the operandType by calling `getActualType`. This function converts half-precision types to full- precision ones, which seems to have been unintentional. Fortunately, the operand type is not actually emitted into the SPIR-V by most code paths (most paths use the resultType instead) so it was not a significant impact in practice. A few matrix-based paths emitted ops using this type and these paths now emit RelaxedPrecision as expected. Change-Id: I32f4c0327427476fee6b78953284818b7970b6e8 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/530543 Auto-Submit: John Stiles Reviewed-by: Arman Uguray --- src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp | 12 ++-- src/sksl/codegen/SkSLSPIRVCodeGenerator.h | 3 - tests/sksl/intrinsics/Inverse.asm.frag | 27 +++++++++ .../intrinsics/MatrixCompMultES2.asm.frag | 10 ++++ .../intrinsics/MatrixCompMultES3.asm.frag | 12 ++++ tests/sksl/shared/ArrayComparison.asm.frag | 36 +++++++++++ .../shared/FunctionReturnTypeMatch.asm.frag | 27 +++++++++ tests/sksl/shared/Matrices.asm.frag | 50 ++++++++++++++++ tests/sksl/shared/MatricesNonsquare.asm.frag | 60 +++++++++++++++++++ tests/sksl/shared/MatrixEquality.asm.frag | 20 +++++++ tests/sksl/shared/VectorToMatrixCast.asm.frag | 14 +++++ 11 files changed, 262 insertions(+), 9 deletions(-) diff --git a/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp b/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp index ca3093fd37..39186750ad 100644 --- a/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp +++ b/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp @@ -2588,9 +2588,11 @@ SpvId SPIRVCodeGenerator::writeBinaryExpression(const Type& leftType, SpvId lhs, } // overall type we are operating on: float2, int, uint4... const Type* operandType; - // IR allows mismatched types in expressions (e.g. float2 * float), but they need special - // handling in SPIR-V - if (!this->getActualType(leftType).matches(this->getActualType(rightType))) { + if (this->getActualType(leftType).matches(this->getActualType(rightType))) { + operandType = &leftType; + } else { + // IR allows mismatched types in expressions (e.g. float2 * float), but they need special + // handling in SPIR-V if (leftType.isVector() && rightType.isNumber()) { if (resultType.componentType().isFloat()) { switch (op.kind()) { @@ -2683,10 +2685,8 @@ SpvId SPIRVCodeGenerator::writeBinaryExpression(const Type& leftType, SpvId lhs, fContext.fErrors->error(leftType.fPosition, "unsupported mixed-type expression"); return NA; } - } else { - operandType = &this->getActualType(leftType); - SkASSERT(operandType->matches(this->getActualType(rightType))); } + switch (op.kind()) { case Operator::Kind::EQEQ: { if (operandType->isMatrix()) { diff --git a/src/sksl/codegen/SkSLSPIRVCodeGenerator.h b/src/sksl/codegen/SkSLSPIRVCodeGenerator.h index 9ef0c62eb1..8ee85db77c 100644 --- a/src/sksl/codegen/SkSLSPIRVCodeGenerator.h +++ b/src/sksl/codegen/SkSLSPIRVCodeGenerator.h @@ -333,9 +333,6 @@ private: SpvId rhs, SpvOp_ ifFloat, SpvOp_ ifInt, SpvOp_ ifUInt, SpvOp_ ifBool, OutputStream& out); - SpvId writeBinaryOperation(const BinaryExpression& expr, SpvOp_ ifFloat, SpvOp_ ifInt, - SpvOp_ ifUInt, OutputStream& out); - SpvId writeReciprocal(const Type& type, SpvId value, OutputStream& out); SpvId writeBinaryExpression(const Type& leftType, SpvId lhs, Operator op, diff --git a/tests/sksl/intrinsics/Inverse.asm.frag b/tests/sksl/intrinsics/Inverse.asm.frag index 1a5127f673..0b0197009f 100644 --- a/tests/sksl/intrinsics/Inverse.asm.frag +++ b/tests/sksl/intrinsics/Inverse.asm.frag @@ -28,10 +28,37 @@ OpDecorate %inv2x2 RelaxedPrecision OpDecorate %inv3x3 RelaxedPrecision OpDecorate %inv4x4 RelaxedPrecision OpDecorate %66 RelaxedPrecision +OpDecorate %68 RelaxedPrecision +OpDecorate %69 RelaxedPrecision +OpDecorate %71 RelaxedPrecision +OpDecorate %72 RelaxedPrecision OpDecorate %77 RelaxedPrecision +OpDecorate %79 RelaxedPrecision +OpDecorate %80 RelaxedPrecision +OpDecorate %82 RelaxedPrecision +OpDecorate %83 RelaxedPrecision +OpDecorate %86 RelaxedPrecision +OpDecorate %87 RelaxedPrecision OpDecorate %93 RelaxedPrecision +OpDecorate %95 RelaxedPrecision +OpDecorate %96 RelaxedPrecision +OpDecorate %98 RelaxedPrecision +OpDecorate %99 RelaxedPrecision +OpDecorate %102 RelaxedPrecision +OpDecorate %103 RelaxedPrecision +OpDecorate %106 RelaxedPrecision +OpDecorate %107 RelaxedPrecision OpDecorate %113 RelaxedPrecision OpDecorate %122 RelaxedPrecision +OpDecorate %123 RelaxedPrecision +OpDecorate %124 RelaxedPrecision +OpDecorate %125 RelaxedPrecision +OpDecorate %127 RelaxedPrecision +OpDecorate %128 RelaxedPrecision +OpDecorate %129 RelaxedPrecision +OpDecorate %132 RelaxedPrecision +OpDecorate %133 RelaxedPrecision +OpDecorate %134 RelaxedPrecision OpDecorate %147 RelaxedPrecision OpDecorate %150 RelaxedPrecision OpDecorate %151 RelaxedPrecision diff --git a/tests/sksl/intrinsics/MatrixCompMultES2.asm.frag b/tests/sksl/intrinsics/MatrixCompMultES2.asm.frag index 7406ea3bd8..1e4e5b3bc1 100644 --- a/tests/sksl/intrinsics/MatrixCompMultES2.asm.frag +++ b/tests/sksl/intrinsics/MatrixCompMultES2.asm.frag @@ -44,7 +44,17 @@ OpDecorate %67 RelaxedPrecision OpDecorate %68 RelaxedPrecision OpDecorate %69 RelaxedPrecision OpDecorate %71 RelaxedPrecision +OpDecorate %73 RelaxedPrecision +OpDecorate %74 RelaxedPrecision +OpDecorate %76 RelaxedPrecision +OpDecorate %77 RelaxedPrecision OpDecorate %96 RelaxedPrecision +OpDecorate %108 RelaxedPrecision +OpDecorate %109 RelaxedPrecision +OpDecorate %111 RelaxedPrecision +OpDecorate %112 RelaxedPrecision +OpDecorate %115 RelaxedPrecision +OpDecorate %116 RelaxedPrecision OpDecorate %128 RelaxedPrecision OpDecorate %131 RelaxedPrecision OpDecorate %132 RelaxedPrecision diff --git a/tests/sksl/intrinsics/MatrixCompMultES3.asm.frag b/tests/sksl/intrinsics/MatrixCompMultES3.asm.frag index 15319d1173..5ffd500ad3 100644 --- a/tests/sksl/intrinsics/MatrixCompMultES3.asm.frag +++ b/tests/sksl/intrinsics/MatrixCompMultES3.asm.frag @@ -53,7 +53,19 @@ OpDecorate %81 RelaxedPrecision OpDecorate %82 RelaxedPrecision OpDecorate %83 RelaxedPrecision OpDecorate %100 RelaxedPrecision +OpDecorate %105 RelaxedPrecision +OpDecorate %106 RelaxedPrecision +OpDecorate %108 RelaxedPrecision +OpDecorate %109 RelaxedPrecision OpDecorate %114 RelaxedPrecision +OpDecorate %121 RelaxedPrecision +OpDecorate %122 RelaxedPrecision +OpDecorate %124 RelaxedPrecision +OpDecorate %125 RelaxedPrecision +OpDecorate %128 RelaxedPrecision +OpDecorate %129 RelaxedPrecision +OpDecorate %132 RelaxedPrecision +OpDecorate %133 RelaxedPrecision OpDecorate %163 RelaxedPrecision OpDecorate %165 RelaxedPrecision OpDecorate %166 RelaxedPrecision diff --git a/tests/sksl/shared/ArrayComparison.asm.frag b/tests/sksl/shared/ArrayComparison.asm.frag index e0c876730f..2754520d6a 100644 --- a/tests/sksl/shared/ArrayComparison.asm.frag +++ b/tests/sksl/shared/ArrayComparison.asm.frag @@ -46,18 +46,54 @@ OpDecorate %164 RelaxedPrecision OpDecorate %165 RelaxedPrecision OpDecorate %166 RelaxedPrecision OpDecorate %167 RelaxedPrecision +OpDecorate %169 RelaxedPrecision +OpDecorate %170 RelaxedPrecision +OpDecorate %171 RelaxedPrecision +OpDecorate %173 RelaxedPrecision +OpDecorate %174 RelaxedPrecision +OpDecorate %175 RelaxedPrecision OpDecorate %178 RelaxedPrecision OpDecorate %179 RelaxedPrecision +OpDecorate %180 RelaxedPrecision +OpDecorate %181 RelaxedPrecision +OpDecorate %182 RelaxedPrecision +OpDecorate %184 RelaxedPrecision +OpDecorate %185 RelaxedPrecision +OpDecorate %186 RelaxedPrecision OpDecorate %190 RelaxedPrecision OpDecorate %191 RelaxedPrecision +OpDecorate %192 RelaxedPrecision +OpDecorate %193 RelaxedPrecision +OpDecorate %194 RelaxedPrecision +OpDecorate %196 RelaxedPrecision +OpDecorate %197 RelaxedPrecision +OpDecorate %198 RelaxedPrecision OpDecorate %205 RelaxedPrecision OpDecorate %206 RelaxedPrecision OpDecorate %207 RelaxedPrecision OpDecorate %208 RelaxedPrecision +OpDecorate %209 RelaxedPrecision +OpDecorate %210 RelaxedPrecision +OpDecorate %211 RelaxedPrecision +OpDecorate %213 RelaxedPrecision +OpDecorate %214 RelaxedPrecision +OpDecorate %215 RelaxedPrecision OpDecorate %218 RelaxedPrecision OpDecorate %219 RelaxedPrecision +OpDecorate %220 RelaxedPrecision +OpDecorate %221 RelaxedPrecision +OpDecorate %222 RelaxedPrecision +OpDecorate %224 RelaxedPrecision +OpDecorate %225 RelaxedPrecision +OpDecorate %226 RelaxedPrecision OpDecorate %230 RelaxedPrecision OpDecorate %231 RelaxedPrecision +OpDecorate %232 RelaxedPrecision +OpDecorate %233 RelaxedPrecision +OpDecorate %234 RelaxedPrecision +OpDecorate %236 RelaxedPrecision +OpDecorate %237 RelaxedPrecision +OpDecorate %238 RelaxedPrecision OpDecorate %245 RelaxedPrecision OpDecorate %246 RelaxedPrecision OpDecorate %279 RelaxedPrecision diff --git a/tests/sksl/shared/FunctionReturnTypeMatch.asm.frag b/tests/sksl/shared/FunctionReturnTypeMatch.asm.frag index 96524974c9..0ba6e9261d 100644 --- a/tests/sksl/shared/FunctionReturnTypeMatch.asm.frag +++ b/tests/sksl/shared/FunctionReturnTypeMatch.asm.frag @@ -76,8 +76,35 @@ OpDecorate %249 RelaxedPrecision OpDecorate %256 RelaxedPrecision OpDecorate %263 RelaxedPrecision OpDecorate %270 RelaxedPrecision +OpDecorate %272 RelaxedPrecision +OpDecorate %273 RelaxedPrecision +OpDecorate %274 RelaxedPrecision +OpDecorate %276 RelaxedPrecision +OpDecorate %277 RelaxedPrecision +OpDecorate %278 RelaxedPrecision OpDecorate %284 RelaxedPrecision +OpDecorate %286 RelaxedPrecision +OpDecorate %287 RelaxedPrecision +OpDecorate %288 RelaxedPrecision +OpDecorate %290 RelaxedPrecision +OpDecorate %291 RelaxedPrecision +OpDecorate %292 RelaxedPrecision +OpDecorate %295 RelaxedPrecision +OpDecorate %296 RelaxedPrecision +OpDecorate %297 RelaxedPrecision OpDecorate %303 RelaxedPrecision +OpDecorate %305 RelaxedPrecision +OpDecorate %306 RelaxedPrecision +OpDecorate %307 RelaxedPrecision +OpDecorate %309 RelaxedPrecision +OpDecorate %310 RelaxedPrecision +OpDecorate %311 RelaxedPrecision +OpDecorate %314 RelaxedPrecision +OpDecorate %315 RelaxedPrecision +OpDecorate %316 RelaxedPrecision +OpDecorate %319 RelaxedPrecision +OpDecorate %320 RelaxedPrecision +OpDecorate %321 RelaxedPrecision OpDecorate %327 RelaxedPrecision OpDecorate %333 RelaxedPrecision OpDecorate %340 RelaxedPrecision diff --git a/tests/sksl/shared/Matrices.asm.frag b/tests/sksl/shared/Matrices.asm.frag index af83877631..0e98c15c3e 100644 --- a/tests/sksl/shared/Matrices.asm.frag +++ b/tests/sksl/shared/Matrices.asm.frag @@ -46,18 +46,34 @@ OpDecorate %12 DescriptorSet 0 OpDecorate %m1 RelaxedPrecision OpDecorate %41 RelaxedPrecision OpDecorate %44 RelaxedPrecision +OpDecorate %46 RelaxedPrecision +OpDecorate %47 RelaxedPrecision +OpDecorate %49 RelaxedPrecision +OpDecorate %50 RelaxedPrecision OpDecorate %m3 RelaxedPrecision OpDecorate %55 RelaxedPrecision OpDecorate %56 RelaxedPrecision OpDecorate %59 RelaxedPrecision +OpDecorate %60 RelaxedPrecision +OpDecorate %61 RelaxedPrecision +OpDecorate %63 RelaxedPrecision +OpDecorate %64 RelaxedPrecision OpDecorate %m4 RelaxedPrecision OpDecorate %73 RelaxedPrecision OpDecorate %76 RelaxedPrecision +OpDecorate %77 RelaxedPrecision +OpDecorate %78 RelaxedPrecision +OpDecorate %80 RelaxedPrecision +OpDecorate %81 RelaxedPrecision OpDecorate %85 RelaxedPrecision OpDecorate %86 RelaxedPrecision OpDecorate %87 RelaxedPrecision OpDecorate %88 RelaxedPrecision OpDecorate %91 RelaxedPrecision +OpDecorate %98 RelaxedPrecision +OpDecorate %99 RelaxedPrecision +OpDecorate %101 RelaxedPrecision +OpDecorate %102 RelaxedPrecision OpDecorate %m5 RelaxedPrecision OpDecorate %110 RelaxedPrecision OpDecorate %111 RelaxedPrecision @@ -66,6 +82,10 @@ OpDecorate %113 RelaxedPrecision OpDecorate %114 RelaxedPrecision OpDecorate %115 RelaxedPrecision OpDecorate %118 RelaxedPrecision +OpDecorate %122 RelaxedPrecision +OpDecorate %123 RelaxedPrecision +OpDecorate %125 RelaxedPrecision +OpDecorate %126 RelaxedPrecision OpDecorate %130 RelaxedPrecision OpDecorate %131 RelaxedPrecision OpDecorate %132 RelaxedPrecision @@ -77,15 +97,37 @@ OpDecorate %137 RelaxedPrecision OpDecorate %138 RelaxedPrecision OpDecorate %139 RelaxedPrecision OpDecorate %142 RelaxedPrecision +OpDecorate %148 RelaxedPrecision +OpDecorate %149 RelaxedPrecision +OpDecorate %151 RelaxedPrecision +OpDecorate %152 RelaxedPrecision OpDecorate %m7 RelaxedPrecision OpDecorate %161 RelaxedPrecision OpDecorate %164 RelaxedPrecision +OpDecorate %165 RelaxedPrecision +OpDecorate %166 RelaxedPrecision +OpDecorate %168 RelaxedPrecision +OpDecorate %169 RelaxedPrecision OpDecorate %m9 RelaxedPrecision OpDecorate %182 RelaxedPrecision OpDecorate %185 RelaxedPrecision +OpDecorate %187 RelaxedPrecision +OpDecorate %188 RelaxedPrecision +OpDecorate %190 RelaxedPrecision +OpDecorate %191 RelaxedPrecision +OpDecorate %194 RelaxedPrecision +OpDecorate %195 RelaxedPrecision OpDecorate %m10 RelaxedPrecision OpDecorate %208 RelaxedPrecision OpDecorate %211 RelaxedPrecision +OpDecorate %213 RelaxedPrecision +OpDecorate %214 RelaxedPrecision +OpDecorate %216 RelaxedPrecision +OpDecorate %217 RelaxedPrecision +OpDecorate %220 RelaxedPrecision +OpDecorate %221 RelaxedPrecision +OpDecorate %224 RelaxedPrecision +OpDecorate %225 RelaxedPrecision OpDecorate %m11 RelaxedPrecision OpDecorate %233 RelaxedPrecision OpDecorate %234 RelaxedPrecision @@ -104,6 +146,14 @@ OpDecorate %246 RelaxedPrecision OpDecorate %247 RelaxedPrecision OpDecorate %248 RelaxedPrecision OpDecorate %251 RelaxedPrecision +OpDecorate %257 RelaxedPrecision +OpDecorate %258 RelaxedPrecision +OpDecorate %260 RelaxedPrecision +OpDecorate %261 RelaxedPrecision +OpDecorate %264 RelaxedPrecision +OpDecorate %265 RelaxedPrecision +OpDecorate %268 RelaxedPrecision +OpDecorate %269 RelaxedPrecision OpDecorate %273 RelaxedPrecision OpDecorate %293 RelaxedPrecision OpDecorate %307 RelaxedPrecision diff --git a/tests/sksl/shared/MatricesNonsquare.asm.frag b/tests/sksl/shared/MatricesNonsquare.asm.frag index 3987bad549..2d5b1f8713 100644 --- a/tests/sksl/shared/MatricesNonsquare.asm.frag +++ b/tests/sksl/shared/MatricesNonsquare.asm.frag @@ -43,33 +43,79 @@ OpDecorate %11 DescriptorSet 0 OpDecorate %m23 RelaxedPrecision OpDecorate %38 RelaxedPrecision OpDecorate %41 RelaxedPrecision +OpDecorate %43 RelaxedPrecision +OpDecorate %44 RelaxedPrecision +OpDecorate %46 RelaxedPrecision +OpDecorate %47 RelaxedPrecision OpDecorate %m24 RelaxedPrecision OpDecorate %58 RelaxedPrecision OpDecorate %61 RelaxedPrecision +OpDecorate %63 RelaxedPrecision +OpDecorate %64 RelaxedPrecision +OpDecorate %66 RelaxedPrecision +OpDecorate %67 RelaxedPrecision OpDecorate %m32 RelaxedPrecision OpDecorate %78 RelaxedPrecision OpDecorate %81 RelaxedPrecision +OpDecorate %83 RelaxedPrecision +OpDecorate %84 RelaxedPrecision +OpDecorate %86 RelaxedPrecision +OpDecorate %87 RelaxedPrecision +OpDecorate %90 RelaxedPrecision +OpDecorate %91 RelaxedPrecision OpDecorate %m34 RelaxedPrecision OpDecorate %103 RelaxedPrecision OpDecorate %106 RelaxedPrecision +OpDecorate %107 RelaxedPrecision +OpDecorate %108 RelaxedPrecision +OpDecorate %110 RelaxedPrecision +OpDecorate %111 RelaxedPrecision +OpDecorate %114 RelaxedPrecision +OpDecorate %115 RelaxedPrecision OpDecorate %m42 RelaxedPrecision OpDecorate %126 RelaxedPrecision OpDecorate %129 RelaxedPrecision +OpDecorate %130 RelaxedPrecision +OpDecorate %131 RelaxedPrecision +OpDecorate %133 RelaxedPrecision +OpDecorate %134 RelaxedPrecision +OpDecorate %137 RelaxedPrecision +OpDecorate %138 RelaxedPrecision +OpDecorate %141 RelaxedPrecision +OpDecorate %142 RelaxedPrecision OpDecorate %m43 RelaxedPrecision OpDecorate %155 RelaxedPrecision OpDecorate %158 RelaxedPrecision +OpDecorate %159 RelaxedPrecision +OpDecorate %160 RelaxedPrecision +OpDecorate %162 RelaxedPrecision +OpDecorate %163 RelaxedPrecision +OpDecorate %166 RelaxedPrecision +OpDecorate %167 RelaxedPrecision +OpDecorate %170 RelaxedPrecision +OpDecorate %171 RelaxedPrecision OpDecorate %m22 RelaxedPrecision OpDecorate %178 RelaxedPrecision OpDecorate %179 RelaxedPrecision OpDecorate %180 RelaxedPrecision OpDecorate %181 RelaxedPrecision OpDecorate %184 RelaxedPrecision +OpDecorate %189 RelaxedPrecision +OpDecorate %190 RelaxedPrecision +OpDecorate %192 RelaxedPrecision +OpDecorate %193 RelaxedPrecision OpDecorate %m33 RelaxedPrecision OpDecorate %200 RelaxedPrecision OpDecorate %201 RelaxedPrecision OpDecorate %202 RelaxedPrecision OpDecorate %203 RelaxedPrecision OpDecorate %206 RelaxedPrecision +OpDecorate %212 RelaxedPrecision +OpDecorate %213 RelaxedPrecision +OpDecorate %215 RelaxedPrecision +OpDecorate %216 RelaxedPrecision +OpDecorate %219 RelaxedPrecision +OpDecorate %220 RelaxedPrecision OpDecorate %224 RelaxedPrecision OpDecorate %228 RelaxedPrecision OpDecorate %229 RelaxedPrecision @@ -78,6 +124,10 @@ OpDecorate %231 RelaxedPrecision OpDecorate %232 RelaxedPrecision OpDecorate %233 RelaxedPrecision OpDecorate %236 RelaxedPrecision +OpDecorate %240 RelaxedPrecision +OpDecorate %241 RelaxedPrecision +OpDecorate %243 RelaxedPrecision +OpDecorate %244 RelaxedPrecision OpDecorate %248 RelaxedPrecision OpDecorate %251 RelaxedPrecision OpDecorate %252 RelaxedPrecision @@ -88,6 +138,12 @@ OpDecorate %256 RelaxedPrecision OpDecorate %257 RelaxedPrecision OpDecorate %258 RelaxedPrecision OpDecorate %261 RelaxedPrecision +OpDecorate %267 RelaxedPrecision +OpDecorate %268 RelaxedPrecision +OpDecorate %270 RelaxedPrecision +OpDecorate %271 RelaxedPrecision +OpDecorate %274 RelaxedPrecision +OpDecorate %275 RelaxedPrecision OpDecorate %279 RelaxedPrecision OpDecorate %282 RelaxedPrecision OpDecorate %283 RelaxedPrecision @@ -96,6 +152,10 @@ OpDecorate %285 RelaxedPrecision OpDecorate %286 RelaxedPrecision OpDecorate %287 RelaxedPrecision OpDecorate %290 RelaxedPrecision +OpDecorate %295 RelaxedPrecision +OpDecorate %296 RelaxedPrecision +OpDecorate %298 RelaxedPrecision +OpDecorate %299 RelaxedPrecision OpDecorate %303 RelaxedPrecision OpDecorate %309 RelaxedPrecision OpDecorate %322 RelaxedPrecision diff --git a/tests/sksl/shared/MatrixEquality.asm.frag b/tests/sksl/shared/MatrixEquality.asm.frag index 1bc696e38e..2f054ad285 100644 --- a/tests/sksl/shared/MatrixEquality.asm.frag +++ b/tests/sksl/shared/MatrixEquality.asm.frag @@ -34,12 +34,32 @@ OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 OpDecorate %33 RelaxedPrecision OpDecorate %40 RelaxedPrecision +OpDecorate %49 RelaxedPrecision +OpDecorate %50 RelaxedPrecision +OpDecorate %52 RelaxedPrecision +OpDecorate %53 RelaxedPrecision OpDecorate %57 RelaxedPrecision OpDecorate %63 RelaxedPrecision +OpDecorate %74 RelaxedPrecision +OpDecorate %75 RelaxedPrecision +OpDecorate %77 RelaxedPrecision +OpDecorate %78 RelaxedPrecision +OpDecorate %81 RelaxedPrecision +OpDecorate %82 RelaxedPrecision OpDecorate %86 RelaxedPrecision OpDecorate %90 RelaxedPrecision +OpDecorate %95 RelaxedPrecision +OpDecorate %96 RelaxedPrecision +OpDecorate %98 RelaxedPrecision +OpDecorate %99 RelaxedPrecision OpDecorate %103 RelaxedPrecision OpDecorate %107 RelaxedPrecision +OpDecorate %112 RelaxedPrecision +OpDecorate %113 RelaxedPrecision +OpDecorate %115 RelaxedPrecision +OpDecorate %116 RelaxedPrecision +OpDecorate %119 RelaxedPrecision +OpDecorate %120 RelaxedPrecision OpDecorate %124 RelaxedPrecision OpDecorate %133 RelaxedPrecision OpDecorate %136 RelaxedPrecision diff --git a/tests/sksl/shared/VectorToMatrixCast.asm.frag b/tests/sksl/shared/VectorToMatrixCast.asm.frag index 9ffe828dd4..78c8947681 100644 --- a/tests/sksl/shared/VectorToMatrixCast.asm.frag +++ b/tests/sksl/shared/VectorToMatrixCast.asm.frag @@ -34,6 +34,8 @@ OpDecorate %41 RelaxedPrecision OpDecorate %42 RelaxedPrecision OpDecorate %43 RelaxedPrecision OpDecorate %45 RelaxedPrecision +OpDecorate %53 RelaxedPrecision +OpDecorate %55 RelaxedPrecision OpDecorate %59 RelaxedPrecision OpDecorate %63 RelaxedPrecision OpDecorate %77 RelaxedPrecision @@ -45,6 +47,8 @@ OpDecorate %86 RelaxedPrecision OpDecorate %87 RelaxedPrecision OpDecorate %88 RelaxedPrecision OpDecorate %89 RelaxedPrecision +OpDecorate %93 RelaxedPrecision +OpDecorate %95 RelaxedPrecision OpDecorate %99 RelaxedPrecision OpDecorate %103 RelaxedPrecision OpDecorate %104 RelaxedPrecision @@ -54,6 +58,8 @@ OpDecorate %107 RelaxedPrecision OpDecorate %108 RelaxedPrecision OpDecorate %109 RelaxedPrecision OpDecorate %110 RelaxedPrecision +OpDecorate %111 RelaxedPrecision +OpDecorate %113 RelaxedPrecision OpDecorate %117 RelaxedPrecision OpDecorate %121 RelaxedPrecision OpDecorate %122 RelaxedPrecision @@ -72,6 +78,8 @@ OpDecorate %144 RelaxedPrecision OpDecorate %145 RelaxedPrecision OpDecorate %146 RelaxedPrecision OpDecorate %147 RelaxedPrecision +OpDecorate %148 RelaxedPrecision +OpDecorate %150 RelaxedPrecision OpDecorate %154 RelaxedPrecision OpDecorate %158 RelaxedPrecision OpDecorate %159 RelaxedPrecision @@ -81,6 +89,8 @@ OpDecorate %162 RelaxedPrecision OpDecorate %163 RelaxedPrecision OpDecorate %164 RelaxedPrecision OpDecorate %165 RelaxedPrecision +OpDecorate %166 RelaxedPrecision +OpDecorate %168 RelaxedPrecision OpDecorate %172 RelaxedPrecision OpDecorate %176 RelaxedPrecision OpDecorate %177 RelaxedPrecision @@ -90,6 +100,8 @@ OpDecorate %180 RelaxedPrecision OpDecorate %181 RelaxedPrecision OpDecorate %182 RelaxedPrecision OpDecorate %183 RelaxedPrecision +OpDecorate %184 RelaxedPrecision +OpDecorate %186 RelaxedPrecision OpDecorate %190 RelaxedPrecision OpDecorate %194 RelaxedPrecision OpDecorate %195 RelaxedPrecision @@ -108,6 +120,8 @@ OpDecorate %217 RelaxedPrecision OpDecorate %218 RelaxedPrecision OpDecorate %219 RelaxedPrecision OpDecorate %220 RelaxedPrecision +OpDecorate %221 RelaxedPrecision +OpDecorate %223 RelaxedPrecision OpDecorate %227 RelaxedPrecision OpDecorate %234 RelaxedPrecision OpDecorate %237 RelaxedPrecision