aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlec Mouri <alecmouri@google.com>2023-04-28 20:31:02 -0700
committerSkCQ <skcq-be@skia-corp.google.com.iam.gserviceaccount.com>2023-05-01 21:20:11 +0000
commit8f929978fd7c8cd7011e45ead5abda1cebf08e1a (patch)
tree2b732878cd98385f6699ec7ee6588822a843a4e8
parent234093826ebe5eaa02df7a9ae998eeb6ea76bbf9 (diff)
downloadskia-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.h6
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);
}