Add automatic generation of mipmaps to Vulkan
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1916563002
Review URL: https://codereview.chromium.org/1916563002
diff --git a/src/gpu/vk/GrVkResourceProvider.cpp b/src/gpu/vk/GrVkResourceProvider.cpp
index 7def55d..8ba5ade 100644
--- a/src/gpu/vk/GrVkResourceProvider.cpp
+++ b/src/gpu/vk/GrVkResourceProvider.cpp
@@ -85,10 +85,11 @@
return new GrVkDescriptorPool(fGpu, type, count);
}
-GrVkSampler* GrVkResourceProvider::findOrCreateCompatibleSampler(const GrTextureParams& params) {
- GrVkSampler* sampler = fSamplers.find(GrVkSampler::GenerateKey(params));
+GrVkSampler* GrVkResourceProvider::findOrCreateCompatibleSampler(const GrTextureParams& params,
+ uint32_t mipLevels) {
+ GrVkSampler* sampler = fSamplers.find(GrVkSampler::GenerateKey(params, mipLevels));
if (!sampler) {
- sampler = GrVkSampler::Create(fGpu, params);
+ sampler = GrVkSampler::Create(fGpu, params, mipLevels);
fSamplers.add(sampler);
}
SkASSERT(sampler);
@@ -136,7 +137,7 @@
fSimpleRenderPasses.reset();
// Iterate through all store GrVkSamplers and unref them before resetting the hash.
- SkTDynamicHash<GrVkSampler, uint8_t>::Iter iter(&fSamplers);
+ SkTDynamicHash<GrVkSampler, uint16_t>::Iter iter(&fSamplers);
for (; !iter.done(); ++iter) {
(*iter).unref(fGpu);
}
@@ -166,7 +167,7 @@
fSimpleRenderPasses.reset();
// Iterate through all store GrVkSamplers and unrefAndAbandon them before resetting the hash.
- SkTDynamicHash<GrVkSampler, uint8_t>::Iter iter(&fSamplers);
+ SkTDynamicHash<GrVkSampler, uint16_t>::Iter iter(&fSamplers);
for (; !iter.done(); ++iter) {
(*iter).unrefAndAbandon();
}