Add GrPrimitiveType to GrProgramInfo
This further consolidates the information required to compute the program key (esp. for Vulkan). This CL mainly comprises the plumbing portion - a follow up CL will actually use it.
Bug: skia:9455
Change-Id: Iaac716c289916981a1757a333bfa57b3051fd35b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252161
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
diff --git a/src/gpu/ops/GrMeshDrawOp.cpp b/src/gpu/ops/GrMeshDrawOp.cpp
index 15345c3..3250a22 100644
--- a/src/gpu/ops/GrMeshDrawOp.cpp
+++ b/src/gpu/ops/GrMeshDrawOp.cpp
@@ -43,6 +43,7 @@
}
SkASSERT(vertexBuffer);
fMesh = target->allocMesh(primitiveType);
+ fPrimitiveType = primitiveType;
SkASSERT(maxRepetitions ==
static_cast<int>(indexBuffer->size() / (sizeof(uint16_t) * indicesPerRepetition)));
@@ -53,13 +54,13 @@
void GrMeshDrawOp::PatternHelper::recordDraw(
Target* target, sk_sp<const GrGeometryProcessor> gp) const {
- target->recordDraw(std::move(gp), fMesh, 1);
+ target->recordDraw(std::move(gp), fMesh, 1, fPrimitiveType);
}
void GrMeshDrawOp::PatternHelper::recordDraw(
Target* target, sk_sp<const GrGeometryProcessor> gp,
const GrPipeline::FixedDynamicState* fixedDynamicState) const {
- target->recordDraw(std::move(gp), fMesh, 1, fixedDynamicState, nullptr);
+ target->recordDraw(std::move(gp), fMesh, 1, fixedDynamicState, nullptr, fPrimitiveType);
}
//////////////////////////////////////////////////////////////////////////////