Index: gpu/command_buffer/build_gles2_cmd_buffer.py |
diff --git a/gpu/command_buffer/build_gles2_cmd_buffer.py b/gpu/command_buffer/build_gles2_cmd_buffer.py |
index 577861a1d0d108368157550d4fb93ee350ed8e86..a2dc137604c6e147fdb910d8b4f4beb630b29a37 100755 |
--- a/gpu/command_buffer/build_gles2_cmd_buffer.py |
+++ b/gpu/command_buffer/build_gles2_cmd_buffer.py |
@@ -1712,6 +1712,10 @@ _FUNCTION_INFO = { |
'decoder_func': 'DoCopyTexSubImage2D', |
'defer_reads': True, |
}, |
+ 'CopyTexSubImage3D': { |
+ 'defer_reads': True, |
+ 'unsafe': True, |
+ }, |
'CreateImageCHROMIUM': { |
'type': 'Manual', |
'cmd_args': |
@@ -7551,21 +7555,29 @@ class SizeArgument(Argument): |
def WriteValidationCode(self, file, func): |
"""overridden from Argument.""" |
- file.Write(" if (%s < 0) {\n" % self.name) |
- file.Write( |
- " LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, \"gl%s\", \"%s < 0\");\n" % |
- (func.original_name, self.name)) |
- file.Write(" return error::kNoError;\n") |
- file.Write(" }\n") |
+ if func.IsUnsafe(): |
+ return |
+ code = """ if (%(var_name)s < 0) { |
+ LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "gl%(func_name)s", "%(var_name)s < 0"); |
+ return error::kNoError; |
+ } |
+""" |
+ file.Write(code % { |
+ "var_name": self.name, |
+ "func_name": func.original_name, |
+ }) |
def WriteClientSideValidationCode(self, file, func): |
"""overridden from Argument.""" |
- file.Write(" if (%s < 0) {\n" % self.name) |
- file.Write( |
- " SetGLError(GL_INVALID_VALUE, \"gl%s\", \"%s < 0\");\n" % |
- (func.original_name, self.name)) |
- file.Write(" return;\n") |
- file.Write(" }\n") |
+ code = """ if (%(var_name)s < 0) { |
+ SetGLError(GL_INVALID_VALUE, "gl%(func_name)s", "%(var_name)s < 0"); |
+ return; |
+ } |
+""" |
+ file.Write(code % { |
+ "var_name": self.name, |
+ "func_name": func.original_name, |
+ }) |
class SizeNotNegativeArgument(SizeArgument): |