[Mesa-dev] [PATCH 01/15] mesa: Add _mesa_error_no_memory for logging out-of-memory messages
Juha-Pekka Heikkila
juhapekka.heikkila at gmail.com
Sun Apr 27 13:04:56 PDT 2014
From: Ian Romanick <ian.d.romanick at intel.com>
This can be called from locations that don't have a context pointer
handy. This patch also adds enough infrastructure so that the unit
tests for the GLSL compiler and the stand-alone compiler will build and
function.
This patch was originally signed off by Ian Romanick, now v2 fixed
from breaking the build by Juha-Pekka Heikkilä
Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>
Cc: Ian Romanick <ian.d.romanick at intel.com>
---
src/glsl/Makefile.am | 13 +++++++++----
src/glsl/main.cpp | 6 ++++++
src/glsl/tests/common.c | 30 ++++++++++++++++++++++++++++++
src/mesa/main/errors.c | 6 ++++++
src/mesa/main/errors.h | 3 +++
5 files changed, 54 insertions(+), 4 deletions(-)
create mode 100644 src/glsl/tests/common.c
diff --git a/src/glsl/Makefile.am b/src/glsl/Makefile.am
index 534eaa3..2cd98a5 100644
--- a/src/glsl/Makefile.am
+++ b/src/glsl/Makefile.am
@@ -61,7 +61,8 @@ tests_general_ir_test_SOURCES = \
$(GLSL_SRCDIR)/standalone_scaffolding.cpp \
tests/builtin_variable_test.cpp \
tests/invalidate_locations_test.cpp \
- tests/general_ir_test.cpp
+ tests/general_ir_test.cpp \
+ tests/common.c
tests_general_ir_test_CFLAGS = \
$(PTHREAD_CFLAGS)
tests_general_ir_test_LDADD = \
@@ -76,7 +77,8 @@ tests_uniform_initializer_test_SOURCES = \
$(top_srcdir)/src/mesa/program/symbol_table.c \
tests/copy_constant_to_storage_tests.cpp \
tests/set_uniform_initializer_tests.cpp \
- tests/uniform_initializer_utils.cpp
+ tests/uniform_initializer_utils.cpp \
+ tests/common.c
tests_uniform_initializer_test_CFLAGS = \
$(PTHREAD_CFLAGS)
tests_uniform_initializer_test_LDADD = \
@@ -95,7 +97,8 @@ tests_ralloc_test_LDADD = \
tests_sampler_types_test_SOURCES = \
$(top_srcdir)/src/mesa/program/prog_hash_table.c\
$(top_srcdir)/src/mesa/program/symbol_table.c \
- tests/sampler_types_test.cpp
+ tests/sampler_types_test.cpp \
+ tests/common.c
tests_sampler_types_test_CFLAGS = \
$(PTHREAD_CFLAGS)
tests_sampler_types_test_LDADD = \
@@ -110,7 +113,8 @@ libglcpp_la_SOURCES = \
glcpp_glcpp_SOURCES = \
glcpp/glcpp.c \
- $(top_srcdir)/src/mesa/program/prog_hash_table.c
+ $(top_srcdir)/src/mesa/program/prog_hash_table.c \
+ tests/common.c
glcpp_glcpp_LDADD = \
libglcpp.la \
-lm
@@ -138,6 +142,7 @@ glsl_test_SOURCES = \
$(top_srcdir)/src/mesa/program/prog_hash_table.c \
$(top_srcdir)/src/mesa/program/symbol_table.c \
$(GLSL_SRCDIR)/standalone_scaffolding.cpp \
+ tests/common.c \
test.cpp \
test_optpass.cpp
diff --git a/src/glsl/main.cpp b/src/glsl/main.cpp
index 4ae8f09..a4452e0 100644
--- a/src/glsl/main.cpp
+++ b/src/glsl/main.cpp
@@ -40,6 +40,12 @@
static int glsl_version = 330;
+extern "C" void
+_mesa_error_no_memory(const char *caller)
+{
+ fprintf(stderr, "Mesa error: out of memory in %s", caller);
+}
+
static void
initialize_context(struct gl_context *ctx, gl_api api)
{
diff --git a/src/glsl/tests/common.c b/src/glsl/tests/common.c
new file mode 100644
index 0000000..d69f54d
--- /dev/null
+++ b/src/glsl/tests/common.c
@@ -0,0 +1,30 @@
+/*
+ * Copyright © 2014 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+#include <stdio.h>
+#include "main/errors.h"
+
+void
+_mesa_error_no_memory(const char *caller)
+{
+ fprintf(stderr, "Mesa error: out of memory in %s", caller);
+}
diff --git a/src/mesa/main/errors.c b/src/mesa/main/errors.c
index 30a8672..aa0ff50 100644
--- a/src/mesa/main/errors.c
+++ b/src/mesa/main/errors.c
@@ -1414,6 +1414,12 @@ _mesa_error( struct gl_context *ctx, GLenum error, const char *fmtString, ... )
_mesa_record_error(ctx, error);
}
+void
+_mesa_error_no_memory(const char *caller)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_error(ctx, GL_OUT_OF_MEMORY, "out of memory in %s", caller);
+}
/**
* Report debug information. Print error message to stderr via fprintf().
diff --git a/src/mesa/main/errors.h b/src/mesa/main/errors.h
index 06d0b21..b388138 100644
--- a/src/mesa/main/errors.h
+++ b/src/mesa/main/errors.h
@@ -64,6 +64,9 @@ extern void
_mesa_error( struct gl_context *ctx, GLenum error, const char *fmtString, ... ) PRINTFLIKE(3, 4);
extern void
+_mesa_error_no_memory(const char *caller);
+
+extern void
_mesa_debug( const struct gl_context *ctx, const char *fmtString, ... ) PRINTFLIKE(2, 3);
extern void
--
1.8.1.2
More information about the mesa-dev
mailing list