Chromium Code Reviews| Index: src/gpu/vk/GrVkCaps.cpp |
| diff --git a/src/gpu/vk/GrVkCaps.cpp b/src/gpu/vk/GrVkCaps.cpp |
| index 8f46408706e8f22eeb1e9f048c432596bc514355..1ddeeb8a94b7f82d84f25b3370b881e8acf433ee 100644 |
| --- a/src/gpu/vk/GrVkCaps.cpp |
| +++ b/src/gpu/vk/GrVkCaps.cpp |
| @@ -153,6 +153,23 @@ void GrVkCaps::initGLSLCaps(const VkPhysicalDeviceProperties& properties, |
| #endif |
| glslCaps->fIntegerSupport = true; |
| + // Assume the minimum precisions mandated by the GLSL spec for now. |
| + glslCaps->fShaderPrecisionVaries = true; |
| + for (int s = 0; s < kGrShaderTypeCount; ++s) { |
|
egdaniel
2016/04/05 21:09:48
in vulkan/SPIR-V,
highp in glsl maps to 32 bit fl
Chris Dalton
2016/04/05 21:54:49
Done.
|
| + auto& lowp = glslCaps->fFloatPrecisions[s][kLow_GrSLPrecision]; |
| + lowp.fLogRangeLow = lowp.fLogRangeHigh = 1; |
| + lowp.fBits = 8; |
| + |
| + auto& mediump = glslCaps->fFloatPrecisions[s][kLow_GrSLPrecision]; |
| + mediump.fLogRangeLow = lowp.fLogRangeHigh = 14; |
| + mediump.fBits = 10; |
| + |
| + auto& highp = glslCaps->fFloatPrecisions[s][kLow_GrSLPrecision]; |
| + highp.fLogRangeLow = highp.fLogRangeHigh = 62; |
| + highp.fBits = 16; |
| + } |
| + glslCaps->initEffectiveFloatPrecisionTable(); |
| + |
| glslCaps->fMaxVertexSamplers = |
| glslCaps->fMaxGeometrySamplers = |
| glslCaps->fMaxFragmentSamplers = SkTMin(properties.limits.maxPerStageDescriptorSampledImages, |