Add an on-screen overdraw counter
The counter can be enabled by setting the system property called debug.hwui.overdraw to the string "count". If the string is set to "show", overdraw will be highlighted on screen instead of printing out a simple counter. Change-Id: I9a9c970d54bffab43138bbb7682f6c04bc2c40bd
This commit is contained in:
@ -342,6 +342,12 @@ const char* gFS_Main_ApplyColorOp[4] = {
|
||||
};
|
||||
const char* gFS_Main_DebugHighlight =
|
||||
" gl_FragColor.rgb = vec3(0.0, gl_FragColor.a, 0.0);\n";
|
||||
const char* gFS_Main_EmulateStencil =
|
||||
" gl_FragColor.rgba = vec4(1.0 / 255.0, 1.0 / 255.0, 1.0 / 255.0, 1.0);\n"
|
||||
" return;\n"
|
||||
" /*\n";
|
||||
const char* gFS_Footer_EmulateStencil =
|
||||
" */\n";
|
||||
const char* gFS_Footer =
|
||||
"}\n\n";
|
||||
|
||||
@ -603,7 +609,8 @@ String8 ProgramCache::generateFragmentShader(const ProgramDescription& descripti
|
||||
// Optimization for common cases
|
||||
if (!description.isAA && !blendFramebuffer && !description.hasColors &&
|
||||
description.colorOp == ProgramDescription::kColorNone &&
|
||||
!description.isPoint && !description.hasDebugHighlight) {
|
||||
!description.isPoint && !description.hasDebugHighlight &&
|
||||
!description.emulateStencil) {
|
||||
bool fast = false;
|
||||
|
||||
const bool noShader = !description.hasGradient && !description.hasBitmap;
|
||||
@ -683,6 +690,9 @@ String8 ProgramCache::generateFragmentShader(const ProgramDescription& descripti
|
||||
|
||||
// Begin the shader
|
||||
shader.append(gFS_Main); {
|
||||
if (description.emulateStencil) {
|
||||
shader.append(gFS_Main_EmulateStencil);
|
||||
}
|
||||
// Stores the result in fragColor directly
|
||||
if (description.hasTexture || description.hasExternalTexture) {
|
||||
if (description.hasAlpha8Texture) {
|
||||
@ -757,6 +767,9 @@ String8 ProgramCache::generateFragmentShader(const ProgramDescription& descripti
|
||||
shader.append(gFS_Main_DebugHighlight);
|
||||
}
|
||||
}
|
||||
if (description.emulateStencil) {
|
||||
shader.append(gFS_Footer_EmulateStencil);
|
||||
}
|
||||
// End the shader
|
||||
shader.append(gFS_Footer);
|
||||
|
||||
|
Reference in New Issue
Block a user