[graphite] Apply colorSpace to runtime effect's uniforms
Bug: b/239959460
Change-Id: If2c0b4c75f425ed76ed4afe590f9a3e4fdb56c96
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/639296
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: James Godfrey-Kittle <jamesgk@google.com>
diff --git a/src/core/SkRuntimeEffect.cpp b/src/core/SkRuntimeEffect.cpp
index 53e94c2..f817f58 100644
--- a/src/core/SkRuntimeEffect.cpp
+++ b/src/core/SkRuntimeEffect.cpp
@@ -57,6 +57,7 @@
#endif
#ifdef SK_GRAPHITE_ENABLED
+#include "src/gpu/graphite/KeyContext.h"
#include "src/gpu/graphite/KeyHelpers.h"
#include "src/gpu/graphite/PaintParamsKey.h"
#endif
@@ -1197,7 +1198,14 @@
skgpu::graphite::PipelineDataGatherer* gatherer) const override {
using namespace skgpu::graphite;
- RuntimeEffectBlock::BeginBlock(keyContext, builder, gatherer, {fEffect, fUniforms});
+ sk_sp<const SkData> uniforms = SkRuntimeEffectPriv::TransformUniforms(
+ fEffect->uniforms(),
+ fUniforms,
+ keyContext.dstColorInfo().colorSpace());
+ SkASSERT(uniforms);
+
+ RuntimeEffectBlock::BeginBlock(keyContext, builder, gatherer,
+ { fEffect, std::move(uniforms) });
add_children_to_key(fChildren, fEffect->children(), keyContext, builder, gatherer);
@@ -1397,7 +1405,14 @@
skgpu::graphite::PipelineDataGatherer* gatherer) const override {
using namespace skgpu::graphite;
- RuntimeEffectBlock::BeginBlock(keyContext, builder, gatherer, {fEffect, fUniforms});
+ sk_sp<const SkData> uniforms = SkRuntimeEffectPriv::TransformUniforms(
+ fEffect->uniforms(),
+ fUniforms,
+ keyContext.dstColorInfo().colorSpace());
+ SkASSERT(uniforms);
+
+ RuntimeEffectBlock::BeginBlock(keyContext, builder, gatherer,
+ { fEffect, std::move(uniforms) });
add_children_to_key(fChildren, fEffect->children(), keyContext, builder, gatherer);
@@ -1611,7 +1626,14 @@
bool primitiveColorBlender) const override {
using namespace skgpu::graphite;
- RuntimeEffectBlock::BeginBlock(keyContext, builder, gatherer, {fEffect, fUniforms});
+ sk_sp<const SkData> uniforms = SkRuntimeEffectPriv::TransformUniforms(
+ fEffect->uniforms(),
+ fUniforms,
+ keyContext.dstColorInfo().colorSpace());
+ SkASSERT(uniforms);
+
+ RuntimeEffectBlock::BeginBlock(keyContext, builder, gatherer,
+ { fEffect, std::move(uniforms) });
add_children_to_key(fChildren, fEffect->children(), keyContext, builder, gatherer);