Fix caching of sample locations
authorcsmartdalton <csmartdalton@google.com>
Wed, 6 Jul 2016 16:59:43 +0000 (09:59 -0700)
committerCommit bot <commit-bot@chromium.org>
Wed, 6 Jul 2016 16:59:43 +0000 (09:59 -0700)
commit0d28e574ac73fef8bf75cab083ffe23f2d8860a1
tree0831082f5905199c8c5deab72d63b109b960d817
parent01a19504c4dbd980e96b1c5b9fe8c8779432488d
Fix caching of sample locations

The original caching logic for sample locations wishfully assumed that
the GPU would always use the same sample pattern for render targets
that had the same number of samples. It turns out we can't rely on
that. This change improves the caching logic to handle mismatched
simple patterns with the same count, and adds a unit test that
emulates different sample patterns observed on real hardware.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2111423002

Committed: https://skia.googlesource.com/skia/+/09d49a3bfe2d1e652a648ce1ea0962b38d10d166
Review-Url: https://codereview.chromium.org/2111423002
include/gpu/GrRenderTarget.h
src/gpu/GrGpu.cpp
src/gpu/GrGpu.h
src/gpu/GrRenderTargetPriv.h
src/gpu/gl/GrGLGpu.cpp
src/gpu/gl/GrGLGpu.h
src/gpu/glsl/GrGLSLFragmentShaderBuilder.cpp
src/gpu/vk/GrVkGpu.cpp
src/gpu/vk/GrVkGpu.h
tests/GpuSampleLocationsTest.cpp [new file with mode: 0644]
tools/gpu/GrTest.cpp