[Mesa-dev] [PATCH] mesa: Add _mesa_error_no_memory for logging out-of-memory messages

Juha-Pekka Heikkilä juhapekka.heikkila at gmail.com
Fri Mar 14 05:06:09 PDT 2014


I don't know how my make check did not fail earlier but today I needed
this to be added with Ian's patch:

diff --git a/src/glsl/Makefile.am b/src/glsl/Makefile.am
index f8d4ef2..2cd98a5 100644
--- a/src/glsl/Makefile.am
+++ b/src/glsl/Makefile.am
@@ -113,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

I did not see anything that would have changed to affect this from my
earlier rebases thus I am puzzled how make check did work earlier for
me. :/

/Juha-Pekka


On Tue, Mar 4, 2014 at 4:04 PM, Juha-Pekka Heikkilä
<juhapekka.heikkila at gmail.com> wrote:
> On Tue, Mar 4, 2014 at 3:41 PM, Ian Romanick <idr at freedesktop.org> wrote:
>> 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.
>>
>> Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
>> Cc: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>
>> ---
>>  src/glsl/Makefile.am    | 10 +++++++---
>>  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, 52 insertions(+), 3 deletions(-)
>>  create mode 100644 src/glsl/tests/common.c
>>
>> diff --git a/src/glsl/Makefile.am b/src/glsl/Makefile.am
>> index 27e180e..10181da 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 =                       \
>> @@ -136,6 +139,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 ca73a66..8126e1f 100644
>> --- a/src/mesa/main/errors.c
>> +++ b/src/mesa/main/errors.c
>> @@ -1377,6 +1377,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 cd414e6..41a3dca 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.4
>>
>
> Thanks! Behalf of me this is
>
> Reviewed&Tested by <juhapekka.heikkila at gmail.com>


More information about the mesa-dev mailing list