mirror of
https://github.com/servo/servo.git
synced 2025-08-11 16:35:33 +01:00
webgl: Fix up maximum size validation.
We were checking to see if it was too big to be level 0, but we really want to see if it's too big to be the given level. This was the last remaining failure in texture-size-limit.html.
This commit is contained in:
parent
2f68297051
commit
5b852b1cdd
2 changed files with 8 additions and 191 deletions
|
@ -163,18 +163,18 @@ impl<'a> WebGLValidator for CommonTexImage2DValidator<'a> {
|
||||||
return Err(TexImageValidationError::NegativeDimension);
|
return Err(TexImageValidationError::NegativeDimension);
|
||||||
}
|
}
|
||||||
|
|
||||||
// GL_INVALID_VALUE is generated if width or height is greater than
|
|
||||||
// GL_MAX_TEXTURE_SIZE when target is GL_TEXTURE_2D or
|
|
||||||
// GL_MAX_CUBE_MAP_TEXTURE_SIZE when target is not GL_TEXTURE_2D.
|
|
||||||
if self.width as u32 > max_size || self.height as u32 > max_size {
|
|
||||||
self.context.webgl_error(InvalidValue);
|
|
||||||
return Err(TexImageValidationError::TextureTooBig);
|
|
||||||
}
|
|
||||||
|
|
||||||
let width = self.width as u32;
|
let width = self.width as u32;
|
||||||
let height = self.height as u32;
|
let height = self.height as u32;
|
||||||
let level = self.level as u32;
|
let level = self.level as u32;
|
||||||
|
|
||||||
|
// GL_INVALID_VALUE is generated if width or height is greater than
|
||||||
|
// GL_MAX_TEXTURE_SIZE when target is GL_TEXTURE_2D or
|
||||||
|
// GL_MAX_CUBE_MAP_TEXTURE_SIZE when target is not GL_TEXTURE_2D.
|
||||||
|
if width > max_size >> level || height > max_size >> level {
|
||||||
|
self.context.webgl_error(InvalidValue);
|
||||||
|
return Err(TexImageValidationError::TextureTooBig);
|
||||||
|
}
|
||||||
|
|
||||||
// GL_INVALID_VALUE is generated if level is greater than zero and the
|
// GL_INVALID_VALUE is generated if level is greater than zero and the
|
||||||
// texture is not power of two.
|
// texture is not power of two.
|
||||||
if level > 0 && (!width.is_power_of_two() || !height.is_power_of_two()) {
|
if level > 0 && (!width.is_power_of_two() || !height.is_power_of_two()) {
|
||||||
|
|
|
@ -1,183 +0,0 @@
|
||||||
[texture-size-limit.html]
|
|
||||||
type: testharness
|
|
||||||
expected: CRASH
|
|
||||||
[WebGL test #0: Unable to fetch WebGL rendering context for Canvas]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #2: getError expected: INVALID_VALUE. Was NO_ERROR : width or height out of bounds for specified level: should generate INVALID_VALUE: level is 14, size is 4x4.]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #3: getError expected: NO_ERROR. Was INVALID_OPERATION : there should be no error for level: 14 1x1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #4: getError expected: NO_ERROR. Was INVALID_OPERATION : there should be no error for level: 14 1x1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #5: getError expected: INVALID_VALUE. Was NO_ERROR : should generate INVALID_VALUE for level: 14 2x1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #6: getError expected: INVALID_VALUE. Was NO_ERROR : should generate INVALID_VALUE for level: 14 1x2]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #7: getError expected: NO_ERROR. Was INVALID_OPERATION : there should be no error for level: 13 2x1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #8: getError expected: NO_ERROR. Was INVALID_OPERATION : there should be no error for level: 13 1x2]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #9: getError expected: INVALID_VALUE. Was NO_ERROR : should generate INVALID_VALUE for level: 13 4x1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #10: getError expected: INVALID_VALUE. Was NO_ERROR : should generate INVALID_VALUE for level: 13 1x4]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #11: getError expected: NO_ERROR. Was INVALID_OPERATION : there should be no error for level: 12 4x1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #12: getError expected: NO_ERROR. Was INVALID_OPERATION : there should be no error for level: 12 1x4]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #13: getError expected: INVALID_VALUE. Was NO_ERROR : should generate INVALID_VALUE for level: 12 8x1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #14: getError expected: INVALID_VALUE. Was NO_ERROR : should generate INVALID_VALUE for level: 12 1x8]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #15: getError expected: NO_ERROR. Was INVALID_OPERATION : there should be no error for level: 11 8x1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #16: getError expected: NO_ERROR. Was INVALID_OPERATION : there should be no error for level: 11 1x8]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #17: getError expected: INVALID_VALUE. Was NO_ERROR : should generate INVALID_VALUE for level: 11 16x1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #18: getError expected: INVALID_VALUE. Was NO_ERROR : should generate INVALID_VALUE for level: 11 1x16]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #19: getError expected: NO_ERROR. Was INVALID_OPERATION : there should be no error for level: 10 16x1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #20: getError expected: NO_ERROR. Was INVALID_OPERATION : there should be no error for level: 10 1x16]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #21: getError expected: INVALID_VALUE. Was NO_ERROR : should generate INVALID_VALUE for level: 10 32x1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #22: getError expected: INVALID_VALUE. Was NO_ERROR : should generate INVALID_VALUE for level: 10 1x32]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #23: getError expected: NO_ERROR. Was INVALID_OPERATION : there should be no error for level: 9 32x1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #24: getError expected: NO_ERROR. Was INVALID_OPERATION : there should be no error for level: 9 1x32]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #25: getError expected: INVALID_VALUE. Was NO_ERROR : should generate INVALID_VALUE for level: 9 64x1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #26: getError expected: INVALID_VALUE. Was NO_ERROR : should generate INVALID_VALUE for level: 9 1x64]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #27: getError expected: NO_ERROR. Was INVALID_OPERATION : there should be no error for level: 8 64x1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #28: getError expected: NO_ERROR. Was INVALID_OPERATION : there should be no error for level: 8 1x64]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #29: getError expected: INVALID_VALUE. Was NO_ERROR : should generate INVALID_VALUE for level: 8 128x1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #30: getError expected: INVALID_VALUE. Was NO_ERROR : should generate INVALID_VALUE for level: 8 1x128]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #31: getError expected: NO_ERROR. Was INVALID_OPERATION : there should be no error for level: 7 128x1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #32: getError expected: NO_ERROR. Was INVALID_OPERATION : there should be no error for level: 7 1x128]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #33: getError expected: INVALID_VALUE. Was NO_ERROR : should generate INVALID_VALUE for level: 7 256x1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #34: getError expected: INVALID_VALUE. Was NO_ERROR : should generate INVALID_VALUE for level: 7 1x256]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #35: getError expected: NO_ERROR. Was INVALID_OPERATION : there should be no error for level: 6 256x1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #36: getError expected: NO_ERROR. Was INVALID_OPERATION : there should be no error for level: 6 1x256]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #37: getError expected: INVALID_VALUE. Was NO_ERROR : should generate INVALID_VALUE for level: 6 512x1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #38: getError expected: INVALID_VALUE. Was NO_ERROR : should generate INVALID_VALUE for level: 6 1x512]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #39: getError expected: NO_ERROR. Was INVALID_OPERATION : there should be no error for level: 5 512x1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #40: getError expected: NO_ERROR. Was INVALID_OPERATION : there should be no error for level: 5 1x512]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #41: getError expected: INVALID_VALUE. Was NO_ERROR : should generate INVALID_VALUE for level: 5 1024x1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #42: getError expected: INVALID_VALUE. Was NO_ERROR : should generate INVALID_VALUE for level: 5 1x1024]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #43: getError expected: NO_ERROR. Was INVALID_OPERATION : there should be no error for level: 4 1024x1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #44: getError expected: NO_ERROR. Was INVALID_OPERATION : there should be no error for level: 4 1x1024]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #45: getError expected: INVALID_VALUE. Was NO_ERROR : should generate INVALID_VALUE for level: 4 2048x1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #46: getError expected: INVALID_VALUE. Was NO_ERROR : should generate INVALID_VALUE for level: 4 1x2048]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #47: getError expected: NO_ERROR. Was INVALID_OPERATION : there should be no error for level: 3 2048x1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #48: getError expected: NO_ERROR. Was INVALID_OPERATION : there should be no error for level: 3 1x2048]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #49: getError expected: INVALID_VALUE. Was NO_ERROR : should generate INVALID_VALUE for level: 3 4096x1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #50: getError expected: INVALID_VALUE. Was NO_ERROR : should generate INVALID_VALUE for level: 3 1x4096]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #51: getError expected: NO_ERROR. Was INVALID_OPERATION : there should be no error for level: 2 4096x1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #52: getError expected: NO_ERROR. Was INVALID_OPERATION : there should be no error for level: 2 1x4096]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #53: getError expected: INVALID_VALUE. Was NO_ERROR : should generate INVALID_VALUE for level: 2 8192x1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #54: getError expected: INVALID_VALUE. Was NO_ERROR : should generate INVALID_VALUE for level: 2 1x8192]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #55: getError expected: NO_ERROR. Was INVALID_OPERATION : there should be no error for level: 1 8192x1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #56: getError expected: NO_ERROR. Was INVALID_OPERATION : there should be no error for level: 1 1x8192]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #57: getError expected: INVALID_VALUE. Was NO_ERROR : should generate INVALID_VALUE for level: 1 16384x1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #58: getError expected: INVALID_VALUE. Was NO_ERROR : should generate INVALID_VALUE for level: 1 1x16384]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #59: getError expected: NO_ERROR. Was INVALID_OPERATION : there should be no error for level: 0 16384x1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WebGL test #60: getError expected: NO_ERROR. Was INVALID_OPERATION : there should be no error for level: 0 1x16384]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue