Index: gpu/command_buffer/service/gles2_cmd_decoder_autogen.h |
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h b/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h |
index 17ce8e3526d2d57a00d5c912da403a38573b23c0..e987f5151b09fc81169dfcafa3b250dbb614728b 100644 |
--- a/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h |
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h |
@@ -3253,6 +3253,55 @@ error::Error GLES2DecoderImpl::HandleProduceTextureCHROMIUMImmediate( |
return error::kNoError; |
} |
+error::Error GLES2DecoderImpl::HandleProduceTextureBindlessCHROMIUM( |
+ uint32_t immediate_data_size, |
+ const gles2::cmds::ProduceTextureBindlessCHROMIUM& c) { |
+ GLuint texture = c.texture; |
+ GLenum target = static_cast<GLenum>(c.target); |
+ uint32_t data_size; |
+ if (!ComputeDataSize(1, sizeof(GLbyte), 64, &data_size)) { |
+ return error::kOutOfBounds; |
+ } |
+ const GLbyte* mailbox = GetSharedMemoryAs<const GLbyte*>( |
+ c.mailbox_shm_id, c.mailbox_shm_offset, data_size); |
+ if (!validators_->texture_bind_target.IsValid(target)) { |
+ LOCAL_SET_GL_ERROR_INVALID_ENUM( |
+ "glProduceTextureBindlessCHROMIUM", target, "target"); |
+ return error::kNoError; |
+ } |
+ if (mailbox == NULL) { |
+ return error::kOutOfBounds; |
+ } |
+ DoProduceTextureBindlessCHROMIUM(texture, target, mailbox); |
+ return error::kNoError; |
+} |
+ |
+error::Error GLES2DecoderImpl::HandleProduceTextureBindlessCHROMIUMImmediate( |
+ uint32_t immediate_data_size, |
+ const gles2::cmds::ProduceTextureBindlessCHROMIUMImmediate& c) { |
+ GLuint texture = c.texture; |
+ GLenum target = static_cast<GLenum>(c.target); |
+ uint32_t data_size; |
+ if (!ComputeDataSize(1, sizeof(GLbyte), 64, &data_size)) { |
+ return error::kOutOfBounds; |
+ } |
+ if (data_size > immediate_data_size) { |
+ return error::kOutOfBounds; |
+ } |
+ const GLbyte* mailbox = |
+ GetImmediateDataAs<const GLbyte*>(c, data_size, immediate_data_size); |
+ if (!validators_->texture_bind_target.IsValid(target)) { |
+ LOCAL_SET_GL_ERROR_INVALID_ENUM( |
+ "glProduceTextureBindlessCHROMIUM", target, "target"); |
+ return error::kNoError; |
+ } |
+ if (mailbox == NULL) { |
+ return error::kOutOfBounds; |
+ } |
+ DoProduceTextureBindlessCHROMIUM(texture, target, mailbox); |
+ return error::kNoError; |
+} |
+ |
error::Error GLES2DecoderImpl::HandleConsumeTextureCHROMIUM( |
uint32_t immediate_data_size, |
const gles2::cmds::ConsumeTextureCHROMIUM& c) { |
@@ -3300,6 +3349,55 @@ error::Error GLES2DecoderImpl::HandleConsumeTextureCHROMIUMImmediate( |
return error::kNoError; |
} |
+error::Error GLES2DecoderImpl::HandleCreateAndConsumeTextureCHROMIUM( |
+ uint32_t immediate_data_size, |
+ const gles2::cmds::CreateAndConsumeTextureCHROMIUM& c) { |
+ GLenum target = static_cast<GLenum>(c.target); |
+ uint32_t data_size; |
+ if (!ComputeDataSize(1, sizeof(GLbyte), 64, &data_size)) { |
+ return error::kOutOfBounds; |
+ } |
+ const GLbyte* mailbox = GetSharedMemoryAs<const GLbyte*>( |
+ c.mailbox_shm_id, c.mailbox_shm_offset, data_size); |
+ if (!validators_->texture_bind_target.IsValid(target)) { |
+ LOCAL_SET_GL_ERROR_INVALID_ENUM( |
+ "glCreateAndConsumeTextureCHROMIUM", target, "target"); |
+ return error::kNoError; |
+ } |
+ if (mailbox == NULL) { |
+ return error::kOutOfBounds; |
+ } |
+ uint32_t client_id = c.client_id; |
+ DoCreateAndConsumeTextureCHROMIUM(target, mailbox, client_id); |
+ return error::kNoError; |
+} |
+ |
+error::Error GLES2DecoderImpl::HandleCreateAndConsumeTextureCHROMIUMImmediate( |
+ uint32_t immediate_data_size, |
+ const gles2::cmds::CreateAndConsumeTextureCHROMIUMImmediate& c) { |
+ GLenum target = static_cast<GLenum>(c.target); |
+ uint32_t data_size; |
+ if (!ComputeDataSize(1, sizeof(GLbyte), 64, &data_size)) { |
+ return error::kOutOfBounds; |
+ } |
+ if (data_size > immediate_data_size) { |
+ return error::kOutOfBounds; |
+ } |
+ const GLbyte* mailbox = |
+ GetImmediateDataAs<const GLbyte*>(c, data_size, immediate_data_size); |
+ if (!validators_->texture_bind_target.IsValid(target)) { |
+ LOCAL_SET_GL_ERROR_INVALID_ENUM( |
+ "glCreateAndConsumeTextureCHROMIUM", target, "target"); |
+ return error::kNoError; |
+ } |
+ if (mailbox == NULL) { |
+ return error::kOutOfBounds; |
+ } |
+ uint32_t client_id = c.client_id; |
+ DoCreateAndConsumeTextureCHROMIUM(target, mailbox, client_id); |
+ return error::kNoError; |
+} |
+ |
error::Error GLES2DecoderImpl::HandleBindTexImage2DCHROMIUM( |
uint32_t immediate_data_size, |
const gles2::cmds::BindTexImage2DCHROMIUM& c) { |