Implement pass-through pack state params.
Same as for unpack, this allows us to pass through the state reset
code of dEQP without UNIMPLEMENTED errors, while still throwing
asserts if they are set to non-default values.
BUG=angleproject:901,angleproject:512
Change-Id: I0ce0258b0e91eb83c066c241693aaa5c164b2989
Reviewed-on: https://chromium-review.googlesource.com/257131
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libANGLE/renderer/gl/FramebufferGL.cpp b/src/libANGLE/renderer/gl/FramebufferGL.cpp
index dfa3620..2679c99 100644
--- a/src/libANGLE/renderer/gl/FramebufferGL.cpp
+++ b/src/libANGLE/renderer/gl/FramebufferGL.cpp
@@ -9,6 +9,7 @@
#include "libANGLE/renderer/gl/FramebufferGL.h"
#include "common/debug.h"
+#include "libANGLE/State.h"
namespace rx
{
@@ -106,6 +107,14 @@
gl::Error FramebufferGL::readPixels(const gl::State &state, const gl::Rectangle &area, GLenum format, GLenum type, GLvoid *pixels) const
{
+ const gl::PixelPackState &packState = state.getPackState();
+
+ if (packState.rowLength != 0 || packState.skipRows != 0 || packState.skipPixels != 0)
+ {
+ UNIMPLEMENTED();
+ return gl::Error(GL_INVALID_OPERATION, "invalid pixel store parameters in readPixels");
+ }
+
UNIMPLEMENTED();
return gl::Error(GL_INVALID_OPERATION);
}