Per GLES3 specification, section 4.4 Framebuffer objects page 198, "If
internalformat is a signed or unsigned integer format and samples is greater
than zero, then the error INVALID_OPERATION is generated.".

Fixes 1 dEQP test:
* dEQP-GLES3.functional.negative_api.buffer.renderbuffer_storage_multisample
---
 src/mesa/main/fbobject.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c
index 7e1ff1b..a18f11c 100644
--- a/src/mesa/main/fbobject.c
+++ b/src/mesa/main/fbobject.c
@@ -1814,6 +1814,15 @@ renderbuffer_storage(GLenum target, GLenum 
internalFormat,
       samples = 0;
    }
    else {
+      if (_mesa_is_gles3(ctx) && _mesa_is_enum_format_integer(internalFormat)) 
{
+         /* Per GLES3 specification, section 4.4 Framebuffer objects page 198, 
"If
+          * internalformat is a signed or unsigned integer format and samples 
is greater
+          * than zero, then the error INVALID_OPERATION is generated.".
+          */
+         _mesa_error(ctx, GL_INVALID_OPERATION, "%s(samples)", func);
+         return;
+      }
+
       /* check the sample count;
        * note: driver may choose to use more samples than what's requested
        */
-- 
2.1.3

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to