On 08/10/2015 12:04 PM, Timothy Arceri wrote:
On Mon, 2015-08-10 at 11:06 +0300, Tapani Pälli wrote:
This is done so that following patch can use it to verify dimenstions
for multisample variants of glTex*Storage.

Signed-off-by: Tapani Pälli <tapani.pa...@intel.com>
---
  src/mesa/main/texstorage.c | 22 +++++++++++++++++++++-
  src/mesa/main/texstorage.h |  3 +++
  2 files changed, 24 insertions(+), 1 deletion(-)

diff --git a/src/mesa/main/texstorage.c b/src/mesa/main/texstorage.c
index 4a2cc60..9a321cc 100644
--- a/src/mesa/main/texstorage.c
+++ b/src/mesa/main/texstorage.c
@@ -266,6 +266,26 @@ _mesa_AllocTextureStorage_sw(struct gl_context *ctx,
     return GL_TRUE;
  }

+/**
+ * Texture width, height and depth check shared with the
+ * multisample variants of TexStorage functions.
+ *
+ * From OpenGL 4.5 Core spec, page 260 (section 8.19)
+ *
+ *     "An INVALID_VALUE error is generated if width, height, depth
+ *     or levels are less than 1, for commands with the corresponding
+ *     parameters."
+ *
+ * (referring to TextureStorage* commands, these also match values
+ * specified for OpenGL ES 3.1.)
+ */
+GLboolean
+_mesa_tex_storage_invalid_dim(GLsizei width, GLsizei height, GLsizei depth)
+{
+   if (width < 1 || height < 1 || depth < 1)
+      return true;
+   return false;
+}

Since its only used in one other place I'm not sure if this is an improvement
over just using width < 1 || height < 1 || depth < 1 in the next patch. Or is
this used elsewhere in your branch?

I would personally prefer to have the check only in one place.

It would probably make sense to move it to texstorage.h and inline it.

Yep, I can change this.


  /**
   * Do error checking for calls to glTexStorage1/2/3D().
@@ -287,7 +307,7 @@ tex_storage_error_check(struct gl_context *ctx,
      * order to allow meta functions to use legacy formats. */

     /* size check */
-   if (width < 1 || height < 1 || depth < 1) {
+   if (_mesa_tex_storage_invalid_dim(width, height, depth)) {
        _mesa_error(ctx, GL_INVALID_VALUE,
                    "glTex%sStorage%uD(width, height or depth < 1)",
                    suffix, dims);
diff --git a/src/mesa/main/texstorage.h b/src/mesa/main/texstorage.h
index 6f5495f..62108a8 100644
--- a/src/mesa/main/texstorage.h
+++ b/src/mesa/main/texstorage.h
@@ -98,4 +98,7 @@ _mesa_AllocTextureStorage_sw(struct gl_context *ctx,
                               GLsizei levels, GLsizei width,
                               GLsizei height, GLsizei depth);

+extern GLboolean
+_mesa_tex_storage_invalid_dim(GLsizei width, GLsizei height, GLsizei
depth);
+
  #endif /* TEXSTORAGE_H */
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to