| Index: src/gpu/vk/GrVkProgramDesc.cpp
|
| diff --git a/src/gpu/vk/GrVkProgramDesc.cpp b/src/gpu/vk/GrVkProgramDesc.cpp
|
| index 74e6bbb59d0c72b929cf30a7bf311150b7de6e66..f4bd2bf506b1bc99dd33020808bfdceb29f641ed 100644
|
| --- a/src/gpu/vk/GrVkProgramDesc.cpp
|
| +++ b/src/gpu/vk/GrVkProgramDesc.cpp
|
| @@ -22,7 +22,7 @@
|
| static void add_texture_key(GrProcessorKeyBuilder* b, const GrProcessor& proc,
|
| const GrGLSLCaps& caps) {
|
| int numTextures = proc.numTextures();
|
| - // Need two bytes per key (swizzle and target).
|
| + // Need two bytes per key (swizzle, sampler type, and precision).
|
| int word32Count = (proc.numTextures() + 1) / 2;
|
| if (0 == word32Count) {
|
| return;
|
| @@ -31,7 +31,8 @@ static void add_texture_key(GrProcessorKeyBuilder* b, const GrProcessor& proc,
|
| for (int i = 0; i < numTextures; ++i) {
|
| const GrTextureAccess& access = proc.textureAccess(i);
|
| GrTexture* texture = access.getTexture();
|
| - k16[i] = SkToU16(caps.configTextureSwizzle(texture->config()).asKey());
|
| + k16[i] = SkToU16(caps.configTextureSwizzle(texture->config()).asKey() |
|
| + (caps.samplerPrecision(texture->config(), access.getVisibility()) << 8));
|
| }
|
| // zero the last 16 bits if the number of textures is odd.
|
| if (numTextures & 0x1) {
|
|
|