Index: cc/output/gl_renderer_unittest.cc |
diff --git a/cc/output/gl_renderer_unittest.cc b/cc/output/gl_renderer_unittest.cc |
index 8254bb2f917fb5f1ca958bc3536df712da2b0da9..93905fdf8278d1cea677bf66853ca605f5a91c1c 100644 |
--- a/cc/output/gl_renderer_unittest.cc |
+++ b/cc/output/gl_renderer_unittest.cc |
@@ -76,12 +76,6 @@ class GLRendererShaderPixelTest : public GLRendererPixelTest { |
} |
void TestShadersWithTexCoordPrecision(TexCoordPrecision precision) { |
- EXPECT_PROGRAM_VALID(renderer()->GetTileProgram(precision)); |
- EXPECT_PROGRAM_VALID(renderer()->GetTileProgramOpaque(precision)); |
- EXPECT_PROGRAM_VALID(renderer()->GetTileProgramAA(precision)); |
- EXPECT_PROGRAM_VALID(renderer()->GetTileProgramSwizzle(precision)); |
- EXPECT_PROGRAM_VALID(renderer()->GetTileProgramSwizzleOpaque(precision)); |
- EXPECT_PROGRAM_VALID(renderer()->GetTileProgramSwizzleAA(precision)); |
EXPECT_PROGRAM_VALID(renderer()->GetRenderPassProgram(precision)); |
EXPECT_PROGRAM_VALID(renderer()->GetRenderPassProgramAA(precision)); |
EXPECT_PROGRAM_VALID(renderer()->GetRenderPassMaskProgram(precision)); |
@@ -108,6 +102,24 @@ class GLRendererShaderPixelTest : public GLRendererPixelTest { |
EXPECT_PROGRAM_VALID(renderer()->GetVideoStreamTextureProgram(precision)); |
else |
EXPECT_FALSE(renderer()->GetVideoStreamTextureProgram(precision)); |
+ TestShadersWithSamplerType(precision, SamplerType2D); |
+ TestShadersWithSamplerType(precision, SamplerType2DRect); |
+ // This is unlikely to be ever true in tests due to usage of osmesa. |
+ if (renderer()->Capabilities().using_egl_image) |
+ TestShadersWithSamplerType(precision, SamplerTypeExternalOES); |
+ } |
+ |
+ void TestShadersWithSamplerType( |
+ TexCoordPrecision precision, SamplerType sampler) { |
+ EXPECT_PROGRAM_VALID(renderer()->GetTileProgram(precision, sampler)); |
+ EXPECT_PROGRAM_VALID(renderer()->GetTileProgramOpaque(precision, sampler)); |
+ EXPECT_PROGRAM_VALID(renderer()->GetTileProgramAA(precision, sampler)); |
+ EXPECT_PROGRAM_VALID( |
+ renderer()->GetTileProgramSwizzle(precision, sampler)); |
+ EXPECT_PROGRAM_VALID( |
+ renderer()->GetTileProgramSwizzleOpaque(precision, sampler)); |
+ EXPECT_PROGRAM_VALID( |
+ renderer()->GetTileProgramSwizzleAA(precision, sampler)); |
} |
}; |
@@ -261,51 +273,59 @@ class GLRendererShaderTest : public testing::Test { |
renderer_->Initialize(); |
} |
- void TestRenderPassProgram() { |
- EXPECT_PROGRAM_VALID(&renderer_->render_pass_program_); |
- EXPECT_EQ(renderer_->render_pass_program_.program(), |
+ void TestRenderPassProgram(TexCoordPrecision precision) { |
+ EXPECT_PROGRAM_VALID(&renderer_->render_pass_program_[precision]); |
+ EXPECT_EQ(renderer_->render_pass_program_[precision].program(), |
renderer_->program_shadow_); |
} |
- void TestRenderPassColorMatrixProgram() { |
- EXPECT_PROGRAM_VALID(&renderer_->render_pass_color_matrix_program_); |
- EXPECT_EQ(renderer_->render_pass_color_matrix_program_.program(), |
- renderer_->program_shadow_); |
+ void TestRenderPassColorMatrixProgram(TexCoordPrecision precision) { |
+ EXPECT_PROGRAM_VALID( |
+ &renderer_->render_pass_color_matrix_program_[precision]); |
+ EXPECT_EQ( |
+ renderer_->render_pass_color_matrix_program_[precision].program(), |
+ renderer_->program_shadow_); |
} |
- void TestRenderPassMaskProgram() { |
- EXPECT_PROGRAM_VALID(&renderer_->render_pass_mask_program_); |
- EXPECT_EQ(renderer_->render_pass_mask_program_.program(), |
+ void TestRenderPassMaskProgram(TexCoordPrecision precision) { |
+ EXPECT_PROGRAM_VALID(&renderer_->render_pass_mask_program_[precision]); |
+ EXPECT_EQ(renderer_->render_pass_mask_program_[precision].program(), |
renderer_->program_shadow_); |
} |
- void TestRenderPassMaskColorMatrixProgram() { |
- EXPECT_PROGRAM_VALID(&renderer_->render_pass_mask_color_matrix_program_); |
- EXPECT_EQ(renderer_->render_pass_mask_color_matrix_program_.program(), |
+ void TestRenderPassMaskColorMatrixProgram(TexCoordPrecision precision) { |
+ EXPECT_PROGRAM_VALID( |
+ &renderer_->render_pass_mask_color_matrix_program_[precision]); |
+ EXPECT_EQ(renderer_-> |
+ render_pass_mask_color_matrix_program_[precision].program(), |
renderer_->program_shadow_); |
} |
- void TestRenderPassProgramAA() { |
- EXPECT_PROGRAM_VALID(&renderer_->render_pass_program_aa_); |
- EXPECT_EQ(renderer_->render_pass_program_aa_.program(), |
+ void TestRenderPassProgramAA(TexCoordPrecision precision) { |
+ EXPECT_PROGRAM_VALID(&renderer_->render_pass_program_aa_[precision]); |
+ EXPECT_EQ(renderer_->render_pass_program_aa_[precision].program(), |
renderer_->program_shadow_); |
} |
- void TestRenderPassColorMatrixProgramAA() { |
- EXPECT_PROGRAM_VALID(&renderer_->render_pass_color_matrix_program_aa_); |
- EXPECT_EQ(renderer_->render_pass_color_matrix_program_aa_.program(), |
+ void TestRenderPassColorMatrixProgramAA(TexCoordPrecision precision) { |
+ EXPECT_PROGRAM_VALID( |
+ &renderer_->render_pass_color_matrix_program_aa_[precision]); |
+ EXPECT_EQ(renderer_-> |
+ render_pass_color_matrix_program_aa_[precision].program(), |
renderer_->program_shadow_); |
} |
- void TestRenderPassMaskProgramAA() { |
- EXPECT_PROGRAM_VALID(&renderer_->render_pass_mask_program_aa_); |
- EXPECT_EQ(renderer_->render_pass_mask_program_aa_.program(), |
+ void TestRenderPassMaskProgramAA(TexCoordPrecision precision) { |
+ EXPECT_PROGRAM_VALID(&renderer_->render_pass_mask_program_aa_[precision]); |
+ EXPECT_EQ(renderer_->render_pass_mask_program_aa_[precision].program(), |
renderer_->program_shadow_); |
} |
- void TestRenderPassMaskColorMatrixProgramAA() { |
- EXPECT_PROGRAM_VALID(&renderer_->render_pass_mask_color_matrix_program_aa_); |
- EXPECT_EQ(renderer_->render_pass_mask_color_matrix_program_aa_.program(), |
+ void TestRenderPassMaskColorMatrixProgramAA(TexCoordPrecision precision) { |
+ EXPECT_PROGRAM_VALID( |
+ &renderer_->render_pass_mask_color_matrix_program_aa_[precision]); |
+ EXPECT_EQ(renderer_-> |
+ render_pass_mask_color_matrix_program_aa_[precision].program(), |
renderer_->program_shadow_); |
} |
@@ -1367,7 +1387,7 @@ TEST_F(GLRendererShaderTest, DrawRenderPassQuadShaderPermutations) { |
*renderer_client_.render_passes_in_draw_order()); |
renderer_->DrawFrame( |
renderer_client_.render_passes_in_draw_order(), NULL, 1.f, true, false); |
- TestRenderPassProgram(); |
+ TestRenderPassProgram(TexCoordPrecisionMedium); |
// RenderPassColorMatrixProgram |
render_passes->clear(); |
@@ -1384,7 +1404,7 @@ TEST_F(GLRendererShaderTest, DrawRenderPassQuadShaderPermutations) { |
*renderer_client_.render_passes_in_draw_order()); |
renderer_->DrawFrame( |
renderer_client_.render_passes_in_draw_order(), NULL, 1.f, true, false); |
- TestRenderPassColorMatrixProgram(); |
+ TestRenderPassColorMatrixProgram(TexCoordPrecisionMedium); |
// RenderPassMaskProgram |
render_passes->clear(); |
@@ -1405,7 +1425,7 @@ TEST_F(GLRendererShaderTest, DrawRenderPassQuadShaderPermutations) { |
*renderer_client_.render_passes_in_draw_order()); |
renderer_->DrawFrame( |
renderer_client_.render_passes_in_draw_order(), NULL, 1.f, true, false); |
- TestRenderPassMaskProgram(); |
+ TestRenderPassMaskProgram(TexCoordPrecisionMedium); |
// RenderPassMaskColorMatrixProgram |
render_passes->clear(); |
@@ -1422,7 +1442,7 @@ TEST_F(GLRendererShaderTest, DrawRenderPassQuadShaderPermutations) { |
*renderer_client_.render_passes_in_draw_order()); |
renderer_->DrawFrame( |
renderer_client_.render_passes_in_draw_order(), NULL, 1.f, true, false); |
- TestRenderPassMaskColorMatrixProgram(); |
+ TestRenderPassMaskColorMatrixProgram(TexCoordPrecisionMedium); |
// RenderPassProgramAA |
render_passes->clear(); |
@@ -1443,7 +1463,7 @@ TEST_F(GLRendererShaderTest, DrawRenderPassQuadShaderPermutations) { |
*renderer_client_.render_passes_in_draw_order()); |
renderer_->DrawFrame( |
renderer_client_.render_passes_in_draw_order(), NULL, 1.f, true, false); |
- TestRenderPassProgramAA(); |
+ TestRenderPassProgramAA(TexCoordPrecisionMedium); |
// RenderPassColorMatrixProgramAA |
render_passes->clear(); |
@@ -1460,7 +1480,7 @@ TEST_F(GLRendererShaderTest, DrawRenderPassQuadShaderPermutations) { |
*renderer_client_.render_passes_in_draw_order()); |
renderer_->DrawFrame( |
renderer_client_.render_passes_in_draw_order(), NULL, 1.f, true, false); |
- TestRenderPassColorMatrixProgramAA(); |
+ TestRenderPassColorMatrixProgramAA(TexCoordPrecisionMedium); |
// RenderPassMaskProgramAA |
render_passes->clear(); |
@@ -1478,7 +1498,7 @@ TEST_F(GLRendererShaderTest, DrawRenderPassQuadShaderPermutations) { |
*renderer_client_.render_passes_in_draw_order()); |
renderer_->DrawFrame( |
renderer_client_.render_passes_in_draw_order(), NULL, 1.f, true, false); |
- TestRenderPassMaskProgramAA(); |
+ TestRenderPassMaskProgramAA(TexCoordPrecisionMedium); |
// RenderPassMaskColorMatrixProgramAA |
render_passes->clear(); |
@@ -1495,7 +1515,7 @@ TEST_F(GLRendererShaderTest, DrawRenderPassQuadShaderPermutations) { |
*renderer_client_.render_passes_in_draw_order()); |
renderer_->DrawFrame( |
renderer_client_.render_passes_in_draw_order(), NULL, 1.f, true, false); |
- TestRenderPassMaskColorMatrixProgramAA(); |
+ TestRenderPassMaskColorMatrixProgramAA(TexCoordPrecisionMedium); |
} |
// At this time, the AA code path cannot be taken if the surface's rect would |
@@ -1547,7 +1567,7 @@ TEST_F(GLRendererShaderTest, DrawRenderPassQuadSkipsAAForClippingTransform) { |
// If use_aa incorrectly ignores clipping, it will use the |
// RenderPassProgramAA shader instead of the RenderPassProgram. |
- TestRenderPassProgram(); |
+ TestRenderPassProgram(TexCoordPrecisionMedium); |
} |
TEST_F(GLRendererShaderTest, DrawSolidColorShader) { |