Fix up and clarify use of maxMipLevel in Vulkan
Bug: skia:
Change-Id: I5b31e0c74be8f650e97c448b1029a2277dfee978
Reviewed-on: https://skia-review.googlesource.com/41844
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
diff --git a/src/gpu/vk/GrVkSampler.cpp b/src/gpu/vk/GrVkSampler.cpp
index 3901634..740c14b 100644
--- a/src/gpu/vk/GrVkSampler.cpp
+++ b/src/gpu/vk/GrVkSampler.cpp
@@ -23,7 +23,7 @@
}
GrVkSampler* GrVkSampler::Create(const GrVkGpu* gpu, const GrSamplerParams& params,
- uint32_t mipLevels) {
+ uint32_t maxMipLevel) {
static VkFilter vkMinFilterModes[] = {
VK_FILTER_NEAREST,
VK_FILTER_LINEAR,
@@ -57,8 +57,8 @@
// level mip). If the filters weren't the same we could set min = 0 and max = 0.25 to force
// the minFilter on mip level 0.
createInfo.minLod = 0.0f;
- bool useMipMaps = GrSamplerParams::kMipMap_FilterMode == params.filterMode() && mipLevels > 1;
- createInfo.maxLod = !useMipMaps ? 0.0f : (float)(mipLevels);
+ bool useMipMaps = GrSamplerParams::kMipMap_FilterMode == params.filterMode() && maxMipLevel > 0;
+ createInfo.maxLod = !useMipMaps ? 0.0f : (float)(maxMipLevel);
createInfo.borderColor = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK;
createInfo.unnormalizedCoordinates = VK_FALSE;
@@ -68,7 +68,7 @@
nullptr,
&sampler));
- return new GrVkSampler(sampler, GenerateKey(params, mipLevels));
+ return new GrVkSampler(sampler, GenerateKey(params, maxMipLevel));
}
void GrVkSampler::freeGPUData(const GrVkGpu* gpu) const {
@@ -76,7 +76,7 @@
GR_VK_CALL(gpu->vkInterface(), DestroySampler(gpu->device(), fSampler, nullptr));
}
-uint16_t GrVkSampler::GenerateKey(const GrSamplerParams& params, uint32_t mipLevels) {
+uint16_t GrVkSampler::GenerateKey(const GrSamplerParams& params, uint32_t maxMipLevel) {
const int kTileModeXShift = 2;
const int kTileModeYShift = 4;
const int kMipLevelShift = 6;
@@ -89,8 +89,8 @@
GR_STATIC_ASSERT(SkShader::kTileModeCount <= 4);
key |= (params.getTileModeY() << kTileModeYShift);
- SkASSERT(mipLevels < 1024);
- key |= (mipLevels << kMipLevelShift);
+ SkASSERT(maxMipLevel < 1024);
+ key |= (maxMipLevel << kMipLevelShift);
return key;
}