[Mesa-dev] [PATCH] gallium/u_threaded: fixes for MSVC

Marek Olšák maraeo at gmail.com
Mon Jun 5 20:49:04 UTC 2017


Reviewed-by: Marek Olšák <marek.olsak at amd.com>

Marek

On Mon, Jun 5, 2017 at 10:15 PM, Brian Paul <brianp at vmware.com> wrote:
> Replace some static assertions with runtime assertions.  The static
> asserts don't work/fail on MSVC, despite the offsets being multiples
> of 16 (checked with softpipe).
>
> Use correct parameter types for a few gallium context functions.
> ---
>  src/gallium/auxiliary/util/u_threaded_context.c | 16 +++++++++-------
>  1 file changed, 9 insertions(+), 7 deletions(-)
>
> diff --git a/src/gallium/auxiliary/util/u_threaded_context.c b/src/gallium/auxiliary/util/u_threaded_context.c
> index 71211e6..929e186 100644
> --- a/src/gallium/auxiliary/util/u_threaded_context.c
> +++ b/src/gallium/auxiliary/util/u_threaded_context.c
> @@ -428,7 +428,7 @@ tc_call_render_condition(struct pipe_context *pipe, union tc_payload *payload)
>  static void
>  tc_render_condition(struct pipe_context *_pipe,
>                      struct pipe_query *query, boolean condition,
> -                    uint mode)
> +                    enum pipe_render_cond_flag mode)
>  {
>     struct threaded_context *tc = threaded_context(_pipe);
>     struct tc_render_condition *p =
> @@ -597,7 +597,7 @@ tc_call_set_constant_buffer(struct pipe_context *pipe, union tc_payload *payload
>
>  static void
>  tc_set_constant_buffer(struct pipe_context *_pipe,
> -                       uint shader, uint index,
> +                       enum pipe_shader_type shader, uint index,
>                         const struct pipe_constant_buffer *cb)
>  {
>     struct threaded_context *tc = threaded_context(_pipe);
> @@ -845,7 +845,8 @@ tc_call_set_shader_buffers(struct pipe_context *pipe, union tc_payload *payload)
>  }
>
>  static void
> -tc_set_shader_buffers(struct pipe_context *_pipe, unsigned shader,
> +tc_set_shader_buffers(struct pipe_context *_pipe,
> +                      enum pipe_shader_type shader,
>                        unsigned start, unsigned count,
>                        const struct pipe_shader_buffer *buffers)
>  {
> @@ -2172,10 +2173,11 @@ threaded_context_create(struct pipe_context *pipe,
>     memset(tc, 0, sizeof(*tc));
>
>     assert((uintptr_t)tc % 16 == 0);
> -   STATIC_ASSERT(offsetof(struct threaded_context, batch_slots[0]) % 16 == 0);
> -   STATIC_ASSERT(offsetof(struct threaded_context, batch_slots[0].call[0]) % 16 == 0);
> -   STATIC_ASSERT(offsetof(struct threaded_context, batch_slots[0].call[1]) % 16 == 0);
> -   STATIC_ASSERT(offsetof(struct threaded_context, batch_slots[1].call[0]) % 16 == 0);
> +   /* These should be static asserts, but they don't work with MSVC */
> +   assert(offsetof(struct threaded_context, batch_slots) % 16 == 0);
> +   assert(offsetof(struct threaded_context, batch_slots[0].call) % 16 == 0);
> +   assert(offsetof(struct threaded_context, batch_slots[0].call[1]) % 16 == 0);
> +   assert(offsetof(struct threaded_context, batch_slots[1].call) % 16 == 0);
>
>     /* The driver context isn't wrapped, so set its "priv" to NULL. */
>     pipe->priv = NULL;
> --
> 1.9.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list