Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(583)

Unified Diff: gpu/command_buffer/common/gles2_cmd_utils.cc

Issue 851503003: Update from https://crrev.com/311076 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gpu/command_buffer/common/gles2_cmd_utils.h ('k') | gpu/command_buffer/common/gles2_cmd_utils_autogen.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gpu/command_buffer/common/gles2_cmd_utils.cc
diff --git a/gpu/command_buffer/common/gles2_cmd_utils.cc b/gpu/command_buffer/common/gles2_cmd_utils.cc
index 0c2f493c6e63592321dd41f5167d6ca7834282f5..1d31f7040cbb235de74bc0e000b36b58d03e94c2 100644
--- a/gpu/command_buffer/common/gles2_cmd_utils.cc
+++ b/gpu/command_buffer/common/gles2_cmd_utils.cc
@@ -352,6 +352,10 @@ int ElementsPerGroup(int format, int type) {
case GL_UNSIGNED_SHORT_4_4_4_4:
case GL_UNSIGNED_SHORT_5_5_5_1:
case GL_UNSIGNED_INT_24_8_OES:
+ case GL_UNSIGNED_INT_2_10_10_10_REV:
+ case GL_UNSIGNED_INT_10F_11F_11F_REV:
+ case GL_UNSIGNED_INT_5_9_9_9_REV:
+ case GL_FLOAT_32_UNSIGNED_INT_24_8_REV:
return 1;
default:
break;
@@ -359,12 +363,15 @@ int ElementsPerGroup(int format, int type) {
switch (format) {
case GL_RGB:
+ case GL_RGB_INTEGER:
case GL_SRGB_EXT:
return 3;
case GL_LUMINANCE_ALPHA:
case GL_RG_EXT:
+ case GL_RG_INTEGER:
return 2;
case GL_RGBA:
+ case GL_RGBA_INTEGER:
case GL_BGRA_EXT:
case GL_SRGB_ALPHA_EXT:
return 4;
@@ -377,6 +384,7 @@ int ElementsPerGroup(int format, int type) {
case GL_DEPTH24_STENCIL8_OES:
case GL_DEPTH_STENCIL_OES:
case GL_RED_EXT:
+ case GL_RED_INTEGER:
return 1;
default:
return 0;
@@ -389,6 +397,10 @@ int BytesPerElement(int type) {
case GL_FLOAT:
case GL_UNSIGNED_INT_24_8_OES:
case GL_UNSIGNED_INT:
+ case GL_UNSIGNED_INT_2_10_10_10_REV:
+ case GL_UNSIGNED_INT_10F_11F_11F_REV:
+ case GL_UNSIGNED_INT_5_9_9_9_REV:
+ case GL_FLOAT_32_UNSIGNED_INT_24_8_REV:
return 4;
case GL_HALF_FLOAT_OES:
case GL_UNSIGNED_SHORT:
@@ -427,23 +439,28 @@ bool GLES2Util::ComputeImagePaddedRowSize(
return true;
}
-// Returns the amount of data glTexImage2D or glTexSubImage2D will access.
+// Returns the amount of data glTexImage*D or glTexSubImage*D will access.
bool GLES2Util::ComputeImageDataSizes(
- int width, int height, int format, int type, int unpack_alignment,
- uint32* size, uint32* ret_unpadded_row_size, uint32* ret_padded_row_size) {
+ int width, int height, int depth, int format, int type,
+ int unpack_alignment, uint32* size, uint32* ret_unpadded_row_size,
+ uint32* ret_padded_row_size) {
uint32 bytes_per_group = ComputeImageGroupSize(format, type);
uint32 row_size;
if (!SafeMultiplyUint32(width, bytes_per_group, &row_size)) {
return false;
}
- if (height > 1) {
+ uint32 num_of_rows;
+ if (!SafeMultiplyUint32(height, depth, &num_of_rows)) {
+ return false;
+ }
+ if (num_of_rows > 1) {
uint32 temp;
if (!SafeAddUint32(row_size, unpack_alignment - 1, &temp)) {
return false;
}
uint32 padded_row_size = (temp / unpack_alignment) * unpack_alignment;
uint32 size_of_all_but_last_row;
- if (!SafeMultiplyUint32((height - 1), padded_row_size,
+ if (!SafeMultiplyUint32((num_of_rows - 1), padded_row_size,
&size_of_all_but_last_row)) {
return false;
}
@@ -454,9 +471,7 @@ bool GLES2Util::ComputeImageDataSizes(
*ret_padded_row_size = padded_row_size;
}
} else {
- if (!SafeMultiplyUint32(height, row_size, size)) {
- return false;
- }
+ *size = row_size;
if (ret_padded_row_size) {
*ret_padded_row_size = row_size;
}
« no previous file with comments | « gpu/command_buffer/common/gles2_cmd_utils.h ('k') | gpu/command_buffer/common/gles2_cmd_utils_autogen.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698