diff options
author | Alec Mouri <alecmouri@google.com> | 2023-04-28 20:31:02 -0700 |
---|---|---|
committer | SkCQ <skcq-be@skia-corp.google.com.iam.gserviceaccount.com> | 2023-05-01 21:20:11 +0000 |
commit | 8f929978fd7c8cd7011e45ead5abda1cebf08e1a (patch) | |
tree | 2b732878cd98385f6699ec7ee6588822a843a4e8 | |
parent | 234093826ebe5eaa02df7a9ae998eeb6ea76bbf9 (diff) | |
download | skia-8f929978fd7c8cd7011e45ead5abda1cebf08e1a.tar.gz |
Increase precision of csc uniforms on ganesh
In particular, PQ's transfer function requires really high precision,
so using halfs instead of floats creates artifacts on some GPUs.
Bug: b/278122024
Change-Id: If403103f6f420588869aad00b228e81dd838e94e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/687083
Commit-Queue: Alec Mouri <alecmouri@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
(cherry picked from commit 1c2d2876434874d9bbdbaf25daca5a7c48dacbfa)
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/688178
-rw-r--r-- | src/gpu/ganesh/glsl/GrGLSLColorSpaceXformHelper.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/gpu/ganesh/glsl/GrGLSLColorSpaceXformHelper.h b/src/gpu/ganesh/glsl/GrGLSLColorSpaceXformHelper.h index 1b6c02e91a..46776569cb 100644 --- a/src/gpu/ganesh/glsl/GrGLSLColorSpaceXformHelper.h +++ b/src/gpu/ganesh/glsl/GrGLSLColorSpaceXformHelper.h @@ -29,16 +29,16 @@ public: if (colorSpaceXform) { fFlags = colorSpaceXform->fSteps.flags; if (this->applySrcTF()) { - fSrcTFVar = uniformHandler->addUniformArray(nullptr, visibility, SkSLType::kHalf, + fSrcTFVar = uniformHandler->addUniformArray(nullptr, visibility, SkSLType::kFloat, "SrcTF", kNumTransferFnCoeffs); fSrcTFType = skcms_TransferFunction_getType(&colorSpaceXform->fSteps.srcTF); } if (this->applyGamutXform()) { - fGamutXformVar = uniformHandler->addUniform(nullptr, visibility, SkSLType::kHalf3x3, + fGamutXformVar = uniformHandler->addUniform(nullptr, visibility, SkSLType::kFloat3x3, "ColorXform"); } if (this->applyDstTF()) { - fDstTFVar = uniformHandler->addUniformArray(nullptr, visibility, SkSLType::kHalf, + fDstTFVar = uniformHandler->addUniformArray(nullptr, visibility, SkSLType::kFloat, "DstTF", kNumTransferFnCoeffs); fDstTFType = skcms_TransferFunction_getType(&colorSpaceXform->fSteps.dstTFInv); } |