I can verify that the fix works. Thank you!
George > On Jun 26, 2017, at 3:24 PM, Marek Olšák <mar...@gmail.com> wrote: > > I just pushed the fix. > > Marek > > On Mon, Jun 26, 2017 at 10:01 PM, Kyriazis, George > <george.kyria...@intel.com> wrote: >> Marek >> >> Our windows mesa build broke with your checkin: "mesa/glthread: remove >> HAVE_PTHREAD guards”. >> >> Namely: >> >> Compiling src\mesa\main\context.c ... >> context.c >> c:\users\gkyriazi\src\mesa\src\mesa\main\glthread.h(34): fatal error C1083: >> Cannot open include file: 'pthread.h': No such file or directory >> scons: *** [build\windows-x86_64-debug\mesa\main\context.obj] Error 2 >> scons: building terminated because of errors. >> >> Ideas? >> >> George >> >>> On Jun 21, 2017, at 8:02 PM, Marek Olšák <mar...@gmail.com> wrote: >>> >>> From: Marek Olšák <marek.ol...@amd.com> >>> >>> we are switching to util_queue. >>> --- >>> src/mapi/glapi/gen/gl_marshal.py | 5 +---- >>> src/mesa/main/glthread.c | 4 ---- >>> src/mesa/main/glthread.h | 30 ------------------------------ >>> src/mesa/main/marshal.c | 4 ---- >>> src/mesa/main/marshal.h | 27 --------------------------- >>> 5 files changed, 1 insertion(+), 69 deletions(-) >>> >>> diff --git a/src/mapi/glapi/gen/gl_marshal.py >>> b/src/mapi/glapi/gen/gl_marshal.py >>> index f52b9b7..062afe5 100644 >>> --- a/src/mapi/glapi/gen/gl_marshal.py >>> +++ b/src/mapi/glapi/gen/gl_marshal.py >>> @@ -59,34 +59,31 @@ def indent(delta = 3): >>> class PrintCode(gl_XML.gl_print_base): >>> def __init__(self): >>> super(PrintCode, self).__init__() >>> >>> self.name = 'gl_marshal.py' >>> self.license = license.bsd_license_template % ( >>> 'Copyright (C) 2012 Intel Corporation', 'INTEL CORPORATION') >>> >>> def printRealHeader(self): >>> print header >>> - print '#ifdef HAVE_PTHREAD' >>> - print >>> print 'static inline int safe_mul(int a, int b)' >>> print '{' >>> print ' if (a < 0 || b < 0) return -1;' >>> print ' if (a == 0 || b == 0) return 0;' >>> print ' if (a > INT_MAX / b) return -1;' >>> print ' return a * b;' >>> print '}' >>> print >>> >>> def printRealFooter(self): >>> - print >>> - print '#endif' >>> + pass >>> >>> def print_sync_call(self, func): >>> call = 'CALL_{0}(ctx->CurrentServerDispatch, ({1}))'.format( >>> func.name, func.get_called_parameter_string()) >>> if func.return_type == 'void': >>> out('{0};'.format(call)) >>> else: >>> out('return {0};'.format(call)) >>> >>> def print_sync_dispatch(self, func): >>> diff --git a/src/mesa/main/glthread.c b/src/mesa/main/glthread.c >>> index 455b829..e90709c 100644 >>> --- a/src/mesa/main/glthread.c >>> +++ b/src/mesa/main/glthread.c >>> @@ -31,22 +31,20 @@ >>> * quickly logs the GL commands to a buffer to be processed by a worker >>> * thread. >>> */ >>> >>> #include "main/mtypes.h" >>> #include "main/glthread.h" >>> #include "main/marshal.h" >>> #include "main/marshal_generated.h" >>> #include "util/u_thread.h" >>> >>> -#ifdef HAVE_PTHREAD >>> - >>> static void >>> glthread_allocate_batch(struct gl_context *ctx) >>> { >>> struct glthread_state *glthread = ctx->GLThread; >>> >>> /* TODO: handle memory allocation failure. */ >>> glthread->batch = malloc(sizeof(*glthread->batch)); >>> if (!glthread->batch) >>> return; >>> memset(glthread->batch, 0, offsetof(struct glthread_batch, buffer)); >>> @@ -277,12 +275,10 @@ _mesa_glthread_finish(struct gl_context *ctx) >>> _glapi_set_dispatch(dispatch); >>> } >>> } else { >>> _mesa_glthread_flush_batch_locked(ctx); >>> while (glthread->batch_queue || glthread->busy) >>> pthread_cond_wait(&glthread->work_done, &glthread->mutex); >>> } >>> >>> pthread_mutex_unlock(&glthread->mutex); >>> } >>> - >>> -#endif >>> diff --git a/src/mesa/main/glthread.h b/src/mesa/main/glthread.h >>> index 50c1db2..07bed38 100644 >>> --- a/src/mesa/main/glthread.h >>> +++ b/src/mesa/main/glthread.h >>> @@ -22,22 +22,20 @@ >>> */ >>> >>> #ifndef _GLTHREAD_H >>> #define _GLTHREAD_H >>> >>> #include "main/mtypes.h" >>> >>> /* Command size is a number of bytes stored in a short. */ >>> #define MARSHAL_MAX_CMD_SIZE 65535 >>> >>> -#ifdef HAVE_PTHREAD >>> - >>> #include <inttypes.h> >>> #include <stdbool.h> >>> #include <pthread.h> >>> >>> enum marshal_dispatch_cmd_id; >>> >>> struct glthread_state >>> { >>> /** The worker thread that asynchronously processes our GL commands. */ >>> pthread_t thread; >>> @@ -117,39 +115,11 @@ struct glthread_batch >>> uint8_t buffer[MARSHAL_MAX_CMD_SIZE]; >>> }; >>> >>> void _mesa_glthread_init(struct gl_context *ctx); >>> void _mesa_glthread_destroy(struct gl_context *ctx); >>> >>> void _mesa_glthread_restore_dispatch(struct gl_context *ctx); >>> void _mesa_glthread_flush_batch(struct gl_context *ctx); >>> void _mesa_glthread_finish(struct gl_context *ctx); >>> >>> -#else /* HAVE_PTHREAD */ >>> - >>> -static inline void >>> -_mesa_glthread_init(struct gl_context *ctx) >>> -{ >>> -} >>> - >>> -static inline void >>> -_mesa_glthread_destroy(struct gl_context *ctx) >>> -{ >>> -} >>> - >>> -static inline void >>> -_mesa_glthread_finish(struct gl_context *ctx) >>> -{ >>> -} >>> - >>> -static inline void >>> -_mesa_glthread_restore_dispatch(struct gl_context *ctx) >>> -{ >>> -} >>> - >>> -static inline void >>> -_mesa_glthread_flush_batch(struct gl_context *ctx) >>> -{ >>> -} >>> - >>> -#endif /* !HAVE_PTHREAD */ >>> #endif /* _GLTHREAD_H*/ >>> diff --git a/src/mesa/main/marshal.c b/src/mesa/main/marshal.c >>> index ae4efb5..4840f32 100644 >>> --- a/src/mesa/main/marshal.c >>> +++ b/src/mesa/main/marshal.c >>> @@ -26,22 +26,20 @@ >>> * Custom functions for marshalling GL calls from the main thread to a worker >>> * thread when automatic code generation isn't appropriate. >>> */ >>> >>> #include "main/enums.h" >>> #include "main/macros.h" >>> #include "marshal.h" >>> #include "dispatch.h" >>> #include "marshal_generated.h" >>> >>> -#ifdef HAVE_PTHREAD >>> - >>> struct marshal_cmd_Flush >>> { >>> struct marshal_cmd_base cmd_base; >>> }; >>> >>> >>> void >>> _mesa_unmarshal_Flush(struct gl_context *ctx, >>> const struct marshal_cmd_Flush *cmd) >>> { >>> @@ -474,12 +472,10 @@ _mesa_marshal_ClearBufferfv(GLenum buffer, GLint >>> drawbuffer, >>> *variable_data = *value; >>> >>> _mesa_post_marshal_hook(ctx); >>> } else { >>> debug_print_sync("ClearBufferfv"); >>> _mesa_glthread_finish(ctx); >>> CALL_ClearBufferfv(ctx->CurrentServerDispatch, >>> (buffer, drawbuffer, value)); >>> } >>> } >>> - >>> -#endif >>> diff --git a/src/mesa/main/marshal.h b/src/mesa/main/marshal.h >>> index 4842d27..e9ecaf9 100644 >>> --- a/src/mesa/main/marshal.h >>> +++ b/src/mesa/main/marshal.h >>> @@ -40,22 +40,20 @@ struct marshal_cmd_base >>> * Type of command. See enum marshal_dispatch_cmd_id. >>> */ >>> uint16_t cmd_id; >>> >>> /** >>> * Size of command, in multiples of 4 bytes, including cmd_base. >>> */ >>> uint16_t cmd_size; >>> }; >>> >>> -#ifdef HAVE_PTHREAD >>> - >>> static inline void * >>> _mesa_glthread_allocate_command(struct gl_context *ctx, >>> uint16_t cmd_id, >>> size_t size) >>> { >>> struct glthread_state *glthread = ctx->GLThread; >>> struct marshal_cmd_base *cmd_base; >>> const size_t aligned_size = ALIGN(size, 8); >>> >>> if (unlikely(glthread->batch->used + size > MARSHAL_MAX_CMD_SIZE)) >>> @@ -87,45 +85,20 @@ _mesa_glthread_is_non_vbo_vertex_attrib_pointer(const >>> struct gl_context *ctx) >>> * calls (deprecated and removed in GL core), we just disable threading. >>> */ >>> static inline bool >>> _mesa_glthread_is_non_vbo_draw_elements(const struct gl_context *ctx) >>> { >>> struct glthread_state *glthread = ctx->GLThread; >>> >>> return ctx->API != API_OPENGL_CORE && !glthread->element_array_is_vbo; >>> } >>> >>> -#else >>> - >>> -/* FIXME: dummy functions for non PTHREAD platforms */ >>> -static inline void * >>> -_mesa_glthread_allocate_command(struct gl_context *ctx, >>> - uint16_t cmd_id, >>> - size_t size) >>> -{ >>> - return NULL; >>> -} >>> - >>> -static inline bool >>> -_mesa_glthread_is_non_vbo_vertex_attrib_pointer(const struct gl_context >>> *ctx) >>> -{ >>> - return false; >>> -} >>> - >>> -static inline bool >>> -_mesa_glthread_is_non_vbo_draw_elements(const struct gl_context *ctx) >>> -{ >>> - return false; >>> -} >>> - >>> -#endif >>> - >>> #define DEBUG_MARSHAL_PRINT_CALLS 0 >>> >>> /** >>> * This is printed when we have fallen back to a sync. This can happen when >>> * MARSHAL_MAX_CMD_SIZE is exceeded. >>> */ >>> static inline void >>> debug_print_sync_fallback(const char *func) >>> { >>> #if DEBUG_MARSHAL_PRINT_CALLS >>> -- >>> 2.7.4 >>> >>> _______________________________________________ >>> mesa-dev mailing list >>> mesa-dev@lists.freedesktop.org >>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev >> _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev