196c5ddc4Srjs/* DO NOT EDIT - This file generated automatically by gl_marshal.py script */
296c5ddc4Srjs
396c5ddc4Srjs/*
496c5ddc4Srjs * Copyright (C) 2012 Intel Corporation
596c5ddc4Srjs * All Rights Reserved.
696c5ddc4Srjs *
796c5ddc4Srjs * Permission is hereby granted, free of charge, to any person obtaining a
896c5ddc4Srjs * copy of this software and associated documentation files (the "Software"),
996c5ddc4Srjs * to deal in the Software without restriction, including without limitation
1096c5ddc4Srjs * the rights to use, copy, modify, merge, publish, distribute, sub license,
1196c5ddc4Srjs * and/or sell copies of the Software, and to permit persons to whom the
1296c5ddc4Srjs * Software is furnished to do so, subject to the following conditions:
1396c5ddc4Srjs *
1496c5ddc4Srjs * The above copyright notice and this permission notice (including the next
1596c5ddc4Srjs * paragraph) shall be included in all copies or substantial portions of the
1696c5ddc4Srjs * Software.
1796c5ddc4Srjs *
1896c5ddc4Srjs * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1996c5ddc4Srjs * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
2096c5ddc4Srjs * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
2196c5ddc4Srjs * INTEL CORPORATION,
2296c5ddc4Srjs * AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
2396c5ddc4Srjs * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
2496c5ddc4Srjs * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2596c5ddc4Srjs * SOFTWARE.
2696c5ddc4Srjs */
2796c5ddc4Srjs
2896c5ddc4Srjs
2996c5ddc4Srjs#include "api_exec.h"
3096c5ddc4Srjs#include "glthread_marshal.h"
3196c5ddc4Srjs#include "bufferobj.h"
3296c5ddc4Srjs#include "dispatch.h"
3396c5ddc4Srjs
3496c5ddc4Srjs#define COMPAT (ctx->API != API_OPENGL_CORE)
3596c5ddc4Srjs
3696c5ddc4SrjsUNUSED static inline int safe_mul(int a, int b)
3796c5ddc4Srjs{
3896c5ddc4Srjs    if (a < 0 || b < 0) return -1;
3996c5ddc4Srjs    if (a == 0 || b == 0) return 0;
4096c5ddc4Srjs    if (a > INT_MAX / b) return -1;
4196c5ddc4Srjs    return a * b;
4296c5ddc4Srjs}
4396c5ddc4Srjs
4496c5ddc4Srjs/* GetNamedProgramStringEXT: marshalled synchronously */
4596c5ddc4Srjsvoid GLAPIENTRY
4696c5ddc4Srjs_mesa_marshal_GetNamedProgramStringEXT(GLuint program, GLenum target, GLenum pname, GLvoid* string)
4796c5ddc4Srjs{
4896c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
4996c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetNamedProgramStringEXT");
5096c5ddc4Srjs   CALL_GetNamedProgramStringEXT(ctx->CurrentServerDispatch, (program, target, pname, string));
5196c5ddc4Srjs}
5296c5ddc4Srjs
5396c5ddc4Srjs
5496c5ddc4Srjs/* NamedProgramLocalParameter4fEXT: marshalled asynchronously */
5596c5ddc4Srjsstruct marshal_cmd_NamedProgramLocalParameter4fEXT
5696c5ddc4Srjs{
5796c5ddc4Srjs   struct marshal_cmd_base cmd_base;
5896c5ddc4Srjs   GLuint program;
5996c5ddc4Srjs   GLenum target;
6096c5ddc4Srjs   GLuint index;
6196c5ddc4Srjs   GLfloat x;
6296c5ddc4Srjs   GLfloat y;
6396c5ddc4Srjs   GLfloat z;
6496c5ddc4Srjs   GLfloat w;
6596c5ddc4Srjs};
6696c5ddc4Srjsuint32_t
6796c5ddc4Srjs_mesa_unmarshal_NamedProgramLocalParameter4fEXT(struct gl_context *ctx, const struct marshal_cmd_NamedProgramLocalParameter4fEXT *cmd, const uint64_t *last)
6896c5ddc4Srjs{
6996c5ddc4Srjs   GLuint program = cmd->program;
7096c5ddc4Srjs   GLenum target = cmd->target;
7196c5ddc4Srjs   GLuint index = cmd->index;
7296c5ddc4Srjs   GLfloat x = cmd->x;
7396c5ddc4Srjs   GLfloat y = cmd->y;
7496c5ddc4Srjs   GLfloat z = cmd->z;
7596c5ddc4Srjs   GLfloat w = cmd->w;
7696c5ddc4Srjs   CALL_NamedProgramLocalParameter4fEXT(ctx->CurrentServerDispatch, (program, target, index, x, y, z, w));
7796c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_NamedProgramLocalParameter4fEXT), 8) / 8);
7896c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
7996c5ddc4Srjs   return cmd_size;
8096c5ddc4Srjs}
8196c5ddc4Srjsvoid GLAPIENTRY
8296c5ddc4Srjs_mesa_marshal_NamedProgramLocalParameter4fEXT(GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
8396c5ddc4Srjs{
8496c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
8596c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_NamedProgramLocalParameter4fEXT);
8696c5ddc4Srjs   struct marshal_cmd_NamedProgramLocalParameter4fEXT *cmd;
8796c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_NamedProgramLocalParameter4fEXT, cmd_size);
8896c5ddc4Srjs   cmd->program = program;
8996c5ddc4Srjs   cmd->target = target;
9096c5ddc4Srjs   cmd->index = index;
9196c5ddc4Srjs   cmd->x = x;
9296c5ddc4Srjs   cmd->y = y;
9396c5ddc4Srjs   cmd->z = z;
9496c5ddc4Srjs   cmd->w = w;
9596c5ddc4Srjs}
9696c5ddc4Srjs
9796c5ddc4Srjs
9896c5ddc4Srjs/* NamedProgramLocalParameter4fvEXT: marshalled asynchronously */
9996c5ddc4Srjsstruct marshal_cmd_NamedProgramLocalParameter4fvEXT
10096c5ddc4Srjs{
10196c5ddc4Srjs   struct marshal_cmd_base cmd_base;
10296c5ddc4Srjs   GLuint program;
10396c5ddc4Srjs   GLenum target;
10496c5ddc4Srjs   GLuint index;
10596c5ddc4Srjs   GLfloat params[4];
10696c5ddc4Srjs};
10796c5ddc4Srjsuint32_t
10896c5ddc4Srjs_mesa_unmarshal_NamedProgramLocalParameter4fvEXT(struct gl_context *ctx, const struct marshal_cmd_NamedProgramLocalParameter4fvEXT *cmd, const uint64_t *last)
10996c5ddc4Srjs{
11096c5ddc4Srjs   GLuint program = cmd->program;
11196c5ddc4Srjs   GLenum target = cmd->target;
11296c5ddc4Srjs   GLuint index = cmd->index;
11396c5ddc4Srjs   const GLfloat * params = cmd->params;
11496c5ddc4Srjs   CALL_NamedProgramLocalParameter4fvEXT(ctx->CurrentServerDispatch, (program, target, index, params));
11596c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_NamedProgramLocalParameter4fvEXT), 8) / 8);
11696c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
11796c5ddc4Srjs   return cmd_size;
11896c5ddc4Srjs}
11996c5ddc4Srjsvoid GLAPIENTRY
12096c5ddc4Srjs_mesa_marshal_NamedProgramLocalParameter4fvEXT(GLuint program, GLenum target, GLuint index, const GLfloat* params)
12196c5ddc4Srjs{
12296c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
12396c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_NamedProgramLocalParameter4fvEXT);
12496c5ddc4Srjs   struct marshal_cmd_NamedProgramLocalParameter4fvEXT *cmd;
12596c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_NamedProgramLocalParameter4fvEXT, cmd_size);
12696c5ddc4Srjs   cmd->program = program;
12796c5ddc4Srjs   cmd->target = target;
12896c5ddc4Srjs   cmd->index = index;
12996c5ddc4Srjs   memcpy(cmd->params, params, 4 * sizeof(GLfloat));
13096c5ddc4Srjs}
13196c5ddc4Srjs
13296c5ddc4Srjs
13396c5ddc4Srjs/* GetNamedProgramLocalParameterfvEXT: marshalled synchronously */
13496c5ddc4Srjsvoid GLAPIENTRY
13596c5ddc4Srjs_mesa_marshal_GetNamedProgramLocalParameterfvEXT(GLuint program, GLenum target, GLuint index, GLfloat* params)
13696c5ddc4Srjs{
13796c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
13896c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetNamedProgramLocalParameterfvEXT");
13996c5ddc4Srjs   CALL_GetNamedProgramLocalParameterfvEXT(ctx->CurrentServerDispatch, (program, target, index, params));
14096c5ddc4Srjs}
14196c5ddc4Srjs
14296c5ddc4Srjs
14396c5ddc4Srjs/* NamedProgramLocalParameter4dEXT: marshalled asynchronously */
14496c5ddc4Srjsstruct marshal_cmd_NamedProgramLocalParameter4dEXT
14596c5ddc4Srjs{
14696c5ddc4Srjs   struct marshal_cmd_base cmd_base;
14796c5ddc4Srjs   GLuint program;
14896c5ddc4Srjs   GLenum target;
14996c5ddc4Srjs   GLuint index;
15096c5ddc4Srjs   GLdouble x;
15196c5ddc4Srjs   GLdouble y;
15296c5ddc4Srjs   GLdouble z;
15396c5ddc4Srjs   GLdouble w;
15496c5ddc4Srjs};
15596c5ddc4Srjsuint32_t
15696c5ddc4Srjs_mesa_unmarshal_NamedProgramLocalParameter4dEXT(struct gl_context *ctx, const struct marshal_cmd_NamedProgramLocalParameter4dEXT *cmd, const uint64_t *last)
15796c5ddc4Srjs{
15896c5ddc4Srjs   GLuint program = cmd->program;
15996c5ddc4Srjs   GLenum target = cmd->target;
16096c5ddc4Srjs   GLuint index = cmd->index;
16196c5ddc4Srjs   GLdouble x = cmd->x;
16296c5ddc4Srjs   GLdouble y = cmd->y;
16396c5ddc4Srjs   GLdouble z = cmd->z;
16496c5ddc4Srjs   GLdouble w = cmd->w;
16596c5ddc4Srjs   CALL_NamedProgramLocalParameter4dEXT(ctx->CurrentServerDispatch, (program, target, index, x, y, z, w));
16696c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_NamedProgramLocalParameter4dEXT), 8) / 8);
16796c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
16896c5ddc4Srjs   return cmd_size;
16996c5ddc4Srjs}
17096c5ddc4Srjsvoid GLAPIENTRY
17196c5ddc4Srjs_mesa_marshal_NamedProgramLocalParameter4dEXT(GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
17296c5ddc4Srjs{
17396c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
17496c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_NamedProgramLocalParameter4dEXT);
17596c5ddc4Srjs   struct marshal_cmd_NamedProgramLocalParameter4dEXT *cmd;
17696c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_NamedProgramLocalParameter4dEXT, cmd_size);
17796c5ddc4Srjs   cmd->program = program;
17896c5ddc4Srjs   cmd->target = target;
17996c5ddc4Srjs   cmd->index = index;
18096c5ddc4Srjs   cmd->x = x;
18196c5ddc4Srjs   cmd->y = y;
18296c5ddc4Srjs   cmd->z = z;
18396c5ddc4Srjs   cmd->w = w;
18496c5ddc4Srjs}
18596c5ddc4Srjs
18696c5ddc4Srjs
18796c5ddc4Srjs/* NamedProgramLocalParameter4dvEXT: marshalled asynchronously */
18896c5ddc4Srjsstruct marshal_cmd_NamedProgramLocalParameter4dvEXT
18996c5ddc4Srjs{
19096c5ddc4Srjs   struct marshal_cmd_base cmd_base;
19196c5ddc4Srjs   GLuint program;
19296c5ddc4Srjs   GLenum target;
19396c5ddc4Srjs   GLuint index;
19496c5ddc4Srjs   GLdouble params[4];
19596c5ddc4Srjs};
19696c5ddc4Srjsuint32_t
19796c5ddc4Srjs_mesa_unmarshal_NamedProgramLocalParameter4dvEXT(struct gl_context *ctx, const struct marshal_cmd_NamedProgramLocalParameter4dvEXT *cmd, const uint64_t *last)
19896c5ddc4Srjs{
19996c5ddc4Srjs   GLuint program = cmd->program;
20096c5ddc4Srjs   GLenum target = cmd->target;
20196c5ddc4Srjs   GLuint index = cmd->index;
20296c5ddc4Srjs   const GLdouble * params = cmd->params;
20396c5ddc4Srjs   CALL_NamedProgramLocalParameter4dvEXT(ctx->CurrentServerDispatch, (program, target, index, params));
20496c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_NamedProgramLocalParameter4dvEXT), 8) / 8);
20596c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
20696c5ddc4Srjs   return cmd_size;
20796c5ddc4Srjs}
20896c5ddc4Srjsvoid GLAPIENTRY
20996c5ddc4Srjs_mesa_marshal_NamedProgramLocalParameter4dvEXT(GLuint program, GLenum target, GLuint index, const GLdouble* params)
21096c5ddc4Srjs{
21196c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
21296c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_NamedProgramLocalParameter4dvEXT);
21396c5ddc4Srjs   struct marshal_cmd_NamedProgramLocalParameter4dvEXT *cmd;
21496c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_NamedProgramLocalParameter4dvEXT, cmd_size);
21596c5ddc4Srjs   cmd->program = program;
21696c5ddc4Srjs   cmd->target = target;
21796c5ddc4Srjs   cmd->index = index;
21896c5ddc4Srjs   memcpy(cmd->params, params, 4 * sizeof(GLdouble));
21996c5ddc4Srjs}
22096c5ddc4Srjs
22196c5ddc4Srjs
22296c5ddc4Srjs/* GetNamedProgramLocalParameterdvEXT: marshalled synchronously */
22396c5ddc4Srjsvoid GLAPIENTRY
22496c5ddc4Srjs_mesa_marshal_GetNamedProgramLocalParameterdvEXT(GLuint program, GLenum target, GLuint index, GLdouble* params)
22596c5ddc4Srjs{
22696c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
22796c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetNamedProgramLocalParameterdvEXT");
22896c5ddc4Srjs   CALL_GetNamedProgramLocalParameterdvEXT(ctx->CurrentServerDispatch, (program, target, index, params));
22996c5ddc4Srjs}
23096c5ddc4Srjs
23196c5ddc4Srjs
23296c5ddc4Srjs/* GetNamedProgramivEXT: marshalled synchronously */
23396c5ddc4Srjsvoid GLAPIENTRY
23496c5ddc4Srjs_mesa_marshal_GetNamedProgramivEXT(GLuint program, GLenum target, GLenum pname, GLint* params)
23596c5ddc4Srjs{
23696c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
23796c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetNamedProgramivEXT");
23896c5ddc4Srjs   CALL_GetNamedProgramivEXT(ctx->CurrentServerDispatch, (program, target, pname, params));
23996c5ddc4Srjs}
24096c5ddc4Srjs
24196c5ddc4Srjs
24296c5ddc4Srjs/* TextureBufferEXT: marshalled asynchronously */
24396c5ddc4Srjsstruct marshal_cmd_TextureBufferEXT
24496c5ddc4Srjs{
24596c5ddc4Srjs   struct marshal_cmd_base cmd_base;
24696c5ddc4Srjs   GLuint texture;
24796c5ddc4Srjs   GLenum target;
24896c5ddc4Srjs   GLenum internalformat;
24996c5ddc4Srjs   GLuint buffer;
25096c5ddc4Srjs};
25196c5ddc4Srjsuint32_t
25296c5ddc4Srjs_mesa_unmarshal_TextureBufferEXT(struct gl_context *ctx, const struct marshal_cmd_TextureBufferEXT *cmd, const uint64_t *last)
25396c5ddc4Srjs{
25496c5ddc4Srjs   GLuint texture = cmd->texture;
25596c5ddc4Srjs   GLenum target = cmd->target;
25696c5ddc4Srjs   GLenum internalformat = cmd->internalformat;
25796c5ddc4Srjs   GLuint buffer = cmd->buffer;
25896c5ddc4Srjs   CALL_TextureBufferEXT(ctx->CurrentServerDispatch, (texture, target, internalformat, buffer));
25996c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TextureBufferEXT), 8) / 8);
26096c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
26196c5ddc4Srjs   return cmd_size;
26296c5ddc4Srjs}
26396c5ddc4Srjsvoid GLAPIENTRY
26496c5ddc4Srjs_mesa_marshal_TextureBufferEXT(GLuint texture, GLenum target, GLenum internalformat, GLuint buffer)
26596c5ddc4Srjs{
26696c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
26796c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_TextureBufferEXT);
26896c5ddc4Srjs   struct marshal_cmd_TextureBufferEXT *cmd;
26996c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TextureBufferEXT, cmd_size);
27096c5ddc4Srjs   cmd->texture = texture;
27196c5ddc4Srjs   cmd->target = target;
27296c5ddc4Srjs   cmd->internalformat = internalformat;
27396c5ddc4Srjs   cmd->buffer = buffer;
27496c5ddc4Srjs}
27596c5ddc4Srjs
27696c5ddc4Srjs
27796c5ddc4Srjs/* MultiTexBufferEXT: marshalled asynchronously */
27896c5ddc4Srjsstruct marshal_cmd_MultiTexBufferEXT
27996c5ddc4Srjs{
28096c5ddc4Srjs   struct marshal_cmd_base cmd_base;
28196c5ddc4Srjs   GLenum texunit;
28296c5ddc4Srjs   GLenum target;
28396c5ddc4Srjs   GLenum internalformat;
28496c5ddc4Srjs   GLuint buffer;
28596c5ddc4Srjs};
28696c5ddc4Srjsuint32_t
28796c5ddc4Srjs_mesa_unmarshal_MultiTexBufferEXT(struct gl_context *ctx, const struct marshal_cmd_MultiTexBufferEXT *cmd, const uint64_t *last)
28896c5ddc4Srjs{
28996c5ddc4Srjs   GLenum texunit = cmd->texunit;
29096c5ddc4Srjs   GLenum target = cmd->target;
29196c5ddc4Srjs   GLenum internalformat = cmd->internalformat;
29296c5ddc4Srjs   GLuint buffer = cmd->buffer;
29396c5ddc4Srjs   CALL_MultiTexBufferEXT(ctx->CurrentServerDispatch, (texunit, target, internalformat, buffer));
29496c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_MultiTexBufferEXT), 8) / 8);
29596c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
29696c5ddc4Srjs   return cmd_size;
29796c5ddc4Srjs}
29896c5ddc4Srjsvoid GLAPIENTRY
29996c5ddc4Srjs_mesa_marshal_MultiTexBufferEXT(GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer)
30096c5ddc4Srjs{
30196c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
30296c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_MultiTexBufferEXT);
30396c5ddc4Srjs   struct marshal_cmd_MultiTexBufferEXT *cmd;
30496c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_MultiTexBufferEXT, cmd_size);
30596c5ddc4Srjs   cmd->texunit = texunit;
30696c5ddc4Srjs   cmd->target = target;
30796c5ddc4Srjs   cmd->internalformat = internalformat;
30896c5ddc4Srjs   cmd->buffer = buffer;
30996c5ddc4Srjs}
31096c5ddc4Srjs
31196c5ddc4Srjs
31296c5ddc4Srjs/* TextureParameterIivEXT: marshalled asynchronously */
31396c5ddc4Srjsstruct marshal_cmd_TextureParameterIivEXT
31496c5ddc4Srjs{
31596c5ddc4Srjs   struct marshal_cmd_base cmd_base;
31696c5ddc4Srjs   GLuint texture;
31796c5ddc4Srjs   GLenum target;
31896c5ddc4Srjs   GLenum pname;
31996c5ddc4Srjs   /* Next safe_mul(_mesa_tex_param_enum_to_count(pname), 1 * sizeof(GLint)) bytes are GLint params[_mesa_tex_param_enum_to_count(pname)] */
32096c5ddc4Srjs};
32196c5ddc4Srjsuint32_t
32296c5ddc4Srjs_mesa_unmarshal_TextureParameterIivEXT(struct gl_context *ctx, const struct marshal_cmd_TextureParameterIivEXT *cmd, const uint64_t *last)
32396c5ddc4Srjs{
32496c5ddc4Srjs   GLuint texture = cmd->texture;
32596c5ddc4Srjs   GLenum target = cmd->target;
32696c5ddc4Srjs   GLenum pname = cmd->pname;
32796c5ddc4Srjs   GLint * params;
32896c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
32996c5ddc4Srjs   params = (GLint *) variable_data;
33096c5ddc4Srjs   CALL_TextureParameterIivEXT(ctx->CurrentServerDispatch, (texture, target, pname, params));
33196c5ddc4Srjs   return cmd->cmd_base.cmd_size;
33296c5ddc4Srjs}
33396c5ddc4Srjsvoid GLAPIENTRY
33496c5ddc4Srjs_mesa_marshal_TextureParameterIivEXT(GLuint texture, GLenum target, GLenum pname, const GLint* params)
33596c5ddc4Srjs{
33696c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
33796c5ddc4Srjs   int params_size = safe_mul(_mesa_tex_param_enum_to_count(pname), 1 * sizeof(GLint));
33896c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_TextureParameterIivEXT) + params_size;
33996c5ddc4Srjs   struct marshal_cmd_TextureParameterIivEXT *cmd;
34096c5ddc4Srjs   if (unlikely(params_size < 0 || (params_size > 0 && !params) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
34196c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "TextureParameterIivEXT");
34296c5ddc4Srjs      CALL_TextureParameterIivEXT(ctx->CurrentServerDispatch, (texture, target, pname, params));
34396c5ddc4Srjs      return;
34496c5ddc4Srjs   }
34596c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TextureParameterIivEXT, cmd_size);
34696c5ddc4Srjs   cmd->texture = texture;
34796c5ddc4Srjs   cmd->target = target;
34896c5ddc4Srjs   cmd->pname = pname;
34996c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
35096c5ddc4Srjs   memcpy(variable_data, params, params_size);
35196c5ddc4Srjs}
35296c5ddc4Srjs
35396c5ddc4Srjs
35496c5ddc4Srjs/* TextureParameterIuivEXT: marshalled asynchronously */
35596c5ddc4Srjsstruct marshal_cmd_TextureParameterIuivEXT
35696c5ddc4Srjs{
35796c5ddc4Srjs   struct marshal_cmd_base cmd_base;
35896c5ddc4Srjs   GLuint texture;
35996c5ddc4Srjs   GLenum target;
36096c5ddc4Srjs   GLenum pname;
36196c5ddc4Srjs   /* Next safe_mul(_mesa_tex_param_enum_to_count(pname), 1 * sizeof(GLuint)) bytes are GLuint params[_mesa_tex_param_enum_to_count(pname)] */
36296c5ddc4Srjs};
36396c5ddc4Srjsuint32_t
36496c5ddc4Srjs_mesa_unmarshal_TextureParameterIuivEXT(struct gl_context *ctx, const struct marshal_cmd_TextureParameterIuivEXT *cmd, const uint64_t *last)
36596c5ddc4Srjs{
36696c5ddc4Srjs   GLuint texture = cmd->texture;
36796c5ddc4Srjs   GLenum target = cmd->target;
36896c5ddc4Srjs   GLenum pname = cmd->pname;
36996c5ddc4Srjs   GLuint * params;
37096c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
37196c5ddc4Srjs   params = (GLuint *) variable_data;
37296c5ddc4Srjs   CALL_TextureParameterIuivEXT(ctx->CurrentServerDispatch, (texture, target, pname, params));
37396c5ddc4Srjs   return cmd->cmd_base.cmd_size;
37496c5ddc4Srjs}
37596c5ddc4Srjsvoid GLAPIENTRY
37696c5ddc4Srjs_mesa_marshal_TextureParameterIuivEXT(GLuint texture, GLenum target, GLenum pname, const GLuint* params)
37796c5ddc4Srjs{
37896c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
37996c5ddc4Srjs   int params_size = safe_mul(_mesa_tex_param_enum_to_count(pname), 1 * sizeof(GLuint));
38096c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_TextureParameterIuivEXT) + params_size;
38196c5ddc4Srjs   struct marshal_cmd_TextureParameterIuivEXT *cmd;
38296c5ddc4Srjs   if (unlikely(params_size < 0 || (params_size > 0 && !params) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
38396c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "TextureParameterIuivEXT");
38496c5ddc4Srjs      CALL_TextureParameterIuivEXT(ctx->CurrentServerDispatch, (texture, target, pname, params));
38596c5ddc4Srjs      return;
38696c5ddc4Srjs   }
38796c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TextureParameterIuivEXT, cmd_size);
38896c5ddc4Srjs   cmd->texture = texture;
38996c5ddc4Srjs   cmd->target = target;
39096c5ddc4Srjs   cmd->pname = pname;
39196c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
39296c5ddc4Srjs   memcpy(variable_data, params, params_size);
39396c5ddc4Srjs}
39496c5ddc4Srjs
39596c5ddc4Srjs
39696c5ddc4Srjs/* GetTextureParameterIivEXT: marshalled synchronously */
39796c5ddc4Srjsvoid GLAPIENTRY
39896c5ddc4Srjs_mesa_marshal_GetTextureParameterIivEXT(GLuint texture, GLenum target, GLenum pname, GLint* params)
39996c5ddc4Srjs{
40096c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
40196c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetTextureParameterIivEXT");
40296c5ddc4Srjs   CALL_GetTextureParameterIivEXT(ctx->CurrentServerDispatch, (texture, target, pname, params));
40396c5ddc4Srjs}
40496c5ddc4Srjs
40596c5ddc4Srjs
40696c5ddc4Srjs/* GetTextureParameterIuivEXT: marshalled synchronously */
40796c5ddc4Srjsvoid GLAPIENTRY
40896c5ddc4Srjs_mesa_marshal_GetTextureParameterIuivEXT(GLuint texture, GLenum target, GLenum pname, GLuint* params)
40996c5ddc4Srjs{
41096c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
41196c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetTextureParameterIuivEXT");
41296c5ddc4Srjs   CALL_GetTextureParameterIuivEXT(ctx->CurrentServerDispatch, (texture, target, pname, params));
41396c5ddc4Srjs}
41496c5ddc4Srjs
41596c5ddc4Srjs
41696c5ddc4Srjs/* MultiTexParameterIivEXT: marshalled asynchronously */
41796c5ddc4Srjsstruct marshal_cmd_MultiTexParameterIivEXT
41896c5ddc4Srjs{
41996c5ddc4Srjs   struct marshal_cmd_base cmd_base;
42096c5ddc4Srjs   GLenum texunit;
42196c5ddc4Srjs   GLenum target;
42296c5ddc4Srjs   GLenum pname;
42396c5ddc4Srjs   /* Next safe_mul(_mesa_tex_param_enum_to_count(pname), 1 * sizeof(GLint)) bytes are GLint params[_mesa_tex_param_enum_to_count(pname)] */
42496c5ddc4Srjs};
42596c5ddc4Srjsuint32_t
42696c5ddc4Srjs_mesa_unmarshal_MultiTexParameterIivEXT(struct gl_context *ctx, const struct marshal_cmd_MultiTexParameterIivEXT *cmd, const uint64_t *last)
42796c5ddc4Srjs{
42896c5ddc4Srjs   GLenum texunit = cmd->texunit;
42996c5ddc4Srjs   GLenum target = cmd->target;
43096c5ddc4Srjs   GLenum pname = cmd->pname;
43196c5ddc4Srjs   GLint * params;
43296c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
43396c5ddc4Srjs   params = (GLint *) variable_data;
43496c5ddc4Srjs   CALL_MultiTexParameterIivEXT(ctx->CurrentServerDispatch, (texunit, target, pname, params));
43596c5ddc4Srjs   return cmd->cmd_base.cmd_size;
43696c5ddc4Srjs}
43796c5ddc4Srjsvoid GLAPIENTRY
43896c5ddc4Srjs_mesa_marshal_MultiTexParameterIivEXT(GLenum texunit, GLenum target, GLenum pname, const GLint* params)
43996c5ddc4Srjs{
44096c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
44196c5ddc4Srjs   int params_size = safe_mul(_mesa_tex_param_enum_to_count(pname), 1 * sizeof(GLint));
44296c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_MultiTexParameterIivEXT) + params_size;
44396c5ddc4Srjs   struct marshal_cmd_MultiTexParameterIivEXT *cmd;
44496c5ddc4Srjs   if (unlikely(params_size < 0 || (params_size > 0 && !params) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
44596c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "MultiTexParameterIivEXT");
44696c5ddc4Srjs      CALL_MultiTexParameterIivEXT(ctx->CurrentServerDispatch, (texunit, target, pname, params));
44796c5ddc4Srjs      return;
44896c5ddc4Srjs   }
44996c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_MultiTexParameterIivEXT, cmd_size);
45096c5ddc4Srjs   cmd->texunit = texunit;
45196c5ddc4Srjs   cmd->target = target;
45296c5ddc4Srjs   cmd->pname = pname;
45396c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
45496c5ddc4Srjs   memcpy(variable_data, params, params_size);
45596c5ddc4Srjs}
45696c5ddc4Srjs
45796c5ddc4Srjs
45896c5ddc4Srjs/* MultiTexParameterIuivEXT: marshalled asynchronously */
45996c5ddc4Srjsstruct marshal_cmd_MultiTexParameterIuivEXT
46096c5ddc4Srjs{
46196c5ddc4Srjs   struct marshal_cmd_base cmd_base;
46296c5ddc4Srjs   GLenum texunit;
46396c5ddc4Srjs   GLenum target;
46496c5ddc4Srjs   GLenum pname;
46596c5ddc4Srjs   /* Next safe_mul(_mesa_tex_param_enum_to_count(pname), 1 * sizeof(GLuint)) bytes are GLuint params[_mesa_tex_param_enum_to_count(pname)] */
46696c5ddc4Srjs};
46796c5ddc4Srjsuint32_t
46896c5ddc4Srjs_mesa_unmarshal_MultiTexParameterIuivEXT(struct gl_context *ctx, const struct marshal_cmd_MultiTexParameterIuivEXT *cmd, const uint64_t *last)
46996c5ddc4Srjs{
47096c5ddc4Srjs   GLenum texunit = cmd->texunit;
47196c5ddc4Srjs   GLenum target = cmd->target;
47296c5ddc4Srjs   GLenum pname = cmd->pname;
47396c5ddc4Srjs   GLuint * params;
47496c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
47596c5ddc4Srjs   params = (GLuint *) variable_data;
47696c5ddc4Srjs   CALL_MultiTexParameterIuivEXT(ctx->CurrentServerDispatch, (texunit, target, pname, params));
47796c5ddc4Srjs   return cmd->cmd_base.cmd_size;
47896c5ddc4Srjs}
47996c5ddc4Srjsvoid GLAPIENTRY
48096c5ddc4Srjs_mesa_marshal_MultiTexParameterIuivEXT(GLenum texunit, GLenum target, GLenum pname, const GLuint* params)
48196c5ddc4Srjs{
48296c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
48396c5ddc4Srjs   int params_size = safe_mul(_mesa_tex_param_enum_to_count(pname), 1 * sizeof(GLuint));
48496c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_MultiTexParameterIuivEXT) + params_size;
48596c5ddc4Srjs   struct marshal_cmd_MultiTexParameterIuivEXT *cmd;
48696c5ddc4Srjs   if (unlikely(params_size < 0 || (params_size > 0 && !params) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
48796c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "MultiTexParameterIuivEXT");
48896c5ddc4Srjs      CALL_MultiTexParameterIuivEXT(ctx->CurrentServerDispatch, (texunit, target, pname, params));
48996c5ddc4Srjs      return;
49096c5ddc4Srjs   }
49196c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_MultiTexParameterIuivEXT, cmd_size);
49296c5ddc4Srjs   cmd->texunit = texunit;
49396c5ddc4Srjs   cmd->target = target;
49496c5ddc4Srjs   cmd->pname = pname;
49596c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
49696c5ddc4Srjs   memcpy(variable_data, params, params_size);
49796c5ddc4Srjs}
49896c5ddc4Srjs
49996c5ddc4Srjs
50096c5ddc4Srjs/* GetMultiTexParameterIivEXT: marshalled synchronously */
50196c5ddc4Srjsvoid GLAPIENTRY
50296c5ddc4Srjs_mesa_marshal_GetMultiTexParameterIivEXT(GLenum texunit, GLenum target, GLenum pname, GLint* params)
50396c5ddc4Srjs{
50496c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
50596c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetMultiTexParameterIivEXT");
50696c5ddc4Srjs   CALL_GetMultiTexParameterIivEXT(ctx->CurrentServerDispatch, (texunit, target, pname, params));
50796c5ddc4Srjs}
50896c5ddc4Srjs
50996c5ddc4Srjs
51096c5ddc4Srjs/* GetMultiTexParameterIuivEXT: marshalled synchronously */
51196c5ddc4Srjsvoid GLAPIENTRY
51296c5ddc4Srjs_mesa_marshal_GetMultiTexParameterIuivEXT(GLenum texunit, GLenum target, GLenum pname, GLuint* params)
51396c5ddc4Srjs{
51496c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
51596c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetMultiTexParameterIuivEXT");
51696c5ddc4Srjs   CALL_GetMultiTexParameterIuivEXT(ctx->CurrentServerDispatch, (texunit, target, pname, params));
51796c5ddc4Srjs}
51896c5ddc4Srjs
51996c5ddc4Srjs
52096c5ddc4Srjs/* NamedProgramLocalParameters4fvEXT: marshalled asynchronously */
52196c5ddc4Srjsstruct marshal_cmd_NamedProgramLocalParameters4fvEXT
52296c5ddc4Srjs{
52396c5ddc4Srjs   struct marshal_cmd_base cmd_base;
52496c5ddc4Srjs   GLuint program;
52596c5ddc4Srjs   GLenum target;
52696c5ddc4Srjs   GLuint index;
52796c5ddc4Srjs   GLsizei count;
52896c5ddc4Srjs   GLfloat params[4];
52996c5ddc4Srjs};
53096c5ddc4Srjsuint32_t
53196c5ddc4Srjs_mesa_unmarshal_NamedProgramLocalParameters4fvEXT(struct gl_context *ctx, const struct marshal_cmd_NamedProgramLocalParameters4fvEXT *cmd, const uint64_t *last)
53296c5ddc4Srjs{
53396c5ddc4Srjs   GLuint program = cmd->program;
53496c5ddc4Srjs   GLenum target = cmd->target;
53596c5ddc4Srjs   GLuint index = cmd->index;
53696c5ddc4Srjs   GLsizei count = cmd->count;
53796c5ddc4Srjs   const GLfloat * params = cmd->params;
53896c5ddc4Srjs   CALL_NamedProgramLocalParameters4fvEXT(ctx->CurrentServerDispatch, (program, target, index, count, params));
53996c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_NamedProgramLocalParameters4fvEXT), 8) / 8);
54096c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
54196c5ddc4Srjs   return cmd_size;
54296c5ddc4Srjs}
54396c5ddc4Srjsvoid GLAPIENTRY
54496c5ddc4Srjs_mesa_marshal_NamedProgramLocalParameters4fvEXT(GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat* params)
54596c5ddc4Srjs{
54696c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
54796c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_NamedProgramLocalParameters4fvEXT);
54896c5ddc4Srjs   struct marshal_cmd_NamedProgramLocalParameters4fvEXT *cmd;
54996c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_NamedProgramLocalParameters4fvEXT, cmd_size);
55096c5ddc4Srjs   cmd->program = program;
55196c5ddc4Srjs   cmd->target = target;
55296c5ddc4Srjs   cmd->index = index;
55396c5ddc4Srjs   cmd->count = count;
55496c5ddc4Srjs   memcpy(cmd->params, params, 4 * sizeof(GLfloat));
55596c5ddc4Srjs}
55696c5ddc4Srjs
55796c5ddc4Srjs
55896c5ddc4Srjs/* BindImageTextureEXT: marshalled asynchronously */
55996c5ddc4Srjsstruct marshal_cmd_BindImageTextureEXT
56096c5ddc4Srjs{
56196c5ddc4Srjs   struct marshal_cmd_base cmd_base;
56296c5ddc4Srjs   GLboolean layered;
56396c5ddc4Srjs   GLuint index;
56496c5ddc4Srjs   GLuint texture;
56596c5ddc4Srjs   GLint level;
56696c5ddc4Srjs   GLint layer;
56796c5ddc4Srjs   GLenum access;
56896c5ddc4Srjs   GLint format;
56996c5ddc4Srjs};
57096c5ddc4Srjsuint32_t
57196c5ddc4Srjs_mesa_unmarshal_BindImageTextureEXT(struct gl_context *ctx, const struct marshal_cmd_BindImageTextureEXT *cmd, const uint64_t *last)
57296c5ddc4Srjs{
57396c5ddc4Srjs   GLuint index = cmd->index;
57496c5ddc4Srjs   GLuint texture = cmd->texture;
57596c5ddc4Srjs   GLint level = cmd->level;
57696c5ddc4Srjs   GLboolean layered = cmd->layered;
57796c5ddc4Srjs   GLint layer = cmd->layer;
57896c5ddc4Srjs   GLenum access = cmd->access;
57996c5ddc4Srjs   GLint format = cmd->format;
58096c5ddc4Srjs   CALL_BindImageTextureEXT(ctx->CurrentServerDispatch, (index, texture, level, layered, layer, access, format));
58196c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_BindImageTextureEXT), 8) / 8);
58296c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
58396c5ddc4Srjs   return cmd_size;
58496c5ddc4Srjs}
58596c5ddc4Srjsvoid GLAPIENTRY
58696c5ddc4Srjs_mesa_marshal_BindImageTextureEXT(GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format)
58796c5ddc4Srjs{
58896c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
58996c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_BindImageTextureEXT);
59096c5ddc4Srjs   struct marshal_cmd_BindImageTextureEXT *cmd;
59196c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_BindImageTextureEXT, cmd_size);
59296c5ddc4Srjs   cmd->index = index;
59396c5ddc4Srjs   cmd->texture = texture;
59496c5ddc4Srjs   cmd->level = level;
59596c5ddc4Srjs   cmd->layered = layered;
59696c5ddc4Srjs   cmd->layer = layer;
59796c5ddc4Srjs   cmd->access = access;
59896c5ddc4Srjs   cmd->format = format;
59996c5ddc4Srjs}
60096c5ddc4Srjs
60196c5ddc4Srjs
60296c5ddc4Srjs/* SubpixelPrecisionBiasNV: marshalled asynchronously */
60396c5ddc4Srjsstruct marshal_cmd_SubpixelPrecisionBiasNV
60496c5ddc4Srjs{
60596c5ddc4Srjs   struct marshal_cmd_base cmd_base;
60696c5ddc4Srjs   GLuint xbits;
60796c5ddc4Srjs   GLuint ybits;
60896c5ddc4Srjs};
60996c5ddc4Srjsuint32_t
61096c5ddc4Srjs_mesa_unmarshal_SubpixelPrecisionBiasNV(struct gl_context *ctx, const struct marshal_cmd_SubpixelPrecisionBiasNV *cmd, const uint64_t *last)
61196c5ddc4Srjs{
61296c5ddc4Srjs   GLuint xbits = cmd->xbits;
61396c5ddc4Srjs   GLuint ybits = cmd->ybits;
61496c5ddc4Srjs   CALL_SubpixelPrecisionBiasNV(ctx->CurrentServerDispatch, (xbits, ybits));
61596c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_SubpixelPrecisionBiasNV), 8) / 8);
61696c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
61796c5ddc4Srjs   return cmd_size;
61896c5ddc4Srjs}
61996c5ddc4Srjsvoid GLAPIENTRY
62096c5ddc4Srjs_mesa_marshal_SubpixelPrecisionBiasNV(GLuint xbits, GLuint ybits)
62196c5ddc4Srjs{
62296c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
62396c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_SubpixelPrecisionBiasNV);
62496c5ddc4Srjs   struct marshal_cmd_SubpixelPrecisionBiasNV *cmd;
62596c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_SubpixelPrecisionBiasNV, cmd_size);
62696c5ddc4Srjs   cmd->xbits = xbits;
62796c5ddc4Srjs   cmd->ybits = ybits;
62896c5ddc4Srjs}
62996c5ddc4Srjs
63096c5ddc4Srjs
63196c5ddc4Srjs/* ConservativeRasterParameterfNV: marshalled asynchronously */
63296c5ddc4Srjsstruct marshal_cmd_ConservativeRasterParameterfNV
63396c5ddc4Srjs{
63496c5ddc4Srjs   struct marshal_cmd_base cmd_base;
63596c5ddc4Srjs   GLenum pname;
63696c5ddc4Srjs   GLfloat param;
63796c5ddc4Srjs};
63896c5ddc4Srjsuint32_t
63996c5ddc4Srjs_mesa_unmarshal_ConservativeRasterParameterfNV(struct gl_context *ctx, const struct marshal_cmd_ConservativeRasterParameterfNV *cmd, const uint64_t *last)
64096c5ddc4Srjs{
64196c5ddc4Srjs   GLenum pname = cmd->pname;
64296c5ddc4Srjs   GLfloat param = cmd->param;
64396c5ddc4Srjs   CALL_ConservativeRasterParameterfNV(ctx->CurrentServerDispatch, (pname, param));
64496c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_ConservativeRasterParameterfNV), 8) / 8);
64596c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
64696c5ddc4Srjs   return cmd_size;
64796c5ddc4Srjs}
64896c5ddc4Srjsvoid GLAPIENTRY
64996c5ddc4Srjs_mesa_marshal_ConservativeRasterParameterfNV(GLenum pname, GLfloat param)
65096c5ddc4Srjs{
65196c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
65296c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_ConservativeRasterParameterfNV);
65396c5ddc4Srjs   struct marshal_cmd_ConservativeRasterParameterfNV *cmd;
65496c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_ConservativeRasterParameterfNV, cmd_size);
65596c5ddc4Srjs   cmd->pname = pname;
65696c5ddc4Srjs   cmd->param = param;
65796c5ddc4Srjs}
65896c5ddc4Srjs
65996c5ddc4Srjs
66096c5ddc4Srjs/* ConservativeRasterParameteriNV: marshalled asynchronously */
66196c5ddc4Srjsstruct marshal_cmd_ConservativeRasterParameteriNV
66296c5ddc4Srjs{
66396c5ddc4Srjs   struct marshal_cmd_base cmd_base;
66496c5ddc4Srjs   GLenum pname;
66596c5ddc4Srjs   GLint param;
66696c5ddc4Srjs};
66796c5ddc4Srjsuint32_t
66896c5ddc4Srjs_mesa_unmarshal_ConservativeRasterParameteriNV(struct gl_context *ctx, const struct marshal_cmd_ConservativeRasterParameteriNV *cmd, const uint64_t *last)
66996c5ddc4Srjs{
67096c5ddc4Srjs   GLenum pname = cmd->pname;
67196c5ddc4Srjs   GLint param = cmd->param;
67296c5ddc4Srjs   CALL_ConservativeRasterParameteriNV(ctx->CurrentServerDispatch, (pname, param));
67396c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_ConservativeRasterParameteriNV), 8) / 8);
67496c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
67596c5ddc4Srjs   return cmd_size;
67696c5ddc4Srjs}
67796c5ddc4Srjsvoid GLAPIENTRY
67896c5ddc4Srjs_mesa_marshal_ConservativeRasterParameteriNV(GLenum pname, GLint param)
67996c5ddc4Srjs{
68096c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
68196c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_ConservativeRasterParameteriNV);
68296c5ddc4Srjs   struct marshal_cmd_ConservativeRasterParameteriNV *cmd;
68396c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_ConservativeRasterParameteriNV, cmd_size);
68496c5ddc4Srjs   cmd->pname = pname;
68596c5ddc4Srjs   cmd->param = param;
68696c5ddc4Srjs}
68796c5ddc4Srjs
68896c5ddc4Srjs
68996c5ddc4Srjs/* GetFirstPerfQueryIdINTEL: marshalled synchronously */
69096c5ddc4Srjsvoid GLAPIENTRY
69196c5ddc4Srjs_mesa_marshal_GetFirstPerfQueryIdINTEL(GLuint * queryId)
69296c5ddc4Srjs{
69396c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
69496c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetFirstPerfQueryIdINTEL");
69596c5ddc4Srjs   CALL_GetFirstPerfQueryIdINTEL(ctx->CurrentServerDispatch, (queryId));
69696c5ddc4Srjs}
69796c5ddc4Srjs
69896c5ddc4Srjs
69996c5ddc4Srjs/* GetNextPerfQueryIdINTEL: marshalled synchronously */
70096c5ddc4Srjsvoid GLAPIENTRY
70196c5ddc4Srjs_mesa_marshal_GetNextPerfQueryIdINTEL(GLuint queryId, GLuint * nextQueryId)
70296c5ddc4Srjs{
70396c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
70496c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetNextPerfQueryIdINTEL");
70596c5ddc4Srjs   CALL_GetNextPerfQueryIdINTEL(ctx->CurrentServerDispatch, (queryId, nextQueryId));
70696c5ddc4Srjs}
70796c5ddc4Srjs
70896c5ddc4Srjs
70996c5ddc4Srjs/* GetPerfQueryIdByNameINTEL: marshalled synchronously */
71096c5ddc4Srjsvoid GLAPIENTRY
71196c5ddc4Srjs_mesa_marshal_GetPerfQueryIdByNameINTEL(GLchar * queryName, GLuint * queryId)
71296c5ddc4Srjs{
71396c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
71496c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetPerfQueryIdByNameINTEL");
71596c5ddc4Srjs   CALL_GetPerfQueryIdByNameINTEL(ctx->CurrentServerDispatch, (queryName, queryId));
71696c5ddc4Srjs}
71796c5ddc4Srjs
71896c5ddc4Srjs
71996c5ddc4Srjs/* GetPerfQueryInfoINTEL: marshalled synchronously */
72096c5ddc4Srjsvoid GLAPIENTRY
72196c5ddc4Srjs_mesa_marshal_GetPerfQueryInfoINTEL(GLuint queryId, GLuint queryNameLength, GLchar * queryName, GLuint * dataSize, GLuint * noCounters, GLuint * noInstances, GLuint * capsMask)
72296c5ddc4Srjs{
72396c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
72496c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetPerfQueryInfoINTEL");
72596c5ddc4Srjs   CALL_GetPerfQueryInfoINTEL(ctx->CurrentServerDispatch, (queryId, queryNameLength, queryName, dataSize, noCounters, noInstances, capsMask));
72696c5ddc4Srjs}
72796c5ddc4Srjs
72896c5ddc4Srjs
72996c5ddc4Srjs/* GetPerfCounterInfoINTEL: marshalled synchronously */
73096c5ddc4Srjsvoid GLAPIENTRY
73196c5ddc4Srjs_mesa_marshal_GetPerfCounterInfoINTEL(GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar * counterName, GLuint counterDescLength, GLchar * counterDesc, GLuint * counterOffset, GLuint * counterDataSize, GLuint * counterTypeEnum, GLuint * counterDataTypeEnum, GLuint64 * rawCounterMaxValue)
73296c5ddc4Srjs{
73396c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
73496c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetPerfCounterInfoINTEL");
73596c5ddc4Srjs   CALL_GetPerfCounterInfoINTEL(ctx->CurrentServerDispatch, (queryId, counterId, counterNameLength, counterName, counterDescLength, counterDesc, counterOffset, counterDataSize, counterTypeEnum, counterDataTypeEnum, rawCounterMaxValue));
73696c5ddc4Srjs}
73796c5ddc4Srjs
73896c5ddc4Srjs
73996c5ddc4Srjs/* CreatePerfQueryINTEL: marshalled synchronously */
74096c5ddc4Srjsvoid GLAPIENTRY
74196c5ddc4Srjs_mesa_marshal_CreatePerfQueryINTEL(GLuint queryId, GLuint * queryHandle)
74296c5ddc4Srjs{
74396c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
74496c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "CreatePerfQueryINTEL");
74596c5ddc4Srjs   CALL_CreatePerfQueryINTEL(ctx->CurrentServerDispatch, (queryId, queryHandle));
74696c5ddc4Srjs}
74796c5ddc4Srjs
74896c5ddc4Srjs
74996c5ddc4Srjs/* DeletePerfQueryINTEL: marshalled asynchronously */
75096c5ddc4Srjsstruct marshal_cmd_DeletePerfQueryINTEL
75196c5ddc4Srjs{
75296c5ddc4Srjs   struct marshal_cmd_base cmd_base;
75396c5ddc4Srjs   GLuint queryHandle;
75496c5ddc4Srjs};
75596c5ddc4Srjsuint32_t
75696c5ddc4Srjs_mesa_unmarshal_DeletePerfQueryINTEL(struct gl_context *ctx, const struct marshal_cmd_DeletePerfQueryINTEL *cmd, const uint64_t *last)
75796c5ddc4Srjs{
75896c5ddc4Srjs   GLuint queryHandle = cmd->queryHandle;
75996c5ddc4Srjs   CALL_DeletePerfQueryINTEL(ctx->CurrentServerDispatch, (queryHandle));
76096c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_DeletePerfQueryINTEL), 8) / 8);
76196c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
76296c5ddc4Srjs   return cmd_size;
76396c5ddc4Srjs}
76496c5ddc4Srjsvoid GLAPIENTRY
76596c5ddc4Srjs_mesa_marshal_DeletePerfQueryINTEL(GLuint queryHandle)
76696c5ddc4Srjs{
76796c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
76896c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_DeletePerfQueryINTEL);
76996c5ddc4Srjs   struct marshal_cmd_DeletePerfQueryINTEL *cmd;
77096c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_DeletePerfQueryINTEL, cmd_size);
77196c5ddc4Srjs   cmd->queryHandle = queryHandle;
77296c5ddc4Srjs}
77396c5ddc4Srjs
77496c5ddc4Srjs
77596c5ddc4Srjs/* BeginPerfQueryINTEL: marshalled asynchronously */
77696c5ddc4Srjsstruct marshal_cmd_BeginPerfQueryINTEL
77796c5ddc4Srjs{
77896c5ddc4Srjs   struct marshal_cmd_base cmd_base;
77996c5ddc4Srjs   GLuint queryHandle;
78096c5ddc4Srjs};
78196c5ddc4Srjsuint32_t
78296c5ddc4Srjs_mesa_unmarshal_BeginPerfQueryINTEL(struct gl_context *ctx, const struct marshal_cmd_BeginPerfQueryINTEL *cmd, const uint64_t *last)
78396c5ddc4Srjs{
78496c5ddc4Srjs   GLuint queryHandle = cmd->queryHandle;
78596c5ddc4Srjs   CALL_BeginPerfQueryINTEL(ctx->CurrentServerDispatch, (queryHandle));
78696c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_BeginPerfQueryINTEL), 8) / 8);
78796c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
78896c5ddc4Srjs   return cmd_size;
78996c5ddc4Srjs}
79096c5ddc4Srjsvoid GLAPIENTRY
79196c5ddc4Srjs_mesa_marshal_BeginPerfQueryINTEL(GLuint queryHandle)
79296c5ddc4Srjs{
79396c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
79496c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_BeginPerfQueryINTEL);
79596c5ddc4Srjs   struct marshal_cmd_BeginPerfQueryINTEL *cmd;
79696c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_BeginPerfQueryINTEL, cmd_size);
79796c5ddc4Srjs   cmd->queryHandle = queryHandle;
79896c5ddc4Srjs}
79996c5ddc4Srjs
80096c5ddc4Srjs
80196c5ddc4Srjs/* EndPerfQueryINTEL: marshalled asynchronously */
80296c5ddc4Srjsstruct marshal_cmd_EndPerfQueryINTEL
80396c5ddc4Srjs{
80496c5ddc4Srjs   struct marshal_cmd_base cmd_base;
80596c5ddc4Srjs   GLuint queryHandle;
80696c5ddc4Srjs};
80796c5ddc4Srjsuint32_t
80896c5ddc4Srjs_mesa_unmarshal_EndPerfQueryINTEL(struct gl_context *ctx, const struct marshal_cmd_EndPerfQueryINTEL *cmd, const uint64_t *last)
80996c5ddc4Srjs{
81096c5ddc4Srjs   GLuint queryHandle = cmd->queryHandle;
81196c5ddc4Srjs   CALL_EndPerfQueryINTEL(ctx->CurrentServerDispatch, (queryHandle));
81296c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_EndPerfQueryINTEL), 8) / 8);
81396c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
81496c5ddc4Srjs   return cmd_size;
81596c5ddc4Srjs}
81696c5ddc4Srjsvoid GLAPIENTRY
81796c5ddc4Srjs_mesa_marshal_EndPerfQueryINTEL(GLuint queryHandle)
81896c5ddc4Srjs{
81996c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
82096c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_EndPerfQueryINTEL);
82196c5ddc4Srjs   struct marshal_cmd_EndPerfQueryINTEL *cmd;
82296c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_EndPerfQueryINTEL, cmd_size);
82396c5ddc4Srjs   cmd->queryHandle = queryHandle;
82496c5ddc4Srjs}
82596c5ddc4Srjs
82696c5ddc4Srjs
82796c5ddc4Srjs/* GetPerfQueryDataINTEL: marshalled synchronously */
82896c5ddc4Srjsvoid GLAPIENTRY
82996c5ddc4Srjs_mesa_marshal_GetPerfQueryDataINTEL(GLuint queryHandle, GLuint flags, GLsizei dataSize, GLvoid * data, GLuint * bytesWritten)
83096c5ddc4Srjs{
83196c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
83296c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetPerfQueryDataINTEL");
83396c5ddc4Srjs   CALL_GetPerfQueryDataINTEL(ctx->CurrentServerDispatch, (queryHandle, flags, dataSize, data, bytesWritten));
83496c5ddc4Srjs}
83596c5ddc4Srjs
83696c5ddc4Srjs
83796c5ddc4Srjs/* AlphaToCoverageDitherControlNV: marshalled asynchronously */
83896c5ddc4Srjsstruct marshal_cmd_AlphaToCoverageDitherControlNV
83996c5ddc4Srjs{
84096c5ddc4Srjs   struct marshal_cmd_base cmd_base;
84196c5ddc4Srjs   GLenum mode;
84296c5ddc4Srjs};
84396c5ddc4Srjsuint32_t
84496c5ddc4Srjs_mesa_unmarshal_AlphaToCoverageDitherControlNV(struct gl_context *ctx, const struct marshal_cmd_AlphaToCoverageDitherControlNV *cmd, const uint64_t *last)
84596c5ddc4Srjs{
84696c5ddc4Srjs   GLenum mode = cmd->mode;
84796c5ddc4Srjs   CALL_AlphaToCoverageDitherControlNV(ctx->CurrentServerDispatch, (mode));
84896c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_AlphaToCoverageDitherControlNV), 8) / 8);
84996c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
85096c5ddc4Srjs   return cmd_size;
85196c5ddc4Srjs}
85296c5ddc4Srjsvoid GLAPIENTRY
85396c5ddc4Srjs_mesa_marshal_AlphaToCoverageDitherControlNV(GLenum mode)
85496c5ddc4Srjs{
85596c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
85696c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_AlphaToCoverageDitherControlNV);
85796c5ddc4Srjs   struct marshal_cmd_AlphaToCoverageDitherControlNV *cmd;
85896c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_AlphaToCoverageDitherControlNV, cmd_size);
85996c5ddc4Srjs   cmd->mode = mode;
86096c5ddc4Srjs}
86196c5ddc4Srjs
86296c5ddc4Srjs
86396c5ddc4Srjs/* PolygonOffsetClampEXT: marshalled asynchronously */
86496c5ddc4Srjsstruct marshal_cmd_PolygonOffsetClampEXT
86596c5ddc4Srjs{
86696c5ddc4Srjs   struct marshal_cmd_base cmd_base;
86796c5ddc4Srjs   GLfloat factor;
86896c5ddc4Srjs   GLfloat units;
86996c5ddc4Srjs   GLfloat clamp;
87096c5ddc4Srjs};
87196c5ddc4Srjsuint32_t
87296c5ddc4Srjs_mesa_unmarshal_PolygonOffsetClampEXT(struct gl_context *ctx, const struct marshal_cmd_PolygonOffsetClampEXT *cmd, const uint64_t *last)
87396c5ddc4Srjs{
87496c5ddc4Srjs   GLfloat factor = cmd->factor;
87596c5ddc4Srjs   GLfloat units = cmd->units;
87696c5ddc4Srjs   GLfloat clamp = cmd->clamp;
87796c5ddc4Srjs   CALL_PolygonOffsetClampEXT(ctx->CurrentServerDispatch, (factor, units, clamp));
87896c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_PolygonOffsetClampEXT), 8) / 8);
87996c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
88096c5ddc4Srjs   return cmd_size;
88196c5ddc4Srjs}
88296c5ddc4Srjsvoid GLAPIENTRY
88396c5ddc4Srjs_mesa_marshal_PolygonOffsetClampEXT(GLfloat factor, GLfloat units, GLfloat clamp)
88496c5ddc4Srjs{
88596c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
88696c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_PolygonOffsetClampEXT);
88796c5ddc4Srjs   struct marshal_cmd_PolygonOffsetClampEXT *cmd;
88896c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_PolygonOffsetClampEXT, cmd_size);
88996c5ddc4Srjs   cmd->factor = factor;
89096c5ddc4Srjs   cmd->units = units;
89196c5ddc4Srjs   cmd->clamp = clamp;
89296c5ddc4Srjs}
89396c5ddc4Srjs
89496c5ddc4Srjs
89596c5ddc4Srjs/* WindowRectanglesEXT: marshalled asynchronously */
89696c5ddc4Srjsstruct marshal_cmd_WindowRectanglesEXT
89796c5ddc4Srjs{
89896c5ddc4Srjs   struct marshal_cmd_base cmd_base;
89996c5ddc4Srjs   GLenum mode;
90096c5ddc4Srjs   GLsizei count;
90196c5ddc4Srjs   /* Next safe_mul((4 * count), 1 * sizeof(GLint)) bytes are GLint box[(4 * count)] */
90296c5ddc4Srjs};
90396c5ddc4Srjsuint32_t
90496c5ddc4Srjs_mesa_unmarshal_WindowRectanglesEXT(struct gl_context *ctx, const struct marshal_cmd_WindowRectanglesEXT *cmd, const uint64_t *last)
90596c5ddc4Srjs{
90696c5ddc4Srjs   GLenum mode = cmd->mode;
90796c5ddc4Srjs   GLsizei count = cmd->count;
90896c5ddc4Srjs   GLint * box;
90996c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
91096c5ddc4Srjs   box = (GLint *) variable_data;
91196c5ddc4Srjs   CALL_WindowRectanglesEXT(ctx->CurrentServerDispatch, (mode, count, box));
91296c5ddc4Srjs   return cmd->cmd_base.cmd_size;
91396c5ddc4Srjs}
91496c5ddc4Srjsvoid GLAPIENTRY
91596c5ddc4Srjs_mesa_marshal_WindowRectanglesEXT(GLenum mode, GLsizei count, const GLint * box)
91696c5ddc4Srjs{
91796c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
91896c5ddc4Srjs   int box_size = safe_mul((4 * count), 1 * sizeof(GLint));
91996c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_WindowRectanglesEXT) + box_size;
92096c5ddc4Srjs   struct marshal_cmd_WindowRectanglesEXT *cmd;
92196c5ddc4Srjs   if (unlikely(box_size < 0 || (box_size > 0 && !box) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
92296c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "WindowRectanglesEXT");
92396c5ddc4Srjs      CALL_WindowRectanglesEXT(ctx->CurrentServerDispatch, (mode, count, box));
92496c5ddc4Srjs      return;
92596c5ddc4Srjs   }
92696c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_WindowRectanglesEXT, cmd_size);
92796c5ddc4Srjs   cmd->mode = mode;
92896c5ddc4Srjs   cmd->count = count;
92996c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
93096c5ddc4Srjs   memcpy(variable_data, box, box_size);
93196c5ddc4Srjs}
93296c5ddc4Srjs
93396c5ddc4Srjs
93496c5ddc4Srjs/* FramebufferFetchBarrierEXT: marshalled asynchronously */
93596c5ddc4Srjsstruct marshal_cmd_FramebufferFetchBarrierEXT
93696c5ddc4Srjs{
93796c5ddc4Srjs   struct marshal_cmd_base cmd_base;
93896c5ddc4Srjs};
93996c5ddc4Srjsuint32_t
94096c5ddc4Srjs_mesa_unmarshal_FramebufferFetchBarrierEXT(struct gl_context *ctx, const struct marshal_cmd_FramebufferFetchBarrierEXT *cmd, const uint64_t *last)
94196c5ddc4Srjs{
94296c5ddc4Srjs   CALL_FramebufferFetchBarrierEXT(ctx->CurrentServerDispatch, ());
94396c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_FramebufferFetchBarrierEXT), 8) / 8);
94496c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
94596c5ddc4Srjs   return cmd_size;
94696c5ddc4Srjs}
94796c5ddc4Srjsvoid GLAPIENTRY
94896c5ddc4Srjs_mesa_marshal_FramebufferFetchBarrierEXT(void)
94996c5ddc4Srjs{
95096c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
95196c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_FramebufferFetchBarrierEXT);
95296c5ddc4Srjs   struct marshal_cmd_FramebufferFetchBarrierEXT *cmd;
95396c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_FramebufferFetchBarrierEXT, cmd_size);
95496c5ddc4Srjs   (void) cmd;
95596c5ddc4Srjs}
95696c5ddc4Srjs
95796c5ddc4Srjs
95896c5ddc4Srjs/* RenderbufferStorageMultisampleAdvancedAMD: marshalled asynchronously */
95996c5ddc4Srjsstruct marshal_cmd_RenderbufferStorageMultisampleAdvancedAMD
96096c5ddc4Srjs{
96196c5ddc4Srjs   struct marshal_cmd_base cmd_base;
96296c5ddc4Srjs   GLenum target;
96396c5ddc4Srjs   GLsizei samples;
96496c5ddc4Srjs   GLsizei storageSamples;
96596c5ddc4Srjs   GLenum internalformat;
96696c5ddc4Srjs   GLsizei width;
96796c5ddc4Srjs   GLsizei height;
96896c5ddc4Srjs};
96996c5ddc4Srjsuint32_t
97096c5ddc4Srjs_mesa_unmarshal_RenderbufferStorageMultisampleAdvancedAMD(struct gl_context *ctx, const struct marshal_cmd_RenderbufferStorageMultisampleAdvancedAMD *cmd, const uint64_t *last)
97196c5ddc4Srjs{
97296c5ddc4Srjs   GLenum target = cmd->target;
97396c5ddc4Srjs   GLsizei samples = cmd->samples;
97496c5ddc4Srjs   GLsizei storageSamples = cmd->storageSamples;
97596c5ddc4Srjs   GLenum internalformat = cmd->internalformat;
97696c5ddc4Srjs   GLsizei width = cmd->width;
97796c5ddc4Srjs   GLsizei height = cmd->height;
97896c5ddc4Srjs   CALL_RenderbufferStorageMultisampleAdvancedAMD(ctx->CurrentServerDispatch, (target, samples, storageSamples, internalformat, width, height));
97996c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_RenderbufferStorageMultisampleAdvancedAMD), 8) / 8);
98096c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
98196c5ddc4Srjs   return cmd_size;
98296c5ddc4Srjs}
98396c5ddc4Srjsvoid GLAPIENTRY
98496c5ddc4Srjs_mesa_marshal_RenderbufferStorageMultisampleAdvancedAMD(GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height)
98596c5ddc4Srjs{
98696c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
98796c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_RenderbufferStorageMultisampleAdvancedAMD);
98896c5ddc4Srjs   struct marshal_cmd_RenderbufferStorageMultisampleAdvancedAMD *cmd;
98996c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_RenderbufferStorageMultisampleAdvancedAMD, cmd_size);
99096c5ddc4Srjs   cmd->target = target;
99196c5ddc4Srjs   cmd->samples = samples;
99296c5ddc4Srjs   cmd->storageSamples = storageSamples;
99396c5ddc4Srjs   cmd->internalformat = internalformat;
99496c5ddc4Srjs   cmd->width = width;
99596c5ddc4Srjs   cmd->height = height;
99696c5ddc4Srjs}
99796c5ddc4Srjs
99896c5ddc4Srjs
99996c5ddc4Srjs/* NamedRenderbufferStorageMultisampleAdvancedAMD: marshalled asynchronously */
100096c5ddc4Srjsstruct marshal_cmd_NamedRenderbufferStorageMultisampleAdvancedAMD
100196c5ddc4Srjs{
100296c5ddc4Srjs   struct marshal_cmd_base cmd_base;
100396c5ddc4Srjs   GLuint renderbuffer;
100496c5ddc4Srjs   GLsizei samples;
100596c5ddc4Srjs   GLsizei storageSamples;
100696c5ddc4Srjs   GLenum internalformat;
100796c5ddc4Srjs   GLsizei width;
100896c5ddc4Srjs   GLsizei height;
100996c5ddc4Srjs};
101096c5ddc4Srjsuint32_t
101196c5ddc4Srjs_mesa_unmarshal_NamedRenderbufferStorageMultisampleAdvancedAMD(struct gl_context *ctx, const struct marshal_cmd_NamedRenderbufferStorageMultisampleAdvancedAMD *cmd, const uint64_t *last)
101296c5ddc4Srjs{
101396c5ddc4Srjs   GLuint renderbuffer = cmd->renderbuffer;
101496c5ddc4Srjs   GLsizei samples = cmd->samples;
101596c5ddc4Srjs   GLsizei storageSamples = cmd->storageSamples;
101696c5ddc4Srjs   GLenum internalformat = cmd->internalformat;
101796c5ddc4Srjs   GLsizei width = cmd->width;
101896c5ddc4Srjs   GLsizei height = cmd->height;
101996c5ddc4Srjs   CALL_NamedRenderbufferStorageMultisampleAdvancedAMD(ctx->CurrentServerDispatch, (renderbuffer, samples, storageSamples, internalformat, width, height));
102096c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_NamedRenderbufferStorageMultisampleAdvancedAMD), 8) / 8);
102196c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
102296c5ddc4Srjs   return cmd_size;
102396c5ddc4Srjs}
102496c5ddc4Srjsvoid GLAPIENTRY
102596c5ddc4Srjs_mesa_marshal_NamedRenderbufferStorageMultisampleAdvancedAMD(GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height)
102696c5ddc4Srjs{
102796c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
102896c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_NamedRenderbufferStorageMultisampleAdvancedAMD);
102996c5ddc4Srjs   struct marshal_cmd_NamedRenderbufferStorageMultisampleAdvancedAMD *cmd;
103096c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_NamedRenderbufferStorageMultisampleAdvancedAMD, cmd_size);
103196c5ddc4Srjs   cmd->renderbuffer = renderbuffer;
103296c5ddc4Srjs   cmd->samples = samples;
103396c5ddc4Srjs   cmd->storageSamples = storageSamples;
103496c5ddc4Srjs   cmd->internalformat = internalformat;
103596c5ddc4Srjs   cmd->width = width;
103696c5ddc4Srjs   cmd->height = height;
103796c5ddc4Srjs}
103896c5ddc4Srjs
103996c5ddc4Srjs
104096c5ddc4Srjs/* StencilFuncSeparateATI: marshalled asynchronously */
104196c5ddc4Srjsstruct marshal_cmd_StencilFuncSeparateATI
104296c5ddc4Srjs{
104396c5ddc4Srjs   struct marshal_cmd_base cmd_base;
104496c5ddc4Srjs   GLenum frontfunc;
104596c5ddc4Srjs   GLenum backfunc;
104696c5ddc4Srjs   GLint ref;
104796c5ddc4Srjs   GLuint mask;
104896c5ddc4Srjs};
104996c5ddc4Srjsuint32_t
105096c5ddc4Srjs_mesa_unmarshal_StencilFuncSeparateATI(struct gl_context *ctx, const struct marshal_cmd_StencilFuncSeparateATI *cmd, const uint64_t *last)
105196c5ddc4Srjs{
105296c5ddc4Srjs   GLenum frontfunc = cmd->frontfunc;
105396c5ddc4Srjs   GLenum backfunc = cmd->backfunc;
105496c5ddc4Srjs   GLint ref = cmd->ref;
105596c5ddc4Srjs   GLuint mask = cmd->mask;
105696c5ddc4Srjs   CALL_StencilFuncSeparateATI(ctx->CurrentServerDispatch, (frontfunc, backfunc, ref, mask));
105796c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_StencilFuncSeparateATI), 8) / 8);
105896c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
105996c5ddc4Srjs   return cmd_size;
106096c5ddc4Srjs}
106196c5ddc4Srjsvoid GLAPIENTRY
106296c5ddc4Srjs_mesa_marshal_StencilFuncSeparateATI(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask)
106396c5ddc4Srjs{
106496c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
106596c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_StencilFuncSeparateATI);
106696c5ddc4Srjs   struct marshal_cmd_StencilFuncSeparateATI *cmd;
106796c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_StencilFuncSeparateATI, cmd_size);
106896c5ddc4Srjs   cmd->frontfunc = frontfunc;
106996c5ddc4Srjs   cmd->backfunc = backfunc;
107096c5ddc4Srjs   cmd->ref = ref;
107196c5ddc4Srjs   cmd->mask = mask;
107296c5ddc4Srjs}
107396c5ddc4Srjs
107496c5ddc4Srjs
107596c5ddc4Srjs/* ProgramEnvParameters4fvEXT: marshalled asynchronously */
107696c5ddc4Srjsstruct marshal_cmd_ProgramEnvParameters4fvEXT
107796c5ddc4Srjs{
107896c5ddc4Srjs   struct marshal_cmd_base cmd_base;
107996c5ddc4Srjs   GLenum target;
108096c5ddc4Srjs   GLuint index;
108196c5ddc4Srjs   GLsizei count;
108296c5ddc4Srjs   GLfloat params[4];
108396c5ddc4Srjs};
108496c5ddc4Srjsuint32_t
108596c5ddc4Srjs_mesa_unmarshal_ProgramEnvParameters4fvEXT(struct gl_context *ctx, const struct marshal_cmd_ProgramEnvParameters4fvEXT *cmd, const uint64_t *last)
108696c5ddc4Srjs{
108796c5ddc4Srjs   GLenum target = cmd->target;
108896c5ddc4Srjs   GLuint index = cmd->index;
108996c5ddc4Srjs   GLsizei count = cmd->count;
109096c5ddc4Srjs   const GLfloat * params = cmd->params;
109196c5ddc4Srjs   CALL_ProgramEnvParameters4fvEXT(ctx->CurrentServerDispatch, (target, index, count, params));
109296c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_ProgramEnvParameters4fvEXT), 8) / 8);
109396c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
109496c5ddc4Srjs   return cmd_size;
109596c5ddc4Srjs}
109696c5ddc4Srjsvoid GLAPIENTRY
109796c5ddc4Srjs_mesa_marshal_ProgramEnvParameters4fvEXT(GLenum target, GLuint index, GLsizei count, const GLfloat * params)
109896c5ddc4Srjs{
109996c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
110096c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_ProgramEnvParameters4fvEXT);
110196c5ddc4Srjs   struct marshal_cmd_ProgramEnvParameters4fvEXT *cmd;
110296c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_ProgramEnvParameters4fvEXT, cmd_size);
110396c5ddc4Srjs   cmd->target = target;
110496c5ddc4Srjs   cmd->index = index;
110596c5ddc4Srjs   cmd->count = count;
110696c5ddc4Srjs   memcpy(cmd->params, params, 4 * sizeof(GLfloat));
110796c5ddc4Srjs}
110896c5ddc4Srjs
110996c5ddc4Srjs
111096c5ddc4Srjs/* ProgramLocalParameters4fvEXT: marshalled asynchronously */
111196c5ddc4Srjsstruct marshal_cmd_ProgramLocalParameters4fvEXT
111296c5ddc4Srjs{
111396c5ddc4Srjs   struct marshal_cmd_base cmd_base;
111496c5ddc4Srjs   GLenum target;
111596c5ddc4Srjs   GLuint index;
111696c5ddc4Srjs   GLsizei count;
111796c5ddc4Srjs   GLfloat params[4];
111896c5ddc4Srjs};
111996c5ddc4Srjsuint32_t
112096c5ddc4Srjs_mesa_unmarshal_ProgramLocalParameters4fvEXT(struct gl_context *ctx, const struct marshal_cmd_ProgramLocalParameters4fvEXT *cmd, const uint64_t *last)
112196c5ddc4Srjs{
112296c5ddc4Srjs   GLenum target = cmd->target;
112396c5ddc4Srjs   GLuint index = cmd->index;
112496c5ddc4Srjs   GLsizei count = cmd->count;
112596c5ddc4Srjs   const GLfloat * params = cmd->params;
112696c5ddc4Srjs   CALL_ProgramLocalParameters4fvEXT(ctx->CurrentServerDispatch, (target, index, count, params));
112796c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_ProgramLocalParameters4fvEXT), 8) / 8);
112896c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
112996c5ddc4Srjs   return cmd_size;
113096c5ddc4Srjs}
113196c5ddc4Srjsvoid GLAPIENTRY
113296c5ddc4Srjs_mesa_marshal_ProgramLocalParameters4fvEXT(GLenum target, GLuint index, GLsizei count, const GLfloat * params)
113396c5ddc4Srjs{
113496c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
113596c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_ProgramLocalParameters4fvEXT);
113696c5ddc4Srjs   struct marshal_cmd_ProgramLocalParameters4fvEXT *cmd;
113796c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_ProgramLocalParameters4fvEXT, cmd_size);
113896c5ddc4Srjs   cmd->target = target;
113996c5ddc4Srjs   cmd->index = index;
114096c5ddc4Srjs   cmd->count = count;
114196c5ddc4Srjs   memcpy(cmd->params, params, 4 * sizeof(GLfloat));
114296c5ddc4Srjs}
114396c5ddc4Srjs
114496c5ddc4Srjs
114596c5ddc4Srjs/* InternalBufferSubDataCopyMESA: marshalled asynchronously */
114696c5ddc4Srjsstruct marshal_cmd_InternalBufferSubDataCopyMESA
114796c5ddc4Srjs{
114896c5ddc4Srjs   struct marshal_cmd_base cmd_base;
114996c5ddc4Srjs   GLboolean named;
115096c5ddc4Srjs   GLboolean ext_dsa;
115196c5ddc4Srjs   GLuint srcOffset;
115296c5ddc4Srjs   GLuint dstTargetOrName;
115396c5ddc4Srjs   GLintptr srcBuffer;
115496c5ddc4Srjs   GLintptr dstOffset;
115596c5ddc4Srjs   GLsizeiptr size;
115696c5ddc4Srjs};
115796c5ddc4Srjsuint32_t
115896c5ddc4Srjs_mesa_unmarshal_InternalBufferSubDataCopyMESA(struct gl_context *ctx, const struct marshal_cmd_InternalBufferSubDataCopyMESA *cmd, const uint64_t *last)
115996c5ddc4Srjs{
116096c5ddc4Srjs   GLintptr srcBuffer = cmd->srcBuffer;
116196c5ddc4Srjs   GLuint srcOffset = cmd->srcOffset;
116296c5ddc4Srjs   GLuint dstTargetOrName = cmd->dstTargetOrName;
116396c5ddc4Srjs   GLintptr dstOffset = cmd->dstOffset;
116496c5ddc4Srjs   GLsizeiptr size = cmd->size;
116596c5ddc4Srjs   GLboolean named = cmd->named;
116696c5ddc4Srjs   GLboolean ext_dsa = cmd->ext_dsa;
116796c5ddc4Srjs   CALL_InternalBufferSubDataCopyMESA(ctx->CurrentServerDispatch, (srcBuffer, srcOffset, dstTargetOrName, dstOffset, size, named, ext_dsa));
116896c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_InternalBufferSubDataCopyMESA), 8) / 8);
116996c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
117096c5ddc4Srjs   return cmd_size;
117196c5ddc4Srjs}
117296c5ddc4Srjsvoid GLAPIENTRY
117396c5ddc4Srjs_mesa_marshal_InternalBufferSubDataCopyMESA(GLintptr srcBuffer, GLuint srcOffset, GLuint dstTargetOrName, GLintptr dstOffset, GLsizeiptr size, GLboolean named, GLboolean ext_dsa)
117496c5ddc4Srjs{
117596c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
117696c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_InternalBufferSubDataCopyMESA);
117796c5ddc4Srjs   struct marshal_cmd_InternalBufferSubDataCopyMESA *cmd;
117896c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_InternalBufferSubDataCopyMESA, cmd_size);
117996c5ddc4Srjs   cmd->srcBuffer = srcBuffer;
118096c5ddc4Srjs   cmd->srcOffset = srcOffset;
118196c5ddc4Srjs   cmd->dstTargetOrName = dstTargetOrName;
118296c5ddc4Srjs   cmd->dstOffset = dstOffset;
118396c5ddc4Srjs   cmd->size = size;
118496c5ddc4Srjs   cmd->named = named;
118596c5ddc4Srjs   cmd->ext_dsa = ext_dsa;
118696c5ddc4Srjs}
118796c5ddc4Srjs
118896c5ddc4Srjs
118996c5ddc4Srjs/* InternalSetError: marshalled asynchronously */
119096c5ddc4Srjsstruct marshal_cmd_InternalSetError
119196c5ddc4Srjs{
119296c5ddc4Srjs   struct marshal_cmd_base cmd_base;
119396c5ddc4Srjs   GLenum error;
119496c5ddc4Srjs};
119596c5ddc4Srjsuint32_t
119696c5ddc4Srjs_mesa_unmarshal_InternalSetError(struct gl_context *ctx, const struct marshal_cmd_InternalSetError *cmd, const uint64_t *last)
119796c5ddc4Srjs{
119896c5ddc4Srjs   GLenum error = cmd->error;
119996c5ddc4Srjs   CALL_InternalSetError(ctx->CurrentServerDispatch, (error));
120096c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_InternalSetError), 8) / 8);
120196c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
120296c5ddc4Srjs   return cmd_size;
120396c5ddc4Srjs}
120496c5ddc4Srjsvoid GLAPIENTRY
120596c5ddc4Srjs_mesa_marshal_InternalSetError(GLenum error)
120696c5ddc4Srjs{
120796c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
120896c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_InternalSetError);
120996c5ddc4Srjs   struct marshal_cmd_InternalSetError *cmd;
121096c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_InternalSetError, cmd_size);
121196c5ddc4Srjs   cmd->error = error;
121296c5ddc4Srjs}
121396c5ddc4Srjs
121496c5ddc4Srjs
121596c5ddc4Srjs/* EGLImageTargetTexture2DOES: marshalled synchronously */
121696c5ddc4Srjsvoid GLAPIENTRY
121796c5ddc4Srjs_mesa_marshal_EGLImageTargetTexture2DOES(GLenum target, GLvoid * writeOffset)
121896c5ddc4Srjs{
121996c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
122096c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "EGLImageTargetTexture2DOES");
122196c5ddc4Srjs   CALL_EGLImageTargetTexture2DOES(ctx->CurrentServerDispatch, (target, writeOffset));
122296c5ddc4Srjs}
122396c5ddc4Srjs
122496c5ddc4Srjs
122596c5ddc4Srjs/* EGLImageTargetRenderbufferStorageOES: marshalled synchronously */
122696c5ddc4Srjsvoid GLAPIENTRY
122796c5ddc4Srjs_mesa_marshal_EGLImageTargetRenderbufferStorageOES(GLenum target, GLvoid * writeOffset)
122896c5ddc4Srjs{
122996c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
123096c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "EGLImageTargetRenderbufferStorageOES");
123196c5ddc4Srjs   CALL_EGLImageTargetRenderbufferStorageOES(ctx->CurrentServerDispatch, (target, writeOffset));
123296c5ddc4Srjs}
123396c5ddc4Srjs
123496c5ddc4Srjs
123596c5ddc4Srjs/* EGLImageTargetTexStorageEXT: marshalled synchronously */
123696c5ddc4Srjsvoid GLAPIENTRY
123796c5ddc4Srjs_mesa_marshal_EGLImageTargetTexStorageEXT(GLenum target, GLvoid * image, const GLint * attrib_list)
123896c5ddc4Srjs{
123996c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
124096c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "EGLImageTargetTexStorageEXT");
124196c5ddc4Srjs   CALL_EGLImageTargetTexStorageEXT(ctx->CurrentServerDispatch, (target, image, attrib_list));
124296c5ddc4Srjs}
124396c5ddc4Srjs
124496c5ddc4Srjs
124596c5ddc4Srjs/* EGLImageTargetTextureStorageEXT: marshalled synchronously */
124696c5ddc4Srjsvoid GLAPIENTRY
124796c5ddc4Srjs_mesa_marshal_EGLImageTargetTextureStorageEXT(GLuint texture, GLvoid * image, const GLint * attrib_list)
124896c5ddc4Srjs{
124996c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
125096c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "EGLImageTargetTextureStorageEXT");
125196c5ddc4Srjs   CALL_EGLImageTargetTextureStorageEXT(ctx->CurrentServerDispatch, (texture, image, attrib_list));
125296c5ddc4Srjs}
125396c5ddc4Srjs
125496c5ddc4Srjs
125596c5ddc4Srjs/* ClearColorIiEXT: marshalled asynchronously */
125696c5ddc4Srjsstruct marshal_cmd_ClearColorIiEXT
125796c5ddc4Srjs{
125896c5ddc4Srjs   struct marshal_cmd_base cmd_base;
125996c5ddc4Srjs   GLint r;
126096c5ddc4Srjs   GLint g;
126196c5ddc4Srjs   GLint b;
126296c5ddc4Srjs   GLint a;
126396c5ddc4Srjs};
126496c5ddc4Srjsuint32_t
126596c5ddc4Srjs_mesa_unmarshal_ClearColorIiEXT(struct gl_context *ctx, const struct marshal_cmd_ClearColorIiEXT *cmd, const uint64_t *last)
126696c5ddc4Srjs{
126796c5ddc4Srjs   GLint r = cmd->r;
126896c5ddc4Srjs   GLint g = cmd->g;
126996c5ddc4Srjs   GLint b = cmd->b;
127096c5ddc4Srjs   GLint a = cmd->a;
127196c5ddc4Srjs   CALL_ClearColorIiEXT(ctx->CurrentServerDispatch, (r, g, b, a));
127296c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_ClearColorIiEXT), 8) / 8);
127396c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
127496c5ddc4Srjs   return cmd_size;
127596c5ddc4Srjs}
127696c5ddc4Srjsvoid GLAPIENTRY
127796c5ddc4Srjs_mesa_marshal_ClearColorIiEXT(GLint r, GLint g, GLint b, GLint a)
127896c5ddc4Srjs{
127996c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
128096c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_ClearColorIiEXT);
128196c5ddc4Srjs   struct marshal_cmd_ClearColorIiEXT *cmd;
128296c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_ClearColorIiEXT, cmd_size);
128396c5ddc4Srjs   cmd->r = r;
128496c5ddc4Srjs   cmd->g = g;
128596c5ddc4Srjs   cmd->b = b;
128696c5ddc4Srjs   cmd->a = a;
128796c5ddc4Srjs}
128896c5ddc4Srjs
128996c5ddc4Srjs
129096c5ddc4Srjs/* ClearColorIuiEXT: marshalled asynchronously */
129196c5ddc4Srjsstruct marshal_cmd_ClearColorIuiEXT
129296c5ddc4Srjs{
129396c5ddc4Srjs   struct marshal_cmd_base cmd_base;
129496c5ddc4Srjs   GLuint r;
129596c5ddc4Srjs   GLuint g;
129696c5ddc4Srjs   GLuint b;
129796c5ddc4Srjs   GLuint a;
129896c5ddc4Srjs};
129996c5ddc4Srjsuint32_t
130096c5ddc4Srjs_mesa_unmarshal_ClearColorIuiEXT(struct gl_context *ctx, const struct marshal_cmd_ClearColorIuiEXT *cmd, const uint64_t *last)
130196c5ddc4Srjs{
130296c5ddc4Srjs   GLuint r = cmd->r;
130396c5ddc4Srjs   GLuint g = cmd->g;
130496c5ddc4Srjs   GLuint b = cmd->b;
130596c5ddc4Srjs   GLuint a = cmd->a;
130696c5ddc4Srjs   CALL_ClearColorIuiEXT(ctx->CurrentServerDispatch, (r, g, b, a));
130796c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_ClearColorIuiEXT), 8) / 8);
130896c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
130996c5ddc4Srjs   return cmd_size;
131096c5ddc4Srjs}
131196c5ddc4Srjsvoid GLAPIENTRY
131296c5ddc4Srjs_mesa_marshal_ClearColorIuiEXT(GLuint r, GLuint g, GLuint b, GLuint a)
131396c5ddc4Srjs{
131496c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
131596c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_ClearColorIuiEXT);
131696c5ddc4Srjs   struct marshal_cmd_ClearColorIuiEXT *cmd;
131796c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_ClearColorIuiEXT, cmd_size);
131896c5ddc4Srjs   cmd->r = r;
131996c5ddc4Srjs   cmd->g = g;
132096c5ddc4Srjs   cmd->b = b;
132196c5ddc4Srjs   cmd->a = a;
132296c5ddc4Srjs}
132396c5ddc4Srjs
132496c5ddc4Srjs
132596c5ddc4Srjs/* TexParameterIiv: marshalled asynchronously */
132696c5ddc4Srjsstruct marshal_cmd_TexParameterIiv
132796c5ddc4Srjs{
132896c5ddc4Srjs   struct marshal_cmd_base cmd_base;
132996c5ddc4Srjs   GLenum target;
133096c5ddc4Srjs   GLenum pname;
133196c5ddc4Srjs   /* Next safe_mul(_mesa_tex_param_enum_to_count(pname), 1 * sizeof(GLint)) bytes are GLint params[_mesa_tex_param_enum_to_count(pname)] */
133296c5ddc4Srjs};
133396c5ddc4Srjsuint32_t
133496c5ddc4Srjs_mesa_unmarshal_TexParameterIiv(struct gl_context *ctx, const struct marshal_cmd_TexParameterIiv *cmd, const uint64_t *last)
133596c5ddc4Srjs{
133696c5ddc4Srjs   GLenum target = cmd->target;
133796c5ddc4Srjs   GLenum pname = cmd->pname;
133896c5ddc4Srjs   GLint * params;
133996c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
134096c5ddc4Srjs   params = (GLint *) variable_data;
134196c5ddc4Srjs   CALL_TexParameterIiv(ctx->CurrentServerDispatch, (target, pname, params));
134296c5ddc4Srjs   return cmd->cmd_base.cmd_size;
134396c5ddc4Srjs}
134496c5ddc4Srjsvoid GLAPIENTRY
134596c5ddc4Srjs_mesa_marshal_TexParameterIiv(GLenum target, GLenum pname, const GLint * params)
134696c5ddc4Srjs{
134796c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
134896c5ddc4Srjs   int params_size = safe_mul(_mesa_tex_param_enum_to_count(pname), 1 * sizeof(GLint));
134996c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_TexParameterIiv) + params_size;
135096c5ddc4Srjs   struct marshal_cmd_TexParameterIiv *cmd;
135196c5ddc4Srjs   if (unlikely(params_size < 0 || (params_size > 0 && !params) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
135296c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "TexParameterIiv");
135396c5ddc4Srjs      CALL_TexParameterIiv(ctx->CurrentServerDispatch, (target, pname, params));
135496c5ddc4Srjs      return;
135596c5ddc4Srjs   }
135696c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexParameterIiv, cmd_size);
135796c5ddc4Srjs   cmd->target = target;
135896c5ddc4Srjs   cmd->pname = pname;
135996c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
136096c5ddc4Srjs   memcpy(variable_data, params, params_size);
136196c5ddc4Srjs}
136296c5ddc4Srjs
136396c5ddc4Srjs
136496c5ddc4Srjs/* TexParameterIuiv: marshalled asynchronously */
136596c5ddc4Srjsstruct marshal_cmd_TexParameterIuiv
136696c5ddc4Srjs{
136796c5ddc4Srjs   struct marshal_cmd_base cmd_base;
136896c5ddc4Srjs   GLenum target;
136996c5ddc4Srjs   GLenum pname;
137096c5ddc4Srjs   /* Next safe_mul(_mesa_tex_param_enum_to_count(pname), 1 * sizeof(GLuint)) bytes are GLuint params[_mesa_tex_param_enum_to_count(pname)] */
137196c5ddc4Srjs};
137296c5ddc4Srjsuint32_t
137396c5ddc4Srjs_mesa_unmarshal_TexParameterIuiv(struct gl_context *ctx, const struct marshal_cmd_TexParameterIuiv *cmd, const uint64_t *last)
137496c5ddc4Srjs{
137596c5ddc4Srjs   GLenum target = cmd->target;
137696c5ddc4Srjs   GLenum pname = cmd->pname;
137796c5ddc4Srjs   GLuint * params;
137896c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
137996c5ddc4Srjs   params = (GLuint *) variable_data;
138096c5ddc4Srjs   CALL_TexParameterIuiv(ctx->CurrentServerDispatch, (target, pname, params));
138196c5ddc4Srjs   return cmd->cmd_base.cmd_size;
138296c5ddc4Srjs}
138396c5ddc4Srjsvoid GLAPIENTRY
138496c5ddc4Srjs_mesa_marshal_TexParameterIuiv(GLenum target, GLenum pname, const GLuint * params)
138596c5ddc4Srjs{
138696c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
138796c5ddc4Srjs   int params_size = safe_mul(_mesa_tex_param_enum_to_count(pname), 1 * sizeof(GLuint));
138896c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_TexParameterIuiv) + params_size;
138996c5ddc4Srjs   struct marshal_cmd_TexParameterIuiv *cmd;
139096c5ddc4Srjs   if (unlikely(params_size < 0 || (params_size > 0 && !params) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
139196c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "TexParameterIuiv");
139296c5ddc4Srjs      CALL_TexParameterIuiv(ctx->CurrentServerDispatch, (target, pname, params));
139396c5ddc4Srjs      return;
139496c5ddc4Srjs   }
139596c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexParameterIuiv, cmd_size);
139696c5ddc4Srjs   cmd->target = target;
139796c5ddc4Srjs   cmd->pname = pname;
139896c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
139996c5ddc4Srjs   memcpy(variable_data, params, params_size);
140096c5ddc4Srjs}
140196c5ddc4Srjs
140296c5ddc4Srjs
140396c5ddc4Srjs/* GetTexParameterIiv: marshalled synchronously */
140496c5ddc4Srjsvoid GLAPIENTRY
140596c5ddc4Srjs_mesa_marshal_GetTexParameterIiv(GLenum target, GLenum pname, GLint * params)
140696c5ddc4Srjs{
140796c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
140896c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetTexParameterIiv");
140996c5ddc4Srjs   CALL_GetTexParameterIiv(ctx->CurrentServerDispatch, (target, pname, params));
141096c5ddc4Srjs}
141196c5ddc4Srjs
141296c5ddc4Srjs
141396c5ddc4Srjs/* GetTexParameterIuiv: marshalled synchronously */
141496c5ddc4Srjsvoid GLAPIENTRY
141596c5ddc4Srjs_mesa_marshal_GetTexParameterIuiv(GLenum target, GLenum pname, GLuint * params)
141696c5ddc4Srjs{
141796c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
141896c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetTexParameterIuiv");
141996c5ddc4Srjs   CALL_GetTexParameterIuiv(ctx->CurrentServerDispatch, (target, pname, params));
142096c5ddc4Srjs}
142196c5ddc4Srjs
142296c5ddc4Srjs
142396c5ddc4Srjs/* VertexAttribI1iEXT: marshalled asynchronously */
142496c5ddc4Srjsstruct marshal_cmd_VertexAttribI1iEXT
142596c5ddc4Srjs{
142696c5ddc4Srjs   struct marshal_cmd_base cmd_base;
142796c5ddc4Srjs   GLuint index;
142896c5ddc4Srjs   GLint x;
142996c5ddc4Srjs};
143096c5ddc4Srjsuint32_t
143196c5ddc4Srjs_mesa_unmarshal_VertexAttribI1iEXT(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI1iEXT *cmd, const uint64_t *last)
143296c5ddc4Srjs{
143396c5ddc4Srjs   GLuint index = cmd->index;
143496c5ddc4Srjs   GLint x = cmd->x;
143596c5ddc4Srjs   CALL_VertexAttribI1iEXT(ctx->CurrentServerDispatch, (index, x));
143696c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI1iEXT), 8) / 8);
143796c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
143896c5ddc4Srjs   return cmd_size;
143996c5ddc4Srjs}
144096c5ddc4Srjsvoid GLAPIENTRY
144196c5ddc4Srjs_mesa_marshal_VertexAttribI1iEXT(GLuint index, GLint x)
144296c5ddc4Srjs{
144396c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
144496c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VertexAttribI1iEXT);
144596c5ddc4Srjs   struct marshal_cmd_VertexAttribI1iEXT *cmd;
144696c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI1iEXT, cmd_size);
144796c5ddc4Srjs   cmd->index = index;
144896c5ddc4Srjs   cmd->x = x;
144996c5ddc4Srjs}
145096c5ddc4Srjs
145196c5ddc4Srjs
145296c5ddc4Srjs/* VertexAttribI2iEXT: marshalled asynchronously */
145396c5ddc4Srjsstruct marshal_cmd_VertexAttribI2iEXT
145496c5ddc4Srjs{
145596c5ddc4Srjs   struct marshal_cmd_base cmd_base;
145696c5ddc4Srjs   GLuint index;
145796c5ddc4Srjs   GLint x;
145896c5ddc4Srjs   GLint y;
145996c5ddc4Srjs};
146096c5ddc4Srjsuint32_t
146196c5ddc4Srjs_mesa_unmarshal_VertexAttribI2iEXT(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI2iEXT *cmd, const uint64_t *last)
146296c5ddc4Srjs{
146396c5ddc4Srjs   GLuint index = cmd->index;
146496c5ddc4Srjs   GLint x = cmd->x;
146596c5ddc4Srjs   GLint y = cmd->y;
146696c5ddc4Srjs   CALL_VertexAttribI2iEXT(ctx->CurrentServerDispatch, (index, x, y));
146796c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI2iEXT), 8) / 8);
146896c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
146996c5ddc4Srjs   return cmd_size;
147096c5ddc4Srjs}
147196c5ddc4Srjsvoid GLAPIENTRY
147296c5ddc4Srjs_mesa_marshal_VertexAttribI2iEXT(GLuint index, GLint x, GLint y)
147396c5ddc4Srjs{
147496c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
147596c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VertexAttribI2iEXT);
147696c5ddc4Srjs   struct marshal_cmd_VertexAttribI2iEXT *cmd;
147796c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI2iEXT, cmd_size);
147896c5ddc4Srjs   cmd->index = index;
147996c5ddc4Srjs   cmd->x = x;
148096c5ddc4Srjs   cmd->y = y;
148196c5ddc4Srjs}
148296c5ddc4Srjs
148396c5ddc4Srjs
148496c5ddc4Srjs/* VertexAttribI3iEXT: marshalled asynchronously */
148596c5ddc4Srjsstruct marshal_cmd_VertexAttribI3iEXT
148696c5ddc4Srjs{
148796c5ddc4Srjs   struct marshal_cmd_base cmd_base;
148896c5ddc4Srjs   GLuint index;
148996c5ddc4Srjs   GLint x;
149096c5ddc4Srjs   GLint y;
149196c5ddc4Srjs   GLint z;
149296c5ddc4Srjs};
149396c5ddc4Srjsuint32_t
149496c5ddc4Srjs_mesa_unmarshal_VertexAttribI3iEXT(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI3iEXT *cmd, const uint64_t *last)
149596c5ddc4Srjs{
149696c5ddc4Srjs   GLuint index = cmd->index;
149796c5ddc4Srjs   GLint x = cmd->x;
149896c5ddc4Srjs   GLint y = cmd->y;
149996c5ddc4Srjs   GLint z = cmd->z;
150096c5ddc4Srjs   CALL_VertexAttribI3iEXT(ctx->CurrentServerDispatch, (index, x, y, z));
150196c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI3iEXT), 8) / 8);
150296c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
150396c5ddc4Srjs   return cmd_size;
150496c5ddc4Srjs}
150596c5ddc4Srjsvoid GLAPIENTRY
150696c5ddc4Srjs_mesa_marshal_VertexAttribI3iEXT(GLuint index, GLint x, GLint y, GLint z)
150796c5ddc4Srjs{
150896c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
150996c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VertexAttribI3iEXT);
151096c5ddc4Srjs   struct marshal_cmd_VertexAttribI3iEXT *cmd;
151196c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI3iEXT, cmd_size);
151296c5ddc4Srjs   cmd->index = index;
151396c5ddc4Srjs   cmd->x = x;
151496c5ddc4Srjs   cmd->y = y;
151596c5ddc4Srjs   cmd->z = z;
151696c5ddc4Srjs}
151796c5ddc4Srjs
151896c5ddc4Srjs
151996c5ddc4Srjs/* VertexAttribI4iEXT: marshalled asynchronously */
152096c5ddc4Srjsstruct marshal_cmd_VertexAttribI4iEXT
152196c5ddc4Srjs{
152296c5ddc4Srjs   struct marshal_cmd_base cmd_base;
152396c5ddc4Srjs   GLuint index;
152496c5ddc4Srjs   GLint x;
152596c5ddc4Srjs   GLint y;
152696c5ddc4Srjs   GLint z;
152796c5ddc4Srjs   GLint w;
152896c5ddc4Srjs};
152996c5ddc4Srjsuint32_t
153096c5ddc4Srjs_mesa_unmarshal_VertexAttribI4iEXT(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI4iEXT *cmd, const uint64_t *last)
153196c5ddc4Srjs{
153296c5ddc4Srjs   GLuint index = cmd->index;
153396c5ddc4Srjs   GLint x = cmd->x;
153496c5ddc4Srjs   GLint y = cmd->y;
153596c5ddc4Srjs   GLint z = cmd->z;
153696c5ddc4Srjs   GLint w = cmd->w;
153796c5ddc4Srjs   CALL_VertexAttribI4iEXT(ctx->CurrentServerDispatch, (index, x, y, z, w));
153896c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI4iEXT), 8) / 8);
153996c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
154096c5ddc4Srjs   return cmd_size;
154196c5ddc4Srjs}
154296c5ddc4Srjsvoid GLAPIENTRY
154396c5ddc4Srjs_mesa_marshal_VertexAttribI4iEXT(GLuint index, GLint x, GLint y, GLint z, GLint w)
154496c5ddc4Srjs{
154596c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
154696c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VertexAttribI4iEXT);
154796c5ddc4Srjs   struct marshal_cmd_VertexAttribI4iEXT *cmd;
154896c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI4iEXT, cmd_size);
154996c5ddc4Srjs   cmd->index = index;
155096c5ddc4Srjs   cmd->x = x;
155196c5ddc4Srjs   cmd->y = y;
155296c5ddc4Srjs   cmd->z = z;
155396c5ddc4Srjs   cmd->w = w;
155496c5ddc4Srjs}
155596c5ddc4Srjs
155696c5ddc4Srjs
155796c5ddc4Srjs/* VertexAttribI1uiEXT: marshalled asynchronously */
155896c5ddc4Srjsstruct marshal_cmd_VertexAttribI1uiEXT
155996c5ddc4Srjs{
156096c5ddc4Srjs   struct marshal_cmd_base cmd_base;
156196c5ddc4Srjs   GLuint index;
156296c5ddc4Srjs   GLuint x;
156396c5ddc4Srjs};
156496c5ddc4Srjsuint32_t
156596c5ddc4Srjs_mesa_unmarshal_VertexAttribI1uiEXT(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI1uiEXT *cmd, const uint64_t *last)
156696c5ddc4Srjs{
156796c5ddc4Srjs   GLuint index = cmd->index;
156896c5ddc4Srjs   GLuint x = cmd->x;
156996c5ddc4Srjs   CALL_VertexAttribI1uiEXT(ctx->CurrentServerDispatch, (index, x));
157096c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI1uiEXT), 8) / 8);
157196c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
157296c5ddc4Srjs   return cmd_size;
157396c5ddc4Srjs}
157496c5ddc4Srjsvoid GLAPIENTRY
157596c5ddc4Srjs_mesa_marshal_VertexAttribI1uiEXT(GLuint index, GLuint x)
157696c5ddc4Srjs{
157796c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
157896c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VertexAttribI1uiEXT);
157996c5ddc4Srjs   struct marshal_cmd_VertexAttribI1uiEXT *cmd;
158096c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI1uiEXT, cmd_size);
158196c5ddc4Srjs   cmd->index = index;
158296c5ddc4Srjs   cmd->x = x;
158396c5ddc4Srjs}
158496c5ddc4Srjs
158596c5ddc4Srjs
158696c5ddc4Srjs/* VertexAttribI2uiEXT: marshalled asynchronously */
158796c5ddc4Srjsstruct marshal_cmd_VertexAttribI2uiEXT
158896c5ddc4Srjs{
158996c5ddc4Srjs   struct marshal_cmd_base cmd_base;
159096c5ddc4Srjs   GLuint index;
159196c5ddc4Srjs   GLuint x;
159296c5ddc4Srjs   GLuint y;
159396c5ddc4Srjs};
159496c5ddc4Srjsuint32_t
159596c5ddc4Srjs_mesa_unmarshal_VertexAttribI2uiEXT(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI2uiEXT *cmd, const uint64_t *last)
159696c5ddc4Srjs{
159796c5ddc4Srjs   GLuint index = cmd->index;
159896c5ddc4Srjs   GLuint x = cmd->x;
159996c5ddc4Srjs   GLuint y = cmd->y;
160096c5ddc4Srjs   CALL_VertexAttribI2uiEXT(ctx->CurrentServerDispatch, (index, x, y));
160196c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI2uiEXT), 8) / 8);
160296c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
160396c5ddc4Srjs   return cmd_size;
160496c5ddc4Srjs}
160596c5ddc4Srjsvoid GLAPIENTRY
160696c5ddc4Srjs_mesa_marshal_VertexAttribI2uiEXT(GLuint index, GLuint x, GLuint y)
160796c5ddc4Srjs{
160896c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
160996c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VertexAttribI2uiEXT);
161096c5ddc4Srjs   struct marshal_cmd_VertexAttribI2uiEXT *cmd;
161196c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI2uiEXT, cmd_size);
161296c5ddc4Srjs   cmd->index = index;
161396c5ddc4Srjs   cmd->x = x;
161496c5ddc4Srjs   cmd->y = y;
161596c5ddc4Srjs}
161696c5ddc4Srjs
161796c5ddc4Srjs
161896c5ddc4Srjs/* VertexAttribI3uiEXT: marshalled asynchronously */
161996c5ddc4Srjsstruct marshal_cmd_VertexAttribI3uiEXT
162096c5ddc4Srjs{
162196c5ddc4Srjs   struct marshal_cmd_base cmd_base;
162296c5ddc4Srjs   GLuint index;
162396c5ddc4Srjs   GLuint x;
162496c5ddc4Srjs   GLuint y;
162596c5ddc4Srjs   GLuint z;
162696c5ddc4Srjs};
162796c5ddc4Srjsuint32_t
162896c5ddc4Srjs_mesa_unmarshal_VertexAttribI3uiEXT(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI3uiEXT *cmd, const uint64_t *last)
162996c5ddc4Srjs{
163096c5ddc4Srjs   GLuint index = cmd->index;
163196c5ddc4Srjs   GLuint x = cmd->x;
163296c5ddc4Srjs   GLuint y = cmd->y;
163396c5ddc4Srjs   GLuint z = cmd->z;
163496c5ddc4Srjs   CALL_VertexAttribI3uiEXT(ctx->CurrentServerDispatch, (index, x, y, z));
163596c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI3uiEXT), 8) / 8);
163696c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
163796c5ddc4Srjs   return cmd_size;
163896c5ddc4Srjs}
163996c5ddc4Srjsvoid GLAPIENTRY
164096c5ddc4Srjs_mesa_marshal_VertexAttribI3uiEXT(GLuint index, GLuint x, GLuint y, GLuint z)
164196c5ddc4Srjs{
164296c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
164396c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VertexAttribI3uiEXT);
164496c5ddc4Srjs   struct marshal_cmd_VertexAttribI3uiEXT *cmd;
164596c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI3uiEXT, cmd_size);
164696c5ddc4Srjs   cmd->index = index;
164796c5ddc4Srjs   cmd->x = x;
164896c5ddc4Srjs   cmd->y = y;
164996c5ddc4Srjs   cmd->z = z;
165096c5ddc4Srjs}
165196c5ddc4Srjs
165296c5ddc4Srjs
165396c5ddc4Srjs/* VertexAttribI4uiEXT: marshalled asynchronously */
165496c5ddc4Srjsstruct marshal_cmd_VertexAttribI4uiEXT
165596c5ddc4Srjs{
165696c5ddc4Srjs   struct marshal_cmd_base cmd_base;
165796c5ddc4Srjs   GLuint index;
165896c5ddc4Srjs   GLuint x;
165996c5ddc4Srjs   GLuint y;
166096c5ddc4Srjs   GLuint z;
166196c5ddc4Srjs   GLuint w;
166296c5ddc4Srjs};
166396c5ddc4Srjsuint32_t
166496c5ddc4Srjs_mesa_unmarshal_VertexAttribI4uiEXT(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI4uiEXT *cmd, const uint64_t *last)
166596c5ddc4Srjs{
166696c5ddc4Srjs   GLuint index = cmd->index;
166796c5ddc4Srjs   GLuint x = cmd->x;
166896c5ddc4Srjs   GLuint y = cmd->y;
166996c5ddc4Srjs   GLuint z = cmd->z;
167096c5ddc4Srjs   GLuint w = cmd->w;
167196c5ddc4Srjs   CALL_VertexAttribI4uiEXT(ctx->CurrentServerDispatch, (index, x, y, z, w));
167296c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI4uiEXT), 8) / 8);
167396c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
167496c5ddc4Srjs   return cmd_size;
167596c5ddc4Srjs}
167696c5ddc4Srjsvoid GLAPIENTRY
167796c5ddc4Srjs_mesa_marshal_VertexAttribI4uiEXT(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w)
167896c5ddc4Srjs{
167996c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
168096c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VertexAttribI4uiEXT);
168196c5ddc4Srjs   struct marshal_cmd_VertexAttribI4uiEXT *cmd;
168296c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI4uiEXT, cmd_size);
168396c5ddc4Srjs   cmd->index = index;
168496c5ddc4Srjs   cmd->x = x;
168596c5ddc4Srjs   cmd->y = y;
168696c5ddc4Srjs   cmd->z = z;
168796c5ddc4Srjs   cmd->w = w;
168896c5ddc4Srjs}
168996c5ddc4Srjs
169096c5ddc4Srjs
169196c5ddc4Srjs/* VertexAttribI1iv: marshalled asynchronously */
169296c5ddc4Srjsstruct marshal_cmd_VertexAttribI1iv
169396c5ddc4Srjs{
169496c5ddc4Srjs   struct marshal_cmd_base cmd_base;
169596c5ddc4Srjs   GLuint index;
169696c5ddc4Srjs   GLint v[1];
169796c5ddc4Srjs};
169896c5ddc4Srjsuint32_t
169996c5ddc4Srjs_mesa_unmarshal_VertexAttribI1iv(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI1iv *cmd, const uint64_t *last)
170096c5ddc4Srjs{
170196c5ddc4Srjs   GLuint index = cmd->index;
170296c5ddc4Srjs   const GLint * v = cmd->v;
170396c5ddc4Srjs   CALL_VertexAttribI1iv(ctx->CurrentServerDispatch, (index, v));
170496c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI1iv), 8) / 8);
170596c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
170696c5ddc4Srjs   return cmd_size;
170796c5ddc4Srjs}
170896c5ddc4Srjsvoid GLAPIENTRY
170996c5ddc4Srjs_mesa_marshal_VertexAttribI1iv(GLuint index, const GLint * v)
171096c5ddc4Srjs{
171196c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
171296c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VertexAttribI1iv);
171396c5ddc4Srjs   struct marshal_cmd_VertexAttribI1iv *cmd;
171496c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI1iv, cmd_size);
171596c5ddc4Srjs   cmd->index = index;
171696c5ddc4Srjs   memcpy(cmd->v, v, 1 * sizeof(GLint));
171796c5ddc4Srjs}
171896c5ddc4Srjs
171996c5ddc4Srjs
172096c5ddc4Srjs/* VertexAttribI2ivEXT: marshalled asynchronously */
172196c5ddc4Srjsstruct marshal_cmd_VertexAttribI2ivEXT
172296c5ddc4Srjs{
172396c5ddc4Srjs   struct marshal_cmd_base cmd_base;
172496c5ddc4Srjs   GLuint index;
172596c5ddc4Srjs   GLint v[2];
172696c5ddc4Srjs};
172796c5ddc4Srjsuint32_t
172896c5ddc4Srjs_mesa_unmarshal_VertexAttribI2ivEXT(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI2ivEXT *cmd, const uint64_t *last)
172996c5ddc4Srjs{
173096c5ddc4Srjs   GLuint index = cmd->index;
173196c5ddc4Srjs   const GLint * v = cmd->v;
173296c5ddc4Srjs   CALL_VertexAttribI2ivEXT(ctx->CurrentServerDispatch, (index, v));
173396c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI2ivEXT), 8) / 8);
173496c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
173596c5ddc4Srjs   return cmd_size;
173696c5ddc4Srjs}
173796c5ddc4Srjsvoid GLAPIENTRY
173896c5ddc4Srjs_mesa_marshal_VertexAttribI2ivEXT(GLuint index, const GLint * v)
173996c5ddc4Srjs{
174096c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
174196c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VertexAttribI2ivEXT);
174296c5ddc4Srjs   struct marshal_cmd_VertexAttribI2ivEXT *cmd;
174396c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI2ivEXT, cmd_size);
174496c5ddc4Srjs   cmd->index = index;
174596c5ddc4Srjs   memcpy(cmd->v, v, 2 * sizeof(GLint));
174696c5ddc4Srjs}
174796c5ddc4Srjs
174896c5ddc4Srjs
174996c5ddc4Srjs/* VertexAttribI3ivEXT: marshalled asynchronously */
175096c5ddc4Srjsstruct marshal_cmd_VertexAttribI3ivEXT
175196c5ddc4Srjs{
175296c5ddc4Srjs   struct marshal_cmd_base cmd_base;
175396c5ddc4Srjs   GLuint index;
175496c5ddc4Srjs   GLint v[3];
175596c5ddc4Srjs};
175696c5ddc4Srjsuint32_t
175796c5ddc4Srjs_mesa_unmarshal_VertexAttribI3ivEXT(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI3ivEXT *cmd, const uint64_t *last)
175896c5ddc4Srjs{
175996c5ddc4Srjs   GLuint index = cmd->index;
176096c5ddc4Srjs   const GLint * v = cmd->v;
176196c5ddc4Srjs   CALL_VertexAttribI3ivEXT(ctx->CurrentServerDispatch, (index, v));
176296c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI3ivEXT), 8) / 8);
176396c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
176496c5ddc4Srjs   return cmd_size;
176596c5ddc4Srjs}
176696c5ddc4Srjsvoid GLAPIENTRY
176796c5ddc4Srjs_mesa_marshal_VertexAttribI3ivEXT(GLuint index, const GLint * v)
176896c5ddc4Srjs{
176996c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
177096c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VertexAttribI3ivEXT);
177196c5ddc4Srjs   struct marshal_cmd_VertexAttribI3ivEXT *cmd;
177296c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI3ivEXT, cmd_size);
177396c5ddc4Srjs   cmd->index = index;
177496c5ddc4Srjs   memcpy(cmd->v, v, 3 * sizeof(GLint));
177596c5ddc4Srjs}
177696c5ddc4Srjs
177796c5ddc4Srjs
177896c5ddc4Srjs/* VertexAttribI4ivEXT: marshalled asynchronously */
177996c5ddc4Srjsstruct marshal_cmd_VertexAttribI4ivEXT
178096c5ddc4Srjs{
178196c5ddc4Srjs   struct marshal_cmd_base cmd_base;
178296c5ddc4Srjs   GLuint index;
178396c5ddc4Srjs   GLint v[4];
178496c5ddc4Srjs};
178596c5ddc4Srjsuint32_t
178696c5ddc4Srjs_mesa_unmarshal_VertexAttribI4ivEXT(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI4ivEXT *cmd, const uint64_t *last)
178796c5ddc4Srjs{
178896c5ddc4Srjs   GLuint index = cmd->index;
178996c5ddc4Srjs   const GLint * v = cmd->v;
179096c5ddc4Srjs   CALL_VertexAttribI4ivEXT(ctx->CurrentServerDispatch, (index, v));
179196c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI4ivEXT), 8) / 8);
179296c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
179396c5ddc4Srjs   return cmd_size;
179496c5ddc4Srjs}
179596c5ddc4Srjsvoid GLAPIENTRY
179696c5ddc4Srjs_mesa_marshal_VertexAttribI4ivEXT(GLuint index, const GLint * v)
179796c5ddc4Srjs{
179896c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
179996c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VertexAttribI4ivEXT);
180096c5ddc4Srjs   struct marshal_cmd_VertexAttribI4ivEXT *cmd;
180196c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI4ivEXT, cmd_size);
180296c5ddc4Srjs   cmd->index = index;
180396c5ddc4Srjs   memcpy(cmd->v, v, 4 * sizeof(GLint));
180496c5ddc4Srjs}
180596c5ddc4Srjs
180696c5ddc4Srjs
180796c5ddc4Srjs/* VertexAttribI1uiv: marshalled asynchronously */
180896c5ddc4Srjsstruct marshal_cmd_VertexAttribI1uiv
180996c5ddc4Srjs{
181096c5ddc4Srjs   struct marshal_cmd_base cmd_base;
181196c5ddc4Srjs   GLuint index;
181296c5ddc4Srjs   GLuint v[1];
181396c5ddc4Srjs};
181496c5ddc4Srjsuint32_t
181596c5ddc4Srjs_mesa_unmarshal_VertexAttribI1uiv(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI1uiv *cmd, const uint64_t *last)
181696c5ddc4Srjs{
181796c5ddc4Srjs   GLuint index = cmd->index;
181896c5ddc4Srjs   const GLuint * v = cmd->v;
181996c5ddc4Srjs   CALL_VertexAttribI1uiv(ctx->CurrentServerDispatch, (index, v));
182096c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI1uiv), 8) / 8);
182196c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
182296c5ddc4Srjs   return cmd_size;
182396c5ddc4Srjs}
182496c5ddc4Srjsvoid GLAPIENTRY
182596c5ddc4Srjs_mesa_marshal_VertexAttribI1uiv(GLuint index, const GLuint * v)
182696c5ddc4Srjs{
182796c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
182896c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VertexAttribI1uiv);
182996c5ddc4Srjs   struct marshal_cmd_VertexAttribI1uiv *cmd;
183096c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI1uiv, cmd_size);
183196c5ddc4Srjs   cmd->index = index;
183296c5ddc4Srjs   memcpy(cmd->v, v, 1 * sizeof(GLuint));
183396c5ddc4Srjs}
183496c5ddc4Srjs
183596c5ddc4Srjs
183696c5ddc4Srjs/* VertexAttribI2uivEXT: marshalled asynchronously */
183796c5ddc4Srjsstruct marshal_cmd_VertexAttribI2uivEXT
183896c5ddc4Srjs{
183996c5ddc4Srjs   struct marshal_cmd_base cmd_base;
184096c5ddc4Srjs   GLuint index;
184196c5ddc4Srjs   GLuint v[2];
184296c5ddc4Srjs};
184396c5ddc4Srjsuint32_t
184496c5ddc4Srjs_mesa_unmarshal_VertexAttribI2uivEXT(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI2uivEXT *cmd, const uint64_t *last)
184596c5ddc4Srjs{
184696c5ddc4Srjs   GLuint index = cmd->index;
184796c5ddc4Srjs   const GLuint * v = cmd->v;
184896c5ddc4Srjs   CALL_VertexAttribI2uivEXT(ctx->CurrentServerDispatch, (index, v));
184996c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI2uivEXT), 8) / 8);
185096c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
185196c5ddc4Srjs   return cmd_size;
185296c5ddc4Srjs}
185396c5ddc4Srjsvoid GLAPIENTRY
185496c5ddc4Srjs_mesa_marshal_VertexAttribI2uivEXT(GLuint index, const GLuint * v)
185596c5ddc4Srjs{
185696c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
185796c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VertexAttribI2uivEXT);
185896c5ddc4Srjs   struct marshal_cmd_VertexAttribI2uivEXT *cmd;
185996c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI2uivEXT, cmd_size);
186096c5ddc4Srjs   cmd->index = index;
186196c5ddc4Srjs   memcpy(cmd->v, v, 2 * sizeof(GLuint));
186296c5ddc4Srjs}
186396c5ddc4Srjs
186496c5ddc4Srjs
186596c5ddc4Srjs/* VertexAttribI3uivEXT: marshalled asynchronously */
186696c5ddc4Srjsstruct marshal_cmd_VertexAttribI3uivEXT
186796c5ddc4Srjs{
186896c5ddc4Srjs   struct marshal_cmd_base cmd_base;
186996c5ddc4Srjs   GLuint index;
187096c5ddc4Srjs   GLuint v[3];
187196c5ddc4Srjs};
187296c5ddc4Srjsuint32_t
187396c5ddc4Srjs_mesa_unmarshal_VertexAttribI3uivEXT(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI3uivEXT *cmd, const uint64_t *last)
187496c5ddc4Srjs{
187596c5ddc4Srjs   GLuint index = cmd->index;
187696c5ddc4Srjs   const GLuint * v = cmd->v;
187796c5ddc4Srjs   CALL_VertexAttribI3uivEXT(ctx->CurrentServerDispatch, (index, v));
187896c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI3uivEXT), 8) / 8);
187996c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
188096c5ddc4Srjs   return cmd_size;
188196c5ddc4Srjs}
188296c5ddc4Srjsvoid GLAPIENTRY
188396c5ddc4Srjs_mesa_marshal_VertexAttribI3uivEXT(GLuint index, const GLuint * v)
188496c5ddc4Srjs{
188596c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
188696c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VertexAttribI3uivEXT);
188796c5ddc4Srjs   struct marshal_cmd_VertexAttribI3uivEXT *cmd;
188896c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI3uivEXT, cmd_size);
188996c5ddc4Srjs   cmd->index = index;
189096c5ddc4Srjs   memcpy(cmd->v, v, 3 * sizeof(GLuint));
189196c5ddc4Srjs}
189296c5ddc4Srjs
189396c5ddc4Srjs
189496c5ddc4Srjs/* VertexAttribI4uivEXT: marshalled asynchronously */
189596c5ddc4Srjsstruct marshal_cmd_VertexAttribI4uivEXT
189696c5ddc4Srjs{
189796c5ddc4Srjs   struct marshal_cmd_base cmd_base;
189896c5ddc4Srjs   GLuint index;
189996c5ddc4Srjs   GLuint v[4];
190096c5ddc4Srjs};
190196c5ddc4Srjsuint32_t
190296c5ddc4Srjs_mesa_unmarshal_VertexAttribI4uivEXT(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI4uivEXT *cmd, const uint64_t *last)
190396c5ddc4Srjs{
190496c5ddc4Srjs   GLuint index = cmd->index;
190596c5ddc4Srjs   const GLuint * v = cmd->v;
190696c5ddc4Srjs   CALL_VertexAttribI4uivEXT(ctx->CurrentServerDispatch, (index, v));
190796c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI4uivEXT), 8) / 8);
190896c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
190996c5ddc4Srjs   return cmd_size;
191096c5ddc4Srjs}
191196c5ddc4Srjsvoid GLAPIENTRY
191296c5ddc4Srjs_mesa_marshal_VertexAttribI4uivEXT(GLuint index, const GLuint * v)
191396c5ddc4Srjs{
191496c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
191596c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VertexAttribI4uivEXT);
191696c5ddc4Srjs   struct marshal_cmd_VertexAttribI4uivEXT *cmd;
191796c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI4uivEXT, cmd_size);
191896c5ddc4Srjs   cmd->index = index;
191996c5ddc4Srjs   memcpy(cmd->v, v, 4 * sizeof(GLuint));
192096c5ddc4Srjs}
192196c5ddc4Srjs
192296c5ddc4Srjs
192396c5ddc4Srjs/* VertexAttribI4bv: marshalled asynchronously */
192496c5ddc4Srjsstruct marshal_cmd_VertexAttribI4bv
192596c5ddc4Srjs{
192696c5ddc4Srjs   struct marshal_cmd_base cmd_base;
192796c5ddc4Srjs   GLuint index;
192896c5ddc4Srjs   GLbyte v[4];
192996c5ddc4Srjs};
193096c5ddc4Srjsuint32_t
193196c5ddc4Srjs_mesa_unmarshal_VertexAttribI4bv(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI4bv *cmd, const uint64_t *last)
193296c5ddc4Srjs{
193396c5ddc4Srjs   GLuint index = cmd->index;
193496c5ddc4Srjs   const GLbyte * v = cmd->v;
193596c5ddc4Srjs   CALL_VertexAttribI4bv(ctx->CurrentServerDispatch, (index, v));
193696c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI4bv), 8) / 8);
193796c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
193896c5ddc4Srjs   return cmd_size;
193996c5ddc4Srjs}
194096c5ddc4Srjsvoid GLAPIENTRY
194196c5ddc4Srjs_mesa_marshal_VertexAttribI4bv(GLuint index, const GLbyte * v)
194296c5ddc4Srjs{
194396c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
194496c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VertexAttribI4bv);
194596c5ddc4Srjs   struct marshal_cmd_VertexAttribI4bv *cmd;
194696c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI4bv, cmd_size);
194796c5ddc4Srjs   cmd->index = index;
194896c5ddc4Srjs   memcpy(cmd->v, v, 4 * sizeof(GLbyte));
194996c5ddc4Srjs}
195096c5ddc4Srjs
195196c5ddc4Srjs
195296c5ddc4Srjs/* VertexAttribI4sv: marshalled asynchronously */
195396c5ddc4Srjsstruct marshal_cmd_VertexAttribI4sv
195496c5ddc4Srjs{
195596c5ddc4Srjs   struct marshal_cmd_base cmd_base;
195696c5ddc4Srjs   GLuint index;
195796c5ddc4Srjs   GLshort v[4];
195896c5ddc4Srjs};
195996c5ddc4Srjsuint32_t
196096c5ddc4Srjs_mesa_unmarshal_VertexAttribI4sv(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI4sv *cmd, const uint64_t *last)
196196c5ddc4Srjs{
196296c5ddc4Srjs   GLuint index = cmd->index;
196396c5ddc4Srjs   const GLshort * v = cmd->v;
196496c5ddc4Srjs   CALL_VertexAttribI4sv(ctx->CurrentServerDispatch, (index, v));
196596c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI4sv), 8) / 8);
196696c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
196796c5ddc4Srjs   return cmd_size;
196896c5ddc4Srjs}
196996c5ddc4Srjsvoid GLAPIENTRY
197096c5ddc4Srjs_mesa_marshal_VertexAttribI4sv(GLuint index, const GLshort * v)
197196c5ddc4Srjs{
197296c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
197396c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VertexAttribI4sv);
197496c5ddc4Srjs   struct marshal_cmd_VertexAttribI4sv *cmd;
197596c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI4sv, cmd_size);
197696c5ddc4Srjs   cmd->index = index;
197796c5ddc4Srjs   memcpy(cmd->v, v, 4 * sizeof(GLshort));
197896c5ddc4Srjs}
197996c5ddc4Srjs
198096c5ddc4Srjs
198196c5ddc4Srjs/* VertexAttribI4ubv: marshalled asynchronously */
198296c5ddc4Srjsstruct marshal_cmd_VertexAttribI4ubv
198396c5ddc4Srjs{
198496c5ddc4Srjs   struct marshal_cmd_base cmd_base;
198596c5ddc4Srjs   GLuint index;
198696c5ddc4Srjs   GLubyte v[4];
198796c5ddc4Srjs};
198896c5ddc4Srjsuint32_t
198996c5ddc4Srjs_mesa_unmarshal_VertexAttribI4ubv(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI4ubv *cmd, const uint64_t *last)
199096c5ddc4Srjs{
199196c5ddc4Srjs   GLuint index = cmd->index;
199296c5ddc4Srjs   const GLubyte * v = cmd->v;
199396c5ddc4Srjs   CALL_VertexAttribI4ubv(ctx->CurrentServerDispatch, (index, v));
199496c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI4ubv), 8) / 8);
199596c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
199696c5ddc4Srjs   return cmd_size;
199796c5ddc4Srjs}
199896c5ddc4Srjsvoid GLAPIENTRY
199996c5ddc4Srjs_mesa_marshal_VertexAttribI4ubv(GLuint index, const GLubyte * v)
200096c5ddc4Srjs{
200196c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
200296c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VertexAttribI4ubv);
200396c5ddc4Srjs   struct marshal_cmd_VertexAttribI4ubv *cmd;
200496c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI4ubv, cmd_size);
200596c5ddc4Srjs   cmd->index = index;
200696c5ddc4Srjs   memcpy(cmd->v, v, 4 * sizeof(GLubyte));
200796c5ddc4Srjs}
200896c5ddc4Srjs
200996c5ddc4Srjs
201096c5ddc4Srjs/* VertexAttribI4usv: marshalled asynchronously */
201196c5ddc4Srjsstruct marshal_cmd_VertexAttribI4usv
201296c5ddc4Srjs{
201396c5ddc4Srjs   struct marshal_cmd_base cmd_base;
201496c5ddc4Srjs   GLuint index;
201596c5ddc4Srjs   GLushort v[4];
201696c5ddc4Srjs};
201796c5ddc4Srjsuint32_t
201896c5ddc4Srjs_mesa_unmarshal_VertexAttribI4usv(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI4usv *cmd, const uint64_t *last)
201996c5ddc4Srjs{
202096c5ddc4Srjs   GLuint index = cmd->index;
202196c5ddc4Srjs   const GLushort * v = cmd->v;
202296c5ddc4Srjs   CALL_VertexAttribI4usv(ctx->CurrentServerDispatch, (index, v));
202396c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI4usv), 8) / 8);
202496c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
202596c5ddc4Srjs   return cmd_size;
202696c5ddc4Srjs}
202796c5ddc4Srjsvoid GLAPIENTRY
202896c5ddc4Srjs_mesa_marshal_VertexAttribI4usv(GLuint index, const GLushort * v)
202996c5ddc4Srjs{
203096c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
203196c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VertexAttribI4usv);
203296c5ddc4Srjs   struct marshal_cmd_VertexAttribI4usv *cmd;
203396c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI4usv, cmd_size);
203496c5ddc4Srjs   cmd->index = index;
203596c5ddc4Srjs   memcpy(cmd->v, v, 4 * sizeof(GLushort));
203696c5ddc4Srjs}
203796c5ddc4Srjs
203896c5ddc4Srjs
203996c5ddc4Srjs/* VertexAttribIPointer: marshalled asynchronously */
204096c5ddc4Srjsstruct marshal_cmd_VertexAttribIPointer
204196c5ddc4Srjs{
204296c5ddc4Srjs   struct marshal_cmd_base cmd_base;
204396c5ddc4Srjs   GLuint index;
204496c5ddc4Srjs   GLint size;
204596c5ddc4Srjs   GLenum type;
204696c5ddc4Srjs   GLsizei stride;
204796c5ddc4Srjs   const GLvoid * pointer;
204896c5ddc4Srjs};
204996c5ddc4Srjsuint32_t
205096c5ddc4Srjs_mesa_unmarshal_VertexAttribIPointer(struct gl_context *ctx, const struct marshal_cmd_VertexAttribIPointer *cmd, const uint64_t *last)
205196c5ddc4Srjs{
205296c5ddc4Srjs   GLuint index = cmd->index;
205396c5ddc4Srjs   GLint size = cmd->size;
205496c5ddc4Srjs   GLenum type = cmd->type;
205596c5ddc4Srjs   GLsizei stride = cmd->stride;
205696c5ddc4Srjs   const GLvoid * pointer = cmd->pointer;
205796c5ddc4Srjs   CALL_VertexAttribIPointer(ctx->CurrentServerDispatch, (index, size, type, stride, pointer));
205896c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribIPointer), 8) / 8);
205996c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
206096c5ddc4Srjs   return cmd_size;
206196c5ddc4Srjs}
206296c5ddc4Srjsvoid GLAPIENTRY
206396c5ddc4Srjs_mesa_marshal_VertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid * pointer)
206496c5ddc4Srjs{
206596c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
206696c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VertexAttribIPointer);
206796c5ddc4Srjs   struct marshal_cmd_VertexAttribIPointer *cmd;
206896c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribIPointer, cmd_size);
206996c5ddc4Srjs   cmd->index = index;
207096c5ddc4Srjs   cmd->size = size;
207196c5ddc4Srjs   cmd->type = type;
207296c5ddc4Srjs   cmd->stride = stride;
207396c5ddc4Srjs   cmd->pointer = pointer;
207496c5ddc4Srjs   if (COMPAT) _mesa_glthread_AttribPointer(ctx, VERT_ATTRIB_GENERIC(index), size, type, stride, pointer);
207596c5ddc4Srjs}
207696c5ddc4Srjs
207796c5ddc4Srjs
207896c5ddc4Srjs/* GetVertexAttribIiv: marshalled synchronously */
207996c5ddc4Srjsvoid GLAPIENTRY
208096c5ddc4Srjs_mesa_marshal_GetVertexAttribIiv(GLuint index, GLenum pname, GLint * params)
208196c5ddc4Srjs{
208296c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
208396c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetVertexAttribIiv");
208496c5ddc4Srjs   CALL_GetVertexAttribIiv(ctx->CurrentServerDispatch, (index, pname, params));
208596c5ddc4Srjs}
208696c5ddc4Srjs
208796c5ddc4Srjs
208896c5ddc4Srjs/* GetVertexAttribIuiv: marshalled synchronously */
208996c5ddc4Srjsvoid GLAPIENTRY
209096c5ddc4Srjs_mesa_marshal_GetVertexAttribIuiv(GLuint index, GLenum pname, GLuint * params)
209196c5ddc4Srjs{
209296c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
209396c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetVertexAttribIuiv");
209496c5ddc4Srjs   CALL_GetVertexAttribIuiv(ctx->CurrentServerDispatch, (index, pname, params));
209596c5ddc4Srjs}
209696c5ddc4Srjs
209796c5ddc4Srjs
209896c5ddc4Srjs/* Uniform1ui: marshalled asynchronously */
209996c5ddc4Srjsstruct marshal_cmd_Uniform1ui
210096c5ddc4Srjs{
210196c5ddc4Srjs   struct marshal_cmd_base cmd_base;
210296c5ddc4Srjs   GLint location;
210396c5ddc4Srjs   GLuint x;
210496c5ddc4Srjs};
210596c5ddc4Srjsuint32_t
210696c5ddc4Srjs_mesa_unmarshal_Uniform1ui(struct gl_context *ctx, const struct marshal_cmd_Uniform1ui *cmd, const uint64_t *last)
210796c5ddc4Srjs{
210896c5ddc4Srjs   GLint location = cmd->location;
210996c5ddc4Srjs   GLuint x = cmd->x;
211096c5ddc4Srjs   CALL_Uniform1ui(ctx->CurrentServerDispatch, (location, x));
211196c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Uniform1ui), 8) / 8);
211296c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
211396c5ddc4Srjs   return cmd_size;
211496c5ddc4Srjs}
211596c5ddc4Srjsvoid GLAPIENTRY
211696c5ddc4Srjs_mesa_marshal_Uniform1ui(GLint location, GLuint x)
211796c5ddc4Srjs{
211896c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
211996c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_Uniform1ui);
212096c5ddc4Srjs   struct marshal_cmd_Uniform1ui *cmd;
212196c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Uniform1ui, cmd_size);
212296c5ddc4Srjs   cmd->location = location;
212396c5ddc4Srjs   cmd->x = x;
212496c5ddc4Srjs}
212596c5ddc4Srjs
212696c5ddc4Srjs
212796c5ddc4Srjs/* Uniform2ui: marshalled asynchronously */
212896c5ddc4Srjsstruct marshal_cmd_Uniform2ui
212996c5ddc4Srjs{
213096c5ddc4Srjs   struct marshal_cmd_base cmd_base;
213196c5ddc4Srjs   GLint location;
213296c5ddc4Srjs   GLuint x;
213396c5ddc4Srjs   GLuint y;
213496c5ddc4Srjs};
213596c5ddc4Srjsuint32_t
213696c5ddc4Srjs_mesa_unmarshal_Uniform2ui(struct gl_context *ctx, const struct marshal_cmd_Uniform2ui *cmd, const uint64_t *last)
213796c5ddc4Srjs{
213896c5ddc4Srjs   GLint location = cmd->location;
213996c5ddc4Srjs   GLuint x = cmd->x;
214096c5ddc4Srjs   GLuint y = cmd->y;
214196c5ddc4Srjs   CALL_Uniform2ui(ctx->CurrentServerDispatch, (location, x, y));
214296c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Uniform2ui), 8) / 8);
214396c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
214496c5ddc4Srjs   return cmd_size;
214596c5ddc4Srjs}
214696c5ddc4Srjsvoid GLAPIENTRY
214796c5ddc4Srjs_mesa_marshal_Uniform2ui(GLint location, GLuint x, GLuint y)
214896c5ddc4Srjs{
214996c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
215096c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_Uniform2ui);
215196c5ddc4Srjs   struct marshal_cmd_Uniform2ui *cmd;
215296c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Uniform2ui, cmd_size);
215396c5ddc4Srjs   cmd->location = location;
215496c5ddc4Srjs   cmd->x = x;
215596c5ddc4Srjs   cmd->y = y;
215696c5ddc4Srjs}
215796c5ddc4Srjs
215896c5ddc4Srjs
215996c5ddc4Srjs/* Uniform3ui: marshalled asynchronously */
216096c5ddc4Srjsstruct marshal_cmd_Uniform3ui
216196c5ddc4Srjs{
216296c5ddc4Srjs   struct marshal_cmd_base cmd_base;
216396c5ddc4Srjs   GLint location;
216496c5ddc4Srjs   GLuint x;
216596c5ddc4Srjs   GLuint y;
216696c5ddc4Srjs   GLuint z;
216796c5ddc4Srjs};
216896c5ddc4Srjsuint32_t
216996c5ddc4Srjs_mesa_unmarshal_Uniform3ui(struct gl_context *ctx, const struct marshal_cmd_Uniform3ui *cmd, const uint64_t *last)
217096c5ddc4Srjs{
217196c5ddc4Srjs   GLint location = cmd->location;
217296c5ddc4Srjs   GLuint x = cmd->x;
217396c5ddc4Srjs   GLuint y = cmd->y;
217496c5ddc4Srjs   GLuint z = cmd->z;
217596c5ddc4Srjs   CALL_Uniform3ui(ctx->CurrentServerDispatch, (location, x, y, z));
217696c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Uniform3ui), 8) / 8);
217796c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
217896c5ddc4Srjs   return cmd_size;
217996c5ddc4Srjs}
218096c5ddc4Srjsvoid GLAPIENTRY
218196c5ddc4Srjs_mesa_marshal_Uniform3ui(GLint location, GLuint x, GLuint y, GLuint z)
218296c5ddc4Srjs{
218396c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
218496c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_Uniform3ui);
218596c5ddc4Srjs   struct marshal_cmd_Uniform3ui *cmd;
218696c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Uniform3ui, cmd_size);
218796c5ddc4Srjs   cmd->location = location;
218896c5ddc4Srjs   cmd->x = x;
218996c5ddc4Srjs   cmd->y = y;
219096c5ddc4Srjs   cmd->z = z;
219196c5ddc4Srjs}
219296c5ddc4Srjs
219396c5ddc4Srjs
219496c5ddc4Srjs/* Uniform4ui: marshalled asynchronously */
219596c5ddc4Srjsstruct marshal_cmd_Uniform4ui
219696c5ddc4Srjs{
219796c5ddc4Srjs   struct marshal_cmd_base cmd_base;
219896c5ddc4Srjs   GLint location;
219996c5ddc4Srjs   GLuint x;
220096c5ddc4Srjs   GLuint y;
220196c5ddc4Srjs   GLuint z;
220296c5ddc4Srjs   GLuint w;
220396c5ddc4Srjs};
220496c5ddc4Srjsuint32_t
220596c5ddc4Srjs_mesa_unmarshal_Uniform4ui(struct gl_context *ctx, const struct marshal_cmd_Uniform4ui *cmd, const uint64_t *last)
220696c5ddc4Srjs{
220796c5ddc4Srjs   GLint location = cmd->location;
220896c5ddc4Srjs   GLuint x = cmd->x;
220996c5ddc4Srjs   GLuint y = cmd->y;
221096c5ddc4Srjs   GLuint z = cmd->z;
221196c5ddc4Srjs   GLuint w = cmd->w;
221296c5ddc4Srjs   CALL_Uniform4ui(ctx->CurrentServerDispatch, (location, x, y, z, w));
221396c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Uniform4ui), 8) / 8);
221496c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
221596c5ddc4Srjs   return cmd_size;
221696c5ddc4Srjs}
221796c5ddc4Srjsvoid GLAPIENTRY
221896c5ddc4Srjs_mesa_marshal_Uniform4ui(GLint location, GLuint x, GLuint y, GLuint z, GLuint w)
221996c5ddc4Srjs{
222096c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
222196c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_Uniform4ui);
222296c5ddc4Srjs   struct marshal_cmd_Uniform4ui *cmd;
222396c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Uniform4ui, cmd_size);
222496c5ddc4Srjs   cmd->location = location;
222596c5ddc4Srjs   cmd->x = x;
222696c5ddc4Srjs   cmd->y = y;
222796c5ddc4Srjs   cmd->z = z;
222896c5ddc4Srjs   cmd->w = w;
222996c5ddc4Srjs}
223096c5ddc4Srjs
223196c5ddc4Srjs
223296c5ddc4Srjs/* Uniform1uiv: marshalled asynchronously */
223396c5ddc4Srjsstruct marshal_cmd_Uniform1uiv
223496c5ddc4Srjs{
223596c5ddc4Srjs   struct marshal_cmd_base cmd_base;
223696c5ddc4Srjs   GLint location;
223796c5ddc4Srjs   GLsizei count;
223896c5ddc4Srjs   /* Next safe_mul(count, 1 * sizeof(GLuint)) bytes are GLuint value[count] */
223996c5ddc4Srjs};
224096c5ddc4Srjsuint32_t
224196c5ddc4Srjs_mesa_unmarshal_Uniform1uiv(struct gl_context *ctx, const struct marshal_cmd_Uniform1uiv *cmd, const uint64_t *last)
224296c5ddc4Srjs{
224396c5ddc4Srjs   GLint location = cmd->location;
224496c5ddc4Srjs   GLsizei count = cmd->count;
224596c5ddc4Srjs   GLuint * value;
224696c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
224796c5ddc4Srjs   value = (GLuint *) variable_data;
224896c5ddc4Srjs   CALL_Uniform1uiv(ctx->CurrentServerDispatch, (location, count, value));
224996c5ddc4Srjs   return cmd->cmd_base.cmd_size;
225096c5ddc4Srjs}
225196c5ddc4Srjsvoid GLAPIENTRY
225296c5ddc4Srjs_mesa_marshal_Uniform1uiv(GLint location, GLsizei count, const GLuint * value)
225396c5ddc4Srjs{
225496c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
225596c5ddc4Srjs   int value_size = safe_mul(count, 1 * sizeof(GLuint));
225696c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_Uniform1uiv) + value_size;
225796c5ddc4Srjs   struct marshal_cmd_Uniform1uiv *cmd;
225896c5ddc4Srjs   if (unlikely(value_size < 0 || (value_size > 0 && !value) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
225996c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "Uniform1uiv");
226096c5ddc4Srjs      CALL_Uniform1uiv(ctx->CurrentServerDispatch, (location, count, value));
226196c5ddc4Srjs      return;
226296c5ddc4Srjs   }
226396c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Uniform1uiv, cmd_size);
226496c5ddc4Srjs   cmd->location = location;
226596c5ddc4Srjs   cmd->count = count;
226696c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
226796c5ddc4Srjs   memcpy(variable_data, value, value_size);
226896c5ddc4Srjs}
226996c5ddc4Srjs
227096c5ddc4Srjs
227196c5ddc4Srjs/* Uniform2uiv: marshalled asynchronously */
227296c5ddc4Srjsstruct marshal_cmd_Uniform2uiv
227396c5ddc4Srjs{
227496c5ddc4Srjs   struct marshal_cmd_base cmd_base;
227596c5ddc4Srjs   GLint location;
227696c5ddc4Srjs   GLsizei count;
227796c5ddc4Srjs   /* Next safe_mul(count, 2 * sizeof(GLuint)) bytes are GLuint value[count][2] */
227896c5ddc4Srjs};
227996c5ddc4Srjsuint32_t
228096c5ddc4Srjs_mesa_unmarshal_Uniform2uiv(struct gl_context *ctx, const struct marshal_cmd_Uniform2uiv *cmd, const uint64_t *last)
228196c5ddc4Srjs{
228296c5ddc4Srjs   GLint location = cmd->location;
228396c5ddc4Srjs   GLsizei count = cmd->count;
228496c5ddc4Srjs   GLuint * value;
228596c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
228696c5ddc4Srjs   value = (GLuint *) variable_data;
228796c5ddc4Srjs   CALL_Uniform2uiv(ctx->CurrentServerDispatch, (location, count, value));
228896c5ddc4Srjs   return cmd->cmd_base.cmd_size;
228996c5ddc4Srjs}
229096c5ddc4Srjsvoid GLAPIENTRY
229196c5ddc4Srjs_mesa_marshal_Uniform2uiv(GLint location, GLsizei count, const GLuint * value)
229296c5ddc4Srjs{
229396c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
229496c5ddc4Srjs   int value_size = safe_mul(count, 2 * sizeof(GLuint));
229596c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_Uniform2uiv) + value_size;
229696c5ddc4Srjs   struct marshal_cmd_Uniform2uiv *cmd;
229796c5ddc4Srjs   if (unlikely(value_size < 0 || (value_size > 0 && !value) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
229896c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "Uniform2uiv");
229996c5ddc4Srjs      CALL_Uniform2uiv(ctx->CurrentServerDispatch, (location, count, value));
230096c5ddc4Srjs      return;
230196c5ddc4Srjs   }
230296c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Uniform2uiv, cmd_size);
230396c5ddc4Srjs   cmd->location = location;
230496c5ddc4Srjs   cmd->count = count;
230596c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
230696c5ddc4Srjs   memcpy(variable_data, value, value_size);
230796c5ddc4Srjs}
230896c5ddc4Srjs
230996c5ddc4Srjs
231096c5ddc4Srjs/* Uniform3uiv: marshalled asynchronously */
231196c5ddc4Srjsstruct marshal_cmd_Uniform3uiv
231296c5ddc4Srjs{
231396c5ddc4Srjs   struct marshal_cmd_base cmd_base;
231496c5ddc4Srjs   GLint location;
231596c5ddc4Srjs   GLsizei count;
231696c5ddc4Srjs   /* Next safe_mul(count, 3 * sizeof(GLuint)) bytes are GLuint value[count][3] */
231796c5ddc4Srjs};
231896c5ddc4Srjsuint32_t
231996c5ddc4Srjs_mesa_unmarshal_Uniform3uiv(struct gl_context *ctx, const struct marshal_cmd_Uniform3uiv *cmd, const uint64_t *last)
232096c5ddc4Srjs{
232196c5ddc4Srjs   GLint location = cmd->location;
232296c5ddc4Srjs   GLsizei count = cmd->count;
232396c5ddc4Srjs   GLuint * value;
232496c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
232596c5ddc4Srjs   value = (GLuint *) variable_data;
232696c5ddc4Srjs   CALL_Uniform3uiv(ctx->CurrentServerDispatch, (location, count, value));
232796c5ddc4Srjs   return cmd->cmd_base.cmd_size;
232896c5ddc4Srjs}
232996c5ddc4Srjsvoid GLAPIENTRY
233096c5ddc4Srjs_mesa_marshal_Uniform3uiv(GLint location, GLsizei count, const GLuint * value)
233196c5ddc4Srjs{
233296c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
233396c5ddc4Srjs   int value_size = safe_mul(count, 3 * sizeof(GLuint));
233496c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_Uniform3uiv) + value_size;
233596c5ddc4Srjs   struct marshal_cmd_Uniform3uiv *cmd;
233696c5ddc4Srjs   if (unlikely(value_size < 0 || (value_size > 0 && !value) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
233796c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "Uniform3uiv");
233896c5ddc4Srjs      CALL_Uniform3uiv(ctx->CurrentServerDispatch, (location, count, value));
233996c5ddc4Srjs      return;
234096c5ddc4Srjs   }
234196c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Uniform3uiv, cmd_size);
234296c5ddc4Srjs   cmd->location = location;
234396c5ddc4Srjs   cmd->count = count;
234496c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
234596c5ddc4Srjs   memcpy(variable_data, value, value_size);
234696c5ddc4Srjs}
234796c5ddc4Srjs
234896c5ddc4Srjs
234996c5ddc4Srjs/* Uniform4uiv: marshalled asynchronously */
235096c5ddc4Srjsstruct marshal_cmd_Uniform4uiv
235196c5ddc4Srjs{
235296c5ddc4Srjs   struct marshal_cmd_base cmd_base;
235396c5ddc4Srjs   GLint location;
235496c5ddc4Srjs   GLsizei count;
235596c5ddc4Srjs   /* Next safe_mul(count, 4 * sizeof(GLuint)) bytes are GLuint value[count][4] */
235696c5ddc4Srjs};
235796c5ddc4Srjsuint32_t
235896c5ddc4Srjs_mesa_unmarshal_Uniform4uiv(struct gl_context *ctx, const struct marshal_cmd_Uniform4uiv *cmd, const uint64_t *last)
235996c5ddc4Srjs{
236096c5ddc4Srjs   GLint location = cmd->location;
236196c5ddc4Srjs   GLsizei count = cmd->count;
236296c5ddc4Srjs   GLuint * value;
236396c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
236496c5ddc4Srjs   value = (GLuint *) variable_data;
236596c5ddc4Srjs   CALL_Uniform4uiv(ctx->CurrentServerDispatch, (location, count, value));
236696c5ddc4Srjs   return cmd->cmd_base.cmd_size;
236796c5ddc4Srjs}
236896c5ddc4Srjsvoid GLAPIENTRY
236996c5ddc4Srjs_mesa_marshal_Uniform4uiv(GLint location, GLsizei count, const GLuint * value)
237096c5ddc4Srjs{
237196c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
237296c5ddc4Srjs   int value_size = safe_mul(count, 4 * sizeof(GLuint));
237396c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_Uniform4uiv) + value_size;
237496c5ddc4Srjs   struct marshal_cmd_Uniform4uiv *cmd;
237596c5ddc4Srjs   if (unlikely(value_size < 0 || (value_size > 0 && !value) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
237696c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "Uniform4uiv");
237796c5ddc4Srjs      CALL_Uniform4uiv(ctx->CurrentServerDispatch, (location, count, value));
237896c5ddc4Srjs      return;
237996c5ddc4Srjs   }
238096c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Uniform4uiv, cmd_size);
238196c5ddc4Srjs   cmd->location = location;
238296c5ddc4Srjs   cmd->count = count;
238396c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
238496c5ddc4Srjs   memcpy(variable_data, value, value_size);
238596c5ddc4Srjs}
238696c5ddc4Srjs
238796c5ddc4Srjs
238896c5ddc4Srjs/* GetUniformuiv: marshalled synchronously */
238996c5ddc4Srjsvoid GLAPIENTRY
239096c5ddc4Srjs_mesa_marshal_GetUniformuiv(GLuint program, GLint location, GLuint * params)
239196c5ddc4Srjs{
239296c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
239396c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetUniformuiv");
239496c5ddc4Srjs   CALL_GetUniformuiv(ctx->CurrentServerDispatch, (program, location, params));
239596c5ddc4Srjs}
239696c5ddc4Srjs
239796c5ddc4Srjs
239896c5ddc4Srjs/* BindFragDataLocation: marshalled asynchronously */
239996c5ddc4Srjsstruct marshal_cmd_BindFragDataLocation
240096c5ddc4Srjs{
240196c5ddc4Srjs   struct marshal_cmd_base cmd_base;
240296c5ddc4Srjs   GLuint program;
240396c5ddc4Srjs   GLuint colorNumber;
240496c5ddc4Srjs   /* Next (strlen(name) + 1) bytes are GLchar name[(strlen(name) + 1)] */
240596c5ddc4Srjs};
240696c5ddc4Srjsuint32_t
240796c5ddc4Srjs_mesa_unmarshal_BindFragDataLocation(struct gl_context *ctx, const struct marshal_cmd_BindFragDataLocation *cmd, const uint64_t *last)
240896c5ddc4Srjs{
240996c5ddc4Srjs   GLuint program = cmd->program;
241096c5ddc4Srjs   GLuint colorNumber = cmd->colorNumber;
241196c5ddc4Srjs   GLchar * name;
241296c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
241396c5ddc4Srjs   name = (GLchar *) variable_data;
241496c5ddc4Srjs   CALL_BindFragDataLocation(ctx->CurrentServerDispatch, (program, colorNumber, name));
241596c5ddc4Srjs   return cmd->cmd_base.cmd_size;
241696c5ddc4Srjs}
241796c5ddc4Srjsvoid GLAPIENTRY
241896c5ddc4Srjs_mesa_marshal_BindFragDataLocation(GLuint program, GLuint colorNumber, const GLchar * name)
241996c5ddc4Srjs{
242096c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
242196c5ddc4Srjs   int name_size = (strlen(name) + 1);
242296c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_BindFragDataLocation) + name_size;
242396c5ddc4Srjs   struct marshal_cmd_BindFragDataLocation *cmd;
242496c5ddc4Srjs   if (unlikely(name_size < 0 || (name_size > 0 && !name) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
242596c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "BindFragDataLocation");
242696c5ddc4Srjs      CALL_BindFragDataLocation(ctx->CurrentServerDispatch, (program, colorNumber, name));
242796c5ddc4Srjs      return;
242896c5ddc4Srjs   }
242996c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_BindFragDataLocation, cmd_size);
243096c5ddc4Srjs   cmd->program = program;
243196c5ddc4Srjs   cmd->colorNumber = colorNumber;
243296c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
243396c5ddc4Srjs   memcpy(variable_data, name, name_size);
243496c5ddc4Srjs}
243596c5ddc4Srjs
243696c5ddc4Srjs
243796c5ddc4Srjs/* GetFragDataLocation: marshalled synchronously */
243896c5ddc4SrjsGLint GLAPIENTRY
243996c5ddc4Srjs_mesa_marshal_GetFragDataLocation(GLuint program, const GLchar * name)
244096c5ddc4Srjs{
244196c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
244296c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetFragDataLocation");
244396c5ddc4Srjs   return CALL_GetFragDataLocation(ctx->CurrentServerDispatch, (program, name));
244496c5ddc4Srjs}
244596c5ddc4Srjs
244696c5ddc4Srjs
244796c5ddc4Srjs/* ClearBufferiv: marshalled asynchronously */
244896c5ddc4Srjsstruct marshal_cmd_ClearBufferiv
244996c5ddc4Srjs{
245096c5ddc4Srjs   struct marshal_cmd_base cmd_base;
245196c5ddc4Srjs   GLenum buffer;
245296c5ddc4Srjs   GLint drawbuffer;
245396c5ddc4Srjs   /* Next safe_mul(_mesa_buffer_enum_to_count(buffer), 1 * sizeof(GLint)) bytes are GLint value[_mesa_buffer_enum_to_count(buffer)] */
245496c5ddc4Srjs};
245596c5ddc4Srjsuint32_t
245696c5ddc4Srjs_mesa_unmarshal_ClearBufferiv(struct gl_context *ctx, const struct marshal_cmd_ClearBufferiv *cmd, const uint64_t *last)
245796c5ddc4Srjs{
245896c5ddc4Srjs   GLenum buffer = cmd->buffer;
245996c5ddc4Srjs   GLint drawbuffer = cmd->drawbuffer;
246096c5ddc4Srjs   GLint * value;
246196c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
246296c5ddc4Srjs   value = (GLint *) variable_data;
246396c5ddc4Srjs   CALL_ClearBufferiv(ctx->CurrentServerDispatch, (buffer, drawbuffer, value));
246496c5ddc4Srjs   return cmd->cmd_base.cmd_size;
246596c5ddc4Srjs}
246696c5ddc4Srjsvoid GLAPIENTRY
246796c5ddc4Srjs_mesa_marshal_ClearBufferiv(GLenum buffer, GLint drawbuffer, const GLint * value)
246896c5ddc4Srjs{
246996c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
247096c5ddc4Srjs   int value_size = safe_mul(_mesa_buffer_enum_to_count(buffer), 1 * sizeof(GLint));
247196c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_ClearBufferiv) + value_size;
247296c5ddc4Srjs   struct marshal_cmd_ClearBufferiv *cmd;
247396c5ddc4Srjs   if (unlikely(value_size < 0 || (value_size > 0 && !value) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
247496c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "ClearBufferiv");
247596c5ddc4Srjs      CALL_ClearBufferiv(ctx->CurrentServerDispatch, (buffer, drawbuffer, value));
247696c5ddc4Srjs      return;
247796c5ddc4Srjs   }
247896c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_ClearBufferiv, cmd_size);
247996c5ddc4Srjs   cmd->buffer = buffer;
248096c5ddc4Srjs   cmd->drawbuffer = drawbuffer;
248196c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
248296c5ddc4Srjs   memcpy(variable_data, value, value_size);
248396c5ddc4Srjs}
248496c5ddc4Srjs
248596c5ddc4Srjs
248696c5ddc4Srjs/* ClearBufferuiv: marshalled asynchronously */
248796c5ddc4Srjsstruct marshal_cmd_ClearBufferuiv
248896c5ddc4Srjs{
248996c5ddc4Srjs   struct marshal_cmd_base cmd_base;
249096c5ddc4Srjs   GLenum buffer;
249196c5ddc4Srjs   GLint drawbuffer;
249296c5ddc4Srjs   /* Next safe_mul(_mesa_buffer_enum_to_count(buffer), 1 * sizeof(GLuint)) bytes are GLuint value[_mesa_buffer_enum_to_count(buffer)] */
249396c5ddc4Srjs};
249496c5ddc4Srjsuint32_t
249596c5ddc4Srjs_mesa_unmarshal_ClearBufferuiv(struct gl_context *ctx, const struct marshal_cmd_ClearBufferuiv *cmd, const uint64_t *last)
249696c5ddc4Srjs{
249796c5ddc4Srjs   GLenum buffer = cmd->buffer;
249896c5ddc4Srjs   GLint drawbuffer = cmd->drawbuffer;
249996c5ddc4Srjs   GLuint * value;
250096c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
250196c5ddc4Srjs   value = (GLuint *) variable_data;
250296c5ddc4Srjs   CALL_ClearBufferuiv(ctx->CurrentServerDispatch, (buffer, drawbuffer, value));
250396c5ddc4Srjs   return cmd->cmd_base.cmd_size;
250496c5ddc4Srjs}
250596c5ddc4Srjsvoid GLAPIENTRY
250696c5ddc4Srjs_mesa_marshal_ClearBufferuiv(GLenum buffer, GLint drawbuffer, const GLuint * value)
250796c5ddc4Srjs{
250896c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
250996c5ddc4Srjs   int value_size = safe_mul(_mesa_buffer_enum_to_count(buffer), 1 * sizeof(GLuint));
251096c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_ClearBufferuiv) + value_size;
251196c5ddc4Srjs   struct marshal_cmd_ClearBufferuiv *cmd;
251296c5ddc4Srjs   if (unlikely(value_size < 0 || (value_size > 0 && !value) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
251396c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "ClearBufferuiv");
251496c5ddc4Srjs      CALL_ClearBufferuiv(ctx->CurrentServerDispatch, (buffer, drawbuffer, value));
251596c5ddc4Srjs      return;
251696c5ddc4Srjs   }
251796c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_ClearBufferuiv, cmd_size);
251896c5ddc4Srjs   cmd->buffer = buffer;
251996c5ddc4Srjs   cmd->drawbuffer = drawbuffer;
252096c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
252196c5ddc4Srjs   memcpy(variable_data, value, value_size);
252296c5ddc4Srjs}
252396c5ddc4Srjs
252496c5ddc4Srjs
252596c5ddc4Srjs/* ClearBufferfv: marshalled asynchronously */
252696c5ddc4Srjsstruct marshal_cmd_ClearBufferfv
252796c5ddc4Srjs{
252896c5ddc4Srjs   struct marshal_cmd_base cmd_base;
252996c5ddc4Srjs   GLenum buffer;
253096c5ddc4Srjs   GLint drawbuffer;
253196c5ddc4Srjs   /* Next safe_mul(_mesa_buffer_enum_to_count(buffer), 1 * sizeof(GLfloat)) bytes are GLfloat value[_mesa_buffer_enum_to_count(buffer)] */
253296c5ddc4Srjs};
253396c5ddc4Srjsuint32_t
253496c5ddc4Srjs_mesa_unmarshal_ClearBufferfv(struct gl_context *ctx, const struct marshal_cmd_ClearBufferfv *cmd, const uint64_t *last)
253596c5ddc4Srjs{
253696c5ddc4Srjs   GLenum buffer = cmd->buffer;
253796c5ddc4Srjs   GLint drawbuffer = cmd->drawbuffer;
253896c5ddc4Srjs   GLfloat * value;
253996c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
254096c5ddc4Srjs   value = (GLfloat *) variable_data;
254196c5ddc4Srjs   CALL_ClearBufferfv(ctx->CurrentServerDispatch, (buffer, drawbuffer, value));
254296c5ddc4Srjs   return cmd->cmd_base.cmd_size;
254396c5ddc4Srjs}
254496c5ddc4Srjsvoid GLAPIENTRY
254596c5ddc4Srjs_mesa_marshal_ClearBufferfv(GLenum buffer, GLint drawbuffer, const GLfloat * value)
254696c5ddc4Srjs{
254796c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
254896c5ddc4Srjs   int value_size = safe_mul(_mesa_buffer_enum_to_count(buffer), 1 * sizeof(GLfloat));
254996c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_ClearBufferfv) + value_size;
255096c5ddc4Srjs   struct marshal_cmd_ClearBufferfv *cmd;
255196c5ddc4Srjs   if (unlikely(value_size < 0 || (value_size > 0 && !value) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
255296c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "ClearBufferfv");
255396c5ddc4Srjs      CALL_ClearBufferfv(ctx->CurrentServerDispatch, (buffer, drawbuffer, value));
255496c5ddc4Srjs      return;
255596c5ddc4Srjs   }
255696c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_ClearBufferfv, cmd_size);
255796c5ddc4Srjs   cmd->buffer = buffer;
255896c5ddc4Srjs   cmd->drawbuffer = drawbuffer;
255996c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
256096c5ddc4Srjs   memcpy(variable_data, value, value_size);
256196c5ddc4Srjs}
256296c5ddc4Srjs
256396c5ddc4Srjs
256496c5ddc4Srjs/* ClearBufferfi: marshalled asynchronously */
256596c5ddc4Srjsstruct marshal_cmd_ClearBufferfi
256696c5ddc4Srjs{
256796c5ddc4Srjs   struct marshal_cmd_base cmd_base;
256896c5ddc4Srjs   GLenum buffer;
256996c5ddc4Srjs   GLint drawbuffer;
257096c5ddc4Srjs   GLfloat depth;
257196c5ddc4Srjs   GLint stencil;
257296c5ddc4Srjs};
257396c5ddc4Srjsuint32_t
257496c5ddc4Srjs_mesa_unmarshal_ClearBufferfi(struct gl_context *ctx, const struct marshal_cmd_ClearBufferfi *cmd, const uint64_t *last)
257596c5ddc4Srjs{
257696c5ddc4Srjs   GLenum buffer = cmd->buffer;
257796c5ddc4Srjs   GLint drawbuffer = cmd->drawbuffer;
257896c5ddc4Srjs   GLfloat depth = cmd->depth;
257996c5ddc4Srjs   GLint stencil = cmd->stencil;
258096c5ddc4Srjs   CALL_ClearBufferfi(ctx->CurrentServerDispatch, (buffer, drawbuffer, depth, stencil));
258196c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_ClearBufferfi), 8) / 8);
258296c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
258396c5ddc4Srjs   return cmd_size;
258496c5ddc4Srjs}
258596c5ddc4Srjsvoid GLAPIENTRY
258696c5ddc4Srjs_mesa_marshal_ClearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil)
258796c5ddc4Srjs{
258896c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
258996c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_ClearBufferfi);
259096c5ddc4Srjs   struct marshal_cmd_ClearBufferfi *cmd;
259196c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_ClearBufferfi, cmd_size);
259296c5ddc4Srjs   cmd->buffer = buffer;
259396c5ddc4Srjs   cmd->drawbuffer = drawbuffer;
259496c5ddc4Srjs   cmd->depth = depth;
259596c5ddc4Srjs   cmd->stencil = stencil;
259696c5ddc4Srjs}
259796c5ddc4Srjs
259896c5ddc4Srjs
259996c5ddc4Srjs/* GetStringi: marshalled synchronously */
260096c5ddc4Srjsconst GLubyte * GLAPIENTRY
260196c5ddc4Srjs_mesa_marshal_GetStringi(GLenum name, GLuint index)
260296c5ddc4Srjs{
260396c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
260496c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetStringi");
260596c5ddc4Srjs   return CALL_GetStringi(ctx->CurrentServerDispatch, (name, index));
260696c5ddc4Srjs}
260796c5ddc4Srjs
260896c5ddc4Srjs
260996c5ddc4Srjs/* BeginTransformFeedback: marshalled asynchronously */
261096c5ddc4Srjsstruct marshal_cmd_BeginTransformFeedback
261196c5ddc4Srjs{
261296c5ddc4Srjs   struct marshal_cmd_base cmd_base;
261396c5ddc4Srjs   GLenum mode;
261496c5ddc4Srjs};
261596c5ddc4Srjsuint32_t
261696c5ddc4Srjs_mesa_unmarshal_BeginTransformFeedback(struct gl_context *ctx, const struct marshal_cmd_BeginTransformFeedback *cmd, const uint64_t *last)
261796c5ddc4Srjs{
261896c5ddc4Srjs   GLenum mode = cmd->mode;
261996c5ddc4Srjs   CALL_BeginTransformFeedback(ctx->CurrentServerDispatch, (mode));
262096c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_BeginTransformFeedback), 8) / 8);
262196c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
262296c5ddc4Srjs   return cmd_size;
262396c5ddc4Srjs}
262496c5ddc4Srjsvoid GLAPIENTRY
262596c5ddc4Srjs_mesa_marshal_BeginTransformFeedback(GLenum mode)
262696c5ddc4Srjs{
262796c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
262896c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_BeginTransformFeedback);
262996c5ddc4Srjs   struct marshal_cmd_BeginTransformFeedback *cmd;
263096c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_BeginTransformFeedback, cmd_size);
263196c5ddc4Srjs   cmd->mode = mode;
263296c5ddc4Srjs}
263396c5ddc4Srjs
263496c5ddc4Srjs
263596c5ddc4Srjs/* EndTransformFeedback: marshalled asynchronously */
263696c5ddc4Srjsstruct marshal_cmd_EndTransformFeedback
263796c5ddc4Srjs{
263896c5ddc4Srjs   struct marshal_cmd_base cmd_base;
263996c5ddc4Srjs};
264096c5ddc4Srjsuint32_t
264196c5ddc4Srjs_mesa_unmarshal_EndTransformFeedback(struct gl_context *ctx, const struct marshal_cmd_EndTransformFeedback *cmd, const uint64_t *last)
264296c5ddc4Srjs{
264396c5ddc4Srjs   CALL_EndTransformFeedback(ctx->CurrentServerDispatch, ());
264496c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_EndTransformFeedback), 8) / 8);
264596c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
264696c5ddc4Srjs   return cmd_size;
264796c5ddc4Srjs}
264896c5ddc4Srjsvoid GLAPIENTRY
264996c5ddc4Srjs_mesa_marshal_EndTransformFeedback(void)
265096c5ddc4Srjs{
265196c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
265296c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_EndTransformFeedback);
265396c5ddc4Srjs   struct marshal_cmd_EndTransformFeedback *cmd;
265496c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_EndTransformFeedback, cmd_size);
265596c5ddc4Srjs   (void) cmd;
265696c5ddc4Srjs}
265796c5ddc4Srjs
265896c5ddc4Srjs
265996c5ddc4Srjs/* BindBufferRange: marshalled asynchronously */
266096c5ddc4Srjsstruct marshal_cmd_BindBufferRange
266196c5ddc4Srjs{
266296c5ddc4Srjs   struct marshal_cmd_base cmd_base;
266396c5ddc4Srjs   GLenum target;
266496c5ddc4Srjs   GLuint index;
266596c5ddc4Srjs   GLuint buffer;
266696c5ddc4Srjs   GLintptr offset;
266796c5ddc4Srjs   GLsizeiptr size;
266896c5ddc4Srjs};
266996c5ddc4Srjsuint32_t
267096c5ddc4Srjs_mesa_unmarshal_BindBufferRange(struct gl_context *ctx, const struct marshal_cmd_BindBufferRange *cmd, const uint64_t *last)
267196c5ddc4Srjs{
267296c5ddc4Srjs   GLenum target = cmd->target;
267396c5ddc4Srjs   GLuint index = cmd->index;
267496c5ddc4Srjs   GLuint buffer = cmd->buffer;
267596c5ddc4Srjs   GLintptr offset = cmd->offset;
267696c5ddc4Srjs   GLsizeiptr size = cmd->size;
267796c5ddc4Srjs   CALL_BindBufferRange(ctx->CurrentServerDispatch, (target, index, buffer, offset, size));
267896c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_BindBufferRange), 8) / 8);
267996c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
268096c5ddc4Srjs   return cmd_size;
268196c5ddc4Srjs}
268296c5ddc4Srjsvoid GLAPIENTRY
268396c5ddc4Srjs_mesa_marshal_BindBufferRange(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)
268496c5ddc4Srjs{
268596c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
268696c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_BindBufferRange);
268796c5ddc4Srjs   struct marshal_cmd_BindBufferRange *cmd;
268896c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_BindBufferRange, cmd_size);
268996c5ddc4Srjs   cmd->target = target;
269096c5ddc4Srjs   cmd->index = index;
269196c5ddc4Srjs   cmd->buffer = buffer;
269296c5ddc4Srjs   cmd->offset = offset;
269396c5ddc4Srjs   cmd->size = size;
269496c5ddc4Srjs}
269596c5ddc4Srjs
269696c5ddc4Srjs
269796c5ddc4Srjs/* BindBufferBase: marshalled asynchronously */
269896c5ddc4Srjsstruct marshal_cmd_BindBufferBase
269996c5ddc4Srjs{
270096c5ddc4Srjs   struct marshal_cmd_base cmd_base;
270196c5ddc4Srjs   GLenum target;
270296c5ddc4Srjs   GLuint index;
270396c5ddc4Srjs   GLuint buffer;
270496c5ddc4Srjs};
270596c5ddc4Srjsuint32_t
270696c5ddc4Srjs_mesa_unmarshal_BindBufferBase(struct gl_context *ctx, const struct marshal_cmd_BindBufferBase *cmd, const uint64_t *last)
270796c5ddc4Srjs{
270896c5ddc4Srjs   GLenum target = cmd->target;
270996c5ddc4Srjs   GLuint index = cmd->index;
271096c5ddc4Srjs   GLuint buffer = cmd->buffer;
271196c5ddc4Srjs   CALL_BindBufferBase(ctx->CurrentServerDispatch, (target, index, buffer));
271296c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_BindBufferBase), 8) / 8);
271396c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
271496c5ddc4Srjs   return cmd_size;
271596c5ddc4Srjs}
271696c5ddc4Srjsvoid GLAPIENTRY
271796c5ddc4Srjs_mesa_marshal_BindBufferBase(GLenum target, GLuint index, GLuint buffer)
271896c5ddc4Srjs{
271996c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
272096c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_BindBufferBase);
272196c5ddc4Srjs   struct marshal_cmd_BindBufferBase *cmd;
272296c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_BindBufferBase, cmd_size);
272396c5ddc4Srjs   cmd->target = target;
272496c5ddc4Srjs   cmd->index = index;
272596c5ddc4Srjs   cmd->buffer = buffer;
272696c5ddc4Srjs}
272796c5ddc4Srjs
272896c5ddc4Srjs
272996c5ddc4Srjs/* TransformFeedbackVaryings: marshalled synchronously */
273096c5ddc4Srjsvoid GLAPIENTRY
273196c5ddc4Srjs_mesa_marshal_TransformFeedbackVaryings(GLuint program, GLsizei count, const GLchar * const * varyings, GLenum bufferMode)
273296c5ddc4Srjs{
273396c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
273496c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "TransformFeedbackVaryings");
273596c5ddc4Srjs   CALL_TransformFeedbackVaryings(ctx->CurrentServerDispatch, (program, count, varyings, bufferMode));
273696c5ddc4Srjs}
273796c5ddc4Srjs
273896c5ddc4Srjs
273996c5ddc4Srjs/* GetTransformFeedbackVarying: marshalled synchronously */
274096c5ddc4Srjsvoid GLAPIENTRY
274196c5ddc4Srjs_mesa_marshal_GetTransformFeedbackVarying(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name)
274296c5ddc4Srjs{
274396c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
274496c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetTransformFeedbackVarying");
274596c5ddc4Srjs   CALL_GetTransformFeedbackVarying(ctx->CurrentServerDispatch, (program, index, bufSize, length, size, type, name));
274696c5ddc4Srjs}
274796c5ddc4Srjs
274896c5ddc4Srjs
274996c5ddc4Srjs/* BeginConditionalRender: marshalled asynchronously */
275096c5ddc4Srjsstruct marshal_cmd_BeginConditionalRender
275196c5ddc4Srjs{
275296c5ddc4Srjs   struct marshal_cmd_base cmd_base;
275396c5ddc4Srjs   GLuint query;
275496c5ddc4Srjs   GLenum mode;
275596c5ddc4Srjs};
275696c5ddc4Srjsuint32_t
275796c5ddc4Srjs_mesa_unmarshal_BeginConditionalRender(struct gl_context *ctx, const struct marshal_cmd_BeginConditionalRender *cmd, const uint64_t *last)
275896c5ddc4Srjs{
275996c5ddc4Srjs   GLuint query = cmd->query;
276096c5ddc4Srjs   GLenum mode = cmd->mode;
276196c5ddc4Srjs   CALL_BeginConditionalRender(ctx->CurrentServerDispatch, (query, mode));
276296c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_BeginConditionalRender), 8) / 8);
276396c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
276496c5ddc4Srjs   return cmd_size;
276596c5ddc4Srjs}
276696c5ddc4Srjsvoid GLAPIENTRY
276796c5ddc4Srjs_mesa_marshal_BeginConditionalRender(GLuint query, GLenum mode)
276896c5ddc4Srjs{
276996c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
277096c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_BeginConditionalRender);
277196c5ddc4Srjs   struct marshal_cmd_BeginConditionalRender *cmd;
277296c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_BeginConditionalRender, cmd_size);
277396c5ddc4Srjs   cmd->query = query;
277496c5ddc4Srjs   cmd->mode = mode;
277596c5ddc4Srjs}
277696c5ddc4Srjs
277796c5ddc4Srjs
277896c5ddc4Srjs/* EndConditionalRender: marshalled asynchronously */
277996c5ddc4Srjsstruct marshal_cmd_EndConditionalRender
278096c5ddc4Srjs{
278196c5ddc4Srjs   struct marshal_cmd_base cmd_base;
278296c5ddc4Srjs};
278396c5ddc4Srjsuint32_t
278496c5ddc4Srjs_mesa_unmarshal_EndConditionalRender(struct gl_context *ctx, const struct marshal_cmd_EndConditionalRender *cmd, const uint64_t *last)
278596c5ddc4Srjs{
278696c5ddc4Srjs   CALL_EndConditionalRender(ctx->CurrentServerDispatch, ());
278796c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_EndConditionalRender), 8) / 8);
278896c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
278996c5ddc4Srjs   return cmd_size;
279096c5ddc4Srjs}
279196c5ddc4Srjsvoid GLAPIENTRY
279296c5ddc4Srjs_mesa_marshal_EndConditionalRender(void)
279396c5ddc4Srjs{
279496c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
279596c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_EndConditionalRender);
279696c5ddc4Srjs   struct marshal_cmd_EndConditionalRender *cmd;
279796c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_EndConditionalRender, cmd_size);
279896c5ddc4Srjs   (void) cmd;
279996c5ddc4Srjs}
280096c5ddc4Srjs
280196c5ddc4Srjs
280296c5ddc4Srjs/* PrimitiveRestartIndex: marshalled asynchronously */
280396c5ddc4Srjsstruct marshal_cmd_PrimitiveRestartIndex
280496c5ddc4Srjs{
280596c5ddc4Srjs   struct marshal_cmd_base cmd_base;
280696c5ddc4Srjs   GLuint index;
280796c5ddc4Srjs};
280896c5ddc4Srjsuint32_t
280996c5ddc4Srjs_mesa_unmarshal_PrimitiveRestartIndex(struct gl_context *ctx, const struct marshal_cmd_PrimitiveRestartIndex *cmd, const uint64_t *last)
281096c5ddc4Srjs{
281196c5ddc4Srjs   GLuint index = cmd->index;
281296c5ddc4Srjs   CALL_PrimitiveRestartIndex(ctx->CurrentServerDispatch, (index));
281396c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_PrimitiveRestartIndex), 8) / 8);
281496c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
281596c5ddc4Srjs   return cmd_size;
281696c5ddc4Srjs}
281796c5ddc4Srjsvoid GLAPIENTRY
281896c5ddc4Srjs_mesa_marshal_PrimitiveRestartIndex(GLuint index)
281996c5ddc4Srjs{
282096c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
282196c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_PrimitiveRestartIndex);
282296c5ddc4Srjs   struct marshal_cmd_PrimitiveRestartIndex *cmd;
282396c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_PrimitiveRestartIndex, cmd_size);
282496c5ddc4Srjs   cmd->index = index;
282596c5ddc4Srjs   _mesa_glthread_PrimitiveRestartIndex(ctx, index);
282696c5ddc4Srjs}
282796c5ddc4Srjs
282896c5ddc4Srjs
282996c5ddc4Srjs/* GetInteger64i_v: marshalled synchronously */
283096c5ddc4Srjsvoid GLAPIENTRY
283196c5ddc4Srjs_mesa_marshal_GetInteger64i_v(GLenum cap, GLuint index, GLint64 * data)
283296c5ddc4Srjs{
283396c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
283496c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetInteger64i_v");
283596c5ddc4Srjs   CALL_GetInteger64i_v(ctx->CurrentServerDispatch, (cap, index, data));
283696c5ddc4Srjs}
283796c5ddc4Srjs
283896c5ddc4Srjs
283996c5ddc4Srjs/* GetBufferParameteri64v: marshalled synchronously */
284096c5ddc4Srjsvoid GLAPIENTRY
284196c5ddc4Srjs_mesa_marshal_GetBufferParameteri64v(GLenum target, GLenum pname, GLint64 * params)
284296c5ddc4Srjs{
284396c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
284496c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetBufferParameteri64v");
284596c5ddc4Srjs   CALL_GetBufferParameteri64v(ctx->CurrentServerDispatch, (target, pname, params));
284696c5ddc4Srjs}
284796c5ddc4Srjs
284896c5ddc4Srjs
284996c5ddc4Srjs/* FramebufferTexture: marshalled asynchronously */
285096c5ddc4Srjsstruct marshal_cmd_FramebufferTexture
285196c5ddc4Srjs{
285296c5ddc4Srjs   struct marshal_cmd_base cmd_base;
285396c5ddc4Srjs   GLenum target;
285496c5ddc4Srjs   GLenum attachment;
285596c5ddc4Srjs   GLuint texture;
285696c5ddc4Srjs   GLint level;
285796c5ddc4Srjs};
285896c5ddc4Srjsuint32_t
285996c5ddc4Srjs_mesa_unmarshal_FramebufferTexture(struct gl_context *ctx, const struct marshal_cmd_FramebufferTexture *cmd, const uint64_t *last)
286096c5ddc4Srjs{
286196c5ddc4Srjs   GLenum target = cmd->target;
286296c5ddc4Srjs   GLenum attachment = cmd->attachment;
286396c5ddc4Srjs   GLuint texture = cmd->texture;
286496c5ddc4Srjs   GLint level = cmd->level;
286596c5ddc4Srjs   CALL_FramebufferTexture(ctx->CurrentServerDispatch, (target, attachment, texture, level));
286696c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_FramebufferTexture), 8) / 8);
286796c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
286896c5ddc4Srjs   return cmd_size;
286996c5ddc4Srjs}
287096c5ddc4Srjsvoid GLAPIENTRY
287196c5ddc4Srjs_mesa_marshal_FramebufferTexture(GLenum target, GLenum attachment, GLuint texture, GLint level)
287296c5ddc4Srjs{
287396c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
287496c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_FramebufferTexture);
287596c5ddc4Srjs   struct marshal_cmd_FramebufferTexture *cmd;
287696c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_FramebufferTexture, cmd_size);
287796c5ddc4Srjs   cmd->target = target;
287896c5ddc4Srjs   cmd->attachment = attachment;
287996c5ddc4Srjs   cmd->texture = texture;
288096c5ddc4Srjs   cmd->level = level;
288196c5ddc4Srjs}
288296c5ddc4Srjs
288396c5ddc4Srjs
288496c5ddc4Srjs/* PrimitiveRestartNV: marshalled asynchronously */
288596c5ddc4Srjsstruct marshal_cmd_PrimitiveRestartNV
288696c5ddc4Srjs{
288796c5ddc4Srjs   struct marshal_cmd_base cmd_base;
288896c5ddc4Srjs};
288996c5ddc4Srjsuint32_t
289096c5ddc4Srjs_mesa_unmarshal_PrimitiveRestartNV(struct gl_context *ctx, const struct marshal_cmd_PrimitiveRestartNV *cmd, const uint64_t *last)
289196c5ddc4Srjs{
289296c5ddc4Srjs   CALL_PrimitiveRestartNV(ctx->CurrentServerDispatch, ());
289396c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_PrimitiveRestartNV), 8) / 8);
289496c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
289596c5ddc4Srjs   return cmd_size;
289696c5ddc4Srjs}
289796c5ddc4Srjsvoid GLAPIENTRY
289896c5ddc4Srjs_mesa_marshal_PrimitiveRestartNV(void)
289996c5ddc4Srjs{
290096c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
290196c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_PrimitiveRestartNV);
290296c5ddc4Srjs   struct marshal_cmd_PrimitiveRestartNV *cmd;
290396c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_PrimitiveRestartNV, cmd_size);
290496c5ddc4Srjs   (void) cmd;
290596c5ddc4Srjs}
290696c5ddc4Srjs
290796c5ddc4Srjs
290896c5ddc4Srjs/* BindBufferOffsetEXT: marshalled asynchronously */
290996c5ddc4Srjsstruct marshal_cmd_BindBufferOffsetEXT
291096c5ddc4Srjs{
291196c5ddc4Srjs   struct marshal_cmd_base cmd_base;
291296c5ddc4Srjs   GLenum target;
291396c5ddc4Srjs   GLuint index;
291496c5ddc4Srjs   GLuint buffer;
291596c5ddc4Srjs   GLintptr offset;
291696c5ddc4Srjs};
291796c5ddc4Srjsuint32_t
291896c5ddc4Srjs_mesa_unmarshal_BindBufferOffsetEXT(struct gl_context *ctx, const struct marshal_cmd_BindBufferOffsetEXT *cmd, const uint64_t *last)
291996c5ddc4Srjs{
292096c5ddc4Srjs   GLenum target = cmd->target;
292196c5ddc4Srjs   GLuint index = cmd->index;
292296c5ddc4Srjs   GLuint buffer = cmd->buffer;
292396c5ddc4Srjs   GLintptr offset = cmd->offset;
292496c5ddc4Srjs   CALL_BindBufferOffsetEXT(ctx->CurrentServerDispatch, (target, index, buffer, offset));
292596c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_BindBufferOffsetEXT), 8) / 8);
292696c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
292796c5ddc4Srjs   return cmd_size;
292896c5ddc4Srjs}
292996c5ddc4Srjsvoid GLAPIENTRY
293096c5ddc4Srjs_mesa_marshal_BindBufferOffsetEXT(GLenum target, GLuint index, GLuint buffer, GLintptr offset)
293196c5ddc4Srjs{
293296c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
293396c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_BindBufferOffsetEXT);
293496c5ddc4Srjs   struct marshal_cmd_BindBufferOffsetEXT *cmd;
293596c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_BindBufferOffsetEXT, cmd_size);
293696c5ddc4Srjs   cmd->target = target;
293796c5ddc4Srjs   cmd->index = index;
293896c5ddc4Srjs   cmd->buffer = buffer;
293996c5ddc4Srjs   cmd->offset = offset;
294096c5ddc4Srjs}
294196c5ddc4Srjs
294296c5ddc4Srjs
294396c5ddc4Srjs/* BindTransformFeedback: marshalled asynchronously */
294496c5ddc4Srjsstruct marshal_cmd_BindTransformFeedback
294596c5ddc4Srjs{
294696c5ddc4Srjs   struct marshal_cmd_base cmd_base;
294796c5ddc4Srjs   GLenum target;
294896c5ddc4Srjs   GLuint id;
294996c5ddc4Srjs};
295096c5ddc4Srjsuint32_t
295196c5ddc4Srjs_mesa_unmarshal_BindTransformFeedback(struct gl_context *ctx, const struct marshal_cmd_BindTransformFeedback *cmd, const uint64_t *last)
295296c5ddc4Srjs{
295396c5ddc4Srjs   GLenum target = cmd->target;
295496c5ddc4Srjs   GLuint id = cmd->id;
295596c5ddc4Srjs   CALL_BindTransformFeedback(ctx->CurrentServerDispatch, (target, id));
295696c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_BindTransformFeedback), 8) / 8);
295796c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
295896c5ddc4Srjs   return cmd_size;
295996c5ddc4Srjs}
296096c5ddc4Srjsvoid GLAPIENTRY
296196c5ddc4Srjs_mesa_marshal_BindTransformFeedback(GLenum target, GLuint id)
296296c5ddc4Srjs{
296396c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
296496c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_BindTransformFeedback);
296596c5ddc4Srjs   struct marshal_cmd_BindTransformFeedback *cmd;
296696c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_BindTransformFeedback, cmd_size);
296796c5ddc4Srjs   cmd->target = target;
296896c5ddc4Srjs   cmd->id = id;
296996c5ddc4Srjs}
297096c5ddc4Srjs
297196c5ddc4Srjs
297296c5ddc4Srjs/* DeleteTransformFeedbacks: marshalled asynchronously */
297396c5ddc4Srjsstruct marshal_cmd_DeleteTransformFeedbacks
297496c5ddc4Srjs{
297596c5ddc4Srjs   struct marshal_cmd_base cmd_base;
297696c5ddc4Srjs   GLsizei n;
297796c5ddc4Srjs   /* Next safe_mul(n, 1 * sizeof(GLuint)) bytes are GLuint ids[n] */
297896c5ddc4Srjs};
297996c5ddc4Srjsuint32_t
298096c5ddc4Srjs_mesa_unmarshal_DeleteTransformFeedbacks(struct gl_context *ctx, const struct marshal_cmd_DeleteTransformFeedbacks *cmd, const uint64_t *last)
298196c5ddc4Srjs{
298296c5ddc4Srjs   GLsizei n = cmd->n;
298396c5ddc4Srjs   GLuint * ids;
298496c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
298596c5ddc4Srjs   ids = (GLuint *) variable_data;
298696c5ddc4Srjs   CALL_DeleteTransformFeedbacks(ctx->CurrentServerDispatch, (n, ids));
298796c5ddc4Srjs   return cmd->cmd_base.cmd_size;
298896c5ddc4Srjs}
298996c5ddc4Srjsvoid GLAPIENTRY
299096c5ddc4Srjs_mesa_marshal_DeleteTransformFeedbacks(GLsizei n, const GLuint * ids)
299196c5ddc4Srjs{
299296c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
299396c5ddc4Srjs   int ids_size = safe_mul(n, 1 * sizeof(GLuint));
299496c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_DeleteTransformFeedbacks) + ids_size;
299596c5ddc4Srjs   struct marshal_cmd_DeleteTransformFeedbacks *cmd;
299696c5ddc4Srjs   if (unlikely(ids_size < 0 || (ids_size > 0 && !ids) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
299796c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "DeleteTransformFeedbacks");
299896c5ddc4Srjs      CALL_DeleteTransformFeedbacks(ctx->CurrentServerDispatch, (n, ids));
299996c5ddc4Srjs      return;
300096c5ddc4Srjs   }
300196c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_DeleteTransformFeedbacks, cmd_size);
300296c5ddc4Srjs   cmd->n = n;
300396c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
300496c5ddc4Srjs   memcpy(variable_data, ids, ids_size);
300596c5ddc4Srjs}
300696c5ddc4Srjs
300796c5ddc4Srjs
300896c5ddc4Srjs/* GenTransformFeedbacks: marshalled synchronously */
300996c5ddc4Srjsvoid GLAPIENTRY
301096c5ddc4Srjs_mesa_marshal_GenTransformFeedbacks(GLsizei n, GLuint * ids)
301196c5ddc4Srjs{
301296c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
301396c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GenTransformFeedbacks");
301496c5ddc4Srjs   CALL_GenTransformFeedbacks(ctx->CurrentServerDispatch, (n, ids));
301596c5ddc4Srjs}
301696c5ddc4Srjs
301796c5ddc4Srjs
301896c5ddc4Srjs/* IsTransformFeedback: marshalled synchronously */
301996c5ddc4SrjsGLboolean GLAPIENTRY
302096c5ddc4Srjs_mesa_marshal_IsTransformFeedback(GLuint id)
302196c5ddc4Srjs{
302296c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
302396c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "IsTransformFeedback");
302496c5ddc4Srjs   return CALL_IsTransformFeedback(ctx->CurrentServerDispatch, (id));
302596c5ddc4Srjs}
302696c5ddc4Srjs
302796c5ddc4Srjs
302896c5ddc4Srjs/* PauseTransformFeedback: marshalled asynchronously */
302996c5ddc4Srjsstruct marshal_cmd_PauseTransformFeedback
303096c5ddc4Srjs{
303196c5ddc4Srjs   struct marshal_cmd_base cmd_base;
303296c5ddc4Srjs};
303396c5ddc4Srjsuint32_t
303496c5ddc4Srjs_mesa_unmarshal_PauseTransformFeedback(struct gl_context *ctx, const struct marshal_cmd_PauseTransformFeedback *cmd, const uint64_t *last)
303596c5ddc4Srjs{
303696c5ddc4Srjs   CALL_PauseTransformFeedback(ctx->CurrentServerDispatch, ());
303796c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_PauseTransformFeedback), 8) / 8);
303896c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
303996c5ddc4Srjs   return cmd_size;
304096c5ddc4Srjs}
304196c5ddc4Srjsvoid GLAPIENTRY
304296c5ddc4Srjs_mesa_marshal_PauseTransformFeedback(void)
304396c5ddc4Srjs{
304496c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
304596c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_PauseTransformFeedback);
304696c5ddc4Srjs   struct marshal_cmd_PauseTransformFeedback *cmd;
304796c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_PauseTransformFeedback, cmd_size);
304896c5ddc4Srjs   (void) cmd;
304996c5ddc4Srjs}
305096c5ddc4Srjs
305196c5ddc4Srjs
305296c5ddc4Srjs/* ResumeTransformFeedback: marshalled asynchronously */
305396c5ddc4Srjsstruct marshal_cmd_ResumeTransformFeedback
305496c5ddc4Srjs{
305596c5ddc4Srjs   struct marshal_cmd_base cmd_base;
305696c5ddc4Srjs};
305796c5ddc4Srjsuint32_t
305896c5ddc4Srjs_mesa_unmarshal_ResumeTransformFeedback(struct gl_context *ctx, const struct marshal_cmd_ResumeTransformFeedback *cmd, const uint64_t *last)
305996c5ddc4Srjs{
306096c5ddc4Srjs   CALL_ResumeTransformFeedback(ctx->CurrentServerDispatch, ());
306196c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_ResumeTransformFeedback), 8) / 8);
306296c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
306396c5ddc4Srjs   return cmd_size;
306496c5ddc4Srjs}
306596c5ddc4Srjsvoid GLAPIENTRY
306696c5ddc4Srjs_mesa_marshal_ResumeTransformFeedback(void)
306796c5ddc4Srjs{
306896c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
306996c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_ResumeTransformFeedback);
307096c5ddc4Srjs   struct marshal_cmd_ResumeTransformFeedback *cmd;
307196c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_ResumeTransformFeedback, cmd_size);
307296c5ddc4Srjs   (void) cmd;
307396c5ddc4Srjs}
307496c5ddc4Srjs
307596c5ddc4Srjs
307696c5ddc4Srjs/* DrawTransformFeedback: marshalled asynchronously */
307796c5ddc4Srjsstruct marshal_cmd_DrawTransformFeedback
307896c5ddc4Srjs{
307996c5ddc4Srjs   struct marshal_cmd_base cmd_base;
308096c5ddc4Srjs   GLenum mode;
308196c5ddc4Srjs   GLuint id;
308296c5ddc4Srjs};
308396c5ddc4Srjsuint32_t
308496c5ddc4Srjs_mesa_unmarshal_DrawTransformFeedback(struct gl_context *ctx, const struct marshal_cmd_DrawTransformFeedback *cmd, const uint64_t *last)
308596c5ddc4Srjs{
308696c5ddc4Srjs   GLenum mode = cmd->mode;
308796c5ddc4Srjs   GLuint id = cmd->id;
308896c5ddc4Srjs   CALL_DrawTransformFeedback(ctx->CurrentServerDispatch, (mode, id));
308996c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_DrawTransformFeedback), 8) / 8);
309096c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
309196c5ddc4Srjs   return cmd_size;
309296c5ddc4Srjs}
309396c5ddc4Srjsvoid GLAPIENTRY
309496c5ddc4Srjs_mesa_marshal_DrawTransformFeedback(GLenum mode, GLuint id)
309596c5ddc4Srjs{
309696c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
309796c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_DrawTransformFeedback);
309896c5ddc4Srjs   struct marshal_cmd_DrawTransformFeedback *cmd;
309996c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_DrawTransformFeedback, cmd_size);
310096c5ddc4Srjs   cmd->mode = mode;
310196c5ddc4Srjs   cmd->id = id;
310296c5ddc4Srjs}
310396c5ddc4Srjs
310496c5ddc4Srjs
310596c5ddc4Srjs/* VDPAUInitNV: marshalled synchronously */
310696c5ddc4Srjsvoid GLAPIENTRY
310796c5ddc4Srjs_mesa_marshal_VDPAUInitNV(const GLvoid * vdpDevice, const GLvoid * getProcAddress)
310896c5ddc4Srjs{
310996c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
311096c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "VDPAUInitNV");
311196c5ddc4Srjs   CALL_VDPAUInitNV(ctx->CurrentServerDispatch, (vdpDevice, getProcAddress));
311296c5ddc4Srjs}
311396c5ddc4Srjs
311496c5ddc4Srjs
311596c5ddc4Srjs/* VDPAUFiniNV: marshalled asynchronously */
311696c5ddc4Srjsstruct marshal_cmd_VDPAUFiniNV
311796c5ddc4Srjs{
311896c5ddc4Srjs   struct marshal_cmd_base cmd_base;
311996c5ddc4Srjs};
312096c5ddc4Srjsuint32_t
312196c5ddc4Srjs_mesa_unmarshal_VDPAUFiniNV(struct gl_context *ctx, const struct marshal_cmd_VDPAUFiniNV *cmd, const uint64_t *last)
312296c5ddc4Srjs{
312396c5ddc4Srjs   CALL_VDPAUFiniNV(ctx->CurrentServerDispatch, ());
312496c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VDPAUFiniNV), 8) / 8);
312596c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
312696c5ddc4Srjs   return cmd_size;
312796c5ddc4Srjs}
312896c5ddc4Srjsvoid GLAPIENTRY
312996c5ddc4Srjs_mesa_marshal_VDPAUFiniNV(void)
313096c5ddc4Srjs{
313196c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
313296c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VDPAUFiniNV);
313396c5ddc4Srjs   struct marshal_cmd_VDPAUFiniNV *cmd;
313496c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VDPAUFiniNV, cmd_size);
313596c5ddc4Srjs   (void) cmd;
313696c5ddc4Srjs}
313796c5ddc4Srjs
313896c5ddc4Srjs
313996c5ddc4Srjs/* VDPAURegisterVideoSurfaceNV: marshalled synchronously */
314096c5ddc4SrjsGLintptr GLAPIENTRY
314196c5ddc4Srjs_mesa_marshal_VDPAURegisterVideoSurfaceNV(const GLvoid * vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint * textureNames)
314296c5ddc4Srjs{
314396c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
314496c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "VDPAURegisterVideoSurfaceNV");
314596c5ddc4Srjs   return CALL_VDPAURegisterVideoSurfaceNV(ctx->CurrentServerDispatch, (vdpSurface, target, numTextureNames, textureNames));
314696c5ddc4Srjs}
314796c5ddc4Srjs
314896c5ddc4Srjs
314996c5ddc4Srjs/* VDPAURegisterOutputSurfaceNV: marshalled synchronously */
315096c5ddc4SrjsGLintptr GLAPIENTRY
315196c5ddc4Srjs_mesa_marshal_VDPAURegisterOutputSurfaceNV(const GLvoid * vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint * textureNames)
315296c5ddc4Srjs{
315396c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
315496c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "VDPAURegisterOutputSurfaceNV");
315596c5ddc4Srjs   return CALL_VDPAURegisterOutputSurfaceNV(ctx->CurrentServerDispatch, (vdpSurface, target, numTextureNames, textureNames));
315696c5ddc4Srjs}
315796c5ddc4Srjs
315896c5ddc4Srjs
315996c5ddc4Srjs/* VDPAUIsSurfaceNV: marshalled synchronously */
316096c5ddc4SrjsGLboolean GLAPIENTRY
316196c5ddc4Srjs_mesa_marshal_VDPAUIsSurfaceNV(GLintptr surface)
316296c5ddc4Srjs{
316396c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
316496c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "VDPAUIsSurfaceNV");
316596c5ddc4Srjs   return CALL_VDPAUIsSurfaceNV(ctx->CurrentServerDispatch, (surface));
316696c5ddc4Srjs}
316796c5ddc4Srjs
316896c5ddc4Srjs
316996c5ddc4Srjs/* VDPAUUnregisterSurfaceNV: marshalled asynchronously */
317096c5ddc4Srjsstruct marshal_cmd_VDPAUUnregisterSurfaceNV
317196c5ddc4Srjs{
317296c5ddc4Srjs   struct marshal_cmd_base cmd_base;
317396c5ddc4Srjs   GLintptr surface;
317496c5ddc4Srjs};
317596c5ddc4Srjsuint32_t
317696c5ddc4Srjs_mesa_unmarshal_VDPAUUnregisterSurfaceNV(struct gl_context *ctx, const struct marshal_cmd_VDPAUUnregisterSurfaceNV *cmd, const uint64_t *last)
317796c5ddc4Srjs{
317896c5ddc4Srjs   GLintptr surface = cmd->surface;
317996c5ddc4Srjs   CALL_VDPAUUnregisterSurfaceNV(ctx->CurrentServerDispatch, (surface));
318096c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VDPAUUnregisterSurfaceNV), 8) / 8);
318196c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
318296c5ddc4Srjs   return cmd_size;
318396c5ddc4Srjs}
318496c5ddc4Srjsvoid GLAPIENTRY
318596c5ddc4Srjs_mesa_marshal_VDPAUUnregisterSurfaceNV(GLintptr surface)
318696c5ddc4Srjs{
318796c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
318896c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VDPAUUnregisterSurfaceNV);
318996c5ddc4Srjs   struct marshal_cmd_VDPAUUnregisterSurfaceNV *cmd;
319096c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VDPAUUnregisterSurfaceNV, cmd_size);
319196c5ddc4Srjs   cmd->surface = surface;
319296c5ddc4Srjs}
319396c5ddc4Srjs
319496c5ddc4Srjs
319596c5ddc4Srjs/* VDPAUGetSurfaceivNV: marshalled synchronously */
319696c5ddc4Srjsvoid GLAPIENTRY
319796c5ddc4Srjs_mesa_marshal_VDPAUGetSurfaceivNV(GLintptr surface, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * values)
319896c5ddc4Srjs{
319996c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
320096c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "VDPAUGetSurfaceivNV");
320196c5ddc4Srjs   CALL_VDPAUGetSurfaceivNV(ctx->CurrentServerDispatch, (surface, pname, bufSize, length, values));
320296c5ddc4Srjs}
320396c5ddc4Srjs
320496c5ddc4Srjs
320596c5ddc4Srjs/* VDPAUSurfaceAccessNV: marshalled asynchronously */
320696c5ddc4Srjsstruct marshal_cmd_VDPAUSurfaceAccessNV
320796c5ddc4Srjs{
320896c5ddc4Srjs   struct marshal_cmd_base cmd_base;
320996c5ddc4Srjs   GLenum access;
321096c5ddc4Srjs   GLintptr surface;
321196c5ddc4Srjs};
321296c5ddc4Srjsuint32_t
321396c5ddc4Srjs_mesa_unmarshal_VDPAUSurfaceAccessNV(struct gl_context *ctx, const struct marshal_cmd_VDPAUSurfaceAccessNV *cmd, const uint64_t *last)
321496c5ddc4Srjs{
321596c5ddc4Srjs   GLintptr surface = cmd->surface;
321696c5ddc4Srjs   GLenum access = cmd->access;
321796c5ddc4Srjs   CALL_VDPAUSurfaceAccessNV(ctx->CurrentServerDispatch, (surface, access));
321896c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VDPAUSurfaceAccessNV), 8) / 8);
321996c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
322096c5ddc4Srjs   return cmd_size;
322196c5ddc4Srjs}
322296c5ddc4Srjsvoid GLAPIENTRY
322396c5ddc4Srjs_mesa_marshal_VDPAUSurfaceAccessNV(GLintptr surface, GLenum access)
322496c5ddc4Srjs{
322596c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
322696c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VDPAUSurfaceAccessNV);
322796c5ddc4Srjs   struct marshal_cmd_VDPAUSurfaceAccessNV *cmd;
322896c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VDPAUSurfaceAccessNV, cmd_size);
322996c5ddc4Srjs   cmd->surface = surface;
323096c5ddc4Srjs   cmd->access = access;
323196c5ddc4Srjs}
323296c5ddc4Srjs
323396c5ddc4Srjs
323496c5ddc4Srjs/* VDPAUMapSurfacesNV: marshalled asynchronously */
323596c5ddc4Srjsstruct marshal_cmd_VDPAUMapSurfacesNV
323696c5ddc4Srjs{
323796c5ddc4Srjs   struct marshal_cmd_base cmd_base;
323896c5ddc4Srjs   GLsizei numSurfaces;
323996c5ddc4Srjs   /* Next safe_mul(numSurfaces, 1 * sizeof(GLintptr)) bytes are GLintptr surfaces[numSurfaces] */
324096c5ddc4Srjs};
324196c5ddc4Srjsuint32_t
324296c5ddc4Srjs_mesa_unmarshal_VDPAUMapSurfacesNV(struct gl_context *ctx, const struct marshal_cmd_VDPAUMapSurfacesNV *cmd, const uint64_t *last)
324396c5ddc4Srjs{
324496c5ddc4Srjs   GLsizei numSurfaces = cmd->numSurfaces;
324596c5ddc4Srjs   GLintptr * surfaces;
324696c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
324796c5ddc4Srjs   surfaces = (GLintptr *) variable_data;
324896c5ddc4Srjs   CALL_VDPAUMapSurfacesNV(ctx->CurrentServerDispatch, (numSurfaces, surfaces));
324996c5ddc4Srjs   return cmd->cmd_base.cmd_size;
325096c5ddc4Srjs}
325196c5ddc4Srjsvoid GLAPIENTRY
325296c5ddc4Srjs_mesa_marshal_VDPAUMapSurfacesNV(GLsizei numSurfaces, const GLintptr * surfaces)
325396c5ddc4Srjs{
325496c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
325596c5ddc4Srjs   int surfaces_size = safe_mul(numSurfaces, 1 * sizeof(GLintptr));
325696c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VDPAUMapSurfacesNV) + surfaces_size;
325796c5ddc4Srjs   struct marshal_cmd_VDPAUMapSurfacesNV *cmd;
325896c5ddc4Srjs   if (unlikely(surfaces_size < 0 || (surfaces_size > 0 && !surfaces) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
325996c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "VDPAUMapSurfacesNV");
326096c5ddc4Srjs      CALL_VDPAUMapSurfacesNV(ctx->CurrentServerDispatch, (numSurfaces, surfaces));
326196c5ddc4Srjs      return;
326296c5ddc4Srjs   }
326396c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VDPAUMapSurfacesNV, cmd_size);
326496c5ddc4Srjs   cmd->numSurfaces = numSurfaces;
326596c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
326696c5ddc4Srjs   memcpy(variable_data, surfaces, surfaces_size);
326796c5ddc4Srjs}
326896c5ddc4Srjs
326996c5ddc4Srjs
327096c5ddc4Srjs/* VDPAUUnmapSurfacesNV: marshalled asynchronously */
327196c5ddc4Srjsstruct marshal_cmd_VDPAUUnmapSurfacesNV
327296c5ddc4Srjs{
327396c5ddc4Srjs   struct marshal_cmd_base cmd_base;
327496c5ddc4Srjs   GLsizei numSurfaces;
327596c5ddc4Srjs   /* Next safe_mul(numSurfaces, 1 * sizeof(GLintptr)) bytes are GLintptr surfaces[numSurfaces] */
327696c5ddc4Srjs};
327796c5ddc4Srjsuint32_t
327896c5ddc4Srjs_mesa_unmarshal_VDPAUUnmapSurfacesNV(struct gl_context *ctx, const struct marshal_cmd_VDPAUUnmapSurfacesNV *cmd, const uint64_t *last)
327996c5ddc4Srjs{
328096c5ddc4Srjs   GLsizei numSurfaces = cmd->numSurfaces;
328196c5ddc4Srjs   GLintptr * surfaces;
328296c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
328396c5ddc4Srjs   surfaces = (GLintptr *) variable_data;
328496c5ddc4Srjs   CALL_VDPAUUnmapSurfacesNV(ctx->CurrentServerDispatch, (numSurfaces, surfaces));
328596c5ddc4Srjs   return cmd->cmd_base.cmd_size;
328696c5ddc4Srjs}
328796c5ddc4Srjsvoid GLAPIENTRY
328896c5ddc4Srjs_mesa_marshal_VDPAUUnmapSurfacesNV(GLsizei numSurfaces, const GLintptr * surfaces)
328996c5ddc4Srjs{
329096c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
329196c5ddc4Srjs   int surfaces_size = safe_mul(numSurfaces, 1 * sizeof(GLintptr));
329296c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VDPAUUnmapSurfacesNV) + surfaces_size;
329396c5ddc4Srjs   struct marshal_cmd_VDPAUUnmapSurfacesNV *cmd;
329496c5ddc4Srjs   if (unlikely(surfaces_size < 0 || (surfaces_size > 0 && !surfaces) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
329596c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "VDPAUUnmapSurfacesNV");
329696c5ddc4Srjs      CALL_VDPAUUnmapSurfacesNV(ctx->CurrentServerDispatch, (numSurfaces, surfaces));
329796c5ddc4Srjs      return;
329896c5ddc4Srjs   }
329996c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VDPAUUnmapSurfacesNV, cmd_size);
330096c5ddc4Srjs   cmd->numSurfaces = numSurfaces;
330196c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
330296c5ddc4Srjs   memcpy(variable_data, surfaces, surfaces_size);
330396c5ddc4Srjs}
330496c5ddc4Srjs
330596c5ddc4Srjs
330696c5ddc4Srjs/* GetUnsignedBytevEXT: marshalled synchronously */
330796c5ddc4Srjsvoid GLAPIENTRY
330896c5ddc4Srjs_mesa_marshal_GetUnsignedBytevEXT(GLenum pname, GLubyte * data)
330996c5ddc4Srjs{
331096c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
331196c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetUnsignedBytevEXT");
331296c5ddc4Srjs   CALL_GetUnsignedBytevEXT(ctx->CurrentServerDispatch, (pname, data));
331396c5ddc4Srjs}
331496c5ddc4Srjs
331596c5ddc4Srjs
331696c5ddc4Srjs/* GetUnsignedBytei_vEXT: marshalled synchronously */
331796c5ddc4Srjsvoid GLAPIENTRY
331896c5ddc4Srjs_mesa_marshal_GetUnsignedBytei_vEXT(GLenum target, GLuint index, GLubyte * data)
331996c5ddc4Srjs{
332096c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
332196c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetUnsignedBytei_vEXT");
332296c5ddc4Srjs   CALL_GetUnsignedBytei_vEXT(ctx->CurrentServerDispatch, (target, index, data));
332396c5ddc4Srjs}
332496c5ddc4Srjs
332596c5ddc4Srjs
332696c5ddc4Srjs/* DeleteMemoryObjectsEXT: marshalled asynchronously */
332796c5ddc4Srjsstruct marshal_cmd_DeleteMemoryObjectsEXT
332896c5ddc4Srjs{
332996c5ddc4Srjs   struct marshal_cmd_base cmd_base;
333096c5ddc4Srjs   GLsizei n;
333196c5ddc4Srjs   /* Next safe_mul(n, 1 * sizeof(GLuint)) bytes are GLuint memoryObjects[n] */
333296c5ddc4Srjs};
333396c5ddc4Srjsuint32_t
333496c5ddc4Srjs_mesa_unmarshal_DeleteMemoryObjectsEXT(struct gl_context *ctx, const struct marshal_cmd_DeleteMemoryObjectsEXT *cmd, const uint64_t *last)
333596c5ddc4Srjs{
333696c5ddc4Srjs   GLsizei n = cmd->n;
333796c5ddc4Srjs   GLuint * memoryObjects;
333896c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
333996c5ddc4Srjs   memoryObjects = (GLuint *) variable_data;
334096c5ddc4Srjs   CALL_DeleteMemoryObjectsEXT(ctx->CurrentServerDispatch, (n, memoryObjects));
334196c5ddc4Srjs   return cmd->cmd_base.cmd_size;
334296c5ddc4Srjs}
334396c5ddc4Srjsvoid GLAPIENTRY
334496c5ddc4Srjs_mesa_marshal_DeleteMemoryObjectsEXT(GLsizei n, const GLuint * memoryObjects)
334596c5ddc4Srjs{
334696c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
334796c5ddc4Srjs   int memoryObjects_size = safe_mul(n, 1 * sizeof(GLuint));
334896c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_DeleteMemoryObjectsEXT) + memoryObjects_size;
334996c5ddc4Srjs   struct marshal_cmd_DeleteMemoryObjectsEXT *cmd;
335096c5ddc4Srjs   if (unlikely(memoryObjects_size < 0 || (memoryObjects_size > 0 && !memoryObjects) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
335196c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "DeleteMemoryObjectsEXT");
335296c5ddc4Srjs      CALL_DeleteMemoryObjectsEXT(ctx->CurrentServerDispatch, (n, memoryObjects));
335396c5ddc4Srjs      return;
335496c5ddc4Srjs   }
335596c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_DeleteMemoryObjectsEXT, cmd_size);
335696c5ddc4Srjs   cmd->n = n;
335796c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
335896c5ddc4Srjs   memcpy(variable_data, memoryObjects, memoryObjects_size);
335996c5ddc4Srjs}
336096c5ddc4Srjs
336196c5ddc4Srjs
336296c5ddc4Srjs/* IsMemoryObjectEXT: marshalled synchronously */
336396c5ddc4SrjsGLboolean GLAPIENTRY
336496c5ddc4Srjs_mesa_marshal_IsMemoryObjectEXT(GLuint memoryObject)
336596c5ddc4Srjs{
336696c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
336796c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "IsMemoryObjectEXT");
336896c5ddc4Srjs   return CALL_IsMemoryObjectEXT(ctx->CurrentServerDispatch, (memoryObject));
336996c5ddc4Srjs}
337096c5ddc4Srjs
337196c5ddc4Srjs
337296c5ddc4Srjs/* CreateMemoryObjectsEXT: marshalled synchronously */
337396c5ddc4Srjsvoid GLAPIENTRY
337496c5ddc4Srjs_mesa_marshal_CreateMemoryObjectsEXT(GLsizei n, GLuint * memoryObjects)
337596c5ddc4Srjs{
337696c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
337796c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "CreateMemoryObjectsEXT");
337896c5ddc4Srjs   CALL_CreateMemoryObjectsEXT(ctx->CurrentServerDispatch, (n, memoryObjects));
337996c5ddc4Srjs}
338096c5ddc4Srjs
338196c5ddc4Srjs
338296c5ddc4Srjs/* MemoryObjectParameterivEXT: marshalled asynchronously */
338396c5ddc4Srjsstruct marshal_cmd_MemoryObjectParameterivEXT
338496c5ddc4Srjs{
338596c5ddc4Srjs   struct marshal_cmd_base cmd_base;
338696c5ddc4Srjs   GLuint memoryObject;
338796c5ddc4Srjs   GLenum pname;
338896c5ddc4Srjs   /* Next safe_mul(_mesa_memobj_enum_to_count(pname), 1 * sizeof(GLint)) bytes are GLint params[_mesa_memobj_enum_to_count(pname)] */
338996c5ddc4Srjs};
339096c5ddc4Srjsuint32_t
339196c5ddc4Srjs_mesa_unmarshal_MemoryObjectParameterivEXT(struct gl_context *ctx, const struct marshal_cmd_MemoryObjectParameterivEXT *cmd, const uint64_t *last)
339296c5ddc4Srjs{
339396c5ddc4Srjs   GLuint memoryObject = cmd->memoryObject;
339496c5ddc4Srjs   GLenum pname = cmd->pname;
339596c5ddc4Srjs   GLint * params;
339696c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
339796c5ddc4Srjs   params = (GLint *) variable_data;
339896c5ddc4Srjs   CALL_MemoryObjectParameterivEXT(ctx->CurrentServerDispatch, (memoryObject, pname, params));
339996c5ddc4Srjs   return cmd->cmd_base.cmd_size;
340096c5ddc4Srjs}
340196c5ddc4Srjsvoid GLAPIENTRY
340296c5ddc4Srjs_mesa_marshal_MemoryObjectParameterivEXT(GLuint memoryObject, GLenum pname, const GLint * params)
340396c5ddc4Srjs{
340496c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
340596c5ddc4Srjs   int params_size = safe_mul(_mesa_memobj_enum_to_count(pname), 1 * sizeof(GLint));
340696c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_MemoryObjectParameterivEXT) + params_size;
340796c5ddc4Srjs   struct marshal_cmd_MemoryObjectParameterivEXT *cmd;
340896c5ddc4Srjs   if (unlikely(params_size < 0 || (params_size > 0 && !params) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
340996c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "MemoryObjectParameterivEXT");
341096c5ddc4Srjs      CALL_MemoryObjectParameterivEXT(ctx->CurrentServerDispatch, (memoryObject, pname, params));
341196c5ddc4Srjs      return;
341296c5ddc4Srjs   }
341396c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_MemoryObjectParameterivEXT, cmd_size);
341496c5ddc4Srjs   cmd->memoryObject = memoryObject;
341596c5ddc4Srjs   cmd->pname = pname;
341696c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
341796c5ddc4Srjs   memcpy(variable_data, params, params_size);
341896c5ddc4Srjs}
341996c5ddc4Srjs
342096c5ddc4Srjs
342196c5ddc4Srjs/* GetMemoryObjectParameterivEXT: marshalled synchronously */
342296c5ddc4Srjsvoid GLAPIENTRY
342396c5ddc4Srjs_mesa_marshal_GetMemoryObjectParameterivEXT(GLuint memoryObject, GLenum pname, GLint * params)
342496c5ddc4Srjs{
342596c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
342696c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetMemoryObjectParameterivEXT");
342796c5ddc4Srjs   CALL_GetMemoryObjectParameterivEXT(ctx->CurrentServerDispatch, (memoryObject, pname, params));
342896c5ddc4Srjs}
342996c5ddc4Srjs
343096c5ddc4Srjs
343196c5ddc4Srjs/* TexStorageMem2DEXT: marshalled asynchronously */
343296c5ddc4Srjsstruct marshal_cmd_TexStorageMem2DEXT
343396c5ddc4Srjs{
343496c5ddc4Srjs   struct marshal_cmd_base cmd_base;
343596c5ddc4Srjs   GLenum target;
343696c5ddc4Srjs   GLsizei levels;
343796c5ddc4Srjs   GLenum internalFormat;
343896c5ddc4Srjs   GLsizei width;
343996c5ddc4Srjs   GLsizei height;
344096c5ddc4Srjs   GLuint memory;
344196c5ddc4Srjs   GLuint64 offset;
344296c5ddc4Srjs};
344396c5ddc4Srjsuint32_t
344496c5ddc4Srjs_mesa_unmarshal_TexStorageMem2DEXT(struct gl_context *ctx, const struct marshal_cmd_TexStorageMem2DEXT *cmd, const uint64_t *last)
344596c5ddc4Srjs{
344696c5ddc4Srjs   GLenum target = cmd->target;
344796c5ddc4Srjs   GLsizei levels = cmd->levels;
344896c5ddc4Srjs   GLenum internalFormat = cmd->internalFormat;
344996c5ddc4Srjs   GLsizei width = cmd->width;
345096c5ddc4Srjs   GLsizei height = cmd->height;
345196c5ddc4Srjs   GLuint memory = cmd->memory;
345296c5ddc4Srjs   GLuint64 offset = cmd->offset;
345396c5ddc4Srjs   CALL_TexStorageMem2DEXT(ctx->CurrentServerDispatch, (target, levels, internalFormat, width, height, memory, offset));
345496c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TexStorageMem2DEXT), 8) / 8);
345596c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
345696c5ddc4Srjs   return cmd_size;
345796c5ddc4Srjs}
345896c5ddc4Srjsvoid GLAPIENTRY
345996c5ddc4Srjs_mesa_marshal_TexStorageMem2DEXT(GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset)
346096c5ddc4Srjs{
346196c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
346296c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_TexStorageMem2DEXT);
346396c5ddc4Srjs   struct marshal_cmd_TexStorageMem2DEXT *cmd;
346496c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexStorageMem2DEXT, cmd_size);
346596c5ddc4Srjs   cmd->target = target;
346696c5ddc4Srjs   cmd->levels = levels;
346796c5ddc4Srjs   cmd->internalFormat = internalFormat;
346896c5ddc4Srjs   cmd->width = width;
346996c5ddc4Srjs   cmd->height = height;
347096c5ddc4Srjs   cmd->memory = memory;
347196c5ddc4Srjs   cmd->offset = offset;
347296c5ddc4Srjs}
347396c5ddc4Srjs
347496c5ddc4Srjs
347596c5ddc4Srjs/* TexStorageMem2DMultisampleEXT: marshalled asynchronously */
347696c5ddc4Srjsstruct marshal_cmd_TexStorageMem2DMultisampleEXT
347796c5ddc4Srjs{
347896c5ddc4Srjs   struct marshal_cmd_base cmd_base;
347996c5ddc4Srjs   GLboolean fixedSampleLocations;
348096c5ddc4Srjs   GLenum target;
348196c5ddc4Srjs   GLsizei samples;
348296c5ddc4Srjs   GLenum internalFormat;
348396c5ddc4Srjs   GLsizei width;
348496c5ddc4Srjs   GLsizei height;
348596c5ddc4Srjs   GLuint memory;
348696c5ddc4Srjs   GLuint64 offset;
348796c5ddc4Srjs};
348896c5ddc4Srjsuint32_t
348996c5ddc4Srjs_mesa_unmarshal_TexStorageMem2DMultisampleEXT(struct gl_context *ctx, const struct marshal_cmd_TexStorageMem2DMultisampleEXT *cmd, const uint64_t *last)
349096c5ddc4Srjs{
349196c5ddc4Srjs   GLenum target = cmd->target;
349296c5ddc4Srjs   GLsizei samples = cmd->samples;
349396c5ddc4Srjs   GLenum internalFormat = cmd->internalFormat;
349496c5ddc4Srjs   GLsizei width = cmd->width;
349596c5ddc4Srjs   GLsizei height = cmd->height;
349696c5ddc4Srjs   GLboolean fixedSampleLocations = cmd->fixedSampleLocations;
349796c5ddc4Srjs   GLuint memory = cmd->memory;
349896c5ddc4Srjs   GLuint64 offset = cmd->offset;
349996c5ddc4Srjs   CALL_TexStorageMem2DMultisampleEXT(ctx->CurrentServerDispatch, (target, samples, internalFormat, width, height, fixedSampleLocations, memory, offset));
350096c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TexStorageMem2DMultisampleEXT), 8) / 8);
350196c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
350296c5ddc4Srjs   return cmd_size;
350396c5ddc4Srjs}
350496c5ddc4Srjsvoid GLAPIENTRY
350596c5ddc4Srjs_mesa_marshal_TexStorageMem2DMultisampleEXT(GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset)
350696c5ddc4Srjs{
350796c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
350896c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_TexStorageMem2DMultisampleEXT);
350996c5ddc4Srjs   struct marshal_cmd_TexStorageMem2DMultisampleEXT *cmd;
351096c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexStorageMem2DMultisampleEXT, cmd_size);
351196c5ddc4Srjs   cmd->target = target;
351296c5ddc4Srjs   cmd->samples = samples;
351396c5ddc4Srjs   cmd->internalFormat = internalFormat;
351496c5ddc4Srjs   cmd->width = width;
351596c5ddc4Srjs   cmd->height = height;
351696c5ddc4Srjs   cmd->fixedSampleLocations = fixedSampleLocations;
351796c5ddc4Srjs   cmd->memory = memory;
351896c5ddc4Srjs   cmd->offset = offset;
351996c5ddc4Srjs}
352096c5ddc4Srjs
352196c5ddc4Srjs
352296c5ddc4Srjs/* TexStorageMem3DEXT: marshalled asynchronously */
352396c5ddc4Srjsstruct marshal_cmd_TexStorageMem3DEXT
352496c5ddc4Srjs{
352596c5ddc4Srjs   struct marshal_cmd_base cmd_base;
352696c5ddc4Srjs   GLenum target;
352796c5ddc4Srjs   GLsizei levels;
352896c5ddc4Srjs   GLenum internalFormat;
352996c5ddc4Srjs   GLsizei width;
353096c5ddc4Srjs   GLsizei height;
353196c5ddc4Srjs   GLsizei depth;
353296c5ddc4Srjs   GLuint memory;
353396c5ddc4Srjs   GLuint64 offset;
353496c5ddc4Srjs};
353596c5ddc4Srjsuint32_t
353696c5ddc4Srjs_mesa_unmarshal_TexStorageMem3DEXT(struct gl_context *ctx, const struct marshal_cmd_TexStorageMem3DEXT *cmd, const uint64_t *last)
353796c5ddc4Srjs{
353896c5ddc4Srjs   GLenum target = cmd->target;
353996c5ddc4Srjs   GLsizei levels = cmd->levels;
354096c5ddc4Srjs   GLenum internalFormat = cmd->internalFormat;
354196c5ddc4Srjs   GLsizei width = cmd->width;
354296c5ddc4Srjs   GLsizei height = cmd->height;
354396c5ddc4Srjs   GLsizei depth = cmd->depth;
354496c5ddc4Srjs   GLuint memory = cmd->memory;
354596c5ddc4Srjs   GLuint64 offset = cmd->offset;
354696c5ddc4Srjs   CALL_TexStorageMem3DEXT(ctx->CurrentServerDispatch, (target, levels, internalFormat, width, height, depth, memory, offset));
354796c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TexStorageMem3DEXT), 8) / 8);
354896c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
354996c5ddc4Srjs   return cmd_size;
355096c5ddc4Srjs}
355196c5ddc4Srjsvoid GLAPIENTRY
355296c5ddc4Srjs_mesa_marshal_TexStorageMem3DEXT(GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset)
355396c5ddc4Srjs{
355496c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
355596c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_TexStorageMem3DEXT);
355696c5ddc4Srjs   struct marshal_cmd_TexStorageMem3DEXT *cmd;
355796c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexStorageMem3DEXT, cmd_size);
355896c5ddc4Srjs   cmd->target = target;
355996c5ddc4Srjs   cmd->levels = levels;
356096c5ddc4Srjs   cmd->internalFormat = internalFormat;
356196c5ddc4Srjs   cmd->width = width;
356296c5ddc4Srjs   cmd->height = height;
356396c5ddc4Srjs   cmd->depth = depth;
356496c5ddc4Srjs   cmd->memory = memory;
356596c5ddc4Srjs   cmd->offset = offset;
356696c5ddc4Srjs}
356796c5ddc4Srjs
356896c5ddc4Srjs
356996c5ddc4Srjs/* TexStorageMem3DMultisampleEXT: marshalled asynchronously */
357096c5ddc4Srjsstruct marshal_cmd_TexStorageMem3DMultisampleEXT
357196c5ddc4Srjs{
357296c5ddc4Srjs   struct marshal_cmd_base cmd_base;
357396c5ddc4Srjs   GLboolean fixedSampleLocations;
357496c5ddc4Srjs   GLenum target;
357596c5ddc4Srjs   GLsizei samples;
357696c5ddc4Srjs   GLenum internalFormat;
357796c5ddc4Srjs   GLsizei width;
357896c5ddc4Srjs   GLsizei height;
357996c5ddc4Srjs   GLsizei depth;
358096c5ddc4Srjs   GLuint memory;
358196c5ddc4Srjs   GLuint64 offset;
358296c5ddc4Srjs};
358396c5ddc4Srjsuint32_t
358496c5ddc4Srjs_mesa_unmarshal_TexStorageMem3DMultisampleEXT(struct gl_context *ctx, const struct marshal_cmd_TexStorageMem3DMultisampleEXT *cmd, const uint64_t *last)
358596c5ddc4Srjs{
358696c5ddc4Srjs   GLenum target = cmd->target;
358796c5ddc4Srjs   GLsizei samples = cmd->samples;
358896c5ddc4Srjs   GLenum internalFormat = cmd->internalFormat;
358996c5ddc4Srjs   GLsizei width = cmd->width;
359096c5ddc4Srjs   GLsizei height = cmd->height;
359196c5ddc4Srjs   GLsizei depth = cmd->depth;
359296c5ddc4Srjs   GLboolean fixedSampleLocations = cmd->fixedSampleLocations;
359396c5ddc4Srjs   GLuint memory = cmd->memory;
359496c5ddc4Srjs   GLuint64 offset = cmd->offset;
359596c5ddc4Srjs   CALL_TexStorageMem3DMultisampleEXT(ctx->CurrentServerDispatch, (target, samples, internalFormat, width, height, depth, fixedSampleLocations, memory, offset));
359696c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TexStorageMem3DMultisampleEXT), 8) / 8);
359796c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
359896c5ddc4Srjs   return cmd_size;
359996c5ddc4Srjs}
360096c5ddc4Srjsvoid GLAPIENTRY
360196c5ddc4Srjs_mesa_marshal_TexStorageMem3DMultisampleEXT(GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset)
360296c5ddc4Srjs{
360396c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
360496c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_TexStorageMem3DMultisampleEXT);
360596c5ddc4Srjs   struct marshal_cmd_TexStorageMem3DMultisampleEXT *cmd;
360696c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexStorageMem3DMultisampleEXT, cmd_size);
360796c5ddc4Srjs   cmd->target = target;
360896c5ddc4Srjs   cmd->samples = samples;
360996c5ddc4Srjs   cmd->internalFormat = internalFormat;
361096c5ddc4Srjs   cmd->width = width;
361196c5ddc4Srjs   cmd->height = height;
361296c5ddc4Srjs   cmd->depth = depth;
361396c5ddc4Srjs   cmd->fixedSampleLocations = fixedSampleLocations;
361496c5ddc4Srjs   cmd->memory = memory;
361596c5ddc4Srjs   cmd->offset = offset;
361696c5ddc4Srjs}
361796c5ddc4Srjs
361896c5ddc4Srjs
361996c5ddc4Srjs/* BufferStorageMemEXT: marshalled asynchronously */
362096c5ddc4Srjsstruct marshal_cmd_BufferStorageMemEXT
362196c5ddc4Srjs{
362296c5ddc4Srjs   struct marshal_cmd_base cmd_base;
362396c5ddc4Srjs   GLenum target;
362496c5ddc4Srjs   GLuint memory;
362596c5ddc4Srjs   GLsizeiptr size;
362696c5ddc4Srjs   GLuint64 offset;
362796c5ddc4Srjs};
362896c5ddc4Srjsuint32_t
362996c5ddc4Srjs_mesa_unmarshal_BufferStorageMemEXT(struct gl_context *ctx, const struct marshal_cmd_BufferStorageMemEXT *cmd, const uint64_t *last)
363096c5ddc4Srjs{
363196c5ddc4Srjs   GLenum target = cmd->target;
363296c5ddc4Srjs   GLsizeiptr size = cmd->size;
363396c5ddc4Srjs   GLuint memory = cmd->memory;
363496c5ddc4Srjs   GLuint64 offset = cmd->offset;
363596c5ddc4Srjs   CALL_BufferStorageMemEXT(ctx->CurrentServerDispatch, (target, size, memory, offset));
363696c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_BufferStorageMemEXT), 8) / 8);
363796c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
363896c5ddc4Srjs   return cmd_size;
363996c5ddc4Srjs}
364096c5ddc4Srjsvoid GLAPIENTRY
364196c5ddc4Srjs_mesa_marshal_BufferStorageMemEXT(GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset)
364296c5ddc4Srjs{
364396c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
364496c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_BufferStorageMemEXT);
364596c5ddc4Srjs   struct marshal_cmd_BufferStorageMemEXT *cmd;
364696c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_BufferStorageMemEXT, cmd_size);
364796c5ddc4Srjs   cmd->target = target;
364896c5ddc4Srjs   cmd->size = size;
364996c5ddc4Srjs   cmd->memory = memory;
365096c5ddc4Srjs   cmd->offset = offset;
365196c5ddc4Srjs}
365296c5ddc4Srjs
365396c5ddc4Srjs
365496c5ddc4Srjs/* TextureStorageMem2DEXT: marshalled asynchronously */
365596c5ddc4Srjsstruct marshal_cmd_TextureStorageMem2DEXT
365696c5ddc4Srjs{
365796c5ddc4Srjs   struct marshal_cmd_base cmd_base;
365896c5ddc4Srjs   GLenum texture;
365996c5ddc4Srjs   GLsizei levels;
366096c5ddc4Srjs   GLenum internalFormat;
366196c5ddc4Srjs   GLsizei width;
366296c5ddc4Srjs   GLsizei height;
366396c5ddc4Srjs   GLuint memory;
366496c5ddc4Srjs   GLuint64 offset;
366596c5ddc4Srjs};
366696c5ddc4Srjsuint32_t
366796c5ddc4Srjs_mesa_unmarshal_TextureStorageMem2DEXT(struct gl_context *ctx, const struct marshal_cmd_TextureStorageMem2DEXT *cmd, const uint64_t *last)
366896c5ddc4Srjs{
366996c5ddc4Srjs   GLenum texture = cmd->texture;
367096c5ddc4Srjs   GLsizei levels = cmd->levels;
367196c5ddc4Srjs   GLenum internalFormat = cmd->internalFormat;
367296c5ddc4Srjs   GLsizei width = cmd->width;
367396c5ddc4Srjs   GLsizei height = cmd->height;
367496c5ddc4Srjs   GLuint memory = cmd->memory;
367596c5ddc4Srjs   GLuint64 offset = cmd->offset;
367696c5ddc4Srjs   CALL_TextureStorageMem2DEXT(ctx->CurrentServerDispatch, (texture, levels, internalFormat, width, height, memory, offset));
367796c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TextureStorageMem2DEXT), 8) / 8);
367896c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
367996c5ddc4Srjs   return cmd_size;
368096c5ddc4Srjs}
368196c5ddc4Srjsvoid GLAPIENTRY
368296c5ddc4Srjs_mesa_marshal_TextureStorageMem2DEXT(GLenum texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset)
368396c5ddc4Srjs{
368496c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
368596c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_TextureStorageMem2DEXT);
368696c5ddc4Srjs   struct marshal_cmd_TextureStorageMem2DEXT *cmd;
368796c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TextureStorageMem2DEXT, cmd_size);
368896c5ddc4Srjs   cmd->texture = texture;
368996c5ddc4Srjs   cmd->levels = levels;
369096c5ddc4Srjs   cmd->internalFormat = internalFormat;
369196c5ddc4Srjs   cmd->width = width;
369296c5ddc4Srjs   cmd->height = height;
369396c5ddc4Srjs   cmd->memory = memory;
369496c5ddc4Srjs   cmd->offset = offset;
369596c5ddc4Srjs}
369696c5ddc4Srjs
369796c5ddc4Srjs
369896c5ddc4Srjs/* TextureStorageMem2DMultisampleEXT: marshalled asynchronously */
369996c5ddc4Srjsstruct marshal_cmd_TextureStorageMem2DMultisampleEXT
370096c5ddc4Srjs{
370196c5ddc4Srjs   struct marshal_cmd_base cmd_base;
370296c5ddc4Srjs   GLboolean fixedSampleLocations;
370396c5ddc4Srjs   GLuint texture;
370496c5ddc4Srjs   GLsizei samples;
370596c5ddc4Srjs   GLenum internalFormat;
370696c5ddc4Srjs   GLsizei width;
370796c5ddc4Srjs   GLsizei height;
370896c5ddc4Srjs   GLuint memory;
370996c5ddc4Srjs   GLuint64 offset;
371096c5ddc4Srjs};
371196c5ddc4Srjsuint32_t
371296c5ddc4Srjs_mesa_unmarshal_TextureStorageMem2DMultisampleEXT(struct gl_context *ctx, const struct marshal_cmd_TextureStorageMem2DMultisampleEXT *cmd, const uint64_t *last)
371396c5ddc4Srjs{
371496c5ddc4Srjs   GLuint texture = cmd->texture;
371596c5ddc4Srjs   GLsizei samples = cmd->samples;
371696c5ddc4Srjs   GLenum internalFormat = cmd->internalFormat;
371796c5ddc4Srjs   GLsizei width = cmd->width;
371896c5ddc4Srjs   GLsizei height = cmd->height;
371996c5ddc4Srjs   GLboolean fixedSampleLocations = cmd->fixedSampleLocations;
372096c5ddc4Srjs   GLuint memory = cmd->memory;
372196c5ddc4Srjs   GLuint64 offset = cmd->offset;
372296c5ddc4Srjs   CALL_TextureStorageMem2DMultisampleEXT(ctx->CurrentServerDispatch, (texture, samples, internalFormat, width, height, fixedSampleLocations, memory, offset));
372396c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TextureStorageMem2DMultisampleEXT), 8) / 8);
372496c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
372596c5ddc4Srjs   return cmd_size;
372696c5ddc4Srjs}
372796c5ddc4Srjsvoid GLAPIENTRY
372896c5ddc4Srjs_mesa_marshal_TextureStorageMem2DMultisampleEXT(GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset)
372996c5ddc4Srjs{
373096c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
373196c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_TextureStorageMem2DMultisampleEXT);
373296c5ddc4Srjs   struct marshal_cmd_TextureStorageMem2DMultisampleEXT *cmd;
373396c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TextureStorageMem2DMultisampleEXT, cmd_size);
373496c5ddc4Srjs   cmd->texture = texture;
373596c5ddc4Srjs   cmd->samples = samples;
373696c5ddc4Srjs   cmd->internalFormat = internalFormat;
373796c5ddc4Srjs   cmd->width = width;
373896c5ddc4Srjs   cmd->height = height;
373996c5ddc4Srjs   cmd->fixedSampleLocations = fixedSampleLocations;
374096c5ddc4Srjs   cmd->memory = memory;
374196c5ddc4Srjs   cmd->offset = offset;
374296c5ddc4Srjs}
374396c5ddc4Srjs
374496c5ddc4Srjs
374596c5ddc4Srjs/* TextureStorageMem3DEXT: marshalled asynchronously */
374696c5ddc4Srjsstruct marshal_cmd_TextureStorageMem3DEXT
374796c5ddc4Srjs{
374896c5ddc4Srjs   struct marshal_cmd_base cmd_base;
374996c5ddc4Srjs   GLuint texture;
375096c5ddc4Srjs   GLsizei levels;
375196c5ddc4Srjs   GLenum internalFormat;
375296c5ddc4Srjs   GLsizei width;
375396c5ddc4Srjs   GLsizei height;
375496c5ddc4Srjs   GLsizei depth;
375596c5ddc4Srjs   GLuint memory;
375696c5ddc4Srjs   GLuint64 offset;
375796c5ddc4Srjs};
375896c5ddc4Srjsuint32_t
375996c5ddc4Srjs_mesa_unmarshal_TextureStorageMem3DEXT(struct gl_context *ctx, const struct marshal_cmd_TextureStorageMem3DEXT *cmd, const uint64_t *last)
376096c5ddc4Srjs{
376196c5ddc4Srjs   GLuint texture = cmd->texture;
376296c5ddc4Srjs   GLsizei levels = cmd->levels;
376396c5ddc4Srjs   GLenum internalFormat = cmd->internalFormat;
376496c5ddc4Srjs   GLsizei width = cmd->width;
376596c5ddc4Srjs   GLsizei height = cmd->height;
376696c5ddc4Srjs   GLsizei depth = cmd->depth;
376796c5ddc4Srjs   GLuint memory = cmd->memory;
376896c5ddc4Srjs   GLuint64 offset = cmd->offset;
376996c5ddc4Srjs   CALL_TextureStorageMem3DEXT(ctx->CurrentServerDispatch, (texture, levels, internalFormat, width, height, depth, memory, offset));
377096c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TextureStorageMem3DEXT), 8) / 8);
377196c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
377296c5ddc4Srjs   return cmd_size;
377396c5ddc4Srjs}
377496c5ddc4Srjsvoid GLAPIENTRY
377596c5ddc4Srjs_mesa_marshal_TextureStorageMem3DEXT(GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset)
377696c5ddc4Srjs{
377796c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
377896c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_TextureStorageMem3DEXT);
377996c5ddc4Srjs   struct marshal_cmd_TextureStorageMem3DEXT *cmd;
378096c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TextureStorageMem3DEXT, cmd_size);
378196c5ddc4Srjs   cmd->texture = texture;
378296c5ddc4Srjs   cmd->levels = levels;
378396c5ddc4Srjs   cmd->internalFormat = internalFormat;
378496c5ddc4Srjs   cmd->width = width;
378596c5ddc4Srjs   cmd->height = height;
378696c5ddc4Srjs   cmd->depth = depth;
378796c5ddc4Srjs   cmd->memory = memory;
378896c5ddc4Srjs   cmd->offset = offset;
378996c5ddc4Srjs}
379096c5ddc4Srjs
379196c5ddc4Srjs
379296c5ddc4Srjs/* TextureStorageMem3DMultisampleEXT: marshalled asynchronously */
379396c5ddc4Srjsstruct marshal_cmd_TextureStorageMem3DMultisampleEXT
379496c5ddc4Srjs{
379596c5ddc4Srjs   struct marshal_cmd_base cmd_base;
379696c5ddc4Srjs   GLboolean fixedSampleLocations;
379796c5ddc4Srjs   GLuint texture;
379896c5ddc4Srjs   GLsizei samples;
379996c5ddc4Srjs   GLenum internalFormat;
380096c5ddc4Srjs   GLsizei width;
380196c5ddc4Srjs   GLsizei height;
380296c5ddc4Srjs   GLsizei depth;
380396c5ddc4Srjs   GLuint memory;
380496c5ddc4Srjs   GLuint64 offset;
380596c5ddc4Srjs};
380696c5ddc4Srjsuint32_t
380796c5ddc4Srjs_mesa_unmarshal_TextureStorageMem3DMultisampleEXT(struct gl_context *ctx, const struct marshal_cmd_TextureStorageMem3DMultisampleEXT *cmd, const uint64_t *last)
380896c5ddc4Srjs{
380996c5ddc4Srjs   GLuint texture = cmd->texture;
381096c5ddc4Srjs   GLsizei samples = cmd->samples;
381196c5ddc4Srjs   GLenum internalFormat = cmd->internalFormat;
381296c5ddc4Srjs   GLsizei width = cmd->width;
381396c5ddc4Srjs   GLsizei height = cmd->height;
381496c5ddc4Srjs   GLsizei depth = cmd->depth;
381596c5ddc4Srjs   GLboolean fixedSampleLocations = cmd->fixedSampleLocations;
381696c5ddc4Srjs   GLuint memory = cmd->memory;
381796c5ddc4Srjs   GLuint64 offset = cmd->offset;
381896c5ddc4Srjs   CALL_TextureStorageMem3DMultisampleEXT(ctx->CurrentServerDispatch, (texture, samples, internalFormat, width, height, depth, fixedSampleLocations, memory, offset));
381996c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TextureStorageMem3DMultisampleEXT), 8) / 8);
382096c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
382196c5ddc4Srjs   return cmd_size;
382296c5ddc4Srjs}
382396c5ddc4Srjsvoid GLAPIENTRY
382496c5ddc4Srjs_mesa_marshal_TextureStorageMem3DMultisampleEXT(GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset)
382596c5ddc4Srjs{
382696c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
382796c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_TextureStorageMem3DMultisampleEXT);
382896c5ddc4Srjs   struct marshal_cmd_TextureStorageMem3DMultisampleEXT *cmd;
382996c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TextureStorageMem3DMultisampleEXT, cmd_size);
383096c5ddc4Srjs   cmd->texture = texture;
383196c5ddc4Srjs   cmd->samples = samples;
383296c5ddc4Srjs   cmd->internalFormat = internalFormat;
383396c5ddc4Srjs   cmd->width = width;
383496c5ddc4Srjs   cmd->height = height;
383596c5ddc4Srjs   cmd->depth = depth;
383696c5ddc4Srjs   cmd->fixedSampleLocations = fixedSampleLocations;
383796c5ddc4Srjs   cmd->memory = memory;
383896c5ddc4Srjs   cmd->offset = offset;
383996c5ddc4Srjs}
384096c5ddc4Srjs
384196c5ddc4Srjs
384296c5ddc4Srjs/* NamedBufferStorageMemEXT: marshalled asynchronously */
384396c5ddc4Srjsstruct marshal_cmd_NamedBufferStorageMemEXT
384496c5ddc4Srjs{
384596c5ddc4Srjs   struct marshal_cmd_base cmd_base;
384696c5ddc4Srjs   GLuint buffer;
384796c5ddc4Srjs   GLuint memory;
384896c5ddc4Srjs   GLsizeiptr size;
384996c5ddc4Srjs   GLuint64 offset;
385096c5ddc4Srjs};
385196c5ddc4Srjsuint32_t
385296c5ddc4Srjs_mesa_unmarshal_NamedBufferStorageMemEXT(struct gl_context *ctx, const struct marshal_cmd_NamedBufferStorageMemEXT *cmd, const uint64_t *last)
385396c5ddc4Srjs{
385496c5ddc4Srjs   GLuint buffer = cmd->buffer;
385596c5ddc4Srjs   GLsizeiptr size = cmd->size;
385696c5ddc4Srjs   GLuint memory = cmd->memory;
385796c5ddc4Srjs   GLuint64 offset = cmd->offset;
385896c5ddc4Srjs   CALL_NamedBufferStorageMemEXT(ctx->CurrentServerDispatch, (buffer, size, memory, offset));
385996c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_NamedBufferStorageMemEXT), 8) / 8);
386096c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
386196c5ddc4Srjs   return cmd_size;
386296c5ddc4Srjs}
386396c5ddc4Srjsvoid GLAPIENTRY
386496c5ddc4Srjs_mesa_marshal_NamedBufferStorageMemEXT(GLuint buffer, GLsizeiptr size, GLuint memory, GLuint64 offset)
386596c5ddc4Srjs{
386696c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
386796c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_NamedBufferStorageMemEXT);
386896c5ddc4Srjs   struct marshal_cmd_NamedBufferStorageMemEXT *cmd;
386996c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_NamedBufferStorageMemEXT, cmd_size);
387096c5ddc4Srjs   cmd->buffer = buffer;
387196c5ddc4Srjs   cmd->size = size;
387296c5ddc4Srjs   cmd->memory = memory;
387396c5ddc4Srjs   cmd->offset = offset;
387496c5ddc4Srjs}
387596c5ddc4Srjs
387696c5ddc4Srjs
387796c5ddc4Srjs/* TexStorageMem1DEXT: marshalled asynchronously */
387896c5ddc4Srjsstruct marshal_cmd_TexStorageMem1DEXT
387996c5ddc4Srjs{
388096c5ddc4Srjs   struct marshal_cmd_base cmd_base;
388196c5ddc4Srjs   GLenum target;
388296c5ddc4Srjs   GLsizei levels;
388396c5ddc4Srjs   GLenum internalFormat;
388496c5ddc4Srjs   GLsizei width;
388596c5ddc4Srjs   GLuint memory;
388696c5ddc4Srjs   GLuint64 offset;
388796c5ddc4Srjs};
388896c5ddc4Srjsuint32_t
388996c5ddc4Srjs_mesa_unmarshal_TexStorageMem1DEXT(struct gl_context *ctx, const struct marshal_cmd_TexStorageMem1DEXT *cmd, const uint64_t *last)
389096c5ddc4Srjs{
389196c5ddc4Srjs   GLenum target = cmd->target;
389296c5ddc4Srjs   GLsizei levels = cmd->levels;
389396c5ddc4Srjs   GLenum internalFormat = cmd->internalFormat;
389496c5ddc4Srjs   GLsizei width = cmd->width;
389596c5ddc4Srjs   GLuint memory = cmd->memory;
389696c5ddc4Srjs   GLuint64 offset = cmd->offset;
389796c5ddc4Srjs   CALL_TexStorageMem1DEXT(ctx->CurrentServerDispatch, (target, levels, internalFormat, width, memory, offset));
389896c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TexStorageMem1DEXT), 8) / 8);
389996c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
390096c5ddc4Srjs   return cmd_size;
390196c5ddc4Srjs}
390296c5ddc4Srjsvoid GLAPIENTRY
390396c5ddc4Srjs_mesa_marshal_TexStorageMem1DEXT(GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset)
390496c5ddc4Srjs{
390596c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
390696c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_TexStorageMem1DEXT);
390796c5ddc4Srjs   struct marshal_cmd_TexStorageMem1DEXT *cmd;
390896c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexStorageMem1DEXT, cmd_size);
390996c5ddc4Srjs   cmd->target = target;
391096c5ddc4Srjs   cmd->levels = levels;
391196c5ddc4Srjs   cmd->internalFormat = internalFormat;
391296c5ddc4Srjs   cmd->width = width;
391396c5ddc4Srjs   cmd->memory = memory;
391496c5ddc4Srjs   cmd->offset = offset;
391596c5ddc4Srjs}
391696c5ddc4Srjs
391796c5ddc4Srjs
391896c5ddc4Srjs/* TextureStorageMem1DEXT: marshalled asynchronously */
391996c5ddc4Srjsstruct marshal_cmd_TextureStorageMem1DEXT
392096c5ddc4Srjs{
392196c5ddc4Srjs   struct marshal_cmd_base cmd_base;
392296c5ddc4Srjs   GLuint texture;
392396c5ddc4Srjs   GLsizei levels;
392496c5ddc4Srjs   GLenum internalFormat;
392596c5ddc4Srjs   GLsizei width;
392696c5ddc4Srjs   GLuint memory;
392796c5ddc4Srjs   GLuint64 offset;
392896c5ddc4Srjs};
392996c5ddc4Srjsuint32_t
393096c5ddc4Srjs_mesa_unmarshal_TextureStorageMem1DEXT(struct gl_context *ctx, const struct marshal_cmd_TextureStorageMem1DEXT *cmd, const uint64_t *last)
393196c5ddc4Srjs{
393296c5ddc4Srjs   GLuint texture = cmd->texture;
393396c5ddc4Srjs   GLsizei levels = cmd->levels;
393496c5ddc4Srjs   GLenum internalFormat = cmd->internalFormat;
393596c5ddc4Srjs   GLsizei width = cmd->width;
393696c5ddc4Srjs   GLuint memory = cmd->memory;
393796c5ddc4Srjs   GLuint64 offset = cmd->offset;
393896c5ddc4Srjs   CALL_TextureStorageMem1DEXT(ctx->CurrentServerDispatch, (texture, levels, internalFormat, width, memory, offset));
393996c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TextureStorageMem1DEXT), 8) / 8);
394096c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
394196c5ddc4Srjs   return cmd_size;
394296c5ddc4Srjs}
394396c5ddc4Srjsvoid GLAPIENTRY
394496c5ddc4Srjs_mesa_marshal_TextureStorageMem1DEXT(GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset)
394596c5ddc4Srjs{
394696c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
394796c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_TextureStorageMem1DEXT);
394896c5ddc4Srjs   struct marshal_cmd_TextureStorageMem1DEXT *cmd;
394996c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TextureStorageMem1DEXT, cmd_size);
395096c5ddc4Srjs   cmd->texture = texture;
395196c5ddc4Srjs   cmd->levels = levels;
395296c5ddc4Srjs   cmd->internalFormat = internalFormat;
395396c5ddc4Srjs   cmd->width = width;
395496c5ddc4Srjs   cmd->memory = memory;
395596c5ddc4Srjs   cmd->offset = offset;
395696c5ddc4Srjs}
395796c5ddc4Srjs
395896c5ddc4Srjs
395996c5ddc4Srjs/* GenSemaphoresEXT: marshalled synchronously */
396096c5ddc4Srjsvoid GLAPIENTRY
396196c5ddc4Srjs_mesa_marshal_GenSemaphoresEXT(GLsizei n, GLuint * semaphores)
396296c5ddc4Srjs{
396396c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
396496c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GenSemaphoresEXT");
396596c5ddc4Srjs   CALL_GenSemaphoresEXT(ctx->CurrentServerDispatch, (n, semaphores));
396696c5ddc4Srjs}
396796c5ddc4Srjs
396896c5ddc4Srjs
396996c5ddc4Srjs/* DeleteSemaphoresEXT: marshalled asynchronously */
397096c5ddc4Srjsstruct marshal_cmd_DeleteSemaphoresEXT
397196c5ddc4Srjs{
397296c5ddc4Srjs   struct marshal_cmd_base cmd_base;
397396c5ddc4Srjs   GLsizei n;
397496c5ddc4Srjs   /* Next safe_mul(n, 1 * sizeof(GLuint)) bytes are GLuint semaphores[n] */
397596c5ddc4Srjs};
397696c5ddc4Srjsuint32_t
397796c5ddc4Srjs_mesa_unmarshal_DeleteSemaphoresEXT(struct gl_context *ctx, const struct marshal_cmd_DeleteSemaphoresEXT *cmd, const uint64_t *last)
397896c5ddc4Srjs{
397996c5ddc4Srjs   GLsizei n = cmd->n;
398096c5ddc4Srjs   GLuint * semaphores;
398196c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
398296c5ddc4Srjs   semaphores = (GLuint *) variable_data;
398396c5ddc4Srjs   CALL_DeleteSemaphoresEXT(ctx->CurrentServerDispatch, (n, semaphores));
398496c5ddc4Srjs   return cmd->cmd_base.cmd_size;
398596c5ddc4Srjs}
398696c5ddc4Srjsvoid GLAPIENTRY
398796c5ddc4Srjs_mesa_marshal_DeleteSemaphoresEXT(GLsizei n, const GLuint * semaphores)
398896c5ddc4Srjs{
398996c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
399096c5ddc4Srjs   int semaphores_size = safe_mul(n, 1 * sizeof(GLuint));
399196c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_DeleteSemaphoresEXT) + semaphores_size;
399296c5ddc4Srjs   struct marshal_cmd_DeleteSemaphoresEXT *cmd;
399396c5ddc4Srjs   if (unlikely(semaphores_size < 0 || (semaphores_size > 0 && !semaphores) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
399496c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "DeleteSemaphoresEXT");
399596c5ddc4Srjs      CALL_DeleteSemaphoresEXT(ctx->CurrentServerDispatch, (n, semaphores));
399696c5ddc4Srjs      return;
399796c5ddc4Srjs   }
399896c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_DeleteSemaphoresEXT, cmd_size);
399996c5ddc4Srjs   cmd->n = n;
400096c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
400196c5ddc4Srjs   memcpy(variable_data, semaphores, semaphores_size);
400296c5ddc4Srjs}
400396c5ddc4Srjs
400496c5ddc4Srjs
400596c5ddc4Srjs/* IsSemaphoreEXT: marshalled synchronously */
400696c5ddc4SrjsGLboolean GLAPIENTRY
400796c5ddc4Srjs_mesa_marshal_IsSemaphoreEXT(GLuint semaphore)
400896c5ddc4Srjs{
400996c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
401096c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "IsSemaphoreEXT");
401196c5ddc4Srjs   return CALL_IsSemaphoreEXT(ctx->CurrentServerDispatch, (semaphore));
401296c5ddc4Srjs}
401396c5ddc4Srjs
401496c5ddc4Srjs
401596c5ddc4Srjs/* SemaphoreParameterui64vEXT: marshalled asynchronously */
401696c5ddc4Srjsstruct marshal_cmd_SemaphoreParameterui64vEXT
401796c5ddc4Srjs{
401896c5ddc4Srjs   struct marshal_cmd_base cmd_base;
401996c5ddc4Srjs   GLuint semaphore;
402096c5ddc4Srjs   GLenum pname;
402196c5ddc4Srjs   /* Next safe_mul(_mesa_semaphore_enum_to_count(pname), 1 * sizeof(GLuint64)) bytes are GLuint64 params[_mesa_semaphore_enum_to_count(pname)] */
402296c5ddc4Srjs};
402396c5ddc4Srjsuint32_t
402496c5ddc4Srjs_mesa_unmarshal_SemaphoreParameterui64vEXT(struct gl_context *ctx, const struct marshal_cmd_SemaphoreParameterui64vEXT *cmd, const uint64_t *last)
402596c5ddc4Srjs{
402696c5ddc4Srjs   GLuint semaphore = cmd->semaphore;
402796c5ddc4Srjs   GLenum pname = cmd->pname;
402896c5ddc4Srjs   GLuint64 * params;
402996c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
403096c5ddc4Srjs   params = (GLuint64 *) variable_data;
403196c5ddc4Srjs   CALL_SemaphoreParameterui64vEXT(ctx->CurrentServerDispatch, (semaphore, pname, params));
403296c5ddc4Srjs   return cmd->cmd_base.cmd_size;
403396c5ddc4Srjs}
403496c5ddc4Srjsvoid GLAPIENTRY
403596c5ddc4Srjs_mesa_marshal_SemaphoreParameterui64vEXT(GLuint semaphore, GLenum pname, const GLuint64 * params)
403696c5ddc4Srjs{
403796c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
403896c5ddc4Srjs   int params_size = safe_mul(_mesa_semaphore_enum_to_count(pname), 1 * sizeof(GLuint64));
403996c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_SemaphoreParameterui64vEXT) + params_size;
404096c5ddc4Srjs   struct marshal_cmd_SemaphoreParameterui64vEXT *cmd;
404196c5ddc4Srjs   if (unlikely(params_size < 0 || (params_size > 0 && !params) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
404296c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "SemaphoreParameterui64vEXT");
404396c5ddc4Srjs      CALL_SemaphoreParameterui64vEXT(ctx->CurrentServerDispatch, (semaphore, pname, params));
404496c5ddc4Srjs      return;
404596c5ddc4Srjs   }
404696c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_SemaphoreParameterui64vEXT, cmd_size);
404796c5ddc4Srjs   cmd->semaphore = semaphore;
404896c5ddc4Srjs   cmd->pname = pname;
404996c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
405096c5ddc4Srjs   memcpy(variable_data, params, params_size);
405196c5ddc4Srjs}
405296c5ddc4Srjs
405396c5ddc4Srjs
405496c5ddc4Srjs/* GetSemaphoreParameterui64vEXT: marshalled synchronously */
405596c5ddc4Srjsvoid GLAPIENTRY
405696c5ddc4Srjs_mesa_marshal_GetSemaphoreParameterui64vEXT(GLuint semaphore, GLenum pname, GLuint64 * params)
405796c5ddc4Srjs{
405896c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
405996c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetSemaphoreParameterui64vEXT");
406096c5ddc4Srjs   CALL_GetSemaphoreParameterui64vEXT(ctx->CurrentServerDispatch, (semaphore, pname, params));
406196c5ddc4Srjs}
406296c5ddc4Srjs
406396c5ddc4Srjs
406496c5ddc4Srjs/* WaitSemaphoreEXT: marshalled asynchronously */
406596c5ddc4Srjsstruct marshal_cmd_WaitSemaphoreEXT
406696c5ddc4Srjs{
406796c5ddc4Srjs   struct marshal_cmd_base cmd_base;
406896c5ddc4Srjs   GLuint semaphore;
406996c5ddc4Srjs   GLuint numBufferBarriers;
407096c5ddc4Srjs   GLuint numTextureBarriers;
407196c5ddc4Srjs   /* Next safe_mul(numBufferBarriers, 1 * sizeof(GLuint)) bytes are GLuint buffers[numBufferBarriers] */
407296c5ddc4Srjs   /* Next safe_mul(numTextureBarriers, 1 * sizeof(GLuint)) bytes are GLuint textures[numTextureBarriers] */
407396c5ddc4Srjs   /* Next safe_mul(numTextureBarriers, 1 * sizeof(GLenum)) bytes are GLenum srcLayouts[numTextureBarriers] */
407496c5ddc4Srjs};
407596c5ddc4Srjsuint32_t
407696c5ddc4Srjs_mesa_unmarshal_WaitSemaphoreEXT(struct gl_context *ctx, const struct marshal_cmd_WaitSemaphoreEXT *cmd, const uint64_t *last)
407796c5ddc4Srjs{
407896c5ddc4Srjs   GLuint semaphore = cmd->semaphore;
407996c5ddc4Srjs   GLuint numBufferBarriers = cmd->numBufferBarriers;
408096c5ddc4Srjs   GLuint numTextureBarriers = cmd->numTextureBarriers;
408196c5ddc4Srjs   GLuint * buffers;
408296c5ddc4Srjs   GLuint * textures;
408396c5ddc4Srjs   GLenum * srcLayouts;
408496c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
408596c5ddc4Srjs   buffers = (GLuint *) variable_data;
408696c5ddc4Srjs   variable_data += numBufferBarriers * 1 * sizeof(GLuint);
408796c5ddc4Srjs   textures = (GLuint *) variable_data;
408896c5ddc4Srjs   variable_data += numTextureBarriers * 1 * sizeof(GLuint);
408996c5ddc4Srjs   srcLayouts = (GLenum *) variable_data;
409096c5ddc4Srjs   CALL_WaitSemaphoreEXT(ctx->CurrentServerDispatch, (semaphore, numBufferBarriers, buffers, numTextureBarriers, textures, srcLayouts));
409196c5ddc4Srjs   return cmd->cmd_base.cmd_size;
409296c5ddc4Srjs}
409396c5ddc4Srjsvoid GLAPIENTRY
409496c5ddc4Srjs_mesa_marshal_WaitSemaphoreEXT(GLuint semaphore, GLuint numBufferBarriers, const GLuint * buffers, GLuint numTextureBarriers, const GLuint * textures, const GLenum * srcLayouts)
409596c5ddc4Srjs{
409696c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
409796c5ddc4Srjs   int buffers_size = safe_mul(numBufferBarriers, 1 * sizeof(GLuint));
409896c5ddc4Srjs   int textures_size = safe_mul(numTextureBarriers, 1 * sizeof(GLuint));
409996c5ddc4Srjs   int srcLayouts_size = safe_mul(numTextureBarriers, 1 * sizeof(GLenum));
410096c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_WaitSemaphoreEXT) + buffers_size + textures_size + srcLayouts_size;
410196c5ddc4Srjs   struct marshal_cmd_WaitSemaphoreEXT *cmd;
410296c5ddc4Srjs   if (unlikely(buffers_size < 0 || (buffers_size > 0 && !buffers) || textures_size < 0 || (textures_size > 0 && !textures) || srcLayouts_size < 0 || (srcLayouts_size > 0 && !srcLayouts) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
410396c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "WaitSemaphoreEXT");
410496c5ddc4Srjs      CALL_WaitSemaphoreEXT(ctx->CurrentServerDispatch, (semaphore, numBufferBarriers, buffers, numTextureBarriers, textures, srcLayouts));
410596c5ddc4Srjs      return;
410696c5ddc4Srjs   }
410796c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_WaitSemaphoreEXT, cmd_size);
410896c5ddc4Srjs   cmd->semaphore = semaphore;
410996c5ddc4Srjs   cmd->numBufferBarriers = numBufferBarriers;
411096c5ddc4Srjs   cmd->numTextureBarriers = numTextureBarriers;
411196c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
411296c5ddc4Srjs   memcpy(variable_data, buffers, buffers_size);
411396c5ddc4Srjs   variable_data += buffers_size;
411496c5ddc4Srjs   memcpy(variable_data, textures, textures_size);
411596c5ddc4Srjs   variable_data += textures_size;
411696c5ddc4Srjs   memcpy(variable_data, srcLayouts, srcLayouts_size);
411796c5ddc4Srjs}
411896c5ddc4Srjs
411996c5ddc4Srjs
412096c5ddc4Srjs/* SignalSemaphoreEXT: marshalled asynchronously */
412196c5ddc4Srjsstruct marshal_cmd_SignalSemaphoreEXT
412296c5ddc4Srjs{
412396c5ddc4Srjs   struct marshal_cmd_base cmd_base;
412496c5ddc4Srjs   GLuint semaphore;
412596c5ddc4Srjs   GLuint numBufferBarriers;
412696c5ddc4Srjs   GLuint numTextureBarriers;
412796c5ddc4Srjs   /* Next safe_mul(numBufferBarriers, 1 * sizeof(GLuint)) bytes are GLuint buffers[numBufferBarriers] */
412896c5ddc4Srjs   /* Next safe_mul(numTextureBarriers, 1 * sizeof(GLuint)) bytes are GLuint textures[numTextureBarriers] */
412996c5ddc4Srjs   /* Next safe_mul(numTextureBarriers, 1 * sizeof(GLenum)) bytes are GLenum dstLayouts[numTextureBarriers] */
413096c5ddc4Srjs};
413196c5ddc4Srjsuint32_t
413296c5ddc4Srjs_mesa_unmarshal_SignalSemaphoreEXT(struct gl_context *ctx, const struct marshal_cmd_SignalSemaphoreEXT *cmd, const uint64_t *last)
413396c5ddc4Srjs{
413496c5ddc4Srjs   GLuint semaphore = cmd->semaphore;
413596c5ddc4Srjs   GLuint numBufferBarriers = cmd->numBufferBarriers;
413696c5ddc4Srjs   GLuint numTextureBarriers = cmd->numTextureBarriers;
413796c5ddc4Srjs   GLuint * buffers;
413896c5ddc4Srjs   GLuint * textures;
413996c5ddc4Srjs   GLenum * dstLayouts;
414096c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
414196c5ddc4Srjs   buffers = (GLuint *) variable_data;
414296c5ddc4Srjs   variable_data += numBufferBarriers * 1 * sizeof(GLuint);
414396c5ddc4Srjs   textures = (GLuint *) variable_data;
414496c5ddc4Srjs   variable_data += numTextureBarriers * 1 * sizeof(GLuint);
414596c5ddc4Srjs   dstLayouts = (GLenum *) variable_data;
414696c5ddc4Srjs   CALL_SignalSemaphoreEXT(ctx->CurrentServerDispatch, (semaphore, numBufferBarriers, buffers, numTextureBarriers, textures, dstLayouts));
414796c5ddc4Srjs   return cmd->cmd_base.cmd_size;
414896c5ddc4Srjs}
414996c5ddc4Srjsvoid GLAPIENTRY
415096c5ddc4Srjs_mesa_marshal_SignalSemaphoreEXT(GLuint semaphore, GLuint numBufferBarriers, const GLuint * buffers, GLuint numTextureBarriers, const GLuint * textures, const GLenum * dstLayouts)
415196c5ddc4Srjs{
415296c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
415396c5ddc4Srjs   int buffers_size = safe_mul(numBufferBarriers, 1 * sizeof(GLuint));
415496c5ddc4Srjs   int textures_size = safe_mul(numTextureBarriers, 1 * sizeof(GLuint));
415596c5ddc4Srjs   int dstLayouts_size = safe_mul(numTextureBarriers, 1 * sizeof(GLenum));
415696c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_SignalSemaphoreEXT) + buffers_size + textures_size + dstLayouts_size;
415796c5ddc4Srjs   struct marshal_cmd_SignalSemaphoreEXT *cmd;
415896c5ddc4Srjs   if (unlikely(buffers_size < 0 || (buffers_size > 0 && !buffers) || textures_size < 0 || (textures_size > 0 && !textures) || dstLayouts_size < 0 || (dstLayouts_size > 0 && !dstLayouts) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
415996c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "SignalSemaphoreEXT");
416096c5ddc4Srjs      CALL_SignalSemaphoreEXT(ctx->CurrentServerDispatch, (semaphore, numBufferBarriers, buffers, numTextureBarriers, textures, dstLayouts));
416196c5ddc4Srjs      return;
416296c5ddc4Srjs   }
416396c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_SignalSemaphoreEXT, cmd_size);
416496c5ddc4Srjs   cmd->semaphore = semaphore;
416596c5ddc4Srjs   cmd->numBufferBarriers = numBufferBarriers;
416696c5ddc4Srjs   cmd->numTextureBarriers = numTextureBarriers;
416796c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
416896c5ddc4Srjs   memcpy(variable_data, buffers, buffers_size);
416996c5ddc4Srjs   variable_data += buffers_size;
417096c5ddc4Srjs   memcpy(variable_data, textures, textures_size);
417196c5ddc4Srjs   variable_data += textures_size;
417296c5ddc4Srjs   memcpy(variable_data, dstLayouts, dstLayouts_size);
417396c5ddc4Srjs}
417496c5ddc4Srjs
417596c5ddc4Srjs
417696c5ddc4Srjs/* ImportMemoryFdEXT: marshalled asynchronously */
417796c5ddc4Srjsstruct marshal_cmd_ImportMemoryFdEXT
417896c5ddc4Srjs{
417996c5ddc4Srjs   struct marshal_cmd_base cmd_base;
418096c5ddc4Srjs   GLuint memory;
418196c5ddc4Srjs   GLenum handleType;
418296c5ddc4Srjs   GLint fd;
418396c5ddc4Srjs   GLuint64 size;
418496c5ddc4Srjs};
418596c5ddc4Srjsuint32_t
418696c5ddc4Srjs_mesa_unmarshal_ImportMemoryFdEXT(struct gl_context *ctx, const struct marshal_cmd_ImportMemoryFdEXT *cmd, const uint64_t *last)
418796c5ddc4Srjs{
418896c5ddc4Srjs   GLuint memory = cmd->memory;
418996c5ddc4Srjs   GLuint64 size = cmd->size;
419096c5ddc4Srjs   GLenum handleType = cmd->handleType;
419196c5ddc4Srjs   GLint fd = cmd->fd;
419296c5ddc4Srjs   CALL_ImportMemoryFdEXT(ctx->CurrentServerDispatch, (memory, size, handleType, fd));
419396c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_ImportMemoryFdEXT), 8) / 8);
419496c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
419596c5ddc4Srjs   return cmd_size;
419696c5ddc4Srjs}
419796c5ddc4Srjsvoid GLAPIENTRY
419896c5ddc4Srjs_mesa_marshal_ImportMemoryFdEXT(GLuint memory, GLuint64 size, GLenum handleType, GLint fd)
419996c5ddc4Srjs{
420096c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
420196c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_ImportMemoryFdEXT);
420296c5ddc4Srjs   struct marshal_cmd_ImportMemoryFdEXT *cmd;
420396c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_ImportMemoryFdEXT, cmd_size);
420496c5ddc4Srjs   cmd->memory = memory;
420596c5ddc4Srjs   cmd->size = size;
420696c5ddc4Srjs   cmd->handleType = handleType;
420796c5ddc4Srjs   cmd->fd = fd;
420896c5ddc4Srjs}
420996c5ddc4Srjs
421096c5ddc4Srjs
421196c5ddc4Srjs/* ImportSemaphoreFdEXT: marshalled asynchronously */
421296c5ddc4Srjsstruct marshal_cmd_ImportSemaphoreFdEXT
421396c5ddc4Srjs{
421496c5ddc4Srjs   struct marshal_cmd_base cmd_base;
421596c5ddc4Srjs   GLuint semaphore;
421696c5ddc4Srjs   GLenum handleType;
421796c5ddc4Srjs   GLint fd;
421896c5ddc4Srjs};
421996c5ddc4Srjsuint32_t
422096c5ddc4Srjs_mesa_unmarshal_ImportSemaphoreFdEXT(struct gl_context *ctx, const struct marshal_cmd_ImportSemaphoreFdEXT *cmd, const uint64_t *last)
422196c5ddc4Srjs{
422296c5ddc4Srjs   GLuint semaphore = cmd->semaphore;
422396c5ddc4Srjs   GLenum handleType = cmd->handleType;
422496c5ddc4Srjs   GLint fd = cmd->fd;
422596c5ddc4Srjs   CALL_ImportSemaphoreFdEXT(ctx->CurrentServerDispatch, (semaphore, handleType, fd));
422696c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_ImportSemaphoreFdEXT), 8) / 8);
422796c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
422896c5ddc4Srjs   return cmd_size;
422996c5ddc4Srjs}
423096c5ddc4Srjsvoid GLAPIENTRY
423196c5ddc4Srjs_mesa_marshal_ImportSemaphoreFdEXT(GLuint semaphore, GLenum handleType, GLint fd)
423296c5ddc4Srjs{
423396c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
423496c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_ImportSemaphoreFdEXT);
423596c5ddc4Srjs   struct marshal_cmd_ImportSemaphoreFdEXT *cmd;
423696c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_ImportSemaphoreFdEXT, cmd_size);
423796c5ddc4Srjs   cmd->semaphore = semaphore;
423896c5ddc4Srjs   cmd->handleType = handleType;
423996c5ddc4Srjs   cmd->fd = fd;
424096c5ddc4Srjs}
424196c5ddc4Srjs
424296c5ddc4Srjs
424396c5ddc4Srjs/* ViewportSwizzleNV: marshalled asynchronously */
424496c5ddc4Srjsstruct marshal_cmd_ViewportSwizzleNV
424596c5ddc4Srjs{
424696c5ddc4Srjs   struct marshal_cmd_base cmd_base;
424796c5ddc4Srjs   GLuint index;
424896c5ddc4Srjs   GLenum swizzlex;
424996c5ddc4Srjs   GLenum swizzley;
425096c5ddc4Srjs   GLenum swizzlez;
425196c5ddc4Srjs   GLenum swizzlew;
425296c5ddc4Srjs};
425396c5ddc4Srjsuint32_t
425496c5ddc4Srjs_mesa_unmarshal_ViewportSwizzleNV(struct gl_context *ctx, const struct marshal_cmd_ViewportSwizzleNV *cmd, const uint64_t *last)
425596c5ddc4Srjs{
425696c5ddc4Srjs   GLuint index = cmd->index;
425796c5ddc4Srjs   GLenum swizzlex = cmd->swizzlex;
425896c5ddc4Srjs   GLenum swizzley = cmd->swizzley;
425996c5ddc4Srjs   GLenum swizzlez = cmd->swizzlez;
426096c5ddc4Srjs   GLenum swizzlew = cmd->swizzlew;
426196c5ddc4Srjs   CALL_ViewportSwizzleNV(ctx->CurrentServerDispatch, (index, swizzlex, swizzley, swizzlez, swizzlew));
426296c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_ViewportSwizzleNV), 8) / 8);
426396c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
426496c5ddc4Srjs   return cmd_size;
426596c5ddc4Srjs}
426696c5ddc4Srjsvoid GLAPIENTRY
426796c5ddc4Srjs_mesa_marshal_ViewportSwizzleNV(GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew)
426896c5ddc4Srjs{
426996c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
427096c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_ViewportSwizzleNV);
427196c5ddc4Srjs   struct marshal_cmd_ViewportSwizzleNV *cmd;
427296c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_ViewportSwizzleNV, cmd_size);
427396c5ddc4Srjs   cmd->index = index;
427496c5ddc4Srjs   cmd->swizzlex = swizzlex;
427596c5ddc4Srjs   cmd->swizzley = swizzley;
427696c5ddc4Srjs   cmd->swizzlez = swizzlez;
427796c5ddc4Srjs   cmd->swizzlew = swizzlew;
427896c5ddc4Srjs}
427996c5ddc4Srjs
428096c5ddc4Srjs
428196c5ddc4Srjs/* Vertex2hNV: marshalled asynchronously */
428296c5ddc4Srjsstruct marshal_cmd_Vertex2hNV
428396c5ddc4Srjs{
428496c5ddc4Srjs   struct marshal_cmd_base cmd_base;
428596c5ddc4Srjs   GLhalfNV x;
428696c5ddc4Srjs   GLhalfNV y;
428796c5ddc4Srjs};
428896c5ddc4Srjsuint32_t
428996c5ddc4Srjs_mesa_unmarshal_Vertex2hNV(struct gl_context *ctx, const struct marshal_cmd_Vertex2hNV *cmd, const uint64_t *last)
429096c5ddc4Srjs{
429196c5ddc4Srjs   GLhalfNV x = cmd->x;
429296c5ddc4Srjs   GLhalfNV y = cmd->y;
429396c5ddc4Srjs   CALL_Vertex2hNV(ctx->CurrentServerDispatch, (x, y));
429496c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Vertex2hNV), 8) / 8);
429596c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
429696c5ddc4Srjs   return cmd_size;
429796c5ddc4Srjs}
429896c5ddc4Srjsvoid GLAPIENTRY
429996c5ddc4Srjs_mesa_marshal_Vertex2hNV(GLhalfNV x, GLhalfNV y)
430096c5ddc4Srjs{
430196c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
430296c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_Vertex2hNV);
430396c5ddc4Srjs   struct marshal_cmd_Vertex2hNV *cmd;
430496c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Vertex2hNV, cmd_size);
430596c5ddc4Srjs   cmd->x = x;
430696c5ddc4Srjs   cmd->y = y;
430796c5ddc4Srjs}
430896c5ddc4Srjs
430996c5ddc4Srjs
431096c5ddc4Srjs/* Vertex2hvNV: marshalled asynchronously */
431196c5ddc4Srjsstruct marshal_cmd_Vertex2hvNV
431296c5ddc4Srjs{
431396c5ddc4Srjs   struct marshal_cmd_base cmd_base;
431496c5ddc4Srjs   GLhalfNV v[2];
431596c5ddc4Srjs};
431696c5ddc4Srjsuint32_t
431796c5ddc4Srjs_mesa_unmarshal_Vertex2hvNV(struct gl_context *ctx, const struct marshal_cmd_Vertex2hvNV *cmd, const uint64_t *last)
431896c5ddc4Srjs{
431996c5ddc4Srjs   const GLhalfNV * v = cmd->v;
432096c5ddc4Srjs   CALL_Vertex2hvNV(ctx->CurrentServerDispatch, (v));
432196c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Vertex2hvNV), 8) / 8);
432296c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
432396c5ddc4Srjs   return cmd_size;
432496c5ddc4Srjs}
432596c5ddc4Srjsvoid GLAPIENTRY
432696c5ddc4Srjs_mesa_marshal_Vertex2hvNV(const GLhalfNV * v)
432796c5ddc4Srjs{
432896c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
432996c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_Vertex2hvNV);
433096c5ddc4Srjs   struct marshal_cmd_Vertex2hvNV *cmd;
433196c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Vertex2hvNV, cmd_size);
433296c5ddc4Srjs   memcpy(cmd->v, v, 2 * sizeof(GLhalfNV));
433396c5ddc4Srjs}
433496c5ddc4Srjs
433596c5ddc4Srjs
433696c5ddc4Srjs/* Vertex3hNV: marshalled asynchronously */
433796c5ddc4Srjsstruct marshal_cmd_Vertex3hNV
433896c5ddc4Srjs{
433996c5ddc4Srjs   struct marshal_cmd_base cmd_base;
434096c5ddc4Srjs   GLhalfNV x;
434196c5ddc4Srjs   GLhalfNV y;
434296c5ddc4Srjs   GLhalfNV z;
434396c5ddc4Srjs};
434496c5ddc4Srjsuint32_t
434596c5ddc4Srjs_mesa_unmarshal_Vertex3hNV(struct gl_context *ctx, const struct marshal_cmd_Vertex3hNV *cmd, const uint64_t *last)
434696c5ddc4Srjs{
434796c5ddc4Srjs   GLhalfNV x = cmd->x;
434896c5ddc4Srjs   GLhalfNV y = cmd->y;
434996c5ddc4Srjs   GLhalfNV z = cmd->z;
435096c5ddc4Srjs   CALL_Vertex3hNV(ctx->CurrentServerDispatch, (x, y, z));
435196c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Vertex3hNV), 8) / 8);
435296c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
435396c5ddc4Srjs   return cmd_size;
435496c5ddc4Srjs}
435596c5ddc4Srjsvoid GLAPIENTRY
435696c5ddc4Srjs_mesa_marshal_Vertex3hNV(GLhalfNV x, GLhalfNV y, GLhalfNV z)
435796c5ddc4Srjs{
435896c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
435996c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_Vertex3hNV);
436096c5ddc4Srjs   struct marshal_cmd_Vertex3hNV *cmd;
436196c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Vertex3hNV, cmd_size);
436296c5ddc4Srjs   cmd->x = x;
436396c5ddc4Srjs   cmd->y = y;
436496c5ddc4Srjs   cmd->z = z;
436596c5ddc4Srjs}
436696c5ddc4Srjs
436796c5ddc4Srjs
436896c5ddc4Srjs/* Vertex3hvNV: marshalled asynchronously */
436996c5ddc4Srjsstruct marshal_cmd_Vertex3hvNV
437096c5ddc4Srjs{
437196c5ddc4Srjs   struct marshal_cmd_base cmd_base;
437296c5ddc4Srjs   GLhalfNV v[3];
437396c5ddc4Srjs};
437496c5ddc4Srjsuint32_t
437596c5ddc4Srjs_mesa_unmarshal_Vertex3hvNV(struct gl_context *ctx, const struct marshal_cmd_Vertex3hvNV *cmd, const uint64_t *last)
437696c5ddc4Srjs{
437796c5ddc4Srjs   const GLhalfNV * v = cmd->v;
437896c5ddc4Srjs   CALL_Vertex3hvNV(ctx->CurrentServerDispatch, (v));
437996c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Vertex3hvNV), 8) / 8);
438096c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
438196c5ddc4Srjs   return cmd_size;
438296c5ddc4Srjs}
438396c5ddc4Srjsvoid GLAPIENTRY
438496c5ddc4Srjs_mesa_marshal_Vertex3hvNV(const GLhalfNV * v)
438596c5ddc4Srjs{
438696c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
438796c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_Vertex3hvNV);
438896c5ddc4Srjs   struct marshal_cmd_Vertex3hvNV *cmd;
438996c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Vertex3hvNV, cmd_size);
439096c5ddc4Srjs   memcpy(cmd->v, v, 3 * sizeof(GLhalfNV));
439196c5ddc4Srjs}
439296c5ddc4Srjs
439396c5ddc4Srjs
439496c5ddc4Srjs/* Vertex4hNV: marshalled asynchronously */
439596c5ddc4Srjsstruct marshal_cmd_Vertex4hNV
439696c5ddc4Srjs{
439796c5ddc4Srjs   struct marshal_cmd_base cmd_base;
439896c5ddc4Srjs   GLhalfNV x;
439996c5ddc4Srjs   GLhalfNV y;
440096c5ddc4Srjs   GLhalfNV z;
440196c5ddc4Srjs   GLhalfNV w;
440296c5ddc4Srjs};
440396c5ddc4Srjsuint32_t
440496c5ddc4Srjs_mesa_unmarshal_Vertex4hNV(struct gl_context *ctx, const struct marshal_cmd_Vertex4hNV *cmd, const uint64_t *last)
440596c5ddc4Srjs{
440696c5ddc4Srjs   GLhalfNV x = cmd->x;
440796c5ddc4Srjs   GLhalfNV y = cmd->y;
440896c5ddc4Srjs   GLhalfNV z = cmd->z;
440996c5ddc4Srjs   GLhalfNV w = cmd->w;
441096c5ddc4Srjs   CALL_Vertex4hNV(ctx->CurrentServerDispatch, (x, y, z, w));
441196c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Vertex4hNV), 8) / 8);
441296c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
441396c5ddc4Srjs   return cmd_size;
441496c5ddc4Srjs}
441596c5ddc4Srjsvoid GLAPIENTRY
441696c5ddc4Srjs_mesa_marshal_Vertex4hNV(GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w)
441796c5ddc4Srjs{
441896c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
441996c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_Vertex4hNV);
442096c5ddc4Srjs   struct marshal_cmd_Vertex4hNV *cmd;
442196c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Vertex4hNV, cmd_size);
442296c5ddc4Srjs   cmd->x = x;
442396c5ddc4Srjs   cmd->y = y;
442496c5ddc4Srjs   cmd->z = z;
442596c5ddc4Srjs   cmd->w = w;
442696c5ddc4Srjs}
442796c5ddc4Srjs
442896c5ddc4Srjs
442996c5ddc4Srjs/* Vertex4hvNV: marshalled asynchronously */
443096c5ddc4Srjsstruct marshal_cmd_Vertex4hvNV
443196c5ddc4Srjs{
443296c5ddc4Srjs   struct marshal_cmd_base cmd_base;
443396c5ddc4Srjs   GLhalfNV v[4];
443496c5ddc4Srjs};
443596c5ddc4Srjsuint32_t
443696c5ddc4Srjs_mesa_unmarshal_Vertex4hvNV(struct gl_context *ctx, const struct marshal_cmd_Vertex4hvNV *cmd, const uint64_t *last)
443796c5ddc4Srjs{
443896c5ddc4Srjs   const GLhalfNV * v = cmd->v;
443996c5ddc4Srjs   CALL_Vertex4hvNV(ctx->CurrentServerDispatch, (v));
444096c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Vertex4hvNV), 8) / 8);
444196c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
444296c5ddc4Srjs   return cmd_size;
444396c5ddc4Srjs}
444496c5ddc4Srjsvoid GLAPIENTRY
444596c5ddc4Srjs_mesa_marshal_Vertex4hvNV(const GLhalfNV * v)
444696c5ddc4Srjs{
444796c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
444896c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_Vertex4hvNV);
444996c5ddc4Srjs   struct marshal_cmd_Vertex4hvNV *cmd;
445096c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Vertex4hvNV, cmd_size);
445196c5ddc4Srjs   memcpy(cmd->v, v, 4 * sizeof(GLhalfNV));
445296c5ddc4Srjs}
445396c5ddc4Srjs
445496c5ddc4Srjs
445596c5ddc4Srjs/* Normal3hNV: marshalled asynchronously */
445696c5ddc4Srjsstruct marshal_cmd_Normal3hNV
445796c5ddc4Srjs{
445896c5ddc4Srjs   struct marshal_cmd_base cmd_base;
445996c5ddc4Srjs   GLhalfNV nx;
446096c5ddc4Srjs   GLhalfNV ny;
446196c5ddc4Srjs   GLhalfNV nz;
446296c5ddc4Srjs};
446396c5ddc4Srjsuint32_t
446496c5ddc4Srjs_mesa_unmarshal_Normal3hNV(struct gl_context *ctx, const struct marshal_cmd_Normal3hNV *cmd, const uint64_t *last)
446596c5ddc4Srjs{
446696c5ddc4Srjs   GLhalfNV nx = cmd->nx;
446796c5ddc4Srjs   GLhalfNV ny = cmd->ny;
446896c5ddc4Srjs   GLhalfNV nz = cmd->nz;
446996c5ddc4Srjs   CALL_Normal3hNV(ctx->CurrentServerDispatch, (nx, ny, nz));
447096c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Normal3hNV), 8) / 8);
447196c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
447296c5ddc4Srjs   return cmd_size;
447396c5ddc4Srjs}
447496c5ddc4Srjsvoid GLAPIENTRY
447596c5ddc4Srjs_mesa_marshal_Normal3hNV(GLhalfNV nx, GLhalfNV ny, GLhalfNV nz)
447696c5ddc4Srjs{
447796c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
447896c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_Normal3hNV);
447996c5ddc4Srjs   struct marshal_cmd_Normal3hNV *cmd;
448096c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Normal3hNV, cmd_size);
448196c5ddc4Srjs   cmd->nx = nx;
448296c5ddc4Srjs   cmd->ny = ny;
448396c5ddc4Srjs   cmd->nz = nz;
448496c5ddc4Srjs}
448596c5ddc4Srjs
448696c5ddc4Srjs
448796c5ddc4Srjs/* Normal3hvNV: marshalled asynchronously */
448896c5ddc4Srjsstruct marshal_cmd_Normal3hvNV
448996c5ddc4Srjs{
449096c5ddc4Srjs   struct marshal_cmd_base cmd_base;
449196c5ddc4Srjs   GLhalfNV v[3];
449296c5ddc4Srjs};
449396c5ddc4Srjsuint32_t
449496c5ddc4Srjs_mesa_unmarshal_Normal3hvNV(struct gl_context *ctx, const struct marshal_cmd_Normal3hvNV *cmd, const uint64_t *last)
449596c5ddc4Srjs{
449696c5ddc4Srjs   const GLhalfNV * v = cmd->v;
449796c5ddc4Srjs   CALL_Normal3hvNV(ctx->CurrentServerDispatch, (v));
449896c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Normal3hvNV), 8) / 8);
449996c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
450096c5ddc4Srjs   return cmd_size;
450196c5ddc4Srjs}
450296c5ddc4Srjsvoid GLAPIENTRY
450396c5ddc4Srjs_mesa_marshal_Normal3hvNV(const GLhalfNV * v)
450496c5ddc4Srjs{
450596c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
450696c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_Normal3hvNV);
450796c5ddc4Srjs   struct marshal_cmd_Normal3hvNV *cmd;
450896c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Normal3hvNV, cmd_size);
450996c5ddc4Srjs   memcpy(cmd->v, v, 3 * sizeof(GLhalfNV));
451096c5ddc4Srjs}
451196c5ddc4Srjs
451296c5ddc4Srjs
451396c5ddc4Srjs/* Color3hNV: marshalled asynchronously */
451496c5ddc4Srjsstruct marshal_cmd_Color3hNV
451596c5ddc4Srjs{
451696c5ddc4Srjs   struct marshal_cmd_base cmd_base;
451796c5ddc4Srjs   GLhalfNV red;
451896c5ddc4Srjs   GLhalfNV green;
451996c5ddc4Srjs   GLhalfNV blue;
452096c5ddc4Srjs};
452196c5ddc4Srjsuint32_t
452296c5ddc4Srjs_mesa_unmarshal_Color3hNV(struct gl_context *ctx, const struct marshal_cmd_Color3hNV *cmd, const uint64_t *last)
452396c5ddc4Srjs{
452496c5ddc4Srjs   GLhalfNV red = cmd->red;
452596c5ddc4Srjs   GLhalfNV green = cmd->green;
452696c5ddc4Srjs   GLhalfNV blue = cmd->blue;
452796c5ddc4Srjs   CALL_Color3hNV(ctx->CurrentServerDispatch, (red, green, blue));
452896c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Color3hNV), 8) / 8);
452996c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
453096c5ddc4Srjs   return cmd_size;
453196c5ddc4Srjs}
453296c5ddc4Srjsvoid GLAPIENTRY
453396c5ddc4Srjs_mesa_marshal_Color3hNV(GLhalfNV red, GLhalfNV green, GLhalfNV blue)
453496c5ddc4Srjs{
453596c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
453696c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_Color3hNV);
453796c5ddc4Srjs   struct marshal_cmd_Color3hNV *cmd;
453896c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Color3hNV, cmd_size);
453996c5ddc4Srjs   cmd->red = red;
454096c5ddc4Srjs   cmd->green = green;
454196c5ddc4Srjs   cmd->blue = blue;
454296c5ddc4Srjs}
454396c5ddc4Srjs
454496c5ddc4Srjs
454596c5ddc4Srjs/* Color3hvNV: marshalled asynchronously */
454696c5ddc4Srjsstruct marshal_cmd_Color3hvNV
454796c5ddc4Srjs{
454896c5ddc4Srjs   struct marshal_cmd_base cmd_base;
454996c5ddc4Srjs   GLhalfNV v[3];
455096c5ddc4Srjs};
455196c5ddc4Srjsuint32_t
455296c5ddc4Srjs_mesa_unmarshal_Color3hvNV(struct gl_context *ctx, const struct marshal_cmd_Color3hvNV *cmd, const uint64_t *last)
455396c5ddc4Srjs{
455496c5ddc4Srjs   const GLhalfNV * v = cmd->v;
455596c5ddc4Srjs   CALL_Color3hvNV(ctx->CurrentServerDispatch, (v));
455696c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Color3hvNV), 8) / 8);
455796c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
455896c5ddc4Srjs   return cmd_size;
455996c5ddc4Srjs}
456096c5ddc4Srjsvoid GLAPIENTRY
456196c5ddc4Srjs_mesa_marshal_Color3hvNV(const GLhalfNV * v)
456296c5ddc4Srjs{
456396c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
456496c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_Color3hvNV);
456596c5ddc4Srjs   struct marshal_cmd_Color3hvNV *cmd;
456696c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Color3hvNV, cmd_size);
456796c5ddc4Srjs   memcpy(cmd->v, v, 3 * sizeof(GLhalfNV));
456896c5ddc4Srjs}
456996c5ddc4Srjs
457096c5ddc4Srjs
457196c5ddc4Srjs/* Color4hNV: marshalled asynchronously */
457296c5ddc4Srjsstruct marshal_cmd_Color4hNV
457396c5ddc4Srjs{
457496c5ddc4Srjs   struct marshal_cmd_base cmd_base;
457596c5ddc4Srjs   GLhalfNV red;
457696c5ddc4Srjs   GLhalfNV green;
457796c5ddc4Srjs   GLhalfNV blue;
457896c5ddc4Srjs   GLhalfNV alpha;
457996c5ddc4Srjs};
458096c5ddc4Srjsuint32_t
458196c5ddc4Srjs_mesa_unmarshal_Color4hNV(struct gl_context *ctx, const struct marshal_cmd_Color4hNV *cmd, const uint64_t *last)
458296c5ddc4Srjs{
458396c5ddc4Srjs   GLhalfNV red = cmd->red;
458496c5ddc4Srjs   GLhalfNV green = cmd->green;
458596c5ddc4Srjs   GLhalfNV blue = cmd->blue;
458696c5ddc4Srjs   GLhalfNV alpha = cmd->alpha;
458796c5ddc4Srjs   CALL_Color4hNV(ctx->CurrentServerDispatch, (red, green, blue, alpha));
458896c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Color4hNV), 8) / 8);
458996c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
459096c5ddc4Srjs   return cmd_size;
459196c5ddc4Srjs}
459296c5ddc4Srjsvoid GLAPIENTRY
459396c5ddc4Srjs_mesa_marshal_Color4hNV(GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha)
459496c5ddc4Srjs{
459596c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
459696c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_Color4hNV);
459796c5ddc4Srjs   struct marshal_cmd_Color4hNV *cmd;
459896c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Color4hNV, cmd_size);
459996c5ddc4Srjs   cmd->red = red;
460096c5ddc4Srjs   cmd->green = green;
460196c5ddc4Srjs   cmd->blue = blue;
460296c5ddc4Srjs   cmd->alpha = alpha;
460396c5ddc4Srjs}
460496c5ddc4Srjs
460596c5ddc4Srjs
460696c5ddc4Srjs/* Color4hvNV: marshalled asynchronously */
460796c5ddc4Srjsstruct marshal_cmd_Color4hvNV
460896c5ddc4Srjs{
460996c5ddc4Srjs   struct marshal_cmd_base cmd_base;
461096c5ddc4Srjs   GLhalfNV v[4];
461196c5ddc4Srjs};
461296c5ddc4Srjsuint32_t
461396c5ddc4Srjs_mesa_unmarshal_Color4hvNV(struct gl_context *ctx, const struct marshal_cmd_Color4hvNV *cmd, const uint64_t *last)
461496c5ddc4Srjs{
461596c5ddc4Srjs   const GLhalfNV * v = cmd->v;
461696c5ddc4Srjs   CALL_Color4hvNV(ctx->CurrentServerDispatch, (v));
461796c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Color4hvNV), 8) / 8);
461896c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
461996c5ddc4Srjs   return cmd_size;
462096c5ddc4Srjs}
462196c5ddc4Srjsvoid GLAPIENTRY
462296c5ddc4Srjs_mesa_marshal_Color4hvNV(const GLhalfNV * v)
462396c5ddc4Srjs{
462496c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
462596c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_Color4hvNV);
462696c5ddc4Srjs   struct marshal_cmd_Color4hvNV *cmd;
462796c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Color4hvNV, cmd_size);
462896c5ddc4Srjs   memcpy(cmd->v, v, 4 * sizeof(GLhalfNV));
462996c5ddc4Srjs}
463096c5ddc4Srjs
463196c5ddc4Srjs
463296c5ddc4Srjs/* TexCoord1hNV: marshalled asynchronously */
463396c5ddc4Srjsstruct marshal_cmd_TexCoord1hNV
463496c5ddc4Srjs{
463596c5ddc4Srjs   struct marshal_cmd_base cmd_base;
463696c5ddc4Srjs   GLhalfNV s;
463796c5ddc4Srjs};
463896c5ddc4Srjsuint32_t
463996c5ddc4Srjs_mesa_unmarshal_TexCoord1hNV(struct gl_context *ctx, const struct marshal_cmd_TexCoord1hNV *cmd, const uint64_t *last)
464096c5ddc4Srjs{
464196c5ddc4Srjs   GLhalfNV s = cmd->s;
464296c5ddc4Srjs   CALL_TexCoord1hNV(ctx->CurrentServerDispatch, (s));
464396c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TexCoord1hNV), 8) / 8);
464496c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
464596c5ddc4Srjs   return cmd_size;
464696c5ddc4Srjs}
464796c5ddc4Srjsvoid GLAPIENTRY
464896c5ddc4Srjs_mesa_marshal_TexCoord1hNV(GLhalfNV s)
464996c5ddc4Srjs{
465096c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
465196c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_TexCoord1hNV);
465296c5ddc4Srjs   struct marshal_cmd_TexCoord1hNV *cmd;
465396c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexCoord1hNV, cmd_size);
465496c5ddc4Srjs   cmd->s = s;
465596c5ddc4Srjs}
465696c5ddc4Srjs
465796c5ddc4Srjs
465896c5ddc4Srjs/* TexCoord1hvNV: marshalled asynchronously */
465996c5ddc4Srjsstruct marshal_cmd_TexCoord1hvNV
466096c5ddc4Srjs{
466196c5ddc4Srjs   struct marshal_cmd_base cmd_base;
466296c5ddc4Srjs   GLhalfNV v[1];
466396c5ddc4Srjs};
466496c5ddc4Srjsuint32_t
466596c5ddc4Srjs_mesa_unmarshal_TexCoord1hvNV(struct gl_context *ctx, const struct marshal_cmd_TexCoord1hvNV *cmd, const uint64_t *last)
466696c5ddc4Srjs{
466796c5ddc4Srjs   const GLhalfNV * v = cmd->v;
466896c5ddc4Srjs   CALL_TexCoord1hvNV(ctx->CurrentServerDispatch, (v));
466996c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TexCoord1hvNV), 8) / 8);
467096c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
467196c5ddc4Srjs   return cmd_size;
467296c5ddc4Srjs}
467396c5ddc4Srjsvoid GLAPIENTRY
467496c5ddc4Srjs_mesa_marshal_TexCoord1hvNV(const GLhalfNV * v)
467596c5ddc4Srjs{
467696c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
467796c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_TexCoord1hvNV);
467896c5ddc4Srjs   struct marshal_cmd_TexCoord1hvNV *cmd;
467996c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexCoord1hvNV, cmd_size);
468096c5ddc4Srjs   memcpy(cmd->v, v, 1 * sizeof(GLhalfNV));
468196c5ddc4Srjs}
468296c5ddc4Srjs
468396c5ddc4Srjs
468496c5ddc4Srjs/* TexCoord2hNV: marshalled asynchronously */
468596c5ddc4Srjsstruct marshal_cmd_TexCoord2hNV
468696c5ddc4Srjs{
468796c5ddc4Srjs   struct marshal_cmd_base cmd_base;
468896c5ddc4Srjs   GLhalfNV s;
468996c5ddc4Srjs   GLhalfNV t;
469096c5ddc4Srjs};
469196c5ddc4Srjsuint32_t
469296c5ddc4Srjs_mesa_unmarshal_TexCoord2hNV(struct gl_context *ctx, const struct marshal_cmd_TexCoord2hNV *cmd, const uint64_t *last)
469396c5ddc4Srjs{
469496c5ddc4Srjs   GLhalfNV s = cmd->s;
469596c5ddc4Srjs   GLhalfNV t = cmd->t;
469696c5ddc4Srjs   CALL_TexCoord2hNV(ctx->CurrentServerDispatch, (s, t));
469796c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TexCoord2hNV), 8) / 8);
469896c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
469996c5ddc4Srjs   return cmd_size;
470096c5ddc4Srjs}
470196c5ddc4Srjsvoid GLAPIENTRY
470296c5ddc4Srjs_mesa_marshal_TexCoord2hNV(GLhalfNV s, GLhalfNV t)
470396c5ddc4Srjs{
470496c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
470596c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_TexCoord2hNV);
470696c5ddc4Srjs   struct marshal_cmd_TexCoord2hNV *cmd;
470796c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexCoord2hNV, cmd_size);
470896c5ddc4Srjs   cmd->s = s;
470996c5ddc4Srjs   cmd->t = t;
471096c5ddc4Srjs}
471196c5ddc4Srjs
471296c5ddc4Srjs
471396c5ddc4Srjs/* TexCoord2hvNV: marshalled asynchronously */
471496c5ddc4Srjsstruct marshal_cmd_TexCoord2hvNV
471596c5ddc4Srjs{
471696c5ddc4Srjs   struct marshal_cmd_base cmd_base;
471796c5ddc4Srjs   GLhalfNV v[2];
471896c5ddc4Srjs};
471996c5ddc4Srjsuint32_t
472096c5ddc4Srjs_mesa_unmarshal_TexCoord2hvNV(struct gl_context *ctx, const struct marshal_cmd_TexCoord2hvNV *cmd, const uint64_t *last)
472196c5ddc4Srjs{
472296c5ddc4Srjs   const GLhalfNV * v = cmd->v;
472396c5ddc4Srjs   CALL_TexCoord2hvNV(ctx->CurrentServerDispatch, (v));
472496c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TexCoord2hvNV), 8) / 8);
472596c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
472696c5ddc4Srjs   return cmd_size;
472796c5ddc4Srjs}
472896c5ddc4Srjsvoid GLAPIENTRY
472996c5ddc4Srjs_mesa_marshal_TexCoord2hvNV(const GLhalfNV * v)
473096c5ddc4Srjs{
473196c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
473296c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_TexCoord2hvNV);
473396c5ddc4Srjs   struct marshal_cmd_TexCoord2hvNV *cmd;
473496c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexCoord2hvNV, cmd_size);
473596c5ddc4Srjs   memcpy(cmd->v, v, 2 * sizeof(GLhalfNV));
473696c5ddc4Srjs}
473796c5ddc4Srjs
473896c5ddc4Srjs
473996c5ddc4Srjs/* TexCoord3hNV: marshalled asynchronously */
474096c5ddc4Srjsstruct marshal_cmd_TexCoord3hNV
474196c5ddc4Srjs{
474296c5ddc4Srjs   struct marshal_cmd_base cmd_base;
474396c5ddc4Srjs   GLhalfNV s;
474496c5ddc4Srjs   GLhalfNV t;
474596c5ddc4Srjs   GLhalfNV r;
474696c5ddc4Srjs};
474796c5ddc4Srjsuint32_t
474896c5ddc4Srjs_mesa_unmarshal_TexCoord3hNV(struct gl_context *ctx, const struct marshal_cmd_TexCoord3hNV *cmd, const uint64_t *last)
474996c5ddc4Srjs{
475096c5ddc4Srjs   GLhalfNV s = cmd->s;
475196c5ddc4Srjs   GLhalfNV t = cmd->t;
475296c5ddc4Srjs   GLhalfNV r = cmd->r;
475396c5ddc4Srjs   CALL_TexCoord3hNV(ctx->CurrentServerDispatch, (s, t, r));
475496c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TexCoord3hNV), 8) / 8);
475596c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
475696c5ddc4Srjs   return cmd_size;
475796c5ddc4Srjs}
475896c5ddc4Srjsvoid GLAPIENTRY
475996c5ddc4Srjs_mesa_marshal_TexCoord3hNV(GLhalfNV s, GLhalfNV t, GLhalfNV r)
476096c5ddc4Srjs{
476196c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
476296c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_TexCoord3hNV);
476396c5ddc4Srjs   struct marshal_cmd_TexCoord3hNV *cmd;
476496c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexCoord3hNV, cmd_size);
476596c5ddc4Srjs   cmd->s = s;
476696c5ddc4Srjs   cmd->t = t;
476796c5ddc4Srjs   cmd->r = r;
476896c5ddc4Srjs}
476996c5ddc4Srjs
477096c5ddc4Srjs
477196c5ddc4Srjs/* TexCoord3hvNV: marshalled asynchronously */
477296c5ddc4Srjsstruct marshal_cmd_TexCoord3hvNV
477396c5ddc4Srjs{
477496c5ddc4Srjs   struct marshal_cmd_base cmd_base;
477596c5ddc4Srjs   GLhalfNV v[3];
477696c5ddc4Srjs};
477796c5ddc4Srjsuint32_t
477896c5ddc4Srjs_mesa_unmarshal_TexCoord3hvNV(struct gl_context *ctx, const struct marshal_cmd_TexCoord3hvNV *cmd, const uint64_t *last)
477996c5ddc4Srjs{
478096c5ddc4Srjs   const GLhalfNV * v = cmd->v;
478196c5ddc4Srjs   CALL_TexCoord3hvNV(ctx->CurrentServerDispatch, (v));
478296c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TexCoord3hvNV), 8) / 8);
478396c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
478496c5ddc4Srjs   return cmd_size;
478596c5ddc4Srjs}
478696c5ddc4Srjsvoid GLAPIENTRY
478796c5ddc4Srjs_mesa_marshal_TexCoord3hvNV(const GLhalfNV * v)
478896c5ddc4Srjs{
478996c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
479096c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_TexCoord3hvNV);
479196c5ddc4Srjs   struct marshal_cmd_TexCoord3hvNV *cmd;
479296c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexCoord3hvNV, cmd_size);
479396c5ddc4Srjs   memcpy(cmd->v, v, 3 * sizeof(GLhalfNV));
479496c5ddc4Srjs}
479596c5ddc4Srjs
479696c5ddc4Srjs
479796c5ddc4Srjs/* TexCoord4hNV: marshalled asynchronously */
479896c5ddc4Srjsstruct marshal_cmd_TexCoord4hNV
479996c5ddc4Srjs{
480096c5ddc4Srjs   struct marshal_cmd_base cmd_base;
480196c5ddc4Srjs   GLhalfNV s;
480296c5ddc4Srjs   GLhalfNV t;
480396c5ddc4Srjs   GLhalfNV r;
480496c5ddc4Srjs   GLhalfNV q;
480596c5ddc4Srjs};
480696c5ddc4Srjsuint32_t
480796c5ddc4Srjs_mesa_unmarshal_TexCoord4hNV(struct gl_context *ctx, const struct marshal_cmd_TexCoord4hNV *cmd, const uint64_t *last)
480896c5ddc4Srjs{
480996c5ddc4Srjs   GLhalfNV s = cmd->s;
481096c5ddc4Srjs   GLhalfNV t = cmd->t;
481196c5ddc4Srjs   GLhalfNV r = cmd->r;
481296c5ddc4Srjs   GLhalfNV q = cmd->q;
481396c5ddc4Srjs   CALL_TexCoord4hNV(ctx->CurrentServerDispatch, (s, t, r, q));
481496c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TexCoord4hNV), 8) / 8);
481596c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
481696c5ddc4Srjs   return cmd_size;
481796c5ddc4Srjs}
481896c5ddc4Srjsvoid GLAPIENTRY
481996c5ddc4Srjs_mesa_marshal_TexCoord4hNV(GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q)
482096c5ddc4Srjs{
482196c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
482296c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_TexCoord4hNV);
482396c5ddc4Srjs   struct marshal_cmd_TexCoord4hNV *cmd;
482496c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexCoord4hNV, cmd_size);
482596c5ddc4Srjs   cmd->s = s;
482696c5ddc4Srjs   cmd->t = t;
482796c5ddc4Srjs   cmd->r = r;
482896c5ddc4Srjs   cmd->q = q;
482996c5ddc4Srjs}
483096c5ddc4Srjs
483196c5ddc4Srjs
483296c5ddc4Srjs/* TexCoord4hvNV: marshalled asynchronously */
483396c5ddc4Srjsstruct marshal_cmd_TexCoord4hvNV
483496c5ddc4Srjs{
483596c5ddc4Srjs   struct marshal_cmd_base cmd_base;
483696c5ddc4Srjs   GLhalfNV v[4];
483796c5ddc4Srjs};
483896c5ddc4Srjsuint32_t
483996c5ddc4Srjs_mesa_unmarshal_TexCoord4hvNV(struct gl_context *ctx, const struct marshal_cmd_TexCoord4hvNV *cmd, const uint64_t *last)
484096c5ddc4Srjs{
484196c5ddc4Srjs   const GLhalfNV * v = cmd->v;
484296c5ddc4Srjs   CALL_TexCoord4hvNV(ctx->CurrentServerDispatch, (v));
484396c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TexCoord4hvNV), 8) / 8);
484496c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
484596c5ddc4Srjs   return cmd_size;
484696c5ddc4Srjs}
484796c5ddc4Srjsvoid GLAPIENTRY
484896c5ddc4Srjs_mesa_marshal_TexCoord4hvNV(const GLhalfNV * v)
484996c5ddc4Srjs{
485096c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
485196c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_TexCoord4hvNV);
485296c5ddc4Srjs   struct marshal_cmd_TexCoord4hvNV *cmd;
485396c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexCoord4hvNV, cmd_size);
485496c5ddc4Srjs   memcpy(cmd->v, v, 4 * sizeof(GLhalfNV));
485596c5ddc4Srjs}
485696c5ddc4Srjs
485796c5ddc4Srjs
485896c5ddc4Srjs/* MultiTexCoord1hNV: marshalled asynchronously */
485996c5ddc4Srjsstruct marshal_cmd_MultiTexCoord1hNV
486096c5ddc4Srjs{
486196c5ddc4Srjs   struct marshal_cmd_base cmd_base;
486296c5ddc4Srjs   GLhalfNV s;
486396c5ddc4Srjs   GLenum target;
486496c5ddc4Srjs};
486596c5ddc4Srjsuint32_t
486696c5ddc4Srjs_mesa_unmarshal_MultiTexCoord1hNV(struct gl_context *ctx, const struct marshal_cmd_MultiTexCoord1hNV *cmd, const uint64_t *last)
486796c5ddc4Srjs{
486896c5ddc4Srjs   GLenum target = cmd->target;
486996c5ddc4Srjs   GLhalfNV s = cmd->s;
487096c5ddc4Srjs   CALL_MultiTexCoord1hNV(ctx->CurrentServerDispatch, (target, s));
487196c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_MultiTexCoord1hNV), 8) / 8);
487296c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
487396c5ddc4Srjs   return cmd_size;
487496c5ddc4Srjs}
487596c5ddc4Srjsvoid GLAPIENTRY
487696c5ddc4Srjs_mesa_marshal_MultiTexCoord1hNV(GLenum target, GLhalfNV s)
487796c5ddc4Srjs{
487896c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
487996c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_MultiTexCoord1hNV);
488096c5ddc4Srjs   struct marshal_cmd_MultiTexCoord1hNV *cmd;
488196c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_MultiTexCoord1hNV, cmd_size);
488296c5ddc4Srjs   cmd->target = target;
488396c5ddc4Srjs   cmd->s = s;
488496c5ddc4Srjs}
488596c5ddc4Srjs
488696c5ddc4Srjs
488796c5ddc4Srjs/* MultiTexCoord1hvNV: marshalled asynchronously */
488896c5ddc4Srjsstruct marshal_cmd_MultiTexCoord1hvNV
488996c5ddc4Srjs{
489096c5ddc4Srjs   struct marshal_cmd_base cmd_base;
489196c5ddc4Srjs   GLenum target;
489296c5ddc4Srjs   GLhalfNV v[1];
489396c5ddc4Srjs};
489496c5ddc4Srjsuint32_t
489596c5ddc4Srjs_mesa_unmarshal_MultiTexCoord1hvNV(struct gl_context *ctx, const struct marshal_cmd_MultiTexCoord1hvNV *cmd, const uint64_t *last)
489696c5ddc4Srjs{
489796c5ddc4Srjs   GLenum target = cmd->target;
489896c5ddc4Srjs   const GLhalfNV * v = cmd->v;
489996c5ddc4Srjs   CALL_MultiTexCoord1hvNV(ctx->CurrentServerDispatch, (target, v));
490096c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_MultiTexCoord1hvNV), 8) / 8);
490196c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
490296c5ddc4Srjs   return cmd_size;
490396c5ddc4Srjs}
490496c5ddc4Srjsvoid GLAPIENTRY
490596c5ddc4Srjs_mesa_marshal_MultiTexCoord1hvNV(GLenum target, const GLhalfNV * v)
490696c5ddc4Srjs{
490796c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
490896c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_MultiTexCoord1hvNV);
490996c5ddc4Srjs   struct marshal_cmd_MultiTexCoord1hvNV *cmd;
491096c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_MultiTexCoord1hvNV, cmd_size);
491196c5ddc4Srjs   cmd->target = target;
491296c5ddc4Srjs   memcpy(cmd->v, v, 1 * sizeof(GLhalfNV));
491396c5ddc4Srjs}
491496c5ddc4Srjs
491596c5ddc4Srjs
491696c5ddc4Srjs/* MultiTexCoord2hNV: marshalled asynchronously */
491796c5ddc4Srjsstruct marshal_cmd_MultiTexCoord2hNV
491896c5ddc4Srjs{
491996c5ddc4Srjs   struct marshal_cmd_base cmd_base;
492096c5ddc4Srjs   GLhalfNV s;
492196c5ddc4Srjs   GLhalfNV t;
492296c5ddc4Srjs   GLenum target;
492396c5ddc4Srjs};
492496c5ddc4Srjsuint32_t
492596c5ddc4Srjs_mesa_unmarshal_MultiTexCoord2hNV(struct gl_context *ctx, const struct marshal_cmd_MultiTexCoord2hNV *cmd, const uint64_t *last)
492696c5ddc4Srjs{
492796c5ddc4Srjs   GLenum target = cmd->target;
492896c5ddc4Srjs   GLhalfNV s = cmd->s;
492996c5ddc4Srjs   GLhalfNV t = cmd->t;
493096c5ddc4Srjs   CALL_MultiTexCoord2hNV(ctx->CurrentServerDispatch, (target, s, t));
493196c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_MultiTexCoord2hNV), 8) / 8);
493296c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
493396c5ddc4Srjs   return cmd_size;
493496c5ddc4Srjs}
493596c5ddc4Srjsvoid GLAPIENTRY
493696c5ddc4Srjs_mesa_marshal_MultiTexCoord2hNV(GLenum target, GLhalfNV s, GLhalfNV t)
493796c5ddc4Srjs{
493896c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
493996c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_MultiTexCoord2hNV);
494096c5ddc4Srjs   struct marshal_cmd_MultiTexCoord2hNV *cmd;
494196c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_MultiTexCoord2hNV, cmd_size);
494296c5ddc4Srjs   cmd->target = target;
494396c5ddc4Srjs   cmd->s = s;
494496c5ddc4Srjs   cmd->t = t;
494596c5ddc4Srjs}
494696c5ddc4Srjs
494796c5ddc4Srjs
494896c5ddc4Srjs/* MultiTexCoord2hvNV: marshalled asynchronously */
494996c5ddc4Srjsstruct marshal_cmd_MultiTexCoord2hvNV
495096c5ddc4Srjs{
495196c5ddc4Srjs   struct marshal_cmd_base cmd_base;
495296c5ddc4Srjs   GLenum target;
495396c5ddc4Srjs   GLhalfNV v[2];
495496c5ddc4Srjs};
495596c5ddc4Srjsuint32_t
495696c5ddc4Srjs_mesa_unmarshal_MultiTexCoord2hvNV(struct gl_context *ctx, const struct marshal_cmd_MultiTexCoord2hvNV *cmd, const uint64_t *last)
495796c5ddc4Srjs{
495896c5ddc4Srjs   GLenum target = cmd->target;
495996c5ddc4Srjs   const GLhalfNV * v = cmd->v;
496096c5ddc4Srjs   CALL_MultiTexCoord2hvNV(ctx->CurrentServerDispatch, (target, v));
496196c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_MultiTexCoord2hvNV), 8) / 8);
496296c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
496396c5ddc4Srjs   return cmd_size;
496496c5ddc4Srjs}
496596c5ddc4Srjsvoid GLAPIENTRY
496696c5ddc4Srjs_mesa_marshal_MultiTexCoord2hvNV(GLenum target, const GLhalfNV * v)
496796c5ddc4Srjs{
496896c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
496996c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_MultiTexCoord2hvNV);
497096c5ddc4Srjs   struct marshal_cmd_MultiTexCoord2hvNV *cmd;
497196c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_MultiTexCoord2hvNV, cmd_size);
497296c5ddc4Srjs   cmd->target = target;
497396c5ddc4Srjs   memcpy(cmd->v, v, 2 * sizeof(GLhalfNV));
497496c5ddc4Srjs}
497596c5ddc4Srjs
497696c5ddc4Srjs
497796c5ddc4Srjs/* MultiTexCoord3hNV: marshalled asynchronously */
497896c5ddc4Srjsstruct marshal_cmd_MultiTexCoord3hNV
497996c5ddc4Srjs{
498096c5ddc4Srjs   struct marshal_cmd_base cmd_base;
498196c5ddc4Srjs   GLhalfNV s;
498296c5ddc4Srjs   GLhalfNV t;
498396c5ddc4Srjs   GLhalfNV r;
498496c5ddc4Srjs   GLenum target;
498596c5ddc4Srjs};
498696c5ddc4Srjsuint32_t
498796c5ddc4Srjs_mesa_unmarshal_MultiTexCoord3hNV(struct gl_context *ctx, const struct marshal_cmd_MultiTexCoord3hNV *cmd, const uint64_t *last)
498896c5ddc4Srjs{
498996c5ddc4Srjs   GLenum target = cmd->target;
499096c5ddc4Srjs   GLhalfNV s = cmd->s;
499196c5ddc4Srjs   GLhalfNV t = cmd->t;
499296c5ddc4Srjs   GLhalfNV r = cmd->r;
499396c5ddc4Srjs   CALL_MultiTexCoord3hNV(ctx->CurrentServerDispatch, (target, s, t, r));
499496c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_MultiTexCoord3hNV), 8) / 8);
499596c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
499696c5ddc4Srjs   return cmd_size;
499796c5ddc4Srjs}
499896c5ddc4Srjsvoid GLAPIENTRY
499996c5ddc4Srjs_mesa_marshal_MultiTexCoord3hNV(GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r)
500096c5ddc4Srjs{
500196c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
500296c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_MultiTexCoord3hNV);
500396c5ddc4Srjs   struct marshal_cmd_MultiTexCoord3hNV *cmd;
500496c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_MultiTexCoord3hNV, cmd_size);
500596c5ddc4Srjs   cmd->target = target;
500696c5ddc4Srjs   cmd->s = s;
500796c5ddc4Srjs   cmd->t = t;
500896c5ddc4Srjs   cmd->r = r;
500996c5ddc4Srjs}
501096c5ddc4Srjs
501196c5ddc4Srjs
501296c5ddc4Srjs/* MultiTexCoord3hvNV: marshalled asynchronously */
501396c5ddc4Srjsstruct marshal_cmd_MultiTexCoord3hvNV
501496c5ddc4Srjs{
501596c5ddc4Srjs   struct marshal_cmd_base cmd_base;
501696c5ddc4Srjs   GLenum target;
501796c5ddc4Srjs   GLhalfNV v[3];
501896c5ddc4Srjs};
501996c5ddc4Srjsuint32_t
502096c5ddc4Srjs_mesa_unmarshal_MultiTexCoord3hvNV(struct gl_context *ctx, const struct marshal_cmd_MultiTexCoord3hvNV *cmd, const uint64_t *last)
502196c5ddc4Srjs{
502296c5ddc4Srjs   GLenum target = cmd->target;
502396c5ddc4Srjs   const GLhalfNV * v = cmd->v;
502496c5ddc4Srjs   CALL_MultiTexCoord3hvNV(ctx->CurrentServerDispatch, (target, v));
502596c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_MultiTexCoord3hvNV), 8) / 8);
502696c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
502796c5ddc4Srjs   return cmd_size;
502896c5ddc4Srjs}
502996c5ddc4Srjsvoid GLAPIENTRY
503096c5ddc4Srjs_mesa_marshal_MultiTexCoord3hvNV(GLenum target, const GLhalfNV * v)
503196c5ddc4Srjs{
503296c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
503396c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_MultiTexCoord3hvNV);
503496c5ddc4Srjs   struct marshal_cmd_MultiTexCoord3hvNV *cmd;
503596c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_MultiTexCoord3hvNV, cmd_size);
503696c5ddc4Srjs   cmd->target = target;
503796c5ddc4Srjs   memcpy(cmd->v, v, 3 * sizeof(GLhalfNV));
503896c5ddc4Srjs}
503996c5ddc4Srjs
504096c5ddc4Srjs
504196c5ddc4Srjs/* MultiTexCoord4hNV: marshalled asynchronously */
504296c5ddc4Srjsstruct marshal_cmd_MultiTexCoord4hNV
504396c5ddc4Srjs{
504496c5ddc4Srjs   struct marshal_cmd_base cmd_base;
504596c5ddc4Srjs   GLhalfNV s;
504696c5ddc4Srjs   GLhalfNV t;
504796c5ddc4Srjs   GLhalfNV r;
504896c5ddc4Srjs   GLhalfNV q;
504996c5ddc4Srjs   GLenum target;
505096c5ddc4Srjs};
505196c5ddc4Srjsuint32_t
505296c5ddc4Srjs_mesa_unmarshal_MultiTexCoord4hNV(struct gl_context *ctx, const struct marshal_cmd_MultiTexCoord4hNV *cmd, const uint64_t *last)
505396c5ddc4Srjs{
505496c5ddc4Srjs   GLenum target = cmd->target;
505596c5ddc4Srjs   GLhalfNV s = cmd->s;
505696c5ddc4Srjs   GLhalfNV t = cmd->t;
505796c5ddc4Srjs   GLhalfNV r = cmd->r;
505896c5ddc4Srjs   GLhalfNV q = cmd->q;
505996c5ddc4Srjs   CALL_MultiTexCoord4hNV(ctx->CurrentServerDispatch, (target, s, t, r, q));
506096c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_MultiTexCoord4hNV), 8) / 8);
506196c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
506296c5ddc4Srjs   return cmd_size;
506396c5ddc4Srjs}
506496c5ddc4Srjsvoid GLAPIENTRY
506596c5ddc4Srjs_mesa_marshal_MultiTexCoord4hNV(GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q)
506696c5ddc4Srjs{
506796c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
506896c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_MultiTexCoord4hNV);
506996c5ddc4Srjs   struct marshal_cmd_MultiTexCoord4hNV *cmd;
507096c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_MultiTexCoord4hNV, cmd_size);
507196c5ddc4Srjs   cmd->target = target;
507296c5ddc4Srjs   cmd->s = s;
507396c5ddc4Srjs   cmd->t = t;
507496c5ddc4Srjs   cmd->r = r;
507596c5ddc4Srjs   cmd->q = q;
507696c5ddc4Srjs}
507796c5ddc4Srjs
507896c5ddc4Srjs
507996c5ddc4Srjs/* MultiTexCoord4hvNV: marshalled asynchronously */
508096c5ddc4Srjsstruct marshal_cmd_MultiTexCoord4hvNV
508196c5ddc4Srjs{
508296c5ddc4Srjs   struct marshal_cmd_base cmd_base;
508396c5ddc4Srjs   GLenum target;
508496c5ddc4Srjs   GLhalfNV v[4];
508596c5ddc4Srjs};
508696c5ddc4Srjsuint32_t
508796c5ddc4Srjs_mesa_unmarshal_MultiTexCoord4hvNV(struct gl_context *ctx, const struct marshal_cmd_MultiTexCoord4hvNV *cmd, const uint64_t *last)
508896c5ddc4Srjs{
508996c5ddc4Srjs   GLenum target = cmd->target;
509096c5ddc4Srjs   const GLhalfNV * v = cmd->v;
509196c5ddc4Srjs   CALL_MultiTexCoord4hvNV(ctx->CurrentServerDispatch, (target, v));
509296c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_MultiTexCoord4hvNV), 8) / 8);
509396c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
509496c5ddc4Srjs   return cmd_size;
509596c5ddc4Srjs}
509696c5ddc4Srjsvoid GLAPIENTRY
509796c5ddc4Srjs_mesa_marshal_MultiTexCoord4hvNV(GLenum target, const GLhalfNV * v)
509896c5ddc4Srjs{
509996c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
510096c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_MultiTexCoord4hvNV);
510196c5ddc4Srjs   struct marshal_cmd_MultiTexCoord4hvNV *cmd;
510296c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_MultiTexCoord4hvNV, cmd_size);
510396c5ddc4Srjs   cmd->target = target;
510496c5ddc4Srjs   memcpy(cmd->v, v, 4 * sizeof(GLhalfNV));
510596c5ddc4Srjs}
510696c5ddc4Srjs
510796c5ddc4Srjs
510896c5ddc4Srjs/* VertexAttrib1hNV: marshalled asynchronously */
510996c5ddc4Srjsstruct marshal_cmd_VertexAttrib1hNV
511096c5ddc4Srjs{
511196c5ddc4Srjs   struct marshal_cmd_base cmd_base;
511296c5ddc4Srjs   GLhalfNV x;
511396c5ddc4Srjs   GLuint index;
511496c5ddc4Srjs};
511596c5ddc4Srjsuint32_t
511696c5ddc4Srjs_mesa_unmarshal_VertexAttrib1hNV(struct gl_context *ctx, const struct marshal_cmd_VertexAttrib1hNV *cmd, const uint64_t *last)
511796c5ddc4Srjs{
511896c5ddc4Srjs   GLuint index = cmd->index;
511996c5ddc4Srjs   GLhalfNV x = cmd->x;
512096c5ddc4Srjs   CALL_VertexAttrib1hNV(ctx->CurrentServerDispatch, (index, x));
512196c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttrib1hNV), 8) / 8);
512296c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
512396c5ddc4Srjs   return cmd_size;
512496c5ddc4Srjs}
512596c5ddc4Srjsvoid GLAPIENTRY
512696c5ddc4Srjs_mesa_marshal_VertexAttrib1hNV(GLuint index, GLhalfNV x)
512796c5ddc4Srjs{
512896c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
512996c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VertexAttrib1hNV);
513096c5ddc4Srjs   struct marshal_cmd_VertexAttrib1hNV *cmd;
513196c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttrib1hNV, cmd_size);
513296c5ddc4Srjs   cmd->index = index;
513396c5ddc4Srjs   cmd->x = x;
513496c5ddc4Srjs}
513596c5ddc4Srjs
513696c5ddc4Srjs
513796c5ddc4Srjs/* VertexAttrib1hvNV: marshalled asynchronously */
513896c5ddc4Srjsstruct marshal_cmd_VertexAttrib1hvNV
513996c5ddc4Srjs{
514096c5ddc4Srjs   struct marshal_cmd_base cmd_base;
514196c5ddc4Srjs   GLuint index;
514296c5ddc4Srjs   GLhalfNV v[1];
514396c5ddc4Srjs};
514496c5ddc4Srjsuint32_t
514596c5ddc4Srjs_mesa_unmarshal_VertexAttrib1hvNV(struct gl_context *ctx, const struct marshal_cmd_VertexAttrib1hvNV *cmd, const uint64_t *last)
514696c5ddc4Srjs{
514796c5ddc4Srjs   GLuint index = cmd->index;
514896c5ddc4Srjs   const GLhalfNV * v = cmd->v;
514996c5ddc4Srjs   CALL_VertexAttrib1hvNV(ctx->CurrentServerDispatch, (index, v));
515096c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttrib1hvNV), 8) / 8);
515196c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
515296c5ddc4Srjs   return cmd_size;
515396c5ddc4Srjs}
515496c5ddc4Srjsvoid GLAPIENTRY
515596c5ddc4Srjs_mesa_marshal_VertexAttrib1hvNV(GLuint index, const GLhalfNV * v)
515696c5ddc4Srjs{
515796c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
515896c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VertexAttrib1hvNV);
515996c5ddc4Srjs   struct marshal_cmd_VertexAttrib1hvNV *cmd;
516096c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttrib1hvNV, cmd_size);
516196c5ddc4Srjs   cmd->index = index;
516296c5ddc4Srjs   memcpy(cmd->v, v, 1 * sizeof(GLhalfNV));
516396c5ddc4Srjs}
516496c5ddc4Srjs
516596c5ddc4Srjs
516696c5ddc4Srjs/* VertexAttrib2hNV: marshalled asynchronously */
516796c5ddc4Srjsstruct marshal_cmd_VertexAttrib2hNV
516896c5ddc4Srjs{
516996c5ddc4Srjs   struct marshal_cmd_base cmd_base;
517096c5ddc4Srjs   GLhalfNV x;
517196c5ddc4Srjs   GLhalfNV y;
517296c5ddc4Srjs   GLuint index;
517396c5ddc4Srjs};
517496c5ddc4Srjsuint32_t
517596c5ddc4Srjs_mesa_unmarshal_VertexAttrib2hNV(struct gl_context *ctx, const struct marshal_cmd_VertexAttrib2hNV *cmd, const uint64_t *last)
517696c5ddc4Srjs{
517796c5ddc4Srjs   GLuint index = cmd->index;
517896c5ddc4Srjs   GLhalfNV x = cmd->x;
517996c5ddc4Srjs   GLhalfNV y = cmd->y;
518096c5ddc4Srjs   CALL_VertexAttrib2hNV(ctx->CurrentServerDispatch, (index, x, y));
518196c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttrib2hNV), 8) / 8);
518296c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
518396c5ddc4Srjs   return cmd_size;
518496c5ddc4Srjs}
518596c5ddc4Srjsvoid GLAPIENTRY
518696c5ddc4Srjs_mesa_marshal_VertexAttrib2hNV(GLuint index, GLhalfNV x, GLhalfNV y)
518796c5ddc4Srjs{
518896c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
518996c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VertexAttrib2hNV);
519096c5ddc4Srjs   struct marshal_cmd_VertexAttrib2hNV *cmd;
519196c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttrib2hNV, cmd_size);
519296c5ddc4Srjs   cmd->index = index;
519396c5ddc4Srjs   cmd->x = x;
519496c5ddc4Srjs   cmd->y = y;
519596c5ddc4Srjs}
519696c5ddc4Srjs
519796c5ddc4Srjs
519896c5ddc4Srjs/* VertexAttrib2hvNV: marshalled asynchronously */
519996c5ddc4Srjsstruct marshal_cmd_VertexAttrib2hvNV
520096c5ddc4Srjs{
520196c5ddc4Srjs   struct marshal_cmd_base cmd_base;
520296c5ddc4Srjs   GLuint index;
520396c5ddc4Srjs   GLhalfNV v[2];
520496c5ddc4Srjs};
520596c5ddc4Srjsuint32_t
520696c5ddc4Srjs_mesa_unmarshal_VertexAttrib2hvNV(struct gl_context *ctx, const struct marshal_cmd_VertexAttrib2hvNV *cmd, const uint64_t *last)
520796c5ddc4Srjs{
520896c5ddc4Srjs   GLuint index = cmd->index;
520996c5ddc4Srjs   const GLhalfNV * v = cmd->v;
521096c5ddc4Srjs   CALL_VertexAttrib2hvNV(ctx->CurrentServerDispatch, (index, v));
521196c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttrib2hvNV), 8) / 8);
521296c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
521396c5ddc4Srjs   return cmd_size;
521496c5ddc4Srjs}
521596c5ddc4Srjsvoid GLAPIENTRY
521696c5ddc4Srjs_mesa_marshal_VertexAttrib2hvNV(GLuint index, const GLhalfNV * v)
521796c5ddc4Srjs{
521896c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
521996c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VertexAttrib2hvNV);
522096c5ddc4Srjs   struct marshal_cmd_VertexAttrib2hvNV *cmd;
522196c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttrib2hvNV, cmd_size);
522296c5ddc4Srjs   cmd->index = index;
522396c5ddc4Srjs   memcpy(cmd->v, v, 2 * sizeof(GLhalfNV));
522496c5ddc4Srjs}
522596c5ddc4Srjs
522696c5ddc4Srjs
522796c5ddc4Srjs/* VertexAttrib3hNV: marshalled asynchronously */
522896c5ddc4Srjsstruct marshal_cmd_VertexAttrib3hNV
522996c5ddc4Srjs{
523096c5ddc4Srjs   struct marshal_cmd_base cmd_base;
523196c5ddc4Srjs   GLhalfNV x;
523296c5ddc4Srjs   GLhalfNV y;
523396c5ddc4Srjs   GLhalfNV z;
523496c5ddc4Srjs   GLuint index;
523596c5ddc4Srjs};
523696c5ddc4Srjsuint32_t
523796c5ddc4Srjs_mesa_unmarshal_VertexAttrib3hNV(struct gl_context *ctx, const struct marshal_cmd_VertexAttrib3hNV *cmd, const uint64_t *last)
523896c5ddc4Srjs{
523996c5ddc4Srjs   GLuint index = cmd->index;
524096c5ddc4Srjs   GLhalfNV x = cmd->x;
524196c5ddc4Srjs   GLhalfNV y = cmd->y;
524296c5ddc4Srjs   GLhalfNV z = cmd->z;
524396c5ddc4Srjs   CALL_VertexAttrib3hNV(ctx->CurrentServerDispatch, (index, x, y, z));
524496c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttrib3hNV), 8) / 8);
524596c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
524696c5ddc4Srjs   return cmd_size;
524796c5ddc4Srjs}
524896c5ddc4Srjsvoid GLAPIENTRY
524996c5ddc4Srjs_mesa_marshal_VertexAttrib3hNV(GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z)
525096c5ddc4Srjs{
525196c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
525296c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VertexAttrib3hNV);
525396c5ddc4Srjs   struct marshal_cmd_VertexAttrib3hNV *cmd;
525496c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttrib3hNV, cmd_size);
525596c5ddc4Srjs   cmd->index = index;
525696c5ddc4Srjs   cmd->x = x;
525796c5ddc4Srjs   cmd->y = y;
525896c5ddc4Srjs   cmd->z = z;
525996c5ddc4Srjs}
526096c5ddc4Srjs
526196c5ddc4Srjs
526296c5ddc4Srjs/* VertexAttrib3hvNV: marshalled asynchronously */
526396c5ddc4Srjsstruct marshal_cmd_VertexAttrib3hvNV
526496c5ddc4Srjs{
526596c5ddc4Srjs   struct marshal_cmd_base cmd_base;
526696c5ddc4Srjs   GLuint index;
526796c5ddc4Srjs   GLhalfNV v[3];
526896c5ddc4Srjs};
526996c5ddc4Srjsuint32_t
527096c5ddc4Srjs_mesa_unmarshal_VertexAttrib3hvNV(struct gl_context *ctx, const struct marshal_cmd_VertexAttrib3hvNV *cmd, const uint64_t *last)
527196c5ddc4Srjs{
527296c5ddc4Srjs   GLuint index = cmd->index;
527396c5ddc4Srjs   const GLhalfNV * v = cmd->v;
527496c5ddc4Srjs   CALL_VertexAttrib3hvNV(ctx->CurrentServerDispatch, (index, v));
527596c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttrib3hvNV), 8) / 8);
527696c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
527796c5ddc4Srjs   return cmd_size;
527896c5ddc4Srjs}
527996c5ddc4Srjsvoid GLAPIENTRY
528096c5ddc4Srjs_mesa_marshal_VertexAttrib3hvNV(GLuint index, const GLhalfNV * v)
528196c5ddc4Srjs{
528296c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
528396c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VertexAttrib3hvNV);
528496c5ddc4Srjs   struct marshal_cmd_VertexAttrib3hvNV *cmd;
528596c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttrib3hvNV, cmd_size);
528696c5ddc4Srjs   cmd->index = index;
528796c5ddc4Srjs   memcpy(cmd->v, v, 3 * sizeof(GLhalfNV));
528896c5ddc4Srjs}
528996c5ddc4Srjs
529096c5ddc4Srjs
529196c5ddc4Srjs/* VertexAttrib4hNV: marshalled asynchronously */
529296c5ddc4Srjsstruct marshal_cmd_VertexAttrib4hNV
529396c5ddc4Srjs{
529496c5ddc4Srjs   struct marshal_cmd_base cmd_base;
529596c5ddc4Srjs   GLhalfNV x;
529696c5ddc4Srjs   GLhalfNV y;
529796c5ddc4Srjs   GLhalfNV z;
529896c5ddc4Srjs   GLhalfNV w;
529996c5ddc4Srjs   GLuint index;
530096c5ddc4Srjs};
530196c5ddc4Srjsuint32_t
530296c5ddc4Srjs_mesa_unmarshal_VertexAttrib4hNV(struct gl_context *ctx, const struct marshal_cmd_VertexAttrib4hNV *cmd, const uint64_t *last)
530396c5ddc4Srjs{
530496c5ddc4Srjs   GLuint index = cmd->index;
530596c5ddc4Srjs   GLhalfNV x = cmd->x;
530696c5ddc4Srjs   GLhalfNV y = cmd->y;
530796c5ddc4Srjs   GLhalfNV z = cmd->z;
530896c5ddc4Srjs   GLhalfNV w = cmd->w;
530996c5ddc4Srjs   CALL_VertexAttrib4hNV(ctx->CurrentServerDispatch, (index, x, y, z, w));
531096c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttrib4hNV), 8) / 8);
531196c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
531296c5ddc4Srjs   return cmd_size;
531396c5ddc4Srjs}
531496c5ddc4Srjsvoid GLAPIENTRY
531596c5ddc4Srjs_mesa_marshal_VertexAttrib4hNV(GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w)
531696c5ddc4Srjs{
531796c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
531896c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VertexAttrib4hNV);
531996c5ddc4Srjs   struct marshal_cmd_VertexAttrib4hNV *cmd;
532096c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttrib4hNV, cmd_size);
532196c5ddc4Srjs   cmd->index = index;
532296c5ddc4Srjs   cmd->x = x;
532396c5ddc4Srjs   cmd->y = y;
532496c5ddc4Srjs   cmd->z = z;
532596c5ddc4Srjs   cmd->w = w;
532696c5ddc4Srjs}
532796c5ddc4Srjs
532896c5ddc4Srjs
532996c5ddc4Srjs/* VertexAttrib4hvNV: marshalled asynchronously */
533096c5ddc4Srjsstruct marshal_cmd_VertexAttrib4hvNV
533196c5ddc4Srjs{
533296c5ddc4Srjs   struct marshal_cmd_base cmd_base;
533396c5ddc4Srjs   GLuint index;
533496c5ddc4Srjs   GLhalfNV v[4];
533596c5ddc4Srjs};
533696c5ddc4Srjsuint32_t
533796c5ddc4Srjs_mesa_unmarshal_VertexAttrib4hvNV(struct gl_context *ctx, const struct marshal_cmd_VertexAttrib4hvNV *cmd, const uint64_t *last)
533896c5ddc4Srjs{
533996c5ddc4Srjs   GLuint index = cmd->index;
534096c5ddc4Srjs   const GLhalfNV * v = cmd->v;
534196c5ddc4Srjs   CALL_VertexAttrib4hvNV(ctx->CurrentServerDispatch, (index, v));
534296c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttrib4hvNV), 8) / 8);
534396c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
534496c5ddc4Srjs   return cmd_size;
534596c5ddc4Srjs}
534696c5ddc4Srjsvoid GLAPIENTRY
534796c5ddc4Srjs_mesa_marshal_VertexAttrib4hvNV(GLuint index, const GLhalfNV * v)
534896c5ddc4Srjs{
534996c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
535096c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VertexAttrib4hvNV);
535196c5ddc4Srjs   struct marshal_cmd_VertexAttrib4hvNV *cmd;
535296c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttrib4hvNV, cmd_size);
535396c5ddc4Srjs   cmd->index = index;
535496c5ddc4Srjs   memcpy(cmd->v, v, 4 * sizeof(GLhalfNV));
535596c5ddc4Srjs}
535696c5ddc4Srjs
535796c5ddc4Srjs
535896c5ddc4Srjs/* VertexAttribs1hvNV: marshalled asynchronously */
535996c5ddc4Srjsstruct marshal_cmd_VertexAttribs1hvNV
536096c5ddc4Srjs{
536196c5ddc4Srjs   struct marshal_cmd_base cmd_base;
536296c5ddc4Srjs   GLuint index;
536396c5ddc4Srjs   GLsizei n;
536496c5ddc4Srjs   /* Next safe_mul(n, 1 * sizeof(GLhalfNV)) bytes are GLhalfNV v[n] */
536596c5ddc4Srjs};
536696c5ddc4Srjsuint32_t
536796c5ddc4Srjs_mesa_unmarshal_VertexAttribs1hvNV(struct gl_context *ctx, const struct marshal_cmd_VertexAttribs1hvNV *cmd, const uint64_t *last)
536896c5ddc4Srjs{
536996c5ddc4Srjs   GLuint index = cmd->index;
537096c5ddc4Srjs   GLsizei n = cmd->n;
537196c5ddc4Srjs   GLhalfNV * v;
537296c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
537396c5ddc4Srjs   v = (GLhalfNV *) variable_data;
537496c5ddc4Srjs   CALL_VertexAttribs1hvNV(ctx->CurrentServerDispatch, (index, n, v));
537596c5ddc4Srjs   return cmd->cmd_base.cmd_size;
537696c5ddc4Srjs}
537796c5ddc4Srjsvoid GLAPIENTRY
537896c5ddc4Srjs_mesa_marshal_VertexAttribs1hvNV(GLuint index, GLsizei n, const GLhalfNV * v)
537996c5ddc4Srjs{
538096c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
538196c5ddc4Srjs   int v_size = safe_mul(n, 1 * sizeof(GLhalfNV));
538296c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VertexAttribs1hvNV) + v_size;
538396c5ddc4Srjs   struct marshal_cmd_VertexAttribs1hvNV *cmd;
538496c5ddc4Srjs   if (unlikely(v_size < 0 || (v_size > 0 && !v) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
538596c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "VertexAttribs1hvNV");
538696c5ddc4Srjs      CALL_VertexAttribs1hvNV(ctx->CurrentServerDispatch, (index, n, v));
538796c5ddc4Srjs      return;
538896c5ddc4Srjs   }
538996c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribs1hvNV, cmd_size);
539096c5ddc4Srjs   cmd->index = index;
539196c5ddc4Srjs   cmd->n = n;
539296c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
539396c5ddc4Srjs   memcpy(variable_data, v, v_size);
539496c5ddc4Srjs}
539596c5ddc4Srjs
539696c5ddc4Srjs
539796c5ddc4Srjs/* VertexAttribs2hvNV: marshalled asynchronously */
539896c5ddc4Srjsstruct marshal_cmd_VertexAttribs2hvNV
539996c5ddc4Srjs{
540096c5ddc4Srjs   struct marshal_cmd_base cmd_base;
540196c5ddc4Srjs   GLuint index;
540296c5ddc4Srjs   GLsizei n;
540396c5ddc4Srjs   /* Next safe_mul(n, 2 * sizeof(GLhalfNV)) bytes are GLhalfNV v[n][2] */
540496c5ddc4Srjs};
540596c5ddc4Srjsuint32_t
540696c5ddc4Srjs_mesa_unmarshal_VertexAttribs2hvNV(struct gl_context *ctx, const struct marshal_cmd_VertexAttribs2hvNV *cmd, const uint64_t *last)
540796c5ddc4Srjs{
540896c5ddc4Srjs   GLuint index = cmd->index;
540996c5ddc4Srjs   GLsizei n = cmd->n;
541096c5ddc4Srjs   GLhalfNV * v;
541196c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
541296c5ddc4Srjs   v = (GLhalfNV *) variable_data;
541396c5ddc4Srjs   CALL_VertexAttribs2hvNV(ctx->CurrentServerDispatch, (index, n, v));
541496c5ddc4Srjs   return cmd->cmd_base.cmd_size;
541596c5ddc4Srjs}
541696c5ddc4Srjsvoid GLAPIENTRY
541796c5ddc4Srjs_mesa_marshal_VertexAttribs2hvNV(GLuint index, GLsizei n, const GLhalfNV * v)
541896c5ddc4Srjs{
541996c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
542096c5ddc4Srjs   int v_size = safe_mul(n, 2 * sizeof(GLhalfNV));
542196c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VertexAttribs2hvNV) + v_size;
542296c5ddc4Srjs   struct marshal_cmd_VertexAttribs2hvNV *cmd;
542396c5ddc4Srjs   if (unlikely(v_size < 0 || (v_size > 0 && !v) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
542496c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "VertexAttribs2hvNV");
542596c5ddc4Srjs      CALL_VertexAttribs2hvNV(ctx->CurrentServerDispatch, (index, n, v));
542696c5ddc4Srjs      return;
542796c5ddc4Srjs   }
542896c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribs2hvNV, cmd_size);
542996c5ddc4Srjs   cmd->index = index;
543096c5ddc4Srjs   cmd->n = n;
543196c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
543296c5ddc4Srjs   memcpy(variable_data, v, v_size);
543396c5ddc4Srjs}
543496c5ddc4Srjs
543596c5ddc4Srjs
543696c5ddc4Srjs/* VertexAttribs3hvNV: marshalled asynchronously */
543796c5ddc4Srjsstruct marshal_cmd_VertexAttribs3hvNV
543896c5ddc4Srjs{
543996c5ddc4Srjs   struct marshal_cmd_base cmd_base;
544096c5ddc4Srjs   GLuint index;
544196c5ddc4Srjs   GLsizei n;
544296c5ddc4Srjs   /* Next safe_mul(n, 3 * sizeof(GLhalfNV)) bytes are GLhalfNV v[n][3] */
544396c5ddc4Srjs};
544496c5ddc4Srjsuint32_t
544596c5ddc4Srjs_mesa_unmarshal_VertexAttribs3hvNV(struct gl_context *ctx, const struct marshal_cmd_VertexAttribs3hvNV *cmd, const uint64_t *last)
544696c5ddc4Srjs{
544796c5ddc4Srjs   GLuint index = cmd->index;
544896c5ddc4Srjs   GLsizei n = cmd->n;
544996c5ddc4Srjs   GLhalfNV * v;
545096c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
545196c5ddc4Srjs   v = (GLhalfNV *) variable_data;
545296c5ddc4Srjs   CALL_VertexAttribs3hvNV(ctx->CurrentServerDispatch, (index, n, v));
545396c5ddc4Srjs   return cmd->cmd_base.cmd_size;
545496c5ddc4Srjs}
545596c5ddc4Srjsvoid GLAPIENTRY
545696c5ddc4Srjs_mesa_marshal_VertexAttribs3hvNV(GLuint index, GLsizei n, const GLhalfNV * v)
545796c5ddc4Srjs{
545896c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
545996c5ddc4Srjs   int v_size = safe_mul(n, 3 * sizeof(GLhalfNV));
546096c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VertexAttribs3hvNV) + v_size;
546196c5ddc4Srjs   struct marshal_cmd_VertexAttribs3hvNV *cmd;
546296c5ddc4Srjs   if (unlikely(v_size < 0 || (v_size > 0 && !v) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
546396c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "VertexAttribs3hvNV");
546496c5ddc4Srjs      CALL_VertexAttribs3hvNV(ctx->CurrentServerDispatch, (index, n, v));
546596c5ddc4Srjs      return;
546696c5ddc4Srjs   }
546796c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribs3hvNV, cmd_size);
546896c5ddc4Srjs   cmd->index = index;
546996c5ddc4Srjs   cmd->n = n;
547096c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
547196c5ddc4Srjs   memcpy(variable_data, v, v_size);
547296c5ddc4Srjs}
547396c5ddc4Srjs
547496c5ddc4Srjs
547596c5ddc4Srjs/* VertexAttribs4hvNV: marshalled asynchronously */
547696c5ddc4Srjsstruct marshal_cmd_VertexAttribs4hvNV
547796c5ddc4Srjs{
547896c5ddc4Srjs   struct marshal_cmd_base cmd_base;
547996c5ddc4Srjs   GLuint index;
548096c5ddc4Srjs   GLsizei n;
548196c5ddc4Srjs   /* Next safe_mul(n, 4 * sizeof(GLhalfNV)) bytes are GLhalfNV v[n][4] */
548296c5ddc4Srjs};
548396c5ddc4Srjsuint32_t
548496c5ddc4Srjs_mesa_unmarshal_VertexAttribs4hvNV(struct gl_context *ctx, const struct marshal_cmd_VertexAttribs4hvNV *cmd, const uint64_t *last)
548596c5ddc4Srjs{
548696c5ddc4Srjs   GLuint index = cmd->index;
548796c5ddc4Srjs   GLsizei n = cmd->n;
548896c5ddc4Srjs   GLhalfNV * v;
548996c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
549096c5ddc4Srjs   v = (GLhalfNV *) variable_data;
549196c5ddc4Srjs   CALL_VertexAttribs4hvNV(ctx->CurrentServerDispatch, (index, n, v));
549296c5ddc4Srjs   return cmd->cmd_base.cmd_size;
549396c5ddc4Srjs}
549496c5ddc4Srjsvoid GLAPIENTRY
549596c5ddc4Srjs_mesa_marshal_VertexAttribs4hvNV(GLuint index, GLsizei n, const GLhalfNV * v)
549696c5ddc4Srjs{
549796c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
549896c5ddc4Srjs   int v_size = safe_mul(n, 4 * sizeof(GLhalfNV));
549996c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_VertexAttribs4hvNV) + v_size;
550096c5ddc4Srjs   struct marshal_cmd_VertexAttribs4hvNV *cmd;
550196c5ddc4Srjs   if (unlikely(v_size < 0 || (v_size > 0 && !v) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
550296c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "VertexAttribs4hvNV");
550396c5ddc4Srjs      CALL_VertexAttribs4hvNV(ctx->CurrentServerDispatch, (index, n, v));
550496c5ddc4Srjs      return;
550596c5ddc4Srjs   }
550696c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribs4hvNV, cmd_size);
550796c5ddc4Srjs   cmd->index = index;
550896c5ddc4Srjs   cmd->n = n;
550996c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
551096c5ddc4Srjs   memcpy(variable_data, v, v_size);
551196c5ddc4Srjs}
551296c5ddc4Srjs
551396c5ddc4Srjs
551496c5ddc4Srjs/* FogCoordhNV: marshalled asynchronously */
551596c5ddc4Srjsstruct marshal_cmd_FogCoordhNV
551696c5ddc4Srjs{
551796c5ddc4Srjs   struct marshal_cmd_base cmd_base;
551896c5ddc4Srjs   GLhalfNV x;
551996c5ddc4Srjs};
552096c5ddc4Srjsuint32_t
552196c5ddc4Srjs_mesa_unmarshal_FogCoordhNV(struct gl_context *ctx, const struct marshal_cmd_FogCoordhNV *cmd, const uint64_t *last)
552296c5ddc4Srjs{
552396c5ddc4Srjs   GLhalfNV x = cmd->x;
552496c5ddc4Srjs   CALL_FogCoordhNV(ctx->CurrentServerDispatch, (x));
552596c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_FogCoordhNV), 8) / 8);
552696c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
552796c5ddc4Srjs   return cmd_size;
552896c5ddc4Srjs}
552996c5ddc4Srjsvoid GLAPIENTRY
553096c5ddc4Srjs_mesa_marshal_FogCoordhNV(GLhalfNV x)
553196c5ddc4Srjs{
553296c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
553396c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_FogCoordhNV);
553496c5ddc4Srjs   struct marshal_cmd_FogCoordhNV *cmd;
553596c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_FogCoordhNV, cmd_size);
553696c5ddc4Srjs   cmd->x = x;
553796c5ddc4Srjs}
553896c5ddc4Srjs
553996c5ddc4Srjs
554096c5ddc4Srjs/* FogCoordhvNV: marshalled asynchronously */
554196c5ddc4Srjsstruct marshal_cmd_FogCoordhvNV
554296c5ddc4Srjs{
554396c5ddc4Srjs   struct marshal_cmd_base cmd_base;
554496c5ddc4Srjs   GLhalfNV v[1];
554596c5ddc4Srjs};
554696c5ddc4Srjsuint32_t
554796c5ddc4Srjs_mesa_unmarshal_FogCoordhvNV(struct gl_context *ctx, const struct marshal_cmd_FogCoordhvNV *cmd, const uint64_t *last)
554896c5ddc4Srjs{
554996c5ddc4Srjs   const GLhalfNV * v = cmd->v;
555096c5ddc4Srjs   CALL_FogCoordhvNV(ctx->CurrentServerDispatch, (v));
555196c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_FogCoordhvNV), 8) / 8);
555296c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
555396c5ddc4Srjs   return cmd_size;
555496c5ddc4Srjs}
555596c5ddc4Srjsvoid GLAPIENTRY
555696c5ddc4Srjs_mesa_marshal_FogCoordhvNV(const GLhalfNV * v)
555796c5ddc4Srjs{
555896c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
555996c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_FogCoordhvNV);
556096c5ddc4Srjs   struct marshal_cmd_FogCoordhvNV *cmd;
556196c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_FogCoordhvNV, cmd_size);
556296c5ddc4Srjs   memcpy(cmd->v, v, 1 * sizeof(GLhalfNV));
556396c5ddc4Srjs}
556496c5ddc4Srjs
556596c5ddc4Srjs
556696c5ddc4Srjs/* SecondaryColor3hNV: marshalled asynchronously */
556796c5ddc4Srjsstruct marshal_cmd_SecondaryColor3hNV
556896c5ddc4Srjs{
556996c5ddc4Srjs   struct marshal_cmd_base cmd_base;
557096c5ddc4Srjs   GLhalfNV red;
557196c5ddc4Srjs   GLhalfNV green;
557296c5ddc4Srjs   GLhalfNV blue;
557396c5ddc4Srjs};
557496c5ddc4Srjsuint32_t
557596c5ddc4Srjs_mesa_unmarshal_SecondaryColor3hNV(struct gl_context *ctx, const struct marshal_cmd_SecondaryColor3hNV *cmd, const uint64_t *last)
557696c5ddc4Srjs{
557796c5ddc4Srjs   GLhalfNV red = cmd->red;
557896c5ddc4Srjs   GLhalfNV green = cmd->green;
557996c5ddc4Srjs   GLhalfNV blue = cmd->blue;
558096c5ddc4Srjs   CALL_SecondaryColor3hNV(ctx->CurrentServerDispatch, (red, green, blue));
558196c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_SecondaryColor3hNV), 8) / 8);
558296c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
558396c5ddc4Srjs   return cmd_size;
558496c5ddc4Srjs}
558596c5ddc4Srjsvoid GLAPIENTRY
558696c5ddc4Srjs_mesa_marshal_SecondaryColor3hNV(GLhalfNV red, GLhalfNV green, GLhalfNV blue)
558796c5ddc4Srjs{
558896c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
558996c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_SecondaryColor3hNV);
559096c5ddc4Srjs   struct marshal_cmd_SecondaryColor3hNV *cmd;
559196c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_SecondaryColor3hNV, cmd_size);
559296c5ddc4Srjs   cmd->red = red;
559396c5ddc4Srjs   cmd->green = green;
559496c5ddc4Srjs   cmd->blue = blue;
559596c5ddc4Srjs}
559696c5ddc4Srjs
559796c5ddc4Srjs
559896c5ddc4Srjs/* SecondaryColor3hvNV: marshalled asynchronously */
559996c5ddc4Srjsstruct marshal_cmd_SecondaryColor3hvNV
560096c5ddc4Srjs{
560196c5ddc4Srjs   struct marshal_cmd_base cmd_base;
560296c5ddc4Srjs   GLhalfNV v[3];
560396c5ddc4Srjs};
560496c5ddc4Srjsuint32_t
560596c5ddc4Srjs_mesa_unmarshal_SecondaryColor3hvNV(struct gl_context *ctx, const struct marshal_cmd_SecondaryColor3hvNV *cmd, const uint64_t *last)
560696c5ddc4Srjs{
560796c5ddc4Srjs   const GLhalfNV * v = cmd->v;
560896c5ddc4Srjs   CALL_SecondaryColor3hvNV(ctx->CurrentServerDispatch, (v));
560996c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_SecondaryColor3hvNV), 8) / 8);
561096c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
561196c5ddc4Srjs   return cmd_size;
561296c5ddc4Srjs}
561396c5ddc4Srjsvoid GLAPIENTRY
561496c5ddc4Srjs_mesa_marshal_SecondaryColor3hvNV(const GLhalfNV * v)
561596c5ddc4Srjs{
561696c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
561796c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_SecondaryColor3hvNV);
561896c5ddc4Srjs   struct marshal_cmd_SecondaryColor3hvNV *cmd;
561996c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_SecondaryColor3hvNV, cmd_size);
562096c5ddc4Srjs   memcpy(cmd->v, v, 3 * sizeof(GLhalfNV));
562196c5ddc4Srjs}
562296c5ddc4Srjs
562396c5ddc4Srjs
562496c5ddc4Srjs/* MemoryBarrierByRegion: marshalled asynchronously */
562596c5ddc4Srjsstruct marshal_cmd_MemoryBarrierByRegion
562696c5ddc4Srjs{
562796c5ddc4Srjs   struct marshal_cmd_base cmd_base;
562896c5ddc4Srjs   GLbitfield barriers;
562996c5ddc4Srjs};
563096c5ddc4Srjsuint32_t
563196c5ddc4Srjs_mesa_unmarshal_MemoryBarrierByRegion(struct gl_context *ctx, const struct marshal_cmd_MemoryBarrierByRegion *cmd, const uint64_t *last)
563296c5ddc4Srjs{
563396c5ddc4Srjs   GLbitfield barriers = cmd->barriers;
563496c5ddc4Srjs   CALL_MemoryBarrierByRegion(ctx->CurrentServerDispatch, (barriers));
563596c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_MemoryBarrierByRegion), 8) / 8);
563696c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
563796c5ddc4Srjs   return cmd_size;
563896c5ddc4Srjs}
563996c5ddc4Srjsvoid GLAPIENTRY
564096c5ddc4Srjs_mesa_marshal_MemoryBarrierByRegion(GLbitfield barriers)
564196c5ddc4Srjs{
564296c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
564396c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_MemoryBarrierByRegion);
564496c5ddc4Srjs   struct marshal_cmd_MemoryBarrierByRegion *cmd;
564596c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_MemoryBarrierByRegion, cmd_size);
564696c5ddc4Srjs   cmd->barriers = barriers;
564796c5ddc4Srjs}
564896c5ddc4Srjs
564996c5ddc4Srjs
565096c5ddc4Srjs/* AlphaFuncx: marshalled asynchronously */
565196c5ddc4Srjsstruct marshal_cmd_AlphaFuncx
565296c5ddc4Srjs{
565396c5ddc4Srjs   struct marshal_cmd_base cmd_base;
565496c5ddc4Srjs   GLenum func;
565596c5ddc4Srjs   GLclampx ref;
565696c5ddc4Srjs};
565796c5ddc4Srjsuint32_t
565896c5ddc4Srjs_mesa_unmarshal_AlphaFuncx(struct gl_context *ctx, const struct marshal_cmd_AlphaFuncx *cmd, const uint64_t *last)
565996c5ddc4Srjs{
566096c5ddc4Srjs   GLenum func = cmd->func;
566196c5ddc4Srjs   GLclampx ref = cmd->ref;
566296c5ddc4Srjs   CALL_AlphaFuncx(ctx->CurrentServerDispatch, (func, ref));
566396c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_AlphaFuncx), 8) / 8);
566496c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
566596c5ddc4Srjs   return cmd_size;
566696c5ddc4Srjs}
566796c5ddc4Srjsvoid GLAPIENTRY
566896c5ddc4Srjs_mesa_marshal_AlphaFuncx(GLenum func, GLclampx ref)
566996c5ddc4Srjs{
567096c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
567196c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_AlphaFuncx);
567296c5ddc4Srjs   struct marshal_cmd_AlphaFuncx *cmd;
567396c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_AlphaFuncx, cmd_size);
567496c5ddc4Srjs   cmd->func = func;
567596c5ddc4Srjs   cmd->ref = ref;
567696c5ddc4Srjs}
567796c5ddc4Srjs
567896c5ddc4Srjs
567996c5ddc4Srjs/* ClearColorx: marshalled asynchronously */
568096c5ddc4Srjsstruct marshal_cmd_ClearColorx
568196c5ddc4Srjs{
568296c5ddc4Srjs   struct marshal_cmd_base cmd_base;
568396c5ddc4Srjs   GLclampx red;
568496c5ddc4Srjs   GLclampx green;
568596c5ddc4Srjs   GLclampx blue;
568696c5ddc4Srjs   GLclampx alpha;
568796c5ddc4Srjs};
568896c5ddc4Srjsuint32_t
568996c5ddc4Srjs_mesa_unmarshal_ClearColorx(struct gl_context *ctx, const struct marshal_cmd_ClearColorx *cmd, const uint64_t *last)
569096c5ddc4Srjs{
569196c5ddc4Srjs   GLclampx red = cmd->red;
569296c5ddc4Srjs   GLclampx green = cmd->green;
569396c5ddc4Srjs   GLclampx blue = cmd->blue;
569496c5ddc4Srjs   GLclampx alpha = cmd->alpha;
569596c5ddc4Srjs   CALL_ClearColorx(ctx->CurrentServerDispatch, (red, green, blue, alpha));
569696c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_ClearColorx), 8) / 8);
569796c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
569896c5ddc4Srjs   return cmd_size;
569996c5ddc4Srjs}
570096c5ddc4Srjsvoid GLAPIENTRY
570196c5ddc4Srjs_mesa_marshal_ClearColorx(GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha)
570296c5ddc4Srjs{
570396c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
570496c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_ClearColorx);
570596c5ddc4Srjs   struct marshal_cmd_ClearColorx *cmd;
570696c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_ClearColorx, cmd_size);
570796c5ddc4Srjs   cmd->red = red;
570896c5ddc4Srjs   cmd->green = green;
570996c5ddc4Srjs   cmd->blue = blue;
571096c5ddc4Srjs   cmd->alpha = alpha;
571196c5ddc4Srjs}
571296c5ddc4Srjs
571396c5ddc4Srjs
571496c5ddc4Srjs/* ClearDepthx: marshalled asynchronously */
571596c5ddc4Srjsstruct marshal_cmd_ClearDepthx
571696c5ddc4Srjs{
571796c5ddc4Srjs   struct marshal_cmd_base cmd_base;
571896c5ddc4Srjs   GLclampx depth;
571996c5ddc4Srjs};
572096c5ddc4Srjsuint32_t
572196c5ddc4Srjs_mesa_unmarshal_ClearDepthx(struct gl_context *ctx, const struct marshal_cmd_ClearDepthx *cmd, const uint64_t *last)
572296c5ddc4Srjs{
572396c5ddc4Srjs   GLclampx depth = cmd->depth;
572496c5ddc4Srjs   CALL_ClearDepthx(ctx->CurrentServerDispatch, (depth));
572596c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_ClearDepthx), 8) / 8);
572696c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
572796c5ddc4Srjs   return cmd_size;
572896c5ddc4Srjs}
572996c5ddc4Srjsvoid GLAPIENTRY
573096c5ddc4Srjs_mesa_marshal_ClearDepthx(GLclampx depth)
573196c5ddc4Srjs{
573296c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
573396c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_ClearDepthx);
573496c5ddc4Srjs   struct marshal_cmd_ClearDepthx *cmd;
573596c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_ClearDepthx, cmd_size);
573696c5ddc4Srjs   cmd->depth = depth;
573796c5ddc4Srjs}
573896c5ddc4Srjs
573996c5ddc4Srjs
574096c5ddc4Srjs/* Color4x: marshalled asynchronously */
574196c5ddc4Srjsstruct marshal_cmd_Color4x
574296c5ddc4Srjs{
574396c5ddc4Srjs   struct marshal_cmd_base cmd_base;
574496c5ddc4Srjs   GLfixed red;
574596c5ddc4Srjs   GLfixed green;
574696c5ddc4Srjs   GLfixed blue;
574796c5ddc4Srjs   GLfixed alpha;
574896c5ddc4Srjs};
574996c5ddc4Srjsuint32_t
575096c5ddc4Srjs_mesa_unmarshal_Color4x(struct gl_context *ctx, const struct marshal_cmd_Color4x *cmd, const uint64_t *last)
575196c5ddc4Srjs{
575296c5ddc4Srjs   GLfixed red = cmd->red;
575396c5ddc4Srjs   GLfixed green = cmd->green;
575496c5ddc4Srjs   GLfixed blue = cmd->blue;
575596c5ddc4Srjs   GLfixed alpha = cmd->alpha;
575696c5ddc4Srjs   CALL_Color4x(ctx->CurrentServerDispatch, (red, green, blue, alpha));
575796c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Color4x), 8) / 8);
575896c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
575996c5ddc4Srjs   return cmd_size;
576096c5ddc4Srjs}
576196c5ddc4Srjsvoid GLAPIENTRY
576296c5ddc4Srjs_mesa_marshal_Color4x(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha)
576396c5ddc4Srjs{
576496c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
576596c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_Color4x);
576696c5ddc4Srjs   struct marshal_cmd_Color4x *cmd;
576796c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Color4x, cmd_size);
576896c5ddc4Srjs   cmd->red = red;
576996c5ddc4Srjs   cmd->green = green;
577096c5ddc4Srjs   cmd->blue = blue;
577196c5ddc4Srjs   cmd->alpha = alpha;
577296c5ddc4Srjs}
577396c5ddc4Srjs
577496c5ddc4Srjs
577596c5ddc4Srjs/* DepthRangex: marshalled asynchronously */
577696c5ddc4Srjsstruct marshal_cmd_DepthRangex
577796c5ddc4Srjs{
577896c5ddc4Srjs   struct marshal_cmd_base cmd_base;
577996c5ddc4Srjs   GLclampx zNear;
578096c5ddc4Srjs   GLclampx zFar;
578196c5ddc4Srjs};
578296c5ddc4Srjsuint32_t
578396c5ddc4Srjs_mesa_unmarshal_DepthRangex(struct gl_context *ctx, const struct marshal_cmd_DepthRangex *cmd, const uint64_t *last)
578496c5ddc4Srjs{
578596c5ddc4Srjs   GLclampx zNear = cmd->zNear;
578696c5ddc4Srjs   GLclampx zFar = cmd->zFar;
578796c5ddc4Srjs   CALL_DepthRangex(ctx->CurrentServerDispatch, (zNear, zFar));
578896c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_DepthRangex), 8) / 8);
578996c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
579096c5ddc4Srjs   return cmd_size;
579196c5ddc4Srjs}
579296c5ddc4Srjsvoid GLAPIENTRY
579396c5ddc4Srjs_mesa_marshal_DepthRangex(GLclampx zNear, GLclampx zFar)
579496c5ddc4Srjs{
579596c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
579696c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_DepthRangex);
579796c5ddc4Srjs   struct marshal_cmd_DepthRangex *cmd;
579896c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_DepthRangex, cmd_size);
579996c5ddc4Srjs   cmd->zNear = zNear;
580096c5ddc4Srjs   cmd->zFar = zFar;
580196c5ddc4Srjs}
580296c5ddc4Srjs
580396c5ddc4Srjs
580496c5ddc4Srjs/* Fogx: marshalled asynchronously */
580596c5ddc4Srjsstruct marshal_cmd_Fogx
580696c5ddc4Srjs{
580796c5ddc4Srjs   struct marshal_cmd_base cmd_base;
580896c5ddc4Srjs   GLenum pname;
580996c5ddc4Srjs   GLfixed param;
581096c5ddc4Srjs};
581196c5ddc4Srjsuint32_t
581296c5ddc4Srjs_mesa_unmarshal_Fogx(struct gl_context *ctx, const struct marshal_cmd_Fogx *cmd, const uint64_t *last)
581396c5ddc4Srjs{
581496c5ddc4Srjs   GLenum pname = cmd->pname;
581596c5ddc4Srjs   GLfixed param = cmd->param;
581696c5ddc4Srjs   CALL_Fogx(ctx->CurrentServerDispatch, (pname, param));
581796c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Fogx), 8) / 8);
581896c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
581996c5ddc4Srjs   return cmd_size;
582096c5ddc4Srjs}
582196c5ddc4Srjsvoid GLAPIENTRY
582296c5ddc4Srjs_mesa_marshal_Fogx(GLenum pname, GLfixed param)
582396c5ddc4Srjs{
582496c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
582596c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_Fogx);
582696c5ddc4Srjs   struct marshal_cmd_Fogx *cmd;
582796c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Fogx, cmd_size);
582896c5ddc4Srjs   cmd->pname = pname;
582996c5ddc4Srjs   cmd->param = param;
583096c5ddc4Srjs}
583196c5ddc4Srjs
583296c5ddc4Srjs
583396c5ddc4Srjs/* Fogxv: marshalled asynchronously */
583496c5ddc4Srjsstruct marshal_cmd_Fogxv
583596c5ddc4Srjs{
583696c5ddc4Srjs   struct marshal_cmd_base cmd_base;
583796c5ddc4Srjs   GLenum pname;
583896c5ddc4Srjs   /* Next safe_mul(_mesa_fog_enum_to_count(pname), 1 * sizeof(GLfixed)) bytes are GLfixed params[None] */
583996c5ddc4Srjs};
584096c5ddc4Srjsuint32_t
584196c5ddc4Srjs_mesa_unmarshal_Fogxv(struct gl_context *ctx, const struct marshal_cmd_Fogxv *cmd, const uint64_t *last)
584296c5ddc4Srjs{
584396c5ddc4Srjs   GLenum pname = cmd->pname;
584496c5ddc4Srjs   GLfixed * params;
584596c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
584696c5ddc4Srjs   params = (GLfixed *) variable_data;
584796c5ddc4Srjs   CALL_Fogxv(ctx->CurrentServerDispatch, (pname, params));
584896c5ddc4Srjs   return cmd->cmd_base.cmd_size;
584996c5ddc4Srjs}
585096c5ddc4Srjsvoid GLAPIENTRY
585196c5ddc4Srjs_mesa_marshal_Fogxv(GLenum pname, const GLfixed * params)
585296c5ddc4Srjs{
585396c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
585496c5ddc4Srjs   int params_size = safe_mul(_mesa_fog_enum_to_count(pname), 1 * sizeof(GLfixed));
585596c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_Fogxv) + params_size;
585696c5ddc4Srjs   struct marshal_cmd_Fogxv *cmd;
585796c5ddc4Srjs   if (unlikely(params_size < 0 || (params_size > 0 && !params) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
585896c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "Fogxv");
585996c5ddc4Srjs      CALL_Fogxv(ctx->CurrentServerDispatch, (pname, params));
586096c5ddc4Srjs      return;
586196c5ddc4Srjs   }
586296c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Fogxv, cmd_size);
586396c5ddc4Srjs   cmd->pname = pname;
586496c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
586596c5ddc4Srjs   memcpy(variable_data, params, params_size);
586696c5ddc4Srjs}
586796c5ddc4Srjs
586896c5ddc4Srjs
586996c5ddc4Srjs/* Frustumx: marshalled asynchronously */
587096c5ddc4Srjsstruct marshal_cmd_Frustumx
587196c5ddc4Srjs{
587296c5ddc4Srjs   struct marshal_cmd_base cmd_base;
587396c5ddc4Srjs   GLfixed left;
587496c5ddc4Srjs   GLfixed right;
587596c5ddc4Srjs   GLfixed bottom;
587696c5ddc4Srjs   GLfixed top;
587796c5ddc4Srjs   GLfixed zNear;
587896c5ddc4Srjs   GLfixed zFar;
587996c5ddc4Srjs};
588096c5ddc4Srjsuint32_t
588196c5ddc4Srjs_mesa_unmarshal_Frustumx(struct gl_context *ctx, const struct marshal_cmd_Frustumx *cmd, const uint64_t *last)
588296c5ddc4Srjs{
588396c5ddc4Srjs   GLfixed left = cmd->left;
588496c5ddc4Srjs   GLfixed right = cmd->right;
588596c5ddc4Srjs   GLfixed bottom = cmd->bottom;
588696c5ddc4Srjs   GLfixed top = cmd->top;
588796c5ddc4Srjs   GLfixed zNear = cmd->zNear;
588896c5ddc4Srjs   GLfixed zFar = cmd->zFar;
588996c5ddc4Srjs   CALL_Frustumx(ctx->CurrentServerDispatch, (left, right, bottom, top, zNear, zFar));
589096c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Frustumx), 8) / 8);
589196c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
589296c5ddc4Srjs   return cmd_size;
589396c5ddc4Srjs}
589496c5ddc4Srjsvoid GLAPIENTRY
589596c5ddc4Srjs_mesa_marshal_Frustumx(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
589696c5ddc4Srjs{
589796c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
589896c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_Frustumx);
589996c5ddc4Srjs   struct marshal_cmd_Frustumx *cmd;
590096c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Frustumx, cmd_size);
590196c5ddc4Srjs   cmd->left = left;
590296c5ddc4Srjs   cmd->right = right;
590396c5ddc4Srjs   cmd->bottom = bottom;
590496c5ddc4Srjs   cmd->top = top;
590596c5ddc4Srjs   cmd->zNear = zNear;
590696c5ddc4Srjs   cmd->zFar = zFar;
590796c5ddc4Srjs}
590896c5ddc4Srjs
590996c5ddc4Srjs
591096c5ddc4Srjs/* LightModelx: marshalled asynchronously */
591196c5ddc4Srjsstruct marshal_cmd_LightModelx
591296c5ddc4Srjs{
591396c5ddc4Srjs   struct marshal_cmd_base cmd_base;
591496c5ddc4Srjs   GLenum pname;
591596c5ddc4Srjs   GLfixed param;
591696c5ddc4Srjs};
591796c5ddc4Srjsuint32_t
591896c5ddc4Srjs_mesa_unmarshal_LightModelx(struct gl_context *ctx, const struct marshal_cmd_LightModelx *cmd, const uint64_t *last)
591996c5ddc4Srjs{
592096c5ddc4Srjs   GLenum pname = cmd->pname;
592196c5ddc4Srjs   GLfixed param = cmd->param;
592296c5ddc4Srjs   CALL_LightModelx(ctx->CurrentServerDispatch, (pname, param));
592396c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_LightModelx), 8) / 8);
592496c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
592596c5ddc4Srjs   return cmd_size;
592696c5ddc4Srjs}
592796c5ddc4Srjsvoid GLAPIENTRY
592896c5ddc4Srjs_mesa_marshal_LightModelx(GLenum pname, GLfixed param)
592996c5ddc4Srjs{
593096c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
593196c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_LightModelx);
593296c5ddc4Srjs   struct marshal_cmd_LightModelx *cmd;
593396c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_LightModelx, cmd_size);
593496c5ddc4Srjs   cmd->pname = pname;
593596c5ddc4Srjs   cmd->param = param;
593696c5ddc4Srjs}
593796c5ddc4Srjs
593896c5ddc4Srjs
593996c5ddc4Srjs/* LightModelxv: marshalled asynchronously */
594096c5ddc4Srjsstruct marshal_cmd_LightModelxv
594196c5ddc4Srjs{
594296c5ddc4Srjs   struct marshal_cmd_base cmd_base;
594396c5ddc4Srjs   GLenum pname;
594496c5ddc4Srjs   /* Next safe_mul(_mesa_light_model_enum_to_count(pname), 1 * sizeof(GLfixed)) bytes are GLfixed params[None] */
594596c5ddc4Srjs};
594696c5ddc4Srjsuint32_t
594796c5ddc4Srjs_mesa_unmarshal_LightModelxv(struct gl_context *ctx, const struct marshal_cmd_LightModelxv *cmd, const uint64_t *last)
594896c5ddc4Srjs{
594996c5ddc4Srjs   GLenum pname = cmd->pname;
595096c5ddc4Srjs   GLfixed * params;
595196c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
595296c5ddc4Srjs   params = (GLfixed *) variable_data;
595396c5ddc4Srjs   CALL_LightModelxv(ctx->CurrentServerDispatch, (pname, params));
595496c5ddc4Srjs   return cmd->cmd_base.cmd_size;
595596c5ddc4Srjs}
595696c5ddc4Srjsvoid GLAPIENTRY
595796c5ddc4Srjs_mesa_marshal_LightModelxv(GLenum pname, const GLfixed * params)
595896c5ddc4Srjs{
595996c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
596096c5ddc4Srjs   int params_size = safe_mul(_mesa_light_model_enum_to_count(pname), 1 * sizeof(GLfixed));
596196c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_LightModelxv) + params_size;
596296c5ddc4Srjs   struct marshal_cmd_LightModelxv *cmd;
596396c5ddc4Srjs   if (unlikely(params_size < 0 || (params_size > 0 && !params) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
596496c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "LightModelxv");
596596c5ddc4Srjs      CALL_LightModelxv(ctx->CurrentServerDispatch, (pname, params));
596696c5ddc4Srjs      return;
596796c5ddc4Srjs   }
596896c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_LightModelxv, cmd_size);
596996c5ddc4Srjs   cmd->pname = pname;
597096c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
597196c5ddc4Srjs   memcpy(variable_data, params, params_size);
597296c5ddc4Srjs}
597396c5ddc4Srjs
597496c5ddc4Srjs
597596c5ddc4Srjs/* Lightx: marshalled asynchronously */
597696c5ddc4Srjsstruct marshal_cmd_Lightx
597796c5ddc4Srjs{
597896c5ddc4Srjs   struct marshal_cmd_base cmd_base;
597996c5ddc4Srjs   GLenum light;
598096c5ddc4Srjs   GLenum pname;
598196c5ddc4Srjs   GLfixed param;
598296c5ddc4Srjs};
598396c5ddc4Srjsuint32_t
598496c5ddc4Srjs_mesa_unmarshal_Lightx(struct gl_context *ctx, const struct marshal_cmd_Lightx *cmd, const uint64_t *last)
598596c5ddc4Srjs{
598696c5ddc4Srjs   GLenum light = cmd->light;
598796c5ddc4Srjs   GLenum pname = cmd->pname;
598896c5ddc4Srjs   GLfixed param = cmd->param;
598996c5ddc4Srjs   CALL_Lightx(ctx->CurrentServerDispatch, (light, pname, param));
599096c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Lightx), 8) / 8);
599196c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
599296c5ddc4Srjs   return cmd_size;
599396c5ddc4Srjs}
599496c5ddc4Srjsvoid GLAPIENTRY
599596c5ddc4Srjs_mesa_marshal_Lightx(GLenum light, GLenum pname, GLfixed param)
599696c5ddc4Srjs{
599796c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
599896c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_Lightx);
599996c5ddc4Srjs   struct marshal_cmd_Lightx *cmd;
600096c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Lightx, cmd_size);
600196c5ddc4Srjs   cmd->light = light;
600296c5ddc4Srjs   cmd->pname = pname;
600396c5ddc4Srjs   cmd->param = param;
600496c5ddc4Srjs}
600596c5ddc4Srjs
600696c5ddc4Srjs
600796c5ddc4Srjs/* Lightxv: marshalled asynchronously */
600896c5ddc4Srjsstruct marshal_cmd_Lightxv
600996c5ddc4Srjs{
601096c5ddc4Srjs   struct marshal_cmd_base cmd_base;
601196c5ddc4Srjs   GLenum light;
601296c5ddc4Srjs   GLenum pname;
601396c5ddc4Srjs   /* Next safe_mul(_mesa_light_enum_to_count(pname), 1 * sizeof(GLfixed)) bytes are GLfixed params[None] */
601496c5ddc4Srjs};
601596c5ddc4Srjsuint32_t
601696c5ddc4Srjs_mesa_unmarshal_Lightxv(struct gl_context *ctx, const struct marshal_cmd_Lightxv *cmd, const uint64_t *last)
601796c5ddc4Srjs{
601896c5ddc4Srjs   GLenum light = cmd->light;
601996c5ddc4Srjs   GLenum pname = cmd->pname;
602096c5ddc4Srjs   GLfixed * params;
602196c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
602296c5ddc4Srjs   params = (GLfixed *) variable_data;
602396c5ddc4Srjs   CALL_Lightxv(ctx->CurrentServerDispatch, (light, pname, params));
602496c5ddc4Srjs   return cmd->cmd_base.cmd_size;
602596c5ddc4Srjs}
602696c5ddc4Srjsvoid GLAPIENTRY
602796c5ddc4Srjs_mesa_marshal_Lightxv(GLenum light, GLenum pname, const GLfixed * params)
602896c5ddc4Srjs{
602996c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
603096c5ddc4Srjs   int params_size = safe_mul(_mesa_light_enum_to_count(pname), 1 * sizeof(GLfixed));
603196c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_Lightxv) + params_size;
603296c5ddc4Srjs   struct marshal_cmd_Lightxv *cmd;
603396c5ddc4Srjs   if (unlikely(params_size < 0 || (params_size > 0 && !params) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
603496c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "Lightxv");
603596c5ddc4Srjs      CALL_Lightxv(ctx->CurrentServerDispatch, (light, pname, params));
603696c5ddc4Srjs      return;
603796c5ddc4Srjs   }
603896c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Lightxv, cmd_size);
603996c5ddc4Srjs   cmd->light = light;
604096c5ddc4Srjs   cmd->pname = pname;
604196c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
604296c5ddc4Srjs   memcpy(variable_data, params, params_size);
604396c5ddc4Srjs}
604496c5ddc4Srjs
604596c5ddc4Srjs
604696c5ddc4Srjs/* LineWidthx: marshalled asynchronously */
604796c5ddc4Srjsstruct marshal_cmd_LineWidthx
604896c5ddc4Srjs{
604996c5ddc4Srjs   struct marshal_cmd_base cmd_base;
605096c5ddc4Srjs   GLfixed width;
605196c5ddc4Srjs};
605296c5ddc4Srjsuint32_t
605396c5ddc4Srjs_mesa_unmarshal_LineWidthx(struct gl_context *ctx, const struct marshal_cmd_LineWidthx *cmd, const uint64_t *last)
605496c5ddc4Srjs{
605596c5ddc4Srjs   GLfixed width = cmd->width;
605696c5ddc4Srjs   CALL_LineWidthx(ctx->CurrentServerDispatch, (width));
605796c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_LineWidthx), 8) / 8);
605896c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
605996c5ddc4Srjs   return cmd_size;
606096c5ddc4Srjs}
606196c5ddc4Srjsvoid GLAPIENTRY
606296c5ddc4Srjs_mesa_marshal_LineWidthx(GLfixed width)
606396c5ddc4Srjs{
606496c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
606596c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_LineWidthx);
606696c5ddc4Srjs   struct marshal_cmd_LineWidthx *cmd;
606796c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_LineWidthx, cmd_size);
606896c5ddc4Srjs   cmd->width = width;
606996c5ddc4Srjs}
607096c5ddc4Srjs
607196c5ddc4Srjs
607296c5ddc4Srjs/* LoadMatrixx: marshalled asynchronously */
607396c5ddc4Srjsstruct marshal_cmd_LoadMatrixx
607496c5ddc4Srjs{
607596c5ddc4Srjs   struct marshal_cmd_base cmd_base;
607696c5ddc4Srjs   GLfixed m[16];
607796c5ddc4Srjs};
607896c5ddc4Srjsuint32_t
607996c5ddc4Srjs_mesa_unmarshal_LoadMatrixx(struct gl_context *ctx, const struct marshal_cmd_LoadMatrixx *cmd, const uint64_t *last)
608096c5ddc4Srjs{
608196c5ddc4Srjs   const GLfixed * m = cmd->m;
608296c5ddc4Srjs   CALL_LoadMatrixx(ctx->CurrentServerDispatch, (m));
608396c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_LoadMatrixx), 8) / 8);
608496c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
608596c5ddc4Srjs   return cmd_size;
608696c5ddc4Srjs}
608796c5ddc4Srjsvoid GLAPIENTRY
608896c5ddc4Srjs_mesa_marshal_LoadMatrixx(const GLfixed * m)
608996c5ddc4Srjs{
609096c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
609196c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_LoadMatrixx);
609296c5ddc4Srjs   struct marshal_cmd_LoadMatrixx *cmd;
609396c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_LoadMatrixx, cmd_size);
609496c5ddc4Srjs   memcpy(cmd->m, m, 16 * sizeof(GLfixed));
609596c5ddc4Srjs}
609696c5ddc4Srjs
609796c5ddc4Srjs
609896c5ddc4Srjs/* Materialx: marshalled asynchronously */
609996c5ddc4Srjsstruct marshal_cmd_Materialx
610096c5ddc4Srjs{
610196c5ddc4Srjs   struct marshal_cmd_base cmd_base;
610296c5ddc4Srjs   GLenum face;
610396c5ddc4Srjs   GLenum pname;
610496c5ddc4Srjs   GLfixed param;
610596c5ddc4Srjs};
610696c5ddc4Srjsuint32_t
610796c5ddc4Srjs_mesa_unmarshal_Materialx(struct gl_context *ctx, const struct marshal_cmd_Materialx *cmd, const uint64_t *last)
610896c5ddc4Srjs{
610996c5ddc4Srjs   GLenum face = cmd->face;
611096c5ddc4Srjs   GLenum pname = cmd->pname;
611196c5ddc4Srjs   GLfixed param = cmd->param;
611296c5ddc4Srjs   CALL_Materialx(ctx->CurrentServerDispatch, (face, pname, param));
611396c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Materialx), 8) / 8);
611496c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
611596c5ddc4Srjs   return cmd_size;
611696c5ddc4Srjs}
611796c5ddc4Srjsvoid GLAPIENTRY
611896c5ddc4Srjs_mesa_marshal_Materialx(GLenum face, GLenum pname, GLfixed param)
611996c5ddc4Srjs{
612096c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
612196c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_Materialx);
612296c5ddc4Srjs   struct marshal_cmd_Materialx *cmd;
612396c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Materialx, cmd_size);
612496c5ddc4Srjs   cmd->face = face;
612596c5ddc4Srjs   cmd->pname = pname;
612696c5ddc4Srjs   cmd->param = param;
612796c5ddc4Srjs}
612896c5ddc4Srjs
612996c5ddc4Srjs
613096c5ddc4Srjs/* Materialxv: marshalled asynchronously */
613196c5ddc4Srjsstruct marshal_cmd_Materialxv
613296c5ddc4Srjs{
613396c5ddc4Srjs   struct marshal_cmd_base cmd_base;
613496c5ddc4Srjs   GLenum face;
613596c5ddc4Srjs   GLenum pname;
613696c5ddc4Srjs   /* Next safe_mul(_mesa_material_enum_to_count(pname), 1 * sizeof(GLfixed)) bytes are GLfixed params[None] */
613796c5ddc4Srjs};
613896c5ddc4Srjsuint32_t
613996c5ddc4Srjs_mesa_unmarshal_Materialxv(struct gl_context *ctx, const struct marshal_cmd_Materialxv *cmd, const uint64_t *last)
614096c5ddc4Srjs{
614196c5ddc4Srjs   GLenum face = cmd->face;
614296c5ddc4Srjs   GLenum pname = cmd->pname;
614396c5ddc4Srjs   GLfixed * params;
614496c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
614596c5ddc4Srjs   params = (GLfixed *) variable_data;
614696c5ddc4Srjs   CALL_Materialxv(ctx->CurrentServerDispatch, (face, pname, params));
614796c5ddc4Srjs   return cmd->cmd_base.cmd_size;
614896c5ddc4Srjs}
614996c5ddc4Srjsvoid GLAPIENTRY
615096c5ddc4Srjs_mesa_marshal_Materialxv(GLenum face, GLenum pname, const GLfixed * params)
615196c5ddc4Srjs{
615296c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
615396c5ddc4Srjs   int params_size = safe_mul(_mesa_material_enum_to_count(pname), 1 * sizeof(GLfixed));
615496c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_Materialxv) + params_size;
615596c5ddc4Srjs   struct marshal_cmd_Materialxv *cmd;
615696c5ddc4Srjs   if (unlikely(params_size < 0 || (params_size > 0 && !params) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
615796c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "Materialxv");
615896c5ddc4Srjs      CALL_Materialxv(ctx->CurrentServerDispatch, (face, pname, params));
615996c5ddc4Srjs      return;
616096c5ddc4Srjs   }
616196c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Materialxv, cmd_size);
616296c5ddc4Srjs   cmd->face = face;
616396c5ddc4Srjs   cmd->pname = pname;
616496c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
616596c5ddc4Srjs   memcpy(variable_data, params, params_size);
616696c5ddc4Srjs}
616796c5ddc4Srjs
616896c5ddc4Srjs
616996c5ddc4Srjs/* MultMatrixx: marshalled asynchronously */
617096c5ddc4Srjsstruct marshal_cmd_MultMatrixx
617196c5ddc4Srjs{
617296c5ddc4Srjs   struct marshal_cmd_base cmd_base;
617396c5ddc4Srjs   GLfixed m[16];
617496c5ddc4Srjs};
617596c5ddc4Srjsuint32_t
617696c5ddc4Srjs_mesa_unmarshal_MultMatrixx(struct gl_context *ctx, const struct marshal_cmd_MultMatrixx *cmd, const uint64_t *last)
617796c5ddc4Srjs{
617896c5ddc4Srjs   const GLfixed * m = cmd->m;
617996c5ddc4Srjs   CALL_MultMatrixx(ctx->CurrentServerDispatch, (m));
618096c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_MultMatrixx), 8) / 8);
618196c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
618296c5ddc4Srjs   return cmd_size;
618396c5ddc4Srjs}
618496c5ddc4Srjsvoid GLAPIENTRY
618596c5ddc4Srjs_mesa_marshal_MultMatrixx(const GLfixed * m)
618696c5ddc4Srjs{
618796c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
618896c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_MultMatrixx);
618996c5ddc4Srjs   struct marshal_cmd_MultMatrixx *cmd;
619096c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_MultMatrixx, cmd_size);
619196c5ddc4Srjs   memcpy(cmd->m, m, 16 * sizeof(GLfixed));
619296c5ddc4Srjs}
619396c5ddc4Srjs
619496c5ddc4Srjs
619596c5ddc4Srjs/* MultiTexCoord4x: marshalled asynchronously */
619696c5ddc4Srjsstruct marshal_cmd_MultiTexCoord4x
619796c5ddc4Srjs{
619896c5ddc4Srjs   struct marshal_cmd_base cmd_base;
619996c5ddc4Srjs   GLenum target;
620096c5ddc4Srjs   GLfixed s;
620196c5ddc4Srjs   GLfixed t;
620296c5ddc4Srjs   GLfixed r;
620396c5ddc4Srjs   GLfixed q;
620496c5ddc4Srjs};
620596c5ddc4Srjsuint32_t
620696c5ddc4Srjs_mesa_unmarshal_MultiTexCoord4x(struct gl_context *ctx, const struct marshal_cmd_MultiTexCoord4x *cmd, const uint64_t *last)
620796c5ddc4Srjs{
620896c5ddc4Srjs   GLenum target = cmd->target;
620996c5ddc4Srjs   GLfixed s = cmd->s;
621096c5ddc4Srjs   GLfixed t = cmd->t;
621196c5ddc4Srjs   GLfixed r = cmd->r;
621296c5ddc4Srjs   GLfixed q = cmd->q;
621396c5ddc4Srjs   CALL_MultiTexCoord4x(ctx->CurrentServerDispatch, (target, s, t, r, q));
621496c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_MultiTexCoord4x), 8) / 8);
621596c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
621696c5ddc4Srjs   return cmd_size;
621796c5ddc4Srjs}
621896c5ddc4Srjsvoid GLAPIENTRY
621996c5ddc4Srjs_mesa_marshal_MultiTexCoord4x(GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q)
622096c5ddc4Srjs{
622196c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
622296c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_MultiTexCoord4x);
622396c5ddc4Srjs   struct marshal_cmd_MultiTexCoord4x *cmd;
622496c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_MultiTexCoord4x, cmd_size);
622596c5ddc4Srjs   cmd->target = target;
622696c5ddc4Srjs   cmd->s = s;
622796c5ddc4Srjs   cmd->t = t;
622896c5ddc4Srjs   cmd->r = r;
622996c5ddc4Srjs   cmd->q = q;
623096c5ddc4Srjs}
623196c5ddc4Srjs
623296c5ddc4Srjs
623396c5ddc4Srjs/* Normal3x: marshalled asynchronously */
623496c5ddc4Srjsstruct marshal_cmd_Normal3x
623596c5ddc4Srjs{
623696c5ddc4Srjs   struct marshal_cmd_base cmd_base;
623796c5ddc4Srjs   GLfixed nx;
623896c5ddc4Srjs   GLfixed ny;
623996c5ddc4Srjs   GLfixed nz;
624096c5ddc4Srjs};
624196c5ddc4Srjsuint32_t
624296c5ddc4Srjs_mesa_unmarshal_Normal3x(struct gl_context *ctx, const struct marshal_cmd_Normal3x *cmd, const uint64_t *last)
624396c5ddc4Srjs{
624496c5ddc4Srjs   GLfixed nx = cmd->nx;
624596c5ddc4Srjs   GLfixed ny = cmd->ny;
624696c5ddc4Srjs   GLfixed nz = cmd->nz;
624796c5ddc4Srjs   CALL_Normal3x(ctx->CurrentServerDispatch, (nx, ny, nz));
624896c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Normal3x), 8) / 8);
624996c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
625096c5ddc4Srjs   return cmd_size;
625196c5ddc4Srjs}
625296c5ddc4Srjsvoid GLAPIENTRY
625396c5ddc4Srjs_mesa_marshal_Normal3x(GLfixed nx, GLfixed ny, GLfixed nz)
625496c5ddc4Srjs{
625596c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
625696c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_Normal3x);
625796c5ddc4Srjs   struct marshal_cmd_Normal3x *cmd;
625896c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Normal3x, cmd_size);
625996c5ddc4Srjs   cmd->nx = nx;
626096c5ddc4Srjs   cmd->ny = ny;
626196c5ddc4Srjs   cmd->nz = nz;
626296c5ddc4Srjs}
626396c5ddc4Srjs
626496c5ddc4Srjs
626596c5ddc4Srjs/* Orthox: marshalled asynchronously */
626696c5ddc4Srjsstruct marshal_cmd_Orthox
626796c5ddc4Srjs{
626896c5ddc4Srjs   struct marshal_cmd_base cmd_base;
626996c5ddc4Srjs   GLfixed left;
627096c5ddc4Srjs   GLfixed right;
627196c5ddc4Srjs   GLfixed bottom;
627296c5ddc4Srjs   GLfixed top;
627396c5ddc4Srjs   GLfixed zNear;
627496c5ddc4Srjs   GLfixed zFar;
627596c5ddc4Srjs};
627696c5ddc4Srjsuint32_t
627796c5ddc4Srjs_mesa_unmarshal_Orthox(struct gl_context *ctx, const struct marshal_cmd_Orthox *cmd, const uint64_t *last)
627896c5ddc4Srjs{
627996c5ddc4Srjs   GLfixed left = cmd->left;
628096c5ddc4Srjs   GLfixed right = cmd->right;
628196c5ddc4Srjs   GLfixed bottom = cmd->bottom;
628296c5ddc4Srjs   GLfixed top = cmd->top;
628396c5ddc4Srjs   GLfixed zNear = cmd->zNear;
628496c5ddc4Srjs   GLfixed zFar = cmd->zFar;
628596c5ddc4Srjs   CALL_Orthox(ctx->CurrentServerDispatch, (left, right, bottom, top, zNear, zFar));
628696c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Orthox), 8) / 8);
628796c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
628896c5ddc4Srjs   return cmd_size;
628996c5ddc4Srjs}
629096c5ddc4Srjsvoid GLAPIENTRY
629196c5ddc4Srjs_mesa_marshal_Orthox(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
629296c5ddc4Srjs{
629396c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
629496c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_Orthox);
629596c5ddc4Srjs   struct marshal_cmd_Orthox *cmd;
629696c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Orthox, cmd_size);
629796c5ddc4Srjs   cmd->left = left;
629896c5ddc4Srjs   cmd->right = right;
629996c5ddc4Srjs   cmd->bottom = bottom;
630096c5ddc4Srjs   cmd->top = top;
630196c5ddc4Srjs   cmd->zNear = zNear;
630296c5ddc4Srjs   cmd->zFar = zFar;
630396c5ddc4Srjs}
630496c5ddc4Srjs
630596c5ddc4Srjs
630696c5ddc4Srjs/* PointSizex: marshalled asynchronously */
630796c5ddc4Srjsstruct marshal_cmd_PointSizex
630896c5ddc4Srjs{
630996c5ddc4Srjs   struct marshal_cmd_base cmd_base;
631096c5ddc4Srjs   GLfixed size;
631196c5ddc4Srjs};
631296c5ddc4Srjsuint32_t
631396c5ddc4Srjs_mesa_unmarshal_PointSizex(struct gl_context *ctx, const struct marshal_cmd_PointSizex *cmd, const uint64_t *last)
631496c5ddc4Srjs{
631596c5ddc4Srjs   GLfixed size = cmd->size;
631696c5ddc4Srjs   CALL_PointSizex(ctx->CurrentServerDispatch, (size));
631796c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_PointSizex), 8) / 8);
631896c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
631996c5ddc4Srjs   return cmd_size;
632096c5ddc4Srjs}
632196c5ddc4Srjsvoid GLAPIENTRY
632296c5ddc4Srjs_mesa_marshal_PointSizex(GLfixed size)
632396c5ddc4Srjs{
632496c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
632596c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_PointSizex);
632696c5ddc4Srjs   struct marshal_cmd_PointSizex *cmd;
632796c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_PointSizex, cmd_size);
632896c5ddc4Srjs   cmd->size = size;
632996c5ddc4Srjs}
633096c5ddc4Srjs
633196c5ddc4Srjs
633296c5ddc4Srjs/* PolygonOffsetx: marshalled asynchronously */
633396c5ddc4Srjsstruct marshal_cmd_PolygonOffsetx
633496c5ddc4Srjs{
633596c5ddc4Srjs   struct marshal_cmd_base cmd_base;
633696c5ddc4Srjs   GLfixed factor;
633796c5ddc4Srjs   GLfixed units;
633896c5ddc4Srjs};
633996c5ddc4Srjsuint32_t
634096c5ddc4Srjs_mesa_unmarshal_PolygonOffsetx(struct gl_context *ctx, const struct marshal_cmd_PolygonOffsetx *cmd, const uint64_t *last)
634196c5ddc4Srjs{
634296c5ddc4Srjs   GLfixed factor = cmd->factor;
634396c5ddc4Srjs   GLfixed units = cmd->units;
634496c5ddc4Srjs   CALL_PolygonOffsetx(ctx->CurrentServerDispatch, (factor, units));
634596c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_PolygonOffsetx), 8) / 8);
634696c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
634796c5ddc4Srjs   return cmd_size;
634896c5ddc4Srjs}
634996c5ddc4Srjsvoid GLAPIENTRY
635096c5ddc4Srjs_mesa_marshal_PolygonOffsetx(GLfixed factor, GLfixed units)
635196c5ddc4Srjs{
635296c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
635396c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_PolygonOffsetx);
635496c5ddc4Srjs   struct marshal_cmd_PolygonOffsetx *cmd;
635596c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_PolygonOffsetx, cmd_size);
635696c5ddc4Srjs   cmd->factor = factor;
635796c5ddc4Srjs   cmd->units = units;
635896c5ddc4Srjs}
635996c5ddc4Srjs
636096c5ddc4Srjs
636196c5ddc4Srjs/* Rotatex: marshalled asynchronously */
636296c5ddc4Srjsstruct marshal_cmd_Rotatex
636396c5ddc4Srjs{
636496c5ddc4Srjs   struct marshal_cmd_base cmd_base;
636596c5ddc4Srjs   GLfixed angle;
636696c5ddc4Srjs   GLfixed x;
636796c5ddc4Srjs   GLfixed y;
636896c5ddc4Srjs   GLfixed z;
636996c5ddc4Srjs};
637096c5ddc4Srjsuint32_t
637196c5ddc4Srjs_mesa_unmarshal_Rotatex(struct gl_context *ctx, const struct marshal_cmd_Rotatex *cmd, const uint64_t *last)
637296c5ddc4Srjs{
637396c5ddc4Srjs   GLfixed angle = cmd->angle;
637496c5ddc4Srjs   GLfixed x = cmd->x;
637596c5ddc4Srjs   GLfixed y = cmd->y;
637696c5ddc4Srjs   GLfixed z = cmd->z;
637796c5ddc4Srjs   CALL_Rotatex(ctx->CurrentServerDispatch, (angle, x, y, z));
637896c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Rotatex), 8) / 8);
637996c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
638096c5ddc4Srjs   return cmd_size;
638196c5ddc4Srjs}
638296c5ddc4Srjsvoid GLAPIENTRY
638396c5ddc4Srjs_mesa_marshal_Rotatex(GLfixed angle, GLfixed x, GLfixed y, GLfixed z)
638496c5ddc4Srjs{
638596c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
638696c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_Rotatex);
638796c5ddc4Srjs   struct marshal_cmd_Rotatex *cmd;
638896c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Rotatex, cmd_size);
638996c5ddc4Srjs   cmd->angle = angle;
639096c5ddc4Srjs   cmd->x = x;
639196c5ddc4Srjs   cmd->y = y;
639296c5ddc4Srjs   cmd->z = z;
639396c5ddc4Srjs}
639496c5ddc4Srjs
639596c5ddc4Srjs
639696c5ddc4Srjs/* SampleCoveragex: marshalled asynchronously */
639796c5ddc4Srjsstruct marshal_cmd_SampleCoveragex
639896c5ddc4Srjs{
639996c5ddc4Srjs   struct marshal_cmd_base cmd_base;
640096c5ddc4Srjs   GLboolean invert;
640196c5ddc4Srjs   GLclampx value;
640296c5ddc4Srjs};
640396c5ddc4Srjsuint32_t
640496c5ddc4Srjs_mesa_unmarshal_SampleCoveragex(struct gl_context *ctx, const struct marshal_cmd_SampleCoveragex *cmd, const uint64_t *last)
640596c5ddc4Srjs{
640696c5ddc4Srjs   GLclampx value = cmd->value;
640796c5ddc4Srjs   GLboolean invert = cmd->invert;
640896c5ddc4Srjs   CALL_SampleCoveragex(ctx->CurrentServerDispatch, (value, invert));
640996c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_SampleCoveragex), 8) / 8);
641096c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
641196c5ddc4Srjs   return cmd_size;
641296c5ddc4Srjs}
641396c5ddc4Srjsvoid GLAPIENTRY
641496c5ddc4Srjs_mesa_marshal_SampleCoveragex(GLclampx value, GLboolean invert)
641596c5ddc4Srjs{
641696c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
641796c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_SampleCoveragex);
641896c5ddc4Srjs   struct marshal_cmd_SampleCoveragex *cmd;
641996c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_SampleCoveragex, cmd_size);
642096c5ddc4Srjs   cmd->value = value;
642196c5ddc4Srjs   cmd->invert = invert;
642296c5ddc4Srjs}
642396c5ddc4Srjs
642496c5ddc4Srjs
642596c5ddc4Srjs/* Scalex: marshalled asynchronously */
642696c5ddc4Srjsstruct marshal_cmd_Scalex
642796c5ddc4Srjs{
642896c5ddc4Srjs   struct marshal_cmd_base cmd_base;
642996c5ddc4Srjs   GLfixed x;
643096c5ddc4Srjs   GLfixed y;
643196c5ddc4Srjs   GLfixed z;
643296c5ddc4Srjs};
643396c5ddc4Srjsuint32_t
643496c5ddc4Srjs_mesa_unmarshal_Scalex(struct gl_context *ctx, const struct marshal_cmd_Scalex *cmd, const uint64_t *last)
643596c5ddc4Srjs{
643696c5ddc4Srjs   GLfixed x = cmd->x;
643796c5ddc4Srjs   GLfixed y = cmd->y;
643896c5ddc4Srjs   GLfixed z = cmd->z;
643996c5ddc4Srjs   CALL_Scalex(ctx->CurrentServerDispatch, (x, y, z));
644096c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Scalex), 8) / 8);
644196c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
644296c5ddc4Srjs   return cmd_size;
644396c5ddc4Srjs}
644496c5ddc4Srjsvoid GLAPIENTRY
644596c5ddc4Srjs_mesa_marshal_Scalex(GLfixed x, GLfixed y, GLfixed z)
644696c5ddc4Srjs{
644796c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
644896c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_Scalex);
644996c5ddc4Srjs   struct marshal_cmd_Scalex *cmd;
645096c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Scalex, cmd_size);
645196c5ddc4Srjs   cmd->x = x;
645296c5ddc4Srjs   cmd->y = y;
645396c5ddc4Srjs   cmd->z = z;
645496c5ddc4Srjs}
645596c5ddc4Srjs
645696c5ddc4Srjs
645796c5ddc4Srjs/* TexEnvx: marshalled asynchronously */
645896c5ddc4Srjsstruct marshal_cmd_TexEnvx
645996c5ddc4Srjs{
646096c5ddc4Srjs   struct marshal_cmd_base cmd_base;
646196c5ddc4Srjs   GLenum target;
646296c5ddc4Srjs   GLenum pname;
646396c5ddc4Srjs   GLfixed param;
646496c5ddc4Srjs};
646596c5ddc4Srjsuint32_t
646696c5ddc4Srjs_mesa_unmarshal_TexEnvx(struct gl_context *ctx, const struct marshal_cmd_TexEnvx *cmd, const uint64_t *last)
646796c5ddc4Srjs{
646896c5ddc4Srjs   GLenum target = cmd->target;
646996c5ddc4Srjs   GLenum pname = cmd->pname;
647096c5ddc4Srjs   GLfixed param = cmd->param;
647196c5ddc4Srjs   CALL_TexEnvx(ctx->CurrentServerDispatch, (target, pname, param));
647296c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TexEnvx), 8) / 8);
647396c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
647496c5ddc4Srjs   return cmd_size;
647596c5ddc4Srjs}
647696c5ddc4Srjsvoid GLAPIENTRY
647796c5ddc4Srjs_mesa_marshal_TexEnvx(GLenum target, GLenum pname, GLfixed param)
647896c5ddc4Srjs{
647996c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
648096c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_TexEnvx);
648196c5ddc4Srjs   struct marshal_cmd_TexEnvx *cmd;
648296c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexEnvx, cmd_size);
648396c5ddc4Srjs   cmd->target = target;
648496c5ddc4Srjs   cmd->pname = pname;
648596c5ddc4Srjs   cmd->param = param;
648696c5ddc4Srjs}
648796c5ddc4Srjs
648896c5ddc4Srjs
648996c5ddc4Srjs/* TexEnvxv: marshalled asynchronously */
649096c5ddc4Srjsstruct marshal_cmd_TexEnvxv
649196c5ddc4Srjs{
649296c5ddc4Srjs   struct marshal_cmd_base cmd_base;
649396c5ddc4Srjs   GLenum target;
649496c5ddc4Srjs   GLenum pname;
649596c5ddc4Srjs   /* Next safe_mul(_mesa_texenv_enum_to_count(pname), 1 * sizeof(GLfixed)) bytes are GLfixed params[None] */
649696c5ddc4Srjs};
649796c5ddc4Srjsuint32_t
649896c5ddc4Srjs_mesa_unmarshal_TexEnvxv(struct gl_context *ctx, const struct marshal_cmd_TexEnvxv *cmd, const uint64_t *last)
649996c5ddc4Srjs{
650096c5ddc4Srjs   GLenum target = cmd->target;
650196c5ddc4Srjs   GLenum pname = cmd->pname;
650296c5ddc4Srjs   GLfixed * params;
650396c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
650496c5ddc4Srjs   params = (GLfixed *) variable_data;
650596c5ddc4Srjs   CALL_TexEnvxv(ctx->CurrentServerDispatch, (target, pname, params));
650696c5ddc4Srjs   return cmd->cmd_base.cmd_size;
650796c5ddc4Srjs}
650896c5ddc4Srjsvoid GLAPIENTRY
650996c5ddc4Srjs_mesa_marshal_TexEnvxv(GLenum target, GLenum pname, const GLfixed * params)
651096c5ddc4Srjs{
651196c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
651296c5ddc4Srjs   int params_size = safe_mul(_mesa_texenv_enum_to_count(pname), 1 * sizeof(GLfixed));
651396c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_TexEnvxv) + params_size;
651496c5ddc4Srjs   struct marshal_cmd_TexEnvxv *cmd;
651596c5ddc4Srjs   if (unlikely(params_size < 0 || (params_size > 0 && !params) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
651696c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "TexEnvxv");
651796c5ddc4Srjs      CALL_TexEnvxv(ctx->CurrentServerDispatch, (target, pname, params));
651896c5ddc4Srjs      return;
651996c5ddc4Srjs   }
652096c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexEnvxv, cmd_size);
652196c5ddc4Srjs   cmd->target = target;
652296c5ddc4Srjs   cmd->pname = pname;
652396c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
652496c5ddc4Srjs   memcpy(variable_data, params, params_size);
652596c5ddc4Srjs}
652696c5ddc4Srjs
652796c5ddc4Srjs
652896c5ddc4Srjs/* TexParameterx: marshalled asynchronously */
652996c5ddc4Srjsstruct marshal_cmd_TexParameterx
653096c5ddc4Srjs{
653196c5ddc4Srjs   struct marshal_cmd_base cmd_base;
653296c5ddc4Srjs   GLenum target;
653396c5ddc4Srjs   GLenum pname;
653496c5ddc4Srjs   GLfixed param;
653596c5ddc4Srjs};
653696c5ddc4Srjsuint32_t
653796c5ddc4Srjs_mesa_unmarshal_TexParameterx(struct gl_context *ctx, const struct marshal_cmd_TexParameterx *cmd, const uint64_t *last)
653896c5ddc4Srjs{
653996c5ddc4Srjs   GLenum target = cmd->target;
654096c5ddc4Srjs   GLenum pname = cmd->pname;
654196c5ddc4Srjs   GLfixed param = cmd->param;
654296c5ddc4Srjs   CALL_TexParameterx(ctx->CurrentServerDispatch, (target, pname, param));
654396c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TexParameterx), 8) / 8);
654496c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
654596c5ddc4Srjs   return cmd_size;
654696c5ddc4Srjs}
654796c5ddc4Srjsvoid GLAPIENTRY
654896c5ddc4Srjs_mesa_marshal_TexParameterx(GLenum target, GLenum pname, GLfixed param)
654996c5ddc4Srjs{
655096c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
655196c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_TexParameterx);
655296c5ddc4Srjs   struct marshal_cmd_TexParameterx *cmd;
655396c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexParameterx, cmd_size);
655496c5ddc4Srjs   cmd->target = target;
655596c5ddc4Srjs   cmd->pname = pname;
655696c5ddc4Srjs   cmd->param = param;
655796c5ddc4Srjs}
655896c5ddc4Srjs
655996c5ddc4Srjs
656096c5ddc4Srjs/* Translatex: marshalled asynchronously */
656196c5ddc4Srjsstruct marshal_cmd_Translatex
656296c5ddc4Srjs{
656396c5ddc4Srjs   struct marshal_cmd_base cmd_base;
656496c5ddc4Srjs   GLfixed x;
656596c5ddc4Srjs   GLfixed y;
656696c5ddc4Srjs   GLfixed z;
656796c5ddc4Srjs};
656896c5ddc4Srjsuint32_t
656996c5ddc4Srjs_mesa_unmarshal_Translatex(struct gl_context *ctx, const struct marshal_cmd_Translatex *cmd, const uint64_t *last)
657096c5ddc4Srjs{
657196c5ddc4Srjs   GLfixed x = cmd->x;
657296c5ddc4Srjs   GLfixed y = cmd->y;
657396c5ddc4Srjs   GLfixed z = cmd->z;
657496c5ddc4Srjs   CALL_Translatex(ctx->CurrentServerDispatch, (x, y, z));
657596c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Translatex), 8) / 8);
657696c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
657796c5ddc4Srjs   return cmd_size;
657896c5ddc4Srjs}
657996c5ddc4Srjsvoid GLAPIENTRY
658096c5ddc4Srjs_mesa_marshal_Translatex(GLfixed x, GLfixed y, GLfixed z)
658196c5ddc4Srjs{
658296c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
658396c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_Translatex);
658496c5ddc4Srjs   struct marshal_cmd_Translatex *cmd;
658596c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Translatex, cmd_size);
658696c5ddc4Srjs   cmd->x = x;
658796c5ddc4Srjs   cmd->y = y;
658896c5ddc4Srjs   cmd->z = z;
658996c5ddc4Srjs}
659096c5ddc4Srjs
659196c5ddc4Srjs
659296c5ddc4Srjs/* ClipPlanex: marshalled asynchronously */
659396c5ddc4Srjsstruct marshal_cmd_ClipPlanex
659496c5ddc4Srjs{
659596c5ddc4Srjs   struct marshal_cmd_base cmd_base;
659696c5ddc4Srjs   GLenum plane;
659796c5ddc4Srjs   GLfixed equation[4];
659896c5ddc4Srjs};
659996c5ddc4Srjsuint32_t
660096c5ddc4Srjs_mesa_unmarshal_ClipPlanex(struct gl_context *ctx, const struct marshal_cmd_ClipPlanex *cmd, const uint64_t *last)
660196c5ddc4Srjs{
660296c5ddc4Srjs   GLenum plane = cmd->plane;
660396c5ddc4Srjs   const GLfixed * equation = cmd->equation;
660496c5ddc4Srjs   CALL_ClipPlanex(ctx->CurrentServerDispatch, (plane, equation));
660596c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_ClipPlanex), 8) / 8);
660696c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
660796c5ddc4Srjs   return cmd_size;
660896c5ddc4Srjs}
660996c5ddc4Srjsvoid GLAPIENTRY
661096c5ddc4Srjs_mesa_marshal_ClipPlanex(GLenum plane, const GLfixed * equation)
661196c5ddc4Srjs{
661296c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
661396c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_ClipPlanex);
661496c5ddc4Srjs   struct marshal_cmd_ClipPlanex *cmd;
661596c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_ClipPlanex, cmd_size);
661696c5ddc4Srjs   cmd->plane = plane;
661796c5ddc4Srjs   memcpy(cmd->equation, equation, 4 * sizeof(GLfixed));
661896c5ddc4Srjs}
661996c5ddc4Srjs
662096c5ddc4Srjs
662196c5ddc4Srjs/* GetClipPlanex: marshalled synchronously */
662296c5ddc4Srjsvoid GLAPIENTRY
662396c5ddc4Srjs_mesa_marshal_GetClipPlanex(GLenum plane, GLfixed * equation)
662496c5ddc4Srjs{
662596c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
662696c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetClipPlanex");
662796c5ddc4Srjs   CALL_GetClipPlanex(ctx->CurrentServerDispatch, (plane, equation));
662896c5ddc4Srjs}
662996c5ddc4Srjs
663096c5ddc4Srjs
663196c5ddc4Srjs/* GetFixedv: marshalled synchronously */
663296c5ddc4Srjsvoid GLAPIENTRY
663396c5ddc4Srjs_mesa_marshal_GetFixedv(GLenum pname, GLfixed * params)
663496c5ddc4Srjs{
663596c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
663696c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetFixedv");
663796c5ddc4Srjs   CALL_GetFixedv(ctx->CurrentServerDispatch, (pname, params));
663896c5ddc4Srjs}
663996c5ddc4Srjs
664096c5ddc4Srjs
664196c5ddc4Srjs/* GetLightxv: marshalled synchronously */
664296c5ddc4Srjsvoid GLAPIENTRY
664396c5ddc4Srjs_mesa_marshal_GetLightxv(GLenum light, GLenum pname, GLfixed * params)
664496c5ddc4Srjs{
664596c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
664696c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetLightxv");
664796c5ddc4Srjs   CALL_GetLightxv(ctx->CurrentServerDispatch, (light, pname, params));
664896c5ddc4Srjs}
664996c5ddc4Srjs
665096c5ddc4Srjs
665196c5ddc4Srjs/* GetMaterialxv: marshalled synchronously */
665296c5ddc4Srjsvoid GLAPIENTRY
665396c5ddc4Srjs_mesa_marshal_GetMaterialxv(GLenum face, GLenum pname, GLfixed * params)
665496c5ddc4Srjs{
665596c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
665696c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetMaterialxv");
665796c5ddc4Srjs   CALL_GetMaterialxv(ctx->CurrentServerDispatch, (face, pname, params));
665896c5ddc4Srjs}
665996c5ddc4Srjs
666096c5ddc4Srjs
666196c5ddc4Srjs/* GetTexEnvxv: marshalled synchronously */
666296c5ddc4Srjsvoid GLAPIENTRY
666396c5ddc4Srjs_mesa_marshal_GetTexEnvxv(GLenum target, GLenum pname, GLfixed * params)
666496c5ddc4Srjs{
666596c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
666696c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetTexEnvxv");
666796c5ddc4Srjs   CALL_GetTexEnvxv(ctx->CurrentServerDispatch, (target, pname, params));
666896c5ddc4Srjs}
666996c5ddc4Srjs
667096c5ddc4Srjs
667196c5ddc4Srjs/* GetTexParameterxv: marshalled synchronously */
667296c5ddc4Srjsvoid GLAPIENTRY
667396c5ddc4Srjs_mesa_marshal_GetTexParameterxv(GLenum target, GLenum pname, GLfixed * params)
667496c5ddc4Srjs{
667596c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
667696c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetTexParameterxv");
667796c5ddc4Srjs   CALL_GetTexParameterxv(ctx->CurrentServerDispatch, (target, pname, params));
667896c5ddc4Srjs}
667996c5ddc4Srjs
668096c5ddc4Srjs
668196c5ddc4Srjs/* PointParameterx: marshalled asynchronously */
668296c5ddc4Srjsstruct marshal_cmd_PointParameterx
668396c5ddc4Srjs{
668496c5ddc4Srjs   struct marshal_cmd_base cmd_base;
668596c5ddc4Srjs   GLenum pname;
668696c5ddc4Srjs   GLfixed param;
668796c5ddc4Srjs};
668896c5ddc4Srjsuint32_t
668996c5ddc4Srjs_mesa_unmarshal_PointParameterx(struct gl_context *ctx, const struct marshal_cmd_PointParameterx *cmd, const uint64_t *last)
669096c5ddc4Srjs{
669196c5ddc4Srjs   GLenum pname = cmd->pname;
669296c5ddc4Srjs   GLfixed param = cmd->param;
669396c5ddc4Srjs   CALL_PointParameterx(ctx->CurrentServerDispatch, (pname, param));
669496c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_PointParameterx), 8) / 8);
669596c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
669696c5ddc4Srjs   return cmd_size;
669796c5ddc4Srjs}
669896c5ddc4Srjsvoid GLAPIENTRY
669996c5ddc4Srjs_mesa_marshal_PointParameterx(GLenum pname, GLfixed param)
670096c5ddc4Srjs{
670196c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
670296c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_PointParameterx);
670396c5ddc4Srjs   struct marshal_cmd_PointParameterx *cmd;
670496c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_PointParameterx, cmd_size);
670596c5ddc4Srjs   cmd->pname = pname;
670696c5ddc4Srjs   cmd->param = param;
670796c5ddc4Srjs}
670896c5ddc4Srjs
670996c5ddc4Srjs
671096c5ddc4Srjs/* PointParameterxv: marshalled asynchronously */
671196c5ddc4Srjsstruct marshal_cmd_PointParameterxv
671296c5ddc4Srjs{
671396c5ddc4Srjs   struct marshal_cmd_base cmd_base;
671496c5ddc4Srjs   GLenum pname;
671596c5ddc4Srjs   /* Next safe_mul(_mesa_point_param_enum_to_count(pname), 1 * sizeof(GLfixed)) bytes are GLfixed params[_mesa_point_param_enum_to_count(pname)] */
671696c5ddc4Srjs};
671796c5ddc4Srjsuint32_t
671896c5ddc4Srjs_mesa_unmarshal_PointParameterxv(struct gl_context *ctx, const struct marshal_cmd_PointParameterxv *cmd, const uint64_t *last)
671996c5ddc4Srjs{
672096c5ddc4Srjs   GLenum pname = cmd->pname;
672196c5ddc4Srjs   GLfixed * params;
672296c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
672396c5ddc4Srjs   params = (GLfixed *) variable_data;
672496c5ddc4Srjs   CALL_PointParameterxv(ctx->CurrentServerDispatch, (pname, params));
672596c5ddc4Srjs   return cmd->cmd_base.cmd_size;
672696c5ddc4Srjs}
672796c5ddc4Srjsvoid GLAPIENTRY
672896c5ddc4Srjs_mesa_marshal_PointParameterxv(GLenum pname, const GLfixed * params)
672996c5ddc4Srjs{
673096c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
673196c5ddc4Srjs   int params_size = safe_mul(_mesa_point_param_enum_to_count(pname), 1 * sizeof(GLfixed));
673296c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_PointParameterxv) + params_size;
673396c5ddc4Srjs   struct marshal_cmd_PointParameterxv *cmd;
673496c5ddc4Srjs   if (unlikely(params_size < 0 || (params_size > 0 && !params) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
673596c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "PointParameterxv");
673696c5ddc4Srjs      CALL_PointParameterxv(ctx->CurrentServerDispatch, (pname, params));
673796c5ddc4Srjs      return;
673896c5ddc4Srjs   }
673996c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_PointParameterxv, cmd_size);
674096c5ddc4Srjs   cmd->pname = pname;
674196c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
674296c5ddc4Srjs   memcpy(variable_data, params, params_size);
674396c5ddc4Srjs}
674496c5ddc4Srjs
674596c5ddc4Srjs
674696c5ddc4Srjs/* TexParameterxv: marshalled asynchronously */
674796c5ddc4Srjsstruct marshal_cmd_TexParameterxv
674896c5ddc4Srjs{
674996c5ddc4Srjs   struct marshal_cmd_base cmd_base;
675096c5ddc4Srjs   GLenum target;
675196c5ddc4Srjs   GLenum pname;
675296c5ddc4Srjs   /* Next safe_mul(_mesa_tex_param_enum_to_count(pname), 1 * sizeof(GLfixed)) bytes are GLfixed params[None] */
675396c5ddc4Srjs};
675496c5ddc4Srjsuint32_t
675596c5ddc4Srjs_mesa_unmarshal_TexParameterxv(struct gl_context *ctx, const struct marshal_cmd_TexParameterxv *cmd, const uint64_t *last)
675696c5ddc4Srjs{
675796c5ddc4Srjs   GLenum target = cmd->target;
675896c5ddc4Srjs   GLenum pname = cmd->pname;
675996c5ddc4Srjs   GLfixed * params;
676096c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
676196c5ddc4Srjs   params = (GLfixed *) variable_data;
676296c5ddc4Srjs   CALL_TexParameterxv(ctx->CurrentServerDispatch, (target, pname, params));
676396c5ddc4Srjs   return cmd->cmd_base.cmd_size;
676496c5ddc4Srjs}
676596c5ddc4Srjsvoid GLAPIENTRY
676696c5ddc4Srjs_mesa_marshal_TexParameterxv(GLenum target, GLenum pname, const GLfixed * params)
676796c5ddc4Srjs{
676896c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
676996c5ddc4Srjs   int params_size = safe_mul(_mesa_tex_param_enum_to_count(pname), 1 * sizeof(GLfixed));
677096c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_TexParameterxv) + params_size;
677196c5ddc4Srjs   struct marshal_cmd_TexParameterxv *cmd;
677296c5ddc4Srjs   if (unlikely(params_size < 0 || (params_size > 0 && !params) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
677396c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "TexParameterxv");
677496c5ddc4Srjs      CALL_TexParameterxv(ctx->CurrentServerDispatch, (target, pname, params));
677596c5ddc4Srjs      return;
677696c5ddc4Srjs   }
677796c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexParameterxv, cmd_size);
677896c5ddc4Srjs   cmd->target = target;
677996c5ddc4Srjs   cmd->pname = pname;
678096c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
678196c5ddc4Srjs   memcpy(variable_data, params, params_size);
678296c5ddc4Srjs}
678396c5ddc4Srjs
678496c5ddc4Srjs
678596c5ddc4Srjs/* GetTexGenxvOES: marshalled synchronously */
678696c5ddc4Srjsvoid GLAPIENTRY
678796c5ddc4Srjs_mesa_marshal_GetTexGenxvOES(GLenum coord, GLenum pname, GLfixed * params)
678896c5ddc4Srjs{
678996c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
679096c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetTexGenxvOES");
679196c5ddc4Srjs   CALL_GetTexGenxvOES(ctx->CurrentServerDispatch, (coord, pname, params));
679296c5ddc4Srjs}
679396c5ddc4Srjs
679496c5ddc4Srjs
679596c5ddc4Srjs/* TexGenxOES: marshalled asynchronously */
679696c5ddc4Srjsstruct marshal_cmd_TexGenxOES
679796c5ddc4Srjs{
679896c5ddc4Srjs   struct marshal_cmd_base cmd_base;
679996c5ddc4Srjs   GLenum coord;
680096c5ddc4Srjs   GLenum pname;
680196c5ddc4Srjs   GLint param;
680296c5ddc4Srjs};
680396c5ddc4Srjsuint32_t
680496c5ddc4Srjs_mesa_unmarshal_TexGenxOES(struct gl_context *ctx, const struct marshal_cmd_TexGenxOES *cmd, const uint64_t *last)
680596c5ddc4Srjs{
680696c5ddc4Srjs   GLenum coord = cmd->coord;
680796c5ddc4Srjs   GLenum pname = cmd->pname;
680896c5ddc4Srjs   GLint param = cmd->param;
680996c5ddc4Srjs   CALL_TexGenxOES(ctx->CurrentServerDispatch, (coord, pname, param));
681096c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TexGenxOES), 8) / 8);
681196c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
681296c5ddc4Srjs   return cmd_size;
681396c5ddc4Srjs}
681496c5ddc4Srjsvoid GLAPIENTRY
681596c5ddc4Srjs_mesa_marshal_TexGenxOES(GLenum coord, GLenum pname, GLint param)
681696c5ddc4Srjs{
681796c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
681896c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_TexGenxOES);
681996c5ddc4Srjs   struct marshal_cmd_TexGenxOES *cmd;
682096c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexGenxOES, cmd_size);
682196c5ddc4Srjs   cmd->coord = coord;
682296c5ddc4Srjs   cmd->pname = pname;
682396c5ddc4Srjs   cmd->param = param;
682496c5ddc4Srjs}
682596c5ddc4Srjs
682696c5ddc4Srjs
682796c5ddc4Srjs/* TexGenxvOES: marshalled asynchronously */
682896c5ddc4Srjsstruct marshal_cmd_TexGenxvOES
682996c5ddc4Srjs{
683096c5ddc4Srjs   struct marshal_cmd_base cmd_base;
683196c5ddc4Srjs   GLenum coord;
683296c5ddc4Srjs   GLenum pname;
683396c5ddc4Srjs   /* Next safe_mul(_mesa_texgen_enum_to_count(pname), 1 * sizeof(GLfixed)) bytes are GLfixed params[None] */
683496c5ddc4Srjs};
683596c5ddc4Srjsuint32_t
683696c5ddc4Srjs_mesa_unmarshal_TexGenxvOES(struct gl_context *ctx, const struct marshal_cmd_TexGenxvOES *cmd, const uint64_t *last)
683796c5ddc4Srjs{
683896c5ddc4Srjs   GLenum coord = cmd->coord;
683996c5ddc4Srjs   GLenum pname = cmd->pname;
684096c5ddc4Srjs   GLfixed * params;
684196c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
684296c5ddc4Srjs   params = (GLfixed *) variable_data;
684396c5ddc4Srjs   CALL_TexGenxvOES(ctx->CurrentServerDispatch, (coord, pname, params));
684496c5ddc4Srjs   return cmd->cmd_base.cmd_size;
684596c5ddc4Srjs}
684696c5ddc4Srjsvoid GLAPIENTRY
684796c5ddc4Srjs_mesa_marshal_TexGenxvOES(GLenum coord, GLenum pname, const GLfixed * params)
684896c5ddc4Srjs{
684996c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
685096c5ddc4Srjs   int params_size = safe_mul(_mesa_texgen_enum_to_count(pname), 1 * sizeof(GLfixed));
685196c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_TexGenxvOES) + params_size;
685296c5ddc4Srjs   struct marshal_cmd_TexGenxvOES *cmd;
685396c5ddc4Srjs   if (unlikely(params_size < 0 || (params_size > 0 && !params) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
685496c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "TexGenxvOES");
685596c5ddc4Srjs      CALL_TexGenxvOES(ctx->CurrentServerDispatch, (coord, pname, params));
685696c5ddc4Srjs      return;
685796c5ddc4Srjs   }
685896c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexGenxvOES, cmd_size);
685996c5ddc4Srjs   cmd->coord = coord;
686096c5ddc4Srjs   cmd->pname = pname;
686196c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
686296c5ddc4Srjs   memcpy(variable_data, params, params_size);
686396c5ddc4Srjs}
686496c5ddc4Srjs
686596c5ddc4Srjs
686696c5ddc4Srjs/* ClipPlanef: marshalled asynchronously */
686796c5ddc4Srjsstruct marshal_cmd_ClipPlanef
686896c5ddc4Srjs{
686996c5ddc4Srjs   struct marshal_cmd_base cmd_base;
687096c5ddc4Srjs   GLenum plane;
687196c5ddc4Srjs   GLfloat equation[4];
687296c5ddc4Srjs};
687396c5ddc4Srjsuint32_t
687496c5ddc4Srjs_mesa_unmarshal_ClipPlanef(struct gl_context *ctx, const struct marshal_cmd_ClipPlanef *cmd, const uint64_t *last)
687596c5ddc4Srjs{
687696c5ddc4Srjs   GLenum plane = cmd->plane;
687796c5ddc4Srjs   const GLfloat * equation = cmd->equation;
687896c5ddc4Srjs   CALL_ClipPlanef(ctx->CurrentServerDispatch, (plane, equation));
687996c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_ClipPlanef), 8) / 8);
688096c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
688196c5ddc4Srjs   return cmd_size;
688296c5ddc4Srjs}
688396c5ddc4Srjsvoid GLAPIENTRY
688496c5ddc4Srjs_mesa_marshal_ClipPlanef(GLenum plane, const GLfloat * equation)
688596c5ddc4Srjs{
688696c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
688796c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_ClipPlanef);
688896c5ddc4Srjs   struct marshal_cmd_ClipPlanef *cmd;
688996c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_ClipPlanef, cmd_size);
689096c5ddc4Srjs   cmd->plane = plane;
689196c5ddc4Srjs   memcpy(cmd->equation, equation, 4 * sizeof(GLfloat));
689296c5ddc4Srjs}
689396c5ddc4Srjs
689496c5ddc4Srjs
689596c5ddc4Srjs/* GetClipPlanef: marshalled synchronously */
689696c5ddc4Srjsvoid GLAPIENTRY
689796c5ddc4Srjs_mesa_marshal_GetClipPlanef(GLenum plane, GLfloat * equation)
689896c5ddc4Srjs{
689996c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
690096c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetClipPlanef");
690196c5ddc4Srjs   CALL_GetClipPlanef(ctx->CurrentServerDispatch, (plane, equation));
690296c5ddc4Srjs}
690396c5ddc4Srjs
690496c5ddc4Srjs
690596c5ddc4Srjs/* Frustumf: marshalled asynchronously */
690696c5ddc4Srjsstruct marshal_cmd_Frustumf
690796c5ddc4Srjs{
690896c5ddc4Srjs   struct marshal_cmd_base cmd_base;
690996c5ddc4Srjs   GLfloat left;
691096c5ddc4Srjs   GLfloat right;
691196c5ddc4Srjs   GLfloat bottom;
691296c5ddc4Srjs   GLfloat top;
691396c5ddc4Srjs   GLfloat zNear;
691496c5ddc4Srjs   GLfloat zFar;
691596c5ddc4Srjs};
691696c5ddc4Srjsuint32_t
691796c5ddc4Srjs_mesa_unmarshal_Frustumf(struct gl_context *ctx, const struct marshal_cmd_Frustumf *cmd, const uint64_t *last)
691896c5ddc4Srjs{
691996c5ddc4Srjs   GLfloat left = cmd->left;
692096c5ddc4Srjs   GLfloat right = cmd->right;
692196c5ddc4Srjs   GLfloat bottom = cmd->bottom;
692296c5ddc4Srjs   GLfloat top = cmd->top;
692396c5ddc4Srjs   GLfloat zNear = cmd->zNear;
692496c5ddc4Srjs   GLfloat zFar = cmd->zFar;
692596c5ddc4Srjs   CALL_Frustumf(ctx->CurrentServerDispatch, (left, right, bottom, top, zNear, zFar));
692696c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Frustumf), 8) / 8);
692796c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
692896c5ddc4Srjs   return cmd_size;
692996c5ddc4Srjs}
693096c5ddc4Srjsvoid GLAPIENTRY
693196c5ddc4Srjs_mesa_marshal_Frustumf(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
693296c5ddc4Srjs{
693396c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
693496c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_Frustumf);
693596c5ddc4Srjs   struct marshal_cmd_Frustumf *cmd;
693696c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Frustumf, cmd_size);
693796c5ddc4Srjs   cmd->left = left;
693896c5ddc4Srjs   cmd->right = right;
693996c5ddc4Srjs   cmd->bottom = bottom;
694096c5ddc4Srjs   cmd->top = top;
694196c5ddc4Srjs   cmd->zNear = zNear;
694296c5ddc4Srjs   cmd->zFar = zFar;
694396c5ddc4Srjs}
694496c5ddc4Srjs
694596c5ddc4Srjs
694696c5ddc4Srjs/* Orthof: marshalled asynchronously */
694796c5ddc4Srjsstruct marshal_cmd_Orthof
694896c5ddc4Srjs{
694996c5ddc4Srjs   struct marshal_cmd_base cmd_base;
695096c5ddc4Srjs   GLfloat left;
695196c5ddc4Srjs   GLfloat right;
695296c5ddc4Srjs   GLfloat bottom;
695396c5ddc4Srjs   GLfloat top;
695496c5ddc4Srjs   GLfloat zNear;
695596c5ddc4Srjs   GLfloat zFar;
695696c5ddc4Srjs};
695796c5ddc4Srjsuint32_t
695896c5ddc4Srjs_mesa_unmarshal_Orthof(struct gl_context *ctx, const struct marshal_cmd_Orthof *cmd, const uint64_t *last)
695996c5ddc4Srjs{
696096c5ddc4Srjs   GLfloat left = cmd->left;
696196c5ddc4Srjs   GLfloat right = cmd->right;
696296c5ddc4Srjs   GLfloat bottom = cmd->bottom;
696396c5ddc4Srjs   GLfloat top = cmd->top;
696496c5ddc4Srjs   GLfloat zNear = cmd->zNear;
696596c5ddc4Srjs   GLfloat zFar = cmd->zFar;
696696c5ddc4Srjs   CALL_Orthof(ctx->CurrentServerDispatch, (left, right, bottom, top, zNear, zFar));
696796c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Orthof), 8) / 8);
696896c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
696996c5ddc4Srjs   return cmd_size;
697096c5ddc4Srjs}
697196c5ddc4Srjsvoid GLAPIENTRY
697296c5ddc4Srjs_mesa_marshal_Orthof(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
697396c5ddc4Srjs{
697496c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
697596c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_Orthof);
697696c5ddc4Srjs   struct marshal_cmd_Orthof *cmd;
697796c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Orthof, cmd_size);
697896c5ddc4Srjs   cmd->left = left;
697996c5ddc4Srjs   cmd->right = right;
698096c5ddc4Srjs   cmd->bottom = bottom;
698196c5ddc4Srjs   cmd->top = top;
698296c5ddc4Srjs   cmd->zNear = zNear;
698396c5ddc4Srjs   cmd->zFar = zFar;
698496c5ddc4Srjs}
698596c5ddc4Srjs
698696c5ddc4Srjs
698796c5ddc4Srjs/* DrawTexiOES: marshalled asynchronously */
698896c5ddc4Srjsstruct marshal_cmd_DrawTexiOES
698996c5ddc4Srjs{
699096c5ddc4Srjs   struct marshal_cmd_base cmd_base;
699196c5ddc4Srjs   GLint x;
699296c5ddc4Srjs   GLint y;
699396c5ddc4Srjs   GLint z;
699496c5ddc4Srjs   GLint width;
699596c5ddc4Srjs   GLint height;
699696c5ddc4Srjs};
699796c5ddc4Srjsuint32_t
699896c5ddc4Srjs_mesa_unmarshal_DrawTexiOES(struct gl_context *ctx, const struct marshal_cmd_DrawTexiOES *cmd, const uint64_t *last)
699996c5ddc4Srjs{
700096c5ddc4Srjs   GLint x = cmd->x;
700196c5ddc4Srjs   GLint y = cmd->y;
700296c5ddc4Srjs   GLint z = cmd->z;
700396c5ddc4Srjs   GLint width = cmd->width;
700496c5ddc4Srjs   GLint height = cmd->height;
700596c5ddc4Srjs   CALL_DrawTexiOES(ctx->CurrentServerDispatch, (x, y, z, width, height));
700696c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_DrawTexiOES), 8) / 8);
700796c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
700896c5ddc4Srjs   return cmd_size;
700996c5ddc4Srjs}
701096c5ddc4Srjsvoid GLAPIENTRY
701196c5ddc4Srjs_mesa_marshal_DrawTexiOES(GLint x, GLint y, GLint z, GLint width, GLint height)
701296c5ddc4Srjs{
701396c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
701496c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_DrawTexiOES);
701596c5ddc4Srjs   struct marshal_cmd_DrawTexiOES *cmd;
701696c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_DrawTexiOES, cmd_size);
701796c5ddc4Srjs   cmd->x = x;
701896c5ddc4Srjs   cmd->y = y;
701996c5ddc4Srjs   cmd->z = z;
702096c5ddc4Srjs   cmd->width = width;
702196c5ddc4Srjs   cmd->height = height;
702296c5ddc4Srjs}
702396c5ddc4Srjs
702496c5ddc4Srjs
702596c5ddc4Srjs/* DrawTexivOES: marshalled asynchronously */
702696c5ddc4Srjsstruct marshal_cmd_DrawTexivOES
702796c5ddc4Srjs{
702896c5ddc4Srjs   struct marshal_cmd_base cmd_base;
702996c5ddc4Srjs   GLint coords[5];
703096c5ddc4Srjs};
703196c5ddc4Srjsuint32_t
703296c5ddc4Srjs_mesa_unmarshal_DrawTexivOES(struct gl_context *ctx, const struct marshal_cmd_DrawTexivOES *cmd, const uint64_t *last)
703396c5ddc4Srjs{
703496c5ddc4Srjs   const GLint * coords = cmd->coords;
703596c5ddc4Srjs   CALL_DrawTexivOES(ctx->CurrentServerDispatch, (coords));
703696c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_DrawTexivOES), 8) / 8);
703796c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
703896c5ddc4Srjs   return cmd_size;
703996c5ddc4Srjs}
704096c5ddc4Srjsvoid GLAPIENTRY
704196c5ddc4Srjs_mesa_marshal_DrawTexivOES(const GLint * coords)
704296c5ddc4Srjs{
704396c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
704496c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_DrawTexivOES);
704596c5ddc4Srjs   struct marshal_cmd_DrawTexivOES *cmd;
704696c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_DrawTexivOES, cmd_size);
704796c5ddc4Srjs   memcpy(cmd->coords, coords, 5 * sizeof(GLint));
704896c5ddc4Srjs}
704996c5ddc4Srjs
705096c5ddc4Srjs
705196c5ddc4Srjs/* DrawTexfOES: marshalled asynchronously */
705296c5ddc4Srjsstruct marshal_cmd_DrawTexfOES
705396c5ddc4Srjs{
705496c5ddc4Srjs   struct marshal_cmd_base cmd_base;
705596c5ddc4Srjs   GLfloat x;
705696c5ddc4Srjs   GLfloat y;
705796c5ddc4Srjs   GLfloat z;
705896c5ddc4Srjs   GLfloat width;
705996c5ddc4Srjs   GLfloat height;
706096c5ddc4Srjs};
706196c5ddc4Srjsuint32_t
706296c5ddc4Srjs_mesa_unmarshal_DrawTexfOES(struct gl_context *ctx, const struct marshal_cmd_DrawTexfOES *cmd, const uint64_t *last)
706396c5ddc4Srjs{
706496c5ddc4Srjs   GLfloat x = cmd->x;
706596c5ddc4Srjs   GLfloat y = cmd->y;
706696c5ddc4Srjs   GLfloat z = cmd->z;
706796c5ddc4Srjs   GLfloat width = cmd->width;
706896c5ddc4Srjs   GLfloat height = cmd->height;
706996c5ddc4Srjs   CALL_DrawTexfOES(ctx->CurrentServerDispatch, (x, y, z, width, height));
707096c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_DrawTexfOES), 8) / 8);
707196c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
707296c5ddc4Srjs   return cmd_size;
707396c5ddc4Srjs}
707496c5ddc4Srjsvoid GLAPIENTRY
707596c5ddc4Srjs_mesa_marshal_DrawTexfOES(GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height)
707696c5ddc4Srjs{
707796c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
707896c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_DrawTexfOES);
707996c5ddc4Srjs   struct marshal_cmd_DrawTexfOES *cmd;
708096c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_DrawTexfOES, cmd_size);
708196c5ddc4Srjs   cmd->x = x;
708296c5ddc4Srjs   cmd->y = y;
708396c5ddc4Srjs   cmd->z = z;
708496c5ddc4Srjs   cmd->width = width;
708596c5ddc4Srjs   cmd->height = height;
708696c5ddc4Srjs}
708796c5ddc4Srjs
708896c5ddc4Srjs
708996c5ddc4Srjs/* DrawTexfvOES: marshalled asynchronously */
709096c5ddc4Srjsstruct marshal_cmd_DrawTexfvOES
709196c5ddc4Srjs{
709296c5ddc4Srjs   struct marshal_cmd_base cmd_base;
709396c5ddc4Srjs   GLfloat coords[5];
709496c5ddc4Srjs};
709596c5ddc4Srjsuint32_t
709696c5ddc4Srjs_mesa_unmarshal_DrawTexfvOES(struct gl_context *ctx, const struct marshal_cmd_DrawTexfvOES *cmd, const uint64_t *last)
709796c5ddc4Srjs{
709896c5ddc4Srjs   const GLfloat * coords = cmd->coords;
709996c5ddc4Srjs   CALL_DrawTexfvOES(ctx->CurrentServerDispatch, (coords));
710096c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_DrawTexfvOES), 8) / 8);
710196c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
710296c5ddc4Srjs   return cmd_size;
710396c5ddc4Srjs}
710496c5ddc4Srjsvoid GLAPIENTRY
710596c5ddc4Srjs_mesa_marshal_DrawTexfvOES(const GLfloat * coords)
710696c5ddc4Srjs{
710796c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
710896c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_DrawTexfvOES);
710996c5ddc4Srjs   struct marshal_cmd_DrawTexfvOES *cmd;
711096c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_DrawTexfvOES, cmd_size);
711196c5ddc4Srjs   memcpy(cmd->coords, coords, 5 * sizeof(GLfloat));
711296c5ddc4Srjs}
711396c5ddc4Srjs
711496c5ddc4Srjs
711596c5ddc4Srjs/* DrawTexsOES: marshalled asynchronously */
711696c5ddc4Srjsstruct marshal_cmd_DrawTexsOES
711796c5ddc4Srjs{
711896c5ddc4Srjs   struct marshal_cmd_base cmd_base;
711996c5ddc4Srjs   GLshort x;
712096c5ddc4Srjs   GLshort y;
712196c5ddc4Srjs   GLshort z;
712296c5ddc4Srjs   GLshort width;
712396c5ddc4Srjs   GLshort height;
712496c5ddc4Srjs};
712596c5ddc4Srjsuint32_t
712696c5ddc4Srjs_mesa_unmarshal_DrawTexsOES(struct gl_context *ctx, const struct marshal_cmd_DrawTexsOES *cmd, const uint64_t *last)
712796c5ddc4Srjs{
712896c5ddc4Srjs   GLshort x = cmd->x;
712996c5ddc4Srjs   GLshort y = cmd->y;
713096c5ddc4Srjs   GLshort z = cmd->z;
713196c5ddc4Srjs   GLshort width = cmd->width;
713296c5ddc4Srjs   GLshort height = cmd->height;
713396c5ddc4Srjs   CALL_DrawTexsOES(ctx->CurrentServerDispatch, (x, y, z, width, height));
713496c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_DrawTexsOES), 8) / 8);
713596c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
713696c5ddc4Srjs   return cmd_size;
713796c5ddc4Srjs}
713896c5ddc4Srjsvoid GLAPIENTRY
713996c5ddc4Srjs_mesa_marshal_DrawTexsOES(GLshort x, GLshort y, GLshort z, GLshort width, GLshort height)
714096c5ddc4Srjs{
714196c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
714296c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_DrawTexsOES);
714396c5ddc4Srjs   struct marshal_cmd_DrawTexsOES *cmd;
714496c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_DrawTexsOES, cmd_size);
714596c5ddc4Srjs   cmd->x = x;
714696c5ddc4Srjs   cmd->y = y;
714796c5ddc4Srjs   cmd->z = z;
714896c5ddc4Srjs   cmd->width = width;
714996c5ddc4Srjs   cmd->height = height;
715096c5ddc4Srjs}
715196c5ddc4Srjs
715296c5ddc4Srjs
715396c5ddc4Srjs/* DrawTexsvOES: marshalled asynchronously */
715496c5ddc4Srjsstruct marshal_cmd_DrawTexsvOES
715596c5ddc4Srjs{
715696c5ddc4Srjs   struct marshal_cmd_base cmd_base;
715796c5ddc4Srjs   GLshort coords[5];
715896c5ddc4Srjs};
715996c5ddc4Srjsuint32_t
716096c5ddc4Srjs_mesa_unmarshal_DrawTexsvOES(struct gl_context *ctx, const struct marshal_cmd_DrawTexsvOES *cmd, const uint64_t *last)
716196c5ddc4Srjs{
716296c5ddc4Srjs   const GLshort * coords = cmd->coords;
716396c5ddc4Srjs   CALL_DrawTexsvOES(ctx->CurrentServerDispatch, (coords));
716496c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_DrawTexsvOES), 8) / 8);
716596c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
716696c5ddc4Srjs   return cmd_size;
716796c5ddc4Srjs}
716896c5ddc4Srjsvoid GLAPIENTRY
716996c5ddc4Srjs_mesa_marshal_DrawTexsvOES(const GLshort * coords)
717096c5ddc4Srjs{
717196c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
717296c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_DrawTexsvOES);
717396c5ddc4Srjs   struct marshal_cmd_DrawTexsvOES *cmd;
717496c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_DrawTexsvOES, cmd_size);
717596c5ddc4Srjs   memcpy(cmd->coords, coords, 5 * sizeof(GLshort));
717696c5ddc4Srjs}
717796c5ddc4Srjs
717896c5ddc4Srjs
717996c5ddc4Srjs/* DrawTexxOES: marshalled asynchronously */
718096c5ddc4Srjsstruct marshal_cmd_DrawTexxOES
718196c5ddc4Srjs{
718296c5ddc4Srjs   struct marshal_cmd_base cmd_base;
718396c5ddc4Srjs   GLfixed x;
718496c5ddc4Srjs   GLfixed y;
718596c5ddc4Srjs   GLfixed z;
718696c5ddc4Srjs   GLfixed width;
718796c5ddc4Srjs   GLfixed height;
718896c5ddc4Srjs};
718996c5ddc4Srjsuint32_t
719096c5ddc4Srjs_mesa_unmarshal_DrawTexxOES(struct gl_context *ctx, const struct marshal_cmd_DrawTexxOES *cmd, const uint64_t *last)
719196c5ddc4Srjs{
719296c5ddc4Srjs   GLfixed x = cmd->x;
719396c5ddc4Srjs   GLfixed y = cmd->y;
719496c5ddc4Srjs   GLfixed z = cmd->z;
719596c5ddc4Srjs   GLfixed width = cmd->width;
719696c5ddc4Srjs   GLfixed height = cmd->height;
719796c5ddc4Srjs   CALL_DrawTexxOES(ctx->CurrentServerDispatch, (x, y, z, width, height));
719896c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_DrawTexxOES), 8) / 8);
719996c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
720096c5ddc4Srjs   return cmd_size;
720196c5ddc4Srjs}
720296c5ddc4Srjsvoid GLAPIENTRY
720396c5ddc4Srjs_mesa_marshal_DrawTexxOES(GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height)
720496c5ddc4Srjs{
720596c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
720696c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_DrawTexxOES);
720796c5ddc4Srjs   struct marshal_cmd_DrawTexxOES *cmd;
720896c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_DrawTexxOES, cmd_size);
720996c5ddc4Srjs   cmd->x = x;
721096c5ddc4Srjs   cmd->y = y;
721196c5ddc4Srjs   cmd->z = z;
721296c5ddc4Srjs   cmd->width = width;
721396c5ddc4Srjs   cmd->height = height;
721496c5ddc4Srjs}
721596c5ddc4Srjs
721696c5ddc4Srjs
721796c5ddc4Srjs/* DrawTexxvOES: marshalled asynchronously */
721896c5ddc4Srjsstruct marshal_cmd_DrawTexxvOES
721996c5ddc4Srjs{
722096c5ddc4Srjs   struct marshal_cmd_base cmd_base;
722196c5ddc4Srjs   GLfixed coords[5];
722296c5ddc4Srjs};
722396c5ddc4Srjsuint32_t
722496c5ddc4Srjs_mesa_unmarshal_DrawTexxvOES(struct gl_context *ctx, const struct marshal_cmd_DrawTexxvOES *cmd, const uint64_t *last)
722596c5ddc4Srjs{
722696c5ddc4Srjs   const GLfixed * coords = cmd->coords;
722796c5ddc4Srjs   CALL_DrawTexxvOES(ctx->CurrentServerDispatch, (coords));
722896c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_DrawTexxvOES), 8) / 8);
722996c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
723096c5ddc4Srjs   return cmd_size;
723196c5ddc4Srjs}
723296c5ddc4Srjsvoid GLAPIENTRY
723396c5ddc4Srjs_mesa_marshal_DrawTexxvOES(const GLfixed * coords)
723496c5ddc4Srjs{
723596c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
723696c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_DrawTexxvOES);
723796c5ddc4Srjs   struct marshal_cmd_DrawTexxvOES *cmd;
723896c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_DrawTexxvOES, cmd_size);
723996c5ddc4Srjs   memcpy(cmd->coords, coords, 5 * sizeof(GLfixed));
724096c5ddc4Srjs}
724196c5ddc4Srjs
724296c5ddc4Srjs
724396c5ddc4Srjs/* PointSizePointerOES: marshalled asynchronously */
724496c5ddc4Srjsstruct marshal_cmd_PointSizePointerOES
724596c5ddc4Srjs{
724696c5ddc4Srjs   struct marshal_cmd_base cmd_base;
724796c5ddc4Srjs   GLenum type;
724896c5ddc4Srjs   GLsizei stride;
724996c5ddc4Srjs   const GLvoid * pointer;
725096c5ddc4Srjs};
725196c5ddc4Srjsuint32_t
725296c5ddc4Srjs_mesa_unmarshal_PointSizePointerOES(struct gl_context *ctx, const struct marshal_cmd_PointSizePointerOES *cmd, const uint64_t *last)
725396c5ddc4Srjs{
725496c5ddc4Srjs   GLenum type = cmd->type;
725596c5ddc4Srjs   GLsizei stride = cmd->stride;
725696c5ddc4Srjs   const GLvoid * pointer = cmd->pointer;
725796c5ddc4Srjs   CALL_PointSizePointerOES(ctx->CurrentServerDispatch, (type, stride, pointer));
725896c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_PointSizePointerOES), 8) / 8);
725996c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
726096c5ddc4Srjs   return cmd_size;
726196c5ddc4Srjs}
726296c5ddc4Srjsvoid GLAPIENTRY
726396c5ddc4Srjs_mesa_marshal_PointSizePointerOES(GLenum type, GLsizei stride, const GLvoid * pointer)
726496c5ddc4Srjs{
726596c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
726696c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_PointSizePointerOES);
726796c5ddc4Srjs   struct marshal_cmd_PointSizePointerOES *cmd;
726896c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_PointSizePointerOES, cmd_size);
726996c5ddc4Srjs   cmd->type = type;
727096c5ddc4Srjs   cmd->stride = stride;
727196c5ddc4Srjs   cmd->pointer = pointer;
727296c5ddc4Srjs   if (COMPAT) _mesa_glthread_AttribPointer(ctx, VERT_ATTRIB_POINT_SIZE, 1, type, stride, pointer);
727396c5ddc4Srjs}
727496c5ddc4Srjs
727596c5ddc4Srjs
727696c5ddc4Srjs/* QueryMatrixxOES: marshalled synchronously */
727796c5ddc4SrjsGLbitfield GLAPIENTRY
727896c5ddc4Srjs_mesa_marshal_QueryMatrixxOES(GLfixed * mantissa, GLint * exponent)
727996c5ddc4Srjs{
728096c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
728196c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "QueryMatrixxOES");
728296c5ddc4Srjs   return CALL_QueryMatrixxOES(ctx->CurrentServerDispatch, (mantissa, exponent));
728396c5ddc4Srjs}
728496c5ddc4Srjs
728596c5ddc4Srjs
728696c5ddc4Srjs/* DiscardFramebufferEXT: marshalled asynchronously */
728796c5ddc4Srjsstruct marshal_cmd_DiscardFramebufferEXT
728896c5ddc4Srjs{
728996c5ddc4Srjs   struct marshal_cmd_base cmd_base;
729096c5ddc4Srjs   GLenum target;
729196c5ddc4Srjs   GLsizei numAttachments;
729296c5ddc4Srjs   /* Next safe_mul(numAttachments, 1 * sizeof(GLenum)) bytes are GLenum attachments[numAttachments] */
729396c5ddc4Srjs};
729496c5ddc4Srjsuint32_t
729596c5ddc4Srjs_mesa_unmarshal_DiscardFramebufferEXT(struct gl_context *ctx, const struct marshal_cmd_DiscardFramebufferEXT *cmd, const uint64_t *last)
729696c5ddc4Srjs{
729796c5ddc4Srjs   GLenum target = cmd->target;
729896c5ddc4Srjs   GLsizei numAttachments = cmd->numAttachments;
729996c5ddc4Srjs   GLenum * attachments;
730096c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
730196c5ddc4Srjs   attachments = (GLenum *) variable_data;
730296c5ddc4Srjs   CALL_DiscardFramebufferEXT(ctx->CurrentServerDispatch, (target, numAttachments, attachments));
730396c5ddc4Srjs   return cmd->cmd_base.cmd_size;
730496c5ddc4Srjs}
730596c5ddc4Srjsvoid GLAPIENTRY
730696c5ddc4Srjs_mesa_marshal_DiscardFramebufferEXT(GLenum target, GLsizei numAttachments, const GLenum * attachments)
730796c5ddc4Srjs{
730896c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
730996c5ddc4Srjs   int attachments_size = safe_mul(numAttachments, 1 * sizeof(GLenum));
731096c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_DiscardFramebufferEXT) + attachments_size;
731196c5ddc4Srjs   struct marshal_cmd_DiscardFramebufferEXT *cmd;
731296c5ddc4Srjs   if (unlikely(attachments_size < 0 || (attachments_size > 0 && !attachments) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
731396c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "DiscardFramebufferEXT");
731496c5ddc4Srjs      CALL_DiscardFramebufferEXT(ctx->CurrentServerDispatch, (target, numAttachments, attachments));
731596c5ddc4Srjs      return;
731696c5ddc4Srjs   }
731796c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_DiscardFramebufferEXT, cmd_size);
731896c5ddc4Srjs   cmd->target = target;
731996c5ddc4Srjs   cmd->numAttachments = numAttachments;
732096c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
732196c5ddc4Srjs   memcpy(variable_data, attachments, attachments_size);
732296c5ddc4Srjs}
732396c5ddc4Srjs
732496c5ddc4Srjs
732596c5ddc4Srjs/* FramebufferTexture2DMultisampleEXT: marshalled asynchronously */
732696c5ddc4Srjsstruct marshal_cmd_FramebufferTexture2DMultisampleEXT
732796c5ddc4Srjs{
732896c5ddc4Srjs   struct marshal_cmd_base cmd_base;
732996c5ddc4Srjs   GLenum target;
733096c5ddc4Srjs   GLenum attachment;
733196c5ddc4Srjs   GLenum textarget;
733296c5ddc4Srjs   GLuint texture;
733396c5ddc4Srjs   GLint level;
733496c5ddc4Srjs   GLsizei samples;
733596c5ddc4Srjs};
733696c5ddc4Srjsuint32_t
733796c5ddc4Srjs_mesa_unmarshal_FramebufferTexture2DMultisampleEXT(struct gl_context *ctx, const struct marshal_cmd_FramebufferTexture2DMultisampleEXT *cmd, const uint64_t *last)
733896c5ddc4Srjs{
733996c5ddc4Srjs   GLenum target = cmd->target;
734096c5ddc4Srjs   GLenum attachment = cmd->attachment;
734196c5ddc4Srjs   GLenum textarget = cmd->textarget;
734296c5ddc4Srjs   GLuint texture = cmd->texture;
734396c5ddc4Srjs   GLint level = cmd->level;
734496c5ddc4Srjs   GLsizei samples = cmd->samples;
734596c5ddc4Srjs   CALL_FramebufferTexture2DMultisampleEXT(ctx->CurrentServerDispatch, (target, attachment, textarget, texture, level, samples));
734696c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_FramebufferTexture2DMultisampleEXT), 8) / 8);
734796c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
734896c5ddc4Srjs   return cmd_size;
734996c5ddc4Srjs}
735096c5ddc4Srjsvoid GLAPIENTRY
735196c5ddc4Srjs_mesa_marshal_FramebufferTexture2DMultisampleEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples)
735296c5ddc4Srjs{
735396c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
735496c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_FramebufferTexture2DMultisampleEXT);
735596c5ddc4Srjs   struct marshal_cmd_FramebufferTexture2DMultisampleEXT *cmd;
735696c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_FramebufferTexture2DMultisampleEXT, cmd_size);
735796c5ddc4Srjs   cmd->target = target;
735896c5ddc4Srjs   cmd->attachment = attachment;
735996c5ddc4Srjs   cmd->textarget = textarget;
736096c5ddc4Srjs   cmd->texture = texture;
736196c5ddc4Srjs   cmd->level = level;
736296c5ddc4Srjs   cmd->samples = samples;
736396c5ddc4Srjs}
736496c5ddc4Srjs
736596c5ddc4Srjs
736696c5ddc4Srjs/* DepthRangeArrayfvOES: marshalled asynchronously */
736796c5ddc4Srjsstruct marshal_cmd_DepthRangeArrayfvOES
736896c5ddc4Srjs{
736996c5ddc4Srjs   struct marshal_cmd_base cmd_base;
737096c5ddc4Srjs   GLuint first;
737196c5ddc4Srjs   GLsizei count;
737296c5ddc4Srjs   /* Next safe_mul((2 * count), 1 * sizeof(GLfloat)) bytes are GLfloat v[(2 * count)] */
737396c5ddc4Srjs};
737496c5ddc4Srjsuint32_t
737596c5ddc4Srjs_mesa_unmarshal_DepthRangeArrayfvOES(struct gl_context *ctx, const struct marshal_cmd_DepthRangeArrayfvOES *cmd, const uint64_t *last)
737696c5ddc4Srjs{
737796c5ddc4Srjs   GLuint first = cmd->first;
737896c5ddc4Srjs   GLsizei count = cmd->count;
737996c5ddc4Srjs   GLfloat * v;
738096c5ddc4Srjs   const char *variable_data = (const char *) (cmd + 1);
738196c5ddc4Srjs   v = (GLfloat *) variable_data;
738296c5ddc4Srjs   CALL_DepthRangeArrayfvOES(ctx->CurrentServerDispatch, (first, count, v));
738396c5ddc4Srjs   return cmd->cmd_base.cmd_size;
738496c5ddc4Srjs}
738596c5ddc4Srjsvoid GLAPIENTRY
738696c5ddc4Srjs_mesa_marshal_DepthRangeArrayfvOES(GLuint first, GLsizei count, const GLfloat * v)
738796c5ddc4Srjs{
738896c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
738996c5ddc4Srjs   int v_size = safe_mul((2 * count), 1 * sizeof(GLfloat));
739096c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_DepthRangeArrayfvOES) + v_size;
739196c5ddc4Srjs   struct marshal_cmd_DepthRangeArrayfvOES *cmd;
739296c5ddc4Srjs   if (unlikely(v_size < 0 || (v_size > 0 && !v) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) {
739396c5ddc4Srjs      _mesa_glthread_finish_before(ctx, "DepthRangeArrayfvOES");
739496c5ddc4Srjs      CALL_DepthRangeArrayfvOES(ctx->CurrentServerDispatch, (first, count, v));
739596c5ddc4Srjs      return;
739696c5ddc4Srjs   }
739796c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_DepthRangeArrayfvOES, cmd_size);
739896c5ddc4Srjs   cmd->first = first;
739996c5ddc4Srjs   cmd->count = count;
740096c5ddc4Srjs   char *variable_data = (char *) (cmd + 1);
740196c5ddc4Srjs   memcpy(variable_data, v, v_size);
740296c5ddc4Srjs}
740396c5ddc4Srjs
740496c5ddc4Srjs
740596c5ddc4Srjs/* DepthRangeIndexedfOES: marshalled asynchronously */
740696c5ddc4Srjsstruct marshal_cmd_DepthRangeIndexedfOES
740796c5ddc4Srjs{
740896c5ddc4Srjs   struct marshal_cmd_base cmd_base;
740996c5ddc4Srjs   GLuint index;
741096c5ddc4Srjs   GLfloat n;
741196c5ddc4Srjs   GLfloat f;
741296c5ddc4Srjs};
741396c5ddc4Srjsuint32_t
741496c5ddc4Srjs_mesa_unmarshal_DepthRangeIndexedfOES(struct gl_context *ctx, const struct marshal_cmd_DepthRangeIndexedfOES *cmd, const uint64_t *last)
741596c5ddc4Srjs{
741696c5ddc4Srjs   GLuint index = cmd->index;
741796c5ddc4Srjs   GLfloat n = cmd->n;
741896c5ddc4Srjs   GLfloat f = cmd->f;
741996c5ddc4Srjs   CALL_DepthRangeIndexedfOES(ctx->CurrentServerDispatch, (index, n, f));
742096c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_DepthRangeIndexedfOES), 8) / 8);
742196c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
742296c5ddc4Srjs   return cmd_size;
742396c5ddc4Srjs}
742496c5ddc4Srjsvoid GLAPIENTRY
742596c5ddc4Srjs_mesa_marshal_DepthRangeIndexedfOES(GLuint index, GLfloat n, GLfloat f)
742696c5ddc4Srjs{
742796c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
742896c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_DepthRangeIndexedfOES);
742996c5ddc4Srjs   struct marshal_cmd_DepthRangeIndexedfOES *cmd;
743096c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_DepthRangeIndexedfOES, cmd_size);
743196c5ddc4Srjs   cmd->index = index;
743296c5ddc4Srjs   cmd->n = n;
743396c5ddc4Srjs   cmd->f = f;
743496c5ddc4Srjs}
743596c5ddc4Srjs
743696c5ddc4Srjs
743796c5ddc4Srjs/* FramebufferParameteriMESA: marshalled asynchronously */
743896c5ddc4Srjsstruct marshal_cmd_FramebufferParameteriMESA
743996c5ddc4Srjs{
744096c5ddc4Srjs   struct marshal_cmd_base cmd_base;
744196c5ddc4Srjs   GLenum target;
744296c5ddc4Srjs   GLenum pname;
744396c5ddc4Srjs   GLint param;
744496c5ddc4Srjs};
744596c5ddc4Srjsuint32_t
744696c5ddc4Srjs_mesa_unmarshal_FramebufferParameteriMESA(struct gl_context *ctx, const struct marshal_cmd_FramebufferParameteriMESA *cmd, const uint64_t *last)
744796c5ddc4Srjs{
744896c5ddc4Srjs   GLenum target = cmd->target;
744996c5ddc4Srjs   GLenum pname = cmd->pname;
745096c5ddc4Srjs   GLint param = cmd->param;
745196c5ddc4Srjs   CALL_FramebufferParameteriMESA(ctx->CurrentServerDispatch, (target, pname, param));
745296c5ddc4Srjs   const unsigned cmd_size = (align(sizeof(struct marshal_cmd_FramebufferParameteriMESA), 8) / 8);
745396c5ddc4Srjs   assert (cmd_size == cmd->cmd_base.cmd_size);
745496c5ddc4Srjs   return cmd_size;
745596c5ddc4Srjs}
745696c5ddc4Srjsvoid GLAPIENTRY
745796c5ddc4Srjs_mesa_marshal_FramebufferParameteriMESA(GLenum target, GLenum pname, GLint param)
745896c5ddc4Srjs{
745996c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
746096c5ddc4Srjs   int cmd_size = sizeof(struct marshal_cmd_FramebufferParameteriMESA);
746196c5ddc4Srjs   struct marshal_cmd_FramebufferParameteriMESA *cmd;
746296c5ddc4Srjs   cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_FramebufferParameteriMESA, cmd_size);
746396c5ddc4Srjs   cmd->target = target;
746496c5ddc4Srjs   cmd->pname = pname;
746596c5ddc4Srjs   cmd->param = param;
746696c5ddc4Srjs}
746796c5ddc4Srjs
746896c5ddc4Srjs
746996c5ddc4Srjs/* GetFramebufferParameterivMESA: marshalled synchronously */
747096c5ddc4Srjsvoid GLAPIENTRY
747196c5ddc4Srjs_mesa_marshal_GetFramebufferParameterivMESA(GLenum target, GLenum pname, GLint * params)
747296c5ddc4Srjs{
747396c5ddc4Srjs   GET_CURRENT_CONTEXT(ctx);
747496c5ddc4Srjs   _mesa_glthread_finish_before(ctx, "GetFramebufferParameterivMESA");
747596c5ddc4Srjs   CALL_GetFramebufferParameterivMESA(ctx->CurrentServerDispatch, (target, pname, params));
747696c5ddc4Srjs}
747796c5ddc4Srjs
747896c5ddc4Srjs
7479