No public description
PiperOrigin-RevId: 562724334
This commit is contained in:
		
							parent
							
								
									223544ca4b
								
							
						
					
					
						commit
						be0cde8c2e
					
				| 
						 | 
					@ -768,6 +768,9 @@ cc_library(
 | 
				
			||||||
        ":gl_base",
 | 
					        ":gl_base",
 | 
				
			||||||
        "//mediapipe/framework/port:logging",
 | 
					        "//mediapipe/framework/port:logging",
 | 
				
			||||||
        "@com_google_absl//absl/log:absl_log",
 | 
					        "@com_google_absl//absl/log:absl_log",
 | 
				
			||||||
 | 
					        "@com_google_absl//absl/log:check",
 | 
				
			||||||
 | 
					        "@com_google_absl//absl/strings",
 | 
				
			||||||
 | 
					        "@com_google_absl//absl/strings:str_format",
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -16,7 +16,15 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <cmath>
 | 
				
			||||||
 | 
					#include <string>
 | 
				
			||||||
 | 
					#include <vector>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "absl/log/absl_log.h"
 | 
					#include "absl/log/absl_log.h"
 | 
				
			||||||
 | 
					#include "absl/log/check.h"
 | 
				
			||||||
 | 
					#include "absl/strings/str_format.h"
 | 
				
			||||||
 | 
					#include "absl/strings/str_join.h"
 | 
				
			||||||
 | 
					#include "absl/strings/str_split.h"
 | 
				
			||||||
#include "mediapipe/framework/port/logging.h"
 | 
					#include "mediapipe/framework/port/logging.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if DEBUG
 | 
					#if DEBUG
 | 
				
			||||||
| 
						 | 
					@ -48,9 +56,26 @@
 | 
				
			||||||
  } while (0)
 | 
					  } while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace mediapipe {
 | 
					namespace mediapipe {
 | 
				
			||||||
 | 
					namespace {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
constexpr int kMaxShaderInfoLength = 1024;
 | 
					constexpr int kMaxShaderInfoLength = 1024;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					std::string AddLineNumbers(const GLchar* source) {
 | 
				
			||||||
 | 
					  // Use format "%ni %s", with n=1 for 1..9 lines, n=2 for 10..99 lines etc.
 | 
				
			||||||
 | 
					  // Note that StrFormat needs either a constexpr format or a ParsedFormat.
 | 
				
			||||||
 | 
					  std::vector<std::string> lines = absl::StrSplit(source, '\n');
 | 
				
			||||||
 | 
					  std::string format = absl::StrFormat(
 | 
				
			||||||
 | 
					      "%%%ii %%s", static_cast<int>(ceilf(log10(1 + lines.size()))));
 | 
				
			||||||
 | 
					  auto parsed_format = absl::ParsedFormat<'i', 's'>::New(format);
 | 
				
			||||||
 | 
					  CHECK(parsed_format);
 | 
				
			||||||
 | 
					  for (int n = 0; n < lines.size(); n++) {
 | 
				
			||||||
 | 
					    lines[n] = absl::StrFormat(*parsed_format, n + 1, lines[n]);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  return absl::StrJoin(lines, "\n");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}  // namespace
 | 
				
			||||||
 | 
					
 | 
				
			||||||
GLint GlhCompileShader(GLenum target, const GLchar* source, GLuint* shader,
 | 
					GLint GlhCompileShader(GLenum target, const GLchar* source, GLuint* shader,
 | 
				
			||||||
                       bool force_log_errors) {
 | 
					                       bool force_log_errors) {
 | 
				
			||||||
  *shader = glCreateShader(target);
 | 
					  *shader = glCreateShader(target);
 | 
				
			||||||
| 
						 | 
					@ -72,7 +97,7 @@ GLint GlhCompileShader(GLenum target, const GLchar* source, GLuint* shader,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  glGetShaderiv(*shader, GL_COMPILE_STATUS, &status);
 | 
					  glGetShaderiv(*shader, GL_COMPILE_STATUS, &status);
 | 
				
			||||||
  ABSL_LOG_IF(ERROR, status == GL_FALSE) << "Failed to compile shader:\n"
 | 
					  ABSL_LOG_IF(ERROR, status == GL_FALSE) << "Failed to compile shader:\n"
 | 
				
			||||||
                                         << source;
 | 
					                                         << AddLineNumbers(source);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (status == GL_FALSE) {
 | 
					  if (status == GL_FALSE) {
 | 
				
			||||||
    int length = 0;
 | 
					    int length = 0;
 | 
				
			||||||
| 
						 | 
					@ -145,6 +170,9 @@ GLint GlhCreateProgram(const GLchar* vert_src, const GLchar* frag_src,
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ok = GlhLinkProgram(*program, force_log_errors);
 | 
					    ok = GlhLinkProgram(*program, force_log_errors);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    glDetachShader(*program, frag_shader);
 | 
				
			||||||
 | 
					    glDetachShader(*program, vert_shader);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (vert_shader) glDeleteShader(vert_shader);
 | 
					  if (vert_shader) glDeleteShader(vert_shader);
 | 
				
			||||||
| 
						 | 
					@ -172,7 +200,8 @@ bool CompileShader(GLenum shader_type, const std::string& shader_source,
 | 
				
			||||||
  GLint compiled;
 | 
					  GLint compiled;
 | 
				
			||||||
  glGetShaderiv(*shader, GL_COMPILE_STATUS, &compiled);
 | 
					  glGetShaderiv(*shader, GL_COMPILE_STATUS, &compiled);
 | 
				
			||||||
  if (!compiled) {
 | 
					  if (!compiled) {
 | 
				
			||||||
    VLOG(2) << "Unable to compile shader:\n" << shader_source;
 | 
					    VLOG(2) << "Unable to compile shader:\n"
 | 
				
			||||||
 | 
					            << AddLineNumbers(shader_source_cstr);
 | 
				
			||||||
    GL_ERROR_LOG(Shader, *shader, "compile");
 | 
					    GL_ERROR_LOG(Shader, *shader, "compile");
 | 
				
			||||||
    glDeleteShader(*shader);
 | 
					    glDeleteShader(*shader);
 | 
				
			||||||
    *shader = 0;
 | 
					    *shader = 0;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user