Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(205)

Unified Diff: gpu/command_buffer/service/memory_program_cache_unittest.cc

Issue 2615573002: Add disable_program_caching_for_transform_feedback workaround. (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gpu/command_buffer/service/memory_program_cache.cc ('k') | gpu/config/gpu_driver_bug_list_json.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gpu/command_buffer/service/memory_program_cache_unittest.cc
diff --git a/gpu/command_buffer/service/memory_program_cache_unittest.cc b/gpu/command_buffer/service/memory_program_cache_unittest.cc
index a28b79d9f22dc232990da266c791a93e8c53ee6c..b6e157730c3b71b3a6970e36de4b962599d1fbb3 100644
--- a/gpu/command_buffer/service/memory_program_cache_unittest.cc
+++ b/gpu/command_buffer/service/memory_program_cache_unittest.cc
@@ -70,13 +70,15 @@ class MemoryProgramCacheTest : public GpuServiceTest {
public:
static const size_t kCacheSizeBytes = 1024;
static const bool kDisableGpuDiskCache = false;
+ static const bool kDisableCachingForTransformFeedback = false;
static const GLuint kVertexShaderClientId = 90;
static const GLuint kVertexShaderServiceId = 100;
static const GLuint kFragmentShaderClientId = 91;
static const GLuint kFragmentShaderServiceId = 100;
MemoryProgramCacheTest()
- : cache_(new MemoryProgramCache(kCacheSizeBytes, kDisableGpuDiskCache)),
+ : cache_(new MemoryProgramCache(kCacheSizeBytes, kDisableGpuDiskCache,
+ kDisableCachingForTransformFeedback)),
shader_manager_(nullptr),
vertex_shader_(nullptr),
fragment_shader_(nullptr),
@@ -537,6 +539,40 @@ TEST_F(MemoryProgramCacheTest, LoadFailOnDifferentTransformFeedbackVaryings) {
base::Unretained(this))));
}
+TEST_F(MemoryProgramCacheTest, LoadFailIfTransformFeedbackCachingDisabled) {
+ const GLenum kFormat = 1;
+ const int kProgramId = 10;
+ const int kBinaryLength = 20;
+ char test_binary[kBinaryLength];
+ for (int i = 0; i < kBinaryLength; ++i) {
+ test_binary[i] = i;
+ }
+ ProgramBinaryEmulator emulator(kBinaryLength, kFormat, test_binary);
+
+ // Forcibly reset the program cache so we can disable caching of
+ // programs which include transform feedback varyings.
+ cache_.reset(new MemoryProgramCache(
+ kCacheSizeBytes, kDisableGpuDiskCache, true));
+ varyings_.push_back("test");
+ cache_->SaveLinkedProgram(kProgramId,
+ vertex_shader_,
+ fragment_shader_,
+ NULL,
+ varyings_,
+ GL_INTERLEAVED_ATTRIBS,
+ base::Bind(&MemoryProgramCacheTest::ShaderCacheCb,
+ base::Unretained(this)));
+ EXPECT_EQ(ProgramCache::PROGRAM_LOAD_FAILURE, cache_->LoadLinkedProgram(
+ kProgramId,
+ vertex_shader_,
+ fragment_shader_,
+ NULL,
+ varyings_,
+ GL_INTERLEAVED_ATTRIBS,
+ base::Bind(&MemoryProgramCacheTest::ShaderCacheCb,
+ base::Unretained(this))));
+}
+
TEST_F(MemoryProgramCacheTest, MemoryProgramCacheEviction) {
const GLenum kFormat = 1;
const int kProgramId = 10;
« no previous file with comments | « gpu/command_buffer/service/memory_program_cache.cc ('k') | gpu/config/gpu_driver_bug_list_json.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698